zeitlich 0.2.26 → 0.2.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/{activities-BEJRyDVU.d.cts → activities-3xj_fEJK.d.ts} +7 -4
  2. package/dist/{activities-LVQdLF6I.d.ts → activities-BzYq6jf7.d.cts} +7 -4
  3. package/dist/adapters/sandbox/e2b/index.cjs +230 -0
  4. package/dist/adapters/sandbox/e2b/index.cjs.map +1 -0
  5. package/dist/adapters/sandbox/e2b/index.d.cts +77 -0
  6. package/dist/adapters/sandbox/e2b/index.d.ts +77 -0
  7. package/dist/adapters/sandbox/e2b/index.js +227 -0
  8. package/dist/adapters/sandbox/e2b/index.js.map +1 -0
  9. package/dist/adapters/sandbox/e2b/workflow.cjs +33 -0
  10. package/dist/adapters/sandbox/e2b/workflow.cjs.map +1 -0
  11. package/dist/adapters/sandbox/e2b/workflow.d.cts +27 -0
  12. package/dist/adapters/sandbox/e2b/workflow.d.ts +27 -0
  13. package/dist/adapters/sandbox/e2b/workflow.js +31 -0
  14. package/dist/adapters/sandbox/e2b/workflow.js.map +1 -0
  15. package/dist/adapters/sandbox/virtual/index.d.cts +4 -4
  16. package/dist/adapters/sandbox/virtual/index.d.ts +4 -4
  17. package/dist/adapters/sandbox/virtual/workflow.d.cts +2 -2
  18. package/dist/adapters/sandbox/virtual/workflow.d.ts +2 -2
  19. package/dist/adapters/thread/anthropic/index.cjs +13 -6
  20. package/dist/adapters/thread/anthropic/index.cjs.map +1 -1
  21. package/dist/adapters/thread/anthropic/index.d.cts +10 -7
  22. package/dist/adapters/thread/anthropic/index.d.ts +10 -7
  23. package/dist/adapters/thread/anthropic/index.js +13 -6
  24. package/dist/adapters/thread/anthropic/index.js.map +1 -1
  25. package/dist/adapters/thread/anthropic/workflow.d.cts +5 -5
  26. package/dist/adapters/thread/anthropic/workflow.d.ts +5 -5
  27. package/dist/adapters/thread/google-genai/index.cjs +11 -6
  28. package/dist/adapters/thread/google-genai/index.cjs.map +1 -1
  29. package/dist/adapters/thread/google-genai/index.d.cts +9 -6
  30. package/dist/adapters/thread/google-genai/index.d.ts +9 -6
  31. package/dist/adapters/thread/google-genai/index.js +11 -6
  32. package/dist/adapters/thread/google-genai/index.js.map +1 -1
  33. package/dist/adapters/thread/google-genai/workflow.d.cts +5 -5
  34. package/dist/adapters/thread/google-genai/workflow.d.ts +5 -5
  35. package/dist/adapters/thread/langchain/index.cjs +44 -5
  36. package/dist/adapters/thread/langchain/index.cjs.map +1 -1
  37. package/dist/adapters/thread/langchain/index.d.cts +25 -9
  38. package/dist/adapters/thread/langchain/index.d.ts +25 -9
  39. package/dist/adapters/thread/langchain/index.js +44 -6
  40. package/dist/adapters/thread/langchain/index.js.map +1 -1
  41. package/dist/adapters/thread/langchain/workflow.d.cts +5 -5
  42. package/dist/adapters/thread/langchain/workflow.d.ts +5 -5
  43. package/dist/index.cjs +27 -16
  44. package/dist/index.cjs.map +1 -1
  45. package/dist/index.d.cts +8 -8
  46. package/dist/index.d.ts +8 -8
  47. package/dist/index.js +27 -16
  48. package/dist/index.js.map +1 -1
  49. package/dist/{proxy-BK1ydQt0.d.ts → proxy-7e7v8ccg.d.ts} +1 -1
  50. package/dist/{proxy-BMAsMHdp.d.cts → proxy-CsB8r0RR.d.cts} +1 -1
  51. package/dist/{queries-DwnE2bu3.d.cts → queries-DVnukByF.d.cts} +1 -1
  52. package/dist/{queries-BCgJ9Sr5.d.ts → queries-kjlvsUfz.d.ts} +1 -1
  53. package/dist/{thread-manager-DOnQzImf.d.cts → thread-manager-B5qA4v7V.d.ts} +5 -3
  54. package/dist/{thread-manager-b4DML-qu.d.cts → thread-manager-D8C5QvLi.d.ts} +4 -2
  55. package/dist/{thread-manager-CH9krS3h.d.ts → thread-manager-DFJ3sKKU.d.cts} +4 -2
  56. package/dist/{thread-manager-Czhpxbt6.d.ts → thread-manager-DdVFl1IY.d.cts} +5 -3
  57. package/dist/{types-BDRDbm3h.d.cts → types-BZ75HpYd.d.ts} +14 -2
  58. package/dist/{types-mCVxKIZb.d.cts → types-BclYm5Ic.d.cts} +0 -4
  59. package/dist/{types-mCVxKIZb.d.ts → types-BclYm5Ic.d.ts} +0 -4
  60. package/dist/{types-DRnz-OZp.d.cts → types-BgsAwN3L.d.cts} +1 -1
  61. package/dist/{types-CvJyXDYt.d.ts → types-BtqbM1bO.d.ts} +1 -1
  62. package/dist/{types-DSOefLpY.d.cts → types-BuCEZ4dF.d.cts} +1 -1
  63. package/dist/{types-WNSeZbWa.d.ts → types-HbjqzyJH.d.cts} +14 -2
  64. package/dist/{types-DFUNSYbj.d.ts → types-yU5AINiP.d.ts} +1 -1
  65. package/dist/workflow.cjs +27 -16
  66. package/dist/workflow.cjs.map +1 -1
  67. package/dist/workflow.d.cts +7 -7
  68. package/dist/workflow.d.ts +7 -7
  69. package/dist/workflow.js +27 -16
  70. package/dist/workflow.js.map +1 -1
  71. package/package.json +21 -1
  72. package/src/adapters/sandbox/e2b/proxy.ts +56 -0
  73. package/src/adapters/thread/anthropic/activities.ts +3 -0
  74. package/src/adapters/thread/anthropic/model-invoker.ts +7 -2
  75. package/src/adapters/thread/anthropic/thread-manager.test.ts +137 -0
  76. package/src/adapters/thread/anthropic/thread-manager.ts +13 -2
  77. package/src/adapters/thread/google-genai/activities.ts +3 -1
  78. package/src/adapters/thread/google-genai/model-invoker.ts +7 -3
  79. package/src/adapters/thread/google-genai/thread-manager.test.ts +159 -0
  80. package/src/adapters/thread/google-genai/thread-manager.ts +13 -2
  81. package/src/adapters/thread/langchain/activities.ts +3 -1
  82. package/src/adapters/thread/langchain/hooks.test.ts +195 -0
  83. package/src/adapters/thread/langchain/hooks.ts +54 -0
  84. package/src/adapters/thread/langchain/index.ts +3 -0
  85. package/src/adapters/thread/langchain/model-invoker.ts +7 -4
  86. package/src/adapters/thread/langchain/thread-manager.test.ts +144 -0
  87. package/src/adapters/thread/langchain/thread-manager.ts +12 -1
  88. package/src/lib/.env +1 -0
  89. package/src/lib/session/session.ts +16 -5
  90. package/src/lib/subagent/handler.ts +5 -2
  91. package/src/lib/subagent/register.ts +7 -2
  92. package/src/lib/thread/index.ts +1 -0
  93. package/src/lib/thread/types.ts +13 -0
  94. package/src/lib/tool-router/router.ts +2 -5
  95. package/src/lib/tool-router/types.ts +0 -4
  96. package/src/tools/bash/.env +1 -0
  97. package/tsup.config.ts +3 -0
