@openrouter/sdk 0.10.2 → 0.11.2

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 (486) hide show
  1. package/FUNCTIONS.md +1 -1
  2. package/esm/funcs/betaResponsesSend.d.ts +4 -4
  3. package/esm/funcs/betaResponsesSend.js +2 -4
  4. package/esm/funcs/call-model.d.ts +1 -1
  5. package/esm/funcs/call-model.js +1 -1
  6. package/esm/funcs/chatSend.d.ts +4 -4
  7. package/esm/funcs/chatSend.js +2 -4
  8. package/esm/index.d.ts +0 -17
  9. package/esm/index.js +0 -23
  10. package/esm/lib/anthropic-compat.d.ts +2 -2
  11. package/esm/lib/anthropic-compat.js +9 -9
  12. package/esm/lib/anthropic-compat.test.js +2 -1
  13. package/esm/lib/async-params.d.ts +4 -4
  14. package/esm/lib/chat-compat.d.ts +2 -2
  15. package/esm/lib/chat-compat.js +8 -8
  16. package/esm/lib/chat-compat.test.js +3 -2
  17. package/esm/lib/config.d.ts +3 -3
  18. package/esm/lib/config.js +3 -3
  19. package/esm/lib/conversation-state.d.ts +4 -4
  20. package/esm/lib/encodings.js +20 -5
  21. package/esm/lib/event-streams.d.ts +11 -4
  22. package/esm/lib/event-streams.js +44 -22
  23. package/esm/lib/files.d.ts +13 -0
  24. package/esm/lib/files.js +18 -0
  25. package/esm/lib/matchers.js +0 -1
  26. package/esm/lib/model-result.d.ts +8 -13
  27. package/esm/lib/model-result.js +61 -46
  28. package/esm/lib/next-turn-params.d.ts +4 -4
  29. package/esm/lib/next-turn-params.js +1 -1
  30. package/esm/lib/sdks.js +10 -6
  31. package/esm/lib/security.d.ts +1 -1
  32. package/esm/lib/security.js +20 -10
  33. package/esm/lib/stream-transformers.d.ts +41 -18
  34. package/esm/lib/stream-transformers.js +9 -9
  35. package/esm/lib/stream-type-guards.d.ts +15 -15
  36. package/esm/lib/tool-orchestrator.d.ts +4 -4
  37. package/esm/lib/tool-orchestrator.js +1 -1
  38. package/esm/lib/tool-types.d.ts +26 -12
  39. package/esm/lib/tool-types.js +6 -0
  40. package/esm/lib/turn-context.d.ts +3 -3
  41. package/esm/lib/turn-context.js +1 -1
  42. package/esm/lib/url.js +4 -2
  43. package/esm/models/annotationaddedevent.d.ts +20 -0
  44. package/esm/models/annotationaddedevent.js +30 -0
  45. package/esm/models/applypatchservertool.d.ts +20 -0
  46. package/esm/models/applypatchservertool.js +21 -0
  47. package/esm/models/baseinputsunion.d.ts +185 -0
  48. package/esm/models/baseinputsunion.js +274 -0
  49. package/esm/models/basereasoningconfig.d.ts +13 -0
  50. package/esm/models/basereasoningconfig.js +17 -0
  51. package/esm/models/chatassistantimages.d.ts +33 -0
  52. package/esm/models/chatassistantimages.js +44 -0
  53. package/esm/models/chatassistantmessage.d.ts +86 -0
  54. package/esm/models/chatassistantmessage.js +70 -0
  55. package/esm/models/{chatcompletionaudiooutput.d.ts → chataudiooutput.d.ts} +7 -7
  56. package/esm/models/{chatcompletionaudiooutput.js → chataudiooutput.js} +8 -8
  57. package/esm/models/chatchoice.d.ts +27 -0
  58. package/esm/models/chatchoice.js +25 -0
  59. package/esm/models/chatcontentaudio.d.ts +52 -0
  60. package/esm/models/chatcontentaudio.js +55 -0
  61. package/esm/models/chatcontentcachecontrol.d.ts +40 -0
  62. package/esm/models/chatcontentcachecontrol.js +39 -0
  63. package/esm/models/{chatmessagecontentitemfile.d.ts → chatcontentfile.d.ts} +12 -12
  64. package/esm/models/{chatmessagecontentitemfile.js → chatcontentfile.js} +13 -13
  65. package/esm/models/chatcontentimage.d.ts +68 -0
  66. package/esm/models/chatcontentimage.js +68 -0
  67. package/esm/models/chatcontentitems.d.ts +31 -0
  68. package/esm/models/chatcontentitems.js +57 -0
  69. package/esm/models/chatcontenttext.d.ts +37 -0
  70. package/esm/models/chatcontenttext.js +42 -0
  71. package/esm/models/chatcontentvideo.d.ts +26 -0
  72. package/esm/models/chatcontentvideo.js +33 -0
  73. package/esm/models/chatcontentvideoinput.d.ts +23 -0
  74. package/esm/models/chatcontentvideoinput.js +21 -0
  75. package/esm/models/{debugoptions.d.ts → chatdebugoptions.d.ts} +5 -5
  76. package/esm/models/{debugoptions.js → chatdebugoptions.js} +5 -5
  77. package/esm/models/chatdevelopermessage.d.ts +35 -0
  78. package/esm/models/chatdevelopermessage.js +21 -0
  79. package/esm/models/chatfinishreasonenum.d.ts +13 -0
  80. package/esm/models/{chatcompletionfinishreason.js → chatfinishreasonenum.js} +4 -4
  81. package/esm/models/chatformatgrammarconfig.d.ts +20 -0
  82. package/esm/models/chatformatgrammarconfig.js +14 -0
  83. package/esm/models/chatformatjsonschemaconfig.d.ts +21 -0
  84. package/esm/models/chatformatjsonschemaconfig.js +20 -0
  85. package/esm/models/chatformatpythonconfig.d.ts +15 -0
  86. package/esm/models/chatformatpythonconfig.js +13 -0
  87. package/esm/models/chatformattextconfig.d.ts +15 -0
  88. package/esm/models/chatformattextconfig.js +13 -0
  89. package/esm/models/chatfunctiontool.d.ts +77 -0
  90. package/esm/models/chatfunctiontool.js +49 -0
  91. package/esm/models/{jsonschemaconfig.d.ts → chatjsonschemaconfig.d.ts} +5 -5
  92. package/esm/models/{jsonschemaconfig.js → chatjsonschemaconfig.js} +5 -5
  93. package/esm/models/chatmessages.d.ts +20 -0
  94. package/esm/models/chatmessages.js +22 -0
  95. package/esm/models/chatnamedtoolchoice.d.ts +37 -0
  96. package/esm/models/chatnamedtoolchoice.js +26 -0
  97. package/esm/models/chatreasoningsummaryverbosityenum.d.ts +11 -0
  98. package/esm/models/chatreasoningsummaryverbosityenum.js +13 -0
  99. package/esm/models/{chatgenerationparams.d.ts → chatrequest.d.ts} +154 -130
  100. package/esm/models/chatrequest.js +426 -0
  101. package/esm/models/chatresult.d.ts +50 -0
  102. package/esm/models/chatresult.js +35 -0
  103. package/esm/models/chatstreamchoice.d.ts +27 -0
  104. package/esm/models/chatstreamchoice.js +24 -0
  105. package/esm/models/{chatstreamingresponsechunk.d.ts → chatstreamchunk.d.ts} +16 -12
  106. package/esm/models/chatstreamchunk.js +43 -0
  107. package/esm/models/{chatstreamingmessagechunk.d.ts → chatstreamdelta.d.ts} +12 -12
  108. package/esm/models/chatstreamdelta.js +37 -0
  109. package/esm/models/chatstreamtoolcall.d.ts +57 -0
  110. package/esm/models/chatstreamtoolcall.js +33 -0
  111. package/esm/models/chatsystemmessage.d.ts +35 -0
  112. package/esm/models/chatsystemmessage.js +21 -0
  113. package/esm/models/chattokenlogprob.d.ts +36 -0
  114. package/esm/models/chattokenlogprob.js +31 -0
  115. package/esm/models/chattokenlogprobs.d.ts +21 -0
  116. package/esm/models/chattokenlogprobs.js +16 -0
  117. package/esm/models/chattoolcall.d.ts +57 -0
  118. package/esm/models/chattoolcall.js +49 -0
  119. package/esm/models/chattoolchoice.d.ts +31 -0
  120. package/esm/models/chattoolchoice.js +32 -0
  121. package/esm/models/chattoolmessage.d.ts +35 -0
  122. package/esm/models/chattoolmessage.js +26 -0
  123. package/esm/models/{chatgenerationtokenusage.d.ts → chatusage.d.ts} +4 -4
  124. package/esm/models/{chatgenerationtokenusage.js → chatusage.js} +5 -5
  125. package/esm/models/chatusermessage.d.ts +35 -0
  126. package/esm/models/chatusermessage.js +21 -0
  127. package/esm/models/chatwebsearchservertool.d.ts +124 -0
  128. package/esm/models/chatwebsearchservertool.js +84 -0
  129. package/esm/models/chatwebsearchshorthand.d.ts +219 -0
  130. package/esm/models/chatwebsearchshorthand.js +141 -0
  131. package/esm/models/{openresponsescodeinterpretertool.d.ts → codeinterpreterservertool.d.ts} +7 -7
  132. package/esm/models/{openresponsescodeinterpretertool.js → codeinterpreterservertool.js} +8 -8
  133. package/esm/models/codexlocalshelltool.d.ts +20 -0
  134. package/esm/models/codexlocalshelltool.js +21 -0
  135. package/esm/models/{openresponsescomputertool.d.ts → computeruseservertool.d.ts} +7 -7
  136. package/esm/models/{openresponsescomputertool.js → computeruseservertool.js} +8 -8
  137. package/esm/models/contentpartaddedevent.d.ts +29 -0
  138. package/esm/models/contentpartaddedevent.js +43 -0
  139. package/esm/models/contentpartdoneevent.d.ts +29 -0
  140. package/esm/models/contentpartdoneevent.js +43 -0
  141. package/esm/models/{openresponsescustomtool.d.ts → customtool.d.ts} +7 -7
  142. package/esm/models/{openresponsescustomtool.js → customtool.js} +9 -8
  143. package/esm/models/datetimeservertool.d.ts +9 -2
  144. package/esm/models/datetimeservertool.js +6 -1
  145. package/esm/models/easyinputmessage.d.ts +120 -0
  146. package/esm/models/easyinputmessage.js +141 -0
  147. package/esm/models/{openresponseserrorevent.d.ts → errorevent.d.ts} +4 -4
  148. package/esm/models/{openresponseserrorevent.js → errorevent.js} +6 -5
  149. package/esm/models/{openresponsesfilesearchtool.d.ts → filesearchservertool.d.ts} +17 -17
  150. package/esm/models/{openresponsesfilesearchtool.js → filesearchservertool.js} +18 -18
  151. package/esm/models/formatjsonobjectconfig.d.ts +20 -0
  152. package/esm/models/formatjsonobjectconfig.js +21 -0
  153. package/esm/models/formatjsonschemaconfig.d.ts +32 -0
  154. package/esm/models/formatjsonschemaconfig.js +29 -0
  155. package/esm/models/formats.d.ts +19 -0
  156. package/esm/models/formats.js +29 -0
  157. package/esm/models/formattextconfig.d.ts +20 -0
  158. package/esm/models/formattextconfig.js +21 -0
  159. package/esm/models/functioncallargsdeltaevent.d.ts +17 -0
  160. package/esm/models/functioncallargsdeltaevent.js +25 -0
  161. package/esm/models/functioncallargsdoneevent.d.ts +18 -0
  162. package/esm/models/functioncallargsdoneevent.js +26 -0
  163. package/esm/models/functioncallitem.d.ts +33 -0
  164. package/esm/models/functioncallitem.js +29 -0
  165. package/esm/models/functioncalloutputitem.d.ts +70 -0
  166. package/esm/models/functioncalloutputitem.js +79 -0
  167. package/esm/models/imagegencallcompletedevent.d.ts +16 -0
  168. package/esm/models/{openresponsesimagegencallcompleted.js → imagegencallcompletedevent.js} +5 -5
  169. package/esm/models/imagegencallgeneratingevent.d.ts +16 -0
  170. package/esm/models/{openresponsesimagegencallgenerating.js → imagegencallgeneratingevent.js} +5 -5
  171. package/esm/models/imagegencallinprogressevent.d.ts +16 -0
  172. package/esm/models/{openresponsesimagegencallinprogress.js → imagegencallinprogressevent.js} +5 -5
  173. package/esm/models/{openresponsesimagegencallpartialimage.d.ts → imagegencallpartialimageevent.d.ts} +4 -4
  174. package/esm/models/{openresponsesimagegencallpartialimage.js → imagegencallpartialimageevent.js} +5 -5
  175. package/esm/models/{openresponsesimagegenerationtool.d.ts → imagegenerationservertool.d.ts} +7 -7
  176. package/esm/models/{openresponsesimagegenerationtool.js → imagegenerationservertool.js} +8 -8
  177. package/esm/models/{openairesponsesincompletedetails.d.ts → incompletedetails.d.ts} +4 -4
  178. package/esm/models/{openairesponsesincompletedetails.js → incompletedetails.js} +5 -5
  179. package/esm/models/index.d.ts +121 -109
  180. package/esm/models/index.js +121 -109
  181. package/esm/models/inputaudio.d.ts +47 -0
  182. package/esm/models/inputaudio.js +58 -0
  183. package/esm/models/{responseinputfile.d.ts → inputfile.d.ts} +7 -7
  184. package/esm/models/{responseinputfile.js → inputfile.js} +8 -8
  185. package/esm/models/inputimage.d.ts +43 -0
  186. package/esm/models/inputimage.js +52 -0
  187. package/esm/models/inputmessageitem.d.ts +84 -0
  188. package/esm/models/inputmessageitem.js +92 -0
  189. package/esm/models/inputsunion.d.ts +208 -0
  190. package/esm/models/inputsunion.js +228 -0
  191. package/esm/models/inputtext.d.ts +22 -0
  192. package/esm/models/inputtext.js +23 -0
  193. package/esm/models/inputvideo.d.ts +20 -0
  194. package/esm/models/{responseinputvideo.js → inputvideo.js} +5 -5
  195. package/esm/models/legacychatcontentvideo.d.ts +28 -0
  196. package/esm/models/legacychatcontentvideo.js +33 -0
  197. package/esm/models/legacywebsearchservertool.d.ts +78 -0
  198. package/esm/models/legacywebsearchservertool.js +87 -0
  199. package/esm/models/{openresponsesmcptool.d.ts → mcpservertool.d.ts} +7 -7
  200. package/esm/models/{openresponsesmcptool.js → mcpservertool.js} +9 -8
  201. package/esm/models/model.d.ts +4 -0
  202. package/esm/models/model.js +2 -0
  203. package/esm/models/openairesponsestruncation.d.ts +1 -1
  204. package/esm/models/openairesponsestruncation.js +1 -1
  205. package/esm/models/openresponsesresult.d.ts +110 -0
  206. package/esm/models/openresponsesresult.js +142 -0
  207. package/esm/models/operations/createkeys.d.ts +4 -0
  208. package/esm/models/operations/createkeys.js +2 -0
  209. package/esm/models/operations/createresponses.d.ts +4 -4
  210. package/esm/models/operations/createresponses.js +6 -5
  211. package/esm/models/operations/getcurrentkey.d.ts +4 -0
  212. package/esm/models/operations/getcurrentkey.js +2 -0
  213. package/esm/models/operations/getgeneration.d.ts +2 -0
  214. package/esm/models/operations/getgeneration.js +2 -0
  215. package/esm/models/operations/getkey.d.ts +4 -0
  216. package/esm/models/operations/getkey.js +2 -0
  217. package/esm/models/operations/list.d.ts +4 -0
  218. package/esm/models/operations/list.js +2 -0
  219. package/esm/models/operations/listproviders.d.ts +523 -0
  220. package/esm/models/operations/listproviders.js +512 -0
  221. package/esm/models/operations/sendchatcompletionrequest.d.ts +4 -4
  222. package/esm/models/operations/sendchatcompletionrequest.js +6 -5
  223. package/esm/models/operations/updatekeys.d.ts +4 -0
  224. package/esm/models/operations/updatekeys.js +2 -0
  225. package/esm/models/outputdatetimeitem.d.ts +44 -0
  226. package/esm/models/outputdatetimeitem.js +30 -0
  227. package/esm/models/outputfilesearchcallitem.d.ts +33 -0
  228. package/esm/models/outputfilesearchcallitem.js +35 -0
  229. package/esm/models/outputfunctioncallitem.d.ts +69 -0
  230. package/esm/models/outputfunctioncallitem.js +94 -0
  231. package/esm/models/outputimagegenerationcallitem.d.ts +33 -0
  232. package/esm/models/outputimagegenerationcallitem.js +35 -0
  233. package/esm/models/outputitems.d.ts +18 -0
  234. package/esm/models/outputitems.js +28 -0
  235. package/esm/models/outputmessageitem.d.ts +81 -0
  236. package/esm/models/outputmessageitem.js +93 -0
  237. package/esm/models/outputmodalityenum.d.ts +10 -0
  238. package/esm/models/outputmodalityenum.js +12 -0
  239. package/esm/models/outputreasoningitem.d.ts +74 -0
  240. package/esm/models/outputreasoningitem.js +75 -0
  241. package/esm/models/outputservertoolitem.d.ts +42 -0
  242. package/esm/models/outputservertoolitem.js +44 -0
  243. package/esm/models/{responseswebsearchcalloutput.d.ts → outputwebsearchcallitem.d.ts} +7 -7
  244. package/esm/models/{responseswebsearchcalloutput.js → outputwebsearchcallitem.js} +8 -8
  245. package/esm/models/pdfparserengine.d.ts +18 -9
  246. package/esm/models/pdfparserengine.js +17 -6
  247. package/esm/models/pdfparseroptions.d.ts +3 -3
  248. package/esm/models/preview20250311websearchservertool.d.ts +75 -0
  249. package/esm/models/preview20250311websearchservertool.js +89 -0
  250. package/esm/models/previewwebsearchservertool.d.ts +75 -0
  251. package/esm/models/previewwebsearchservertool.js +89 -0
  252. package/esm/models/previewwebsearchuserlocation.d.ts +34 -0
  253. package/esm/models/previewwebsearchuserlocation.js +36 -0
  254. package/esm/models/providername.d.ts +1 -0
  255. package/esm/models/providername.js +1 -0
  256. package/esm/models/providerpreferences.d.ts +3 -0
  257. package/esm/models/reasoningconfig.d.ts +23 -0
  258. package/esm/models/reasoningconfig.js +23 -0
  259. package/esm/models/{openresponsesreasoningdeltaevent.d.ts → reasoningdeltaevent.d.ts} +4 -4
  260. package/esm/models/{openresponsesreasoningdeltaevent.js → reasoningdeltaevent.js} +5 -5
  261. package/esm/models/{openresponsesreasoningdoneevent.d.ts → reasoningdoneevent.d.ts} +4 -4
  262. package/esm/models/{openresponsesreasoningdoneevent.js → reasoningdoneevent.js} +5 -5
  263. package/esm/models/reasoningeffortenum.d.ts +16 -0
  264. package/esm/models/reasoningeffortenum.js +18 -0
  265. package/esm/models/reasoningitem.d.ts +73 -0
  266. package/esm/models/reasoningitem.js +71 -0
  267. package/esm/models/{openresponsesreasoningsummarypartaddedevent.d.ts → reasoningsummarypartaddedevent.d.ts} +4 -4
  268. package/esm/models/{openresponsesreasoningsummarypartaddedevent.js → reasoningsummarypartaddedevent.js} +5 -5
  269. package/esm/models/reasoningsummarypartdoneevent.d.ts +19 -0
  270. package/esm/models/reasoningsummarypartdoneevent.js +28 -0
  271. package/esm/models/reasoningsummarytextdeltaevent.d.ts +18 -0
  272. package/esm/models/{openresponsesreasoningsummarytextdeltaevent.js → reasoningsummarytextdeltaevent.js} +5 -5
  273. package/esm/models/reasoningsummarytextdoneevent.d.ts +18 -0
  274. package/esm/models/{openresponsesreasoningsummarytextdoneevent.js → reasoningsummarytextdoneevent.js} +5 -5
  275. package/esm/models/reasoningsummaryverbosityenum.d.ts +13 -0
  276. package/esm/models/reasoningsummaryverbosityenum.js +15 -0
  277. package/esm/models/refusaldeltaevent.d.ts +18 -0
  278. package/esm/models/refusaldeltaevent.js +27 -0
  279. package/esm/models/refusaldoneevent.d.ts +18 -0
  280. package/esm/models/refusaldoneevent.js +27 -0
  281. package/esm/models/{openairesponsesincludable.d.ts → responseincludesenum.d.ts} +4 -4
  282. package/esm/models/{openairesponsesincludable.js → responseincludesenum.js} +4 -4
  283. package/esm/models/responsesrequest.d.ts +499 -0
  284. package/esm/models/responsesrequest.js +347 -0
  285. package/esm/models/searchcontextsizeenum.d.ts +19 -0
  286. package/esm/models/searchcontextsizeenum.js +18 -0
  287. package/esm/models/shellservertool.d.ts +20 -0
  288. package/esm/models/shellservertool.js +21 -0
  289. package/esm/models/storedprompttemplate.d.ts +35 -0
  290. package/esm/models/storedprompttemplate.js +56 -0
  291. package/esm/models/streamevents.d.ts +136 -0
  292. package/esm/models/streamevents.js +165 -0
  293. package/esm/models/textconfig.d.ts +27 -0
  294. package/esm/models/textconfig.js +25 -0
  295. package/esm/models/textdeltaevent.d.ts +42 -0
  296. package/esm/models/textdeltaevent.js +52 -0
  297. package/esm/models/textdoneevent.d.ts +42 -0
  298. package/esm/models/textdoneevent.js +53 -0
  299. package/esm/models/textextendedconfig.d.ts +30 -0
  300. package/esm/models/textextendedconfig.js +23 -0
  301. package/esm/models/toolcallstatusenum.d.ts +13 -0
  302. package/esm/models/toolcallstatusenum.js +15 -0
  303. package/esm/models/truncationenum.d.ts +10 -0
  304. package/esm/models/truncationenum.js +12 -0
  305. package/esm/models/{openresponsesusage.d.ts → usage.d.ts} +4 -4
  306. package/esm/models/{openresponsesusage.js → usage.js} +5 -5
  307. package/esm/models/websearchcallcompletedevent.d.ts +16 -0
  308. package/esm/models/{openresponseswebsearchcallcompleted.js → websearchcallcompletedevent.js} +5 -5
  309. package/esm/models/websearchcallinprogressevent.d.ts +16 -0
  310. package/esm/models/{openresponseswebsearchcallinprogress.js → websearchcallinprogressevent.js} +5 -5
  311. package/esm/models/websearchcallsearchingevent.d.ts +16 -0
  312. package/esm/models/{openresponseswebsearchcallsearching.js → websearchcallsearchingevent.js} +5 -5
  313. package/esm/models/websearchservertool.d.ts +43 -81
  314. package/esm/models/websearchservertool.js +57 -45
  315. package/esm/models/websearchservertoolopenrouter.d.ts +35 -0
  316. package/esm/models/websearchservertoolopenrouter.js +28 -0
  317. package/esm/models/websearchuserlocation.d.ts +37 -0
  318. package/esm/models/websearchuserlocation.js +36 -0
  319. package/esm/sdk/chat.d.ts +4 -4
  320. package/esm/sdk/responses.d.ts +4 -4
  321. package/jsr.json +1 -1
  322. package/package.json +7 -12
  323. package/tsconfig.json +3 -1
  324. package/esm/models/assistantmessage.d.ts +0 -86
  325. package/esm/models/assistantmessage.js +0 -86
  326. package/esm/models/assistantmessageimages.d.ts +0 -33
  327. package/esm/models/assistantmessageimages.js +0 -44
  328. package/esm/models/chatcompletionfinishreason.d.ts +0 -13
  329. package/esm/models/chatgenerationparams.js +0 -413
  330. package/esm/models/chatmessagecontentitem.d.ts +0 -31
  331. package/esm/models/chatmessagecontentitem.js +0 -57
  332. package/esm/models/chatmessagecontentitemaudio.d.ts +0 -52
  333. package/esm/models/chatmessagecontentitemaudio.js +0 -55
  334. package/esm/models/chatmessagecontentitemcachecontrol.d.ts +0 -40
  335. package/esm/models/chatmessagecontentitemcachecontrol.js +0 -39
  336. package/esm/models/chatmessagecontentitemimage.d.ts +0 -68
  337. package/esm/models/chatmessagecontentitemimage.js +0 -68
  338. package/esm/models/chatmessagecontentitemtext.d.ts +0 -37
  339. package/esm/models/chatmessagecontentitemtext.js +0 -42
  340. package/esm/models/chatmessagecontentitemvideo.d.ts +0 -26
  341. package/esm/models/chatmessagecontentitemvideo.js +0 -33
  342. package/esm/models/chatmessagecontentitemvideolegacy.d.ts +0 -28
  343. package/esm/models/chatmessagecontentitemvideolegacy.js +0 -33
  344. package/esm/models/chatmessagetokenlogprob.d.ts +0 -36
  345. package/esm/models/chatmessagetokenlogprob.js +0 -31
  346. package/esm/models/chatmessagetokenlogprobs.d.ts +0 -21
  347. package/esm/models/chatmessagetokenlogprobs.js +0 -17
  348. package/esm/models/chatmessagetoolcall.d.ts +0 -57
  349. package/esm/models/chatmessagetoolcall.js +0 -48
  350. package/esm/models/chatresponse.d.ts +0 -46
  351. package/esm/models/chatresponse.js +0 -33
  352. package/esm/models/chatresponsechoice.d.ts +0 -27
  353. package/esm/models/chatresponsechoice.js +0 -24
  354. package/esm/models/chatstreamingchoice.d.ts +0 -27
  355. package/esm/models/chatstreamingchoice.js +0 -24
  356. package/esm/models/chatstreamingmessagechunk.js +0 -37
  357. package/esm/models/chatstreamingmessagetoolcall.d.ts +0 -57
  358. package/esm/models/chatstreamingmessagetoolcall.js +0 -34
  359. package/esm/models/chatstreamingresponsechunk.js +0 -41
  360. package/esm/models/developermessage.d.ts +0 -35
  361. package/esm/models/developermessage.js +0 -24
  362. package/esm/models/message.d.ts +0 -20
  363. package/esm/models/message.js +0 -23
  364. package/esm/models/namedtoolchoice.d.ts +0 -37
  365. package/esm/models/namedtoolchoice.js +0 -26
  366. package/esm/models/openairesponsesinputunion.d.ts +0 -185
  367. package/esm/models/openairesponsesinputunion.js +0 -274
  368. package/esm/models/openairesponsesprompt.d.ts +0 -35
  369. package/esm/models/openairesponsesprompt.js +0 -56
  370. package/esm/models/openairesponsesreasoningconfig.d.ts +0 -13
  371. package/esm/models/openairesponsesreasoningconfig.js +0 -17
  372. package/esm/models/openairesponsesreasoningeffort.d.ts +0 -16
  373. package/esm/models/openairesponsesreasoningeffort.js +0 -18
  374. package/esm/models/openairesponsesservicetier.d.ts +0 -13
  375. package/esm/models/openairesponsesservicetier.js +0 -15
  376. package/esm/models/openresponsesapplypatchtool.d.ts +0 -20
  377. package/esm/models/openresponsesapplypatchtool.js +0 -21
  378. package/esm/models/openresponseseasyinputmessage.d.ts +0 -120
  379. package/esm/models/openresponseseasyinputmessage.js +0 -141
  380. package/esm/models/openresponsesfunctioncalloutput.d.ts +0 -70
  381. package/esm/models/openresponsesfunctioncalloutput.js +0 -80
  382. package/esm/models/openresponsesfunctionshelltool.d.ts +0 -20
  383. package/esm/models/openresponsesfunctionshelltool.js +0 -21
  384. package/esm/models/openresponsesfunctiontoolcall.d.ts +0 -33
  385. package/esm/models/openresponsesfunctiontoolcall.js +0 -29
  386. package/esm/models/openresponsesimagegencallcompleted.d.ts +0 -16
  387. package/esm/models/openresponsesimagegencallgenerating.d.ts +0 -16
  388. package/esm/models/openresponsesimagegencallinprogress.d.ts +0 -16
  389. package/esm/models/openresponsesinputmessageitem.d.ts +0 -84
  390. package/esm/models/openresponsesinputmessageitem.js +0 -92
  391. package/esm/models/openresponsesinputunion.d.ts +0 -207
  392. package/esm/models/openresponsesinputunion.js +0 -225
  393. package/esm/models/openresponseslocalshelltool.d.ts +0 -20
  394. package/esm/models/openresponseslocalshelltool.js +0 -21
  395. package/esm/models/openresponsesnonstreamingresponse.d.ts +0 -111
  396. package/esm/models/openresponsesnonstreamingresponse.js +0 -144
  397. package/esm/models/openresponsesreasoning.d.ts +0 -73
  398. package/esm/models/openresponsesreasoning.js +0 -71
  399. package/esm/models/openresponsesreasoningconfig.d.ts +0 -23
  400. package/esm/models/openresponsesreasoningconfig.js +0 -23
  401. package/esm/models/openresponsesreasoningsummarytextdeltaevent.d.ts +0 -18
  402. package/esm/models/openresponsesreasoningsummarytextdoneevent.d.ts +0 -18
  403. package/esm/models/openresponsesrequest.d.ts +0 -493
  404. package/esm/models/openresponsesrequest.js +0 -349
  405. package/esm/models/openresponsesresponsetext.d.ts +0 -30
  406. package/esm/models/openresponsesresponsetext.js +0 -24
  407. package/esm/models/openresponsesstreamevent.d.ts +0 -335
  408. package/esm/models/openresponsesstreamevent.js +0 -430
  409. package/esm/models/openresponseswebsearch20250826tool.d.ts +0 -76
  410. package/esm/models/openresponseswebsearch20250826tool.js +0 -87
  411. package/esm/models/openresponseswebsearchcallcompleted.d.ts +0 -16
  412. package/esm/models/openresponseswebsearchcallinprogress.d.ts +0 -16
  413. package/esm/models/openresponseswebsearchcallsearching.d.ts +0 -16
  414. package/esm/models/openresponseswebsearchpreview20250311tool.d.ts +0 -73
  415. package/esm/models/openresponseswebsearchpreview20250311tool.js +0 -91
  416. package/esm/models/openresponseswebsearchpreviewtool.d.ts +0 -73
  417. package/esm/models/openresponseswebsearchpreviewtool.js +0 -87
  418. package/esm/models/openresponseswebsearchtool.d.ts +0 -76
  419. package/esm/models/openresponseswebsearchtool.js +0 -87
  420. package/esm/models/reasoningsummaryverbosity.d.ts +0 -13
  421. package/esm/models/reasoningsummaryverbosity.js +0 -15
  422. package/esm/models/responseformatjsonobject.d.ts +0 -20
  423. package/esm/models/responseformatjsonobject.js +0 -21
  424. package/esm/models/responseformatjsonschema.d.ts +0 -21
  425. package/esm/models/responseformatjsonschema.js +0 -20
  426. package/esm/models/responseformattext.d.ts +0 -15
  427. package/esm/models/responseformattext.js +0 -13
  428. package/esm/models/responseformattextconfig.d.ts +0 -19
  429. package/esm/models/responseformattextconfig.js +0 -28
  430. package/esm/models/responseformattextgrammar.d.ts +0 -20
  431. package/esm/models/responseformattextgrammar.js +0 -14
  432. package/esm/models/responseformattextpython.d.ts +0 -15
  433. package/esm/models/responseformattextpython.js +0 -13
  434. package/esm/models/responseinputaudio.d.ts +0 -47
  435. package/esm/models/responseinputaudio.js +0 -57
  436. package/esm/models/responseinputimage.d.ts +0 -43
  437. package/esm/models/responseinputimage.js +0 -51
  438. package/esm/models/responseinputtext.d.ts +0 -22
  439. package/esm/models/responseinputtext.js +0 -23
  440. package/esm/models/responseinputvideo.d.ts +0 -20
  441. package/esm/models/responsesformattext.d.ts +0 -20
  442. package/esm/models/responsesformattext.js +0 -21
  443. package/esm/models/responsesformattextjsonschemaconfig.d.ts +0 -32
  444. package/esm/models/responsesformattextjsonschemaconfig.js +0 -29
  445. package/esm/models/responsesimagegenerationcall.d.ts +0 -33
  446. package/esm/models/responsesimagegenerationcall.js +0 -35
  447. package/esm/models/responsesoutputitem.d.ts +0 -18
  448. package/esm/models/responsesoutputitem.js +0 -27
  449. package/esm/models/responsesoutputitemfilesearchcall.d.ts +0 -33
  450. package/esm/models/responsesoutputitemfilesearchcall.js +0 -35
  451. package/esm/models/responsesoutputitemfunctioncall.d.ts +0 -69
  452. package/esm/models/responsesoutputitemfunctioncall.js +0 -94
  453. package/esm/models/responsesoutputitemreasoning.d.ts +0 -74
  454. package/esm/models/responsesoutputitemreasoning.js +0 -76
  455. package/esm/models/responsesoutputmessage.d.ts +0 -81
  456. package/esm/models/responsesoutputmessage.js +0 -93
  457. package/esm/models/responsesoutputmodality.d.ts +0 -10
  458. package/esm/models/responsesoutputmodality.js +0 -12
  459. package/esm/models/responsessearchcontextsize.d.ts +0 -19
  460. package/esm/models/responsessearchcontextsize.js +0 -18
  461. package/esm/models/responsesservertooloutput.d.ts +0 -42
  462. package/esm/models/responsesservertooloutput.js +0 -44
  463. package/esm/models/responseswebsearchservertool.d.ts +0 -35
  464. package/esm/models/responseswebsearchservertool.js +0 -28
  465. package/esm/models/responseswebsearchuserlocation.d.ts +0 -37
  466. package/esm/models/responseswebsearchuserlocation.js +0 -36
  467. package/esm/models/responsetextconfig.d.ts +0 -27
  468. package/esm/models/responsetextconfig.js +0 -24
  469. package/esm/models/systemmessage.d.ts +0 -35
  470. package/esm/models/systemmessage.js +0 -24
  471. package/esm/models/toolcallstatus.d.ts +0 -13
  472. package/esm/models/toolcallstatus.js +0 -15
  473. package/esm/models/toolchoiceoption.d.ts +0 -31
  474. package/esm/models/toolchoiceoption.js +0 -32
  475. package/esm/models/tooldefinitionjson.d.ts +0 -86
  476. package/esm/models/tooldefinitionjson.js +0 -47
  477. package/esm/models/toolresponsemessage.d.ts +0 -35
  478. package/esm/models/toolresponsemessage.js +0 -29
  479. package/esm/models/usermessage.d.ts +0 -35
  480. package/esm/models/usermessage.js +0 -24
  481. package/esm/models/videoinput.d.ts +0 -23
  482. package/esm/models/videoinput.js +0 -22
  483. package/esm/models/websearchpreviewtooluserlocation.d.ts +0 -34
  484. package/esm/models/websearchpreviewtooluserlocation.js +0 -36
  485. package/esm/models/websearchshorthand.d.ts +0 -215
  486. package/esm/models/websearchshorthand.js +0 -138
