@strands-agents/sdk 0.3.0 → 0.5.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 (302) hide show
  1. package/README.md +43 -0
  2. package/dist/src/__fixtures__/agent-helpers.d.ts +10 -1
  3. package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
  4. package/dist/src/__fixtures__/agent-helpers.js +13 -2
  5. package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
  6. package/dist/src/__fixtures__/mock-hook-provider.d.ts +3 -7
  7. package/dist/src/__fixtures__/mock-hook-provider.d.ts.map +1 -1
  8. package/dist/src/__fixtures__/mock-hook-provider.js +3 -9
  9. package/dist/src/__fixtures__/mock-hook-provider.js.map +1 -1
  10. package/dist/src/__fixtures__/mock-message-model.d.ts +8 -2
  11. package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -1
  12. package/dist/src/__fixtures__/mock-message-model.js +1 -0
  13. package/dist/src/__fixtures__/mock-message-model.js.map +1 -1
  14. package/dist/src/__fixtures__/mock-span.d.ts +78 -0
  15. package/dist/src/__fixtures__/mock-span.d.ts.map +1 -0
  16. package/dist/src/__fixtures__/mock-span.js +93 -0
  17. package/dist/src/__fixtures__/mock-span.js.map +1 -0
  18. package/dist/src/__fixtures__/mock-storage-provider.d.ts +37 -0
  19. package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +1 -0
  20. package/dist/src/__fixtures__/mock-storage-provider.js +105 -0
  21. package/dist/src/__fixtures__/mock-storage-provider.js.map +1 -0
  22. package/dist/src/__fixtures__/slim-types.d.ts +50 -0
  23. package/dist/src/__fixtures__/slim-types.d.ts.map +1 -0
  24. package/dist/src/__fixtures__/slim-types.js +6 -0
  25. package/dist/src/__fixtures__/slim-types.js.map +1 -0
  26. package/dist/src/__fixtures__/tool-helpers.d.ts +10 -5
  27. package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
  28. package/dist/src/__fixtures__/tool-helpers.js +5 -5
  29. package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
  30. package/dist/src/__tests__/app-state.test.d.ts +2 -0
  31. package/dist/src/__tests__/app-state.test.d.ts.map +1 -0
  32. package/dist/src/{agent/__tests__/state.test.js → __tests__/app-state.test.js} +62 -43
  33. package/dist/src/__tests__/app-state.test.js.map +1 -0
  34. package/dist/src/__tests__/mcp.test.js +96 -15
  35. package/dist/src/__tests__/mcp.test.js.map +1 -1
  36. package/dist/src/agent/__tests__/agent.hook.test.js +18 -18
  37. package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
  38. package/dist/src/agent/__tests__/agent.test.js +234 -8
  39. package/dist/src/agent/__tests__/agent.test.js.map +1 -1
  40. package/dist/src/agent/__tests__/agent.tracer.test.d.ts +2 -0
  41. package/dist/src/agent/__tests__/agent.tracer.test.d.ts.map +1 -0
  42. package/dist/src/agent/__tests__/agent.tracer.test.js +470 -0
  43. package/dist/src/agent/__tests__/agent.tracer.test.js.map +1 -0
  44. package/dist/src/agent/__tests__/printer.test.js +5 -9
  45. package/dist/src/agent/__tests__/printer.test.js.map +1 -1
  46. package/dist/src/agent/__tests__/snapshot.test.d.ts +2 -0
  47. package/dist/src/agent/__tests__/snapshot.test.d.ts.map +1 -0
  48. package/dist/src/agent/__tests__/snapshot.test.js +249 -0
  49. package/dist/src/agent/__tests__/snapshot.test.js.map +1 -0
  50. package/dist/src/agent/agent.d.ts +78 -10
  51. package/dist/src/agent/agent.d.ts.map +1 -1
  52. package/dist/src/agent/agent.js +252 -55
  53. package/dist/src/agent/agent.js.map +1 -1
  54. package/dist/src/agent/printer.d.ts +4 -0
  55. package/dist/src/agent/printer.d.ts.map +1 -1
  56. package/dist/src/agent/printer.js +18 -6
  57. package/dist/src/agent/printer.js.map +1 -1
  58. package/dist/src/agent/snapshot.d.ts +132 -0
  59. package/dist/src/agent/snapshot.d.ts.map +1 -0
  60. package/dist/src/agent/snapshot.js +151 -0
  61. package/dist/src/agent/snapshot.js.map +1 -0
  62. package/dist/src/{agent/state.d.ts → app-state.d.ts} +19 -6
  63. package/dist/src/app-state.d.ts.map +1 -0
  64. package/dist/src/{agent/state.js → app-state.js} +27 -6
  65. package/dist/src/app-state.js.map +1 -0
  66. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +1 -1
  67. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +1 -1
  68. package/dist/src/errors.d.ts +15 -0
  69. package/dist/src/errors.d.ts.map +1 -1
  70. package/dist/src/errors.js +18 -0
  71. package/dist/src/errors.js.map +1 -1
  72. package/dist/src/hooks/__tests__/events.test.js +102 -21
  73. package/dist/src/hooks/__tests__/events.test.js.map +1 -1
  74. package/dist/src/hooks/events.d.ts +156 -22
  75. package/dist/src/hooks/events.d.ts.map +1 -1
  76. package/dist/src/hooks/events.js +158 -18
  77. package/dist/src/hooks/events.js.map +1 -1
  78. package/dist/src/hooks/index.d.ts +12 -4
  79. package/dist/src/hooks/index.d.ts.map +1 -1
  80. package/dist/src/hooks/index.js +11 -3
  81. package/dist/src/hooks/index.js.map +1 -1
  82. package/dist/src/hooks/registry.d.ts +5 -5
  83. package/dist/src/hooks/registry.d.ts.map +1 -1
  84. package/dist/src/hooks/registry.js.map +1 -1
  85. package/dist/src/hooks/types.d.ts +5 -5
  86. package/dist/src/hooks/types.d.ts.map +1 -1
  87. package/dist/src/index.d.ts +6 -3
  88. package/dist/src/index.d.ts.map +1 -1
  89. package/dist/src/index.js +8 -3
  90. package/dist/src/index.js.map +1 -1
  91. package/dist/src/mcp.d.ts +3 -0
  92. package/dist/src/mcp.d.ts.map +1 -1
  93. package/dist/src/mcp.js +38 -1
  94. package/dist/src/mcp.js.map +1 -1
  95. package/dist/src/models/__tests__/anthropic.test.js +31 -42
  96. package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
  97. package/dist/src/models/__tests__/bedrock.test.js +70 -107
  98. package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
  99. package/dist/src/models/__tests__/gemini.test.js +18 -18
  100. package/dist/src/models/__tests__/gemini.test.js.map +1 -1
  101. package/dist/src/models/__tests__/model.test.js +21 -13
  102. package/dist/src/models/__tests__/model.test.js.map +1 -1
  103. package/dist/src/models/__tests__/openai.test.js +73 -83
  104. package/dist/src/models/__tests__/openai.test.js.map +1 -1
  105. package/dist/src/models/model.d.ts +4 -0
  106. package/dist/src/models/model.d.ts.map +1 -1
  107. package/dist/src/models/model.js +6 -0
  108. package/dist/src/models/model.js.map +1 -1
  109. package/dist/src/models/streaming.d.ts +9 -1
  110. package/dist/src/models/streaming.d.ts.map +1 -1
  111. package/dist/src/models/streaming.js +17 -0
  112. package/dist/src/models/streaming.js.map +1 -1
  113. package/dist/src/multiagent/__tests__/events.test.d.ts +2 -0
  114. package/dist/src/multiagent/__tests__/events.test.d.ts.map +1 -0
  115. package/dist/src/multiagent/__tests__/events.test.js +189 -0
  116. package/dist/src/multiagent/__tests__/events.test.js.map +1 -0
  117. package/dist/src/multiagent/__tests__/nodes.test.d.ts +2 -0
  118. package/dist/src/multiagent/__tests__/nodes.test.d.ts.map +1 -0
  119. package/dist/src/multiagent/__tests__/nodes.test.js +194 -0
  120. package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -0
  121. package/dist/src/multiagent/__tests__/queue.test.d.ts +2 -0
  122. package/dist/src/multiagent/__tests__/queue.test.d.ts.map +1 -0
  123. package/dist/src/multiagent/__tests__/queue.test.js +96 -0
  124. package/dist/src/multiagent/__tests__/queue.test.js.map +1 -0
  125. package/dist/src/multiagent/base.d.ts +25 -0
  126. package/dist/src/multiagent/base.d.ts.map +1 -0
  127. package/dist/src/multiagent/base.js +2 -0
  128. package/dist/src/multiagent/base.js.map +1 -0
  129. package/dist/src/multiagent/edge.d.ts +29 -0
  130. package/dist/src/multiagent/edge.d.ts.map +1 -0
  131. package/dist/src/multiagent/edge.js +15 -0
  132. package/dist/src/multiagent/edge.js.map +1 -0
  133. package/dist/src/multiagent/events.d.ts +135 -0
  134. package/dist/src/multiagent/events.d.ts.map +1 -0
  135. package/dist/src/multiagent/events.js +140 -0
  136. package/dist/src/multiagent/events.js.map +1 -0
  137. package/dist/src/multiagent/index.d.ts +13 -0
  138. package/dist/src/multiagent/index.d.ts.map +1 -0
  139. package/dist/src/multiagent/index.js +8 -0
  140. package/dist/src/multiagent/index.js.map +1 -0
  141. package/dist/src/multiagent/nodes.d.ts +123 -0
  142. package/dist/src/multiagent/nodes.d.ts.map +1 -0
  143. package/dist/src/multiagent/nodes.js +148 -0
  144. package/dist/src/multiagent/nodes.js.map +1 -0
  145. package/dist/src/multiagent/queue.d.ts +67 -0
  146. package/dist/src/multiagent/queue.d.ts.map +1 -0
  147. package/dist/src/multiagent/queue.js +59 -0
  148. package/dist/src/multiagent/queue.js.map +1 -0
  149. package/dist/src/multiagent/state.d.ts +122 -0
  150. package/dist/src/multiagent/state.d.ts.map +1 -0
  151. package/dist/src/multiagent/state.js +132 -0
  152. package/dist/src/multiagent/state.js.map +1 -0
  153. package/dist/src/registry/tool-registry.d.ts +2 -1
  154. package/dist/src/registry/tool-registry.d.ts.map +1 -1
  155. package/dist/src/registry/tool-registry.js +4 -2
  156. package/dist/src/registry/tool-registry.js.map +1 -1
  157. package/dist/src/session/__tests__/file-storage.test.node.d.ts +2 -0
  158. package/dist/src/session/__tests__/file-storage.test.node.d.ts.map +1 -0
  159. package/dist/src/session/__tests__/file-storage.test.node.js +218 -0
  160. package/dist/src/session/__tests__/file-storage.test.node.js.map +1 -0
  161. package/dist/src/session/__tests__/s3-storage.test.node.d.ts +2 -0
  162. package/dist/src/session/__tests__/s3-storage.test.node.d.ts.map +1 -0
  163. package/dist/src/session/__tests__/s3-storage.test.node.js +375 -0
  164. package/dist/src/session/__tests__/s3-storage.test.node.js.map +1 -0
  165. package/dist/src/session/__tests__/validation.test.d.ts +2 -0
  166. package/dist/src/session/__tests__/validation.test.d.ts.map +1 -0
  167. package/dist/src/session/__tests__/validation.test.js +20 -0
  168. package/dist/src/session/__tests__/validation.test.js.map +1 -0
  169. package/dist/src/session/file-storage.d.ts +79 -0
  170. package/dist/src/session/file-storage.d.ts.map +1 -0
  171. package/dist/src/session/file-storage.js +144 -0
  172. package/dist/src/session/file-storage.js.map +1 -0
  173. package/dist/src/session/index.d.ts +19 -0
  174. package/dist/src/session/index.d.ts.map +1 -0
  175. package/dist/src/session/index.js +18 -0
  176. package/dist/src/session/index.js.map +1 -0
  177. package/dist/src/session/s3-storage.d.ts +93 -0
  178. package/dist/src/session/s3-storage.d.ts.map +1 -0
  179. package/dist/src/session/s3-storage.js +150 -0
  180. package/dist/src/session/s3-storage.js.map +1 -0
  181. package/dist/src/session/storage.d.ts +91 -0
  182. package/dist/src/session/storage.d.ts.map +1 -0
  183. package/dist/src/session/storage.js +2 -0
  184. package/dist/src/session/storage.js.map +1 -0
  185. package/dist/src/session/types.d.ts +49 -0
  186. package/dist/src/session/types.d.ts.map +1 -0
  187. package/dist/src/session/types.js +2 -0
  188. package/dist/src/session/types.js.map +1 -0
  189. package/dist/src/session/validation.d.ts +10 -0
  190. package/dist/src/session/validation.d.ts.map +1 -0
  191. package/dist/src/session/validation.js +16 -0
  192. package/dist/src/session/validation.js.map +1 -0
  193. package/dist/src/structured-output/__tests__/context.test.d.ts +2 -0
  194. package/dist/src/structured-output/__tests__/context.test.d.ts.map +1 -0
  195. package/dist/src/structured-output/__tests__/context.test.js +201 -0
  196. package/dist/src/structured-output/__tests__/context.test.js.map +1 -0
  197. package/dist/src/structured-output/__tests__/exceptions.test.d.ts +2 -0
  198. package/dist/src/structured-output/__tests__/exceptions.test.d.ts.map +1 -0
  199. package/dist/src/structured-output/__tests__/exceptions.test.js +103 -0
  200. package/dist/src/structured-output/__tests__/exceptions.test.js.map +1 -0
  201. package/dist/src/structured-output/__tests__/tool.test.d.ts +2 -0
  202. package/dist/src/structured-output/__tests__/tool.test.d.ts.map +1 -0
  203. package/dist/src/structured-output/__tests__/tool.test.js +256 -0
  204. package/dist/src/structured-output/__tests__/tool.test.js.map +1 -0
  205. package/dist/src/structured-output/__tests__/utils.test.d.ts +2 -0
  206. package/dist/src/structured-output/__tests__/utils.test.d.ts.map +1 -0
  207. package/dist/src/structured-output/__tests__/utils.test.js +183 -0
  208. package/dist/src/structured-output/__tests__/utils.test.js.map +1 -0
  209. package/dist/src/structured-output/context.d.ts +91 -0
  210. package/dist/src/structured-output/context.d.ts.map +1 -0
  211. package/dist/src/structured-output/context.js +112 -0
  212. package/dist/src/structured-output/context.js.map +1 -0
  213. package/dist/src/structured-output/exceptions.d.ts +18 -0
  214. package/dist/src/structured-output/exceptions.d.ts.map +1 -0
  215. package/dist/src/structured-output/exceptions.js +28 -0
  216. package/dist/src/structured-output/exceptions.js.map +1 -0
  217. package/dist/src/structured-output/tool.d.ts +33 -0
  218. package/dist/src/structured-output/tool.d.ts.map +1 -0
  219. package/dist/src/structured-output/tool.js +73 -0
  220. package/dist/src/structured-output/tool.js.map +1 -0
  221. package/dist/src/structured-output/utils.d.ts +23 -0
  222. package/dist/src/structured-output/utils.d.ts.map +1 -0
  223. package/dist/src/structured-output/utils.js +104 -0
  224. package/dist/src/structured-output/utils.js.map +1 -0
  225. package/dist/src/telemetry/__tests__/config.test.node.d.ts +2 -0
  226. package/dist/src/telemetry/__tests__/config.test.node.d.ts.map +1 -0
  227. package/dist/src/telemetry/__tests__/config.test.node.js +129 -0
  228. package/dist/src/telemetry/__tests__/config.test.node.js.map +1 -0
  229. package/dist/src/telemetry/__tests__/json.test.d.ts +2 -0
  230. package/dist/src/telemetry/__tests__/json.test.d.ts.map +1 -0
  231. package/dist/src/telemetry/__tests__/json.test.js +89 -0
  232. package/dist/src/telemetry/__tests__/json.test.js.map +1 -0
  233. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts +2 -0
  234. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts.map +1 -0
  235. package/dist/src/telemetry/__tests__/tracer.test.node.js +611 -0
  236. package/dist/src/telemetry/__tests__/tracer.test.node.js.map +1 -0
  237. package/dist/src/telemetry/config.d.ts +61 -0
  238. package/dist/src/telemetry/config.d.ts.map +1 -0
  239. package/dist/src/telemetry/config.js +101 -0
  240. package/dist/src/telemetry/config.js.map +1 -0
  241. package/dist/src/telemetry/index.d.ts +34 -0
  242. package/dist/src/telemetry/index.d.ts.map +1 -0
  243. package/dist/src/telemetry/index.js +33 -0
  244. package/dist/src/telemetry/index.js.map +1 -0
  245. package/dist/src/telemetry/json.d.ts +11 -0
  246. package/dist/src/telemetry/json.d.ts.map +1 -0
  247. package/dist/src/telemetry/json.js +25 -0
  248. package/dist/src/telemetry/json.js.map +1 -0
  249. package/dist/src/telemetry/tracer.d.ts +219 -0
  250. package/dist/src/telemetry/tracer.d.ts.map +1 -0
  251. package/dist/src/telemetry/tracer.js +610 -0
  252. package/dist/src/telemetry/tracer.js.map +1 -0
  253. package/dist/src/telemetry/types.d.ts +101 -0
  254. package/dist/src/telemetry/types.d.ts.map +1 -0
  255. package/dist/src/telemetry/types.js +5 -0
  256. package/dist/src/telemetry/types.js.map +1 -0
  257. package/dist/src/tools/tool.d.ts +1 -1
  258. package/dist/src/tools/tool.js +1 -1
  259. package/dist/src/tools/zod-tool.d.ts.map +1 -1
  260. package/dist/src/tools/zod-tool.js +2 -5
  261. package/dist/src/tools/zod-tool.js.map +1 -1
  262. package/dist/src/tsconfig.tsbuildinfo +1 -1
  263. package/dist/src/types/__tests__/media.test.js +216 -1
  264. package/dist/src/types/__tests__/media.test.js.map +1 -1
  265. package/dist/src/types/__tests__/messages.test.js +193 -4
  266. package/dist/src/types/__tests__/messages.test.js.map +1 -1
  267. package/dist/src/types/agent.d.ts +16 -10
  268. package/dist/src/types/agent.d.ts.map +1 -1
  269. package/dist/src/types/agent.js +8 -1
  270. package/dist/src/types/agent.js.map +1 -1
  271. package/dist/src/types/json.d.ts +61 -0
  272. package/dist/src/types/json.d.ts.map +1 -1
  273. package/dist/src/types/json.js +24 -0
  274. package/dist/src/types/json.js.map +1 -1
  275. package/dist/src/types/media.d.ts +84 -4
  276. package/dist/src/types/media.d.ts.map +1 -1
  277. package/dist/src/types/media.js +194 -0
  278. package/dist/src/types/media.js.map +1 -1
  279. package/dist/src/types/messages.d.ts +152 -13
  280. package/dist/src/types/messages.d.ts.map +1 -1
  281. package/dist/src/types/messages.js +235 -8
  282. package/dist/src/types/messages.js.map +1 -1
  283. package/dist/src/types/serializable.d.ts +31 -0
  284. package/dist/src/types/serializable.d.ts.map +1 -0
  285. package/dist/src/types/serializable.js +19 -0
  286. package/dist/src/types/serializable.js.map +1 -0
  287. package/dist/src/utils/zod.d.ts +11 -0
  288. package/dist/src/utils/zod.d.ts.map +1 -0
  289. package/dist/src/utils/zod.js +14 -0
  290. package/dist/src/utils/zod.js.map +1 -0
  291. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +2 -2
  292. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
  293. package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js +4 -4
  294. package/dist/src/vended-tools/file_editor/__tests__/file-editor.test.node.js.map +1 -1
  295. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +2 -2
  296. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
  297. package/package.json +17 -3
  298. package/dist/src/agent/__tests__/state.test.d.ts +0 -2
  299. package/dist/src/agent/__tests__/state.test.d.ts.map +0 -1
  300. package/dist/src/agent/__tests__/state.test.js.map +0 -1
  301. package/dist/src/agent/state.d.ts.map +0 -1
  302. package/dist/src/agent/state.js.map +0 -1
