@strands-agents/sdk 1.0.0-rc.5 → 1.1.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 (380) hide show
  1. package/LICENSE +175 -0
  2. package/README.md +340 -0
  3. package/dist/src/__fixtures__/agent-helpers.d.ts +22 -1
  4. package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -1
  5. package/dist/src/__fixtures__/agent-helpers.js +45 -1
  6. package/dist/src/__fixtures__/agent-helpers.js.map +1 -1
  7. package/dist/src/__fixtures__/mock-plugin.d.ts.map +1 -1
  8. package/dist/src/__fixtures__/mock-plugin.js +3 -1
  9. package/dist/src/__fixtures__/mock-plugin.js.map +1 -1
  10. package/dist/src/__fixtures__/tool-helpers.d.ts +5 -2
  11. package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -1
  12. package/dist/src/__fixtures__/tool-helpers.js +23 -4
  13. package/dist/src/__fixtures__/tool-helpers.js.map +1 -1
  14. package/dist/src/__tests__/interrupt.test.d.ts +2 -0
  15. package/dist/src/__tests__/interrupt.test.d.ts.map +1 -0
  16. package/dist/src/__tests__/interrupt.test.js +259 -0
  17. package/dist/src/__tests__/interrupt.test.js.map +1 -0
  18. package/dist/src/__tests__/mcp.test.js +448 -2
  19. package/dist/src/__tests__/mcp.test.js.map +1 -1
  20. package/dist/src/a2a/__tests__/events.test.js +2 -0
  21. package/dist/src/a2a/__tests__/events.test.js.map +1 -1
  22. package/dist/src/a2a/__tests__/executor.test.js +16 -5
  23. package/dist/src/a2a/__tests__/executor.test.js.map +1 -1
  24. package/dist/src/a2a/a2a-agent.d.ts +8 -3
  25. package/dist/src/a2a/a2a-agent.d.ts.map +1 -1
  26. package/dist/src/a2a/a2a-agent.js +12 -6
  27. package/dist/src/a2a/a2a-agent.js.map +1 -1
  28. package/dist/src/a2a/executor.d.ts +13 -0
  29. package/dist/src/a2a/executor.d.ts.map +1 -1
  30. package/dist/src/a2a/executor.js +19 -1
  31. package/dist/src/a2a/executor.js.map +1 -1
  32. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts +2 -0
  33. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.d.ts.map +1 -0
  34. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js +23 -0
  35. package/dist/src/agent/__tests__/agent-as-tool.invocation-state.test.js.map +1 -0
  36. package/dist/src/agent/__tests__/agent.cancel.test.js +1 -1
  37. package/dist/src/agent/__tests__/agent.cancel.test.js.map +1 -1
  38. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts +2 -0
  39. package/dist/src/agent/__tests__/agent.concurrent.test.d.ts.map +1 -0
  40. package/dist/src/agent/__tests__/agent.concurrent.test.js +488 -0
  41. package/dist/src/agent/__tests__/agent.concurrent.test.js.map +1 -0
  42. package/dist/src/agent/__tests__/agent.hook.test.js +724 -12
  43. package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -1
  44. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts +2 -0
  45. package/dist/src/agent/__tests__/agent.interrupt.test.d.ts.map +1 -0
  46. package/dist/src/agent/__tests__/agent.interrupt.test.js +730 -0
  47. package/dist/src/agent/__tests__/agent.interrupt.test.js.map +1 -0
  48. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts +2 -0
  49. package/dist/src/agent/__tests__/agent.invocation-state.test.d.ts.map +1 -0
  50. package/dist/src/agent/__tests__/agent.invocation-state.test.js +219 -0
  51. package/dist/src/agent/__tests__/agent.invocation-state.test.js.map +1 -0
  52. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts +2 -0
  53. package/dist/src/agent/__tests__/agent.model-retry.test.d.ts.map +1 -0
  54. package/dist/src/agent/__tests__/agent.model-retry.test.js +161 -0
  55. package/dist/src/agent/__tests__/agent.model-retry.test.js.map +1 -0
  56. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts +2 -0
  57. package/dist/src/agent/__tests__/agent.stateful-model.test.d.ts.map +1 -0
  58. package/dist/src/agent/__tests__/agent.stateful-model.test.js +169 -0
  59. package/dist/src/agent/__tests__/agent.stateful-model.test.js.map +1 -0
  60. package/dist/src/agent/__tests__/agent.test.js +217 -2
  61. package/dist/src/agent/__tests__/agent.test.js.map +1 -1
  62. package/dist/src/agent/__tests__/agent.tracer.test.node.js +39 -0
  63. package/dist/src/agent/__tests__/agent.tracer.test.node.js.map +1 -1
  64. package/dist/src/agent/__tests__/snapshot.test.js +51 -4
  65. package/dist/src/agent/__tests__/snapshot.test.js.map +1 -1
  66. package/dist/src/agent/agent-as-tool.d.ts.map +1 -1
  67. package/dist/src/agent/agent-as-tool.js +4 -2
  68. package/dist/src/agent/agent-as-tool.js.map +1 -1
  69. package/dist/src/agent/agent.d.ts +109 -4
  70. package/dist/src/agent/agent.d.ts.map +1 -1
  71. package/dist/src/agent/agent.js +790 -224
  72. package/dist/src/agent/agent.js.map +1 -1
  73. package/dist/src/agent/snapshot.d.ts +2 -2
  74. package/dist/src/agent/snapshot.d.ts.map +1 -1
  75. package/dist/src/agent/snapshot.js +20 -2
  76. package/dist/src/agent/snapshot.js.map +1 -1
  77. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +230 -9
  78. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -1
  79. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +19 -6
  80. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -1
  81. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +58 -4
  82. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -1
  83. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js +76 -1
  84. package/dist/src/conversation-manager/__tests__/summarizing-conversation-manager.test.js.map +1 -1
  85. package/dist/src/conversation-manager/conversation-manager.d.ts +67 -22
  86. package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -1
  87. package/dist/src/conversation-manager/conversation-manager.js +65 -13
  88. package/dist/src/conversation-manager/conversation-manager.js.map +1 -1
  89. package/dist/src/conversation-manager/index.d.ts +1 -1
  90. package/dist/src/conversation-manager/index.d.ts.map +1 -1
  91. package/dist/src/conversation-manager/index.js +1 -1
  92. package/dist/src/conversation-manager/index.js.map +1 -1
  93. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +17 -3
  94. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -1
  95. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +10 -4
  96. package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -1
  97. package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts +23 -1
  98. package/dist/src/conversation-manager/summarizing-conversation-manager.d.ts.map +1 -1
  99. package/dist/src/conversation-manager/summarizing-conversation-manager.js +39 -17
  100. package/dist/src/conversation-manager/summarizing-conversation-manager.js.map +1 -1
  101. package/dist/src/errors.d.ts +11 -0
  102. package/dist/src/errors.d.ts.map +1 -1
  103. package/dist/src/errors.js +12 -0
  104. package/dist/src/errors.js.map +1 -1
  105. package/dist/src/hooks/__tests__/events.test.js +267 -73
  106. package/dist/src/hooks/__tests__/events.test.js.map +1 -1
  107. package/dist/src/hooks/__tests__/registry.test.js +182 -18
  108. package/dist/src/hooks/__tests__/registry.test.js.map +1 -1
  109. package/dist/src/hooks/events.d.ts +193 -51
  110. package/dist/src/hooks/events.d.ts.map +1 -1
  111. package/dist/src/hooks/events.js +182 -26
  112. package/dist/src/hooks/events.js.map +1 -1
  113. package/dist/src/hooks/index.d.ts +3 -2
  114. package/dist/src/hooks/index.d.ts.map +1 -1
  115. package/dist/src/hooks/index.js +1 -0
  116. package/dist/src/hooks/index.js.map +1 -1
  117. package/dist/src/hooks/registry.d.ts +12 -12
  118. package/dist/src/hooks/registry.d.ts.map +1 -1
  119. package/dist/src/hooks/registry.js +55 -15
  120. package/dist/src/hooks/registry.js.map +1 -1
  121. package/dist/src/hooks/types.d.ts +23 -0
  122. package/dist/src/hooks/types.d.ts.map +1 -1
  123. package/dist/src/hooks/types.js +17 -1
  124. package/dist/src/hooks/types.js.map +1 -1
  125. package/dist/src/index.d.ts +12 -7
  126. package/dist/src/index.d.ts.map +1 -1
  127. package/dist/src/index.js +4 -1
  128. package/dist/src/index.js.map +1 -1
  129. package/dist/src/interrupt.d.ts +220 -0
  130. package/dist/src/interrupt.d.ts.map +1 -0
  131. package/dist/src/interrupt.js +274 -0
  132. package/dist/src/interrupt.js.map +1 -0
  133. package/dist/src/logging/__tests__/warn-once.test.d.ts +2 -0
  134. package/dist/src/logging/__tests__/warn-once.test.d.ts.map +1 -0
  135. package/dist/src/logging/__tests__/warn-once.test.js +30 -0
  136. package/dist/src/logging/__tests__/warn-once.test.js.map +1 -0
  137. package/dist/src/logging/warn-once.d.ts +13 -0
  138. package/dist/src/logging/warn-once.d.ts.map +1 -0
  139. package/dist/src/logging/warn-once.js +18 -0
  140. package/dist/src/logging/warn-once.js.map +1 -0
  141. package/dist/src/mcp.d.ts +43 -3
  142. package/dist/src/mcp.d.ts.map +1 -1
  143. package/dist/src/mcp.js +85 -17
  144. package/dist/src/mcp.js.map +1 -1
  145. package/dist/src/mime.d.ts +2 -1
  146. package/dist/src/mime.d.ts.map +1 -1
  147. package/dist/src/mime.js +1 -0
  148. package/dist/src/mime.js.map +1 -1
  149. package/dist/src/models/__tests__/anthropic.test.js +147 -3
  150. package/dist/src/models/__tests__/anthropic.test.js.map +1 -1
  151. package/dist/src/models/__tests__/bedrock.test.js +228 -2
  152. package/dist/src/models/__tests__/bedrock.test.js.map +1 -1
  153. package/dist/src/models/__tests__/defaults.test.d.ts +2 -0
  154. package/dist/src/models/__tests__/defaults.test.d.ts.map +1 -0
  155. package/dist/src/models/__tests__/defaults.test.js +36 -0
  156. package/dist/src/models/__tests__/defaults.test.js.map +1 -0
  157. package/dist/src/models/__tests__/google.test.js +135 -0
  158. package/dist/src/models/__tests__/google.test.js.map +1 -1
  159. package/dist/src/models/__tests__/model.test.js +149 -1
  160. package/dist/src/models/__tests__/model.test.js.map +1 -1
  161. package/dist/src/models/anthropic.d.ts +20 -1
  162. package/dist/src/models/anthropic.d.ts.map +1 -1
  163. package/dist/src/models/anthropic.js +42 -8
  164. package/dist/src/models/anthropic.js.map +1 -1
  165. package/dist/src/models/bedrock.d.ts +27 -1
  166. package/dist/src/models/bedrock.d.ts.map +1 -1
  167. package/dist/src/models/bedrock.js +100 -12
  168. package/dist/src/models/bedrock.js.map +1 -1
  169. package/dist/src/models/defaults.d.ts +47 -0
  170. package/dist/src/models/defaults.d.ts.map +1 -0
  171. package/dist/src/models/defaults.js +170 -0
  172. package/dist/src/models/defaults.js.map +1 -0
  173. package/dist/src/models/google/model.d.ts +14 -1
  174. package/dist/src/models/google/model.d.ts.map +1 -1
  175. package/dist/src/models/google/model.js +54 -8
  176. package/dist/src/models/google/model.js.map +1 -1
  177. package/dist/src/models/google/types.d.ts +8 -0
  178. package/dist/src/models/google/types.d.ts.map +1 -1
  179. package/dist/src/models/model.d.ts +65 -0
  180. package/dist/src/models/model.d.ts.map +1 -1
  181. package/dist/src/models/model.js +138 -0
  182. package/dist/src/models/model.js.map +1 -1
  183. package/dist/src/models/openai/__tests__/chat.test.d.ts +2 -0
  184. package/dist/src/models/openai/__tests__/chat.test.d.ts.map +1 -0
  185. package/dist/src/models/{__tests__/openai.test.js → openai/__tests__/chat.test.js} +117 -7
  186. package/dist/src/models/openai/__tests__/chat.test.js.map +1 -0
  187. package/dist/src/models/openai/__tests__/responses.test.d.ts +2 -0
  188. package/dist/src/models/openai/__tests__/responses.test.d.ts.map +1 -0
  189. package/dist/src/models/openai/__tests__/responses.test.js +668 -0
  190. package/dist/src/models/openai/__tests__/responses.test.js.map +1 -0
  191. package/dist/src/models/openai/chat-adapter.d.ts +33 -0
  192. package/dist/src/models/openai/chat-adapter.d.ts.map +1 -0
  193. package/dist/src/models/openai/chat-adapter.js +383 -0
  194. package/dist/src/models/openai/chat-adapter.js.map +1 -0
  195. package/dist/src/models/openai/errors.d.ts +16 -0
  196. package/dist/src/models/openai/errors.d.ts.map +1 -0
  197. package/dist/src/models/openai/errors.js +40 -0
  198. package/dist/src/models/openai/errors.js.map +1 -0
  199. package/dist/src/models/openai/formatting.d.ts +18 -0
  200. package/dist/src/models/openai/formatting.d.ts.map +1 -0
  201. package/dist/src/models/openai/formatting.js +38 -0
  202. package/dist/src/models/openai/formatting.js.map +1 -0
  203. package/dist/src/models/openai/index.d.ts +19 -0
  204. package/dist/src/models/openai/index.d.ts.map +1 -0
  205. package/dist/src/models/openai/index.js +18 -0
  206. package/dist/src/models/openai/index.js.map +1 -0
  207. package/dist/src/models/openai/model.d.ts +77 -0
  208. package/dist/src/models/openai/model.d.ts.map +1 -0
  209. package/dist/src/models/openai/model.js +211 -0
  210. package/dist/src/models/openai/model.js.map +1 -0
  211. package/dist/src/models/openai/responses-adapter.d.ts +78 -0
  212. package/dist/src/models/openai/responses-adapter.d.ts.map +1 -0
  213. package/dist/src/models/openai/responses-adapter.js +467 -0
  214. package/dist/src/models/openai/responses-adapter.js.map +1 -0
  215. package/dist/src/models/openai/types.d.ts +131 -0
  216. package/dist/src/models/openai/types.d.ts.map +1 -0
  217. package/dist/src/models/openai/types.js +5 -0
  218. package/dist/src/models/openai/types.js.map +1 -0
  219. package/dist/src/multiagent/__tests__/events.test.js +122 -28
  220. package/dist/src/multiagent/__tests__/events.test.js.map +1 -1
  221. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts +2 -0
  222. package/dist/src/multiagent/__tests__/graph.invocation-state.test.d.ts.map +1 -0
  223. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js +95 -0
  224. package/dist/src/multiagent/__tests__/graph.invocation-state.test.js.map +1 -0
  225. package/dist/src/multiagent/__tests__/graph.test.js +69 -0
  226. package/dist/src/multiagent/__tests__/graph.test.js.map +1 -1
  227. package/dist/src/multiagent/__tests__/nodes.test.js +18 -2
  228. package/dist/src/multiagent/__tests__/nodes.test.js.map +1 -1
  229. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts +2 -0
  230. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.d.ts.map +1 -0
  231. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js +56 -0
  232. package/dist/src/multiagent/__tests__/swarm.invocation-state.test.js.map +1 -0
  233. package/dist/src/multiagent/__tests__/swarm.test.js +77 -0
  234. package/dist/src/multiagent/__tests__/swarm.test.js.map +1 -1
  235. package/dist/src/multiagent/events.d.ts +19 -1
  236. package/dist/src/multiagent/events.d.ts.map +1 -1
  237. package/dist/src/multiagent/events.js +18 -0
  238. package/dist/src/multiagent/events.js.map +1 -1
  239. package/dist/src/multiagent/graph.d.ts +27 -5
  240. package/dist/src/multiagent/graph.d.ts.map +1 -1
  241. package/dist/src/multiagent/graph.js +61 -15
  242. package/dist/src/multiagent/graph.js.map +1 -1
  243. package/dist/src/multiagent/index.d.ts +1 -1
  244. package/dist/src/multiagent/index.d.ts.map +1 -1
  245. package/dist/src/multiagent/multiagent.d.ts +21 -6
  246. package/dist/src/multiagent/multiagent.d.ts.map +1 -1
  247. package/dist/src/multiagent/nodes.d.ts +28 -3
  248. package/dist/src/multiagent/nodes.d.ts.map +1 -1
  249. package/dist/src/multiagent/nodes.js +42 -7
  250. package/dist/src/multiagent/nodes.js.map +1 -1
  251. package/dist/src/multiagent/swarm.d.ts +20 -4
  252. package/dist/src/multiagent/swarm.d.ts.map +1 -1
  253. package/dist/src/multiagent/swarm.js +65 -16
  254. package/dist/src/multiagent/swarm.js.map +1 -1
  255. package/dist/src/plugins/__tests__/registry.test.js +1 -1
  256. package/dist/src/plugins/__tests__/registry.test.js.map +1 -1
  257. package/dist/src/plugins/model-plugin.d.ts +20 -0
  258. package/dist/src/plugins/model-plugin.d.ts.map +1 -0
  259. package/dist/src/plugins/model-plugin.js +29 -0
  260. package/dist/src/plugins/model-plugin.js.map +1 -0
  261. package/dist/src/registry/__tests__/tool-registry.test.js +11 -0
  262. package/dist/src/registry/__tests__/tool-registry.test.js.map +1 -1
  263. package/dist/src/registry/tool-registry.d.ts +4 -0
  264. package/dist/src/registry/tool-registry.d.ts.map +1 -1
  265. package/dist/src/registry/tool-registry.js +6 -0
  266. package/dist/src/registry/tool-registry.js.map +1 -1
  267. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts +2 -0
  268. package/dist/src/retry/__tests__/backoff-strategy.test.d.ts.map +1 -0
  269. package/dist/src/retry/__tests__/backoff-strategy.test.js +116 -0
  270. package/dist/src/retry/__tests__/backoff-strategy.test.js.map +1 -0
  271. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts +2 -0
  272. package/dist/src/retry/__tests__/default-model-retry-strategy.test.d.ts.map +1 -0
  273. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js +225 -0
  274. package/dist/src/retry/__tests__/default-model-retry-strategy.test.js.map +1 -0
  275. package/dist/src/retry/backoff-strategy.d.ts +108 -0
  276. package/dist/src/retry/backoff-strategy.d.ts.map +1 -0
  277. package/dist/src/retry/backoff-strategy.js +86 -0
  278. package/dist/src/retry/backoff-strategy.js.map +1 -0
  279. package/dist/src/retry/default-model-retry-strategy.d.ts +76 -0
  280. package/dist/src/retry/default-model-retry-strategy.d.ts.map +1 -0
  281. package/dist/src/retry/default-model-retry-strategy.js +104 -0
  282. package/dist/src/retry/default-model-retry-strategy.js.map +1 -0
  283. package/dist/src/retry/index.d.ts +8 -0
  284. package/dist/src/retry/index.d.ts.map +1 -0
  285. package/dist/src/retry/index.js +7 -0
  286. package/dist/src/retry/index.js.map +1 -0
  287. package/dist/src/retry/model-retry-strategy.d.ts +80 -0
  288. package/dist/src/retry/model-retry-strategy.d.ts.map +1 -0
  289. package/dist/src/retry/model-retry-strategy.js +85 -0
  290. package/dist/src/retry/model-retry-strategy.js.map +1 -0
  291. package/dist/src/retry/retry-strategy.d.ts +34 -0
  292. package/dist/src/retry/retry-strategy.d.ts.map +1 -0
  293. package/dist/src/retry/retry-strategy.js +25 -0
  294. package/dist/src/retry/retry-strategy.js.map +1 -0
  295. package/dist/src/session/__tests__/session-manager.test.js +52 -11
  296. package/dist/src/session/__tests__/session-manager.test.js.map +1 -1
  297. package/dist/src/session/session-manager.d.ts +6 -0
  298. package/dist/src/session/session-manager.d.ts.map +1 -1
  299. package/dist/src/session/session-manager.js +17 -0
  300. package/dist/src/session/session-manager.js.map +1 -1
  301. package/dist/src/telemetry/__tests__/meter.test.js +23 -0
  302. package/dist/src/telemetry/__tests__/meter.test.js.map +1 -1
  303. package/dist/src/telemetry/meter.d.ts +15 -0
  304. package/dist/src/telemetry/meter.d.ts.map +1 -1
  305. package/dist/src/telemetry/meter.js +14 -0
  306. package/dist/src/telemetry/meter.js.map +1 -1
  307. package/dist/src/tools/__tests__/tool.test.js +24 -1
  308. package/dist/src/tools/__tests__/tool.test.js.map +1 -1
  309. package/dist/src/tools/function-tool.d.ts.map +1 -1
  310. package/dist/src/tools/function-tool.js +6 -1
  311. package/dist/src/tools/function-tool.js.map +1 -1
  312. package/dist/src/tools/mcp-tool.d.ts +24 -3
  313. package/dist/src/tools/mcp-tool.d.ts.map +1 -1
  314. package/dist/src/tools/mcp-tool.js +103 -31
  315. package/dist/src/tools/mcp-tool.js.map +1 -1
  316. package/dist/src/tools/tool.d.ts +21 -2
  317. package/dist/src/tools/tool.d.ts.map +1 -1
  318. package/dist/src/tools/tool.js +12 -0
  319. package/dist/src/tools/tool.js.map +1 -1
  320. package/dist/src/tsconfig.tsbuildinfo +1 -1
  321. package/dist/src/types/__tests__/agent.test.js +48 -0
  322. package/dist/src/types/__tests__/agent.test.js.map +1 -1
  323. package/dist/src/types/agent.d.ts +77 -9
  324. package/dist/src/types/agent.d.ts.map +1 -1
  325. package/dist/src/types/agent.js +30 -6
  326. package/dist/src/types/agent.js.map +1 -1
  327. package/dist/src/types/elicitation.d.ts +15 -0
  328. package/dist/src/types/elicitation.d.ts.map +1 -0
  329. package/dist/src/types/elicitation.js +2 -0
  330. package/dist/src/types/elicitation.js.map +1 -0
  331. package/dist/src/types/interrupt.d.ts +103 -0
  332. package/dist/src/types/interrupt.d.ts.map +1 -0
  333. package/dist/src/types/interrupt.js +63 -0
  334. package/dist/src/types/interrupt.js.map +1 -0
  335. package/dist/src/types/messages.d.ts +2 -1
  336. package/dist/src/types/messages.d.ts.map +1 -1
  337. package/dist/src/types/messages.js.map +1 -1
  338. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts +2 -0
  339. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.d.ts.map +1 -0
  340. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js +292 -0
  341. package/dist/src/vended-plugins/context-offloader/__tests__/plugin.test.js.map +1 -0
  342. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts +2 -0
  343. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.d.ts.map +1 -0
  344. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js +148 -0
  345. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.js.map +1 -0
  346. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts +2 -0
  347. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.d.ts.map +1 -0
  348. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js +78 -0
  349. package/dist/src/vended-plugins/context-offloader/__tests__/storage.test.node.js.map +1 -0
  350. package/dist/src/vended-plugins/context-offloader/index.d.ts +23 -0
  351. package/dist/src/vended-plugins/context-offloader/index.d.ts.map +1 -0
  352. package/dist/src/vended-plugins/context-offloader/index.js +21 -0
  353. package/dist/src/vended-plugins/context-offloader/index.js.map +1 -0
  354. package/dist/src/vended-plugins/context-offloader/plugin.d.ts +48 -0
  355. package/dist/src/vended-plugins/context-offloader/plugin.d.ts.map +1 -0
  356. package/dist/src/vended-plugins/context-offloader/plugin.js +244 -0
  357. package/dist/src/vended-plugins/context-offloader/plugin.js.map +1 -0
  358. package/dist/src/vended-plugins/context-offloader/storage.d.ts +114 -0
  359. package/dist/src/vended-plugins/context-offloader/storage.d.ts.map +1 -0
  360. package/dist/src/vended-plugins/context-offloader/storage.js +204 -0
  361. package/dist/src/vended-plugins/context-offloader/storage.js.map +1 -0
  362. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js +21 -5
  363. package/dist/src/vended-plugins/skills/__tests__/agent-skills.test.node.js.map +1 -1
  364. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js +4 -0
  365. package/dist/src/vended-tools/bash/__tests__/bash.test.node.js.map +1 -1
  366. package/dist/src/vended-tools/bash/bash.d.ts.map +1 -1
  367. package/dist/src/vended-tools/bash/bash.js +0 -3
  368. package/dist/src/vended-tools/bash/bash.js.map +1 -1
  369. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js +4 -0
  370. package/dist/src/vended-tools/file-editor/__tests__/file-editor.test.node.js.map +1 -1
  371. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js +4 -0
  372. package/dist/src/vended-tools/notebook/__tests__/notebook.test.js.map +1 -1
  373. package/package.json +17 -9
  374. package/dist/src/models/__tests__/openai.test.d.ts +0 -2
  375. package/dist/src/models/__tests__/openai.test.d.ts.map +0 -1
  376. package/dist/src/models/__tests__/openai.test.js.map +0 -1
  377. package/dist/src/models/openai.d.ts +0 -312
  378. package/dist/src/models/openai.d.ts.map +0 -1
  379. package/dist/src/models/openai.js +0 -789
  380. package/dist/src/models/openai.js.map +0 -1
