@@ -45,7 +45,7 @@ import {
4545 WorkspaceCwdArchiveEngine ,
4646} from '../claude-home/index.js'
4747import { ConfigError , InvalidConfigError } from '../internal/errors.js'
48- import type { AgentConfig , SandboxConfig , ToolDefinition , UserMemoryConfig } from '../public/types.js'
48+ import type { AgentConfig , SandboxConfig , ToolDefinition , UserMemoryConfig , _SandboxConfig } from '../public/types.js'
4949import { createSandboxMcpServer } from '../sandbox/sandbox-tools.js'
5050import type { SandboxInstance , SandboxRuntime } from '../sandbox/types.js'
5151import { WorkspaceSnapshotEngine } from '../sandbox/workspace-snapshot/index.js'
@@ -380,18 +380,14 @@ export function buildClaudeQueryOptions(
380380 // 启用时构造 WorkspaceSnapshotEngine,实际触发(bootstrap / snapshot)由 create-agent
381381 // 在 startSession / send-end 时挂载(Task 8)。
382382 //
383- // 注意:必须用条件展开避免把 undefined 透到 engine —— `{ ...DEFAULT, ...opts }`
384- // 模式下,显式赋 undefined 会覆盖默认值,导致 setTimeout(undefined) 立即触发,
385- // bootstrap 会以 SandboxRestoreTimeout: init timeout after undefinedms 失败。
383+ // 公开 SandboxConfig 是 Pick + index signature,超时字段类型为 unknown。
384+ // 内部按完整 _SandboxConfig 读取;engine 用 `??` 处理未传的 timeout。
386385 const snapshotEnabled = resolveSnapshotMode ( config . sandbox )
386+ const sandbox = config . sandbox as _SandboxConfig | undefined
387387 const snapshotEngine = snapshotEnabled
388388 ? new WorkspaceSnapshotEngine ( {
389- ...( config . sandbox ?. workspaceSnapshotTimeoutMs !== undefined && {
390- snapshotTimeoutMs : config . sandbox . workspaceSnapshotTimeoutMs ,
391- } ) ,
392- ...( config . sandbox ?. workspaceInitTimeoutMs !== undefined && {
393- initTimeoutMs : config . sandbox . workspaceInitTimeoutMs ,
394- } ) ,
389+ snapshotTimeoutMs : sandbox ?. workspaceSnapshotTimeoutMs ,
390+ initTimeoutMs : sandbox ?. workspaceInitTimeoutMs ,
395391 } )
396392 : undefined
397393
0 commit comments