@@ -1,8 +1,66 @@
1
+ import { ToolStreamEvent } from '../tools/tool.js';
1
2
  /**
2
- * Base class for all hook events.
3
- * Hook events are emitted at specific points in the agent lifecycle.
3
+ * Agent hook events.
4
+ *
5
+ * All events extend {@link StreamEvent} and carry `readonly agent: AgentData` with a
6
+ * `readonly type` discriminator (camelCase of the class name) for switch-based narrowing.
7
+ * Constructor takes a single data-object parameter. All properties are readonly except
8
+ * explicit mutable flags (`retry`).
9
+ *
10
+ * All current events extend {@link HookableEvent} (which itself extends {@link StreamEvent}),
11
+ * making them both streamable and subscribable via hook callbacks. {@link StreamEvent} exists
12
+ * as the base class for potential future events that should be stream-only without hookability.
13
+ *
14
+ * ## Event categories
15
+ *
16
+ * **Lifecycle events** — Before/After pairs that bracket agent operations.
17
+ * - Naming: `Before<Noun>Event` / `After<Noun>Event`
18
+ * - `After*` events override `_shouldReverseCallbacks()` → `true` for cleanup ordering.
19
+ * - Examples: {@link BeforeInvocationEvent}/{@link AfterInvocationEvent},
20
+ * {@link BeforeModelCallEvent}/{@link AfterModelCallEvent},
21
+ * {@link BeforeToolsEvent}/{@link AfterToolsEvent},
22
+ * {@link BeforeToolCallEvent}/{@link AfterToolCallEvent}
23
+ *
24
+ * **State-change events** — Signal that agent state was mutated.
25
+ * - Naming: `<Noun><PastTense>Event`
26
+ * - Examples: {@link InitializedEvent}, {@link MessageAddedEvent}
27
+ *
28
+ * **Data events** — Wrap data objects produced during agent execution.
29
+ * Two sub-categories:
30
+ *
31
+ * *Update events* — wrap transient streaming data from lower layers.
32
+ * - Naming: `<Source>StreamUpdateEvent`, payload field: `.event`
33
+ * - Examples: {@link ModelStreamUpdateEvent}, {@link ToolStreamUpdateEvent}
34
+ *
35
+ * *Completion events* — wrap finished data after processing completes.
36
+ * - Naming: descriptive `<Noun>Event`, payload field matches data type
37
+ * (`.result` for results, `.message` for messages, `.contentBlock` for content blocks).
38
+ * - Examples: {@link ContentBlockEvent}, {@link ModelMessageEvent},
39
+ * {@link ToolResultEvent}, {@link AgentResultEvent}
40
+ *
41
+ * ## Field naming conventions
42
+ *
43
+ * | Field | Usage |
44
+ * |----------------|---------------------------------------------|
45
+ * | `agent` | Present on every event (`AgentData`) |
46
+ * | `.event` | Inner event in update wrappers |
47
+ * | `.result` | Finished result object |
48
+ * | `.message` | Message object |
49
+ * | `.contentBlock`| Content block object |
50
+ */
51
+ /**
52
+ * Base class for all events yielded by `agent.stream()`.
53
+ * Carries no hookability — subclasses that should be hookable extend {@link HookableEvent} instead.
4
54
  */
