@strands-agents/sdk 1.7.0 → 1.8.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 (659) hide show
  1. package/dist/src/agent/agent.d.ts +1 -1
  2. package/dist/src/agent/agent.d.ts.map +1 -1
  3. package/dist/src/agent/agent.js +1 -1
  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/index.d.ts +1 -1
  8. package/dist/src/index.d.ts.map +1 -1
  9. package/dist/src/index.js +1 -1
  10. package/dist/src/index.js.map +1 -1
  11. package/dist/src/index.node.d.ts.map +1 -1
  12. package/dist/src/index.node.js +3 -0
  13. package/dist/src/index.node.js.map +1 -1
  14. package/dist/src/interventions/actions.d.ts.map +1 -1
  15. package/dist/src/interventions/actions.js.map +1 -1
  16. package/dist/src/{mcp.d.ts → mcp/client.d.ts} +13 -4
  17. package/dist/src/mcp/client.d.ts.map +1 -0
  18. package/dist/src/{mcp.js → mcp/client.js} +15 -3
  19. package/dist/src/mcp/client.js.map +1 -0
  20. package/dist/src/mcp/config.d.ts +52 -0
  21. package/dist/src/mcp/config.d.ts.map +1 -0
  22. package/dist/src/mcp/config.js +12 -0
  23. package/dist/src/mcp/config.js.map +1 -0
  24. package/dist/src/mcp/config.node.d.ts +16 -0
  25. package/dist/src/mcp/config.node.d.ts.map +1 -0
  26. package/dist/src/mcp/config.node.js +145 -0
  27. package/dist/src/mcp/config.node.js.map +1 -0
  28. package/dist/src/mcp/index.d.ts +3 -0
  29. package/dist/src/mcp/index.d.ts.map +1 -0
  30. package/dist/src/mcp/index.js +2 -0
  31. package/dist/src/mcp/index.js.map +1 -0
  32. package/dist/src/models/model.d.ts.map +1 -1
  33. package/dist/src/models/model.js +2 -1
  34. package/dist/src/models/model.js.map +1 -1
  35. package/dist/src/multiagent/graph.d.ts +7 -0
  36. package/dist/src/multiagent/graph.d.ts.map +1 -1
  37. package/dist/src/multiagent/graph.js +22 -1
  38. package/dist/src/multiagent/graph.js.map +1 -1
  39. package/dist/src/multiagent/nodes.d.ts +5 -0
  40. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  41. package/dist/src/multiagent/nodes.js +15 -0
  42. package/dist/src/multiagent/nodes.js.map +1 -1
  43. package/dist/src/multiagent/state.d.ts.map +1 -1
  44. package/dist/src/multiagent/state.js.map +1 -1
  45. package/dist/src/tools/function-tool.d.ts +1 -1
  46. package/dist/src/tools/function-tool.d.ts.map +1 -1
  47. package/dist/src/tools/function-tool.js +4 -12
  48. package/dist/src/tools/function-tool.js.map +1 -1
  49. package/dist/src/tools/mcp-tool.d.ts +2 -1
  50. package/dist/src/tools/mcp-tool.d.ts.map +1 -1
  51. package/dist/src/tools/mcp-tool.js +1 -0
  52. package/dist/src/tools/mcp-tool.js.map +1 -1
  53. package/dist/src/tools/tool-factory.d.ts +1 -1
  54. package/dist/src/tools/tool-factory.d.ts.map +1 -1
  55. package/dist/src/tools/types.d.ts +4 -0
  56. package/dist/src/tools/types.d.ts.map +1 -1
  57. package/dist/src/tools/zod-tool.d.ts +4 -2
  58. package/dist/src/tools/zod-tool.d.ts.map +1 -1
  59. package/dist/src/tools/zod-tool.js.map +1 -1
  60. package/dist/src/tsconfig.tsbuildinfo +1 -1
  61. package/dist/src/types/media.d.ts.map +1 -1
  62. package/dist/src/types/media.js.map +1 -1
  63. package/dist/src/types/messages.d.ts.map +1 -1
  64. package/dist/src/types/messages.js.map +1 -1
  65. package/dist/src/vended-memory-stores/local/index.d.ts +2 -0
  66. package/dist/src/vended-memory-stores/local/index.d.ts.map +1 -0
  67. package/dist/src/vended-memory-stores/local/index.js +2 -0
  68. package/dist/src/vended-memory-stores/local/index.js.map +1 -0
  69. package/dist/src/vended-memory-stores/local/store.d.ts +122 -0
  70. package/dist/src/vended-memory-stores/local/store.d.ts.map +1 -0
  71. package/dist/src/vended-memory-stores/local/store.js +281 -0
  72. package/dist/src/vended-memory-stores/local/store.js.map +1 -0
  73. package/dist/src/vended-plugins/context-offloader/search.d.ts.map +1 -1
  74. package/dist/src/vended-plugins/context-offloader/search.js +4 -2
  75. package/dist/src/vended-plugins/context-offloader/search.js.map +1 -1
  76. package/dist/src/vended-plugins/context-offloader/storage.js +1 -1
  77. package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -1
  78. package/dist/src/vended-plugins/skills/skill.d.ts.map +1 -1
  79. package/dist/src/vended-plugins/skills/skill.js.map +1 -1
  80. package/dist/src/vended-tools/notebook/notebook.d.ts +1 -1
  81. package/package.json +21 -14
  82. package/dist/src/__fixtures__/agent-helpers.d.ts +0 -136
  83. package/dist/src/__fixtures__/agent-helpers.d.ts.map +0 -1
  84. package/dist/src/__fixtures__/agent-helpers.js +0 -156
  85. package/dist/src/__fixtures__/agent-helpers.js.map +0 -1
  86. package/dist/src/__fixtures__/environment.d.ts +0 -12
  87. package/dist/src/__fixtures__/environment.d.ts.map +0 -1
  88. package/dist/src/__fixtures__/environment.js +0 -12
  89. package/dist/src/__fixtures__/environment.js.map +0 -1
  90. package/dist/src/__fixtures__/metrics-helpers.d.ts +0 -55
  91. package/dist/src/__fixtures__/metrics-helpers.d.ts.map +0 -1
  92. package/dist/src/__fixtures__/metrics-helpers.js +0 -57
  93. package/dist/src/__fixtures__/metrics-helpers.js.map +0 -1
  94. package/dist/src/__fixtures__/mock-message-model.d.ts +0 -103
  95. package/dist/src/__fixtures__/mock-message-model.d.ts.map +0 -1
  96. package/dist/src/__fixtures__/mock-message-model.js +0 -245
  97. package/dist/src/__fixtures__/mock-message-model.js.map +0 -1
  98. package/dist/src/__fixtures__/mock-meter.d.ts +0 -32
  99. package/dist/src/__fixtures__/mock-meter.d.ts.map +0 -1
  100. package/dist/src/__fixtures__/mock-meter.js +0 -47
  101. package/dist/src/__fixtures__/mock-meter.js.map +0 -1
  102. package/dist/src/__fixtures__/mock-plugin.d.ts +0 -13
  103. package/dist/src/__fixtures__/mock-plugin.d.ts.map +0 -1
  104. package/dist/src/__fixtures__/mock-plugin.js +0 -35
  105. package/dist/src/__fixtures__/mock-plugin.js.map +0 -1
  106. package/dist/src/__fixtures__/mock-span.d.ts +0 -78
  107. package/dist/src/__fixtures__/mock-span.d.ts.map +0 -1
  108. package/dist/src/__fixtures__/mock-span.js +0 -93
  109. package/dist/src/__fixtures__/mock-span.js.map +0 -1
  110. package/dist/src/__fixtures__/mock-storage-provider.d.ts +0 -42
  111. package/dist/src/__fixtures__/mock-storage-provider.d.ts.map +0 -1
  112. package/dist/src/__fixtures__/mock-storage-provider.js +0 -122
  113. package/dist/src/__fixtures__/mock-storage-provider.js.map +0 -1
  114. package/dist/src/__fixtures__/model-test-helpers.d.ts +0 -56
  115. package/dist/src/__fixtures__/model-test-helpers.d.ts.map +0 -1
  116. package/dist/src/__fixtures__/model-test-helpers.js +0 -85
  117. package/dist/src/__fixtures__/model-test-helpers.js.map +0 -1
  118. package/dist/src/__fixtures__/register-node-defaults.d.ts +0 -2
  119. package/dist/src/__fixtures__/register-node-defaults.d.ts.map +0 -1
  120. package/dist/src/__fixtures__/register-node-defaults.js +0 -6
  121. package/dist/src/__fixtures__/register-node-defaults.js.map +0 -1
  122. package/dist/src/__fixtures__/slim-types.d.ts +0 -51
  123. package/dist/src/__fixtures__/slim-types.d.ts.map +0 -1
  124. package/dist/src/__fixtures__/slim-types.js +0 -6
  125. package/dist/src/__fixtures__/slim-types.js.map +0 -1
  126. package/dist/src/__fixtures__/test-sandbox.node.d.ts +0 -15
  127. package/dist/src/__fixtures__/test-sandbox.node.d.ts.map +0 -1
  128. package/dist/src/__fixtures__/test-sandbox.node.js +0 -23
  129. package/dist/src/__fixtures__/test-sandbox.node.js.map +0 -1
  130. package/dist/src/__fixtures__/tool-helpers.d.ts +0 -45
  131. package/dist/src/__fixtures__/tool-helpers.d.ts.map +0 -1
  132. package/dist/src/__fixtures__/tool-helpers.js +0 -101
  133. package/dist/src/__fixtures__/tool-helpers.js.map +0 -1
  134. package/dist/src/__tests__/default-slot.test.d.ts +0 -2
  135. package/dist/src/__tests__/default-slot.test.d.ts.map +0 -1
  136. package/dist/src/__tests__/default-slot.test.js +0 -33
  137. package/dist/src/__tests__/default-slot.test.js.map +0 -1
  138. package/dist/src/__tests__/errors.test.d.ts +0 -2
  139. package/dist/src/__tests__/errors.test.d.ts.map +0 -1
  140. package/dist/src/__tests__/errors.test.js +0 -170
  141. package/dist/src/__tests__/errors.test.js.map +0 -1
  142. package/dist/src/__tests__/index.test.d.ts +0 -2
  143. package/dist/src/__tests__/index.test.d.ts.map +0 -1
  144. package/dist/src/__tests__/index.test.js +0 -48
  145. package/dist/src/__tests__/index.test.js.map +0 -1
  146. package/dist/src/__tests__/interrupt.test.d.ts +0 -2
  147. package/dist/src/__tests__/interrupt.test.d.ts.map +0 -1
  148. package/dist/src/__tests__/interrupt.test.js +0 -264
  149. package/dist/src/__tests__/interrupt.test.js.map +0 -1
  150. package/dist/src/__tests__/mcp.test.d.ts +0 -2
  151. package/dist/src/__tests__/mcp.test.d.ts.map +0 -1
  152. package/dist/src/__tests__/mcp.test.js +0 -1003
  153. package/dist/src/__tests__/mcp.test.js.map +0 -1
  154. package/dist/src/__tests__/mime.test.d.ts +0 -2
  155. package/dist/src/__tests__/mime.test.d.ts.map +0 -1
  156. package/dist/src/__tests__/mime.test.js +0 -83
  157. package/dist/src/__tests__/mime.test.js.map +0 -1
  158. package/dist/src/__tests__/state-store.test.d.ts +0 -2
  159. package/dist/src/__tests__/state-store.test.d.ts.map +0 -1
  160. package/dist/src/__tests__/state-store.test.js +0 -285
  161. package/dist/src/__tests__/state-store.test.js.map +0 -1
  162. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts +0 -2
  163. package/dist/src/a2a/__tests__/a2a-agent.test.d.ts.map +0 -1
  164. package/dist/src/a2a/__tests__/a2a-agent.test.js +0 -383
  165. package/dist/src/a2a/__tests__/a2a-agent.test.js.map +0 -1
  166. package/dist/src/a2a/__tests__/adapters.test.d.ts +0 -2
  167. package/dist/src/a2a/__tests__/adapters.test.d.ts.map +0 -1
  168. package/dist/src/a2a/__tests__/adapters.test.js +0 -151
  169. package/dist/src/a2a/__tests__/adapters.test.js.map +0 -1
  170. package/dist/src/a2a/__tests__/async-lock.test.d.ts +0 -2
  171. package/dist/src/a2a/__tests__/async-lock.test.d.ts.map +0 -1
  172. package/dist/src/a2a/__tests__/async-lock.test.js +0 -137
  173. package/dist/src/a2a/__tests__/async-lock.test.js.map +0 -1
  174. package/dist/src/a2a/__tests__/events.test.d.ts +0 -2
  175. package/dist/src/a2a/__tests__/events.test.d.ts.map +0 -1
  176. package/dist/src/a2a/__tests__/events.test.js +0 -68
  177. package/dist/src/a2a/__tests__/events.test.js.map +0 -1
  178. package/dist/src/a2a/__tests__/executor.test.d.ts +0 -2
  179. package/dist/src/a2a/__tests__/executor.test.d.ts.map +0 -1
  180. package/dist/src/a2a/__tests__/executor.test.js +0 -345
  181. package/dist/src/a2a/__tests__/executor.test.js.map +0 -1
  182. package/dist/src/a2a/__tests__/server.test.d.ts +0 -2
  183. package/dist/src/a2a/__tests__/server.test.d.ts.map +0 -1
  184. package/dist/src/a2a/__tests__/server.test.js +0 -71
  185. package/dist/src/a2a/__tests__/server.test.js.map +0 -1
  186. package/dist/src/a2a/__tests__/server.test.node.d.ts +0 -2
  187. package/dist/src/a2a/__tests__/server.test.node.d.ts.map +0 -1
  188. package/dist/src/a2a/__tests__/server.test.node.js +0 -110
  189. package/dist/src/a2a/__tests__/server.test.node.js.map +0 -1
  190. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts +0 -2
  191. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts.map +0 -1
  192. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js +0 -23
  193. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js.map +0 -1
  194. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts +0 -2
  195. package/dist/src/agent/__tests__/agent-as-tool.test.d.ts.map +0 -1
  196. package/dist/src/agent/__tests__/agent-as-tool.test.js +0 -347
  197. package/dist/src/agent/__tests__/agent-as-tool.test.js.map +0 -1
  198. package/dist/src/agent/__tests__/agent.cancel.test.d.ts +0 -2
  199. package/dist/src/agent/__tests__/agent.cancel.test.d.ts.map +0 -1
  200. package/dist/src/agent/__tests__/agent.cancel.test.js +0 -337
  201. package/dist/src/agent/__tests__/agent.cancel.test.js.map +0 -1
  202. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts +0 -2
  203. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts.map +0 -1
  204. package/dist/src/agent/__tests__/agent.concurrent.test.js +0 -488
  205. package/dist/src/agent/__tests__/agent.concurrent.test.js.map +0 -1
  206. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts +0 -2
  207. package/dist/src/agent/__tests__/agent.context-manager.test.d.ts.map +0 -1
  208. package/dist/src/agent/__tests__/agent.context-manager.test.js +0 -106
  209. package/dist/src/agent/__tests__/agent.context-manager.test.js.map +0 -1
  210. package/dist/src/agent/__tests__/agent.hook.test.d.ts +0 -2
  211. package/dist/src/agent/__tests__/agent.hook.test.d.ts.map +0 -1
  212. package/dist/src/agent/__tests__/agent.hook.test.js +0 -1332
  213. package/dist/src/agent/__tests__/agent.hook.test.js.map +0 -1
  214. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts +0 -2
  215. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts.map +0 -1
  216. package/dist/src/agent/__tests__/agent.interrupt.test.js +0 -779
  217. package/dist/src/agent/__tests__/agent.interrupt.test.js.map +0 -1
  218. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts +0 -2
  219. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts.map +0 -1
  220. package/dist/src/agent/__tests__/agent.invocation-state.test.js +0 -219
  221. package/dist/src/agent/__tests__/agent.invocation-state.test.js.map +0 -1
  222. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts +0 -2
  223. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts.map +0 -1
  224. package/dist/src/agent/__tests__/agent.model-retry.test.js +0 -161
  225. package/dist/src/agent/__tests__/agent.model-retry.test.js.map +0 -1
  226. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts +0 -2
  227. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts.map +0 -1
  228. package/dist/src/agent/__tests__/agent.stateful-model.test.js +0 -169
  229. package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +0 -1
  230. package/dist/src/agent/__tests__/agent.test.d.ts +0 -2
  231. package/dist/src/agent/__tests__/agent.test.d.ts.map +0 -1
  232. package/dist/src/agent/__tests__/agent.test.js +0 -1624
  233. package/dist/src/agent/__tests__/agent.test.js.map +0 -1
  234. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts +0 -2
  235. package/dist/src/agent/__tests__/agent.tracer.test.node.d.ts.map +0 -1
  236. package/dist/src/agent/__tests__/agent.tracer.test.node.js +0 -535
  237. package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +0 -1
  238. package/dist/src/agent/__tests__/printer.test.d.ts +0 -2
  239. package/dist/src/agent/__tests__/printer.test.d.ts.map +0 -1
  240. package/dist/src/agent/__tests__/printer.test.js +0 -188
  241. package/dist/src/agent/__tests__/printer.test.js.map +0 -1
  242. package/dist/src/agent/__tests__/snapshot.test.d.ts +0 -2
  243. package/dist/src/agent/__tests__/snapshot.test.d.ts.map +0 -1
  244. package/dist/src/agent/__tests__/snapshot.test.js +0 -442
  245. package/dist/src/agent/__tests__/snapshot.test.js.map +0 -1
  246. package/dist/src/agent/__tests__/tool-caller.test.d.ts +0 -2
  247. package/dist/src/agent/__tests__/tool-caller.test.d.ts.map +0 -1
  248. package/dist/src/agent/__tests__/tool-caller.test.js +0 -459
  249. package/dist/src/agent/__tests__/tool-caller.test.js.map +0 -1
  250. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts +0 -2
  251. package/dist/src/conversation-manager/__tests__/agentic-context.test.d.ts.map +0 -1
  252. package/dist/src/conversation-manager/__tests__/agentic-context.test.js +0 -332
  253. package/dist/src/conversation-manager/__tests__/agentic-context.test.js.map +0 -1
  254. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts +0 -2
  255. package/dist/src/conversation-manager/__tests__/context-compression.test.d.ts.map +0 -1
  256. package/dist/src/conversation-manager/__tests__/context-compression.test.js +0 -176
  257. package/dist/src/conversation-manager/__tests__/context-compression.test.js.map +0 -1
  258. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +0 -2
  259. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +0 -1
  260. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +0 -321
  261. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +0 -1
  262. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts +0 -2
  263. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts.map +0 -1
  264. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +0 -64
  265. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +0 -1
  266. package/dist/src/conversation-manager/__tests__/pin.test.d.ts +0 -2
  267. package/dist/src/conversation-manager/__tests__/pin.test.d.ts.map +0 -1
  268. package/dist/src/conversation-manager/__tests__/pin.test.js +0 -119
  269. package/dist/src/conversation-manager/__tests__/pin.test.js.map +0 -1
  270. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts +0 -2
  271. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts.map +0 -1
  272. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +0 -1080
  273. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +0 -1
  274. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts +0 -2
  275. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.d.ts.map +0 -1
  276. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +0 -400
  277. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +0 -1
  278. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts +0 -2
  279. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.d.ts.map +0 -1
  280. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js +0 -138
  281. package/dist/src/conversation-manager/__tests__/token-usage-middleware.test.js.map +0 -1
  282. package/dist/src/hooks/__tests__/events.test.d.ts +0 -2
  283. package/dist/src/hooks/__tests__/events.test.d.ts.map +0 -1
  284. package/dist/src/hooks/__tests__/events.test.js +0 -1060
  285. package/dist/src/hooks/__tests__/events.test.js.map +0 -1
  286. package/dist/src/hooks/__tests__/registry.test.d.ts +0 -2
  287. package/dist/src/hooks/__tests__/registry.test.d.ts.map +0 -1
  288. package/dist/src/hooks/__tests__/registry.test.js +0 -325
  289. package/dist/src/hooks/__tests__/registry.test.js.map +0 -1
  290. package/dist/src/injection/__tests__/message-injection.test.d.ts +0 -2
  291. package/dist/src/injection/__tests__/message-injection.test.d.ts.map +0 -1
  292. package/dist/src/injection/__tests__/message-injection.test.js +0 -200
  293. package/dist/src/injection/__tests__/message-injection.test.js.map +0 -1
  294. package/dist/src/interventions/__tests__/handler.test.d.ts +0 -2
  295. package/dist/src/interventions/__tests__/handler.test.d.ts.map +0 -1
  296. package/dist/src/interventions/__tests__/handler.test.js +0 -35
  297. package/dist/src/interventions/__tests__/handler.test.js.map +0 -1
  298. package/dist/src/interventions/__tests__/registry.test.d.ts +0 -2
  299. package/dist/src/interventions/__tests__/registry.test.d.ts.map +0 -1
  300. package/dist/src/interventions/__tests__/registry.test.js +0 -692
  301. package/dist/src/interventions/__tests__/registry.test.js.map +0 -1
  302. package/dist/src/logging/__tests__/logger.test.d.ts +0 -2
  303. package/dist/src/logging/__tests__/logger.test.d.ts.map +0 -1
  304. package/dist/src/logging/__tests__/logger.test.js +0 -70
  305. package/dist/src/logging/__tests__/logger.test.js.map +0 -1
  306. package/dist/src/logging/__tests__/warn-once.test.d.ts +0 -2
  307. package/dist/src/logging/__tests__/warn-once.test.d.ts.map +0 -1
  308. package/dist/src/logging/__tests__/warn-once.test.js +0 -30
  309. package/dist/src/logging/__tests__/warn-once.test.js.map +0 -1
  310. package/dist/src/mcp.d.ts.map +0 -1
  311. package/dist/src/mcp.js.map +0 -1
  312. package/dist/src/memory/__tests__/memory-manager.test.d.ts +0 -2
  313. package/dist/src/memory/__tests__/memory-manager.test.d.ts.map +0 -1
  314. package/dist/src/memory/__tests__/memory-manager.test.js +0 -679
  315. package/dist/src/memory/__tests__/memory-manager.test.js.map +0 -1
  316. package/dist/src/memory/__tests__/memory-tracing.test.d.ts +0 -2
  317. package/dist/src/memory/__tests__/memory-tracing.test.d.ts.map +0 -1
  318. package/dist/src/memory/__tests__/memory-tracing.test.js +0 -250
  319. package/dist/src/memory/__tests__/memory-tracing.test.js.map +0 -1
  320. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts +0 -2
  321. package/dist/src/memory/extraction/__tests__/extraction.test.d.ts.map +0 -1
  322. package/dist/src/memory/extraction/__tests__/extraction.test.js +0 -639
  323. package/dist/src/memory/extraction/__tests__/extraction.test.js.map +0 -1
  324. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts +0 -2
  325. package/dist/src/memory/extraction/__tests__/model-extractor.test.d.ts.map +0 -1
  326. package/dist/src/memory/extraction/__tests__/model-extractor.test.js +0 -104
  327. package/dist/src/memory/extraction/__tests__/model-extractor.test.js.map +0 -1
  328. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts +0 -2
  329. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.d.ts.map +0 -1
  330. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js +0 -81
  331. package/dist/src/memory/extraction/__tests__/resolve-extraction-config.test.js.map +0 -1
  332. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts +0 -2
  333. package/dist/src/middleware/__tests__/agent-middleware.test.d.ts.map +0 -1
  334. package/dist/src/middleware/__tests__/agent-middleware.test.js +0 -1206
  335. package/dist/src/middleware/__tests__/agent-middleware.test.js.map +0 -1
  336. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts +0 -2
  337. package/dist/src/middleware/__tests__/copy-on-input.test.d.ts.map +0 -1
  338. package/dist/src/middleware/__tests__/copy-on-input.test.js +0 -379
  339. package/dist/src/middleware/__tests__/copy-on-input.test.js.map +0 -1
  340. package/dist/src/middleware/__tests__/custom-stages.test.d.ts +0 -2
  341. package/dist/src/middleware/__tests__/custom-stages.test.d.ts.map +0 -1
  342. package/dist/src/middleware/__tests__/custom-stages.test.js +0 -97
  343. package/dist/src/middleware/__tests__/custom-stages.test.js.map +0 -1
  344. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts +0 -2
  345. package/dist/src/middleware/__tests__/middleware-interrupts.test.d.ts.map +0 -1
  346. package/dist/src/middleware/__tests__/middleware-interrupts.test.js +0 -267
  347. package/dist/src/middleware/__tests__/middleware-interrupts.test.js.map +0 -1
  348. package/dist/src/middleware/__tests__/registry.test.d.ts +0 -2
  349. package/dist/src/middleware/__tests__/registry.test.d.ts.map +0 -1
  350. package/dist/src/middleware/__tests__/registry.test.js +0 -525
  351. package/dist/src/middleware/__tests__/registry.test.js.map +0 -1
  352. package/dist/src/models/__tests__/anthropic.test.d.ts +0 -2
  353. package/dist/src/models/__tests__/anthropic.test.d.ts.map +0 -1
  354. package/dist/src/models/__tests__/anthropic.test.js +0 -793
  355. package/dist/src/models/__tests__/anthropic.test.js.map +0 -1
  356. package/dist/src/models/__tests__/bedrock.test.d.ts +0 -2
  357. package/dist/src/models/__tests__/bedrock.test.d.ts.map +0 -1
  358. package/dist/src/models/__tests__/bedrock.test.js +0 -3964
  359. package/dist/src/models/__tests__/bedrock.test.js.map +0 -1
  360. package/dist/src/models/__tests__/defaults.test.d.ts +0 -2
  361. package/dist/src/models/__tests__/defaults.test.d.ts.map +0 -1
  362. package/dist/src/models/__tests__/defaults.test.js +0 -36
  363. package/dist/src/models/__tests__/defaults.test.js.map +0 -1
  364. package/dist/src/models/__tests__/google.test.d.ts +0 -2
  365. package/dist/src/models/__tests__/google.test.d.ts.map +0 -1
  366. package/dist/src/models/__tests__/google.test.js +0 -1145
  367. package/dist/src/models/__tests__/google.test.js.map +0 -1
  368. package/dist/src/models/__tests__/model.test.d.ts +0 -2
  369. package/dist/src/models/__tests__/model.test.d.ts.map +0 -1
  370. package/dist/src/models/__tests__/model.test.js +0 -921
  371. package/dist/src/models/__tests__/model.test.js.map +0 -1
  372. package/dist/src/models/__tests__/streaming.test.d.ts +0 -2
  373. package/dist/src/models/__tests__/streaming.test.d.ts.map +0 -1
  374. package/dist/src/models/__tests__/streaming.test.js +0 -50
  375. package/dist/src/models/__tests__/streaming.test.js.map +0 -1
  376. package/dist/src/models/__tests__/test-utils.d.ts +0 -10
  377. package/dist/src/models/__tests__/test-utils.d.ts.map +0 -1
  378. package/dist/src/models/__tests__/test-utils.js +0 -17
  379. package/dist/src/models/__tests__/test-utils.js.map +0 -1
  380. package/dist/src/models/__tests__/vercel.test.d.ts +0 -2
  381. package/dist/src/models/__tests__/vercel.test.d.ts.map +0 -1
  382. package/dist/src/models/__tests__/vercel.test.js +0 -740
  383. package/dist/src/models/__tests__/vercel.test.js.map +0 -1
  384. package/dist/src/models/openai/__tests__/chat.test.d.ts +0 -2
  385. package/dist/src/models/openai/__tests__/chat.test.d.ts.map +0 -1
  386. package/dist/src/models/openai/__tests__/chat.test.js +0 -1586
  387. package/dist/src/models/openai/__tests__/chat.test.js.map +0 -1
  388. package/dist/src/models/openai/__tests__/errors.test.d.ts +0 -2
  389. package/dist/src/models/openai/__tests__/errors.test.d.ts.map +0 -1
  390. package/dist/src/models/openai/__tests__/errors.test.js +0 -39
  391. package/dist/src/models/openai/__tests__/errors.test.js.map +0 -1
  392. package/dist/src/models/openai/__tests__/mantle.test.d.ts +0 -2
  393. package/dist/src/models/openai/__tests__/mantle.test.d.ts.map +0 -1
  394. package/dist/src/models/openai/__tests__/mantle.test.js +0 -189
  395. package/dist/src/models/openai/__tests__/mantle.test.js.map +0 -1
  396. package/dist/src/models/openai/__tests__/responses.test.d.ts +0 -2
  397. package/dist/src/models/openai/__tests__/responses.test.d.ts.map +0 -1
  398. package/dist/src/models/openai/__tests__/responses.test.js +0 -709
  399. package/dist/src/models/openai/__tests__/responses.test.js.map +0 -1
  400. package/dist/src/multiagent/__tests__/events.test.d.ts +0 -2
  401. package/dist/src/multiagent/__tests__/events.test.d.ts.map +0 -1
  402. package/dist/src/multiagent/__tests__/events.test.js +0 -493
  403. package/dist/src/multiagent/__tests__/events.test.js.map +0 -1
  404. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts +0 -2
  405. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts.map +0 -1
  406. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js +0 -95
  407. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js.map +0 -1
  408. package/dist/src/multiagent/__tests__/graph.test.d.ts +0 -2
  409. package/dist/src/multiagent/__tests__/graph.test.d.ts.map +0 -1
  410. package/dist/src/multiagent/__tests__/graph.test.js +0 -698
  411. package/dist/src/multiagent/__tests__/graph.test.js.map +0 -1
  412. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts +0 -2
  413. package/dist/src/multiagent/__tests__/graph.tracer.test.d.ts.map +0 -1
  414. package/dist/src/multiagent/__tests__/graph.tracer.test.js +0 -218
  415. package/dist/src/multiagent/__tests__/graph.tracer.test.js.map +0 -1
  416. package/dist/src/multiagent/__tests__/interrupts.test.d.ts +0 -2
  417. package/dist/src/multiagent/__tests__/interrupts.test.d.ts.map +0 -1
  418. package/dist/src/multiagent/__tests__/interrupts.test.js +0 -390
  419. package/dist/src/multiagent/__tests__/interrupts.test.js.map +0 -1
  420. package/dist/src/multiagent/__tests__/nodes.test.d.ts +0 -2
  421. package/dist/src/multiagent/__tests__/nodes.test.d.ts.map +0 -1
  422. package/dist/src/multiagent/__tests__/nodes.test.js +0 -321
  423. package/dist/src/multiagent/__tests__/nodes.test.js.map +0 -1
  424. package/dist/src/multiagent/__tests__/queue.test.d.ts +0 -2
  425. package/dist/src/multiagent/__tests__/queue.test.d.ts.map +0 -1
  426. package/dist/src/multiagent/__tests__/queue.test.js +0 -118
  427. package/dist/src/multiagent/__tests__/queue.test.js.map +0 -1
  428. package/dist/src/multiagent/__tests__/snapshot.test.d.ts +0 -2
  429. package/dist/src/multiagent/__tests__/snapshot.test.d.ts.map +0 -1
  430. package/dist/src/multiagent/__tests__/snapshot.test.js +0 -161
  431. package/dist/src/multiagent/__tests__/snapshot.test.js.map +0 -1
  432. package/dist/src/multiagent/__tests__/state.test.d.ts +0 -2
  433. package/dist/src/multiagent/__tests__/state.test.d.ts.map +0 -1
  434. package/dist/src/multiagent/__tests__/state.test.js +0 -526
  435. package/dist/src/multiagent/__tests__/state.test.js.map +0 -1
  436. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts +0 -2
  437. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts.map +0 -1
  438. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js +0 -56
  439. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js.map +0 -1
  440. package/dist/src/multiagent/__tests__/swarm.test.d.ts +0 -2
  441. package/dist/src/multiagent/__tests__/swarm.test.d.ts.map +0 -1
  442. package/dist/src/multiagent/__tests__/swarm.test.js +0 -477
  443. package/dist/src/multiagent/__tests__/swarm.test.js.map +0 -1
  444. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts +0 -2
  445. package/dist/src/multiagent/__tests__/swarm.tracer.test.d.ts.map +0 -1
  446. package/dist/src/multiagent/__tests__/swarm.tracer.test.js +0 -235
  447. package/dist/src/multiagent/__tests__/swarm.tracer.test.js.map +0 -1
  448. package/dist/src/plugins/__tests__/plugin.test.d.ts +0 -2
  449. package/dist/src/plugins/__tests__/plugin.test.d.ts.map +0 -1
  450. package/dist/src/plugins/__tests__/plugin.test.js +0 -114
  451. package/dist/src/plugins/__tests__/plugin.test.js.map +0 -1
  452. package/dist/src/plugins/__tests__/registry.test.d.ts +0 -2
  453. package/dist/src/plugins/__tests__/registry.test.d.ts.map +0 -1
  454. package/dist/src/plugins/__tests__/registry.test.js +0 -147
  455. package/dist/src/plugins/__tests__/registry.test.js.map +0 -1
  456. package/dist/src/registry/__tests__/tool-registry.test.d.ts +0 -2
  457. package/dist/src/registry/__tests__/tool-registry.test.d.ts.map +0 -1
  458. package/dist/src/registry/__tests__/tool-registry.test.js +0 -210
  459. package/dist/src/registry/__tests__/tool-registry.test.js.map +0 -1
  460. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts +0 -2
  461. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts.map +0 -1
  462. package/dist/src/retry/__tests__/backoff-strategy.test.js +0 -116
  463. package/dist/src/retry/__tests__/backoff-strategy.test.js.map +0 -1
  464. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts +0 -2
  465. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts.map +0 -1
  466. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js +0 -225
  467. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js.map +0 -1
  468. package/dist/src/sandbox/__tests__/default.test.browser.d.ts +0 -2
  469. package/dist/src/sandbox/__tests__/default.test.browser.d.ts.map +0 -1
  470. package/dist/src/sandbox/__tests__/default.test.browser.js +0 -11
  471. package/dist/src/sandbox/__tests__/default.test.browser.js.map +0 -1
  472. package/dist/src/sandbox/__tests__/default.test.node.d.ts +0 -2
  473. package/dist/src/sandbox/__tests__/default.test.node.d.ts.map +0 -1
  474. package/dist/src/sandbox/__tests__/default.test.node.js +0 -23
  475. package/dist/src/sandbox/__tests__/default.test.node.js.map +0 -1
  476. package/dist/src/sandbox/__tests__/docker.test.node.d.ts +0 -2
  477. package/dist/src/sandbox/__tests__/docker.test.node.d.ts.map +0 -1
  478. package/dist/src/sandbox/__tests__/docker.test.node.js +0 -89
  479. package/dist/src/sandbox/__tests__/docker.test.node.js.map +0 -1
  480. package/dist/src/sandbox/__tests__/errors.test.node.d.ts +0 -2
  481. package/dist/src/sandbox/__tests__/errors.test.node.d.ts.map +0 -1
  482. package/dist/src/sandbox/__tests__/errors.test.node.js +0 -33
  483. package/dist/src/sandbox/__tests__/errors.test.node.js.map +0 -1
  484. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts +0 -2
  485. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.d.ts.map +0 -1
  486. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js +0 -124
  487. package/dist/src/sandbox/__tests__/not-a-sandbox-local-environment.test.node.js.map +0 -1
  488. package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts +0 -2
  489. package/dist/src/sandbox/__tests__/posix-shell.test.node.d.ts.map +0 -1
  490. package/dist/src/sandbox/__tests__/posix-shell.test.node.js +0 -298
  491. package/dist/src/sandbox/__tests__/posix-shell.test.node.js.map +0 -1
  492. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts +0 -2
  493. package/dist/src/sandbox/__tests__/ssh.test.node.d.ts.map +0 -1
  494. package/dist/src/sandbox/__tests__/ssh.test.node.js +0 -262
  495. package/dist/src/sandbox/__tests__/ssh.test.node.js.map +0 -1
  496. package/dist/src/session/__tests__/file-storage.test.node.d.ts +0 -2
  497. package/dist/src/session/__tests__/file-storage.test.node.d.ts.map +0 -1
  498. package/dist/src/session/__tests__/file-storage.test.node.js +0 -278
  499. package/dist/src/session/__tests__/file-storage.test.node.js.map +0 -1
  500. package/dist/src/session/__tests__/s3-storage.test.d.ts +0 -2
  501. package/dist/src/session/__tests__/s3-storage.test.d.ts.map +0 -1
  502. package/dist/src/session/__tests__/s3-storage.test.js +0 -461
  503. package/dist/src/session/__tests__/s3-storage.test.js.map +0 -1
  504. package/dist/src/session/__tests__/session-manager.test.d.ts +0 -2
  505. package/dist/src/session/__tests__/session-manager.test.d.ts.map +0 -1
  506. package/dist/src/session/__tests__/session-manager.test.js +0 -832
  507. package/dist/src/session/__tests__/session-manager.test.js.map +0 -1
  508. package/dist/src/session/__tests__/validation.test.d.ts +0 -2
  509. package/dist/src/session/__tests__/validation.test.d.ts.map +0 -1
  510. package/dist/src/session/__tests__/validation.test.js +0 -47
  511. package/dist/src/session/__tests__/validation.test.js.map +0 -1
  512. package/dist/src/telemetry/__tests__/config.test.d.ts +0 -2
  513. package/dist/src/telemetry/__tests__/config.test.d.ts.map +0 -1
  514. package/dist/src/telemetry/__tests__/config.test.js +0 -64
  515. package/dist/src/telemetry/__tests__/config.test.js.map +0 -1
  516. package/dist/src/telemetry/__tests__/config.test.node.d.ts +0 -2
  517. package/dist/src/telemetry/__tests__/config.test.node.d.ts.map +0 -1
  518. package/dist/src/telemetry/__tests__/config.test.node.js +0 -164
  519. package/dist/src/telemetry/__tests__/config.test.node.js.map +0 -1
  520. package/dist/src/telemetry/__tests__/json.test.d.ts +0 -2
  521. package/dist/src/telemetry/__tests__/json.test.d.ts.map +0 -1
  522. package/dist/src/telemetry/__tests__/json.test.js +0 -89
  523. package/dist/src/telemetry/__tests__/json.test.js.map +0 -1
  524. package/dist/src/telemetry/__tests__/local-trace.test.d.ts +0 -2
  525. package/dist/src/telemetry/__tests__/local-trace.test.d.ts.map +0 -1
  526. package/dist/src/telemetry/__tests__/local-trace.test.js +0 -158
  527. package/dist/src/telemetry/__tests__/local-trace.test.js.map +0 -1
  528. package/dist/src/telemetry/__tests__/meter.test.d.ts +0 -2
  529. package/dist/src/telemetry/__tests__/meter.test.d.ts.map +0 -1
  530. package/dist/src/telemetry/__tests__/meter.test.js +0 -695
  531. package/dist/src/telemetry/__tests__/meter.test.js.map +0 -1
  532. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts +0 -2
  533. package/dist/src/telemetry/__tests__/tracer.test.node.d.ts.map +0 -1
  534. package/dist/src/telemetry/__tests__/tracer.test.node.js +0 -958
  535. package/dist/src/telemetry/__tests__/tracer.test.node.js.map +0 -1
  536. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts +0 -2
  537. package/dist/src/tools/__tests__/structured-output-tool.test.d.ts.map +0 -1
  538. package/dist/src/tools/__tests__/structured-output-tool.test.js +0 -84
  539. package/dist/src/tools/__tests__/structured-output-tool.test.js.map +0 -1
  540. package/dist/src/tools/__tests__/tool-factory.test.d.ts +0 -2
  541. package/dist/src/tools/__tests__/tool-factory.test.d.ts.map +0 -1
  542. package/dist/src/tools/__tests__/tool-factory.test.js +0 -98
  543. package/dist/src/tools/__tests__/tool-factory.test.js.map +0 -1
  544. package/dist/src/tools/__tests__/tool.test.d.ts +0 -2
  545. package/dist/src/tools/__tests__/tool.test.d.ts.map +0 -1
  546. package/dist/src/tools/__tests__/tool.test.js +0 -1043
  547. package/dist/src/tools/__tests__/tool.test.js.map +0 -1
  548. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts +0 -2
  549. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts.map +0 -1
  550. package/dist/src/tools/__tests__/zod-tool.test-d.js +0 -227
  551. package/dist/src/tools/__tests__/zod-tool.test-d.js.map +0 -1
  552. package/dist/src/tools/__tests__/zod-tool.test.d.ts +0 -2
  553. package/dist/src/tools/__tests__/zod-tool.test.d.ts.map +0 -1
  554. package/dist/src/tools/__tests__/zod-tool.test.js +0 -563
  555. package/dist/src/tools/__tests__/zod-tool.test.js.map +0 -1
  556. package/dist/src/types/__tests__/agent.test.d.ts +0 -2
  557. package/dist/src/types/__tests__/agent.test.d.ts.map +0 -1
  558. package/dist/src/types/__tests__/agent.test.js +0 -476
  559. package/dist/src/types/__tests__/agent.test.js.map +0 -1
  560. package/dist/src/types/__tests__/citations.test.d.ts +0 -2
  561. package/dist/src/types/__tests__/citations.test.d.ts.map +0 -1
  562. package/dist/src/types/__tests__/citations.test.js +0 -104
  563. package/dist/src/types/__tests__/citations.test.js.map +0 -1
  564. package/dist/src/types/__tests__/json.test.d.ts +0 -2
  565. package/dist/src/types/__tests__/json.test.d.ts.map +0 -1
  566. package/dist/src/types/__tests__/json.test.js +0 -298
  567. package/dist/src/types/__tests__/json.test.js.map +0 -1
  568. package/dist/src/types/__tests__/media.test.d.ts +0 -2
  569. package/dist/src/types/__tests__/media.test.d.ts.map +0 -1
  570. package/dist/src/types/__tests__/media.test.js +0 -478
  571. package/dist/src/types/__tests__/media.test.js.map +0 -1
  572. package/dist/src/types/__tests__/messages.test.d.ts +0 -2
  573. package/dist/src/types/__tests__/messages.test.d.ts.map +0 -1
  574. package/dist/src/types/__tests__/messages.test.js +0 -681
  575. package/dist/src/types/__tests__/messages.test.js.map +0 -1
  576. package/dist/src/types/__tests__/validation.test.d.ts +0 -2
  577. package/dist/src/types/__tests__/validation.test.d.ts.map +0 -1
  578. package/dist/src/types/__tests__/validation.test.js +0 -30
  579. package/dist/src/types/__tests__/validation.test.js.map +0 -1
  580. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts +0 -2
  581. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.d.ts.map +0 -1
  582. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js +0 -756
  583. package/dist/src/vended-interventions/cedar/__tests__/cedar.test.node.js.map +0 -1
  584. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts +0 -2
  585. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.d.ts.map +0 -1
  586. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js +0 -358
  587. package/dist/src/vended-interventions/hitl/__tests__/hitl.test.js.map +0 -1
  588. package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts +0 -2
  589. package/dist/src/vended-interventions/steering/__tests__/handler.test.d.ts.map +0 -1
  590. package/dist/src/vended-interventions/steering/__tests__/handler.test.js +0 -163
  591. package/dist/src/vended-interventions/steering/__tests__/handler.test.js.map +0 -1
  592. package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts +0 -2
  593. package/dist/src/vended-interventions/steering/__tests__/llm.test.d.ts.map +0 -1
  594. package/dist/src/vended-interventions/steering/__tests__/llm.test.js +0 -60
  595. package/dist/src/vended-interventions/steering/__tests__/llm.test.js.map +0 -1
  596. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts +0 -2
  597. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.d.ts.map +0 -1
  598. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js +0 -94
  599. package/dist/src/vended-interventions/steering/__tests__/tool-ledger.test.js.map +0 -1
  600. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts +0 -2
  601. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.d.ts.map +0 -1
  602. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.js +0 -758
  603. package/dist/src/vended-memory-stores/bedrock-knowledge-base/__tests__/bedrock-knowledge-base-store.test.node.js.map +0 -1
  604. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts +0 -2
  605. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.d.ts.map +0 -1
  606. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js +0 -96
  607. package/dist/src/vended-plugins/context-injector/__tests__/plugin.test.js.map +0 -1
  608. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts +0 -2
  609. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.d.ts.map +0 -1
  610. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js +0 -68
  611. package/dist/src/vended-plugins/context-offloader/__tests__/file-storage-sandbox.test.node.js.map +0 -1
  612. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts +0 -2
  613. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts.map +0 -1
  614. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +0 -539
  615. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +0 -1
  616. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts +0 -2
  617. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.d.ts.map +0 -1
  618. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js +0 -97
  619. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.node.js.map +0 -1
  620. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts +0 -2
  621. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.d.ts.map +0 -1
  622. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js +0 -149
  623. package/dist/src/vended-plugins/context-offloader/__tests__/search.test.js.map +0 -1
  624. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts +0 -2
  625. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts.map +0 -1
  626. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +0 -216
  627. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +0 -1
  628. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts +0 -2
  629. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts.map +0 -1
  630. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js +0 -78
  631. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js.map +0 -1
  632. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts +0 -2
  633. package/dist/src/vended-plugins/goal/__tests__/plugin.test.d.ts.map +0 -1
  634. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js +0 -736
  635. package/dist/src/vended-plugins/goal/__tests__/plugin.test.js.map +0 -1
  636. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts +0 -2
  637. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.d.ts.map +0 -1
  638. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +0 -482
  639. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +0 -1
  640. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts +0 -2
  641. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.d.ts.map +0 -1
  642. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js +0 -476
  643. package/dist/src/vended-plugins/skills/__tests__/skill.test.node.js.map +0 -1
  644. package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts +0 -2
  645. package/dist/src/vended-tools/bash/__tests__/bash.test.node.d.ts.map +0 -1
  646. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +0 -390
  647. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +0 -1
  648. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts +0 -2
  649. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.d.ts.map +0 -1
  650. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +0 -452
  651. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +0 -1
  652. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts +0 -2
  653. package/dist/src/vended-tools/http-request/__tests__/http-request.test.d.ts.map +0 -1
  654. package/dist/src/vended-tools/http-request/__tests__/http-request.test.js +0 -189
  655. package/dist/src/vended-tools/http-request/__tests__/http-request.test.js.map +0 -1
  656. package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts +0 -2
  657. package/dist/src/vended-tools/notebook/__tests__/notebook.test.d.ts.map +0 -1
  658. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +0 -388
  659. 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