@strands-agents/sdk 0.5.0 → 0.7.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 +64 -0
- package/dist/src/__fixtures__/agent-helpers.d.ts +37 -4
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/agent-helpers.js +31 -4
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
- package/dist/src/__fixtures__/metrics-helpers.d.ts +55 -0
- package/dist/src/__fixtures__/metrics-helpers.d.ts.map +1 -0
- package/dist/src/__fixtures__/metrics-helpers.js +57 -0
- package/dist/src/__fixtures__/metrics-helpers.js.map +1 -0
- 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 +25 -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} +8 -5
- package/dist/src/__fixtures__/mock-plugin.js.map +1 -0
- package/dist/src/__fixtures__/mock-storage-provider.d.ts +5 -0
- package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-storage-provider.js +23 -6
- package/dist/src/__fixtures__/mock-storage-provider.js.map +1 -1
- package/dist/src/__fixtures__/slim-types.d.ts +2 -1
- package/dist/src/__fixtures__/slim-types.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.js +5 -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 +45 -15
- 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__/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 +42 -0
- package/dist/src/a2a/events.d.ts.map +1 -0
- package/dist/src/a2a/events.js +35 -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 +16 -0
- package/dist/src/a2a/index.d.ts.map +1 -0
- package/dist/src/a2a/index.js +16 -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 +87 -51
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.test.js +176 -101
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.tracer.test.js +10 -10
- package/dist/src/agent/__tests__/agent.tracer.test.js.map +1 -1
- package/dist/src/agent/__tests__/snapshot.test.js +11 -11
- package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
- package/dist/src/agent/agent.d.ts +71 -58
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +177 -93
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/snapshot.d.ts.map +1 -1
- package/dist/src/agent/snapshot.js +3 -2
- 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 +84 -21
- 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 +44 -36
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
- package/dist/src/errors.d.ts +6 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +9 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hooks/__tests__/events.test.js +2 -0
- package/dist/src/hooks/__tests__/events.test.js.map +1 -1
- package/dist/src/hooks/__tests__/registry.test.js +10 -154
- package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
- package/dist/src/hooks/events.d.ts +60 -44
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +11 -11
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/index.d.ts +4 -4
- 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 +30 -15
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +21 -8
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp.d.ts +38 -0
- package/dist/src/mcp.d.ts.map +1 -1
- package/dist/src/mcp.js +23 -6
- package/dist/src/mcp.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 +78 -1
- package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +2050 -131
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/gemini.test.js +100 -1
- package/dist/src/models/__tests__/gemini.test.js.map +1 -1
- package/dist/src/models/__tests__/model.test.js +131 -0
- package/dist/src/models/__tests__/model.test.js.map +1 -1
- package/dist/src/models/__tests__/openai.test.js +184 -32
- package/dist/src/models/__tests__/openai.test.js.map +1 -1
- package/dist/src/models/__tests__/streaming.test.d.ts +2 -0
- package/dist/src/models/__tests__/streaming.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/streaming.test.js +50 -0
- package/dist/src/models/__tests__/streaming.test.js.map +1 -0
- package/dist/src/models/anthropic.d.ts.map +1 -1
- package/dist/src/models/anthropic.js +6 -7
- package/dist/src/models/anthropic.js.map +1 -1
- package/dist/src/models/bedrock.d.ts +144 -11
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +416 -28
- package/dist/src/models/bedrock.js.map +1 -1
- package/dist/src/models/gemini/adapters.d.ts.map +1 -1
- package/dist/src/models/gemini/adapters.js +65 -14
- package/dist/src/models/gemini/adapters.js.map +1 -1
- package/dist/src/models/model.d.ts +18 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +57 -11
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/openai.d.ts +15 -0
- package/dist/src/models/openai.d.ts.map +1 -1
- package/dist/src/models/openai.js +108 -64
- package/dist/src/models/openai.js.map +1 -1
- package/dist/src/models/streaming.d.ts +88 -2
- package/dist/src/models/streaming.d.ts.map +1 -1
- package/dist/src/models/streaming.js +26 -0
- package/dist/src/models/streaming.js.map +1 -1
- package/dist/src/multiagent/__tests__/events.test.js +41 -8
- package/dist/src/multiagent/__tests__/events.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/graph.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/graph.test.js +453 -0
- package/dist/src/multiagent/__tests__/graph.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.js +34 -16
- package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/queue.test.js +22 -0
- package/dist/src/multiagent/__tests__/queue.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/swarm.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/swarm.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/swarm.test.js +264 -0
- package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -0
- package/dist/src/multiagent/edge.d.ts +9 -2
- package/dist/src/multiagent/edge.d.ts.map +1 -1
- package/dist/src/multiagent/events.d.ts +63 -15
- package/dist/src/multiagent/events.d.ts.map +1 -1
- package/dist/src/multiagent/events.js +28 -3
- package/dist/src/multiagent/events.js.map +1 -1
- package/dist/src/multiagent/graph.d.ts +135 -0
- package/dist/src/multiagent/graph.d.ts.map +1 -0
- package/dist/src/multiagent/graph.js +400 -0
- package/dist/src/multiagent/graph.js.map +1 -0
- package/dist/src/multiagent/index.d.ts +8 -3
- package/dist/src/multiagent/index.d.ts.map +1 -1
- package/dist/src/multiagent/index.js +3 -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 +24 -25
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +42 -15
- 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/queue.d.ts +6 -0
- package/dist/src/multiagent/queue.d.ts.map +1 -1
- package/dist/src/multiagent/queue.js +13 -0
- package/dist/src/multiagent/queue.js.map +1 -1
- package/dist/src/multiagent/state.d.ts +4 -2
- package/dist/src/multiagent/state.d.ts.map +1 -1
- package/dist/src/multiagent/state.js +5 -2
- package/dist/src/multiagent/state.js.map +1 -1
- package/dist/src/multiagent/swarm.d.ts +112 -0
- package/dist/src/multiagent/swarm.d.ts.map +1 -0
- package/dist/src/multiagent/swarm.js +256 -0
- package/dist/src/multiagent/swarm.js.map +1 -0
- 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/registry/__tests__/tool-registry.test.d.ts +2 -0
- package/dist/src/registry/__tests__/tool-registry.test.d.ts.map +1 -0
- package/dist/src/registry/__tests__/tool-registry.test.js +124 -0
- package/dist/src/registry/__tests__/tool-registry.test.js.map +1 -0
- package/dist/src/registry/tool-registry.d.ts +32 -20
- package/dist/src/registry/tool-registry.d.ts.map +1 -1
- package/dist/src/registry/tool-registry.js +60 -158
- package/dist/src/registry/tool-registry.js.map +1 -1
- package/dist/src/session/__tests__/file-storage.test.node.js +75 -15
- package/dist/src/session/__tests__/file-storage.test.node.js.map +1 -1
- package/dist/src/session/__tests__/s3-storage.test.d.ts +2 -0
- package/dist/src/session/__tests__/s3-storage.test.d.ts.map +1 -0
- package/dist/src/session/__tests__/{s3-storage.test.node.js → s3-storage.test.js} +161 -75
- package/dist/src/session/__tests__/s3-storage.test.js.map +1 -0
- package/dist/src/session/__tests__/session-manager.test.d.ts +2 -0
- package/dist/src/session/__tests__/session-manager.test.d.ts.map +1 -0
- package/dist/src/session/__tests__/session-manager.test.js +443 -0
- package/dist/src/session/__tests__/session-manager.test.js.map +1 -0
- package/dist/src/session/__tests__/validation.test.js +28 -1
- package/dist/src/session/__tests__/validation.test.js.map +1 -1
- package/dist/src/session/file-storage.d.ts +53 -27
- package/dist/src/session/file-storage.d.ts.map +1 -1
- package/dist/src/session/file-storage.js +103 -52
- package/dist/src/session/file-storage.js.map +1 -1
- package/dist/src/session/index.d.ts +6 -14
- package/dist/src/session/index.d.ts.map +1 -1
- package/dist/src/session/index.js +4 -13
- package/dist/src/session/index.js.map +1 -1
- package/dist/src/session/s3-storage.d.ts +49 -20
- package/dist/src/session/s3-storage.d.ts.map +1 -1
- package/dist/src/session/s3-storage.js +120 -35
- package/dist/src/session/s3-storage.js.map +1 -1
- package/dist/src/session/session-manager.d.ts +87 -0
- package/dist/src/session/session-manager.d.ts.map +1 -0
- package/dist/src/session/session-manager.js +128 -0
- package/dist/src/session/session-manager.js.map +1 -0
- package/dist/src/session/storage.d.ts +20 -12
- package/dist/src/session/storage.d.ts.map +1 -1
- package/dist/src/session/types.d.ts +8 -20
- package/dist/src/session/types.d.ts.map +1 -1
- package/dist/src/session/validation.d.ts +7 -0
- package/dist/src/session/validation.d.ts.map +1 -1
- package/dist/src/session/validation.js +12 -0
- package/dist/src/session/validation.js.map +1 -1
- package/dist/src/{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/structured-output/__tests__/context.test.js +13 -13
- package/dist/src/structured-output/__tests__/context.test.js.map +1 -1
- package/dist/src/structured-output/context.js +1 -1
- package/dist/src/structured-output/context.js.map +1 -1
- package/dist/src/telemetry/__tests__/config.test.d.ts +2 -0
- package/dist/src/telemetry/__tests__/config.test.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.js +64 -0
- package/dist/src/telemetry/__tests__/config.test.js.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.node.js +66 -36
- package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -1
- package/dist/src/telemetry/__tests__/meter.test.d.ts +2 -0
- package/dist/src/telemetry/__tests__/meter.test.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/meter.test.js +624 -0
- package/dist/src/telemetry/__tests__/meter.test.js.map +1 -0
- package/dist/src/telemetry/__tests__/tracer.test.node.js +123 -2
- package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -1
- package/dist/src/telemetry/config.d.ts +104 -23
- package/dist/src/telemetry/config.d.ts.map +1 -1
- package/dist/src/telemetry/config.js +152 -43
- 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 +296 -0
- package/dist/src/telemetry/meter.d.ts.map +1 -0
- package/dist/src/telemetry/meter.js +365 -0
- package/dist/src/telemetry/meter.js.map +1 -0
- package/dist/src/telemetry/tracer.d.ts +27 -0
- package/dist/src/telemetry/tracer.d.ts.map +1 -1
- package/dist/src/telemetry/tracer.js +79 -4
- package/dist/src/telemetry/tracer.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +2 -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__/tool-factory.test.d.ts +2 -0
- package/dist/src/tools/__tests__/tool-factory.test.d.ts.map +1 -0
- package/dist/src/tools/__tests__/tool-factory.test.js +98 -0
- package/dist/src/tools/__tests__/tool-factory.test.js.map +1 -0
- package/dist/src/tools/__tests__/tool.test.js +22 -1
- package/dist/src/tools/__tests__/tool.test.js.map +1 -1
- package/dist/src/tools/__tests__/zod-tool.test-d.js +1 -1
- package/dist/src/tools/__tests__/zod-tool.test-d.js.map +1 -1
- package/dist/src/tools/__tests__/zod-tool.test.js +3 -4
- package/dist/src/tools/__tests__/zod-tool.test.js.map +1 -1
- package/dist/src/tools/function-tool.d.ts +26 -3
- package/dist/src/tools/function-tool.d.ts.map +1 -1
- package/dist/src/tools/function-tool.js +88 -3
- package/dist/src/tools/function-tool.js.map +1 -1
- package/dist/src/tools/tool-factory.d.ts +22 -0
- package/dist/src/tools/tool-factory.d.ts.map +1 -0
- package/dist/src/tools/tool-factory.js +55 -0
- package/dist/src/tools/tool-factory.js.map +1 -0
- package/dist/src/tools/tool.d.ts +2 -2
- package/dist/src/tools/tool.d.ts.map +1 -1
- package/dist/src/tools/zod-tool.d.ts +55 -52
- package/dist/src/tools/zod-tool.d.ts.map +1 -1
- package/dist/src/tools/zod-tool.js +7 -61
- package/dist/src/tools/zod-tool.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/agent.test.js +11 -0
- package/dist/src/types/__tests__/agent.test.js.map +1 -1
- package/dist/src/types/__tests__/citations.test.d.ts +2 -0
- package/dist/src/types/__tests__/citations.test.d.ts.map +1 -0
- package/dist/src/types/__tests__/citations.test.js +104 -0
- package/dist/src/types/__tests__/citations.test.js.map +1 -0
- package/dist/src/types/__tests__/media.test.js +22 -16
- package/dist/src/types/__tests__/media.test.js.map +1 -1
- package/dist/src/types/__tests__/messages.test.js +26 -0
- package/dist/src/types/__tests__/messages.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +82 -7
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +9 -0
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/citations.d.ts +180 -0
- package/dist/src/types/citations.d.ts.map +1 -0
- package/dist/src/types/citations.js +45 -0
- package/dist/src/types/citations.js.map +1 -0
- package/dist/src/types/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 +23 -5
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js +26 -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 +5 -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 +1 -2
- package/dist/src/vended-tools/bash/bash.js.map +1 -1
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.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 +3 -3
- 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.d.ts.map +1 -0
- package/dist/src/vended-tools/{http_request → http-request}/http-request.js +1 -2
- package/dist/src/vended-tools/http-request/http-request.js.map +1 -0
- 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.d.ts +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 +66 -12
- 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/app-state.d.ts.map +0 -1
- package/dist/src/app-state.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/registry/registry.d.ts +0 -117
- package/dist/src/registry/registry.d.ts.map +0 -1
- package/dist/src/registry/registry.js +0 -298
- package/dist/src/registry/registry.js.map +0 -1
- package/dist/src/session/__tests__/s3-storage.test.node.d.ts +0 -2
- package/dist/src/session/__tests__/s3-storage.test.node.d.ts.map +0 -1
- package/dist/src/session/__tests__/s3-storage.test.node.js.map +0 -1
- 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/http-request.d.ts.map +0 -1
- package/dist/src/vended-tools/http_request/http-request.js.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}/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,400 @@
|
|
|
1
|
+
import { TextBlock, contentBlockFromData } from '../types/messages.js';
|
|
2
|
+
import { HookableEvent } from '../hooks/events.js';
|
|
3
|
+
import { HookRegistryImplementation } from '../hooks/registry.js';
|
|
4
|
+
import { MultiAgentPluginRegistry } from './plugins.js';
|
|
5
|
+
import { AgentNode, MultiAgentNode, Node } from './nodes.js';
|
|
6
|
+
import { MultiAgentState, MultiAgentResult, NodeResult, Status } from './state.js';
|
|
7
|
+
import { Swarm } from './swarm.js';
|
|
8
|
+
import { AfterMultiAgentInvocationEvent, AfterNodeCallEvent, BeforeMultiAgentInvocationEvent, BeforeNodeCallEvent, MultiAgentHandoffEvent, MultiAgentInitializedEvent, MultiAgentResultEvent, NodeCancelEvent, } from './events.js';
|
|
9
|
+
import { Edge } from './edge.js';
|
|
10
|
+
import { Queue } from './queue.js';
|
|
11
|
+
/**
|
|
12
|
+
* Directed graph orchestration pattern.
|
|
13
|
+
*
|
|
14
|
+
* Agents execute as nodes in a dependency graph, with edges defining execution order
|
|
15
|
+
* and optional conditions controlling routing. Source nodes (those with no incoming edges)
|
|
16
|
+
* run first, and downstream nodes execute once all their dependencies complete. Parallel
|
|
17
|
+
* execution is supported up to a configurable concurrency limit.
|
|
18
|
+
*
|
|
19
|
+
* Key design choices vs the Python SDK:
|
|
20
|
+
* - Construction uses a declarative options object rather than a mutable GraphBuilder.
|
|
21
|
+
* Nodes and edges are passed directly to the constructor.
|
|
22
|
+
* - Dependency resolution uses AND semantics: a node runs only when all incoming edges
|
|
23
|
+
* are satisfied. Python uses OR semantics, firing a node when any single incoming
|
|
24
|
+
* edge from the completed batch is satisfied.
|
|
25
|
+
* - Nodes are launched individually as they become ready (up to maxConcurrency). Python
|
|
26
|
+
* executes in discrete batches, waiting for the entire batch to complete before
|
|
27
|
+
* scheduling the next set of nodes.
|
|
28
|
+
* - Agent nodes are stateless by default (snapshot/restore on each execution). Python
|
|
29
|
+
* accumulates agent state across executions unless `reset_on_revisit` is enabled.
|
|
30
|
+
* - Node failures produce a FAILED result, allowing parallel paths to continue.
|
|
31
|
+
* MultiAgent-level limits (maxSteps) throw exceptions. Python does the inverse:
|
|
32
|
+
* node failures throw exceptions (fail-fast), while limit violations return a
|
|
33
|
+
* FAILED result.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const graph = new Graph({
|
|
38
|
+
* nodes: [researcher, writer],
|
|
39
|
+
* edges: [['researcher', 'writer']],
|
|
40
|
+
* })
|
|
41
|
+
*
|
|
42
|
+
* const result = await graph.invoke('Explain quantum computing')
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export class Graph {
|
|
46
|
+
id;
|
|
47
|
+
nodes;
|
|
48
|
+
edges;
|
|
49
|
+
config;
|
|
50
|
+
_pluginRegistry;
|
|
51
|
+
_hookRegistry;
|
|
52
|
+
_sources;
|
|
53
|
+
_initialized;
|
|
54
|
+
constructor(options) {
|
|
55
|
+
const { id, nodes, edges, sources, plugins, ...config } = options;
|
|
56
|
+
this.id = id ?? 'graph';
|
|
57
|
+
this.config = {
|
|
58
|
+
maxConcurrency: config.maxConcurrency ?? Infinity,
|
|
59
|
+
maxSteps: config.maxSteps ?? Infinity,
|
|
60
|
+
};
|
|
61
|
+
this._validateConfig();
|
|
62
|
+
this.nodes = this._resolveNodes(nodes);
|
|
63
|
+
this.edges = this._resolveEdges(edges);
|
|
64
|
+
this._sources = this._resolveSources(sources);
|
|
65
|
+
this._validateSources();
|
|
66
|
+
this._hookRegistry = new HookRegistryImplementation();
|
|
67
|
+
this._pluginRegistry = new MultiAgentPluginRegistry(plugins);
|
|
68
|
+
this._initialized = false;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Initialize the graph. Invokes the {@link MultiAgentInitializedEvent} callback.
|
|
72
|
+
* Called automatically on first invocation.
|
|
73
|
+
*/
|
|
74
|
+
async initialize() {
|
|
75
|
+
if (this._initialized)
|
|
76
|
+
return;
|
|
77
|
+
await this._pluginRegistry.initialize(this);
|
|
78
|
+
await this._hookRegistry.invokeCallbacks(new MultiAgentInitializedEvent({ orchestrator: this }));
|
|
79
|
+
this._initialized = true;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Invoke graph and return final result (consumes stream).
|
|
83
|
+
*
|
|
84
|
+
* @param input - The input to pass to entry point nodes
|
|
85
|
+
* @returns Promise resolving to the final MultiAgentResult
|
|
86
|
+
*/
|
|
87
|
+
async invoke(input) {
|
|
88
|
+
const gen = this.stream(input);
|
|
89
|
+
let next = await gen.next();
|
|
90
|
+
while (!next.done) {
|
|
91
|
+
next = await gen.next();
|
|
92
|
+
}
|
|
93
|
+
return next.value;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Register a hook callback for a specific graph event type.
|
|
97
|
+
*
|
|
98
|
+
* @param eventType - The event class constructor to register the callback for
|
|
99
|
+
* @param callback - The callback function to invoke when the event occurs
|
|
100
|
+
* @returns Cleanup function that removes the callback when invoked
|
|
101
|
+
*/
|
|
102
|
+
addHook(eventType, callback) {
|
|
103
|
+
return this._hookRegistry.addCallback(eventType, callback);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Stream graph execution, yielding events as nodes execute.
|
|
107
|
+
* Invokes hook callbacks for each event before yielding.
|
|
108
|
+
*
|
|
109
|
+
* @param input - The input to pass to entry nodes
|
|
110
|
+
* @returns Async generator yielding streaming events and returning a MultiAgentResult
|
|
111
|
+
*/
|
|
112
|
+
async *stream(input) {
|
|
113
|
+
await this.initialize();
|
|
114
|
+
const gen = this._stream(input);
|
|
115
|
+
try {
|
|
116
|
+
let next = await gen.next();
|
|
117
|
+
while (!next.done) {
|
|
118
|
+
if (next.value instanceof HookableEvent) {
|
|
119
|
+
await this._hookRegistry.invokeCallbacks(next.value);
|
|
120
|
+
}
|
|
121
|
+
yield next.value;
|
|
122
|
+
next = await gen.next();
|
|
123
|
+
}
|
|
124
|
+
return next.value;
|
|
125
|
+
}
|
|
126
|
+
finally {
|
|
127
|
+
await gen.return(undefined);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
async *_stream(input) {
|
|
131
|
+
const state = new MultiAgentState({ nodeIds: [...this.nodes.keys()] });
|
|
132
|
+
const queue = new Queue();
|
|
133
|
+
const targets = [...this._sources];
|
|
134
|
+
const streams = new Map();
|
|
135
|
+
yield new BeforeMultiAgentInvocationEvent({ orchestrator: this, state });
|
|
136
|
+
try {
|
|
137
|
+
while (targets.length > 0 || streams.size > 0) {
|
|
138
|
+
while (targets.length > 0 && streams.size < this.config.maxConcurrency) {
|
|
139
|
+
const node = targets.shift();
|
|
140
|
+
this._checkSteps(state);
|
|
141
|
+
state.steps++;
|
|
142
|
+
streams.set(node.id, this._streamNode(node, input, state, queue));
|
|
143
|
+
}
|
|
144
|
+
await queue.wait();
|
|
145
|
+
while (queue.size > 0) {
|
|
146
|
+
const { data, ack } = queue.shift();
|
|
147
|
+
if (data.type === 'event') {
|
|
148
|
+
yield data.event;
|
|
149
|
+
ack();
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
if (data.type === 'error') {
|
|
153
|
+
streams.delete(data.node.id);
|
|
154
|
+
ack();
|
|
155
|
+
throw data.error;
|
|
156
|
+
}
|
|
157
|
+
const { node, result } = data;
|
|
158
|
+
streams.delete(node.id);
|
|
159
|
+
ack();
|
|
160
|
+
state.results.push(result);
|
|
161
|
+
const ready = await this._findReady(node, state, streams, targets);
|
|
162
|
+
if (ready.length > 0) {
|
|
163
|
+
yield new MultiAgentHandoffEvent({
|
|
164
|
+
source: node.id,
|
|
165
|
+
targets: ready.map((n) => n.id),
|
|
166
|
+
state,
|
|
167
|
+
});
|
|
168
|
+
targets.push(...ready);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
finally {
|
|
174
|
+
queue.dispose();
|
|
175
|
+
await Promise.allSettled(streams.values());
|
|
176
|
+
yield new AfterMultiAgentInvocationEvent({ orchestrator: this, state });
|
|
177
|
+
}
|
|
178
|
+
const result = new MultiAgentResult({
|
|
179
|
+
results: state.results,
|
|
180
|
+
content: this._resolveContent(state),
|
|
181
|
+
duration: Date.now() - state.startTime,
|
|
182
|
+
});
|
|
183
|
+
yield new MultiAgentResultEvent({ result });
|
|
184
|
+
return result;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Executes a single node, pushing streaming events to the shared queue in real-time.
|
|
188
|
+
*/
|
|
189
|
+
async _streamNode(node, input, state, queue) {
|
|
190
|
+
const nodeState = state.node(node.id);
|
|
191
|
+
const beforeEvent = new BeforeNodeCallEvent({ orchestrator: this, state, nodeId: node.id });
|
|
192
|
+
await queue.send({ type: 'event', node, event: beforeEvent });
|
|
193
|
+
if (beforeEvent.cancel) {
|
|
194
|
+
const message = typeof beforeEvent.cancel === 'string' ? beforeEvent.cancel : 'node cancelled by hook';
|
|
195
|
+
const result = new NodeResult({ nodeId: node.id, status: Status.CANCELLED, duration: 0 });
|
|
196
|
+
nodeState.status = Status.CANCELLED;
|
|
197
|
+
nodeState.results.push(result);
|
|
198
|
+
await queue.send({
|
|
199
|
+
type: 'event',
|
|
200
|
+
node,
|
|
201
|
+
event: new NodeCancelEvent({ nodeId: node.id, state, message }),
|
|
202
|
+
});
|
|
203
|
+
await queue.send({
|
|
204
|
+
type: 'event',
|
|
205
|
+
node,
|
|
206
|
+
event: new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id }),
|
|
207
|
+
});
|
|
208
|
+
queue.push({ type: 'result', node, result });
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
try {
|
|
212
|
+
const nodeInput = this._resolveNodeInput(node, input, state);
|
|
213
|
+
const gen = node.stream(nodeInput, state);
|
|
214
|
+
let next = await gen.next();
|
|
215
|
+
while (!next.done) {
|
|
216
|
+
await queue.send({ type: 'event', node, event: next.value });
|
|
217
|
+
next = await gen.next();
|
|
218
|
+
}
|
|
219
|
+
queue.push({ type: 'result', node, result: next.value });
|
|
220
|
+
await queue.send({
|
|
221
|
+
type: 'event',
|
|
222
|
+
node,
|
|
223
|
+
event: new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id }),
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
await queue.send({
|
|
228
|
+
type: 'event',
|
|
229
|
+
node,
|
|
230
|
+
event: new AfterNodeCallEvent({
|
|
231
|
+
orchestrator: this,
|
|
232
|
+
state,
|
|
233
|
+
nodeId: node.id,
|
|
234
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
235
|
+
}),
|
|
236
|
+
});
|
|
237
|
+
queue.push({
|
|
238
|
+
type: 'error',
|
|
239
|
+
node,
|
|
240
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
_validateConfig() {
|
|
245
|
+
if (this.config.maxConcurrency < 1) {
|
|
246
|
+
throw new Error(`max_concurrency=<${this.config.maxConcurrency}> | must be at least 1`);
|
|
247
|
+
}
|
|
248
|
+
if (this.config.maxSteps < 1) {
|
|
249
|
+
throw new Error(`max_steps=<${this.config.maxSteps}> | must be at least 1`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
_validateSources() {
|
|
253
|
+
if (this._sources.length === 0) {
|
|
254
|
+
throw new Error('graph has no source nodes');
|
|
255
|
+
}
|
|
256
|
+
const visited = new Set();
|
|
257
|
+
const adjacency = new Map();
|
|
258
|
+
for (const edge of this.edges) {
|
|
259
|
+
const targets = adjacency.get(edge.source.id) ?? [];
|
|
260
|
+
targets.push(edge.target.id);
|
|
261
|
+
adjacency.set(edge.source.id, targets);
|
|
262
|
+
}
|
|
263
|
+
const queue = this._sources.map((n) => n.id);
|
|
264
|
+
while (queue.length > 0) {
|
|
265
|
+
const id = queue.shift();
|
|
266
|
+
if (visited.has(id))
|
|
267
|
+
continue;
|
|
268
|
+
visited.add(id);
|
|
269
|
+
for (const target of adjacency.get(id) ?? []) {
|
|
270
|
+
queue.push(target);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
for (const id of this.nodes.keys()) {
|
|
274
|
+
if (!visited.has(id)) {
|
|
275
|
+
throw new Error(`node_id=<${id}> | unreachable from any source node`);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
_resolveNodes(definitions) {
|
|
280
|
+
const nodes = new Map();
|
|
281
|
+
for (const definition of definitions) {
|
|
282
|
+
let node;
|
|
283
|
+
if (definition instanceof Node) {
|
|
284
|
+
node = definition;
|
|
285
|
+
}
|
|
286
|
+
else if ('orchestrator' in definition) {
|
|
287
|
+
node = new MultiAgentNode(definition);
|
|
288
|
+
}
|
|
289
|
+
else if ('agent' in definition) {
|
|
290
|
+
node = new AgentNode(definition);
|
|
291
|
+
}
|
|
292
|
+
else if (definition instanceof Graph || definition instanceof Swarm) {
|
|
293
|
+
node = new MultiAgentNode({ orchestrator: definition });
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
node = new AgentNode({ agent: definition });
|
|
297
|
+
}
|
|
298
|
+
if (nodes.has(node.id)) {
|
|
299
|
+
throw new Error(`node_id=<${node.id}> | duplicate node id`);
|
|
300
|
+
}
|
|
301
|
+
nodes.set(node.id, node);
|
|
302
|
+
}
|
|
303
|
+
return nodes;
|
|
304
|
+
}
|
|
305
|
+
_resolveEdges(definitions) {
|
|
306
|
+
const edges = [];
|
|
307
|
+
for (const definition of definitions) {
|
|
308
|
+
const [sourceId, targetId, handler] = Array.isArray(definition)
|
|
309
|
+
? [definition[0], definition[1], undefined]
|
|
310
|
+
: [definition.source, definition.target, definition.handler];
|
|
311
|
+
const source = this.nodes.get(sourceId);
|
|
312
|
+
const target = this.nodes.get(targetId);
|
|
313
|
+
if (!source) {
|
|
314
|
+
throw new Error(`source=<${sourceId}> | edge references unknown source node`);
|
|
315
|
+
}
|
|
316
|
+
if (!target) {
|
|
317
|
+
throw new Error(`target=<${targetId}> | edge references unknown target node`);
|
|
318
|
+
}
|
|
319
|
+
edges.push(new Edge({ source, target, ...(handler && { handler }) }));
|
|
320
|
+
}
|
|
321
|
+
return edges;
|
|
322
|
+
}
|
|
323
|
+
_resolveSources(sourceIds) {
|
|
324
|
+
if (sourceIds) {
|
|
325
|
+
const sources = [];
|
|
326
|
+
for (const id of sourceIds) {
|
|
327
|
+
const node = this.nodes.get(id);
|
|
328
|
+
if (!node) {
|
|
329
|
+
throw new Error(`source=<${id}> | source references unknown node`);
|
|
330
|
+
}
|
|
331
|
+
sources.push(node);
|
|
332
|
+
}
|
|
333
|
+
return sources;
|
|
334
|
+
}
|
|
335
|
+
const targetIds = new Set(this.edges.map((e) => e.target.id));
|
|
336
|
+
return [...this.nodes.values()].filter((node) => !targetIds.has(node.id));
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Identifies terminus nodes and returns their combined content.
|
|
340
|
+
* A terminus node is where an execution path ended: completed with no
|
|
341
|
+
* downstream progress, or failed/cancelled.
|
|
342
|
+
*/
|
|
343
|
+
_resolveContent(state) {
|
|
344
|
+
for (const [id, ns] of state.nodes.entries()) {
|
|
345
|
+
if (ns.status === Status.FAILED || ns.status === Status.CANCELLED) {
|
|
346
|
+
ns.terminus = true;
|
|
347
|
+
}
|
|
348
|
+
else if (ns.status === Status.COMPLETED) {
|
|
349
|
+
ns.terminus = !this.edges
|
|
350
|
+
.filter((e) => e.source.id === id)
|
|
351
|
+
.some((e) => state.node(e.target.id)?.status !== Status.PENDING);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
return [...state.nodes.values()].filter((ns) => ns.terminus).flatMap((ns) => ns.content);
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Builds the input for a node by combining the original task with dependency outputs.
|
|
358
|
+
*/
|
|
359
|
+
_resolveNodeInput(node, input, state) {
|
|
360
|
+
const deps = [];
|
|
361
|
+
for (const edge of this.edges.filter((e) => e.target.id === node.id)) {
|
|
362
|
+
const ns = state.node(edge.source.id);
|
|
363
|
+
if (ns.content.length > 0) {
|
|
364
|
+
deps.push(new TextBlock(`[node: ${edge.source.id}]`), ...ns.content);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
if (deps.length === 0)
|
|
368
|
+
return input;
|
|
369
|
+
const blocks = typeof input === 'string'
|
|
370
|
+
? [new TextBlock(input)]
|
|
371
|
+
: input.map((b) => ('type' in b ? b : contentBlockFromData(b)));
|
|
372
|
+
return [...blocks, ...deps];
|
|
373
|
+
}
|
|
374
|
+
_checkSteps(state) {
|
|
375
|
+
if (state.steps >= this.config.maxSteps) {
|
|
376
|
+
throw new Error(`steps=<${state.steps}> | max steps reached`);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Finds downstream nodes that are ready to execute after a node completes.
|
|
381
|
+
* A target is ready when all its incoming edge sources are COMPLETED.
|
|
382
|
+
*/
|
|
383
|
+
async _findReady(node, state, streams, targets) {
|
|
384
|
+
if (state.node(node.id)?.status !== Status.COMPLETED)
|
|
385
|
+
return [];
|
|
386
|
+
const ready = [];
|
|
387
|
+
for (const edge of this.edges.filter((e) => e.source.id === node.id)) {
|
|
388
|
+
if (!(await edge.handler(state)))
|
|
389
|
+
continue;
|
|
390
|
+
if (streams.has(edge.target.id) || targets.some((n) => n.id === edge.target.id))
|
|
391
|
+
continue;
|
|
392
|
+
const deps = this.edges.filter((e) => e.target.id === edge.target.id);
|
|
393
|
+
if (deps.every((e) => state.node(e.source.id)?.status === Status.COMPLETED)) {
|
|
394
|
+
ready.push(edge.target);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
return ready;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
//# sourceMappingURL=graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/multiagent/graph.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AAGjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAEvD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAElF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,EACL,8BAA8B,EAC9B,kBAAkB,EAClB,+BAA+B,EAC/B,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,GAChB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AA4BlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,OAAO,KAAK;IACP,EAAE,CAAQ;IACV,KAAK,CAA2B;IAChC,KAAK,CAAiB;IACtB,MAAM,CAAuB;IACrB,eAAe,CAA0B;IACzC,aAAa,CAA4B;IACzC,QAAQ,CAAQ;IACzB,YAAY,CAAS;IAE7B,YAAY,OAAqB;QAC/B,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;QAEjE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,OAAO,CAAA;QAEvB,IAAI,CAAC,MAAM,GAAG;YACZ,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,QAAQ;YACjD,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,QAAQ;SACtC,CAAA;QACD,IAAI,CAAC,eAAe,EAAE,CAAA;QAEtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAEvB,IAAI,CAAC,aAAa,GAAG,IAAI,0BAA0B,EAAE,CAAA;QACrD,IAAI,CAAC,eAAe,GAAG,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAA;QAC5D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;IAC3B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,YAAY;YAAE,OAAM;QAC7B,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC3C,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,0BAA0B,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAChG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IAC1B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,KAAsB;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC9B,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAA0B,SAAsC,EAAE,QAAyB;QAChG,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC5D,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,MAAM,CAAC,KAAsB;QAClC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,CAAC;YACH,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,IAAI,IAAI,CAAC,KAAK,YAAY,aAAa,EAAE,CAAC;oBACxC,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACtD,CAAC;gBACD,MAAM,IAAI,CAAC,KAAK,CAAA;gBAChB,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YACzB,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAA;QACnB,CAAC;gBAAS,CAAC;YACT,MAAM,GAAG,CAAC,MAAM,CAAC,SAAkB,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,CAAC,OAAO,CAAC,KAAsB;QAC3C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;QAEtE,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;QACzB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAA;QAEhD,MAAM,IAAI,+BAA+B,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAExE,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC9C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;oBACvE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAG,CAAA;oBAE7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;oBACvB,KAAK,CAAC,KAAK,EAAE,CAAA;oBAEb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;gBACnE,CAAC;gBAED,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;gBAClB,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAA;oBAEpC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC1B,MAAM,IAAI,CAAC,KAAK,CAAA;wBAChB,GAAG,EAAE,CAAA;wBACL,SAAQ;oBACV,CAAC;oBAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC1B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;wBAC5B,GAAG,EAAE,CAAA;wBACL,MAAM,IAAI,CAAC,KAAK,CAAA;oBAClB,CAAC;oBAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;oBAC7B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;oBACvB,GAAG,EAAE,CAAA;oBAEL,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBAE1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;oBAClE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACrB,MAAM,IAAI,sBAAsB,CAAC;4BAC/B,MAAM,EAAE,IAAI,CAAC,EAAE;4BACf,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC/B,KAAK;yBACN,CAAC,CAAA;wBACF,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,OAAO,EAAE,CAAA;YACf,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;YAC1C,MAAM,IAAI,8BAA8B,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACzE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YACpC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS;SACvC,CAAC,CAAA;QACF,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,IAAU,EAAE,KAAsB,EAAE,KAAsB,EAAE,KAAY;QAChG,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAE,CAAA;QAEtC,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QAC3F,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;QAE7D,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAA;YACtG,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;YACzF,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAA;YACnC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE9B,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,OAAO;gBACb,IAAI;gBACJ,KAAK,EAAE,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;aAChE,CAAC,CAAA;YACF,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,OAAO;gBACb,IAAI;gBACJ,KAAK,EAAE,IAAI,kBAAkB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;aAC9E,CAAC,CAAA;YACF,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;YAC5C,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;YAE5D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YACzC,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;gBAC5D,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YACzB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;YAExD,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,OAAO;gBACb,IAAI;gBACJ,KAAK,EAAE,IAAI,kBAAkB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;aAC9E,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,OAAO;gBACb,IAAI;gBACJ,KAAK,EAAE,IAAI,kBAAkB,CAAC;oBAC5B,YAAY,EAAE,IAAI;oBAClB,KAAK;oBACL,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACjE,CAAC;aACH,CAAC,CAAA;YACF,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,OAAO;gBACb,IAAI;gBACJ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACjE,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,cAAc,wBAAwB,CAAC,CAAA;QACzF,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,wBAAwB,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;QACjC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAA;QAC7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;YACnD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC5B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QACxC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC5C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAA;YACzB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAQ;YAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACf,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,YAAY,EAAE,sCAAsC,CAAC,CAAA;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,WAA6B;QACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAA;QAErC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,IAAU,CAAA;YAEd,IAAI,UAAU,YAAY,IAAI,EAAE,CAAC;gBAC/B,IAAI,GAAG,UAAU,CAAA;YACnB,CAAC;iBAAM,IAAI,cAAc,IAAI,UAAU,EAAE,CAAC;gBACxC,IAAI,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,CAAA;YACvC,CAAC;iBAAM,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;gBACjC,IAAI,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAA;YAClC,CAAC;iBAAM,IAAI,UAAU,YAAY,KAAK,IAAI,UAAU,YAAY,KAAK,EAAE,CAAC;gBACtE,IAAI,GAAG,IAAI,cAAc,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAA;YACzD,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,UAA4B,EAAE,CAAC,CAAA;YAC/D,CAAC;YAED,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,EAAE,uBAAuB,CAAC,CAAA;YAC7D,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QAC1B,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,aAAa,CAAC,WAA6B;QACjD,MAAM,KAAK,GAAW,EAAE,CAAA;QACxB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC7D,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;gBAC3C,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;YAE9D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,yCAAyC,CAAC,CAAA;YAC/E,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,yCAAyC,CAAC,CAAA;YAC/E,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,eAAe,CAAC,SAAoB;QAC1C,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,OAAO,GAAW,EAAE,CAAA;YAC1B,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,oCAAoC,CAAC,CAAA;gBACpE,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpB,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7D,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3E,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,KAAsB;QAC5C,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;gBAClE,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAA;YACpB,CAAC;iBAAM,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC1C,EAAE,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK;qBACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;qBACjC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;YACpE,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;IAC1F,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAU,EAAE,KAAsB,EAAE,KAAsB;QAClF,MAAM,IAAI,GAAmB,EAAE,CAAA;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACrE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAE,CAAA;YACtC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAA;YACtE,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAEnC,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ;YACvB,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAE,CAAkB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrF,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,CAAA;IAC7B,CAAC;IAEO,WAAW,CAAC,KAAsB;QACxC,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,KAAK,uBAAuB,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,UAAU,CACtB,IAAU,EACV,KAAsB,EACtB,OAA2C,EAC3C,OAAwB;QAExB,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,SAAS;YAAE,OAAO,EAAE,CAAA;QAE/D,MAAM,KAAK,GAAW,EAAE,CAAA;QAExB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAAE,SAAQ;YAE1C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAAE,SAAQ;YAEzF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACrE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;CACF"}
|
|
@@ -5,9 +5,14 @@ export { MultiAgentState, NodeState, Status, NodeResult, MultiAgentResult } from
|
|
|
5
5
|
export type { NodeResultUpdate, ResultStatus } from './state.js';
|
|
6
6
|
export { Node, AgentNode, MultiAgentNode } from './nodes.js';
|
|
7
7
|
export type { NodeConfig, AgentNodeOptions, MultiAgentNodeOptions, NodeDefinition, NodeType } from './nodes.js';
|
|
8
|
-
export
|
|
9
|
-
export {
|
|
10
|
-
export type { MultiAgentStreamEvent } from './events.js';
|
|
8
|
+
export { MultiAgentInitializedEvent, BeforeMultiAgentInvocationEvent, AfterMultiAgentInvocationEvent, BeforeNodeCallEvent, AfterNodeCallEvent, NodeStreamUpdateEvent, NodeResultEvent, NodeCancelEvent, MultiAgentHandoffEvent, MultiAgentResultEvent, } from './events.js';
|
|
9
|
+
export type { MultiAgentStreamEvent, NodeStreamUpdateInnerEvent } from './events.js';
|
|
11
10
|
export { Edge } from './edge.js';
|
|
12
11
|
export type { EdgeHandler, EdgeDefinition } from './edge.js';
|
|
12
|
+
export { Graph } from './graph.js';
|
|
13
|
+
export type { GraphConfig, GraphOptions } from './graph.js';
|
|
14
|
+
export { Swarm } from './swarm.js';
|
|
15
|
+
export type { SwarmConfig, SwarmNodeDefinition, SwarmOptions } from './swarm.js';
|
|
16
|
+
export type { MultiAgentPlugin } from './plugins.js';
|
|
17
|
+
export type { MultiAgent, MultiAgentInput } from './multiagent.js';
|
|
13
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/multiagent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7F,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEhE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE/G,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/multiagent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7F,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEhE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE/G,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,EAC9B,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAEpF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE5D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEhF,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { MultiAgentState, NodeState, Status, NodeResult, MultiAgentResult } from './state.js';
|
|
5
5
|
export { Node, AgentNode, MultiAgentNode } from './nodes.js';
|
|
6
|
-
export { MultiAgentInitializedEvent, BeforeMultiAgentInvocationEvent, AfterMultiAgentInvocationEvent, BeforeNodeCallEvent, AfterNodeCallEvent, NodeStreamUpdateEvent, NodeResultEvent, MultiAgentHandoffEvent, MultiAgentResultEvent, } from './events.js';
|
|
6
|
+
export { MultiAgentInitializedEvent, BeforeMultiAgentInvocationEvent, AfterMultiAgentInvocationEvent, BeforeNodeCallEvent, AfterNodeCallEvent, NodeStreamUpdateEvent, NodeResultEvent, NodeCancelEvent, MultiAgentHandoffEvent, MultiAgentResultEvent, } from './events.js';
|
|
7
7
|
export { Edge } from './edge.js';
|
|
8
|
+
export { Graph } from './graph.js';
|
|
9
|
+
export { Swarm } from './swarm.js';
|
|
8
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/multiagent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAG7F,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/multiagent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAG7F,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAG5D,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,EAC9B,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGhC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGlC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -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,9 @@
|
|
|
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';
|
|
6
7
|
/**
|
|
7
8
|
* Known node type identifiers with extensibility for custom nodes.
|
|
8
9
|
*/
|
|
@@ -12,9 +13,9 @@ export type NodeType = 'agentNode' | 'multiAgentNode' | (string & {});
|
|
|
12
13
|
*/
|
|
13
14
|
export interface NodeConfig {
|
|
14
15
|
/**
|
|
15
|
-
*
|
|
16
|
+
* Optional description of what this node does.
|
|
16
17
|
*/
|
|
17
|
-
|
|
18
|
+
description?: string;
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
21
|
* Abstract base class for all multi-agent orchestration nodes.
|
|
@@ -38,40 +39,38 @@ export declare abstract class Node {
|
|
|
38
39
|
* Execute the node. Handles duration measurement, error capture,
|
|
39
40
|
* and delegates to handle() for node-specific logic.
|
|
40
41
|
*
|
|
41
|
-
* @param args - Input to pass to the node (string
|
|
42
|
+
* @param args - Input to pass to the node (string or content blocks)
|
|
42
43
|
* @param state - The current multi-agent state
|
|
43
44
|
* @returns Async generator yielding streaming events and returning a NodeResult
|
|
44
45
|
*/
|
|
45
|
-
stream(args:
|
|
46
|
+
stream(args: MultiAgentInput, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResult, undefined>;
|
|
46
47
|
/**
|
|
47
48
|
* Node-specific execution logic implemented by subclasses.
|
|
48
49
|
*
|
|
49
|
-
* @param args - Input to process (string
|
|
50
|
+
* @param args - Input to process (string or content blocks)
|
|
50
51
|
* @param state - The current multi-agent state
|
|
51
52
|
* @returns Async generator yielding streaming events and returning a partial result
|
|
52
53
|
*/
|
|
53
|
-
abstract handle(args:
|
|
54
|
+
abstract handle(args: MultiAgentInput, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
|
|
54
55
|
}
|
|
55
56
|
/**
|
|
56
57
|
* Options for creating an {@link AgentNode}.
|
|
57
58
|
*/
|
|
58
|
-
export interface AgentNodeOptions
|
|
59
|
-
/** Unique node identifier. */
|
|
60
|
-
id: string;
|
|
59
|
+
export interface AgentNodeOptions {
|
|
61
60
|
/** The agent to wrap as a node. */
|
|
62
|
-
agent:
|
|
61
|
+
agent: InvokableAgent;
|
|
63
62
|
}
|
|
64
63
|
/**
|
|
65
|
-
* Node that wraps an
|
|
64
|
+
* Node that wraps an {@link InvokableAgent} instance for multi-agent orchestration.
|
|
66
65
|
*
|
|
67
|
-
* Each execution is isolated
|
|
68
|
-
* is unchanged after the node completes.
|
|
66
|
+
* Each execution is isolated. When the wrapped agent is an {@link Agent} instance,
|
|
67
|
+
* its internal state is snapshot/restored so it remains unchanged after the node completes.
|
|
69
68
|
*/
|
|
70
69
|
export declare class AgentNode extends Node {
|
|
71
70
|
readonly type: "agentNode";
|
|
72
71
|
private readonly _agent;
|
|
73
72
|
constructor(options: AgentNodeOptions);
|
|
74
|
-
get agent():
|
|
73
|
+
get agent(): InvokableAgent;
|
|
75
74
|
/**
|
|
76
75
|
* Executes the wrapped agent, yielding each agent streaming event
|
|
77
76
|
* wrapped in a {@link NodeStreamUpdateEvent}.
|
|
@@ -80,14 +79,14 @@ export declare class AgentNode extends Node {
|
|
|
80
79
|
* @param state - The current multi-agent state
|
|
81
80
|
* @returns Async generator yielding streaming events and returning the agent's content blocks
|
|
82
81
|
*/
|
|
83
|
-
handle(args:
|
|
82
|
+
handle(args: MultiAgentInput, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
|
|
84
83
|
}
|
|
85
84
|
/**
|
|
86
85
|
* Options for creating a {@link MultiAgentNode}.
|
|
87
86
|
*/
|
|
88
87
|
export interface MultiAgentNodeOptions extends NodeConfig {
|
|
89
88
|
/** The orchestrator to wrap as a node. */
|
|
90
|
-
orchestrator:
|
|
89
|
+
orchestrator: MultiAgent;
|
|
91
90
|
}
|
|
92
91
|
/**
|
|
93
92
|
* Node that wraps a multi-agent orchestrator (e.g. Graph) for nested composition.
|
|
@@ -100,7 +99,7 @@ export declare class MultiAgentNode extends Node {
|
|
|
100
99
|
readonly type: "multiAgentNode";
|
|
101
100
|
private readonly _orchestrator;
|
|
102
101
|
constructor(options: MultiAgentNodeOptions);
|
|
103
|
-
get orchestrator():
|
|
102
|
+
get orchestrator(): MultiAgent;
|
|
104
103
|
/**
|
|
105
104
|
* Executes the wrapped orchestrator. Inner {@link NodeStreamUpdateEvent}s
|
|
106
105
|
* pass through as-is; all other events are wrapped in a new
|
|
@@ -110,14 +109,14 @@ export declare class MultiAgentNode extends Node {
|
|
|
110
109
|
* @param _state - The current multi-agent state (unused)
|
|
111
110
|
* @returns Async generator yielding streaming events and returning the orchestrator's content
|
|
112
111
|
*/
|
|
113
|
-
handle(args:
|
|
112
|
+
handle(args: MultiAgentInput, state: MultiAgentState): AsyncGenerator<MultiAgentStreamEvent, NodeResultUpdate, undefined>;
|
|
114
113
|
}
|
|
115
114
|
/**
|
|
116
115
|
* A node definition accepted by orchestration constructors.
|
|
116
|
+
*
|
|
117
|
+
* Pass an {@link InvokableAgent} or {@link MultiAgent} directly for the simple case,
|
|
118
|
+
* use typed options objects for per-node configuration, or provide pre-built
|
|
119
|
+
* {@link Node} instances for full control.
|
|
117
120
|
*/
|
|
118
|
-
export type NodeDefinition = Node |
|
|
119
|
-
type: 'agent';
|
|
120
|
-
}) | (MultiAgentNodeOptions & {
|
|
121
|
-
type: 'multiAgent';
|
|
122
|
-
});
|
|
121
|
+
export type NodeDefinition = InvokableAgent | MultiAgent | Node | AgentNodeOptions | MultiAgentNodeOptions;
|
|
123
122
|
//# sourceMappingURL=nodes.d.ts.map
|