@strands-agents/sdk 0.4.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.
Files changed (306) hide show
  1. package/dist/src/__fixtures__/agent-helpers.d.ts +10 -1
  2. package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
  3. package/dist/src/__fixtures__/agent-helpers.js +13 -2
  4. package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
  5. package/dist/src/__fixtures__/metrics-helpers.d.ts +25 -0
  6. package/dist/src/__fixtures__/metrics-helpers.d.ts.map +1 -0
  7. package/dist/src/__fixtures__/metrics-helpers.js +34 -0
  8. package/dist/src/__fixtures__/metrics-helpers.js.map +1 -0
  9. package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -1
  10. package/dist/src/__fixtures__/mock-message-model.js +12 -0
  11. package/dist/src/__fixtures__/mock-message-model.js.map +1 -1
  12. package/dist/src/__fixtures__/mock-span.d.ts +78 -0
  13. package/dist/src/__fixtures__/mock-span.d.ts.map +1 -0
  14. package/dist/src/__fixtures__/mock-span.js +93 -0
  15. package/dist/src/__fixtures__/mock-span.js.map +1 -0
  16. package/dist/src/__fixtures__/mock-storage-provider.d.ts +5 -0
  17. package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +1 -1
  18. package/dist/src/__fixtures__/mock-storage-provider.js +23 -6
  19. package/dist/src/__fixtures__/mock-storage-provider.js.map +1 -1
  20. package/dist/src/__fixtures__/slim-types.d.ts +2 -1
  21. package/dist/src/__fixtures__/slim-types.d.ts.map +1 -1
  22. package/dist/src/__fixtures__/tool-helpers.d.ts +2 -2
  23. package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
  24. package/dist/src/__fixtures__/tool-helpers.js +4 -4
  25. package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
  26. package/dist/src/__tests__/app-state.test.d.ts +2 -0
  27. package/dist/src/__tests__/app-state.test.d.ts.map +1 -0
  28. package/dist/src/{agent/__tests__/state.test.js → __tests__/app-state.test.js} +46 -46
  29. package/dist/src/__tests__/app-state.test.js.map +1 -0
  30. package/dist/src/__tests__/mcp.test.js +129 -18
  31. package/dist/src/__tests__/mcp.test.js.map +1 -1
  32. package/dist/src/agent/__tests__/agent.test.js +119 -11
  33. package/dist/src/agent/__tests__/agent.test.js.map +1 -1
  34. package/dist/src/agent/__tests__/agent.tracer.test.d.ts +2 -0
  35. package/dist/src/agent/__tests__/agent.tracer.test.d.ts.map +1 -0
  36. package/dist/src/agent/__tests__/agent.tracer.test.js +470 -0
  37. package/dist/src/agent/__tests__/agent.tracer.test.js.map +1 -0
  38. package/dist/src/agent/agent.d.ts +79 -9
  39. package/dist/src/agent/agent.d.ts.map +1 -1
  40. package/dist/src/agent/agent.js +253 -68
  41. package/dist/src/agent/agent.js.map +1 -1
  42. package/dist/src/{agent/state.d.ts → app-state.d.ts} +7 -7
  43. package/dist/src/app-state.d.ts.map +1 -0
  44. package/dist/src/{agent/state.js → app-state.js} +6 -6
  45. package/dist/src/app-state.js.map +1 -0
  46. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +1 -1
  47. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +1 -1
  48. package/dist/src/errors.d.ts +6 -0
  49. package/dist/src/errors.d.ts.map +1 -1
  50. package/dist/src/errors.js +9 -0
  51. package/dist/src/errors.js.map +1 -1
  52. package/dist/src/hooks/__tests__/events.test.js +2 -0
  53. package/dist/src/hooks/__tests__/events.test.js.map +1 -1
  54. package/dist/src/hooks/events.d.ts +16 -0
  55. package/dist/src/hooks/events.d.ts.map +1 -1
  56. package/dist/src/hooks/events.js.map +1 -1
  57. package/dist/src/hooks/index.d.ts +1 -1
  58. package/dist/src/hooks/index.d.ts.map +1 -1
  59. package/dist/src/index.d.ts +23 -7
  60. package/dist/src/index.d.ts.map +1 -1
  61. package/dist/src/index.js +19 -2
  62. package/dist/src/index.js.map +1 -1
  63. package/dist/src/mcp.d.ts +41 -0
  64. package/dist/src/mcp.d.ts.map +1 -1
  65. package/dist/src/mcp.js +60 -6
  66. package/dist/src/mcp.js.map +1 -1
  67. package/dist/src/models/__tests__/bedrock.test.js +688 -0
  68. package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
  69. package/dist/src/models/__tests__/model.test.js +113 -0
  70. package/dist/src/models/__tests__/model.test.js.map +1 -1
  71. package/dist/src/models/__tests__/streaming.test.d.ts +2 -0
  72. package/dist/src/models/__tests__/streaming.test.d.ts.map +1 -0
  73. package/dist/src/models/__tests__/streaming.test.js +50 -0
  74. package/dist/src/models/__tests__/streaming.test.js.map +1 -0
  75. package/dist/src/models/bedrock.d.ts +80 -1
  76. package/dist/src/models/bedrock.d.ts.map +1 -1
  77. package/dist/src/models/bedrock.js +214 -5
  78. package/dist/src/models/bedrock.js.map +1 -1
  79. package/dist/src/models/model.d.ts +10 -0
  80. package/dist/src/models/model.d.ts.map +1 -1
  81. package/dist/src/models/model.js +58 -2
  82. package/dist/src/models/model.js.map +1 -1
  83. package/dist/src/models/streaming.d.ts +84 -3
  84. package/dist/src/models/streaming.d.ts.map +1 -1
  85. package/dist/src/models/streaming.js +26 -0
  86. package/dist/src/models/streaming.js.map +1 -1
  87. package/dist/src/multiagent/__tests__/events.test.d.ts +2 -0
  88. package/dist/src/multiagent/__tests__/events.test.d.ts.map +1 -0
  89. package/dist/src/multiagent/__tests__/events.test.js +205 -0
  90. package/dist/src/multiagent/__tests__/events.test.js.map +1 -0
  91. package/dist/src/multiagent/__tests__/graph.test.d.ts +2 -0
  92. package/dist/src/multiagent/__tests__/graph.test.d.ts.map +1 -0
  93. package/dist/src/multiagent/__tests__/graph.test.js +438 -0
  94. package/dist/src/multiagent/__tests__/graph.test.js.map +1 -0
  95. package/dist/src/multiagent/__tests__/nodes.test.js +105 -9
  96. package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
  97. package/dist/src/multiagent/__tests__/queue.test.d.ts +2 -0
  98. package/dist/src/multiagent/__tests__/queue.test.d.ts.map +1 -0
  99. package/dist/src/multiagent/__tests__/queue.test.js +118 -0
  100. package/dist/src/multiagent/__tests__/queue.test.js.map +1 -0
  101. package/dist/src/multiagent/__tests__/swarm.test.d.ts +2 -0
  102. package/dist/src/multiagent/__tests__/swarm.test.d.ts.map +1 -0
  103. package/dist/src/multiagent/__tests__/swarm.test.js +241 -0
  104. package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -0
  105. package/dist/src/multiagent/base.d.ts +25 -0
  106. package/dist/src/multiagent/base.d.ts.map +1 -0
  107. package/dist/src/multiagent/base.js +2 -0
  108. package/dist/src/multiagent/base.js.map +1 -0
  109. package/dist/src/multiagent/edge.d.ts +36 -0
  110. package/dist/src/multiagent/edge.d.ts.map +1 -0
  111. package/dist/src/multiagent/edge.js +15 -0
  112. package/dist/src/multiagent/edge.js.map +1 -0
  113. package/dist/src/multiagent/events.d.ts +129 -4
  114. package/dist/src/multiagent/events.d.ts.map +1 -1
  115. package/dist/src/multiagent/events.js +140 -2
  116. package/dist/src/multiagent/events.js.map +1 -1
  117. package/dist/src/multiagent/graph.d.ts +125 -0
  118. package/dist/src/multiagent/graph.d.ts.map +1 -0
  119. package/dist/src/multiagent/graph.js +394 -0
  120. package/dist/src/multiagent/graph.js.map +1 -0
  121. package/dist/src/multiagent/index.d.ts +12 -6
  122. package/dist/src/multiagent/index.d.ts.map +1 -1
  123. package/dist/src/multiagent/index.js +6 -3
  124. package/dist/src/multiagent/index.js.map +1 -1
  125. package/dist/src/multiagent/nodes.d.ts +66 -16
  126. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  127. package/dist/src/multiagent/nodes.js +82 -24
  128. package/dist/src/multiagent/nodes.js.map +1 -1
  129. package/dist/src/multiagent/queue.d.ts +73 -0
  130. package/dist/src/multiagent/queue.d.ts.map +1 -0
  131. package/dist/src/multiagent/queue.js +72 -0
  132. package/dist/src/multiagent/queue.js.map +1 -0
  133. package/dist/src/multiagent/state.d.ts +79 -10
  134. package/dist/src/multiagent/state.d.ts.map +1 -1
  135. package/dist/src/multiagent/state.js +101 -9
  136. package/dist/src/multiagent/state.js.map +1 -1
  137. package/dist/src/multiagent/swarm.d.ts +102 -0
  138. package/dist/src/multiagent/swarm.d.ts.map +1 -0
  139. package/dist/src/multiagent/swarm.js +238 -0
  140. package/dist/src/multiagent/swarm.js.map +1 -0
  141. package/dist/src/registry/__tests__/tool-registry.test.d.ts +2 -0
  142. package/dist/src/registry/__tests__/tool-registry.test.d.ts.map +1 -0
  143. package/dist/src/registry/__tests__/tool-registry.test.js +124 -0
  144. package/dist/src/registry/__tests__/tool-registry.test.js.map +1 -0
  145. package/dist/src/registry/tool-registry.d.ts +32 -20
  146. package/dist/src/registry/tool-registry.d.ts.map +1 -1
  147. package/dist/src/registry/tool-registry.js +60 -158
  148. package/dist/src/registry/tool-registry.js.map +1 -1
  149. package/dist/src/session/__tests__/file-storage.test.node.js +75 -15
  150. package/dist/src/session/__tests__/file-storage.test.node.js.map +1 -1
  151. package/dist/src/session/__tests__/s3-storage.test.d.ts +2 -0
  152. package/dist/src/session/__tests__/s3-storage.test.d.ts.map +1 -0
  153. package/dist/src/session/__tests__/{s3-storage.test.node.js → s3-storage.test.js} +161 -75
  154. package/dist/src/session/__tests__/s3-storage.test.js.map +1 -0
  155. package/dist/src/session/__tests__/session-manager.test.d.ts +2 -0
  156. package/dist/src/session/__tests__/session-manager.test.d.ts.map +1 -0
  157. package/dist/src/session/__tests__/session-manager.test.js +461 -0
  158. package/dist/src/session/__tests__/session-manager.test.js.map +1 -0
  159. package/dist/src/session/__tests__/validation.test.js +28 -1
  160. package/dist/src/session/__tests__/validation.test.js.map +1 -1
  161. package/dist/src/session/file-storage.d.ts +53 -27
  162. package/dist/src/session/file-storage.d.ts.map +1 -1
  163. package/dist/src/session/file-storage.js +103 -52
  164. package/dist/src/session/file-storage.js.map +1 -1
  165. package/dist/src/session/index.d.ts +6 -13
  166. package/dist/src/session/index.d.ts.map +1 -1
  167. package/dist/src/session/index.js +4 -12
  168. package/dist/src/session/index.js.map +1 -1
  169. package/dist/src/session/s3-storage.d.ts +49 -20
  170. package/dist/src/session/s3-storage.d.ts.map +1 -1
  171. package/dist/src/session/s3-storage.js +120 -35
  172. package/dist/src/session/s3-storage.js.map +1 -1
  173. package/dist/src/session/session-manager.d.ts +83 -0
  174. package/dist/src/session/session-manager.d.ts.map +1 -0
  175. package/dist/src/session/session-manager.js +122 -0
  176. package/dist/src/session/session-manager.js.map +1 -0
  177. package/dist/src/session/storage.d.ts +19 -11
  178. package/dist/src/session/storage.d.ts.map +1 -1
  179. package/dist/src/session/types.d.ts +6 -18
  180. package/dist/src/session/types.d.ts.map +1 -1
  181. package/dist/src/session/validation.d.ts +7 -0
  182. package/dist/src/session/validation.d.ts.map +1 -1
  183. package/dist/src/session/validation.js +12 -0
  184. package/dist/src/session/validation.js.map +1 -1
  185. package/dist/src/structured-output/__tests__/context.test.js +13 -13
  186. package/dist/src/structured-output/__tests__/context.test.js.map +1 -1
  187. package/dist/src/structured-output/context.js +1 -1
  188. package/dist/src/structured-output/context.js.map +1 -1
  189. package/dist/src/telemetry/__tests__/config.test.d.ts +2 -0
  190. package/dist/src/telemetry/__tests__/config.test.d.ts.map +1 -0
  191. package/dist/src/telemetry/__tests__/config.test.js +40 -0
  192. package/dist/src/telemetry/__tests__/config.test.js.map +1 -0
  193. package/dist/src/telemetry/__tests__/config.test.node.d.ts +2 -0
  194. package/dist/src/telemetry/__tests__/config.test.node.d.ts.map +1 -0
  195. package/dist/src/telemetry/__tests__/config.test.node.js +103 -0
  196. package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -0
  197. package/dist/src/telemetry/__tests__/json.test.d.ts +2 -0
  198. package/dist/src/telemetry/__tests__/json.test.d.ts.map +1 -0
  199. package/dist/src/telemetry/__tests__/json.test.js +89 -0
  200. package/dist/src/telemetry/__tests__/json.test.js.map +1 -0
  201. package/dist/src/telemetry/__tests__/meter.test.d.ts +2 -0
  202. package/dist/src/telemetry/__tests__/meter.test.d.ts.map +1 -0
  203. package/dist/src/telemetry/__tests__/meter.test.js +457 -0
  204. package/dist/src/telemetry/__tests__/meter.test.js.map +1 -0
  205. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts +2 -0
  206. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts.map +1 -0
  207. package/dist/src/telemetry/__tests__/tracer.test.node.js +611 -0
  208. package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -0
  209. package/dist/src/telemetry/config.d.ts +82 -0
  210. package/dist/src/telemetry/config.d.ts.map +1 -0
  211. package/dist/src/telemetry/config.js +133 -0
  212. package/dist/src/telemetry/config.js.map +1 -0
  213. package/dist/src/telemetry/index.d.ts +34 -0
  214. package/dist/src/telemetry/index.d.ts.map +1 -0
  215. package/dist/src/telemetry/index.js +33 -0
  216. package/dist/src/telemetry/index.js.map +1 -0
  217. package/dist/src/telemetry/json.d.ts +11 -0
  218. package/dist/src/telemetry/json.d.ts.map +1 -0
  219. package/dist/src/telemetry/json.js +25 -0
  220. package/dist/src/telemetry/json.js.map +1 -0
  221. package/dist/src/telemetry/meter.d.ts +277 -0
  222. package/dist/src/telemetry/meter.d.ts.map +1 -0
  223. package/dist/src/telemetry/meter.js +292 -0
  224. package/dist/src/telemetry/meter.js.map +1 -0
  225. package/dist/src/telemetry/tracer.d.ts +219 -0
  226. package/dist/src/telemetry/tracer.d.ts.map +1 -0
  227. package/dist/src/telemetry/tracer.js +610 -0
  228. package/dist/src/telemetry/tracer.js.map +1 -0
  229. package/dist/src/telemetry/types.d.ts +101 -0
  230. package/dist/src/telemetry/types.d.ts.map +1 -0
  231. package/dist/src/telemetry/types.js +5 -0
  232. package/dist/src/{multiagent → telemetry}/types.js.map +1 -1
  233. package/dist/src/tools/__tests__/tool-factory.test.d.ts +2 -0
  234. package/dist/src/tools/__tests__/tool-factory.test.d.ts.map +1 -0
  235. package/dist/src/tools/__tests__/tool-factory.test.js +98 -0
  236. package/dist/src/tools/__tests__/tool-factory.test.js.map +1 -0
  237. package/dist/src/tools/__tests__/zod-tool.test-d.js +1 -1
  238. package/dist/src/tools/__tests__/zod-tool.test-d.js.map +1 -1
  239. package/dist/src/tools/__tests__/zod-tool.test.js +3 -4
  240. package/dist/src/tools/__tests__/zod-tool.test.js.map +1 -1
  241. package/dist/src/tools/function-tool.d.ts +15 -2
  242. package/dist/src/tools/function-tool.d.ts.map +1 -1
  243. package/dist/src/tools/function-tool.js +24 -0
  244. package/dist/src/tools/function-tool.js.map +1 -1
  245. package/dist/src/tools/tool-factory.d.ts +22 -0
  246. package/dist/src/tools/tool-factory.d.ts.map +1 -0
  247. package/dist/src/tools/tool-factory.js +55 -0
  248. package/dist/src/tools/tool-factory.js.map +1 -0
  249. package/dist/src/tools/tool.d.ts +1 -1
  250. package/dist/src/tools/tool.js +1 -1
  251. package/dist/src/tools/zod-tool.d.ts +55 -52
  252. package/dist/src/tools/zod-tool.d.ts.map +1 -1
  253. package/dist/src/tools/zod-tool.js +7 -61
  254. package/dist/src/tools/zod-tool.js.map +1 -1
  255. package/dist/src/tsconfig.tsbuildinfo +1 -1
  256. package/dist/src/types/__tests__/agent.test.js +11 -0
  257. package/dist/src/types/__tests__/agent.test.js.map +1 -1
  258. package/dist/src/types/__tests__/citations.test.d.ts +2 -0
  259. package/dist/src/types/__tests__/citations.test.d.ts.map +1 -0
  260. package/dist/src/types/__tests__/citations.test.js +104 -0
  261. package/dist/src/types/__tests__/citations.test.js.map +1 -0
  262. package/dist/src/types/__tests__/messages.test.js +26 -0
  263. package/dist/src/types/__tests__/messages.test.js.map +1 -1
  264. package/dist/src/types/agent.d.ts +10 -3
  265. package/dist/src/types/agent.d.ts.map +1 -1
  266. package/dist/src/types/agent.js +9 -0
  267. package/dist/src/types/agent.js.map +1 -1
  268. package/dist/src/types/citations.d.ts +180 -0
  269. package/dist/src/types/citations.d.ts.map +1 -0
  270. package/dist/src/types/citations.js +45 -0
  271. package/dist/src/types/citations.js.map +1 -0
  272. package/dist/src/types/messages.d.ts +9 -5
  273. package/dist/src/types/messages.d.ts.map +1 -1
  274. package/dist/src/types/messages.js +5 -1
  275. package/dist/src/types/messages.js.map +1 -1
  276. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +2 -2
  277. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
  278. package/dist/src/vended-tools/bash/bash.d.ts.map +1 -1
  279. package/dist/src/vended-tools/bash/bash.js +1 -2
  280. package/dist/src/vended-tools/bash/bash.js.map +1 -1
  281. package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js +4 -4
  282. package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js.map +1 -1
  283. package/dist/src/vended-tools/file_editor/file-editor.js +1 -1
  284. package/dist/src/vended-tools/file_editor/file-editor.js.map +1 -1
  285. package/dist/src/vended-tools/http_request/http-request.d.ts.map +1 -1
  286. package/dist/src/vended-tools/http_request/http-request.js +1 -2
  287. package/dist/src/vended-tools/http_request/http-request.js.map +1 -1
  288. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +2 -2
  289. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
  290. package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
  291. package/package.json +25 -4
  292. package/dist/src/agent/__tests__/state.test.d.ts +0 -2
  293. package/dist/src/agent/__tests__/state.test.d.ts.map +0 -1
  294. package/dist/src/agent/__tests__/state.test.js.map +0 -1
  295. package/dist/src/agent/state.d.ts.map +0 -1
  296. package/dist/src/agent/state.js.map +0 -1
  297. package/dist/src/multiagent/types.d.ts +0 -5
  298. package/dist/src/multiagent/types.d.ts.map +0 -1
  299. package/dist/src/multiagent/types.js +0 -2
  300. package/dist/src/registry/registry.d.ts +0 -117
  301. package/dist/src/registry/registry.d.ts.map +0 -1
  302. package/dist/src/registry/registry.js +0 -298
  303. package/dist/src/registry/registry.js.map +0 -1
  304. package/dist/src/session/__tests__/s3-storage.test.node.d.ts +0 -2
  305. package/dist/src/session/__tests__/s3-storage.test.node.d.ts.map +0 -1
  306. package/dist/src/session/__tests__/s3-storage.test.node.js.map +0 -1
