zeitlich 0.2.38 → 0.2.40
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 +18 -0
- package/dist/{activities-BKhMtKDd.d.ts → activities-CULxRzJ1.d.ts} +4 -6
- package/dist/{activities-CDcwkRZs.d.cts → activities-CvUrG3YG.d.cts} +4 -6
- package/dist/adapter-id-BB-mmrts.d.cts +17 -0
- package/dist/adapter-id-BB-mmrts.d.ts +17 -0
- package/dist/adapter-id-CMwVrVqv.d.cts +17 -0
- package/dist/adapter-id-CMwVrVqv.d.ts +17 -0
- package/dist/adapter-id-CbY2zeSt.d.cts +17 -0
- package/dist/adapter-id-CbY2zeSt.d.ts +17 -0
- package/dist/adapters/thread/anthropic/index.cjs +140 -23
- package/dist/adapters/thread/anthropic/index.cjs.map +1 -1
- package/dist/adapters/thread/anthropic/index.d.cts +8 -7
- package/dist/adapters/thread/anthropic/index.d.ts +8 -7
- package/dist/adapters/thread/anthropic/index.js +140 -24
- package/dist/adapters/thread/anthropic/index.js.map +1 -1
- package/dist/adapters/thread/anthropic/workflow.cjs +8 -3
- 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 +8 -4
- package/dist/adapters/thread/anthropic/workflow.js.map +1 -1
- package/dist/adapters/thread/google-genai/index.cjs +140 -23
- package/dist/adapters/thread/google-genai/index.cjs.map +1 -1
- package/dist/adapters/thread/google-genai/index.d.cts +5 -4
- package/dist/adapters/thread/google-genai/index.d.ts +5 -4
- package/dist/adapters/thread/google-genai/index.js +140 -24
- package/dist/adapters/thread/google-genai/index.js.map +1 -1
- package/dist/adapters/thread/google-genai/workflow.cjs +8 -3
- package/dist/adapters/thread/google-genai/workflow.cjs.map +1 -1
- package/dist/adapters/thread/google-genai/workflow.d.cts +5 -4
- package/dist/adapters/thread/google-genai/workflow.d.ts +5 -4
- package/dist/adapters/thread/google-genai/workflow.js +8 -4
- package/dist/adapters/thread/google-genai/workflow.js.map +1 -1
- package/dist/adapters/thread/index.cjs +16 -0
- package/dist/adapters/thread/index.cjs.map +1 -0
- package/dist/adapters/thread/index.d.cts +34 -0
- package/dist/adapters/thread/index.d.ts +34 -0
- package/dist/adapters/thread/index.js +12 -0
- package/dist/adapters/thread/index.js.map +1 -0
- package/dist/adapters/thread/langchain/index.cjs +139 -24
- package/dist/adapters/thread/langchain/index.cjs.map +1 -1
- package/dist/adapters/thread/langchain/index.d.cts +8 -7
- package/dist/adapters/thread/langchain/index.d.ts +8 -7
- package/dist/adapters/thread/langchain/index.js +139 -25
- package/dist/adapters/thread/langchain/index.js.map +1 -1
- package/dist/adapters/thread/langchain/workflow.cjs +8 -3
- 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 +8 -4
- package/dist/adapters/thread/langchain/workflow.js.map +1 -1
- package/dist/index.cjs +267 -48
- 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 +264 -49
- package/dist/index.js.map +1 -1
- package/dist/{proxy-D_3x7RN4.d.cts → proxy-5EbwzaY4.d.cts} +1 -1
- package/dist/{proxy-CUlKSvZS.d.ts → proxy-wZufFfBh.d.ts} +1 -1
- package/dist/{thread-manager-CVu7o2cs.d.ts → thread-manager-BNiIt5r8.d.ts} +2 -4
- package/dist/{thread-manager-c1gPopAG.d.ts → thread-manager-BoN5DOvG.d.cts} +2 -4
- package/dist/{thread-manager-wGi-LqIP.d.cts → thread-manager-BqBAIsED.d.ts} +2 -4
- package/dist/{thread-manager-HSwyh28L.d.cts → thread-manager-DF8WuCRs.d.cts} +2 -4
- package/dist/{types-BH_IRryz.d.ts → types-C7OoY7h8.d.ts} +54 -6
- package/dist/{types-C06FwR96.d.cts → types-Cn2r3ol3.d.cts} +163 -44
- package/dist/{types-BaOw4hKI.d.cts → types-CuISs0Ub.d.cts} +54 -6
- package/dist/{types-DNr31FzL.d.ts → types-DeQH84C_.d.ts} +163 -44
- package/dist/{workflow-CSCkpwAL.d.ts → workflow-C2MZZj5K.d.ts} +82 -2
- package/dist/{workflow-DuvMZ8Vm.d.cts → workflow-DhplIN65.d.cts} +82 -2
- package/dist/workflow.cjs +189 -37
- 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 +186 -38
- package/dist/workflow.js.map +1 -1
- package/package.json +11 -1
- package/src/adapters/thread/adapter-id.test.ts +42 -0
- package/src/adapters/thread/anthropic/activities.ts +33 -7
- package/src/adapters/thread/anthropic/adapter-id.ts +16 -0
- package/src/adapters/thread/anthropic/fork-transform.test.ts +291 -0
- package/src/adapters/thread/anthropic/index.ts +3 -0
- package/src/adapters/thread/anthropic/model-invoker.ts +8 -4
- package/src/adapters/thread/anthropic/proxy.ts +3 -2
- package/src/adapters/thread/anthropic/thread-manager.ts +27 -4
- package/src/adapters/thread/google-genai/activities.ts +33 -7
- package/src/adapters/thread/google-genai/adapter-id.ts +16 -0
- package/src/adapters/thread/google-genai/fork-transform.test.ts +149 -0
- package/src/adapters/thread/google-genai/index.ts +3 -0
- package/src/adapters/thread/google-genai/model-invoker.ts +7 -3
- package/src/adapters/thread/google-genai/proxy.ts +3 -2
- package/src/adapters/thread/google-genai/thread-manager.ts +27 -4
- package/src/adapters/thread/index.ts +39 -0
- package/src/adapters/thread/langchain/activities.ts +33 -7
- package/src/adapters/thread/langchain/adapter-id.ts +16 -0
- package/src/adapters/thread/langchain/fork-transform.test.ts +142 -0
- package/src/adapters/thread/langchain/index.ts +3 -0
- package/src/adapters/thread/langchain/model-invoker.ts +8 -3
- package/src/adapters/thread/langchain/proxy.ts +3 -2
- package/src/adapters/thread/langchain/thread-manager.ts +27 -4
- package/src/lib/lifecycle.ts +3 -1
- package/src/lib/model/types.ts +7 -10
- package/src/lib/session/session-edge-cases.integration.test.ts +131 -63
- package/src/lib/session/session.integration.test.ts +174 -5
- package/src/lib/session/session.ts +69 -28
- package/src/lib/session/types.ts +61 -9
- package/src/lib/state/index.ts +1 -0
- package/src/lib/state/manager.integration.test.ts +109 -0
- package/src/lib/state/manager.ts +38 -8
- package/src/lib/state/types.ts +25 -0
- package/src/lib/subagent/handler.ts +124 -11
- package/src/lib/subagent/index.ts +5 -1
- package/src/lib/subagent/subagent.integration.test.ts +528 -0
- package/src/lib/subagent/types.ts +63 -14
- package/src/lib/subagent/workflow.ts +29 -2
- package/src/lib/thread/index.ts +5 -0
- package/src/lib/thread/keys.test.ts +101 -0
- package/src/lib/thread/keys.ts +94 -0
- package/src/lib/thread/manager.test.ts +139 -0
- package/src/lib/thread/manager.ts +92 -14
- package/src/lib/thread/proxy.ts +2 -0
- package/src/lib/thread/types.ts +60 -6
- package/src/lib/tool-router/types.ts +16 -8
- package/src/lib/types.ts +12 -0
- package/src/workflow.ts +12 -1
- package/tsup.config.ts +1 -0
|
@@ -2,6 +2,7 @@ import type { TokenUsage, ToolResultConfig } from "../types";
|
|
|
2
2
|
import type { JsonValue } from "../state/types";
|
|
3
3
|
import type { z } from "zod";
|
|
4
4
|
import type { ActivityFunctionWithOptions } from "@temporalio/workflow";
|
|
5
|
+
import type { SandboxSnapshot } from "../sandbox/types";
|
|
5
6
|
|
|
6
7
|
// ============================================================================
|
|
7
8
|
// Tool Definition Types
|
|
@@ -140,14 +141,16 @@ export interface ToolHandlerResponse<
|
|
|
140
141
|
*/
|
|
141
142
|
resultAppended?: boolean;
|
|
142
143
|
/**
|
|
143
|
-
* When true, the session will rewind: any in-flight parallel tool
|
|
144
|
-
* are cancelled
|
|
145
|
-
*
|
|
146
|
-
*
|
|
144
|
+
* When true, the session will rewind: any in-flight parallel tool
|
|
145
|
+
* calls are cancelled and the LLM call is retried. The session reuses
|
|
146
|
+
* the same `assistantMessageId` for the retry; the next `runAgent`
|
|
147
|
+
* activity truncates the thread from that id on entry, wiping the
|
|
148
|
+
* triggering assistant message and any tool results already appended
|
|
149
|
+
* before re-invoking the LLM.
|
|
147
150
|
*
|
|
148
151
|
* The `toolResponse` for a rewinding tool call is ignored (never
|
|
149
|
-
* appended) since the
|
|
150
|
-
*
|
|
152
|
+
* appended) since the thread is rewound back to the pre-assistant
|
|
153
|
+
* state on the next invocation.
|
|
151
154
|
*/
|
|
152
155
|
rewind?: boolean;
|
|
153
156
|
/** Token usage from the tool execution (e.g. child agent invocations) */
|
|
@@ -156,6 +159,10 @@ export interface ToolHandlerResponse<
|
|
|
156
159
|
threadId?: string;
|
|
157
160
|
/** Sandbox ID created or used by the handler (e.g. child agent sandbox) */
|
|
158
161
|
sandboxId?: string;
|
|
162
|
+
/** Snapshot captured on exit when `sandboxShutdown === "snapshot"`. */
|
|
163
|
+
snapshot?: SandboxSnapshot;
|
|
164
|
+
/** Snapshot captured immediately after sandbox seeding (before the agent loop starts) when `sandbox.mode === "new"` and `sandboxShutdown === "snapshot"`. Intended as a reusable "base" for new threads that want to skip re-seeding. */
|
|
165
|
+
baseSnapshot?: SandboxSnapshot;
|
|
159
166
|
/** Unvalidated metadata passthrough from handler to hooks (e.g. infrastructure state) */
|
|
160
167
|
metadata?: Record<string, unknown>;
|
|
161
168
|
}
|
|
@@ -291,8 +298,9 @@ export interface ProcessToolCallsContext {
|
|
|
291
298
|
|
|
292
299
|
/**
|
|
293
300
|
* Signal that a tool handler requested a rewind. Attached to the
|
|
294
|
-
* {@link ProcessToolCallsResult} so the session can
|
|
295
|
-
*
|
|
301
|
+
* {@link ProcessToolCallsResult} so the session can reuse the same
|
|
302
|
+
* `assistantMessageId` for the retry; the next `runAgent` activity
|
|
303
|
+
* then truncates the thread from that id on entry.
|
|
296
304
|
*/
|
|
297
305
|
export interface RewindSignal {
|
|
298
306
|
toolCallId: string;
|
package/src/lib/types.ts
CHANGED
|
@@ -92,6 +92,18 @@ export interface RunAgentConfig extends AgentConfig {
|
|
|
92
92
|
threadKey?: string;
|
|
93
93
|
/** Metadata for the session */
|
|
94
94
|
metadata?: Record<string, unknown>;
|
|
95
|
+
/**
|
|
96
|
+
* The id under which the assistant message produced by this call will
|
|
97
|
+
* be appended. The activity truncates the thread from this id on
|
|
98
|
+
* entry (no-op on the first attempt) so that:
|
|
99
|
+
*
|
|
100
|
+
* - Rewind retries can reuse the same id and the previous (bad)
|
|
101
|
+
* assistant + its tool results are wiped before the retry LLM call.
|
|
102
|
+
* - Resetting the Temporal workflow to this activity restores the
|
|
103
|
+
* pre-call thread state: replay re-truncates, re-invokes, and
|
|
104
|
+
* appends under the same id.
|
|
105
|
+
*/
|
|
106
|
+
assistantMessageId: string;
|
|
95
107
|
}
|
|
96
108
|
|
|
97
109
|
/**
|
package/src/workflow.ts
CHANGED
|
@@ -40,6 +40,11 @@ export type {
|
|
|
40
40
|
|
|
41
41
|
// Thread utilities
|
|
42
42
|
export { getShortId } from "./lib/thread/id";
|
|
43
|
+
export {
|
|
44
|
+
THREAD_TTL_SECONDS,
|
|
45
|
+
getThreadListKey,
|
|
46
|
+
getThreadMetaKey,
|
|
47
|
+
} from "./lib/thread/keys";
|
|
43
48
|
|
|
44
49
|
// State management
|
|
45
50
|
export { createAgentStateManager } from "./lib/state";
|
|
@@ -49,6 +54,7 @@ export type {
|
|
|
49
54
|
JsonSerializable,
|
|
50
55
|
JsonValue,
|
|
51
56
|
JsonPrimitive,
|
|
57
|
+
PersistedThreadState,
|
|
52
58
|
} from "./lib/state";
|
|
53
59
|
|
|
54
60
|
// Tool router (includes registry functionality)
|
|
@@ -57,7 +63,11 @@ export {
|
|
|
57
63
|
hasNoOtherToolCalls,
|
|
58
64
|
defineTool,
|
|
59
65
|
} from "./lib/tool-router";
|
|
60
|
-
export {
|
|
66
|
+
export {
|
|
67
|
+
defineSubagent,
|
|
68
|
+
defineSubagentWorkflow,
|
|
69
|
+
DEFAULT_SUBAGENT_WORKFLOW_RUN_TIMEOUT,
|
|
70
|
+
} from "./lib/subagent";
|
|
61
71
|
export type {
|
|
62
72
|
// Tool definition types
|
|
63
73
|
ToolDefinition,
|
|
@@ -153,6 +163,7 @@ export { proxyRunAgent } from "./lib/model/proxy";
|
|
|
153
163
|
// Subagent types
|
|
154
164
|
export type {
|
|
155
165
|
SubagentConfig,
|
|
166
|
+
SubagentChildWorkflowOptions,
|
|
156
167
|
SubagentDefinition,
|
|
157
168
|
SubagentFnResult,
|
|
158
169
|
SubagentHooks,
|
package/tsup.config.ts
CHANGED
|
@@ -4,6 +4,7 @@ export default defineConfig({
|
|
|
4
4
|
entry: {
|
|
5
5
|
index: "src/index.ts",
|
|
6
6
|
workflow: "src/workflow.ts",
|
|
7
|
+
"adapters/thread/index": "src/adapters/thread/index.ts",
|
|
7
8
|
"adapters/thread/langchain/index": "src/adapters/thread/langchain/index.ts",
|
|
8
9
|
"adapters/thread/langchain/workflow":
|
|
9
10
|
"src/adapters/thread/langchain/proxy.ts",
|