package/dist/index.d.cts CHANGED
@@ -1,16 +1,16 @@
1
1
  import { BashArgs, FileEditArgs, GlobArgs, FileReadArgs, FileWriteArgs } from './workflow.cjs';
2
2
  export { AskUserQuestionArgs, GrepArgs, ReadSkillArgs, SubagentArgs, TaskCreateArgs, TaskGetArgs, TaskListArgs, TaskUpdateArgs, WorkflowConfig, WorkflowInput, WorkflowSessionInput, applyVirtualTreeMutations, askUserQuestionTool, bashTool, createAgentStateManager, createAskUserQuestionHandler, createBashToolDescription, createReadSkillHandler, createReadSkillTool, createSession, createTaskCreateHandler, createTaskGetHandler, createTaskListHandler, createTaskUpdateHandler, createToolRouter, defineSubagent, defineSubagentWorkflow, defineTool, defineWorkflow, editTool, formatVirtualFileTree, getShortId, globTool, grepTool, hasNoOtherToolCalls, parseSkillFile, readFileTool, taskCreateTool, taskGetTool, taskListTool, taskUpdateTool, writeFileTool } from './workflow.cjs';
3
- import { b as SkillProvider, c as SkillMetadata, d as Skill } from './types-DSOefLpY.cjs';
4
- export { A as AgentResponse, H as Hooks, a as ModelInvoker, M as ModelInvokerConfig, e as PostHumanMessageAppendHook, f as PostHumanMessageAppendHookContext, g as PreHumanMessageAppendHook, h as PreHumanMessageAppendHookContext, P as PrefixedThreadOps, R as RunAgentActivity, i as SandboxInit, j as SandboxShutdown, S as ScopedPrefix, k as SessionConfig, l as SessionEndHook, m as SessionEndHookContext, n as SessionResult, o as SessionStartHook, p as SessionStartHookContext, q as SubagentConfig, r as SubagentDefinition, s as SubagentFnResult, t as SubagentHandlerResponse, u as SubagentHooks, v as SubagentSandboxConfig, w as SubagentSandboxShutdown, x as SubagentSessionInput, y as SubagentWorkflow, z as SubagentWorkflowInput, B as ThreadInit, T as ThreadOps, Z as ZeitlichSession } from './types-DSOefLpY.cjs';
5
- import { R as RouterContext, g as ToolResultConfig, A as ActivityToolHandler, J as JsonValue, T as ToolHandlerResponse, B as BaseAgentState, f as RunAgentConfig } from './types-mCVxKIZb.cjs';
6
- export { k as AgentConfig, l as AgentFile, m as AgentState, j as AgentStateManager, n as AgentStatus, o as AppendToolResultFn, I as InferToolResults, p as JsonPrimitive, i as JsonSerializable, q as ParsedToolCall, r as ParsedToolCallUnion, s as PostToolUseFailureHook, t as PostToolUseFailureHookContext, c as PostToolUseFailureHookResult, u as PostToolUseHook, v as PostToolUseHookContext, w as PreToolUseHook, x as PreToolUseHookContext, P as PreToolUseHookResult, y as ProcessToolCallsContext, d as RawToolCall, z as SerializableToolDefinition, S as SessionExitReason, C as TaskStatus, e as TokenUsage, D as ToolArgs, E as ToolCallResult, h as ToolCallResultUnion, F as ToolDefinition, G as ToolHandler, H as ToolHooks, a as ToolMap, K as ToolNames, L as ToolResult, M as ToolRouter, b as ToolRouterHooks, N as ToolWithHandler, W as WorkflowTask, O as isTerminalStatus } from './types-mCVxKIZb.cjs';
3
+ import { b as SkillProvider, c as SkillMetadata, d as Skill } from './types-BuCEZ4dF.cjs';
4
+ export { A as AgentResponse, H as Hooks, a as ModelInvoker, M as ModelInvokerConfig, e as PostHumanMessageAppendHook, f as PostHumanMessageAppendHookContext, g as PreHumanMessageAppendHook, h as PreHumanMessageAppendHookContext, P as PrefixedThreadOps, R as RunAgentActivity, i as SandboxInit, j as SandboxShutdown, S as ScopedPrefix, k as SessionConfig, l as SessionEndHook, m as SessionEndHookContext, n as SessionResult, o as SessionStartHook, p as SessionStartHookContext, q as SubagentConfig, r as SubagentDefinition, s as SubagentFnResult, t as SubagentHandlerResponse, u as SubagentHooks, v as SubagentSandboxConfig, w as SubagentSandboxShutdown, x as SubagentSessionInput, y as SubagentWorkflow, z as SubagentWorkflowInput, B as ThreadInit, T as ThreadOps, Z as ZeitlichSession } from './types-BuCEZ4dF.cjs';
5
+ import { R as RouterContext, g as ToolResultConfig, A as ActivityToolHandler, J as JsonValue, T as ToolHandlerResponse, B as BaseAgentState, f as RunAgentConfig } from './types-BclYm5Ic.cjs';
6
+ export { k as AgentConfig, l as AgentFile, m as AgentState, j as AgentStateManager, n as AgentStatus, o as AppendToolResultFn, I as InferToolResults, p as JsonPrimitive, i as JsonSerializable, q as ParsedToolCall, r as ParsedToolCallUnion, s as PostToolUseFailureHook, t as PostToolUseFailureHookContext, c as PostToolUseFailureHookResult, u as PostToolUseHook, v as PostToolUseHookContext, w as PreToolUseHook, x as PreToolUseHookContext, P as PreToolUseHookResult, y as ProcessToolCallsContext, d as RawToolCall, z as SerializableToolDefinition, S as SessionExitReason, C as TaskStatus, e as TokenUsage, D as ToolArgs, E as ToolCallResult, h as ToolCallResultUnion, F as ToolDefinition, G as ToolHandler, H as ToolHooks, a as ToolMap, K as ToolNames, L as ToolResult, M as ToolRouter, b as ToolRouterHooks, N as ToolWithHandler, W as WorkflowTask, O as isTerminalStatus } from './types-BclYm5Ic.cjs';
7
7
  import { S as Sandbox, a as SandboxFileSystem, d as SandboxCreateOptions, b as SandboxProvider, f as SandboxSnapshot, P as PrefixedSandboxOps, F as FileStat, D as DirentEntry, E as ExecResult } from './types-ChAMwU3q.cjs';
