@strands-agents/sdk 0.4.0 → 0.6.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/dist/src/__fixtures__/agent-helpers.d.ts +10 -1
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/agent-helpers.js +13 -2
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
- package/dist/src/__fixtures__/metrics-helpers.d.ts +25 -0
- package/dist/src/__fixtures__/metrics-helpers.d.ts.map +1 -0
- package/dist/src/__fixtures__/metrics-helpers.js +34 -0
- package/dist/src/__fixtures__/metrics-helpers.js.map +1 -0
- package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.js +12 -0
- package/dist/src/__fixtures__/mock-message-model.js.map +1 -1
- package/dist/src/__fixtures__/mock-span.d.ts +78 -0
- package/dist/src/__fixtures__/mock-span.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-span.js +93 -0
- package/dist/src/__fixtures__/mock-span.js.map +1 -0
- package/dist/src/__fixtures__/mock-storage-provider.d.ts +5 -0
- package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-storage-provider.js +23 -6
- package/dist/src/__fixtures__/mock-storage-provider.js.map +1 -1
- package/dist/src/__fixtures__/slim-types.d.ts +2 -1
- package/dist/src/__fixtures__/slim-types.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.d.ts +2 -2
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.js +4 -4
- package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
- package/dist/src/__tests__/app-state.test.d.ts +2 -0
- package/dist/src/__tests__/app-state.test.d.ts.map +1 -0
- package/dist/src/{agent/__tests__/state.test.js → __tests__/app-state.test.js} +46 -46
- package/dist/src/__tests__/app-state.test.js.map +1 -0
- package/dist/src/__tests__/mcp.test.js +129 -18
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.test.js +119 -11
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.tracer.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.tracer.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.tracer.test.js +470 -0
- package/dist/src/agent/__tests__/agent.tracer.test.js.map +1 -0
- package/dist/src/agent/agent.d.ts +79 -9
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +253 -68
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/{agent/state.d.ts → app-state.d.ts} +7 -7
- package/dist/src/app-state.d.ts.map +1 -0
- package/dist/src/{agent/state.js → app-state.js} +6 -6
- package/dist/src/app-state.js.map +1 -0
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js +1 -1
- package/dist/src/errors.d.ts +6 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +9 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hooks/__tests__/events.test.js +2 -0
- package/dist/src/hooks/__tests__/events.test.js.map +1 -1
- package/dist/src/hooks/events.d.ts +16 -0
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/index.d.ts +1 -1
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/index.d.ts +23 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +19 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp.d.ts +41 -0
- package/dist/src/mcp.d.ts.map +1 -1
- package/dist/src/mcp.js +60 -6
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +688 -0
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/model.test.js +113 -0
- package/dist/src/models/__tests__/model.test.js.map +1 -1
- package/dist/src/models/__tests__/streaming.test.d.ts +2 -0
- package/dist/src/models/__tests__/streaming.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/streaming.test.js +50 -0
- package/dist/src/models/__tests__/streaming.test.js.map +1 -0
- package/dist/src/models/bedrock.d.ts +80 -1
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +214 -5
- package/dist/src/models/bedrock.js.map +1 -1
- package/dist/src/models/model.d.ts +10 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +58 -2
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/streaming.d.ts +84 -3
- package/dist/src/models/streaming.d.ts.map +1 -1
- package/dist/src/models/streaming.js +26 -0
- package/dist/src/models/streaming.js.map +1 -1
- package/dist/src/multiagent/__tests__/events.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/events.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/events.test.js +205 -0
- package/dist/src/multiagent/__tests__/events.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/graph.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/graph.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/graph.test.js +438 -0
- package/dist/src/multiagent/__tests__/graph.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.js +105 -9
- package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/queue.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/queue.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/queue.test.js +118 -0
- package/dist/src/multiagent/__tests__/queue.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/swarm.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/swarm.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/swarm.test.js +241 -0
- package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -0
- package/dist/src/multiagent/base.d.ts +25 -0
- package/dist/src/multiagent/base.d.ts.map +1 -0
- package/dist/src/multiagent/base.js +2 -0
- package/dist/src/multiagent/base.js.map +1 -0
- package/dist/src/multiagent/edge.d.ts +36 -0
- package/dist/src/multiagent/edge.d.ts.map +1 -0
- package/dist/src/multiagent/edge.js +15 -0
- package/dist/src/multiagent/edge.js.map +1 -0
- package/dist/src/multiagent/events.d.ts +129 -4
- package/dist/src/multiagent/events.d.ts.map +1 -1
- package/dist/src/multiagent/events.js +140 -2
- package/dist/src/multiagent/events.js.map +1 -1
- package/dist/src/multiagent/graph.d.ts +125 -0
- package/dist/src/multiagent/graph.d.ts.map +1 -0
- package/dist/src/multiagent/graph.js +394 -0
- package/dist/src/multiagent/graph.js.map +1 -0
- package/dist/src/multiagent/index.d.ts +12 -6
- package/dist/src/multiagent/index.d.ts.map +1 -1
- package/dist/src/multiagent/index.js +6 -3
- package/dist/src/multiagent/index.js.map +1 -1
- package/dist/src/multiagent/nodes.d.ts +66 -16
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +82 -24
- package/dist/src/multiagent/nodes.js.map +1 -1
- package/dist/src/multiagent/queue.d.ts +73 -0
- package/dist/src/multiagent/queue.d.ts.map +1 -0
- package/dist/src/multiagent/queue.js +72 -0
- package/dist/src/multiagent/queue.js.map +1 -0
- package/dist/src/multiagent/state.d.ts +79 -10
- package/dist/src/multiagent/state.d.ts.map +1 -1
- package/dist/src/multiagent/state.js +101 -9
- package/dist/src/multiagent/state.js.map +1 -1
- package/dist/src/multiagent/swarm.d.ts +102 -0
- package/dist/src/multiagent/swarm.d.ts.map +1 -0
- package/dist/src/multiagent/swarm.js +238 -0
- package/dist/src/multiagent/swarm.js.map +1 -0
- package/dist/src/registry/__tests__/tool-registry.test.d.ts +2 -0
- package/dist/src/registry/__tests__/tool-registry.test.d.ts.map +1 -0
- package/dist/src/registry/__tests__/tool-registry.test.js +124 -0
- package/dist/src/registry/__tests__/tool-registry.test.js.map +1 -0
- package/dist/src/registry/tool-registry.d.ts +32 -20
- package/dist/src/registry/tool-registry.d.ts.map +1 -1
- package/dist/src/registry/tool-registry.js +60 -158
- package/dist/src/registry/tool-registry.js.map +1 -1
- package/dist/src/session/__tests__/file-storage.test.node.js +75 -15
- package/dist/src/session/__tests__/file-storage.test.node.js.map +1 -1
- package/dist/src/session/__tests__/s3-storage.test.d.ts +2 -0
- package/dist/src/session/__tests__/s3-storage.test.d.ts.map +1 -0
- package/dist/src/session/__tests__/{s3-storage.test.node.js → s3-storage.test.js} +161 -75
- package/dist/src/session/__tests__/s3-storage.test.js.map +1 -0
- package/dist/src/session/__tests__/session-manager.test.d.ts +2 -0
- package/dist/src/session/__tests__/session-manager.test.d.ts.map +1 -0
- package/dist/src/session/__tests__/session-manager.test.js +461 -0
- package/dist/src/session/__tests__/session-manager.test.js.map +1 -0
- package/dist/src/session/__tests__/validation.test.js +28 -1
- package/dist/src/session/__tests__/validation.test.js.map +1 -1
- package/dist/src/session/file-storage.d.ts +53 -27
- package/dist/src/session/file-storage.d.ts.map +1 -1
- package/dist/src/session/file-storage.js +103 -52
- package/dist/src/session/file-storage.js.map +1 -1
- package/dist/src/session/index.d.ts +6 -13
- package/dist/src/session/index.d.ts.map +1 -1
- package/dist/src/session/index.js +4 -12
- package/dist/src/session/index.js.map +1 -1
- package/dist/src/session/s3-storage.d.ts +49 -20
- package/dist/src/session/s3-storage.d.ts.map +1 -1
- package/dist/src/session/s3-storage.js +120 -35
- package/dist/src/session/s3-storage.js.map +1 -1
- package/dist/src/session/session-manager.d.ts +83 -0
- package/dist/src/session/session-manager.d.ts.map +1 -0
- package/dist/src/session/session-manager.js +122 -0
- package/dist/src/session/session-manager.js.map +1 -0
- package/dist/src/session/storage.d.ts +19 -11
- package/dist/src/session/storage.d.ts.map +1 -1
- package/dist/src/session/types.d.ts +6 -18
- package/dist/src/session/types.d.ts.map +1 -1
- package/dist/src/session/validation.d.ts +7 -0
- package/dist/src/session/validation.d.ts.map +1 -1
- package/dist/src/session/validation.js +12 -0
- package/dist/src/session/validation.js.map +1 -1
- package/dist/src/structured-output/__tests__/context.test.js +13 -13
- package/dist/src/structured-output/__tests__/context.test.js.map +1 -1
- package/dist/src/structured-output/context.js +1 -1
- package/dist/src/structured-output/context.js.map +1 -1
- package/dist/src/telemetry/__tests__/config.test.d.ts +2 -0
- package/dist/src/telemetry/__tests__/config.test.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.js +40 -0
- package/dist/src/telemetry/__tests__/config.test.js.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.node.d.ts +2 -0
- package/dist/src/telemetry/__tests__/config.test.node.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.node.js +103 -0
- package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -0
- package/dist/src/telemetry/__tests__/json.test.d.ts +2 -0
- package/dist/src/telemetry/__tests__/json.test.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/json.test.js +89 -0
- package/dist/src/telemetry/__tests__/json.test.js.map +1 -0
- package/dist/src/telemetry/__tests__/meter.test.d.ts +2 -0
- package/dist/src/telemetry/__tests__/meter.test.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/meter.test.js +457 -0
- package/dist/src/telemetry/__tests__/meter.test.js.map +1 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.d.ts +2 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.js +611 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -0
- package/dist/src/telemetry/config.d.ts +82 -0
- package/dist/src/telemetry/config.d.ts.map +1 -0
- package/dist/src/telemetry/config.js +133 -0
- package/dist/src/telemetry/config.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +34 -0
- package/dist/src/telemetry/index.d.ts.map +1 -0
- package/dist/src/telemetry/index.js +33 -0
- package/dist/src/telemetry/index.js.map +1 -0
- package/dist/src/telemetry/json.d.ts +11 -0
- package/dist/src/telemetry/json.d.ts.map +1 -0
- package/dist/src/telemetry/json.js +25 -0
- package/dist/src/telemetry/json.js.map +1 -0
- package/dist/src/telemetry/meter.d.ts +277 -0
- package/dist/src/telemetry/meter.d.ts.map +1 -0
- package/dist/src/telemetry/meter.js +292 -0
- package/dist/src/telemetry/meter.js.map +1 -0
- package/dist/src/telemetry/tracer.d.ts +219 -0
- package/dist/src/telemetry/tracer.d.ts.map +1 -0
- package/dist/src/telemetry/tracer.js +610 -0
- package/dist/src/telemetry/tracer.js.map +1 -0
- package/dist/src/telemetry/types.d.ts +101 -0
- package/dist/src/telemetry/types.d.ts.map +1 -0
- package/dist/src/telemetry/types.js +5 -0
- package/dist/src/{multiagent → telemetry}/types.js.map +1 -1
- package/dist/src/tools/__tests__/tool-factory.test.d.ts +2 -0
- package/dist/src/tools/__tests__/tool-factory.test.d.ts.map +1 -0
- package/dist/src/tools/__tests__/tool-factory.test.js +98 -0
- package/dist/src/tools/__tests__/tool-factory.test.js.map +1 -0
- package/dist/src/tools/__tests__/zod-tool.test-d.js +1 -1
- package/dist/src/tools/__tests__/zod-tool.test-d.js.map +1 -1
- package/dist/src/tools/__tests__/zod-tool.test.js +3 -4
- package/dist/src/tools/__tests__/zod-tool.test.js.map +1 -1
- package/dist/src/tools/function-tool.d.ts +15 -2
- package/dist/src/tools/function-tool.d.ts.map +1 -1
- package/dist/src/tools/function-tool.js +24 -0
- package/dist/src/tools/function-tool.js.map +1 -1
- package/dist/src/tools/tool-factory.d.ts +22 -0
- package/dist/src/tools/tool-factory.d.ts.map +1 -0
- package/dist/src/tools/tool-factory.js +55 -0
- package/dist/src/tools/tool-factory.js.map +1 -0
- package/dist/src/tools/tool.d.ts +1 -1
- package/dist/src/tools/tool.js +1 -1
- package/dist/src/tools/zod-tool.d.ts +55 -52
- package/dist/src/tools/zod-tool.d.ts.map +1 -1
- package/dist/src/tools/zod-tool.js +7 -61
- package/dist/src/tools/zod-tool.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/agent.test.js +11 -0
- package/dist/src/types/__tests__/agent.test.js.map +1 -1
- package/dist/src/types/__tests__/citations.test.d.ts +2 -0
- package/dist/src/types/__tests__/citations.test.d.ts.map +1 -0
- package/dist/src/types/__tests__/citations.test.js +104 -0
- package/dist/src/types/__tests__/citations.test.js.map +1 -0
- package/dist/src/types/__tests__/messages.test.js +26 -0
- package/dist/src/types/__tests__/messages.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +10 -3
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +9 -0
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/citations.d.ts +180 -0
- package/dist/src/types/citations.d.ts.map +1 -0
- package/dist/src/types/citations.js +45 -0
- package/dist/src/types/citations.js.map +1 -0
- package/dist/src/types/messages.d.ts +9 -5
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js +5 -1
- package/dist/src/types/messages.js.map +1 -1
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +2 -2
- 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 +1 -2
- package/dist/src/vended-tools/bash/bash.js.map +1 -1
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js +4 -4
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js.map +1 -1
- package/dist/src/vended-tools/file_editor/file-editor.js +1 -1
- package/dist/src/vended-tools/file_editor/file-editor.js.map +1 -1
- package/dist/src/vended-tools/http_request/http-request.d.ts.map +1 -1
- package/dist/src/vended-tools/http_request/http-request.js +1 -2
- package/dist/src/vended-tools/http_request/http-request.js.map +1 -1
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +2 -2
- 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 +25 -4
- package/dist/src/agent/__tests__/state.test.d.ts +0 -2
- package/dist/src/agent/__tests__/state.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/state.test.js.map +0 -1
- package/dist/src/agent/state.d.ts.map +0 -1
- package/dist/src/agent/state.js.map +0 -1
- package/dist/src/multiagent/types.d.ts +0 -5
- package/dist/src/multiagent/types.d.ts.map +0 -1
- package/dist/src/multiagent/types.js +0 -2
- package/dist/src/registry/registry.d.ts +0 -117
- package/dist/src/registry/registry.d.ts.map +0 -1
- package/dist/src/registry/registry.js +0 -298
- package/dist/src/registry/registry.js.map +0 -1
- package/dist/src/session/__tests__/s3-storage.test.node.d.ts +0 -2
- package/dist/src/session/__tests__/s3-storage.test.node.d.ts.map +0 -1
- package/dist/src/session/__tests__/s3-storage.test.node.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { takeSnapshot, loadSnapshot } from '../agent/snapshot.js';
|
|
2
|
-
import { NodeStreamUpdateEvent } from './events.js';
|
|
3
|
-
import {
|
|
2
|
+
import { NodeStreamUpdateEvent, NodeResultEvent } from './events.js';
|
|
3
|
+
import { NodeResult, Status } from './state.js';
|
|
4
|
+
import { logger } from '../logging/logger.js';
|
|
4
5
|
/**
|
|
5
6
|
* Abstract base class for all multi-agent orchestration nodes.
|
|
6
7
|
*
|
|
@@ -9,18 +10,18 @@ import { MultiAgentState, NodeResult, Status } from './state.js';
|
|
|
9
10
|
* delegates to {@link handle} for node-specific execution logic.
|
|
10
11
|
*/
|
|
11
12
|
export class Node {
|
|
13
|
+
type = 'node';
|
|
12
14
|
/** Unique identifier for this node within the orchestration. */
|
|
13
15
|
id;
|
|
14
|
-
/**
|
|
16
|
+
/** Per-node configuration. */
|
|
15
17
|
config;
|
|
16
18
|
/**
|
|
17
19
|
* @param id - Unique identifier for this node within the orchestration
|
|
18
|
-
* @param config -
|
|
20
|
+
* @param config - Per-node configuration
|
|
19
21
|
*/
|
|
20
22
|
constructor(id, config) {
|
|
21
23
|
this.id = id;
|
|
22
|
-
|
|
23
|
-
this.config = config;
|
|
24
|
+
this.config = config;
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* Execute the node. Handles duration measurement, error capture,
|
|
@@ -31,26 +32,35 @@ export class Node {
|
|
|
31
32
|
* @returns Async generator yielding streaming events and returning a NodeResult
|
|
32
33
|
*/
|
|
33
34
|
async *stream(args, state) {
|
|
34
|
-
const
|
|
35
|
+
const nodeState = state.node(this.id);
|
|
36
|
+
nodeState.status = Status.EXECUTING;
|
|
37
|
+
nodeState.startTime = Date.now();
|
|
38
|
+
let result;
|
|
35
39
|
try {
|
|
36
40
|
const update = yield* this.handle(args, state);
|
|
37
|
-
|
|
41
|
+
result = new NodeResult({
|
|
38
42
|
nodeId: this.id,
|
|
39
43
|
status: Status.COMPLETED,
|
|
40
|
-
duration: Date.now() - startTime,
|
|
44
|
+
duration: Date.now() - nodeState.startTime,
|
|
41
45
|
content: [],
|
|
42
46
|
...update,
|
|
43
47
|
});
|
|
44
48
|
}
|
|
45
49
|
catch (error) {
|
|
46
|
-
|
|
50
|
+
result = new NodeResult({
|
|
47
51
|
nodeId: this.id,
|
|
48
52
|
status: Status.FAILED,
|
|
49
|
-
duration: Date.now() - startTime,
|
|
53
|
+
duration: Date.now() - nodeState.startTime,
|
|
50
54
|
error: error instanceof Error ? error : new Error(String(error)),
|
|
51
|
-
content: [],
|
|
52
55
|
});
|
|
56
|
+
logger.warn(`node_id=<${this.id}>, error=<${result.error?.message}> | node execution failed`);
|
|
57
|
+
}
|
|
58
|
+
finally {
|
|
59
|
+
nodeState.status = result.status;
|
|
60
|
+
nodeState.results.push(result);
|
|
53
61
|
}
|
|
62
|
+
yield new NodeResultEvent({ nodeId: this.id, nodeType: this.type, result });
|
|
63
|
+
return result;
|
|
54
64
|
}
|
|
55
65
|
}
|
|
56
66
|
/**
|
|
@@ -62,13 +72,12 @@ export class Node {
|
|
|
62
72
|
export class AgentNode extends Node {
|
|
63
73
|
type = 'agentNode';
|
|
64
74
|
_agent;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
super(id, config);
|
|
75
|
+
constructor(options) {
|
|
76
|
+
const { agent, ...config } = options;
|
|
77
|
+
super(agent.agentId, {
|
|
78
|
+
...config,
|
|
79
|
+
...(agent.description !== undefined && { description: agent.description }),
|
|
80
|
+
});
|
|
72
81
|
this._agent = agent;
|
|
73
82
|
}
|
|
74
83
|
get agent() {
|
|
@@ -76,26 +85,75 @@ export class AgentNode extends Node {
|
|
|
76
85
|
}
|
|
77
86
|
/**
|
|
78
87
|
* Executes the wrapped agent, yielding each agent streaming event
|
|
79
|
-
* wrapped in a {@link
|
|
88
|
+
* wrapped in a {@link NodeStreamUpdateEvent}.
|
|
80
89
|
*
|
|
81
90
|
* @param args - Input to pass to the agent
|
|
82
|
-
* @param state - The current multi-agent state
|
|
91
|
+
* @param state - The current multi-agent state
|
|
83
92
|
* @returns Async generator yielding streaming events and returning the agent's content blocks
|
|
84
93
|
*/
|
|
85
|
-
async *handle(args,
|
|
94
|
+
async *handle(args, state) {
|
|
86
95
|
const snapshot = takeSnapshot(this._agent, { include: ['messages', 'state'] });
|
|
87
96
|
try {
|
|
88
|
-
const
|
|
97
|
+
const options = {
|
|
98
|
+
...(state.structuredOutputSchema && { structuredOutputSchema: state.structuredOutputSchema }),
|
|
99
|
+
};
|
|
100
|
+
const gen = this._agent.stream(args, options);
|
|
89
101
|
let next = await gen.next();
|
|
90
102
|
while (!next.done) {
|
|
91
103
|
yield new NodeStreamUpdateEvent({ nodeId: this.id, nodeType: this.type, event: next.value });
|
|
92
104
|
next = await gen.next();
|
|
93
105
|
}
|
|
94
|
-
return {
|
|
106
|
+
return {
|
|
107
|
+
content: next.value.lastMessage.content,
|
|
108
|
+
...('structuredOutput' in next.value && { structuredOutput: next.value.structuredOutput }),
|
|
109
|
+
};
|
|
95
110
|
}
|
|
96
111
|
finally {
|
|
97
112
|
loadSnapshot(this._agent, snapshot);
|
|
98
113
|
}
|
|
99
114
|
}
|
|
100
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Node that wraps a multi-agent orchestrator (e.g. Graph) for nested composition.
|
|
118
|
+
*
|
|
119
|
+
* Inner {@link NodeStreamUpdateEvent}s pass through to preserve the original
|
|
120
|
+
* node's identity. All other events are wrapped in a new {@link NodeStreamUpdateEvent}
|
|
121
|
+
* tagged with this node's identity.
|
|
122
|
+
*/
|
|
123
|
+
export class MultiAgentNode extends Node {
|
|
124
|
+
type = 'multiAgentNode';
|
|
125
|
+
_orchestrator;
|
|
126
|
+
constructor(options) {
|
|
127
|
+
const { orchestrator, ...config } = options;
|
|
128
|
+
super(orchestrator.id, config);
|
|
129
|
+
this._orchestrator = orchestrator;
|
|
130
|
+
}
|
|
131
|
+
get orchestrator() {
|
|
132
|
+
return this._orchestrator;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Executes the wrapped orchestrator. Inner {@link NodeStreamUpdateEvent}s
|
|
136
|
+
* pass through as-is; all other events are wrapped in a new
|
|
137
|
+
* {@link NodeStreamUpdateEvent} tagged with this node's identity.
|
|
138
|
+
*
|
|
139
|
+
* @param args - Input to pass to the orchestrator
|
|
140
|
+
* @param _state - The current multi-agent state (unused)
|
|
141
|
+
* @returns Async generator yielding streaming events and returning the orchestrator's content
|
|
142
|
+
*/
|
|
143
|
+
async *handle(args, _state) {
|
|
144
|
+
const gen = this._orchestrator.stream(args);
|
|
145
|
+
let next = await gen.next();
|
|
146
|
+
while (!next.done) {
|
|
147
|
+
const event = next.value;
|
|
148
|
+
if (event.type === 'nodeStreamUpdateEvent') {
|
|
149
|
+
yield event;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
yield new NodeStreamUpdateEvent({ nodeId: this.id, nodeType: this.type, event });
|
|
153
|
+
}
|
|
154
|
+
next = await gen.next();
|
|
155
|
+
}
|
|
156
|
+
return { content: next.value.content };
|
|
157
|
+
}
|
|
158
|
+
}
|
|
101
159
|
//# sourceMappingURL=nodes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/multiagent/nodes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/multiagent/nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { Node } from './nodes.js';
|
|
2
|
+
import type { MultiAgentStreamEvent } from './events.js';
|
|
3
|
+
import type { NodeResult } from './state.js';
|
|
4
|
+
/**
|
|
5
|
+
* Data produced by a running node: a streaming event, a completion signal, or an error.
|
|
6
|
+
*/
|
|
7
|
+
export type QueueData = {
|
|
8
|
+
type: 'event';
|
|
9
|
+
node: Node;
|
|
10
|
+
event: MultiAgentStreamEvent;
|
|
11
|
+
} | {
|
|
12
|
+
type: 'result';
|
|
13
|
+
node: Node;
|
|
14
|
+
result: NodeResult;
|
|
15
|
+
} | {
|
|
16
|
+
type: 'error';
|
|
17
|
+
node: Node;
|
|
18
|
+
error: Error;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Queue data paired with an acknowledgement callback.
|
|
22
|
+
* The consumer must call {@link ack} after fully processing the data
|
|
23
|
+
* to unblock any producer waiting via {@link Queue.send}.
|
|
24
|
+
*/
|
|
25
|
+
export interface QueueEntry {
|
|
26
|
+
data: QueueData;
|
|
27
|
+
ack: () => void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Async queue with promise-based notification and optional back-pressure.
|
|
31
|
+
*
|
|
32
|
+
* Producers use {@link push} for fire-and-forget or {@link send} to
|
|
33
|
+
* block until the consumer has fully processed the data. The consumer calls
|
|
34
|
+
* {@link shift} to dequeue, then {@link QueueEntry.ack} after
|
|
35
|
+
* processing to unblock the producer.
|
|
36
|
+
*/
|
|
37
|
+
export declare class Queue {
|
|
38
|
+
private readonly _entries;
|
|
39
|
+
/** Resolve function for the pending wait() promise, if any. */
|
|
40
|
+
private _notify?;
|
|
41
|
+
private _disposed;
|
|
42
|
+
/**
|
|
43
|
+
* Push data to the queue, waking any waiting consumer.
|
|
44
|
+
*/
|
|
45
|
+
push(data: QueueData): void;
|
|
46
|
+
/**
|
|
47
|
+
* Push data and wait until the consumer has fully processed it.
|
|
48
|
+
* Provides back-pressure so the producer pauses until the event
|
|
49
|
+
* has been yielded and hook callbacks have been invoked.
|
|
50
|
+
*
|
|
51
|
+
* @param data - The queue data to push
|
|
52
|
+
* @returns Promise that resolves when the consumer calls {@link QueueEntry.ack}
|
|
53
|
+
*/
|
|
54
|
+
send(data: QueueData): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Wait until at least one entry is available.
|
|
57
|
+
*/
|
|
58
|
+
wait(): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Remove and return the next entry, or undefined if empty.
|
|
61
|
+
*/
|
|
62
|
+
shift(): QueueEntry | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Dispose the queue by resolving all pending acks and draining entries.
|
|
65
|
+
* Future {@link send} calls resolve immediately.
|
|
66
|
+
*/
|
|
67
|
+
dispose(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Number of entries in the queue.
|
|
70
|
+
*/
|
|
71
|
+
get size(): number;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/multiagent/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAE/C;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAA;IACf,GAAG,EAAE,MAAM,IAAI,CAAA;CAChB;AAED;;;;;;;GAOG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,+DAA+D;IAC/D,OAAO,CAAC,OAAO,CAAC,CAA0B;IAC1C,OAAO,CAAC,SAAS,CAAQ;IAEzB;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAM3B;;;;;;;OAOG;IACH,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpC;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrB;;OAEG;IACH,KAAK,IAAI,UAAU,GAAG,SAAS;IAI/B;;;OAGG;IACH,OAAO,IAAI,IAAI;IAOf;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Async queue with promise-based notification and optional back-pressure.
|
|
3
|
+
*
|
|
4
|
+
* Producers use {@link push} for fire-and-forget or {@link send} to
|
|
5
|
+
* block until the consumer has fully processed the data. The consumer calls
|
|
6
|
+
* {@link shift} to dequeue, then {@link QueueEntry.ack} after
|
|
7
|
+
* processing to unblock the producer.
|
|
8
|
+
*/
|
|
9
|
+
export class Queue {
|
|
10
|
+
_entries = [];
|
|
11
|
+
/** Resolve function for the pending wait() promise, if any. */
|
|
12
|
+
_notify;
|
|
13
|
+
_disposed = false;
|
|
14
|
+
/**
|
|
15
|
+
* Push data to the queue, waking any waiting consumer.
|
|
16
|
+
*/
|
|
17
|
+
push(data) {
|
|
18
|
+
this._entries.push({ data, ack: () => { } });
|
|
19
|
+
this._notify?.();
|
|
20
|
+
this._notify = undefined;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Push data and wait until the consumer has fully processed it.
|
|
24
|
+
* Provides back-pressure so the producer pauses until the event
|
|
25
|
+
* has been yielded and hook callbacks have been invoked.
|
|
26
|
+
*
|
|
27
|
+
* @param data - The queue data to push
|
|
28
|
+
* @returns Promise that resolves when the consumer calls {@link QueueEntry.ack}
|
|
29
|
+
*/
|
|
30
|
+
send(data) {
|
|
31
|
+
if (this._disposed)
|
|
32
|
+
return Promise.resolve();
|
|
33
|
+
return new Promise((resolve) => {
|
|
34
|
+
this._entries.push({ data, ack: resolve });
|
|
35
|
+
this._notify?.();
|
|
36
|
+
this._notify = undefined;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Wait until at least one entry is available.
|
|
41
|
+
*/
|
|
42
|
+
wait() {
|
|
43
|
+
if (this._entries.length > 0)
|
|
44
|
+
return Promise.resolve();
|
|
45
|
+
return new Promise((resolve) => {
|
|
46
|
+
this._notify = resolve;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Remove and return the next entry, or undefined if empty.
|
|
51
|
+
*/
|
|
52
|
+
shift() {
|
|
53
|
+
return this._entries.shift();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Dispose the queue by resolving all pending acks and draining entries.
|
|
57
|
+
* Future {@link send} calls resolve immediately.
|
|
58
|
+
*/
|
|
59
|
+
dispose() {
|
|
60
|
+
this._disposed = true;
|
|
61
|
+
while (this._entries.length > 0) {
|
|
62
|
+
this._entries.shift().ack();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Number of entries in the queue.
|
|
67
|
+
*/
|
|
68
|
+
get size() {
|
|
69
|
+
return this._entries.length;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/multiagent/queue.ts"],"names":[],"mappings":"AAsBA;;;;;;;GAOG;AACH,MAAM,OAAO,KAAK;IACC,QAAQ,GAAiB,EAAE,CAAA;IAC5C,+DAA+D;IACvD,OAAO,CAA2B;IAClC,SAAS,GAAG,KAAK,CAAA;IAEzB;;OAEG;IACH,IAAI,CAAC,IAAe;QAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,OAAO,EAAE,EAAE,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;IAC1B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,IAAe;QAClB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAE5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;YAC1C,IAAI,CAAC,OAAO,EAAE,EAAE,CAAA;YAChB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IAC9B,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAG,CAAC,GAAG,EAAE,CAAA;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA;IAC7B,CAAC;CACF"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
+
import { AppState } from '../app-state.js';
|
|
1
2
|
import type { ContentBlock } from '../types/messages.js';
|
|
2
|
-
|
|
3
|
-
* Base state class shared across multi-agent patterns.
|
|
4
|
-
*/
|
|
5
|
-
export declare class MultiAgentState {
|
|
6
|
-
}
|
|
3
|
+
import type { z } from 'zod';
|
|
7
4
|
/**
|
|
8
5
|
* Execution lifecycle status shared across all multi-agent patterns.
|
|
9
6
|
*/
|
|
@@ -23,25 +20,30 @@ export declare const Status: {
|
|
|
23
20
|
* Union of all valid status values.
|
|
24
21
|
*/
|
|
25
22
|
export type Status = (typeof Status)[keyof typeof Status];
|
|
23
|
+
/**
|
|
24
|
+
* Subset of {@link Status} representing terminal outcomes.
|
|
25
|
+
*/
|
|
26
|
+
export type ResultStatus = typeof Status.COMPLETED | typeof Status.FAILED | typeof Status.CANCELLED;
|
|
26
27
|
/**
|
|
27
28
|
* Result of executing a single node.
|
|
28
29
|
*/
|
|
29
30
|
export declare class NodeResult {
|
|
30
31
|
readonly type: "nodeResult";
|
|
31
32
|
readonly nodeId: string;
|
|
32
|
-
readonly status:
|
|
33
|
-
/**
|
|
34
|
-
* Execution time in milliseconds.
|
|
35
|
-
*/
|
|
33
|
+
readonly status: ResultStatus;
|
|
34
|
+
/** Execution time in milliseconds. */
|
|
36
35
|
readonly duration: number;
|
|
37
36
|
readonly content: ContentBlock[];
|
|
38
37
|
readonly error?: Error;
|
|
38
|
+
/** Validated structured output, if a schema was provided. */
|
|
39
|
+
readonly structuredOutput?: z.output<z.ZodType>;
|
|
39
40
|
constructor(data: {
|
|
40
41
|
nodeId: string;
|
|
41
|
-
status:
|
|
42
|
+
status: ResultStatus;
|
|
42
43
|
duration: number;
|
|
43
44
|
content?: ContentBlock[];
|
|
44
45
|
error?: Error;
|
|
46
|
+
structuredOutput?: z.output<z.ZodType>;
|
|
45
47
|
});
|
|
46
48
|
}
|
|
47
49
|
/**
|
|
@@ -52,4 +54,71 @@ export declare class NodeResult {
|
|
|
52
54
|
* produce the final {@link NodeResult}.
|
|
53
55
|
*/
|
|
54
56
|
export type NodeResultUpdate = Partial<Omit<NodeResult, 'type'>>;
|
|
57
|
+
/**
|
|
58
|
+
* Execution state of a single node within a multi-agent orchestration.
|
|
59
|
+
*/
|
|
60
|
+
export declare class NodeState {
|
|
61
|
+
readonly type: "nodeState";
|
|
62
|
+
status: Status;
|
|
63
|
+
/** Marks this node as the last one executed in an execution path. */
|
|
64
|
+
terminus: boolean;
|
|
65
|
+
/** Node execution start time in milliseconds since epoch. */
|
|
66
|
+
startTime: number;
|
|
67
|
+
readonly results: NodeResult[];
|
|
68
|
+
constructor();
|
|
69
|
+
/** Content from the most recent result, or empty array if none. */
|
|
70
|
+
get content(): readonly ContentBlock[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Aggregate result from a multi-agent execution.
|
|
74
|
+
*/
|
|
75
|
+
export declare class MultiAgentResult {
|
|
76
|
+
readonly type: "multiAgentResult";
|
|
77
|
+
readonly status: ResultStatus;
|
|
78
|
+
readonly results: NodeResult[];
|
|
79
|
+
/** Combined content from terminus nodes, in completion order. */
|
|
80
|
+
readonly content: ContentBlock[];
|
|
81
|
+
readonly duration: number;
|
|
82
|
+
readonly error?: Error;
|
|
83
|
+
constructor(data: {
|
|
84
|
+
status?: ResultStatus;
|
|
85
|
+
results: NodeResult[];
|
|
86
|
+
content?: ContentBlock[];
|
|
87
|
+
duration: number;
|
|
88
|
+
error?: Error;
|
|
89
|
+
});
|
|
90
|
+
/** Derives the aggregate status from individual node results. */
|
|
91
|
+
private _resolveStatus;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Shared state for multi-agent orchestration patterns.
|
|
95
|
+
*/
|
|
96
|
+
export declare class MultiAgentState {
|
|
97
|
+
/** Execution start time in milliseconds since epoch. */
|
|
98
|
+
readonly startTime: number;
|
|
99
|
+
/** Number of node executions started so far. */
|
|
100
|
+
steps: number;
|
|
101
|
+
/** All node results in completion order. */
|
|
102
|
+
readonly results: NodeResult[];
|
|
103
|
+
/** App-level key-value state accessible from hooks, edge handlers, and custom nodes. */
|
|
104
|
+
readonly app: AppState;
|
|
105
|
+
/** Structured output schema to apply to node invocations. */
|
|
106
|
+
readonly structuredOutputSchema?: z.ZodSchema;
|
|
107
|
+
private readonly _nodes;
|
|
108
|
+
constructor(data?: {
|
|
109
|
+
nodeIds?: string[];
|
|
110
|
+
structuredOutputSchema?: z.ZodSchema;
|
|
111
|
+
});
|
|
112
|
+
/**
|
|
113
|
+
* Get the state of a specific node by ID.
|
|
114
|
+
*
|
|
115
|
+
* @param id - The node identifier
|
|
116
|
+
* @returns The node's state, or undefined if the node is not tracked
|
|
117
|
+
*/
|
|
118
|
+
node(id: string): NodeState | undefined;
|
|
119
|
+
/**
|
|
120
|
+
* All tracked node states.
|
|
121
|
+
*/
|
|
122
|
+
get nodes(): ReadonlyMap<string, NodeState>;
|
|
123
|
+
}
|
|
55
124
|
//# sourceMappingURL=state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/multiagent/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/multiagent/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Base state class shared across multi-agent patterns.
|
|
3
|
-
*/
|
|
4
|
-
export class MultiAgentState {
|
|
5
|
-
}
|
|
1
|
+
import { AppState } from '../app-state.js';
|
|
6
2
|
/**
|
|
7
3
|
* Execution lifecycle status shared across all multi-agent patterns.
|
|
8
4
|
*/
|
|
@@ -25,19 +21,115 @@ export class NodeResult {
|
|
|
25
21
|
type = 'nodeResult';
|
|
26
22
|
nodeId;
|
|
27
23
|
status;
|
|
28
|
-
/**
|
|
29
|
-
* Execution time in milliseconds.
|
|
30
|
-
*/
|
|
24
|
+
/** Execution time in milliseconds. */
|
|
31
25
|
duration;
|
|
32
26
|
content;
|
|
33
27
|
error;
|
|
28
|
+
/** Validated structured output, if a schema was provided. */
|
|
29
|
+
structuredOutput;
|
|
34
30
|
constructor(data) {
|
|
35
31
|
this.nodeId = data.nodeId;
|
|
36
32
|
this.status = data.status;
|
|
37
33
|
this.duration = data.duration;
|
|
38
34
|
this.content = data.content ?? [];
|
|
39
|
-
if (data
|
|
35
|
+
if ('error' in data)
|
|
40
36
|
this.error = data.error;
|
|
37
|
+
if ('structuredOutput' in data)
|
|
38
|
+
this.structuredOutput = data.structuredOutput;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Execution state of a single node within a multi-agent orchestration.
|
|
43
|
+
*/
|
|
44
|
+
export class NodeState {
|
|
45
|
+
type = 'nodeState';
|
|
46
|
+
status;
|
|
47
|
+
/** Marks this node as the last one executed in an execution path. */
|
|
48
|
+
terminus;
|
|
49
|
+
/** Node execution start time in milliseconds since epoch. */
|
|
50
|
+
startTime;
|
|
51
|
+
results;
|
|
52
|
+
constructor() {
|
|
53
|
+
this.status = Status.PENDING;
|
|
54
|
+
this.terminus = false;
|
|
55
|
+
this.startTime = Date.now();
|
|
56
|
+
this.results = [];
|
|
57
|
+
}
|
|
58
|
+
/** Content from the most recent result, or empty array if none. */
|
|
59
|
+
get content() {
|
|
60
|
+
const last = this.results[this.results.length - 1];
|
|
61
|
+
return last?.content ?? [];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Aggregate result from a multi-agent execution.
|
|
66
|
+
*/
|
|
67
|
+
export class MultiAgentResult {
|
|
68
|
+
type = 'multiAgentResult';
|
|
69
|
+
status;
|
|
70
|
+
results;
|
|
71
|
+
/** Combined content from terminus nodes, in completion order. */
|
|
72
|
+
content;
|
|
73
|
+
duration;
|
|
74
|
+
error;
|
|
75
|
+
constructor(data) {
|
|
76
|
+
this.status = data.status ?? this._resolveStatus(data.results);
|
|
77
|
+
this.results = data.results;
|
|
78
|
+
this.content = data.content ?? [];
|
|
79
|
+
this.duration = data.duration;
|
|
80
|
+
if ('error' in data)
|
|
81
|
+
this.error = data.error;
|
|
82
|
+
}
|
|
83
|
+
/** Derives the aggregate status from individual node results. */
|
|
84
|
+
_resolveStatus(results) {
|
|
85
|
+
if (results.some((r) => r.status === Status.FAILED))
|
|
86
|
+
return Status.FAILED;
|
|
87
|
+
if (results.some((r) => r.status === Status.CANCELLED))
|
|
88
|
+
return Status.CANCELLED;
|
|
89
|
+
return Status.COMPLETED;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Shared state for multi-agent orchestration patterns.
|
|
94
|
+
*/
|
|
95
|
+
export class MultiAgentState {
|
|
96
|
+
/** Execution start time in milliseconds since epoch. */
|
|
97
|
+
startTime;
|
|
98
|
+
/** Number of node executions started so far. */
|
|
99
|
+
steps;
|
|
100
|
+
/** All node results in completion order. */
|
|
101
|
+
results;
|
|
102
|
+
/** App-level key-value state accessible from hooks, edge handlers, and custom nodes. */
|
|
103
|
+
app;
|
|
104
|
+
/** Structured output schema to apply to node invocations. */
|
|
105
|
+
structuredOutputSchema;
|
|
106
|
+
_nodes;
|
|
107
|
+
constructor(data) {
|
|
108
|
+
this.startTime = Date.now();
|
|
109
|
+
this.steps = 0;
|
|
110
|
+
this.results = [];
|
|
111
|
+
this.app = new AppState();
|
|
112
|
+
if (data?.structuredOutputSchema)
|
|
113
|
+
this.structuredOutputSchema = data.structuredOutputSchema;
|
|
114
|
+
this._nodes = new Map();
|
|
115
|
+
for (const id of data?.nodeIds ?? []) {
|
|
116
|
+
this._nodes.set(id, new NodeState());
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get the state of a specific node by ID.
|
|
121
|
+
*
|
|
122
|
+
* @param id - The node identifier
|
|
123
|
+
* @returns The node's state, or undefined if the node is not tracked
|
|
124
|
+
*/
|
|
125
|
+
node(id) {
|
|
126
|
+
return this._nodes.get(id);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* All tracked node states.
|
|
130
|
+
*/
|
|
131
|
+
get nodes() {
|
|
132
|
+
return this._nodes;
|
|
41
133
|
}
|
|
42
134
|
}
|
|
43
135
|
//# sourceMappingURL=state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/multiagent/state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/multiagent/state.ts"],"names":[],"mappings":"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"}
|