@strands-agents/sdk 0.7.0 → 1.0.0-rc.1

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.
Files changed (250) hide show
  1. package/README.md +7 -7
  2. package/dist/src/__fixtures__/agent-helpers.d.ts +44 -0
  3. package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
  4. package/dist/src/__fixtures__/agent-helpers.js +45 -0
  5. package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
  6. package/dist/src/__fixtures__/mock-plugin.d.ts.map +1 -1
  7. package/dist/src/__fixtures__/mock-plugin.js +3 -1
  8. package/dist/src/__fixtures__/mock-plugin.js.map +1 -1
  9. package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
  10. package/dist/src/__fixtures__/tool-helpers.js +1 -0
  11. package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
  12. package/dist/src/a2a/__tests__/events.test.d.ts +2 -0
  13. package/dist/src/a2a/__tests__/events.test.d.ts.map +1 -0
  14. package/dist/src/a2a/__tests__/events.test.js +66 -0
  15. package/dist/src/a2a/__tests__/events.test.js.map +1 -0
  16. package/dist/src/a2a/a2a-agent.d.ts.map +1 -1
  17. package/dist/src/a2a/a2a-agent.js +1 -1
  18. package/dist/src/a2a/a2a-agent.js.map +1 -1
  19. package/dist/src/a2a/events.d.ts +2 -0
  20. package/dist/src/a2a/events.d.ts.map +1 -1
  21. package/dist/src/a2a/events.js +6 -0
  22. package/dist/src/a2a/events.js.map +1 -1
  23. package/dist/src/a2a/index.d.ts +0 -1
  24. package/dist/src/a2a/index.d.ts.map +1 -1
  25. package/dist/src/a2a/index.js +0 -1
  26. package/dist/src/a2a/index.js.map +1 -1
  27. package/dist/src/a2a/server.d.ts +1 -1
  28. package/dist/src/a2a/server.js +1 -1
  29. package/dist/src/agent/__tests__/agent.hook.test.js +229 -1
  30. package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
  31. package/dist/src/agent/__tests__/agent.test.js +215 -42
  32. package/dist/src/agent/__tests__/agent.test.js.map +1 -1
  33. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts +2 -0
  34. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts.map +1 -0
  35. package/dist/src/agent/__tests__/{agent.tracer.test.js → agent.tracer.test.node.js} +52 -40
  36. package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +1 -0
  37. package/dist/src/agent/__tests__/printer.test.js +7 -7
  38. package/dist/src/agent/__tests__/printer.test.js.map +1 -1
  39. package/dist/src/agent/__tests__/snapshot.test.js +39 -2
  40. package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
  41. package/dist/src/agent/agent.d.ts +16 -1
  42. package/dist/src/agent/agent.d.ts.map +1 -1
  43. package/dist/src/agent/agent.js +170 -94
  44. package/dist/src/agent/agent.js.map +1 -1
  45. package/dist/src/agent/printer.d.ts.map +1 -1
  46. package/dist/src/agent/printer.js +3 -0
  47. package/dist/src/agent/printer.js.map +1 -1
  48. package/dist/src/agent/snapshot.d.ts +3 -3
  49. package/dist/src/agent/snapshot.d.ts.map +1 -1
  50. package/dist/src/agent/snapshot.js +14 -7
  51. package/dist/src/agent/snapshot.js.map +1 -1
  52. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +72 -46
  53. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
  54. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
  55. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +14 -7
  56. package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
  57. package/dist/src/errors.d.ts +8 -0
  58. package/dist/src/errors.d.ts.map +1 -1
  59. package/dist/src/errors.js +11 -0
  60. package/dist/src/errors.js.map +1 -1
  61. package/dist/src/hooks/__tests__/events.test.js +387 -0
  62. package/dist/src/hooks/__tests__/events.test.js.map +1 -1
  63. package/dist/src/hooks/events.d.ts +104 -0
  64. package/dist/src/hooks/events.d.ts.map +1 -1
  65. package/dist/src/hooks/events.js +137 -0
  66. package/dist/src/hooks/events.js.map +1 -1
  67. package/dist/src/index.d.ts +2 -2
  68. package/dist/src/index.d.ts.map +1 -1
  69. package/dist/src/index.js +4 -4
  70. package/dist/src/index.js.map +1 -1
  71. package/dist/src/models/__tests__/anthropic.test.js +1 -2
  72. package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
  73. package/dist/src/models/__tests__/bedrock.test.js +18 -18
  74. package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
  75. package/dist/src/models/__tests__/google.test.d.ts +2 -0
  76. package/dist/src/models/__tests__/google.test.d.ts.map +1 -0
  77. package/dist/src/models/__tests__/{gemini.test.js → google.test.js} +55 -21
  78. package/dist/src/models/__tests__/google.test.js.map +1 -0
  79. package/dist/src/models/__tests__/openai.test.js +78 -71
  80. package/dist/src/models/__tests__/openai.test.js.map +1 -1
  81. package/dist/src/models/anthropic.d.ts.map +1 -1
  82. package/dist/src/models/anthropic.js +8 -7
  83. package/dist/src/models/anthropic.js.map +1 -1
  84. package/dist/src/models/bedrock.d.ts +3 -3
  85. package/dist/src/models/bedrock.d.ts.map +1 -1
  86. package/dist/src/models/bedrock.js +7 -7
  87. package/dist/src/models/bedrock.js.map +1 -1
  88. package/dist/src/models/{gemini → google}/adapters.d.ts +3 -3
  89. package/dist/src/models/{gemini → google}/adapters.d.ts.map +1 -1
  90. package/dist/src/models/{gemini → google}/adapters.js +1 -1
  91. package/dist/src/models/{gemini → google}/adapters.js.map +1 -1
  92. package/dist/src/models/{gemini → google}/errors.d.ts +7 -7
  93. package/dist/src/models/google/errors.d.ts.map +1 -0
  94. package/dist/src/models/{gemini → google}/errors.js +11 -5
  95. package/dist/src/models/google/errors.js.map +1 -0
  96. package/dist/src/models/google/index.d.ts +15 -0
  97. package/dist/src/models/google/index.d.ts.map +1 -0
  98. package/dist/src/models/google/index.js +15 -0
  99. package/dist/src/models/google/index.js.map +1 -0
  100. package/dist/src/models/{gemini → google}/model.d.ts +18 -18
  101. package/dist/src/models/{gemini → google}/model.d.ts.map +1 -1
  102. package/dist/src/models/{gemini → google}/model.js +22 -19
  103. package/dist/src/models/google/model.js.map +1 -0
  104. package/dist/src/models/{gemini → google}/types.d.ts +9 -9
  105. package/dist/src/models/{gemini → google}/types.d.ts.map +1 -1
  106. package/dist/src/models/google/types.js +5 -0
  107. package/dist/src/models/google/types.js.map +1 -0
  108. package/dist/src/models/model.js +2 -2
  109. package/dist/src/models/model.js.map +1 -1
  110. package/dist/src/models/openai.d.ts +29 -11
  111. package/dist/src/models/openai.d.ts.map +1 -1
  112. package/dist/src/models/openai.js +25 -15
  113. package/dist/src/models/openai.js.map +1 -1
  114. package/dist/src/models/streaming.d.ts +13 -0
  115. package/dist/src/models/streaming.d.ts.map +1 -1
  116. package/dist/src/models/streaming.js +29 -0
  117. package/dist/src/models/streaming.js.map +1 -1
  118. package/dist/src/multiagent/__tests__/events.test.js +177 -0
  119. package/dist/src/multiagent/__tests__/events.test.js.map +1 -1
  120. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts +2 -0
  121. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts.map +1 -0
  122. package/dist/src/multiagent/__tests__/graph.tracer.test.js +204 -0
  123. package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +1 -0
  124. package/dist/src/multiagent/__tests__/nodes.test.js +48 -5
  125. package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
  126. package/dist/src/multiagent/__tests__/swarm.test.js +34 -6
  127. package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -1
  128. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts +2 -0
  129. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts.map +1 -0
  130. package/dist/src/multiagent/__tests__/swarm.tracer.test.js +235 -0
  131. package/dist/src/multiagent/__tests__/swarm.tracer.test.js.map +1 -0
  132. package/dist/src/multiagent/events.d.ts +14 -0
  133. package/dist/src/multiagent/events.d.ts.map +1 -1
  134. package/dist/src/multiagent/events.js +34 -0
  135. package/dist/src/multiagent/events.js.map +1 -1
  136. package/dist/src/multiagent/graph.d.ts +4 -0
  137. package/dist/src/multiagent/graph.d.ts.map +1 -1
  138. package/dist/src/multiagent/graph.js +42 -16
  139. package/dist/src/multiagent/graph.js.map +1 -1
  140. package/dist/src/multiagent/index.d.ts +1 -1
  141. package/dist/src/multiagent/index.d.ts.map +1 -1
  142. package/dist/src/multiagent/index.js.map +1 -1
  143. package/dist/src/multiagent/nodes.d.ts +23 -9
  144. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  145. package/dist/src/multiagent/nodes.js +25 -14
  146. package/dist/src/multiagent/nodes.js.map +1 -1
  147. package/dist/src/multiagent/state.d.ts +8 -3
  148. package/dist/src/multiagent/state.d.ts.map +1 -1
  149. package/dist/src/multiagent/state.js +18 -4
  150. package/dist/src/multiagent/state.js.map +1 -1
  151. package/dist/src/multiagent/swarm.d.ts +15 -1
  152. package/dist/src/multiagent/swarm.d.ts.map +1 -1
  153. package/dist/src/multiagent/swarm.js +71 -30
  154. package/dist/src/multiagent/swarm.js.map +1 -1
  155. package/dist/src/session/__tests__/session-manager.test.js +36 -0
  156. package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
  157. package/dist/src/session/session-manager.d.ts +2 -3
  158. package/dist/src/session/session-manager.d.ts.map +1 -1
  159. package/dist/src/session/session-manager.js +11 -9
  160. package/dist/src/session/session-manager.js.map +1 -1
  161. package/dist/src/telemetry/__tests__/local-trace.test.d.ts +2 -0
  162. package/dist/src/telemetry/__tests__/local-trace.test.d.ts.map +1 -0
  163. package/dist/src/telemetry/__tests__/local-trace.test.js +158 -0
  164. package/dist/src/telemetry/__tests__/local-trace.test.js.map +1 -0
  165. package/dist/src/telemetry/__tests__/tracer.test.node.js +28 -0
  166. package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -1
  167. package/dist/src/telemetry/config.js +1 -1
  168. package/dist/src/telemetry/config.js.map +1 -1
  169. package/dist/src/telemetry/meter.d.ts +0 -13
  170. package/dist/src/telemetry/meter.d.ts.map +1 -1
  171. package/dist/src/telemetry/meter.js +8 -36
  172. package/dist/src/telemetry/meter.js.map +1 -1
  173. package/dist/src/telemetry/tracer.d.ts +107 -18
  174. package/dist/src/telemetry/tracer.d.ts.map +1 -1
  175. package/dist/src/telemetry/tracer.js +245 -33
  176. package/dist/src/telemetry/tracer.js.map +1 -1
  177. package/dist/src/telemetry/types.d.ts +49 -0
  178. package/dist/src/telemetry/types.d.ts.map +1 -1
  179. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts +2 -0
  180. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts.map +1 -0
  181. package/dist/src/tools/__tests__/structured-output-tool.test.js +84 -0
  182. package/dist/src/tools/__tests__/structured-output-tool.test.js.map +1 -0
  183. package/dist/src/tools/structured-output-tool.d.ts +41 -0
  184. package/dist/src/tools/structured-output-tool.d.ts.map +1 -0
  185. package/dist/src/tools/structured-output-tool.js +82 -0
  186. package/dist/src/tools/structured-output-tool.js.map +1 -0
  187. package/dist/src/tools/zod-tool.js +1 -1
  188. package/dist/src/tools/zod-tool.js.map +1 -1
  189. package/dist/src/{utils/zod.d.ts → tools/zod-utils.d.ts} +1 -1
  190. package/dist/src/tools/zod-utils.d.ts.map +1 -0
  191. package/dist/src/{utils/zod.js → tools/zod-utils.js} +1 -1
  192. package/dist/src/tools/zod-utils.js.map +1 -0
  193. package/dist/src/tsconfig.tsbuildinfo +1 -1
  194. package/dist/src/types/__tests__/agent.test.js +127 -0
  195. package/dist/src/types/__tests__/agent.test.js.map +1 -1
  196. package/dist/src/types/agent.d.ts +27 -1
  197. package/dist/src/types/agent.d.ts.map +1 -1
  198. package/dist/src/types/agent.js +26 -0
  199. package/dist/src/types/agent.js.map +1 -1
  200. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +12 -0
  201. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
  202. package/dist/src/vended-tools/bash/bash.d.ts.map +1 -1
  203. package/dist/src/vended-tools/bash/bash.js +16 -14
  204. package/dist/src/vended-tools/bash/bash.js.map +1 -1
  205. package/package.json +12 -8
  206. package/dist/src/agent/__tests__/agent.tracer.test.d.ts +0 -2
  207. package/dist/src/agent/__tests__/agent.tracer.test.d.ts.map +0 -1
  208. package/dist/src/agent/__tests__/agent.tracer.test.js.map +0 -1
  209. package/dist/src/models/__tests__/gemini.test.d.ts +0 -2
  210. package/dist/src/models/__tests__/gemini.test.d.ts.map +0 -1
  211. package/dist/src/models/__tests__/gemini.test.js.map +0 -1
  212. package/dist/src/models/gemini/errors.d.ts.map +0 -1
  213. package/dist/src/models/gemini/errors.js.map +0 -1
  214. package/dist/src/models/gemini/model.js.map +0 -1
  215. package/dist/src/models/gemini/types.js +0 -5
  216. package/dist/src/models/gemini/types.js.map +0 -1
  217. package/dist/src/structured-output/__tests__/context.test.d.ts +0 -2
  218. package/dist/src/structured-output/__tests__/context.test.d.ts.map +0 -1
  219. package/dist/src/structured-output/__tests__/context.test.js +0 -201
  220. package/dist/src/structured-output/__tests__/context.test.js.map +0 -1
  221. package/dist/src/structured-output/__tests__/exceptions.test.d.ts +0 -2
  222. package/dist/src/structured-output/__tests__/exceptions.test.d.ts.map +0 -1
  223. package/dist/src/structured-output/__tests__/exceptions.test.js +0 -103
  224. package/dist/src/structured-output/__tests__/exceptions.test.js.map +0 -1
  225. package/dist/src/structured-output/__tests__/tool.test.d.ts +0 -2
  226. package/dist/src/structured-output/__tests__/tool.test.d.ts.map +0 -1
  227. package/dist/src/structured-output/__tests__/tool.test.js +0 -256
  228. package/dist/src/structured-output/__tests__/tool.test.js.map +0 -1
  229. package/dist/src/structured-output/__tests__/utils.test.d.ts +0 -2
  230. package/dist/src/structured-output/__tests__/utils.test.d.ts.map +0 -1
  231. package/dist/src/structured-output/__tests__/utils.test.js +0 -183
  232. package/dist/src/structured-output/__tests__/utils.test.js.map +0 -1
  233. package/dist/src/structured-output/context.d.ts +0 -91
  234. package/dist/src/structured-output/context.d.ts.map +0 -1
  235. package/dist/src/structured-output/context.js +0 -112
  236. package/dist/src/structured-output/context.js.map +0 -1
  237. package/dist/src/structured-output/exceptions.d.ts +0 -18
  238. package/dist/src/structured-output/exceptions.d.ts.map +0 -1
  239. package/dist/src/structured-output/exceptions.js +0 -28
  240. package/dist/src/structured-output/exceptions.js.map +0 -1
  241. package/dist/src/structured-output/tool.d.ts +0 -33
  242. package/dist/src/structured-output/tool.d.ts.map +0 -1
  243. package/dist/src/structured-output/tool.js +0 -73
  244. package/dist/src/structured-output/tool.js.map +0 -1
  245. package/dist/src/structured-output/utils.d.ts +0 -23
  246. package/dist/src/structured-output/utils.d.ts.map +0 -1
  247. package/dist/src/structured-output/utils.js +0 -104
  248. package/dist/src/structured-output/utils.js.map +0 -1
  249. package/dist/src/utils/zod.d.ts.map +0 -1
  250. package/dist/src/utils/zod.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * OpenTelemetry integration.
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,17 +9,17 @@
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
- * // Run code with parentSpan as active context
18
- * await context.with(trace.setSpan(context.active(), parentSpan), async () => {
19
- * // Child spans automatically parent to parentSpan
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)
@@ -30,18 +30,72 @@ import { logger } from '../logging/index.js';
30
30
  import { jsonReplacer } from './json.js';
31
31
  import { getServiceName } from './utils.js';
32
32
  /**
33
- * Tracer manages OpenTelemetry spans for agent operations.
33
+ * Execution trace for performance analysis.
34
+ * Tracks timing and hierarchy of operations within the agent loop.
35
+ * Fields default to null for JSON serialization compatibility.
36
+ */
37
+ export class AgentTrace {
38
+ /** Unique identifier (UUID) for this trace. */
39
+ id;
40
+ /** Human-readable display name (e.g., "Cycle 1", "Tool: calc", "stream_messages"). */
41
+ name;
42
+ /** ID of the parent trace, if this trace is nested. Null for root traces. */
43
+ parentId;
44
+ /** Start time in milliseconds since epoch. */
45
+ startTime;
46
+ /** End time in milliseconds since epoch. Null until trace is ended. */
47
+ endTime = null;
48
+ /** Duration in milliseconds (endTime - startTime). */
49
+ duration = 0;
50
+ /** Child traces nested under this trace. */
51
+ children = [];
52
+ /** Additional metadata for this trace (e.g., cycleId, toolUseId, toolName). */
53
+ metadata = {};
54
+ /** Message associated with this trace (e.g., model output). Null if not applicable. */
55
+ message = null;
56
+ /**
57
+ * @param name - Display name for this trace
58
+ * @param options - Optional configuration for parent and startTime
59
+ */
60
+ constructor(name, options) {
61
+ this.id = globalThis.crypto.randomUUID();
62
+ this.name = name;
63
+ this.parentId = options?.parent?.id ?? null;
64
+ this.startTime = options?.startTime ?? Date.now();
65
+ if (options?.parent) {
66
+ options.parent.children.push(this);
67
+ }
68
+ }
69
+ /**
70
+ * @param endTime - Optional end time in milliseconds since epoch
71
+ */
72
+ end(endTime) {
73
+ this.endTime = endTime ?? Date.now();
74
+ this.duration = this.endTime - this.startTime;
75
+ }
76
+ toJSON() {
77
+ return {
78
+ id: this.id,
79
+ name: this.name,
80
+ parentId: this.parentId,
81
+ startTime: this.startTime,
82
+ endTime: this.endTime,
83
+ duration: this.duration,
84
+ children: this.children.map((child) => child.toJSON()),
85
+ metadata: this.metadata,
86
+ message: this.message,
87
+ };
88
+ }
89
+ }
90
+ /**
91
+ * Manages both OpenTelemetry spans and local execution traces for agent operations.
92
+ *
93
+ * OTel spans are exported to external observability backends (Jaeger, X-Ray, etc.)
94
+ * when configured via setupTracer(). Local traces are lightweight, in-memory timing
95
+ * trees that are always collected regardless of OTel configuration and returned
96
+ * in AgentResult.traces for programmatic access.
34
97
  *
35
- * Uses a fully stateful approach via OpenTelemetry's context propagation.
36
- * Parent-child relationships are established automatically through context.active().
37
98
  *
38
- * To create nested spans, use context.with() to set the parent span as active:
39
- * ```typescript
40
- * const parent = tracer.startAgentSpan({ ... })
41
- * context.with(trace.setSpan(context.active(), parent), () => {
42
- * const child = tracer.startModelInvokeSpan({ messages }) // auto-parents to parent
43
- * })
44
- * ```
45
99
  */
46
100
  export class Tracer {
47
101
  /**
@@ -79,12 +133,16 @@ export class Tracer {
79
133
  _agentSpan;
80
134
  /** Span for the current agent loop cycle, used to parent model and tool spans. */
81
135
  _loopSpan;
136
+ /** Root span for the current multi-agent orchestration, used to parent node spans. */
137
+ _multiAgentSpan;
82
138
  /**
83
139
  * Whether Langfuse is configured as the OTLP endpoint.
84
140
  * Detected from OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_TRACES_ENDPOINT,
85
141
  * or LANGFUSE_BASE_URL environment variables.
86
142
  */
87
143
  _isLangfuse;
144
+ /** In-memory execution trace state, collected independently of OTEL. */
145
+ _traceState = { traces: [] };
88
146
  /**
89
147
  * Initialize the tracer with OpenTelemetry configuration.
90
148
  * Reads OTEL_SEMCONV_STABILITY_OPT_IN to determine convention version.
@@ -103,6 +161,12 @@ export class Tracer {
103
161
  // Get tracer from global API to ensure ground truth
104
162
  this._tracer = trace.getTracer(getServiceName());
105
163
  }
164
+ /**
165
+ * All local execution traces collected by this tracer.
166
+ */
167
+ get localTraces() {
168
+ return this._traceState.traces;
169
+ }
106
170
  /**
107
171
  * Start an agent invocation span.
108
172
  * Returns the span which should be ended with endAgentSpan.
@@ -112,6 +176,11 @@ export class Tracer {
112
176
  */
113
177
  startAgentSpan(options) {
114
178
  const { messages, agentName, agentId, modelId, tools, traceAttributes, toolsConfig, systemPrompt } = options;
179
+ // Reset local trace state for this invocation
180
+ this._traceState.traces = [];
181
+ this._traceState.currentCycle = undefined;
182
+ this._traceState.currentModel = undefined;
183
+ this._traceState.currentTool = undefined;
115
184
  try {
116
185
  const spanName = `invoke_agent ${agentName}`;
117
186
  const attributes = this._getCommonAttributes('invoke_agent');
@@ -152,6 +221,10 @@ export class Tracer {
152
221
  // Clear stale state from any previous invocation
153
222
  this._agentSpan = undefined;
154
223
  this._loopSpan = undefined;
224
+ // Clear local trace state
225
+ this._traceState.currentCycle = undefined;
226
+ this._traceState.currentModel = undefined;
227
+ this._traceState.currentTool = undefined;
155
228
  if (!span)
156
229
  return;
157
230
  const { response, error, accumulatedUsage, stopReason } = options;
@@ -182,6 +255,8 @@ export class Tracer {
182
255
  */
183
256
  startModelInvokeSpan(options) {
184
257
  const { messages, modelId, systemPrompt } = options;
258
+ // Create local model trace as child of current cycle
259
+ this._traceState.currentModel = new AgentTrace('stream_messages', this._traceState.currentCycle ? { parent: this._traceState.currentCycle } : undefined);
185
260
  try {
186
261
  const attributes = this._getCommonAttributes('chat');
187
262
  if (modelId)
@@ -208,6 +283,14 @@ export class Tracer {
208
283
  * @param options - Options for ending the span including usage, metrics, error, and output
209
284
  */
210
285
  endModelInvokeSpan(span, options = {}) {
286
+ // End local model trace and attach output message
287
+ if (this._traceState.currentModel) {
288
+ if (options.output) {
289
+ this._traceState.currentModel.message = options.output;
290
+ }
291
+ this._traceState.currentModel.end();
292
+ this._traceState.currentModel = undefined;
293
+ }
211
294
  if (!span)
212
295
  return;
213
296
  const { usage, metrics, error, output, stopReason } = options;
@@ -234,6 +317,11 @@ export class Tracer {
234
317
  */
235
318
  startToolCallSpan(options) {
236
319
  const { tool } = options;
320
+ // Create local tool trace as child of current cycle
321
+ const toolTrace = new AgentTrace(`Tool: ${tool.name}`, this._traceState.currentCycle ? { parent: this._traceState.currentCycle } : undefined);
322
+ toolTrace.metadata.toolUseId = tool.toolUseId;
323
+ toolTrace.metadata.toolName = tool.name;
324
+ this._traceState.currentTool = toolTrace;
237
325
  try {
238
326
  const attributes = this._getCommonAttributes('execute_tool');
239
327
  attributes['gen_ai.tool.name'] = tool.name;
@@ -275,6 +363,11 @@ export class Tracer {
275
363
  * @param options - Options for ending the tool call span
276
364
  */
277
365
  endToolCallSpan(span, options = {}) {
366
+ // End local tool trace
367
+ if (this._traceState.currentTool) {
368
+ this._traceState.currentTool.end();
369
+ this._traceState.currentTool = undefined;
370
+ }
278
371
  if (!span)
279
372
  return;
280
373
  const { toolResult, error } = options;
@@ -306,6 +399,110 @@ export class Tracer {
306
399
  logger.warn(`error=<${err}> | failed to end tool call span`);
307
400
  }
308
401
  }
402
+ /**
403
+ * Start a multi-agent orchestration span.
404
+ * Parents to the current active span from context.active().
405
+ *
406
+ * @param options - Options for starting the multi-agent span
407
+ * @returns The span, or null if span creation failed
408
+ */
409
+ startMultiAgentSpan(options) {
410
+ const { orchestratorId, orchestratorType, input, traceAttributes } = options;
411
+ try {
412
+ const spanName = `invoke_${orchestratorType} ${orchestratorId}`;
413
+ const attributes = {
414
+ ...this._getCommonAttributes(`invoke_${orchestratorType}`),
415
+ 'gen_ai.agent.name': orchestratorType,
416
+ 'gen_ai.agent.id': orchestratorId,
417
+ name: spanName,
418
+ };
419
+ if (input)
420
+ attributes['gen_ai.agent.input'] = JSON.stringify(input, jsonReplacer);
421
+ const mergedAttributes = { ...attributes, ...this._traceAttributes, ...traceAttributes };
422
+ const span = this._startSpan({ name: spanName, attributes: mergedAttributes, spanKind: SpanKind.INTERNAL });
423
+ this._multiAgentSpan = span;
424
+ return span;
425
+ }
426
+ catch (error) {
427
+ logger.warn(`error=<${error}> | failed to start multi-agent span`);
428
+ return null;
429
+ }
430
+ }
431
+ /**
432
+ * End a multi-agent orchestration span.
433
+ *
434
+ * @param span - The span to end, or null if span creation failed
435
+ * @param options - Options for ending the span including duration and error
436
+ */
437
+ endMultiAgentSpan(span, options = {}) {
438
+ this._multiAgentSpan = undefined;
439
+ if (!span)
440
+ return;
441
+ try {
442
+ const attributes = {};
443
+ if (options.duration !== undefined)
444
+ attributes['gen_ai.agent.execution_time'] = options.duration;
445
+ if (options.usage)
446
+ this._setUsageAttributes(attributes, options.usage);
447
+ this._endSpan(span, attributes, options.error);
448
+ }
449
+ catch (err) {
450
+ logger.warn(`error=<${err}> | failed to end multi-agent span`);
451
+ }
452
+ }
453
+ /**
454
+ * Start a node execution span.
455
+ * Parents to the current active span from context.active().
456
+ *
457
+ * @param options - Options for starting the node span
458
+ * @returns The span, or null if span creation failed
459
+ */
460
+ startNodeSpan(options) {
461
+ const { nodeId, nodeType, traceAttributes } = options;
462
+ try {
463
+ const spanName = `node ${nodeId}`;
464
+ const attributes = {
465
+ ...this._getCommonAttributes('execute_node'),
466
+ 'gen_ai.agent.id': nodeId,
467
+ 'gen_ai.agent.node_type': nodeType,
468
+ name: spanName,
469
+ };
470
+ const mergedAttributes = { ...attributes, ...this._traceAttributes, ...traceAttributes };
471
+ return this._startSpan({
472
+ name: spanName,
473
+ attributes: mergedAttributes,
474
+ spanKind: SpanKind.INTERNAL,
475
+ ...(this._multiAgentSpan && { parentSpan: this._multiAgentSpan }),
476
+ });
477
+ }
478
+ catch (error) {
479
+ logger.warn(`error=<${error}> | failed to start node span`);
480
+ return null;
481
+ }
482
+ }
483
+ /**
484
+ * End a node execution span.
485
+ *
486
+ * @param span - The span to end, or null if span creation failed
487
+ * @param options - Options for ending the span including status, duration, and error
488
+ */
489
+ endNodeSpan(span, options = {}) {
490
+ if (!span)
491
+ return;
492
+ try {
493
+ const attributes = {};
494
+ if (options.status)
495
+ attributes['gen_ai.agent.status'] = options.status;
496
+ if (options.duration !== undefined)
497
+ attributes['gen_ai.agent.execution_time'] = options.duration;
498
+ if (options.usage)
499
+ this._setUsageAttributes(attributes, options.usage);
500
+ this._endSpan(span, attributes, options.error);
501
+ }
502
+ catch (err) {
503
+ logger.warn(`error=<${err}> | failed to end node span`);
504
+ }
505
+ }
309
506
  /**
310
507
  * Runs a callback with the given span set as the active OpenTelemetry context.
311
508
  * Downstream code (e.g., MCP clients) can read the span from context.active()
@@ -328,6 +525,11 @@ export class Tracer {
328
525
  */
329
526
  startAgentLoopSpan(options) {
330
527
  const { cycleId, messages } = options;
528
+ // Create local cycle trace
529
+ const cycleNumber = this._traceState.traces.length + 1;
530
+ this._traceState.currentCycle = new AgentTrace(`Cycle ${cycleNumber}`);
531
+ this._traceState.currentCycle.metadata.cycleId = cycleId;
532
+ this._traceState.traces.push(this._traceState.currentCycle);
331
533
  try {
332
534
  const attributes = { 'agent_loop.cycle_id': cycleId };
333
535
  const span = this._startSpan({
@@ -351,6 +553,11 @@ export class Tracer {
351
553
  * @param options - Options for ending the agent loop span
352
554
  */
353
555
  endAgentLoopSpan(span, options = {}) {
556
+ // End local cycle trace
557
+ if (this._traceState.currentCycle) {
558
+ this._traceState.currentCycle.end();
559
+ this._traceState.currentCycle = undefined;
560
+ }
354
561
  if (!span)
355
562
  return;
356
563
  try {
@@ -550,23 +757,28 @@ export class Tracer {
550
757
  * Add output event to a span for model invocation.
551
758
  */
552
759
  _addOutputEvent(span, message, stopReason) {
553
- const finishReason = stopReason || 'unknown';
554
- if (this._useLatestConventions) {
555
- this._addEvent(span, 'gen_ai.client.inference.operation.details', {
556
- 'gen_ai.output.messages': JSON.stringify([
557
- {
558
- role: message.role,
559
- parts: Tracer._mapContentBlocksToOtelParts(message.content),
560
- finish_reason: finishReason,
561
- },
562
- ], jsonReplacer),
563
- });
760
+ try {
761
+ const finishReason = stopReason || 'unknown';
762
+ if (this._useLatestConventions) {
763
+ this._addEvent(span, 'gen_ai.client.inference.operation.details', {
764
+ 'gen_ai.output.messages': JSON.stringify([
765
+ {
766
+ role: message.role,
767
+ parts: Tracer._mapContentBlocksToOtelParts(message.content),
768
+ finish_reason: finishReason,
769
+ },
770
+ ], jsonReplacer),
771
+ });
772
+ }
773
+ else {
774
+ this._addEvent(span, 'gen_ai.choice', {
775
+ finish_reason: finishReason,
776
+ message: JSON.stringify(Tracer._mapContentBlocksToStableFormat(message.content), jsonReplacer),
777
+ });
778
+ }
564
779
  }
565
- else {
566
- this._addEvent(span, 'gen_ai.choice', {
567
- finish_reason: finishReason,
568
- message: JSON.stringify(Tracer._mapContentBlocksToStableFormat(message.content), jsonReplacer),
569
- });
780
+ catch (err) {
781
+ logger.warn(`error=<${err}> | failed to add output event`);
570
782
  }
571
783
  }
572
784
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../src/telemetry/tracer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../src/telemetry/tracer.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import type { AttributeValue } from '@opentelemetry/api';
5
5
  import type { Message, SystemPrompt, ToolResultBlock } from '../types/messages.js';
6
+ import type { InvokeArgs } from '../types/agent.js';
6
7
  import type { ToolSpec, ToolUse } from '../tools/types.js';
7
8
  import type { Usage, Metrics } from '../models/streaming.js';
8
9
  export type { Usage, Metrics };
@@ -100,4 +101,52 @@ export interface EndAgentLoopSpanOptions {
100
101
  /** Error that caused the loop cycle to fail. */
101
102
  error?: Error;
102
103
  }
104
+ /**
105
+ * Options for starting a multi-agent orchestration span.
106
+ */
107
+ export interface StartMultiAgentSpanOptions {
108
+ /** Unique identifier for the orchestrator instance. */
109
+ orchestratorId: string;
110
+ /** Orchestration pattern type. */
111
+ orchestratorType: 'graph' | 'swarm';
112
+ /** Input task or prompt passed to the orchestrator. */
113
+ input?: InvokeArgs | undefined;
114
+ /** Custom attributes to merge onto the span. */
115
+ traceAttributes?: Record<string, AttributeValue> | undefined;
116
+ }
117
+ /**
118
+ * Options for ending a multi-agent orchestration span.
119
+ */
120
+ export interface EndMultiAgentSpanOptions {
121
+ /** Error that caused the orchestration to fail. */
122
+ error?: Error | undefined;
123
+ /** Total duration of the orchestration in milliseconds. */
124
+ duration?: number | undefined;
125
+ /** Aggregated token usage across all node executions. */
126
+ usage?: Usage | undefined;
127
+ }
128
+ /**
129
+ * Options for starting a node execution span.
130
+ */
131
+ export interface StartNodeSpanOptions {
132
+ /** Unique identifier for the node. */
133
+ nodeId: string;
134
+ /** Node type identifier (e.g., 'agentNode', 'multiAgentNode'). */
135
+ nodeType: string;
136
+ /** Custom attributes to merge onto the span. */
137
+ traceAttributes?: Record<string, AttributeValue> | undefined;
138
+ }
139
+ /**
140
+ * Options for ending a node execution span.
141
+ */
142
+ export interface EndNodeSpanOptions {
143
+ /** Final status of the node execution. */
144
+ status?: string | undefined;
145
+ /** Duration of the node execution in milliseconds. */
146
+ duration?: number | undefined;
147
+ /** Token usage from the node execution. */
148
+ usage?: Usage | undefined;
149
+ /** Error that caused the node execution to fail. */
150
+ error?: Error | undefined;
151
+ }
103
152
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/telemetry/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAG5D,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAE9B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,sDAAsD;IACtD,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC1B,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAChD,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtC,2CAA2C;IAC3C,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sDAAsD;IACtD,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,KAAK,CAAA;IACxB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,sDAAsD;IACtD,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,iEAAiE;IACjE,IAAI,EAAE,OAAO,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAA;IACf,wDAAwD;IACxD,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,KAAK,CAAC,EAAE,KAAK,CAAA;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/telemetry/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=structured-output-tool.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-output-tool.test.d.ts","sourceRoot":"","sources":["../../../../src/tools/__tests__/structured-output-tool.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { z } from 'zod';
3
+ import { StructuredOutputTool, STRUCTURED_OUTPUT_TOOL_NAME } from '../structured-output-tool.js';
4
+ import { JsonBlock, TextBlock, ToolResultBlock } from '../../types/messages.js';
5
+ import { createMockContext } from '../../__fixtures__/tool-helpers.js';
6
+ /** Helper to run the tool and return the final ToolResultBlock. */
7
+ async function runTool(tool, input) {
8
+ const context = createMockContext({ name: STRUCTURED_OUTPUT_TOOL_NAME, toolUseId: 'tool-1', input });
9
+ const result = await tool.stream(context).next();
10
+ return result.value;
11
+ }
12
+ describe('StructuredOutputTool', () => {
13
+ describe('constructor', () => {
14
+ it('builds tool spec from schema', () => {
15
+ const tool = new StructuredOutputTool(z.object({ name: z.string() }).describe('A person schema'));
16
+ expect(tool.name).toBe(STRUCTURED_OUTPUT_TOOL_NAME);
17
+ expect(tool.toolSpec.name).toBe(STRUCTURED_OUTPUT_TOOL_NAME);
18
+ expect(tool.toolSpec.inputSchema).toBeDefined();
19
+ expect(tool.description).toContain('MUST only be invoked');
20
+ expect(tool.description).toContain('A person schema');
21
+ });
22
+ it('uses base description when schema has no description', () => {
23
+ const tool = new StructuredOutputTool(z.object({ name: z.string() }));
24
+ expect(tool.description).toContain('MUST only be invoked');
25
+ expect(tool.description).not.toContain('<description>');
26
+ });
27
+ });
28
+ describe('stream', () => {
29
+ it('returns success with validated JSON for valid input', async () => {
30
+ const tool = new StructuredOutputTool(z.object({ name: z.string(), age: z.number() }));
31
+ const result = await runTool(tool, { name: 'John', age: 30 });
32
+ expect(result).toStrictEqual(new ToolResultBlock({
33
+ toolUseId: 'tool-1',
34
+ status: 'success',
35
+ content: [new JsonBlock({ json: { name: 'John', age: 30 } })],
36
+ }));
37
+ });
38
+ it('returns error with ZodError for invalid input', async () => {
39
+ const tool = new StructuredOutputTool(z.object({ name: z.string(), age: z.number() }));
40
+ const result = await runTool(tool, { name: 'John', age: 'invalid' });
41
+ expect(result.status).toBe('error');
42
+ expect(result.error).toBeInstanceOf(z.ZodError);
43
+ expect(result.content[0].text).toContain('age');
44
+ });
45
+ it('includes validation details for multiple fields', async () => {
46
+ const tool = new StructuredOutputTool(z.object({ name: z.string(), age: z.number(), email: z.string().email() }));
47
+ const result = await runTool(tool, { name: 123, age: 'invalid', email: 'not-email' });
48
+ expect(result.status).toBe('error');
49
+ const errorText = result.content[0].text;
50
+ expect(errorText).toContain('name');
51
+ expect(errorText).toContain('age');
52
+ expect(errorText).toContain('email');
53
+ });
54
+ it('validates nested objects', async () => {
55
+ const tool = new StructuredOutputTool(z.object({ user: z.object({ name: z.string(), age: z.number() }) }));
56
+ const result = await runTool(tool, { user: { name: 'John', age: 30 } });
57
+ expect(result.status).toBe('success');
58
+ expect(result.content[0].json).toEqual({ user: { name: 'John', age: 30 } });
59
+ });
60
+ it('validates arrays', async () => {
61
+ const tool = new StructuredOutputTool(z.object({ items: z.array(z.string()) }));
62
+ const result = await runTool(tool, { items: ['a', 'b', 'c'] });
63
+ expect(result.status).toBe('success');
64
+ expect(result.content[0].json).toEqual({ items: ['a', 'b', 'c'] });
65
+ });
66
+ it('handles optional fields', async () => {
67
+ const tool = new StructuredOutputTool(z.object({ name: z.string(), age: z.number().optional() }));
68
+ const result = await runTool(tool, { name: 'John' });
69
+ expect(result.status).toBe('success');
70
+ expect(result.content[0].json).toEqual({ name: 'John' });
71
+ });
72
+ it('returns error result for non-ZodError exceptions', async () => {
73
+ const tool = new StructuredOutputTool(z.object({ value: z.string() }));
74
+ vi.spyOn(tool['_schema'], 'parse').mockImplementation(() => {
75
+ throw new Error('unexpected parse error');
76
+ });
77
+ const result = await runTool(tool, { value: 'valid' });
78
+ expect(result.status).toBe('error');
79
+ expect(result.error).toBeInstanceOf(Error);
80
+ expect(result.content[0].text).toContain('unexpected parse error');
81
+ });
82
+ });
83
+ });
84
+ //# sourceMappingURL=structured-output-tool.test.js.map