@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,709 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
- import OpenAI from 'openai';
3
- import { isNode } from '../../../__fixtures__/environment.js';
4
- import { OpenAIModel } from '../index.js';
5
- import { ContextWindowOverflowError, ModelThrottledError } from '../../../errors.js';
6
- import { collectIterator } from '../../../__fixtures__/model-test-helpers.js';
7
- import { Message, TextBlock, ToolUseBlock, ToolResultBlock } from '../../../types/messages.js';
8
- import { ImageBlock, DocumentBlock } from '../../../types/media.js';
9
- import { StateStore } from '../../../state-store.js';
10
- import { logger } from '../../../logging/logger.js';
11
- /**
12
- * Build a mock OpenAI client whose `responses.create` returns the given async generator.
13
- * The last request passed to `create` is captured on `capture.request`.
14
- */
15
- function createMockClient(streamGenerator, capture = {}) {
16
- return {
17
- responses: {
18
- create: vi.fn(async (request) => {
19
- capture.request = request;
20
- return streamGenerator();
21
- }),
22
- },
23
- };
24
- }
25
- // Mock the OpenAI SDK
26
- vi.mock('openai', () => {
27
- const mockConstructor = vi.fn(function () {
28
- return {};
29
- });
30
- return {
31
- default: mockConstructor,
32
- };
33
- });
34
- describe("OpenAIModel (api: 'responses')", () => {
35
- beforeEach(() => {
36
- vi.clearAllMocks();
37
- vi.restoreAllMocks();
38
- if (isNode) {
39
- vi.stubEnv('OPENAI_API_KEY', 'sk-test-env');
40
- }
41
- });
42
- afterEach(() => {
43
- vi.clearAllMocks();
44
- if (isNode) {
45
- vi.unstubAllEnvs();
46
- }
47
- });
48
- describe.runIf(isNode)('constructor', () => {
49
- it('uses API key from constructor parameter', () => {
50
- new OpenAIModel({ api: 'responses', modelId: 'gpt-4o', apiKey: 'sk-explicit' });
51
- expect(OpenAI).toHaveBeenCalledWith(expect.objectContaining({ apiKey: 'sk-explicit' }));
52
- });
53
- it('uses API key from environment variable', () => {
54
- vi.stubEnv('OPENAI_API_KEY', 'sk-from-env');
55
- new OpenAIModel({ api: 'responses', modelId: 'gpt-4o' });
56
- expect(OpenAI).toHaveBeenCalled();
57
- });
58
- it('throws error when no API key is available', () => {
59
- vi.stubEnv('OPENAI_API_KEY', '');
60
- expect(() => new OpenAIModel({ api: 'responses', modelId: 'gpt-4o' })).toThrow(/OpenAI API key is required/);
61
- });
62
- it('uses provided client instance and skips OpenAI constructor', () => {
63
- vi.clearAllMocks();
64
- const client = {};
65
- const model = new OpenAIModel({ api: 'responses', client });
66
- expect(OpenAI).not.toHaveBeenCalled();
67
- expect(model).toBeDefined();
68
- });
69
- it('does not require API key when client is provided', () => {
70
- vi.stubEnv('OPENAI_API_KEY', '');
71
- const client = {};
72
- expect(() => new OpenAIModel({ api: 'responses', client })).not.toThrow();
73
- });
74
- });
75
- describe('stateful', () => {
76
- it('defaults to false', () => {
77
- const model = new OpenAIModel({ api: 'responses', client: {} });
78
- expect(model.stateful).toBe(false);
79
- });
80
- it('returns true when explicitly enabled', () => {
81
- const model = new OpenAIModel({ api: 'responses', client: {}, stateful: true });
82
- expect(model.stateful).toBe(true);
83
- });
84
- it('is construction-only and cannot be changed via updateConfig', () => {
85
- const model = new OpenAIModel({ api: 'responses', client: {}, stateful: false });
86
- const warnSpy = vi.spyOn(logger, 'warn');
87
- expect(model.stateful).toBe(false);
88
- model.updateConfig({ stateful: true });
89
- expect(model.stateful).toBe(false);
90
- expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining("'stateful' is construction-only"));
91
- warnSpy.mockRestore();
92
- });
93
- });
94
- describe('updateConfig / getConfig', () => {
95
- it('merges config without clobbering unspecified fields', () => {
96
- const model = new OpenAIModel({
97
- api: 'responses',
98
- client: {},
99
- modelId: 'gpt-4o',
100
- temperature: 0.5,
101
- maxTokens: 1024,
102
- });
103
- model.updateConfig({ temperature: 0.9 });
104
- expect(model.getConfig()).toMatchObject({
105
- modelId: 'gpt-4o',
106
- temperature: 0.9,
107
- maxTokens: 1024,
108
- });
109
- });
110
- });
111
- describe('managed params warning', () => {
112
- it('warns on construction when params contains provider-managed keys', () => {
113
- const warnSpy = vi.spyOn(logger, 'warn');
114
- new OpenAIModel({ api: 'responses', client: {}, params: { model: 'bad', store: false } });
115
- expect(warnSpy).toHaveBeenCalledTimes(2);
116
- expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining("'model'"));
117
- expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining("'store'"));
118
- warnSpy.mockRestore();
119
- });
120
- it('warns on updateConfig when params contains provider-managed keys', () => {
121
- const model = new OpenAIModel({ api: 'responses', client: {} });
122
- const warnSpy = vi.spyOn(logger, 'warn');
123
- model.updateConfig({ params: { stream: true } });
124
- expect(warnSpy).toHaveBeenCalledTimes(1);
125
- expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining("'stream'"));
126
- warnSpy.mockRestore();
127
- });
128
- it('does not warn when params contains only non-managed keys', () => {
129
- const warnSpy = vi.spyOn(logger, 'warn');
130
- new OpenAIModel({ api: 'responses', client: {}, params: { reasoning: { summary: 'auto' } } });
131
- expect(warnSpy).not.toHaveBeenCalled();
132
- warnSpy.mockRestore();
133
- });
134
- });
135
- describe('request formatting', () => {
136
- const mkUserMessage = () => new Message({ role: 'user', content: [new TextBlock('Hi')] });
137
- async function runOnce(modelOptions = {}, messages = [mkUserMessage()], streamOptions = undefined) {
138
- const capture = {};
139
- const client = createMockClient(async function* () {
140
- yield { type: 'response.created', response: { id: 'resp_123' } };
141
- yield { type: 'response.completed', response: { usage: undefined } };
142
- }, capture);
143
- const model = new OpenAIModel({ api: 'responses', client, ...modelOptions });
144
- await collectIterator(model.stream(messages, streamOptions));
145
- return capture.request;
146
- }
147
- it('includes model, input, stream, and store=false by default', async () => {
148
- const req = await runOnce();
149
- expect(req.model).toBe('gpt-5.4');
150
- expect(req.stream).toBe(true);
151
- expect(req.store).toBe(false);
152
- expect(Array.isArray(req.input)).toBe(true);
153
- });
154
- it('sets store=true when stateful is enabled', async () => {
155
- const req = await runOnce({ stateful: true });
156
- expect(req.store).toBe(true);
157
- });
158
- it('chains previous_response_id when stateful and modelState has responseId', async () => {
159
- const modelState = new StateStore({ responseId: 'resp_prev' });
160
- const req = await runOnce({ stateful: true }, [mkUserMessage()], { modelState });
161
- expect(req.previous_response_id).toBe('resp_prev');
162
- });
163
- it('omits previous_response_id when stateful is disabled, even with responseId in modelState', async () => {
164
- const modelState = new StateStore({ responseId: 'resp_prev' });
165
- const req = await runOnce({}, [mkUserMessage()], { modelState });
166
- expect(req.previous_response_id).toBeUndefined();
167
- });
168
- it('maps systemPrompt string to instructions', async () => {
169
- const req = await runOnce({}, [mkUserMessage()], { systemPrompt: 'Be helpful.' });
170
- expect(req.instructions).toBe('Be helpful.');
171
- });
172
- it('merges toolSpecs with built-in tools from params', async () => {
173
- const req = await runOnce({ params: { tools: [{ type: 'web_search' }] } }, [mkUserMessage()], {
174
- toolSpecs: [
175
- {
176
- name: 'calc',
177
- description: 'calculator',
178
- inputSchema: { type: 'object', properties: {} },
179
- },
180
- ],
181
- });
182
- expect(req.tools).toEqual([
183
- { type: 'web_search' },
184
- {
185
- type: 'function',
186
- name: 'calc',
187
- description: 'calculator',
188
- parameters: { type: 'object', properties: {} },
189
- strict: null,
190
- },
191
- ]);
192
- });
193
- it('maps tool_choice variants', async () => {
194
- const toolSpecs = [{ name: 'calc', description: 'd', inputSchema: {} }];
195
- const autoReq = await runOnce({}, [mkUserMessage()], { toolSpecs, toolChoice: { auto: {} } });
196
- expect(autoReq.tool_choice).toBe('auto');
197
- const anyReq = await runOnce({}, [mkUserMessage()], { toolSpecs, toolChoice: { any: {} } });
198
- expect(anyReq.tool_choice).toBe('required');
199
- const toolReq = await runOnce({}, [mkUserMessage()], {
200
- toolSpecs,
201
- toolChoice: { tool: { name: 'calc' } },
202
- });
203
- expect(toolReq.tool_choice).toEqual({ type: 'function', name: 'calc' });
204
- });
205
- it('formats temperature, maxTokens→max_output_tokens, and topP', async () => {
206
- const req = await runOnce({ temperature: 0.3, maxTokens: 512, topP: 0.8 });
207
- expect(req.temperature).toBe(0.3);
208
- expect(req.max_output_tokens).toBe(512);
209
- expect(req.top_p).toBe(0.8);
210
- });
211
- it('passes through extra params fields to the request', async () => {
212
- const req = await runOnce({ params: { reasoning: { summary: 'auto' } } });
213
- expect(req.reasoning).toEqual({ summary: 'auto' });
214
- });
215
- it('provider-managed fields in params are overridden and cannot take effect', async () => {
216
- const warnSpy = vi.spyOn(logger, 'warn');
217
- const req = await runOnce({
218
- modelId: 'gpt-4o',
219
- stateful: true,
220
- params: { model: 'attacker-model', input: 'hijacked', stream: false, store: false },
221
- });
222
- expect(req.model).toBe('gpt-4o');
223
- expect(req.stream).toBe(true);
224
- expect(req.store).toBe(true);
225
- expect(Array.isArray(req.input)).toBe(true);
226
- warnSpy.mockRestore();
227
- });
228
- it('emits tool_use and tool_result as separate top-level items', async () => {
229
- const messages = [
230
- new Message({ role: 'user', content: [new TextBlock('run it')] }),
231
- new Message({
232
- role: 'assistant',
233
- content: [new ToolUseBlock({ name: 'calc', toolUseId: 'call_1', input: { expr: '2+2' } })],
234
- }),
235
- new Message({
236
- role: 'user',
237
- content: [
238
- new ToolResultBlock({
239
- toolUseId: 'call_1',
240
- status: 'success',
241
- content: [new TextBlock('4')],
242
- }),
243
- ],
244
- }),
245
- ];
246
- const req = await runOnce({}, messages);
247
- const functionCall = req.input.find((i) => i.type === 'function_call');
248
- const functionOutput = req.input.find((i) => i.type === 'function_call_output');
249
- expect(functionCall).toMatchObject({
250
- type: 'function_call',
251
- call_id: 'call_1',
252
- name: 'calc',
253
- arguments: JSON.stringify({ expr: '2+2' }),
254
- });
255
- expect(functionOutput).toMatchObject({
256
- type: 'function_call_output',
257
- call_id: 'call_1',
258
- output: '4',
259
- });
260
- });
261
- it('prefixes errored tool results with [ERROR]', async () => {
262
- const messages = [
263
- new Message({ role: 'user', content: [new TextBlock('x')] }),
264
- new Message({
265
- role: 'user',
266
- content: [
267
- new ToolResultBlock({
268
- toolUseId: 't1',
269
- status: 'error',
270
- content: [new TextBlock('boom')],
271
- }),
272
- ],
273
- }),
274
- ];
275
- const req = await runOnce({}, messages);
276
- const out = req.input.find((i) => i.type === 'function_call_output');
277
- expect(out.output).toBe('[ERROR] boom');
278
- });
279
- it('emits an array output with input_image when a tool result carries image bytes', async () => {
280
- const imageBytes = new Uint8Array([1, 2, 3, 4]);
281
- const messages = [
282
- new Message({ role: 'user', content: [new TextBlock('fetch')] }),
283
- new Message({
284
- role: 'user',
285
- content: [
286
- new ToolResultBlock({
287
- toolUseId: 'img_tool',
288
- status: 'success',
289
- content: [
290
- new TextBlock('here is the image'),
291
- new ImageBlock({ format: 'png', source: { bytes: imageBytes } }),
292
- ],
293
- }),
294
- ],
295
- }),
296
- ];
297
- const req = await runOnce({}, messages);
298
- const out = req.input.find((i) => i.type === 'function_call_output');
299
- expect(Array.isArray(out.output)).toBe(true);
300
- expect(out.output).toEqual([
301
- { type: 'input_text', text: 'here is the image' },
302
- { type: 'input_image', image_url: expect.stringMatching(/^data:image\/png;base64,/) },
303
- ]);
304
- });
305
- it('emits an array output with input_file when a tool result carries a document', async () => {
306
- const docBytes = new Uint8Array([5, 6, 7, 8]);
307
- const messages = [
308
- new Message({ role: 'user', content: [new TextBlock('read')] }),
309
- new Message({
310
- role: 'user',
311
- content: [
312
- new ToolResultBlock({
313
- toolUseId: 'doc_tool',
314
- status: 'success',
315
- content: [new DocumentBlock({ name: 'report.pdf', format: 'pdf', source: { bytes: docBytes } })],
316
- }),
317
- ],
318
- }),
319
- ];
320
- const req = await runOnce({}, messages);
321
- const out = req.input.find((i) => i.type === 'function_call_output');
322
- expect(Array.isArray(out.output)).toBe(true);
323
- expect(out.output).toEqual([
324
- {
325
- type: 'input_file',
326
- file_data: expect.stringMatching(/^data:application\/pdf;base64,/),
327
- filename: 'report.pdf',
328
- },
329
- ]);
330
- });
331
- it('keeps tool result output as a plain string when only text is present', async () => {
332
- const messages = [
333
- new Message({ role: 'user', content: [new TextBlock('ping')] }),
334
- new Message({
335
- role: 'user',
336
- content: [
337
- new ToolResultBlock({
338
- toolUseId: 'text_tool',
339
- status: 'success',
340
- content: [new TextBlock('pong')],
341
- }),
342
- ],
343
- }),
344
- ];
345
- const req = await runOnce({}, messages);
346
- const out = req.input.find((i) => i.type === 'function_call_output');
347
- expect(typeof out.output).toBe('string');
348
- expect(out.output).toBe('pong');
349
- });
350
- });
351
- describe('stream event mapping', () => {
352
- it('captures responseId on response.created when stateful', async () => {
353
- const modelState = new StateStore();
354
- const client = createMockClient(async function* () {
355
- yield { type: 'response.created', response: { id: 'resp_abc' } };
356
- yield { type: 'response.completed', response: {} };
357
- });
358
- const model = new OpenAIModel({ api: 'responses', client, stateful: true });
359
- await collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('hi')] })], { modelState }));
360
- expect(modelState.get('responseId')).toBe('resp_abc');
361
- });
362
- it('does NOT capture responseId when stateful is disabled', async () => {
363
- const modelState = new StateStore();
364
- const client = createMockClient(async function* () {
365
- yield { type: 'response.created', response: { id: 'resp_abc' } };
366
- yield { type: 'response.completed', response: {} };
367
- });
368
- const model = new OpenAIModel({ api: 'responses', client });
369
- await collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('hi')] })], { modelState }));
370
- expect(modelState.get('responseId')).toBeUndefined();
371
- });
372
- it('emits text deltas inside a content block', async () => {
373
- const client = createMockClient(async function* () {
374
- yield { type: 'response.created', response: { id: 'r' } };
375
- yield { type: 'response.output_text.delta', delta: 'Hello' };
376
- yield { type: 'response.output_text.delta', delta: ' world' };
377
- yield { type: 'response.completed', response: {} };
378
- });
379
- const model = new OpenAIModel({ api: 'responses', client });
380
- const events = await collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]));
381
- const types = events.map((e) => e.type);
382
- expect(types).toEqual([
383
- 'modelMessageStartEvent',
384
- 'modelContentBlockStartEvent',
385
- 'modelContentBlockDeltaEvent',
386
- 'modelContentBlockDeltaEvent',
387
- 'modelContentBlockStopEvent',
388
- 'modelMessageStopEvent',
389
- ]);
390
- const deltas = events.filter((e) => e.type === 'modelContentBlockDeltaEvent').map((e) => e.delta);
391
- expect(deltas).toEqual([
392
- { type: 'textDelta', text: 'Hello' },
393
- { type: 'textDelta', text: ' world' },
394
- ]);
395
- });
396
- it('switches content blocks between reasoning and text', async () => {
397
- const client = createMockClient(async function* () {
398
- yield { type: 'response.created', response: { id: 'r' } };
399
- yield { type: 'response.reasoning_text.delta', delta: 'thinking...' };
400
- yield { type: 'response.output_text.delta', delta: 'answer' };
401
- yield { type: 'response.completed', response: {} };
402
- });
403
- const model = new OpenAIModel({ api: 'responses', client });
404
- const events = await collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]));
405
- const types = events.map((e) => e.type);
406
- expect(types).toEqual([
407
- 'modelMessageStartEvent',
408
- 'modelContentBlockStartEvent',
409
- 'modelContentBlockDeltaEvent', // reasoning
410
- 'modelContentBlockStopEvent',
411
- 'modelContentBlockStartEvent',
412
- 'modelContentBlockDeltaEvent', // text
413
- 'modelContentBlockStopEvent',
414
- 'modelMessageStopEvent',
415
- ]);
416
- });
417
- it('emits tool call triplet after stream close and sets stopReason=toolUse', async () => {
418
- const client = createMockClient(async function* () {
419
- yield { type: 'response.created', response: { id: 'r' } };
420
- yield {
421
- type: 'response.output_item.added',
422
- item: { type: 'function_call', id: 'item_1', call_id: 'call_1', name: 'calc' },
423
- };
424
- yield {
425
- type: 'response.function_call_arguments.delta',
426
- item_id: 'item_1',
427
- delta: '{"a":',
428
- };
429
- yield {
430
- type: 'response.function_call_arguments.delta',
431
- item_id: 'item_1',
432
- delta: '1}',
433
- };
434
- yield {
435
- type: 'response.function_call_arguments.done',
436
- item_id: 'item_1',
437
- arguments: '{"a":1}',
438
- };
439
- yield { type: 'response.completed', response: {} };
440
- });
441
- const model = new OpenAIModel({ api: 'responses', client });
442
- const events = await collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]));
443
- const startEvent = events.find((e) => e.type === 'modelContentBlockStartEvent' && e.start?.type === 'toolUseStart');
444
- expect(startEvent?.start).toEqual({
445
- type: 'toolUseStart',
446
- name: 'calc',
447
- toolUseId: 'call_1',
448
- });
449
- const deltaEvent = events.find((e) => e.type === 'modelContentBlockDeltaEvent' && e.delta?.type === 'toolUseInputDelta');
450
- expect(deltaEvent?.delta).toEqual({ type: 'toolUseInputDelta', input: '{"a":1}' });
451
- const stopEvent = events.find((e) => e.type === 'modelMessageStopEvent');
452
- expect(stopEvent?.stopReason).toBe('toolUse');
453
- });
454
- it('maps response.incomplete with max_output_tokens to stopReason=maxTokens', async () => {
455
- const client = createMockClient(async function* () {
456
- yield { type: 'response.created', response: { id: 'r' } };
457
- yield { type: 'response.output_text.delta', delta: 'partial' };
458
- yield {
459
- type: 'response.incomplete',
460
- response: {
461
- incomplete_details: { reason: 'max_output_tokens' },
462
- usage: { input_tokens: 10, output_tokens: 5, total_tokens: 15 },
463
- },
464
- };
465
- });
466
- const model = new OpenAIModel({ api: 'responses', client });
467
- const events = await collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]));
468
- const stop = events.find((e) => e.type === 'modelMessageStopEvent');
469
- expect(stop?.stopReason).toBe('maxTokens');
470
- const metadata = events.find((e) => e.type === 'modelMetadataEvent');
471
- expect(metadata?.usage).toEqual({ inputTokens: 10, outputTokens: 5, totalTokens: 15 });
472
- });
473
- it('plumbs prompt-cache reads (input_tokens_details.cached_tokens) into cacheReadInputTokens', async () => {
474
- const client = createMockClient(async function* () {
475
- yield { type: 'response.created', response: { id: 'r' } };
476
- yield { type: 'response.output_text.delta', delta: 'hi' };
477
- yield {
478
- type: 'response.completed',
479
- response: {
480
- usage: {
481
- input_tokens: 1553,
482
- output_tokens: 42,
483
- total_tokens: 1595,
484
- input_tokens_details: { cached_tokens: 873 },
485
- },
486
- },
487
- };
488
- });
489
- const model = new OpenAIModel({ api: 'responses', client });
490
- const events = await collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]));
491
- const metadata = events.find((e) => e.type === 'modelMetadataEvent');
492
- expect(metadata?.usage).toEqual({
493
- inputTokens: 1553,
494
- outputTokens: 42,
495
- totalTokens: 1595,
496
- cacheReadInputTokens: 873,
497
- });
498
- });
499
- it('omits cacheReadInputTokens when there is no cache hit (cached_tokens 0 or absent)', async () => {
500
- const client = createMockClient(async function* () {
501
- yield { type: 'response.created', response: { id: 'r' } };
502
- yield {
503
- type: 'response.completed',
504
- response: {
505
- usage: {
506
- input_tokens: 1553,
507
- output_tokens: 42,
508
- total_tokens: 1595,
509
- input_tokens_details: { cached_tokens: 0 },
510
- },
511
- },
512
- };
513
- });
514
- const model = new OpenAIModel({ api: 'responses', client });
515
- const events = await collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]));
516
- const metadata = events.find((e) => e.type === 'modelMetadataEvent');
517
- expect(metadata?.usage).toEqual({ inputTokens: 1553, outputTokens: 42, totalTokens: 1595 });
518
- expect(metadata?.usage).not.toHaveProperty('cacheReadInputTokens');
519
- });
520
- it('emits URL citation delta from response.output_text.annotation.added', async () => {
521
- const client = createMockClient(async function* () {
522
- yield { type: 'response.created', response: { id: 'r' } };
523
- yield { type: 'response.output_text.delta', delta: 'The answer is here.' };
524
- yield {
525
- type: 'response.output_text.annotation.added',
526
- annotation: {
527
- type: 'url_citation',
528
- url: 'https://example.com',
529
- title: 'Example',
530
- cited_text: 'here',
531
- },
532
- };
533
- yield { type: 'response.completed', response: {} };
534
- });
535
- const model = new OpenAIModel({ api: 'responses', client });
536
- const events = await collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]));
537
- const citation = events.find((e) => e.type === 'modelContentBlockDeltaEvent' && e.delta?.type === 'citationsDelta');
538
- expect(citation?.delta.citations[0]).toMatchObject({
539
- location: { type: 'web', url: 'https://example.com' },
540
- source: 'https://example.com',
541
- title: 'Example',
542
- });
543
- });
544
- it('closes the text block before a citation, producing separate blocks when stream ends after citation', async () => {
545
- const client = createMockClient(async function* () {
546
- yield { type: 'response.created', response: { id: 'r' } };
547
- yield { type: 'response.output_text.delta', delta: 'Before citation' };
548
- yield {
549
- type: 'response.output_text.annotation.added',
550
- annotation: {
551
- type: 'url_citation',
552
- url: 'https://example.com',
553
- title: 'Source',
554
- cited_text: 'cited',
555
- },
556
- };
557
- yield { type: 'response.completed', response: {} };
558
- });
559
- const model = new OpenAIModel({ api: 'responses', client });
560
- const events = await collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]));
561
- const types = events.map((e) => e.type);
562
- expect(types).toEqual([
563
- 'modelMessageStartEvent',
564
- // Text block — closed before citation
565
- 'modelContentBlockStartEvent',
566
- 'modelContentBlockDeltaEvent',
567
- 'modelContentBlockStopEvent',
568
- // Citation block
569
- 'modelContentBlockStartEvent',
570
- 'modelContentBlockDeltaEvent',
571
- 'modelContentBlockStopEvent',
572
- 'modelMessageStopEvent',
573
- ]);
574
- const deltas = events.filter((e) => e.type === 'modelContentBlockDeltaEvent').map((e) => e.delta.type);
575
- expect(deltas).toEqual(['textDelta', 'citationsDelta']);
576
- });
577
- it('closes the text block before a citation and opens a new text block after', async () => {
578
- const client = createMockClient(async function* () {
579
- yield { type: 'response.created', response: { id: 'r' } };
580
- yield { type: 'response.output_text.delta', delta: 'Before ' };
581
- yield {
582
- type: 'response.output_text.annotation.added',
583
- annotation: {
584
- type: 'url_citation',
585
- url: 'https://example.com',
586
- title: 'Source',
587
- cited_text: 'cited',
588
- },
589
- };
590
- yield { type: 'response.output_text.delta', delta: ' after' };
591
- yield { type: 'response.completed', response: {} };
592
- });
593
- const model = new OpenAIModel({ api: 'responses', client });
594
- const events = await collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]));
595
- const types = events.map((e) => e.type);
596
- expect(types).toEqual([
597
- 'modelMessageStartEvent',
598
- // First text block
599
- 'modelContentBlockStartEvent',
600
- 'modelContentBlockDeltaEvent',
601
- 'modelContentBlockStopEvent',
602
- // Citation block
603
- 'modelContentBlockStartEvent',
604
- 'modelContentBlockDeltaEvent',
605
- 'modelContentBlockStopEvent',
606
- // New text block after citation
607
- 'modelContentBlockStartEvent',
608
- 'modelContentBlockDeltaEvent',
609
- 'modelContentBlockStopEvent',
610
- 'modelMessageStopEvent',
611
- ]);
612
- const deltas = events.filter((e) => e.type === 'modelContentBlockDeltaEvent').map((e) => e.delta.type);
613
- expect(deltas).toEqual(['textDelta', 'citationsDelta', 'textDelta']);
614
- });
615
- it('keeps consecutive citations in the same block without extra stop/start', async () => {
616
- const client = createMockClient(async function* () {
617
- yield { type: 'response.created', response: { id: 'r' } };
618
- yield {
619
- type: 'response.output_text.annotation.added',
620
- annotation: { type: 'url_citation', url: 'https://a.com', title: 'A', cited_text: 'a' },
621
- };
622
- yield {
623
- type: 'response.output_text.annotation.added',
624
- annotation: { type: 'url_citation', url: 'https://b.com', title: 'B', cited_text: 'b' },
625
- };
626
- yield { type: 'response.completed', response: {} };
627
- });
628
- const model = new OpenAIModel({ api: 'responses', client });
629
- const events = await collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]));
630
- const types = events.map((e) => e.type);
631
- expect(types).toEqual([
632
- 'modelMessageStartEvent',
633
- 'modelContentBlockStartEvent',
634
- 'modelContentBlockDeltaEvent',
635
- 'modelContentBlockDeltaEvent',
636
- 'modelContentBlockStopEvent',
637
- 'modelMessageStopEvent',
638
- ]);
639
- });
640
- it('handles text → citation → text → citation → text with separate blocks each time', async () => {
641
- const client = createMockClient(async function* () {
642
- yield { type: 'response.created', response: { id: 'r' } };
643
- yield { type: 'response.output_text.delta', delta: 'intro ' };
644
- yield {
645
- type: 'response.output_text.annotation.added',
646
- annotation: { type: 'url_citation', url: 'https://1.com', title: '1', cited_text: 'c1' },
647
- };
648
- yield { type: 'response.output_text.delta', delta: 'middle ' };
649
- yield {
650
- type: 'response.output_text.annotation.added',
651
- annotation: { type: 'url_citation', url: 'https://2.com', title: '2', cited_text: 'c2' },
652
- };
653
- yield { type: 'response.output_text.delta', delta: 'end' };
654
- yield { type: 'response.completed', response: {} };
655
- });
656
- const model = new OpenAIModel({ api: 'responses', client });
657
- const events = await collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]));
658
- const deltaTypes = events
659
- .filter((e) => e.type === 'modelContentBlockDeltaEvent')
660
- .map((e) => e.delta.type);
661
- expect(deltaTypes).toEqual(['textDelta', 'citationsDelta', 'textDelta', 'citationsDelta', 'textDelta']);
662
- // 5 content blocks = 5 start + 5 stop events
663
- const starts = events.filter((e) => e.type === 'modelContentBlockStartEvent');
664
- const stops = events.filter((e) => e.type === 'modelContentBlockStopEvent');
665
- expect(starts).toHaveLength(5);
666
- expect(stops).toHaveLength(5);
667
- });
668
- });
669
- describe('error mapping', () => {
670
- it('wraps 429 as ModelThrottledError', async () => {
671
- const client = {
672
- responses: {
673
- create: vi.fn(async () => {
674
- const err = new Error('Too many requests');
675
- err.status = 429;
676
- throw err;
677
- }),
678
- },
679
- };
680
- const model = new OpenAIModel({ api: 'responses', client });
681
- await expect(collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]))).rejects.toBeInstanceOf(ModelThrottledError);
682
- });
683
- it('wraps context_length_exceeded as ContextWindowOverflowError', async () => {
684
- const client = {
685
- responses: {
686
- create: vi.fn(async () => {
687
- const err = new Error('This model has a maximum context length of 8k.');
688
- err.code = 'context_length_exceeded';
689
- throw err;
690
- }),
691
- },
692
- };
693
- const model = new OpenAIModel({ api: 'responses', client });
694
- await expect(collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]))).rejects.toBeInstanceOf(ContextWindowOverflowError);
695
- });
696
- it('rethrows unknown errors untouched', async () => {
697
- const client = {
698
- responses: {
699
- create: vi.fn(async () => {
700
- throw new Error('some other failure');
701
- }),
702
- },
703
- };
704
- const model = new OpenAIModel({ api: 'responses', client });
705
- await expect(collectIterator(model.stream([new Message({ role: 'user', content: [new TextBlock('x')] })]))).rejects.toThrow('some other failure');
706
- });
707
- });
708
- });
709
- //# sourceMappingURL=responses.test.js.map