@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
@@ -52,13 +52,22 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
52
52
  });
53
53
  import { AgentResult, BedrockModel, contentBlockFromData, McpClient, Message, TextBlock, ToolResultBlock, ToolUseBlock, } from '../index.js';
54
54
  import { systemPromptFromData } from '../types/messages.js';
55
- import { normalizeError, ConcurrentInvocationError } from '../errors.js';
55
+ import { normalizeError, ConcurrentInvocationError, MaxTokensError } from '../errors.js';
56
+ import { Model } from '../models/model.js';
57
+ import { isModelStreamEvent } from '../models/streaming.js';
56
58
  import { ToolRegistry } from '../registry/tool-registry.js';
57
- import { AgentState } from './state.js';
59
+ import { AppState } from '../app-state.js';
58
60
  import { AgentPrinter, getDefaultAppender } from './printer.js';
59
61
  import { SlidingWindowConversationManager } from '../conversation-manager/sliding-window-conversation-manager.js';
60
62
  import { HookRegistryImplementation } from '../hooks/registry.js';
61
- import { HookEvent, InitializedEvent, AfterInvocationEvent, AfterModelCallEvent, AfterToolCallEvent, AfterToolsEvent, BeforeInvocationEvent, BeforeModelCallEvent, BeforeToolCallEvent, BeforeToolsEvent, MessageAddedEvent, ModelStreamEventHook, } from '../hooks/events.js';
63
+ import { InitializedEvent, AfterInvocationEvent, AfterModelCallEvent, AfterToolCallEvent, AfterToolsEvent, BeforeInvocationEvent, BeforeModelCallEvent, BeforeToolCallEvent, BeforeToolsEvent, HookableEvent, MessageAddedEvent, ModelStreamUpdateEvent, ContentBlockEvent, ModelMessageEvent, ToolResultEvent, AgentResultEvent, ToolStreamUpdateEvent, } from '../hooks/events.js';
64
+ import { createStructuredOutputContext } from '../structured-output/context.js';
65
+ import { StructuredOutputException } from '../structured-output/exceptions.js';
66
+ import { Tracer } from '../telemetry/tracer.js';
67
+ /** Fallback name used when no agent name is provided in the config. */
68
+ const DEFAULT_AGENT_NAME = 'Strands Agent';
69
+ /** Fallback agent ID used when no agent ID is provided in the config. */
70
+ const DEFAULT_AGENT_ID = 'default';
62
71
  /**
63
72
  * Orchestrates the interaction between a model, a set of tools, and MCP clients.
64
73
  * The Agent is responsible for managing the lifecycle of tools and clients
@@ -70,7 +79,7 @@ export class Agent {
70
79
  */
71
80
  messages;
72
81
  /**
73
- * Agent state storage accessible to tools and application logic.
82
+ * App state storage accessible to tools and application logic.
74
83
  * State is not passed to the model during inference.
75
84
  */
76
85
  state;
