@strands-agents/sdk 0.3.0 → 0.5.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 +43 -0
- 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__/mock-hook-provider.d.ts +3 -7
- package/dist/src/__fixtures__/mock-hook-provider.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-hook-provider.js +3 -9
- package/dist/src/__fixtures__/mock-hook-provider.js.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.d.ts +8 -2
- package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.js +1 -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 +37 -0
- package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-storage-provider.js +105 -0
- package/dist/src/__fixtures__/mock-storage-provider.js.map +1 -0
- package/dist/src/__fixtures__/slim-types.d.ts +50 -0
- package/dist/src/__fixtures__/slim-types.d.ts.map +1 -0
- package/dist/src/__fixtures__/slim-types.js +6 -0
- package/dist/src/__fixtures__/slim-types.js.map +1 -0
- package/dist/src/__fixtures__/tool-helpers.d.ts +10 -5
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.js +5 -5
- 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} +62 -43
- package/dist/src/__tests__/app-state.test.js.map +1 -0
- package/dist/src/__tests__/mcp.test.js +96 -15
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.hook.test.js +18 -18
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.test.js +234 -8
- 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/__tests__/printer.test.js +5 -9
- package/dist/src/agent/__tests__/printer.test.js.map +1 -1
- package/dist/src/agent/__tests__/snapshot.test.d.ts +2 -0
- package/dist/src/agent/__tests__/snapshot.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/snapshot.test.js +249 -0
- package/dist/src/agent/__tests__/snapshot.test.js.map +1 -0
- package/dist/src/agent/agent.d.ts +78 -10
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +252 -55
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/printer.d.ts +4 -0
- package/dist/src/agent/printer.d.ts.map +1 -1
- package/dist/src/agent/printer.js +18 -6
- package/dist/src/agent/printer.js.map +1 -1
- package/dist/src/agent/snapshot.d.ts +132 -0
- package/dist/src/agent/snapshot.d.ts.map +1 -0
- package/dist/src/agent/snapshot.js +151 -0
- package/dist/src/agent/snapshot.js.map +1 -0
- package/dist/src/{agent/state.d.ts → app-state.d.ts} +19 -6
- package/dist/src/app-state.d.ts.map +1 -0
- package/dist/src/{agent/state.js → app-state.js} +27 -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 +15 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +18 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hooks/__tests__/events.test.js +102 -21
- package/dist/src/hooks/__tests__/events.test.js.map +1 -1
- package/dist/src/hooks/events.d.ts +156 -22
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +158 -18
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/index.d.ts +12 -4
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +11 -3
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/registry.d.ts +5 -5
- package/dist/src/hooks/registry.d.ts.map +1 -1
- package/dist/src/hooks/registry.js.map +1 -1
- package/dist/src/hooks/types.d.ts +5 -5
- package/dist/src/hooks/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +6 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +8 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp.d.ts +3 -0
- package/dist/src/mcp.d.ts.map +1 -1
- package/dist/src/mcp.js +38 -1
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/models/__tests__/anthropic.test.js +31 -42
- package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +70 -107
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/gemini.test.js +18 -18
- package/dist/src/models/__tests__/gemini.test.js.map +1 -1
- package/dist/src/models/__tests__/model.test.js +21 -13
- package/dist/src/models/__tests__/model.test.js.map +1 -1
- package/dist/src/models/__tests__/openai.test.js +73 -83
- package/dist/src/models/__tests__/openai.test.js.map +1 -1
- package/dist/src/models/model.d.ts +4 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +6 -0
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/streaming.d.ts +9 -1
- package/dist/src/models/streaming.d.ts.map +1 -1
- package/dist/src/models/streaming.js +17 -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 +189 -0
- package/dist/src/multiagent/__tests__/events.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/nodes.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.js +194 -0
- package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -0
- 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 +96 -0
- package/dist/src/multiagent/__tests__/queue.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 +29 -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 +135 -0
- package/dist/src/multiagent/events.d.ts.map +1 -0
- package/dist/src/multiagent/events.js +140 -0
- package/dist/src/multiagent/events.js.map +1 -0
- package/dist/src/multiagent/index.d.ts +13 -0
- package/dist/src/multiagent/index.d.ts.map +1 -0
- package/dist/src/multiagent/index.js +8 -0
- package/dist/src/multiagent/index.js.map +1 -0
- package/dist/src/multiagent/nodes.d.ts +123 -0
- package/dist/src/multiagent/nodes.d.ts.map +1 -0
- package/dist/src/multiagent/nodes.js +148 -0
- package/dist/src/multiagent/nodes.js.map +1 -0
- package/dist/src/multiagent/queue.d.ts +67 -0
- package/dist/src/multiagent/queue.d.ts.map +1 -0
- package/dist/src/multiagent/queue.js +59 -0
- package/dist/src/multiagent/queue.js.map +1 -0
- package/dist/src/multiagent/state.d.ts +122 -0
- package/dist/src/multiagent/state.d.ts.map +1 -0
- package/dist/src/multiagent/state.js +132 -0
- package/dist/src/multiagent/state.js.map +1 -0
- package/dist/src/registry/tool-registry.d.ts +2 -1
- package/dist/src/registry/tool-registry.d.ts.map +1 -1
- package/dist/src/registry/tool-registry.js +4 -2
- package/dist/src/registry/tool-registry.js.map +1 -1
- package/dist/src/session/__tests__/file-storage.test.node.d.ts +2 -0
- package/dist/src/session/__tests__/file-storage.test.node.d.ts.map +1 -0
- package/dist/src/session/__tests__/file-storage.test.node.js +218 -0
- package/dist/src/session/__tests__/file-storage.test.node.js.map +1 -0
- package/dist/src/session/__tests__/s3-storage.test.node.d.ts +2 -0
- package/dist/src/session/__tests__/s3-storage.test.node.d.ts.map +1 -0
- package/dist/src/session/__tests__/s3-storage.test.node.js +375 -0
- package/dist/src/session/__tests__/s3-storage.test.node.js.map +1 -0
- package/dist/src/session/__tests__/validation.test.d.ts +2 -0
- package/dist/src/session/__tests__/validation.test.d.ts.map +1 -0
- package/dist/src/session/__tests__/validation.test.js +20 -0
- package/dist/src/session/__tests__/validation.test.js.map +1 -0
- package/dist/src/session/file-storage.d.ts +79 -0
- package/dist/src/session/file-storage.d.ts.map +1 -0
- package/dist/src/session/file-storage.js +144 -0
- package/dist/src/session/file-storage.js.map +1 -0
- package/dist/src/session/index.d.ts +19 -0
- package/dist/src/session/index.d.ts.map +1 -0
- package/dist/src/session/index.js +18 -0
- package/dist/src/session/index.js.map +1 -0
- package/dist/src/session/s3-storage.d.ts +93 -0
- package/dist/src/session/s3-storage.d.ts.map +1 -0
- package/dist/src/session/s3-storage.js +150 -0
- package/dist/src/session/s3-storage.js.map +1 -0
- package/dist/src/session/storage.d.ts +91 -0
- package/dist/src/session/storage.d.ts.map +1 -0
- package/dist/src/session/storage.js +2 -0
- package/dist/src/session/storage.js.map +1 -0
- package/dist/src/session/types.d.ts +49 -0
- package/dist/src/session/types.d.ts.map +1 -0
- package/dist/src/session/types.js +2 -0
- package/dist/src/session/types.js.map +1 -0
- package/dist/src/session/validation.d.ts +10 -0
- package/dist/src/session/validation.d.ts.map +1 -0
- package/dist/src/session/validation.js +16 -0
- package/dist/src/session/validation.js.map +1 -0
- package/dist/src/structured-output/__tests__/context.test.d.ts +2 -0
- package/dist/src/structured-output/__tests__/context.test.d.ts.map +1 -0
- package/dist/src/structured-output/__tests__/context.test.js +201 -0
- package/dist/src/structured-output/__tests__/context.test.js.map +1 -0
- package/dist/src/structured-output/__tests__/exceptions.test.d.ts +2 -0
- package/dist/src/structured-output/__tests__/exceptions.test.d.ts.map +1 -0
- package/dist/src/structured-output/__tests__/exceptions.test.js +103 -0
- package/dist/src/structured-output/__tests__/exceptions.test.js.map +1 -0
- package/dist/src/structured-output/__tests__/tool.test.d.ts +2 -0
- package/dist/src/structured-output/__tests__/tool.test.d.ts.map +1 -0
- package/dist/src/structured-output/__tests__/tool.test.js +256 -0
- package/dist/src/structured-output/__tests__/tool.test.js.map +1 -0
- package/dist/src/structured-output/__tests__/utils.test.d.ts +2 -0
- package/dist/src/structured-output/__tests__/utils.test.d.ts.map +1 -0
- package/dist/src/structured-output/__tests__/utils.test.js +183 -0
- package/dist/src/structured-output/__tests__/utils.test.js.map +1 -0
- package/dist/src/structured-output/context.d.ts +91 -0
- package/dist/src/structured-output/context.d.ts.map +1 -0
- package/dist/src/structured-output/context.js +112 -0
- package/dist/src/structured-output/context.js.map +1 -0
- package/dist/src/structured-output/exceptions.d.ts +18 -0
- package/dist/src/structured-output/exceptions.d.ts.map +1 -0
- package/dist/src/structured-output/exceptions.js +28 -0
- package/dist/src/structured-output/exceptions.js.map +1 -0
- package/dist/src/structured-output/tool.d.ts +33 -0
- package/dist/src/structured-output/tool.d.ts.map +1 -0
- package/dist/src/structured-output/tool.js +73 -0
- package/dist/src/structured-output/tool.js.map +1 -0
- package/dist/src/structured-output/utils.d.ts +23 -0
- package/dist/src/structured-output/utils.d.ts.map +1 -0
- package/dist/src/structured-output/utils.js +104 -0
- package/dist/src/structured-output/utils.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 +129 -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__/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 +61 -0
- package/dist/src/telemetry/config.d.ts.map +1 -0
- package/dist/src/telemetry/config.js +101 -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/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/telemetry/types.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.map +1 -1
- package/dist/src/tools/zod-tool.js +2 -5
- package/dist/src/tools/zod-tool.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/media.test.js +216 -1
- package/dist/src/types/__tests__/media.test.js.map +1 -1
- package/dist/src/types/__tests__/messages.test.js +193 -4
- package/dist/src/types/__tests__/messages.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +16 -10
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +8 -1
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/json.d.ts +61 -0
- package/dist/src/types/json.d.ts.map +1 -1
- package/dist/src/types/json.js +24 -0
- package/dist/src/types/json.js.map +1 -1
- package/dist/src/types/media.d.ts +84 -4
- package/dist/src/types/media.d.ts.map +1 -1
- package/dist/src/types/media.js +194 -0
- package/dist/src/types/media.js.map +1 -1
- package/dist/src/types/messages.d.ts +152 -13
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js +235 -8
- package/dist/src/types/messages.js.map +1 -1
- package/dist/src/types/serializable.d.ts +31 -0
- package/dist/src/types/serializable.d.ts.map +1 -0
- package/dist/src/types/serializable.js +19 -0
- package/dist/src/types/serializable.js.map +1 -0
- package/dist/src/utils/zod.d.ts +11 -0
- package/dist/src/utils/zod.d.ts.map +1 -0
- package/dist/src/utils/zod.js +14 -0
- package/dist/src/utils/zod.js.map +1 -0
- 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/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/notebook/__tests__/notebook.test.js +2 -2
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
- package/package.json +17 -3
- 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
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { HookableEvent } from '../hooks/events.js';
|
|
2
|
+
/**
|
|
3
|
+
* Event triggered when a multi-agent orchestrator has finished initialization.
|
|
4
|
+
*/
|
|
5
|
+
export class MultiAgentInitializedEvent extends HookableEvent {
|
|
6
|
+
type = 'multiAgentInitializedEvent';
|
|
7
|
+
orchestrator;
|
|
8
|
+
constructor(data) {
|
|
9
|
+
super();
|
|
10
|
+
this.orchestrator = data.orchestrator;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Event triggered before orchestrator execution starts.
|
|
15
|
+
*/
|
|
16
|
+
export class BeforeMultiAgentInvocationEvent extends HookableEvent {
|
|
17
|
+
type = 'beforeMultiAgentInvocationEvent';
|
|
18
|
+
orchestrator;
|
|
19
|
+
state;
|
|
20
|
+
constructor(data) {
|
|
21
|
+
super();
|
|
22
|
+
this.orchestrator = data.orchestrator;
|
|
23
|
+
this.state = data.state;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Event triggered after orchestrator execution completes.
|
|
28
|
+
*/
|
|
29
|
+
export class AfterMultiAgentInvocationEvent extends HookableEvent {
|
|
30
|
+
type = 'afterMultiAgentInvocationEvent';
|
|
31
|
+
orchestrator;
|
|
32
|
+
state;
|
|
33
|
+
constructor(data) {
|
|
34
|
+
super();
|
|
35
|
+
this.orchestrator = data.orchestrator;
|
|
36
|
+
this.state = data.state;
|
|
37
|
+
}
|
|
38
|
+
_shouldReverseCallbacks() {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Event triggered before a node begins execution.
|
|
44
|
+
* Hook callbacks can set {@link cancel} to prevent the node from executing.
|
|
45
|
+
*/
|
|
46
|
+
export class BeforeNodeCallEvent extends HookableEvent {
|
|
47
|
+
type = 'beforeNodeCallEvent';
|
|
48
|
+
orchestrator;
|
|
49
|
+
state;
|
|
50
|
+
nodeId;
|
|
51
|
+
/**
|
|
52
|
+
* Set by hook callbacks to cancel node execution.
|
|
53
|
+
* When set to `true`, a default cancel message is used.
|
|
54
|
+
* When set to a string, that string is used as the cancel message.
|
|
55
|
+
*/
|
|
56
|
+
cancel = false;
|
|
57
|
+
constructor(data) {
|
|
58
|
+
super();
|
|
59
|
+
this.orchestrator = data.orchestrator;
|
|
60
|
+
this.state = data.state;
|
|
61
|
+
this.nodeId = data.nodeId;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Event triggered after a node completes execution.
|
|
66
|
+
*/
|
|
67
|
+
export class AfterNodeCallEvent extends HookableEvent {
|
|
68
|
+
type = 'afterNodeCallEvent';
|
|
69
|
+
orchestrator;
|
|
70
|
+
state;
|
|
71
|
+
nodeId;
|
|
72
|
+
constructor(data) {
|
|
73
|
+
super();
|
|
74
|
+
this.orchestrator = data.orchestrator;
|
|
75
|
+
this.state = data.state;
|
|
76
|
+
this.nodeId = data.nodeId;
|
|
77
|
+
}
|
|
78
|
+
_shouldReverseCallbacks() {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Wraps an inner streaming event from a node with the node's identity.
|
|
84
|
+
* Emitted during node execution to propagate agent-level or nested
|
|
85
|
+
* multi-agent events up to the orchestration layer.
|
|
86
|
+
*/
|
|
87
|
+
export class NodeStreamUpdateEvent extends HookableEvent {
|
|
88
|
+
type = 'nodeStreamUpdateEvent';
|
|
89
|
+
nodeId;
|
|
90
|
+
nodeType;
|
|
91
|
+
event;
|
|
92
|
+
constructor(data) {
|
|
93
|
+
super();
|
|
94
|
+
this.nodeId = data.nodeId;
|
|
95
|
+
this.nodeType = data.nodeType;
|
|
96
|
+
this.event = data.event;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Event triggered when a node finishes execution.
|
|
101
|
+
* Wraps the {@link NodeResult} for the completed node.
|
|
102
|
+
*/
|
|
103
|
+
export class NodeResultEvent extends HookableEvent {
|
|
104
|
+
type = 'nodeResultEvent';
|
|
105
|
+
nodeId;
|
|
106
|
+
nodeType;
|
|
107
|
+
result;
|
|
108
|
+
constructor(data) {
|
|
109
|
+
super();
|
|
110
|
+
this.nodeId = data.nodeId;
|
|
111
|
+
this.nodeType = data.nodeType;
|
|
112
|
+
this.result = data.result;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Event triggered when execution transitions between nodes.
|
|
117
|
+
*/
|
|
118
|
+
export class MultiAgentHandoffEvent extends HookableEvent {
|
|
119
|
+
type = 'multiAgentHandoffEvent';
|
|
120
|
+
source;
|
|
121
|
+
targets;
|
|
122
|
+
constructor(data) {
|
|
123
|
+
super();
|
|
124
|
+
this.source = data.source;
|
|
125
|
+
this.targets = data.targets;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Event triggered as the final event in the multi-agent stream.
|
|
130
|
+
* Wraps the {@link MultiAgentResult} containing the aggregate outcome.
|
|
131
|
+
*/
|
|
132
|
+
export class MultiAgentResultEvent extends HookableEvent {
|
|
133
|
+
type = 'multiAgentResultEvent';
|
|
134
|
+
result;
|
|
135
|
+
constructor(data) {
|
|
136
|
+
super();
|
|
137
|
+
this.result = data.result;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/multiagent/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-agent orchestration module.
|
|
3
|
+
*/
|
|
4
|
+
export { MultiAgentState, NodeState, Status, NodeResult, MultiAgentResult } from './state.js';
|
|
5
|
+
export type { NodeResultUpdate, ResultStatus } from './state.js';
|
|
6
|
+
export { Node, AgentNode, MultiAgentNode } from './nodes.js';
|
|
7
|
+
export type { NodeConfig, AgentNodeOptions, MultiAgentNodeOptions, NodeDefinition, NodeType } from './nodes.js';
|
|
8
|
+
export type { MultiAgentBase } from './base.js';
|
|
9
|
+
export { MultiAgentInitializedEvent, BeforeMultiAgentInvocationEvent, AfterMultiAgentInvocationEvent, BeforeNodeCallEvent, AfterNodeCallEvent, NodeStreamUpdateEvent, NodeResultEvent, MultiAgentHandoffEvent, MultiAgentResultEvent, } from './events.js';
|
|
10
|
+
export type { MultiAgentStreamEvent } from './events.js';
|
|
11
|
+
export { Edge } from './edge.js';
|
|
12
|
+
export type { EdgeHandler, EdgeDefinition } from './edge.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/multiagent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7F,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEhE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE/G,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE/C,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,EAC9B,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-agent orchestration module.
|
|
3
|
+
*/
|
|
4
|
+
export { MultiAgentState, NodeState, Status, NodeResult, MultiAgentResult } from './state.js';
|
|
5
|
+
export { Node, AgentNode, MultiAgentNode } from './nodes.js';
|
|
6
|
+
export { MultiAgentInitializedEvent, BeforeMultiAgentInvocationEvent, AfterMultiAgentInvocationEvent, BeforeNodeCallEvent, AfterNodeCallEvent, NodeStreamUpdateEvent, NodeResultEvent, MultiAgentHandoffEvent, MultiAgentResultEvent, } from './events.js';
|
|
7
|
+
export { Edge } from './edge.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/multiagent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAG7F,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAK5D,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,EAC9B,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { Agent, InvokeArgs } from '../agent/agent.js';
|
|
2
|
+
import type { MultiAgentStreamEvent } from './events.js';
|
|
3
|
+
import { NodeResult } from './state.js';
|
|
4
|
+
import type { MultiAgentState, NodeResultUpdate } from './state.js';
|
|
5
|
+
import type { MultiAgentBase } from './base.js';
|
|
6
|
+
/**
|
|
7
|
+
* Known node type identifiers with extensibility for custom nodes.
|
|
8
|
+
*/
|
|
9
|
+
export type NodeType = 'agentNode' | 'multiAgentNode' | (string & {});
|
|
10
|
+
/**
|
|
11
|
+
* Configuration for a node execution.
|
|
12
|
+
*/
|
|
13
|
+
export interface NodeConfig {
|
|
14
|
+
/**
|
|
15
|
+
* Maximum execution time for this node in milliseconds.
|
|
16
|
+
*/
|
|
17
|
+
timeout?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Abstract base class for all multi-agent orchestration nodes.
|
|
21
|
+
*
|
|
22
|
+
* Uses the template method pattern: {@link stream} handles orchestration
|
|
23
|
+
* boilerplate (duration measurement, status tracking, error capture) and
|
|
24
|
+
* delegates to {@link handle} for node-specific execution logic.
|
|
25
|
+
*/
|
|
26
|
+
export declare abstract class Node {
|
|
27
|
+
readonly type: string;
|
|
28
|
+
/** Unique identifier for this node within the orchestration. */
|
|
29
|
+
readonly id: string;
|
|
30
|
+
/** Per-node configuration. */
|
|
31
|
+
readonly config: NodeConfig;
|
|
32
|
+
/**
|
|
33
|
+
* @param id - Unique identifier for this node within the orchestration
|
|
34
|
+
* @param config - Per-node configuration
|
|
35
|
+
*/
|
|
36
|
+
constructor(id: string, config: NodeConfig);
|
|
37
|
+
/**
|
|
38
|
+
* Execute the node. Handles duration measurement, error capture,
|
|
39
|
+
* and delegates to handle() for node-specific logic.
|
|
40
|
+
*
|
|
41
|
+
* @param args - Input to pass to the node (string, content blocks, or messages)
|
|
42
|
+
* @param state - The current multi-agent state
|
|
43
|
+
* @returns Async generator yielding streaming events and returning a NodeResult
|
|
44
|
+
*/
|
|
45
|
+
stream(args: InvokeArgs, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResult, undefined>;
|
|
46
|
+
/**
|
|
47
|
+
* Node-specific execution logic implemented by subclasses.
|
|
48
|
+
*
|
|
49
|
+
* @param args - Input to process (string, content blocks, or messages)
|
|
50
|
+
* @param state - The current multi-agent state
|
|
51
|
+
* @returns Async generator yielding streaming events and returning a partial result
|
|
52
|
+
*/
|
|
53
|
+
abstract handle(args: InvokeArgs, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Options for creating an {@link AgentNode}.
|
|
57
|
+
*/
|
|
58
|
+
export interface AgentNodeOptions extends NodeConfig {
|
|
59
|
+
/** Unique node identifier. */
|
|
60
|
+
id: string;
|
|
61
|
+
/** The agent to wrap as a node. */
|
|
62
|
+
agent: Agent;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Node that wraps an Agent instance for multi-agent orchestration.
|
|
66
|
+
*
|
|
67
|
+
* Each execution is isolated — the wrapped agent's internal state
|
|
68
|
+
* is unchanged after the node completes.
|
|
69
|
+
*/
|
|
70
|
+
export declare class AgentNode extends Node {
|
|
71
|
+
readonly type: "agentNode";
|
|
72
|
+
private readonly _agent;
|
|
73
|
+
constructor(options: AgentNodeOptions);
|
|
74
|
+
get agent(): Agent;
|
|
75
|
+
/**
|
|
76
|
+
* Executes the wrapped agent, yielding each agent streaming event
|
|
77
|
+
* wrapped in a {@link NodeStreamUpdateEvent}.
|
|
78
|
+
*
|
|
79
|
+
* @param args - Input to pass to the agent
|
|
80
|
+
* @param state - The current multi-agent state
|
|
81
|
+
* @returns Async generator yielding streaming events and returning the agent's content blocks
|
|
82
|
+
*/
|
|
83
|
+
handle(args: InvokeArgs, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Options for creating a {@link MultiAgentNode}.
|
|
87
|
+
*/
|
|
88
|
+
export interface MultiAgentNodeOptions extends NodeConfig {
|
|
89
|
+
/** The orchestrator to wrap as a node. */
|
|
90
|
+
orchestrator: MultiAgentBase;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Node that wraps a multi-agent orchestrator (e.g. Graph) for nested composition.
|
|
94
|
+
*
|
|
95
|
+
* Inner {@link NodeStreamUpdateEvent}s pass through to preserve the original
|
|
96
|
+
* node's identity. All other events are wrapped in a new {@link NodeStreamUpdateEvent}
|
|
97
|
+
* tagged with this node's identity.
|
|
98
|
+
*/
|
|
99
|
+
export declare class MultiAgentNode extends Node {
|
|
100
|
+
readonly type: "multiAgentNode";
|
|
101
|
+
private readonly _orchestrator;
|
|
102
|
+
constructor(options: MultiAgentNodeOptions);
|
|
103
|
+
get orchestrator(): MultiAgentBase;
|
|
104
|
+
/**
|
|
105
|
+
* Executes the wrapped orchestrator. Inner {@link NodeStreamUpdateEvent}s
|
|
106
|
+
* pass through as-is; all other events are wrapped in a new
|
|
107
|
+
* {@link NodeStreamUpdateEvent} tagged with this node's identity.
|
|
108
|
+
*
|
|
109
|
+
* @param args - Input to pass to the orchestrator
|
|
110
|
+
* @param _state - The current multi-agent state (unused)
|
|
111
|
+
* @returns Async generator yielding streaming events and returning the orchestrator's content
|
|
112
|
+
*/
|
|
113
|
+
handle(args: InvokeArgs, _state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* A node definition accepted by orchestration constructors.
|
|
117
|
+
*/
|
|
118
|
+
export type NodeDefinition = Node | (AgentNodeOptions & {
|
|
119
|
+
type: 'agent';
|
|
120
|
+
}) | (MultiAgentNodeOptions & {
|
|
121
|
+
type: 'multiAgent';
|
|
122
|
+
});
|
|
123
|
+
//# sourceMappingURL=nodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/multiagent/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAA;AAEzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,UAAU,EAAU,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE/C;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAErE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;GAMG;AACH,8BAAsB,IAAI;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAS;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAE3B;;;OAGG;gBACS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAK1C;;;;;;;OAOG;IACI,MAAM,CACX,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,eAAe,GACrB,cAAc,CAAC,qBAAqB,EAAE,UAAU,EAAE,SAAS,CAAC;IA0B/D;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CACb,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,eAAe,GACrB,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,mCAAmC;IACnC,KAAK,EAAE,KAAK,CAAA;CACb;AAED;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,IAAI;IACjC,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;gBAElB,OAAO,EAAE,gBAAgB;IAMrC,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED;;;;;;;OAOG;IACI,MAAM,CACX,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,eAAe,GACrB,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC;CAsBtE;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,0CAA0C;IAC1C,YAAY,EAAE,cAAc,CAAA;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,IAAI;IACtC,QAAQ,CAAC,IAAI,EAAG,gBAAgB,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAElC,OAAO,EAAE,qBAAqB;IAM1C,IAAI,YAAY,IAAI,cAAc,CAEjC;IAED;;;;;;;;OAQG;IACI,MAAM,CACX,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,eAAe,GACtB,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC;CActE;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,IAAI,GACJ,CAAC,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,GACtC,CAAC,qBAAqB,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,CAAA"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { takeSnapshot, loadSnapshot } from '../agent/snapshot.js';
|
|
2
|
+
import { NodeStreamUpdateEvent, NodeResultEvent } from './events.js';
|
|
3
|
+
import { NodeResult, Status } from './state.js';
|
|
4
|
+
/**
|
|
5
|
+
* Abstract base class for all multi-agent orchestration nodes.
|
|
6
|
+
*
|
|
7
|
+
* Uses the template method pattern: {@link stream} handles orchestration
|
|
8
|
+
* boilerplate (duration measurement, status tracking, error capture) and
|
|
9
|
+
* delegates to {@link handle} for node-specific execution logic.
|
|
10
|
+
*/
|
|
11
|
+
export class Node {
|
|
12
|
+
type = 'node';
|
|
13
|
+
/** Unique identifier for this node within the orchestration. */
|
|
14
|
+
id;
|
|
15
|
+
/** Per-node configuration. */
|
|
16
|
+
config;
|
|
17
|
+
/**
|
|
18
|
+
* @param id - Unique identifier for this node within the orchestration
|
|
19
|
+
* @param config - Per-node configuration
|
|
20
|
+
*/
|
|
21
|
+
constructor(id, config) {
|
|
22
|
+
this.id = id;
|
|
23
|
+
this.config = config;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Execute the node. Handles duration measurement, error capture,
|
|
27
|
+
* and delegates to handle() for node-specific logic.
|
|
28
|
+
*
|
|
29
|
+
* @param args - Input to pass to the node (string, content blocks, or messages)
|
|
30
|
+
* @param state - The current multi-agent state
|
|
31
|
+
* @returns Async generator yielding streaming events and returning a NodeResult
|
|
32
|
+
*/
|
|
33
|
+
async *stream(args, state) {
|
|
34
|
+
const startTime = Date.now();
|
|
35
|
+
let result;
|
|
36
|
+
try {
|
|
37
|
+
const update = yield* this.handle(args, state);
|
|
38
|
+
result = new NodeResult({
|
|
39
|
+
nodeId: this.id,
|
|
40
|
+
status: Status.COMPLETED,
|
|
41
|
+
duration: Date.now() - startTime,
|
|
42
|
+
content: [],
|
|
43
|
+
...update,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
result = new NodeResult({
|
|
48
|
+
nodeId: this.id,
|
|
49
|
+
status: Status.FAILED,
|
|
50
|
+
duration: Date.now() - startTime,
|
|
51
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
yield new NodeResultEvent({ nodeId: this.id, nodeType: this.type, result });
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Node that wraps an Agent instance for multi-agent orchestration.
|
|
60
|
+
*
|
|
61
|
+
* Each execution is isolated — the wrapped agent's internal state
|
|
62
|
+
* is unchanged after the node completes.
|
|
63
|
+
*/
|
|
64
|
+
export class AgentNode extends Node {
|
|
65
|
+
type = 'agentNode';
|
|
66
|
+
_agent;
|
|
67
|
+
constructor(options) {
|
|
68
|
+
const { id, agent, ...config } = options;
|
|
69
|
+
super(id, config);
|
|
70
|
+
this._agent = agent;
|
|
71
|
+
}
|
|
72
|
+
get agent() {
|
|
73
|
+
return this._agent;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Executes the wrapped agent, yielding each agent streaming event
|
|
77
|
+
* wrapped in a {@link NodeStreamUpdateEvent}.
|
|
78
|
+
*
|
|
79
|
+
* @param args - Input to pass to the agent
|
|
80
|
+
* @param state - The current multi-agent state
|
|
81
|
+
* @returns Async generator yielding streaming events and returning the agent's content blocks
|
|
82
|
+
*/
|
|
83
|
+
async *handle(args, state) {
|
|
84
|
+
const snapshot = takeSnapshot(this._agent, { include: ['messages', 'state'] });
|
|
85
|
+
try {
|
|
86
|
+
const options = {
|
|
87
|
+
...(state.structuredOutputSchema && { structuredOutputSchema: state.structuredOutputSchema }),
|
|
88
|
+
};
|
|
89
|
+
const gen = this._agent.stream(args, options);
|
|
90
|
+
let next = await gen.next();
|
|
91
|
+
while (!next.done) {
|
|
92
|
+
yield new NodeStreamUpdateEvent({ nodeId: this.id, nodeType: this.type, event: next.value });
|
|
93
|
+
next = await gen.next();
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
content: next.value.lastMessage.content,
|
|
97
|
+
...('structuredOutput' in next.value && { structuredOutput: next.value.structuredOutput }),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
loadSnapshot(this._agent, snapshot);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Node that wraps a multi-agent orchestrator (e.g. Graph) for nested composition.
|
|
107
|
+
*
|
|
108
|
+
* Inner {@link NodeStreamUpdateEvent}s pass through to preserve the original
|
|
109
|
+
* node's identity. All other events are wrapped in a new {@link NodeStreamUpdateEvent}
|
|
110
|
+
* tagged with this node's identity.
|
|
111
|
+
*/
|
|
112
|
+
export class MultiAgentNode extends Node {
|
|
113
|
+
type = 'multiAgentNode';
|
|
114
|
+
_orchestrator;
|
|
115
|
+
constructor(options) {
|
|
116
|
+
const { orchestrator, ...config } = options;
|
|
117
|
+
super(orchestrator.id, config);
|
|
118
|
+
this._orchestrator = orchestrator;
|
|
119
|
+
}
|
|
120
|
+
get orchestrator() {
|
|
121
|
+
return this._orchestrator;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Executes the wrapped orchestrator. Inner {@link NodeStreamUpdateEvent}s
|
|
125
|
+
* pass through as-is; all other events are wrapped in a new
|
|
126
|
+
* {@link NodeStreamUpdateEvent} tagged with this node's identity.
|
|
127
|
+
*
|
|
128
|
+
* @param args - Input to pass to the orchestrator
|
|
129
|
+
* @param _state - The current multi-agent state (unused)
|
|
130
|
+
* @returns Async generator yielding streaming events and returning the orchestrator's content
|
|
131
|
+
*/
|
|
132
|
+
async *handle(args, _state) {
|
|
133
|
+
const gen = this._orchestrator.stream(args);
|
|
134
|
+
let next = await gen.next();
|
|
135
|
+
while (!next.done) {
|
|
136
|
+
const event = next.value;
|
|
137
|
+
if (event.type === 'nodeStreamUpdateEvent') {
|
|
138
|
+
yield event;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
yield new NodeStreamUpdateEvent({ nodeId: this.id, nodeType: this.type, event });
|
|
142
|
+
}
|
|
143
|
+
next = await gen.next();
|
|
144
|
+
}
|
|
145
|
+
return { content: next.value.content };
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=nodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/multiagent/nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
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
|
+
/**
|
|
42
|
+
* Push data to the queue, waking any waiting consumer.
|
|
43
|
+
*/
|
|
44
|
+
push(data: QueueData): void;
|
|
45
|
+
/**
|
|
46
|
+
* Push data and wait until the consumer has fully processed it.
|
|
47
|
+
* Provides back-pressure so the producer pauses until the event
|
|
48
|
+
* has been yielded and hook callbacks have been invoked.
|
|
49
|
+
*
|
|
50
|
+
* @param data - The queue data to push
|
|
51
|
+
* @returns Promise that resolves when the consumer calls {@link QueueEntry.ack}
|
|
52
|
+
*/
|
|
53
|
+
send(data: QueueData): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Wait until at least one entry is available.
|
|
56
|
+
*/
|
|
57
|
+
wait(): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Remove and return the next entry, or undefined if empty.
|
|
60
|
+
*/
|
|
61
|
+
shift(): QueueEntry | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Number of entries in the queue.
|
|
64
|
+
*/
|
|
65
|
+
get size(): number;
|
|
66
|
+
}
|
|
67
|
+
//# 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;IAE1C;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAM3B;;;;;;;OAOG;IACH,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpC;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrB;;OAEG;IACH,KAAK,IAAI,UAAU,GAAG,SAAS;IAI/B;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
|
|
@@ -0,0 +1,59 @@
|
|
|
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
|
+
/**
|
|
14
|
+
* Push data to the queue, waking any waiting consumer.
|
|
15
|
+
*/
|
|
16
|
+
push(data) {
|
|
17
|
+
this._entries.push({ data, ack: () => { } });
|
|
18
|
+
this._notify?.();
|
|
19
|
+
this._notify = undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Push data and wait until the consumer has fully processed it.
|
|
23
|
+
* Provides back-pressure so the producer pauses until the event
|
|
24
|
+
* has been yielded and hook callbacks have been invoked.
|
|
25
|
+
*
|
|
26
|
+
* @param data - The queue data to push
|
|
27
|
+
* @returns Promise that resolves when the consumer calls {@link QueueEntry.ack}
|
|
28
|
+
*/
|
|
29
|
+
send(data) {
|
|
30
|
+
return new Promise((resolve) => {
|
|
31
|
+
this._entries.push({ data, ack: resolve });
|
|
32
|
+
this._notify?.();
|
|
33
|
+
this._notify = undefined;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Wait until at least one entry is available.
|
|
38
|
+
*/
|
|
39
|
+
wait() {
|
|
40
|
+
if (this._entries.length > 0)
|
|
41
|
+
return Promise.resolve();
|
|
42
|
+
return new Promise((resolve) => {
|
|
43
|
+
this._notify = resolve;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Remove and return the next entry, or undefined if empty.
|
|
48
|
+
*/
|
|
49
|
+
shift() {
|
|
50
|
+
return this._entries.shift();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Number of entries in the queue.
|
|
54
|
+
*/
|
|
55
|
+
get size() {
|
|
56
|
+
return this._entries.length;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# 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;IAE1C;;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,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;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA;IAC7B,CAAC;CACF"}
|