package/esm/lib/files.js CHANGED
@@ -71,4 +71,22 @@ export function getContentTypeFromFileName(fileName) {
71
71
  };
72
72
  return mimeTypes[ext] || null;
73
73
  }
74
+ /**
75
+ * Creates a Blob from file content with the given MIME type.
76
+ *
77
+ * Node.js Buffers are Uint8Array subclasses that may share a pooled
78
+ * ArrayBuffer (byteOffset > 0, byteLength < buffer.byteLength). Passing
79
+ * such a Buffer directly to `new Blob([buf])` can include the entire
80
+ * underlying pool on some runtimes, producing a Blob with extra bytes
81
+ * that corrupts multipart uploads.
82
+ *
83
+ * Copying into a standalone Uint8Array ensures the Blob receives only the
84
+ * intended bytes regardless of runtime behaviour.
85
+ */
86
+ export function bytesToBlob(content, contentType) {
87
+ if (content instanceof Uint8Array) {
88
+ return new Blob([new Uint8Array(content)], { type: contentType });
89
+ }
90
+ return new Blob([content], { type: contentType });
91
+ }
74
92
  //# sourceMappingURL=files.js.map
@@ -122,7 +122,6 @@ export function match(...matchers) {
122
122
  raw = body;
123
123
  break;
124
124
  default:
125
- encoding;
126
125
  throw new Error(`Unsupported response type: ${encoding}`);
127
126
  }
