@strands-agents/sdk 0.5.0 → 0.6.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/dist/src/__fixtures__/metrics-helpers.d.ts +25 -0
- package/dist/src/__fixtures__/metrics-helpers.d.ts.map +1 -0
- package/dist/src/__fixtures__/metrics-helpers.js +34 -0
- package/dist/src/__fixtures__/metrics-helpers.js.map +1 -0
- package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -1
- package/dist/src/__fixtures__/mock-message-model.js +12 -0
- package/dist/src/__fixtures__/mock-message-model.js.map +1 -1
- 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/__tests__/mcp.test.js +45 -15
- package/dist/src/__tests__/mcp.test.js.map +1 -1
- package/dist/src/agent/__tests__/agent.test.js +90 -92
- package/dist/src/agent/__tests__/agent.test.js.map +1 -1
- package/dist/src/agent/agent.d.ts +35 -18
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +115 -57
- package/dist/src/agent/agent.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/events.d.ts +16 -0
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/index.d.ts +1 -1
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/index.d.ts +21 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +15 -2
- 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/models/__tests__/bedrock.test.js +688 -0
- package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
- package/dist/src/models/__tests__/model.test.js +106 -0
- package/dist/src/models/__tests__/model.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/bedrock.d.ts +80 -1
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +214 -5
- package/dist/src/models/bedrock.js.map +1 -1
- package/dist/src/models/model.d.ts +6 -0
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +52 -2
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/streaming.d.ts +83 -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 +18 -2
- 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 +438 -0
- package/dist/src/multiagent/__tests__/graph.test.js.map +1 -0
- package/dist/src/multiagent/__tests__/nodes.test.js +8 -8
- 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 +241 -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 +15 -1
- package/dist/src/multiagent/events.d.ts.map +1 -1
- package/dist/src/multiagent/events.js +17 -0
- package/dist/src/multiagent/events.js.map +1 -1
- package/dist/src/multiagent/graph.d.ts +125 -0
- package/dist/src/multiagent/graph.d.ts.map +1 -0
- package/dist/src/multiagent/graph.js +394 -0
- package/dist/src/multiagent/graph.js.map +1 -0
- package/dist/src/multiagent/index.d.ts +5 -1
- 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/nodes.d.ts +8 -6
- package/dist/src/multiagent/nodes.d.ts.map +1 -1
- package/dist/src/multiagent/nodes.js +16 -5
- package/dist/src/multiagent/nodes.js.map +1 -1
- 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 +2 -0
- package/dist/src/multiagent/state.d.ts.map +1 -1
- package/dist/src/multiagent/state.js +3 -0
- package/dist/src/multiagent/state.js.map +1 -1
- package/dist/src/multiagent/swarm.d.ts +102 -0
- package/dist/src/multiagent/swarm.d.ts.map +1 -0
- package/dist/src/multiagent/swarm.js +238 -0
- package/dist/src/multiagent/swarm.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 +461 -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 -13
- package/dist/src/session/index.d.ts.map +1 -1
- package/dist/src/session/index.js +4 -12
- 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 +83 -0
- package/dist/src/session/session-manager.d.ts.map +1 -0
- package/dist/src/session/session-manager.js +122 -0
- package/dist/src/session/session-manager.js.map +1 -0
- package/dist/src/session/storage.d.ts +19 -11
- package/dist/src/session/storage.d.ts.map +1 -1
- package/dist/src/session/types.d.ts +6 -18
- 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/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 +40 -0
- package/dist/src/telemetry/__tests__/config.test.js.map +1 -0
- package/dist/src/telemetry/__tests__/config.test.node.js +10 -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 +457 -0
- package/dist/src/telemetry/__tests__/meter.test.js.map +1 -0
- package/dist/src/telemetry/config.d.ts +40 -19
- package/dist/src/telemetry/config.d.ts.map +1 -1
- package/dist/src/telemetry/config.js +63 -31
- package/dist/src/telemetry/config.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +1 -1
- package/dist/src/telemetry/index.d.ts.map +1 -1
- package/dist/src/telemetry/index.js +1 -1
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/meter.d.ts +277 -0
- package/dist/src/telemetry/meter.d.ts.map +1 -0
- package/dist/src/telemetry/meter.js +292 -0
- package/dist/src/telemetry/meter.js.map +1 -0
- package/dist/src/telemetry/tracer.js +2 -2
- package/dist/src/telemetry/tracer.js.map +1 -1
- 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__/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 +15 -2
- package/dist/src/tools/function-tool.d.ts.map +1 -1
- package/dist/src/tools/function-tool.js +24 -0
- 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/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__/messages.test.js +26 -0
- package/dist/src/types/__tests__/messages.test.js.map +1 -1
- package/dist/src/types/agent.d.ts +7 -0
- 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/messages.d.ts +5 -1
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js +4 -0
- package/dist/src/types/messages.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/file-editor.js +1 -1
- package/dist/src/vended-tools/file_editor/file-editor.js.map +1 -1
- package/dist/src/vended-tools/http_request/http-request.d.ts.map +1 -1
- package/dist/src/vended-tools/http_request/http-request.js +1 -2
- package/dist/src/vended-tools/http_request/http-request.js.map +1 -1
- package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
- package/package.json +15 -3
- 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
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OpenTelemetry configuration and setup utilities for Strands agents.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Uses NodeTracerProvider when available for async context propagation
|
|
5
|
+
* across MCP server boundaries. Falls back to BasicTracerProvider in
|
|
6
|
+
* environments without async_hooks support.
|
|
7
|
+
*
|
|
8
|
+
* @see https://github.com/strands-agents/sdk-typescript/issues/447
|
|
6
9
|
*/
|
|
10
|
+
import { trace } from '@opentelemetry/api';
|
|
7
11
|
import { Resource, envDetectorSync } from '@opentelemetry/resources';
|
|
8
|
-
import {
|
|
9
|
-
import { SimpleSpanProcessor, BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';
|
|
12
|
+
import { BasicTracerProvider, ConsoleSpanExporter, SimpleSpanProcessor, BatchSpanProcessor, } from '@opentelemetry/sdk-trace-base';
|
|
10
13
|
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
|
|
11
14
|
import { logger } from '../logging/index.js';
|
|
15
|
+
let DefaultTracerProvider = BasicTracerProvider;
|
|
16
|
+
if (typeof globalThis.process?.getBuiltinModule === 'function') {
|
|
17
|
+
try {
|
|
18
|
+
const nodeModule = globalThis.process.getBuiltinModule('node:module');
|
|
19
|
+
if (nodeModule) {
|
|
20
|
+
const req = nodeModule.createRequire(import.meta.url);
|
|
21
|
+
DefaultTracerProvider = req('@opentelemetry/sdk-trace-node').NodeTracerProvider;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
logger.info('sdk-trace-node not available; using BasicTracerProvider without async context propagation');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
12
28
|
const DEFAULT_SERVICE_NAME = 'strands-agents';
|
|
13
29
|
const DEFAULT_SERVICE_NAMESPACE = 'strands';
|
|
14
30
|
const DEFAULT_DEPLOYMENT_ENVIRONMENT = 'development';
|
|
@@ -20,27 +36,46 @@ const DEFAULT_DEPLOYMENT_ENVIRONMENT = 'development';
|
|
|
20
36
|
export function getServiceName() {
|
|
21
37
|
return globalThis?.process?.env?.OTEL_SERVICE_NAME || DEFAULT_SERVICE_NAME;
|
|
22
38
|
}
|
|
39
|
+
/**
|
|
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 { telemetry } from '@strands-agents/sdk'
|
|
50
|
+
*
|
|
51
|
+
* // Set up telemetry first (or register your own NodeTracerProvider)
|
|
52
|
+
* telemetry.setupTracer({ exporters: { otlp: true } })
|
|
53
|
+
*
|
|
54
|
+
* // Get a tracer and create custom spans
|
|
55
|
+
* const tracer = telemetry.getTracer()
|
|
56
|
+
* const span = tracer.startSpan('my-custom-operation')
|
|
57
|
+
* span.setAttribute('custom.key', 'value')
|
|
58
|
+
*
|
|
59
|
+
* // ........
|
|
60
|
+
*
|
|
61
|
+
* span.end()
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export function getTracer() {
|
|
65
|
+
return trace.getTracer(getServiceName());
|
|
66
|
+
}
|
|
23
67
|
let _provider = null;
|
|
24
68
|
/**
|
|
25
69
|
* Set up the tracer provider with the given configuration.
|
|
26
70
|
*
|
|
27
71
|
* @param config - Tracer configuration options
|
|
28
|
-
* @returns The configured
|
|
72
|
+
* @returns The configured tracer provider
|
|
29
73
|
*
|
|
30
74
|
* @example
|
|
31
75
|
* ```typescript
|
|
32
|
-
* import { telemetry } from '
|
|
33
|
-
*
|
|
34
|
-
* // Simple setup with defaults
|
|
35
|
-
* const provider = telemetry.setupTracer({
|
|
36
|
-
* exporters: { otlp: true }
|
|
37
|
-
* })
|
|
76
|
+
* import { telemetry } from '\@strands-agents/sdk'
|
|
38
77
|
*
|
|
39
|
-
*
|
|
40
|
-
* telemetry.setupTracer({
|
|
41
|
-
* provider: new NodeTracerProvider({ resource: myResource }),
|
|
42
|
-
* exporters: { otlp: true, console: true }
|
|
43
|
-
* })
|
|
78
|
+
* telemetry.setupTracer({ exporters: { otlp: true } })
|
|
44
79
|
* ```
|
|
45
80
|
*/
|
|
46
81
|
export function setupTracer(config = {}) {
|
|
@@ -48,23 +83,21 @@ export function setupTracer(config = {}) {
|
|
|
48
83
|
logger.warn('tracer provider already initialized, returning existing provider');
|
|
49
84
|
return _provider;
|
|
50
85
|
}
|
|
51
|
-
|
|
52
|
-
_provider = config.provider ?? new NodeTracerProvider({ resource: getOtelResource() });
|
|
53
|
-
// Add exporters if requested
|
|
86
|
+
_provider = config.provider ?? new DefaultTracerProvider({ resource: getOtelResource() });
|
|
54
87
|
if (config.exporters?.otlp)
|
|
55
88
|
addOtlpExporter(_provider);
|
|
56
89
|
if (config.exporters?.console)
|
|
57
90
|
addConsoleExporter(_provider);
|
|
58
|
-
// register() sets up global tracer provider, context manager, and propagators
|
|
59
91
|
_provider.register();
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
92
|
+
if (typeof globalThis?.process?.once === 'function') {
|
|
93
|
+
globalThis.process.once('beforeExit', () => {
|
|
94
|
+
if (_provider) {
|
|
95
|
+
_provider.forceFlush().catch((err) => {
|
|
96
|
+
logger.warn(`error=<${err}> | failed to flush tracer provider on exit`);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
68
101
|
return _provider;
|
|
69
102
|
}
|
|
70
103
|
function addOtlpExporter(provider) {
|
|
@@ -85,8 +118,8 @@ function addConsoleExporter(provider) {
|
|
|
85
118
|
}
|
|
86
119
|
function getOtelResource() {
|
|
87
120
|
const serviceName = getServiceName();
|
|
88
|
-
const serviceNamespace = process
|
|
89
|
-
const deploymentEnvironment = process
|
|
121
|
+
const serviceNamespace = globalThis?.process?.env?.OTEL_SERVICE_NAMESPACE || DEFAULT_SERVICE_NAMESPACE;
|
|
122
|
+
const deploymentEnvironment = globalThis?.process?.env?.OTEL_DEPLOYMENT_ENVIRONMENT || DEFAULT_DEPLOYMENT_ENVIRONMENT;
|
|
90
123
|
const defaultResource = new Resource({
|
|
91
124
|
'service.name': serviceName,
|
|
92
125
|
'service.namespace': serviceNamespace,
|
|
@@ -94,7 +127,6 @@ function getOtelResource() {
|
|
|
94
127
|
'telemetry.sdk.name': 'opentelemetry',
|
|
95
128
|
'telemetry.sdk.language': 'typescript',
|
|
96
129
|
});
|
|
97
|
-
// Merge with OTEL_RESOURCE_ATTRIBUTES env var (env attrs take precedence)
|
|
98
130
|
const envResource = envDetectorSync.detect();
|
|
99
131
|
return defaultResource.merge(envResource);
|
|
100
132
|
}
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,277 @@
|
|
|
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
|
+
import type { Usage, Metrics, ModelMetadataEventData } from '../models/streaming.js';
|
|
9
|
+
import type { ToolUse } from '../tools/types.js';
|
|
10
|
+
import type { JSONSerializable } from '../types/json.js';
|
|
11
|
+
/**
|
|
12
|
+
* Per-tool execution metrics.
|
|
13
|
+
*/
|
|
14
|
+
export interface ToolMetricsData {
|
|
15
|
+
/**
|
|
16
|
+
* Total number of calls to this tool.
|
|
17
|
+
*/
|
|
18
|
+
callCount: number;
|
|
19
|
+
/**
|
|
20
|
+
* Number of successful calls.
|
|
21
|
+
*/
|
|
22
|
+
successCount: number;
|
|
23
|
+
/**
|
|
24
|
+
* Number of failed calls.
|
|
25
|
+
*/
|
|
26
|
+
errorCount: number;
|
|
27
|
+
/**
|
|
28
|
+
* Total execution time in milliseconds.
|
|
29
|
+
*/
|
|
30
|
+
totalTime: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Per-cycle usage tracking.
|
|
34
|
+
*/
|
|
35
|
+
export interface AgentLoopMetricsData {
|
|
36
|
+
/**
|
|
37
|
+
* Unique identifier for this cycle.
|
|
38
|
+
*/
|
|
39
|
+
cycleId: string;
|
|
40
|
+
/**
|
|
41
|
+
* Duration of this cycle in milliseconds.
|
|
42
|
+
*/
|
|
43
|
+
duration: number;
|
|
44
|
+
/**
|
|
45
|
+
* Token usage for this cycle.
|
|
46
|
+
*/
|
|
47
|
+
usage: Usage;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Per-invocation metrics tracking.
|
|
51
|
+
*/
|
|
52
|
+
export interface InvocationMetricsData {
|
|
53
|
+
/**
|
|
54
|
+
* Cycle metrics for this invocation.
|
|
55
|
+
*/
|
|
56
|
+
cycles: AgentLoopMetricsData[];
|
|
57
|
+
/**
|
|
58
|
+
* Accumulated token usage for this invocation.
|
|
59
|
+
*/
|
|
60
|
+
usage: Usage;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* JSON-serializable representation of AgentMetrics.
|
|
64
|
+
*/
|
|
65
|
+
export interface AgentMetricsData {
|
|
66
|
+
/**
|
|
67
|
+
* Number of agent loop cycles executed.
|
|
68
|
+
*/
|
|
69
|
+
cycleCount: number;
|
|
70
|
+
/**
|
|
71
|
+
* Accumulated token usage across all model invocations.
|
|
72
|
+
*/
|
|
73
|
+
accumulatedUsage: Usage;
|
|
74
|
+
/**
|
|
75
|
+
* Accumulated performance metrics across all model invocations.
|
|
76
|
+
*/
|
|
77
|
+
accumulatedMetrics: Metrics;
|
|
78
|
+
/**
|
|
79
|
+
* Per-invocation metrics.
|
|
80
|
+
*/
|
|
81
|
+
agentInvocations: InvocationMetricsData[];
|
|
82
|
+
/**
|
|
83
|
+
* Per-tool execution metrics keyed by tool name.
|
|
84
|
+
*/
|
|
85
|
+
toolMetrics: Record<string, ToolMetricsData>;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Options for recording tool usage.
|
|
89
|
+
*/
|
|
90
|
+
interface ToolUsageOptions {
|
|
91
|
+
/**
|
|
92
|
+
* The tool that was used.
|
|
93
|
+
*/
|
|
94
|
+
tool: ToolUse;
|
|
95
|
+
/**
|
|
96
|
+
* Execution duration in milliseconds.
|
|
97
|
+
*/
|
|
98
|
+
duration: number;
|
|
99
|
+
/**
|
|
100
|
+
* Whether the tool call succeeded.
|
|
101
|
+
*/
|
|
102
|
+
success: boolean;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Read-only snapshot of aggregated agent metrics.
|
|
106
|
+
*
|
|
107
|
+
* Returned by {@link Meter.metrics} and stored on {@link AgentResult}.
|
|
108
|
+
* Provides access to cycle counts, tool usage, token consumption,
|
|
109
|
+
* and per-invocation breakdowns. Supports serialization via {@link toJSON}.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* const result = await agent.invoke('Hello')
|
|
114
|
+
* console.log(result.metrics.cycleCount)
|
|
115
|
+
* console.log(result.metrics.totalDuration)
|
|
116
|
+
* console.log(result.metrics.accumulatedData)
|
|
117
|
+
* console.log(result.metrics.toolMetrics)
|
|
118
|
+
* console.log(JSON.stringify(result.metrics))
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
export declare class AgentMetrics implements JSONSerializable<AgentMetricsData> {
|
|
122
|
+
/**
|
|
123
|
+
* Number of agent loop cycles executed.
|
|
124
|
+
*/
|
|
125
|
+
readonly cycleCount: number;
|
|
126
|
+
/**
|
|
127
|
+
* Accumulated token usage across all model invocations.
|
|
128
|
+
*/
|
|
129
|
+
readonly accumulatedUsage: Usage;
|
|
130
|
+
/**
|
|
131
|
+
* Accumulated performance metrics across all model invocations.
|
|
132
|
+
*/
|
|
133
|
+
readonly accumulatedMetrics: Metrics;
|
|
134
|
+
/**
|
|
135
|
+
* Per-invocation metrics.
|
|
136
|
+
*/
|
|
137
|
+
readonly agentInvocations: InvocationMetricsData[];
|
|
138
|
+
/**
|
|
139
|
+
* Per-tool execution metrics keyed by tool name.
|
|
140
|
+
*/
|
|
141
|
+
readonly toolMetrics: Record<string, ToolMetricsData>;
|
|
142
|
+
constructor(data?: Partial<AgentMetricsData>);
|
|
143
|
+
/**
|
|
144
|
+
* The most recent agent invocation, or undefined if none exist.
|
|
145
|
+
*/
|
|
146
|
+
get latestAgentInvocation(): InvocationMetricsData | undefined;
|
|
147
|
+
/**
|
|
148
|
+
* Accumulated usage and performance metrics across all model invocations.
|
|
149
|
+
*/
|
|
150
|
+
get accumulatedData(): {
|
|
151
|
+
usage: Usage;
|
|
152
|
+
metrics: Metrics;
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Total duration of all cycles in milliseconds.
|
|
156
|
+
*/
|
|
157
|
+
get totalDuration(): number;
|
|
158
|
+
/**
|
|
159
|
+
* Average cycle duration in milliseconds, or 0 if no cycles exist.
|
|
160
|
+
*/
|
|
161
|
+
get averageCycleTime(): number;
|
|
162
|
+
/**
|
|
163
|
+
* Per-tool execution statistics with computed averages and rates.
|
|
164
|
+
*/
|
|
165
|
+
get toolUsage(): Record<string, ToolMetricsData & {
|
|
166
|
+
averageTime: number;
|
|
167
|
+
successRate: number;
|
|
168
|
+
}>;
|
|
169
|
+
/**
|
|
170
|
+
* Returns a JSON-serializable representation of all collected metrics.
|
|
171
|
+
* Called automatically by JSON.stringify().
|
|
172
|
+
*
|
|
173
|
+
* @returns A plain object suitable for round-trip serialization
|
|
174
|
+
*/
|
|
175
|
+
toJSON(): AgentMetricsData;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Accumulates local metrics during agent invocation.
|
|
179
|
+
*
|
|
180
|
+
* Tracks cycle counts, token usage, tool execution stats, and model latency.
|
|
181
|
+
* Use the {@link metrics} getter to obtain a read-only {@link AgentMetrics}
|
|
182
|
+
* snapshot for inclusion in {@link AgentResult}.
|
|
183
|
+
*
|
|
184
|
+
*/
|
|
185
|
+
export declare class Meter {
|
|
186
|
+
/**
|
|
187
|
+
* Number of agent loop cycles executed.
|
|
188
|
+
*/
|
|
189
|
+
private _cycleCount;
|
|
190
|
+
/**
|
|
191
|
+
* Accumulated token usage across all model invocations.
|
|
192
|
+
*/
|
|
193
|
+
private readonly _accumulatedUsage;
|
|
194
|
+
/**
|
|
195
|
+
* Accumulated performance metrics across all model invocations.
|
|
196
|
+
*/
|
|
197
|
+
private readonly _accumulatedMetrics;
|
|
198
|
+
/**
|
|
199
|
+
* Per-invocation metrics.
|
|
200
|
+
*/
|
|
201
|
+
private readonly _agentInvocations;
|
|
202
|
+
/**
|
|
203
|
+
* Per-tool execution metrics keyed by tool name.
|
|
204
|
+
*/
|
|
205
|
+
private readonly _toolMetrics;
|
|
206
|
+
/**
|
|
207
|
+
* Begin tracking a new agent invocation.
|
|
208
|
+
* Creates a new InvocationMetricsData entry for per-invocation metrics.
|
|
209
|
+
*/
|
|
210
|
+
startNewInvocation(): void;
|
|
211
|
+
/**
|
|
212
|
+
* Start a new agent loop cycle.
|
|
213
|
+
*
|
|
214
|
+
* @returns The cycle id and start time
|
|
215
|
+
*/
|
|
216
|
+
startCycle(): {
|
|
217
|
+
cycleId: string;
|
|
218
|
+
startTime: number;
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* End the current agent loop cycle and record its duration.
|
|
222
|
+
*
|
|
223
|
+
* @param startTime - The timestamp when the cycle started (milliseconds since epoch)
|
|
224
|
+
*/
|
|
225
|
+
endCycle(startTime: number): void;
|
|
226
|
+
/**
|
|
227
|
+
* Record metrics for a completed tool invocation.
|
|
228
|
+
*
|
|
229
|
+
* @param options - Tool usage recording options
|
|
230
|
+
*/
|
|
231
|
+
endToolCall(options: ToolUsageOptions): void;
|
|
232
|
+
/**
|
|
233
|
+
* Update loop-level metrics from a model response.
|
|
234
|
+
*
|
|
235
|
+
* Call this after each model invocation within a cycle to
|
|
236
|
+
* accumulate usage and latency.
|
|
237
|
+
*
|
|
238
|
+
* @param metadata - The metadata event from a model invocation, or undefined if unavailable
|
|
239
|
+
*/
|
|
240
|
+
updateCycle(metadata?: ModelMetadataEventData): void;
|
|
241
|
+
/**
|
|
242
|
+
* Read-only snapshot of the accumulated metrics.
|
|
243
|
+
* Returns an AgentMetrics instance suitable for inclusion in AgentResult.
|
|
244
|
+
*/
|
|
245
|
+
get metrics(): AgentMetrics;
|
|
246
|
+
/**
|
|
247
|
+
* The most recent agent invocation, or undefined if none exist.
|
|
248
|
+
*/
|
|
249
|
+
private get _latestAgentInvocation();
|
|
250
|
+
/**
|
|
251
|
+
* Update accumulated usage and metrics from a model metadata event.
|
|
252
|
+
*
|
|
253
|
+
* @param metadata - The metadata event from a model invocation
|
|
254
|
+
*/
|
|
255
|
+
private _updateFromMetadata;
|
|
256
|
+
/**
|
|
257
|
+
* Update the accumulated token usage with new usage data.
|
|
258
|
+
*
|
|
259
|
+
* @param usage - The usage data to accumulate
|
|
260
|
+
*/
|
|
261
|
+
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
|
+
}
|
|
276
|
+
export {};
|
|
277
|
+
//# 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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"}
|