1+ import { toError } from '@sim/utils/errors'
12import { AgentPhoneIcon } from '@/components/icons'
23import type { BlockConfig } from '@/blocks/types'
34import { AuthMode , IntegrationType } from '@/blocks/types'
@@ -562,16 +563,24 @@ export const AgentPhoneBlock: BlockConfig = {
562563 if ( callsSearch ) rest . search = callsSearch
563564 }
564565
566+ const toFiniteNumber = ( value : unknown , field : string ) : number => {
567+ const parsed = Number ( value )
568+ if ( ! Number . isFinite ( parsed ) ) {
569+ throw new Error ( `Invalid numeric value for ${ field } : ${ String ( value ) } ` )
570+ }
571+ return parsed
572+ }
573+
565574 if ( operation === 'get_conversation' && messageLimit !== undefined && messageLimit !== '' ) {
566- rest . messageLimit = Number ( messageLimit )
575+ rest . messageLimit = toFiniteNumber ( messageLimit , 'Message Limit' )
567576 }
568577
569578 if (
570579 ( operation === 'get_number_messages' || operation === 'get_conversation_messages' ) &&
571580 messagesLimit !== undefined &&
572581 messagesLimit !== ''
573582 ) {
574- rest . limit = Number ( messagesLimit )
583+ rest . limit = toFiniteNumber ( messagesLimit , 'Limit' )
575584 }
576585
577586 if (
@@ -580,19 +589,19 @@ export const AgentPhoneBlock: BlockConfig = {
580589 limit !== undefined &&
581590 limit !== ''
582591 ) {
583- rest . limit = Number ( limit )
592+ rest . limit = toFiniteNumber ( limit , 'Limit' )
584593 }
585594
586595 if ( offset !== undefined && offset !== '' ) {
587- rest . offset = Number ( offset )
596+ rest . offset = toFiniteNumber ( offset , 'Offset' )
588597 }
589598
590599 if ( operation === 'get_usage_daily' && usageDays !== undefined && usageDays !== '' ) {
591- rest . days = Number ( usageDays )
600+ rest . days = toFiniteNumber ( usageDays , 'Days' )
592601 }
593602
594603 if ( operation === 'get_usage_monthly' && usageMonths !== undefined && usageMonths !== '' ) {
595- rest . months = Number ( usageMonths )
604+ rest . months = toFiniteNumber ( usageMonths , 'Months' )
596605 }
597606
598607 if ( operation === 'update_conversation' && metadata !== undefined ) {
@@ -601,8 +610,8 @@ export const AgentPhoneBlock: BlockConfig = {
601610 } else if ( typeof metadata === 'string' ) {
602611 try {
603612 rest . metadata = JSON . parse ( metadata )
604- } catch {
605- rest . metadata = metadata
613+ } catch ( error ) {
614+ throw new Error ( `Invalid JSON for Metadata: ${ toError ( error ) . message } ` )
606615 }
607616 } else {
608617 rest . metadata = metadata
0 commit comments