128
127
  if (matcher.enc === "fail") {
@@ -27,7 +27,7 @@ export interface GetResponseOptions<TTools extends readonly Tool[], TShared exte
27
27
  /** Callback invoked at the start of each tool execution turn */
28
28
  onTurnStart?: (context: TurnContext) => void | Promise<void>;
29
29
  /** Callback invoked at the end of each tool execution turn */
30
- onTurnEnd?: (context: TurnContext, response: models.OpenResponsesNonStreamingResponse) => void | Promise<void>;
30
+ onTurnEnd?: (context: TurnContext, response: models.OpenResponsesResult) => void | Promise<void>;
31
31
  }
32
32
  /**
33
33
  * A wrapper around a streaming response that provides multiple consumption patterns.
@@ -36,7 +36,7 @@ export interface GetResponseOptions<TTools extends readonly Tool[], TShared exte
36
36
  * - `await result.getText()` - Get just the text
37
37
  * - `await result.getResponse()` - Get the full response object
38
38
  * - `for await (const delta of result.getTextStream())` - Stream text deltas
39
- * - `for await (const msg of result.getNewMessagesStream())` - Stream incremental message updates
39
+ * - `for await (const msg of result.getNewMessagesStream())` - Stream cumulative message snapshots
40
40
  * - `for await (const event of result.getFullResponsesStream())` - Stream all response events
41
41
  *
42
42
  * For message format conversion, use the helper functions:
@@ -203,11 +203,6 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
203
203
  /**
204
204
  * Make a follow-up API request with tool results.
205
205
  * Uses streaming and pipes events through the turn broadcaster when available.
206
- *
207
- * @param currentResponse - The response that contained tool calls
208
- * @param toolResults - The results from executing those tools
209
- * @param turnNumber - The turn number for this follow-up request
210
- * @returns The new response from the API
211
206
  */