8
8
  export { h as ExecOptions, c as SandboxCapabilities, e as SandboxCreateResult, i as SandboxNotFoundError, j as SandboxNotSupportedError, g as SandboxOps } from './types-ChAMwU3q.cjs';
9
9
  import { WorkflowClient } from '@temporalio/client';
10
- export { f as filesWithMimeType, h as hasDirectory, a as hasFileWithMimeType } from './queries-DwnE2bu3.cjs';
11
- export { F as FileEntry, a as FileEntryMetadata, b as FileResolver, T as TreeMutation, e as VirtualFileTree, g as VirtualSandboxState } from './types-DRnz-OZp.cjs';
12
- import { T as ThreadManagerConfig, B as BaseThreadManager } from './types-BDRDbm3h.cjs';
13
- export { P as ProviderThreadManager } from './types-BDRDbm3h.cjs';
10
+ export { f as filesWithMimeType, h as hasDirectory, a as hasFileWithMimeType } from './queries-DVnukByF.cjs';
11
+ export { F as FileEntry, a as FileEntryMetadata, b as FileResolver, T as TreeMutation, e as VirtualFileTree, g as VirtualSandboxState } from './types-BgsAwN3L.cjs';
12
+ import { a as ThreadManagerConfig, B as BaseThreadManager } from './types-HbjqzyJH.cjs';
13
+ export { P as ProviderThreadManager } from './types-HbjqzyJH.cjs';
14
14
  import 'zod';
