@strands-agents/sdk 1.7.0 → 1.9.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 (686) hide show
  1. package/dist/src/agent/agent.d.ts +32 -2
  2. package/dist/src/agent/agent.d.ts.map +1 -1
  3. package/dist/src/agent/agent.js +92 -4
  4. package/dist/src/agent/agent.js.map +1 -1
  5. package/dist/src/context-manager/modes/agentic/agentic-context.d.ts +3 -3
  6. package/dist/src/context-manager/modes/agentic/agentic-context.d.ts.map +1 -1
  7. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
  8. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +2 -0
  9. package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
  10. package/dist/src/errors.d.ts +7 -0
  11. package/dist/src/errors.d.ts.map +1 -1
  12. package/dist/src/errors.js +10 -0
  13. package/dist/src/errors.js.map +1 -1
  14. package/dist/src/experimental/checkpoint.d.ts +118 -0
  15. package/dist/src/experimental/checkpoint.d.ts.map +1 -0
  16. package/dist/src/experimental/checkpoint.js +108 -0
  17. package/dist/src/experimental/checkpoint.js.map +1 -0
  18. package/dist/src/experimental/index.d.ts +10 -0
  19. package/dist/src/experimental/index.d.ts.map +1 -0
  20. package/dist/src/experimental/index.js +9 -0
  21. package/dist/src/experimental/index.js.map +1 -0
  22. package/dist/src/index.d.ts +1 -1
  23. package/dist/src/index.d.ts.map +1 -1
  24. package/dist/src/index.js +1 -1
  25. package/dist/src/index.js.map +1 -1
  26. package/dist/src/index.node.d.ts.map +1 -1
  27. package/dist/src/index.node.js +3 -0
  28. package/dist/src/index.node.js.map +1 -1
  29. package/dist/src/injection/message-injection.d.ts.map +1 -1
  30. package/dist/src/injection/message-injection.js +2 -0
  31. package/dist/src/injection/message-injection.js.map +1 -1
  32. package/dist/src/interventions/actions.d.ts.map +1 -1
  33. package/dist/src/interventions/actions.js.map +1 -1
  34. package/dist/src/{mcp.d.ts → mcp/client.d.ts} +13 -4
  35. package/dist/src/mcp/client.d.ts.map +1 -0
  36. package/dist/src/{mcp.js → mcp/client.js} +15 -3
  37. package/dist/src/mcp/client.js.map +1 -0
  38. package/dist/src/mcp/config.d.ts +52 -0
  39. package/dist/src/mcp/config.d.ts.map +1 -0
  40. package/dist/src/mcp/config.js +12 -0
  41. package/dist/src/mcp/config.js.map +1 -0
  42. package/dist/src/mcp/config.node.d.ts +16 -0
  43. package/dist/src/mcp/config.node.d.ts.map +1 -0
  44. package/dist/src/mcp/config.node.js +145 -0
  45. package/dist/src/mcp/config.node.js.map +1 -0
  46. package/dist/src/mcp/index.d.ts +3 -0
  47. package/dist/src/mcp/index.d.ts.map +1 -0
  48. package/dist/src/mcp/index.js +2 -0
  49. package/dist/src/mcp/index.js.map +1 -0
  50. package/dist/src/models/model.d.ts.map +1 -1
  51. package/dist/src/models/model.js +2 -1
  52. package/dist/src/models/model.js.map +1 -1
  53. package/dist/src/multiagent/graph.d.ts +7 -0
  54. package/dist/src/multiagent/graph.d.ts.map +1 -1
  55. package/dist/src/multiagent/graph.js +22 -1
  56. package/dist/src/multiagent/graph.js.map +1 -1
  57. package/dist/src/multiagent/multiagent.d.ts +2 -1
  58. package/dist/src/multiagent/multiagent.d.ts.map +1 -1
  59. package/dist/src/multiagent/multiagent.js.map +1 -1
  60. package/dist/src/multiagent/nodes.d.ts +5 -0
  61. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  62. package/dist/src/multiagent/nodes.js +15 -0
  63. package/dist/src/multiagent/nodes.js.map +1 -1
  64. package/dist/src/multiagent/state.d.ts.map +1 -1
  65. package/dist/src/multiagent/state.js.map +1 -1
  66. package/dist/src/tools/function-tool.d.ts +1 -1
  67. package/dist/src/tools/function-tool.d.ts.map +1 -1
  68. package/dist/src/tools/function-tool.js +4 -12
  69. package/dist/src/tools/function-tool.js.map +1 -1
  70. package/dist/src/tools/mcp-tool.d.ts +2 -1
  71. package/dist/src/tools/mcp-tool.d.ts.map +1 -1
  72. package/dist/src/tools/mcp-tool.js +1 -0
  73. package/dist/src/tools/mcp-tool.js.map +1 -1
  74. package/dist/src/tools/tool-factory.d.ts +1 -1
  75. package/dist/src/tools/tool-factory.d.ts.map +1 -1
  76. package/dist/src/tools/types.d.ts +4 -0
  77. package/dist/src/tools/types.d.ts.map +1 -1
  78. package/dist/src/tools/zod-tool.d.ts +4 -2
  79. package/dist/src/tools/zod-tool.d.ts.map +1 -1
  80. package/dist/src/tools/zod-tool.js.map +1 -1
  81. package/dist/src/tsconfig.tsbuildinfo +1 -1
  82. package/dist/src/types/agent.d.ts +18 -1
  83. package/dist/src/types/agent.d.ts.map +1 -1
  84. package/dist/src/types/agent.js +12 -0
  85. package/dist/src/types/agent.js.map +1 -1
  86. package/dist/src/types/media.d.ts.map +1 -1
  87. package/dist/src/types/media.js.map +1 -1
  88. package/dist/src/types/messages.d.ts +22 -1
  89. package/dist/src/types/messages.d.ts.map +1 -1
  90. package/dist/src/types/messages.js +22 -0
  91. package/dist/src/types/messages.js.map +1 -1
  92. package/dist/src/vended-memory-stores/test-memory-store/index.d.ts +2 -0
  93. package/dist/src/vended-memory-stores/test-memory-store/index.d.ts.map +1 -0
  94. package/dist/src/vended-memory-stores/test-memory-store/index.js +2 -0
  95. package/dist/src/vended-memory-stores/test-memory-store/index.js.map +1 -0
  96. package/dist/src/vended-memory-stores/test-memory-store/store.d.ts +122 -0
  97. package/dist/src/vended-memory-stores/test-memory-store/store.d.ts.map +1 -0
  98. package/dist/src/vended-memory-stores/test-memory-store/store.js +281 -0
  99. package/dist/src/vended-memory-stores/test-memory-store/store.js.map +1 -0
  100. package/dist/src/vended-plugins/context-offloader/search.d.ts.map +1 -1
  101. package/dist/src/vended-plugins/context-offloader/search.js +4 -2
  102. package/dist/src/vended-plugins/context-offloader/search.js.map +1 -1
  103. package/dist/src/vended-plugins/context-offloader/storage.js +1 -1
  104. package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -1
  105. package/dist/src/vended-plugins/skills/skill.d.ts.map +1 -1
  106. package/dist/src/vended-plugins/skills/skill.js.map +1 -1
  107. package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
  108. package/package.json +41 -30
  109. package/dist/src/__fixtures__/agent-helpers.d.ts +0 -136
  110. package/dist/src/__fixtures__/agent-helpers.d.ts.map +0 -1
  111. package/dist/src/__fixtures__/agent-helpers.js +0 -156
  112. package/dist/src/__fixtures__/agent-helpers.js.map +0 -1
  113. package/dist/src/__fixtures__/environment.d.ts +0 -12
  114. package/dist/src/__fixtures__/environment.d.ts.map +0 -1
  115. package/dist/src/__fixtures__/environment.js +0 -12
  116. package/dist/src/__fixtures__/environment.js.map +0 -1
  117. package/dist/src/__fixtures__/metrics-helpers.d.ts +0 -55
  118. package/dist/src/__fixtures__/metrics-helpers.d.ts.map +0 -1
  119. package/dist/src/__fixtures__/metrics-helpers.js +0 -57
  120. package/dist/src/__fixtures__/metrics-helpers.js.map +0 -1
  121. package/dist/src/__fixtures__/mock-message-model.d.ts +0 -103
  122. package/dist/src/__fixtures__/mock-message-model.d.ts.map +0 -1
  123. package/dist/src/__fixtures__/mock-message-model.js +0 -245
  124. package/dist/src/__fixtures__/mock-message-model.js.map +0 -1
  125. package/dist/src/__fixtures__/mock-meter.d.ts +0 -32
  126. package/dist/src/__fixtures__/mock-meter.d.ts.map +0 -1
  127. package/dist/src/__fixtures__/mock-meter.js +0 -47
  128. package/dist/src/__fixtures__/mock-meter.js.map +0 -1
  129. package/dist/src/__fixtures__/mock-plugin.d.ts +0 -13
  130. package/dist/src/__fixtures__/mock-plugin.d.ts.map +0 -1
  131. package/dist/src/__fixtures__/mock-plugin.js +0 -35
  132. package/dist/src/__fixtures__/mock-plugin.js.map +0 -1
  133. package/dist/src/__fixtures__/mock-span.d.ts +0 -78
  134. package/dist/src/__fixtures__/mock-span.d.ts.map +0 -1
  135. package/dist/src/__fixtures__/mock-span.js +0 -93
  136. package/dist/src/__fixtures__/mock-span.js.map +0 -1
  137. package/dist/src/__fixtures__/mock-storage-provider.d.ts +0 -42
  138. package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +0 -1
  139. package/dist/src/__fixtures__/mock-storage-provider.js +0 -122
  140. package/dist/src/__fixtures__/mock-storage-provider.js.map +0 -1
  141. package/dist/src/__fixtures__/model-test-helpers.d.ts +0 -56
  142. package/dist/src/__fixtures__/model-test-helpers.d.ts.map +0 -1
  143. package/dist/src/__fixtures__/model-test-helpers.js +0 -85
  144. package/dist/src/__fixtures__/model-test-helpers.js.map +0 -1
  145. package/dist/src/__fixtures__/register-node-defaults.d.ts +0 -2
  146. package/dist/src/__fixtures__/register-node-defaults.d.ts.map +0 -1
  147. package/dist/src/__fixtures__/register-node-defaults.js +0 -6
  148. package/dist/src/__fixtures__/register-node-defaults.js.map +0 -1
  149. package/dist/src/__fixtures__/slim-types.d.ts +0 -51
  150. package/dist/src/__fixtures__/slim-types.d.ts.map +0 -1
  151. package/dist/src/__fixtures__/slim-types.js +0 -6
  152. package/dist/src/__fixtures__/slim-types.js.map +0 -1
  153. package/dist/src/__fixtures__/test-sandbox.node.d.ts +0 -15
  154. package/dist/src/__fixtures__/test-sandbox.node.d.ts.map +0 -1
  155. package/dist/src/__fixtures__/test-sandbox.node.js +0 -23
  156. package/dist/src/__fixtures__/test-sandbox.node.js.map +0 -1
  157. package/dist/src/__fixtures__/tool-helpers.d.ts +0 -45
  158. package/dist/src/__fixtures__/tool-helpers.d.ts.map +0 -1
  159. package/dist/src/__fixtures__/tool-helpers.js +0 -101
  160. package/dist/src/__fixtures__/tool-helpers.js.map +0 -1
  161. package/dist/src/__tests__/default-slot.test.d.ts +0 -2
  162. package/dist/src/__tests__/default-slot.test.d.ts.map +0 -1
  163. package/dist/src/__tests__/default-slot.test.js +0 -33
  164. package/dist/src/__tests__/default-slot.test.js.map +0 -1
  165. package/dist/src/__tests__/errors.test.d.ts +0 -2
  166. package/dist/src/__tests__/errors.test.d.ts.map +0 -1
  167. package/dist/src/__tests__/errors.test.js +0 -170
  168. package/dist/src/__tests__/errors.test.js.map +0 -1
  169. package/dist/src/__tests__/index.test.d.ts +0 -2
  170. package/dist/src/__tests__/index.test.d.ts.map +0 -1
  171. package/dist/src/__tests__/index.test.js +0 -48
  172. package/dist/src/__tests__/index.test.js.map +0 -1
  173. package/dist/src/__tests__/interrupt.test.d.ts +0 -2
  174. package/dist/src/__tests__/interrupt.test.d.ts.map +0 -1
  175. package/dist/src/__tests__/interrupt.test.js +0 -264
  176. package/dist/src/__tests__/interrupt.test.js.map +0 -1
  177. package/dist/src/__tests__/mcp.test.d.ts +0 -2
  178. package/dist/src/__tests__/mcp.test.d.ts.map +0 -1
  179. package/dist/src/__tests__/mcp.test.js +0 -1003
  180. package/dist/src/__tests__/mcp.test.js.map +0 -1
  181. package/dist/src/__tests__/mime.test.d.ts +0 -2
  182. package/dist/src/__tests__/mime.test.d.ts.map +0 -1
  183. package/dist/src/__tests__/mime.test.js +0 -83
  184. package/dist/src/__tests__/mime.test.js.map +0 -1
  185. package/dist/src/__tests__/state-store.test.d.ts +0 -2
  186. package/dist/src/__tests__/state-store.test.d.ts.map +0 -1
  187. package/dist/src/__tests__/state-store.test.js +0 -285
  188. package/dist/src/__tests__/state-store.test.js.map +0 -1
  189. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts +0 -2
  190. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts.map +0 -1
  191. package/dist/src/a2a/__tests__/a2a-agent.test.js +0 -383
  192. package/dist/src/a2a/__tests__/a2a-agent.test.js.map +0 -1
  193. package/dist/src/a2a/__tests__/adapters.test.d.ts +0 -2
  194. package/dist/src/a2a/__tests__/adapters.test.d.ts.map +0 -1
  195. package/dist/src/a2a/__tests__/adapters.test.js +0 -151
  196. package/dist/src/a2a/__tests__/adapters.test.js.map +0 -1
  197. package/dist/src/a2a/__tests__/async-lock.test.d.ts +0 -2
  198. package/dist/src/a2a/__tests__/async-lock.test.d.ts.map +0 -1
  199. package/dist/src/a2a/__tests__/async-lock.test.js +0 -137
  200. package/dist/src/a2a/__tests__/async-lock.test.js.map +0 -1
  201. package/dist/src/a2a/__tests__/events.test.d.ts +0 -2
  202. package/dist/src/a2a/__tests__/events.test.d.ts.map +0 -1
  203. package/dist/src/a2a/__tests__/events.test.js +0 -68
  204. package/dist/src/a2a/__tests__/events.test.js.map +0 -1
  205. package/dist/src/a2a/__tests__/executor.test.d.ts +0 -2
  206. package/dist/src/a2a/__tests__/executor.test.d.ts.map +0 -1
  207. package/dist/src/a2a/__tests__/executor.test.js +0 -345
  208. package/dist/src/a2a/__tests__/executor.test.js.map +0 -1
  209. package/dist/src/a2a/__tests__/server.test.d.ts +0 -2
  210. package/dist/src/a2a/__tests__/server.test.d.ts.map +0 -1
  211. package/dist/src/a2a/__tests__/server.test.js +0 -71
  212. package/dist/src/a2a/__tests__/server.test.js.map +0 -1
  213. package/dist/src/a2a/__tests__/server.test.node.d.ts +0 -2
  214. package/dist/src/a2a/__tests__/server.test.node.d.ts.map +0 -1
  215. package/dist/src/a2a/__tests__/server.test.node.js +0 -110
  216. package/dist/src/a2a/__tests__/server.test.node.js.map +0 -1
  217. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts +0 -2
  218. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts.map +0 -1
  219. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js +0 -23
  220. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js.map +0 -1
  221. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts +0 -2
  222. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts.map +0 -1
  223. package/dist/src/agent/__tests__/agent-as-tool.test.js +0 -347
  224. package/dist/src/agent/__tests__/agent-as-tool.test.js.map +0 -1
  225. package/dist/src/agent/__tests__/agent.cancel.test.d.ts +0 -2
  226. package/dist/src/agent/__tests__/agent.cancel.test.d.ts.map +0 -1
  227. package/dist/src/agent/__tests__/agent.cancel.test.js +0 -337
  228. package/dist/src/agent/__tests__/agent.cancel.test.js.map +0 -1
  229. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts +0 -2
  230. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts.map +0 -1
  231. package/dist/src/agent/__tests__/agent.concurrent.test.js +0 -488
  232. package/dist/src/agent/__tests__/agent.concurrent.test.js.map +0 -1
  233. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts +0 -2
  234. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts.map +0 -1
  235. package/dist/src/agent/__tests__/agent.context-manager.test.js +0 -106
  236. package/dist/src/agent/__tests__/agent.context-manager.test.js.map +0 -1
  237. package/dist/src/agent/__tests__/agent.hook.test.d.ts +0 -2
  238. package/dist/src/agent/__tests__/agent.hook.test.d.ts.map +0 -1
  239. package/dist/src/agent/__tests__/agent.hook.test.js +0 -1332
  240. package/dist/src/agent/__tests__/agent.hook.test.js.map +0 -1
  241. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts +0 -2
  242. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts.map +0 -1
  243. package/dist/src/agent/__tests__/agent.interrupt.test.js +0 -779
  244. package/dist/src/agent/__tests__/agent.interrupt.test.js.map +0 -1
  245. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts +0 -2
  246. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts.map +0 -1
  247. package/dist/src/agent/__tests__/agent.invocation-state.test.js +0 -219
  248. package/dist/src/agent/__tests__/agent.invocation-state.test.js.map +0 -1
  249. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts +0 -2
  250. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts.map +0 -1
  251. package/dist/src/agent/__tests__/agent.model-retry.test.js +0 -161
  252. package/dist/src/agent/__tests__/agent.model-retry.test.js.map +0 -1
  253. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts +0 -2
  254. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts.map +0 -1
  255. package/dist/src/agent/__tests__/agent.stateful-model.test.js +0 -169
  256. package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +0 -1
  257. package/dist/src/agent/__tests__/agent.test.d.ts +0 -2
  258. package/dist/src/agent/__tests__/agent.test.d.ts.map +0 -1
  259. package/dist/src/agent/__tests__/agent.test.js +0 -1624
  260. package/dist/src/agent/__tests__/agent.test.js.map +0 -1
  261. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts +0 -2
  262. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts.map +0 -1
  263. package/dist/src/agent/__tests__/agent.tracer.test.node.js +0 -535
  264. package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +0 -1
  265. package/dist/src/agent/__tests__/printer.test.d.ts +0 -2
  266. package/dist/src/agent/__tests__/printer.test.d.ts.map +0 -1
  267. package/dist/src/agent/__tests__/printer.test.js +0 -188
  268. package/dist/src/agent/__tests__/printer.test.js.map +0 -1
  269. package/dist/src/agent/__tests__/snapshot.test.d.ts +0 -2
  270. package/dist/src/agent/__tests__/snapshot.test.d.ts.map +0 -1
  271. package/dist/src/agent/__tests__/snapshot.test.js +0 -442
  272. package/dist/src/agent/__tests__/snapshot.test.js.map +0 -1
  273. package/dist/src/agent/__tests__/tool-caller.test.d.ts +0 -2
  274. package/dist/src/agent/__tests__/tool-caller.test.d.ts.map +0 -1
  275. package/dist/src/agent/__tests__/tool-caller.test.js +0 -459
  276. package/dist/src/agent/__tests__/tool-caller.test.js.map +0 -1
  277. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts +0 -2
  278. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts.map +0 -1
  279. package/dist/src/conversation-manager/__tests__/agentic-context.test.js +0 -332
  280. package/dist/src/conversation-manager/__tests__/agentic-context.test.js.map +0 -1
  281. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts +0 -2
  282. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts.map +0 -1
  283. package/dist/src/conversation-manager/__tests__/context-compression.test.js +0 -176
  284. package/dist/src/conversation-manager/__tests__/context-compression.test.js.map +0 -1
  285. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +0 -2
  286. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +0 -1
  287. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +0 -321
  288. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +0 -1
  289. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts +0 -2
  290. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts.map +0 -1
  291. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +0 -64
  292. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +0 -1
  293. package/dist/src/conversation-manager/__tests__/pin.test.d.ts +0 -2
  294. package/dist/src/conversation-manager/__tests__/pin.test.d.ts.map +0 -1
  295. package/dist/src/conversation-manager/__tests__/pin.test.js +0 -119
  296. package/dist/src/conversation-manager/__tests__/pin.test.js.map +0 -1
  297. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts +0 -2
  298. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts.map +0 -1
  299. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +0 -1080
  300. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +0 -1
  301. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts +0 -2
  302. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts.map +0 -1
  303. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +0 -400
  304. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +0 -1
  305. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts +0 -2
  306. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts.map +0 -1
  307. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js +0 -138
  308. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js.map +0 -1
  309. package/dist/src/hooks/__tests__/events.test.d.ts +0 -2
  310. package/dist/src/hooks/__tests__/events.test.d.ts.map +0 -1
  311. package/dist/src/hooks/__tests__/events.test.js +0 -1060
  312. package/dist/src/hooks/__tests__/events.test.js.map +0 -1
  313. package/dist/src/hooks/__tests__/registry.test.d.ts +0 -2
  314. package/dist/src/hooks/__tests__/registry.test.d.ts.map +0 -1
  315. package/dist/src/hooks/__tests__/registry.test.js +0 -325
  316. package/dist/src/hooks/__tests__/registry.test.js.map +0 -1
  317. package/dist/src/injection/__tests__/message-injection.test.d.ts +0 -2
  318. package/dist/src/injection/__tests__/message-injection.test.d.ts.map +0 -1
  319. package/dist/src/injection/__tests__/message-injection.test.js +0 -200
  320. package/dist/src/injection/__tests__/message-injection.test.js.map +0 -1
  321. package/dist/src/interventions/__tests__/handler.test.d.ts +0 -2
  322. package/dist/src/interventions/__tests__/handler.test.d.ts.map +0 -1
  323. package/dist/src/interventions/__tests__/handler.test.js +0 -35
  324. package/dist/src/interventions/__tests__/handler.test.js.map +0 -1
  325. package/dist/src/interventions/__tests__/registry.test.d.ts +0 -2
  326. package/dist/src/interventions/__tests__/registry.test.d.ts.map +0 -1
  327. package/dist/src/interventions/__tests__/registry.test.js +0 -692
  328. package/dist/src/interventions/__tests__/registry.test.js.map +0 -1
  329. package/dist/src/logging/__tests__/logger.test.d.ts +0 -2
  330. package/dist/src/logging/__tests__/logger.test.d.ts.map +0 -1
  331. package/dist/src/logging/__tests__/logger.test.js +0 -70
  332. package/dist/src/logging/__tests__/logger.test.js.map +0 -1
  333. package/dist/src/logging/__tests__/warn-once.test.d.ts +0 -2
  334. package/dist/src/logging/__tests__/warn-once.test.d.ts.map +0 -1
  335. package/dist/src/logging/__tests__/warn-once.test.js +0 -30
  336. package/dist/src/logging/__tests__/warn-once.test.js.map +0 -1
  337. package/dist/src/mcp.d.ts.map +0 -1
  338. package/dist/src/mcp.js.map +0 -1
  339. package/dist/src/memory/__tests__/memory-manager.test.d.ts +0 -2
  340. package/dist/src/memory/__tests__/memory-manager.test.d.ts.map +0 -1
  341. package/dist/src/memory/__tests__/memory-manager.test.js +0 -679
  342. package/dist/src/memory/__tests__/memory-manager.test.js.map +0 -1
  343. package/dist/src/memory/__tests__/memory-tracing.test.d.ts +0 -2
  344. package/dist/src/memory/__tests__/memory-tracing.test.d.ts.map +0 -1
  345. package/dist/src/memory/__tests__/memory-tracing.test.js +0 -250
  346. package/dist/src/memory/__tests__/memory-tracing.test.js.map +0 -1
  347. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts +0 -2
  348. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts.map +0 -1
  349. package/dist/src/memory/extraction/__tests__/extraction.test.js +0 -639
  350. package/dist/src/memory/extraction/__tests__/extraction.test.js.map +0 -1
  351. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts +0 -2
  352. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts.map +0 -1
  353. package/dist/src/memory/extraction/__tests__/model-extractor.test.js +0 -104
  354. package/dist/src/memory/extraction/__tests__/model-extractor.test.js.map +0 -1
  355. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts +0 -2
  356. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts.map +0 -1
  357. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js +0 -81
  358. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js.map +0 -1
  359. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts +0 -2
  360. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts.map +0 -1
  361. package/dist/src/middleware/__tests__/agent-middleware.test.js +0 -1206
  362. package/dist/src/middleware/__tests__/agent-middleware.test.js.map +0 -1
  363. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts +0 -2
  364. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts.map +0 -1
  365. package/dist/src/middleware/__tests__/copy-on-input.test.js +0 -379
  366. package/dist/src/middleware/__tests__/copy-on-input.test.js.map +0 -1
  367. package/dist/src/middleware/__tests__/custom-stages.test.d.ts +0 -2
  368. package/dist/src/middleware/__tests__/custom-stages.test.d.ts.map +0 -1
  369. package/dist/src/middleware/__tests__/custom-stages.test.js +0 -97
  370. package/dist/src/middleware/__tests__/custom-stages.test.js.map +0 -1
  371. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts +0 -2
  372. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts.map +0 -1
  373. package/dist/src/middleware/__tests__/middleware-interrupts.test.js +0 -267
  374. package/dist/src/middleware/__tests__/middleware-interrupts.test.js.map +0 -1
  375. package/dist/src/middleware/__tests__/registry.test.d.ts +0 -2
  376. package/dist/src/middleware/__tests__/registry.test.d.ts.map +0 -1
  377. package/dist/src/middleware/__tests__/registry.test.js +0 -525
  378. package/dist/src/middleware/__tests__/registry.test.js.map +0 -1
  379. package/dist/src/models/__tests__/anthropic.test.d.ts +0 -2
  380. package/dist/src/models/__tests__/anthropic.test.d.ts.map +0 -1
  381. package/dist/src/models/__tests__/anthropic.test.js +0 -793
  382. package/dist/src/models/__tests__/anthropic.test.js.map +0 -1
  383. package/dist/src/models/__tests__/bedrock.test.d.ts +0 -2
  384. package/dist/src/models/__tests__/bedrock.test.d.ts.map +0 -1
  385. package/dist/src/models/__tests__/bedrock.test.js +0 -3964
  386. package/dist/src/models/__tests__/bedrock.test.js.map +0 -1
  387. package/dist/src/models/__tests__/defaults.test.d.ts +0 -2
  388. package/dist/src/models/__tests__/defaults.test.d.ts.map +0 -1
  389. package/dist/src/models/__tests__/defaults.test.js +0 -36
  390. package/dist/src/models/__tests__/defaults.test.js.map +0 -1
  391. package/dist/src/models/__tests__/google.test.d.ts +0 -2
  392. package/dist/src/models/__tests__/google.test.d.ts.map +0 -1
  393. package/dist/src/models/__tests__/google.test.js +0 -1145
  394. package/dist/src/models/__tests__/google.test.js.map +0 -1
  395. package/dist/src/models/__tests__/model.test.d.ts +0 -2
  396. package/dist/src/models/__tests__/model.test.d.ts.map +0 -1
  397. package/dist/src/models/__tests__/model.test.js +0 -921
  398. package/dist/src/models/__tests__/model.test.js.map +0 -1
  399. package/dist/src/models/__tests__/streaming.test.d.ts +0 -2
  400. package/dist/src/models/__tests__/streaming.test.d.ts.map +0 -1
  401. package/dist/src/models/__tests__/streaming.test.js +0 -50
  402. package/dist/src/models/__tests__/streaming.test.js.map +0 -1
  403. package/dist/src/models/__tests__/test-utils.d.ts +0 -10
  404. package/dist/src/models/__tests__/test-utils.d.ts.map +0 -1
  405. package/dist/src/models/__tests__/test-utils.js +0 -17
  406. package/dist/src/models/__tests__/test-utils.js.map +0 -1
  407. package/dist/src/models/__tests__/vercel.test.d.ts +0 -2
  408. package/dist/src/models/__tests__/vercel.test.d.ts.map +0 -1
  409. package/dist/src/models/__tests__/vercel.test.js +0 -740
  410. package/dist/src/models/__tests__/vercel.test.js.map +0 -1
  411. package/dist/src/models/openai/__tests__/chat.test.d.ts +0 -2
  412. package/dist/src/models/openai/__tests__/chat.test.d.ts.map +0 -1
  413. package/dist/src/models/openai/__tests__/chat.test.js +0 -1586
  414. package/dist/src/models/openai/__tests__/chat.test.js.map +0 -1
  415. package/dist/src/models/openai/__tests__/errors.test.d.ts +0 -2
  416. package/dist/src/models/openai/__tests__/errors.test.d.ts.map +0 -1
  417. package/dist/src/models/openai/__tests__/errors.test.js +0 -39
  418. package/dist/src/models/openai/__tests__/errors.test.js.map +0 -1
  419. package/dist/src/models/openai/__tests__/mantle.test.d.ts +0 -2
  420. package/dist/src/models/openai/__tests__/mantle.test.d.ts.map +0 -1
  421. package/dist/src/models/openai/__tests__/mantle.test.js +0 -189
  422. package/dist/src/models/openai/__tests__/mantle.test.js.map +0 -1
  423. package/dist/src/models/openai/__tests__/responses.test.d.ts +0 -2
  424. package/dist/src/models/openai/__tests__/responses.test.d.ts.map +0 -1
  425. package/dist/src/models/openai/__tests__/responses.test.js +0 -709
  426. package/dist/src/models/openai/__tests__/responses.test.js.map +0 -1
  427. package/dist/src/multiagent/__tests__/events.test.d.ts +0 -2
  428. package/dist/src/multiagent/__tests__/events.test.d.ts.map +0 -1
  429. package/dist/src/multiagent/__tests__/events.test.js +0 -493
  430. package/dist/src/multiagent/__tests__/events.test.js.map +0 -1
  431. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts +0 -2
  432. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts.map +0 -1
  433. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js +0 -95
  434. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js.map +0 -1
  435. package/dist/src/multiagent/__tests__/graph.test.d.ts +0 -2
  436. package/dist/src/multiagent/__tests__/graph.test.d.ts.map +0 -1
  437. package/dist/src/multiagent/__tests__/graph.test.js +0 -698
  438. package/dist/src/multiagent/__tests__/graph.test.js.map +0 -1
  439. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts +0 -2
  440. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts.map +0 -1
  441. package/dist/src/multiagent/__tests__/graph.tracer.test.js +0 -218
  442. package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +0 -1
  443. package/dist/src/multiagent/__tests__/interrupts.test.d.ts +0 -2
  444. package/dist/src/multiagent/__tests__/interrupts.test.d.ts.map +0 -1
  445. package/dist/src/multiagent/__tests__/interrupts.test.js +0 -390
  446. package/dist/src/multiagent/__tests__/interrupts.test.js.map +0 -1
  447. package/dist/src/multiagent/__tests__/nodes.test.d.ts +0 -2
  448. package/dist/src/multiagent/__tests__/nodes.test.d.ts.map +0 -1
  449. package/dist/src/multiagent/__tests__/nodes.test.js +0 -321
  450. package/dist/src/multiagent/__tests__/nodes.test.js.map +0 -1
  451. package/dist/src/multiagent/__tests__/queue.test.d.ts +0 -2
  452. package/dist/src/multiagent/__tests__/queue.test.d.ts.map +0 -1
  453. package/dist/src/multiagent/__tests__/queue.test.js +0 -118
  454. package/dist/src/multiagent/__tests__/queue.test.js.map +0 -1
  455. package/dist/src/multiagent/__tests__/snapshot.test.d.ts +0 -2
  456. package/dist/src/multiagent/__tests__/snapshot.test.d.ts.map +0 -1
  457. package/dist/src/multiagent/__tests__/snapshot.test.js +0 -161
  458. package/dist/src/multiagent/__tests__/snapshot.test.js.map +0 -1
  459. package/dist/src/multiagent/__tests__/state.test.d.ts +0 -2
  460. package/dist/src/multiagent/__tests__/state.test.d.ts.map +0 -1
  461. package/dist/src/multiagent/__tests__/state.test.js +0 -526
  462. package/dist/src/multiagent/__tests__/state.test.js.map +0 -1
  463. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts +0 -2
  464. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts.map +0 -1
  465. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js +0 -56
  466. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js.map +0 -1
  467. package/dist/src/multiagent/__tests__/swarm.test.d.ts +0 -2
  468. package/dist/src/multiagent/__tests__/swarm.test.d.ts.map +0 -1
  469. package/dist/src/multiagent/__tests__/swarm.test.js +0 -477
  470. package/dist/src/multiagent/__tests__/swarm.test.js.map +0 -1
  471. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts +0 -2
  472. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts.map +0 -1
  473. package/dist/src/multiagent/__tests__/swarm.tracer.test.js +0 -235
  474. package/dist/src/multiagent/__tests__/swarm.tracer.test.js.map +0 -1
  475. package/dist/src/plugins/__tests__/plugin.test.d.ts +0 -2
  476. package/dist/src/plugins/__tests__/plugin.test.d.ts.map +0 -1
  477. package/dist/src/plugins/__tests__/plugin.test.js +0 -114
  478. package/dist/src/plugins/__tests__/plugin.test.js.map +0 -1
  479. package/dist/src/plugins/__tests__/registry.test.d.ts +0 -2
  480. package/dist/src/plugins/__tests__/registry.test.d.ts.map +0 -1
  481. package/dist/src/plugins/__tests__/registry.test.js +0 -147
  482. package/dist/src/plugins/__tests__/registry.test.js.map +0 -1
  483. package/dist/src/registry/__tests__/tool-registry.test.d.ts +0 -2
  484. package/dist/src/registry/__tests__/tool-registry.test.d.ts.map +0 -1
  485. package/dist/src/registry/__tests__/tool-registry.test.js +0 -210
  486. package/dist/src/registry/__tests__/tool-registry.test.js.map +0 -1
  487. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts +0 -2
  488. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts.map +0 -1
  489. package/dist/src/retry/__tests__/backoff-strategy.test.js +0 -116
  490. package/dist/src/retry/__tests__/backoff-strategy.test.js.map +0 -1
  491. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts +0 -2
  492. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts.map +0 -1
  493. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js +0 -225
  494. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js.map +0 -1
  495. package/dist/src/sandbox/__tests__/default.test.browser.d.ts +0 -2
  496. package/dist/src/sandbox/__tests__/default.test.browser.d.ts.map +0 -1
  497. package/dist/src/sandbox/__tests__/default.test.browser.js +0 -11
  498. package/dist/src/sandbox/__tests__/default.test.browser.js.map +0 -1
  499. package/dist/src/sandbox/__tests__/default.test.node.d.ts +0 -2
  500. package/dist/src/sandbox/__tests__/default.test.node.d.ts.map +0 -1
  501. package/dist/src/sandbox/__tests__/default.test.node.js +0 -23
  502. package/dist/src/sandbox/__tests__/default.test.node.js.map +0 -1
  503. package/dist/src/sandbox/__tests__/docker.test.node.d.ts +0 -2
  504. package/dist/src/sandbox/__tests__/docker.test.node.d.ts.map +0 -1
  505. package/dist/src/sandbox/__tests__/docker.test.node.js +0 -89
  506. package/dist/src/sandbox/__tests__/docker.test.node.js.map +0 -1
  507. package/dist/src/sandbox/__tests__/errors.test.node.d.ts +0 -2
  508. package/dist/src/sandbox/__tests__/errors.test.node.d.ts.map +0 -1
  509. package/dist/src/sandbox/__tests__/errors.test.node.js +0 -33
  510. package/dist/src/sandbox/__tests__/errors.test.node.js.map +0 -1
  511. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts +0 -2
  512. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts.map +0 -1
  513. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js +0 -124
  514. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js.map +0 -1
  515. package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts +0 -2
  516. package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts.map +0 -1
  517. package/dist/src/sandbox/__tests__/posix-shell.test.node.js +0 -298
  518. package/dist/src/sandbox/__tests__/posix-shell.test.node.js.map +0 -1
  519. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts +0 -2
  520. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts.map +0 -1
  521. package/dist/src/sandbox/__tests__/ssh.test.node.js +0 -262
  522. package/dist/src/sandbox/__tests__/ssh.test.node.js.map +0 -1
  523. package/dist/src/session/__tests__/file-storage.test.node.d.ts +0 -2
  524. package/dist/src/session/__tests__/file-storage.test.node.d.ts.map +0 -1
  525. package/dist/src/session/__tests__/file-storage.test.node.js +0 -278
  526. package/dist/src/session/__tests__/file-storage.test.node.js.map +0 -1
  527. package/dist/src/session/__tests__/s3-storage.test.d.ts +0 -2
  528. package/dist/src/session/__tests__/s3-storage.test.d.ts.map +0 -1
  529. package/dist/src/session/__tests__/s3-storage.test.js +0 -461
  530. package/dist/src/session/__tests__/s3-storage.test.js.map +0 -1
  531. package/dist/src/session/__tests__/session-manager.test.d.ts +0 -2
  532. package/dist/src/session/__tests__/session-manager.test.d.ts.map +0 -1
  533. package/dist/src/session/__tests__/session-manager.test.js +0 -832
  534. package/dist/src/session/__tests__/session-manager.test.js.map +0 -1
  535. package/dist/src/session/__tests__/validation.test.d.ts +0 -2
  536. package/dist/src/session/__tests__/validation.test.d.ts.map +0 -1
  537. package/dist/src/session/__tests__/validation.test.js +0 -47
  538. package/dist/src/session/__tests__/validation.test.js.map +0 -1
  539. package/dist/src/telemetry/__tests__/config.test.d.ts +0 -2
  540. package/dist/src/telemetry/__tests__/config.test.d.ts.map +0 -1
  541. package/dist/src/telemetry/__tests__/config.test.js +0 -64
  542. package/dist/src/telemetry/__tests__/config.test.js.map +0 -1
  543. package/dist/src/telemetry/__tests__/config.test.node.d.ts +0 -2
  544. package/dist/src/telemetry/__tests__/config.test.node.d.ts.map +0 -1
  545. package/dist/src/telemetry/__tests__/config.test.node.js +0 -164
  546. package/dist/src/telemetry/__tests__/config.test.node.js.map +0 -1
  547. package/dist/src/telemetry/__tests__/json.test.d.ts +0 -2
  548. package/dist/src/telemetry/__tests__/json.test.d.ts.map +0 -1
  549. package/dist/src/telemetry/__tests__/json.test.js +0 -89
  550. package/dist/src/telemetry/__tests__/json.test.js.map +0 -1
  551. package/dist/src/telemetry/__tests__/local-trace.test.d.ts +0 -2
  552. package/dist/src/telemetry/__tests__/local-trace.test.d.ts.map +0 -1
  553. package/dist/src/telemetry/__tests__/local-trace.test.js +0 -158
  554. package/dist/src/telemetry/__tests__/local-trace.test.js.map +0 -1
  555. package/dist/src/telemetry/__tests__/meter.test.d.ts +0 -2
  556. package/dist/src/telemetry/__tests__/meter.test.d.ts.map +0 -1
  557. package/dist/src/telemetry/__tests__/meter.test.js +0 -695
  558. package/dist/src/telemetry/__tests__/meter.test.js.map +0 -1
  559. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts +0 -2
  560. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts.map +0 -1
  561. package/dist/src/telemetry/__tests__/tracer.test.node.js +0 -958
  562. package/dist/src/telemetry/__tests__/tracer.test.node.js.map +0 -1
  563. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts +0 -2
  564. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts.map +0 -1
  565. package/dist/src/tools/__tests__/structured-output-tool.test.js +0 -84
  566. package/dist/src/tools/__tests__/structured-output-tool.test.js.map +0 -1
  567. package/dist/src/tools/__tests__/tool-factory.test.d.ts +0 -2
  568. package/dist/src/tools/__tests__/tool-factory.test.d.ts.map +0 -1
  569. package/dist/src/tools/__tests__/tool-factory.test.js +0 -98
  570. package/dist/src/tools/__tests__/tool-factory.test.js.map +0 -1
  571. package/dist/src/tools/__tests__/tool.test.d.ts +0 -2
  572. package/dist/src/tools/__tests__/tool.test.d.ts.map +0 -1
  573. package/dist/src/tools/__tests__/tool.test.js +0 -1043
  574. package/dist/src/tools/__tests__/tool.test.js.map +0 -1
  575. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts +0 -2
  576. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts.map +0 -1
  577. package/dist/src/tools/__tests__/zod-tool.test-d.js +0 -227
  578. package/dist/src/tools/__tests__/zod-tool.test-d.js.map +0 -1
  579. package/dist/src/tools/__tests__/zod-tool.test.d.ts +0 -2
  580. package/dist/src/tools/__tests__/zod-tool.test.d.ts.map +0 -1
  581. package/dist/src/tools/__tests__/zod-tool.test.js +0 -563
  582. package/dist/src/tools/__tests__/zod-tool.test.js.map +0 -1
  583. package/dist/src/types/__tests__/agent.test.d.ts +0 -2
  584. package/dist/src/types/__tests__/agent.test.d.ts.map +0 -1
  585. package/dist/src/types/__tests__/agent.test.js +0 -476
  586. package/dist/src/types/__tests__/agent.test.js.map +0 -1
  587. package/dist/src/types/__tests__/citations.test.d.ts +0 -2
  588. package/dist/src/types/__tests__/citations.test.d.ts.map +0 -1
  589. package/dist/src/types/__tests__/citations.test.js +0 -104
  590. package/dist/src/types/__tests__/citations.test.js.map +0 -1
  591. package/dist/src/types/__tests__/json.test.d.ts +0 -2
  592. package/dist/src/types/__tests__/json.test.d.ts.map +0 -1
  593. package/dist/src/types/__tests__/json.test.js +0 -298
  594. package/dist/src/types/__tests__/json.test.js.map +0 -1
  595. package/dist/src/types/__tests__/media.test.d.ts +0 -2
  596. package/dist/src/types/__tests__/media.test.d.ts.map +0 -1
  597. package/dist/src/types/__tests__/media.test.js +0 -478
  598. package/dist/src/types/__tests__/media.test.js.map +0 -1
  599. package/dist/src/types/__tests__/messages.test.d.ts +0 -2
  600. package/dist/src/types/__tests__/messages.test.d.ts.map +0 -1
  601. package/dist/src/types/__tests__/messages.test.js +0 -681
  602. package/dist/src/types/__tests__/messages.test.js.map +0 -1
  603. package/dist/src/types/__tests__/validation.test.d.ts +0 -2
  604. package/dist/src/types/__tests__/validation.test.d.ts.map +0 -1
  605. package/dist/src/types/__tests__/validation.test.js +0 -30
  606. package/dist/src/types/__tests__/validation.test.js.map +0 -1
  607. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts +0 -2
  608. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts.map +0 -1
  609. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js +0 -756
  610. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js.map +0 -1
  611. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts +0 -2
  612. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts.map +0 -1
  613. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js +0 -358
  614. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js.map +0 -1
  615. package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts +0 -2
  616. package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts.map +0 -1
  617. package/dist/src/vended-interventions/steering/__tests__/handler.test.js +0 -163
  618. package/dist/src/vended-interventions/steering/__tests__/handler.test.js.map +0 -1
  619. package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts +0 -2
  620. package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts.map +0 -1
  621. package/dist/src/vended-interventions/steering/__tests__/llm.test.js +0 -60
  622. package/dist/src/vended-interventions/steering/__tests__/llm.test.js.map +0 -1
  623. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts +0 -2
  624. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts.map +0 -1
  625. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js +0 -94
  626. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js.map +0 -1
  627. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts +0 -2
  628. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts.map +0 -1
  629. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.js +0 -758
  630. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.js.map +0 -1
  631. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts +0 -2
  632. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts.map +0 -1
  633. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js +0 -96
  634. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js.map +0 -1
  635. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts +0 -2
  636. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts.map +0 -1
  637. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js +0 -68
  638. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js.map +0 -1
  639. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts +0 -2
  640. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts.map +0 -1
  641. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +0 -539
  642. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +0 -1
  643. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts +0 -2
  644. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts.map +0 -1
  645. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js +0 -97
  646. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js.map +0 -1
  647. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts +0 -2
  648. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts.map +0 -1
  649. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js +0 -149
  650. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js.map +0 -1
  651. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts +0 -2
  652. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts.map +0 -1
  653. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +0 -216
  654. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +0 -1
  655. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts +0 -2
  656. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts.map +0 -1
  657. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js +0 -78
  658. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js.map +0 -1
  659. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts +0 -2
  660. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts.map +0 -1
  661. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js +0 -736
  662. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js.map +0 -1
  663. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts +0 -2
  664. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts.map +0 -1
  665. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +0 -482
  666. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +0 -1
  667. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts +0 -2
  668. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts.map +0 -1
  669. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js +0 -476
  670. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js.map +0 -1
  671. package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts +0 -2
  672. package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts.map +0 -1
  673. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +0 -390
  674. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +0 -1
  675. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts +0 -2
  676. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts.map +0 -1
  677. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +0 -452
  678. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +0 -1
  679. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts +0 -2
  680. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts.map +0 -1
  681. package/dist/src/vended-tools/http-request/__tests__/http-request.test.js +0 -189
  682. package/dist/src/vended-tools/http-request/__tests__/http-request.test.js.map +0 -1
  683. package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts +0 -2
  684. package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts.map +0 -1
  685. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +0 -388
  686. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +0 -1