212
207
  private makeFollowupRequest;
213
208
  /**
@@ -270,9 +265,9 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
270
265
  /**
271
266
  * Get the complete response object including usage information.
272
267
  * This will consume the stream until completion and execute any tools.
273
- * Returns the full OpenResponsesNonStreamingResponse with usage data (inputTokens, outputTokens, cachedTokens, etc.)
268
+ * Returns the full OpenResponsesResult with usage data (inputTokens, outputTokens, cachedTokens, etc.)
274
269
  */
275
- getResponse(): Promise<models.OpenResponsesNonStreamingResponse>;
270
+ getResponse(): Promise<models.OpenResponsesResult>;
276
271
  /**
277
272
  * Stream all response events as they arrive across all turns.
278
273
  * Multiple consumers can iterate over this stream concurrently.
@@ -305,13 +300,13 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
305
300
  * while `getItemsStream()` streams all output item types (messages, function_calls,
306
301
  * reasoning, etc.) with cumulative updates.
307
302
  *
308
- * Stream incremental message updates as content is added in responses format.
303
+ * Stream cumulative message snapshots as content is added in responses format.
309
304
  * Each iteration yields an updated version of the message with new content.
310
- * Also yields function_call items and OpenResponsesFunctionCallOutput after tool execution completes.
311
- * Returns ResponsesOutputMessage, ResponsesOutputItemFunctionCall, or OpenResponsesFunctionCallOutput
305
+ * Also yields function_call items and FunctionCallOutputItem after tool execution completes.
306
+ * Returns OutputMessage, OutputFunctionCallItem, or FunctionCallOutputItem
312
307
  * compatible with OpenAI Responses API format.
313
308
  */
