zeitlich 0.2.14 → 0.2.16
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 +62 -12
- package/dist/adapters/sandbox/daytona/index.cjs +52 -23
- package/dist/adapters/sandbox/daytona/index.cjs.map +1 -1
- package/dist/adapters/sandbox/daytona/index.d.cts +10 -2
- package/dist/adapters/sandbox/daytona/index.d.ts +10 -2
- package/dist/adapters/sandbox/daytona/index.js +52 -23
- package/dist/adapters/sandbox/daytona/index.js.map +1 -1
- package/dist/adapters/sandbox/inmemory/index.cjs +21 -16
- package/dist/adapters/sandbox/inmemory/index.cjs.map +1 -1
- package/dist/adapters/sandbox/inmemory/index.d.cts +1 -1
- package/dist/adapters/sandbox/inmemory/index.d.ts +1 -1
- package/dist/adapters/sandbox/inmemory/index.js +21 -16
- package/dist/adapters/sandbox/inmemory/index.js.map +1 -1
- package/dist/adapters/sandbox/virtual/index.cjs +38 -38
- package/dist/adapters/sandbox/virtual/index.cjs.map +1 -1
- package/dist/adapters/sandbox/virtual/index.d.cts +6 -6
- package/dist/adapters/sandbox/virtual/index.d.ts +6 -6
- package/dist/adapters/sandbox/virtual/index.js +37 -37
- package/dist/adapters/sandbox/virtual/index.js.map +1 -1
- package/dist/adapters/thread/google-genai/index.cjs +22 -0
- package/dist/adapters/thread/google-genai/index.cjs.map +1 -1
- package/dist/adapters/thread/google-genai/index.d.cts +3 -3
- package/dist/adapters/thread/google-genai/index.d.ts +3 -3
- package/dist/adapters/thread/google-genai/index.js +22 -0
- package/dist/adapters/thread/google-genai/index.js.map +1 -1
- package/dist/adapters/thread/langchain/index.cjs +22 -0
- package/dist/adapters/thread/langchain/index.cjs.map +1 -1
- package/dist/adapters/thread/langchain/index.d.cts +3 -3
- package/dist/adapters/thread/langchain/index.d.ts +3 -3
- package/dist/adapters/thread/langchain/index.js +22 -0
- package/dist/adapters/thread/langchain/index.js.map +1 -1
- package/dist/index.cjs +38 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +38 -11
- package/dist/index.js.map +1 -1
- package/dist/{types-B9ljZewB.d.cts → types-35POpVfa.d.cts} +6 -0
- package/dist/{types-B9ljZewB.d.ts → types-35POpVfa.d.ts} +6 -0
- package/dist/{types-CDubRtad.d.cts → types-BMRzfELQ.d.cts} +2 -0
- package/dist/{types-CDubRtad.d.ts → types-BMRzfELQ.d.ts} +2 -0
- package/dist/{types-CwwgQ_9H.d.ts → types-BSOte_8s.d.ts} +6 -2
- package/dist/{types-BVP87m_W.d.cts → types-DCi2qXjN.d.cts} +6 -2
- package/dist/{types-GpMU4b0w.d.cts → types-Drli9aCK.d.cts} +3 -1
- package/dist/{types-B4C9txdq.d.ts → types-XPtivmSJ.d.ts} +3 -1
- package/dist/workflow.cjs +23 -11
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.d.cts +6 -6
- package/dist/workflow.d.ts +6 -6
- package/dist/workflow.js +23 -11
- package/dist/workflow.js.map +1 -1
- package/package.json +7 -3
- package/src/adapters/sandbox/daytona/filesystem.ts +43 -19
- package/src/adapters/sandbox/daytona/index.ts +16 -3
- package/src/adapters/sandbox/daytona/types.ts +4 -0
- package/src/adapters/sandbox/inmemory/index.ts +22 -16
- package/src/adapters/sandbox/virtual/filesystem.ts +29 -31
- package/src/adapters/sandbox/virtual/index.ts +5 -3
- package/src/adapters/sandbox/virtual/provider.ts +5 -2
- package/src/adapters/sandbox/virtual/types.ts +3 -0
- package/src/adapters/sandbox/virtual/with-virtual-sandbox.ts +4 -3
- package/src/adapters/thread/google-genai/activities.ts +11 -0
- package/src/adapters/thread/langchain/activities.ts +11 -0
- package/src/lib/sandbox/tree.integration.test.ts +153 -0
- package/src/lib/sandbox/types.ts +2 -0
- package/src/lib/session/session-edge-cases.integration.test.ts +962 -0
- package/src/lib/session/session.integration.test.ts +852 -0
- package/src/lib/session/session.ts +11 -5
- package/src/lib/session/types.ts +2 -0
- package/src/lib/skills/skills.integration.test.ts +308 -0
- package/src/lib/state/manager.integration.test.ts +342 -0
- package/src/lib/subagent/register.ts +22 -7
- package/src/lib/subagent/subagent.integration.test.ts +467 -0
- package/src/lib/thread/id.test.ts +50 -0
- package/src/lib/thread/manager.ts +20 -1
- package/src/lib/thread/types.ts +6 -0
- package/src/lib/tool-router/auto-append-sandbox.integration.test.ts +344 -0
- package/src/lib/tool-router/router-edge-cases.integration.test.ts +623 -0
- package/src/lib/tool-router/router.integration.test.ts +699 -0
- package/src/lib/types.test.ts +29 -0
package/dist/index.d.cts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { BashArgs, FileEditArgs, GlobArgs, FileReadArgs, FileWriteArgs } from './workflow.cjs';
|
|
2
2
|
export { AskUserQuestionArgs, GrepArgs, ReadSkillArgs, SubagentArgs, TaskCreateArgs, TaskGetArgs, TaskListArgs, TaskUpdateArgs, applyVirtualTreeMutations, askUserQuestionTool, bashTool, createAgentStateManager, createAskUserQuestionHandler, createBashToolDescription, createReadSkillHandler, createReadSkillTool, createSession, createTaskCreateHandler, createTaskGetHandler, createTaskListHandler, createTaskUpdateHandler, createToolRouter, defineSubagent, defineTool, editTool, formatVirtualFileTree, getShortId, globTool, grepTool, hasNoOtherToolCalls, parseSkillFile, proxyDefaultThreadOps, proxySandboxOps, readFileTool, taskCreateTool, taskGetTool, taskListTool, taskUpdateTool, writeFileTool } from './workflow.cjs';
|
|
3
|
-
import { S as SkillProvider, b as SkillMetadata, c as Skill } from './types-
|
|
4
|
-
export { A as AgentResponse, d as AgentState, e as AgentStateManager, H as Hooks, J as JsonPrimitive, f as JsonSerializable, g as JsonValue, M as ModelInvoker, a as ModelInvokerConfig, P as PostHumanMessageAppendHook, h as PostHumanMessageAppendHookContext, i as PreHumanMessageAppendHook, j as PreHumanMessageAppendHookContext, R as RunAgentActivity, k as SessionConfig, l as SessionEndHook, m as SessionEndHookContext, n as SessionStartHook, o as SessionStartHookContext, p as SubagentConfig, q as SubagentHandlerResponse, r as SubagentHooks, s as SubagentInput, t as SubagentWorkflow, T as ThreadOps, Z as ZeitlichSession } from './types-
|
|
5
|
-
import { T as ThreadManagerConfig, B as BaseThreadManager } from './types-
|
|
3
|
+
import { S as SkillProvider, b as SkillMetadata, c as Skill } from './types-Drli9aCK.cjs';
|
|
4
|
+
export { A as AgentResponse, d as AgentState, e as AgentStateManager, H as Hooks, J as JsonPrimitive, f as JsonSerializable, g as JsonValue, M as ModelInvoker, a as ModelInvokerConfig, P as PostHumanMessageAppendHook, h as PostHumanMessageAppendHookContext, i as PreHumanMessageAppendHook, j as PreHumanMessageAppendHookContext, R as RunAgentActivity, k as SessionConfig, l as SessionEndHook, m as SessionEndHookContext, n as SessionStartHook, o as SessionStartHookContext, p as SubagentConfig, q as SubagentHandlerResponse, r as SubagentHooks, s as SubagentInput, t as SubagentWorkflow, T as ThreadOps, Z as ZeitlichSession } from './types-Drli9aCK.cjs';
|
|
5
|
+
import { T as ThreadManagerConfig, B as BaseThreadManager } from './types-35POpVfa.cjs';
|
|
6
6
|
import { R as RouterContext, j as ToolResultConfig, A as ActivityToolHandler, c as ToolHandlerResponse, B as BaseAgentState, g as RunAgentConfig } from './types-BMXzv7TN.cjs';
|
|
7
7
|
export { l as AgentConfig, m as AgentFile, h as AgentStatus, n as AppendToolResultFn, C as ContentPart, I as InferToolResults, M as MessageContent, o as ParsedToolCall, p as ParsedToolCallUnion, q as PostToolUseFailureHook, r as PostToolUseFailureHookContext, d as PostToolUseFailureHookResult, s as PostToolUseHook, t as PostToolUseHookContext, u as PreToolUseHook, v as PreToolUseHookContext, P as PreToolUseHookResult, w as ProcessToolCallsContext, e as RawToolCall, x as SerializableToolDefinition, S as SessionExitReason, y as TaskStatus, f as TokenUsage, z as ToolArgs, D as ToolCallResult, k as ToolCallResultUnion, i as ToolDefinition, E as ToolHandler, F as ToolHooks, a as ToolMap, T as ToolMessageContent, G as ToolNames, H as ToolResult, J as ToolRouter, b as ToolRouterHooks, K as ToolWithHandler, W as WorkflowTask, L as isTerminalStatus } from './types-BMXzv7TN.cjs';
|
|
8
|
-
import { S as Sandbox, a as SandboxFileSystem, d as SandboxCreateOptions, b as SandboxProvider, f as SandboxSnapshot, g as SandboxOps, E as ExecResult } from './types-
|
|
9
|
-
export { h as ExecOptions, c as SandboxCapabilities, e as SandboxCreateResult, D as SandboxDirentEntry, F as SandboxFileStat, i as SandboxNotFoundError, j as SandboxNotSupportedError } from './types-
|
|
8
|
+
import { S as Sandbox, a as SandboxFileSystem, d as SandboxCreateOptions, b as SandboxProvider, f as SandboxSnapshot, g as SandboxOps, E as ExecResult } from './types-BMRzfELQ.cjs';
|
|
9
|
+
export { h as ExecOptions, c as SandboxCapabilities, e as SandboxCreateResult, D as SandboxDirentEntry, F as SandboxFileStat, i as SandboxNotFoundError, j as SandboxNotSupportedError } from './types-BMRzfELQ.cjs';
|
|
10
10
|
import { WorkflowClient } from '@temporalio/client';
|
|
11
|
-
export { c as FileEntry, F as FileEntryMetadata, a as FileResolver, T as TreeMutation, e as VirtualFileTree, g as VirtualSandboxState } from './types-
|
|
11
|
+
export { c as FileEntry, F as FileEntryMetadata, a as FileResolver, T as TreeMutation, e as VirtualFileTree, g as VirtualSandboxState } from './types-DCi2qXjN.cjs';
|
|
12
12
|
import '@temporalio/workflow';
|
|
13
13
|
import 'zod';
|
|
14
14
|
import '@temporalio/common';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { BashArgs, FileEditArgs, GlobArgs, FileReadArgs, FileWriteArgs } from './workflow.js';
|
|
2
2
|
export { AskUserQuestionArgs, GrepArgs, ReadSkillArgs, SubagentArgs, TaskCreateArgs, TaskGetArgs, TaskListArgs, TaskUpdateArgs, applyVirtualTreeMutations, askUserQuestionTool, bashTool, createAgentStateManager, createAskUserQuestionHandler, createBashToolDescription, createReadSkillHandler, createReadSkillTool, createSession, createTaskCreateHandler, createTaskGetHandler, createTaskListHandler, createTaskUpdateHandler, createToolRouter, defineSubagent, defineTool, editTool, formatVirtualFileTree, getShortId, globTool, grepTool, hasNoOtherToolCalls, parseSkillFile, proxyDefaultThreadOps, proxySandboxOps, readFileTool, taskCreateTool, taskGetTool, taskListTool, taskUpdateTool, writeFileTool } from './workflow.js';
|
|
3
|
-
import { S as SkillProvider, b as SkillMetadata, c as Skill } from './types-
|
|
4
|
-
export { A as AgentResponse, d as AgentState, e as AgentStateManager, H as Hooks, J as JsonPrimitive, f as JsonSerializable, g as JsonValue, M as ModelInvoker, a as ModelInvokerConfig, P as PostHumanMessageAppendHook, h as PostHumanMessageAppendHookContext, i as PreHumanMessageAppendHook, j as PreHumanMessageAppendHookContext, R as RunAgentActivity, k as SessionConfig, l as SessionEndHook, m as SessionEndHookContext, n as SessionStartHook, o as SessionStartHookContext, p as SubagentConfig, q as SubagentHandlerResponse, r as SubagentHooks, s as SubagentInput, t as SubagentWorkflow, T as ThreadOps, Z as ZeitlichSession } from './types-
|
|
5
|
-
import { T as ThreadManagerConfig, B as BaseThreadManager } from './types-
|
|
3
|
+
import { S as SkillProvider, b as SkillMetadata, c as Skill } from './types-XPtivmSJ.js';
|
|
4
|
+
export { A as AgentResponse, d as AgentState, e as AgentStateManager, H as Hooks, J as JsonPrimitive, f as JsonSerializable, g as JsonValue, M as ModelInvoker, a as ModelInvokerConfig, P as PostHumanMessageAppendHook, h as PostHumanMessageAppendHookContext, i as PreHumanMessageAppendHook, j as PreHumanMessageAppendHookContext, R as RunAgentActivity, k as SessionConfig, l as SessionEndHook, m as SessionEndHookContext, n as SessionStartHook, o as SessionStartHookContext, p as SubagentConfig, q as SubagentHandlerResponse, r as SubagentHooks, s as SubagentInput, t as SubagentWorkflow, T as ThreadOps, Z as ZeitlichSession } from './types-XPtivmSJ.js';
|
|
5
|
+
import { T as ThreadManagerConfig, B as BaseThreadManager } from './types-35POpVfa.js';
|
|
6
6
|
import { R as RouterContext, j as ToolResultConfig, A as ActivityToolHandler, c as ToolHandlerResponse, B as BaseAgentState, g as RunAgentConfig } from './types-BMXzv7TN.js';
|
|
7
7
|
export { l as AgentConfig, m as AgentFile, h as AgentStatus, n as AppendToolResultFn, C as ContentPart, I as InferToolResults, M as MessageContent, o as ParsedToolCall, p as ParsedToolCallUnion, q as PostToolUseFailureHook, r as PostToolUseFailureHookContext, d as PostToolUseFailureHookResult, s as PostToolUseHook, t as PostToolUseHookContext, u as PreToolUseHook, v as PreToolUseHookContext, P as PreToolUseHookResult, w as ProcessToolCallsContext, e as RawToolCall, x as SerializableToolDefinition, S as SessionExitReason, y as TaskStatus, f as TokenUsage, z as ToolArgs, D as ToolCallResult, k as ToolCallResultUnion, i as ToolDefinition, E as ToolHandler, F as ToolHooks, a as ToolMap, T as ToolMessageContent, G as ToolNames, H as ToolResult, J as ToolRouter, b as ToolRouterHooks, K as ToolWithHandler, W as WorkflowTask, L as isTerminalStatus } from './types-BMXzv7TN.js';
|
|
8
|
-
import { S as Sandbox, a as SandboxFileSystem, d as SandboxCreateOptions, b as SandboxProvider, f as SandboxSnapshot, g as SandboxOps, E as ExecResult } from './types-
|
|
9
|
-
export { h as ExecOptions, c as SandboxCapabilities, e as SandboxCreateResult, D as SandboxDirentEntry, F as SandboxFileStat, i as SandboxNotFoundError, j as SandboxNotSupportedError } from './types-
|
|
8
|
+
import { S as Sandbox, a as SandboxFileSystem, d as SandboxCreateOptions, b as SandboxProvider, f as SandboxSnapshot, g as SandboxOps, E as ExecResult } from './types-BMRzfELQ.js';
|
|
9
|
+
export { h as ExecOptions, c as SandboxCapabilities, e as SandboxCreateResult, D as SandboxDirentEntry, F as SandboxFileStat, i as SandboxNotFoundError, j as SandboxNotSupportedError } from './types-BMRzfELQ.js';
|
|
10
10
|
import { WorkflowClient } from '@temporalio/client';
|
|
11
|
-
export { c as FileEntry, F as FileEntryMetadata, a as FileResolver, T as TreeMutation, e as VirtualFileTree, g as VirtualSandboxState } from './types-
|
|
11
|
+
export { c as FileEntry, F as FileEntryMetadata, a as FileResolver, T as TreeMutation, e as VirtualFileTree, g as VirtualSandboxState } from './types-BSOte_8s.js';
|
|
12
12
|
import '@temporalio/workflow';
|
|
13
13
|
import 'zod';
|
|
14
14
|
import '@temporalio/common';
|
package/dist/index.js
CHANGED
|
@@ -380,16 +380,25 @@ function createSubagentHandler(subagents) {
|
|
|
380
380
|
|
|
381
381
|
// src/lib/subagent/register.ts
|
|
382
382
|
function buildSubagentRegistration(subagents) {
|
|
383
|
-
|
|
384
|
-
|
|
383
|
+
if (subagents.length === 0) return null;
|
|
384
|
+
const getEnabled = () => subagents.filter((s) => s.enabled ?? true);
|
|
385
385
|
const subagentHooksMap = /* @__PURE__ */ new Map();
|
|
386
|
-
for (const s of
|
|
386
|
+
for (const s of subagents) {
|
|
387
387
|
if (s.hooks) subagentHooksMap.set(s.agentName, s.hooks);
|
|
388
388
|
}
|
|
389
389
|
const resolveSubagentName = (args) => args.subagent;
|
|
390
390
|
return {
|
|
391
|
-
|
|
392
|
-
|
|
391
|
+
name: SUBAGENT_TOOL_NAME,
|
|
392
|
+
get enabled() {
|
|
393
|
+
return getEnabled().length > 0;
|
|
394
|
+
},
|
|
395
|
+
get description() {
|
|
396
|
+
return createSubagentTool(getEnabled()).description;
|
|
397
|
+
},
|
|
398
|
+
get schema() {
|
|
399
|
+
return createSubagentTool(getEnabled()).schema;
|
|
400
|
+
},
|
|
401
|
+
handler: createSubagentHandler(subagents),
|
|
393
402
|
...subagentHooksMap.size > 0 && {
|
|
394
403
|
hooks: {
|
|
395
404
|
onPreToolUse: async (ctx) => {
|
|
@@ -480,12 +489,14 @@ var createSession = async ({
|
|
|
480
489
|
sandbox: sandboxOps,
|
|
481
490
|
sandboxId: inheritedSandboxId
|
|
482
491
|
}) => {
|
|
483
|
-
const
|
|
492
|
+
const sourceThreadId = continueThread ? providedThreadId : void 0;
|
|
493
|
+
const threadId = continueThread && providedThreadId ? getShortId() : providedThreadId ?? getShortId();
|
|
484
494
|
const {
|
|
485
495
|
appendToolResult,
|
|
486
496
|
appendHumanMessage,
|
|
487
497
|
initializeThread,
|
|
488
|
-
appendSystemMessage
|
|
498
|
+
appendSystemMessage,
|
|
499
|
+
forkThread
|
|
489
500
|
} = threadOps ?? proxyDefaultThreadOps();
|
|
490
501
|
const plugins = [];
|
|
491
502
|
if (subagents) {
|
|
@@ -544,9 +555,7 @@ var createSession = async ({
|
|
|
544
555
|
const result = await sandboxOps.createSandbox({ id: threadId });
|
|
545
556
|
sandboxId = result.sandboxId;
|
|
546
557
|
if (result.stateUpdate) {
|
|
547
|
-
stateManager.mergeUpdate(
|
|
548
|
-
result.stateUpdate
|
|
549
|
-
);
|
|
558
|
+
stateManager.mergeUpdate(result.stateUpdate);
|
|
550
559
|
}
|
|
551
560
|
}
|
|
552
561
|
if (hooks.onSessionStart) {
|
|
@@ -557,7 +566,9 @@ var createSession = async ({
|
|
|
557
566
|
});
|
|
558
567
|
}
|
|
559
568
|
const systemPrompt = stateManager.getSystemPrompt();
|
|
560
|
-
if (
|
|
569
|
+
if (continueThread && sourceThreadId) {
|
|
570
|
+
await forkThread(sourceThreadId, threadId);
|
|
571
|
+
} else {
|
|
561
572
|
if (appendSystemPrompt) {
|
|
562
573
|
if (!systemPrompt || systemPrompt.trim() === "") {
|
|
563
574
|
throw ApplicationFailure.create({
|
|
@@ -629,6 +640,7 @@ var createSession = async ({
|
|
|
629
640
|
);
|
|
630
641
|
if (!conditionMet) {
|
|
631
642
|
stateManager.cancel();
|
|
643
|
+
exitReason = "cancelled";
|
|
632
644
|
await condition(() => false, "2s");
|
|
633
645
|
break;
|
|
634
646
|
}
|
|
@@ -744,6 +756,21 @@ function createThreadManager(config) {
|
|
|
744
756
|
await redis.expire(redisKey, THREAD_TTL_SECONDS);
|
|
745
757
|
}
|
|
746
758
|
},
|
|
759
|
+
async fork(newThreadId) {
|
|
760
|
+
await assertThreadExists();
|
|
761
|
+
const data = await redis.lrange(redisKey, 0, -1);
|
|
762
|
+
const forked = createThreadManager({
|
|
763
|
+
...config,
|
|
764
|
+
threadId: newThreadId
|
|
765
|
+
});
|
|
766
|
+
await forked.initialize();
|
|
767
|
+
if (data.length > 0) {
|
|
768
|
+
const newKey = getThreadKey(newThreadId, key);
|
|
769
|
+
await redis.rpush(newKey, ...data);
|
|
770
|
+
await redis.expire(newKey, THREAD_TTL_SECONDS);
|
|
771
|
+
}
|
|
772
|
+
return forked;
|
|
773
|
+
},
|
|
747
774
|
async delete() {
|
|
748
775
|
await redis.del(redisKey, metaKey);
|
|
749
776
|
}
|