@strands-agents/sdk 1.0.0-rc.5 → 1.1.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/LICENSE +175 -0
- package/README.md +340 -0
- package/dist/src/__fixtures__/agent-helpers.d.ts +22 -1
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/agent-helpers.js +45 -1
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
- package/dist/src/__fixtures__/mock-plugin.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-plugin.js +3 -1
- package/dist/src/__fixtures__/mock-plugin.js.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.d.ts +5 -2
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.js +23 -4
- package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
- package/dist/src/__tests__/interrupt.test.d.ts +2 -0
- package/dist/src/__tests__/interrupt.test.d.ts.map +1 -0
- package/dist/src/__tests__/interrupt.test.js +259 -0
- package/dist/src/__tests__/interrupt.test.js.map +1 -0
- package/dist/src/__tests__/mcp.test.js +448 -2
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/a2a/__tests__/events.test.js +2 -0
- package/dist/src/a2a/__tests__/events.test.js.map +1 -1
- package/dist/src/a2a/__tests__/executor.test.js +16 -5
- package/dist/src/a2a/__tests__/executor.test.js.map +1 -1
- package/dist/src/a2a/a2a-agent.d.ts +8 -3
- package/dist/src/a2a/a2a-agent.d.ts.map +1 -1
- package/dist/src/a2a/a2a-agent.js +12 -6
- package/dist/src/a2a/a2a-agent.js.map +1 -1
- package/dist/src/a2a/executor.d.ts +13 -0
- package/dist/src/a2a/executor.d.ts.map +1 -1
- package/dist/src/a2a/executor.js +19 -1
- package/dist/src/a2a/executor.js.map +1 -1
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js +23 -0
- package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.cancel.test.js +1 -1
- package/dist/src/agent/__tests__/agent.cancel.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.concurrent.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.concurrent.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.concurrent.test.js +488 -0
- package/dist/src/agent/__tests__/agent.concurrent.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.hook.test.js +724 -12
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.interrupt.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.interrupt.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.interrupt.test.js +730 -0
- package/dist/src/agent/__tests__/agent.interrupt.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.invocation-state.test.js +219 -0
- package/dist/src/agent/__tests__/agent.invocation-state.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.model-retry.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.model-retry.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.model-retry.test.js +161 -0
- package/dist/src/agent/__tests__/agent.model-retry.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts.map +1 -0
- package/dist/src/agent/__tests__/agent.stateful-model.test.js +169 -0
- package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +1 -0
- package/dist/src/agent/__tests__/agent.test.js +217 -2
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.tracer.test.node.js +39 -0
- package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +1 -1
- package/dist/src/agent/__tests__/snapshot.test.js +51 -4
- package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
- package/dist/src/agent/agent-as-tool.d.ts.map +1 -1
- package/dist/src/agent/agent-as-tool.js +4 -2
- package/dist/src/agent/agent-as-tool.js.map +1 -1
- package/dist/src/agent/agent.d.ts +109 -4
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +790 -224
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/snapshot.d.ts +2 -2
- package/dist/src/agent/snapshot.d.ts.map +1 -1
- package/dist/src/agent/snapshot.js +20 -2
- package/dist/src/agent/snapshot.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +230 -9
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +19 -6
- 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 +58 -4
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +76 -1
- package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/conversation-manager.d.ts +67 -22
- package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/conversation-manager.js +65 -13
- package/dist/src/conversation-manager/conversation-manager.js.map +1 -1
- package/dist/src/conversation-manager/index.d.ts +1 -1
- package/dist/src/conversation-manager/index.d.ts.map +1 -1
- package/dist/src/conversation-manager/index.js +1 -1
- package/dist/src/conversation-manager/index.js.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +17 -3
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js +10 -4
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
- package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts +23 -1
- package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/summarizing-conversation-manager.js +39 -17
- package/dist/src/conversation-manager/summarizing-conversation-manager.js.map +1 -1
- package/dist/src/errors.d.ts +11 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +12 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hooks/__tests__/events.test.js +267 -73
- package/dist/src/hooks/__tests__/events.test.js.map +1 -1
- package/dist/src/hooks/__tests__/registry.test.js +182 -18
- package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
- package/dist/src/hooks/events.d.ts +193 -51
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +182 -26
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/index.d.ts +3 -2
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +1 -0
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/registry.d.ts +12 -12
- package/dist/src/hooks/registry.d.ts.map +1 -1
- package/dist/src/hooks/registry.js +55 -15
- package/dist/src/hooks/registry.js.map +1 -1
- package/dist/src/hooks/types.d.ts +23 -0
- package/dist/src/hooks/types.d.ts.map +1 -1
- package/dist/src/hooks/types.js +17 -1
- package/dist/src/hooks/types.js.map +1 -1
- package/dist/src/index.d.ts +12 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/interrupt.d.ts +220 -0
- package/dist/src/interrupt.d.ts.map +1 -0
- package/dist/src/interrupt.js +274 -0
- package/dist/src/interrupt.js.map +1 -0
- package/dist/src/logging/__tests__/warn-once.test.d.ts +2 -0
- package/dist/src/logging/__tests__/warn-once.test.d.ts.map +1 -0
- package/dist/src/logging/__tests__/warn-once.test.js +30 -0
- package/dist/src/logging/__tests__/warn-once.test.js.map +1 -0
- package/dist/src/logging/warn-once.d.ts +13 -0
- package/dist/src/logging/warn-once.d.ts.map +1 -0
- package/dist/src/logging/warn-once.js +18 -0
- package/dist/src/logging/warn-once.js.map +1 -0
- package/dist/src/mcp.d.ts +43 -3
- package/dist/src/mcp.d.ts.map +1 -1
- package/dist/src/mcp.js +85 -17
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/mime.d.ts +2 -1
- package/dist/src/mime.d.ts.map +1 -1
- package/dist/src/mime.js +1 -0
- package/dist/src/mime.js.map +1 -1
- package/dist/src/models/__tests__/anthropic.test.js +147 -3
- package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +228 -2
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/defaults.test.d.ts +2 -0
- package/dist/src/models/__tests__/defaults.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/defaults.test.js +36 -0
- package/dist/src/models/__tests__/defaults.test.js.map +1 -0
- package/dist/src/models/__tests__/google.test.js +135 -0
- package/dist/src/models/__tests__/google.test.js.map +1 -1
- package/dist/src/models/__tests__/model.test.js +149 -1
- package/dist/src/models/__tests__/model.test.js.map +1 -1
- package/dist/src/models/anthropic.d.ts +20 -1
- package/dist/src/models/anthropic.d.ts.map +1 -1
- package/dist/src/models/anthropic.js +42 -8
- package/dist/src/models/anthropic.js.map +1 -1
- package/dist/src/models/bedrock.d.ts +27 -1
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +100 -12
- package/dist/src/models/bedrock.js.map +1 -1
- package/dist/src/models/defaults.d.ts +47 -0
- package/dist/src/models/defaults.d.ts.map +1 -0
- package/dist/src/models/defaults.js +170 -0
- package/dist/src/models/defaults.js.map +1 -0
- package/dist/src/models/google/model.d.ts +14 -1
- package/dist/src/models/google/model.d.ts.map +1 -1
- package/dist/src/models/google/model.js +54 -8
- package/dist/src/models/google/model.js.map +1 -1
- package/dist/src/models/google/types.d.ts +8 -0
- package/dist/src/models/google/types.d.ts.map +1 -1
- package/dist/src/models/model.d.ts +65 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +138 -0
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/openai/__tests__/chat.test.d.ts +2 -0
- package/dist/src/models/openai/__tests__/chat.test.d.ts.map +1 -0
- package/dist/src/models/{__tests__/openai.test.js → openai/__tests__/chat.test.js} +117 -7
- package/dist/src/models/openai/__tests__/chat.test.js.map +1 -0
- package/dist/src/models/openai/__tests__/responses.test.d.ts +2 -0
- package/dist/src/models/openai/__tests__/responses.test.d.ts.map +1 -0
- package/dist/src/models/openai/__tests__/responses.test.js +668 -0
- package/dist/src/models/openai/__tests__/responses.test.js.map +1 -0
- package/dist/src/models/openai/chat-adapter.d.ts +33 -0
- package/dist/src/models/openai/chat-adapter.d.ts.map +1 -0
- package/dist/src/models/openai/chat-adapter.js +383 -0
- package/dist/src/models/openai/chat-adapter.js.map +1 -0
- package/dist/src/models/openai/errors.d.ts +16 -0
- package/dist/src/models/openai/errors.d.ts.map +1 -0
- package/dist/src/models/openai/errors.js +40 -0
- package/dist/src/models/openai/errors.js.map +1 -0
- package/dist/src/models/openai/formatting.d.ts +18 -0
- package/dist/src/models/openai/formatting.d.ts.map +1 -0
- package/dist/src/models/openai/formatting.js +38 -0
- package/dist/src/models/openai/formatting.js.map +1 -0
- package/dist/src/models/openai/index.d.ts +19 -0
- package/dist/src/models/openai/index.d.ts.map +1 -0
- package/dist/src/models/openai/index.js +18 -0
- package/dist/src/models/openai/index.js.map +1 -0
- package/dist/src/models/openai/model.d.ts +77 -0
- package/dist/src/models/openai/model.d.ts.map +1 -0
- package/dist/src/models/openai/model.js +211 -0
- package/dist/src/models/openai/model.js.map +1 -0
- package/dist/src/models/openai/responses-adapter.d.ts +78 -0
- package/dist/src/models/openai/responses-adapter.d.ts.map +1 -0
- package/dist/src/models/openai/responses-adapter.js +467 -0
- package/dist/src/models/openai/responses-adapter.js.map +1 -0
- package/dist/src/models/openai/types.d.ts +131 -0
- package/dist/src/models/openai/types.d.ts.map +1 -0
- package/dist/src/models/openai/types.js +5 -0
- package/dist/src/models/openai/types.js.map +1 -0
- package/dist/src/multiagent/__tests__/events.test.js +122 -28
- package/dist/src/multiagent/__tests__/events.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.js +95 -0
- package/dist/src/multiagent/__tests__/graph.invocation-state.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/graph.test.js +69 -0
- package/dist/src/multiagent/__tests__/graph.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/nodes.test.js +18 -2
- package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js +56 -0
- package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/swarm.test.js +77 -0
- package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -1
- package/dist/src/multiagent/events.d.ts +19 -1
- package/dist/src/multiagent/events.d.ts.map +1 -1
- package/dist/src/multiagent/events.js +18 -0
- package/dist/src/multiagent/events.js.map +1 -1
- package/dist/src/multiagent/graph.d.ts +27 -5
- package/dist/src/multiagent/graph.d.ts.map +1 -1
- package/dist/src/multiagent/graph.js +61 -15
- package/dist/src/multiagent/graph.js.map +1 -1
- package/dist/src/multiagent/index.d.ts +1 -1
- package/dist/src/multiagent/index.d.ts.map +1 -1
- package/dist/src/multiagent/multiagent.d.ts +21 -6
- package/dist/src/multiagent/multiagent.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.d.ts +28 -3
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +42 -7
- package/dist/src/multiagent/nodes.js.map +1 -1
- package/dist/src/multiagent/swarm.d.ts +20 -4
- package/dist/src/multiagent/swarm.d.ts.map +1 -1
- package/dist/src/multiagent/swarm.js +65 -16
- package/dist/src/multiagent/swarm.js.map +1 -1
- package/dist/src/plugins/__tests__/registry.test.js +1 -1
- package/dist/src/plugins/__tests__/registry.test.js.map +1 -1
- package/dist/src/plugins/model-plugin.d.ts +20 -0
- package/dist/src/plugins/model-plugin.d.ts.map +1 -0
- package/dist/src/plugins/model-plugin.js +29 -0
- package/dist/src/plugins/model-plugin.js.map +1 -0
- package/dist/src/registry/__tests__/tool-registry.test.js +11 -0
- package/dist/src/registry/__tests__/tool-registry.test.js.map +1 -1
- package/dist/src/registry/tool-registry.d.ts +4 -0
- package/dist/src/registry/tool-registry.d.ts.map +1 -1
- package/dist/src/registry/tool-registry.js +6 -0
- package/dist/src/registry/tool-registry.js.map +1 -1
- package/dist/src/retry/__tests__/backoff-strategy.test.d.ts +2 -0
- package/dist/src/retry/__tests__/backoff-strategy.test.d.ts.map +1 -0
- package/dist/src/retry/__tests__/backoff-strategy.test.js +116 -0
- package/dist/src/retry/__tests__/backoff-strategy.test.js.map +1 -0
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts +2 -0
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts.map +1 -0
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.js +225 -0
- package/dist/src/retry/__tests__/default-model-retry-strategy.test.js.map +1 -0
- package/dist/src/retry/backoff-strategy.d.ts +108 -0
- package/dist/src/retry/backoff-strategy.d.ts.map +1 -0
- package/dist/src/retry/backoff-strategy.js +86 -0
- package/dist/src/retry/backoff-strategy.js.map +1 -0
- package/dist/src/retry/default-model-retry-strategy.d.ts +76 -0
- package/dist/src/retry/default-model-retry-strategy.d.ts.map +1 -0
- package/dist/src/retry/default-model-retry-strategy.js +104 -0
- package/dist/src/retry/default-model-retry-strategy.js.map +1 -0
- package/dist/src/retry/index.d.ts +8 -0
- package/dist/src/retry/index.d.ts.map +1 -0
- package/dist/src/retry/index.js +7 -0
- package/dist/src/retry/index.js.map +1 -0
- package/dist/src/retry/model-retry-strategy.d.ts +80 -0
- package/dist/src/retry/model-retry-strategy.d.ts.map +1 -0
- package/dist/src/retry/model-retry-strategy.js +85 -0
- package/dist/src/retry/model-retry-strategy.js.map +1 -0
- package/dist/src/retry/retry-strategy.d.ts +34 -0
- package/dist/src/retry/retry-strategy.d.ts.map +1 -0
- package/dist/src/retry/retry-strategy.js +25 -0
- package/dist/src/retry/retry-strategy.js.map +1 -0
- package/dist/src/session/__tests__/session-manager.test.js +52 -11
- package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
- package/dist/src/session/session-manager.d.ts +6 -0
- package/dist/src/session/session-manager.d.ts.map +1 -1
- package/dist/src/session/session-manager.js +17 -0
- package/dist/src/session/session-manager.js.map +1 -1
- package/dist/src/telemetry/__tests__/meter.test.js +23 -0
- package/dist/src/telemetry/__tests__/meter.test.js.map +1 -1
- package/dist/src/telemetry/meter.d.ts +15 -0
- package/dist/src/telemetry/meter.d.ts.map +1 -1
- package/dist/src/telemetry/meter.js +14 -0
- package/dist/src/telemetry/meter.js.map +1 -1
- package/dist/src/tools/__tests__/tool.test.js +24 -1
- package/dist/src/tools/__tests__/tool.test.js.map +1 -1
- package/dist/src/tools/function-tool.d.ts.map +1 -1
- package/dist/src/tools/function-tool.js +6 -1
- package/dist/src/tools/function-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +24 -3
- package/dist/src/tools/mcp-tool.d.ts.map +1 -1
- package/dist/src/tools/mcp-tool.js +103 -31
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/tool.d.ts +21 -2
- package/dist/src/tools/tool.d.ts.map +1 -1
- package/dist/src/tools/tool.js +12 -0
- package/dist/src/tools/tool.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/agent.test.js +48 -0
- package/dist/src/types/__tests__/agent.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +77 -9
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +30 -6
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/elicitation.d.ts +15 -0
- package/dist/src/types/elicitation.d.ts.map +1 -0
- package/dist/src/types/elicitation.js +2 -0
- package/dist/src/types/elicitation.js.map +1 -0
- package/dist/src/types/interrupt.d.ts +103 -0
- package/dist/src/types/interrupt.d.ts.map +1 -0
- package/dist/src/types/interrupt.js +63 -0
- package/dist/src/types/interrupt.js.map +1 -0
- package/dist/src/types/messages.d.ts +2 -1
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js.map +1 -1
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts +2 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +292 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts +2 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +148 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts +2 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js +78 -0
- package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/index.d.ts +23 -0
- package/dist/src/vended-plugins/context-offloader/index.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/index.js +21 -0
- package/dist/src/vended-plugins/context-offloader/index.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/plugin.d.ts +48 -0
- package/dist/src/vended-plugins/context-offloader/plugin.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/plugin.js +244 -0
- package/dist/src/vended-plugins/context-offloader/plugin.js.map +1 -0
- package/dist/src/vended-plugins/context-offloader/storage.d.ts +114 -0
- package/dist/src/vended-plugins/context-offloader/storage.d.ts.map +1 -0
- package/dist/src/vended-plugins/context-offloader/storage.js +204 -0
- package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -0
- package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +21 -5
- package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +1 -1
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +4 -0
- 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 +0 -3
- package/dist/src/vended-tools/bash/bash.js.map +1 -1
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +4 -0
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -1
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +4 -0
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
- package/package.json +17 -9
- package/dist/src/models/__tests__/openai.test.d.ts +0 -2
- package/dist/src/models/__tests__/openai.test.d.ts.map +0 -1
- package/dist/src/models/__tests__/openai.test.js.map +0 -1
- package/dist/src/models/openai.d.ts +0 -312
- package/dist/src/models/openai.d.ts.map +0 -1
- package/dist/src/models/openai.js +0 -789
- package/dist/src/models/openai.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HookableEvent, StreamEvent } from '../hooks/events.js';
|
|
2
|
-
import type { AgentStreamEvent } from '../types/agent.js';
|
|
2
|
+
import type { AgentStreamEvent, InvocationState } from '../types/agent.js';
|
|
3
3
|
import type { MultiAgentResult, MultiAgentState, NodeResult } from './state.js';
|
|
4
4
|
import type { MultiAgent } from './multiagent.js';
|
|
5
5
|
import type { NodeType } from './nodes.js';
|
|
@@ -21,9 +21,11 @@ export declare class BeforeMultiAgentInvocationEvent extends HookableEvent {
|
|
|
21
21
|
readonly type: "beforeMultiAgentInvocationEvent";
|
|
22
22
|
readonly orchestrator: MultiAgent;
|
|
23
23
|
readonly state: MultiAgentState;
|
|
24
|
+
readonly invocationState: InvocationState;
|
|
24
25
|
constructor(data: {
|
|
25
26
|
orchestrator: MultiAgent;
|
|
26
27
|
state: MultiAgentState;
|
|
28
|
+
invocationState: InvocationState;
|
|
27
29
|
});
|
|
28
30
|
toJSON(): Pick<BeforeMultiAgentInvocationEvent, 'type'>;
|
|
29
31
|
}
|
|
@@ -34,9 +36,11 @@ export declare class AfterMultiAgentInvocationEvent extends HookableEvent {
|
|
|
34
36
|
readonly type: "afterMultiAgentInvocationEvent";
|
|
35
37
|
readonly orchestrator: MultiAgent;
|
|
36
38
|
readonly state: MultiAgentState;
|
|
39
|
+
readonly invocationState: InvocationState;
|
|
37
40
|
constructor(data: {
|
|
38
41
|
orchestrator: MultiAgent;
|
|
39
42
|
state: MultiAgentState;
|
|
43
|
+
invocationState: InvocationState;
|
|
40
44
|
});
|
|
41
45
|
_shouldReverseCallbacks(): boolean;
|
|
42
46
|
toJSON(): Pick<AfterMultiAgentInvocationEvent, 'type'>;
|
|
@@ -50,6 +54,7 @@ export declare class BeforeNodeCallEvent extends HookableEvent {
|
|
|
50
54
|
readonly orchestrator: MultiAgent;
|
|
51
55
|
readonly state: MultiAgentState;
|
|
52
56
|
readonly nodeId: string;
|
|
57
|
+
readonly invocationState: InvocationState;
|
|
53
58
|
/**
|
|
54
59
|
* Set by hook callbacks to cancel node execution.
|
|
55
60
|
* When set to `true`, a default cancel message is used.
|
|
@@ -60,6 +65,7 @@ export declare class BeforeNodeCallEvent extends HookableEvent {
|
|
|
60
65
|
orchestrator: MultiAgent;
|
|
61
66
|
state: MultiAgentState;
|
|
62
67
|
nodeId: string;
|
|
68
|
+
invocationState: InvocationState;
|
|
63
69
|
});
|
|
64
70
|
toJSON(): Pick<BeforeNodeCallEvent, 'type' | 'nodeId'>;
|
|
65
71
|
}
|
|
@@ -71,11 +77,13 @@ export declare class AfterNodeCallEvent extends HookableEvent {
|
|
|
71
77
|
readonly orchestrator: MultiAgent;
|
|
72
78
|
readonly state: MultiAgentState;
|
|
73
79
|
readonly nodeId: string;
|
|
80
|
+
readonly invocationState: InvocationState;
|
|
74
81
|
readonly error?: Error;
|
|
75
82
|
constructor(data: {
|
|
76
83
|
orchestrator: MultiAgent;
|
|
77
84
|
state: MultiAgentState;
|
|
78
85
|
nodeId: string;
|
|
86
|
+
invocationState: InvocationState;
|
|
79
87
|
error?: Error;
|
|
80
88
|
});
|
|
81
89
|
_shouldReverseCallbacks(): boolean;
|
|
@@ -122,11 +130,13 @@ export declare class NodeStreamUpdateEvent extends HookableEvent {
|
|
|
122
130
|
readonly nodeType: NodeType;
|
|
123
131
|
readonly state: MultiAgentState;
|
|
124
132
|
readonly inner: NodeStreamUpdateInnerEvent;
|
|
133
|
+
readonly invocationState: InvocationState;
|
|
125
134
|
constructor(data: {
|
|
126
135
|
nodeId: string;
|
|
127
136
|
nodeType: NodeType;
|
|
128
137
|
state: MultiAgentState;
|
|
129
138
|
inner: NodeStreamUpdateInnerEvent;
|
|
139
|
+
invocationState: InvocationState;
|
|
130
140
|
});
|
|
131
141
|
toJSON(): Pick<NodeStreamUpdateEvent, 'type' | 'nodeId' | 'nodeType' | 'inner'>;
|
|
132
142
|
}
|
|
@@ -140,11 +150,13 @@ export declare class NodeResultEvent extends HookableEvent {
|
|
|
140
150
|
readonly nodeType: NodeType;
|
|
141
151
|
readonly state: MultiAgentState;
|
|
142
152
|
readonly result: NodeResult;
|
|
153
|
+
readonly invocationState: InvocationState;
|
|
143
154
|
constructor(data: {
|
|
144
155
|
nodeId: string;
|
|
145
156
|
nodeType: NodeType;
|
|
146
157
|
state: MultiAgentState;
|
|
147
158
|
result: NodeResult;
|
|
159
|
+
invocationState: InvocationState;
|
|
148
160
|
});
|
|
149
161
|
toJSON(): Pick<NodeResultEvent, 'type' | 'nodeId' | 'nodeType' | 'result'>;
|
|
150
162
|
}
|
|
@@ -156,10 +168,12 @@ export declare class MultiAgentHandoffEvent extends HookableEvent {
|
|
|
156
168
|
readonly source: string;
|
|
157
169
|
readonly targets: string[];
|
|
158
170
|
readonly state: MultiAgentState;
|
|
171
|
+
readonly invocationState: InvocationState;
|
|
159
172
|
constructor(data: {
|
|
160
173
|
source: string;
|
|
161
174
|
targets: string[];
|
|
162
175
|
state: MultiAgentState;
|
|
176
|
+
invocationState: InvocationState;
|
|
163
177
|
});
|
|
164
178
|
toJSON(): Pick<MultiAgentHandoffEvent, 'type' | 'source' | 'targets'>;
|
|
165
179
|
}
|
|
@@ -171,10 +185,12 @@ export declare class NodeCancelEvent extends HookableEvent {
|
|
|
171
185
|
readonly nodeId: string;
|
|
172
186
|
readonly state: MultiAgentState;
|
|
173
187
|
readonly message: string;
|
|
188
|
+
readonly invocationState: InvocationState;
|
|
174
189
|
constructor(data: {
|
|
175
190
|
nodeId: string;
|
|
176
191
|
state: MultiAgentState;
|
|
177
192
|
message: string;
|
|
193
|
+
invocationState: InvocationState;
|
|
178
194
|
});
|
|
179
195
|
toJSON(): Pick<NodeCancelEvent, 'type' | 'nodeId' | 'message'>;
|
|
180
196
|
}
|
|
@@ -185,8 +201,10 @@ export declare class NodeCancelEvent extends HookableEvent {
|
|
|
185
201
|
export declare class MultiAgentResultEvent extends HookableEvent {
|
|
186
202
|
readonly type: "multiAgentResultEvent";
|
|
187
203
|
readonly result: MultiAgentResult;
|
|
204
|
+
readonly invocationState: InvocationState;
|
|
188
205
|
constructor(data: {
|
|
189
206
|
result: MultiAgentResult;
|
|
207
|
+
invocationState: InvocationState;
|
|
190
208
|
});
|
|
191
209
|
toJSON(): Pick<MultiAgentResultEvent, 'type' | 'result'>;
|
|
192
210
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/multiagent/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/multiagent/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,aAAa;IAC3D,QAAQ,CAAC,IAAI,EAAG,4BAA4B,CAAS;IACrD,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAA;gBAErB,IAAI,EAAE;QAAE,YAAY,EAAE,UAAU,CAAA;KAAE;IAK9C,MAAM,IAAI,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC;CAGnD;AAED;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,aAAa;IAChE,QAAQ,CAAC,IAAI,EAAG,iCAAiC,CAAS;IAC1D,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;gBAE7B,IAAI,EAAE;QAAE,YAAY,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,eAAe,CAAC;QAAC,eAAe,EAAE,eAAe,CAAA;KAAE;IAOxG,MAAM,IAAI,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC;CAGxD;AAED;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,aAAa;IAC/D,QAAQ,CAAC,IAAI,EAAG,gCAAgC,CAAS;IACzD,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;gBAE7B,IAAI,EAAE;QAAE,YAAY,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,eAAe,CAAC;QAAC,eAAe,EAAE,eAAe,CAAA;KAAE;IAO/F,uBAAuB,IAAI,OAAO;IAI3C,MAAM,IAAI,IAAI,CAAC,8BAA8B,EAAE,MAAM,CAAC;CAGvD;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,QAAQ,CAAC,IAAI,EAAG,qBAAqB,CAAS;IAC9C,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IAEzC;;;;OAIG;IACH,MAAM,EAAE,OAAO,GAAG,MAAM,CAAQ;gBAEpB,IAAI,EAAE;QAChB,YAAY,EAAE,UAAU,CAAA;QACxB,KAAK,EAAE,eAAe,CAAA;QACtB,MAAM,EAAE,MAAM,CAAA;QACd,eAAe,EAAE,eAAe,CAAA;KACjC;IAQD,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,QAAQ,CAAC;CAGvD;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,QAAQ,CAAC,IAAI,EAAG,oBAAoB,CAAS;IAC7C,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;gBAEV,IAAI,EAAE;QAChB,YAAY,EAAE,UAAU,CAAA;QACxB,KAAK,EAAE,eAAe,CAAA;QACtB,MAAM,EAAE,MAAM,CAAA;QACd,eAAe,EAAE,eAAe,CAAA;QAChC,KAAK,CAAC,EAAE,KAAK,CAAA;KACd;IAWQ,uBAAuB,IAAI,OAAO;IAI3C,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;CAOzF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,0BAA0B,GAClC;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAA;CAAE,GACxG;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAA;AAE9D;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,QAAQ,CAAC,IAAI,EAAG,uBAAuB,CAAS;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,0BAA0B,CAAA;IAC1C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;gBAE7B,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,QAAQ,CAAA;QAClB,KAAK,EAAE,eAAe,CAAA;QACtB,KAAK,EAAE,0BAA0B,CAAA;QACjC,eAAe,EAAE,eAAe,CAAA;KACjC;IASD,MAAM,IAAI,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;CAGhF;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,aAAa;IAChD,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAS;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;gBAE7B,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,QAAQ,CAAA;QAClB,KAAK,EAAE,eAAe,CAAA;QACtB,MAAM,EAAE,UAAU,CAAA;QAClB,eAAe,EAAE,eAAe,CAAA;KACjC;IASD,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;CAG3E;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,QAAQ,CAAC,IAAI,EAAG,wBAAwB,CAAS;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;gBAE7B,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,eAAe,CAAC;QAAC,eAAe,EAAE,eAAe,CAAA;KAAE;IAQjH,MAAM,IAAI,IAAI,CAAC,sBAAsB,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;CAGtE;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,aAAa;IAChD,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAS;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;gBAE7B,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,eAAe,CAAA;KAAE;IAQ/G,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;CAG/D;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,QAAQ,CAAC,IAAI,EAAG,uBAAuB,CAAS;IAChD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;IACjC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;gBAE7B,IAAI,EAAE;QAAE,MAAM,EAAE,gBAAgB,CAAC;QAAC,eAAe,EAAE,eAAe,CAAA;KAAE;IAMhF,MAAM,IAAI,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,QAAQ,CAAC;CAGzD;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,+BAA+B,GAC/B,8BAA8B,GAC9B,mBAAmB,GACnB,kBAAkB,GAClB,qBAAqB,GACrB,eAAe,GACf,eAAe,GACf,sBAAsB,GACtB,qBAAqB,CAAA"}
|
|
@@ -20,10 +20,12 @@ export class BeforeMultiAgentInvocationEvent extends HookableEvent {
|
|
|
20
20
|
type = 'beforeMultiAgentInvocationEvent';
|
|
21
21
|
orchestrator;
|
|
22
22
|
state;
|
|
23
|
+
invocationState;
|
|
23
24
|
constructor(data) {
|
|
24
25
|
super();
|
|
25
26
|
this.orchestrator = data.orchestrator;
|
|
26
27
|
this.state = data.state;
|
|
28
|
+
this.invocationState = data.invocationState;
|
|
27
29
|
}
|
|
28
30
|
toJSON() {
|
|
29
31
|
return { type: this.type };
|
|
@@ -36,10 +38,12 @@ export class AfterMultiAgentInvocationEvent extends HookableEvent {
|
|
|
36
38
|
type = 'afterMultiAgentInvocationEvent';
|
|
37
39
|
orchestrator;
|
|
38
40
|
state;
|
|
41
|
+
invocationState;
|
|
39
42
|
constructor(data) {
|
|
40
43
|
super();
|
|
41
44
|
this.orchestrator = data.orchestrator;
|
|
42
45
|
this.state = data.state;
|
|
46
|
+
this.invocationState = data.invocationState;
|
|
43
47
|
}
|
|
44
48
|
_shouldReverseCallbacks() {
|
|
45
49
|
return true;
|
|
@@ -57,6 +61,7 @@ export class BeforeNodeCallEvent extends HookableEvent {
|
|
|
57
61
|
orchestrator;
|
|
58
62
|
state;
|
|
59
63
|
nodeId;
|
|
64
|
+
invocationState;
|
|
60
65
|
/**
|
|
61
66
|
* Set by hook callbacks to cancel node execution.
|
|
62
67
|
* When set to `true`, a default cancel message is used.
|
|
@@ -68,6 +73,7 @@ export class BeforeNodeCallEvent extends HookableEvent {
|
|
|
68
73
|
this.orchestrator = data.orchestrator;
|
|
69
74
|
this.state = data.state;
|
|
70
75
|
this.nodeId = data.nodeId;
|
|
76
|
+
this.invocationState = data.invocationState;
|
|
71
77
|
}
|
|
72
78
|
toJSON() {
|
|
73
79
|
return { type: this.type, nodeId: this.nodeId };
|
|
@@ -81,12 +87,14 @@ export class AfterNodeCallEvent extends HookableEvent {
|
|
|
81
87
|
orchestrator;
|
|
82
88
|
state;
|
|
83
89
|
nodeId;
|
|
90
|
+
invocationState;
|
|
84
91
|
error;
|
|
85
92
|
constructor(data) {
|
|
86
93
|
super();
|
|
87
94
|
this.orchestrator = data.orchestrator;
|
|
88
95
|
this.state = data.state;
|
|
89
96
|
this.nodeId = data.nodeId;
|
|
97
|
+
this.invocationState = data.invocationState;
|
|
90
98
|
if (data.error !== undefined) {
|
|
91
99
|
this.error = data.error;
|
|
92
100
|
}
|
|
@@ -113,12 +121,14 @@ export class NodeStreamUpdateEvent extends HookableEvent {
|
|
|
113
121
|
nodeType;
|
|
114
122
|
state;
|
|
115
123
|
inner;
|
|
124
|
+
invocationState;
|
|
116
125
|
constructor(data) {
|
|
117
126
|
super();
|
|
118
127
|
this.nodeId = data.nodeId;
|
|
119
128
|
this.nodeType = data.nodeType;
|
|
120
129
|
this.state = data.state;
|
|
121
130
|
this.inner = data.inner;
|
|
131
|
+
this.invocationState = data.invocationState;
|
|
122
132
|
}
|
|
123
133
|
toJSON() {
|
|
124
134
|
return { type: this.type, nodeId: this.nodeId, nodeType: this.nodeType, inner: this.inner };
|
|
@@ -134,12 +144,14 @@ export class NodeResultEvent extends HookableEvent {
|
|
|
134
144
|
nodeType;
|
|
135
145
|
state;
|
|
136
146
|
result;
|
|
147
|
+
invocationState;
|
|
137
148
|
constructor(data) {
|
|
138
149
|
super();
|
|
139
150
|
this.nodeId = data.nodeId;
|
|
140
151
|
this.nodeType = data.nodeType;
|
|
141
152
|
this.state = data.state;
|
|
142
153
|
this.result = data.result;
|
|
154
|
+
this.invocationState = data.invocationState;
|
|
143
155
|
}
|
|
144
156
|
toJSON() {
|
|
145
157
|
return { type: this.type, nodeId: this.nodeId, nodeType: this.nodeType, result: this.result };
|
|
@@ -153,11 +165,13 @@ export class MultiAgentHandoffEvent extends HookableEvent {
|
|
|
153
165
|
source;
|
|
154
166
|
targets;
|
|
155
167
|
state;
|
|
168
|
+
invocationState;
|
|
156
169
|
constructor(data) {
|
|
157
170
|
super();
|
|
158
171
|
this.source = data.source;
|
|
159
172
|
this.targets = data.targets;
|
|
160
173
|
this.state = data.state;
|
|
174
|
+
this.invocationState = data.invocationState;
|
|
161
175
|
}
|
|
162
176
|
toJSON() {
|
|
163
177
|
return { type: this.type, source: this.source, targets: this.targets };
|
|
@@ -171,11 +185,13 @@ export class NodeCancelEvent extends HookableEvent {
|
|
|
171
185
|
nodeId;
|
|
172
186
|
state;
|
|
173
187
|
message;
|
|
188
|
+
invocationState;
|
|
174
189
|
constructor(data) {
|
|
175
190
|
super();
|
|
176
191
|
this.nodeId = data.nodeId;
|
|
177
192
|
this.state = data.state;
|
|
178
193
|
this.message = data.message;
|
|
194
|
+
this.invocationState = data.invocationState;
|
|
179
195
|
}
|
|
180
196
|
toJSON() {
|
|
181
197
|
return { type: this.type, nodeId: this.nodeId, message: this.message };
|
|
@@ -188,9 +204,11 @@ export class NodeCancelEvent extends HookableEvent {
|
|
|
188
204
|
export class MultiAgentResultEvent extends HookableEvent {
|
|
189
205
|
type = 'multiAgentResultEvent';
|
|
190
206
|
result;
|
|
207
|
+
invocationState;
|
|
191
208
|
constructor(data) {
|
|
192
209
|
super();
|
|
193
210
|
this.result = data.result;
|
|
211
|
+
this.invocationState = data.invocationState;
|
|
194
212
|
}
|
|
195
213
|
toJSON() {
|
|
196
214
|
return { type: this.type, result: this.result };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/multiagent/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAM/D;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,aAAa;IAClD,IAAI,GAAG,4BAAqC,CAAA;IAC5C,YAAY,CAAY;IAEjC,YAAY,IAAkC;QAC5C,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;IACvC,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAA;IAC5B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,+BAAgC,SAAQ,aAAa;IACvD,IAAI,GAAG,iCAA0C,CAAA;IACjD,YAAY,CAAY;IACxB,KAAK,CAAiB;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/multiagent/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AttributeValue } from '@opentelemetry/api';
|
|
2
|
-
import type { MultiAgentInput } from './multiagent.js';
|
|
2
|
+
import type { MultiAgentInput, MultiAgentInvokeOptions } from './multiagent.js';
|
|
3
3
|
import { HookableEvent } from '../hooks/events.js';
|
|
4
4
|
import type { HookCallback, HookableEventConstructor, HookCleanup } from '../hooks/types.js';
|
|
5
5
|
import type { MultiAgentPlugin } from './plugins.js';
|
|
@@ -15,10 +15,30 @@ import { Edge } from './edge.js';
|
|
|
15
15
|
* Runtime configuration for graph execution.
|
|
16
16
|
*/
|
|
17
17
|
export interface GraphConfig {
|
|
18
|
-
/** Max nodes executing in parallel. */
|
|
18
|
+
/** Max nodes executing in parallel. Defaults to `Infinity` (no limit). */
|
|
19
19
|
maxConcurrency?: number;
|
|
20
|
-
/** Max total steps (prevents infinite loops in cyclic graphs). */
|
|
20
|
+
/** Max total steps (prevents infinite loops in cyclic graphs). Defaults to `Infinity` (no limit). */
|
|
21
21
|
maxSteps?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Wall-clock ceiling for the entire graph invocation, in milliseconds. Defaults to `Infinity`
|
|
24
|
+
* (no limit).
|
|
25
|
+
*
|
|
26
|
+
* Does not propagate into nested orchestrators wrapped via `MultiAgentNode` — a nested
|
|
27
|
+
* `Swarm`/`Graph` runs to completion under its own timeout config; the parent graph's
|
|
28
|
+
* timeout only fires once the nested node returns.
|
|
29
|
+
*/
|
|
30
|
+
timeout?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Fallback per-node wall-clock ceiling in milliseconds. Applied to any `AgentNode` that
|
|
33
|
+
* doesn't set its own `timeout`. Defaults to `Infinity` (no limit).
|
|
34
|
+
*
|
|
35
|
+
* Does not apply to `MultiAgentNode`. Set `timeout`/`nodeTimeout` on the nested
|
|
36
|
+
* orchestrator to bound it.
|
|
37
|
+
*
|
|
38
|
+
* Enforced via `AbortSignal` — cancellation is cooperative, so a tool that neither polls
|
|
39
|
+
* its cancel signal nor forwards it to a cancellable API can run past this deadline.
|
|
40
|
+
*/
|
|
41
|
+
nodeTimeout?: number;
|
|
22
42
|
}
|
|
23
43
|
/**
|
|
24
44
|
* Options for creating a Graph instance.
|
|
@@ -94,9 +114,10 @@ export declare class Graph implements MultiAgent {
|
|
|
94
114
|
* Invoke graph and return final result (consumes stream).
|
|
95
115
|
*
|
|
96
116
|
* @param input - The input to pass to entry point nodes
|
|
117
|
+
* @param options - Optional per-invocation options (e.g., {@link InvocationState})
|
|
97
118
|
* @returns Promise resolving to the final MultiAgentResult
|
|
98
119
|
*/
|
|
99
|
-
invoke(input: MultiAgentInput): Promise<MultiAgentResult>;
|
|
120
|
+
invoke(input: MultiAgentInput, options?: MultiAgentInvokeOptions): Promise<MultiAgentResult>;
|
|
100
121
|
/**
|
|
101
122
|
* Register a hook callback for a specific graph event type.
|
|
102
123
|
*
|
|
@@ -110,9 +131,10 @@ export declare class Graph implements MultiAgent {
|
|
|
110
131
|
* Invokes hook callbacks for each event before yielding.
|
|
111
132
|
*
|
|
112
133
|
* @param input - The input to pass to entry nodes
|
|
134
|
+
* @param options - Optional per-invocation options (e.g., {@link InvocationState})
|
|
113
135
|
* @returns Async generator yielding streaming events and returning a MultiAgentResult
|
|
114
136
|
*/
|
|
115
|
-
stream(input: MultiAgentInput): AsyncGenerator<MultiAgentStreamEvent, MultiAgentResult, undefined>;
|
|
137
|
+
stream(input: MultiAgentInput, options?: MultiAgentInvokeOptions): AsyncGenerator<MultiAgentStreamEvent, MultiAgentResult, undefined>;
|
|
116
138
|
private _stream;
|
|
117
139
|
/**
|
|
118
140
|
* Executes a single node, pushing streaming events to the shared queue in real-time.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/multiagent/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/multiagent/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAK/E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAA6B,IAAI,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAmB,gBAAgB,EAAsB,MAAM,YAAY,CAAA;AAClF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAWxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAMhC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,qGAAqG;IACrG,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,+DAA+D;IAC/D,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,oDAAoD;IACpD,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,6DAA6D;IAC7D,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,8CAA8C;IAC9C,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CACjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,KAAM,YAAW,UAAU;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;IACpD,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,EAAE,YAAY;IAqCjC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IASlG;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAIhH;;;;;;;OAOG;IACI,MAAM,CACX,KAAK,EAAE,eAAe,EACtB,OAAO,CAAC,EAAE,uBAAuB,GAChC,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,CAAC;YAuBtD,OAAO;IA2GtB;;OAEG;YACW,WAAW;IAsGzB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,eAAe;IAiBvB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;;;;;;;;;;;;;OAcG;YACW,kBAAkB;IA6BhC;;OAEG;YACW,yBAAyB;IAQvC,OAAO,CAAC,WAAW;IAMnB;;;;;;;;;OASG;YACW,UAAU;CAsBzB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TextBlock, contentBlockFromData } from '../types/messages.js';
|
|
2
2
|
import { logger } from '../logging/logger.js';
|
|
3
|
+
import { warnOnce } from '../logging/warn-once.js';
|
|
3
4
|
import { HookableEvent } from '../hooks/events.js';
|
|
4
5
|
import { HookRegistryImplementation } from '../hooks/registry.js';
|
|
5
6
|
import { MultiAgentPluginRegistry } from './plugins.js';
|
|
@@ -62,8 +63,13 @@ export class Graph {
|
|
|
62
63
|
this.config = {
|
|
63
64
|
maxConcurrency: config.maxConcurrency ?? Infinity,
|
|
64
65
|
maxSteps: config.maxSteps ?? Infinity,
|
|
66
|
+
timeout: config.timeout ?? Infinity,
|
|
67
|
+
nodeTimeout: config.nodeTimeout ?? Infinity,
|
|
65
68
|
};
|
|
66
69
|
this._validateConfig();
|
|
70
|
+
if (this.config.maxSteps === Infinity && this.config.timeout === Infinity) {
|
|
71
|
+
warnOnce(logger, 'graph has no maxSteps or timeout set; execution is unbounded');
|
|
72
|
+
}
|
|
67
73
|
this.nodes = this._resolveNodes(nodes);
|
|
68
74
|
this.edges = this._resolveEdges(edges);
|
|
69
75
|
this._sources = this._resolveSources(sources);
|
|
@@ -95,10 +101,11 @@ export class Graph {
|
|
|
95
101
|
* Invoke graph and return final result (consumes stream).
|
|
96
102
|
*
|
|
97
103
|
* @param input - The input to pass to entry point nodes
|
|
104
|
+
* @param options - Optional per-invocation options (e.g., {@link InvocationState})
|
|
98
105
|
* @returns Promise resolving to the final MultiAgentResult
|
|
99
106
|
*/
|
|
100
|
-
async invoke(input) {
|
|
101
|
-
const gen = this.stream(input);
|
|
107
|
+
async invoke(input, options) {
|
|
108
|
+
const gen = this.stream(input, options);
|
|
102
109
|
let next = await gen.next();
|
|
103
110
|
while (!next.done) {
|
|
104
111
|
next = await gen.next();
|
|
@@ -120,11 +127,15 @@ export class Graph {
|
|
|
120
127
|
* Invokes hook callbacks for each event before yielding.
|
|
121
128
|
*
|
|
122
129
|
* @param input - The input to pass to entry nodes
|
|
130
|
+
* @param options - Optional per-invocation options (e.g., {@link InvocationState})
|
|
123
131
|
* @returns Async generator yielding streaming events and returning a MultiAgentResult
|
|
124
132
|
*/
|
|
125
|
-
async *stream(input) {
|
|
133
|
+
async *stream(input, options) {
|
|
126
134
|
await this.initialize();
|
|
127
|
-
|
|
135
|
+
// Resolve invocationState once; the same object is threaded to every node's
|
|
136
|
+
// child agent so mutations in one node are visible in the next.
|
|
137
|
+
const invocationState = options?.invocationState ?? {};
|
|
138
|
+
const gen = this._stream(input, invocationState);
|
|
128
139
|
try {
|
|
129
140
|
let next = await gen.next();
|
|
130
141
|
while (!next.done) {
|
|
@@ -140,7 +151,7 @@ export class Graph {
|
|
|
140
151
|
await gen.return(undefined);
|
|
141
152
|
}
|
|
142
153
|
}
|
|
143
|
-
async *_stream(input) {
|
|
154
|
+
async *_stream(input, invocationState) {
|
|
144
155
|
const state = new MultiAgentState({ nodeIds: [...this.nodes.keys()] });
|
|
145
156
|
const queue = new Queue();
|
|
146
157
|
const streams = new Map();
|
|
@@ -150,18 +161,26 @@ export class Graph {
|
|
|
150
161
|
input,
|
|
151
162
|
});
|
|
152
163
|
// SessionManager (or plugins) may restore state.results here via the hook
|
|
153
|
-
yield new BeforeMultiAgentInvocationEvent({ orchestrator: this, state });
|
|
164
|
+
yield new BeforeMultiAgentInvocationEvent({ orchestrator: this, state, invocationState });
|
|
154
165
|
// Resume: if state was restored, find nodes that are ready but haven't completed otherwise start from source nodes
|
|
155
166
|
const targets = (await this._findResumeTargets(state)) ?? [...this._sources];
|
|
167
|
+
// Execution timeout: when fired, cancels all in-flight node invocations via their
|
|
168
|
+
// composed cancel signal. In-flight nodes return `stopReason: 'cancelled'`; the queue
|
|
169
|
+
// drains and the outer loop throws below when it sees the signal aborted.
|
|
170
|
+
const execController = Number.isFinite(this.config.timeout) ? new AbortController() : undefined;
|
|
171
|
+
const execTimeoutHandle = execController ? setTimeout(() => execController.abort(), this.config.timeout) : undefined;
|
|
156
172
|
let caughtError;
|
|
157
173
|
let result;
|
|
158
174
|
try {
|
|
159
175
|
while (targets.length > 0 || streams.size > 0) {
|
|
176
|
+
if (execController?.signal.aborted) {
|
|
177
|
+
throw new Error(`timeout=<${this.config.timeout}>, graph_id=<${this.id}> | graph exceeded wall-clock budget`);
|
|
178
|
+
}
|
|
160
179
|
while (targets.length > 0 && streams.size < this.config.maxConcurrency) {
|
|
161
180
|
const node = targets.shift();
|
|
162
181
|
this._checkSteps(state);
|
|
163
182
|
state.steps++;
|
|
164
|
-
streams.set(node.id, this._streamNode(node, input, state, queue, multiAgentSpan));
|
|
183
|
+
streams.set(node.id, this._streamNode(node, input, state, queue, multiAgentSpan, invocationState, execController?.signal));
|
|
165
184
|
}
|
|
166
185
|
await queue.wait();
|
|
167
186
|
while (queue.size > 0) {
|
|
@@ -186,6 +205,7 @@ export class Graph {
|
|
|
186
205
|
source: node.id,
|
|
187
206
|
targets: ready.map((n) => n.id),
|
|
188
207
|
state,
|
|
208
|
+
invocationState,
|
|
189
209
|
});
|
|
190
210
|
targets.push(...ready);
|
|
191
211
|
}
|
|
@@ -202,6 +222,8 @@ export class Graph {
|
|
|
202
222
|
throw caughtError;
|
|
203
223
|
}
|
|
204
224
|
finally {
|
|
225
|
+
if (execTimeoutHandle !== undefined)
|
|
226
|
+
clearTimeout(execTimeoutHandle);
|
|
205
227
|
queue.dispose();
|
|
206
228
|
await Promise.allSettled(streams.values());
|
|
207
229
|
this._tracer.endMultiAgentSpan(multiAgentSpan, {
|
|
@@ -209,18 +231,18 @@ export class Graph {
|
|
|
209
231
|
...(result && { usage: result.usage }),
|
|
210
232
|
...(caughtError && { error: caughtError }),
|
|
211
233
|
});
|
|
212
|
-
yield new AfterMultiAgentInvocationEvent({ orchestrator: this, state });
|
|
234
|
+
yield new AfterMultiAgentInvocationEvent({ orchestrator: this, state, invocationState });
|
|
213
235
|
}
|
|
214
|
-
yield new MultiAgentResultEvent({ result });
|
|
236
|
+
yield new MultiAgentResultEvent({ result, invocationState });
|
|
215
237
|
return result;
|
|
216
238
|
}
|
|
217
239
|
/**
|
|
218
240
|
* Executes a single node, pushing streaming events to the shared queue in real-time.
|
|
219
241
|
*/
|
|
220
|
-
async _streamNode(node, input, state, queue, multiAgentSpan) {
|
|
242
|
+
async _streamNode(node, input, state, queue, multiAgentSpan, invocationState, executionSignal) {
|
|
221
243
|
const nodeState = state.node(node.id);
|
|
222
244
|
const nodeSpan = this._tracer.withSpanContext(multiAgentSpan, () => this._tracer.startNodeSpan({ nodeId: node.id, nodeType: node.type }));
|
|
223
|
-
const beforeEvent = new BeforeNodeCallEvent({ orchestrator: this, state, nodeId: node.id });
|
|
245
|
+
const beforeEvent = new BeforeNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState });
|
|
224
246
|
await queue.send({ type: 'event', node, event: beforeEvent });
|
|
225
247
|
if (beforeEvent.cancel) {
|
|
226
248
|
const message = typeof beforeEvent.cancel === 'string' ? beforeEvent.cancel : 'node cancelled by hook';
|
|
@@ -230,32 +252,45 @@ export class Graph {
|
|
|
230
252
|
await queue.send({
|
|
231
253
|
type: 'event',
|
|
232
254
|
node,
|
|
233
|
-
event: new NodeCancelEvent({ nodeId: node.id, state, message }),
|
|
255
|
+
event: new NodeCancelEvent({ nodeId: node.id, state, message, invocationState }),
|
|
234
256
|
});
|
|
235
257
|
await queue.send({
|
|
236
258
|
type: 'event',
|
|
237
259
|
node,
|
|
238
|
-
event: new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id }),
|
|
260
|
+
event: new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState }),
|
|
239
261
|
});
|
|
240
262
|
this._tracer.endNodeSpan(nodeSpan, { status: Status.CANCELLED, duration: 0 });
|
|
241
263
|
queue.push({ type: 'result', node, result });
|
|
242
264
|
return;
|
|
243
265
|
}
|
|
266
|
+
// Per-node timeout applies only to AgentNode. MultiAgentNode wraps a nested Swarm/Graph
|
|
267
|
+
// that has its own timeout config; cancelSignal isn't yet plumbed into nested orchestrators
|
|
268
|
+
// so bounding belongs on the child.
|
|
269
|
+
const nodeTimeout = node instanceof AgentNode ? (node.timeout ?? this.config.nodeTimeout) : Infinity;
|
|
270
|
+
const nodeTimeoutController = Number.isFinite(nodeTimeout) ? new AbortController() : undefined;
|
|
271
|
+
const nodeTimeoutHandle = nodeTimeoutController
|
|
272
|
+
? setTimeout(() => nodeTimeoutController.abort(), nodeTimeout)
|
|
273
|
+
: undefined;
|
|
274
|
+
const signals = [executionSignal, nodeTimeoutController?.signal].filter((s) => s !== undefined);
|
|
275
|
+
const cancelSignal = signals.length > 0 ? AbortSignal.any(signals) : undefined;
|
|
244
276
|
try {
|
|
245
277
|
const nodeInput = this._resolveNodeInput(node, input, state);
|
|
246
|
-
const gen = this._tracer.withSpanContext(nodeSpan, () => node.stream(nodeInput, state));
|
|
278
|
+
const gen = this._tracer.withSpanContext(nodeSpan, () => node.stream(nodeInput, state, { invocationState, ...(cancelSignal && { cancelSignal }) }));
|
|
247
279
|
let next = await this._tracer.withSpanContext(nodeSpan, () => gen.next());
|
|
248
280
|
while (!next.done) {
|
|
249
281
|
await queue.send({ type: 'event', node, event: next.value });
|
|
250
282
|
next = await this._tracer.withSpanContext(nodeSpan, () => gen.next());
|
|
251
283
|
}
|
|
284
|
+
if (nodeTimeoutController?.signal.aborted) {
|
|
285
|
+
throw new Error(`node_timeout=<${nodeTimeout}>, node_id=<${node.id}>, graph_id=<${this.id}> | node exceeded wall-clock budget`);
|
|
286
|
+
}
|
|
252
287
|
const result = next.value;
|
|
253
288
|
this._tracer.endNodeSpan(nodeSpan, { status: result.status, duration: result.duration, usage: result.usage });
|
|
254
289
|
queue.push({ type: 'result', node, result });
|
|
255
290
|
await queue.send({
|
|
256
291
|
type: 'event',
|
|
257
292
|
node,
|
|
258
|
-
event: new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id }),
|
|
293
|
+
event: new AfterNodeCallEvent({ orchestrator: this, state, nodeId: node.id, invocationState }),
|
|
259
294
|
});
|
|
260
295
|
}
|
|
261
296
|
catch (error) {
|
|
@@ -268,6 +303,7 @@ export class Graph {
|
|
|
268
303
|
orchestrator: this,
|
|
269
304
|
state,
|
|
270
305
|
nodeId: node.id,
|
|
306
|
+
invocationState,
|
|
271
307
|
error: nodeError,
|
|
272
308
|
}),
|
|
273
309
|
});
|
|
@@ -277,6 +313,10 @@ export class Graph {
|
|
|
277
313
|
error: nodeError,
|
|
278
314
|
});
|
|
279
315
|
}
|
|
316
|
+
finally {
|
|
317
|
+
if (nodeTimeoutHandle !== undefined)
|
|
318
|
+
clearTimeout(nodeTimeoutHandle);
|
|
319
|
+
}
|
|
280
320
|
}
|
|
281
321
|
_validateConfig() {
|
|
282
322
|
if (this.config.maxConcurrency < 1) {
|
|
@@ -285,6 +325,12 @@ export class Graph {
|
|
|
285
325
|
if (this.config.maxSteps < 1) {
|
|
286
326
|
throw new Error(`max_steps=<${this.config.maxSteps}> | must be at least 1`);
|
|
287
327
|
}
|
|
328
|
+
if (this.config.timeout < 1) {
|
|
329
|
+
throw new Error(`timeout=<${this.config.timeout}> | must be at least 1`);
|
|
330
|
+
}
|
|
331
|
+
if (this.config.nodeTimeout < 1) {
|
|
332
|
+
throw new Error(`node_timeout=<${this.config.nodeTimeout}> | must be at least 1`);
|
|
333
|
+
}
|
|
288
334
|
}
|
|
289
335
|
_validateSources() {
|
|
290
336
|
if (this._sources.length === 0) {
|