@@ -66,10 +66,22 @@ export type NodeEventHandleResult = {
6666 reason ?: string ;
6767} ;
6868
69+ type NodeAgentCommandInput = Parameters < typeof agentCommandFromIngress > [ 0 ] ;
70+
6971function normalizeFiniteInteger ( value : unknown ) : number | null {
7072 return typeof value === "number" && Number . isFinite ( value ) ? Math . trunc ( value ) : null ;
7173}
7274
75+ function dispatchNodeAgentCommand (
76+ ctx : NodeEventContext ,
77+ nodeId : string ,
78+ input : NodeAgentCommandInput ,
79+ ) : void {
80+ void agentCommandFromIngress ( input , defaultRuntime , ctx . deps ) . catch ( ( err : unknown ) => {
81+ ctx . logGateway . warn ( `agent failed node=${ nodeId } : ${ formatForLog ( err ) } ` ) ;
82+ } ) ;
83+ }
84+
7385function resolveVoiceTranscriptFingerprint ( obj : Record < string , unknown > , text : string ) : string {
7486 const eventId =
7587 normalizeOptionalString ( obj . eventId ) ??
@@ -413,26 +425,20 @@ export const handleNodeEvent = async (
413425 clientRunId : `voice-${ randomUUID ( ) } ` ,
414426 } ) ;
415427
416- void agentCommandFromIngress (
417- {
418- runId,
419- message : text ,
420- sessionId,
421- sessionKey : canonicalKey ,
422- thinking : "low" ,
423- deliver : false ,
424- messageChannel : "node" ,
425- inputProvenance : {
426- kind : "external_user" ,
427- sourceChannel : "voice" ,
428- sourceTool : "gateway.voice.transcript" ,
429- } ,
430- allowModelOverride : false ,
428+ dispatchNodeAgentCommand ( ctx , nodeId , {
429+ runId,
430+ message : text ,
431+ sessionId,
432+ sessionKey : canonicalKey ,
433+ thinking : "low" ,
434+ deliver : false ,
435+ messageChannel : "node" ,
436+ inputProvenance : {
437+ kind : "external_user" ,
438+ sourceChannel : "voice" ,
439+ sourceTool : "gateway.voice.transcript" ,
431440 } ,
432- defaultRuntime ,
433- ctx . deps ,
434- ) . catch ( ( err : unknown ) => {
435- ctx . logGateway . warn ( `agent failed node=${ nodeId } : ${ formatForLog ( err ) } ` ) ;
441+ allowModelOverride : false ,
436442 } ) ;
437443 return undefined ;
438444 }
@@ -583,27 +589,21 @@ export const handleNodeEvent = async (
583589 ) ;
584590 }
585591
586- void agentCommandFromIngress (
587- {
588- runId : sessionId ,
589- message,
590- images,
591- imageOrder,
592- sessionId,
593- sessionKey : canonicalKey ,
594- thinking : link ?. thinking ?? undefined ,
595- deliver,
596- to : deliveryTo ,
597- channel : deliveryChannel ,
598- timeout :
599- typeof link ?. timeoutSeconds === "number" ? link . timeoutSeconds . toString ( ) : undefined ,
600- messageChannel : "node" ,
601- allowModelOverride : false ,
602- } ,
603- defaultRuntime ,
604- ctx . deps ,
605- ) . catch ( ( err : unknown ) => {
606- ctx . logGateway . warn ( `agent failed node=${ nodeId } : ${ formatForLog ( err ) } ` ) ;
592+ dispatchNodeAgentCommand ( ctx , nodeId , {
593+ runId : sessionId ,
594+ message,
595+ images,
596+ imageOrder,
597+ sessionId,
598+ sessionKey : canonicalKey ,
599+ thinking : link ?. thinking ?? undefined ,
600+ deliver,
601+ to : deliveryTo ,
602+ channel : deliveryChannel ,
603+ timeout :
604+ typeof link ?. timeoutSeconds === "number" ? link . timeoutSeconds . toString ( ) : undefined ,
605+ messageChannel : "node" ,
606+ allowModelOverride : false ,
607607 } ) ;
608608 return undefined ;
609609 }
0 commit comments