@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
package/README.md
CHANGED
|
@@ -47,6 +47,7 @@ Strands Agents is a simple yet powerful SDK that takes a model-driven approach t
|
|
|
47
47
|
- **⚡ Streaming Support**: Real-time response streaming for better user experience
|
|
48
48
|
- **🎣 Extensible Hooks**: Lifecycle hooks for monitoring and customizing agent behavior
|
|
49
49
|
- **💬 Conversation Management**: Flexible strategies for managing conversation history and context windows
|
|
50
|
+
- **🤝 Multi-Agent Orchestration**: Graph and Swarm patterns for coordinating multiple agents
|
|
50
51
|
|
|
51
52
|
---
|
|
52
53
|
|
|
@@ -235,6 +236,69 @@ await agent.invoke("Use a random tool from the MCP server.");
|
|
|
235
236
|
await documentationTools.disconnect();
|
|
236
237
|
```
|
|
237
238
|
|
|
239
|
+
### Multi-Agent Orchestration
|
|
240
|
+
|
|
241
|
+
Coordinate multiple agents using built-in orchestration patterns.
|
|
242
|
+
|
|
243
|
+
**Graph** — You define a deterministic execution plan. Agents run as nodes in a directed graph, with edges controlling execution order. Parallel execution is supported, and downstream nodes run once all dependencies complete.
|
|
244
|
+
|
|
245
|
+
```typescript
|
|
246
|
+
import { Agent, BedrockModel, Graph } from '@strands-agents/sdk'
|
|
247
|
+
|
|
248
|
+
const model = new BedrockModel({ maxTokens: 1024 })
|
|
249
|
+
|
|
250
|
+
const researcher = new Agent({
|
|
251
|
+
model,
|
|
252
|
+
id: 'researcher',
|
|
253
|
+
systemPrompt: 'Research the topic and provide key facts.',
|
|
254
|
+
})
|
|
255
|
+
|
|
256
|
+
const writer = new Agent({
|
|
257
|
+
model,
|
|
258
|
+
id: 'writer',
|
|
259
|
+
systemPrompt: 'Rewrite the research into a polished paragraph.',
|
|
260
|
+
})
|
|
261
|
+
|
|
262
|
+
const graph = new Graph({
|
|
263
|
+
nodes: [researcher, writer],
|
|
264
|
+
edges: [['researcher', 'writer']],
|
|
265
|
+
})
|
|
266
|
+
|
|
267
|
+
const result = await graph.invoke('What is the largest ocean?')
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
**Swarm** — The agents decide the routing. Each agent chooses whether to hand off to another agent or produce a final response, making the execution path dynamic and model-driven.
|
|
271
|
+
|
|
272
|
+
```typescript
|
|
273
|
+
import { Agent, BedrockModel, Swarm } from '@strands-agents/sdk'
|
|
274
|
+
|
|
275
|
+
const model = new BedrockModel({ maxTokens: 1024 })
|
|
276
|
+
|
|
277
|
+
const researcher = new Agent({
|
|
278
|
+
model,
|
|
279
|
+
id: 'researcher',
|
|
280
|
+
description: 'Researches a topic and gathers key facts.',
|
|
281
|
+
systemPrompt: 'Research the answer, then hand off to the writer.',
|
|
282
|
+
})
|
|
283
|
+
|
|
284
|
+
const writer = new Agent({
|
|
285
|
+
model,
|
|
286
|
+
id: 'writer',
|
|
287
|
+
description: 'Writes a polished final answer.',
|
|
288
|
+
systemPrompt: 'Write the final answer. Do not hand off.',
|
|
289
|
+
})
|
|
290
|
+
|
|
291
|
+
const swarm = new Swarm({
|
|
292
|
+
nodes: [researcher, writer],
|
|
293
|
+
start: 'researcher',
|
|
294
|
+
maxSteps: 4,
|
|
295
|
+
})
|
|
296
|
+
|
|
297
|
+
const result = await swarm.invoke('What is the largest ocean?')
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
Both patterns support streaming via `.stream()` for real-time access to handoff and node execution events. See the [examples](./examples/) directory for complete working samples.
|
|
301
|
+
|
|
238
302
|
---
|
|
239
303
|
|
|
240
304
|
## Documentation
|
|
@@ -6,6 +6,16 @@ import type { Agent } from '../agent/agent.js';
|
|
|
6
6
|
import { Message } from '../types/messages.js';
|
|
7
7
|
import type { Role } from '../types/messages.js';
|
|
8
8
|
import type { JSONValue } from '../types/json.js';
|
|
9
|
+
import { ToolRegistry } from '../registry/tool-registry.js';
|
|
10
|
+
import type { HookableEvent } from '../hooks/events.js';
|
|
11
|
+
import type { HookableEventConstructor, HookCallback } from '../hooks/types.js';
|
|
12
|
+
/**
|
|
13
|
+
* A hook registration captured by the mock agent's addHook.
|
|
14
|
+
*/
|
|
15
|
+
export type TrackedHook = {
|
|
16
|
+
eventType: HookableEventConstructor<HookableEvent>;
|
|
17
|
+
callback: HookCallback<HookableEvent>;
|
|
18
|
+
};
|
|
9
19
|
/**
|
|
10
20
|
* Data for creating a mock Agent.
|
|
11
21
|
*/
|
|
@@ -17,16 +27,31 @@ export interface MockAgentData {
|
|
|
17
27
|
/**
|
|
18
28
|
* Initial state for the agent.
|
|
19
29
|
*/
|
|
20
|
-
|
|
30
|
+
appState?: Record<string, JSONValue>;
|
|
31
|
+
/**
|
|
32
|
+
* Optional tool registry for the agent.
|
|
33
|
+
*/
|
|
34
|
+
toolRegistry?: ToolRegistry;
|
|
35
|
+
/**
|
|
36
|
+
* Additional properties to spread onto the mock agent.
|
|
37
|
+
*/
|
|
38
|
+
extra?: Partial<Agent>;
|
|
21
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* A mock Agent with a `trackedHooks` array populated by `addHook` calls.
|
|
42
|
+
*/
|
|
43
|
+
export type MockAgent = Agent & {
|
|
44
|
+
trackedHooks: TrackedHook[];
|
|
45
|
+
};
|
|
22
46
|
/**
|
|
23
47
|
* Helper to create a mock Agent for testing.
|
|
24
|
-
* Provides minimal Agent interface with messages and
|
|
48
|
+
* Provides minimal Agent interface with messages, appState, and tool registry.
|
|
49
|
+
* `addHook` captures registrations into `trackedHooks` for test inspection.
|
|
25
50
|
*
|
|
26
51
|
* @param data - Optional mock agent data
|
|
27
|
-
* @returns Mock Agent
|
|
52
|
+
* @returns Mock Agent with trackedHooks
|
|
28
53
|
*/
|
|
29
|
-
export declare function createMockAgent(data?: MockAgentData):
|
|
54
|
+
export declare function createMockAgent(data?: MockAgentData): MockAgent;
|
|
30
55
|
/**
|
|
31
56
|
* Creates a Message with the given role containing a single TextBlock.
|
|
32
57
|
*
|
|
@@ -35,4 +60,12 @@ export declare function createMockAgent(data?: MockAgentData): Agent;
|
|
|
35
60
|
* @returns A Message with the specified role
|
|
36
61
|
*/
|
|
37
62
|
export declare function textMessage(role: Role, text: string): Message;
|
|
63
|
+
/**
|
|
64
|
+
* Finds the tracked hook for the given event type and invokes it with the provided event.
|
|
65
|
+
* Throws if no hook is registered for that event type.
|
|
66
|
+
*
|
|
67
|
+
* @param agent - The mock agent with tracked hooks
|
|
68
|
+
* @param event - The event instance to dispatch
|
|
69
|
+
*/
|
|
70
|
+
export declare function invokeTrackedHook<T extends HookableEvent>(agent: MockAgent, event: T): Promise<void>;
|
|
38
71
|
//# sourceMappingURL=agent-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-helpers.d.ts","sourceRoot":"","sources":["../../../src/__fixtures__/agent-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAa,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"agent-helpers.d.ts","sourceRoot":"","sources":["../../../src/__fixtures__/agent-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAa,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAE/E;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,wBAAwB,CAAC,aAAa,CAAC,CAAA;IAClD,QAAQ,EAAE,YAAY,CAAC,aAAa,CAAC,CAAA;CACtC,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACpC;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAAE,YAAY,EAAE,WAAW,EAAE,CAAA;CAAE,CAAA;AAE/D;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAgB/D;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1G"}
|
|
@@ -3,18 +3,31 @@
|
|
|
3
3
|
* This module provides utilities for testing Agent-related implementations.
|
|
4
4
|
*/
|
|
5
5
|
import { Message, TextBlock } from '../types/messages.js';
|
|
6
|
-
import {
|
|
6
|
+
import { StateStore } from '../state-store.js';
|
|
7
|
+
import { ToolRegistry } from '../registry/tool-registry.js';
|
|
7
8
|
/**
|
|
8
9
|
* Helper to create a mock Agent for testing.
|
|
9
|
-
* Provides minimal Agent interface with messages and
|
|
10
|
+
* Provides minimal Agent interface with messages, appState, and tool registry.
|
|
11
|
+
* `addHook` captures registrations into `trackedHooks` for test inspection.
|
|
10
12
|
*
|
|
11
13
|
* @param data - Optional mock agent data
|
|
12
|
-
* @returns Mock Agent
|
|
14
|
+
* @returns Mock Agent with trackedHooks
|
|
13
15
|
*/
|
|
14
16
|
export function createMockAgent(data) {
|
|
17
|
+
const trackedHooks = [];
|
|
15
18
|
return {
|
|
16
19
|
messages: data?.messages ?? [],
|
|
17
|
-
|
|
20
|
+
appState: new StateStore(data?.appState ?? {}),
|
|
21
|
+
toolRegistry: data?.toolRegistry ?? new ToolRegistry(),
|
|
22
|
+
addHook: (eventType, callback) => {
|
|
23
|
+
trackedHooks.push({
|
|
24
|
+
eventType: eventType,
|
|
25
|
+
callback: callback,
|
|
26
|
+
});
|
|
27
|
+
return () => { };
|
|
28
|
+
},
|
|
29
|
+
...data?.extra,
|
|
30
|
+
trackedHooks,
|
|
18
31
|
};
|
|
19
32
|
}
|
|
20
33
|
/**
|
|
@@ -27,4 +40,18 @@ export function createMockAgent(data) {
|
|
|
27
40
|
export function textMessage(role, text) {
|
|
28
41
|
return new Message({ role, content: [new TextBlock(text)] });
|
|
29
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Finds the tracked hook for the given event type and invokes it with the provided event.
|
|
45
|
+
* Throws if no hook is registered for that event type.
|
|
46
|
+
*
|
|
47
|
+
* @param agent - The mock agent with tracked hooks
|
|
48
|
+
* @param event - The event instance to dispatch
|
|
49
|
+
*/
|
|
50
|
+
export async function invokeTrackedHook(agent, event) {
|
|
51
|
+
const hook = agent.trackedHooks.find((h) => h.eventType === event.constructor);
|
|
52
|
+
if (!hook) {
|
|
53
|
+
throw new Error(`No hook registered for event type: ${event.constructor.name}`);
|
|
54
|
+
}
|
|
55
|
+
await hook.callback(event);
|
|
56
|
+
}
|
|
30
57
|
//# sourceMappingURL=agent-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-helpers.js","sourceRoot":"","sources":["../../../src/__fixtures__/agent-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"agent-helpers.js","sourceRoot":"","sources":["../../../src/__fixtures__/agent-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAuC3D;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAAoB;IAClD,MAAM,YAAY,GAAkB,EAAE,CAAA;IACtC,OAAO;QACL,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE;QAC9B,QAAQ,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC9C,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,IAAI,YAAY,EAAE;QACtD,OAAO,EAAE,CAA0B,SAAsC,EAAE,QAAyB,EAAE,EAAE;YACtG,YAAY,CAAC,IAAI,CAAC;gBAChB,SAAS,EAAE,SAAoD;gBAC/D,QAAQ,EAAE,QAAuC;aAClD,CAAC,CAAA;YACF,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QACjB,CAAC;QACD,GAAG,IAAI,EAAE,KAAK;QACd,YAAY;KACW,CAAA;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAU,EAAE,IAAY;IAClD,OAAO,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAA0B,KAAgB,EAAE,KAAQ;IACzF,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,WAAW,CAAC,CAAA;IAC9E,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;IACjF,CAAC;IACD,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC5B,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test helpers for asserting on AgentMetrics in agent tests.
|
|
3
|
+
*/
|
|
4
|
+
import type { Usage } from '../models/streaming.js';
|
|
5
|
+
import { AgentMetrics } from '../telemetry/meter.js';
|
|
6
|
+
/**
|
|
7
|
+
* Options for building an AgentMetrics matcher.
|
|
8
|
+
*/
|
|
9
|
+
export interface LoopMetricsMatcher {
|
|
10
|
+
/**
|
|
11
|
+
* Expected number of agent loop cycles.
|
|
12
|
+
*/
|
|
13
|
+
cycleCount: number;
|
|
14
|
+
/**
|
|
15
|
+
* Expected tool names that were invoked.
|
|
16
|
+
*/
|
|
17
|
+
toolNames?: string[];
|
|
18
|
+
/**
|
|
19
|
+
* Expected accumulated token usage. When provided, asserts exact values.
|
|
20
|
+
* When omitted, asserts the shape with expect.any(Number).
|
|
21
|
+
*/
|
|
22
|
+
usage?: Usage;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Creates an asymmetric matcher that validates AgentMetrics structure and values.
|
|
26
|
+
*
|
|
27
|
+
* @param options - Expected metric values
|
|
28
|
+
* @returns An asymmetric matcher suitable for use in expect().toEqual()
|
|
29
|
+
*/
|
|
30
|
+
export declare function expectLoopMetrics(options: LoopMetricsMatcher): AgentMetrics;
|
|
31
|
+
/**
|
|
32
|
+
* Finds the latest data point value for a named metric from OTEL ResourceMetrics.
|
|
33
|
+
*
|
|
34
|
+
* Flattens the ResourceMetrics → ScopeMetrics → MetricData hierarchy and
|
|
35
|
+
* returns the value of the last data point for the matching metric name.
|
|
36
|
+
* For counters this is a number; for histograms it is an object with
|
|
37
|
+
* sum, count, min, max, etc.
|
|
38
|
+
*
|
|
39
|
+
* @param resourceMetrics - Array of ResourceMetrics from an InMemoryMetricExporter
|
|
40
|
+
* @param metricName - The metric descriptor name to search for
|
|
41
|
+
* @returns The value of the last data point, or undefined if not found
|
|
42
|
+
*/
|
|
43
|
+
export declare function findMetricValue(resourceMetrics: {
|
|
44
|
+
scopeMetrics: {
|
|
45
|
+
metrics: {
|
|
46
|
+
descriptor: {
|
|
47
|
+
name: string;
|
|
48
|
+
};
|
|
49
|
+
dataPoints: {
|
|
50
|
+
value: unknown;
|
|
51
|
+
}[];
|
|
52
|
+
}[];
|
|
53
|
+
}[];
|
|
54
|
+
}[], metricName: string): unknown;
|
|
55
|
+
//# sourceMappingURL=metrics-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics-helpers.d.ts","sourceRoot":"","sources":["../../../src/__fixtures__/metrics-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,YAAY,CA2B3E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE;IACf,YAAY,EAAE;QAAE,OAAO,EAAE;YAAE,UAAU,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,UAAU,EAAE;gBAAE,KAAK,EAAE,OAAO,CAAA;aAAE,EAAE,CAAA;SAAE,EAAE,CAAA;KAAE,EAAE,CAAA;CAClG,EAAE,EACH,UAAU,EAAE,MAAM,GACjB,OAAO,CAQT"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test helpers for asserting on AgentMetrics in agent tests.
|
|
3
|
+
*/
|
|
4
|
+
import { expect } from 'vitest';
|
|
5
|
+
import { AgentMetrics } from '../telemetry/meter.js';
|
|
6
|
+
/**
|
|
7
|
+
* Creates an asymmetric matcher that validates AgentMetrics structure and values.
|
|
8
|
+
*
|
|
9
|
+
* @param options - Expected metric values
|
|
10
|
+
* @returns An asymmetric matcher suitable for use in expect().toEqual()
|
|
11
|
+
*/
|
|
12
|
+
export function expectLoopMetrics(options) {
|
|
13
|
+
const { cycleCount, toolNames = [], usage } = options;
|
|
14
|
+
const expectedToolMetrics = {};
|
|
15
|
+
for (const name of toolNames) {
|
|
16
|
+
expectedToolMetrics[name] = {
|
|
17
|
+
callCount: expect.any(Number),
|
|
18
|
+
successCount: expect.any(Number),
|
|
19
|
+
errorCount: expect.any(Number),
|
|
20
|
+
totalTime: expect.any(Number),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const expectedUsage = usage ??
|
|
24
|
+
expect.objectContaining({
|
|
25
|
+
inputTokens: expect.any(Number),
|
|
26
|
+
outputTokens: expect.any(Number),
|
|
27
|
+
totalTokens: expect.any(Number),
|
|
28
|
+
});
|
|
29
|
+
return expect.objectContaining({
|
|
30
|
+
cycleCount,
|
|
31
|
+
toolMetrics: toolNames.length > 0 ? expect.objectContaining(expectedToolMetrics) : {},
|
|
32
|
+
accumulatedUsage: expectedUsage,
|
|
33
|
+
accumulatedMetrics: { latencyMs: expect.any(Number) },
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Finds the latest data point value for a named metric from OTEL ResourceMetrics.
|
|
38
|
+
*
|
|
39
|
+
* Flattens the ResourceMetrics → ScopeMetrics → MetricData hierarchy and
|
|
40
|
+
* returns the value of the last data point for the matching metric name.
|
|
41
|
+
* For counters this is a number; for histograms it is an object with
|
|
42
|
+
* sum, count, min, max, etc.
|
|
43
|
+
*
|
|
44
|
+
* @param resourceMetrics - Array of ResourceMetrics from an InMemoryMetricExporter
|
|
45
|
+
* @param metricName - The metric descriptor name to search for
|
|
46
|
+
* @returns The value of the last data point, or undefined if not found
|
|
47
|
+
*/
|
|
48
|
+
export function findMetricValue(resourceMetrics, metricName) {
|
|
49
|
+
const dp = resourceMetrics
|
|
50
|
+
.flatMap((rm) => rm.scopeMetrics)
|
|
51
|
+
.flatMap((sm) => sm.metrics)
|
|
52
|
+
.filter((m) => m.descriptor.name === metricName)
|
|
53
|
+
.flatMap((m) => m.dataPoints)
|
|
54
|
+
.at(-1);
|
|
55
|
+
return dp?.value;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=metrics-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics-helpers.js","sourceRoot":"","sources":["../../../src/__fixtures__/metrics-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAuBpD;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAErD,MAAM,mBAAmB,GAA4B,EAAE,CAAA;IACvD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,mBAAmB,CAAC,IAAI,CAAC,GAAG;YAC1B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7B,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YAChC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YAC9B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;SAC9B,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GACjB,KAAK;QACL,MAAM,CAAC,gBAAgB,CAAC;YACtB,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/B,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YAChC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;SAChC,CAAC,CAAA;IAEJ,OAAO,MAAM,CAAC,gBAAgB,CAAC;QAC7B,UAAU;QACV,WAAW,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE;QACrF,gBAAgB,EAAE,aAAa;QAC/B,kBAAkB,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;KACtD,CAAiB,CAAA;AACpB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAC7B,eAEG,EACH,UAAkB;IAElB,MAAM,EAAE,GAAG,eAAe;SACvB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC;SAChC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;SAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC;SAC/C,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;SAC5B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACT,OAAO,EAAE,EAAE,KAAK,CAAA;AAClB,CAAC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { Model } from '../models/model.js';
|
|
8
8
|
import type { Message, StopReason } from '../types/messages.js';
|
|
9
|
-
import type { ModelStreamEvent } from '../models/streaming.js';
|
|
9
|
+
import type { ModelStreamEvent, Usage } from '../models/streaming.js';
|
|
10
10
|
import type { BaseModelConfig, StreamOptions } from '../models/model.js';
|
|
11
11
|
import type { PlainContentBlock } from './slim-types.js';
|
|
12
12
|
/**
|
|
@@ -35,7 +35,7 @@ export declare class MockMessageModel extends Model<BaseModelConfig> {
|
|
|
35
35
|
* Returns this for method chaining.
|
|
36
36
|
*
|
|
37
37
|
* @param turn - ContentBlock, ContentBlock[], or Error to add
|
|
38
|
-
* @param
|
|
38
|
+
* @param options - Optional stop reason and token usage
|
|
39
39
|
* @returns This provider for chaining
|
|
40
40
|
*
|
|
41
41
|
* @example
|
|
@@ -43,11 +43,15 @@ export declare class MockMessageModel extends Model<BaseModelConfig> {
|
|
|
43
43
|
* provider
|
|
44
44
|
* .addTurn({ type: 'textBlock', text: 'Hello' }) // Single block
|
|
45
45
|
* .addTurn([{ type: 'toolUseBlock', ... }]) // Array of blocks
|
|
46
|
-
* .addTurn({ type: 'textBlock', text: 'Done' }, 'maxTokens') // Explicit stopReason
|
|
46
|
+
* .addTurn({ type: 'textBlock', text: 'Done' }, { stopReason: 'maxTokens' }) // Explicit stopReason
|
|
47
|
+
* .addTurn({ type: 'textBlock', text: 'Hi' }, { usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 } })
|
|
47
48
|
* .addTurn(new Error('Failed')) // Error turn
|
|
48
49
|
* ```
|
|
49
50
|
*/
|
|
50
|
-
addTurn(turn: ContentBlockInput,
|
|
51
|
+
addTurn(turn: ContentBlockInput, options?: {
|
|
52
|
+
stopReason?: StopReason;
|
|
53
|
+
usage?: Usage;
|
|
54
|
+
}): this;
|
|
51
55
|
/**
|
|
52
56
|
* Updates the model configuration.
|
|
53
57
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-message-model.d.ts","sourceRoot":"","sources":["../../../src/__fixtures__/mock-message-model.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"mock-message-model.d.ts","sourceRoot":"","sources":["../../../src/__fixtures__/mock-message-model.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAExD;;GAEG;AACH,KAAK,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,KAAK,CAAA;AAUxE;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,eAAe,CAAC;IAC1D,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAiB;IAEhC;;OAEG;;IAQH;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI;IAK5F;;;;OAIG;IACH,YAAY,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;IAIhD;;;;OAIG;IACH,SAAS,IAAI,eAAe;IAI5B;;;;;;;;;;OAUG;IACI,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC,gBAAgB,CAAC;IA4B/F;;;OAGG;YACY,yBAAyB;IAuBxC;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBnB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;YACY,yBAAyB;IAcxC;;OAEG;YACY,uBAAuB;CA8FvC"}
|
|
@@ -34,7 +34,7 @@ export class MockMessageModel extends Model {
|
|
|
34
34
|
* Returns this for method chaining.
|
|
35
35
|
*
|
|
36
36
|
* @param turn - ContentBlock, ContentBlock[], or Error to add
|
|
37
|
-
* @param
|
|
37
|
+
* @param options - Optional stop reason and token usage
|
|
38
38
|
* @returns This provider for chaining
|
|
39
39
|
*
|
|
40
40
|
* @example
|
|
@@ -42,12 +42,13 @@ export class MockMessageModel extends Model {
|
|
|
42
42
|
* provider
|
|
43
43
|
* .addTurn({ type: 'textBlock', text: 'Hello' }) // Single block
|
|
44
44
|
* .addTurn([{ type: 'toolUseBlock', ... }]) // Array of blocks
|
|
45
|
-
* .addTurn({ type: 'textBlock', text: 'Done' }, 'maxTokens') // Explicit stopReason
|
|
45
|
+
* .addTurn({ type: 'textBlock', text: 'Done' }, { stopReason: 'maxTokens' }) // Explicit stopReason
|
|
46
|
+
* .addTurn({ type: 'textBlock', text: 'Hi' }, { usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 } })
|
|
46
47
|
* .addTurn(new Error('Failed')) // Error turn
|
|
47
48
|
* ```
|
|
48
49
|
*/
|
|
49
|
-
addTurn(turn,
|
|
50
|
-
this._turns.push(this._createTurn(turn, stopReason));
|
|
50
|
+
addTurn(turn, options) {
|
|
51
|
+
this._turns.push(this._createTurn(turn, options?.stopReason, options?.usage));
|
|
51
52
|
return this;
|
|
52
53
|
}
|
|
53
54
|
/**
|
|
@@ -97,13 +98,13 @@ export class MockMessageModel extends Model {
|
|
|
97
98
|
throw turn.error;
|
|
98
99
|
}
|
|
99
100
|
// Generate events for content turn
|
|
100
|
-
yield* this._generateEventsForContent(turn.content, turn.stopReason);
|
|
101
|
+
yield* this._generateEventsForContent(turn.content, turn.stopReason, turn.usage);
|
|
101
102
|
}
|
|
102
103
|
/**
|
|
103
104
|
* Generates appropriate ModelStreamEvents for content blocks.
|
|
104
105
|
* All messages have role 'assistant' since this is for testing model responses.
|
|
105
106
|
*/
|
|
106
|
-
async *_generateEventsForContent(content, stopReason) {
|
|
107
|
+
async *_generateEventsForContent(content, stopReason, usage) {
|
|
107
108
|
// Yield message start event (always assistant role)
|
|
108
109
|
yield { type: 'modelMessageStartEvent', role: 'assistant' };
|
|
109
110
|
// Yield events for each content block
|
|
@@ -113,11 +114,15 @@ export class MockMessageModel extends Model {
|
|
|
113
114
|
}
|
|
114
115
|
// Yield message stop event
|
|
115
116
|
yield { type: 'modelMessageStopEvent', stopReason };
|
|
117
|
+
// Yield metadata event with token usage when provided
|
|
118
|
+
if (usage) {
|
|
119
|
+
yield { type: 'modelMetadataEvent', usage };
|
|
120
|
+
}
|
|
116
121
|
}
|
|
117
122
|
/**
|
|
118
123
|
* Creates a Turn object from ContentBlock(s) or Error.
|
|
119
124
|
*/
|
|
120
|
-
_createTurn(turn, explicitStopReason) {
|
|
125
|
+
_createTurn(turn, explicitStopReason, usage) {
|
|
121
126
|
if (turn instanceof Error) {
|
|
122
127
|
return { type: 'error', error: turn };
|
|
123
128
|
}
|
|
@@ -127,6 +132,7 @@ export class MockMessageModel extends Model {
|
|
|
127
132
|
type: 'content',
|
|
128
133
|
content,
|
|
129
134
|
stopReason: explicitStopReason ?? this._deriveStopReason(content),
|
|
135
|
+
...(usage !== undefined && { usage }),
|
|
130
136
|
};
|
|
131
137
|
}
|
|
132
138
|
/**
|
|
@@ -210,6 +216,18 @@ export class MockMessageModel extends Model {
|
|
|
210
216
|
// GuardContentBlock is handled by guardrails and doesn't generate model events
|
|
211
217
|
// This is typically used in system prompts or message content for guardrail evaluation
|
|
212
218
|
break;
|
|
219
|
+
case 'citationsBlock':
|
|
220
|
+
yield { type: 'modelContentBlockStartEvent' };
|
|
221
|
+
yield {
|
|
222
|
+
type: 'modelContentBlockDeltaEvent',
|
|
223
|
+
delta: {
|
|
224
|
+
type: 'citationsDelta',
|
|
225
|
+
citations: block.citations,
|
|
226
|
+
content: block.content,
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
yield { type: 'modelContentBlockStopEvent' };
|
|
230
|
+
break;
|
|
213
231
|
case 'imageBlock':
|
|
214
232
|
case 'videoBlock':
|
|
215
233
|
case 'documentBlock':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-message-model.js","sourceRoot":"","sources":["../../../src/__fixtures__/mock-message-model.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"mock-message-model.js","sourceRoot":"","sources":["../../../src/__fixtures__/mock-message-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock OpenTelemetry Meter for testing metric instrument emission.
|
|
3
|
+
* Records all counter and histogram data points for assertion.
|
|
4
|
+
*/
|
|
5
|
+
import type { Attributes } from '@opentelemetry/api';
|
|
6
|
+
export interface MockDataPoint {
|
|
7
|
+
value: number;
|
|
8
|
+
attributes: Attributes | undefined;
|
|
9
|
+
}
|
|
10
|
+
export declare class MockCounter {
|
|
11
|
+
readonly dataPoints: MockDataPoint[];
|
|
12
|
+
add(value: number, attributes?: Attributes): void;
|
|
13
|
+
get sum(): number;
|
|
14
|
+
}
|
|
15
|
+
export declare class MockHistogram {
|
|
16
|
+
readonly dataPoints: MockDataPoint[];
|
|
17
|
+
record(value: number, attributes?: Attributes): void;
|
|
18
|
+
get sum(): number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Mock OTEL Meter that tracks created instruments by name.
|
|
22
|
+
* Cast to `Meter` when passing to `vi.spyOn(otelMetrics, 'getMeter')`.
|
|
23
|
+
*/
|
|
24
|
+
export declare class MockMeter {
|
|
25
|
+
private readonly _counters;
|
|
26
|
+
private readonly _histograms;
|
|
27
|
+
createCounter(name: string): MockCounter;
|
|
28
|
+
createHistogram(name: string): MockHistogram;
|
|
29
|
+
getCounter(name: string): MockCounter | undefined;
|
|
30
|
+
getHistogram(name: string): MockHistogram | undefined;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=mock-meter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-meter.d.ts","sourceRoot":"","sources":["../../../src/__fixtures__/mock-meter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,UAAU,GAAG,SAAS,CAAA;CACnC;AAED,qBAAa,WAAW;IACtB,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,CAAK;IAEzC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;IAIjD,IAAI,GAAG,IAAI,MAAM,CAEhB;CACF;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,CAAK;IAEzC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;IAIpD,IAAI,GAAG,IAAI,MAAM,CAEhB;CACF;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAE/D,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAMxC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAM5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIjD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;CAGtD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock OpenTelemetry Meter for testing metric instrument emission.
|
|
3
|
+
* Records all counter and histogram data points for assertion.
|
|
4
|
+
*/
|
|
5
|
+
export class MockCounter {
|
|
6
|
+
dataPoints = [];
|
|
7
|
+
add(value, attributes) {
|
|
8
|
+
this.dataPoints.push({ value, attributes });
|
|
9
|
+
}
|
|
10
|
+
get sum() {
|
|
11
|
+
return this.dataPoints.reduce((acc, dp) => acc + dp.value, 0);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export class MockHistogram {
|
|
15
|
+
dataPoints = [];
|
|
16
|
+
record(value, attributes) {
|
|
17
|
+
this.dataPoints.push({ value, attributes });
|
|
18
|
+
}
|
|
19
|
+
get sum() {
|
|
20
|
+
return this.dataPoints.reduce((acc, dp) => acc + dp.value, 0);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Mock OTEL Meter that tracks created instruments by name.
|
|
25
|
+
* Cast to `Meter` when passing to `vi.spyOn(otelMetrics, 'getMeter')`.
|
|
26
|
+
*/
|
|
27
|
+
export class MockMeter {
|
|
28
|
+
_counters = new Map();
|
|
29
|
+
_histograms = new Map();
|
|
30
|
+
createCounter(name) {
|
|
31
|
+
const counter = new MockCounter();
|
|
32
|
+
this._counters.set(name, counter);
|
|
33
|
+
return counter;
|
|
34
|
+
}
|
|
35
|
+
createHistogram(name) {
|
|
36
|
+
const histogram = new MockHistogram();
|
|
37
|
+
this._histograms.set(name, histogram);
|
|
38
|
+
return histogram;
|
|
39
|
+
}
|
|
40
|
+
getCounter(name) {
|
|
41
|
+
return this._counters.get(name);
|
|
42
|
+
}
|
|
43
|
+
getHistogram(name) {
|
|
44
|
+
return this._histograms.get(name);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=mock-meter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-meter.js","sourceRoot":"","sources":["../../../src/__fixtures__/mock-meter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,OAAO,WAAW;IACb,UAAU,GAAoB,EAAE,CAAA;IAEzC,GAAG,CAAC,KAAa,EAAE,UAAuB;QACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC/D,CAAC;CACF;AAED,MAAM,OAAO,aAAa;IACf,UAAU,GAAoB,EAAE,CAAA;IAEzC,MAAM,CAAC,KAAa,EAAE,UAAuB;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC/D,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,SAAS;IACH,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC1C,WAAW,GAAG,IAAI,GAAG,EAAyB,CAAA;IAE/D,aAAa,CAAC,IAAY;QACxB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACjC,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,eAAe,CAAC,IAAY;QAC1B,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAA;QACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QACrC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { HookableEvent } from '../hooks/index.js';
|
|
2
|
+
import type { Plugin } from '../plugins/plugin.js';
|
|
3
|
+
import type { LocalAgent } from '../types/agent.js';
|
|
4
|
+
/**
|
|
5
|
+
* Mock plugin that records all hookable event invocations for testing.
|
|
6
|
+
*/
|
|
7
|
+
export declare class MockPlugin implements Plugin {
|
|
8
|
+
invocations: HookableEvent[];
|
|
9
|
+
get name(): string;
|
|
10
|
+
initAgent(agent: LocalAgent): void;
|
|
11
|
+
reset(): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=mock-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-plugin.d.ts","sourceRoot":"","sources":["../../../src/__fixtures__/mock-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAanD;;GAEG;AACH,qBAAa,UAAW,YAAW,MAAM;IACvC,WAAW,EAAE,aAAa,EAAE,CAAK;IAEjC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAmBlC,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, } from '../hooks/index.js';
|
|
2
2
|
/**
|
|
3
|
-
* Mock
|
|
3
|
+
* Mock plugin that records all hookable event invocations for testing.
|
|
4
4
|
*/
|
|
5
|
-
export class
|
|
5
|
+
export class MockPlugin {
|
|
6
6
|
invocations = [];
|
|
7
|
-
|
|
7
|
+
get name() {
|
|
8
|
+
return 'mock-plugin';
|
|
9
|
+
}
|
|
10
|
+
initAgent(agent) {
|
|
8
11
|
const eventTypes = [
|
|
9
12
|
InitializedEvent,
|
|
10
13
|
BeforeInvocationEvent,
|
|
@@ -16,7 +19,7 @@ export class MockHookProvider {
|
|
|
16
19
|
AfterModelCallEvent,
|
|
17
20
|
];
|
|
18
21
|
for (const eventType of eventTypes) {
|
|
19
|
-
|
|
22
|
+
agent.addHook(eventType, (e) => {
|
|
20
23
|
this.invocations.push(e);
|
|
21
24
|
});
|
|
22
25
|
}
|
|
@@ -25,4 +28,4 @@ export class MockHookProvider {
|
|
|
25
28
|
this.invocations = [];
|
|
26
29
|
}
|
|
27
30
|
}
|
|
28
|
-
//# sourceMappingURL=mock-
|
|
31
|
+
//# sourceMappingURL=mock-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-plugin.js","sourceRoot":"","sources":["../../../src/__fixtures__/mock-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAG1B;;GAEG;AACH,MAAM,OAAO,UAAU;IACrB,WAAW,GAAoB,EAAE,CAAA;IAEjC,IAAI,IAAI;QACN,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,SAAS,CAAC,KAAiB;QACzB,MAAM,UAAU,GAA+B;YAC7C,gBAAgB;YAChB,qBAAqB;YACrB,oBAAoB;YACpB,iBAAiB;YACjB,mBAAmB;YACnB,kBAAkB;YAClB,oBAAoB;YACpB,mBAAmB;SACpB,CAAA;QAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC1B,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;IACvB,CAAC;CACF"}
|