@@ -2,8 +2,10 @@ import type { SessionState, ToolParameterEntry, WithParts } from "./types"
22import type { Logger } from "../logger"
33import { loadSessionState } from "./persistence"
44import { getLastUserMessage } from "../messages/utils"
5+ import { isSubAgentSession } from "../utils"
56
67export const checkSession = (
8+ client : any ,
79 state : SessionState ,
810 logger : Logger ,
911 messages : WithParts [ ]
@@ -19,6 +21,7 @@ export const checkSession = (
1921 if ( state . sessionId === null || state . sessionId !== lastSessionId ) {
2022 logger . info ( `Session changed: ${ state . sessionId } -> ${ lastSessionId } ` )
2123 ensureSessionInitialized (
24+ client ,
2225 state ,
2326 lastSessionId ,
2427 logger
@@ -31,6 +34,7 @@ export const checkSession = (
3134export function createSessionState ( ) : SessionState {
3235 return {
3336 sessionId : null ,
37+ isSubAgent : false ,
3438 prune : {
3539 toolIds : [ ]
3640 } ,
@@ -45,6 +49,7 @@ export function createSessionState(): SessionState {
4549
4650export function resetSessionState ( state : SessionState ) : void {
4751 state . sessionId = null
52+ state . isSubAgent = false
4853 state . prune = {
4954 toolIds : [ ]
5055 }
@@ -57,6 +62,7 @@ export function resetSessionState(state: SessionState): void {
5762}
5863
5964export async function ensureSessionInitialized (
65+ client : any ,
6066 state : SessionState ,
6167 sessionId : string ,
6268 logger : Logger
@@ -72,6 +78,10 @@ export async function ensureSessionInitialized(
7278 resetSessionState ( state )
7379 state . sessionId = sessionId
7480
81+ const isSubAgent = await isSubAgentSession ( client , sessionId )
82+ state . isSubAgent = isSubAgent
83+ logger . info ( "isSubAgent = " + isSubAgent )
84+
7585 // Load session data from storage
7686 const persisted = await loadSessionState ( sessionId , logger )
7787 if ( persisted === null ) {
0 commit comments