@strands-agents/sdk 0.6.0 → 1.0.0-rc.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 +71 -7
- package/dist/src/__fixtures__/agent-helpers.d.ts +81 -4
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/agent-helpers.js +76 -4
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
- package/dist/src/__fixtures__/metrics-helpers.d.ts +30 -0
- package/dist/src/__fixtures__/metrics-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/metrics-helpers.js +29 -6
- package/dist/src/__fixtures__/metrics-helpers.js.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.d.ts +8 -4
- package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.js +13 -7
- package/dist/src/__fixtures__/mock-message-model.js.map +1 -1
- package/dist/src/__fixtures__/mock-meter.d.ts +32 -0
- package/dist/src/__fixtures__/mock-meter.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-meter.js +47 -0
- package/dist/src/__fixtures__/mock-meter.js.map +1 -0
- package/dist/src/__fixtures__/mock-plugin.d.ts +13 -0
- package/dist/src/__fixtures__/mock-plugin.d.ts.map +1 -0
- package/dist/src/__fixtures__/{mock-hook-provider.js → mock-plugin.js} +11 -6
- package/dist/src/__fixtures__/mock-plugin.js.map +1 -0
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.js +6 -2
- package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
- package/dist/src/__tests__/index.test.js +21 -0
- package/dist/src/__tests__/index.test.js.map +1 -1
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/__tests__/mime.test.d.ts +2 -0
- package/dist/src/__tests__/mime.test.d.ts.map +1 -0
- package/dist/src/__tests__/mime.test.js +83 -0
- package/dist/src/__tests__/mime.test.js.map +1 -0
- package/dist/src/__tests__/state-store.test.d.ts +2 -0
- package/dist/src/__tests__/state-store.test.d.ts.map +1 -0
- package/dist/src/__tests__/{app-state.test.js → state-store.test.js} +86 -51
- package/dist/src/__tests__/state-store.test.js.map +1 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.js +364 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.js.map +1 -0
- package/dist/src/a2a/__tests__/adapters.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/adapters.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/adapters.test.js +151 -0
- package/dist/src/a2a/__tests__/adapters.test.js.map +1 -0
- package/dist/src/a2a/__tests__/events.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/events.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/events.test.js +66 -0
- package/dist/src/a2a/__tests__/events.test.js.map +1 -0
- package/dist/src/a2a/__tests__/executor.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/executor.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/executor.test.js +196 -0
- package/dist/src/a2a/__tests__/executor.test.js.map +1 -0
- package/dist/src/a2a/__tests__/server.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/server.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/server.test.js +51 -0
- package/dist/src/a2a/__tests__/server.test.js.map +1 -0
- package/dist/src/a2a/__tests__/server.test.node.d.ts +2 -0
- package/dist/src/a2a/__tests__/server.test.node.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/server.test.node.js +110 -0
- package/dist/src/a2a/__tests__/server.test.node.js.map +1 -0
- package/dist/src/a2a/a2a-agent.d.ts +132 -0
- package/dist/src/a2a/a2a-agent.d.ts.map +1 -0
- package/dist/src/a2a/a2a-agent.js +255 -0
- package/dist/src/a2a/a2a-agent.js.map +1 -0
- package/dist/src/a2a/adapters.d.ts +27 -0
- package/dist/src/a2a/adapters.d.ts.map +1 -0
- package/dist/src/a2a/adapters.js +175 -0
- package/dist/src/a2a/adapters.js.map +1 -0
- package/dist/src/a2a/events.d.ts +44 -0
- package/dist/src/a2a/events.d.ts.map +1 -0
- package/dist/src/a2a/events.js +41 -0
- package/dist/src/a2a/events.js.map +1 -0
- package/dist/src/a2a/executor.d.ts +57 -0
- package/dist/src/a2a/executor.d.ts.map +1 -0
- package/dist/src/a2a/executor.js +130 -0
- package/dist/src/a2a/executor.js.map +1 -0
- package/dist/src/a2a/express-server.d.ts +67 -0
- package/dist/src/a2a/express-server.d.ts.map +1 -0
- package/dist/src/a2a/express-server.js +95 -0
- package/dist/src/a2a/express-server.js.map +1 -0
- package/dist/src/a2a/index.d.ts +15 -0
- package/dist/src/a2a/index.d.ts.map +1 -0
- package/dist/src/a2a/index.js +15 -0
- package/dist/src/a2a/index.js.map +1 -0
- package/dist/src/a2a/logging.d.ts +8 -0
- package/dist/src/a2a/logging.d.ts.map +1 -0
- package/dist/src/a2a/logging.js +15 -0
- package/dist/src/a2a/logging.js.map +1 -0
- package/dist/src/a2a/server.d.ts +67 -0
- package/dist/src/a2a/server.d.ts.map +1 -0
- package/dist/src/a2a/server.js +67 -0
- package/dist/src/a2a/server.js.map +1 -0
- package/dist/src/agent/__tests__/agent.hook.test.js +315 -51
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.test.js +298 -48
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts.map +1 -0
- package/dist/src/agent/__tests__/{agent.tracer.test.js → agent.tracer.test.node.js} +62 -50
- package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +1 -0
- package/dist/src/agent/__tests__/printer.test.js +7 -7
- package/dist/src/agent/__tests__/printer.test.js.map +1 -1
- package/dist/src/agent/__tests__/snapshot.test.js +50 -13
- package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
- package/dist/src/agent/agent.d.ts +55 -44
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +230 -128
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/printer.d.ts.map +1 -1
- package/dist/src/agent/printer.js +3 -0
- package/dist/src/agent/printer.js.map +1 -1
- package/dist/src/agent/snapshot.d.ts +3 -3
- package/dist/src/agent/snapshot.d.ts.map +1 -1
- package/dist/src/agent/snapshot.js +16 -8
- package/dist/src/agent/snapshot.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +2 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +1 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +100 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -0
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +26 -10
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +153 -64
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/conversation-manager.d.ts +87 -0
- package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -0
- package/dist/src/conversation-manager/conversation-manager.js +59 -0
- package/dist/src/conversation-manager/conversation-manager.js.map +1 -0
- package/dist/src/conversation-manager/index.d.ts +1 -0
- package/dist/src/conversation-manager/index.d.ts.map +1 -1
- package/dist/src/conversation-manager/index.js +1 -0
- package/dist/src/conversation-manager/index.js.map +1 -1
- package/dist/src/conversation-manager/null-conversation-manager.d.ts +12 -8
- package/dist/src/conversation-manager/null-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/null-conversation-manager.js +13 -7
- package/dist/src/conversation-manager/null-conversation-manager.js.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +28 -19
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js +57 -42
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
- package/dist/src/errors.d.ts +8 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +11 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hooks/__tests__/events.test.js +387 -0
- package/dist/src/hooks/__tests__/events.test.js.map +1 -1
- package/dist/src/hooks/__tests__/registry.test.js +10 -154
- package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
- package/dist/src/hooks/events.d.ts +148 -44
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +148 -11
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/index.d.ts +3 -3
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +2 -2
- package/dist/src/hooks/registry.d.ts +1 -32
- package/dist/src/hooks/registry.d.ts.map +1 -1
- package/dist/src/hooks/registry.js +1 -47
- package/dist/src/hooks/registry.js.map +1 -1
- package/dist/src/hooks/types.d.ts +0 -31
- package/dist/src/hooks/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +14 -13
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +11 -9
- package/dist/src/index.js.map +1 -1
- package/dist/src/mime.d.ts +24 -0
- package/dist/src/mime.d.ts.map +1 -0
- package/dist/src/mime.js +82 -0
- package/dist/src/mime.js.map +1 -0
- package/dist/src/models/__tests__/anthropic.test.js +79 -3
- package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +1858 -627
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/google.test.d.ts +2 -0
- package/dist/src/models/__tests__/google.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/{gemini.test.js → google.test.js} +155 -22
- package/dist/src/models/__tests__/google.test.js.map +1 -0
- package/dist/src/models/__tests__/model.test.js +25 -0
- package/dist/src/models/__tests__/model.test.js.map +1 -1
- package/dist/src/models/__tests__/openai.test.js +255 -96
- package/dist/src/models/__tests__/openai.test.js.map +1 -1
- package/dist/src/models/anthropic.d.ts.map +1 -1
- package/dist/src/models/anthropic.js +14 -14
- package/dist/src/models/anthropic.js.map +1 -1
- package/dist/src/models/bedrock.d.ts +67 -13
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +207 -28
- package/dist/src/models/bedrock.js.map +1 -1
- package/dist/src/models/{gemini → google}/adapters.d.ts +3 -3
- package/dist/src/models/{gemini → google}/adapters.d.ts.map +1 -1
- package/dist/src/models/{gemini → google}/adapters.js +66 -15
- package/dist/src/models/google/adapters.js.map +1 -0
- package/dist/src/models/{gemini → google}/errors.d.ts +7 -7
- package/dist/src/models/google/errors.d.ts.map +1 -0
- package/dist/src/models/{gemini → google}/errors.js +11 -5
- package/dist/src/models/google/errors.js.map +1 -0
- package/dist/src/models/google/index.d.ts +15 -0
- package/dist/src/models/google/index.d.ts.map +1 -0
- package/dist/src/models/google/index.js +15 -0
- package/dist/src/models/google/index.js.map +1 -0
- package/dist/src/models/{gemini → google}/model.d.ts +18 -18
- package/dist/src/models/{gemini → google}/model.d.ts.map +1 -1
- package/dist/src/models/{gemini → google}/model.js +22 -19
- package/dist/src/models/google/model.js.map +1 -0
- package/dist/src/models/{gemini → google}/types.d.ts +9 -9
- package/dist/src/models/{gemini → google}/types.d.ts.map +1 -1
- package/dist/src/models/google/types.js +5 -0
- package/dist/src/models/google/types.js.map +1 -0
- package/dist/src/models/model.d.ts +12 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +6 -10
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/openai.d.ts +44 -11
- package/dist/src/models/openai.d.ts.map +1 -1
- package/dist/src/models/openai.js +133 -79
- package/dist/src/models/openai.js.map +1 -1
- package/dist/src/models/streaming.d.ts +18 -0
- package/dist/src/models/streaming.d.ts.map +1 -1
- package/dist/src/models/streaming.js +29 -0
- package/dist/src/models/streaming.js.map +1 -1
- package/dist/src/multiagent/__tests__/events.test.js +201 -7
- package/dist/src/multiagent/__tests__/events.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.test.js +28 -13
- package/dist/src/multiagent/__tests__/graph.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/graph.tracer.test.js +204 -0
- package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.js +76 -15
- package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/swarm.test.js +67 -16
- package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/swarm.tracer.test.js +235 -0
- package/dist/src/multiagent/__tests__/swarm.tracer.test.js.map +1 -0
- package/dist/src/multiagent/events.d.ts +62 -14
- package/dist/src/multiagent/events.d.ts.map +1 -1
- package/dist/src/multiagent/events.js +45 -3
- package/dist/src/multiagent/events.js.map +1 -1
- package/dist/src/multiagent/graph.d.ts +25 -11
- package/dist/src/multiagent/graph.d.ts.map +1 -1
- package/dist/src/multiagent/graph.js +76 -44
- package/dist/src/multiagent/graph.js.map +1 -1
- package/dist/src/multiagent/index.d.ts +4 -3
- package/dist/src/multiagent/index.d.ts.map +1 -1
- package/dist/src/multiagent/index.js.map +1 -1
- package/dist/src/multiagent/multiagent.d.ts +41 -0
- package/dist/src/multiagent/multiagent.d.ts.map +1 -0
- package/dist/src/multiagent/multiagent.js +2 -0
- package/dist/src/multiagent/multiagent.js.map +1 -0
- package/dist/src/multiagent/nodes.d.ts +35 -24
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +50 -23
- package/dist/src/multiagent/nodes.js.map +1 -1
- package/dist/src/multiagent/plugins.d.ts +70 -0
- package/dist/src/multiagent/plugins.d.ts.map +1 -0
- package/dist/src/multiagent/plugins.js +70 -0
- package/dist/src/multiagent/plugins.js.map +1 -0
- package/dist/src/multiagent/state.d.ts +10 -5
- package/dist/src/multiagent/state.d.ts.map +1 -1
- package/dist/src/multiagent/state.js +20 -6
- package/dist/src/multiagent/state.js.map +1 -1
- package/dist/src/multiagent/swarm.d.ts +41 -17
- package/dist/src/multiagent/swarm.d.ts.map +1 -1
- package/dist/src/multiagent/swarm.js +101 -42
- package/dist/src/multiagent/swarm.js.map +1 -1
- package/dist/src/plugins/__tests__/plugin.test.d.ts +2 -0
- package/dist/src/plugins/__tests__/plugin.test.d.ts.map +1 -0
- package/dist/src/plugins/__tests__/plugin.test.js +114 -0
- package/dist/src/plugins/__tests__/plugin.test.js.map +1 -0
- package/dist/src/plugins/__tests__/registry.test.d.ts +2 -0
- package/dist/src/plugins/__tests__/registry.test.d.ts.map +1 -0
- package/dist/src/plugins/__tests__/registry.test.js +147 -0
- package/dist/src/plugins/__tests__/registry.test.js.map +1 -0
- package/dist/src/plugins/index.d.ts +30 -0
- package/dist/src/plugins/index.d.ts.map +1 -0
- package/dist/src/plugins/index.js +30 -0
- package/dist/src/plugins/index.js.map +1 -0
- package/dist/src/plugins/plugin.d.ts +74 -0
- package/dist/src/plugins/plugin.d.ts.map +1 -0
- package/dist/src/plugins/plugin.js +8 -0
- package/dist/src/plugins/plugin.js.map +1 -0
- package/dist/src/plugins/registry.d.ts +25 -0
- package/dist/src/plugins/registry.d.ts.map +1 -0
- package/dist/src/plugins/registry.js +41 -0
- package/dist/src/plugins/registry.js.map +1 -0
- package/dist/src/session/__tests__/session-manager.test.js +110 -92
- package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
- package/dist/src/session/index.d.ts +0 -1
- package/dist/src/session/index.d.ts.map +1 -1
- package/dist/src/session/index.js +0 -1
- package/dist/src/session/index.js.map +1 -1
- package/dist/src/session/session-manager.d.ts +11 -8
- package/dist/src/session/session-manager.d.ts.map +1 -1
- package/dist/src/session/session-manager.js +24 -16
- package/dist/src/session/session-manager.js.map +1 -1
- package/dist/src/session/storage.d.ts +1 -1
- package/dist/src/session/storage.d.ts.map +1 -1
- package/dist/src/session/types.d.ts +2 -2
- package/dist/src/session/types.d.ts.map +1 -1
- package/dist/src/{app-state.d.ts → state-store.d.ts} +11 -11
- package/dist/src/state-store.d.ts.map +1 -0
- package/dist/src/{app-state.js → state-store.js} +8 -7
- package/dist/src/state-store.js.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.js +24 -0
- package/dist/src/telemetry/__tests__/config.test.js.map +1 -1
- package/dist/src/telemetry/__tests__/config.test.node.js +56 -0
- package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -1
- package/dist/src/telemetry/__tests__/local-trace.test.d.ts +2 -0
- package/dist/src/telemetry/__tests__/local-trace.test.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/local-trace.test.js +158 -0
- package/dist/src/telemetry/__tests__/local-trace.test.js.map +1 -0
- package/dist/src/telemetry/__tests__/meter.test.js +176 -9
- package/dist/src/telemetry/__tests__/meter.test.js.map +1 -1
- package/dist/src/telemetry/__tests__/tracer.test.node.js +151 -2
- package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -1
- package/dist/src/telemetry/config.d.ts +72 -12
- package/dist/src/telemetry/config.d.ts.map +1 -1
- package/dist/src/telemetry/config.js +102 -25
- package/dist/src/telemetry/config.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +10 -7
- package/dist/src/telemetry/index.d.ts.map +1 -1
- package/dist/src/telemetry/index.js +9 -6
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/meter.d.ts +23 -17
- package/dist/src/telemetry/meter.d.ts.map +1 -1
- package/dist/src/telemetry/meter.js +86 -41
- package/dist/src/telemetry/meter.js.map +1 -1
- package/dist/src/telemetry/tracer.d.ts +134 -18
- package/dist/src/telemetry/tracer.d.ts.map +1 -1
- package/dist/src/telemetry/tracer.js +325 -38
- package/dist/src/telemetry/tracer.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +51 -0
- package/dist/src/telemetry/types.d.ts.map +1 -1
- package/dist/src/telemetry/utils.d.ts +10 -0
- package/dist/src/telemetry/utils.d.ts.map +1 -0
- package/dist/src/telemetry/utils.js +13 -0
- package/dist/src/telemetry/utils.js.map +1 -0
- package/dist/src/tools/__tests__/structured-output-tool.test.d.ts +2 -0
- package/dist/src/tools/__tests__/structured-output-tool.test.d.ts.map +1 -0
- package/dist/src/tools/__tests__/structured-output-tool.test.js +84 -0
- package/dist/src/tools/__tests__/structured-output-tool.test.js.map +1 -0
- package/dist/src/tools/__tests__/tool.test.js +22 -1
- package/dist/src/tools/__tests__/tool.test.js.map +1 -1
- package/dist/src/tools/function-tool.d.ts +11 -1
- package/dist/src/tools/function-tool.d.ts.map +1 -1
- package/dist/src/tools/function-tool.js +64 -3
- package/dist/src/tools/function-tool.js.map +1 -1
- package/dist/src/tools/structured-output-tool.d.ts +41 -0
- package/dist/src/tools/structured-output-tool.d.ts.map +1 -0
- package/dist/src/tools/structured-output-tool.js +82 -0
- package/dist/src/tools/structured-output-tool.js.map +1 -0
- package/dist/src/tools/tool.d.ts +2 -2
- package/dist/src/tools/tool.d.ts.map +1 -1
- package/dist/src/tools/zod-tool.js +1 -1
- package/dist/src/tools/zod-tool.js.map +1 -1
- package/dist/src/{utils/zod.d.ts → tools/zod-utils.d.ts} +1 -1
- package/dist/src/tools/zod-utils.d.ts.map +1 -0
- package/dist/src/{utils/zod.js → tools/zod-utils.js} +1 -1
- package/dist/src/tools/zod-utils.js.map +1 -0
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/agent.test.js +127 -0
- package/dist/src/types/__tests__/agent.test.js.map +1 -1
- package/dist/src/types/__tests__/media.test.js +22 -16
- package/dist/src/types/__tests__/media.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +101 -7
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +26 -0
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/media.d.ts +27 -30
- package/dist/src/types/media.d.ts.map +1 -1
- package/dist/src/types/media.js +15 -56
- package/dist/src/types/media.js.map +1 -1
- package/dist/src/types/messages.d.ts +18 -4
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js +22 -26
- package/dist/src/types/messages.js.map +1 -1
- package/dist/src/types/serializable.d.ts +34 -4
- package/dist/src/types/serializable.d.ts.map +1 -1
- package/dist/src/types/serializable.js +31 -2
- package/dist/src/types/serializable.js.map +1 -1
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +17 -4
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
- package/dist/src/vended-tools/bash/bash.d.ts.map +1 -1
- package/dist/src/vended-tools/bash/bash.js +16 -14
- package/dist/src/vended-tools/bash/bash.js.map +1 -1
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts.map +1 -0
- package/dist/src/vended-tools/{file_editor → file-editor}/__tests__/file-editor.test.node.js +11 -4
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -0
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.d.ts +1 -1
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.d.ts.map +1 -1
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.js +2 -2
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.js.map +1 -1
- package/dist/src/vended-tools/{file_editor → file-editor}/index.d.ts.map +1 -1
- package/dist/src/vended-tools/file-editor/index.js.map +1 -0
- package/dist/src/vended-tools/{file_editor → file-editor}/types.d.ts.map +1 -1
- package/dist/src/vended-tools/file-editor/types.js.map +1 -0
- package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts.map +1 -0
- package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.js.map +1 -1
- package/dist/src/vended-tools/{http_request → http-request}/http-request.d.ts.map +1 -1
- package/dist/src/vended-tools/{http_request → http-request}/http-request.js.map +1 -1
- package/dist/src/vended-tools/{http_request → http-request}/index.d.ts.map +1 -1
- package/dist/src/vended-tools/http-request/index.js.map +1 -0
- package/dist/src/vended-tools/{http_request → http-request}/types.d.ts.map +1 -1
- package/dist/src/vended-tools/http-request/types.js.map +1 -0
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +5 -4
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
- package/dist/src/vended-tools/notebook/notebook.js +2 -2
- package/dist/src/vended-tools/notebook/notebook.js.map +1 -1
- package/package.json +63 -17
- package/dist/src/__fixtures__/mock-hook-provider.d.ts +0 -10
- package/dist/src/__fixtures__/mock-hook-provider.d.ts.map +0 -1
- package/dist/src/__fixtures__/mock-hook-provider.js.map +0 -1
- package/dist/src/__tests__/app-state.test.d.ts +0 -2
- package/dist/src/__tests__/app-state.test.d.ts.map +0 -1
- package/dist/src/__tests__/app-state.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent.tracer.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent.tracer.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent.tracer.test.js.map +0 -1
- package/dist/src/app-state.d.ts.map +0 -1
- package/dist/src/app-state.js.map +0 -1
- package/dist/src/models/__tests__/gemini.test.d.ts +0 -2
- package/dist/src/models/__tests__/gemini.test.d.ts.map +0 -1
- package/dist/src/models/__tests__/gemini.test.js.map +0 -1
- package/dist/src/models/gemini/adapters.js.map +0 -1
- package/dist/src/models/gemini/errors.d.ts.map +0 -1
- package/dist/src/models/gemini/errors.js.map +0 -1
- package/dist/src/models/gemini/model.js.map +0 -1
- package/dist/src/models/gemini/types.js +0 -5
- package/dist/src/models/gemini/types.js.map +0 -1
- package/dist/src/multiagent/base.d.ts +0 -25
- package/dist/src/multiagent/base.d.ts.map +0 -1
- package/dist/src/multiagent/base.js +0 -2
- package/dist/src/multiagent/base.js.map +0 -1
- package/dist/src/structured-output/__tests__/context.test.d.ts +0 -2
- package/dist/src/structured-output/__tests__/context.test.d.ts.map +0 -1
- package/dist/src/structured-output/__tests__/context.test.js +0 -201
- package/dist/src/structured-output/__tests__/context.test.js.map +0 -1
- package/dist/src/structured-output/__tests__/exceptions.test.d.ts +0 -2
- package/dist/src/structured-output/__tests__/exceptions.test.d.ts.map +0 -1
- package/dist/src/structured-output/__tests__/exceptions.test.js +0 -103
- package/dist/src/structured-output/__tests__/exceptions.test.js.map +0 -1
- package/dist/src/structured-output/__tests__/tool.test.d.ts +0 -2
- package/dist/src/structured-output/__tests__/tool.test.d.ts.map +0 -1
- package/dist/src/structured-output/__tests__/tool.test.js +0 -256
- package/dist/src/structured-output/__tests__/tool.test.js.map +0 -1
- package/dist/src/structured-output/__tests__/utils.test.d.ts +0 -2
- package/dist/src/structured-output/__tests__/utils.test.d.ts.map +0 -1
- package/dist/src/structured-output/__tests__/utils.test.js +0 -183
- package/dist/src/structured-output/__tests__/utils.test.js.map +0 -1
- package/dist/src/structured-output/context.d.ts +0 -91
- package/dist/src/structured-output/context.d.ts.map +0 -1
- package/dist/src/structured-output/context.js +0 -112
- package/dist/src/structured-output/context.js.map +0 -1
- package/dist/src/structured-output/exceptions.d.ts +0 -18
- package/dist/src/structured-output/exceptions.d.ts.map +0 -1
- package/dist/src/structured-output/exceptions.js +0 -28
- package/dist/src/structured-output/exceptions.js.map +0 -1
- package/dist/src/structured-output/tool.d.ts +0 -33
- package/dist/src/structured-output/tool.d.ts.map +0 -1
- package/dist/src/structured-output/tool.js +0 -73
- package/dist/src/structured-output/tool.js.map +0 -1
- package/dist/src/structured-output/utils.d.ts +0 -23
- package/dist/src/structured-output/utils.d.ts.map +0 -1
- package/dist/src/structured-output/utils.js +0 -104
- package/dist/src/structured-output/utils.js.map +0 -1
- package/dist/src/utils/zod.d.ts.map +0 -1
- package/dist/src/utils/zod.js.map +0 -1
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.d.ts.map +0 -1
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js.map +0 -1
- package/dist/src/vended-tools/file_editor/index.js.map +0 -1
- package/dist/src/vended-tools/file_editor/types.js.map +0 -1
- package/dist/src/vended-tools/http_request/__tests__/http-request.test.d.ts.map +0 -1
- package/dist/src/vended-tools/http_request/index.js.map +0 -1
- package/dist/src/vended-tools/http_request/types.js.map +0 -1
- /package/dist/src/vended-tools/{file_editor → file-editor}/__tests__/file-editor.test.node.d.ts +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/index.d.ts +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/index.js +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/types.d.ts +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/types.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/http-request.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/http-request.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/index.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/index.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/types.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/types.js +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { InvokeArgs } from '../types/agent.js';
|
|
2
|
+
import type { Message, MessageData } from '../types/messages.js';
|
|
3
|
+
import type { HookableEvent } from '../hooks/events.js';
|
|
4
|
+
import type { HookCallback, HookableEventConstructor, HookCleanup } from '../hooks/types.js';
|
|
5
|
+
import type { MultiAgentStreamEvent } from './events.js';
|
|
6
|
+
import type { MultiAgentResult } from './state.js';
|
|
7
|
+
/**
|
|
8
|
+
* Input type for multi-agent orchestrators. Excludes `Message[]` and `MessageData[]`
|
|
9
|
+
* from {@link InvokeArgs} since orchestrators route content blocks between nodes.
|
|
10
|
+
*/
|
|
11
|
+
export type MultiAgentInput = Exclude<InvokeArgs, Message[] | MessageData[]>;
|
|
12
|
+
/**
|
|
13
|
+
* Interface for any multi-agent orchestrator that can stream execution.
|
|
14
|
+
* Implement this interface to create custom orchestration patterns that can be
|
|
15
|
+
* composed as nodes within other orchestrators via {@link MultiAgentNode}.
|
|
16
|
+
*/
|
|
17
|
+
export interface MultiAgent {
|
|
18
|
+
/** Unique identifier for this orchestrator. */
|
|
19
|
+
readonly id: string;
|
|
20
|
+
/**
|
|
21
|
+
* Execute the orchestrator and return the final result.
|
|
22
|
+
* @param input - Input to pass to the orchestrator
|
|
23
|
+
* @returns The aggregate result from all executed nodes
|
|
24
|
+
*/
|
|
25
|
+
invoke(input: MultiAgentInput): Promise<MultiAgentResult>;
|
|
26
|
+
/**
|
|
27
|
+
* Execute the orchestrator and stream events as they occur.
|
|
28
|
+
* @param input - Input to pass to the orchestrator
|
|
29
|
+
* @returns Async generator yielding events and returning the final result
|
|
30
|
+
*/
|
|
31
|
+
stream(input: MultiAgentInput): AsyncGenerator<MultiAgentStreamEvent, MultiAgentResult, undefined>;
|
|
32
|
+
/**
|
|
33
|
+
* Register a hook callback for a specific orchestrator event type.
|
|
34
|
+
*
|
|
35
|
+
* @param eventType - The event class constructor to register the callback for
|
|
36
|
+
* @param callback - The callback function to invoke when the event occurs
|
|
37
|
+
* @returns Cleanup function that removes the callback when invoked
|
|
38
|
+
*/
|
|
39
|
+
addHook<T extends HookableEvent>(eventType: HookableEventConstructor<T>, callback: HookCallback<T>): HookCleanup;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=multiagent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiagent.d.ts","sourceRoot":"","sources":["../../../src/multiagent/multiagent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC,CAAA;AAE5E;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IAEnB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAEzD;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAA;IAElG;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;CACjH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiagent.js","sourceRoot":"","sources":["../../../src/multiagent/multiagent.ts"],"names":[],"mappings":""}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { InvokableAgent } from '../types/agent.js';
|
|
2
|
+
import type { MultiAgentInput } from './multiagent.js';
|
|
2
3
|
import type { MultiAgentStreamEvent } from './events.js';
|
|
3
4
|
import { NodeResult } from './state.js';
|
|
4
5
|
import type { MultiAgentState, NodeResultUpdate } from './state.js';
|
|
5
|
-
import type {
|
|
6
|
+
import type { MultiAgent } from './multiagent.js';
|
|
7
|
+
import type { z } from 'zod';
|
|
6
8
|
/**
|
|
7
9
|
* Known node type identifiers with extensibility for custom nodes.
|
|
8
10
|
*/
|
|
@@ -16,6 +18,15 @@ export interface NodeConfig {
|
|
|
16
18
|
*/
|
|
17
19
|
description?: string;
|
|
18
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Per-invocation options passed from the orchestrator to a node.
|
|
23
|
+
*/
|
|
24
|
+
export interface NodeInputOptions {
|
|
25
|
+
/**
|
|
26
|
+
* Structured output schema for this node invocation.
|
|
27
|
+
*/
|
|
28
|
+
structuredOutputSchema?: z.ZodSchema;
|
|
29
|
+
}
|
|
19
30
|
/**
|
|
20
31
|
* Abstract base class for all multi-agent orchestration nodes.
|
|
21
32
|
*
|
|
@@ -38,54 +49,57 @@ export declare abstract class Node {
|
|
|
38
49
|
* Execute the node. Handles duration measurement, error capture,
|
|
39
50
|
* and delegates to handle() for node-specific logic.
|
|
40
51
|
*
|
|
41
|
-
* @param
|
|
52
|
+
* @param input - Input to pass to the node (string or content blocks)
|
|
42
53
|
* @param state - The current multi-agent state
|
|
54
|
+
* @param options - Per-invocation options from the orchestrator
|
|
43
55
|
* @returns Async generator yielding streaming events and returning a NodeResult
|
|
44
56
|
*/
|
|
45
|
-
stream(
|
|
57
|
+
stream(input: MultiAgentInput, state: MultiAgentState, options?: NodeInputOptions): AsyncGenerator<MultiAgentStreamEvent, NodeResult, undefined>;
|
|
46
58
|
/**
|
|
47
59
|
* Node-specific execution logic implemented by subclasses.
|
|
48
60
|
*
|
|
49
|
-
* @param
|
|
61
|
+
* @param input - Input to process (string or content blocks)
|
|
50
62
|
* @param state - The current multi-agent state
|
|
63
|
+
* @param options - Per-invocation options from the orchestrator
|
|
51
64
|
* @returns Async generator yielding streaming events and returning a partial result
|
|
52
65
|
*/
|
|
53
|
-
abstract handle(
|
|
66
|
+
abstract handle(input: MultiAgentInput, state: MultiAgentState, options?: NodeInputOptions): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
|
|
54
67
|
}
|
|
55
68
|
/**
|
|
56
69
|
* Options for creating an {@link AgentNode}.
|
|
57
70
|
*/
|
|
58
71
|
export interface AgentNodeOptions {
|
|
59
72
|
/** The agent to wrap as a node. */
|
|
60
|
-
agent:
|
|
73
|
+
agent: InvokableAgent;
|
|
61
74
|
}
|
|
62
75
|
/**
|
|
63
|
-
* Node that wraps an
|
|
76
|
+
* Node that wraps an {@link InvokableAgent} instance for multi-agent orchestration.
|
|
64
77
|
*
|
|
65
|
-
* Each execution is isolated
|
|
66
|
-
* is unchanged after the node completes.
|
|
78
|
+
* Each execution is isolated. When the wrapped agent is an {@link Agent} instance,
|
|
79
|
+
* its internal state is snapshot/restored so it remains unchanged after the node completes.
|
|
67
80
|
*/
|
|
68
81
|
export declare class AgentNode extends Node {
|
|
69
82
|
readonly type: "agentNode";
|
|
70
83
|
private readonly _agent;
|
|
71
84
|
constructor(options: AgentNodeOptions);
|
|
72
|
-
get agent():
|
|
85
|
+
get agent(): InvokableAgent;
|
|
73
86
|
/**
|
|
74
87
|
* Executes the wrapped agent, yielding each agent streaming event
|
|
75
88
|
* wrapped in a {@link NodeStreamUpdateEvent}.
|
|
76
89
|
*
|
|
77
|
-
* @param
|
|
90
|
+
* @param input - Input to pass to the agent
|
|
78
91
|
* @param state - The current multi-agent state
|
|
92
|
+
* @param options - Per-invocation options from the orchestrator
|
|
79
93
|
* @returns Async generator yielding streaming events and returning the agent's content blocks
|
|
80
94
|
*/
|
|
81
|
-
handle(
|
|
95
|
+
handle(input: MultiAgentInput, state: MultiAgentState, options?: NodeInputOptions): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
|
|
82
96
|
}
|
|
83
97
|
/**
|
|
84
98
|
* Options for creating a {@link MultiAgentNode}.
|
|
85
99
|
*/
|
|
86
100
|
export interface MultiAgentNodeOptions extends NodeConfig {
|
|
87
101
|
/** The orchestrator to wrap as a node. */
|
|
88
|
-
orchestrator:
|
|
102
|
+
orchestrator: MultiAgent;
|
|
89
103
|
}
|
|
90
104
|
/**
|
|
91
105
|
* Node that wraps a multi-agent orchestrator (e.g. Graph) for nested composition.
|
|
@@ -98,28 +112,25 @@ export declare class MultiAgentNode extends Node {
|
|
|
98
112
|
readonly type: "multiAgentNode";
|
|
99
113
|
private readonly _orchestrator;
|
|
100
114
|
constructor(options: MultiAgentNodeOptions);
|
|
101
|
-
get orchestrator():
|
|
115
|
+
get orchestrator(): MultiAgent;
|
|
102
116
|
/**
|
|
103
117
|
* Executes the wrapped orchestrator. Inner {@link NodeStreamUpdateEvent}s
|
|
104
118
|
* pass through as-is; all other events are wrapped in a new
|
|
105
119
|
* {@link NodeStreamUpdateEvent} tagged with this node's identity.
|
|
106
120
|
*
|
|
107
|
-
* @param
|
|
108
|
-
* @param
|
|
121
|
+
* @param input - Input to pass to the orchestrator
|
|
122
|
+
* @param state - The current multi-agent state
|
|
123
|
+
* @param _options - Per-invocation options (unused by orchestrator nodes)
|
|
109
124
|
* @returns Async generator yielding streaming events and returning the orchestrator's content
|
|
110
125
|
*/
|
|
111
|
-
handle(
|
|
126
|
+
handle(input: MultiAgentInput, state: MultiAgentState, _options?: NodeInputOptions): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
|
|
112
127
|
}
|
|
113
128
|
/**
|
|
114
129
|
* A node definition accepted by orchestration constructors.
|
|
115
130
|
*
|
|
116
|
-
* Pass an {@link
|
|
131
|
+
* Pass an {@link InvokableAgent} or {@link MultiAgent} directly for the simple case,
|
|
117
132
|
* use typed options objects for per-node configuration, or provide pre-built
|
|
118
133
|
* {@link Node} instances for full control.
|
|
119
134
|
*/
|
|
120
|
-
export type NodeDefinition =
|
|
121
|
-
type: 'agent';
|
|
122
|
-
}) | (MultiAgentNodeOptions & {
|
|
123
|
-
type: 'multiAgent';
|
|
124
|
-
});
|
|
135
|
+
export type NodeDefinition = InvokableAgent | MultiAgent | Node | AgentNodeOptions | MultiAgentNodeOptions;
|
|
125
136
|
//# sourceMappingURL=nodes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/multiagent/nodes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/multiagent/nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { Agent } from '../agent/agent.js';
|
|
1
2
|
import { takeSnapshot, loadSnapshot } from '../agent/snapshot.js';
|
|
2
3
|
import { NodeStreamUpdateEvent, NodeResultEvent } from './events.js';
|
|
3
4
|
import { NodeResult, Status } from './state.js';
|
|
4
5
|
import { logger } from '../logging/logger.js';
|
|
6
|
+
import { normalizeError } from '../errors.js';
|
|
5
7
|
/**
|
|
6
8
|
* Abstract base class for all multi-agent orchestration nodes.
|
|
7
9
|
*
|
|
@@ -27,17 +29,18 @@ export class Node {
|
|
|
27
29
|
* Execute the node. Handles duration measurement, error capture,
|
|
28
30
|
* and delegates to handle() for node-specific logic.
|
|
29
31
|
*
|
|
30
|
-
* @param
|
|
32
|
+
* @param input - Input to pass to the node (string or content blocks)
|
|
31
33
|
* @param state - The current multi-agent state
|
|
34
|
+
* @param options - Per-invocation options from the orchestrator
|
|
32
35
|
* @returns Async generator yielding streaming events and returning a NodeResult
|
|
33
36
|
*/
|
|
34
|
-
async *stream(
|
|
37
|
+
async *stream(input, state, options) {
|
|
35
38
|
const nodeState = state.node(this.id);
|
|
36
39
|
nodeState.status = Status.EXECUTING;
|
|
37
40
|
nodeState.startTime = Date.now();
|
|
38
41
|
let result;
|
|
39
42
|
try {
|
|
40
|
-
const update = yield* this.handle(
|
|
43
|
+
const update = yield* this.handle(input, state, options);
|
|
41
44
|
result = new NodeResult({
|
|
42
45
|
nodeId: this.id,
|
|
43
46
|
status: Status.COMPLETED,
|
|
@@ -51,7 +54,7 @@ export class Node {
|
|
|
51
54
|
nodeId: this.id,
|
|
52
55
|
status: Status.FAILED,
|
|
53
56
|
duration: Date.now() - nodeState.startTime,
|
|
54
|
-
error:
|
|
57
|
+
error: normalizeError(error),
|
|
55
58
|
});
|
|
56
59
|
logger.warn(`node_id=<${this.id}>, error=<${result.error?.message}> | node execution failed`);
|
|
57
60
|
}
|
|
@@ -59,22 +62,22 @@ export class Node {
|
|
|
59
62
|
nodeState.status = result.status;
|
|
60
63
|
nodeState.results.push(result);
|
|
61
64
|
}
|
|
62
|
-
yield new NodeResultEvent({ nodeId: this.id, nodeType: this.type, result });
|
|
65
|
+
yield new NodeResultEvent({ nodeId: this.id, nodeType: this.type, state, result });
|
|
63
66
|
return result;
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
69
|
/**
|
|
67
|
-
* Node that wraps an
|
|
70
|
+
* Node that wraps an {@link InvokableAgent} instance for multi-agent orchestration.
|
|
68
71
|
*
|
|
69
|
-
* Each execution is isolated
|
|
70
|
-
* is unchanged after the node completes.
|
|
72
|
+
* Each execution is isolated. When the wrapped agent is an {@link Agent} instance,
|
|
73
|
+
* its internal state is snapshot/restored so it remains unchanged after the node completes.
|
|
71
74
|
*/
|
|
72
75
|
export class AgentNode extends Node {
|
|
73
76
|
type = 'agentNode';
|
|
74
77
|
_agent;
|
|
75
78
|
constructor(options) {
|
|
76
79
|
const { agent, ...config } = options;
|
|
77
|
-
super(agent.
|
|
80
|
+
super(agent.id, {
|
|
78
81
|
...config,
|
|
79
82
|
...(agent.description !== undefined && { description: agent.description }),
|
|
80
83
|
});
|
|
@@ -87,29 +90,41 @@ export class AgentNode extends Node {
|
|
|
87
90
|
* Executes the wrapped agent, yielding each agent streaming event
|
|
88
91
|
* wrapped in a {@link NodeStreamUpdateEvent}.
|
|
89
92
|
*
|
|
90
|
-
* @param
|
|
93
|
+
* @param input - Input to pass to the agent
|
|
91
94
|
* @param state - The current multi-agent state
|
|
95
|
+
* @param options - Per-invocation options from the orchestrator
|
|
92
96
|
* @returns Async generator yielding streaming events and returning the agent's content blocks
|
|
93
97
|
*/
|
|
94
|
-
async *handle(
|
|
95
|
-
|
|
98
|
+
async *handle(input, state, options) {
|
|
99
|
+
// Only Agent instances support snapshot/restore for state isolation
|
|
100
|
+
const snapshot = this._agent instanceof Agent ? takeSnapshot(this._agent, { include: ['messages', 'state'] }) : undefined;
|
|
96
101
|
try {
|
|
97
|
-
const
|
|
98
|
-
...(
|
|
102
|
+
const invokeOptions = {
|
|
103
|
+
...(options?.structuredOutputSchema && { structuredOutputSchema: options.structuredOutputSchema }),
|
|
99
104
|
};
|
|
100
|
-
const gen = this._agent.stream(
|
|
105
|
+
const gen = this._agent.stream(input, invokeOptions);
|
|
101
106
|
let next = await gen.next();
|
|
102
107
|
while (!next.done) {
|
|
103
|
-
yield new NodeStreamUpdateEvent({
|
|
108
|
+
yield new NodeStreamUpdateEvent({
|
|
109
|
+
nodeId: this.id,
|
|
110
|
+
nodeType: this.type,
|
|
111
|
+
state,
|
|
112
|
+
inner: this._agent instanceof Agent
|
|
113
|
+
? { source: 'agent', event: next.value }
|
|
114
|
+
: { source: 'custom', event: next.value },
|
|
115
|
+
});
|
|
104
116
|
next = await gen.next();
|
|
105
117
|
}
|
|
106
118
|
return {
|
|
107
119
|
content: next.value.lastMessage.content,
|
|
108
120
|
...('structuredOutput' in next.value && { structuredOutput: next.value.structuredOutput }),
|
|
121
|
+
...(next.value.metrics?.accumulatedUsage && { usage: next.value.metrics.accumulatedUsage }),
|
|
109
122
|
};
|
|
110
123
|
}
|
|
111
124
|
finally {
|
|
112
|
-
|
|
125
|
+
if (snapshot) {
|
|
126
|
+
loadSnapshot(this._agent, snapshot);
|
|
127
|
+
}
|
|
113
128
|
}
|
|
114
129
|
}
|
|
115
130
|
}
|
|
@@ -136,12 +151,13 @@ export class MultiAgentNode extends Node {
|
|
|
136
151
|
* pass through as-is; all other events are wrapped in a new
|
|
137
152
|
* {@link NodeStreamUpdateEvent} tagged with this node's identity.
|
|
138
153
|
*
|
|
139
|
-
* @param
|
|
140
|
-
* @param
|
|
154
|
+
* @param input - Input to pass to the orchestrator
|
|
155
|
+
* @param state - The current multi-agent state
|
|
156
|
+
* @param _options - Per-invocation options (unused by orchestrator nodes)
|
|
141
157
|
* @returns Async generator yielding streaming events and returning the orchestrator's content
|
|
142
158
|
*/
|
|
143
|
-
async *handle(
|
|
144
|
-
const gen = this._orchestrator.stream(
|
|
159
|
+
async *handle(input, state, _options) {
|
|
160
|
+
const gen = this._orchestrator.stream(input);
|
|
145
161
|
let next = await gen.next();
|
|
146
162
|
while (!next.done) {
|
|
147
163
|
const event = next.value;
|
|
@@ -149,11 +165,22 @@ export class MultiAgentNode extends Node {
|
|
|
149
165
|
yield event;
|
|
150
166
|
}
|
|
151
167
|
else {
|
|
152
|
-
yield new NodeStreamUpdateEvent({
|
|
168
|
+
yield new NodeStreamUpdateEvent({
|
|
169
|
+
nodeId: this.id,
|
|
170
|
+
nodeType: this.type,
|
|
171
|
+
state,
|
|
172
|
+
inner: { source: 'multiAgent', event },
|
|
173
|
+
});
|
|
153
174
|
}
|
|
154
175
|
next = await gen.next();
|
|
155
176
|
}
|
|
156
|
-
|
|
177
|
+
const innerResult = next.value;
|
|
178
|
+
return {
|
|
179
|
+
content: innerResult.content,
|
|
180
|
+
usage: innerResult.usage,
|
|
181
|
+
...(innerResult.status !== Status.COMPLETED && { status: innerResult.status }),
|
|
182
|
+
...(innerResult.error && { error: innerResult.error }),
|
|
183
|
+
};
|
|
157
184
|
}
|
|
158
185
|
}
|
|
159
186
|
//# sourceMappingURL=nodes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/multiagent/nodes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/multiagent/nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin interface and registry for extending multi-agent orchestrator functionality.
|
|
3
|
+
*
|
|
4
|
+
* This module defines the MultiAgentPlugin abstract class and MultiAgentPluginRegistry,
|
|
5
|
+
* which provide a composable way to add behavior to multi-agent orchestrators (e.g. Swarm, Graph)
|
|
6
|
+
* through hook registration and custom initialization.
|
|
7
|
+
*/
|
|
8
|
+
import type { MultiAgent } from './multiagent.js';
|
|
9
|
+
/**
|
|
10
|
+
* Abstract base class for plugins that extend multi-agent orchestrator functionality.
|
|
11
|
+
*
|
|
12
|
+
* MultiAgentPlugins provide a composable way to add behavior to orchestrators
|
|
13
|
+
* by registering hook callbacks in their `initMultiAgent` method.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* class LoggingPlugin extends MultiAgentPlugin {
|
|
18
|
+
* get name(): string {
|
|
19
|
+
* return 'logging-plugin'
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* override initMultiAgent(orchestrator: MultiAgent): void {
|
|
23
|
+
* orchestrator.addHook(BeforeNodeCallEvent, (event) => {
|
|
24
|
+
* console.log(`Node ${event.nodeId} starting`)
|
|
25
|
+
* })
|
|
26
|
+
* }
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* const swarm = new Swarm({
|
|
30
|
+
* nodes: [agentA, agentB],
|
|
31
|
+
* start: 'agentA',
|
|
32
|
+
* plugins: [new LoggingPlugin()],
|
|
33
|
+
* })
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare abstract class MultiAgentPlugin {
|
|
37
|
+
/**
|
|
38
|
+
* A stable string identifier for the plugin.
|
|
39
|
+
* Used for logging, duplicate detection, and plugin management.
|
|
40
|
+
*/
|
|
41
|
+
abstract readonly name: string;
|
|
42
|
+
/**
|
|
43
|
+
* Initialize the plugin with the orchestrator instance.
|
|
44
|
+
*
|
|
45
|
+
* Override this method to register hooks and perform custom initialization.
|
|
46
|
+
*
|
|
47
|
+
* @param orchestrator - The orchestrator this plugin is being attached to
|
|
48
|
+
*/
|
|
49
|
+
abstract initMultiAgent(orchestrator: MultiAgent): void | Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Registry for managing plugins attached to a multi-agent orchestrator.
|
|
53
|
+
*
|
|
54
|
+
* Holds pending plugins and initializes them on first use.
|
|
55
|
+
* Handles duplicate detection and calls each plugin's initMultiAgent method.
|
|
56
|
+
*/
|
|
57
|
+
export declare class MultiAgentPluginRegistry {
|
|
58
|
+
private readonly _plugins;
|
|
59
|
+
private readonly _pending;
|
|
60
|
+
constructor(plugins?: MultiAgentPlugin[]);
|
|
61
|
+
/**
|
|
62
|
+
* Initialize all pending plugins with the orchestrator.
|
|
63
|
+
* Safe to call multiple times — only runs once.
|
|
64
|
+
*
|
|
65
|
+
* @param orchestrator - The orchestrator instance to initialize plugins with
|
|
66
|
+
*/
|
|
67
|
+
initialize(orchestrator: MultiAgent): Promise<void>;
|
|
68
|
+
private _addAndInit;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=plugins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../src/multiagent/plugins.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,8BAAsB,gBAAgB;IACpC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAE9B;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CACxE;AAED;;;;;GAKG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;gBAEjC,OAAO,GAAE,gBAAgB,EAAO;IAK5C;;;;;OAKG;IACG,UAAU,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAO3C,WAAW;CAO1B"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin interface and registry for extending multi-agent orchestrator functionality.
|
|
3
|
+
*
|
|
4
|
+
* This module defines the MultiAgentPlugin abstract class and MultiAgentPluginRegistry,
|
|
5
|
+
* which provide a composable way to add behavior to multi-agent orchestrators (e.g. Swarm, Graph)
|
|
6
|
+
* through hook registration and custom initialization.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Abstract base class for plugins that extend multi-agent orchestrator functionality.
|
|
10
|
+
*
|
|
11
|
+
* MultiAgentPlugins provide a composable way to add behavior to orchestrators
|
|
12
|
+
* by registering hook callbacks in their `initMultiAgent` method.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* class LoggingPlugin extends MultiAgentPlugin {
|
|
17
|
+
* get name(): string {
|
|
18
|
+
* return 'logging-plugin'
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* override initMultiAgent(orchestrator: MultiAgent): void {
|
|
22
|
+
* orchestrator.addHook(BeforeNodeCallEvent, (event) => {
|
|
23
|
+
* console.log(`Node ${event.nodeId} starting`)
|
|
24
|
+
* })
|
|
25
|
+
* }
|
|
26
|
+
* }
|
|
27
|
+
*
|
|
28
|
+
* const swarm = new Swarm({
|
|
29
|
+
* nodes: [agentA, agentB],
|
|
30
|
+
* start: 'agentA',
|
|
31
|
+
* plugins: [new LoggingPlugin()],
|
|
32
|
+
* })
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export class MultiAgentPlugin {
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Registry for managing plugins attached to a multi-agent orchestrator.
|
|
39
|
+
*
|
|
40
|
+
* Holds pending plugins and initializes them on first use.
|
|
41
|
+
* Handles duplicate detection and calls each plugin's initMultiAgent method.
|
|
42
|
+
*/
|
|
43
|
+
export class MultiAgentPluginRegistry {
|
|
44
|
+
_plugins;
|
|
45
|
+
_pending;
|
|
46
|
+
constructor(plugins = []) {
|
|
47
|
+
this._plugins = new Map();
|
|
48
|
+
this._pending = [...plugins];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Initialize all pending plugins with the orchestrator.
|
|
52
|
+
* Safe to call multiple times — only runs once.
|
|
53
|
+
*
|
|
54
|
+
* @param orchestrator - The orchestrator instance to initialize plugins with
|
|
55
|
+
*/
|
|
56
|
+
async initialize(orchestrator) {
|
|
57
|
+
while (this._pending.length > 0) {
|
|
58
|
+
const plugin = this._pending.shift();
|
|
59
|
+
await this._addAndInit(plugin, orchestrator);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async _addAndInit(plugin, orchestrator) {
|
|
63
|
+
if (this._plugins.has(plugin.name)) {
|
|
64
|
+
throw new Error(`plugin_name=<${plugin.name}> | plugin already registered`);
|
|
65
|
+
}
|
|
66
|
+
this._plugins.set(plugin.name, plugin);
|
|
67
|
+
await plugin.initMultiAgent(orchestrator);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=plugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../src/multiagent/plugins.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAgB,gBAAgB;CAerC;AAED;;;;;GAKG;AACH,MAAM,OAAO,wBAAwB;IAClB,QAAQ,CAA+B;IACvC,QAAQ,CAAoB;IAE7C,YAAY,UAA8B,EAAE;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,YAAwB;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAG,CAAA;YACrC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAAwB,EAAE,YAAwB;QAC1E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,IAAI,+BAA+B,CAAC,CAAA;QAC7E,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACtC,MAAM,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;IAC3C,CAAC;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { StateStore } from '../state-store.js';
|
|
2
2
|
import type { ContentBlock } from '../types/messages.js';
|
|
3
|
+
import type { Usage } from '../models/streaming.js';
|
|
3
4
|
import type { z } from 'zod';
|
|
4
5
|
/**
|
|
5
6
|
* Execution lifecycle status shared across all multi-agent patterns.
|
|
@@ -37,6 +38,8 @@ export declare class NodeResult {
|
|
|
37
38
|
readonly error?: Error;
|
|
38
39
|
/** Validated structured output, if a schema was provided. */
|
|
39
40
|
readonly structuredOutput?: z.output<z.ZodType>;
|
|
41
|
+
/** Token usage from the node execution. */
|
|
42
|
+
readonly usage?: Usage;
|
|
40
43
|
constructor(data: {
|
|
41
44
|
nodeId: string;
|
|
42
45
|
status: ResultStatus;
|
|
@@ -44,6 +47,7 @@ export declare class NodeResult {
|
|
|
44
47
|
content?: ContentBlock[];
|
|
45
48
|
error?: Error;
|
|
46
49
|
structuredOutput?: z.output<z.ZodType>;
|
|
50
|
+
usage?: Usage;
|
|
47
51
|
});
|
|
48
52
|
}
|
|
49
53
|
/**
|
|
@@ -80,6 +84,8 @@ export declare class MultiAgentResult {
|
|
|
80
84
|
readonly content: ContentBlock[];
|
|
81
85
|
readonly duration: number;
|
|
82
86
|
readonly error?: Error;
|
|
87
|
+
/** Aggregated token usage across all node results. */
|
|
88
|
+
readonly usage: Usage;
|
|
83
89
|
constructor(data: {
|
|
84
90
|
status?: ResultStatus;
|
|
85
91
|
results: NodeResult[];
|
|
@@ -89,6 +95,8 @@ export declare class MultiAgentResult {
|
|
|
89
95
|
});
|
|
90
96
|
/** Derives the aggregate status from individual node results. */
|
|
91
97
|
private _resolveStatus;
|
|
98
|
+
/** Sums token usage across all node results. */
|
|
99
|
+
private _aggregateNodeUsage;
|
|
92
100
|
}
|
|
93
101
|
/**
|
|
94
102
|
* Shared state for multi-agent orchestration patterns.
|
|
@@ -101,13 +109,10 @@ export declare class MultiAgentState {
|
|
|
101
109
|
/** All node results in completion order. */
|
|
102
110
|
readonly results: NodeResult[];
|
|
103
111
|
/** App-level key-value state accessible from hooks, edge handlers, and custom nodes. */
|
|
104
|
-
readonly app:
|
|
105
|
-
/** Structured output schema to apply to node invocations. */
|
|
106
|
-
readonly structuredOutputSchema?: z.ZodSchema;
|
|
112
|
+
readonly app: StateStore;
|
|
107
113
|
private readonly _nodes;
|
|
108
114
|
constructor(data?: {
|
|
109
115
|
nodeIds?: string[];
|
|
110
|
-
structuredOutputSchema?: z.ZodSchema;
|
|
111
116
|
});
|
|
112
117
|
/**
|
|
113
118
|
* Get the state of a specific node by ID.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/multiagent/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/multiagent/state.ts"],"names":[],"mappings":"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"}
|