@@ -0,0 +1,219 @@
1
+ /**
2
+ * OpenTelemetry integration.
3
+ *
4
+ * This module provides tracing capabilities using OpenTelemetry,
5
+ * enabling trace data to be sent to OTLP endpoints.
6
+ *
7
+ * Uses a fully stateful approach via OpenTelemetry's context propagation.
8
+ * Parent-child relationships are established automatically through
9
+ * context.active(). Use context.with() to set a span as active before
10
+ * creating child spans.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const tracer = new Tracer()
15
+ * const parentSpan = tracer.startAgentSpan({ ... })
16
+ *
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)
23
+ * })
24
+ *
25
+ * tracer.endAgentSpan(parentSpan)
26
+ * ```
27
+ */
28
+ import type { Span, AttributeValue } from '@opentelemetry/api';
29
+ import type { EndAgentSpanOptions, EndModelSpanOptions, EndToolCallSpanOptions, EndAgentLoopSpanOptions, StartAgentSpanOptions, StartModelInvokeSpanOptions, StartToolCallSpanOptions, StartAgentLoopSpanOptions } from './types.js';
30
+ /**
31
+ * Tracer manages OpenTelemetry spans for agent operations.
32
+ *
33
+ * Uses a fully stateful approach via OpenTelemetry's context propagation.
34
+ * Parent-child relationships are established automatically through context.active().
35
+ *
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
+ */
44
+ export declare class Tracer {
45
+ /**
46
+ * OpenTelemetry tracer instance obtained from the global API.
47
+ */
48
+ private readonly _tracer;
49
+ /**
50
+ * Whether to use latest experimental semantic conventions.
51
+ *
52
+ * Enabled via `OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental`.
53
+ * Changes attribute names (e.g., `gen_ai.system` → `gen_ai.provider.name`) and
54
+ * event formats (single `gen_ai.client.inference.operation.details` event vs
55
+ * separate per-message events). Enable when your observability backend supports
56
+ * newer GenAI conventions.
57
+ *
58
+ * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/
59
+ */
60
+ private readonly _useLatestConventions;
61
+ /**
62
+ * Whether to include full tool JSON schemas in span attributes.
63
+ *
64
+ * Enabled via `OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_tool_definitions`.
65
+ * Useful for debugging tool configuration issues. Disabled by default to
66
+ * reduce span payload size and observability costs.
67
+ *
68
+ * Can be combined with other options:
69
+ * `OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental,gen_ai_tool_definitions`
70
+ */
71
+ private readonly _includeToolDefinitions;
72
+ /**
73
+ * Custom attributes to include on all spans created by this tracer.
74
+ */
75
+ private readonly _traceAttributes;
76
+ /** Root span for the current agent invocation. */
77
+ private _agentSpan;
78
+ /** Span for the current agent loop cycle, used to parent model and tool spans. */
79
+ private _loopSpan;
80
+ /**
81
+ * Initialize the tracer with OpenTelemetry configuration.
82
+ * Reads OTEL_SEMCONV_STABILITY_OPT_IN to determine convention version.
83
+ * Gets tracer from the global API to ensure ground truth - works correctly
84
+ * whether the user or Strands initialized the tracer provider.
85
+ *
86
+ * @param traceAttributes - Optional custom attributes to include on all spans
87
+ */
88
+ constructor(traceAttributes?: Record<string, AttributeValue>);
89
+ /**
90
+ * Start an agent invocation span.
91
+ * Returns the span which should be ended with endAgentSpan.
92
+ * Parents to the current active span from context.active().
93
+ *
94
+ * @param options - Options for starting the agent span
95
+ */
96
+ startAgentSpan(options: StartAgentSpanOptions): Span | null;
97
+ /**
98
+ * End an agent invocation span.
99
+ *
100
+ * @param span - The span to end, or null if span creation failed
101
+ * @param options - Options for ending the span including response, error, and usage data
102
+ */
103
+ endAgentSpan(span: Span | null, options?: EndAgentSpanOptions): void;
104
+ /**
105
+ * Start a model invocation span.
106
+ * Parents to the current active span from context.active().
107
+ *
108
+ * @param options - Options for starting the model invocation span
109
+ */
110
+ startModelInvokeSpan(options: StartModelInvokeSpanOptions): Span | null;
111
+ /**
112
+ * End a model invocation span.
113
+ *
114
+ * @param span - The span to end, or null if span creation failed
115
+ * @param options - Options for ending the span including usage, metrics, error, and output
116
+ */
117
+ endModelInvokeSpan(span: Span | null, options?: EndModelSpanOptions): void;
118
+ /**
119
+ * Start a tool call span.
120
+ * Parents to the current active span from context.active().
121
+ *
122
+ * @param options - Options for starting the tool call span
123
+ */
124
+ startToolCallSpan(options: StartToolCallSpanOptions): Span | null;
125
+ /**
126
+ * End a tool call span.
127
+ *
128
+ * @param span - The span to end, or null if span creation failed
129
+ * @param options - Options for ending the tool call span
130
+ */
131
+ endToolCallSpan(span: Span | null, options?: EndToolCallSpanOptions): void;
132
+ /**
133
+ * Runs a callback with the given span set as the active OpenTelemetry context.
134
+ * Downstream code (e.g., MCP clients) can read the span from context.active()
135
+ * for distributed trace propagation. No-ops if span is null.
136
+ *
137
+ * @param span - The span to set as active, or null if span creation failed
138
+ * @param fn - The callback to run within the span's context
139
+ * @returns The return value of the callback
140
+ */
141
+ withSpanContext<T>(span: Span | null, fn: () => T): T;
142
+ /**
143
+ * Start an agent loop cycle span.
144
+ * Parents to the current active span from context.active().
145
+ *
146
+ * @param options - Options for starting the agent loop span
147
+ */
148
+ startAgentLoopSpan(options: StartAgentLoopSpanOptions): Span | null;
149
+ /**
150
+ * End an agent loop cycle span.
151
+ *
152
+ * @param span - The span to end, or null if span creation failed
153
+ * @param options - Options for ending the agent loop span
154
+ */
155
+ endAgentLoopSpan(span: Span | null, options?: EndAgentLoopSpanOptions): void;
156
+ /**
157
+ * Create a span parented to the current active context.
158
+ */
159
+ private _startSpan;
160
+ /**
161
+ * End a span with the given attributes and optional error.
162
+ */
163
+ private _endSpan;
164
+ /**
165
+ * Add an event to a span.
166
+ */
167
+ private _addEvent;
168
+ /**
169
+ * Get common attributes based on semantic convention version.
170
+ * The attribute name changed between OTEL semconv versions:
171
+ * - Stable: 'gen_ai.system'
172
+ * - Latest experimental: 'gen_ai.provider.name'
173
+ */
174
+ private _getCommonAttributes;
175
+ /**
176
+ * Add message events to a span.
177
+ * Uses different event formats based on semantic convention version:
178
+ * - Latest: Single 'gen_ai.client.inference.operation.details' event with all messages
179
+ * - Stable: Separate events per message (gen_ai.user.message, gen_ai.assistant.message, etc.)
180
+ */
181
+ private _addEventMessages;
182
+ /**
183
+ * Get the event name for a message based on its type.
184
+ */
185
+ private _getEventNameForMessage;
186
+ /**
187
+ * Set usage attributes on an attributes object.
188
+ * Sets both legacy (prompt_tokens/completion_tokens) and new (input_tokens/output_tokens)
189
+ * attribute names for compatibility with different OTEL backends.
190
+ */
191
+ private _setUsageAttributes;
192
+ /**
193
+ * Set metrics attributes on an attributes object.
194
+ */
195
+ private _setMetricsAttributes;
196
+ /**
197
+ * Add response event to a span.
198
+ */
199
+ private _addResponseEvent;
200
+ /**
201
+ * Add output event to a span for model invocation.
202
+ */
203
+ private _addOutputEvent;
204
+ /**
205
+ * Parse the OTEL_SEMCONV_STABILITY_OPT_IN environment variable.
206
+ */
207
+ private static _parseSemconvOptIn;
208
+ /**
209
+ * Map content blocks to OTEL parts format (latest conventions).
210
+ * Converts SDK content block types to OTEL semantic convention format.
211
+ */
212
+ private static _mapContentBlocksToOtelParts;
213
+ /**
214
+ * Map content blocks to stable format (older conventions).
215
+ * Simplifies content blocks to a minimal structure for legacy OTEL backends.
216
+ */
217
+ private static _mapContentBlocksToStableFormat;
218
+ }
219
+ //# sourceMappingURL=tracer.d.ts.map
@@ -0,0 +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,EAG1B,MAAM,YAAY,CAAA;AAKnB;;;;;;;;;;;;;GAaG;AACH,qBAAa,MAAM;IACjB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IAEpC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAE/C;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAS;IAEjD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IAEjE,kDAAkD;IAClD,OAAO,CAAC,UAAU,CAAkB;IAEpC,kFAAkF;IAClF,OAAO,CAAC,SAAS,CAAkB;IAEnC;;;;;;;OAOG;gBACS,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAY5D;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI;IAqC3D;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,GAAE,mBAAwB,GAAG,IAAI;IAoBxE;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI,GAAG,IAAI;IAsBvE;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,GAAE,mBAAwB,GAAG,IAAI;IAoB9E;;;;;OAKG;IACH,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,GAAG,IAAI;IA0CjE;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,GAAE,sBAA2B,GAAG,IAAI;IAqC9E;;;;;;;;OAQG;IACH,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAKrD;;;;;OAKG;IACH,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI,GAAG,IAAI;IAmBnE;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,GAAE,uBAA4B,GAAG,IAAI;IAUhF;;OAEG;IACH,OAAO,CAAC,UAAU;IA8BlB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAoBhB;;OAEG;IACH,OAAO,CAAC,SAAS;IAgBjB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAc/B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAwBvB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAUjC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAiB3C;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,+BAA+B;CAkB/C"}