@strands-agents/sdk 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/src/__tests__/interrupt.test.js +13 -8
- package/dist/src/__tests__/interrupt.test.js.map +1 -1
- package/dist/src/__tests__/mcp.test.js +221 -7
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.interrupt.test.js +54 -5
- package/dist/src/agent/__tests__/agent.interrupt.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.test.js +56 -0
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/__tests__/snapshot.test.js +98 -0
- package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
- package/dist/src/agent/agent-as-tool.d.ts.map +1 -1
- package/dist/src/agent/agent-as-tool.js +2 -3
- package/dist/src/agent/agent-as-tool.js.map +1 -1
- package/dist/src/agent/agent.d.ts +59 -0
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +86 -10
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/snapshot.d.ts +9 -17
- package/dist/src/agent/snapshot.d.ts.map +1 -1
- package/dist/src/agent/snapshot.js +9 -17
- package/dist/src/agent/snapshot.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +371 -39
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +26 -7
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js +192 -41
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
- package/dist/src/hooks/events.d.ts +24 -3
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +26 -4
- 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/hooks/index.js +1 -1
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/index.d.ts +6 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/interrupt.d.ts +29 -2
- package/dist/src/interrupt.d.ts.map +1 -1
- package/dist/src/interrupt.js +45 -3
- package/dist/src/interrupt.js.map +1 -1
- package/dist/src/mcp.d.ts +38 -2
- package/dist/src/mcp.d.ts.map +1 -1
- package/dist/src/mcp.js +84 -7
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/models/__tests__/anthropic.test.js +23 -8
- package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +43 -20
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/google.test.js +14 -6
- package/dist/src/models/__tests__/google.test.js.map +1 -1
- package/dist/src/models/anthropic.d.ts +5 -3
- package/dist/src/models/anthropic.d.ts.map +1 -1
- package/dist/src/models/anthropic.js +11 -3
- package/dist/src/models/anthropic.js.map +1 -1
- package/dist/src/models/bedrock.d.ts +6 -7
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +31 -18
- package/dist/src/models/bedrock.js.map +1 -1
- package/dist/src/models/google/model.js +1 -1
- package/dist/src/models/google/model.js.map +1 -1
- package/dist/src/models/google/types.d.ts +5 -3
- package/dist/src/models/google/types.d.ts.map +1 -1
- package/dist/src/models/openai/__tests__/chat.test.js +10 -2
- package/dist/src/models/openai/__tests__/chat.test.js.map +1 -1
- package/dist/src/models/openai/__tests__/responses.test.js +19 -0
- package/dist/src/models/openai/__tests__/responses.test.js.map +1 -1
- package/dist/src/models/openai/errors.d.ts.map +1 -1
- package/dist/src/models/openai/errors.js +7 -4
- package/dist/src/models/openai/errors.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.tracer.test.js +14 -0
- package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/interrupts.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/interrupts.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/interrupts.test.js +390 -0
- package/dist/src/multiagent/__tests__/interrupts.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/state.test.js +139 -1
- package/dist/src/multiagent/__tests__/state.test.js.map +1 -1
- package/dist/src/multiagent/events.d.ts +15 -1
- package/dist/src/multiagent/events.d.ts.map +1 -1
- package/dist/src/multiagent/events.js +18 -0
- package/dist/src/multiagent/events.js.map +1 -1
- package/dist/src/multiagent/graph.d.ts +37 -1
- package/dist/src/multiagent/graph.d.ts.map +1 -1
- package/dist/src/multiagent/graph.js +171 -43
- package/dist/src/multiagent/graph.js.map +1 -1
- package/dist/src/multiagent/multiagent.d.ts +78 -6
- package/dist/src/multiagent/multiagent.d.ts.map +1 -1
- package/dist/src/multiagent/multiagent.js +115 -1
- package/dist/src/multiagent/multiagent.js.map +1 -1
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +55 -21
- package/dist/src/multiagent/nodes.js.map +1 -1
- package/dist/src/multiagent/state.d.ts +39 -3
- package/dist/src/multiagent/state.d.ts.map +1 -1
- package/dist/src/multiagent/state.js +80 -1
- package/dist/src/multiagent/state.js.map +1 -1
- package/dist/src/multiagent/swarm.d.ts +15 -0
- package/dist/src/multiagent/swarm.d.ts.map +1 -1
- package/dist/src/multiagent/swarm.js +127 -37
- package/dist/src/multiagent/swarm.js.map +1 -1
- package/dist/src/registry/__tests__/tool-registry.test.js +26 -0
- package/dist/src/registry/__tests__/tool-registry.test.js.map +1 -1
- package/dist/src/registry/tool-registry.d.ts +9 -7
- package/dist/src/registry/tool-registry.d.ts.map +1 -1
- package/dist/src/registry/tool-registry.js +29 -10
- package/dist/src/registry/tool-registry.js.map +1 -1
- package/dist/src/session/__tests__/session-manager.test.js +45 -3
- package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
- package/dist/src/session/session-manager.d.ts +5 -2
- package/dist/src/session/session-manager.d.ts.map +1 -1
- package/dist/src/session/session-manager.js +9 -6
- package/dist/src/session/session-manager.js.map +1 -1
- package/dist/src/telemetry/__tests__/meter.test.js +5 -27
- package/dist/src/telemetry/__tests__/meter.test.js.map +1 -1
- package/dist/src/telemetry/meter.d.ts +12 -4
- package/dist/src/telemetry/meter.d.ts.map +1 -1
- package/dist/src/telemetry/meter.js +13 -8
- package/dist/src/telemetry/meter.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts.map +1 -1
- package/dist/src/tools/mcp-tool.js +3 -2
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/agent.test.js +97 -0
- package/dist/src/types/__tests__/agent.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +26 -5
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +20 -3
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { logger } from '../logging/logger.js';
|
|
2
2
|
import { warnOnce } from '../logging/warn-once.js';
|
|
3
|
+
import { applyOrchestratorHookResponses, dropStaleInterruptedResult, extractResumeResponses, groupInterruptResponsesByNode, recordHookInterrupt, } from './multiagent.js';
|
|
4
|
+
import { InterruptError } from '../interrupt.js';
|
|
3
5
|
import { z } from 'zod';
|
|
4
6
|
import { HookableEvent } from '../hooks/events.js';
|
|
5
7
|
import { HookRegistryImplementation } from '../hooks/registry.js';
|
|
@@ -7,7 +9,7 @@ import { MultiAgentPluginRegistry } from './plugins.js';
|
|
|
7
9
|
import { TextBlock } from '../types/messages.js';
|
|
8
10
|
import { AgentNode } from './nodes.js';
|
|
9
11
|
import { MultiAgentState, MultiAgentResult, NodeResult, Status } from './state.js';
|
|
10
|
-
import { AfterMultiAgentInvocationEvent, AfterNodeCallEvent, BeforeMultiAgentInvocationEvent, BeforeNodeCallEvent, MultiAgentHandoffEvent, MultiAgentInitializedEvent, MultiAgentResultEvent, NodeCancelEvent, } from './events.js';
|
|
12
|
+
import { AfterMultiAgentInvocationEvent, AfterNodeCallEvent, BeforeMultiAgentInvocationEvent, BeforeNodeCallEvent, MultiAgentHandoffEvent, MultiAgentInitializedEvent, MultiAgentResultEvent, NodeCancelEvent, NodeResultEvent, } from './events.js';
|
|
11
13
|
import { Tracer } from '../telemetry/tracer.js';
|
|
12
14
|
import { normalizeError } from '../errors.js';
|
|
13
15
|
/**
|
|
@@ -48,6 +50,13 @@ export class Swarm {
|
|
|
48
50
|
start;
|
|
49
51
|
sessionManager;
|
|
50
52
|
_initialized;
|
|
53
|
+
/**
|
|
54
|
+
* State retained across invocations when a run ends INTERRUPTED. Lets
|
|
55
|
+
* `swarm.invoke(responses)` resume on the same instance without requiring a
|
|
56
|
+
* SessionManager, mirroring single-agent ergonomics. Cleared when a run
|
|
57
|
+
* terminates in any non-INTERRUPTED state.
|
|
58
|
+
*/
|
|
59
|
+
_pendingInterruptState;
|
|
51
60
|
constructor(options) {
|
|
52
61
|
const { id, nodes, start, sessionManager, plugins, traceAttributes, ...config } = options;
|
|
53
62
|
this.id = id ?? 'swarm';
|
|
@@ -123,60 +132,106 @@ export class Swarm {
|
|
|
123
132
|
// Shared by reference across every node so mutations in one node's agent
|
|
124
133
|
// are visible to the next.
|
|
125
134
|
const invocationState = options?.invocationState ?? {};
|
|
126
|
-
|
|
135
|
+
// Hook invocation lives in `_stream` so hook-raised `InterruptError`s land in the
|
|
136
|
+
// same frame as the execution loop.
|
|
137
|
+
const gen = this._stream(input, invocationState, options?.cancelSignal);
|
|
127
138
|
let next = await gen.next();
|
|
128
139
|
while (!next.done) {
|
|
129
|
-
if (next.value instanceof HookableEvent) {
|
|
130
|
-
await this._hookRegistry.invokeCallbacks(next.value);
|
|
131
|
-
}
|
|
132
140
|
yield next.value;
|
|
133
141
|
next = await gen.next();
|
|
134
142
|
}
|
|
135
143
|
return next.value;
|
|
136
144
|
}
|
|
137
|
-
async *_stream(input, invocationState) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
145
|
+
async *_stream(input, invocationState, externalCancelSignal) {
|
|
146
|
+
// Reuse state from a prior INTERRUPTED run so `swarm.invoke(responses)` can
|
|
147
|
+
// resume on the same instance without a SessionManager.
|
|
148
|
+
const state = this._pendingInterruptState ??
|
|
149
|
+
new MultiAgentState({
|
|
150
|
+
nodeIds: [...this.nodes.keys()],
|
|
151
|
+
});
|
|
152
|
+
delete this._pendingInterruptState;
|
|
141
153
|
const multiAgentSpan = this._tracer.startMultiAgentSpan({
|
|
142
154
|
orchestratorId: this.id,
|
|
143
155
|
orchestratorType: 'swarm',
|
|
144
156
|
input,
|
|
145
157
|
});
|
|
146
158
|
// SessionManager (or plugins) may restore state.results here via the hook
|
|
147
|
-
yield new BeforeMultiAgentInvocationEvent({ orchestrator: this, state, invocationState });
|
|
148
|
-
// Resume
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
159
|
+
yield* this._emit(new BeforeMultiAgentInvocationEvent({ orchestrator: this, state, invocationState }));
|
|
160
|
+
// Resume input bypasses handoff-derived resume (goes straight to the interrupted
|
|
161
|
+
// node). On fresh runs, stash the input for replay if a hook-gate pauses before
|
|
162
|
+
// the node runs.
|
|
163
|
+
const resumeResponses = extractResumeResponses(input);
|
|
164
|
+
const interruptResponsesByNode = resumeResponses ? groupInterruptResponsesByNode(resumeResponses, state) : undefined;
|
|
165
|
+
if (!resumeResponses) {
|
|
166
|
+
state._pendingInput = input;
|
|
167
|
+
}
|
|
168
|
+
let node;
|
|
169
|
+
let handoff;
|
|
170
|
+
let nextInput = input;
|
|
171
|
+
if (interruptResponsesByNode) {
|
|
172
|
+
// Swarm runs sequentially, so at most one node can be INTERRUPTED per run.
|
|
173
|
+
// Assert the invariant so a future change that accidentally produces multiple
|
|
174
|
+
// interrupted nodes surfaces loudly rather than silently taking the first.
|
|
175
|
+
if (interruptResponsesByNode.size > 1) {
|
|
176
|
+
throw new Error(`swarm_id=<${this.id}>, interrupted_nodes=<${[...interruptResponsesByNode.keys()].join(',')}> | swarm cannot have multiple interrupted nodes simultaneously`);
|
|
177
|
+
}
|
|
178
|
+
const entry = interruptResponsesByNode.entries().next().value;
|
|
179
|
+
if (!entry)
|
|
180
|
+
throw new Error(`swarm_id=<${this.id}> | no interrupt responses to route`);
|
|
181
|
+
const [nodeId, responses] = entry;
|
|
182
|
+
const resolvedNode = this.nodes.get(nodeId);
|
|
183
|
+
if (!resolvedNode) {
|
|
184
|
+
throw new Error(`node_id=<${nodeId}>, swarm_id=<${this.id}> | resume response targets a node missing from the swarm; topology changed between save and resume?`);
|
|
185
|
+
}
|
|
186
|
+
node = resolvedNode;
|
|
187
|
+
const resolvedNodeState = state.node(nodeId);
|
|
188
|
+
if (!resolvedNodeState) {
|
|
189
|
+
throw new Error(`node_id=<${nodeId}>, swarm_id=<${this.id}> | routed interrupt response targets a node missing from state; topology changed between save and resume?`);
|
|
190
|
+
}
|
|
191
|
+
// Orchestrator hooks consume matching responses; leftovers go to the child
|
|
192
|
+
// agent. If the hook consumed everything, replay the original invocation input.
|
|
193
|
+
const forwarded = applyOrchestratorHookResponses(resolvedNodeState, responses);
|
|
194
|
+
nextInput = forwarded.length > 0 ? forwarded : (state._pendingInput ?? '');
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
const resumeNode = this._findResumeNode(state);
|
|
198
|
+
node = resumeNode?.node ?? this.start;
|
|
199
|
+
handoff = resumeNode?.lastHandoff;
|
|
200
|
+
}
|
|
152
201
|
let caughtError;
|
|
153
202
|
let result;
|
|
154
|
-
// Swarm-level timeout
|
|
155
|
-
//
|
|
156
|
-
//
|
|
157
|
-
// cleanly but we've run out of budget.
|
|
203
|
+
// Swarm-level timeout composes with each node's signal so a hung node still gets
|
|
204
|
+
// aborted. Timer starts fresh per invocation; human response time between resumes
|
|
205
|
+
// is not deducted.
|
|
158
206
|
const execController = Number.isFinite(this.config.timeout) ? new AbortController() : undefined;
|
|
159
207
|
const execTimeoutHandle = execController ? setTimeout(() => execController.abort(), this.config.timeout) : undefined;
|
|
208
|
+
const nodeCancelSignal = execController && externalCancelSignal
|
|
209
|
+
? AbortSignal.any([execController.signal, externalCancelSignal])
|
|
210
|
+
: (execController?.signal ?? externalCancelSignal);
|
|
160
211
|
try {
|
|
161
212
|
while (state.steps < this.config.maxSteps) {
|
|
162
|
-
|
|
163
|
-
if (elapsed >= this.config.timeout) {
|
|
213
|
+
if (execController?.signal.aborted) {
|
|
164
214
|
throw new Error(`timeout=<${this.config.timeout}>, swarm_id=<${this.id}> | swarm exceeded wall-clock budget`);
|
|
165
215
|
}
|
|
216
|
+
if (externalCancelSignal?.aborted) {
|
|
217
|
+
throw new Error(`swarm_id=<${this.id}> | swarm cancelled by external signal`);
|
|
218
|
+
}
|
|
166
219
|
state.steps++;
|
|
167
|
-
//
|
|
168
|
-
|
|
220
|
+
// After the first step (which may use routed resume responses), revert to the
|
|
221
|
+
// original input so post-handoff nodes see fresh content.
|
|
222
|
+
const nodeResult = yield* this._streamNode(node, nextInput, state, handoff, multiAgentSpan, invocationState, nodeCancelSignal);
|
|
223
|
+
nextInput = input;
|
|
169
224
|
handoff = nodeResult.structuredOutput;
|
|
170
225
|
if (execController?.signal.aborted) {
|
|
171
226
|
throw new Error(`timeout=<${this.config.timeout}>, swarm_id=<${this.id}>, node_id=<${node.id}> | swarm exceeded wall-clock budget during node execution`);
|
|
172
227
|
}
|
|
173
228
|
// Check for terminal conditions
|
|
174
|
-
if (nodeResult.status === Status.FAILED || !handoff?.agentId) {
|
|
229
|
+
if (nodeResult.status === Status.FAILED || nodeResult.status === Status.INTERRUPTED || !handoff?.agentId) {
|
|
175
230
|
break;
|
|
176
231
|
}
|
|
177
232
|
// Hand off to next agent
|
|
178
233
|
const target = this.nodes.get(handoff.agentId);
|
|
179
|
-
yield new MultiAgentHandoffEvent({ source: node.id, targets: [target.id], state, invocationState });
|
|
234
|
+
yield* this._emit(new MultiAgentHandoffEvent({ source: node.id, targets: [target.id], state, invocationState }));
|
|
180
235
|
logger.debug(`source=<${node.id}>, target=<${target.id}> | swarm handoff`);
|
|
181
236
|
node = target;
|
|
182
237
|
}
|
|
@@ -186,6 +241,14 @@ export class Swarm {
|
|
|
186
241
|
content: this._resolveContent(state),
|
|
187
242
|
duration: Date.now() - state.startTime,
|
|
188
243
|
});
|
|
244
|
+
// Stash on interrupt so same-instance resume has state; otherwise start fresh.
|
|
245
|
+
if (result.status === Status.INTERRUPTED) {
|
|
246
|
+
this._pendingInterruptState = state;
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
delete this._pendingInterruptState;
|
|
250
|
+
delete state._pendingInput;
|
|
251
|
+
}
|
|
189
252
|
}
|
|
190
253
|
catch (error) {
|
|
191
254
|
caughtError = normalizeError(error);
|
|
@@ -199,25 +262,47 @@ export class Swarm {
|
|
|
199
262
|
...(result && { usage: result.usage }),
|
|
200
263
|
...(caughtError && { error: caughtError }),
|
|
201
264
|
});
|
|
202
|
-
yield new AfterMultiAgentInvocationEvent({ orchestrator: this, state, invocationState });
|
|
265
|
+
yield* this._emit(new AfterMultiAgentInvocationEvent({ orchestrator: this, state, invocationState }));
|
|
203
266
|
}
|
|
204
|
-
yield new MultiAgentResultEvent({ result, invocationState });
|
|
267
|
+
yield* this._emit(new MultiAgentResultEvent({ result, invocationState }));
|
|
205
268
|
return result;
|
|
206
269
|
}
|
|
270
|
+
/** Invokes hook callbacks on an event, then yields it. */
|
|
271
|
+
async *_emit(event) {
|
|
272
|
+
await this._hookRegistry.invokeCallbacks(event);
|
|
273
|
+
yield event;
|
|
274
|
+
}
|
|
207
275
|
async *_streamNode(node, input, state, handoff, multiAgentSpan, invocationState, executionSignal) {
|
|
208
276
|
const nodeState = state.node(node.id);
|
|
209
277
|
const handoffSchema = this._buildHandoffSchema(node.id);
|
|
210
278
|
const nodeSpan = this._tracer.withSpanContext(multiAgentSpan, () => this._tracer.startNodeSpan({ nodeId: node.id, nodeType: node.type }));
|
|
211
279
|
const beforeEvent = new BeforeNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState });
|
|
280
|
+
try {
|
|
281
|
+
await this._hookRegistry.invokeCallbacks(beforeEvent);
|
|
282
|
+
}
|
|
283
|
+
catch (error) {
|
|
284
|
+
if (error instanceof InterruptError) {
|
|
285
|
+
const result = recordHookInterrupt(node.id, nodeState);
|
|
286
|
+
state.results.push(result);
|
|
287
|
+
yield beforeEvent;
|
|
288
|
+
yield* this._emit(new NodeResultEvent({ nodeId: node.id, nodeType: node.type, state, result, invocationState }));
|
|
289
|
+
yield* this._emit(new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState }));
|
|
290
|
+
this._tracer.endNodeSpan(nodeSpan, { status: Status.INTERRUPTED, duration: result.duration });
|
|
291
|
+
return result;
|
|
292
|
+
}
|
|
293
|
+
throw error;
|
|
294
|
+
}
|
|
212
295
|
yield beforeEvent;
|
|
213
296
|
if (beforeEvent.cancel) {
|
|
214
297
|
const message = typeof beforeEvent.cancel === 'string' ? beforeEvent.cancel : 'node cancelled by hook';
|
|
298
|
+
// Cancel path doesn't go through Node.stream, so do its INTERRUPTED cleanup here.
|
|
299
|
+
dropStaleInterruptedResult(node.id, nodeState, state);
|
|
215
300
|
const result = new NodeResult({ nodeId: node.id, status: Status.CANCELLED, duration: 0 });
|
|
216
301
|
nodeState.status = Status.CANCELLED;
|
|
217
302
|
nodeState.results.push(result);
|
|
218
303
|
state.results.push(result);
|
|
219
|
-
yield new NodeCancelEvent({ nodeId: node.id, state, message, invocationState });
|
|
220
|
-
yield new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState });
|
|
304
|
+
yield* this._emit(new NodeCancelEvent({ nodeId: node.id, state, message, invocationState }));
|
|
305
|
+
yield* this._emit(new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState }));
|
|
221
306
|
this._tracer.endNodeSpan(nodeSpan, { status: Status.CANCELLED, duration: 0 });
|
|
222
307
|
return result;
|
|
223
308
|
}
|
|
@@ -235,7 +320,12 @@ export class Swarm {
|
|
|
235
320
|
}));
|
|
236
321
|
let next = await this._tracer.withSpanContext(nodeSpan, () => gen.next());
|
|
237
322
|
while (!next.done) {
|
|
238
|
-
|
|
323
|
+
if (next.value instanceof HookableEvent) {
|
|
324
|
+
yield* this._emit(next.value);
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
yield next.value;
|
|
328
|
+
}
|
|
239
329
|
next = await this._tracer.withSpanContext(nodeSpan, () => gen.next());
|
|
240
330
|
}
|
|
241
331
|
if (timeoutController?.signal.aborted) {
|
|
@@ -244,19 +334,13 @@ export class Swarm {
|
|
|
244
334
|
const result = next.value;
|
|
245
335
|
this._tracer.endNodeSpan(nodeSpan, { status: result.status, duration: result.duration, usage: result.usage });
|
|
246
336
|
state.results.push(result);
|
|
247
|
-
yield new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState });
|
|
337
|
+
yield* this._emit(new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState }));
|
|
248
338
|
return result;
|
|
249
339
|
}
|
|
250
340
|
catch (error) {
|
|
251
341
|
const nodeError = normalizeError(error);
|
|
252
342
|
this._tracer.endNodeSpan(nodeSpan, { error: nodeError });
|
|
253
|
-
yield new AfterNodeCallEvent({
|
|
254
|
-
orchestrator: this,
|
|
255
|
-
state,
|
|
256
|
-
nodeId: node.id,
|
|
257
|
-
invocationState,
|
|
258
|
-
error: nodeError,
|
|
259
|
-
});
|
|
343
|
+
yield* this._emit(new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState, error: nodeError }));
|
|
260
344
|
throw nodeError;
|
|
261
345
|
}
|
|
262
346
|
finally {
|
|
@@ -308,6 +392,12 @@ export class Swarm {
|
|
|
308
392
|
}
|
|
309
393
|
return [...last.content];
|
|
310
394
|
}
|
|
395
|
+
/**
|
|
396
|
+
* Builds the input for the next node after a handoff, or returns the input as-is
|
|
397
|
+
* when there is no handoff (initial or resume invocation). The caller passes the
|
|
398
|
+
* original `MultiAgentInput` through; resume responses flow through here untouched
|
|
399
|
+
* so the underlying agent sees them directly.
|
|
400
|
+
*/
|
|
311
401
|
_resolveNodeInput(input, handoff) {
|
|
312
402
|
if (!handoff)
|
|
313
403
|
return input;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../../src/multiagent/swarm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"swarm.js","sourceRoot":"","sources":["../../../src/multiagent/swarm.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,11 @@ describe('ToolRegistry', () => {
|
|
|
39
39
|
expect(() => registry.add(createMockTool({ name: 'duplicate' }))).toThrow(ToolValidationError);
|
|
40
40
|
expect(() => registry.add(createMockTool({ name: 'duplicate' }))).toThrow("Tool with name 'duplicate' already registered");
|
|
41
41
|
});
|
|
42
|
+
it("throws ToolValidationError when a name differs only by '-' vs '_'", () => {
|
|
43
|
+
registry.add(createMockTool({ name: 'foo-bar' }));
|
|
44
|
+
expect(() => registry.add(createMockTool({ name: 'foo_bar' }))).toThrow(ToolValidationError);
|
|
45
|
+
expect(() => registry.add(createMockTool({ name: 'foo_bar' }))).toThrow("Tool name 'foo_bar' already exists as 'foo-bar'. Cannot add a duplicate tool which differs by a '-' or '_'");
|
|
46
|
+
});
|
|
42
47
|
it('throws ToolValidationError for an invalid tool name pattern', () => {
|
|
43
48
|
expect(() => registry.add(createMockTool({ name: 'invalid name!' }))).toThrow(ToolValidationError);
|
|
44
49
|
expect(() => registry.add(createMockTool({ name: 'invalid name!' }))).toThrow('Tool name must contain only alphanumeric characters, hyphens, and underscores');
|
|
@@ -82,6 +87,27 @@ describe('ToolRegistry', () => {
|
|
|
82
87
|
expect(() => registry.add(tool)).not.toThrow();
|
|
83
88
|
});
|
|
84
89
|
});
|
|
90
|
+
describe('addOrReplace', () => {
|
|
91
|
+
it('registers tools', () => {
|
|
92
|
+
const tool = createMockTool({ name: 'tool-1' });
|
|
93
|
+
registry.addOrReplace([tool]);
|
|
94
|
+
expect(registry.get('tool-1')).toBe(tool);
|
|
95
|
+
});
|
|
96
|
+
it('replaces an existing tool with the same name', () => {
|
|
97
|
+
const original = createMockTool({ name: 'tool-1', description: 'original' });
|
|
98
|
+
const replacement = createMockTool({ name: 'tool-1', description: 'replacement' });
|
|
99
|
+
registry.add(original);
|
|
100
|
+
registry.addOrReplace([replacement]);
|
|
101
|
+
expect(registry.get('tool-1')).toBe(replacement);
|
|
102
|
+
});
|
|
103
|
+
it('validates tool properties', () => {
|
|
104
|
+
expect(() => registry.addOrReplace([createMockTool({ name: 'invalid name!' })])).toThrow(ToolValidationError);
|
|
105
|
+
});
|
|
106
|
+
it("throws ToolValidationError when a new tool name differs only by '-' vs '_'", () => {
|
|
107
|
+
registry.add(createMockTool({ name: 'foo-bar' }));
|
|
108
|
+
expect(() => registry.addOrReplace([createMockTool({ name: 'foo_bar' })])).toThrow(ToolValidationError);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
85
111
|
describe('get', () => {
|
|
86
112
|
it('retrieves a tool by name', () => {
|
|
87
113
|
const tool = createMockTool({ name: 'find-me' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.test.js","sourceRoot":"","sources":["../../../../src/registry/__tests__/tool-registry.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-registry.test.js","sourceRoot":"","sources":["../../../../src/registry/__tests__/tool-registry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,MAAM,cAAc,GAAG,CAAC,YAA2B,EAAE,EAAQ,EAAE,CAAC,CAAC;IAC/D,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,2BAA2B;IACxC,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;KAChD;IACD,MAAM,EAAE,KAAK,SAAS,CAAC;QACrB,MAAM,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;QAChD,OAAO,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;IAC/E,CAAC;IACD,GAAG,SAAS;CACb,CAAC,CAAA;AAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,QAAsB,CAAA;IAE1B,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;YAC7B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAClB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YAChD,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YAChD,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;YAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;YACnD,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;YAC9F,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACvE,+CAA+C,CAChD,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC3E,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;YACjD,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;YAC5F,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACrE,4GAA4G,CAC7G,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;YAClG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAC3E,+EAA+E,CAChF,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;YACjG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAC1E,+CAA+C,CAChD,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;YACrF,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAA;QACnH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,mDAAmD;YACnD,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;YACtF,mDAAmD;YACnD,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAA;QACjG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,0DAA0D;YAC1D,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;YAC7F,0DAA0D;YAC1D,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACtE,6CAA6C,CAC9C,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;YAC5F,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACrE,6CAA6C,CAC9C,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YAChD,4DAA4D;YAC5D,KAAK,CAAC,WAAW,GAAG,SAAS,CAAA;YAE7B,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YAChD,uDAAuD;YACvD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAA;YAExB,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;YAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YACrD,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QAChD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;YACzB,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC/C,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7B,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAA;YAC5E,MAAM,WAAW,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAA;YAClF,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACtB,QAAQ,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;YACpC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QAC/G,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;YACpF,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;YACjD,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QACzG,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAChD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAClB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QACtD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAChC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;YACnD,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QACnD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QAC7D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YAChD,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YAChD,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;YAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,QAAQ,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;YACtF,QAAQ,CAAC,KAAK,EAAE,CAAA;YAChB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAC5C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;YAC7B,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACpC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -17,6 +17,13 @@ export declare class ToolRegistry {
|
|
|
17
17
|
* @throws ToolValidationError If a tool's properties are invalid or its name is already registered
|
|
18
18
|
*/
|
|
19
19
|
add(tool: Tool | Tool[]): void;
|
|
20
|
+
/**
|
|
21
|
+
* Registers one or more tools, replacing any existing tools with the same name.
|
|
22
|
+
*
|
|
23
|
+
* @param tools - Array of tools to register
|
|
24
|
+
* @throws ToolValidationError If a tool's properties are invalid
|
|
25
|
+
*/
|
|
26
|
+
addOrReplace(newTools: Tool[]): void;
|
|
20
27
|
/**
|
|
21
28
|
* Retrieves a tool by name.
|
|
22
29
|
*
|
|
@@ -40,12 +47,7 @@ export declare class ToolRegistry {
|
|
|
40
47
|
* @returns Array of all registered tools
|
|
41
48
|
*/
|
|
42
49
|
list(): Tool[];
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
*
|
|
46
|
-
* @param tool - The tool to validate
|
|
47
|
-
* @throws ToolValidationError If the tool's properties are invalid or its name is already registered
|
|
48
|
-
*/
|
|
49
|
-
private _validate;
|
|
50
|
+
private _validateProperties;
|
|
51
|
+
private _checkNormalizedConflict;
|
|
50
52
|
}
|
|
51
53
|
//# sourceMappingURL=tool-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../../src/registry/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAG5C;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA+B;IAE7C;;;;OAIG;gBACS,KAAK,CAAC,EAAE,IAAI,EAAE;IAM1B;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../../src/registry/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAG5C;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA+B;IAE7C;;;;OAIG;gBACS,KAAK,CAAC,EAAE,IAAI,EAAE;IAM1B;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI;IAY9B;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI;IAUpC;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAInC;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,IAAI,IAAI,IAAI,EAAE;IAId,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,wBAAwB;CAWjC"}
|
|
@@ -23,10 +23,29 @@ export class ToolRegistry {
|
|
|
23
23
|
add(tool) {
|
|
24
24
|
const tools = Array.isArray(tool) ? tool : [tool];
|
|
25
25
|
for (const t of tools) {
|
|
26
|
-
this.
|
|
26
|
+
this._validateProperties(t);
|
|
27
|
+
if (this._tools.has(t.name)) {
|
|
28
|
+
throw new ToolValidationError(`Tool with name '${t.name}' already registered`);
|
|
29
|
+
}
|
|
30
|
+
this._checkNormalizedConflict(t.name);
|
|
27
31
|
this._tools.set(t.name, t);
|
|
28
32
|
}
|
|
29
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Registers one or more tools, replacing any existing tools with the same name.
|
|
36
|
+
*
|
|
37
|
+
* @param tools - Array of tools to register
|
|
38
|
+
* @throws ToolValidationError If a tool's properties are invalid
|
|
39
|
+
*/
|
|
40
|
+
addOrReplace(newTools) {
|
|
41
|
+
for (const tool of newTools) {
|
|
42
|
+
this._validateProperties(tool);
|
|
43
|
+
if (!this._tools.has(tool.name)) {
|
|
44
|
+
this._checkNormalizedConflict(tool.name);
|
|
45
|
+
}
|
|
46
|
+
this._tools.set(tool.name, tool);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
30
49
|
/**
|
|
31
50
|
* Retrieves a tool by name.
|
|
32
51
|
*
|
|
@@ -58,13 +77,7 @@ export class ToolRegistry {
|
|
|
58
77
|
list() {
|
|
59
78
|
return Array.from(this._tools.values());
|
|
60
79
|
}
|
|
61
|
-
|
|
62
|
-
* Validates a tool before registration.
|
|
63
|
-
*
|
|
64
|
-
* @param tool - The tool to validate
|
|
65
|
-
* @throws ToolValidationError If the tool's properties are invalid or its name is already registered
|
|
66
|
-
*/
|
|
67
|
-
_validate(tool) {
|
|
80
|
+
_validateProperties(tool) {
|
|
68
81
|
if (typeof tool.name !== 'string') {
|
|
69
82
|
throw new ToolValidationError('Tool name must be a string');
|
|
70
83
|
}
|
|
@@ -80,8 +93,14 @@ export class ToolRegistry {
|
|
|
80
93
|
throw new ToolValidationError('Tool description must be a non-empty string');
|
|
81
94
|
}
|
|
82
95
|
}
|
|
83
|
-
|
|
84
|
-
|
|
96
|
+
}
|
|
97
|
+
_checkNormalizedConflict(name) {
|
|
98
|
+
const normalized = name.replaceAll('-', '_');
|
|
99
|
+
for (const existing of this._tools.keys()) {
|
|
100
|
+
if (existing !== name && existing.replaceAll('-', '_') === normalized) {
|
|
101
|
+
throw new ToolValidationError(`Tool name '${name}' already exists as '${existing}'.` +
|
|
102
|
+
" Cannot add a duplicate tool which differs by a '-' or '_'");
|
|
103
|
+
}
|
|
85
104
|
}
|
|
86
105
|
}
|
|
87
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../../src/registry/tool-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,GAAsB,IAAI,GAAG,EAAE,CAAA;IAE7C;;;;OAIG;IACH,YAAY,KAAc;QACxB,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,IAAmB;QACrB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACjD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../../src/registry/tool-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import { loadStateFromJSONSymbol, stateToJSONSymbol } from '../../types/serializ
|
|
|
9
9
|
import { StateStore } from '../../state-store.js';
|
|
10
10
|
import { logger } from '../../logging/logger.js';
|
|
11
11
|
import { AfterMultiAgentInvocationEvent, AfterNodeCallEvent, BeforeMultiAgentInvocationEvent, Graph, MultiAgentState, NodeResult, Status, } from '../../multiagent/index.js';
|
|
12
|
+
import { takeSnapshot, loadSnapshot } from '../../agent/snapshot.js';
|
|
12
13
|
// Test fixtures
|
|
13
14
|
function createMockAgent(id = 'agent') {
|
|
14
15
|
const agent = {
|
|
@@ -31,6 +32,12 @@ function createMockAgent(id = 'agent') {
|
|
|
31
32
|
},
|
|
32
33
|
modelState: new StateStore(),
|
|
33
34
|
systemPrompt: 'Test prompt',
|
|
35
|
+
takeSnapshot(options) {
|
|
36
|
+
return takeSnapshot(agent, options);
|
|
37
|
+
},
|
|
38
|
+
loadSnapshot(snapshot) {
|
|
39
|
+
loadSnapshot(agent, snapshot);
|
|
40
|
+
},
|
|
34
41
|
};
|
|
35
42
|
return agent;
|
|
36
43
|
}
|
|
@@ -502,17 +509,52 @@ describe('SessionManager', () => {
|
|
|
502
509
|
});
|
|
503
510
|
expect(snapshot).toBeNull();
|
|
504
511
|
});
|
|
505
|
-
it('
|
|
512
|
+
it.each(['invocation', 'message'])('saves snapshot_latest on redaction when saveLatestOn is %s', async (saveLatestOn) => {
|
|
506
513
|
sessionManager = new SessionManager({
|
|
507
514
|
sessionId: 'test-session',
|
|
508
515
|
storage: { snapshot: storage },
|
|
509
|
-
saveLatestOn
|
|
516
|
+
saveLatestOn,
|
|
517
|
+
});
|
|
518
|
+
const assistantMessage = new Message({ role: 'assistant', content: [new TextBlock('Response')] });
|
|
519
|
+
const event = new AfterModelCallEvent({
|
|
520
|
+
agent: mockAgent,
|
|
521
|
+
model: {},
|
|
522
|
+
stopData: {
|
|
523
|
+
message: assistantMessage,
|
|
524
|
+
stopReason: 'endTurn',
|
|
525
|
+
redaction: { userMessage: '[User input redacted.]' },
|
|
526
|
+
},
|
|
527
|
+
});
|
|
528
|
+
await initPluginAndInvokeHook(sessionManager, event);
|
|
529
|
+
const snapshot = await storage.loadSnapshot({
|
|
530
|
+
location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
|
|
531
|
+
});
|
|
532
|
+
expect(snapshot).not.toBeNull();
|
|
533
|
+
});
|
|
534
|
+
it('does not register AfterModelCallEvent hook when saveLatestOn is trigger', async () => {
|
|
535
|
+
sessionManager = new SessionManager({
|
|
536
|
+
sessionId: 'test-session',
|
|
537
|
+
storage: { snapshot: storage },
|
|
538
|
+
saveLatestOn: 'trigger',
|
|
510
539
|
});
|
|
511
|
-
// AfterModelCallEvent hook is not registered when saveLatestOn is 'invocation'
|
|
512
540
|
const pluginAgent = createMockAgentWithHooks();
|
|
513
541
|
sessionManager.initAgent(pluginAgent);
|
|
514
542
|
const afterModelHook = pluginAgent.trackedHooks.find((h) => h.eventType === AfterModelCallEvent);
|
|
515
543
|
expect(afterModelHook).toBeUndefined();
|
|
544
|
+
});
|
|
545
|
+
it('does not save on AfterModelCallEvent without redaction under saveLatestOn=invocation', async () => {
|
|
546
|
+
sessionManager = new SessionManager({
|
|
547
|
+
sessionId: 'test-session',
|
|
548
|
+
storage: { snapshot: storage },
|
|
549
|
+
saveLatestOn: 'invocation',
|
|
550
|
+
});
|
|
551
|
+
const assistantMessage = new Message({ role: 'assistant', content: [new TextBlock('Response')] });
|
|
552
|
+
const event = new AfterModelCallEvent({
|
|
553
|
+
agent: mockAgent,
|
|
554
|
+
model: {},
|
|
555
|
+
stopData: { message: assistantMessage, stopReason: 'endTurn' },
|
|
556
|
+
});
|
|
557
|
+
await initPluginAndInvokeHook(sessionManager, event);
|
|
516
558
|
const snapshot = await storage.loadSnapshot({
|
|
517
559
|
location: { sessionId: 'test-session', scope: 'agent', scopeId: 'test-agent' },
|
|
518
560
|
});
|