314
- getNewMessagesStream(): AsyncIterableIterator<models.ResponsesOutputMessage | models.OpenResponsesFunctionCallOutput | models.ResponsesOutputItemFunctionCall>;
309
+ getNewMessagesStream(): AsyncIterableIterator<models.OutputMessage | models.FunctionCallOutputItem | models.OutputFunctionCallItem>;
315
310
  /**
316
311
  * Stream only reasoning deltas as they arrive from all turns.
317
312
  * This filters the full event stream to only yield reasoning content,
@@ -4,12 +4,12 @@ import { betaResponsesSend } from '../funcs/betaResponsesSend.js';
4
4
  import { hasAsyncFunctions, resolveAsyncFunctions, } from './async-params.js';
5
5
  import { appendToMessages, createInitialState, createRejectedResult, createUnsentResult, extractTextFromResponse as extractTextFromResponseState, partitionToolCalls, unsentResultsToAPIFormat, updateState, } from './conversation-state.js';
6
6
  import { ReusableReadableStream } from './reusable-stream.js';
7
- import { buildItemsStream, buildResponsesMessageStream, buildToolCallStream, consumeStreamForCompletion, extractReasoningDeltas, extractResponsesMessageFromResponse, extractTextDeltas, extractTextFromResponse, extractToolCallsFromResponse, extractToolDeltas, } from './stream-transformers.js';
7
+ import { buildItemsStream, buildResponsesMessageStream, buildToolCallStream, consumeStreamForCompletion, extractReasoningDeltas, extractResponsesMessageFromResponse, extractTextDeltas, extractTextFromResponse, extractToolCallsFromResponse, extractToolDeltas, itemsStreamHandlers, streamTerminationEvents, } from './stream-transformers.js';
8
8
  import { executeTool } from './tool-executor.js';
9
9
  import { executeNextTurnParamsFunctions, applyNextTurnParamsToRequest } from './next-turn-params.js';
10
- import { hasExecuteFunction } from './tool-types.js';
10
+ import { hasExecuteFunction, isToolCallOutputEvent } from './tool-types.js';
11
11
  import { isStopConditionMet, stepCountIs } from './stop-conditions.js';
12
- import { isOutputMessage, isFunctionCallItem, isReasoningOutputItem, isWebSearchCallOutputItem, isFileSearchCallOutputItem, isImageGenerationCallOutputItem, isResponseCompletedEvent, isResponseFailedEvent, isResponseIncompleteEvent, isOutputTextDeltaEvent, isReasoningDeltaEvent, hasTypeProperty, } from './stream-type-guards.js';
12
+ import { isFunctionCallItem, isResponseCompletedEvent, isResponseFailedEvent, isResponseIncompleteEvent, isOutputTextDeltaEvent, isReasoningDeltaEvent, hasTypeProperty, } from './stream-type-guards.js';
13
13
  /**
14
14
  * Default maximum number of tool execution steps if no stopWhen is specified.
15
15
  * This prevents infinite loops in tool execution.
@@ -39,7 +39,7 @@ function isEventStream(value) {
39
39
  * - `await result.getText()` - Get just the text
40
40
  * - `await result.getResponse()` - Get the full response object
41
41
  * - `for await (const delta of result.getTextStream())` - Stream text deltas
42
- * - `for await (const msg of result.getNewMessagesStream())` - Stream incremental message updates
42
+ * - `for await (const msg of result.getNewMessagesStream())` - Stream cumulative message snapshots
43
43
  * - `for await (const event of result.getFullResponsesStream())` - Stream all response events
44
44
  *
45
45
  * For message format conversion, use the helper functions:
@@ -503,11 +503,17 @@ export class ModelResult {
503
503
  ? settled.reason.message
504
504
  : String(settled.reason);
505
505
  this.broadcastToolResult(originalToolCall.id, { error: errorMessage });
506
- toolResults.push({
506
+ const rejectedOutput = {
507
507
  type: 'function_call_output',
508
508
  id: `output_${originalToolCall.id}`,
509
509
  callId: originalToolCall.id,
510
510
  output: JSON.stringify({ error: errorMessage }),
511
+ };
512
+ toolResults.push(rejectedOutput);
513
+ this.turnBroadcaster?.push({
514
+ type: 'tool.call_output',
515
+ output: rejectedOutput,
516
+ timestamp: Date.now(),
511
517
  });
512
518
  continue;
513
519
  }
@@ -516,19 +522,30 @@ export class ModelResult {
516
522
  continue;
517
523
  if (value.type === 'parse_error') {
518
524
  toolResults.push(value.output);
525
+ this.turnBroadcaster?.push({
526
+ type: 'tool.call_output',
527
+ output: value.output,
528
+ timestamp: Date.now(),
529
+ });
519
530
  continue;
520
531
  }
521
532
  const toolResult = (value.result.error
522
533
  ? { error: value.result.error.message }
523
534
  : value.result.result);
524
535
  this.broadcastToolResult(value.toolCall.id, toolResult, value.preliminaryResultsForCall.length > 0 ? value.preliminaryResultsForCall : undefined);
525
- toolResults.push({
536
+ const executedOutput = {
526
537
  type: 'function_call_output',
527
538
  id: `output_${value.toolCall.id}`,
528
539
  callId: value.toolCall.id,
529
540
  output: value.result.error
530
541
  ? JSON.stringify({ error: value.result.error.message })
531
542
  : JSON.stringify(value.result.result),
543
+ };
544
+ toolResults.push(executedOutput);
545
+ this.turnBroadcaster?.push({
546
+ type: 'tool.call_output',
547
+ output: executedOutput,
548
+ timestamp: Date.now(),
532
549
  });
533
550
  }
534
551
  return toolResults;
@@ -570,14 +587,8 @@ export class ModelResult {
570
587
  /**
571
588
  * Make a follow-up API request with tool results.
572
589
  * Uses streaming and pipes events through the turn broadcaster when available.
573
- *
574
- * @param currentResponse - The response that contained tool calls
575
- * @param toolResults - The results from executing those tools
576
- * @param turnNumber - The turn number for this follow-up request
577
- * @returns The new response from the API
578
590
  */
