zeitlich 0.2.38 → 0.2.39

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 (125) hide show
  1. package/README.md +18 -0
  2. package/dist/{activities-BKhMtKDd.d.ts → activities-Bmu7XnaG.d.ts} +4 -6
  3. package/dist/{activities-CDcwkRZs.d.cts → activities-ByBFLvm2.d.cts} +4 -6
  4. package/dist/adapter-id-BB-mmrts.d.cts +17 -0
  5. package/dist/adapter-id-BB-mmrts.d.ts +17 -0
  6. package/dist/adapter-id-CMwVrVqv.d.cts +17 -0
  7. package/dist/adapter-id-CMwVrVqv.d.ts +17 -0
  8. package/dist/adapter-id-CbY2zeSt.d.cts +17 -0
  9. package/dist/adapter-id-CbY2zeSt.d.ts +17 -0
  10. package/dist/adapters/thread/anthropic/index.cjs +140 -23
  11. package/dist/adapters/thread/anthropic/index.cjs.map +1 -1
  12. package/dist/adapters/thread/anthropic/index.d.cts +8 -7
  13. package/dist/adapters/thread/anthropic/index.d.ts +8 -7
  14. package/dist/adapters/thread/anthropic/index.js +140 -24
  15. package/dist/adapters/thread/anthropic/index.js.map +1 -1
  16. package/dist/adapters/thread/anthropic/workflow.cjs +8 -3
  17. package/dist/adapters/thread/anthropic/workflow.cjs.map +1 -1
  18. package/dist/adapters/thread/anthropic/workflow.d.cts +5 -4
  19. package/dist/adapters/thread/anthropic/workflow.d.ts +5 -4
  20. package/dist/adapters/thread/anthropic/workflow.js +8 -4
  21. package/dist/adapters/thread/anthropic/workflow.js.map +1 -1
  22. package/dist/adapters/thread/google-genai/index.cjs +140 -23
  23. package/dist/adapters/thread/google-genai/index.cjs.map +1 -1
  24. package/dist/adapters/thread/google-genai/index.d.cts +5 -4
  25. package/dist/adapters/thread/google-genai/index.d.ts +5 -4
  26. package/dist/adapters/thread/google-genai/index.js +140 -24
  27. package/dist/adapters/thread/google-genai/index.js.map +1 -1
  28. package/dist/adapters/thread/google-genai/workflow.cjs +8 -3
  29. package/dist/adapters/thread/google-genai/workflow.cjs.map +1 -1
  30. package/dist/adapters/thread/google-genai/workflow.d.cts +5 -4
  31. package/dist/adapters/thread/google-genai/workflow.d.ts +5 -4
  32. package/dist/adapters/thread/google-genai/workflow.js +8 -4
  33. package/dist/adapters/thread/google-genai/workflow.js.map +1 -1
  34. package/dist/adapters/thread/index.cjs +16 -0
  35. package/dist/adapters/thread/index.cjs.map +1 -0
  36. package/dist/adapters/thread/index.d.cts +34 -0
  37. package/dist/adapters/thread/index.d.ts +34 -0
  38. package/dist/adapters/thread/index.js +12 -0
  39. package/dist/adapters/thread/index.js.map +1 -0
  40. package/dist/adapters/thread/langchain/index.cjs +139 -24
  41. package/dist/adapters/thread/langchain/index.cjs.map +1 -1
  42. package/dist/adapters/thread/langchain/index.d.cts +8 -7
  43. package/dist/adapters/thread/langchain/index.d.ts +8 -7
  44. package/dist/adapters/thread/langchain/index.js +139 -25
  45. package/dist/adapters/thread/langchain/index.js.map +1 -1
  46. package/dist/adapters/thread/langchain/workflow.cjs +8 -3
  47. package/dist/adapters/thread/langchain/workflow.cjs.map +1 -1
  48. package/dist/adapters/thread/langchain/workflow.d.cts +5 -4
  49. package/dist/adapters/thread/langchain/workflow.d.ts +5 -4
  50. package/dist/adapters/thread/langchain/workflow.js +8 -4
  51. package/dist/adapters/thread/langchain/workflow.js.map +1 -1
  52. package/dist/index.cjs +266 -48
  53. package/dist/index.cjs.map +1 -1
  54. package/dist/index.d.cts +6 -6
  55. package/dist/index.d.ts +6 -6
  56. package/dist/index.js +263 -49
  57. package/dist/index.js.map +1 -1
  58. package/dist/{proxy-D_3x7RN4.d.cts → proxy-BAKzNGRq.d.cts} +1 -1
  59. package/dist/{proxy-CUlKSvZS.d.ts → proxy-DO_MXbY4.d.ts} +1 -1
  60. package/dist/{thread-manager-CVu7o2cs.d.ts → thread-manager-CcRXasqs.d.ts} +2 -4
  61. package/dist/{thread-manager-HSwyh28L.d.cts → thread-manager-ClwSaUnj.d.cts} +2 -4
  62. package/dist/{thread-manager-c1gPopAG.d.ts → thread-manager-D-7lp1JK.d.ts} +2 -4
  63. package/dist/{thread-manager-wGi-LqIP.d.cts → thread-manager-Y8Ucf0Tf.d.cts} +2 -4
  64. package/dist/{types-C06FwR96.d.cts → types-Bcbiq8iv.d.cts} +162 -44
  65. package/dist/{types-BH_IRryz.d.ts → types-DpHTX-iO.d.ts} +54 -6
  66. package/dist/{types-DNr31FzL.d.ts → types-Dt8-HBBT.d.ts} +162 -44
  67. package/dist/{types-BaOw4hKI.d.cts → types-hFFi-Zd9.d.cts} +54 -6
  68. package/dist/{workflow-CSCkpwAL.d.ts → workflow-Bmf9EtDW.d.ts} +82 -2
  69. package/dist/{workflow-DuvMZ8Vm.d.cts → workflow-Bx9utBwb.d.cts} +82 -2
  70. package/dist/workflow.cjs +188 -37
  71. package/dist/workflow.cjs.map +1 -1
  72. package/dist/workflow.d.cts +2 -2
  73. package/dist/workflow.d.ts +2 -2
  74. package/dist/workflow.js +185 -38
  75. package/dist/workflow.js.map +1 -1
  76. package/package.json +11 -1
  77. package/src/adapters/thread/adapter-id.test.ts +42 -0
  78. package/src/adapters/thread/anthropic/activities.ts +33 -7
  79. package/src/adapters/thread/anthropic/adapter-id.ts +16 -0
  80. package/src/adapters/thread/anthropic/fork-transform.test.ts +291 -0
  81. package/src/adapters/thread/anthropic/index.ts +3 -0
  82. package/src/adapters/thread/anthropic/model-invoker.ts +8 -4
  83. package/src/adapters/thread/anthropic/proxy.ts +3 -2
  84. package/src/adapters/thread/anthropic/thread-manager.ts +27 -4
  85. package/src/adapters/thread/google-genai/activities.ts +33 -7
  86. package/src/adapters/thread/google-genai/adapter-id.ts +16 -0
  87. package/src/adapters/thread/google-genai/fork-transform.test.ts +149 -0
  88. package/src/adapters/thread/google-genai/index.ts +3 -0
  89. package/src/adapters/thread/google-genai/model-invoker.ts +7 -3
  90. package/src/adapters/thread/google-genai/proxy.ts +3 -2
  91. package/src/adapters/thread/google-genai/thread-manager.ts +27 -4
  92. package/src/adapters/thread/index.ts +39 -0
  93. package/src/adapters/thread/langchain/activities.ts +33 -7
  94. package/src/adapters/thread/langchain/adapter-id.ts +16 -0
  95. package/src/adapters/thread/langchain/fork-transform.test.ts +142 -0
  96. package/src/adapters/thread/langchain/index.ts +3 -0
  97. package/src/adapters/thread/langchain/model-invoker.ts +8 -3
  98. package/src/adapters/thread/langchain/proxy.ts +3 -2
  99. package/src/adapters/thread/langchain/thread-manager.ts +27 -4
  100. package/src/lib/lifecycle.ts +3 -1
  101. package/src/lib/model/types.ts +7 -10
  102. package/src/lib/session/session-edge-cases.integration.test.ts +131 -63
  103. package/src/lib/session/session.integration.test.ts +174 -5
  104. package/src/lib/session/session.ts +68 -28
  105. package/src/lib/session/types.ts +60 -9
  106. package/src/lib/state/index.ts +1 -0
  107. package/src/lib/state/manager.integration.test.ts +109 -0
  108. package/src/lib/state/manager.ts +38 -8
  109. package/src/lib/state/types.ts +25 -0
  110. package/src/lib/subagent/handler.ts +124 -11
  111. package/src/lib/subagent/index.ts +5 -1
  112. package/src/lib/subagent/subagent.integration.test.ts +528 -0
  113. package/src/lib/subagent/types.ts +63 -14
  114. package/src/lib/subagent/workflow.ts +29 -2
  115. package/src/lib/thread/index.ts +5 -0
  116. package/src/lib/thread/keys.test.ts +101 -0
  117. package/src/lib/thread/keys.ts +94 -0
  118. package/src/lib/thread/manager.test.ts +139 -0
  119. package/src/lib/thread/manager.ts +92 -14
  120. package/src/lib/thread/proxy.ts +2 -0
  121. package/src/lib/thread/types.ts +60 -6
  122. package/src/lib/tool-router/types.ts +16 -8
  123. package/src/lib/types.ts +12 -0
  124. package/src/workflow.ts +12 -1
  125. package/tsup.config.ts +1 -0
