@strands-agents/sdk 0.4.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/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-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__/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 +96 -15
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.test.js +110 -0
- 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 +59 -6
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +187 -60
- 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/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -0
- 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__/model.test.js +7 -0
- package/dist/src/models/__tests__/model.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 +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.js +102 -6
- 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 +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 +115 -4
- package/dist/src/multiagent/events.d.ts.map +1 -1
- package/dist/src/multiagent/events.js +123 -2
- package/dist/src/multiagent/events.js.map +1 -1
- package/dist/src/multiagent/index.d.ts +8 -6
- package/dist/src/multiagent/index.d.ts.map +1 -1
- package/dist/src/multiagent/index.js +4 -3
- package/dist/src/multiagent/index.js.map +1 -1
- package/dist/src/multiagent/nodes.d.ts +62 -14
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +67 -20
- package/dist/src/multiagent/nodes.js.map +1 -1
- 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 +77 -10
- package/dist/src/multiagent/state.d.ts.map +1 -1
- package/dist/src/multiagent/state.js +98 -9
- package/dist/src/multiagent/state.js.map +1 -1
- 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/{multiagent → telemetry}/types.js.map +1 -1
- package/dist/src/tools/tool.d.ts +1 -1
- package/dist/src/tools/tool.js +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/agent.d.ts +3 -3
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/messages.d.ts +4 -4
- package/dist/src/types/messages.js +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/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 +11 -2
- 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
|
@@ -1,12 +1,85 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HookableEvent } from '../hooks/events.js';
|
|
2
2
|
import type { AgentStreamEvent } from '../types/agent.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { MultiAgentResult, MultiAgentState, NodeResult } from './state.js';
|
|
4
|
+
import type { MultiAgentBase } from './base.js';
|
|
5
|
+
import type { NodeType } from './nodes.js';
|
|
6
|
+
/**
|
|
7
|
+
* Event triggered when a multi-agent orchestrator has finished initialization.
|
|
8
|
+
*/
|
|
9
|
+
export declare class MultiAgentInitializedEvent extends HookableEvent {
|
|
10
|
+
readonly type: "multiAgentInitializedEvent";
|
|
11
|
+
readonly orchestrator: MultiAgentBase;
|
|
12
|
+
constructor(data: {
|
|
13
|
+
orchestrator: MultiAgentBase;
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Event triggered before orchestrator execution starts.
|
|
18
|
+
*/
|
|
19
|
+
export declare class BeforeMultiAgentInvocationEvent extends HookableEvent {
|
|
20
|
+
readonly type: "beforeMultiAgentInvocationEvent";
|
|
21
|
+
readonly orchestrator: MultiAgentBase;
|
|
22
|
+
readonly state: MultiAgentState;
|
|
23
|
+
constructor(data: {
|
|
24
|
+
orchestrator: MultiAgentBase;
|
|
25
|
+
state: MultiAgentState;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Event triggered after orchestrator execution completes.
|
|
30
|
+
*/
|
|
31
|
+
export declare class AfterMultiAgentInvocationEvent extends HookableEvent {
|
|
32
|
+
readonly type: "afterMultiAgentInvocationEvent";
|
|
33
|
+
readonly orchestrator: MultiAgentBase;
|
|
34
|
+
readonly state: MultiAgentState;
|
|
35
|
+
constructor(data: {
|
|
36
|
+
orchestrator: MultiAgentBase;
|
|
37
|
+
state: MultiAgentState;
|
|
38
|
+
});
|
|
39
|
+
_shouldReverseCallbacks(): boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Event triggered before a node begins execution.
|
|
43
|
+
* Hook callbacks can set {@link cancel} to prevent the node from executing.
|
|
44
|
+
*/
|
|
45
|
+
export declare class BeforeNodeCallEvent extends HookableEvent {
|
|
46
|
+
readonly type: "beforeNodeCallEvent";
|
|
47
|
+
readonly orchestrator: MultiAgentBase;
|
|
48
|
+
readonly state: MultiAgentState;
|
|
49
|
+
readonly nodeId: string;
|
|
50
|
+
/**
|
|
51
|
+
* Set by hook callbacks to cancel node execution.
|
|
52
|
+
* When set to `true`, a default cancel message is used.
|
|
53
|
+
* When set to a string, that string is used as the cancel message.
|
|
54
|
+
*/
|
|
55
|
+
cancel: boolean | string;
|
|
56
|
+
constructor(data: {
|
|
57
|
+
orchestrator: MultiAgentBase;
|
|
58
|
+
state: MultiAgentState;
|
|
59
|
+
nodeId: string;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Event triggered after a node completes execution.
|
|
64
|
+
*/
|
|
65
|
+
export declare class AfterNodeCallEvent extends HookableEvent {
|
|
66
|
+
readonly type: "afterNodeCallEvent";
|
|
67
|
+
readonly orchestrator: MultiAgentBase;
|
|
68
|
+
readonly state: MultiAgentState;
|
|
69
|
+
readonly nodeId: string;
|
|
70
|
+
constructor(data: {
|
|
71
|
+
orchestrator: MultiAgentBase;
|
|
72
|
+
state: MultiAgentState;
|
|
73
|
+
nodeId: string;
|
|
74
|
+
});
|
|
75
|
+
_shouldReverseCallbacks(): boolean;
|
|
76
|
+
}
|
|
4
77
|
/**
|
|
5
78
|
* Wraps an inner streaming event from a node with the node's identity.
|
|
6
79
|
* Emitted during node execution to propagate agent-level or nested
|
|
7
80
|
* multi-agent events up to the orchestration layer.
|
|
8
81
|
*/
|
|
9
|
-
export declare class NodeStreamUpdateEvent extends
|
|
82
|
+
export declare class NodeStreamUpdateEvent extends HookableEvent {
|
|
10
83
|
readonly type: "nodeStreamUpdateEvent";
|
|
11
84
|
readonly nodeId: string;
|
|
12
85
|
readonly nodeType: NodeType;
|
|
@@ -17,8 +90,46 @@ export declare class NodeStreamUpdateEvent extends StreamEvent {
|
|
|
17
90
|
event: AgentStreamEvent | Exclude<MultiAgentStreamEvent, NodeStreamUpdateEvent>;
|
|
18
91
|
});
|
|
19
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Event triggered when a node finishes execution.
|
|
95
|
+
* Wraps the {@link NodeResult} for the completed node.
|
|
96
|
+
*/
|
|
97
|
+
export declare class NodeResultEvent extends HookableEvent {
|
|
98
|
+
readonly type: "nodeResultEvent";
|
|
99
|
+
readonly nodeId: string;
|
|
100
|
+
readonly nodeType: NodeType;
|
|
101
|
+
readonly result: NodeResult;
|
|
102
|
+
constructor(data: {
|
|
103
|
+
nodeId: string;
|
|
104
|
+
nodeType: NodeType;
|
|
105
|
+
result: NodeResult;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Event triggered when execution transitions between nodes.
|
|
110
|
+
*/
|
|
111
|
+
export declare class MultiAgentHandoffEvent extends HookableEvent {
|
|
112
|
+
readonly type: "multiAgentHandoffEvent";
|
|
113
|
+
readonly source: string;
|
|
114
|
+
readonly targets: string[];
|
|
115
|
+
constructor(data: {
|
|
116
|
+
source: string;
|
|
117
|
+
targets: string[];
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Event triggered as the final event in the multi-agent stream.
|
|
122
|
+
* Wraps the {@link MultiAgentResult} containing the aggregate outcome.
|
|
123
|
+
*/
|
|
124
|
+
export declare class MultiAgentResultEvent extends HookableEvent {
|
|
125
|
+
readonly type: "multiAgentResultEvent";
|
|
126
|
+
readonly result: MultiAgentResult;
|
|
127
|
+
constructor(data: {
|
|
128
|
+
result: MultiAgentResult;
|
|
129
|
+
});
|
|
130
|
+
}
|
|
20
131
|
/**
|
|
21
132
|
* Union of all multi-agent streaming events.
|
|
22
133
|
*/
|
|
23
|
-
export type MultiAgentStreamEvent = NodeStreamUpdateEvent;
|
|
134
|
+
export type MultiAgentStreamEvent = BeforeMultiAgentInvocationEvent | AfterMultiAgentInvocationEvent | BeforeNodeCallEvent | AfterNodeCallEvent | NodeStreamUpdateEvent | NodeResultEvent | MultiAgentHandoffEvent | MultiAgentResultEvent;
|
|
24
135
|
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/multiagent/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/multiagent/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,90 @@
|
|
|
1
|
-
import {
|
|
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
|
+
}
|
|
2
82
|
/**
|
|
3
83
|
* Wraps an inner streaming event from a node with the node's identity.
|
|
4
84
|
* Emitted during node execution to propagate agent-level or nested
|
|
5
85
|
* multi-agent events up to the orchestration layer.
|
|
6
86
|
*/
|
|
7
|
-
export class NodeStreamUpdateEvent extends
|
|
87
|
+
export class NodeStreamUpdateEvent extends HookableEvent {
|
|
8
88
|
type = 'nodeStreamUpdateEvent';
|
|
9
89
|
nodeId;
|
|
10
90
|
nodeType;
|
|
@@ -16,4 +96,45 @@ export class NodeStreamUpdateEvent extends StreamEvent {
|
|
|
16
96
|
this.event = data.event;
|
|
17
97
|
}
|
|
18
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
|
+
}
|
|
19
140
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/multiagent/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/multiagent/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Multi-agent orchestration module.
|
|
3
3
|
*/
|
|
4
|
-
export { MultiAgentState, Status, NodeResult } from './state.js';
|
|
5
|
-
export type { NodeResultUpdate } from './state.js';
|
|
6
|
-
export { Node, AgentNode } from './nodes.js';
|
|
7
|
-
export type { NodeConfig } from './nodes.js';
|
|
8
|
-
export {
|
|
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';
|
|
9
10
|
export type { MultiAgentStreamEvent } from './events.js';
|
|
10
|
-
export
|
|
11
|
+
export { Edge } from './edge.js';
|
|
12
|
+
export type { EdgeHandler, EdgeDefinition } from './edge.js';
|
|
11
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/multiagent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;
|
|
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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Multi-agent orchestration module.
|
|
3
3
|
*/
|
|
4
|
-
export { MultiAgentState, Status, NodeResult } from './state.js';
|
|
5
|
-
export { Node, AgentNode } from './nodes.js';
|
|
6
|
-
export { NodeStreamUpdateEvent } from './events.js';
|
|
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';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/multiagent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;
|
|
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"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { Agent, InvokeArgs } from '../agent/agent.js';
|
|
2
2
|
import type { MultiAgentStreamEvent } from './events.js';
|
|
3
|
-
import {
|
|
4
|
-
import type { NodeResultUpdate } from './state.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 & {});
|
|
5
10
|
/**
|
|
6
11
|
* Configuration for a node execution.
|
|
7
12
|
*/
|
|
@@ -19,15 +24,16 @@ export interface NodeConfig {
|
|
|
19
24
|
* delegates to {@link handle} for node-specific execution logic.
|
|
20
25
|
*/
|
|
21
26
|
export declare abstract class Node {
|
|
27
|
+
readonly type: string;
|
|
22
28
|
/** Unique identifier for this node within the orchestration. */
|
|
23
29
|
readonly id: string;
|
|
24
|
-
/**
|
|
25
|
-
readonly config
|
|
30
|
+
/** Per-node configuration. */
|
|
31
|
+
readonly config: NodeConfig;
|
|
26
32
|
/**
|
|
27
33
|
* @param id - Unique identifier for this node within the orchestration
|
|
28
|
-
* @param config -
|
|
34
|
+
* @param config - Per-node configuration
|
|
29
35
|
*/
|
|
30
|
-
constructor(id: string, config
|
|
36
|
+
constructor(id: string, config: NodeConfig);
|
|
31
37
|
/**
|
|
32
38
|
* Execute the node. Handles duration measurement, error capture,
|
|
33
39
|
* and delegates to handle() for node-specific logic.
|
|
@@ -46,6 +52,15 @@ export declare abstract class Node {
|
|
|
46
52
|
*/
|
|
47
53
|
abstract handle(args: InvokeArgs, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
|
|
48
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
|
+
}
|
|
49
64
|
/**
|
|
50
65
|
* Node that wraps an Agent instance for multi-agent orchestration.
|
|
51
66
|
*
|
|
@@ -55,21 +70,54 @@ export declare abstract class Node {
|
|
|
55
70
|
export declare class AgentNode extends Node {
|
|
56
71
|
readonly type: "agentNode";
|
|
57
72
|
private readonly _agent;
|
|
58
|
-
|
|
59
|
-
* @param id - Unique identifier for this node within the orchestration
|
|
60
|
-
* @param agent - The Agent instance to wrap
|
|
61
|
-
* @param config - Optional per-node configuration
|
|
62
|
-
*/
|
|
63
|
-
constructor(id: string, agent: Agent, config?: NodeConfig);
|
|
73
|
+
constructor(options: AgentNodeOptions);
|
|
64
74
|
get agent(): Agent;
|
|
65
75
|
/**
|
|
66
76
|
* Executes the wrapped agent, yielding each agent streaming event
|
|
67
|
-
* wrapped in a {@link
|
|
77
|
+
* wrapped in a {@link NodeStreamUpdateEvent}.
|
|
68
78
|
*
|
|
69
79
|
* @param args - Input to pass to the agent
|
|
70
|
-
* @param state - The current multi-agent state
|
|
80
|
+
* @param state - The current multi-agent state
|
|
71
81
|
* @returns Async generator yielding streaming events and returning the agent's content blocks
|
|
72
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
|
+
*/
|
|
73
113
|
handle(args: InvokeArgs, _state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
|
|
74
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
|
+
});
|
|
75
123
|
//# sourceMappingURL=nodes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/multiagent/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,
|
|
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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
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
4
|
/**
|
|
5
5
|
* Abstract base class for all multi-agent orchestration nodes.
|
|
6
6
|
*
|
|
@@ -9,18 +9,18 @@ import { MultiAgentState, NodeResult, Status } from './state.js';
|
|
|
9
9
|
* delegates to {@link handle} for node-specific execution logic.
|
|
10
10
|
*/
|
|
11
11
|
export class Node {
|
|
12
|
+
type = 'node';
|
|
12
13
|
/** Unique identifier for this node within the orchestration. */
|
|
13
14
|
id;
|
|
14
|
-
/**
|
|
15
|
+
/** Per-node configuration. */
|
|
15
16
|
config;
|
|
16
17
|
/**
|
|
17
18
|
* @param id - Unique identifier for this node within the orchestration
|
|
18
|
-
* @param config -
|
|
19
|
+
* @param config - Per-node configuration
|
|
19
20
|
*/
|
|
20
21
|
constructor(id, config) {
|
|
21
22
|
this.id = id;
|
|
22
|
-
|
|
23
|
-
this.config = config;
|
|
23
|
+
this.config = config;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Execute the node. Handles duration measurement, error capture,
|
|
@@ -32,9 +32,10 @@ export class Node {
|
|
|
32
32
|
*/
|
|
33
33
|
async *stream(args, state) {
|
|
34
34
|
const startTime = Date.now();
|
|
35
|
+
let result;
|
|
35
36
|
try {
|
|
36
37
|
const update = yield* this.handle(args, state);
|
|
37
|
-
|
|
38
|
+
result = new NodeResult({
|
|
38
39
|
nodeId: this.id,
|
|
39
40
|
status: Status.COMPLETED,
|
|
40
41
|
duration: Date.now() - startTime,
|
|
@@ -43,14 +44,15 @@ export class Node {
|
|
|
43
44
|
});
|
|
44
45
|
}
|
|
45
46
|
catch (error) {
|
|
46
|
-
|
|
47
|
+
result = new NodeResult({
|
|
47
48
|
nodeId: this.id,
|
|
48
49
|
status: Status.FAILED,
|
|
49
50
|
duration: Date.now() - startTime,
|
|
50
51
|
error: error instanceof Error ? error : new Error(String(error)),
|
|
51
|
-
content: [],
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
+
yield new NodeResultEvent({ nodeId: this.id, nodeType: this.type, result });
|
|
55
|
+
return result;
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
/**
|
|
@@ -62,12 +64,8 @@ export class Node {
|
|
|
62
64
|
export class AgentNode extends Node {
|
|
63
65
|
type = 'agentNode';
|
|
64
66
|
_agent;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
* @param agent - The Agent instance to wrap
|
|
68
|
-
* @param config - Optional per-node configuration
|
|
69
|
-
*/
|
|
70
|
-
constructor(id, agent, config) {
|
|
67
|
+
constructor(options) {
|
|
68
|
+
const { id, agent, ...config } = options;
|
|
71
69
|
super(id, config);
|
|
72
70
|
this._agent = agent;
|
|
73
71
|
}
|
|
@@ -76,26 +74,75 @@ export class AgentNode extends Node {
|
|
|
76
74
|
}
|
|
77
75
|
/**
|
|
78
76
|
* Executes the wrapped agent, yielding each agent streaming event
|
|
79
|
-
* wrapped in a {@link
|
|
77
|
+
* wrapped in a {@link NodeStreamUpdateEvent}.
|
|
80
78
|
*
|
|
81
79
|
* @param args - Input to pass to the agent
|
|
82
|
-
* @param state - The current multi-agent state
|
|
80
|
+
* @param state - The current multi-agent state
|
|
83
81
|
* @returns Async generator yielding streaming events and returning the agent's content blocks
|
|
84
82
|
*/
|
|
85
|
-
async *handle(args,
|
|
83
|
+
async *handle(args, state) {
|
|
86
84
|
const snapshot = takeSnapshot(this._agent, { include: ['messages', 'state'] });
|
|
87
85
|
try {
|
|
88
|
-
const
|
|
86
|
+
const options = {
|
|
87
|
+
...(state.structuredOutputSchema && { structuredOutputSchema: state.structuredOutputSchema }),
|
|
88
|
+
};
|
|
89
|
+
const gen = this._agent.stream(args, options);
|
|
89
90
|
let next = await gen.next();
|
|
90
91
|
while (!next.done) {
|
|
91
92
|
yield new NodeStreamUpdateEvent({ nodeId: this.id, nodeType: this.type, event: next.value });
|
|
92
93
|
next = await gen.next();
|
|
93
94
|
}
|
|
94
|
-
return {
|
|
95
|
+
return {
|
|
96
|
+
content: next.value.lastMessage.content,
|
|
97
|
+
...('structuredOutput' in next.value && { structuredOutput: next.value.structuredOutput }),
|
|
98
|
+
};
|
|
95
99
|
}
|
|
96
100
|
finally {
|
|
97
101
|
loadSnapshot(this._agent, snapshot);
|
|
98
102
|
}
|
|
99
103
|
}
|
|
100
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
|
+
}
|
|
101
148
|
//# 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":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEjE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAmB/C;;;;;;GAMG;AACH,MAAM,OAAgB,IAAI;IACf,IAAI,GAAW,MAAM,CAAA;IAC9B,gEAAgE;IACvD,EAAE,CAAQ;IACnB,8BAA8B;IACrB,MAAM,CAAY;IAE3B;;;OAGG;IACH,YAAY,EAAU,EAAE,MAAkB;QACxC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,CAAC,MAAM,CACX,IAAgB,EAChB,KAAsB;QAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAE5B,IAAI,MAAkB,CAAA;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAC9C,MAAM,GAAG,IAAI,UAAU,CAAC;gBACtB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,MAAM,CAAC,SAAS;gBACxB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAChC,OAAO,EAAE,EAAE;gBACX,GAAG,MAAM;aACV,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,IAAI,UAAU,CAAC;gBACtB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAChC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACjE,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAC3E,OAAO,MAAM,CAAA;IACf,CAAC;CAaF;AAYD;;;;;GAKG;AACH,MAAM,OAAO,SAAU,SAAQ,IAAI;IACxB,IAAI,GAAG,WAAoB,CAAA;IACnB,MAAM,CAAO;IAE9B,YAAY,OAAyB;QACnC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;QACxC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACrB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,CAAC,MAAM,CACX,IAAgB,EAChB,KAAsB;QAEtB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QAC9E,IAAI,CAAC;YACH,MAAM,OAAO,GAAkB;gBAC7B,GAAG,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,EAAE,CAAC;aAC9F,CAAA;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC7C,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;gBAC5F,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YACzB,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO;gBACvC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;aAC3F,CAAA;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;CACF;AAUD;;;;;;GAMG;AACH,MAAM,OAAO,cAAe,SAAQ,IAAI;IAC7B,IAAI,GAAG,gBAAyB,CAAA;IACxB,aAAa,CAAgB;IAE9C,YAAY,OAA8B;QACxC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;QAC3C,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAC9B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAA;IACnC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,CAAC,MAAM,CACX,IAAgB,EAChB,MAAuB;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACxB,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBAC3C,MAAM,KAAK,CAAA;YACb,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;YAClF,CAAC;YACD,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QACzB,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;IACxC,CAAC;CACF"}
|