@@ -1,921 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { Message, TextBlock, ToolUseBlock, ToolResultBlock, ReasoningBlock, GuardContentBlock, } from '../../types/messages.js';
3
- import { CitationsBlock } from '../../types/citations.js';
4
- import { TestModelProvider, collectGenerator } from '../../__fixtures__/model-test-helpers.js';
5
- import { MaxTokensError, ModelError } from '../../errors.js';
6
- import { Model } from '../model.js';
7
- /**
8
- * Test model provider that throws an error from stream().
9
- */
10
- class ErrorThrowingModelProvider extends Model {
11
- config = { modelId: 'test-model' };
12
- errorToThrow;
13
- constructor(errorToThrow) {
14
- super();
15
- this.errorToThrow = errorToThrow;
16
- }
17
- updateConfig(modelConfig) {
18
- this.config = { ...this.config, ...modelConfig };
19
- }
20
- getConfig() {
21
- return this.config;
22
- }
23
- // eslint-disable-next-line require-yield
24
- async *stream(_messages, _options) {
25
- throw this.errorToThrow;
26
- }
27
- }
28
- describe('Model', () => {
29
- describe('streamAggregated', () => {
30
- describe('when streaming a simple text message', () => {
31
- it('yields original events plus aggregated content block and returns final message', async () => {
32
- const provider = new TestModelProvider(async function* () {
33
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
34
- yield { type: 'modelContentBlockStartEvent' };
35
- yield {
36
- type: 'modelContentBlockDeltaEvent',
37
- delta: { type: 'textDelta', text: 'Hello' },
38
- };
39
- yield { type: 'modelContentBlockStopEvent' };
40
- yield { type: 'modelMessageStopEvent', stopReason: 'endTurn' };
41
- yield {
42
- type: 'modelMetadataEvent',
43
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
44
- };
45
- });
46
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
47
- const { items, result } = await collectGenerator(provider.streamAggregated(messages));
48
- // Verify all yielded items (events + aggregated content block + metadata)
49
- expect(items).toEqual([
50
- { type: 'modelMessageStartEvent', role: 'assistant' },
51
- { type: 'modelContentBlockStartEvent' },
52
- {
53
- type: 'modelContentBlockDeltaEvent',
54
- delta: { type: 'textDelta', text: 'Hello' },
55
- },
56
- { type: 'modelContentBlockStopEvent' },
57
- { type: 'textBlock', text: 'Hello' },
58
- { type: 'modelMessageStopEvent', stopReason: 'endTurn' },
59
- {
60
- type: 'modelMetadataEvent',
61
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
62
- },
63
- ]);
64
- // Verify the returned result includes metadata
65
- expect(result).toEqual({
66
- message: {
67
- type: 'message',
68
- role: 'assistant',
69
- content: [{ type: 'textBlock', text: 'Hello' }],
70
- metadata: {
71
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
72
- },
73
- },
74
- stopReason: 'endTurn',
75
- metadata: {
76
- type: 'modelMetadataEvent',
77
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
78
- },
79
- });
80
- });
81
- it('throws MaxTokenError when stopReason is MaxTokenError', async () => {
82
- const provider = new TestModelProvider(async function* () {
83
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
84
- yield { type: 'modelContentBlockStartEvent' };
85
- yield {
86
- type: 'modelContentBlockDeltaEvent',
87
- delta: { type: 'textDelta', text: 'Hello' },
88
- };
89
- yield { type: 'modelContentBlockStopEvent' };
90
- yield { type: 'modelMessageStopEvent', stopReason: 'maxTokens' };
91
- yield {
92
- type: 'modelMetadataEvent',
93
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
94
- };
95
- });
96
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
97
- await expect(async () => await collectGenerator(provider.streamAggregated(messages))).rejects.toThrow('Model reached maximum token limit. This is an unrecoverable state that requires intervention.');
98
- });
99
- });
100
- describe('when streaming multiple text blocks', () => {
101
- it('yields all blocks in order', async () => {
102
- const provider = new TestModelProvider(async function* () {
103
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
104
- yield { type: 'modelContentBlockStartEvent' };
105
- yield {
106
- type: 'modelContentBlockDeltaEvent',
107
- delta: { type: 'textDelta', text: 'First' },
108
- };
109
- yield { type: 'modelContentBlockStopEvent' };
110
- yield { type: 'modelContentBlockStartEvent' };
111
- yield {
112
- type: 'modelContentBlockDeltaEvent',
113
- delta: { type: 'textDelta', text: 'Second' },
114
- };
115
- yield { type: 'modelContentBlockStopEvent' };
116
- yield { type: 'modelMessageStopEvent', stopReason: 'endTurn' };
117
- yield {
118
- type: 'modelMetadataEvent',
119
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
120
- };
121
- });
122
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
123
- const { items, result } = await collectGenerator(provider.streamAggregated(messages));
124
- expect(items).toContainEqual({ type: 'textBlock', text: 'First' });
125
- expect(items).toContainEqual({ type: 'textBlock', text: 'Second' });
126
- expect(items).toContainEqual({
127
- type: 'modelMetadataEvent',
128
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
129
- });
130
- expect(result).toEqual({
131
- message: {
132
- type: 'message',
133
- role: 'assistant',
134
- content: [
135
- { type: 'textBlock', text: 'First' },
136
- { type: 'textBlock', text: 'Second' },
137
- ],
138
- metadata: {
139
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
140
- },
141
- },
142
- stopReason: 'endTurn',
143
- metadata: {
144
- type: 'modelMetadataEvent',
145
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
146
- },
147
- });
148
- });
149
- });
150
- describe('when streaming tool use', () => {
151
- it('yields complete tool use block', async () => {
152
- const provider = new TestModelProvider(async function* () {
153
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
154
- yield {
155
- type: 'modelContentBlockStartEvent',
156
- start: { type: 'toolUseStart', toolUseId: 'tool1', name: 'get_weather' },
157
- };
158
- yield {
159
- type: 'modelContentBlockDeltaEvent',
160
- delta: { type: 'toolUseInputDelta', input: '{"location"' },
161
- };
162
- yield {
163
- type: 'modelContentBlockDeltaEvent',
164
- delta: { type: 'toolUseInputDelta', input: ': "Paris"}' },
165
- };
166
- yield { type: 'modelContentBlockStopEvent' };
167
- yield { type: 'modelMessageStopEvent', stopReason: 'toolUse' };
168
- yield {
169
- type: 'modelMetadataEvent',
170
- usage: { inputTokens: 10, outputTokens: 8, totalTokens: 18 },
171
- };
172
- });
173
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
174
- const { items, result } = await collectGenerator(provider.streamAggregated(messages));
175
- expect(items).toContainEqual({
176
- type: 'toolUseBlock',
177
- toolUseId: 'tool1',
178
- name: 'get_weather',
179
- input: { location: 'Paris' },
180
- });
181
- expect(items).toContainEqual({
182
- type: 'modelMetadataEvent',
183
- usage: { inputTokens: 10, outputTokens: 8, totalTokens: 18 },
184
- });
185
- expect(result).toEqual({
186
- message: {
187
- type: 'message',
188
- role: 'assistant',
189
- content: [
190
- {
191
- type: 'toolUseBlock',
192
- toolUseId: 'tool1',
193
- name: 'get_weather',
194
- input: { location: 'Paris' },
195
- },
196
- ],
197
- metadata: {
198
- usage: { inputTokens: 10, outputTokens: 8, totalTokens: 18 },
199
- },
200
- },
201
- stopReason: 'toolUse',
202
- metadata: {
203
- type: 'modelMetadataEvent',
204
- usage: { inputTokens: 10, outputTokens: 8, totalTokens: 18 },
205
- },
206
- });
207
- });
208
- it('yields complete tool use block with empty input', async () => {
209
- const provider = new TestModelProvider(async function* () {
210
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
211
- yield {
212
- type: 'modelContentBlockStartEvent',
213
- start: { type: 'toolUseStart', toolUseId: 'tool1', name: 'get_time' },
214
- };
215
- yield {
216
- type: 'modelContentBlockDeltaEvent',
217
- delta: { type: 'toolUseInputDelta', input: '' },
218
- };
219
- yield { type: 'modelContentBlockStopEvent' };
220
- yield { type: 'modelMessageStopEvent', stopReason: 'toolUse' };
221
- yield {
222
- type: 'modelMetadataEvent',
223
- usage: { inputTokens: 10, outputTokens: 8, totalTokens: 18 },
224
- };
225
- });
226
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
227
- const { items, result } = await collectGenerator(provider.streamAggregated(messages));
228
- expect(items).toContainEqual({
229
- type: 'toolUseBlock',
230
- toolUseId: 'tool1',
231
- name: 'get_time',
232
- input: {},
233
- });
234
- expect(items).toContainEqual({
235
- type: 'modelMetadataEvent',
236
- usage: { inputTokens: 10, outputTokens: 8, totalTokens: 18 },
237
- });
238
- expect(result).toEqual({
239
- message: {
240
- type: 'message',
241
- role: 'assistant',
242
- content: [
243
- {
244
- type: 'toolUseBlock',
245
- toolUseId: 'tool1',
246
- name: 'get_time',
247
- input: {},
248
- },
249
- ],
250
- metadata: {
251
- usage: { inputTokens: 10, outputTokens: 8, totalTokens: 18 },
252
- },
253
- },
254
- stopReason: 'toolUse',
255
- metadata: {
256
- type: 'modelMetadataEvent',
257
- usage: { inputTokens: 10, outputTokens: 8, totalTokens: 18 },
258
- },
259
- });
260
- });
261
- it('throws MaxTokenError when stopReason is MaxTokenError and toolUse is partial', async () => {
262
- const provider = new TestModelProvider(async function* () {
263
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
264
- yield {
265
- type: 'modelContentBlockStartEvent',
266
- start: { type: 'toolUseStart', toolUseId: 'tool1', name: 'get_weather' },
267
- };
268
- yield {
269
- type: 'modelContentBlockDeltaEvent',
270
- delta: { type: 'toolUseInputDelta', input: '{"location"' },
271
- };
272
- yield { type: 'modelMessageStopEvent', stopReason: 'maxTokens' };
273
- yield {
274
- type: 'modelMetadataEvent',
275
- usage: { inputTokens: 10, outputTokens: 8, totalTokens: 18 },
276
- };
277
- });
278
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
279
- await expect(async () => await collectGenerator(provider.streamAggregated(messages))).rejects.toThrow(MaxTokensError);
280
- });
281
- it('throws MaxTokensError when contentBlockStop arrives with truncated tool input JSON and stopReason is maxTokens', async () => {
282
- const provider = new TestModelProvider(async function* () {
283
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
284
- yield {
285
- type: 'modelContentBlockStartEvent',
286
- start: { type: 'toolUseStart', toolUseId: 't', name: 'tool' },
287
- };
288
- yield {
289
- type: 'modelContentBlockDeltaEvent',
290
- delta: { type: 'toolUseInputDelta', input: '{"field": "value"' },
291
- };
292
- yield { type: 'modelContentBlockStopEvent' };
293
- yield { type: 'modelMessageStopEvent', stopReason: 'maxTokens' };
294
- });
295
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
296
- await expect(async () => await collectGenerator(provider.streamAggregated(messages))).rejects.toThrow(MaxTokensError);
297
- });
298
- it('surfaces SyntaxError as cause when tool input JSON is malformed and stopReason is not maxTokens', async () => {
299
- const provider = new TestModelProvider(async function* () {
300
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
301
- yield {
302
- type: 'modelContentBlockStartEvent',
303
- start: { type: 'toolUseStart', toolUseId: 't', name: 'tool' },
304
- };
305
- yield {
306
- type: 'modelContentBlockDeltaEvent',
307
- delta: { type: 'toolUseInputDelta', input: '{invalid json' },
308
- };
309
- yield { type: 'modelContentBlockStopEvent' };
310
- yield { type: 'modelMessageStopEvent', stopReason: 'toolUse' };
311
- });
312
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
313
- try {
314
- await collectGenerator(provider.streamAggregated(messages));
315
- expect.fail('Expected error to be thrown');
316
- }
317
- catch (error) {
318
- expect(error).toBeInstanceOf(ModelError);
319
- expect(error).not.toBeInstanceOf(MaxTokensError);
320
- expect(error.message).toBe('unable to parse tool input JSON');
321
- expect(error.cause).toBeInstanceOf(SyntaxError);
322
- }
323
- });
324
- it('attaches SyntaxError as cause when stream ends without a stop event after malformed tool input', async () => {
325
- const provider = new TestModelProvider(async function* () {
326
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
327
- yield {
328
- type: 'modelContentBlockStartEvent',
329
- start: { type: 'toolUseStart', toolUseId: 't', name: 'tool' },
330
- };
331
- yield {
332
- type: 'modelContentBlockDeltaEvent',
333
- delta: { type: 'toolUseInputDelta', input: '{invalid json' },
334
- };
335
- yield { type: 'modelContentBlockStopEvent' };
336
- });
337
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
338
- try {
339
- await collectGenerator(provider.streamAggregated(messages));
340
- expect.fail('Expected error to be thrown');
341
- }
342
- catch (error) {
343
- expect(error).toBeInstanceOf(ModelError);
344
- expect(error).not.toBeInstanceOf(MaxTokensError);
345
- expect(error.message).toBe('Stream ended without completing a message');
346
- expect(error.cause).toBeInstanceOf(SyntaxError);
347
- }
348
- });
349
- });
350
- describe('when streaming reasoning content', () => {
351
- it('yields complete reasoning block', async () => {
352
- const provider = new TestModelProvider(async function* () {
353
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
354
- yield { type: 'modelContentBlockStartEvent' };
355
- yield {
356
- type: 'modelContentBlockDeltaEvent',
357
- delta: { type: 'reasoningContentDelta', text: 'Thinking about', signature: 'sig1' },
358
- };
359
- yield {
360
- type: 'modelContentBlockDeltaEvent',
361
- delta: { type: 'reasoningContentDelta', text: ' the problem' },
362
- };
363
- yield { type: 'modelContentBlockStopEvent' };
364
- yield { type: 'modelMessageStopEvent', stopReason: 'endTurn' };
365
- yield {
366
- type: 'modelMetadataEvent',
367
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
368
- };
369
- });
370
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
371
- const { items, result } = await collectGenerator(provider.streamAggregated(messages));
372
- expect(items).toContainEqual({
373
- type: 'reasoningBlock',
374
- text: 'Thinking about the problem',
375
- signature: 'sig1',
376
- });
377
- expect(items).toContainEqual({
378
- type: 'modelMetadataEvent',
379
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
380
- });
381
- expect(result).toEqual({
382
- message: {
383
- type: 'message',
384
- role: 'assistant',
385
- content: [
386
- {
387
- type: 'reasoningBlock',
388
- text: 'Thinking about the problem',
389
- signature: 'sig1',
390
- },
391
- ],
392
- metadata: {
393
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
394
- },
395
- },
396
- stopReason: 'endTurn',
397
- metadata: {
398
- type: 'modelMetadataEvent',
399
- usage: { inputTokens: 10, outputTokens: 10, totalTokens: 20 },
400
- },
401
- });
402
- });
403
- it('yields redacted content reasoning block', async () => {
404
- const provider = new TestModelProvider(async function* () {
405
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
406
- yield { type: 'modelContentBlockStartEvent' };
407
- yield {
408
- type: 'modelContentBlockDeltaEvent',
409
- delta: { type: 'reasoningContentDelta', redactedContent: new Uint8Array(0) },
410
- };
411
- yield { type: 'modelContentBlockStopEvent' };
412
- yield { type: 'modelMessageStopEvent', stopReason: 'endTurn' };
413
- yield {
414
- type: 'modelMetadataEvent',
415
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
416
- };
417
- });
418
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
419
- const { items, result } = await collectGenerator(provider.streamAggregated(messages));
420
- expect(items).toContainEqual({
421
- type: 'reasoningBlock',
422
- redactedContent: new Uint8Array(0),
423
- });
424
- expect(items).toContainEqual({
425
- type: 'modelMetadataEvent',
426
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
427
- });
428
- expect(result).toEqual({
429
- message: {
430
- type: 'message',
431
- role: 'assistant',
432
- content: [
433
- {
434
- type: 'reasoningBlock',
435
- redactedContent: new Uint8Array(0),
436
- },
437
- ],
438
- metadata: {
439
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
440
- },
441
- },
442
- stopReason: 'endTurn',
443
- metadata: {
444
- type: 'modelMetadataEvent',
445
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
446
- },
447
- });
448
- });
449
- it('omits signature if not present', async () => {
450
- const provider = new TestModelProvider(async function* () {
451
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
452
- yield { type: 'modelContentBlockStartEvent' };
453
- yield {
454
- type: 'modelContentBlockDeltaEvent',
455
- delta: { type: 'reasoningContentDelta', text: 'Thinking' },
456
- };
457
- yield { type: 'modelContentBlockStopEvent' };
458
- yield { type: 'modelMessageStopEvent', stopReason: 'endTurn' };
459
- yield {
460
- type: 'modelMetadataEvent',
461
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
462
- };
463
- });
464
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
465
- const { items, result } = await collectGenerator(provider.streamAggregated(messages));
466
- expect(items).toContainEqual({
467
- type: 'reasoningBlock',
468
- text: 'Thinking',
469
- });
470
- expect(items).toContainEqual({
471
- type: 'modelMetadataEvent',
472
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
473
- });
474
- expect(result).toEqual({
475
- message: {
476
- type: 'message',
477
- role: 'assistant',
478
- content: [
479
- {
480
- type: 'reasoningBlock',
481
- text: 'Thinking',
482
- },
483
- ],
484
- metadata: {
485
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
486
- },
487
- },
488
- stopReason: 'endTurn',
489
- metadata: {
490
- type: 'modelMetadataEvent',
491
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
492
- },
493
- });
494
- });
495
- });
496
- describe('when streaming mixed content blocks', () => {
497
- it('yields all blocks in correct order', async () => {
498
- const provider = new TestModelProvider(async function* () {
499
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
500
- yield { type: 'modelContentBlockStartEvent' };
501
- yield {
502
- type: 'modelContentBlockDeltaEvent',
503
- delta: { type: 'textDelta', text: 'Hello' },
504
- };
505
- yield { type: 'modelContentBlockStopEvent' };
506
- yield {
507
- type: 'modelContentBlockStartEvent',
508
- start: { type: 'toolUseStart', toolUseId: 'tool1', name: 'get_weather' },
509
- };
510
- yield {
511
- type: 'modelContentBlockDeltaEvent',
512
- delta: { type: 'toolUseInputDelta', input: '{"city": "Paris"}' },
513
- };
514
- yield { type: 'modelContentBlockStopEvent' };
515
- yield { type: 'modelContentBlockStartEvent' };
516
- yield {
517
- type: 'modelContentBlockDeltaEvent',
518
- delta: { type: 'reasoningContentDelta', text: 'Reasoning', signature: 'sig1' },
519
- };
520
- yield { type: 'modelContentBlockStopEvent' };
521
- yield { type: 'modelMessageStopEvent', stopReason: 'endTurn' };
522
- yield {
523
- type: 'modelMetadataEvent',
524
- usage: { inputTokens: 10, outputTokens: 15, totalTokens: 25 },
525
- };
526
- });
527
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
528
- const { items, result } = await collectGenerator(provider.streamAggregated(messages));
529
- expect(items).toContainEqual({ type: 'textBlock', text: 'Hello' });
530
- expect(items).toContainEqual({
531
- type: 'toolUseBlock',
532
- toolUseId: 'tool1',
533
- name: 'get_weather',
534
- input: { city: 'Paris' },
535
- });
536
- expect(items).toContainEqual({ type: 'reasoningBlock', text: 'Reasoning', signature: 'sig1' });
537
- expect(items).toContainEqual({
538
- type: 'modelMetadataEvent',
539
- usage: { inputTokens: 10, outputTokens: 15, totalTokens: 25 },
540
- });
541
- expect(result).toEqual({
542
- message: {
543
- type: 'message',
544
- role: 'assistant',
545
- content: [
546
- { type: 'textBlock', text: 'Hello' },
547
- { type: 'toolUseBlock', toolUseId: 'tool1', name: 'get_weather', input: { city: 'Paris' } },
548
- { type: 'reasoningBlock', text: 'Reasoning', signature: 'sig1' },
549
- ],
550
- metadata: {
551
- usage: { inputTokens: 10, outputTokens: 15, totalTokens: 25 },
552
- },
553
- },
554
- stopReason: 'endTurn',
555
- metadata: {
556
- type: 'modelMetadataEvent',
557
- usage: { inputTokens: 10, outputTokens: 15, totalTokens: 25 },
558
- },
559
- });
560
- });
561
- });
562
- describe('when multiple metadata events are emitted', () => {
563
- it('yields all metadata events but keeps only the last one in return value', async () => {
564
- const provider = new TestModelProvider(async function* () {
565
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
566
- yield { type: 'modelContentBlockStartEvent' };
567
- yield {
568
- type: 'modelContentBlockDeltaEvent',
569
- delta: { type: 'textDelta', text: 'Hello' },
570
- };
571
- yield { type: 'modelContentBlockStopEvent' };
572
- yield { type: 'modelMessageStopEvent', stopReason: 'endTurn' };
573
- yield {
574
- type: 'modelMetadataEvent',
575
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
576
- };
577
- yield {
578
- type: 'modelMetadataEvent',
579
- usage: { inputTokens: 20, outputTokens: 10, totalTokens: 30 },
580
- metrics: { latencyMs: 100 },
581
- };
582
- });
583
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
584
- const { items, result } = await collectGenerator(provider.streamAggregated(messages));
585
- // Both metadata events should be yielded
586
- expect(items).toContainEqual({
587
- type: 'modelMetadataEvent',
588
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
589
- });
590
- expect(items).toContainEqual({
591
- type: 'modelMetadataEvent',
592
- usage: { inputTokens: 20, outputTokens: 10, totalTokens: 30 },
593
- metrics: { latencyMs: 100 },
594
- });
595
- // Only the last metadata should be in return value
596
- expect(result).toEqual({
597
- message: {
598
- type: 'message',
599
- role: 'assistant',
600
- content: [{ type: 'textBlock', text: 'Hello' }],
601
- metadata: {
602
- usage: { inputTokens: 20, outputTokens: 10, totalTokens: 30 },
603
- metrics: { latencyMs: 100 },
604
- },
605
- },
606
- stopReason: 'endTurn',
607
- metadata: {
608
- type: 'modelMetadataEvent',
609
- usage: { inputTokens: 20, outputTokens: 10, totalTokens: 30 },
610
- metrics: { latencyMs: 100 },
611
- },
612
- });
613
- });
614
- });
615
- describe('when no metadata events are emitted', () => {
616
- it('returns result with undefined metadata', async () => {
617
- const provider = new TestModelProvider(async function* () {
618
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
619
- yield { type: 'modelContentBlockStartEvent' };
620
- yield {
621
- type: 'modelContentBlockDeltaEvent',
622
- delta: { type: 'textDelta', text: 'Hello' },
623
- };
624
- yield { type: 'modelContentBlockStopEvent' };
625
- yield { type: 'modelMessageStopEvent', stopReason: 'endTurn' };
626
- });
627
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
628
- const { items, result } = await collectGenerator(provider.streamAggregated(messages));
629
- // No metadata event should be in yielded items
630
- expect(items.filter((item) => item.type === 'modelMetadataEvent')).toHaveLength(0);
631
- // Metadata should be undefined in return value
632
- expect(result).toEqual({
633
- message: {
634
- type: 'message',
635
- role: 'assistant',
636
- content: [{ type: 'textBlock', text: 'Hello' }],
637
- },
638
- stopReason: 'endTurn',
639
- metadata: undefined,
640
- });
641
- });
642
- });
643
- describe('when stream() throws an error', () => {
644
- it('wraps non-ModelError errors in ModelError with original as cause', async () => {
645
- const originalError = new Error('API connection failed');
646
- const provider = new ErrorThrowingModelProvider(originalError);
647
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
648
- try {
649
- await collectGenerator(provider.streamAggregated(messages));
650
- expect.fail('Expected error to be thrown');
651
- }
652
- catch (error) {
653
- expect(error).toBeInstanceOf(ModelError);
654
- expect(error.message).toBe('API connection failed');
655
- expect(error.cause).toBe(originalError);
656
- }
657
- });
658
- });
659
- describe('when receiving redact content events', () => {
660
- it('returns redaction.userMessage when inputRedaction is present', async () => {
661
- const provider = new TestModelProvider(async function* () {
662
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
663
- yield { type: 'modelContentBlockStartEvent' };
664
- yield {
665
- type: 'modelContentBlockDeltaEvent',
666
- delta: { type: 'textDelta', text: 'Hello' },
667
- };
668
- yield { type: 'modelContentBlockStopEvent' };
669
- yield { type: 'modelMessageStopEvent', stopReason: 'guardrailIntervened' };
670
- yield {
671
- type: 'modelMetadataEvent',
672
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
673
- };
674
- yield {
675
- type: 'modelRedactionEvent',
676
- inputRedaction: { replaceContent: '[User input redacted.]' },
677
- };
678
- });
679
- const messages = [new Message({ role: 'user', content: [new TextBlock('Sensitive content')] })];
680
- const { result } = await collectGenerator(provider.streamAggregated(messages));
681
- // Verify redaction.userMessage is returned for agent to handle
682
- expect(result.redaction?.userMessage).toBe('[User input redacted.]');
683
- // Messages array should NOT be modified (agent handles this)
684
- expect(messages[0].content).toEqual([{ type: 'textBlock', text: 'Sensitive content' }]);
685
- });
686
- it('redacts assistant message directly when outputRedaction is present', async () => {
687
- const provider = new TestModelProvider(async function* () {
688
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
689
- yield { type: 'modelContentBlockStartEvent' };
690
- yield {
691
- type: 'modelContentBlockDeltaEvent',
692
- delta: { type: 'textDelta', text: 'Harmful content' },
693
- };
694
- yield { type: 'modelContentBlockStopEvent' };
695
- yield { type: 'modelMessageStopEvent', stopReason: 'guardrailIntervened' };
696
- yield {
697
- type: 'modelMetadataEvent',
698
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
699
- };
700
- yield {
701
- type: 'modelRedactionEvent',
702
- outputRedaction: { replaceContent: '[Assistant output redacted.]' },
703
- };
704
- });
705
- const messages = [new Message({ role: 'user', content: [new TextBlock('Tell me something')] })];
706
- const { result } = await collectGenerator(provider.streamAggregated(messages));
707
- // Assistant message is redacted directly by the model
708
- expect(result.message.role).toBe('assistant');
709
- expect(result.message.content).toEqual([{ type: 'textBlock', text: '[Assistant output redacted.]' }]);
710
- // No redaction.userMessage since assistant redaction is handled directly
711
- expect(result.redaction?.userMessage).toBeUndefined();
712
- });
713
- it('returns redactionMessage and redacts assistant when both are present', async () => {
714
- const provider = new TestModelProvider(async function* () {
715
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
716
- yield { type: 'modelContentBlockStartEvent' };
717
- yield {
718
- type: 'modelContentBlockDeltaEvent',
719
- delta: { type: 'textDelta', text: 'Response' },
720
- };
721
- yield { type: 'modelContentBlockStopEvent' };
722
- yield { type: 'modelMessageStopEvent', stopReason: 'guardrailIntervened' };
723
- yield {
724
- type: 'modelMetadataEvent',
725
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
726
- };
727
- yield {
728
- type: 'modelRedactionEvent',
729
- inputRedaction: { replaceContent: '[User input redacted.]' },
730
- };
731
- yield {
732
- type: 'modelRedactionEvent',
733
- outputRedaction: { replaceContent: '[Assistant output redacted.]' },
734
- };
735
- });
736
- const messages = [new Message({ role: 'user', content: [new TextBlock('Input')] })];
737
- const { result } = await collectGenerator(provider.streamAggregated(messages));
738
- // Verify redaction.userMessage is returned for agent to handle user redaction
739
- expect(result.redaction?.userMessage).toBe('[User input redacted.]');
740
- // Assistant message is redacted directly
741
- expect(result.message.role).toBe('assistant');
742
- expect(result.message.content).toEqual([{ type: 'textBlock', text: '[Assistant output redacted.]' }]);
743
- });
744
- it('does not include redaction when no redact events are received', async () => {
745
- const provider = new TestModelProvider(async function* () {
746
- yield { type: 'modelMessageStartEvent', role: 'assistant' };
747
- yield { type: 'modelContentBlockStartEvent' };
748
- yield {
749
- type: 'modelContentBlockDeltaEvent',
750
- delta: { type: 'textDelta', text: 'Hello' },
751
- };
752
- yield { type: 'modelContentBlockStopEvent' };
753
- yield { type: 'modelMessageStopEvent', stopReason: 'endTurn' };
754
- yield {
755
- type: 'modelMetadataEvent',
756
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
757
- };
758
- });
759
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hello')] })];
760
- const { result } = await collectGenerator(provider.streamAggregated(messages));
761
- // Verify redaction.userMessage is undefined
762
- expect(result.redaction?.userMessage).toBeUndefined();
763
- });
764
- });
765
- });
766
- });
767
- describe('Model.modelId', () => {
768
- it('returns modelId from model config', () => {
769
- const provider = new TestModelProvider();
770
- provider.updateConfig({ modelId: 'my-model' });
771
- expect(provider.modelId).toBe('my-model');
772
- });
773
- });
774
- describe('countTokens', () => {
775
- it('estimates text block tokens using chars/4 heuristic', async () => {
776
- const provider = new TestModelProvider();
777
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hello world')] })];
778
- const result = await provider.countTokens(messages);
779
- expect(result).toBe(3);
780
- });
781
- it('estimates toolUse block tokens (name + JSON input)', async () => {
782
- const provider = new TestModelProvider();
783
- const messages = [
784
- new Message({
785
- role: 'assistant',
786
- content: [new ToolUseBlock({ name: 'get_weather', toolUseId: 'id1', input: { city: 'Seattle' } })],
787
- }),
788
- ];
789
- const result = await provider.countTokens(messages);
790
- expect(result).toBe(3 + 9);
791
- });
792
- it('estimates toolResult block tokens (text items only)', async () => {
793
- const provider = new TestModelProvider();
794
- const messages = [
795
- new Message({
796
- role: 'user',
797
- content: [
798
- new ToolResultBlock({
799
- toolUseId: 'id1',
800
- status: 'success',
801
- content: [new TextBlock('72°F and sunny')],
802
- }),
803
- ],
804
- }),
805
- ];
806
- const result = await provider.countTokens(messages);
807
- expect(result).toBe(Math.ceil('72°F and sunny'.length / 4));
808
- });
809
- it('estimates reasoning block tokens', async () => {
810
- const provider = new TestModelProvider();
811
- const messages = [
812
- new Message({
813
- role: 'assistant',
814
- content: [new ReasoningBlock({ text: 'Let me think about this step by step' })],
815
- }),
816
- ];
817
- const result = await provider.countTokens(messages);
818
- expect(result).toBe(Math.ceil('Let me think about this step by step'.length / 4));
819
- });
820
- it('estimates guardContent block tokens', async () => {
821
- const provider = new TestModelProvider();
822
- const messages = [
823
- new Message({
824
- role: 'user',
825
- content: [
826
- new GuardContentBlock({
827
- text: { qualifiers: ['query'], text: 'Is this safe?' },
828
- }),
829
- ],
830
- }),
831
- ];
832
- const result = await provider.countTokens(messages);
833
- expect(result).toBe(Math.ceil('Is this safe?'.length / 4));
834
- });
835
- it('estimates citations block tokens', async () => {
836
- const provider = new TestModelProvider();
837
- const messages = [
838
- new Message({
839
- role: 'assistant',
840
- content: [
841
- new CitationsBlock({
842
- citations: [],
843
- content: [{ text: 'cited text here' }],
844
- }),
845
- ],
846
- }),
847
- ];
848
- const result = await provider.countTokens(messages);
849
- expect(result).toBe(Math.ceil('cited text here'.length / 4));
850
- });
851
- it('estimates string system prompt tokens', async () => {
852
- const provider = new TestModelProvider();
853
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
854
- const result = await provider.countTokens(messages, {
855
- systemPrompt: 'You are a helpful assistant',
856
- });
857
- expect(result).toBe(Math.ceil('You are a helpful assistant'.length / 4) + Math.ceil('Hi'.length / 4));
858
- });
859
- it('estimates array system prompt tokens', async () => {
860
- const provider = new TestModelProvider();
861
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
862
- const result = await provider.countTokens(messages, {
863
- systemPrompt: [new TextBlock('System instructions')],
864
- });
865
- expect(result).toBe(Math.ceil('System instructions'.length / 4) + Math.ceil('Hi'.length / 4));
866
- });
867
- it('estimates tool spec tokens', async () => {
868
- const provider = new TestModelProvider();
869
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
870
- const toolSpecs = [{ name: 'get_weather', description: 'Get weather for a city' }];
871
- const result = await provider.countTokens(messages, { toolSpecs });
872
- const specJson = JSON.stringify(toolSpecs[0]);
873
- expect(result).toBe(Math.ceil('Hi'.length / 4) + Math.ceil(specJson.length / 2));
874
- });
875
- it('returns 0 for empty messages', async () => {
876
- const provider = new TestModelProvider();
877
- const result = await provider.countTokens([]);
878
- expect(result).toBe(0);
879
- });
880
- it('skips reasoning blocks without text', async () => {
881
- const provider = new TestModelProvider();
882
- const messages = [
883
- new Message({
884
- role: 'assistant',
885
- content: [new ReasoningBlock({ signature: 'sig123' })],
886
- }),
887
- ];
888
- const result = await provider.countTokens(messages);
889
- expect(result).toBe(0);
890
- });
891
- it('estimates guardContent in array system prompt', async () => {
892
- const provider = new TestModelProvider();
893
- const messages = [new Message({ role: 'user', content: [new TextBlock('Hi')] })];
894
- const result = await provider.countTokens(messages, {
895
- systemPrompt: [new GuardContentBlock({ text: { qualifiers: ['query'], text: 'Guard text here' } })],
896
- });
897
- expect(result).toBe(Math.ceil('Guard text here'.length / 4) + Math.ceil('Hi'.length / 4));
898
- });
899
- it('accumulates tokens across multiple messages with mixed content', async () => {
900
- const provider = new TestModelProvider();
901
- const messages = [
902
- new Message({ role: 'user', content: [new TextBlock('What is the weather?')] }),
903
- new Message({
904
- role: 'assistant',
905
- content: [new ToolUseBlock({ name: 'get_weather', toolUseId: 'id1', input: { city: 'Seattle' } })],
906
- }),
907
- new Message({
908
- role: 'user',
909
- content: [new ToolResultBlock({ toolUseId: 'id1', status: 'success', content: [new TextBlock('72F')] })],
910
- }),
911
- ];
912
- const result = await provider.countTokens(messages, { systemPrompt: 'You are helpful' });
913
- const expected = Math.ceil('You are helpful'.length / 4) +
914
- Math.ceil('What is the weather?'.length / 4) +
915
- Math.ceil('get_weather'.length / 4) +
916
- Math.ceil(JSON.stringify({ city: 'Seattle' }).length / 2) +
917
- Math.ceil('72F'.length / 4);
918
- expect(result).toBe(expected);
919
- });
920
- });
921
- //# sourceMappingURL=model.test.js.map