@strands-agents/sdk 0.6.0 → 1.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -7
- package/dist/src/__fixtures__/agent-helpers.d.ts +81 -4
- package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/agent-helpers.js +76 -4
- package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
- package/dist/src/__fixtures__/metrics-helpers.d.ts +30 -0
- package/dist/src/__fixtures__/metrics-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/metrics-helpers.js +29 -6
- package/dist/src/__fixtures__/metrics-helpers.js.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.d.ts +8 -4
- package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.js +13 -7
- package/dist/src/__fixtures__/mock-message-model.js.map +1 -1
- package/dist/src/__fixtures__/mock-meter.d.ts +32 -0
- package/dist/src/__fixtures__/mock-meter.d.ts.map +1 -0
- package/dist/src/__fixtures__/mock-meter.js +47 -0
- package/dist/src/__fixtures__/mock-meter.js.map +1 -0
- package/dist/src/__fixtures__/mock-plugin.d.ts +13 -0
- package/dist/src/__fixtures__/mock-plugin.d.ts.map +1 -0
- package/dist/src/__fixtures__/{mock-hook-provider.js → mock-plugin.js} +11 -6
- package/dist/src/__fixtures__/mock-plugin.js.map +1 -0
- package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
- package/dist/src/__fixtures__/tool-helpers.js +6 -2
- package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
- package/dist/src/__tests__/index.test.js +21 -0
- package/dist/src/__tests__/index.test.js.map +1 -1
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/__tests__/mime.test.d.ts +2 -0
- package/dist/src/__tests__/mime.test.d.ts.map +1 -0
- package/dist/src/__tests__/mime.test.js +83 -0
- package/dist/src/__tests__/mime.test.js.map +1 -0
- package/dist/src/__tests__/state-store.test.d.ts +2 -0
- package/dist/src/__tests__/state-store.test.d.ts.map +1 -0
- package/dist/src/__tests__/{app-state.test.js → state-store.test.js} +86 -51
- package/dist/src/__tests__/state-store.test.js.map +1 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.js +364 -0
- package/dist/src/a2a/__tests__/a2a-agent.test.js.map +1 -0
- package/dist/src/a2a/__tests__/adapters.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/adapters.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/adapters.test.js +151 -0
- package/dist/src/a2a/__tests__/adapters.test.js.map +1 -0
- package/dist/src/a2a/__tests__/events.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/events.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/events.test.js +66 -0
- package/dist/src/a2a/__tests__/events.test.js.map +1 -0
- package/dist/src/a2a/__tests__/executor.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/executor.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/executor.test.js +196 -0
- package/dist/src/a2a/__tests__/executor.test.js.map +1 -0
- package/dist/src/a2a/__tests__/server.test.d.ts +2 -0
- package/dist/src/a2a/__tests__/server.test.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/server.test.js +51 -0
- package/dist/src/a2a/__tests__/server.test.js.map +1 -0
- package/dist/src/a2a/__tests__/server.test.node.d.ts +2 -0
- package/dist/src/a2a/__tests__/server.test.node.d.ts.map +1 -0
- package/dist/src/a2a/__tests__/server.test.node.js +110 -0
- package/dist/src/a2a/__tests__/server.test.node.js.map +1 -0
- package/dist/src/a2a/a2a-agent.d.ts +132 -0
- package/dist/src/a2a/a2a-agent.d.ts.map +1 -0
- package/dist/src/a2a/a2a-agent.js +255 -0
- package/dist/src/a2a/a2a-agent.js.map +1 -0
- package/dist/src/a2a/adapters.d.ts +27 -0
- package/dist/src/a2a/adapters.d.ts.map +1 -0
- package/dist/src/a2a/adapters.js +175 -0
- package/dist/src/a2a/adapters.js.map +1 -0
- package/dist/src/a2a/events.d.ts +44 -0
- package/dist/src/a2a/events.d.ts.map +1 -0
- package/dist/src/a2a/events.js +41 -0
- package/dist/src/a2a/events.js.map +1 -0
- package/dist/src/a2a/executor.d.ts +57 -0
- package/dist/src/a2a/executor.d.ts.map +1 -0
- package/dist/src/a2a/executor.js +130 -0
- package/dist/src/a2a/executor.js.map +1 -0
- package/dist/src/a2a/express-server.d.ts +67 -0
- package/dist/src/a2a/express-server.d.ts.map +1 -0
- package/dist/src/a2a/express-server.js +95 -0
- package/dist/src/a2a/express-server.js.map +1 -0
- package/dist/src/a2a/index.d.ts +15 -0
- package/dist/src/a2a/index.d.ts.map +1 -0
- package/dist/src/a2a/index.js +15 -0
- package/dist/src/a2a/index.js.map +1 -0
- package/dist/src/a2a/logging.d.ts +8 -0
- package/dist/src/a2a/logging.d.ts.map +1 -0
- package/dist/src/a2a/logging.js +15 -0
- package/dist/src/a2a/logging.js.map +1 -0
- package/dist/src/a2a/server.d.ts +67 -0
- package/dist/src/a2a/server.d.ts.map +1 -0
- package/dist/src/a2a/server.js +67 -0
- package/dist/src/a2a/server.js.map +1 -0
- package/dist/src/agent/__tests__/agent.hook.test.js +315 -51
- package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.test.js +298 -48
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts +2 -0
- package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts.map +1 -0
- package/dist/src/agent/__tests__/{agent.tracer.test.js → agent.tracer.test.node.js} +62 -50
- package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +1 -0
- package/dist/src/agent/__tests__/printer.test.js +7 -7
- package/dist/src/agent/__tests__/printer.test.js.map +1 -1
- package/dist/src/agent/__tests__/snapshot.test.js +50 -13
- package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
- package/dist/src/agent/agent.d.ts +55 -44
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +230 -128
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/printer.d.ts.map +1 -1
- package/dist/src/agent/printer.js +3 -0
- package/dist/src/agent/printer.js.map +1 -1
- package/dist/src/agent/snapshot.d.ts +3 -3
- package/dist/src/agent/snapshot.d.ts.map +1 -1
- package/dist/src/agent/snapshot.js +16 -8
- package/dist/src/agent/snapshot.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +2 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +1 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +100 -0
- package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -0
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +26 -10
- package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +153 -64
- package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
- package/dist/src/conversation-manager/conversation-manager.d.ts +87 -0
- package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -0
- package/dist/src/conversation-manager/conversation-manager.js +59 -0
- package/dist/src/conversation-manager/conversation-manager.js.map +1 -0
- package/dist/src/conversation-manager/index.d.ts +1 -0
- package/dist/src/conversation-manager/index.d.ts.map +1 -1
- package/dist/src/conversation-manager/index.js +1 -0
- package/dist/src/conversation-manager/index.js.map +1 -1
- package/dist/src/conversation-manager/null-conversation-manager.d.ts +12 -8
- package/dist/src/conversation-manager/null-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/null-conversation-manager.js +13 -7
- package/dist/src/conversation-manager/null-conversation-manager.js.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +28 -19
- package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js +57 -42
- package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
- package/dist/src/errors.d.ts +8 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +11 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hooks/__tests__/events.test.js +387 -0
- package/dist/src/hooks/__tests__/events.test.js.map +1 -1
- package/dist/src/hooks/__tests__/registry.test.js +10 -154
- package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
- package/dist/src/hooks/events.d.ts +148 -44
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +148 -11
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/index.d.ts +3 -3
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +2 -2
- package/dist/src/hooks/registry.d.ts +1 -32
- package/dist/src/hooks/registry.d.ts.map +1 -1
- package/dist/src/hooks/registry.js +1 -47
- package/dist/src/hooks/registry.js.map +1 -1
- package/dist/src/hooks/types.d.ts +0 -31
- package/dist/src/hooks/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +14 -13
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +11 -9
- package/dist/src/index.js.map +1 -1
- package/dist/src/mime.d.ts +24 -0
- package/dist/src/mime.d.ts.map +1 -0
- package/dist/src/mime.js +82 -0
- package/dist/src/mime.js.map +1 -0
- package/dist/src/models/__tests__/anthropic.test.js +79 -3
- package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
- package/dist/src/models/__tests__/bedrock.test.js +1858 -627
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/google.test.d.ts +2 -0
- package/dist/src/models/__tests__/google.test.d.ts.map +1 -0
- package/dist/src/models/__tests__/{gemini.test.js → google.test.js} +155 -22
- package/dist/src/models/__tests__/google.test.js.map +1 -0
- package/dist/src/models/__tests__/model.test.js +25 -0
- package/dist/src/models/__tests__/model.test.js.map +1 -1
- package/dist/src/models/__tests__/openai.test.js +255 -96
- package/dist/src/models/__tests__/openai.test.js.map +1 -1
- package/dist/src/models/anthropic.d.ts.map +1 -1
- package/dist/src/models/anthropic.js +14 -14
- package/dist/src/models/anthropic.js.map +1 -1
- package/dist/src/models/bedrock.d.ts +67 -13
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +207 -28
- package/dist/src/models/bedrock.js.map +1 -1
- package/dist/src/models/{gemini → google}/adapters.d.ts +3 -3
- package/dist/src/models/{gemini → google}/adapters.d.ts.map +1 -1
- package/dist/src/models/{gemini → google}/adapters.js +66 -15
- package/dist/src/models/google/adapters.js.map +1 -0
- package/dist/src/models/{gemini → google}/errors.d.ts +7 -7
- package/dist/src/models/google/errors.d.ts.map +1 -0
- package/dist/src/models/{gemini → google}/errors.js +11 -5
- package/dist/src/models/google/errors.js.map +1 -0
- package/dist/src/models/google/index.d.ts +15 -0
- package/dist/src/models/google/index.d.ts.map +1 -0
- package/dist/src/models/google/index.js +15 -0
- package/dist/src/models/google/index.js.map +1 -0
- package/dist/src/models/{gemini → google}/model.d.ts +18 -18
- package/dist/src/models/{gemini → google}/model.d.ts.map +1 -1
- package/dist/src/models/{gemini → google}/model.js +22 -19
- package/dist/src/models/google/model.js.map +1 -0
- package/dist/src/models/{gemini → google}/types.d.ts +9 -9
- package/dist/src/models/{gemini → google}/types.d.ts.map +1 -1
- package/dist/src/models/google/types.js +5 -0
- package/dist/src/models/google/types.js.map +1 -0
- package/dist/src/models/model.d.ts +12 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +6 -10
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/openai.d.ts +44 -11
- package/dist/src/models/openai.d.ts.map +1 -1
- package/dist/src/models/openai.js +133 -79
- package/dist/src/models/openai.js.map +1 -1
- package/dist/src/models/streaming.d.ts +18 -0
- package/dist/src/models/streaming.d.ts.map +1 -1
- package/dist/src/models/streaming.js +29 -0
- package/dist/src/models/streaming.js.map +1 -1
- package/dist/src/multiagent/__tests__/events.test.js +201 -7
- package/dist/src/multiagent/__tests__/events.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.test.js +28 -13
- package/dist/src/multiagent/__tests__/graph.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/graph.tracer.test.js +204 -0
- package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.js +76 -15
- package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/swarm.test.js +67 -16
- package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -1
- package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts +2 -0
- package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts.map +1 -0
- package/dist/src/multiagent/__tests__/swarm.tracer.test.js +235 -0
- package/dist/src/multiagent/__tests__/swarm.tracer.test.js.map +1 -0
- package/dist/src/multiagent/events.d.ts +62 -14
- package/dist/src/multiagent/events.d.ts.map +1 -1
- package/dist/src/multiagent/events.js +45 -3
- package/dist/src/multiagent/events.js.map +1 -1
- package/dist/src/multiagent/graph.d.ts +25 -11
- package/dist/src/multiagent/graph.d.ts.map +1 -1
- package/dist/src/multiagent/graph.js +76 -44
- package/dist/src/multiagent/graph.js.map +1 -1
- package/dist/src/multiagent/index.d.ts +4 -3
- package/dist/src/multiagent/index.d.ts.map +1 -1
- package/dist/src/multiagent/index.js.map +1 -1
- package/dist/src/multiagent/multiagent.d.ts +41 -0
- package/dist/src/multiagent/multiagent.d.ts.map +1 -0
- package/dist/src/multiagent/multiagent.js +2 -0
- package/dist/src/multiagent/multiagent.js.map +1 -0
- package/dist/src/multiagent/nodes.d.ts +35 -24
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +50 -23
- package/dist/src/multiagent/nodes.js.map +1 -1
- package/dist/src/multiagent/plugins.d.ts +70 -0
- package/dist/src/multiagent/plugins.d.ts.map +1 -0
- package/dist/src/multiagent/plugins.js +70 -0
- package/dist/src/multiagent/plugins.js.map +1 -0
- package/dist/src/multiagent/state.d.ts +10 -5
- package/dist/src/multiagent/state.d.ts.map +1 -1
- package/dist/src/multiagent/state.js +20 -6
- package/dist/src/multiagent/state.js.map +1 -1
- package/dist/src/multiagent/swarm.d.ts +41 -17
- package/dist/src/multiagent/swarm.d.ts.map +1 -1
- package/dist/src/multiagent/swarm.js +101 -42
- package/dist/src/multiagent/swarm.js.map +1 -1
- package/dist/src/plugins/__tests__/plugin.test.d.ts +2 -0
- package/dist/src/plugins/__tests__/plugin.test.d.ts.map +1 -0
- package/dist/src/plugins/__tests__/plugin.test.js +114 -0
- package/dist/src/plugins/__tests__/plugin.test.js.map +1 -0
- package/dist/src/plugins/__tests__/registry.test.d.ts +2 -0
- package/dist/src/plugins/__tests__/registry.test.d.ts.map +1 -0
- package/dist/src/plugins/__tests__/registry.test.js +147 -0
- package/dist/src/plugins/__tests__/registry.test.js.map +1 -0
- package/dist/src/plugins/index.d.ts +30 -0
- package/dist/src/plugins/index.d.ts.map +1 -0
- package/dist/src/plugins/index.js +30 -0
- package/dist/src/plugins/index.js.map +1 -0
- package/dist/src/plugins/plugin.d.ts +74 -0
- package/dist/src/plugins/plugin.d.ts.map +1 -0
- package/dist/src/plugins/plugin.js +8 -0
- package/dist/src/plugins/plugin.js.map +1 -0
- package/dist/src/plugins/registry.d.ts +25 -0
- package/dist/src/plugins/registry.d.ts.map +1 -0
- package/dist/src/plugins/registry.js +41 -0
- package/dist/src/plugins/registry.js.map +1 -0
- package/dist/src/session/__tests__/session-manager.test.js +110 -92
- package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
- package/dist/src/session/index.d.ts +0 -1
- package/dist/src/session/index.d.ts.map +1 -1
- package/dist/src/session/index.js +0 -1
- package/dist/src/session/index.js.map +1 -1
- package/dist/src/session/session-manager.d.ts +11 -8
- package/dist/src/session/session-manager.d.ts.map +1 -1
- package/dist/src/session/session-manager.js +24 -16
- package/dist/src/session/session-manager.js.map +1 -1
- package/dist/src/session/storage.d.ts +1 -1
- package/dist/src/session/storage.d.ts.map +1 -1
- package/dist/src/session/types.d.ts +2 -2
- package/dist/src/session/types.d.ts.map +1 -1
- package/dist/src/{app-state.d.ts → state-store.d.ts} +11 -11
- package/dist/src/state-store.d.ts.map +1 -0
- package/dist/src/{app-state.js → state-store.js} +8 -7
- package/dist/src/state-store.js.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.js +24 -0
- package/dist/src/telemetry/__tests__/config.test.js.map +1 -1
- package/dist/src/telemetry/__tests__/config.test.node.js +56 -0
- package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -1
- package/dist/src/telemetry/__tests__/local-trace.test.d.ts +2 -0
- package/dist/src/telemetry/__tests__/local-trace.test.d.ts.map +1 -0
- package/dist/src/telemetry/__tests__/local-trace.test.js +158 -0
- package/dist/src/telemetry/__tests__/local-trace.test.js.map +1 -0
- package/dist/src/telemetry/__tests__/meter.test.js +176 -9
- package/dist/src/telemetry/__tests__/meter.test.js.map +1 -1
- package/dist/src/telemetry/__tests__/tracer.test.node.js +151 -2
- package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -1
- package/dist/src/telemetry/config.d.ts +72 -12
- package/dist/src/telemetry/config.d.ts.map +1 -1
- package/dist/src/telemetry/config.js +102 -25
- package/dist/src/telemetry/config.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +10 -7
- package/dist/src/telemetry/index.d.ts.map +1 -1
- package/dist/src/telemetry/index.js +9 -6
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/meter.d.ts +23 -17
- package/dist/src/telemetry/meter.d.ts.map +1 -1
- package/dist/src/telemetry/meter.js +86 -41
- package/dist/src/telemetry/meter.js.map +1 -1
- package/dist/src/telemetry/tracer.d.ts +134 -18
- package/dist/src/telemetry/tracer.d.ts.map +1 -1
- package/dist/src/telemetry/tracer.js +325 -38
- package/dist/src/telemetry/tracer.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +51 -0
- package/dist/src/telemetry/types.d.ts.map +1 -1
- package/dist/src/telemetry/utils.d.ts +10 -0
- package/dist/src/telemetry/utils.d.ts.map +1 -0
- package/dist/src/telemetry/utils.js +13 -0
- package/dist/src/telemetry/utils.js.map +1 -0
- package/dist/src/tools/__tests__/structured-output-tool.test.d.ts +2 -0
- package/dist/src/tools/__tests__/structured-output-tool.test.d.ts.map +1 -0
- package/dist/src/tools/__tests__/structured-output-tool.test.js +84 -0
- package/dist/src/tools/__tests__/structured-output-tool.test.js.map +1 -0
- package/dist/src/tools/__tests__/tool.test.js +22 -1
- package/dist/src/tools/__tests__/tool.test.js.map +1 -1
- package/dist/src/tools/function-tool.d.ts +11 -1
- package/dist/src/tools/function-tool.d.ts.map +1 -1
- package/dist/src/tools/function-tool.js +64 -3
- package/dist/src/tools/function-tool.js.map +1 -1
- package/dist/src/tools/structured-output-tool.d.ts +41 -0
- package/dist/src/tools/structured-output-tool.d.ts.map +1 -0
- package/dist/src/tools/structured-output-tool.js +82 -0
- package/dist/src/tools/structured-output-tool.js.map +1 -0
- package/dist/src/tools/tool.d.ts +2 -2
- package/dist/src/tools/tool.d.ts.map +1 -1
- package/dist/src/tools/zod-tool.js +1 -1
- package/dist/src/tools/zod-tool.js.map +1 -1
- package/dist/src/{utils/zod.d.ts → tools/zod-utils.d.ts} +1 -1
- package/dist/src/tools/zod-utils.d.ts.map +1 -0
- package/dist/src/{utils/zod.js → tools/zod-utils.js} +1 -1
- package/dist/src/tools/zod-utils.js.map +1 -0
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/__tests__/agent.test.js +127 -0
- package/dist/src/types/__tests__/agent.test.js.map +1 -1
- package/dist/src/types/__tests__/media.test.js +22 -16
- package/dist/src/types/__tests__/media.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +101 -7
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +26 -0
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/media.d.ts +27 -30
- package/dist/src/types/media.d.ts.map +1 -1
- package/dist/src/types/media.js +15 -56
- package/dist/src/types/media.js.map +1 -1
- package/dist/src/types/messages.d.ts +18 -4
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js +22 -26
- package/dist/src/types/messages.js.map +1 -1
- package/dist/src/types/serializable.d.ts +34 -4
- package/dist/src/types/serializable.d.ts.map +1 -1
- package/dist/src/types/serializable.js +31 -2
- package/dist/src/types/serializable.js.map +1 -1
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +17 -4
- package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
- package/dist/src/vended-tools/bash/bash.d.ts.map +1 -1
- package/dist/src/vended-tools/bash/bash.js +16 -14
- package/dist/src/vended-tools/bash/bash.js.map +1 -1
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts.map +1 -0
- package/dist/src/vended-tools/{file_editor → file-editor}/__tests__/file-editor.test.node.js +11 -4
- package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -0
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.d.ts +1 -1
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.d.ts.map +1 -1
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.js +2 -2
- package/dist/src/vended-tools/{file_editor → file-editor}/file-editor.js.map +1 -1
- package/dist/src/vended-tools/{file_editor → file-editor}/index.d.ts.map +1 -1
- package/dist/src/vended-tools/file-editor/index.js.map +1 -0
- package/dist/src/vended-tools/{file_editor → file-editor}/types.d.ts.map +1 -1
- package/dist/src/vended-tools/file-editor/types.js.map +1 -0
- package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts.map +1 -0
- package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.js.map +1 -1
- package/dist/src/vended-tools/{http_request → http-request}/http-request.d.ts.map +1 -1
- package/dist/src/vended-tools/{http_request → http-request}/http-request.js.map +1 -1
- package/dist/src/vended-tools/{http_request → http-request}/index.d.ts.map +1 -1
- package/dist/src/vended-tools/http-request/index.js.map +1 -0
- package/dist/src/vended-tools/{http_request → http-request}/types.d.ts.map +1 -1
- package/dist/src/vended-tools/http-request/types.js.map +1 -0
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +5 -4
- package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
- package/dist/src/vended-tools/notebook/notebook.js +2 -2
- package/dist/src/vended-tools/notebook/notebook.js.map +1 -1
- package/package.json +63 -17
- package/dist/src/__fixtures__/mock-hook-provider.d.ts +0 -10
- package/dist/src/__fixtures__/mock-hook-provider.d.ts.map +0 -1
- package/dist/src/__fixtures__/mock-hook-provider.js.map +0 -1
- package/dist/src/__tests__/app-state.test.d.ts +0 -2
- package/dist/src/__tests__/app-state.test.d.ts.map +0 -1
- package/dist/src/__tests__/app-state.test.js.map +0 -1
- package/dist/src/agent/__tests__/agent.tracer.test.d.ts +0 -2
- package/dist/src/agent/__tests__/agent.tracer.test.d.ts.map +0 -1
- package/dist/src/agent/__tests__/agent.tracer.test.js.map +0 -1
- package/dist/src/app-state.d.ts.map +0 -1
- package/dist/src/app-state.js.map +0 -1
- package/dist/src/models/__tests__/gemini.test.d.ts +0 -2
- package/dist/src/models/__tests__/gemini.test.d.ts.map +0 -1
- package/dist/src/models/__tests__/gemini.test.js.map +0 -1
- package/dist/src/models/gemini/adapters.js.map +0 -1
- package/dist/src/models/gemini/errors.d.ts.map +0 -1
- package/dist/src/models/gemini/errors.js.map +0 -1
- package/dist/src/models/gemini/model.js.map +0 -1
- package/dist/src/models/gemini/types.js +0 -5
- package/dist/src/models/gemini/types.js.map +0 -1
- package/dist/src/multiagent/base.d.ts +0 -25
- package/dist/src/multiagent/base.d.ts.map +0 -1
- package/dist/src/multiagent/base.js +0 -2
- package/dist/src/multiagent/base.js.map +0 -1
- package/dist/src/structured-output/__tests__/context.test.d.ts +0 -2
- package/dist/src/structured-output/__tests__/context.test.d.ts.map +0 -1
- package/dist/src/structured-output/__tests__/context.test.js +0 -201
- package/dist/src/structured-output/__tests__/context.test.js.map +0 -1
- package/dist/src/structured-output/__tests__/exceptions.test.d.ts +0 -2
- package/dist/src/structured-output/__tests__/exceptions.test.d.ts.map +0 -1
- package/dist/src/structured-output/__tests__/exceptions.test.js +0 -103
- package/dist/src/structured-output/__tests__/exceptions.test.js.map +0 -1
- package/dist/src/structured-output/__tests__/tool.test.d.ts +0 -2
- package/dist/src/structured-output/__tests__/tool.test.d.ts.map +0 -1
- package/dist/src/structured-output/__tests__/tool.test.js +0 -256
- package/dist/src/structured-output/__tests__/tool.test.js.map +0 -1
- package/dist/src/structured-output/__tests__/utils.test.d.ts +0 -2
- package/dist/src/structured-output/__tests__/utils.test.d.ts.map +0 -1
- package/dist/src/structured-output/__tests__/utils.test.js +0 -183
- package/dist/src/structured-output/__tests__/utils.test.js.map +0 -1
- package/dist/src/structured-output/context.d.ts +0 -91
- package/dist/src/structured-output/context.d.ts.map +0 -1
- package/dist/src/structured-output/context.js +0 -112
- package/dist/src/structured-output/context.js.map +0 -1
- package/dist/src/structured-output/exceptions.d.ts +0 -18
- package/dist/src/structured-output/exceptions.d.ts.map +0 -1
- package/dist/src/structured-output/exceptions.js +0 -28
- package/dist/src/structured-output/exceptions.js.map +0 -1
- package/dist/src/structured-output/tool.d.ts +0 -33
- package/dist/src/structured-output/tool.d.ts.map +0 -1
- package/dist/src/structured-output/tool.js +0 -73
- package/dist/src/structured-output/tool.js.map +0 -1
- package/dist/src/structured-output/utils.d.ts +0 -23
- package/dist/src/structured-output/utils.d.ts.map +0 -1
- package/dist/src/structured-output/utils.js +0 -104
- package/dist/src/structured-output/utils.js.map +0 -1
- package/dist/src/utils/zod.d.ts.map +0 -1
- package/dist/src/utils/zod.js.map +0 -1
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.d.ts.map +0 -1
- package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js.map +0 -1
- package/dist/src/vended-tools/file_editor/index.js.map +0 -1
- package/dist/src/vended-tools/file_editor/types.js.map +0 -1
- package/dist/src/vended-tools/http_request/__tests__/http-request.test.d.ts.map +0 -1
- package/dist/src/vended-tools/http_request/index.js.map +0 -1
- package/dist/src/vended-tools/http_request/types.js.map +0 -1
- /package/dist/src/vended-tools/{file_editor → file-editor}/__tests__/file-editor.test.node.d.ts +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/index.d.ts +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/index.js +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/types.d.ts +0 -0
- /package/dist/src/vended-tools/{file_editor → file-editor}/types.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/__tests__/http-request.test.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/http-request.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/http-request.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/index.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/index.js +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/types.d.ts +0 -0
- /package/dist/src/vended-tools/{http_request → http-request}/types.js +0 -0
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* The {@link Meter} accumulates local metrics during agent invocation and
|
|
5
5
|
* provides them as a read-only {@link AgentMetrics} snapshot via the
|
|
6
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.
|
|
7
11
|
*/
|
|
8
12
|
import type { Usage, Metrics, ModelMetadataEventData } from '../models/streaming.js';
|
|
9
13
|
import type { ToolUse } from '../tools/types.js';
|
|
@@ -111,10 +115,10 @@ interface ToolUsageOptions {
|
|
|
111
115
|
* @example
|
|
112
116
|
* ```typescript
|
|
113
117
|
* const result = await agent.invoke('Hello')
|
|
114
|
-
* console.log(result.metrics
|
|
115
|
-
* console.log(result.metrics
|
|
116
|
-
* console.log(result.metrics
|
|
117
|
-
* console.log(result.metrics
|
|
118
|
+
* console.log(result.metrics?.cycleCount)
|
|
119
|
+
* console.log(result.metrics?.totalDuration)
|
|
120
|
+
* console.log(result.metrics?.accumulatedData)
|
|
121
|
+
* console.log(result.metrics?.toolMetrics)
|
|
118
122
|
* console.log(JSON.stringify(result.metrics))
|
|
119
123
|
* ```
|
|
120
124
|
*/
|
|
@@ -181,6 +185,9 @@ export declare class AgentMetrics implements JSONSerializable<AgentMetricsData>
|
|
|
181
185
|
* Use the {@link metrics} getter to obtain a read-only {@link AgentMetrics}
|
|
182
186
|
* snapshot for inclusion in {@link AgentResult}.
|
|
183
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.
|
|
184
191
|
*/
|
|
185
192
|
export declare class Meter {
|
|
186
193
|
/**
|
|
@@ -203,6 +210,18 @@ export declare class Meter {
|
|
|
203
210
|
* Per-tool execution metrics keyed by tool name.
|
|
204
211
|
*/
|
|
205
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();
|
|
206
225
|
/**
|
|
207
226
|
* Begin tracking a new agent invocation.
|
|
208
227
|
* Creates a new InvocationMetricsData entry for per-invocation metrics.
|
|
@@ -259,19 +278,6 @@ export declare class Meter {
|
|
|
259
278
|
* @param usage - The usage data to accumulate
|
|
260
279
|
*/
|
|
261
280
|
private _updateUsage;
|
|
262
|
-
/**
|
|
263
|
-
* Creates an empty Usage object with all counters set to zero.
|
|
264
|
-
*
|
|
265
|
-
* @returns A Usage object with zeroed counters
|
|
266
|
-
*/
|
|
267
|
-
private static _createEmptyUsage;
|
|
268
|
-
/**
|
|
269
|
-
* Accumulates token usage from a source into a target Usage object.
|
|
270
|
-
*
|
|
271
|
-
* @param target - The Usage object to accumulate into (mutated in place)
|
|
272
|
-
* @param source - The Usage object to accumulate from
|
|
273
|
-
*/
|
|
274
|
-
private static _accumulateUsage;
|
|
275
281
|
}
|
|
276
282
|
export {};
|
|
277
283
|
//# sourceMappingURL=meter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meter.d.ts","sourceRoot":"","sources":["../../../src/telemetry/meter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"meter.d.ts","sourceRoot":"","sources":["../../../src/telemetry/meter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,14 @@
|
|
|
4
4
|
* The {@link Meter} accumulates local metrics during agent invocation and
|
|
5
5
|
* provides them as a read-only {@link AgentMetrics} snapshot via the
|
|
6
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.
|
|
7
11
|
*/
|
|
12
|
+
import { metrics as otelMetrics } from '@opentelemetry/api';
|
|
13
|
+
import { accumulateUsage, createEmptyUsage } from '../models/streaming.js';
|
|
14
|
+
import { getServiceName } from './utils.js';
|
|
8
15
|
/**
|
|
9
16
|
* Read-only snapshot of aggregated agent metrics.
|
|
10
17
|
*
|
|
@@ -15,10 +22,10 @@
|
|
|
15
22
|
* @example
|
|
16
23
|
* ```typescript
|
|
17
24
|
* const result = await agent.invoke('Hello')
|
|
18
|
-
* console.log(result.metrics
|
|
19
|
-
* console.log(result.metrics
|
|
20
|
-
* console.log(result.metrics
|
|
21
|
-
* console.log(result.metrics
|
|
25
|
+
* console.log(result.metrics?.cycleCount)
|
|
26
|
+
* console.log(result.metrics?.totalDuration)
|
|
27
|
+
* console.log(result.metrics?.accumulatedData)
|
|
28
|
+
* console.log(result.metrics?.toolMetrics)
|
|
22
29
|
* console.log(JSON.stringify(result.metrics))
|
|
23
30
|
* ```
|
|
24
31
|
*/
|
|
@@ -45,7 +52,7 @@ export class AgentMetrics {
|
|
|
45
52
|
toolMetrics;
|
|
46
53
|
constructor(data) {
|
|
47
54
|
this.cycleCount = data?.cycleCount ?? 0;
|
|
48
|
-
this.accumulatedUsage = data?.accumulatedUsage ??
|
|
55
|
+
this.accumulatedUsage = data?.accumulatedUsage ?? createEmptyUsage();
|
|
49
56
|
this.accumulatedMetrics = data?.accumulatedMetrics ?? { latencyMs: 0 };
|
|
50
57
|
this.agentInvocations = data?.agentInvocations ?? [];
|
|
51
58
|
this.toolMetrics = data?.toolMetrics ?? {};
|
|
@@ -112,6 +119,9 @@ export class AgentMetrics {
|
|
|
112
119
|
* Use the {@link metrics} getter to obtain a read-only {@link AgentMetrics}
|
|
113
120
|
* snapshot for inclusion in {@link AgentResult}.
|
|
114
121
|
*
|
|
122
|
+
* When an OTEL MeterProvider is registered, the same data is also emitted
|
|
123
|
+
* as OTEL counters and histograms via the global metrics API. If no
|
|
124
|
+
* provider is registered the OTEL meter is a no-op and adds no overhead.
|
|
115
125
|
*/
|
|
116
126
|
export class Meter {
|
|
117
127
|
/**
|
|
@@ -121,7 +131,7 @@ export class Meter {
|
|
|
121
131
|
/**
|
|
122
132
|
* Accumulated token usage across all model invocations.
|
|
123
133
|
*/
|
|
124
|
-
_accumulatedUsage =
|
|
134
|
+
_accumulatedUsage = createEmptyUsage();
|
|
125
135
|
/**
|
|
126
136
|
* Accumulated performance metrics across all model invocations.
|
|
127
137
|
*/
|
|
@@ -134,6 +144,56 @@ export class Meter {
|
|
|
134
144
|
* Per-tool execution metrics keyed by tool name.
|
|
135
145
|
*/
|
|
136
146
|
_toolMetrics = {};
|
|
147
|
+
// OTEL instruments (no-op when no MeterProvider is registered)
|
|
148
|
+
_otelMeter;
|
|
149
|
+
_otelCycleCounter;
|
|
150
|
+
_otelInvocationCounter;
|
|
151
|
+
_otelCycleDuration;
|
|
152
|
+
_otelToolCallCounter;
|
|
153
|
+
_otelToolErrorCounter;
|
|
154
|
+
_otelToolDuration;
|
|
155
|
+
_otelInputTokens;
|
|
156
|
+
_otelOutputTokens;
|
|
157
|
+
_otelModelLatency;
|
|
158
|
+
_otelTimeToFirstToken;
|
|
159
|
+
constructor() {
|
|
160
|
+
this._otelMeter = otelMetrics.getMeter(getServiceName());
|
|
161
|
+
this._otelCycleCounter = this._otelMeter.createCounter('gen_ai.agent.cycle.count', {
|
|
162
|
+
description: 'Number of agent loop cycles executed',
|
|
163
|
+
});
|
|
164
|
+
this._otelInvocationCounter = this._otelMeter.createCounter('gen_ai.agent.invocation.count', {
|
|
165
|
+
description: 'Number of agent invocations',
|
|
166
|
+
});
|
|
167
|
+
this._otelCycleDuration = this._otelMeter.createHistogram('gen_ai.agent.cycle.duration', {
|
|
168
|
+
description: 'Duration of agent loop cycles in milliseconds',
|
|
169
|
+
unit: 'ms',
|
|
170
|
+
});
|
|
171
|
+
this._otelToolCallCounter = this._otelMeter.createCounter('gen_ai.agent.tool.call.count', {
|
|
172
|
+
description: 'Number of tool calls',
|
|
173
|
+
});
|
|
174
|
+
this._otelToolErrorCounter = this._otelMeter.createCounter('gen_ai.agent.tool.error.count', {
|
|
175
|
+
description: 'Number of failed tool calls',
|
|
176
|
+
});
|
|
177
|
+
this._otelToolDuration = this._otelMeter.createHistogram('gen_ai.agent.tool.duration', {
|
|
178
|
+
description: 'Duration of tool calls in milliseconds',
|
|
179
|
+
unit: 'ms',
|
|
180
|
+
});
|
|
181
|
+
this._otelInputTokens = this._otelMeter.createCounter('gen_ai.agent.tokens.input', {
|
|
182
|
+
description: 'Input tokens consumed',
|
|
183
|
+
});
|
|
184
|
+
this._otelOutputTokens = this._otelMeter.createCounter('gen_ai.agent.tokens.output', {
|
|
185
|
+
description: 'Output tokens consumed',
|
|
186
|
+
});
|
|
187
|
+
this._otelModelLatency = this._otelMeter.createHistogram('gen_ai.agent.model.latency', {
|
|
188
|
+
description: 'Model invocation latency in milliseconds',
|
|
189
|
+
unit: 'ms',
|
|
190
|
+
});
|
|
191
|
+
// OTel GenAI semconv requires seconds for this metric, unlike the SDK-internal histograms which use ms
|
|
192
|
+
this._otelTimeToFirstToken = this._otelMeter.createHistogram('gen_ai.server.time_to_first_token', {
|
|
193
|
+
description: 'Time to generate first token for successful responses',
|
|
194
|
+
unit: 's',
|
|
195
|
+
});
|
|
196
|
+
}
|
|
137
197
|
/**
|
|
138
198
|
* Begin tracking a new agent invocation.
|
|
139
199
|
* Creates a new InvocationMetricsData entry for per-invocation metrics.
|
|
@@ -141,8 +201,9 @@ export class Meter {
|
|
|
141
201
|
startNewInvocation() {
|
|
142
202
|
this._agentInvocations.push({
|
|
143
203
|
cycles: [],
|
|
144
|
-
usage:
|
|
204
|
+
usage: createEmptyUsage(),
|
|
145
205
|
});
|
|
206
|
+
this._otelInvocationCounter.add(1);
|
|
146
207
|
}
|
|
147
208
|
/**
|
|
148
209
|
* Start a new agent loop cycle.
|
|
@@ -151,6 +212,7 @@ export class Meter {
|
|
|
151
212
|
*/
|
|
152
213
|
startCycle() {
|
|
153
214
|
this._cycleCount++;
|
|
215
|
+
this._otelCycleCounter.add(1);
|
|
154
216
|
const cycleId = `cycle-${this._cycleCount}`;
|
|
155
217
|
const startTime = Date.now();
|
|
156
218
|
const latestInvocation = this._latestAgentInvocation;
|
|
@@ -158,7 +220,7 @@ export class Meter {
|
|
|
158
220
|
latestInvocation.cycles.push({
|
|
159
221
|
cycleId: cycleId,
|
|
160
222
|
duration: 0,
|
|
161
|
-
usage:
|
|
223
|
+
usage: createEmptyUsage(),
|
|
162
224
|
});
|
|
163
225
|
}
|
|
164
226
|
return { cycleId, startTime };
|
|
@@ -169,11 +231,13 @@ export class Meter {
|
|
|
169
231
|
* @param startTime - The timestamp when the cycle started (milliseconds since epoch)
|
|
170
232
|
*/
|
|
171
233
|
endCycle(startTime) {
|
|
234
|
+
const duration = Date.now() - startTime;
|
|
235
|
+
this._otelCycleDuration.record(duration);
|
|
172
236
|
const latestInvocation = this._latestAgentInvocation;
|
|
173
237
|
if (latestInvocation) {
|
|
174
238
|
const cycles = latestInvocation.cycles;
|
|
175
239
|
if (cycles.length > 0) {
|
|
176
|
-
cycles[cycles.length - 1].duration =
|
|
240
|
+
cycles[cycles.length - 1].duration = duration;
|
|
177
241
|
}
|
|
178
242
|
}
|
|
179
243
|
}
|
|
@@ -191,11 +255,15 @@ export class Meter {
|
|
|
191
255
|
const toolEntry = this._toolMetrics[toolName];
|
|
192
256
|
toolEntry.callCount++;
|
|
193
257
|
toolEntry.totalTime += duration;
|
|
258
|
+
const attrs = { 'gen_ai.tool.name': toolName };
|
|
259
|
+
this._otelToolCallCounter.add(1, attrs);
|
|
260
|
+
this._otelToolDuration.record(duration, attrs);
|
|
194
261
|
if (success) {
|
|
195
262
|
toolEntry.successCount++;
|
|
196
263
|
}
|
|
197
264
|
else {
|
|
198
265
|
toolEntry.errorCount++;
|
|
266
|
+
this._otelToolErrorCounter.add(1, attrs);
|
|
199
267
|
}
|
|
200
268
|
}
|
|
201
269
|
/**
|
|
@@ -241,6 +309,10 @@ export class Meter {
|
|
|
241
309
|
}
|
|
242
310
|
if (metadata.metrics) {
|
|
243
311
|
this._accumulatedMetrics.latencyMs += metadata.metrics.latencyMs;
|
|
312
|
+
this._otelModelLatency.record(metadata.metrics.latencyMs);
|
|
313
|
+
if (metadata.metrics.timeToFirstByteMs !== undefined && metadata.metrics.timeToFirstByteMs > 0) {
|
|
314
|
+
this._otelTimeToFirstToken.record(metadata.metrics.timeToFirstByteMs / 1000);
|
|
315
|
+
}
|
|
244
316
|
}
|
|
245
317
|
}
|
|
246
318
|
/**
|
|
@@ -249,44 +321,17 @@ export class Meter {
|
|
|
249
321
|
* @param usage - The usage data to accumulate
|
|
250
322
|
*/
|
|
251
323
|
_updateUsage(usage) {
|
|
252
|
-
|
|
324
|
+
accumulateUsage(this._accumulatedUsage, usage);
|
|
325
|
+
this._otelInputTokens.add(usage.inputTokens);
|
|
326
|
+
this._otelOutputTokens.add(usage.outputTokens);
|
|
253
327
|
const latestInvocation = this._latestAgentInvocation;
|
|
254
328
|
if (latestInvocation) {
|
|
255
|
-
|
|
329
|
+
accumulateUsage(latestInvocation.usage, usage);
|
|
256
330
|
const cycles = latestInvocation.cycles;
|
|
257
331
|
if (cycles.length > 0) {
|
|
258
|
-
|
|
332
|
+
accumulateUsage(cycles[cycles.length - 1].usage, usage);
|
|
259
333
|
}
|
|
260
334
|
}
|
|
261
335
|
}
|
|
262
|
-
/**
|
|
263
|
-
* Creates an empty Usage object with all counters set to zero.
|
|
264
|
-
*
|
|
265
|
-
* @returns A Usage object with zeroed counters
|
|
266
|
-
*/
|
|
267
|
-
static _createEmptyUsage() {
|
|
268
|
-
return {
|
|
269
|
-
inputTokens: 0,
|
|
270
|
-
outputTokens: 0,
|
|
271
|
-
totalTokens: 0,
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* Accumulates token usage from a source into a target Usage object.
|
|
276
|
-
*
|
|
277
|
-
* @param target - The Usage object to accumulate into (mutated in place)
|
|
278
|
-
* @param source - The Usage object to accumulate from
|
|
279
|
-
*/
|
|
280
|
-
static _accumulateUsage(target, source) {
|
|
281
|
-
target.inputTokens += source.inputTokens;
|
|
282
|
-
target.outputTokens += source.outputTokens;
|
|
283
|
-
target.totalTokens += source.totalTokens;
|
|
284
|
-
if (source.cacheReadInputTokens !== undefined) {
|
|
285
|
-
target.cacheReadInputTokens = (target.cacheReadInputTokens ?? 0) + source.cacheReadInputTokens;
|
|
286
|
-
}
|
|
287
|
-
if (source.cacheWriteInputTokens !== undefined) {
|
|
288
|
-
target.cacheWriteInputTokens = (target.cacheWriteInputTokens ?? 0) + source.cacheWriteInputTokens;
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
336
|
}
|
|
292
337
|
//# sourceMappingURL=meter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meter.js","sourceRoot":"","sources":["../../../src/telemetry/meter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"meter.js","sourceRoot":"","sources":["../../../src/telemetry/meter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OpenTelemetry
|
|
2
|
+
* OpenTelemetry tracing and local execution trace management.
|
|
3
3
|
*
|
|
4
4
|
* This module provides tracing capabilities using OpenTelemetry,
|
|
5
5
|
* enabling trace data to be sent to OTLP endpoints.
|
|
@@ -9,37 +9,87 @@
|
|
|
9
9
|
* context.active(). Use context.with() to set a span as active before
|
|
10
10
|
* creating child spans.
|
|
11
11
|
*
|
|
12
|
+
* Lightweight in-memory LocalTrace trees are always collected regardless
|
|
13
|
+
* of OTel configuration and surfaced via AgentResult.traces.
|
|
14
|
+
*
|
|
12
15
|
* @example
|
|
13
16
|
* ```typescript
|
|
14
17
|
* const tracer = new Tracer()
|
|
15
18
|
* const parentSpan = tracer.startAgentSpan({ ... })
|
|
16
19
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* const childSpan = tracer.startModelInvokeSpan({ messages })
|
|
21
|
-
* // ...
|
|
22
|
-
* tracer.endModelInvokeSpan(childSpan)
|
|
20
|
+
* context.with(trace.setSpan(context.active(), parentSpan), async () => {
|
|
21
|
+
* const modelSpan = tracer.startModelInvokeSpan({ messages })
|
|
22
|
+
* tracer.endModelInvokeSpan(modelSpan)
|
|
23
23
|
* })
|
|
24
24
|
*
|
|
25
25
|
* tracer.endAgentSpan(parentSpan)
|
|
26
26
|
* ```
|
|
27
27
|
*/
|
|
28
28
|
import type { Span, AttributeValue } from '@opentelemetry/api';
|
|
29
|
-
import type { EndAgentSpanOptions, EndModelSpanOptions, EndToolCallSpanOptions, EndAgentLoopSpanOptions, StartAgentSpanOptions, StartModelInvokeSpanOptions, StartToolCallSpanOptions, StartAgentLoopSpanOptions } from './types.js';
|
|
29
|
+
import type { EndAgentSpanOptions, EndModelSpanOptions, EndToolCallSpanOptions, EndAgentLoopSpanOptions, StartAgentSpanOptions, StartModelInvokeSpanOptions, StartToolCallSpanOptions, StartAgentLoopSpanOptions, StartMultiAgentSpanOptions, EndMultiAgentSpanOptions, StartNodeSpanOptions, EndNodeSpanOptions } from './types.js';
|
|
30
|
+
import type { Message } from '../types/messages.js';
|
|
31
|
+
import type { JSONSerializable } from '../types/json.js';
|
|
32
|
+
/**
|
|
33
|
+
* JSON-serializable representation of LocalTrace.
|
|
34
|
+
*/
|
|
35
|
+
interface AgentTraceData {
|
|
36
|
+
id: string;
|
|
37
|
+
name: string;
|
|
38
|
+
parentId: string | null;
|
|
39
|
+
startTime: number;
|
|
40
|
+
endTime: number | null;
|
|
41
|
+
duration: number;
|
|
42
|
+
children: AgentTraceData[];
|
|
43
|
+
metadata: Record<string, string>;
|
|
44
|
+
message: Message | null;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Execution trace for performance analysis.
|
|
48
|
+
* Tracks timing and hierarchy of operations within the agent loop.
|
|
49
|
+
* Fields default to null for JSON serialization compatibility.
|
|
50
|
+
*/
|
|
51
|
+
export declare class AgentTrace implements JSONSerializable<AgentTraceData> {
|
|
52
|
+
/** Unique identifier (UUID) for this trace. */
|
|
53
|
+
readonly id: string;
|
|
54
|
+
/** Human-readable display name (e.g., "Cycle 1", "Tool: calc", "stream_messages"). */
|
|
55
|
+
readonly name: string;
|
|
56
|
+
/** ID of the parent trace, if this trace is nested. Null for root traces. */
|
|
57
|
+
readonly parentId: string | null;
|
|
58
|
+
/** Start time in milliseconds since epoch. */
|
|
59
|
+
readonly startTime: number;
|
|
60
|
+
/** End time in milliseconds since epoch. Null until trace is ended. */
|
|
61
|
+
endTime: number | null;
|
|
62
|
+
/** Duration in milliseconds (endTime - startTime). */
|
|
63
|
+
duration: number;
|
|
64
|
+
/** Child traces nested under this trace. */
|
|
65
|
+
readonly children: AgentTrace[];
|
|
66
|
+
/** Additional metadata for this trace (e.g., cycleId, toolUseId, toolName). */
|
|
67
|
+
readonly metadata: Record<string, string>;
|
|
68
|
+
/** Message associated with this trace (e.g., model output). Null if not applicable. */
|
|
69
|
+
message: Message | null;
|
|
70
|
+
/**
|
|
71
|
+
* @param name - Display name for this trace
|
|
72
|
+
* @param options - Optional configuration for parent and startTime
|
|
73
|
+
*/
|
|
74
|
+
constructor(name: string, options?: {
|
|
75
|
+
parent?: AgentTrace;
|
|
76
|
+
startTime?: number;
|
|
77
|
+
});
|
|
78
|
+
/**
|
|
79
|
+
* @param endTime - Optional end time in milliseconds since epoch
|
|
80
|
+
*/
|
|
81
|
+
end(endTime?: number): void;
|
|
82
|
+
toJSON(): AgentTraceData;
|
|
83
|
+
}
|
|
30
84
|
/**
|
|
31
|
-
*
|
|
85
|
+
* Manages both OpenTelemetry spans and local execution traces for agent operations.
|
|
86
|
+
*
|
|
87
|
+
* OTel spans are exported to external observability backends (Jaeger, X-Ray, etc.)
|
|
88
|
+
* when configured via setupTracer(). Local traces are lightweight, in-memory timing
|
|
89
|
+
* trees that are always collected regardless of OTel configuration and returned
|
|
90
|
+
* in AgentResult.traces for programmatic access.
|
|
32
91
|
*
|
|
33
|
-
* Uses a fully stateful approach via OpenTelemetry's context propagation.
|
|
34
|
-
* Parent-child relationships are established automatically through context.active().
|
|
35
92
|
*
|
|
36
|
-
* To create nested spans, use context.with() to set the parent span as active:
|
|
37
|
-
* ```typescript
|
|
38
|
-
* const parent = tracer.startAgentSpan({ ... })
|
|
39
|
-
* context.with(trace.setSpan(context.active(), parent), () => {
|
|
40
|
-
* const child = tracer.startModelInvokeSpan({ messages }) // auto-parents to parent
|
|
41
|
-
* })
|
|
42
|
-
* ```
|
|
43
93
|
*/
|
|
44
94
|
export declare class Tracer {
|
|
45
95
|
/**
|
|
@@ -77,6 +127,16 @@ export declare class Tracer {
|
|
|
77
127
|
private _agentSpan;
|
|
78
128
|
/** Span for the current agent loop cycle, used to parent model and tool spans. */
|
|
79
129
|
private _loopSpan;
|
|
130
|
+
/** Root span for the current multi-agent orchestration, used to parent node spans. */
|
|
131
|
+
private _multiAgentSpan;
|
|
132
|
+
/**
|
|
133
|
+
* Whether Langfuse is configured as the OTLP endpoint.
|
|
134
|
+
* Detected from OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_TRACES_ENDPOINT,
|
|
135
|
+
* or LANGFUSE_BASE_URL environment variables.
|
|
136
|
+
*/
|
|
137
|
+
private readonly _isLangfuse;
|
|
138
|
+
/** In-memory execution trace state, collected independently of OTEL. */
|
|
139
|
+
private readonly _traceState;
|
|
80
140
|
/**
|
|
81
141
|
* Initialize the tracer with OpenTelemetry configuration.
|
|
82
142
|
* Reads OTEL_SEMCONV_STABILITY_OPT_IN to determine convention version.
|
|
@@ -86,6 +146,10 @@ export declare class Tracer {
|
|
|
86
146
|
* @param traceAttributes - Optional custom attributes to include on all spans
|
|
87
147
|
*/
|
|
88
148
|
constructor(traceAttributes?: Record<string, AttributeValue>);
|
|
149
|
+
/**
|
|
150
|
+
* All local execution traces collected by this tracer.
|
|
151
|
+
*/
|
|
152
|
+
get localTraces(): AgentTrace[];
|
|
89
153
|
/**
|
|
90
154
|
* Start an agent invocation span.
|
|
91
155
|
* Returns the span which should be ended with endAgentSpan.
|
|
@@ -129,6 +193,36 @@ export declare class Tracer {
|
|
|
129
193
|
* @param options - Options for ending the tool call span
|
|
130
194
|
*/
|
|
131
195
|
endToolCallSpan(span: Span | null, options?: EndToolCallSpanOptions): void;
|
|
196
|
+
/**
|
|
197
|
+
* Start a multi-agent orchestration span.
|
|
198
|
+
* Parents to the current active span from context.active().
|
|
199
|
+
*
|
|
200
|
+
* @param options - Options for starting the multi-agent span
|
|
201
|
+
* @returns The span, or null if span creation failed
|
|
202
|
+
*/
|
|
203
|
+
startMultiAgentSpan(options: StartMultiAgentSpanOptions): Span | null;
|
|
204
|
+
/**
|
|
205
|
+
* End a multi-agent orchestration span.
|
|
206
|
+
*
|
|
207
|
+
* @param span - The span to end, or null if span creation failed
|
|
208
|
+
* @param options - Options for ending the span including duration and error
|
|
209
|
+
*/
|
|
210
|
+
endMultiAgentSpan(span: Span | null, options?: EndMultiAgentSpanOptions): void;
|
|
211
|
+
/**
|
|
212
|
+
* Start a node execution span.
|
|
213
|
+
* Parents to the current active span from context.active().
|
|
214
|
+
*
|
|
215
|
+
* @param options - Options for starting the node span
|
|
216
|
+
* @returns The span, or null if span creation failed
|
|
217
|
+
*/
|
|
218
|
+
startNodeSpan(options: StartNodeSpanOptions): Span | null;
|
|
219
|
+
/**
|
|
220
|
+
* End a node execution span.
|
|
221
|
+
*
|
|
222
|
+
* @param span - The span to end, or null if span creation failed
|
|
223
|
+
* @param options - Options for ending the span including status, duration, and error
|
|
224
|
+
*/
|
|
225
|
+
endNodeSpan(span: Span | null, options?: EndNodeSpanOptions): void;
|
|
132
226
|
/**
|
|
133
227
|
* Runs a callback with the given span set as the active OpenTelemetry context.
|
|
134
228
|
* Downstream code (e.g., MCP clients) can read the span from context.active()
|
|
@@ -205,6 +299,27 @@ export declare class Tracer {
|
|
|
205
299
|
* Parse the OTEL_SEMCONV_STABILITY_OPT_IN environment variable.
|
|
206
300
|
*/
|
|
207
301
|
private static _parseSemconvOptIn;
|
|
302
|
+
/**
|
|
303
|
+
* Detect whether Langfuse is configured as the OTLP endpoint.
|
|
304
|
+
* Checks OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_TRACES_ENDPOINT,
|
|
305
|
+
* and LANGFUSE_BASE_URL environment variables.
|
|
306
|
+
*/
|
|
307
|
+
private static _detectLangfuse;
|
|
308
|
+
/**
|
|
309
|
+
* Emit system prompt as a span event per OTel GenAI semantic conventions.
|
|
310
|
+
* In stable mode, emits a `gen_ai.system.message` event.
|
|
311
|
+
* In latest experimental mode, emits `gen_ai.system_instructions` on the
|
|
312
|
+
* `gen_ai.client.inference.operation.details` event.
|
|
313
|
+
*
|
|
314
|
+
* @param span - The span to add the event to
|
|
315
|
+
* @param systemPrompt - The system prompt provided to the model
|
|
316
|
+
*/
|
|
317
|
+
private _addSystemPromptEvent;
|
|
318
|
+
/**
|
|
319
|
+
* Map a system prompt to OTEL parts format (latest conventions).
|
|
320
|
+
* Handles both string prompts and SystemContentBlock arrays.
|
|
321
|
+
*/
|
|
322
|
+
private static _mapSystemPromptToOtelParts;
|
|
208
323
|
/**
|
|
209
324
|
* Map content blocks to OTEL parts format (latest conventions).
|
|
210
325
|
* Converts SDK content block types to OTEL semantic convention format.
|
|
@@ -216,4 +331,5 @@ export declare class Tracer {
|
|
|
216
331
|
*/
|
|
217
332
|
private static _mapContentBlocksToStableFormat;
|
|
218
333
|
}
|
|
334
|
+
export {};
|
|
219
335
|
//# sourceMappingURL=tracer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/telemetry/tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAqC,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEjG,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/telemetry/tracer.ts"],"names":[],"mappings":"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"}
|