15
15
  import '@temporalio/common';
16
16
  import '@temporalio/workflow';
package/dist/index.d.ts CHANGED
@@ -1,16 +1,16 @@
1
1
  import { BashArgs, FileEditArgs, GlobArgs, FileReadArgs, FileWriteArgs } from './workflow.js';
2
2
  export { AskUserQuestionArgs, GrepArgs, ReadSkillArgs, SubagentArgs, TaskCreateArgs, TaskGetArgs, TaskListArgs, TaskUpdateArgs, WorkflowConfig, WorkflowInput, WorkflowSessionInput, applyVirtualTreeMutations, askUserQuestionTool, bashTool, createAgentStateManager, createAskUserQuestionHandler, createBashToolDescription, createReadSkillHandler, createReadSkillTool, createSession, createTaskCreateHandler, createTaskGetHandler, createTaskListHandler, createTaskUpdateHandler, createToolRouter, defineSubagent, defineSubagentWorkflow, defineTool, defineWorkflow, editTool, formatVirtualFileTree, getShortId, globTool, grepTool, hasNoOtherToolCalls, parseSkillFile, readFileTool, taskCreateTool, taskGetTool, taskListTool, taskUpdateTool, writeFileTool } from './workflow.js';
3
- import { b as SkillProvider, c as SkillMetadata, d as Skill } from './types-CvJyXDYt.js';
4
- export { A as AgentResponse, H as Hooks, a as ModelInvoker, M as ModelInvokerConfig, e as PostHumanMessageAppendHook, f as PostHumanMessageAppendHookContext, g as PreHumanMessageAppendHook, h as PreHumanMessageAppendHookContext, P as PrefixedThreadOps, R as RunAgentActivity, i as SandboxInit, j as SandboxShutdown, S as ScopedPrefix, k as SessionConfig, l as SessionEndHook, m as SessionEndHookContext, n as SessionResult, o as SessionStartHook, p as SessionStartHookContext, q as SubagentConfig, r as SubagentDefinition, s as SubagentFnResult, t as SubagentHandlerResponse, u as SubagentHooks, v as SubagentSandboxConfig, w as SubagentSandboxShutdown, x as SubagentSessionInput, y as SubagentWorkflow, z as SubagentWorkflowInput, B as ThreadInit, T as ThreadOps, Z as ZeitlichSession } from './types-CvJyXDYt.js';
5
- import { R as RouterContext, g as ToolResultConfig, A as ActivityToolHandler, J as JsonValue, T as ToolHandlerResponse, B as BaseAgentState, f as RunAgentConfig } from './types-mCVxKIZb.js';
6
- export { k as AgentConfig, l as AgentFile, m as AgentState, j as AgentStateManager, n as AgentStatus, o as AppendToolResultFn, I as InferToolResults, p as JsonPrimitive, i as JsonSerializable, q as ParsedToolCall, r as ParsedToolCallUnion, s as PostToolUseFailureHook, t as PostToolUseFailureHookContext, c as PostToolUseFailureHookResult, u as PostToolUseHook, v as PostToolUseHookContext, w as PreToolUseHook, x as PreToolUseHookContext, P as PreToolUseHookResult, y as ProcessToolCallsContext, d as RawToolCall, z as SerializableToolDefinition, S as SessionExitReason, C as TaskStatus, e as TokenUsage, D as ToolArgs, E as ToolCallResult, h as ToolCallResultUnion, F as ToolDefinition, G as ToolHandler, H as ToolHooks, a as ToolMap, K as ToolNames, L as ToolResult, M as ToolRouter, b as ToolRouterHooks, N as ToolWithHandler, W as WorkflowTask, O as isTerminalStatus } from './types-mCVxKIZb.js';
3
+ import { b as SkillProvider, c as SkillMetadata, d as Skill } from './types-BtqbM1bO.js';
4
+ export { A as AgentResponse, H as Hooks, a as ModelInvoker, M as ModelInvokerConfig, e as PostHumanMessageAppendHook, f as PostHumanMessageAppendHookContext, g as PreHumanMessageAppendHook, h as PreHumanMessageAppendHookContext, P as PrefixedThreadOps, R as RunAgentActivity, i as SandboxInit, j as SandboxShutdown, S as ScopedPrefix, k as SessionConfig, l as SessionEndHook, m as SessionEndHookContext, n as SessionResult, o as SessionStartHook, p as SessionStartHookContext, q as SubagentConfig, r as SubagentDefinition, s as SubagentFnResult, t as SubagentHandlerResponse, u as SubagentHooks, v as SubagentSandboxConfig, w as SubagentSandboxShutdown, x as SubagentSessionInput, y as SubagentWorkflow, z as SubagentWorkflowInput, B as ThreadInit, T as ThreadOps, Z as ZeitlichSession } from './types-BtqbM1bO.js';
5
+ import { R as RouterContext, g as ToolResultConfig, A as ActivityToolHandler, J as JsonValue, T as ToolHandlerResponse, B as BaseAgentState, f as RunAgentConfig } from './types-BclYm5Ic.js';
6
+ export { k as AgentConfig, l as AgentFile, m as AgentState, j as AgentStateManager, n as AgentStatus, o as AppendToolResultFn, I as InferToolResults, p as JsonPrimitive, i as JsonSerializable, q as ParsedToolCall, r as ParsedToolCallUnion, s as PostToolUseFailureHook, t as PostToolUseFailureHookContext, c as PostToolUseFailureHookResult, u as PostToolUseHook, v as PostToolUseHookContext, w as PreToolUseHook, x as PreToolUseHookContext, P as PreToolUseHookResult, y as ProcessToolCallsContext, d as RawToolCall, z as SerializableToolDefinition, S as SessionExitReason, C as TaskStatus, e as TokenUsage, D as ToolArgs, E as ToolCallResult, h as ToolCallResultUnion, F as ToolDefinition, G as ToolHandler, H as ToolHooks, a as ToolMap, K as ToolNames, L as ToolResult, M as ToolRouter, b as ToolRouterHooks, N as ToolWithHandler, W as WorkflowTask, O as isTerminalStatus } from './types-BclYm5Ic.js';
7
7
  import { S as Sandbox, a as SandboxFileSystem, d as SandboxCreateOptions, b as SandboxProvider, f as SandboxSnapshot, P as PrefixedSandboxOps, F as FileStat, D as DirentEntry, E as ExecResult } from './types-ChAMwU3q.js';