@@ -91,11 +100,24 @@ export class Agent {
91
100
  * The system prompt to pass to the model provider.
92
101
  */
93
102
  systemPrompt;
103
+ /**
104
+ * The name of the agent.
105
+ */
106
+ name;
107
+ /**
108
+ * The unique identifier of the agent instance.
109
+ */
110
+ agentId;
94
111
  _toolRegistry;
95
112
  _mcpClients;
96
113
  _initialized;
97
114
  _isInvoking = false;
98
115
  _printer;
116
+ _structuredOutputSchema;
117
+ /** Tracer instance for creating and managing OpenTelemetry spans. */
118
+ _tracer;
119
+ /** Running total of token usage across all model invocations in the current invocation. */
120
+ _accumulatedTokenUsage = Agent._createEmptyUsage();
99
121
  /**
100
122
  * Creates an instance of the Agent.
101
123
  * @param config - The configuration for the agent.
@@ -103,8 +125,10 @@ export class Agent {
103
125
  constructor(config) {
104
126
  // Initialize public fields
105
127
  this.messages = (config?.messages ?? []).map((msg) => (msg instanceof Message ? msg : Message.fromMessageData(msg)));
106
- this.state = new AgentState(config?.state);
128
+ this.state = new AppState(config?.state);
107
129
  this.conversationManager = config?.conversationManager ?? new SlidingWindowConversationManager({ windowSize: 40 });
130
+ this.name = config?.name ?? DEFAULT_AGENT_NAME;
131
+ this.agentId = config?.agentId ?? DEFAULT_AGENT_ID;
108
132
  // Initialize hooks and register conversation manager hooks
109
133
  this.hooks = new HookRegistryImplementation();
110
134
  this.hooks.addHook(this.conversationManager);
@@ -126,6 +150,10 @@ export class Agent {
126
150
  if (printer) {
127
151
  this._printer = new AgentPrinter(getDefaultAppender());
128
152
  }
153
+ // Store structured output schema
154
+ this._structuredOutputSchema = config?.structuredOutputSchema;
155
+ // Initialize tracer - OTEL returns no-op tracer if not configured
156
+ this._tracer = new Tracer(config?.traceAttributes);
129
157
  this._initialized = false;
130
158
  }
131
159
  async initialize() {
@@ -174,6 +202,7 @@ export class Agent {
174
202
  * streaming events.
175
203
  *
176
204
  * @param args - Arguments for invoking the agent
205
+ * @param options - Optional per-invocation options
177
206
  * @returns Promise that resolves to the final AgentResult
178
207
  *
179
208
  * @example
@@ -183,8 +212,8 @@ export class Agent {
183
212
  * console.log(result.lastMessage) // Agent's response
184
213
  * ```
185
214
  */
186
- async invoke(args) {
187
- const gen = this.stream(args);
215
+ async invoke(args, options) {
216
+ const gen = this.stream(args, options);
188
217
  let result = await gen.next();
189
218
  while (!result.done) {
190
219
  result = await gen.next();
@@ -208,6 +237,7 @@ export class Agent {
208
237
  * with valid toolResponses
209
238
  *
210
239
  * @param args - Arguments for invoking the agent
240
+ * @param options - Optional per-invocation options
211
241
  * @returns Async generator that yields AgentStreamEvent objects and returns AgentResult
212
242
  *
213
243
  * @example
@@ -220,18 +250,19 @@ export class Agent {
220
250
  * // Messages array is mutated in place and contains the full conversation
221
251
  * ```
222
252
  */
223
- async *stream(args) {
253
+ async *stream(args, options) {
224
254
  const env_1 = { stack: [], error: void 0, hasError: false };
225
255
  try {
226
256
  const _lock = __addDisposableResource(env_1, this.acquireLock(), false);
227
257
  await this.initialize();
228
258
  // Delegate to _stream and process events through printer and hooks
229
- const streamGenerator = this._stream(args);
259
+ const streamGenerator = this._stream(args, options);
230
260
  let result = await streamGenerator.next();
231
261
  while (!result.done) {
232
262
  const event = result.value;
233
- // Invoke hook callbacks for Hook Events (except MessageAddedEvent which invokes in _appendMessage)
234
- if (event instanceof HookEvent && !(event instanceof MessageAddedEvent)) {
263
+ // Invoke hook callbacks for hookable events (all current events are hookable;
264
+ // the guard exists for future StreamEvent subclasses that may not be)
265
+ if (event instanceof HookableEvent) {
235
266
  await this.hooks.invokeCallbacks(event);
236
267
  }
237
268
  this._printer?.processEvent(event);
@@ -239,7 +270,10 @@ export class Agent {
239
270
  result = await streamGenerator.next();
240
271
  }
241
272
  // Yield final result as last event
242
- yield result.value;
273
+ const agentResultEvent = new AgentResultEvent({ agent: this, result: result.value });
274
+ await this.hooks.invokeCallbacks(agentResultEvent);
275
+ this._printer?.processEvent(agentResultEvent);
276
+ yield agentResultEvent;
243
277
  return result.value;
244
278
  }
245
279
  catch (e_1) {
@@ -255,36 +289,121 @@ export class Agent {
255
289
  * Separated to centralize printer event processing in the public stream method.
256
290
  *
257
291
  * @param args - Arguments for invoking the agent
292
+ * @param options - Optional per-invocation options
258
293
  * @returns Async generator that yields AgentStreamEvent objects and returns AgentResult
259
294
  */
260
- async *_stream(args) {
295
+ async *_stream(args, options) {
261
296
  let currentArgs = args;
262
- // Emit event before the loop starts
297
+ let forcedToolChoice = undefined;
298
+ let result;
299
+ // Create structured output context (uses null object pattern when no schema)
300
+ const schema = options?.structuredOutputSchema ?? this._structuredOutputSchema;
301
+ const context = createStructuredOutputContext(schema);
302
+ // Emit event before the try block
263
303
  yield new BeforeInvocationEvent({ agent: this });
304
+ // Normalize input to get the user messages for telemetry
305
+ const inputMessages = this._normalizeInput(args);
306
+ // Start agent trace span
307
+ this._accumulatedTokenUsage = Agent._createEmptyUsage();
308
+ const agentModelId = this.model.modelId;
309
+ const agentSpanOptions = {
310
+ messages: inputMessages,
311
+ agentName: this.name,
312
+ agentId: this.agentId,
313
+ tools: this.tools,
314
+ };
315
+ if (agentModelId)
316
+ agentSpanOptions.modelId = agentModelId;
317
+ if (this.systemPrompt)
318
+ agentSpanOptions.systemPrompt = this.systemPrompt;
319
+ const agentSpan = this._tracer.startAgentSpan(agentSpanOptions);
320
+ let caughtError;
264
321
  try {
322
+ // Register structured output tool
323
+ context.registerTool(this._toolRegistry);
265
324
  // Main agent loop - continues until model stops without requesting tools
266
- while (true) {
267
- const modelResult = yield* this.invokeModel(currentArgs);
268
- currentArgs = undefined; // Only pass args on first invocation
269
- if (modelResult.stopReason !== 'toolUse') {
270
- // Loop terminates - no tool use requested
271
- // Add assistant message now that we're returning
272
- yield await this._appendMessage(modelResult.message);
273
- return new AgentResult({
274
- stopReason: modelResult.stopReason,
275
- lastMessage: modelResult.message,
276
- });
325
+ for (let cycleCount = 1;; cycleCount++) {
326
+ // Create agent loop cycle span within agent span context
327
+ const cycleSpan = this._tracer.startAgentLoopSpan({
328
+ cycleId: `cycle-${cycleCount}`,
329
+ messages: this.messages,
330
+ });
331
+ try {
332
+ const modelResult = yield* this.invokeModel(currentArgs, forcedToolChoice);
333
+ currentArgs = undefined; // Only pass args on first invocation
334
+ const wasForced = forcedToolChoice !== undefined;
335
+ forcedToolChoice = undefined; // Clear after use
336
+ if (modelResult.stopReason !== 'toolUse') {
337
+ // Special handling for maxTokens - always fail regardless of whether we have structured output
338
+ if (modelResult.stopReason === 'maxTokens') {
339
+ throw new MaxTokensError('The model reached maxTokens before producing structured output. Consider increasing maxTokens in your model configuration.', modelResult.message);
340
+ }
341
+ // Check if we need to force structured output tool
342
+ if (!context.hasResult()) {
343
+ if (wasForced) {
344
+ // Already tried forcing - LLM refused to use the tool
345
+ throw new StructuredOutputException('The model failed to invoke the structured output tool even after it was forced.');
346
+ }
347
+ // Force the model to use the structured output tool
348
+ const toolName = context.getToolName();
349
+ forcedToolChoice = { tool: { name: toolName } };
350
+ this._tracer.endAgentLoopSpan(cycleSpan);
351
+ continue;
352
+ }
353
+ // Loop terminates - no tool use requested (and structured output satisfied if needed)
354
+ yield this._appendMessage(modelResult.message);
355
+ // End cycle span
356
+ this._tracer.endAgentLoopSpan(cycleSpan);
357
+ const structuredOutput = context.getResult();
358
+ result = new AgentResult({
359
+ stopReason: modelResult.stopReason,
360
+ lastMessage: modelResult.message,
361
+ structuredOutput,
362
+ });
363
+ return result;
364
+ }
365
+ // Execute tools sequentially
366
+ const toolResultMessage = yield* this.executeTools(modelResult.message, this._toolRegistry);
367
+ /**
368
+ * Deferred append: both messages are added AFTER tool execution completes.
369
+ * This keeps agent.messages in a valid, reinvokable state at all times:
370
+ *
371
+ * - If interrupted during tool execution, messages has no dangling toolUse
372
+ * without a matching toolResult, so the agent can be reinvoked cleanly.
373
+ * - The Python SDK appends the assistant message BEFORE tool execution,
374
+ * requiring recovery logic (generate_missing_tool_result_content) on
375
+ * interrupts. We avoid that by deferring.
376
+ * - Trade-off: MessageAddedEvent for the assistant message fires after tools
377
+ * complete (not before as in Python), and agent.messages is incomplete
378
+ * during tool execution. Events like BeforeToolsEvent.message and
379
+ * BeforeToolCallEvent.toolUse provide the data directly.
380
+ */
381
+ yield this._appendMessage(modelResult.message);
382
+ yield this._appendMessage(toolResultMessage);
383
+ // End cycle span
384
+ this._tracer.endAgentLoopSpan(cycleSpan);
385
+ // Continue loop
386
+ }
387
+ catch (error) {
388
+ // End cycle span with error
389
+ this._tracer.endAgentLoopSpan(cycleSpan, { error: error });
390
+ throw error;
277
391
  }
278
- // Execute tools sequentially
279
- const toolResultMessage = yield* this.executeTools(modelResult.message, this._toolRegistry);
280
- // Add assistant message with tool uses right before adding tool results
281
- // This ensures we don't have dangling tool use messages if tool execution fails
282
- yield await this._appendMessage(modelResult.message);
283
- yield await this._appendMessage(toolResultMessage);
284
- // Continue loop
285
392
  }
286
393
  }
394
+ catch (error) {
395
+ caughtError = error;
396
+ throw error;
397
+ }
287
398
  finally {
399
+ this._tracer.endAgentSpan(agentSpan, {
400
+ ...(caughtError && { error: caughtError }),
401
+ ...(result?.lastMessage && { response: result.lastMessage }),
402
+ accumulatedUsage: this._accumulatedTokenUsage,
403
+ ...(result?.stopReason && { stopReason: result.stopReason }),
404
+ });
405
+ // Cleanup structured output context
406
+ context.cleanup(this._toolRegistry);
288
407
  // Always emit final event
289
408
  yield new AfterInvocationEvent({ agent: this });
290
409
  }
@@ -348,22 +467,40 @@ export class Agent {
348
467
  * Invokes the model provider and streams all events.
349
468
  *
350
469
  * @param args - Optional arguments for invoking the model
470
+ * @param toolChoice - Optional tool choice to force specific tool usage
351
471
  * @returns Object containing the assistant message and stop reason
352
472
  */
353
- async *invokeModel(args) {
473
+ async *invokeModel(args, forcedToolChoice) {
354
474
  // Normalize input and append messages to conversation
355
475
  const messagesToAppend = this._normalizeInput(args);
356
476
  for (const message of messagesToAppend) {
357
- yield await this._appendMessage(message);
477
+ yield this._appendMessage(message);
358
478
  }
359
479
  const toolSpecs = this._toolRegistry.values().map((tool) => tool.toolSpec);
360
480
  const streamOptions = { toolSpecs };
361
481
  if (this.systemPrompt !== undefined) {
362
482
  streamOptions.systemPrompt = this.systemPrompt;
363
483
  }
484
+ // Add tool choice if provided (for structured output forcing)
485
+ if (forcedToolChoice) {
486
+ streamOptions.toolChoice = forcedToolChoice;
487
+ }
364
488
  yield new BeforeModelCallEvent({ agent: this });
489
+ // Start model span within loop span context
490
+ const modelId = this.model.modelId;
491
+ const modelSpan = this._tracer.startModelInvokeSpan({
492
+ messages: this.messages,
493
+ ...(modelId && { modelId }),
494
+ });
365
495
  try {
366
- const { message, stopReason } = yield* this._streamFromModel(this.messages, streamOptions);
496
+ const { message, stopReason, usage } = yield* this._streamFromModel(this.messages, streamOptions);
497
+ // Accumulate token usage
498
+ if (usage) {
499
+ Agent._accumulateUsage(this._accumulatedTokenUsage, usage);
500
+ }
501
+ // End model span with usage
502
+ this._tracer.endModelInvokeSpan(modelSpan, { output: message, stopReason, ...(usage && { usage }) });
503
+ yield new ModelMessageEvent({ agent: this, message, stopReason });
367
504
  const afterModelCallEvent = new AfterModelCallEvent({ agent: this, stopData: { message, stopReason } });
368
505
  yield afterModelCallEvent;
369
506
  if (afterModelCallEvent.retry) {
@@ -373,6 +510,8 @@ export class Agent {
373
510
  }
374
511
  catch (error) {
375
512
  const modelError = normalizeError(error);
513
+ // End model span with error
514
+ this._tracer.endModelInvokeSpan(modelSpan, { error: modelError });
376
515
  // Create error event
377
516
  const errorEvent = new AfterModelCallEvent({ agent: this, error: modelError });
378
517
  // Yield error event - stream will invoke hooks
@@ -386,7 +525,16 @@ export class Agent {
386
525
  }
387
526
  }
388
527
  /**
389
- * Streams events from the model and fires ModelStreamEventHook for each event.
528
+ * Streams events from the model and dispatches appropriate events for each.
529
+ *
530
+ * The model's `streamAggregated()` yields two kinds of output:
531
+ * - **ModelStreamEvent**: Transient streaming deltas (partial data while generating).
532
+ * Wrapped in {@link ModelStreamUpdateEvent} before yielding.
533
+ * - **ContentBlock**: Fully assembled results (after all deltas accumulate).
534
+ * Wrapped in {@link ContentBlockEvent} before yielding.
535
+ *
536
+ * These are separate event classes because they represent different granularities
537
+ * (partial deltas vs finished blocks). Both are yielded in the stream and hookable.
390
538
  *
391
539
  * @param messages - Messages to send to the model
392
540
  * @param streamOptions - Options for streaming
@@ -397,14 +545,22 @@ export class Agent {
397
545
  let result = await streamGenerator.next();
398
546
  while (!result.done) {
399
547
  const event = result.value;
400
- // Yield hook event for observability
401
- yield new ModelStreamEventHook({ agent: this, event });
402
- // Yield the actual model event
403
- yield event;
548
+ if (isModelStreamEvent(event)) {
549
+ // ModelStreamEvent: wrap in ModelStreamUpdateEvent
550
+ yield new ModelStreamUpdateEvent({ agent: this, event });
551
+ }
552
+ else {
553
+ // ContentBlock: wrap in ContentBlockEvent
554
+ yield new ContentBlockEvent({ agent: this, contentBlock: event });
555
+ }
404
556
  result = await streamGenerator.next();
405
557
  }
406
558
  // result.done is true, result.value contains the return value
407
- return result.value;
559
+ const { message, stopReason, metadata } = result.value;
560
+ const returnValue = { message, stopReason };
561
+ if (metadata?.usage)
562
+ returnValue.usage = metadata.usage;
563
+ return returnValue;
408
564
  }
409
565
  /**
410
566
  * Executes tools sequentially and streams all tool events.
@@ -425,8 +581,8 @@ export class Agent {
425
581
  for (const toolUseBlock of toolUseBlocks) {
426
582
  const toolResultBlock = yield* this.executeTool(toolUseBlock, toolRegistry);
427
583
  toolResultBlocks.push(toolResultBlock);
428
- // Yield the tool result block as it's created
429
- yield toolResultBlock;
584
+ // Yield the tool result event as it's created
585
+ yield new ToolResultEvent({ agent: this, result: toolResultBlock });
430
586
  }
431
587
  // Create user message with tool results
432
588
  const toolResultMessage = new Message({
@@ -448,7 +604,7 @@ export class Agent {
448
604
  */
449
605
  async *executeTool(toolUseBlock, toolRegistry) {
450
606
  const tool = toolRegistry.find((t) => t.name === toolUseBlock.name);
451
- // Create toolUse object for hook events
607
+ // Create toolUse object for hook events and telemetry
452
608
  const toolUse = {
453
609
  name: toolUseBlock.name,
454
610
  toolUseId: toolUseBlock.toolUseId,
@@ -457,6 +613,10 @@ export class Agent {
457
613
  // Retry loop for tool execution
458
614
  while (true) {
459
615
  yield new BeforeToolCallEvent({ agent: this, toolUse, tool });
616
+ // Start tool span within loop span context
617
+ const toolSpan = this._tracer.startToolCallSpan({
618
+ tool: toolUse,
619
+ });
460
620
  let toolResult;
461
621
  let error;
462
622
  if (!tool) {
@@ -468,7 +628,7 @@ export class Agent {
468
628
  });
469
629
  }
470
630
  else {
471
- // Execute tool and collect result
631
+ // Execute tool within the tool span context
472
632
  const toolContext = {
473
633
  toolUse: {
474
634
  name: toolUseBlock.name,
@@ -478,7 +638,18 @@ export class Agent {
478
638
  agent: this,
479
639
  };
480
640
  try {
481
- const result = yield* tool.stream(toolContext);
641
+ // Manually iterate tool stream to wrap each ToolStreamEvent in ToolStreamUpdateEvent.
642
+ // This keeps the tool authoring interface unchanged — tools construct ToolStreamEvent
643
+ // without knowledge of agents or hooks, and we wrap at the boundary.
644
+ // Tool execution is ran within the tool span's context so that
645
+ // downstream calls (e.g., MCP clients) can propagate trace context
646
+ const toolGenerator = this._tracer.withSpanContext(toolSpan, () => tool.stream(toolContext));
647
+ let toolNext = await this._tracer.withSpanContext(toolSpan, () => toolGenerator.next());
648
+ while (!toolNext.done) {
649
+ yield new ToolStreamUpdateEvent({ agent: this, event: toolNext.value });
650
+ toolNext = await this._tracer.withSpanContext(toolSpan, () => toolGenerator.next());
651
+ }
652
+ const result = toolNext.value;
482
653
  if (!result) {
483
654
  // Tool didn't return a result
484
655
  toolResult = new ToolResultBlock({
@@ -503,6 +674,8 @@ export class Agent {
503
674
  });
504
675
  }
505
676
  }
677
+ // End tool span
678
+ this._tracer.endToolCallSpan(toolSpan, { toolResult, ...(error && { error }) });
506
679
  // Single point for AfterToolCallEvent
507
680
  const afterToolCallEvent = new AfterToolCallEvent({
508
681
  agent: this,
@@ -519,19 +692,43 @@ export class Agent {
519
692
  }
520
693
  }
521
694
  /**
522
- * Appends a message to the conversation history, invokes MessageAddedEvent hook,
523
- * and returns the event for yielding.
695
+ * Appends a message to the conversation history and returns the event for yielding.
524
696
  *
525
697
  * @param message - The message to append
526
- * @returns MessageAddedEvent to be yielded (hook already invoked)
698
+ * @returns MessageAddedEvent to be yielded
527
699
  */
528
- async _appendMessage(message) {
700
+ _appendMessage(message) {
529
701
  this.messages.push(message);
530
- const event = new MessageAddedEvent({ agent: this, message });
531
- // Invoke hooks immediately for message tracking
532
- await this.hooks.invokeCallbacks(event);
533
- // Return event for yielding (stream will skip hook invocation for MessageAddedEvent)
534
- return event;
702
+ return new MessageAddedEvent({ agent: this, message });
703
+ }
704
+ /**
705
+ * Creates an empty Usage object with all counters set to zero.
706
+ *
707
+ * @returns A Usage object with zeroed counters
708
+ */
709
+ static _createEmptyUsage() {
710
+ return {
711
+ inputTokens: 0,
712
+ outputTokens: 0,
713
+ totalTokens: 0,
714
+ };
715
+ }
716
+ /**
717
+ * Accumulates token usage from a source into a target Usage object.
718
+ *
719
+ * @param target - The Usage object to accumulate into (mutated in place)
720
+ * @param source - The Usage object to accumulate from
721
+ */
722
+ static _accumulateUsage(target, source) {
723
+ target.inputTokens += source.inputTokens;
724
+ target.outputTokens += source.outputTokens;
725
+ target.totalTokens += source.totalTokens;
726
+ if (source.cacheReadInputTokens !== undefined) {
727
+ target.cacheReadInputTokens = (target.cacheReadInputTokens ?? 0) + source.cacheReadInputTokens;
728
+ }
729
+ if (source.cacheWriteInputTokens !== undefined) {
730
+ target.cacheWriteInputTokens = (target.cacheWriteInputTokens ?? 0) + source.cacheWriteInputTokens;
731
+ }
535
732
  }
536
733
  }
537
734
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/agent/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/agent/agent.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,10 @@ export declare class AgentPrinter implements Printer {
46
46
  * @param event - The event to process
47
47
  */
48
48
  processEvent(event: AgentStreamEvent): void;
49
+ /**
50
+ * Handle raw model stream events unwrapped from ModelStreamUpdateEvent.
51
+ */
52
+ private handleModelStreamEvent;
49
53
  /**
50
54
  * Handle content block delta events (text or reasoning).
51
55
  */
@@ -1 +1 @@
1
- {"version":3,"file":"printer.d.ts","sourceRoot":"","sources":["../../../src/agent/printer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAO3D;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAE5B;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAC5C;AAED;;;GAGG;AACH,qBAAa,YAAa,YAAW,OAAO;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,oBAAoB,CAAiB;IAE7C;;;OAGG;gBACS,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAI5C;;;OAGG;IACI,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInC;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAwBlD;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAS/B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAOzB"}
1
+ {"version":3,"file":"printer.d.ts","sourceRoot":"","sources":["../../../src/agent/printer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAQzD;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAO3D;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAE5B;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAC5C;AAED;;;GAGG;AACH,qBAAa,YAAa,YAAW,OAAO;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,oBAAoB,CAAiB;IAE7C;;;OAGG;gBACS,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAI5C;;;OAGG;IACI,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInC;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAgBlD;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgB9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAS/B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAOzB"}
@@ -40,6 +40,22 @@ export class AgentPrinter {
40
40
  * @param event - The event to process
41
41
  */
42
42
  processEvent(event) {
43
+ switch (event.type) {
44
+ case 'modelStreamUpdateEvent':
45
+ this.handleModelStreamEvent(event.event);
46
+ break;
47
+ case 'toolResultEvent':
48
+ this.handleToolResult(event);
49
+ break;
50
+ // Ignore other event types
51
+ default:
52
+ break;
53
+ }
54
+ }
55
+ /**
56
+ * Handle raw model stream events unwrapped from ModelStreamUpdateEvent.
57
+ */
58
+ handleModelStreamEvent(event) {
43
59
  switch (event.type) {
44
60
  case 'modelContentBlockDeltaEvent':
45
61
  this.handleContentBlockDelta(event);
@@ -50,10 +66,6 @@ export class AgentPrinter {
50
66
  case 'modelContentBlockStopEvent':
51
67
  this.handleContentBlockStop();
52
68
  break;
53
- case 'toolResultBlock':
54
- this.handleToolResult(event);
55
- break;
56
- // Ignore other event types
57
69
  default:
58
70
  break;
59
71
  }
@@ -134,10 +146,10 @@ export class AgentPrinter {
134
146
  * Outputs completion status.
135
147
  */
136
148
  handleToolResult(event) {
137
- if (event.status === 'success') {
149
+ if (event.result.status === 'success') {
138
150
  this.write('✓ Tool completed\n');
139
151
  }
140
- else if (event.status === 'error') {
152
+ else if (event.result.status === 'error') {
141
153
  this.write('✗ Tool failed\n');
142
154
  }
143
155
  }