@@ -1,5 +1,5 @@
1
- export { A as AskUserQuestionArgs, B as BashArgs, F as FileEditArgs, a as FileReadArgs, b as FileWriteArgs, G as GlobArgs, d as GrepArgs, O as ObservabilityHooks, R as ReadSkillArgs, S as SessionEndedEvent, e as SessionStartedEvent, f as SubagentArgs, T as TaskCreateArgs, g as TaskGetArgs, h as TaskListArgs, i as TaskUpdateArgs, j as ToolExecutedEvent, k as TurnCompletedEvent, W as WorkflowConfig, l as WorkflowInput, m as WorkflowSessionInput, Z as ZeitlichObservabilitySinks, n as applyVirtualTreeMutations, o as askUserQuestionTool, p as bashTool, q as composeHooks, r as createAgentStateManager, s as createAskUserQuestionHandler, t as createBashToolDescription, u as createObservabilityHooks, v as createReadSkillHandler, w as createReadSkillTool, x as createSession, y as createTaskCreateHandler, z as createTaskGetHandler, C as createTaskListHandler, D as createTaskUpdateHandler, E as createToolRouter, H as defineSubagent, I as defineSubagentWorkflow, J as defineTool, K as defineWorkflow, L as editTool, M as filesWithMimeType, N as formatVirtualFileTree, P as getShortId, Q as globTool, U as grepTool, V as hasDirectory, X as hasFileWithMimeType, Y as hasNoOtherToolCalls, _ as parseSkillFile, $ as proxyRunAgent, a0 as proxyVirtualFsOps, a1 as readFileTool, a2 as taskCreateTool, a3 as taskGetTool, a4 as taskListTool, a5 as taskUpdateTool, a6 as writeFileTool } from './workflow-DuvMZ8Vm.cjs';
2
- export { c as ActivityToolHandler, l as AgentConfig, m as AgentFile, A as AgentResponse, n as AgentState, o as AgentStateManager, p as AgentStatus, q as AppendToolResultFn, B as BaseAgentState, r as FileEntry, F as FileEntryMetadata, i as FileResolver, H as Hooks, I as InferToolResults, s as JsonPrimitive, t as JsonSerializable, J as JsonValue, a as ModelInvoker, M as ModelInvokerConfig, u as ParsedToolCall, v as ParsedToolCallUnion, w as PostHumanMessageAppendHook, x as PostHumanMessageAppendHookContext, y as PostToolUseFailureHook, z as PostToolUseFailureHookContext, C as PostToolUseFailureHookResult, D as PostToolUseHook, E as PostToolUseHookContext, G as PreHumanMessageAppendHook, K as PreHumanMessageAppendHookContext, L as PreToolUseHook, N as PreToolUseHookContext, O as PreToolUseHookResult, P as PrefixedThreadOps, k as PrefixedVirtualFsOps, Q as ProcessToolCallsContext, U as ProcessToolCallsResult, W as RawToolCall, X as RewindSignal, R as RouterContext, Y as RunAgentActivity, e as RunAgentConfig, Z as SandboxInit, _ as SandboxShutdown, S as ScopedPrefix, $ as SerializableToolDefinition, a0 as SessionConfig, a1 as SessionEndHook, a2 as SessionEndHookContext, a3 as SessionExitReason, a4 as SessionResult, a5 as SessionStartHook, a6 as SessionStartHookContext, h as Skill, g as SkillMetadata, f as SkillProvider, a7 as SubagentConfig, a8 as SubagentDefinition, a9 as SubagentFnResult, aa as SubagentHandlerResponse, ab as SubagentHooks, ac as SubagentSandboxConfig, ad as SubagentSandboxShutdown, ae as SubagentSessionInput, af as SubagentWorkflow, ag as SubagentWorkflowInput, ah as TaskStatus, ai as ThreadInit, T as ThreadOps, aj as TokenUsage, ak as ToolArgs, al as ToolCallResult, am as ToolCallResultUnion, an as ToolDefinition, ao as ToolHandler, b as ToolHandlerResponse, ap as ToolHooks, aq as ToolMap, ar as ToolNames, as as ToolResult, d as ToolResultConfig, at as ToolRouter, au as ToolRouterHooks, av as ToolWithHandler, j as TreeMutation, ax as VirtualFileTree, ay as VirtualFsOps, az as VirtualFsState, aA as WorkflowTask, aB as ZeitlichSession, aC as isTerminalStatus } from './types-C06FwR96.cjs';
1
+ export { A as AskUserQuestionArgs, B as BashArgs, D as DEFAULT_SUBAGENT_WORKFLOW_RUN_TIMEOUT, F as FileEditArgs, a as FileReadArgs, b as FileWriteArgs, G as GlobArgs, d as GrepArgs, O as ObservabilityHooks, R as ReadSkillArgs, S as SessionEndedEvent, e as SessionStartedEvent, f as SubagentArgs, T as THREAD_TTL_SECONDS, g as TaskCreateArgs, h as TaskGetArgs, i as TaskListArgs, j as TaskUpdateArgs, k as ToolExecutedEvent, l as TurnCompletedEvent, W as WorkflowConfig, m as WorkflowInput, n as WorkflowSessionInput, Z as ZeitlichObservabilitySinks, o as applyVirtualTreeMutations, p as askUserQuestionTool, q as bashTool, r as composeHooks, s as createAgentStateManager, t as createAskUserQuestionHandler, u as createBashToolDescription, v as createObservabilityHooks, w as createReadSkillHandler, x as createReadSkillTool, y as createSession, z as createTaskCreateHandler, C as createTaskGetHandler, E as createTaskListHandler, H as createTaskUpdateHandler, I as createToolRouter, J as defineSubagent, K as defineSubagentWorkflow, L as defineTool, M as defineWorkflow, N as editTool, P as filesWithMimeType, Q as formatVirtualFileTree, U as getShortId, V as getThreadListKey, X as getThreadMetaKey, Y as globTool, _ as grepTool, $ as hasDirectory, a0 as hasFileWithMimeType, a1 as hasNoOtherToolCalls, a2 as parseSkillFile, a3 as proxyRunAgent, a4 as proxyVirtualFsOps, a5 as readFileTool, a6 as taskCreateTool, a7 as taskGetTool, a8 as taskListTool, a9 as taskUpdateTool, aa as writeFileTool } from './workflow-Bx9utBwb.cjs';
2
+ export { d as ActivityToolHandler, m as AgentConfig, n as AgentFile, A as AgentResponse, o as AgentState, p as AgentStateManager, q as AgentStatus, r as AppendToolResultFn, B as BaseAgentState, s as FileEntry, F as FileEntryMetadata, j as FileResolver, H as Hooks, I as InferToolResults, t as JsonPrimitive, u as JsonSerializable, J as JsonValue, a as ModelInvoker, M as ModelInvokerConfig, v as ParsedToolCall, w as ParsedToolCallUnion, P as PersistedThreadState, x as PostHumanMessageAppendHook, y as PostHumanMessageAppendHookContext, z as PostToolUseFailureHook, C as PostToolUseFailureHookContext, D as PostToolUseFailureHookResult, E as PostToolUseHook, G as PostToolUseHookContext, K as PreHumanMessageAppendHook, L as PreHumanMessageAppendHookContext, N as PreToolUseHook, O as PreToolUseHookContext, Q as PreToolUseHookResult, b as PrefixedThreadOps, l as PrefixedVirtualFsOps, U as ProcessToolCallsContext, W as ProcessToolCallsResult, X as RawToolCall, Y as RewindSignal, R as RouterContext, Z as RunAgentActivity, f as RunAgentConfig, _ as SandboxInit, $ as SandboxShutdown, S as ScopedPrefix, a0 as SerializableToolDefinition, a1 as SessionConfig, a2 as SessionEndHook, a3 as SessionEndHookContext, a4 as SessionExitReason, a5 as SessionResult, a6 as SessionStartHook, a7 as SessionStartHookContext, i as Skill, h as SkillMetadata, g as SkillProvider, a8 as SubagentChildWorkflowOptions, a9 as SubagentConfig, aa as SubagentDefinition, ab as SubagentFnResult, ac as SubagentHandlerResponse, ad as SubagentHooks, ae as SubagentSandboxConfig, af as SubagentSandboxShutdown, ag as SubagentSessionInput, ah as SubagentWorkflow, ai as SubagentWorkflowInput, aj as TaskStatus, ak as ThreadInit, T as ThreadOps, al as TokenUsage, am as ToolArgs, an as ToolCallResult, ao as ToolCallResultUnion, ap as ToolDefinition, aq as ToolHandler, c as ToolHandlerResponse, ar as ToolHooks, as as ToolMap, at as ToolNames, au as ToolResult, e as ToolResultConfig, av as ToolRouter, aw as ToolRouterHooks, ax as ToolWithHandler, k as TreeMutation, az as VirtualFileTree, aA as VirtualFsOps, aB as VirtualFsState, aC as WorkflowTask, aD as ZeitlichSession, aE as isTerminalStatus } from './types-Bcbiq8iv.cjs';
3
3
  export { h as ExecOptions, E as ExecResult, P as PrefixedSandboxOps, S as Sandbox, c as SandboxCapabilities, d as SandboxCreateOptions, e as SandboxCreateResult, D as SandboxDirentEntry, F as SandboxFileStat, a as SandboxFileSystem, i as SandboxNotFoundError, j as SandboxNotSupportedError, g as SandboxOps, b as SandboxProvider, f as SandboxSnapshot } from './types-yx0LzPGn.cjs';