8
8
  export { h as ExecOptions, c as SandboxCapabilities, e as SandboxCreateResult, i as SandboxNotFoundError, j as SandboxNotSupportedError, g as SandboxOps } from './types-ChAMwU3q.js';
9
9
  import { WorkflowClient } from '@temporalio/client';
10
- export { f as filesWithMimeType, h as hasDirectory, a as hasFileWithMimeType } from './queries-BCgJ9Sr5.js';
11
- export { F as FileEntry, a as FileEntryMetadata, b as FileResolver, T as TreeMutation, e as VirtualFileTree, g as VirtualSandboxState } from './types-DFUNSYbj.js';
12
- import { T as ThreadManagerConfig, B as BaseThreadManager } from './types-WNSeZbWa.js';
13
- export { P as ProviderThreadManager } from './types-WNSeZbWa.js';
10
+ export { f as filesWithMimeType, h as hasDirectory, a as hasFileWithMimeType } from './queries-kjlvsUfz.js';
11
+ export { F as FileEntry, a as FileEntryMetadata, b as FileResolver, T as TreeMutation, e as VirtualFileTree, g as VirtualSandboxState } from './types-yU5AINiP.js';
12
+ import { a as ThreadManagerConfig, B as BaseThreadManager } from './types-BZ75HpYd.js';
13
+ export { P as ProviderThreadManager } from './types-BZ75HpYd.js';
14
14
  import 'zod';