5
- export class HookEvent {
55
+ export class StreamEvent {
56
+ }
57
+ /**
58
+ * Base class for events that can be subscribed to via the hook system.
59
+ * Only events extending this class are dispatched to {@link HookRegistry} callbacks.
60
+ * All current events extend this class. {@link StreamEvent} exists as the base for
61
+ * potential future stream-only events that should not be hookable.
62
+ */
63
+ export class HookableEvent extends StreamEvent {
6
64
  /**
7
65
  * @internal
8
66
  * Check if callbacks should be reversed for this event.
@@ -16,7 +74,7 @@ export class HookEvent {
16
74
  * Event triggered when an agent has finished initialization.
17
75
  * Fired after the agent has been fully constructed and all built-in components have been initialized.
18
76
  */
19
- export class InitializedEvent extends HookEvent {
77
+ export class InitializedEvent extends HookableEvent {
20
78
  type = 'initializedEvent';
21
79
  agent;
22
80
  constructor(data) {
@@ -28,7 +86,7 @@ export class InitializedEvent extends HookEvent {
28
86
  * Event triggered at the beginning of a new agent request.
29
87
  * Fired before any model inference or tool execution occurs.
30
88
  */
31
- export class BeforeInvocationEvent extends HookEvent {
89
+ export class BeforeInvocationEvent extends HookableEvent {
32
90
  type = 'beforeInvocationEvent';
33
91
  agent;
34
92
  constructor(data) {
@@ -41,7 +99,7 @@ export class BeforeInvocationEvent extends HookEvent {
41
99
  * Fired after all processing completes, regardless of success or error.
42
100
  * Uses reverse callback ordering for proper cleanup semantics.
43
101
  */
44
- export class AfterInvocationEvent extends HookEvent {
102
+ export class AfterInvocationEvent extends HookableEvent {
45
103
  type = 'afterInvocationEvent';
46
104
  agent;
47
105
  constructor(data) {
@@ -57,7 +115,7 @@ export class AfterInvocationEvent extends HookEvent {
57
115
  * Fired during the agent loop execution for framework-generated messages.
58
116
  * Does not fire for initial messages from AgentConfig or user input messages.
59
117
  */
60
- export class MessageAddedEvent extends HookEvent {
118
+ export class MessageAddedEvent extends HookableEvent {
61
119
  type = 'messageAddedEvent';
62
120
  agent;
63
121
  message;
@@ -71,7 +129,7 @@ export class MessageAddedEvent extends HookEvent {
71
129
  * Event triggered just before a tool is executed.
72
130
  * Fired after tool lookup but before execution begins.
73
131
  */
74
- export class BeforeToolCallEvent extends HookEvent {
132
+ export class BeforeToolCallEvent extends HookableEvent {
75
133
  type = 'beforeToolCallEvent';
76
134
  agent;
77
135
  toolUse;
@@ -88,7 +146,7 @@ export class BeforeToolCallEvent extends HookEvent {
88
146
  * Fired after tool execution finishes, whether successful or failed.
89
147
  * Uses reverse callback ordering for proper cleanup semantics.
90
148
  */
91
- export class AfterToolCallEvent extends HookEvent {
149
+ export class AfterToolCallEvent extends HookableEvent {
92
150
  type = 'afterToolCallEvent';
93
151
  agent;
94
152
  toolUse;
@@ -118,7 +176,7 @@ export class AfterToolCallEvent extends HookEvent {
118
176
  * Event triggered just before the model is invoked.
119
177
  * Fired before sending messages to the model for inference.
120
178
  */
121
- export class BeforeModelCallEvent extends HookEvent {
179
+ export class BeforeModelCallEvent extends HookableEvent {
122
180
  type = 'beforeModelCallEvent';
123
181
  agent;
124
182
  constructor(data) {
@@ -133,7 +191,7 @@ export class BeforeModelCallEvent extends HookEvent {
133
191
  *
134
192
  * Note: stopData may be undefined if an error occurs before the model completes.
135
193
  */
136
- export class AfterModelCallEvent extends HookEvent {
194
+ export class AfterModelCallEvent extends HookableEvent {
137
195
  type = 'afterModelCallEvent';
138
196
  agent;
139
197
  stopData;
@@ -159,13 +217,81 @@ export class AfterModelCallEvent extends HookEvent {
159
217
  }
160
218
  /**
161
219
  * Event triggered for each streaming event from the model.
162
- * Allows hooks to observe individual streaming events during model inference.
163
- * Provides read-only access to streaming events.
220
+ * Wraps a {@link ModelStreamEvent} (transient streaming delta) during model inference.
221
+ * Completed content blocks are handled separately by {@link ContentBlockEvent}
222
+ * because they represent different granularities: partial deltas vs fully assembled results.
223
+ */
224
+ export class ModelStreamUpdateEvent extends HookableEvent {
225
+ type = 'modelStreamUpdateEvent';
226
+ agent;
227
+ event;
228
+ constructor(data) {
229
+ super();
230
+ this.agent = data.agent;
231
+ this.event = data.event;
232
+ }
233
+ }
234
+ /**
235
+ * Event triggered when a content block completes during model inference.
236
+ * Wraps completed content blocks (TextBlock, ToolUseBlock, ReasoningBlock) from model streaming.
237
+ * This is intentionally separate from {@link ModelStreamUpdateEvent}. The model's
238
+ * `streamAggregated()` yields two kinds of output: {@link ModelStreamEvent} (transient
239
+ * streaming deltas — partial data arriving while the model generates) and
240
+ * {@link ContentBlock} (fully assembled results after all deltas accumulate).
241
+ * These represent different granularities with different semantics, so they are
242
+ * wrapped in distinct event classes rather than combined into a single event.
243
+ */
244
+ export class ContentBlockEvent extends HookableEvent {
245
+ type = 'contentBlockEvent';
246
+ agent;
247
+ contentBlock;
248
+ constructor(data) {
249
+ super();
250
+ this.agent = data.agent;
251
+ this.contentBlock = data.contentBlock;
252
+ }
253
+ }
254
+ /**
255
+ * Event triggered when the model completes a full message.
256
+ * Wraps the assembled message and stop reason after model streaming finishes.
257
+ */
258
+ export class ModelMessageEvent extends HookableEvent {
259
+ type = 'modelMessageEvent';
260
+ agent;
261
+ message;
262
+ stopReason;
263
+ constructor(data) {
264
+ super();
265
+ this.agent = data.agent;
266
+ this.message = data.message;
267
+ this.stopReason = data.stopReason;
268
+ }
269
+ }
270
+ /**
271
+ * Event triggered when a tool execution completes.
272
+ * Wraps the tool result block after a tool finishes execution.
273
+ */
274
+ export class ToolResultEvent extends HookableEvent {
275
+ type = 'toolResultEvent';
276
+ agent;
277
+ result;
278
+ constructor(data) {
279
+ super();
280
+ this.agent = data.agent;
281
+ this.result = data.result;
282
+ }
283
+ }
284
+ /**
285
+ * Event triggered for each streaming progress event from a tool during execution.
286
+ * Wraps a {@link ToolStreamEvent} with agent context, keeping the tool authoring
287
+ * interface unchanged — tools construct `ToolStreamEvent` without knowledge of agents
288
+ * or hooks, and the agent layer wraps them at the boundary.
164
289
  *
165
- * Currently private pending https://github.com/strands-agents/sdk-typescript/issues/288
290
+ * Consistent with {@link ModelStreamUpdateEvent} which wraps model streaming events
291
+ * the same way.
166
292
  */
167
- export class ModelStreamEventHook extends HookEvent {
168
- type = 'modelStreamEventHook';
293
+ export class ToolStreamUpdateEvent extends HookableEvent {
294
+ type = 'toolStreamUpdateEvent';
169
295
  agent;
170
296
  event;
171
297
  constructor(data) {
@@ -174,11 +300,25 @@ export class ModelStreamEventHook extends HookEvent {
174
300
  this.event = data.event;
175
301
  }
176
302
  }
303
+ /**
304
+ * Event triggered as the final event in the agent stream.
305
+ * Wraps the agent result containing the stop reason and last message.
306
+ */
307
+ export class AgentResultEvent extends HookableEvent {
308
+ type = 'agentResultEvent';
309
+ agent;
310
+ result;
311
+ constructor(data) {
312
+ super();
313
+ this.agent = data.agent;
314
+ this.result = data.result;
315
+ }
316
+ }
177
317
  /**
178
318
  * Event triggered before executing tools.
179
319
  * Fired when the model returns tool use blocks that need to be executed.
180
320
  */
181
- export class BeforeToolsEvent extends HookEvent {
321
+ export class BeforeToolsEvent extends HookableEvent {
182
322
  type = 'beforeToolsEvent';
183
323
  agent;
184
324
  message;
@@ -193,7 +333,7 @@ export class BeforeToolsEvent extends HookEvent {
193
333
  * Fired after tool results are collected and ready to be added to conversation.
194
334
  * Uses reverse callback ordering for proper cleanup semantics.
195
335
  */
196
- export class AfterToolsEvent extends HookEvent {
336
+ export class AfterToolsEvent extends HookableEvent {
197
337
  type = 'afterToolsEvent';
198
338
  agent;
199
339
  message;
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/hooks/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/hooks/events.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,19 @@
1
1
  /**
2
2
  * Hooks module for event-driven extensibility.
3
3
  *
4
- * Hooks provide a composable mechanism for extending agent functionality
5
- * by subscribing to events throughout the agent lifecycle.
4
+ * This module has two concerns with distinct naming:
5
+ *
6
+ * - **Events** (`StreamEvent` and subclasses) — the data objects yielded by `agent.stream()`.
7
+ * Named `Stream*` because they are members of the agent stream.
8
+ * All current events extend {@link HookableEvent}, making them subscribable via hook callbacks.
9
+ * See {@link StreamEvent} and `events.ts` for the full taxonomy.
10
+ *
11
+ * - **Hook infrastructure** (`HookProvider`, `HookCallback`, `HookRegistry`, `HookCleanup`) —
12
+ * the subscription mechanism that lets providers register callbacks for {@link HookableEvent} types.
13
+ * Named `Hook*` because they describe the hooking/subscription pattern, not the events themselves.
6
14
  */
7
- export { HookEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, ModelStreamEventHook, BeforeToolsEvent, AfterToolsEvent, } from './events.js';
15
+ export { StreamEvent, HookableEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, ModelStreamUpdateEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, BeforeToolsEvent, AfterToolsEvent, } from './events.js';
8
16
  export type { ModelStopData as ModelStopResponse } from './events.js';
9
17
  export { HookRegistryImplementation as HookRegistry } from './registry.js';
10
- export type { HookCallback, HookProvider, HookEventConstructor, HookCleanup } from './types.js';
18
+ export type { HookCallback, HookProvider, HookableEventConstructor, HookCleanup } from './types.js';
11
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAA;AAGpB,YAAY,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGrE,OAAO,EAAE,0BAA0B,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA;AAG1E,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAA;AAGpB,YAAY,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGrE,OAAO,EAAE,0BAA0B,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA;AAG1E,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA"}
@@ -1,11 +1,19 @@
1
1
  /**
2
2
  * Hooks module for event-driven extensibility.
3
3
  *
4
- * Hooks provide a composable mechanism for extending agent functionality
5
- * by subscribing to events throughout the agent lifecycle.
4
+ * This module has two concerns with distinct naming:
5
+ *
6
+ * - **Events** (`StreamEvent` and subclasses) — the data objects yielded by `agent.stream()`.
7
+ * Named `Stream*` because they are members of the agent stream.
8
+ * All current events extend {@link HookableEvent}, making them subscribable via hook callbacks.
9
+ * See {@link StreamEvent} and `events.ts` for the full taxonomy.
10
+ *
11
+ * - **Hook infrastructure** (`HookProvider`, `HookCallback`, `HookRegistry`, `HookCleanup`) —
12
+ * the subscription mechanism that lets providers register callbacks for {@link HookableEvent} types.
13
+ * Named `Hook*` because they describe the hooking/subscription pattern, not the events themselves.
6
14
  */
7
15
  // Event classes
8
- export { HookEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, ModelStreamEventHook, BeforeToolsEvent, AfterToolsEvent, } from './events.js';
16
+ export { StreamEvent, HookableEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, ModelStreamUpdateEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, BeforeToolsEvent, AfterToolsEvent, } from './events.js';
9
17
  // Registry
10
18
  export { HookRegistryImplementation as HookRegistry } from './registry.js';
11
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gBAAgB;AAChB,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAA;AAKpB,WAAW;AACX,OAAO,EAAE,0BAA0B,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,gBAAgB;AAChB,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAA;AAKpB,WAAW;AACX,OAAO,EAAE,0BAA0B,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA"}
@@ -1,5 +1,5 @@
1
- import type { HookEvent } from './events.js';
2
- import type { HookCallback, HookProvider, HookEventConstructor, HookCleanup } from './types.js';
1
+ import type { HookableEvent } from './events.js';
2
+ import type { HookCallback, HookProvider, HookableEventConstructor, HookCleanup } from './types.js';
3
3
  /**
4
4
  * Interface for hook registry operations.
5
5
  * Enables registration of hook callbacks for event-driven extensibility.
@@ -12,7 +12,7 @@ export interface HookRegistry {
12
12
  * @param callback - The callback function to invoke when the event occurs
13
13
  * @returns Cleanup function that removes the callback when invoked
14
14
  */
15
- addCallback<T extends HookEvent>(eventType: HookEventConstructor<T>, callback: HookCallback<T>): HookCleanup;
15
+ addCallback<T extends HookableEvent>(eventType: HookableEventConstructor<T>, callback: HookCallback<T>): HookCleanup;
16
16
  /**
17
17
  * Register all callbacks from a hook provider.
18
18
  *
@@ -41,7 +41,7 @@ export declare class HookRegistryImplementation implements HookRegistry {
41
41
  * @param callback - The callback function to invoke when the event occurs
42
42
  * @returns Cleanup function that removes the callback when invoked
43
43
  */
44
- addCallback<T extends HookEvent>(eventType: HookEventConstructor<T>, callback: HookCallback<T>): HookCleanup;
44
+ addCallback<T extends HookableEvent>(eventType: HookableEventConstructor<T>, callback: HookCallback<T>): HookCleanup;
45
45
  /**
46
46
  * Register all callbacks from a hook provider.
47
47
  *
@@ -67,7 +67,7 @@ export declare class HookRegistryImplementation implements HookRegistry {
67
67
  * @param event - The event to invoke callbacks for
68
68
  * @returns The event after all callbacks have been invoked
69
69
  */
70
- invokeCallbacks<T extends HookEvent>(event: T): Promise<T>;
70
+ invokeCallbacks<T extends HookableEvent>(event: T): Promise<T>;
71
71
  /**
72
72
  * Get callbacks for a specific event with proper ordering.
73
73
  * Returns callbacks in reverse order if event should reverse callbacks.
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/hooks/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAU/F;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;IAE5G;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;IAErC;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;CACzC;AAED;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,YAAY;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4C;IACvE,OAAO,CAAC,gBAAgB,CAA0B;;IAOlD;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAgB5G;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAcrC;;;;OAIG;IACH,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI;IAM5C;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAWxC;;;;;;OAMG;IACG,eAAe,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAQhE;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;CAKxB"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/hooks/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAUnG;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;IAEpH;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;IAErC;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;CACzC;AAED;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,YAAY;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgD;IAC3E,OAAO,CAAC,gBAAgB,CAA0B;;IAOlD;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW;IAgBpH;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAcrC;;;;OAIG;IACH,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI;IAM5C;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAWxC;;;;;;OAMG;IACG,eAAe,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAQpE;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;CAKxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/hooks/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/hooks/registry.ts"],"names":[],"mappings":"AAwCA;;;GAGG;AACH,MAAM,OAAO,0BAA0B;IACpB,UAAU,CAAgD;IACnE,gBAAgB,CAA0B;IAElD;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;QAC3B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAA;IACnC,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAA0B,SAAsC,EAAE,QAAyB;QACpG,MAAM,KAAK,GAAkB,EAAE,QAAQ,EAAE,QAAuC,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACjH,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;QACtD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAEzC,OAAO,GAAG,EAAE;YACV,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAChD,IAAI,CAAC,SAAS;gBAAE,OAAM;YACtB,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAsB;QAC5B,0GAA0G;QAC1G,0GAA0G;QAC1G,6GAA6G;QAC7G,mEAAmE;QAEnE,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAA;QAChC,IAAI,CAAC;YACH,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAA;QACnC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,SAAyB;QACnC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,QAAsB;QAC/B,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/D,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAA;YACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACnC,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;gBAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CAA0B,KAAQ;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAC7C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;;OAMG;IACK,eAAe,CAA0B,KAAQ;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,WAA0C,CAAC,IAAI,EAAE,CAAA;QAC3F,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACxD,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAsB,CAAA;IACtG,CAAC;CACF"}
@@ -1,11 +1,11 @@
1
- import type { HookEvent } from './events.js';
1
+ import type { HookableEvent } from './events.js';
2
2
  import type { HookRegistry } from './registry.js';
3
3
  /**
4
- * Type for a constructor function that creates HookEvent instances.
4
+ * Type for a constructor function that creates HookableEvent instances.
5
5
  */
6
- export type HookEventConstructor<T extends HookEvent = HookEvent> = new (...args: any[]) => T;
6
+ export type HookableEventConstructor<T extends HookableEvent = HookableEvent> = new (...args: any[]) => T;
7
7
  /**
8
- * Type for callback functions that handle hook events.
8
+ * Type for callback functions that handle hookable events.
9
9
  * Callbacks can be synchronous or asynchronous.
10
10
  *
11
11
  * @example
@@ -15,7 +15,7 @@ export type HookEventConstructor<T extends HookEvent = HookEvent> = new (...args
15
15
  * }
16
16
  * ```
17
17
  */
18
- export type HookCallback<T extends HookEvent> = (event: T) => void | Promise<void>;
18
+ export type HookCallback<T extends HookableEvent> = (event: T) => void | Promise<void>;
19
19
  /**
20
20
  * Function that removes a previously registered hook callback.
21
21
  * Safe to call multiple times (idempotent).
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD;;GAEG;AAEH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAE7F;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAElF;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAA;AAEpC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;CAChD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD;;GAEG;AAEH,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAEzG;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEtF;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAA;AAEpC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;CAChD"}
@@ -5,7 +5,7 @@
5
5
  * public APIs and functionality.
6
6
  */
7
7
  export { Agent } from './agent/agent.js';
8
- export type { AgentState } from './agent/state.js';
8
+ export { AppState } from './app-state.js';
9
9
  export type { AgentData } from './types/agent.js';
10
10
  export { AgentResult } from './types/agent.js';
11
11
  export type { AgentConfig, ToolList } from './agent/agent.js';
@@ -21,16 +21,19 @@ export { Tool } from './tools/tool.js';
21
21
  export { FunctionTool } from './tools/function-tool.js';
22
22
  export { tool } from './tools/zod-tool.js';
23
23
  export type { Usage, Metrics, ModelMessageStartEventData, ModelMessageStartEvent, ToolUseStart, ContentBlockStart, ModelContentBlockStartEventData, ModelContentBlockStartEvent, TextDelta, ToolUseInputDelta, ReasoningContentDelta, ContentBlockDelta, ModelContentBlockDeltaEventData, ModelContentBlockDeltaEvent, ModelContentBlockStopEvent, ModelMessageStopEventData, ModelMessageStopEvent, ModelMetadataEventData, ModelMetadataEvent, ModelStreamEvent, } from './models/streaming.js';
24
+ export { isModelStreamEvent } from './models/streaming.js';
24
25
  export type { BaseModelConfig, StreamOptions } from './models/model.js';
25
26
  export { Model } from './models/model.js';
26
27
  export { BedrockModel as BedrockModel } from './models/bedrock.js';
27
28
  export type { BedrockModelConfig, BedrockModelOptions } from './models/bedrock.js';
28
29
  export type { AgentStreamEvent } from './types/agent.js';
29
- export { HookRegistry, HookEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, BeforeToolsEvent, AfterToolsEvent, } from './hooks/index.js';
30
- export type { HookCallback, HookProvider, HookEventConstructor, ModelStopResponse } from './hooks/index.js';
30
+ export { HookRegistry, StreamEvent, HookableEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, BeforeToolsEvent, AfterToolsEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, ModelStreamUpdateEvent, } from './hooks/index.js';
31
+ export type { HookCallback, HookProvider, HookableEventConstructor, ModelStopResponse } from './hooks/index.js';
31
32
  export { NullConversationManager } from './conversation-manager/null-conversation-manager.js';
32
33
  export { SlidingWindowConversationManager, type SlidingWindowConversationManagerConfig, } from './conversation-manager/sliding-window-conversation-manager.js';
33
34
  export { configureLogging } from './logging/logger.js';
34
35
  export type { Logger } from './logging/types.js';
35
36
  export { type McpClientConfig, McpClient } from './mcp.js';
37
+ export { StructuredOutputException } from './structured-output/exceptions.js';
38
+ export * as telemetry from './telemetry/index.js';
36
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAGxC,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAGlD,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAG7D,OAAO,EACL,UAAU,EACV,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,aAAa,CAAA;AAGpB,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAG5D,YAAY,EACV,IAAI,EACJ,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACL,SAAS,EACT,YAAY,EACZ,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGpF,YAAY,EACV,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,kBAAkB,CAAA;AAGzB,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAGvF,YAAY,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGvD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAG1C,YAAY,EACV,KAAK,EACL,OAAO,EACP,0BAA0B,EAC1B,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACjB,+BAA+B,EAC/B,2BAA2B,EAC3B,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAA;AAG9B,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEvE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGzC,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAGlF,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGxD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,GAEhB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAG3G,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,EACL,gCAAgC,EAChC,KAAK,sCAAsC,GAC5C,MAAM,+DAA+D,CAAA;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,YAAY,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAGhD,OAAO,EAAE,KAAK,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -6,6 +6,8 @@
6
6
  */
7
7
  // Agent class
8
8
  export { Agent } from './agent/agent.js';
9
+ // App state
10
+ export { AppState } from './app-state.js';
9
11
  export { AgentResult } from './types/agent.js';
10
12
  // Error types
11
13
  export { ModelError, ContextWindowOverflowError, MaxTokensError, JsonValidationError, ConcurrentInvocationError, ModelThrottledError, } from './errors.js';
@@ -19,13 +21,12 @@ export { Tool } from './tools/tool.js';
19
21
  export { FunctionTool } from './tools/function-tool.js';
20
22
  // Tool factory function
21
23
  export { tool } from './tools/zod-tool.js';
24
+ export { isModelStreamEvent } from './models/streaming.js';
22
25
  export { Model } from './models/model.js';
23
26
  // Bedrock model provider
24
27
  export { BedrockModel as BedrockModel } from './models/bedrock.js';
25
28
  // Hooks system
26
- export { HookRegistry, HookEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, BeforeToolsEvent, AfterToolsEvent,
27
- // ModelStreamEventHook # Disabled for now https://github.com/strands-agents/sdk-typescript/issues/288
28
- } from './hooks/index.js';
29
+ export { HookRegistry, StreamEvent, HookableEvent, InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, BeforeToolsEvent, AfterToolsEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, ToolStreamUpdateEvent, AgentResultEvent, ModelStreamUpdateEvent, } from './hooks/index.js';
29
30
  // Conversation Manager
30
31
  export { NullConversationManager } from './conversation-manager/null-conversation-manager.js';
31
32
  export { SlidingWindowConversationManager, } from './conversation-manager/sliding-window-conversation-manager.js';
@@ -33,4 +34,8 @@ export { SlidingWindowConversationManager, } from './conversation-manager/slidin
33
34
  export { configureLogging } from './logging/logger.js';
34
35
  // MCP Client types and implementations
35
36
  export { McpClient } from './mcp.js';
37
+ // Structured output
38
+ export { StructuredOutputException } from './structured-output/exceptions.js';
39
+ // Telemetry
40
+ export * as telemetry from './telemetry/index.js';
36
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAOxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,cAAc;AACd,OAAO,EACL,UAAU,EACV,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,aAAa,CAAA;AA6BpB,kBAAkB;AAClB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAE5B,gBAAgB;AAChB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAiCpF,kBAAkB;AAClB,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,8BAA8B;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,wBAAwB;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AA6B1C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,yBAAyB;AACzB,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAMlE,eAAe;AACf,OAAO,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe;AACf,sGAAsG;EACvG,MAAM,kBAAkB,CAAA;AAGzB,uBAAuB;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,EACL,gCAAgC,GAEjC,MAAM,+DAA+D,CAAA;AAEtE,UAAU;AACV,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,uCAAuC;AACvC,OAAO,EAAwB,SAAS,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAIzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,cAAc;AACd,OAAO,EACL,UAAU,EACV,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,aAAa,CAAA;AA6BpB,kBAAkB;AAClB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAE5B,gBAAgB;AAChB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAiCpF,kBAAkB;AAClB,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,8BAA8B;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,wBAAwB;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAyB1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAK1D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,yBAAyB;AACzB,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAMlE,eAAe;AACf,OAAO,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AAGzB,uBAAuB;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,EACL,gCAAgC,GAEjC,MAAM,+DAA+D,CAAA;AAEtE,UAAU;AACV,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,uCAAuC;AACvC,OAAO,EAAwB,SAAS,EAAE,MAAM,UAAU,CAAA;AAE1D,oBAAoB;AACpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAE7E,YAAY;AACZ,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA"}
package/dist/src/mcp.d.ts CHANGED
@@ -10,6 +10,8 @@ export interface RuntimeConfig {
10
10
  /** Arguments for configuring an MCP Client. */
11
11
  export type McpClientConfig = RuntimeConfig & {
12
12
  transport: Transport;
13
+ /** Disable OpenTelemetry MCP instrumentation. */
14
+ disableMcpInstrumentation?: boolean;
13
15
  };
14
16
  /** MCP Client for interacting with Model Context Protocol servers. */
15
17
  export declare class McpClient {
@@ -18,6 +20,7 @@ export declare class McpClient {
18
20
  private _transport;
19
21
  private _connected;
20
22
  private _client;
23
+ private _disableMcpInstrumentation;
21
24
  constructor(args: McpClientConfig);
22
25
  get client(): Client;
23
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAE9E,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C,8CAA8C;AAC9C,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,+CAA+C;AAC/C,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAAA;AAEtE,sEAAsE;AACtE,qBAAa,SAAS;IACpB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,UAAU,CAAW;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAQ;gBAEX,IAAI,EAAE,eAAe;IAWjC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACU,OAAO,CAAC,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/D;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxC;;;;OAIG;IACU,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAgB5C;;;;;OAKG;IACU,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;CAwB1E"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAG9E,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAG7C,8CAA8C;AAC9C,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,+CAA+C;AAC/C,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,SAAS,EAAE,SAAS,CAAA;IAEpB,iDAAiD;IACjD,yBAAyB,CAAC,EAAE,OAAO,CAAA;CACpC,CAAA;AAED,sEAAsE;AACtE,qBAAa,SAAS;IACpB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,UAAU,CAAW;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,0BAA0B,CAAS;gBAE/B,IAAI,EAAE,eAAe;IAajC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACU,OAAO,CAAC,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/D;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxC;;;;OAIG;IACU,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAgB5C;;;;;OAKG;IACU,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;CA2B1E"}
package/dist/src/mcp.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
2
  import { takeResult } from '@modelcontextprotocol/sdk/shared/responseMessage.js';
3
+ import { context, propagation, trace } from '@opentelemetry/api';
3
4
  import { McpTool } from './tools/mcp-tool.js';
5
+ import { logger } from './logging/index.js';
4
6
  /** MCP Client for interacting with Model Context Protocol servers. */
5
7
  export class McpClient {
6
8
  _clientName;
@@ -8,6 +10,7 @@ export class McpClient {
8
10
  _transport;
9
11
  _connected;
10
12
  _client;
13
+ _disableMcpInstrumentation;
11
14
  constructor(args) {
12
15
  this._clientName = args.applicationName || 'strands-agents-ts-sdk';
13
16
  this._clientVersion = args.applicationVersion || '0.0.1';
@@ -17,6 +20,7 @@ export class McpClient {
17
20
  name: this._clientName,
18
21
  version: this._clientVersion,
19
22
  });
23
+ this._disableMcpInstrumentation = args.disableMcpInstrumentation ?? false;
20
24
  }
21
25
  get client() {
22
26
  return this._client;
@@ -82,15 +86,48 @@ export class McpClient {
82
86
  if (typeof args !== 'object' || Array.isArray(args)) {
83
87
  throw new Error(`MCP Protocol Error: Tool arguments must be a JSON Object (named parameters). Received: ${Array.isArray(args) ? 'Array' : typeof args}`);
84
88
  }
89
+ // Inject OpenTelemetry trace context into tool arguments for distributed tracing
90
+ const enhancedArgs = this._disableMcpInstrumentation ? args : injectTraceContext(args);
85
91
  // Using callToolStream which automatically handles both:
86
92
  // - Regular (non-task) tools: returns result immediately
87
93
  // - Task-augmented tools: handles taskCreated -> taskStatus -> result flow
88
94
  const stream = this._client.experimental.tasks.callToolStream({
89
95
  name: tool.name,
90
- arguments: args,
96
+ arguments: enhancedArgs,
91
97
  });
92
98
  const result = await takeResult(stream);
93
99
  return result;
94
100
  }
95
101
  }
102
+ /**
103
+ * Injects OpenTelemetry trace context into MCP tool call arguments.
104
+ * Returns the args with a `_meta` field containing W3C traceparent headers.
105
+ * If no active span exists or injection fails, returns the original args unchanged.
106
+ *
107
+ * @param args - The tool call arguments (must be a non-null object)
108
+ * @returns The args with trace context injected, or the original args on failure
109
+ */
110
+ function injectTraceContext(args) {
111
+ try {
112
+ const currentContext = context.active();
113
+ const currentSpan = trace.getSpan(currentContext);
114
+ if (!currentSpan || !currentSpan.spanContext().traceId) {
115
+ return args;
116
+ }
117
+ const carrier = {};
118
+ propagation.inject(currentContext, carrier);
119
+ const existingMeta = args._meta;
120
+ const mergedMeta = existingMeta && typeof existingMeta === 'object' && !Array.isArray(existingMeta)
121
+ ? { ...existingMeta, ...carrier }
122
+ : carrier;
123
+ return {
124
+ ...args,
125
+ _meta: mergedMeta,
126
+ };
127
+ }
128
+ catch (error) {
129
+ logger.warn(`error=<${error}> | failed to inject trace context into mcp tool call args`);
130
+ return args;
131
+ }
132
+ }
96
133
  //# sourceMappingURL=mcp.js.map