579
591
  async makeFollowupRequest(currentResponse, toolResults, turnNumber) {
580
- // Build new input preserving original conversation + tool results
581
592
  const originalInput = this.resolvedRequest?.input;
582
593
  const normalizedOriginalInput = Array.isArray(originalInput)
583
594
  ? originalInput
@@ -603,7 +614,7 @@ export class ModelResult {
603
614
  ...this.resolvedRequest,
604
615
  stream: true,
605
616
  };
606
- const newResult = await betaResponsesSend(this.options.client, { openResponsesRequest: newRequest }, this.options.options);
617
+ const newResult = await betaResponsesSend(this.options.client, { responsesRequest: newRequest }, this.options.options);
607
618
  if (!newResult.ok) {
608
619
  throw newResult.error;
609
620
  }
@@ -768,7 +779,7 @@ export class ModelResult {
768
779
  // Force stream mode for initial request
769
780
  const request = this.resolvedRequest;
770
781
  // Make the API request
771
- const apiResult = await betaResponsesSend(this.options.client, { openResponsesRequest: request }, this.options.options);
782
+ const apiResult = await betaResponsesSend(this.options.client, { responsesRequest: request }, this.options.options);
772
783
  if (!apiResult.ok) {
773
784
  throw apiResult.error;
774
785
  }
@@ -892,7 +903,7 @@ export class ModelResult {
892
903
  };
893
904
  this.resolvedRequest = request;
894
905
  // Make the API request
895
- const apiResult = await betaResponsesSend(this.options.client, { openResponsesRequest: request }, this.options.options);
906
+ const apiResult = await betaResponsesSend(this.options.client, { responsesRequest: request }, this.options.options);
896
907
  if (!apiResult.ok) {
897
908
  throw apiResult.error;
898
909
  }
@@ -1021,7 +1032,7 @@ export class ModelResult {
1021
1032
  /**
1022
1033
  * Get the complete response object including usage information.
1023
1034
  * This will consume the stream until completion and execute any tools.
1024
- * Returns the full OpenResponsesNonStreamingResponse with usage data (inputTokens, outputTokens, cachedTokens, etc.)
1035
+ * Returns the full OpenResponsesResult with usage data (inputTokens, outputTokens, cachedTokens, etc.)
1025
1036
  */
1026
1037
  async getResponse() {
1027
1038
  await this.executeToolsIfNeeded();
@@ -1103,39 +1114,43 @@ export class ModelResult {
1103
1114
  if (!this.reusableStream && !this.finalResponse) {
1104
1115
  throw new Error('Stream not initialized');
1105
1116
  }
1106
- // Stream all items from the API response cumulatively
1107
- if (this.reusableStream) {
1108
- yield* buildItemsStream(this.reusableStream);
1117
+ // No tools stream single turn directly (no broadcaster needed)
1118
+ if (!this.options.tools?.length) {
1119
+ if (this.reusableStream) {
1120
+ yield* buildItemsStream(this.reusableStream);
1121
+ }
1122
+ return;
1109
1123
  }
1110
- // Execute tools if needed
1111
- await this.executeToolsIfNeeded();
1112
- // Yield function calls and outputs for each tool round
1113
- for (const round of this.allToolExecutionRounds) {
1114
- // Round 0's function_calls already yielded via buildItemsStream
1115
- if (round.round > 0) {
1116
- for (const item of round.response.output) {
1117
- if (isFunctionCallItem(item)) {
1118
- yield item;
1119
- }
1120
- }
1124
+ // Use turnBroadcaster (same pattern as getTextStream/getFullResponsesStream).
1125
+ // executeToolsIfNeeded() drives tool execution in the background while we
1126
+ // passively consume events from the broadcaster in real-time.
1127
+ const { consumer, executionPromise } = this.startTurnBroadcasterExecution();
1128
+ const itemsInProgress = new Map();
1129
+ for await (const event of consumer) {
1130
+ // Tool call outputs yield directly as function_call_output items
1131
+ if (isToolCallOutputEvent(event)) {
1132
+ yield event.output;
1133
+ continue;
1121
1134
  }
1122
- for (const toolResult of round.toolResults) {
1123
- yield toolResult;
1135
+ // Stream termination reset items map for next turn
1136
+ if ('type' in event && streamTerminationEvents.has(event.type)) {
1137
+ itemsInProgress.clear();
1124
1138
  }
1125
- }
1126
- // If tools were executed, yield all items from the final response
1127
- if (this.finalResponse && this.allToolExecutionRounds.length > 0) {
1128
- for (const item of this.finalResponse.output) {
1129
- if (isOutputMessage(item) ||
1130
- isFunctionCallItem(item) ||
1131
- isReasoningOutputItem(item) ||
1132
- isWebSearchCallOutputItem(item) ||
1133
- isFileSearchCallOutputItem(item) ||
1134
- isImageGenerationCallOutputItem(item)) {
1135
- yield item;
1139
+ // API stream events → dispatch through item handlers
1140
+ // Cast is necessary: TypeScript cannot narrow a union via Record key lookup,
1141
+ // but `event.type in itemsStreamHandlers` guarantees the event is an
1142
+ // StreamEvents whose type matches a handler key.
1143
+ if ('type' in event && event.type in itemsStreamHandlers) {
1144
+ const handler = itemsStreamHandlers[event.type];
1145
+ if (handler) {
1146
+ const result = handler(event, itemsInProgress);
1147
+ if (result) {
1148
+ yield result;
1149
+ }
1136
1150
  }
1137
1151
  }
1138
1152
  }
1153
+ await executionPromise;
1139
1154
  }.call(this);
1140
1155
  }
1141
1156
  /**
@@ -1143,10 +1158,10 @@ export class ModelResult {
1143
1158
  * while `getItemsStream()` streams all output item types (messages, function_calls,
1144
1159
  * reasoning, etc.) with cumulative updates.
1145
1160
  *
1146
- * Stream incremental message updates as content is added in responses format.
1161
+ * Stream cumulative message snapshots as content is added in responses format.
1147
1162
  * Each iteration yields an updated version of the message with new content.
1148
- * Also yields function_call items and OpenResponsesFunctionCallOutput after tool execution completes.
1149
- * Returns ResponsesOutputMessage, ResponsesOutputItemFunctionCall, or OpenResponsesFunctionCallOutput
1163
+ * Also yields function_call items and FunctionCallOutputItem after tool execution completes.
1164
+ * Returns OutputMessage, OutputFunctionCallItem, or FunctionCallOutputItem
1150
1165
  * compatible with OpenAI Responses API format.
1151
1166
  */
1152
1167
  getNewMessagesStream() {
@@ -4,10 +4,10 @@ import type { NextTurnParamsContext, ParsedToolCall, Tool } from './tool-types.j
4
4
  * Build a NextTurnParamsContext from the current request
5
5
  * Extracts relevant fields that can be modified by nextTurnParams functions
6
6
  *
7
- * @param request - The current OpenResponsesRequest
7
+ * @param request - The current ResponsesRequest
8
8
  * @returns Context object with current parameter values
9
9
  */
10
- export declare function buildNextTurnParamsContext(request: models.OpenResponsesRequest): NextTurnParamsContext;
10
+ export declare function buildNextTurnParamsContext(request: models.ResponsesRequest): NextTurnParamsContext;
11
11
  /**
12
12
  * Execute nextTurnParams functions for all called tools
13
13
  * Composes functions when multiple tools modify the same parameter
@@ -17,7 +17,7 @@ export declare function buildNextTurnParamsContext(request: models.OpenResponses
17
17
  * @param currentRequest - The current request
18
18
  * @returns Object with computed parameter values
19
19
  */
20
- export declare function executeNextTurnParamsFunctions(toolCalls: ParsedToolCall<Tool>[], tools: readonly Tool[], currentRequest: models.OpenResponsesRequest): Promise<Partial<NextTurnParamsContext>>;
20
+ export declare function executeNextTurnParamsFunctions(toolCalls: ParsedToolCall<Tool>[], tools: readonly Tool[], currentRequest: models.ResponsesRequest): Promise<Partial<NextTurnParamsContext>>;
21
21
  /**
22
22
  * Apply computed nextTurnParams to the current request
23
23
  * Returns a new request object with updated parameters
@@ -26,5 +26,5 @@ export declare function executeNextTurnParamsFunctions(toolCalls: ParsedToolCall
26
26
  * @param computedParams - Computed parameter values from nextTurnParams functions
27
27
  * @returns New request with updated parameters
28
28
  */
29
- export declare function applyNextTurnParamsToRequest(request: models.OpenResponsesRequest, computedParams: Partial<NextTurnParamsContext>): models.OpenResponsesRequest;
29
+ export declare function applyNextTurnParamsToRequest(request: models.ResponsesRequest, computedParams: Partial<NextTurnParamsContext>): models.ResponsesRequest;
30
30
  //# sourceMappingURL=next-turn-params.d.ts.map
@@ -8,7 +8,7 @@ function isRecord(value) {
8
8
  * Build a NextTurnParamsContext from the current request
9
9
  * Extracts relevant fields that can be modified by nextTurnParams functions
10
10
  *
11
- * @param request - The current OpenResponsesRequest
11
+ * @param request - The current ResponsesRequest
12
12
  * @returns Context object with current parameter values
13
13
  */
14
14
  export function buildNextTurnParamsContext(request) {
package/esm/lib/sdks.js CHANGED
@@ -67,12 +67,16 @@ export class ClientSDK {
67
67
  if (!base) {
68
68
  return ERR(new InvalidRequestError("No base URL provided for operation"));
69
69
  }
70
- const reqURL = new URL(base);
71
- const inputURL = new URL(path, reqURL);
70
+ const baseURL = new URL(base);
71
+ let reqURL;
72
72
  if (path) {
73
- reqURL.pathname += reqURL.pathname.endsWith("/") ? "" : "/";
74
- reqURL.pathname += inputURL.pathname.replace(/^\/+/, "");
73
+ baseURL.pathname = baseURL.pathname.replace(/\/+$/, "") + "/";
74
+ reqURL = new URL(path, baseURL);
75
75
  }
76
+ else {
77
+ reqURL = baseURL;
78
+ }
79
+ reqURL.hash = "";
76
80
  let finalQuery = query || "";
77
81
  const secQuery = [];
78
82
  for (const [k, v] of Object.entries(security?.queryParams || {})) {
@@ -186,8 +190,8 @@ export class ClientSDK {
186
190
  }
187
191
  }
188
192
  _ClientSDK_httpClient = new WeakMap(), _ClientSDK_hooks = new WeakMap(), _ClientSDK_logger = new WeakMap();
189
- const jsonLikeContentTypeRE = /(application|text)\/.*?\+*json.*/;
190
- const jsonlLikeContentTypeRE = /(application|text)\/(.*?\+*\bjsonl\b.*|.*?\+*\bx-ndjson\b.*)/;
193
+ const jsonLikeContentTypeRE = /^(application|text)\/([^+]+\+)*json.*/;
194
+ const jsonlLikeContentTypeRE = /^(application|text)\/([^+]+\+)*(jsonl|x-ndjson)\b.*/;
191
195
  async function logRequest(logger, req) {
192
196
  if (!logger) {
193
197
  return;
@@ -77,7 +77,7 @@ type SecurityInputCustom = {
77
77
  };
78
78
  export type SecurityInput = SecurityInputBasic | SecurityInputBearer | SecurityInputAPIKey | SecurityInputOAuth2 | SecurityInputOAuth2ClientCredentials | SecurityInputOAuth2PasswordCredentials | SecurityInputOIDC | SecurityInputCustom;
79
79
  export declare function resolveSecurity(...options: SecurityInput[][]): SecurityState | null;
80
- export declare function resolveGlobalSecurity(security: Partial<models.Security> | null | undefined): SecurityState | null;
80
+ export declare function resolveGlobalSecurity(security: Partial<models.Security> | null | undefined, allowedFields?: number[]): SecurityState | null;
81
81
  export declare function extractSecurity<T extends string | Record<string, unknown>>(sec: T | (() => Promise<T>) | undefined): Promise<T | undefined>;
82
82
  export {};
83
83
  //# sourceMappingURL=security.d.ts.map
@@ -96,8 +96,7 @@ export function resolveSecurity(...options) {
96
96
  applyBearer(state, spec);
97
97
  break;
98
98
  default:
99
- spec;
100
- throw SecurityError.unrecognizedType(type);
99
+ throw SecurityError.unrecognizedType((spec, type));
101
100
  }
102
101
  });
103
102
  return state;
@@ -120,14 +119,25 @@ function applyBearer(state, spec) {
120
119
  state.headers[spec.fieldName] = value;
121
120
  }
122
121
  }
123
- export function resolveGlobalSecurity(security) {
124
- return resolveSecurity([
125
- {
126
- fieldName: "Authorization",
127
- type: "http:bearer",
128
- value: security?.apiKey ?? env().OPENROUTER_API_KEY,
129
- },
130
- ]);
122
+ export function resolveGlobalSecurity(security, allowedFields) {
123
+ let inputs = [
124
+ [
125
+ {
126
+ fieldName: "Authorization",
127
+ type: "http:bearer",
128
+ value: security?.apiKey ?? env().OPENROUTER_API_KEY,
129
+ },
130
+ ],
131
+ ];
132
+ if (allowedFields) {
133
+ inputs = allowedFields.map((i) => {
134
+ if (i < 0 || i >= inputs.length) {
135
+ throw new RangeError(`invalid allowedFields index ${i}`);
136
+ }
137
+ return inputs[i];
138
+ });
139
+ }
140
+ return resolveSecurity(...inputs);
131
141
  }
132
142
  export async function extractSecurity(sec) {
133
143
  if (sec == null) {
@@ -5,72 +5,94 @@ import type { ParsedToolCall, Tool } from './tool-types.js';
5
5
  /**
6
6
  * Extract text deltas from responses stream events
7
7
  */
8
- export declare function extractTextDeltas(stream: ReusableReadableStream<models.OpenResponsesStreamEvent>): AsyncIterableIterator<string>;
8
+ export declare function extractTextDeltas(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<string>;
9
9
  /**
10
10
  * Extract reasoning deltas from responses stream events
11
11
  */
12
- export declare function extractReasoningDeltas(stream: ReusableReadableStream<models.OpenResponsesStreamEvent>): AsyncIterableIterator<string>;
12
+ export declare function extractReasoningDeltas(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<string>;
13
13
  /**
14
14
  * Extract tool call argument deltas from responses stream events
15
15
  */
16
- export declare function extractToolDeltas(stream: ReusableReadableStream<models.OpenResponsesStreamEvent>): AsyncIterableIterator<string>;
16
+ export declare function extractToolDeltas(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<string>;
17
17
  /**
18
18
  * Build incremental message updates from responses stream events
19
- * Returns ResponsesOutputMessage (assistant/responses format)
19
+ * Returns OutputMessage (assistant/responses format)
20
20
  */
21
- export declare function buildResponsesMessageStream(stream: ReusableReadableStream<models.OpenResponsesStreamEvent>): AsyncIterableIterator<models.ResponsesOutputMessage>;
21
+ export declare function buildResponsesMessageStream(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<models.OutputMessage>;
22
22
  /**
23
23
  * Output item types that can be streamed from a response.
24
24
  * This is the union of all item types that appear in response output,
25
25
  * plus function_call_output for tool results.
26
26
  */
27
- export type StreamableOutputItem = models.ResponsesOutputMessage | models.ResponsesOutputItemFunctionCall | models.ResponsesOutputItemReasoning | models.ResponsesWebSearchCallOutput | models.ResponsesOutputItemFileSearchCall | models.ResponsesImageGenerationCall | models.OpenResponsesFunctionCallOutput;
27
+ export type StreamableOutputItem = models.OutputMessage | models.OutputFunctionCallItem | models.OutputReasoningItem | models.OutputWebSearchCallItem | models.OutputFileSearchCallItem | models.OutputImageGenerationCallItem | models.FunctionCallOutputItem;
28
+ /**
29
+ * Discriminated union for tracking items in progress.
30
+ * Each variant has only the fields relevant to that item type.
31
+ */
32
+ export type ItemInProgress = {
33
+ type: 'message';
34
+ id: string;
35
+ textContent: string;
36
+ } | {
37
+ type: 'function_call';
38
+ id: string;
39
+ name: string;
40
+ callId: string;
41
+ argumentsAccumulated: string;
42
+ } | {
43
+ type: 'reasoning';
44
+ id: string;
45
+ reasoningContent: string;
46
+ };
47
+ type ItemsStreamHandler = (event: models.StreamEvents, itemsInProgress: Map<string, ItemInProgress>) => StreamableOutputItem | undefined;
48
+ export declare const itemsStreamHandlers: Record<string, ItemsStreamHandler>;
49
+ export declare const streamTerminationEvents: Set<string>;
28
50
  /**
29
51
  * Build incremental output item updates from responses stream events.
30
52
  * Yields all item types cumulatively - same item may be emitted multiple times
31
53
  * with the same ID but progressively updated content as streaming progresses.
32
54
  */
33
- export declare function buildItemsStream(stream: ReusableReadableStream<models.OpenResponsesStreamEvent>): AsyncIterableIterator<StreamableOutputItem>;
55
+ export declare function buildItemsStream(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<StreamableOutputItem>;
34
56
  /**
35
57
  * Build incremental message updates from responses stream events
36
- * Returns AssistantMessage (chat format) instead of ResponsesOutputMessage
58
+ * Returns ChatAssistantMessage (chat format) instead of OutputMessage
37
59
  */
38
- export declare function buildMessageStream(stream: ReusableReadableStream<models.OpenResponsesStreamEvent>): AsyncIterableIterator<models.AssistantMessage>;
60
+ export declare function buildMessageStream(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<models.ChatAssistantMessage>;
39
61
  /**
40
62
  * Consume stream until completion and return the complete response
41
63
  */
42
- export declare function consumeStreamForCompletion(stream: ReusableReadableStream<models.OpenResponsesStreamEvent>): Promise<models.OpenResponsesNonStreamingResponse>;
64
+ export declare function consumeStreamForCompletion(stream: ReusableReadableStream<models.StreamEvents>): Promise<models.OpenResponsesResult>;
43
65
  /**
44
66
  * Extract the first message from a completed response (chat format)
45
67
  */
46
- export declare function extractMessageFromResponse(response: models.OpenResponsesNonStreamingResponse): models.AssistantMessage;
68
+ export declare function extractMessageFromResponse(response: models.OpenResponsesResult): models.ChatAssistantMessage;
47
69
  /**
48
70
  * Extract the first message from a completed response (responses format)
49
71
  */
50
- export declare function extractResponsesMessageFromResponse(response: models.OpenResponsesNonStreamingResponse): models.ResponsesOutputMessage;
72
+ export declare function extractResponsesMessageFromResponse(response: models.OpenResponsesResult): models.OutputMessage;
51
73
  /**
52
74
  * Extract text from a response, either from outputText or by concatenating message content
53
75
  */
54
- export declare function extractTextFromResponse(response: models.OpenResponsesNonStreamingResponse): string;
76
+ export declare function extractTextFromResponse(response: models.OpenResponsesResult): string;
55
77
  /**
56
78
  * Extract all tool calls from a completed response
57
79
  * Returns parsed tool calls with arguments as objects (not JSON strings)
58
80
  */
59
- export declare function extractToolCallsFromResponse(response: models.OpenResponsesNonStreamingResponse): ParsedToolCall<Tool>[];
81
+ export declare function extractToolCallsFromResponse(response: models.OpenResponsesResult): ParsedToolCall<Tool>[];
60
82
  /**
61
83
  * Build incremental tool call updates from responses stream events
62
84
  * Yields structured tool call objects as they're built from deltas
63
85
  */
64
- export declare function buildToolCallStream(stream: ReusableReadableStream<models.OpenResponsesStreamEvent>): AsyncIterableIterator<ParsedToolCall<Tool>>;
86
+ export declare function buildToolCallStream(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<ParsedToolCall<Tool>>;
65
87
  /**
66
88
  * Check if a response contains any tool calls
67
89
  */
68
- export declare function responseHasToolCalls(response: models.OpenResponsesNonStreamingResponse): boolean;
90
+ export declare function responseHasToolCalls(response: models.OpenResponsesResult): boolean;
69
91
  /**
70
- * Convert OpenResponsesNonStreamingResponse to ClaudeMessage format
92
+ * Convert OpenResponsesResult to ClaudeMessage format
71
93
  * Compatible with the Anthropic SDK BetaMessage type
72
94
  */
73
- export declare function convertToClaudeMessage(response: models.OpenResponsesNonStreamingResponse): ClaudeMessage;
95
+ export declare function convertToClaudeMessage(response: models.OpenResponsesResult): ClaudeMessage;
74
96
  /**
75
97
  * Extract unsupported content by original type
76
98
  */
@@ -83,4 +105,5 @@ export declare function hasUnsupportedContent(message: ClaudeMessage): boolean;
83
105
  * Get summary of unsupported content types
84
106
  */
85
107
  export declare function getUnsupportedContentSummary(message: ClaudeMessage): Record<string, number>;
108
+ export {};
86
109
  //# sourceMappingURL=stream-transformers.d.ts.map
@@ -101,12 +101,12 @@ async function* buildMessageStreamCore(stream) {
101
101
  }
102
102
  /**
103
103
  * Build incremental message updates from responses stream events
104
- * Returns ResponsesOutputMessage (assistant/responses format)
104
+ * Returns OutputMessage (assistant/responses format)
105
105
  */
106
106
  export async function* buildResponsesMessageStream(stream) {
107
107
  for await (const update of buildMessageStreamCore(stream)) {
108
108
  if (update.type === 'delta' && update.text !== undefined && update.messageId !== undefined) {
109
- // Yield incremental update in ResponsesOutputMessage format
109
+ // Yield incremental update in OutputMessage format
110
110
  yield {
111
111
  id: update.messageId,
112
112
  type: 'message',
@@ -296,14 +296,14 @@ function handleOutputItemDone(event, itemsInProgress) {
296
296
  }
297
297
  return undefined;
298
298
  }
299
- const itemsStreamHandlers = {
299
+ export const itemsStreamHandlers = {
300
300
  'response.output_item.added': handleOutputItemAdded,
301
301
  'response.output_text.delta': handleTextDelta,
302
302
  'response.function_call_arguments.delta': handleFunctionCallDelta,
303
303
  'response.reasoning_text.delta': handleReasoningDelta,
304
304
  'response.output_item.done': handleOutputItemDone,
305
305
  };
306
- const streamTerminationEvents = new Set([
306
+ export const streamTerminationEvents = new Set([
307
307
  'response.completed',
308
308
  'response.failed',
309
309
  'response.incomplete',
@@ -335,7 +335,7 @@ export async function* buildItemsStream(stream) {
335
335
  }
336
336
  /**
337
337
  * Build incremental message updates from responses stream events
338
- * Returns AssistantMessage (chat format) instead of ResponsesOutputMessage
338
+ * Returns ChatAssistantMessage (chat format) instead of OutputMessage
339
339
  */
340
340
  export async function* buildMessageStream(stream) {
341
341
  for await (const update of buildMessageStreamCore(stream)) {
@@ -376,7 +376,7 @@ export async function consumeStreamForCompletion(stream) {
376
376
  throw new Error('Stream ended without completion event');
377
377
  }
378
378
  /**
379
- * Convert ResponsesOutputMessage to AssistantMessage (chat format)
379
+ * Convert OutputMessage to ChatAssistantMessage (chat format)
380
380
  */
381
381
  function convertToAssistantMessage(outputMessage) {
382
382
  // Extract text content
@@ -423,9 +423,9 @@ export function extractTextFromResponse(response) {
423
423
  // No message in response (e.g., only function calls)
424
424
  return '';
425
425
  }
426
- // Otherwise, extract from the first message (convert to AssistantMessage which has string content)
426
+ // Otherwise, extract from the first message (convert to ChatAssistantMessage which has string content)
427
427
  const message = extractMessageFromResponse(response);
428
- // AssistantMessage.content is string | Array | null | undefined
428
+ // ChatAssistantMessage.content is string | Array | null | undefined
429
429
  if (typeof message.content === 'string') {
430
430
  return message.content;
431
431
  }
@@ -644,7 +644,7 @@ function mapStopReason(response) {
644
644
  return 'end_turn';
645
645
  }
646
646
  /**
647
- * Convert OpenResponsesNonStreamingResponse to ClaudeMessage format
647
+ * Convert OpenResponsesResult to ClaudeMessage format
648
648
  * Compatible with the Anthropic SDK BetaMessage type
649
649
  */
650
650
  export function convertToClaudeMessage(response) {