4
4
  import 'zod';
5
5
  import '@temporalio/workflow';
@@ -1,5 +1,5 @@
1
- export { A as AskUserQuestionArgs, B as BashArgs, F as FileEditArgs, a as FileReadArgs, b as FileWriteArgs, G as GlobArgs, d as GrepArgs, O as ObservabilityHooks, R as ReadSkillArgs, S as SessionEndedEvent, e as SessionStartedEvent, f as SubagentArgs, T as TaskCreateArgs, g as TaskGetArgs, h as TaskListArgs, i as TaskUpdateArgs, j as ToolExecutedEvent, k as TurnCompletedEvent, W as WorkflowConfig, l as WorkflowInput, m as WorkflowSessionInput, Z as ZeitlichObservabilitySinks, n as applyVirtualTreeMutations, o as askUserQuestionTool, p as bashTool, q as composeHooks, r as createAgentStateManager, s as createAskUserQuestionHandler, t as createBashToolDescription, u as createObservabilityHooks, v as createReadSkillHandler, w as createReadSkillTool, x as createSession, y as createTaskCreateHandler, z as createTaskGetHandler, C as createTaskListHandler, D as createTaskUpdateHandler, E as createToolRouter, H as defineSubagent, I as defineSubagentWorkflow, J as defineTool, K as defineWorkflow, L as editTool, M as filesWithMimeType, N as formatVirtualFileTree, P as getShortId, Q as globTool, U as grepTool, V as hasDirectory, X as hasFileWithMimeType, Y as hasNoOtherToolCalls, _ as parseSkillFile, $ as proxyRunAgent, a0 as proxyVirtualFsOps, a1 as readFileTool, a2 as taskCreateTool, a3 as taskGetTool, a4 as taskListTool, a5 as taskUpdateTool, a6 as writeFileTool } from './workflow-CSCkpwAL.js';
2
- export { c as ActivityToolHandler, l as AgentConfig, m as AgentFile, A as AgentResponse, n as AgentState, o as AgentStateManager, p as AgentStatus, q as AppendToolResultFn, B as BaseAgentState, r as FileEntry, F as FileEntryMetadata, i as FileResolver, H as Hooks, I as InferToolResults, s as JsonPrimitive, t as JsonSerializable, J as JsonValue, a as ModelInvoker, M as ModelInvokerConfig, u as ParsedToolCall, v as ParsedToolCallUnion, w as PostHumanMessageAppendHook, x as PostHumanMessageAppendHookContext, y as PostToolUseFailureHook, z as PostToolUseFailureHookContext, C as PostToolUseFailureHookResult, D as PostToolUseHook, E as PostToolUseHookContext, G as PreHumanMessageAppendHook, K as PreHumanMessageAppendHookContext, L as PreToolUseHook, N as PreToolUseHookContext, O as PreToolUseHookResult, P as PrefixedThreadOps, k as PrefixedVirtualFsOps, Q as ProcessToolCallsContext, U as ProcessToolCallsResult, W as RawToolCall, X as RewindSignal, R as RouterContext, Y as RunAgentActivity, e as RunAgentConfig, Z as SandboxInit, _ as SandboxShutdown, S as ScopedPrefix, $ as SerializableToolDefinition, a0 as SessionConfig, a1 as SessionEndHook, a2 as SessionEndHookContext, a3 as SessionExitReason, a4 as SessionResult, a5 as SessionStartHook, a6 as SessionStartHookContext, h as Skill, g as SkillMetadata, f as SkillProvider, a7 as SubagentConfig, a8 as SubagentDefinition, a9 as SubagentFnResult, aa as SubagentHandlerResponse, ab as SubagentHooks, ac as SubagentSandboxConfig, ad as SubagentSandboxShutdown, ae as SubagentSessionInput, af as SubagentWorkflow, ag as SubagentWorkflowInput, ah as TaskStatus, ai as ThreadInit, T as ThreadOps, aj as TokenUsage, ak as ToolArgs, al as ToolCallResult, am as ToolCallResultUnion, an as ToolDefinition, ao as ToolHandler, b as ToolHandlerResponse, ap as ToolHooks, aq as ToolMap, ar as ToolNames, as as ToolResult, d as ToolResultConfig, at as ToolRouter, au as ToolRouterHooks, av as ToolWithHandler, j as TreeMutation, ax as VirtualFileTree, ay as VirtualFsOps, az as VirtualFsState, aA as WorkflowTask, aB as ZeitlichSession, aC as isTerminalStatus } from './types-DNr31FzL.js';
1
+ export { A as AskUserQuestionArgs, B as BashArgs, D as DEFAULT_SUBAGENT_WORKFLOW_RUN_TIMEOUT, F as FileEditArgs, a as FileReadArgs, b as FileWriteArgs, G as GlobArgs, d as GrepArgs, O as ObservabilityHooks, R as ReadSkillArgs, S as SessionEndedEvent, e as SessionStartedEvent, f as SubagentArgs, T as THREAD_TTL_SECONDS, g as TaskCreateArgs, h as TaskGetArgs, i as TaskListArgs, j as TaskUpdateArgs, k as ToolExecutedEvent, l as TurnCompletedEvent, W as WorkflowConfig, m as WorkflowInput, n as WorkflowSessionInput, Z as ZeitlichObservabilitySinks, o as applyVirtualTreeMutations, p as askUserQuestionTool, q as bashTool, r as composeHooks, s as createAgentStateManager, t as createAskUserQuestionHandler, u as createBashToolDescription, v as createObservabilityHooks, w as createReadSkillHandler, x as createReadSkillTool, y as createSession, z as createTaskCreateHandler, C as createTaskGetHandler, E as createTaskListHandler, H as createTaskUpdateHandler, I as createToolRouter, J as defineSubagent, K as defineSubagentWorkflow, L as defineTool, M as defineWorkflow, N as editTool, P as filesWithMimeType, Q as formatVirtualFileTree, U as getShortId, V as getThreadListKey, X as getThreadMetaKey, Y as globTool, _ as grepTool, $ as hasDirectory, a0 as hasFileWithMimeType, a1 as hasNoOtherToolCalls, a2 as parseSkillFile, a3 as proxyRunAgent, a4 as proxyVirtualFsOps, a5 as readFileTool, a6 as taskCreateTool, a7 as taskGetTool, a8 as taskListTool, a9 as taskUpdateTool, aa as writeFileTool } from './workflow-Bmf9EtDW.js';
2
+ export { d as ActivityToolHandler, m as AgentConfig, n as AgentFile, A as AgentResponse, o as AgentState, p as AgentStateManager, q as AgentStatus, r as AppendToolResultFn, B as BaseAgentState, s as FileEntry, F as FileEntryMetadata, j as FileResolver, H as Hooks, I as InferToolResults, t as JsonPrimitive, u as JsonSerializable, J as JsonValue, a as ModelInvoker, M as ModelInvokerConfig, v as ParsedToolCall, w as ParsedToolCallUnion, P as PersistedThreadState, x as PostHumanMessageAppendHook, y as PostHumanMessageAppendHookContext, z as PostToolUseFailureHook, C as PostToolUseFailureHookContext, D as PostToolUseFailureHookResult, E as PostToolUseHook, G as PostToolUseHookContext, K as PreHumanMessageAppendHook, L as PreHumanMessageAppendHookContext, N as PreToolUseHook, O as PreToolUseHookContext, Q as PreToolUseHookResult, b as PrefixedThreadOps, l as PrefixedVirtualFsOps, U as ProcessToolCallsContext, W as ProcessToolCallsResult, X as RawToolCall, Y as RewindSignal, R as RouterContext, Z as RunAgentActivity, f as RunAgentConfig, _ as SandboxInit, $ as SandboxShutdown, S as ScopedPrefix, a0 as SerializableToolDefinition, a1 as SessionConfig, a2 as SessionEndHook, a3 as SessionEndHookContext, a4 as SessionExitReason, a5 as SessionResult, a6 as SessionStartHook, a7 as SessionStartHookContext, i as Skill, h as SkillMetadata, g as SkillProvider, a8 as SubagentChildWorkflowOptions, a9 as SubagentConfig, aa as SubagentDefinition, ab as SubagentFnResult, ac as SubagentHandlerResponse, ad as SubagentHooks, ae as SubagentSandboxConfig, af as SubagentSandboxShutdown, ag as SubagentSessionInput, ah as SubagentWorkflow, ai as SubagentWorkflowInput, aj as TaskStatus, ak as ThreadInit, T as ThreadOps, al as TokenUsage, am as ToolArgs, an as ToolCallResult, ao as ToolCallResultUnion, ap as ToolDefinition, aq as ToolHandler, c as ToolHandlerResponse, ar as ToolHooks, as as ToolMap, at as ToolNames, au as ToolResult, e as ToolResultConfig, av as ToolRouter, aw as ToolRouterHooks, ax as ToolWithHandler, k as TreeMutation, az as VirtualFileTree, aA as VirtualFsOps, aB as VirtualFsState, aC as WorkflowTask, aD as ZeitlichSession, aE as isTerminalStatus } from './types-Dt8-HBBT.js';
3
3
  export { h as ExecOptions, E as ExecResult, P as PrefixedSandboxOps, S as Sandbox, c as SandboxCapabilities, d as SandboxCreateOptions, e as SandboxCreateResult, D as SandboxDirentEntry, F as SandboxFileStat, a as SandboxFileSystem, i as SandboxNotFoundError, j as SandboxNotSupportedError, g as SandboxOps, b as SandboxProvider, f as SandboxSnapshot } from './types-yx0LzPGn.js';
