zeitlich 0.2.46 → 0.2.48
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.
- package/README.md +66 -6
- package/dist/{activities-CyeiqK_f.d.cts → activities-BlQR5gX4.d.cts} +3 -3
- package/dist/{activities-Bm4TLTid.d.ts → activities-DCaIPQBT.d.ts} +3 -3
- package/dist/adapters/thread/anthropic/index.cjs +105 -6
- package/dist/adapters/thread/anthropic/index.cjs.map +1 -1
- package/dist/adapters/thread/anthropic/index.d.cts +48 -9
- package/dist/adapters/thread/anthropic/index.d.ts +48 -9
- package/dist/adapters/thread/anthropic/index.js +104 -7
- package/dist/adapters/thread/anthropic/index.js.map +1 -1
- package/dist/adapters/thread/anthropic/workflow.cjs +38 -22
- package/dist/adapters/thread/anthropic/workflow.cjs.map +1 -1
- package/dist/adapters/thread/anthropic/workflow.d.cts +5 -4
- package/dist/adapters/thread/anthropic/workflow.d.ts +5 -4
- package/dist/adapters/thread/anthropic/workflow.js +38 -22
- package/dist/adapters/thread/anthropic/workflow.js.map +1 -1
- package/dist/adapters/thread/google-genai/index.d.cts +6 -5
- package/dist/adapters/thread/google-genai/index.d.ts +6 -5
- package/dist/adapters/thread/google-genai/workflow.cjs +38 -22
- package/dist/adapters/thread/google-genai/workflow.cjs.map +1 -1
- package/dist/adapters/thread/google-genai/workflow.d.cts +7 -5
- package/dist/adapters/thread/google-genai/workflow.d.ts +7 -5
- package/dist/adapters/thread/google-genai/workflow.js +38 -22
- package/dist/adapters/thread/google-genai/workflow.js.map +1 -1
- package/dist/adapters/thread/langchain/index.d.cts +6 -5
- package/dist/adapters/thread/langchain/index.d.ts +6 -5
- package/dist/adapters/thread/langchain/workflow.cjs +38 -22
- package/dist/adapters/thread/langchain/workflow.cjs.map +1 -1
- package/dist/adapters/thread/langchain/workflow.d.cts +5 -4
- package/dist/adapters/thread/langchain/workflow.d.ts +5 -4
- package/dist/adapters/thread/langchain/workflow.js +38 -22
- package/dist/adapters/thread/langchain/workflow.js.map +1 -1
- package/dist/{cold-store-BC5L5Z8A.d.cts → cold-store-UL13Sstw.d.cts} +8 -11
- package/dist/{cold-store-CFHwemBJ.d.ts → cold-store-aD4TSKlU.d.ts} +8 -11
- package/dist/index.cjs +311 -99
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +21 -9
- package/dist/index.d.ts +21 -9
- package/dist/index.js +312 -102
- package/dist/index.js.map +1 -1
- package/dist/proxy-BAty3CWM.d.cts +40 -0
- package/dist/proxy-mbnwBhHw.d.ts +40 -0
- package/dist/{thread-manager-DduoSkvJ.d.ts → thread-manager-CICj68PI.d.ts} +2 -2
- package/dist/{thread-manager-D33SUmZa.d.cts → thread-manager-DsXvJ5cJ.d.cts} +2 -2
- package/dist/{thread-manager-B-zy3xrs.d.ts → thread-manager-DtEtbUkp.d.ts} +2 -2
- package/dist/{thread-manager-9tezUcLW.d.cts → thread-manager-R6c3lnJy.d.cts} +2 -2
- package/dist/{types-oxt8GN97.d.cts → types-DDLPnxBh.d.cts} +1 -1
- package/dist/{types-L5bvbF-n.d.ts → types-DF4wzWQG.d.ts} +1 -1
- package/dist/{types-CnuN9T6t.d.cts → types-DWeyCTYK.d.cts} +47 -0
- package/dist/{types-CwN6_tAL.d.ts → types-DwBYd0ij.d.ts} +47 -0
- package/dist/{workflow-DIaIV7L2.d.cts → workflow-DVNPR7eX.d.cts} +17 -2
- package/dist/{workflow-B1TOcHbt.d.ts → workflow-DdaU7_j4.d.ts} +17 -2
- package/dist/workflow.cjs +80 -12
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.d.cts +2 -2
- package/dist/workflow.d.ts +2 -2
- package/dist/workflow.js +80 -13
- package/dist/workflow.js.map +1 -1
- package/package.json +14 -8
- package/src/adapters/thread/anthropic/activities.ts +18 -11
- package/src/adapters/thread/anthropic/index.ts +8 -0
- package/src/adapters/thread/anthropic/model-invoker.test.ts +110 -0
- package/src/adapters/thread/anthropic/model-invoker.ts +26 -5
- package/src/adapters/thread/anthropic/prompt-cache.test.ts +134 -0
- package/src/adapters/thread/anthropic/prompt-cache.ts +163 -0
- package/src/adapters/thread/anthropic/proxy.ts +1 -0
- package/src/adapters/thread/google-genai/proxy.ts +1 -0
- package/src/adapters/thread/langchain/proxy.ts +1 -0
- package/src/index.ts +1 -1
- package/src/lib/lifecycle.ts +13 -1
- package/src/lib/session/session-edge-cases.integration.test.ts +44 -0
- package/src/lib/session/session.ts +15 -0
- package/src/lib/subagent/define.ts +1 -0
- package/src/lib/subagent/handler.ts +41 -6
- package/src/lib/subagent/subagent.integration.test.ts +178 -0
- package/src/lib/subagent/types.ts +16 -0
- package/src/lib/thread/cold-store.test.ts +33 -5
- package/src/lib/thread/cold-store.ts +50 -31
- package/src/lib/thread/proxy.ts +79 -29
- package/src/lib/tool-router/router-edge-cases.integration.test.ts +36 -0
- package/src/lib/tool-router/router.ts +21 -3
- package/src/lib/tool-router/types.ts +20 -0
- package/src/tools/edit/handler.test.ts +177 -0
- package/src/tools/edit/handler.ts +249 -47
- package/src/tools/edit/tool.ts +40 -0
- package/src/tools/task-create/handler.ts +1 -1
- package/src/tools/task-update/handler.ts +1 -1
- package/src/workflow.ts +2 -2
- package/dist/proxy-BxFyd6cg.d.cts +0 -24
- package/dist/proxy-Cskmj4Yx.d.ts +0 -24
package/dist/workflow.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { A as AskUserQuestionArgs, B as BashArgs, D as DEFAULT_SUBAGENT_WORKFLOW_RUN_TIMEOUT, F as FileEditArgs, a as
|
|
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 SessionRequiredCaps, a6 as SessionResult, a7 as SessionStartHook, a8 as SessionStartHookContext, i as Skill, h as SkillMetadata, g as SkillProvider, a9 as SubagentChildWorkflowOptions, aa as SubagentConfig, ab as SubagentContinuationCaps, ac as SubagentDefinition, ad as SubagentFnResult, ae as SubagentHandlerResponse, af as SubagentHooks, ag as SubagentSandboxConfig, ah as SubagentSandboxShutdown, ai as SubagentSessionInput, aj as SubagentWorkflow, ak as SubagentWorkflowInput, al as TaskStatus, am as ThreadInit, T as ThreadOps, an as TokenUsage, ao as ToolArgs, ap as ToolCallResult, aq as ToolCallResultUnion, ar as ToolDefinition, as as ToolHandler, c as ToolHandlerResponse, at as ToolHooks, au as ToolMap, av as ToolNames, aw as ToolResult, e as ToolResultConfig, ax as ToolRouter, ay as ToolRouterHooks, az as ToolWithHandler, k as TreeMutation, aB as VirtualFileTree, aC as VirtualFsOps, aD as VirtualFsState, aE as WorkflowTask, aF as ZeitlichSession, aG as isTerminalStatus } from './types-
|
|
1
|
+
export { A as AskUserQuestionArgs, B as BashArgs, D as DEFAULT_SUBAGENT_WORKFLOW_RUN_TIMEOUT, F as FileEditArgs, a as FileMultiEditArgs, b as FileReadArgs, c as FileWriteArgs, G as GlobArgs, e as GrepArgs, O as ObservabilityHooks, R as ReadSkillArgs, S as SessionEndedEvent, f as SessionStartedEvent, g as SubagentArgs, T as THREAD_TTL_SECONDS, h as TaskCreateArgs, i as TaskGetArgs, j as TaskListArgs, k as TaskUpdateArgs, l as ToolExecutedEvent, m as TurnCompletedEvent, W as WorkflowConfig, n as WorkflowInput, o as WorkflowSessionInput, Z as ZeitlichObservabilitySinks, p as applyVirtualTreeMutations, q as askUserQuestionTool, r as bashTool, s as composeHooks, t as createAgentStateManager, u as createAskUserQuestionHandler, v as createBashToolDescription, w as createObservabilityHooks, x as createReadSkillHandler, y as createReadSkillTool, z as createSession, C as createTaskCreateHandler, E as createTaskGetHandler, H as createTaskListHandler, I as createTaskUpdateHandler, J as createToolRouter, K as defineSubagent, L as defineSubagentWorkflow, M as defineTool, N as defineWorkflow, P as editTool, Q as filesWithMimeType, U as formatVirtualFileTree, V as getShortId, Y as getThreadListKey, _ as getThreadMetaKey, a0 as globTool, a1 as grepTool, a2 as hasDirectory, a3 as hasFileWithMimeType, a4 as hasNoOtherToolCalls, a5 as multiEditTool, a6 as parseSkillFile, a7 as proxyRunAgent, a8 as proxyVirtualFsOps, a9 as readFileTool, aa as taskCreateTool, ab as taskGetTool, ac as taskListTool, ad as taskUpdateTool, ae as writeFileTool } from './workflow-DVNPR7eX.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 SessionRequiredCaps, a6 as SessionResult, a7 as SessionStartHook, a8 as SessionStartHookContext, i as Skill, h as SkillMetadata, g as SkillProvider, a9 as SubagentChildWorkflowOptions, aa as SubagentConfig, ab as SubagentContinuationCaps, ac as SubagentDefinition, ad as SubagentFnResult, ae as SubagentHandlerResponse, af as SubagentHooks, ag as SubagentSandboxConfig, ah as SubagentSandboxShutdown, ai as SubagentSessionInput, aj as SubagentWorkflow, ak as SubagentWorkflowInput, al as TaskStatus, am as ThreadInit, T as ThreadOps, an as TokenUsage, ao as ToolArgs, ap as ToolCallResult, aq as ToolCallResultUnion, ar as ToolDefinition, as as ToolHandler, c as ToolHandlerResponse, at as ToolHooks, au as ToolMap, av as ToolNames, aw as ToolResult, e as ToolResultConfig, ax as ToolRouter, ay as ToolRouterHooks, az as ToolWithHandler, k as TreeMutation, aB as VirtualFileTree, aC as VirtualFsOps, aD as VirtualFsState, aE as WorkflowTask, aF as ZeitlichSession, aG as isTerminalStatus } from './types-DWeyCTYK.cjs';
|
|
3
3
|
export { i as ExecOptions, E as ExecResult, P as PrefixedSandboxOps, b as Sandbox, e as SandboxCapabilities, h as SandboxCapability, a as SandboxCreateOptions, f as SandboxCreateResult, D as SandboxDirentEntry, F as SandboxFileStat, c as SandboxFileSystem, j as SandboxNotFoundError, k as SandboxNotSupportedError, S as SandboxOps, d as SandboxProvider, g as SandboxSnapshot } from './types-CJ7tCdl6.cjs';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import '@temporalio/common';
|
package/dist/workflow.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { A as AskUserQuestionArgs, B as BashArgs, D as DEFAULT_SUBAGENT_WORKFLOW_RUN_TIMEOUT, F as FileEditArgs, a as
|
|
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 SessionRequiredCaps, a6 as SessionResult, a7 as SessionStartHook, a8 as SessionStartHookContext, i as Skill, h as SkillMetadata, g as SkillProvider, a9 as SubagentChildWorkflowOptions, aa as SubagentConfig, ab as SubagentContinuationCaps, ac as SubagentDefinition, ad as SubagentFnResult, ae as SubagentHandlerResponse, af as SubagentHooks, ag as SubagentSandboxConfig, ah as SubagentSandboxShutdown, ai as SubagentSessionInput, aj as SubagentWorkflow, ak as SubagentWorkflowInput, al as TaskStatus, am as ThreadInit, T as ThreadOps, an as TokenUsage, ao as ToolArgs, ap as ToolCallResult, aq as ToolCallResultUnion, ar as ToolDefinition, as as ToolHandler, c as ToolHandlerResponse, at as ToolHooks, au as ToolMap, av as ToolNames, aw as ToolResult, e as ToolResultConfig, ax as ToolRouter, ay as ToolRouterHooks, az as ToolWithHandler, k as TreeMutation, aB as VirtualFileTree, aC as VirtualFsOps, aD as VirtualFsState, aE as WorkflowTask, aF as ZeitlichSession, aG as isTerminalStatus } from './types-
|
|
1
|
+
export { A as AskUserQuestionArgs, B as BashArgs, D as DEFAULT_SUBAGENT_WORKFLOW_RUN_TIMEOUT, F as FileEditArgs, a as FileMultiEditArgs, b as FileReadArgs, c as FileWriteArgs, G as GlobArgs, e as GrepArgs, O as ObservabilityHooks, R as ReadSkillArgs, S as SessionEndedEvent, f as SessionStartedEvent, g as SubagentArgs, T as THREAD_TTL_SECONDS, h as TaskCreateArgs, i as TaskGetArgs, j as TaskListArgs, k as TaskUpdateArgs, l as ToolExecutedEvent, m as TurnCompletedEvent, W as WorkflowConfig, n as WorkflowInput, o as WorkflowSessionInput, Z as ZeitlichObservabilitySinks, p as applyVirtualTreeMutations, q as askUserQuestionTool, r as bashTool, s as composeHooks, t as createAgentStateManager, u as createAskUserQuestionHandler, v as createBashToolDescription, w as createObservabilityHooks, x as createReadSkillHandler, y as createReadSkillTool, z as createSession, C as createTaskCreateHandler, E as createTaskGetHandler, H as createTaskListHandler, I as createTaskUpdateHandler, J as createToolRouter, K as defineSubagent, L as defineSubagentWorkflow, M as defineTool, N as defineWorkflow, P as editTool, Q as filesWithMimeType, U as formatVirtualFileTree, V as getShortId, Y as getThreadListKey, _ as getThreadMetaKey, a0 as globTool, a1 as grepTool, a2 as hasDirectory, a3 as hasFileWithMimeType, a4 as hasNoOtherToolCalls, a5 as multiEditTool, a6 as parseSkillFile, a7 as proxyRunAgent, a8 as proxyVirtualFsOps, a9 as readFileTool, aa as taskCreateTool, ab as taskGetTool, ac as taskListTool, ad as taskUpdateTool, ae as writeFileTool } from './workflow-DdaU7_j4.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 SessionRequiredCaps, a6 as SessionResult, a7 as SessionStartHook, a8 as SessionStartHookContext, i as Skill, h as SkillMetadata, g as SkillProvider, a9 as SubagentChildWorkflowOptions, aa as SubagentConfig, ab as SubagentContinuationCaps, ac as SubagentDefinition, ad as SubagentFnResult, ae as SubagentHandlerResponse, af as SubagentHooks, ag as SubagentSandboxConfig, ah as SubagentSandboxShutdown, ai as SubagentSessionInput, aj as SubagentWorkflow, ak as SubagentWorkflowInput, al as TaskStatus, am as ThreadInit, T as ThreadOps, an as TokenUsage, ao as ToolArgs, ap as ToolCallResult, aq as ToolCallResultUnion, ar as ToolDefinition, as as ToolHandler, c as ToolHandlerResponse, at as ToolHooks, au as ToolMap, av as ToolNames, aw as ToolResult, e as ToolResultConfig, ax as ToolRouter, ay as ToolRouterHooks, az as ToolWithHandler, k as TreeMutation, aB as VirtualFileTree, aC as VirtualFsOps, aD as VirtualFsState, aE as WorkflowTask, aF as ZeitlichSession, aG as isTerminalStatus } from './types-DwBYd0ij.js';
|
|
3
3
|
export { i as ExecOptions, E as ExecResult, P as PrefixedSandboxOps, b as Sandbox, e as SandboxCapabilities, h as SandboxCapability, a as SandboxCreateOptions, f as SandboxCreateResult, D as SandboxDirentEntry, F as SandboxFileStat, c as SandboxFileSystem, j as SandboxNotFoundError, k as SandboxNotSupportedError, S as SandboxOps, d as SandboxProvider, g as SandboxSnapshot } from './types-CJ7tCdl6.js';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import '@temporalio/common';
|
package/dist/workflow.js
CHANGED
|
@@ -117,7 +117,7 @@ function createToolRouter(options) {
|
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
|
-
async function processToolCall(toolCall, turn, sandboxId, onRewindRequested) {
|
|
120
|
+
async function processToolCall(toolCall, turn, sandboxId, onRewindRequested, assistantMessageId) {
|
|
121
121
|
const startTime = Date.now();
|
|
122
122
|
const tool = toolMap.get(toolCall.name);
|
|
123
123
|
const preResult = await runPreHooks(toolCall, tool, turn);
|
|
@@ -152,7 +152,8 @@ function createToolRouter(options) {
|
|
|
152
152
|
...options.threadKey && { threadKey: options.threadKey },
|
|
153
153
|
toolCallId: toolCall.id,
|
|
154
154
|
toolName: toolCall.name,
|
|
155
|
-
...sandboxId !== void 0 && { sandboxId }
|
|
155
|
+
...sandboxId !== void 0 && { sandboxId },
|
|
156
|
+
...assistantMessageId !== void 0 && { assistantMessageId }
|
|
156
157
|
};
|
|
157
158
|
const response = await tool.handler(
|
|
158
159
|
effectiveArgs,
|
|
@@ -279,6 +280,7 @@ function createToolRouter(options) {
|
|
|
279
280
|
}
|
|
280
281
|
const turn = context?.turn ?? 0;
|
|
281
282
|
const sandboxId = context?.sandboxId;
|
|
283
|
+
const assistantMessageId = context?.assistantMessageId;
|
|
282
284
|
let rewindSignal;
|
|
283
285
|
if (options.parallel) {
|
|
284
286
|
const scope = new CancellationScope({ cancellable: true });
|
|
@@ -291,7 +293,13 @@ function createToolRouter(options) {
|
|
|
291
293
|
const outcomes = await scope.run(
|
|
292
294
|
async () => Promise.allSettled(
|
|
293
295
|
toolCalls.map(
|
|
294
|
-
(tc) => processToolCall(
|
|
296
|
+
(tc) => processToolCall(
|
|
297
|
+
tc,
|
|
298
|
+
turn,
|
|
299
|
+
sandboxId,
|
|
300
|
+
onRewindRequested,
|
|
301
|
+
assistantMessageId
|
|
302
|
+
)
|
|
295
303
|
)
|
|
296
304
|
)
|
|
297
305
|
);
|
|
@@ -311,7 +319,13 @@ function createToolRouter(options) {
|
|
|
311
319
|
}
|
|
312
320
|
const results = [];
|
|
313
321
|
for (const toolCall of toolCalls) {
|
|
314
|
-
const outcome = await processToolCall(
|
|
322
|
+
const outcome = await processToolCall(
|
|
323
|
+
toolCall,
|
|
324
|
+
turn,
|
|
325
|
+
sandboxId,
|
|
326
|
+
void 0,
|
|
327
|
+
assistantMessageId
|
|
328
|
+
);
|
|
315
329
|
if (outcome.kind === "rewind") {
|
|
316
330
|
rewindSignal = outcome.signal;
|
|
317
331
|
break;
|
|
@@ -335,6 +349,9 @@ function createToolRouter(options) {
|
|
|
335
349
|
toolName: toolCall.name,
|
|
336
350
|
...context?.sandboxId !== void 0 && {
|
|
337
351
|
sandboxId: context.sandboxId
|
|
352
|
+
},
|
|
353
|
+
...context?.assistantMessageId !== void 0 && {
|
|
354
|
+
assistantMessageId: context.assistantMessageId
|
|
338
355
|
}
|
|
339
356
|
};
|
|
340
357
|
const response = await handler(
|
|
@@ -560,13 +577,27 @@ function createSubagentHandler(subagents) {
|
|
|
560
577
|
}
|
|
561
578
|
const threadMode = config.thread ?? "new";
|
|
562
579
|
const allowsContinuation = threadMode !== "new";
|
|
563
|
-
const
|
|
580
|
+
const newThreadSource = config.newThreadSource ?? "new";
|
|
581
|
+
const usingParentFallback = allowsContinuation && !args.threadId && newThreadSource === "from-parent";
|
|
582
|
+
const continuationThreadId = !allowsContinuation ? void 0 : args.threadId ?? (usingParentFallback ? context.threadId : void 0);
|
|
564
583
|
let thread;
|
|
565
584
|
if (continuationThreadId) {
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
585
|
+
if (threadMode === "fork") {
|
|
586
|
+
thread = {
|
|
587
|
+
mode: "fork",
|
|
588
|
+
threadId: continuationThreadId,
|
|
589
|
+
...usingParentFallback && context.assistantMessageId ? {
|
|
590
|
+
truncateAfterFork: {
|
|
591
|
+
fromMessageId: context.assistantMessageId
|
|
592
|
+
}
|
|
593
|
+
} : {}
|
|
594
|
+
};
|
|
595
|
+
} else {
|
|
596
|
+
thread = {
|
|
597
|
+
mode: "continue",
|
|
598
|
+
threadId: continuationThreadId
|
|
599
|
+
};
|
|
600
|
+
}
|
|
570
601
|
}
|
|
571
602
|
let sandbox;
|
|
572
603
|
let sandboxShutdownOverride;
|
|
@@ -1027,6 +1058,7 @@ async function createSession(config) {
|
|
|
1027
1058
|
appendSystemMessage,
|
|
1028
1059
|
appendAgentMessage,
|
|
1029
1060
|
forkThread,
|
|
1061
|
+
truncateThread,
|
|
1030
1062
|
loadThreadState,
|
|
1031
1063
|
saveThreadState,
|
|
1032
1064
|
hydrateThread,
|
|
@@ -1176,6 +1208,10 @@ async function createSession(config) {
|
|
|
1176
1208
|
if (threadMode === "fork" && sourceThreadId) {
|
|
1177
1209
|
await hydrateThread(sourceThreadId, threadKey);
|
|
1178
1210
|
await forkThread(sourceThreadId, threadId, threadKey);
|
|
1211
|
+
const truncate = threadInit.truncateAfterFork;
|
|
1212
|
+
if (truncate?.fromMessageId) {
|
|
1213
|
+
await truncateThread(threadId, truncate.fromMessageId, threadKey);
|
|
1214
|
+
}
|
|
1179
1215
|
const forkedSlice = await loadThreadState(threadId, threadKey);
|
|
1180
1216
|
if (forkedSlice) rehydrateFromSlice(forkedSlice);
|
|
1181
1217
|
} else if (threadMode === "continue") {
|
|
@@ -1305,7 +1341,10 @@ async function createSession(config) {
|
|
|
1305
1341
|
parsedToolCalls,
|
|
1306
1342
|
{
|
|
1307
1343
|
turn: currentTurn,
|
|
1308
|
-
...sandboxId !== void 0 && { sandboxId }
|
|
1344
|
+
...sandboxId !== void 0 && { sandboxId },
|
|
1345
|
+
...assistantId !== void 0 && {
|
|
1346
|
+
assistantMessageId: assistantId
|
|
1347
|
+
}
|
|
1309
1348
|
}
|
|
1310
1349
|
);
|
|
1311
1350
|
for (const result of toolCallResults) {
|
|
@@ -2112,6 +2151,13 @@ IMPORTANT:
|
|
|
2112
2151
|
}),
|
|
2113
2152
|
strict: true
|
|
2114
2153
|
};
|
|
2154
|
+
var textEditSchema = z.object({
|
|
2155
|
+
old_string: z.string().describe("The exact text to replace"),
|
|
2156
|
+
new_string: z.string().describe("The text to replace it with"),
|
|
2157
|
+
replace_all: z.boolean().optional().describe(
|
|
2158
|
+
"If true, replace all occurrences of old_string for this edit (default: false)"
|
|
2159
|
+
)
|
|
2160
|
+
});
|
|
2115
2161
|
var editTool = {
|
|
2116
2162
|
name: "FileEdit",
|
|
2117
2163
|
description: `Edit specific sections of a file by replacing text.
|
|
@@ -2140,6 +2186,27 @@ IMPORTANT:
|
|
|
2140
2186
|
}),
|
|
2141
2187
|
strict: true
|
|
2142
2188
|
};
|
|
2189
|
+
var multiEditTool = {
|
|
2190
|
+
name: "FileMultiEdit",
|
|
2191
|
+
description: `Apply multiple exact text replacements to one file in order.
|
|
2192
|
+
|
|
2193
|
+
Usage:
|
|
2194
|
+
- Use this when a task needs several related edits in the same file
|
|
2195
|
+
- Each edit is applied to the file content produced by the prior edit
|
|
2196
|
+
- The operation is atomic: if any edit fails, the file is left unchanged
|
|
2197
|
+
|
|
2198
|
+
IMPORTANT:
|
|
2199
|
+
- You must read the file first (in this session) before editing it
|
|
2200
|
+
- Each old_string must match exactly (whitespace-sensitive)
|
|
2201
|
+
- Each old_string must be unique unless that edit uses replace_all: true
|
|
2202
|
+
- old_string and new_string must be different for every edit
|
|
2203
|
+
`,
|
|
2204
|
+
schema: z.object({
|
|
2205
|
+
file_path: z.string().describe("The absolute virtual path to the file to modify"),
|
|
2206
|
+
edits: z.array(textEditSchema).min(1).describe("Exact replacements to apply sequentially to the file")
|
|
2207
|
+
}),
|
|
2208
|
+
strict: true
|
|
2209
|
+
};
|
|
2143
2210
|
var taskCreateTool = {
|
|
2144
2211
|
name: "TaskCreate",
|
|
2145
2212
|
description: `Use this tool to create a structured task list. This helps you track progress, organize complex tasks, and demonstrate thoroughness to the user.
|
|
@@ -2210,7 +2277,7 @@ function createTaskCreateHandler(stateManager) {
|
|
|
2210
2277
|
};
|
|
2211
2278
|
stateManager.setTask(task);
|
|
2212
2279
|
return {
|
|
2213
|
-
toolResponse:
|
|
2280
|
+
toolResponse: `Task ${task.id} created`,
|
|
2214
2281
|
data: task
|
|
2215
2282
|
};
|
|
2216
2283
|
};
|
|
@@ -2309,7 +2376,7 @@ function createTaskUpdateHandler(stateManager) {
|
|
|
2309
2376
|
}
|
|
2310
2377
|
stateManager.setTask(task);
|
|
2311
2378
|
return {
|
|
2312
|
-
toolResponse:
|
|
2379
|
+
toolResponse: `Task ${task.id} updated`,
|
|
2313
2380
|
data: task
|
|
2314
2381
|
};
|
|
2315
2382
|
};
|
|
@@ -2382,6 +2449,6 @@ var createAskUserQuestionHandler = () => async (args) => {
|
|
|
2382
2449
|
};
|
|
2383
2450
|
};
|
|
2384
2451
|
|
|
2385
|
-
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 };
|
|
2452
|
+
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, multiEditTool, parseSkillFile, proxyRunAgent, proxyVirtualFsOps, readFileTool, taskCreateTool, taskGetTool, taskListTool, taskUpdateTool, writeFileTool };
|
|
2386
2453
|
//# sourceMappingURL=workflow.js.map
|
|
2387
2454
|
//# sourceMappingURL=workflow.js.map
|