From 761f682add97db9da478336d3eb1708c99a1e887 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Sun, 17 May 2026 00:08:19 +0900 Subject: [PATCH] refactor(delegated-bootstrap): accept optional system and tools Add optional system and tools fields to DelegatedChildSessionBootstrap so callers can stash the original delegated context alongside retry parts. Backward compatible - existing callers stay unchanged. --- src/shared/delegated-child-session-bootstrap.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/shared/delegated-child-session-bootstrap.ts b/src/shared/delegated-child-session-bootstrap.ts index c99322d70..a9d360829 100644 --- a/src/shared/delegated-child-session-bootstrap.ts +++ b/src/shared/delegated-child-session-bootstrap.ts @@ -12,6 +12,8 @@ export type DelegatedChildSessionBootstrap = { retryParts: DelegatedChildSessionRetryPart[] fallbackChain?: FallbackEntry[] category?: string + system?: string + tools?: Record } const delegatedChildSessionBootstraps = new Map() @@ -27,19 +29,28 @@ function cloneFallbackChain(fallbackChain: FallbackEntry[] | undefined): Fallbac })) } +function cloneTools(tools: Record | undefined): Record | undefined { + return tools ? { ...tools } : undefined +} + export function registerDelegatedChildSessionBootstrap(_args: { sessionID: string promptText: string fallbackChain?: FallbackEntry[] category?: string + system?: string + tools?: Record modelFallbackControllerAccessor?: ModelFallbackControllerAccessor }): void { const retryParts = [createInternalAgentTextPart(_args.promptText)] const fallbackChain = cloneFallbackChain(_args.fallbackChain) + const tools = cloneTools(_args.tools) delegatedChildSessionBootstraps.set(_args.sessionID, { retryParts, ...(fallbackChain ? { fallbackChain } : {}), ...(_args.category ? { category: _args.category } : {}), + ...(_args.system ? { system: _args.system } : {}), + ...(tools ? { tools } : {}), }) _args.modelFallbackControllerAccessor?.setSessionFallbackChain(_args.sessionID, fallbackChain) @@ -55,10 +66,13 @@ export function getDelegatedChildSessionBootstrap(_sessionID: string): Delegated } const fallbackChain = cloneFallbackChain(bootstrap.fallbackChain) + const tools = cloneTools(bootstrap.tools) return { retryParts: cloneRetryParts(bootstrap.retryParts), ...(fallbackChain ? { fallbackChain } : {}), ...(bootstrap.category ? { category: bootstrap.category } : {}), + ...(bootstrap.system ? { system: bootstrap.system } : {}), + ...(tools ? { tools } : {}), } }