@@ -0,0 +1,467 @@
1
+ /**
2
+ * Responses API adapter for the OpenAI model provider.
3
+ *
4
+ * Built-in tool support status:
5
+ * | Tool | Support |
6
+ * |-------------------|----------------------------------------------------------|
7
+ * | web_search | Full: includes URL citations |
8
+ * | file_search | Partial: works but file citation annotations not emitted |
9
+ * | code_interpreter | Partial: works but executed code/stdout not surfaced |
10
+ * | mcp | Partial: works but approval flow not supported |
11
+ * | shell | Partial: container mode only |
12
+ * | image_generation | Not supported |
13
+ *
14
+ * @internal
15
+ */
16
+ import { encodeBase64 } from '../../types/media.js';
17
+ import { toMimeType } from '../../mime.js';
18
+ import { logger } from '../../logging/logger.js';
19
+ import { MODEL_DEFAULTS } from '../defaults.js';
20
+ import { formatImageDataUrl, warnManagedParams as warnManagedParamsShared } from './formatting.js';
21
+ export const DEFAULT_RESPONSES_MODEL_ID = MODEL_DEFAULTS.openai.modelId;
22
+ const MANAGED_PARAMS = new Set(['model', 'input', 'stream', 'store']);
23
+ /**
24
+ * Logs a warning for each responses-managed key present in `params`.
25
+ *
26
+ * @internal
27
+ */
28
+ export function warnManagedParams(params) {
29
+ warnManagedParamsShared(params, MANAGED_PARAMS);
30
+ }
31
+ /**
32
+ * Builds a Responses API streaming request body.
33
+ *
34
+ * @internal
35
+ */
36
+ export function formatResponsesRequest(config, messages, options, stateful) {
37
+ const input = formatResponsesMessages(messages);
38
+ // User `params` are spread first so provider-managed fields (asserted
39
+ // required by `ResponseCreateParamsStreaming` below) always win. The
40
+ // managed-params warning fires at config time to surface the collision.
41
+ const request = {
42
+ ...(config.params ?? {}),
43
+ model: config.modelId ?? DEFAULT_RESPONSES_MODEL_ID,
44
+ input,
45
+ stream: true,
46
+ store: stateful,
47
+ };
48
+ if (stateful) {
49
+ const responseId = options?.modelState?.get('responseId');
50
+ if (responseId) {
51
+ request.previous_response_id = responseId;
52
+ }
53
+ }
54
+ if (options?.systemPrompt !== undefined) {
55
+ if (typeof options.systemPrompt === 'string') {
56
+ request.instructions = options.systemPrompt;
57
+ }
58
+ else if (Array.isArray(options.systemPrompt)) {
59
+ const texts = [];
60
+ for (const block of options.systemPrompt) {
61
+ if (block.type === 'textBlock') {
62
+ texts.push(block.text);
63
+ }
64
+ }
65
+ if (texts.length > 0) {
66
+ request.instructions = texts.join('');
67
+ }
68
+ }
69
+ }
70
+ if (options?.toolSpecs && options.toolSpecs.length > 0) {
71
+ const existingTools = request.tools ?? [];
72
+ request.tools = [
73
+ ...existingTools,
74
+ ...options.toolSpecs.map((spec) => ({
75
+ type: 'function',
76
+ name: spec.name,
77
+ description: spec.description ?? '',
78
+ parameters: (spec.inputSchema ?? {}),
79
+ // `null` defers to the OpenAI server default. The SDK's typed
80
+ // contract requires a value; omitting it (as the Python SDK does)
81
+ // is not an option here.
82
+ strict: null,
83
+ })),
84
+ ];
85
+ if (options.toolChoice) {
86
+ if ('auto' in options.toolChoice) {
87
+ request.tool_choice = 'auto';
88
+ }
89
+ else if ('any' in options.toolChoice) {
90
+ request.tool_choice = 'required';
91
+ }
92
+ else if ('tool' in options.toolChoice) {
93
+ request.tool_choice = { type: 'function', name: options.toolChoice.tool.name };
94
+ }
95
+ }
96
+ }
97
+ if (config.temperature !== undefined)
98
+ request.temperature = config.temperature;
99
+ if (config.maxTokens !== undefined)
100
+ request.max_output_tokens = config.maxTokens;
101
+ if (config.topP !== undefined)
102
+ request.top_p = config.topP;
103
+ return request;
104
+ }
105
+ /**
106
+ * Formats SDK messages into Responses API input items.
107
+ *
108
+ * Per message, content blocks are split into three buckets:
109
+ * - Text/media → grouped in `{ role, content: [...] }`
110
+ * - Tool calls → separate `{ type: 'function_call', ... }` items
111
+ * - Tool results → separate `{ type: 'function_call_output', ... }` items
112
+ */
113
+ function formatResponsesMessages(messages) {
114
+ const input = [];
115
+ for (const message of messages) {
116
+ const role = message.role === 'assistant' ? 'assistant' : 'user';
117
+ const contentItems = [];
118
+ const toolCallItems = [];
119
+ const toolResultItems = [];
120
+ for (const block of message.content) {
121
+ switch (block.type) {
122
+ case 'textBlock': {
123
+ if (role === 'user') {
124
+ contentItems.push({ type: 'input_text', text: block.text });
125
+ }
126
+ else {
127
+ contentItems.push({ type: 'output_text', text: block.text });
128
+ }
129
+ break;
130
+ }
131
+ case 'imageBlock': {
132
+ const formatted = formatImageInput(block);
133
+ if (formatted)
134
+ contentItems.push(formatted);
135
+ break;
136
+ }
137
+ case 'documentBlock': {
138
+ const formatted = formatDocumentInput(block);
139
+ if (formatted)
140
+ contentItems.push(formatted);
141
+ break;
142
+ }
143
+ case 'citationsBlock': {
144
+ const citBlock = block;
145
+ for (const c of citBlock.content) {
146
+ contentItems.push({ type: 'output_text', text: c.text });
147
+ }
148
+ break;
149
+ }
150
+ case 'toolUseBlock': {
151
+ const toolBlock = block;
152
+ const call = {
153
+ type: 'function_call',
154
+ call_id: toolBlock.toolUseId,
155
+ name: toolBlock.name,
156
+ arguments: JSON.stringify(toolBlock.input),
157
+ };
158
+ toolCallItems.push(call);
159
+ break;
160
+ }
161
+ case 'toolResultBlock': {
162
+ const resultBlock = block;
163
+ const result = {
164
+ type: 'function_call_output',
165
+ call_id: resultBlock.toolUseId,
166
+ output: formatToolResultOutput(resultBlock),
167
+ };
168
+ toolResultItems.push(result);
169
+ break;
170
+ }
171
+ case 'reasoningBlock': {
172
+ logger.warn('block_type=<reasoningBlock> | reasoning content is not yet supported in multi-turn conversations with the responses api');
173
+ break;
174
+ }
175
+ default: {
176
+ logger.warn(`block_type=<${block.type}> | unsupported content type in responses api message formatting | skipping`);
177
+ }
178
+ }
179
+ }
180
+ // Cast is needed because assistant messages here use `output_text` content
181
+ // blocks, which the SDK's input types model as `ResponseOutputMessage` —
182
+ // a response-shaped type that requires `id`/`status`/`annotations`. The API
183
+ // accepts these fields as omitted on input, but the SDK types don't reflect that.
184
+ if (contentItems.length > 0) {
185
+ input.push({
186
+ role,
187
+ content: contentItems,
188
+ });
189
+ }
190
+ input.push(...toolCallItems);
191
+ input.push(...toolResultItems);
192
+ }
193
+ return input;
194
+ }
195
+ /**
196
+ * Builds a Responses API `function_call_output.output` value from a SDK
197
+ * `toolResultBlock`. Returns a plain string for text-only results (joined with
198
+ * newlines) or the content-item array shape when the result carries image or
199
+ * document data.
200
+ */
201
+ function formatToolResultOutput(resultBlock) {
202
+ const parts = [];
203
+ const texts = [];
204
+ let hasMedia = false;
205
+ for (const c of resultBlock.content) {
206
+ switch (c.type) {
207
+ case 'textBlock':
208
+ texts.push(c.text);
209
+ parts.push({ type: 'input_text', text: c.text });
210
+ break;
211
+ case 'jsonBlock': {
212
+ const jsonBlock = c;
213
+ let text;
214
+ try {
215
+ text = JSON.stringify(jsonBlock.json);
216
+ }
217
+ catch {
218
+ text = '[JSON serialization error]';
219
+ }
220
+ texts.push(text);
221
+ parts.push({ type: 'input_text', text });
222
+ break;
223
+ }
224
+ case 'imageBlock': {
225
+ const url = formatImageDataUrl(c);
226
+ if (url) {
227
+ hasMedia = true;
228
+ parts.push({ type: 'input_image', image_url: url });
229
+ }
230
+ break;
231
+ }
232
+ case 'documentBlock': {
233
+ const docBlock = c;
234
+ if (docBlock.source.type === 'documentSourceBytes') {
235
+ const base64 = encodeBase64(docBlock.source.bytes);
236
+ const mimeType = toMimeType(docBlock.format) || `application/${docBlock.format}`;
237
+ hasMedia = true;
238
+ parts.push({
239
+ type: 'input_file',
240
+ file_data: `data:${mimeType};base64,${base64}`,
241
+ filename: docBlock.name,
242
+ });
243
+ }
244
+ else {
245
+ logger.warn(`source_type=<${docBlock.source.type}> | only byte source documents supported in responses api tool results`);
246
+ }
247
+ break;
248
+ }
249
+ default:
250
+ logger.warn(`block_type=<${c.type}> | unsupported tool result content type for responses api`);
251
+ }
252
+ }
253
+ if (hasMedia)
254
+ return parts;
255
+ // Text-only: collapse to a single string to match the API's simpler shape.
256
+ const text = texts.join('\n');
257
+ if (resultBlock.status === 'error') {
258
+ return `[ERROR] ${text}`;
259
+ }
260
+ return text;
261
+ }
262
+ function formatImageInput(imageBlock) {
263
+ const url = formatImageDataUrl(imageBlock);
264
+ if (!url)
265
+ return undefined;
266
+ return { type: 'input_image', image_url: url };
267
+ }
268
+ function formatDocumentInput(docBlock) {
269
+ if (docBlock.source.type === 'documentSourceBytes') {
270
+ const base64 = encodeBase64(docBlock.source.bytes);
271
+ const mimeType = toMimeType(docBlock.format) || `application/${docBlock.format}`;
272
+ return {
273
+ type: 'input_file',
274
+ file_data: `data:${mimeType};base64,${base64}`,
275
+ filename: docBlock.name,
276
+ };
277
+ }
278
+ logger.warn(`source_type=<${docBlock.source.type}> | only byte source documents supported in responses api`);
279
+ return undefined;
280
+ }
281
+ /**
282
+ * Creates fresh stream state for a new Responses API stream.
283
+ *
284
+ * @internal
285
+ */
286
+ export function createResponsesStreamState() {
287
+ return {
288
+ dataType: null,
289
+ toolCalls: new Map(),
290
+ finalUsage: null,
291
+ stopReason: 'endTurn',
292
+ };
293
+ }
294
+ /**
295
+ * Maps a single Responses API stream event to zero or more SDK events. Mutates
296
+ * `state` and, when `stateful` is `true`, writes `responseId` into `modelState`.
297
+ *
298
+ * @internal
299
+ */
300
+ export function mapResponsesEventToSDK(event, state, stateful, modelState) {
301
+ const events = [];
302
+ switch (event.type) {
303
+ case 'response.created': {
304
+ if (stateful && modelState) {
305
+ modelState.set('responseId', event.response.id);
306
+ }
307
+ events.push({ type: 'modelMessageStartEvent', role: 'assistant' });
308
+ break;
309
+ }
310
+ case 'response.output_text.delta': {
311
+ events.push(...switchContent('text', state.dataType));
312
+ state.dataType = 'text';
313
+ events.push({
314
+ type: 'modelContentBlockDeltaEvent',
315
+ delta: { type: 'textDelta', text: event.delta },
316
+ });
317
+ break;
318
+ }
319
+ case 'response.reasoning_text.delta':
320
+ case 'response.reasoning_summary_text.delta': {
321
+ events.push(...switchContent('reasoning', state.dataType));
322
+ state.dataType = 'reasoning';
323
+ events.push({
324
+ type: 'modelContentBlockDeltaEvent',
325
+ delta: { type: 'reasoningContentDelta', text: event.delta },
326
+ });
327
+ break;
328
+ }
329
+ case 'response.output_text.annotation.added': {
330
+ // The SDK types `event.annotation` as `unknown` and doesn't export a
331
+ // named annotation union, so we narrow structurally on the fields we use.
332
+ const annotation = event.annotation;
333
+ if (annotation.type === 'url_citation') {
334
+ // Close the in-flight text block before the citation delta.
335
+ // model.ts finalization picks ONE block kind per open block
336
+ // (citations wins over text), so text + citation in the same
337
+ // block drops the text on stop. Switching here forces a
338
+ // separate CitationsBlock, and the next text delta will open
339
+ // a fresh TextBlock.
340
+ events.push(...switchContent('citations', state.dataType));
341
+ state.dataType = 'citations';
342
+ events.push({
343
+ type: 'modelContentBlockDeltaEvent',
344
+ delta: {
345
+ type: 'citationsDelta',
346
+ citations: [
347
+ {
348
+ location: {
349
+ type: 'web',
350
+ url: annotation.url ?? '',
351
+ },
352
+ source: annotation.url ?? '',
353
+ sourceContent: [],
354
+ title: annotation.title ?? '',
355
+ },
356
+ ],
357
+ content: [{ text: annotation.cited_text ?? '' }],
358
+ },
359
+ });
360
+ }
361
+ else {
362
+ logger.warn(`annotation_type=<${annotation.type}> | unsupported annotation type in responses api`);
363
+ }
364
+ break;
365
+ }
366
+ case 'response.output_item.added': {
367
+ if (event.item.type === 'function_call') {
368
+ // `id` is optional in the SDK type but load-bearing here: it keys
369
+ // subsequent argument delta/done events. Skip rather than collapse
370
+ // to an empty string, which would let distinct calls share a key.
371
+ const { id: itemId, call_id: callId, name } = event.item;
372
+ if (!itemId) {
373
+ logger.warn(`call_id=<${callId}> name=<${name}> | function_call event missing item id — skipping`);
374
+ break;
375
+ }
376
+ state.toolCalls.set(itemId, { name, arguments: '', callId, itemId });
377
+ }
378
+ break;
379
+ }
380
+ case 'response.function_call_arguments.delta': {
381
+ const tc = state.toolCalls.get(event.item_id);
382
+ if (tc) {
383
+ tc.arguments += event.delta;
384
+ }
385
+ break;
386
+ }
387
+ case 'response.function_call_arguments.done': {
388
+ const tc = state.toolCalls.get(event.item_id);
389
+ if (tc) {
390
+ tc.arguments = event.arguments;
391
+ }
392
+ break;
393
+ }
394
+ case 'response.incomplete': {
395
+ const resp = event.response;
396
+ if (resp.usage) {
397
+ state.finalUsage = {
398
+ inputTokens: resp.usage.input_tokens,
399
+ outputTokens: resp.usage.output_tokens,
400
+ totalTokens: resp.usage.total_tokens,
401
+ };
402
+ }
403
+ if (resp.incomplete_details?.reason === 'max_output_tokens') {
404
+ state.stopReason = 'maxTokens';
405
+ }
406
+ break;
407
+ }
408
+ case 'response.completed': {
409
+ const resp = event.response;
410
+ if (resp.usage) {
411
+ state.finalUsage = {
412
+ inputTokens: resp.usage.input_tokens,
413
+ outputTokens: resp.usage.output_tokens,
414
+ totalTokens: resp.usage.total_tokens,
415
+ };
416
+ }
417
+ break;
418
+ }
419
+ default:
420
+ break;
421
+ }
422
+ return events;
423
+ }
424
+ /**
425
+ * Emits the terminal events for a Responses API stream: closes any open content
426
+ * block, flushes accumulated tool calls, emits usage metadata, and finishes
427
+ * with `modelMessageStopEvent`.
428
+ *
429
+ * @internal
430
+ */
431
+ export function finalizeResponsesStream(state) {
432
+ const events = [];
433
+ if (state.dataType !== null) {
434
+ events.push({ type: 'modelContentBlockStopEvent' });
435
+ }
436
+ for (const [, tc] of state.toolCalls) {
437
+ events.push({
438
+ type: 'modelContentBlockStartEvent',
439
+ start: { type: 'toolUseStart', name: tc.name, toolUseId: tc.callId },
440
+ });
441
+ events.push({
442
+ type: 'modelContentBlockDeltaEvent',
443
+ delta: { type: 'toolUseInputDelta', input: tc.arguments },
444
+ });
445
+ events.push({ type: 'modelContentBlockStopEvent' });
446
+ }
447
+ let stopReason = state.stopReason;
448
+ if (state.toolCalls.size > 0) {
449
+ stopReason = 'toolUse';
450
+ }
451
+ if (state.finalUsage) {
452
+ events.push({ type: 'modelMetadataEvent', usage: state.finalUsage });
453
+ }
454
+ events.push({ type: 'modelMessageStopEvent', stopReason });
455
+ return events;
456
+ }
457
+ function switchContent(newType, prevType) {
458
+ const events = [];
459
+ if (newType !== prevType) {
460
+ if (prevType !== null) {
461
+ events.push({ type: 'modelContentBlockStopEvent' });
462
+ }
463
+ events.push({ type: 'modelContentBlockStartEvent' });
464
+ }
465
+ return events;
466
+ }
467
+ //# sourceMappingURL=responses-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses-adapter.js","sourceRoot":"","sources":["../../../../src/models/openai/responses-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Type definitions for the OpenAI model provider.
3
+ */
4
+ import type OpenAI from 'openai';
5
+ import type { ApiKeySetter } from 'openai/client';
6
+ import type { ClientOptions } from 'openai';
7
+ import type { BaseModelConfig } from '../model.js';
8
+ /**
9
+ * Supported OpenAI API modes.
10
+ * - `'chat'`: Chat Completions API (stateless)
11
+ * - `'responses'`: Responses API (optional server-managed conversation state via `stateful: true`)
12
+ *
13
+ * @see https://platform.openai.com/docs/api-reference/chat
14
+ * @see https://platform.openai.com/docs/api-reference/responses
15
+ */
16
+ export type OpenAIApi = 'chat' | 'responses';
17
+ /**
18
+ * Fields shared by both Chat Completions and Responses API configurations.
19
+ */
20
+ interface OpenAIBaseConfig extends BaseModelConfig {
21
+ /**
22
+ * OpenAI model identifier (e.g., `gpt-5.4`, `gpt-5.4-mini`, `gpt-4o`).
23
+ * Defaults depend on the selected `api`.
24
+ */
25
+ modelId?: string;
26
+ /**
27
+ * Controls randomness in generation.
28
+ */
29
+ temperature?: number;
30
+ /**
31
+ * Maximum number of tokens to generate in the response.
32
+ */
33
+ maxTokens?: number;
34
+ /**
35
+ * Controls diversity via nucleus sampling.
36
+ */
37
+ topP?: number;
38
+ /**
39
+ * Additional parameters passed through to the OpenAI API for forward compatibility.
40
+ *
41
+ * Provider-managed fields cannot be overridden via `params` — use the dedicated
42
+ * config properties instead. A warning is logged at config time if any are present:
43
+ * - Chat Completions: `model`, `messages`, `stream`, `stream_options`
44
+ * - Responses API: `model`, `input`, `stream`, `store`
45
+ */
46
+ params?: Record<string, unknown>;
47
+ }
48
+ /**
49
+ * Configuration fields specific to the Chat Completions API.
50
+ */
51
+ export interface OpenAIChatConfig extends OpenAIBaseConfig {
52
+ /**
53
+ * Reduces repetition of token sequences (-2.0 to 2.0).
54
+ * Chat Completions only.
55
+ */
56
+ frequencyPenalty?: number;
57
+ /**
58
+ * Encourages the model to talk about new topics (-2.0 to 2.0).
59
+ * Chat Completions only.
60
+ */
61
+ presencePenalty?: number;
62
+ }
63
+ /**
64
+ * Configuration fields specific to the Responses API.
65
+ */
66
+ export interface OpenAIResponsesConfig extends OpenAIBaseConfig {
67
+ /**
68
+ * When `true`, the server manages conversation state: the request sets
69
+ * `store: true` and chains turns via `previous_response_id`, the Agent
70
+ * clears its local message history after each invocation, and a
71
+ * `conversationManager` cannot be supplied. Defaults to `false` — the
72
+ * Responses API is used in stateless mode, where the full message history
73
+ * is sent on every turn.
74
+ */
75
+ stateful?: boolean;
76
+ }
77
+ /**
78
+ * Runtime configuration shape returned by {@link OpenAIModel.getConfig}.
79
+ *
80
+ * Shared fields are required-shaped (still optional as per `BaseModelConfig`), and
81
+ * api-specific fields are optional because this is a merged view — callers cannot
82
+ * narrow on `api` from the returned config.
83
+ */
84
+ export interface OpenAIModelConfig extends OpenAIBaseConfig {
85
+ frequencyPenalty?: number;
86
+ presencePenalty?: number;
87
+ stateful?: boolean;
88
+ }
89
+ interface OpenAIClientOptions {
90
+ /**
91
+ * OpenAI API key (falls back to `OPENAI_API_KEY` environment variable).
92
+ *
93
+ * Accepts either a static string or an async function that resolves to a string.
94
+ * When a function is provided, it is invoked before each request.
95
+ */
96
+ apiKey?: string | ApiKeySetter;
97
+ /**
98
+ * Pre-configured OpenAI client instance. If provided, this client will be used
99
+ * instead of creating a new one.
100
+ */
101
+ client?: OpenAI;
102
+ /**
103
+ * Additional OpenAI client configuration. Only used if `client` is not provided.
104
+ */
105
+ clientConfig?: ClientOptions;
106
+ }
107
+ /**
108
+ * Options for constructing an {@link OpenAIModel}.
109
+ *
110
+ * Discriminated on `api` so that selecting `'chat'` type-narrows to expose
111
+ * `frequencyPenalty` / `presencePenalty`, and selecting `'responses'` (or
112
+ * omitting `api`) narrows to expose `stateful`.
113
+ *
114
+ * `api` is construction-only: it cannot be changed via {@link OpenAIModel.updateConfig}.
115
+ */
116
+ export type OpenAIModelOptions = ({
117
+ api?: 'responses';
118
+ } & OpenAIResponsesConfig & OpenAIClientOptions) | ({
119
+ api: 'chat';
120
+ } & OpenAIChatConfig & OpenAIClientOptions);
121
+ /**
122
+ * Internal stream state for the Chat Completions adapter.
123
+ *
124
+ * @internal
125
+ */
126
+ export interface ChatStreamState {
127
+ messageStarted: boolean;
128
+ textContentBlockStarted: boolean;
129
+ }
130
+ export {};
131
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/models/openai/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,WAAW,CAAA;AAE5C;;GAEG;AACH,UAAU,gBAAiB,SAAQ,eAAe;IAChD;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,mBAAmB;IAC3B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAAA;IAE9B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,aAAa,CAAA;CAC7B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAC1B,CAAC;IAAE,GAAG,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,qBAAqB,GAAG,mBAAmB,CAAC,GACrE,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,gBAAgB,GAAG,mBAAmB,CAAC,CAAA;AAE9D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,uBAAuB,EAAE,OAAO,CAAA;CACjC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Type definitions for the OpenAI model provider.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/models/openai/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}