@strands-agents/sdk 1.0.0 → 1.2.0
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 +6 -0
- package/dist/src/__fixtures__/agent-helpers.d.ts +16 -1
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/agent-helpers.js +42 -0
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.d.ts +2 -1
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.js +20 -3
- package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
- package/dist/src/__tests__/interrupt.test.d.ts +2 -0
- package/dist/src/__tests__/interrupt.test.d.ts.map +1 -0
- package/dist/src/__tests__/interrupt.test.js +264 -0
- package/dist/src/__tests__/interrupt.test.js.map +1 -0
- package/dist/src/__tests__/mcp.test.js +447 -7
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.hook.test.js +551 -1
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.interrupt.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.interrupt.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.interrupt.test.js +779 -0
- package/dist/src/agent/__tests__/agent.interrupt.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.model-retry.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.model-retry.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.model-retry.test.js +161 -0
- package/dist/src/agent/__tests__/agent.model-retry.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.test.js +174 -0
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/__tests__/snapshot.test.js +148 -4
- package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
- package/dist/src/agent/agent-as-tool.d.ts.map +1 -1
- package/dist/src/agent/agent-as-tool.js +2 -3
- package/dist/src/agent/agent-as-tool.js.map +1 -1
- package/dist/src/agent/agent.d.ts +94 -4
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +625 -223
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/snapshot.d.ts +11 -19
- package/dist/src/agent/snapshot.d.ts.map +1 -1
- package/dist/src/agent/snapshot.js +23 -19
- package/dist/src/agent/snapshot.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +230 -9
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +19 -6
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +422 -41
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +75 -1
- package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/conversation-manager.d.ts +67 -22
- package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/conversation-manager.js +65 -13
- package/dist/src/conversation-manager/conversation-manager.js.map +1 -1
- package/dist/src/conversation-manager/index.d.ts +1 -1
- package/dist/src/conversation-manager/index.d.ts.map +1 -1
- package/dist/src/conversation-manager/index.js +1 -1
- package/dist/src/conversation-manager/index.js.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +43 -10
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js +202 -45
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
- package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts +23 -1
- package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/summarizing-conversation-manager.js +39 -17
- package/dist/src/conversation-manager/summarizing-conversation-manager.js.map +1 -1
- package/dist/src/hooks/__tests__/events.test.js +99 -12
- package/dist/src/hooks/__tests__/events.test.js.map +1 -1
- package/dist/src/hooks/__tests__/registry.test.js +166 -2
- package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
- package/dist/src/hooks/events.d.ts +125 -32
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +111 -8
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/index.d.ts +4 -3
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +2 -1
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/registry.d.ts +12 -12
- package/dist/src/hooks/registry.d.ts.map +1 -1
- package/dist/src/hooks/registry.js +55 -15
- package/dist/src/hooks/registry.js.map +1 -1
- package/dist/src/hooks/types.d.ts +23 -0
- package/dist/src/hooks/types.d.ts.map +1 -1
- package/dist/src/hooks/types.js +17 -1
- package/dist/src/hooks/types.js.map +1 -1
- package/dist/src/index.d.ts +12 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/interrupt.d.ts +247 -0
- package/dist/src/interrupt.d.ts.map +1 -0
- package/dist/src/interrupt.js +316 -0
- package/dist/src/interrupt.js.map +1 -0
- package/dist/src/mcp.d.ts +61 -4
- package/dist/src/mcp.d.ts.map +1 -1
- package/dist/src/mcp.js +161 -25
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/models/__tests__/anthropic.test.js +78 -8
- package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +156 -18
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/defaults.test.d.ts +2 -0
- package/dist/src/models/__tests__/defaults.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/defaults.test.js +36 -0
- package/dist/src/models/__tests__/defaults.test.js.map +1 -0
- package/dist/src/models/__tests__/google.test.js +72 -6
- package/dist/src/models/__tests__/google.test.js.map +1 -1
- package/dist/src/models/anthropic.d.ts +10 -0
- package/dist/src/models/anthropic.d.ts.map +1 -1
- package/dist/src/models/anthropic.js +14 -4
- package/dist/src/models/anthropic.js.map +1 -1
- package/dist/src/models/bedrock.d.ts +17 -3
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +80 -13
- package/dist/src/models/bedrock.js.map +1 -1
- package/dist/src/models/defaults.d.ts +10 -0
- package/dist/src/models/defaults.d.ts.map +1 -1
- package/dist/src/models/defaults.js +129 -0
- package/dist/src/models/defaults.js.map +1 -1
- package/dist/src/models/google/model.d.ts.map +1 -1
- package/dist/src/models/google/model.js +4 -2
- package/dist/src/models/google/model.js.map +1 -1
- package/dist/src/models/google/types.d.ts +10 -0
- package/dist/src/models/google/types.d.ts.map +1 -1
- package/dist/src/models/model.d.ts +15 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +18 -0
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/openai/__tests__/chat.test.js +55 -2
- package/dist/src/models/openai/__tests__/chat.test.js.map +1 -1
- package/dist/src/models/openai/__tests__/responses.test.js +19 -0
- package/dist/src/models/openai/__tests__/responses.test.js.map +1 -1
- package/dist/src/models/openai/errors.d.ts.map +1 -1
- package/dist/src/models/openai/errors.js +7 -4
- package/dist/src/models/openai/errors.js.map +1 -1
- package/dist/src/models/openai/model.d.ts.map +1 -1
- package/dist/src/models/openai/model.js +2 -2
- package/dist/src/models/openai/model.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.test.js +69 -0
- package/dist/src/multiagent/__tests__/graph.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.tracer.test.js +14 -0
- package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/interrupts.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/interrupts.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/interrupts.test.js +390 -0
- package/dist/src/multiagent/__tests__/interrupts.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.js +13 -0
- package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/state.test.js +139 -1
- package/dist/src/multiagent/__tests__/state.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/swarm.test.js +77 -0
- package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -1
- package/dist/src/multiagent/events.d.ts +15 -1
- package/dist/src/multiagent/events.d.ts.map +1 -1
- package/dist/src/multiagent/events.js +18 -0
- package/dist/src/multiagent/events.js.map +1 -1
- package/dist/src/multiagent/graph.d.ts +59 -3
- package/dist/src/multiagent/graph.d.ts.map +1 -1
- package/dist/src/multiagent/graph.js +201 -34
- package/dist/src/multiagent/graph.js.map +1 -1
- package/dist/src/multiagent/multiagent.d.ts +77 -3
- package/dist/src/multiagent/multiagent.d.ts.map +1 -1
- package/dist/src/multiagent/multiagent.js +115 -1
- package/dist/src/multiagent/multiagent.js.map +1 -1
- package/dist/src/multiagent/nodes.d.ts +18 -0
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +69 -22
- package/dist/src/multiagent/nodes.js.map +1 -1
- package/dist/src/multiagent/state.d.ts +39 -3
- package/dist/src/multiagent/state.d.ts.map +1 -1
- package/dist/src/multiagent/state.js +80 -1
- package/dist/src/multiagent/state.js.map +1 -1
- package/dist/src/multiagent/swarm.d.ts +30 -1
- package/dist/src/multiagent/swarm.d.ts.map +1 -1
- package/dist/src/multiagent/swarm.js +166 -33
- package/dist/src/multiagent/swarm.js.map +1 -1
- package/dist/src/registry/__tests__/tool-registry.test.js +37 -0
- package/dist/src/registry/__tests__/tool-registry.test.js.map +1 -1
- package/dist/src/registry/tool-registry.d.ts +13 -7
- package/dist/src/registry/tool-registry.d.ts.map +1 -1
- package/dist/src/registry/tool-registry.js +35 -10
- package/dist/src/registry/tool-registry.js.map +1 -1
- package/dist/src/retry/__tests__/backoff-strategy.test.d.ts +2 -0
- package/dist/src/retry/__tests__/backoff-strategy.test.d.ts.map +1 -0
- package/dist/src/retry/__tests__/backoff-strategy.test.js +116 -0
- package/dist/src/retry/__tests__/backoff-strategy.test.js.map +1 -0
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts +2 -0
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts.map +1 -0
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.js +225 -0
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.js.map +1 -0
- package/dist/src/retry/backoff-strategy.d.ts +108 -0
- package/dist/src/retry/backoff-strategy.d.ts.map +1 -0
- package/dist/src/retry/backoff-strategy.js +86 -0
- package/dist/src/retry/backoff-strategy.js.map +1 -0
- package/dist/src/retry/default-model-retry-strategy.d.ts +76 -0
- package/dist/src/retry/default-model-retry-strategy.d.ts.map +1 -0
- package/dist/src/retry/default-model-retry-strategy.js +104 -0
- package/dist/src/retry/default-model-retry-strategy.js.map +1 -0
- package/dist/src/retry/index.d.ts +8 -0
- package/dist/src/retry/index.d.ts.map +1 -0
- package/dist/src/retry/index.js +7 -0
- package/dist/src/retry/index.js.map +1 -0
- package/dist/src/retry/model-retry-strategy.d.ts +80 -0
- package/dist/src/retry/model-retry-strategy.d.ts.map +1 -0
- package/dist/src/retry/model-retry-strategy.js +85 -0
- package/dist/src/retry/model-retry-strategy.js.map +1 -0
- package/dist/src/retry/retry-strategy.d.ts +34 -0
- package/dist/src/retry/retry-strategy.d.ts.map +1 -0
- package/dist/src/retry/retry-strategy.js +25 -0
- package/dist/src/retry/retry-strategy.js.map +1 -0
- package/dist/src/session/__tests__/session-manager.test.js +84 -3
- package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
- package/dist/src/session/session-manager.d.ts +11 -2
- package/dist/src/session/session-manager.d.ts.map +1 -1
- package/dist/src/session/session-manager.js +17 -6
- package/dist/src/session/session-manager.js.map +1 -1
- package/dist/src/telemetry/__tests__/meter.test.js +5 -27
- package/dist/src/telemetry/__tests__/meter.test.js.map +1 -1
- package/dist/src/telemetry/meter.d.ts +12 -4
- package/dist/src/telemetry/meter.d.ts.map +1 -1
- package/dist/src/telemetry/meter.js +13 -8
- package/dist/src/telemetry/meter.js.map +1 -1
- package/dist/src/tools/__tests__/tool.test.js +24 -1
- package/dist/src/tools/__tests__/tool.test.js.map +1 -1
- package/dist/src/tools/function-tool.d.ts.map +1 -1
- package/dist/src/tools/function-tool.js +6 -1
- package/dist/src/tools/function-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts.map +1 -1
- package/dist/src/tools/mcp-tool.js +3 -2
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/tool.d.ts +10 -1
- package/dist/src/tools/tool.d.ts.map +1 -1
- package/dist/src/tools/tool.js +12 -0
- package/dist/src/tools/tool.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/agent.test.js +97 -0
- package/dist/src/types/__tests__/agent.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +48 -8
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +28 -3
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/interrupt.d.ts +103 -0
- package/dist/src/types/interrupt.d.ts.map +1 -0
- package/dist/src/types/interrupt.js +63 -0
- package/dist/src/types/interrupt.js.map +1 -0
- package/dist/src/types/messages.d.ts +2 -1
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js.map +1 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts +2 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +292 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts +2 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +148 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts +2 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js +78 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/index.d.ts +23 -0
- package/dist/src/vended-plugins/context-offloader/index.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/index.js +21 -0
- package/dist/src/vended-plugins/context-offloader/index.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/plugin.d.ts +48 -0
- package/dist/src/vended-plugins/context-offloader/plugin.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/plugin.js +244 -0
- package/dist/src/vended-plugins/context-offloader/plugin.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/storage.d.ts +114 -0
- package/dist/src/vended-plugins/context-offloader/storage.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/storage.js +204 -0
- package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -0
- package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +12 -0
- package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +1 -1
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +3 -0
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
- package/dist/src/vended-tools/bash/bash.d.ts.map +1 -1
- package/dist/src/vended-tools/bash/bash.js +0 -3
- package/dist/src/vended-tools/bash/bash.js.map +1 -1
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +3 -0
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -1
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +3 -0
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
- package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
- package/package.json +9 -5
|
@@ -15,10 +15,30 @@ import { Edge } from './edge.js';
|
|
|
15
15
|
* Runtime configuration for graph execution.
|
|
16
16
|
*/
|
|
17
17
|
export interface GraphConfig {
|
|
18
|
-
/** Max nodes executing in parallel. */
|
|
18
|
+
/** Max nodes executing in parallel. Defaults to `Infinity` (no limit). */
|
|
19
19
|
maxConcurrency?: number;
|
|
20
|
-
/** Max total steps (prevents infinite loops in cyclic graphs). */
|
|
20
|
+
/** Max total steps (prevents infinite loops in cyclic graphs). Defaults to `Infinity` (no limit). */
|
|
21
21
|
maxSteps?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Wall-clock ceiling for the entire graph invocation, in milliseconds. Defaults to `Infinity`
|
|
24
|
+
* (no limit).
|
|
25
|
+
*
|
|
26
|
+
* Does not propagate into nested orchestrators wrapped via `MultiAgentNode` — a nested
|
|
27
|
+
* `Swarm`/`Graph` runs to completion under its own timeout config; the parent graph's
|
|
28
|
+
* timeout only fires once the nested node returns.
|
|
29
|
+
*/
|
|
30
|
+
timeout?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Fallback per-node wall-clock ceiling in milliseconds. Applied to any `AgentNode` that
|
|
33
|
+
* doesn't set its own `timeout`. Defaults to `Infinity` (no limit).
|
|
34
|
+
*
|
|
35
|
+
* Does not apply to `MultiAgentNode`. Set `timeout`/`nodeTimeout` on the nested
|
|
36
|
+
* orchestrator to bound it.
|
|
37
|
+
*
|
|
38
|
+
* Enforced via `AbortSignal` — cancellation is cooperative, so a tool that neither polls
|
|
39
|
+
* its cancel signal nor forwards it to a cancellable API can run past this deadline.
|
|
40
|
+
*/
|
|
41
|
+
nodeTimeout?: number;
|
|
22
42
|
}
|
|
23
43
|
/**
|
|
24
44
|
* Options for creating a Graph instance.
|
|
@@ -84,6 +104,13 @@ export declare class Graph implements MultiAgent {
|
|
|
84
104
|
private readonly _tracer;
|
|
85
105
|
readonly sessionManager?: SessionManager | undefined;
|
|
86
106
|
private _initialized;
|
|
107
|
+
/**
|
|
108
|
+
* State retained across invocations when a run ends INTERRUPTED. Lets
|
|
109
|
+
* `graph.invoke(responses)` resume on the same instance without requiring a
|
|
110
|
+
* SessionManager, mirroring single-agent ergonomics. Cleared when a run
|
|
111
|
+
* terminates in any non-INTERRUPTED state.
|
|
112
|
+
*/
|
|
113
|
+
private _pendingInterruptState?;
|
|
87
114
|
constructor(options: GraphOptions);
|
|
88
115
|
/**
|
|
89
116
|
* Initialize the graph. Invokes the {@link MultiAgentInitializedEvent} callback.
|
|
@@ -117,7 +144,24 @@ export declare class Graph implements MultiAgent {
|
|
|
117
144
|
stream(input: MultiAgentInput, options?: MultiAgentInvokeOptions): AsyncGenerator<MultiAgentStreamEvent, MultiAgentResult, undefined>;
|
|
118
145
|
private _stream;
|
|
119
146
|
/**
|
|
120
|
-
*
|
|
147
|
+
* Invokes hook callbacks on an event, then yields it.
|
|
148
|
+
*/
|
|
149
|
+
private _emit;
|
|
150
|
+
/**
|
|
151
|
+
* Fires `BeforeNodeCallEvent` and handles hook-raised interrupts or cancels inline.
|
|
152
|
+
* Returns a synthetic NodeResult (INTERRUPTED or CANCELLED) when a hook gates the
|
|
153
|
+
* node, in which case the caller skips `_streamNode` and surfaces the result directly.
|
|
154
|
+
* Returns `undefined` when no hook gated the node and execution should proceed.
|
|
155
|
+
*
|
|
156
|
+
* Owns the `nodeSpan` on gated paths — `_streamNode` owns it on the ungated path.
|
|
157
|
+
* Yields the `NodeResultEvent` + `AfterNodeCallEvent` lifecycle pair on gated paths
|
|
158
|
+
* so observers see the same event sequence regardless of how the node terminated.
|
|
159
|
+
*/
|
|
160
|
+
private _runBeforeNodeCall;
|
|
161
|
+
/**
|
|
162
|
+
* Runs a node whose `BeforeNodeCallEvent` already fired without a hook gating it
|
|
163
|
+
* (interrupt or cancel are handled by `_runBeforeNodeCall` before this coroutine
|
|
164
|
+
* is spawned). Takes ownership of the already-started `nodeSpan` and ends it.
|
|
121
165
|
*/
|
|
122
166
|
private _streamNode;
|
|
123
167
|
private _validateConfig;
|
|
@@ -131,8 +175,20 @@ export declare class Graph implements MultiAgent {
|
|
|
131
175
|
* downstream progress, or failed/cancelled.
|
|
132
176
|
*/
|
|
133
177
|
private _resolveContent;
|
|
178
|
+
/**
|
|
179
|
+
* Chooses the input for a node about to be scheduled, handling the three resume cases:
|
|
180
|
+
* routed orchestrator-hook responses (forward leftovers to the agent), routed responses
|
|
181
|
+
* fully consumed by the hook (replay the original invocation input), and fresh runs
|
|
182
|
+
* (dependency-merged). Falls back to an empty input with a warning if a custom
|
|
183
|
+
* SessionManager dropped `_pendingInput`.
|
|
184
|
+
*/
|
|
185
|
+
private _resolveInputForScheduling;
|
|
134
186
|
/**
|
|
135
187
|
* Builds the input for a node by combining the original task with dependency outputs.
|
|
188
|
+
*
|
|
189
|
+
* Only called for non-resume executions: the caller routes resume responses directly
|
|
190
|
+
* to interrupted nodes without going through dependency resolution, so this helper
|
|
191
|
+
* never sees `InterruptResponseContent[]`.
|
|
136
192
|
*/
|
|
137
193
|
private _resolveNodeInput;
|
|
138
194
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/multiagent/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/multiagent/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
+
import { applyOrchestratorHookResponses, dropStaleInterruptedResult, extractResumeResponses, groupInterruptResponsesByNode, recordHookInterrupt, } from './multiagent.js';
|
|
1
2
|
import { TextBlock, contentBlockFromData } from '../types/messages.js';
|
|
3
|
+
import { InterruptError } from '../interrupt.js';
|
|
2
4
|
import { logger } from '../logging/logger.js';
|
|
5
|
+
import { warnOnce } from '../logging/warn-once.js';
|
|
3
6
|
import { HookableEvent } from '../hooks/events.js';
|
|
4
7
|
import { HookRegistryImplementation } from '../hooks/registry.js';
|
|
5
8
|
import { MultiAgentPluginRegistry } from './plugins.js';
|
|
6
9
|
import { AgentNode, MultiAgentNode, Node } from './nodes.js';
|
|
7
10
|
import { MultiAgentState, MultiAgentResult, NodeResult, Status } from './state.js';
|
|
8
11
|
import { Swarm } from './swarm.js';
|
|
9
|
-
import { AfterMultiAgentInvocationEvent, AfterNodeCallEvent, BeforeMultiAgentInvocationEvent, BeforeNodeCallEvent, MultiAgentHandoffEvent, MultiAgentInitializedEvent, MultiAgentResultEvent, NodeCancelEvent, } from './events.js';
|
|
12
|
+
import { AfterMultiAgentInvocationEvent, AfterNodeCallEvent, BeforeMultiAgentInvocationEvent, BeforeNodeCallEvent, MultiAgentHandoffEvent, MultiAgentInitializedEvent, MultiAgentResultEvent, NodeCancelEvent, NodeResultEvent, } from './events.js';
|
|
10
13
|
import { Edge } from './edge.js';
|
|
11
14
|
import { Queue } from './queue.js';
|
|
12
15
|
import { Tracer } from '../telemetry/tracer.js';
|
|
@@ -56,14 +59,26 @@ export class Graph {
|
|
|
56
59
|
_tracer;
|
|
57
60
|
sessionManager;
|
|
58
61
|
_initialized;
|
|
62
|
+
/**
|
|
63
|
+
* State retained across invocations when a run ends INTERRUPTED. Lets
|
|
64
|
+
* `graph.invoke(responses)` resume on the same instance without requiring a
|
|
65
|
+
* SessionManager, mirroring single-agent ergonomics. Cleared when a run
|
|
66
|
+
* terminates in any non-INTERRUPTED state.
|
|
67
|
+
*/
|
|
68
|
+
_pendingInterruptState;
|
|
59
69
|
constructor(options) {
|
|
60
70
|
const { id, nodes, edges, sources, sessionManager, plugins, traceAttributes, ...config } = options;
|
|
61
71
|
this.id = id ?? 'graph';
|
|
62
72
|
this.config = {
|
|
63
73
|
maxConcurrency: config.maxConcurrency ?? Infinity,
|
|
64
74
|
maxSteps: config.maxSteps ?? Infinity,
|
|
75
|
+
timeout: config.timeout ?? Infinity,
|
|
76
|
+
nodeTimeout: config.nodeTimeout ?? Infinity,
|
|
65
77
|
};
|
|
66
78
|
this._validateConfig();
|
|
79
|
+
if (this.config.maxSteps === Infinity && this.config.timeout === Infinity) {
|
|
80
|
+
warnOnce(logger, 'graph has no maxSteps or timeout set; execution is unbounded');
|
|
81
|
+
}
|
|
67
82
|
this.nodes = this._resolveNodes(nodes);
|
|
68
83
|
this.edges = this._resolveEdges(edges);
|
|
69
84
|
this._sources = this._resolveSources(sources);
|
|
@@ -129,13 +144,12 @@ export class Graph {
|
|
|
129
144
|
// Resolve invocationState once; the same object is threaded to every node's
|
|
130
145
|
// child agent so mutations in one node are visible in the next.
|
|
131
146
|
const invocationState = options?.invocationState ?? {};
|
|
132
|
-
|
|
147
|
+
// Hook invocation lives in `_stream` so hook-raised `InterruptError`s land in the
|
|
148
|
+
// same frame as the execution loop.
|
|
149
|
+
const gen = this._stream(input, invocationState, options?.cancelSignal);
|
|
133
150
|
try {
|
|
134
151
|
let next = await gen.next();
|
|
135
152
|
while (!next.done) {
|
|
136
|
-
if (next.value instanceof HookableEvent) {
|
|
137
|
-
await this._hookRegistry.invokeCallbacks(next.value);
|
|
138
|
-
}
|
|
139
153
|
yield next.value;
|
|
140
154
|
next = await gen.next();
|
|
141
155
|
}
|
|
@@ -145,8 +159,11 @@ export class Graph {
|
|
|
145
159
|
await gen.return(undefined);
|
|
146
160
|
}
|
|
147
161
|
}
|
|
148
|
-
async *_stream(input, invocationState) {
|
|
149
|
-
|
|
162
|
+
async *_stream(input, invocationState, externalCancelSignal) {
|
|
163
|
+
// Reuse state from a prior INTERRUPTED run so `graph.invoke(responses)` can
|
|
164
|
+
// resume on the same instance without a SessionManager.
|
|
165
|
+
const state = this._pendingInterruptState ?? new MultiAgentState({ nodeIds: [...this.nodes.keys()] });
|
|
166
|
+
delete this._pendingInterruptState;
|
|
150
167
|
const queue = new Queue();
|
|
151
168
|
const streams = new Map();
|
|
152
169
|
const multiAgentSpan = this._tracer.startMultiAgentSpan({
|
|
@@ -155,23 +172,79 @@ export class Graph {
|
|
|
155
172
|
input,
|
|
156
173
|
});
|
|
157
174
|
// SessionManager (or plugins) may restore state.results here via the hook
|
|
158
|
-
yield new BeforeMultiAgentInvocationEvent({ orchestrator: this, state, invocationState });
|
|
159
|
-
// Resume
|
|
160
|
-
|
|
175
|
+
yield* this._emit(new BeforeMultiAgentInvocationEvent({ orchestrator: this, state, invocationState }));
|
|
176
|
+
// Resume input bypasses dependency resolution (routed by interrupt id). On fresh
|
|
177
|
+
// runs, stash the input so resume can replay it to hook-gated nodes that never ran.
|
|
178
|
+
//
|
|
179
|
+
// Example: Source node A has a `BeforeNodeCallEvent` hook that interrupts. The user
|
|
180
|
+
// calls `graph.invoke('original task')`, the hook fires before A executes, the run
|
|
181
|
+
// pauses with status INTERRUPTED. On resume, `graph.invoke([response])` only carries
|
|
182
|
+
// the response — A still needs `'original task'` as its input because A never ran
|
|
183
|
+
// and has no snapshot or upstream results to fall back on. `state._pendingInput`
|
|
184
|
+
// carries `'original task'` across the pause so resume can replay it.
|
|
185
|
+
const resumeResponses = extractResumeResponses(input);
|
|
186
|
+
const interruptResponsesByNode = resumeResponses ? groupInterruptResponsesByNode(resumeResponses, state) : undefined;
|
|
187
|
+
let contentInput;
|
|
188
|
+
if (resumeResponses) {
|
|
189
|
+
contentInput = state._pendingInput;
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
contentInput = input;
|
|
193
|
+
state._pendingInput = contentInput;
|
|
194
|
+
}
|
|
195
|
+
const targets = interruptResponsesByNode
|
|
196
|
+
? [...interruptResponsesByNode.keys()].map((id) => {
|
|
197
|
+
const node = this.nodes.get(id);
|
|
198
|
+
if (!node) {
|
|
199
|
+
throw new Error(`node_id=<${id}>, graph_id=<${this.id}> | resume response targets a node missing from the graph; topology changed between save and resume?`);
|
|
200
|
+
}
|
|
201
|
+
return node;
|
|
202
|
+
})
|
|
203
|
+
: ((await this._findResumeTargets(state)) ?? [...this._sources]);
|
|
204
|
+
// Wall-clock timeout for the whole graph invocation. External cancellation is kept
|
|
205
|
+
// on its own signal so the loop's abort checks below can distinguish the two causes
|
|
206
|
+
// and produce the right error message.
|
|
207
|
+
const execController = new AbortController();
|
|
208
|
+
const execTimeoutHandle = Number.isFinite(this.config.timeout)
|
|
209
|
+
? setTimeout(() => execController.abort(), this.config.timeout)
|
|
210
|
+
: undefined;
|
|
211
|
+
const cancelSignal = externalCancelSignal
|
|
212
|
+
? AbortSignal.any([execController.signal, externalCancelSignal])
|
|
213
|
+
: execController.signal;
|
|
214
|
+
let interrupted = false;
|
|
161
215
|
let caughtError;
|
|
162
216
|
let result;
|
|
163
217
|
try {
|
|
164
218
|
while (targets.length > 0 || streams.size > 0) {
|
|
165
|
-
|
|
219
|
+
if (execTimeoutHandle !== undefined && execController.signal.aborted) {
|
|
220
|
+
throw new Error(`timeout=<${this.config.timeout}>, graph_id=<${this.id}> | graph exceeded wall-clock budget`);
|
|
221
|
+
}
|
|
222
|
+
if (externalCancelSignal?.aborted) {
|
|
223
|
+
throw new Error(`graph_id=<${this.id}> | graph cancelled by external signal`);
|
|
224
|
+
}
|
|
225
|
+
while (!interrupted && targets.length > 0 && streams.size < this.config.maxConcurrency) {
|
|
166
226
|
const node = targets.shift();
|
|
167
227
|
this._checkSteps(state);
|
|
168
228
|
state.steps++;
|
|
169
|
-
|
|
229
|
+
// Resolve input first so `applyOrchestratorHookResponses` has populated the
|
|
230
|
+
// stored `Interrupt.response` entries before the BeforeNodeCall hook reads them.
|
|
231
|
+
const nodeInput = this._resolveInputForScheduling(node, interruptResponsesByNode?.get(node.id), contentInput, state);
|
|
232
|
+
const nodeSpan = this._tracer.withSpanContext(multiAgentSpan, () => this._tracer.startNodeSpan({ nodeId: node.id, nodeType: node.type }));
|
|
233
|
+
const preResult = yield* this._runBeforeNodeCall(node, nodeSpan, state, invocationState);
|
|
234
|
+
if (preResult !== undefined) {
|
|
235
|
+
// Hook gated the node before it could run; surface the synthetic result
|
|
236
|
+
// through the queue so the main loop handles short-circuit and downstream
|
|
237
|
+
// scheduling uniformly with normal node results.
|
|
238
|
+
queue.push({ type: 'result', node, result: preResult });
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
streams.set(node.id, this._streamNode(node, nodeInput, state, queue, nodeSpan, invocationState, cancelSignal));
|
|
170
242
|
}
|
|
171
243
|
await queue.wait();
|
|
172
244
|
while (queue.size > 0) {
|
|
173
245
|
const { data, ack } = queue.shift();
|
|
174
246
|
if (data.type === 'event') {
|
|
247
|
+
await this._hookRegistry.invokeCallbacks(data.event);
|
|
175
248
|
yield data.event;
|
|
176
249
|
ack();
|
|
177
250
|
continue;
|
|
@@ -185,14 +258,22 @@ export class Graph {
|
|
|
185
258
|
streams.delete(node.id);
|
|
186
259
|
ack();
|
|
187
260
|
state.results.push(nodeResult);
|
|
261
|
+
if (interrupted)
|
|
262
|
+
continue;
|
|
263
|
+
// Stop scheduling new nodes once any node has interrupted; in-flight siblings
|
|
264
|
+
// run to completion on their own.
|
|
265
|
+
if (nodeResult.status === Status.INTERRUPTED) {
|
|
266
|
+
interrupted = true;
|
|
267
|
+
continue;
|
|
268
|
+
}
|
|
188
269
|
const ready = await this._findReady(node, state, streams, targets);
|
|
189
270
|
if (ready.length > 0) {
|
|
190
|
-
yield new MultiAgentHandoffEvent({
|
|
271
|
+
yield* this._emit(new MultiAgentHandoffEvent({
|
|
191
272
|
source: node.id,
|
|
192
273
|
targets: ready.map((n) => n.id),
|
|
193
274
|
state,
|
|
194
275
|
invocationState,
|
|
195
|
-
});
|
|
276
|
+
}));
|
|
196
277
|
targets.push(...ready);
|
|
197
278
|
}
|
|
198
279
|
}
|
|
@@ -202,12 +283,22 @@ export class Graph {
|
|
|
202
283
|
content: this._resolveContent(state),
|
|
203
284
|
duration: Date.now() - state.startTime,
|
|
204
285
|
});
|
|
286
|
+
// Stash on interrupt so same-instance resume has state; otherwise start fresh.
|
|
287
|
+
if (result.status === Status.INTERRUPTED) {
|
|
288
|
+
this._pendingInterruptState = state;
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
delete this._pendingInterruptState;
|
|
292
|
+
delete state._pendingInput;
|
|
293
|
+
}
|
|
205
294
|
}
|
|
206
295
|
catch (error) {
|
|
207
296
|
caughtError = normalizeError(error);
|
|
208
297
|
throw caughtError;
|
|
209
298
|
}
|
|
210
299
|
finally {
|
|
300
|
+
if (execTimeoutHandle !== undefined)
|
|
301
|
+
clearTimeout(execTimeoutHandle);
|
|
211
302
|
queue.dispose();
|
|
212
303
|
await Promise.allSettled(streams.values());
|
|
213
304
|
this._tracer.endMultiAgentSpan(multiAgentSpan, {
|
|
@@ -215,46 +306,85 @@ export class Graph {
|
|
|
215
306
|
...(result && { usage: result.usage }),
|
|
216
307
|
...(caughtError && { error: caughtError }),
|
|
217
308
|
});
|
|
218
|
-
yield new AfterMultiAgentInvocationEvent({ orchestrator: this, state, invocationState });
|
|
309
|
+
yield* this._emit(new AfterMultiAgentInvocationEvent({ orchestrator: this, state, invocationState }));
|
|
219
310
|
}
|
|
220
|
-
yield new MultiAgentResultEvent({ result, invocationState });
|
|
311
|
+
yield* this._emit(new MultiAgentResultEvent({ result, invocationState }));
|
|
221
312
|
return result;
|
|
222
313
|
}
|
|
223
314
|
/**
|
|
224
|
-
*
|
|
315
|
+
* Invokes hook callbacks on an event, then yields it.
|
|
316
|
+
*/
|
|
317
|
+
async *_emit(event) {
|
|
318
|
+
await this._hookRegistry.invokeCallbacks(event);
|
|
319
|
+
yield event;
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Fires `BeforeNodeCallEvent` and handles hook-raised interrupts or cancels inline.
|
|
323
|
+
* Returns a synthetic NodeResult (INTERRUPTED or CANCELLED) when a hook gates the
|
|
324
|
+
* node, in which case the caller skips `_streamNode` and surfaces the result directly.
|
|
325
|
+
* Returns `undefined` when no hook gated the node and execution should proceed.
|
|
326
|
+
*
|
|
327
|
+
* Owns the `nodeSpan` on gated paths — `_streamNode` owns it on the ungated path.
|
|
328
|
+
* Yields the `NodeResultEvent` + `AfterNodeCallEvent` lifecycle pair on gated paths
|
|
329
|
+
* so observers see the same event sequence regardless of how the node terminated.
|
|
225
330
|
*/
|
|
226
|
-
async
|
|
331
|
+
async *_runBeforeNodeCall(node, nodeSpan, state, invocationState) {
|
|
227
332
|
const nodeState = state.node(node.id);
|
|
228
|
-
const nodeSpan = this._tracer.withSpanContext(multiAgentSpan, () => this._tracer.startNodeSpan({ nodeId: node.id, nodeType: node.type }));
|
|
229
333
|
const beforeEvent = new BeforeNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState });
|
|
230
|
-
|
|
334
|
+
try {
|
|
335
|
+
await this._hookRegistry.invokeCallbacks(beforeEvent);
|
|
336
|
+
}
|
|
337
|
+
catch (error) {
|
|
338
|
+
if (error instanceof InterruptError) {
|
|
339
|
+
const result = recordHookInterrupt(node.id, nodeState);
|
|
340
|
+
yield beforeEvent;
|
|
341
|
+
yield* this._emit(new NodeResultEvent({ nodeId: node.id, nodeType: node.type, state, result, invocationState }));
|
|
342
|
+
yield* this._emit(new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState }));
|
|
343
|
+
this._tracer.endNodeSpan(nodeSpan, { status: Status.INTERRUPTED, duration: result.duration });
|
|
344
|
+
return result;
|
|
345
|
+
}
|
|
346
|
+
throw error;
|
|
347
|
+
}
|
|
348
|
+
yield beforeEvent;
|
|
231
349
|
if (beforeEvent.cancel) {
|
|
232
350
|
const message = typeof beforeEvent.cancel === 'string' ? beforeEvent.cancel : 'node cancelled by hook';
|
|
351
|
+
// Cancel path doesn't go through Node.stream, so do its INTERRUPTED cleanup here.
|
|
352
|
+
dropStaleInterruptedResult(node.id, nodeState, state);
|
|
233
353
|
const result = new NodeResult({ nodeId: node.id, status: Status.CANCELLED, duration: 0 });
|
|
234
354
|
nodeState.status = Status.CANCELLED;
|
|
235
355
|
nodeState.results.push(result);
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
node,
|
|
239
|
-
event: new NodeCancelEvent({ nodeId: node.id, state, message, invocationState }),
|
|
240
|
-
});
|
|
241
|
-
await queue.send({
|
|
242
|
-
type: 'event',
|
|
243
|
-
node,
|
|
244
|
-
event: new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState }),
|
|
245
|
-
});
|
|
356
|
+
yield* this._emit(new NodeCancelEvent({ nodeId: node.id, state, message, invocationState }));
|
|
357
|
+
yield* this._emit(new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState }));
|
|
246
358
|
this._tracer.endNodeSpan(nodeSpan, { status: Status.CANCELLED, duration: 0 });
|
|
247
|
-
|
|
248
|
-
return;
|
|
359
|
+
return result;
|
|
249
360
|
}
|
|
361
|
+
return undefined;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Runs a node whose `BeforeNodeCallEvent` already fired without a hook gating it
|
|
365
|
+
* (interrupt or cancel are handled by `_runBeforeNodeCall` before this coroutine
|
|
366
|
+
* is spawned). Takes ownership of the already-started `nodeSpan` and ends it.
|
|
367
|
+
*/
|
|
368
|
+
async _streamNode(node, input, state, queue, nodeSpan, invocationState, executionSignal) {
|
|
369
|
+
// Per-node timeout only applies to AgentNode; a nested MultiAgentNode manages
|
|
370
|
+
// its own node-level timeouts.
|
|
371
|
+
const nodeTimeout = node instanceof AgentNode ? (node.timeout ?? this.config.nodeTimeout) : Infinity;
|
|
372
|
+
const nodeTimeoutController = Number.isFinite(nodeTimeout) ? new AbortController() : undefined;
|
|
373
|
+
const nodeTimeoutHandle = nodeTimeoutController
|
|
374
|
+
? setTimeout(() => nodeTimeoutController.abort(), nodeTimeout)
|
|
375
|
+
: undefined;
|
|
376
|
+
const signals = [executionSignal, nodeTimeoutController?.signal].filter((s) => s !== undefined);
|
|
377
|
+
const cancelSignal = signals.length > 0 ? AbortSignal.any(signals) : undefined;
|
|
250
378
|
try {
|
|
251
|
-
const
|
|
252
|
-
const gen = this._tracer.withSpanContext(nodeSpan, () => node.stream(nodeInput, state, { invocationState }));
|
|
379
|
+
const gen = this._tracer.withSpanContext(nodeSpan, () => node.stream(input, state, { invocationState, ...(cancelSignal && { cancelSignal }) }));
|
|
253
380
|
let next = await this._tracer.withSpanContext(nodeSpan, () => gen.next());
|
|
254
381
|
while (!next.done) {
|
|
255
382
|
await queue.send({ type: 'event', node, event: next.value });
|
|
256
383
|
next = await this._tracer.withSpanContext(nodeSpan, () => gen.next());
|
|
257
384
|
}
|
|
385
|
+
if (nodeTimeoutController?.signal.aborted) {
|
|
386
|
+
throw new Error(`node_timeout=<${nodeTimeout}>, node_id=<${node.id}>, graph_id=<${this.id}> | node exceeded wall-clock budget`);
|
|
387
|
+
}
|
|
258
388
|
const result = next.value;
|
|
259
389
|
this._tracer.endNodeSpan(nodeSpan, { status: result.status, duration: result.duration, usage: result.usage });
|
|
260
390
|
queue.push({ type: 'result', node, result });
|
|
@@ -284,6 +414,10 @@ export class Graph {
|
|
|
284
414
|
error: nodeError,
|
|
285
415
|
});
|
|
286
416
|
}
|
|
417
|
+
finally {
|
|
418
|
+
if (nodeTimeoutHandle !== undefined)
|
|
419
|
+
clearTimeout(nodeTimeoutHandle);
|
|
420
|
+
}
|
|
287
421
|
}
|
|
288
422
|
_validateConfig() {
|
|
289
423
|
if (this.config.maxConcurrency < 1) {
|
|
@@ -292,6 +426,12 @@ export class Graph {
|
|
|
292
426
|
if (this.config.maxSteps < 1) {
|
|
293
427
|
throw new Error(`max_steps=<${this.config.maxSteps}> | must be at least 1`);
|
|
294
428
|
}
|
|
429
|
+
if (this.config.timeout < 1) {
|
|
430
|
+
throw new Error(`timeout=<${this.config.timeout}> | must be at least 1`);
|
|
431
|
+
}
|
|
432
|
+
if (this.config.nodeTimeout < 1) {
|
|
433
|
+
throw new Error(`node_timeout=<${this.config.nodeTimeout}> | must be at least 1`);
|
|
434
|
+
}
|
|
295
435
|
}
|
|
296
436
|
_validateSources() {
|
|
297
437
|
if (this._sources.length === 0) {
|
|
@@ -397,8 +537,35 @@ export class Graph {
|
|
|
397
537
|
}
|
|
398
538
|
return [...state.nodes.values()].filter((ns) => ns.terminus).flatMap((ns) => ns.content);
|
|
399
539
|
}
|
|
540
|
+
/**
|
|
541
|
+
* Chooses the input for a node about to be scheduled, handling the three resume cases:
|
|
542
|
+
* routed orchestrator-hook responses (forward leftovers to the agent), routed responses
|
|
543
|
+
* fully consumed by the hook (replay the original invocation input), and fresh runs
|
|
544
|
+
* (dependency-merged). Falls back to an empty input with a warning if a custom
|
|
545
|
+
* SessionManager dropped `_pendingInput`.
|
|
546
|
+
*/
|
|
547
|
+
_resolveInputForScheduling(node, routed, contentInput, state) {
|
|
548
|
+
if (routed) {
|
|
549
|
+
const nodeState = state.node(node.id);
|
|
550
|
+
if (!nodeState) {
|
|
551
|
+
throw new Error(`node_id=<${node.id}>, graph_id=<${this.id}> | routed interrupt response targets a node missing from state; topology changed between save and resume?`);
|
|
552
|
+
}
|
|
553
|
+
const forwarded = applyOrchestratorHookResponses(nodeState, routed);
|
|
554
|
+
if (forwarded.length > 0)
|
|
555
|
+
return forwarded;
|
|
556
|
+
}
|
|
557
|
+
if (contentInput === undefined) {
|
|
558
|
+
logger.warn(`node_id=<${node.id}>, graph_id=<${this.id}> | no pending input on resume; using empty`);
|
|
559
|
+
return this._resolveNodeInput(node, '', state);
|
|
560
|
+
}
|
|
561
|
+
return this._resolveNodeInput(node, contentInput, state);
|
|
562
|
+
}
|
|
400
563
|
/**
|
|
401
564
|
* Builds the input for a node by combining the original task with dependency outputs.
|
|
565
|
+
*
|
|
566
|
+
* Only called for non-resume executions: the caller routes resume responses directly
|
|
567
|
+
* to interrupted nodes without going through dependency resolution, so this helper
|
|
568
|
+
* never sees `InterruptResponseContent[]`.
|
|
402
569
|
*/
|
|
403
570
|
_resolveNodeInput(node, input, state) {
|
|
404
571
|
const deps = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/multiagent/graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/multiagent/graph.ts"],"names":[],"mappings":"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"}
|