15
15
  import '@temporalio/common';
16
16
  import '@temporalio/workflow';
package/dist/index.js CHANGED
@@ -111,7 +111,7 @@ function createToolRouter(options) {
111
111
  });
112
112
  }
113
113
  }
114
- async function processToolCall(toolCall, turn, sandboxId, sandboxStateUpdate) {
114
+ async function processToolCall(toolCall, turn, sandboxId) {
115
115
  const startTime = Date.now();
116
116
  const tool = toolMap.get(toolCall.name);
117
117
  const preResult = await runPreHooks(toolCall, tool, turn);
@@ -140,8 +140,7 @@ function createToolRouter(options) {
140
140
  ...options.threadKey && { threadKey: options.threadKey },
141
141
  toolCallId: toolCall.id,
142
142
  toolName: toolCall.name,
143
- ...sandboxId !== void 0 && { sandboxId },
144
- ...sandboxStateUpdate && { sandboxStateUpdate }
143
+ ...sandboxId !== void 0 && { sandboxId }
145
144
  };
146
145
  const response = await tool.handler(
147
146
  effectiveArgs,
@@ -235,10 +234,9 @@ function createToolRouter(options) {
235
234
  }
236
235
  const turn = context?.turn ?? 0;
237
236
  const sandboxId = context?.sandboxId;
238
- const sandboxStateUpdate = context?.sandboxStateUpdate;
239
237
  if (options.parallel) {
240
238
  const results2 = await Promise.all(
241
- toolCalls.map((tc) => processToolCall(tc, turn, sandboxId, sandboxStateUpdate))
239
+ toolCalls.map((tc) => processToolCall(tc, turn, sandboxId))
242
240
  );
243
241
  return results2.filter(
244
242
  (r) => r !== null
@@ -246,7 +244,7 @@ function createToolRouter(options) {
246
244
  }
247
245
  const results = [];
248
246
  for (const toolCall of toolCalls) {
249
- const result = await processToolCall(toolCall, turn, sandboxId, sandboxStateUpdate);
247
+ const result = await processToolCall(toolCall, turn, sandboxId);
250
248
  if (result !== null) {
251
249
  results.push(result);
252
250
  }
@@ -382,7 +380,7 @@ function resolveSandboxConfig(config) {
382
380
  if (config === "own") return { source: "own" };
383
381
  return { source: "own", shutdown: config.shutdown };
384
382
  }
385
- function createSubagentHandler(subagents) {
383
+ function createSubagentHandler(subagents, options) {
386
384
  const { taskQueue: parentTaskQueue } = workflowInfo();
387
385
  const childResults = /* @__PURE__ */ new Map();
388
386
  const pendingDestroys = /* @__PURE__ */ new Map();
@@ -414,10 +412,11 @@ function createSubagentHandler(subagents) {
414
412
  }
415
413
  let sandbox;
416
414
  if (sandboxCfg.source === "inherit" && parentSandboxId) {
415
+ const stateUpdate = options?.getSandboxStateForInheritance?.();
417
416
  sandbox = {
418
417
  mode: "inherit",
419
418
  sandboxId: parentSandboxId,
420
- ...context.sandboxStateUpdate && { stateUpdate: context.sandboxStateUpdate }
419
+ ...stateUpdate && { stateUpdate }
421
420
  };
422
421
  } else if (sandboxCfg.source === "own") {
423
422
  const prevSbId = continuationThreadId ? threadSandboxes.get(continuationThreadId) : void 0;
@@ -522,7 +521,7 @@ function createSubagentHandler(subagents) {
522
521
  }
523
522
 
524
523
  // src/lib/subagent/register.ts
525
- function buildSubagentRegistration(subagents) {
524
+ function buildSubagentRegistration(subagents, options) {
526
525
  if (subagents.length === 0) return null;
527
526
  const getEnabled = () => subagents.filter(
528
527
  (s) => typeof s.enabled === "function" ? s.enabled() : s.enabled ?? true
@@ -532,7 +531,9 @@ function buildSubagentRegistration(subagents) {
532
531
  if (s.hooks) subagentHooksMap.set(s.agentName, s.hooks);
533
532
  }
534
533
  const resolveSubagentName = (args) => args.subagent;
535
- const { handler, destroySubagentSandboxes } = createSubagentHandler(subagents);
534
+ const { handler, destroySubagentSandboxes } = createSubagentHandler(subagents, {
535
+ getSandboxStateForInheritance: options?.getSandboxStateForInheritance
536
+ });
536
537
  const registration = {
537
538
  name: SUBAGENT_TOOL_NAME,
538
539
  enabled: () => getEnabled().length > 0,
@@ -697,8 +698,11 @@ async function createSession({
697
698
  } = threadOps;
698
699
  const plugins = [];
699
700
  let destroySubagentSandboxes;
701
+ let sandboxStateGetter;
700
702
  if (subagents) {
701
- const result = buildSubagentRegistration(subagents);
703
+ const result = buildSubagentRegistration(subagents, {
704
+ getSandboxStateForInheritance: () => sandboxStateGetter?.()
705
+ });
702
706
  if (result) {
703
707
  plugins.push(result.registration);
704
708
  destroySubagentSandboxes = result.destroySubagentSandboxes;
@@ -754,12 +758,21 @@ async function createSession({
754
758
  const sandboxMode = sandboxInit?.mode;
755
759
  let sandboxId;
756
760
  let sandboxOwned = false;
757
- let sandboxStateUpdate;
761
+ sandboxStateGetter = () => {
762
+ const fileTree = stateManager.get("fileTree");
763
+ const resolverContext = stateManager.get("resolverContext");
764
+ const workspaceBase = stateManager.get("workspaceBase");
765
+ if (!fileTree && !resolverContext && !workspaceBase) return void 0;
766
+ return {
767
+ ...fileTree !== void 0 && { fileTree },
768
+ ...resolverContext !== void 0 && { resolverContext },
769
+ ...workspaceBase !== void 0 && { workspaceBase }
770
+ };
771
+ };
758
772
  if (sandboxMode === "inherit") {
759
773
  const inheritInit = sandboxInit;
760
774
  sandboxId = inheritInit.sandboxId;
761
775
  if (inheritInit.stateUpdate) {
762
- sandboxStateUpdate = inheritInit.stateUpdate;
763
776
  stateManager.mergeUpdate(inheritInit.stateUpdate);
764
777
  }
765
778
  if (!sandboxOps) {
@@ -796,7 +809,6 @@ async function createSession({
796
809
  sandboxId = result.sandboxId;
797
810
  sandboxOwned = true;
798
811
  if (result.stateUpdate) {
799
- sandboxStateUpdate = result.stateUpdate;
800
812
  stateManager.mergeUpdate(result.stateUpdate);
801
813
  }
802
814
  }
@@ -870,8 +882,7 @@ async function createSession({
870
882
  parsedToolCalls,
871
883
  {
872
884
  turn: currentTurn,
873
- ...sandboxId !== void 0 && { sandboxId },
874
- ...sandboxStateUpdate && { sandboxStateUpdate }
885
+ ...sandboxId !== void 0 && { sandboxId }
875
886
  }
876
887
  );
877
888
  for (const result of toolCallResults) {