@@ -430,12 +430,13 @@ export class AgentRunner {
430430 hooks : AgentRunnerHooks ,
431431 executingAgent : ConfigurableAgentTool | null ,
432432 parentSession ?: AgentSession , // For natural nesting
433- overrides ?: { sessionId ?: string ; parentSessionId ?: string ; traceId ?: string } ,
433+ overrides ?: { sessionId ?: string ; parentSessionId ?: string ; traceId ?: string ; background ?: boolean } ,
434434 abortSignal ?: AbortSignal
435435 ) : Promise < ConfigurableAgentResult & { agentSession : AgentSession } > {
436436 const agentName = executingAgent ?. name || 'Unknown' ;
437437 logger . info ( `Starting execution loop for agent: ${ agentName } ` ) ;
438438 const { apiKey, modelName, systemPrompt, tools, maxIterations, temperature, agentDescriptor } = config ;
439+ const isBackground = overrides ?. background === true ;
439440 const { prepareInitialMessages, createSuccessResult, createErrorResult, afterExecute } = hooks ;
440441
441442
@@ -463,8 +464,8 @@ export class AgentRunner {
463464 // Use local session variable instead of static
464465 let currentSession = agentSession ;
465466
466- // Emit session started event
467- if ( AgentRunner . eventBus ) {
467+ // Emit session started event (skip for background agents)
468+ if ( AgentRunner . eventBus && ! isBackground ) {
468469 AgentRunner . eventBus . emitProgress ( {
469470 type : 'session_started' ,
470471 sessionId : agentSession . sessionId ,
@@ -485,20 +486,20 @@ export class AgentRunner {
485486
486487 currentSession . messages . push ( fullMessage ) ;
487488
488- // Emit progress events based on message type
489- if ( AgentRunner . eventBus && fullMessage . type === 'tool_call' ) {
489+ // Emit progress events based on message type (skip for background agents)
490+ if ( AgentRunner . eventBus && ! isBackground && fullMessage . type === 'tool_call' ) {
490491 AgentRunner . eventBus . emitProgress ( {
491492 type : 'tool_started' ,
492493 sessionId : currentSession . sessionId ,
493494 parentSessionId : currentSession . parentSessionId ,
494495 agentName : currentSession . agentName ,
495496 timestamp : new Date ( ) ,
496- data : {
497+ data : {
497498 session : currentSession ,
498499 toolCall : fullMessage
499500 }
500501 } ) ;
501- } else if ( AgentRunner . eventBus && fullMessage . type === 'tool_result' ) {
502+ } else if ( AgentRunner . eventBus && ! isBackground && fullMessage . type === 'tool_result' ) {
502503 AgentRunner . eventBus . emitProgress ( {
503504 type : 'tool_completed' ,
504505 sessionId : currentSession . sessionId ,
@@ -591,8 +592,8 @@ export class AgentRunner {
591592 currentSession . endTime = new Date ( ) ;
592593 currentSession . terminationReason = 'error' ;
593594
594- // Emit session completed event
595- if ( AgentRunner . eventBus ) {
595+ // Emit session completed event (skip for background agents)
596+ if ( AgentRunner . eventBus && ! isBackground ) {
596597 AgentRunner . eventBus . emitProgress ( {
597598 type : 'session_completed' ,
598599 sessionId : currentSession . sessionId ,
@@ -836,8 +837,8 @@ export class AgentRunner {
836837 agentSession . endTime = new Date ( ) ;
837838 agentSession . terminationReason = 'error' ;
838839
839- // Emit session completed event
840- if ( AgentRunner . eventBus ) {
840+ // Emit session completed event (skip for background agents)
841+ if ( AgentRunner . eventBus && ! isBackground ) {
841842 AgentRunner . eventBus . emitProgress ( {
842843 type : 'session_completed' ,
843844 sessionId : agentSession . sessionId ,
@@ -1017,8 +1018,8 @@ export class AgentRunner {
10171018 agentSession . endTime = new Date ( ) ;
10181019 agentSession . terminationReason = 'handed_off' ;
10191020
1020- // Emit session completed event
1021- if ( AgentRunner . eventBus ) {
1021+ // Emit session completed event (skip for background agents)
1022+ if ( AgentRunner . eventBus && ! isBackground ) {
10221023 AgentRunner . eventBus . emitProgress ( {
10231024 type : 'session_completed' ,
10241025 sessionId : agentSession . sessionId ,
@@ -1104,8 +1105,8 @@ export class AgentRunner {
11041105 }
11051106 } ) ;
11061107
1107- // Emit child agent starting
1108- if ( AgentRunner . eventBus ) {
1108+ // Emit child agent starting (skip for background agents)
1109+ if ( AgentRunner . eventBus && ! isBackground ) {
11091110 AgentRunner . eventBus . emitProgress ( {
11101111 type : 'child_agent_started' ,
11111112 sessionId : currentSession . sessionId ,
@@ -1326,8 +1327,8 @@ export class AgentRunner {
13261327 agentSession . endTime = new Date ( ) ;
13271328 agentSession . terminationReason = 'final_answer' ;
13281329
1329- // Emit session completed event
1330- if ( AgentRunner . eventBus ) {
1330+ // Emit session completed event (skip for background agents)
1331+ if ( AgentRunner . eventBus && ! isBackground ) {
13311332 AgentRunner . eventBus . emitProgress ( {
13321333 type : 'session_completed' ,
13331334 sessionId : agentSession . sessionId ,
@@ -1388,8 +1389,8 @@ export class AgentRunner {
13881389 agentSession . endTime = new Date ( ) ;
13891390 agentSession . terminationReason = 'error' ;
13901391
1391- // Emit session completed event
1392- if ( AgentRunner . eventBus ) {
1392+ // Emit session completed event (skip for background agents)
1393+ if ( AgentRunner . eventBus && ! isBackground ) {
13931394 AgentRunner . eventBus . emitProgress ( {
13941395 type : 'session_completed' ,
13951396 sessionId : agentSession . sessionId ,
@@ -1461,8 +1462,8 @@ export class AgentRunner {
14611462 agentSession . endTime = new Date ( ) ;
14621463 agentSession . terminationReason = 'handed_off' ;
14631464
1464- // Emit session completed event
1465- if ( AgentRunner . eventBus ) {
1465+ // Emit session completed event (skip for background agents)
1466+ if ( AgentRunner . eventBus && ! isBackground ) {
14661467 AgentRunner . eventBus . emitProgress ( {
14671468 type : 'session_completed' ,
14681469 sessionId : agentSession . sessionId ,
@@ -1485,8 +1486,8 @@ export class AgentRunner {
14851486 agentSession . endTime = new Date ( ) ;
14861487 agentSession . terminationReason = 'max_iterations' ;
14871488
1488- // Emit session completed event
1489- if ( AgentRunner . eventBus ) {
1489+ // Emit session completed event (skip for background agents)
1490+ if ( AgentRunner . eventBus && ! isBackground ) {
14901491 AgentRunner . eventBus . emitProgress ( {
14911492 type : 'session_completed' ,
14921493 sessionId : agentSession . sessionId ,
0 commit comments