@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
|
@@ -1,46 +1,104 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OpenTelemetry configuration and setup utilities for Strands agents.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* for
|
|
4
|
+
* Provides {@link setupTracer} for distributed tracing and {@link setupMeter}
|
|
5
|
+
* for OTEL metrics export. Both use the global OTel API so any provider
|
|
6
|
+
* registered here (or by the user) is automatically picked up by the Agent.
|
|
7
|
+
*
|
|
8
|
+
* This module is only loaded when the user explicitly imports and calls
|
|
9
|
+
* {@link setupTracer} or {@link setupMeter}. The core agent loop
|
|
10
|
+
* (tracer.ts, meter.ts) does not depend on this module.
|
|
11
|
+
*
|
|
12
|
+
* Uses NodeTracerProvider when available for async context propagation
|
|
13
|
+
* across MCP server boundaries. Falls back to BasicTracerProvider in
|
|
14
|
+
* environments without async_hooks support.
|
|
6
15
|
*/
|
|
16
|
+
import { metrics as otelMetrics, trace } from '@opentelemetry/api';
|
|
7
17
|
import { Resource, envDetectorSync } from '@opentelemetry/resources';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
18
|
+
import { BasicTracerProvider, ConsoleSpanExporter, SimpleSpanProcessor, BatchSpanProcessor, } from '@opentelemetry/sdk-trace-base';
|
|
19
|
+
import { MeterProvider, PeriodicExportingMetricReader, ConsoleMetricExporter } from '@opentelemetry/sdk-metrics';
|
|
10
20
|
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
|
|
21
|
+
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';
|
|
11
22
|
import { logger } from '../logging/index.js';
|
|
12
|
-
|
|
23
|
+
import { getServiceName } from './utils.js';
|
|
24
|
+
let DefaultTracerProvider = BasicTracerProvider;
|
|
25
|
+
if (typeof globalThis.process?.getBuiltinModule === 'function') {
|
|
26
|
+
try {
|
|
27
|
+
const nodeModule = globalThis.process.getBuiltinModule('node:module');
|
|
28
|
+
if (nodeModule) {
|
|
29
|
+
const req = nodeModule.createRequire(import.meta.url);
|
|
30
|
+
DefaultTracerProvider = req('@opentelemetry/sdk-trace-node').NodeTracerProvider;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
logger.info('sdk-trace-node not available; using BasicTracerProvider without async context propagation');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
13
37
|
const DEFAULT_SERVICE_NAMESPACE = 'strands';
|
|
14
38
|
const DEFAULT_DEPLOYMENT_ENVIRONMENT = 'development';
|
|
15
39
|
/**
|
|
16
|
-
* Get
|
|
40
|
+
* Get an OpenTelemetry Tracer instance.
|
|
41
|
+
*
|
|
42
|
+
* Wraps the OTel trace API to provide a consistent tracer scoped to the
|
|
43
|
+
* configured service name.
|
|
44
|
+
*
|
|
45
|
+
* @returns An OTel Tracer instance from the global tracer provider
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* import { setupTracer, getTracer } from '@strands-agents/sdk/telemetry'
|
|
50
|
+
*
|
|
51
|
+
* // Set up telemetry first (or register your own NodeTracerProvider)
|
|
52
|
+
* setupTracer({ exporters: { otlp: true } })
|
|
53
|
+
*
|
|
54
|
+
* // Get a tracer and create custom spans
|
|
55
|
+
* const tracer = getTracer()
|
|
56
|
+
* const span = tracer.startSpan('my-custom-operation')
|
|
57
|
+
* span.setAttribute('custom.key', 'value')
|
|
17
58
|
*
|
|
18
|
-
*
|
|
59
|
+
* // ........
|
|
60
|
+
*
|
|
61
|
+
* span.end()
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export function getTracer() {
|
|
65
|
+
return trace.getTracer(getServiceName());
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get an OpenTelemetry Meter instance.
|
|
69
|
+
*
|
|
70
|
+
* Wraps the OTel metrics API to provide a consistent meter scoped to the
|
|
71
|
+
* configured service name. Returns a no-op meter until a MeterProvider is
|
|
72
|
+
* registered (either via {@link setupMeter} or by the user directly).
|
|
73
|
+
*
|
|
74
|
+
* @returns An OTel Meter instance from the global meter provider
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* import { setupMeter, getMeter } from '@strands-agents/sdk/telemetry'
|
|
79
|
+
*
|
|
80
|
+
* setupMeter({ exporters: { otlp: true } })
|
|
81
|
+
*
|
|
82
|
+
* const meter = getMeter()
|
|
83
|
+
* const counter = meter.createCounter('my.custom.counter')
|
|
84
|
+
* counter.add(1)
|
|
85
|
+
* ```
|
|
19
86
|
*/
|
|
20
|
-
export function
|
|
21
|
-
return
|
|
87
|
+
export function getMeter() {
|
|
88
|
+
return otelMetrics.getMeter(getServiceName());
|
|
22
89
|
}
|
|
23
90
|
let _provider = null;
|
|
24
91
|
/**
|
|
25
92
|
* Set up the tracer provider with the given configuration.
|
|
26
93
|
*
|
|
27
94
|
* @param config - Tracer configuration options
|
|
28
|
-
* @returns The configured
|
|
95
|
+
* @returns The configured tracer provider
|
|
29
96
|
*
|
|
30
97
|
* @example
|
|
31
98
|
* ```typescript
|
|
32
|
-
* import { telemetry } from '
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* const provider = telemetry.setupTracer({
|
|
36
|
-
* exporters: { otlp: true }
|
|
37
|
-
* })
|
|
38
|
-
*
|
|
39
|
-
* // Custom provider
|
|
40
|
-
* telemetry.setupTracer({
|
|
41
|
-
* provider: new NodeTracerProvider({ resource: myResource }),
|
|
42
|
-
* exporters: { otlp: true, console: true }
|
|
43
|
-
* })
|
|
99
|
+
* import { telemetry } from '\@strands-agents/sdk'
|
|
100
|
+
*
|
|
101
|
+
* telemetry.setupTracer({ exporters: { otlp: true } })
|
|
44
102
|
* ```
|
|
45
103
|
*/
|
|
46
104
|
export function setupTracer(config = {}) {
|
|
@@ -48,45 +106,97 @@ export function setupTracer(config = {}) {
|
|
|
48
106
|
logger.warn('tracer provider already initialized, returning existing provider');
|
|
49
107
|
return _provider;
|
|
50
108
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
// Add exporters if requested
|
|
109
|
+
_provider = config.provider ?? new DefaultTracerProvider({ resource: getOtelResource() });
|
|
110
|
+
// Exporters are additive — if a custom provider already has processors, these append to them.
|
|
54
111
|
if (config.exporters?.otlp)
|
|
55
|
-
|
|
112
|
+
addOtlpTraceExporter(_provider);
|
|
56
113
|
if (config.exporters?.console)
|
|
57
|
-
|
|
58
|
-
// register() sets up global tracer provider, context manager, and propagators
|
|
114
|
+
addConsoleTraceExporter(_provider);
|
|
59
115
|
_provider.register();
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
116
|
+
if (typeof globalThis.process?.once === 'function') {
|
|
117
|
+
globalThis.process.once('beforeExit', () => {
|
|
118
|
+
if (_provider) {
|
|
119
|
+
_provider.forceFlush().catch((err) => {
|
|
120
|
+
logger.warn(`error=<${err}> | failed to flush tracer provider on exit`);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
68
125
|
return _provider;
|
|
69
126
|
}
|
|
70
|
-
|
|
127
|
+
let _meterProvider = null;
|
|
128
|
+
/**
|
|
129
|
+
* Set up the OTEL meter provider with the given configuration.
|
|
130
|
+
*
|
|
131
|
+
* @param config - Meter configuration options
|
|
132
|
+
* @returns The configured meter provider
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* import { telemetry } from '\@strands-agents/sdk'
|
|
137
|
+
*
|
|
138
|
+
* telemetry.setupMeter({ exporters: { otlp: true } })
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
export function setupMeter(config = {}) {
|
|
142
|
+
if (_meterProvider) {
|
|
143
|
+
logger.warn('meter provider already initialized, returning existing provider');
|
|
144
|
+
return _meterProvider;
|
|
145
|
+
}
|
|
146
|
+
_meterProvider = config.provider ?? new MeterProvider({ resource: getOtelResource() });
|
|
147
|
+
// Exporters are additive — if a custom provider already has readers, these append to them.
|
|
148
|
+
if (config.exporters?.otlp)
|
|
149
|
+
addOtlpMetricReader(_meterProvider);
|
|
150
|
+
if (config.exporters?.console)
|
|
151
|
+
addConsoleMetricReader(_meterProvider);
|
|
152
|
+
otelMetrics.setGlobalMeterProvider(_meterProvider);
|
|
153
|
+
if (typeof globalThis.process?.once === 'function') {
|
|
154
|
+
globalThis.process.once('beforeExit', () => {
|
|
155
|
+
if (_meterProvider) {
|
|
156
|
+
_meterProvider.forceFlush().catch((err) => {
|
|
157
|
+
logger.warn(`error=<${err}> | failed to flush meter provider on exit`);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
return _meterProvider;
|
|
163
|
+
}
|
|
164
|
+
function addOtlpTraceExporter(provider) {
|
|
71
165
|
try {
|
|
72
166
|
provider.addSpanProcessor(new BatchSpanProcessor(new OTLPTraceExporter()));
|
|
73
167
|
}
|
|
74
168
|
catch (error) {
|
|
75
|
-
logger.warn(`error=<${error}> | failed to configure otlp exporter`);
|
|
169
|
+
logger.warn(`error=<${error}> | failed to configure otlp trace exporter`);
|
|
76
170
|
}
|
|
77
171
|
}
|
|
78
|
-
function
|
|
172
|
+
function addConsoleTraceExporter(provider) {
|
|
79
173
|
try {
|
|
80
174
|
provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
|
|
81
175
|
}
|
|
82
176
|
catch (error) {
|
|
83
|
-
logger.warn(`error=<${error}> | failed to configure console exporter`);
|
|
177
|
+
logger.warn(`error=<${error}> | failed to configure console trace exporter`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
function addOtlpMetricReader(provider) {
|
|
181
|
+
try {
|
|
182
|
+
provider.addMetricReader(new PeriodicExportingMetricReader({ exporter: new OTLPMetricExporter() }));
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
logger.warn(`error=<${error}> | failed to configure otlp metric exporter`);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
function addConsoleMetricReader(provider) {
|
|
189
|
+
try {
|
|
190
|
+
provider.addMetricReader(new PeriodicExportingMetricReader({ exporter: new ConsoleMetricExporter() }));
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
logger.warn(`error=<${error}> | failed to configure console metric exporter`);
|
|
84
194
|
}
|
|
85
195
|
}
|
|
86
196
|
function getOtelResource() {
|
|
87
197
|
const serviceName = getServiceName();
|
|
88
|
-
const serviceNamespace = process
|
|
89
|
-
const deploymentEnvironment = process
|
|
198
|
+
const serviceNamespace = globalThis.process?.env?.OTEL_SERVICE_NAMESPACE || DEFAULT_SERVICE_NAMESPACE;
|
|
199
|
+
const deploymentEnvironment = globalThis.process?.env?.OTEL_DEPLOYMENT_ENVIRONMENT || DEFAULT_DEPLOYMENT_ENVIRONMENT;
|
|
90
200
|
const defaultResource = new Resource({
|
|
91
201
|
'service.name': serviceName,
|
|
92
202
|
'service.namespace': serviceNamespace,
|
|
@@ -94,7 +204,6 @@ function getOtelResource() {
|
|
|
94
204
|
'telemetry.sdk.name': 'opentelemetry',
|
|
95
205
|
'telemetry.sdk.language': 'typescript',
|
|
96
206
|
});
|
|
97
|
-
// Merge with OTEL_RESOURCE_ATTRIBUTES env var (env attrs take precedence)
|
|
98
207
|
const envResource = envDetectorSync.detect();
|
|
99
208
|
return defaultResource.merge(envResource);
|
|
100
209
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/telemetry/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/telemetry/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,17 +2,20 @@
|
|
|
2
2
|
* OpenTelemetry telemetry support for Strands Agents SDK.
|
|
3
3
|
*
|
|
4
4
|
* This module provides `setupTracer()` to configure a NodeTracerProvider
|
|
5
|
-
* with OTLP or console exporters
|
|
6
|
-
*
|
|
5
|
+
* with OTLP or console exporters, and `setupMeter()` to configure a
|
|
6
|
+
* MeterProvider for OTEL metrics export. The Agent class handles tracing
|
|
7
|
+
* and metrics internally once telemetry is configured.
|
|
7
8
|
*
|
|
8
9
|
* @example Basic setup with OTLP exporter
|
|
9
10
|
* ```typescript
|
|
10
|
-
* import {
|
|
11
|
+
* import { Agent } from '@strands-agents/sdk'
|
|
12
|
+
* import { setupTracer, setupMeter } from '@strands-agents/sdk/telemetry'
|
|
11
13
|
*
|
|
12
14
|
* // Configure telemetry with OTLP exporter
|
|
13
|
-
*
|
|
15
|
+
* setupTracer({ exporters: { otlp: true } })
|
|
16
|
+
* setupMeter({ exporters: { otlp: true } })
|
|
14
17
|
*
|
|
15
|
-
* // Agent automatically traces invocations
|
|
18
|
+
* // Agent automatically traces invocations and emits metrics
|
|
16
19
|
* const agent = new Agent()
|
|
17
20
|
* ```
|
|
18
21
|
*
|
|
@@ -29,6 +32,6 @@
|
|
|
29
32
|
* const agent = new Agent()
|
|
30
33
|
* ```
|
|
31
34
|
*/
|
|
32
|
-
export { setupTracer } from './config.js';
|
|
33
|
-
export type { TracerConfig } from './config.js';
|
|
35
|
+
export { setupTracer, getTracer, setupMeter, getMeter } from './config.js';
|
|
36
|
+
export type { TracerConfig, MeterConfig } from './config.js';
|
|
34
37
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC1E,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -2,17 +2,20 @@
|
|
|
2
2
|
* OpenTelemetry telemetry support for Strands Agents SDK.
|
|
3
3
|
*
|
|
4
4
|
* This module provides `setupTracer()` to configure a NodeTracerProvider
|
|
5
|
-
* with OTLP or console exporters
|
|
6
|
-
*
|
|
5
|
+
* with OTLP or console exporters, and `setupMeter()` to configure a
|
|
6
|
+
* MeterProvider for OTEL metrics export. The Agent class handles tracing
|
|
7
|
+
* and metrics internally once telemetry is configured.
|
|
7
8
|
*
|
|
8
9
|
* @example Basic setup with OTLP exporter
|
|
9
10
|
* ```typescript
|
|
10
|
-
* import {
|
|
11
|
+
* import { Agent } from '@strands-agents/sdk'
|
|
12
|
+
* import { setupTracer, setupMeter } from '@strands-agents/sdk/telemetry'
|
|
11
13
|
*
|
|
12
14
|
* // Configure telemetry with OTLP exporter
|
|
13
|
-
*
|
|
15
|
+
* setupTracer({ exporters: { otlp: true } })
|
|
16
|
+
* setupMeter({ exporters: { otlp: true } })
|
|
14
17
|
*
|
|
15
|
-
* // Agent automatically traces invocations
|
|
18
|
+
* // Agent automatically traces invocations and emits metrics
|
|
16
19
|
* const agent = new Agent()
|
|
17
20
|
* ```
|
|
18
21
|
*
|
|
@@ -29,5 +32,5 @@
|
|
|
29
32
|
* const agent = new Agent()
|
|
30
33
|
* ```
|
|
31
34
|
*/
|
|
32
|
-
export { setupTracer } from './config.js';
|
|
35
|
+
export { setupTracer, getTracer, setupMeter, getMeter } from './config.js';
|
|
33
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent loop metrics tracking.
|
|
3
|
+
*
|
|
4
|
+
* The {@link Meter} accumulates local metrics during agent invocation and
|
|
5
|
+
* provides them as a read-only {@link AgentMetrics} snapshot via the
|
|
6
|
+
* {@link Meter.metrics} getter for inclusion in {@link AgentResult}.
|
|
7
|
+
*
|
|
8
|
+
* When an OTEL MeterProvider is registered (via {@link setupMeter} or
|
|
9
|
+
* directly), the Meter also emits counters and histograms through the
|
|
10
|
+
* global OTEL metrics API, enabling export to OTLP backends.
|
|
11
|
+
*/
|
|
12
|
+
import type { Usage, Metrics, ModelMetadataEventData } from '../models/streaming.js';
|
|
13
|
+
import type { ToolUse } from '../tools/types.js';
|
|
14
|
+
import type { JSONSerializable } from '../types/json.js';
|
|
15
|
+
/**
|
|
16
|
+
* Per-tool execution metrics.
|
|
17
|
+
*/
|
|
18
|
+
export interface ToolMetricsData {
|
|
19
|
+
/**
|
|
20
|
+
* Total number of calls to this tool.
|
|
21
|
+
*/
|
|
22
|
+
callCount: number;
|
|
23
|
+
/**
|
|
24
|
+
* Number of successful calls.
|
|
25
|
+
*/
|
|
26
|
+
successCount: number;
|
|
27
|
+
/**
|
|
28
|
+
* Number of failed calls.
|
|
29
|
+
*/
|
|
30
|
+
errorCount: number;
|
|
31
|
+
/**
|
|
32
|
+
* Total execution time in milliseconds.
|
|
33
|
+
*/
|
|
34
|
+
totalTime: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Per-cycle usage tracking.
|
|
38
|
+
*/
|
|
39
|
+
export interface AgentLoopMetricsData {
|
|
40
|
+
/**
|
|
41
|
+
* Unique identifier for this cycle.
|
|
42
|
+
*/
|
|
43
|
+
cycleId: string;
|
|
44
|
+
/**
|
|
45
|
+
* Duration of this cycle in milliseconds.
|
|
46
|
+
*/
|
|
47
|
+
duration: number;
|
|
48
|
+
/**
|
|
49
|
+
* Token usage for this cycle.
|
|
50
|
+
*/
|
|
51
|
+
usage: Usage;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Per-invocation metrics tracking.
|
|
55
|
+
*/
|
|
56
|
+
export interface InvocationMetricsData {
|
|
57
|
+
/**
|
|
58
|
+
* Cycle metrics for this invocation.
|
|
59
|
+
*/
|
|
60
|
+
cycles: AgentLoopMetricsData[];
|
|
61
|
+
/**
|
|
62
|
+
* Accumulated token usage for this invocation.
|
|
63
|
+
*/
|
|
64
|
+
usage: Usage;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* JSON-serializable representation of AgentMetrics.
|
|
68
|
+
*/
|
|
69
|
+
export interface AgentMetricsData {
|
|
70
|
+
/**
|
|
71
|
+
* Number of agent loop cycles executed.
|
|
72
|
+
*/
|
|
73
|
+
cycleCount: number;
|
|
74
|
+
/**
|
|
75
|
+
* Accumulated token usage across all model invocations.
|
|
76
|
+
*/
|
|
77
|
+
accumulatedUsage: Usage;
|
|
78
|
+
/**
|
|
79
|
+
* Accumulated performance metrics across all model invocations.
|
|
80
|
+
*/
|
|
81
|
+
accumulatedMetrics: Metrics;
|
|
82
|
+
/**
|
|
83
|
+
* Per-invocation metrics.
|
|
84
|
+
*/
|
|
85
|
+
agentInvocations: InvocationMetricsData[];
|
|
86
|
+
/**
|
|
87
|
+
* Per-tool execution metrics keyed by tool name.
|
|
88
|
+
*/
|
|
89
|
+
toolMetrics: Record<string, ToolMetricsData>;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Options for recording tool usage.
|
|
93
|
+
*/
|
|
94
|
+
interface ToolUsageOptions {
|
|
95
|
+
/**
|
|
96
|
+
* The tool that was used.
|
|
97
|
+
*/
|
|
98
|
+
tool: ToolUse;
|
|
99
|
+
/**
|
|
100
|
+
* Execution duration in milliseconds.
|
|
101
|
+
*/
|
|
102
|
+
duration: number;
|
|
103
|
+
/**
|
|
104
|
+
* Whether the tool call succeeded.
|
|
105
|
+
*/
|
|
106
|
+
success: boolean;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Read-only snapshot of aggregated agent metrics.
|
|
110
|
+
*
|
|
111
|
+
* Returned by {@link Meter.metrics} and stored on {@link AgentResult}.
|
|
112
|
+
* Provides access to cycle counts, tool usage, token consumption,
|
|
113
|
+
* and per-invocation breakdowns. Supports serialization via {@link toJSON}.
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```typescript
|
|
117
|
+
* const result = await agent.invoke('Hello')
|
|
118
|
+
* console.log(result.metrics?.cycleCount)
|
|
119
|
+
* console.log(result.metrics?.totalDuration)
|
|
120
|
+
* console.log(result.metrics?.accumulatedData)
|
|
121
|
+
* console.log(result.metrics?.toolMetrics)
|
|
122
|
+
* console.log(JSON.stringify(result.metrics))
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export declare class AgentMetrics implements JSONSerializable<AgentMetricsData> {
|
|
126
|
+
/**
|
|
127
|
+
* Number of agent loop cycles executed.
|
|
128
|
+
*/
|
|
129
|
+
readonly cycleCount: number;
|
|
130
|
+
/**
|
|
131
|
+
* Accumulated token usage across all model invocations.
|
|
132
|
+
*/
|
|
133
|
+
readonly accumulatedUsage: Usage;
|
|
134
|
+
/**
|
|
135
|
+
* Accumulated performance metrics across all model invocations.
|
|
136
|
+
*/
|
|
137
|
+
readonly accumulatedMetrics: Metrics;
|
|
138
|
+
/**
|
|
139
|
+
* Per-invocation metrics.
|
|
140
|
+
*/
|
|
141
|
+
readonly agentInvocations: InvocationMetricsData[];
|
|
142
|
+
/**
|
|
143
|
+
* Per-tool execution metrics keyed by tool name.
|
|
144
|
+
*/
|
|
145
|
+
readonly toolMetrics: Record<string, ToolMetricsData>;
|
|
146
|
+
constructor(data?: Partial<AgentMetricsData>);
|
|
147
|
+
/**
|
|
148
|
+
* The most recent agent invocation, or undefined if none exist.
|
|
149
|
+
*/
|
|
150
|
+
get latestAgentInvocation(): InvocationMetricsData | undefined;
|
|
151
|
+
/**
|
|
152
|
+
* Accumulated usage and performance metrics across all model invocations.
|
|
153
|
+
*/
|
|
154
|
+
get accumulatedData(): {
|
|
155
|
+
usage: Usage;
|
|
156
|
+
metrics: Metrics;
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Total duration of all cycles in milliseconds.
|
|
160
|
+
*/
|
|
161
|
+
get totalDuration(): number;
|
|
162
|
+
/**
|
|
163
|
+
* Average cycle duration in milliseconds, or 0 if no cycles exist.
|
|
164
|
+
*/
|
|
165
|
+
get averageCycleTime(): number;
|
|
166
|
+
/**
|
|
167
|
+
* Per-tool execution statistics with computed averages and rates.
|
|
168
|
+
*/
|
|
169
|
+
get toolUsage(): Record<string, ToolMetricsData & {
|
|
170
|
+
averageTime: number;
|
|
171
|
+
successRate: number;
|
|
172
|
+
}>;
|
|
173
|
+
/**
|
|
174
|
+
* Returns a JSON-serializable representation of all collected metrics.
|
|
175
|
+
* Called automatically by JSON.stringify().
|
|
176
|
+
*
|
|
177
|
+
* @returns A plain object suitable for round-trip serialization
|
|
178
|
+
*/
|
|
179
|
+
toJSON(): AgentMetricsData;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Accumulates local metrics during agent invocation.
|
|
183
|
+
*
|
|
184
|
+
* Tracks cycle counts, token usage, tool execution stats, and model latency.
|
|
185
|
+
* Use the {@link metrics} getter to obtain a read-only {@link AgentMetrics}
|
|
186
|
+
* snapshot for inclusion in {@link AgentResult}.
|
|
187
|
+
*
|
|
188
|
+
* When an OTEL MeterProvider is registered, the same data is also emitted
|
|
189
|
+
* as OTEL counters and histograms via the global metrics API. If no
|
|
190
|
+
* provider is registered the OTEL meter is a no-op and adds no overhead.
|
|
191
|
+
*/
|
|
192
|
+
export declare class Meter {
|
|
193
|
+
/**
|
|
194
|
+
* Number of agent loop cycles executed.
|
|
195
|
+
*/
|
|
196
|
+
private _cycleCount;
|
|
197
|
+
/**
|
|
198
|
+
* Accumulated token usage across all model invocations.
|
|
199
|
+
*/
|
|
200
|
+
private readonly _accumulatedUsage;
|
|
201
|
+
/**
|
|
202
|
+
* Accumulated performance metrics across all model invocations.
|
|
203
|
+
*/
|
|
204
|
+
private readonly _accumulatedMetrics;
|
|
205
|
+
/**
|
|
206
|
+
* Per-invocation metrics.
|
|
207
|
+
*/
|
|
208
|
+
private readonly _agentInvocations;
|
|
209
|
+
/**
|
|
210
|
+
* Per-tool execution metrics keyed by tool name.
|
|
211
|
+
*/
|
|
212
|
+
private readonly _toolMetrics;
|
|
213
|
+
private readonly _otelMeter;
|
|
214
|
+
private readonly _otelCycleCounter;
|
|
215
|
+
private readonly _otelInvocationCounter;
|
|
216
|
+
private readonly _otelCycleDuration;
|
|
217
|
+
private readonly _otelToolCallCounter;
|
|
218
|
+
private readonly _otelToolErrorCounter;
|
|
219
|
+
private readonly _otelToolDuration;
|
|
220
|
+
private readonly _otelInputTokens;
|
|
221
|
+
private readonly _otelOutputTokens;
|
|
222
|
+
private readonly _otelModelLatency;
|
|
223
|
+
private readonly _otelTimeToFirstToken;
|
|
224
|
+
constructor();
|
|
225
|
+
/**
|
|
226
|
+
* Begin tracking a new agent invocation.
|
|
227
|
+
* Creates a new InvocationMetricsData entry for per-invocation metrics.
|
|
228
|
+
*/
|
|
229
|
+
startNewInvocation(): void;
|
|
230
|
+
/**
|
|
231
|
+
* Start a new agent loop cycle.
|
|
232
|
+
*
|
|
233
|
+
* @returns The cycle id and start time
|
|
234
|
+
*/
|
|
235
|
+
startCycle(): {
|
|
236
|
+
cycleId: string;
|
|
237
|
+
startTime: number;
|
|
238
|
+
};
|
|
239
|
+
/**
|
|
240
|
+
* End the current agent loop cycle and record its duration.
|
|
241
|
+
*
|
|
242
|
+
* @param startTime - The timestamp when the cycle started (milliseconds since epoch)
|
|
243
|
+
*/
|
|
244
|
+
endCycle(startTime: number): void;
|
|
245
|
+
/**
|
|
246
|
+
* Record metrics for a completed tool invocation.
|
|
247
|
+
*
|
|
248
|
+
* @param options - Tool usage recording options
|
|
249
|
+
*/
|
|
250
|
+
endToolCall(options: ToolUsageOptions): void;
|
|
251
|
+
/**
|
|
252
|
+
* Update loop-level metrics from a model response.
|
|
253
|
+
*
|
|
254
|
+
* Call this after each model invocation within a cycle to
|
|
255
|
+
* accumulate usage and latency.
|
|
256
|
+
*
|
|
257
|
+
* @param metadata - The metadata event from a model invocation, or undefined if unavailable
|
|
258
|
+
*/
|
|
259
|
+
updateCycle(metadata?: ModelMetadataEventData): void;
|
|
260
|
+
/**
|
|
261
|
+
* Read-only snapshot of the accumulated metrics.
|
|
262
|
+
* Returns an AgentMetrics instance suitable for inclusion in AgentResult.
|
|
263
|
+
*/
|
|
264
|
+
get metrics(): AgentMetrics;
|
|
265
|
+
/**
|
|
266
|
+
* The most recent agent invocation, or undefined if none exist.
|
|
267
|
+
*/
|
|
268
|
+
private get _latestAgentInvocation();
|
|
269
|
+
/**
|
|
270
|
+
* Update accumulated usage and metrics from a model metadata event.
|
|
271
|
+
*
|
|
272
|
+
* @param metadata - The metadata event from a model invocation
|
|
273
|
+
*/
|
|
274
|
+
private _updateFromMetadata;
|
|
275
|
+
/**
|
|
276
|
+
* Update the accumulated token usage with new usage data.
|
|
277
|
+
*
|
|
278
|
+
* @param usage - The usage data to accumulate
|
|
279
|
+
*/
|
|
280
|
+
private _updateUsage;
|
|
281
|
+
/**
|
|
282
|
+
* Creates an empty Usage object with all counters set to zero.
|
|
283
|
+
*
|
|
284
|
+
* @returns A Usage object with zeroed counters
|
|
285
|
+
*/
|
|
286
|
+
private static _createEmptyUsage;
|
|
287
|
+
/**
|
|
288
|
+
* Accumulates token usage from a source into a target Usage object.
|
|
289
|
+
*
|
|
290
|
+
* @param target - The Usage object to accumulate into (mutated in place)
|
|
291
|
+
* @param source - The Usage object to accumulate from
|
|
292
|
+
*/
|
|
293
|
+
private static _accumulateUsage;
|
|
294
|
+
}
|
|
295
|
+
export {};
|
|
296
|
+
//# sourceMappingURL=meter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meter.d.ts","sourceRoot":"","sources":["../../../src/telemetry/meter.ts"],"names":[],"mappings":"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"}
|