4
4
  import 'zod';
5
5
  import '@temporalio/workflow';
package/dist/workflow.js CHANGED
@@ -434,6 +434,7 @@ function createSubagentTool(subagents) {
434
434
  var childSandboxReadySignal = defineSignal("childSandboxReady");
435
435
 
436
436
  // src/lib/subagent/handler.ts
437
+ var DEFAULT_SUBAGENT_WORKFLOW_RUN_TIMEOUT = "1h";
437
438
  function resolveSandboxConfig(config) {
438
439
  if (!config || config === "none") {
439
440
  return { source: "none", init: "per-call", continuation: "fork" };
@@ -465,17 +466,28 @@ function createSubagentHandler(subagents) {
465
466
  const threadSandboxes = /* @__PURE__ */ new Map();
466
467
  const persistentSandboxes = /* @__PURE__ */ new Map();
467
468
  const persistentSandboxCreating = /* @__PURE__ */ new Set();
469
+ const persistentSandboxCreationError = /* @__PURE__ */ new Map();
468
470
  const lazyCreatorAgent = /* @__PURE__ */ new Map();
471
+ const snapshotBaseCreatorAgent = /* @__PURE__ */ new Map();
469
472
  const threadSnapshots = /* @__PURE__ */ new Map();
470
473
  const persistentBaseSnapshot = /* @__PURE__ */ new Map();
471
474
  const persistentBaseSnapshotCreating = /* @__PURE__ */ new Set();
472
- setHandler(childSandboxReadySignal, ({ childWorkflowId, sandboxId }) => {
473
- const agentName = lazyCreatorAgent.get(childWorkflowId);
474
- if (agentName && !persistentSandboxes.has(agentName)) {
475
- persistentSandboxes.set(agentName, sandboxId);
476
- lazyCreatorAgent.delete(childWorkflowId);
475
+ const persistentBaseSnapshotCreationError = /* @__PURE__ */ new Map();
476
+ setHandler(
477
+ childSandboxReadySignal,
478
+ ({ childWorkflowId, sandboxId, baseSnapshot }) => {
479
+ const lazyAgent = lazyCreatorAgent.get(childWorkflowId);
480
+ if (lazyAgent && !persistentSandboxes.has(lazyAgent)) {
481
+ persistentSandboxes.set(lazyAgent, sandboxId);
482
+ lazyCreatorAgent.delete(childWorkflowId);
483
+ }
484
+ const snapAgent = snapshotBaseCreatorAgent.get(childWorkflowId);
485
+ if (snapAgent && baseSnapshot && !persistentBaseSnapshot.has(snapAgent)) {
486
+ persistentBaseSnapshot.set(snapAgent, baseSnapshot);
487
+ snapshotBaseCreatorAgent.delete(childWorkflowId);
488
+ }
477
489
  }
478
- });
490
+ );
479
491
  const handler = async (args, context) => {
480
492
  const config = subagents.find((s) => s.agentName === args.subagent);
481
493
  if (!config) {
@@ -531,8 +543,20 @@ function createSubagentHandler(subagents) {
531
543
  baseSnap = persistentBaseSnapshot.get(config.agentName);
532
544
  if (!baseSnap) {
533
545
  if (persistentBaseSnapshotCreating.has(config.agentName)) {
534
- await condition(() => persistentBaseSnapshot.has(config.agentName));
546
+ await condition(
547
+ () => persistentBaseSnapshot.has(config.agentName) || persistentBaseSnapshotCreationError.has(config.agentName) || !persistentBaseSnapshotCreating.has(config.agentName)
548
+ );
549
+ const creatorErr = persistentBaseSnapshotCreationError.get(
550
+ config.agentName
551
+ );
552
+ if (creatorErr !== void 0) {
553
+ throw creatorErr;
554
+ }
535
555
  baseSnap = persistentBaseSnapshot.get(config.agentName);
556
+ if (!baseSnap) {
557
+ persistentBaseSnapshotCreating.add(config.agentName);
558
+ isSnapshotBaseCreator = true;
559
+ }
536
560
  } else {
537
561
  persistentBaseSnapshotCreating.add(config.agentName);
538
562
  isSnapshotBaseCreator = true;
@@ -550,8 +574,20 @@ function createSubagentHandler(subagents) {
550
574
  baseSandboxId = persistentSandboxes.get(config.agentName);
551
575
  if (!baseSandboxId) {
552
576
  if (persistentSandboxCreating.has(config.agentName)) {
553
- await condition(() => persistentSandboxes.has(config.agentName));
577
+ await condition(
578
+ () => persistentSandboxes.has(config.agentName) || persistentSandboxCreationError.has(config.agentName) || !persistentSandboxCreating.has(config.agentName)
579
+ );
580
+ const creatorErr = persistentSandboxCreationError.get(
581
+ config.agentName
582
+ );
583
+ if (creatorErr !== void 0) {
584
+ throw creatorErr;
585
+ }
554
586
  baseSandboxId = persistentSandboxes.get(config.agentName);
587
+ if (!baseSandboxId) {
588
+ persistentSandboxCreating.add(config.agentName);
589
+ isLazyCreator = true;
590
+ }
555
591
  } else {
556
592
  persistentSandboxCreating.add(config.agentName);
557
593
  isLazyCreator = true;
@@ -580,6 +616,12 @@ function createSubagentHandler(subagents) {
580
616
  };
581
617
  const resolvedContext = config.context === void 0 ? void 0 : typeof config.context === "function" ? config.context() : config.context;
582
618
  const childOpts = {
619
+ // Apply a bounded run timeout by default so a child workflow that
620
+ // fails to initialize or otherwise never reaches a terminal state
621
+ // cannot hang the parent's `Subagent` tool call forever. Callers can
622
+ // raise, lower, or disable it via `workflowOptions.workflowRunTimeout`.
623
+ workflowRunTimeout: DEFAULT_SUBAGENT_WORKFLOW_RUN_TIMEOUT,
624
+ ...config.workflowOptions ?? {},
583
625
  workflowId: childWorkflowId,
584
626
  args: resolvedContext === void 0 ? [args.prompt, workflowInput] : [args.prompt, workflowInput, resolvedContext],
585
627
  taskQueue: config.taskQueue ?? parentTaskQueue
@@ -587,13 +629,39 @@ function createSubagentHandler(subagents) {
587
629
  if (isLazyCreator) {
588
630
  lazyCreatorAgent.set(childWorkflowId, config.agentName);
589
631
  }
632
+ if (isSnapshotBaseCreator) {
633
+ snapshotBaseCreatorAgent.set(childWorkflowId, config.agentName);
634
+ }
590
635
  log.info("subagent spawned", {
591
636
  subagent: config.agentName,
592
637
  childWorkflowId,
593
638
  threadMode,
594
639
  sandboxSource: sandboxCfg.source
595
640
  });
596
- const childResult = await executeChild(config.workflow, childOpts);
641
+ let childResult;
642
+ try {
643
+ childResult = await executeChild(
644
+ config.workflow,
645
+ childOpts
646
+ );
647
+ } catch (err) {
648
+ log.warn("subagent failed", {
649
+ subagent: config.agentName,
650
+ childWorkflowId,
651
+ error: err instanceof Error ? err.message : String(err)
652
+ });
653
+ if (isLazyCreator) {
654
+ persistentSandboxCreating.delete(config.agentName);
655
+ persistentSandboxCreationError.set(config.agentName, err);
656
+ lazyCreatorAgent.delete(childWorkflowId);
657
+ }
658
+ if (isSnapshotBaseCreator) {
659
+ persistentBaseSnapshotCreating.delete(config.agentName);
660
+ persistentBaseSnapshotCreationError.set(config.agentName, err);
661
+ snapshotBaseCreatorAgent.delete(childWorkflowId);
662
+ }
663
+ throw err;
664
+ }
597
665
  const effectiveShutdown = sandboxShutdownOverride ?? sandboxCfg.shutdown ?? "destroy";
598
666
  log.info("subagent completed", {
599
667
  subagent: config.agentName,
@@ -637,10 +705,13 @@ function createSubagentHandler(subagents) {
637
705
  }
638
706
  if (isLazyCreator) {
639
707
  persistentSandboxCreating.delete(config.agentName);
708
+ persistentSandboxCreationError.delete(config.agentName);
640
709
  lazyCreatorAgent.delete(childWorkflowId);
641
710
  }
642
711
  if (isSnapshotBaseCreator) {
643
712
  persistentBaseSnapshotCreating.delete(config.agentName);
713
+ persistentBaseSnapshotCreationError.delete(config.agentName);
714
+ snapshotBaseCreatorAgent.delete(childWorkflowId);
644
715
  }
645
716
  if (!toolResponse) {
646
717
  return {
@@ -883,6 +954,7 @@ async function createSession({
883
954
  sandbox: sandboxInit,
884
955
  sandboxShutdown = "destroy",
885
956
  onSandboxReady,
957
+ onSessionExit,
886
958
  virtualFs: virtualFsConfig,
887
959
  virtualFsOps
888
960
  }) {
@@ -908,7 +980,8 @@ async function createSession({
908
980
  appendSystemMessage,
909
981
  appendAgentMessage,
910
982
  forkThread,
911
- truncateThread
983
+ loadThreadState,
984
+ saveThreadState
912
985
  } = threadOps;
913
986
  const plugins = [];
914
987
  let destroySubagentSandboxes;
@@ -1036,7 +1109,10 @@ async function createSession({
1036
1109
  baseSnapshot = await sandboxOps.snapshotSandbox(sandboxId);
1037
1110
  }
1038
1111
  if (sandboxId && sandboxOwned && onSandboxReady) {
1039
- onSandboxReady(sandboxId);
1112
+ onSandboxReady({
1113
+ sandboxId,
1114
+ ...baseSnapshot && { baseSnapshot }
1115
+ });
1040
1116
  }
1041
1117
  if (virtualFsConfig) {
1042
1118
  if (!virtualFsOps) {
@@ -1079,9 +1155,20 @@ async function createSession({
1079
1155
  });
1080
1156
  const sessionStartMs = Date.now();
1081
1157
  const systemPrompt = stateManager.getSystemPrompt();
1158
+ const rehydrateFromSlice = (slice) => {
1159
+ stateManager.mergeUpdate({
1160
+ tasks: new Map(slice.tasks),
1161
+ ...slice.custom
1162
+ });
1163
+ };
1082
1164
  if (threadMode === "fork" && sourceThreadId) {
1083
1165
  await forkThread(sourceThreadId, threadId, threadKey);
1084
- } else if (threadMode === "continue") ; else {
1166
+ const forkedSlice = await loadThreadState(threadId, threadKey);
1167
+ if (forkedSlice) rehydrateFromSlice(forkedSlice);
1168
+ } else if (threadMode === "continue") {
1169
+ const continuedSlice = await loadThreadState(threadId, threadKey);
1170
+ if (continuedSlice) rehydrateFromSlice(continuedSlice);
1171
+ } else {
1085
1172
  if (appendSystemPrompt) {
1086
1173
  if (systemPrompt == null || typeof systemPrompt === "string" && systemPrompt.trim() === "") {
1087
1174
  throw ApplicationFailure.create({
@@ -1103,24 +1190,21 @@ async function createSession({
1103
1190
  let exitReason = "completed";
1104
1191
  let finalMessage = null;
1105
1192
  try {
1193
+ let assistantId;
1106
1194
  while (stateManager.isRunning() && !stateManager.isTerminal() && stateManager.getTurns() < maxTurns) {
1107
1195
  stateManager.incrementTurns();
1108
1196
  const currentTurn = stateManager.getTurns();
1109
1197
  log.debug("turn started", { agentName, threadId, turn: currentTurn });
1110
1198
  stateManager.setTools(toolRouter.getToolDefinitions());
1111
- const {
1112
- message,
1113
- rawToolCalls,
1114
- usage,
1115
- threadLengthAtCall
1116
- } = await runAgent({
1199
+ assistantId ??= uuid4();
1200
+ const { message, rawToolCalls, usage } = await runAgent({
1117
1201
  threadId,
1118
1202
  threadKey,
1119
1203
  agentName,
1120
- metadata
1204
+ metadata,
1205
+ assistantMessageId: assistantId
1121
1206
  });
1122
- const preAssistantLength = threadLengthAtCall;
1123
- await appendAgentMessage(threadId, uuid4(), message, threadKey);
1207
+ await appendAgentMessage(threadId, assistantId, message, threadKey);
1124
1208
  if (usage) {
1125
1209
  stateManager.updateUsage(usage);
1126
1210
  }
@@ -1174,15 +1258,9 @@ async function createSession({
1174
1258
  toolCallId: rewind.toolCallId,
1175
1259
  toolName: rewind.toolName
1176
1260
  });
1177
- if (preAssistantLength === void 0) {
1178
- throw ApplicationFailure.create({
1179
- message: "Rewind requested but runAgent did not report `threadLengthAtCall`; the adapter must populate it to support rewinds.",
1180
- nonRetryable: true
1181
- });
1182
- }
1183
- await truncateThread(threadId, preAssistantLength, threadKey);
1184
1261
  continue;
1185
1262
  }
1263
+ assistantId = void 0;
1186
1264
  if (stateManager.getStatus() === "WAITING_FOR_INPUT") {
1187
1265
  const conditionMet = await condition(
1188
1266
  () => stateManager.getStatus() === "RUNNING",
@@ -1215,6 +1293,19 @@ async function createSession({
1215
1293
  });
1216
1294
  throw ApplicationFailure.fromError(error);
1217
1295
  } finally {
1296
+ try {
1297
+ await saveThreadState(
1298
+ threadId,
1299
+ stateManager.getPersistedSlice(),
1300
+ threadKey
1301
+ );
1302
+ } catch (persistError) {
1303
+ log.warn("failed to persist thread state", {
1304
+ agentName,
1305
+ threadId,
1306
+ error: persistError instanceof Error ? persistError.message : String(persistError)
1307
+ });
1308
+ }
1218
1309
  await callSessionEnd(exitReason, stateManager.getTurns());
1219
1310
  if (sandboxOwned && sandboxId && sandboxOps) {
1220
1311
  switch (sandboxShutdown) {
@@ -1251,6 +1342,12 @@ async function createSession({
1251
1342
  ...baseSnapshot && { hasBaseSnapshot: true },
1252
1343
  ...exitSnapshot && { hasExitSnapshot: true }
1253
1344
  });
1345
+ if (onSessionExit) {
1346
+ onSessionExit({
1347
+ ...sandboxId && { sandboxId },
1348
+ ...exitSnapshot && { snapshot: exitSnapshot }
1349
+ });
1350
+ }
1254
1351
  return {
1255
1352
  threadId,
1256
1353
  finalMessage,
@@ -1279,6 +1376,15 @@ function defineWorkflow(config, fn) {
1279
1376
  return workflow;
1280
1377
  }
1281
1378
 
1379
+ // src/lib/thread/keys.ts
1380
+ var THREAD_TTL_SECONDS = 60 * 60 * 24 * 90;
1381
+ function getThreadListKey(threadKey, threadId) {
1382
+ return `${threadKey}:thread:${threadId}`;
1383
+ }
1384
+ function getThreadMetaKey(threadKey, threadId) {
1385
+ return `${threadKey}:meta:thread:${threadId}`;
1386
+ }
1387
+
1282
1388
  // src/lib/types.ts
1283
1389
  function isTerminalStatus(status) {
1284
1390
  return status === "COMPLETED" || status === "FAILED" || status === "CANCELLED";
@@ -1298,11 +1404,19 @@ function createAgentStateManager({
1298
1404
  let systemPrompt = initialState?.systemPrompt;
1299
1405
  const tasks = new Map(initialState?.tasks);
1300
1406
  const {
1301
- status: _,
1302
- version: __,
1303
- turns: ___,
1304
- tasks: ____,
1305
- tools: _____,
1407
+ status: _status,
1408
+ version: _version,
1409
+ turns: _turns,
1410
+ tasks: _tasks,
1411
+ tools: _tools,
1412
+ systemPrompt: _systemPrompt,
1413
+ fileTree: _fileTree,
1414
+ inlineFiles: _inlineFiles,
1415
+ virtualFsCtx: _virtualFsCtx,
1416
+ totalInputTokens: _totalInputTokens,
1417
+ totalOutputTokens: _totalOutputTokens,
1418
+ cachedWriteTokens: _cachedWriteTokens,
1419
+ cachedReadTokens: _cachedReadTokens,
1306
1420
  ...custom
1307
1421
  } = initialState ?? {};
1308
1422
  const customState = custom;
@@ -1382,7 +1496,14 @@ function createAgentStateManager({
1382
1496
  version++;
1383
1497
  },
1384
1498
  mergeUpdate(update) {
1385
- Object.assign(customState, update);
1499
+ const { tasks: nextTasks, ...rest } = update;
1500
+ if (nextTasks) {
1501
+ tasks.clear();
1502
+ for (const [id, task] of nextTasks) {
1503
+ tasks.set(id, task);
1504
+ }
1505
+ }
1506
+ Object.assign(customState, rest);
1386
1507
  version++;
1387
1508
  },
1388
1509
  getCurrentState() {
@@ -1420,6 +1541,12 @@ function createAgentStateManager({
1420
1541
  }
1421
1542
  return deleted;
1422
1543
  },
1544
+ getPersistedSlice() {
1545
+ return {
1546
+ tasks: Array.from(tasks.entries()),
1547
+ custom: { ...customState }
1548
+ };
1549
+ },
1423
1550
  updateUsage(usage) {
1424
1551
  totalInputTokens += usage.inputTokens ?? 0;
1425
1552
  totalOutputTokens += usage.outputTokens ?? 0;
@@ -1463,22 +1590,42 @@ function defineSubagentWorkflow(config, fn) {
1463
1590
  });
1464
1591
  }
1465
1592
  const parentHandle = getExternalWorkflowHandle(parent.workflowId);
1593
+ let capturedSandboxId;
1594
+ let capturedSnapshot;
1595
+ let capturedBaseSnapshot;
1596
+ let capturedThreadId;
1466
1597
  const sessionInput = {
1467
1598
  agentName: config.name,
1468
1599
  sandboxShutdown: effectiveShutdown,
1469
1600
  ...workflowInput.thread && { thread: workflowInput.thread },
1470
1601
  ...workflowInput.sandbox && { sandbox: workflowInput.sandbox },
1471
- onSandboxReady: (sandboxId) => {
1602
+ onSandboxReady: ({ sandboxId, baseSnapshot }) => {
1603
+ capturedBaseSnapshot = baseSnapshot;
1472
1604
  const isReuse = workflowInput.sandbox?.mode === "continue";
1473
1605
  if (!isReuse) {
1474
1606
  void parentHandle.signal(childSandboxReadySignal, {
1475
1607
  childWorkflowId: workflowInfo().workflowId,
1476
- sandboxId
1608
+ sandboxId,
1609
+ ...baseSnapshot && { baseSnapshot }
1477
1610
  });
1478
1611
  }
1612
+ },
1613
+ onSessionExit: ({ sandboxId, snapshot, threadId }) => {
1614
+ capturedSandboxId = sandboxId;
1615
+ capturedSnapshot = snapshot;
1616
+ capturedThreadId = threadId;
1617
+ }
1618
+ };
1619
+ const result = await fn(prompt, sessionInput, context ?? {});
1620
+ return {
1621
+ ...result,
1622
+ ...capturedThreadId !== void 0 && { threadId: capturedThreadId },
1623
+ ...capturedSandboxId !== void 0 && { sandboxId: capturedSandboxId },
1624
+ ...capturedSnapshot !== void 0 && { snapshot: capturedSnapshot },
1625
+ ...capturedBaseSnapshot !== void 0 && {
1626
+ baseSnapshot: capturedBaseSnapshot
1479
1627
  }
1480
1628
  };
1481
- return fn(prompt, sessionInput, context ?? {});
1482
1629
  };
1483
1630
  Object.defineProperty(workflow, "name", { value: config.name });
1484
1631
  return Object.assign(workflow, {
@@ -2137,6 +2284,6 @@ var createAskUserQuestionHandler = () => async (args) => {
2137
2284
  };
2138
2285
  };
2139
2286
 
2140
- export { SandboxNotFoundError, SandboxNotSupportedError, applyVirtualTreeMutations, askUserQuestionTool, bashTool, composeHooks, createAgentStateManager, createAskUserQuestionHandler, createBashToolDescription, createObservabilityHooks, createReadSkillHandler, createReadSkillTool, createSession, createTaskCreateHandler, createTaskGetHandler, createTaskListHandler, createTaskUpdateHandler, createToolRouter, defineSubagent, defineSubagentWorkflow, defineTool, defineWorkflow, editTool, filesWithMimeType, formatVirtualFileTree, getShortId, globTool, grepTool, hasDirectory, hasFileWithMimeType, hasNoOtherToolCalls, isTerminalStatus, parseSkillFile, proxyRunAgent, proxyVirtualFsOps, readFileTool, taskCreateTool, taskGetTool, taskListTool, taskUpdateTool, writeFileTool };
2287
+ export { DEFAULT_SUBAGENT_WORKFLOW_RUN_TIMEOUT, SandboxNotFoundError, SandboxNotSupportedError, THREAD_TTL_SECONDS, applyVirtualTreeMutations, askUserQuestionTool, bashTool, composeHooks, createAgentStateManager, createAskUserQuestionHandler, createBashToolDescription, createObservabilityHooks, createReadSkillHandler, createReadSkillTool, createSession, createTaskCreateHandler, createTaskGetHandler, createTaskListHandler, createTaskUpdateHandler, createToolRouter, defineSubagent, defineSubagentWorkflow, defineTool, defineWorkflow, editTool, filesWithMimeType, formatVirtualFileTree, getShortId, getThreadListKey, getThreadMetaKey, globTool, grepTool, hasDirectory, hasFileWithMimeType, hasNoOtherToolCalls, isTerminalStatus, parseSkillFile, proxyRunAgent, proxyVirtualFsOps, readFileTool, taskCreateTool, taskGetTool, taskListTool, taskUpdateTool, writeFileTool };
2141
2288
  //# sourceMappingURL=workflow.js.map
2142
2289
  //# sourceMappingURL=workflow.js.map