@openrouter/sdk 0.9.11 → 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 (608) hide show
  1. package/FUNCTIONS.md +3 -2
  2. package/_speakeasy/.github/action-inputs-config.json +4 -0
  3. package/esm/funcs/analyticsGetUserActivity.js +2 -1
  4. package/esm/funcs/apiKeysCreate.js +2 -1
  5. package/esm/funcs/apiKeysDelete.js +2 -1
  6. package/esm/funcs/apiKeysGet.js +2 -1
  7. package/esm/funcs/apiKeysGetCurrentKeyMetadata.js +2 -1
  8. package/esm/funcs/apiKeysList.js +2 -1
  9. package/esm/funcs/apiKeysUpdate.js +2 -1
  10. package/esm/funcs/betaResponsesSend.d.ts +4 -4
  11. package/esm/funcs/betaResponsesSend.js +4 -5
  12. package/esm/funcs/call-model.d.ts +20 -71
  13. package/esm/funcs/call-model.js +30 -72
  14. package/esm/funcs/chatSend.d.ts +4 -4
  15. package/esm/funcs/chatSend.js +4 -5
  16. package/esm/funcs/creditsCreateCoinbaseCharge.js +2 -1
  17. package/esm/funcs/creditsGetCredits.js +2 -1
  18. package/esm/funcs/embeddingsGenerate.js +2 -1
  19. package/esm/funcs/embeddingsListModels.js +2 -1
  20. package/esm/funcs/endpointsList.js +2 -1
  21. package/esm/funcs/endpointsListZdrEndpoints.js +2 -1
  22. package/esm/funcs/generationsGetGeneration.js +2 -1
  23. package/esm/funcs/guardrailsBulkAssignKeys.js +2 -1
  24. package/esm/funcs/guardrailsBulkAssignMembers.js +2 -1
  25. package/esm/funcs/guardrailsBulkUnassignKeys.js +2 -1
  26. package/esm/funcs/guardrailsBulkUnassignMembers.js +2 -1
  27. package/esm/funcs/guardrailsCreate.js +2 -1
  28. package/esm/funcs/guardrailsDelete.js +2 -1
  29. package/esm/funcs/guardrailsGet.js +2 -1
  30. package/esm/funcs/guardrailsList.js +2 -1
  31. package/esm/funcs/guardrailsListGuardrailKeyAssignments.js +2 -1
  32. package/esm/funcs/guardrailsListGuardrailMemberAssignments.js +2 -1
  33. package/esm/funcs/guardrailsListKeyAssignments.js +2 -1
  34. package/esm/funcs/guardrailsListMemberAssignments.js +2 -1
  35. package/esm/funcs/guardrailsUpdate.js +2 -1
  36. package/esm/funcs/modelsCount.d.ts +1 -1
  37. package/esm/funcs/modelsCount.js +9 -4
  38. package/esm/funcs/modelsList.js +3 -1
  39. package/esm/funcs/modelsListForUser.js +2 -1
  40. package/esm/funcs/oAuthCreateAuthCode.d.ts +1 -1
  41. package/esm/funcs/oAuthCreateAuthCode.js +4 -3
  42. package/esm/funcs/oAuthExchangeAuthCodeForAPIKey.js +2 -1
  43. package/esm/funcs/providersList.js +2 -1
  44. package/esm/index.d.ts +5 -23
  45. package/esm/index.js +5 -25
  46. package/esm/lib/anthropic-compat.d.ts +3 -2
  47. package/esm/lib/anthropic-compat.js +10 -11
  48. package/esm/lib/anthropic-compat.test.js +2 -1
  49. package/esm/lib/async-params.d.ts +21 -7
  50. package/esm/lib/async-params.js +5 -1
  51. package/esm/lib/chat-compat.d.ts +2 -2
  52. package/esm/lib/chat-compat.js +9 -10
  53. package/esm/lib/chat-compat.test.js +3 -2
  54. package/esm/lib/claude-type-guards.d.ts +2 -2
  55. package/esm/lib/config.d.ts +9 -11
  56. package/esm/lib/config.js +3 -3
  57. package/esm/lib/conversation-state.d.ts +4 -4
  58. package/esm/lib/conversation-state.js +35 -32
  59. package/esm/lib/encodings.js +20 -5
  60. package/esm/lib/env.d.ts +6 -2
  61. package/esm/lib/env.js +7 -3
  62. package/esm/lib/event-streams.d.ts +11 -4
  63. package/esm/lib/event-streams.js +44 -22
  64. package/esm/lib/files.d.ts +13 -0
  65. package/esm/lib/files.js +18 -0
  66. package/esm/lib/matchers.js +0 -1
  67. package/esm/lib/model-result.d.ts +79 -28
  68. package/esm/lib/model-result.js +386 -167
  69. package/esm/lib/next-turn-params.d.ts +4 -4
  70. package/esm/lib/next-turn-params.js +1 -1
  71. package/esm/lib/sdks.d.ts +1 -1
  72. package/esm/lib/sdks.js +18 -34
  73. package/esm/lib/security.d.ts +1 -1
  74. package/esm/lib/security.js +20 -10
  75. package/esm/lib/stream-transformers.d.ts +45 -21
  76. package/esm/lib/stream-transformers.js +33 -38
  77. package/esm/lib/stream-type-guards.d.ts +15 -15
  78. package/esm/lib/stream-type-guards.js +8 -32
  79. package/esm/lib/tool-context.d.ts +68 -0
  80. package/esm/lib/tool-context.js +175 -0
  81. package/esm/lib/tool-executor.d.ts +9 -5
  82. package/esm/lib/tool-executor.js +26 -16
  83. package/esm/lib/tool-orchestrator.d.ts +4 -4
  84. package/esm/lib/tool-orchestrator.js +1 -1
  85. package/esm/lib/tool-types.d.ts +123 -22
  86. package/esm/lib/tool-types.js +23 -0
  87. package/esm/lib/tool.d.ts +49 -60
  88. package/esm/lib/tool.js +15 -19
  89. package/esm/lib/turn-context.d.ts +3 -3
  90. package/esm/lib/turn-context.js +1 -1
  91. package/esm/lib/url.js +4 -2
  92. package/esm/models/annotationaddedevent.d.ts +20 -0
  93. package/esm/models/annotationaddedevent.js +30 -0
  94. package/esm/models/applypatchservertool.d.ts +20 -0
  95. package/esm/models/applypatchservertool.js +21 -0
  96. package/esm/models/baseinputsunion.d.ts +185 -0
  97. package/esm/models/baseinputsunion.js +274 -0
  98. package/esm/models/basereasoningconfig.d.ts +13 -0
  99. package/esm/models/basereasoningconfig.js +17 -0
  100. package/esm/models/chatassistantimages.d.ts +33 -0
  101. package/esm/models/chatassistantimages.js +44 -0
  102. package/esm/models/chatassistantmessage.d.ts +86 -0
  103. package/esm/models/chatassistantmessage.js +70 -0
  104. package/esm/models/chataudiooutput.d.ts +38 -0
  105. package/esm/models/chataudiooutput.js +36 -0
  106. package/esm/models/chatchoice.d.ts +27 -0
  107. package/esm/models/chatchoice.js +25 -0
  108. package/esm/models/chatcontentaudio.d.ts +52 -0
  109. package/esm/models/chatcontentaudio.js +55 -0
  110. package/esm/models/chatcontentcachecontrol.d.ts +40 -0
  111. package/esm/models/chatcontentcachecontrol.js +39 -0
  112. package/esm/models/chatcontentfile.d.ts +57 -0
  113. package/esm/models/chatcontentfile.js +59 -0
  114. package/esm/models/chatcontentimage.d.ts +68 -0
  115. package/esm/models/chatcontentimage.js +68 -0
  116. package/esm/models/chatcontentitems.d.ts +31 -0
  117. package/esm/models/chatcontentitems.js +57 -0
  118. package/esm/models/chatcontenttext.d.ts +37 -0
  119. package/esm/models/chatcontenttext.js +42 -0
  120. package/esm/models/chatcontentvideo.d.ts +26 -0
  121. package/esm/models/chatcontentvideo.js +33 -0
  122. package/esm/models/chatcontentvideoinput.d.ts +23 -0
  123. package/esm/models/chatcontentvideoinput.js +21 -0
  124. package/esm/models/{debugoptions.d.ts → chatdebugoptions.d.ts} +5 -5
  125. package/esm/models/{debugoptions.js → chatdebugoptions.js} +5 -5
  126. package/esm/models/chatdevelopermessage.d.ts +35 -0
  127. package/esm/models/chatdevelopermessage.js +21 -0
  128. package/esm/models/chatfinishreasonenum.d.ts +13 -0
  129. package/esm/models/{chatcompletionfinishreason.js → chatfinishreasonenum.js} +4 -4
  130. package/esm/models/chatformatgrammarconfig.d.ts +20 -0
  131. package/esm/models/chatformatgrammarconfig.js +14 -0
  132. package/esm/models/chatformatjsonschemaconfig.d.ts +21 -0
  133. package/esm/models/chatformatjsonschemaconfig.js +20 -0
  134. package/esm/models/chatformatpythonconfig.d.ts +15 -0
  135. package/esm/models/chatformatpythonconfig.js +13 -0
  136. package/esm/models/chatformattextconfig.d.ts +15 -0
  137. package/esm/models/chatformattextconfig.js +13 -0
  138. package/esm/models/chatfunctiontool.d.ts +77 -0
  139. package/esm/models/chatfunctiontool.js +49 -0
  140. package/esm/models/{jsonschemaconfig.d.ts → chatjsonschemaconfig.d.ts} +5 -5
  141. package/esm/models/{jsonschemaconfig.js → chatjsonschemaconfig.js} +5 -5
  142. package/esm/models/chatmessages.d.ts +20 -0
  143. package/esm/models/chatmessages.js +22 -0
  144. package/esm/models/chatnamedtoolchoice.d.ts +37 -0
  145. package/esm/models/chatnamedtoolchoice.js +26 -0
  146. package/esm/models/chatreasoningsummaryverbosityenum.d.ts +11 -0
  147. package/esm/models/chatreasoningsummaryverbosityenum.js +13 -0
  148. package/esm/models/{chatgenerationparams.d.ts → chatrequest.d.ts} +213 -120
  149. package/esm/models/chatrequest.js +426 -0
  150. package/esm/models/chatresult.d.ts +50 -0
  151. package/esm/models/chatresult.js +35 -0
  152. package/esm/models/chatstreamchoice.d.ts +27 -0
  153. package/esm/models/chatstreamchoice.js +24 -0
  154. package/esm/models/{chatstreamingresponsechunk.d.ts → chatstreamchunk.d.ts} +17 -13
  155. package/esm/models/chatstreamchunk.js +43 -0
  156. package/esm/models/{chatstreamingmessagechunk.d.ts → chatstreamdelta.d.ts} +12 -10
  157. package/esm/models/chatstreamdelta.js +37 -0
  158. package/esm/models/chatstreamtoolcall.d.ts +57 -0
  159. package/esm/models/chatstreamtoolcall.js +33 -0
  160. package/esm/models/chatsystemmessage.d.ts +35 -0
  161. package/esm/models/chatsystemmessage.js +21 -0
  162. package/esm/models/chattokenlogprob.d.ts +36 -0
  163. package/esm/models/chattokenlogprob.js +31 -0
  164. package/esm/models/chattokenlogprobs.d.ts +21 -0
  165. package/esm/models/chattokenlogprobs.js +16 -0
  166. package/esm/models/chattoolcall.d.ts +57 -0
  167. package/esm/models/chattoolcall.js +49 -0
  168. package/esm/models/chattoolchoice.d.ts +31 -0
  169. package/esm/models/chattoolchoice.js +32 -0
  170. package/esm/models/chattoolmessage.d.ts +35 -0
  171. package/esm/models/chattoolmessage.js +26 -0
  172. package/esm/models/{chatgenerationtokenusage.d.ts → chatusage.d.ts} +4 -4
  173. package/esm/models/{chatgenerationtokenusage.js → chatusage.js} +5 -5
  174. package/esm/models/chatusermessage.d.ts +35 -0
  175. package/esm/models/chatusermessage.js +21 -0
  176. package/esm/models/chatwebsearchservertool.d.ts +124 -0
  177. package/esm/models/chatwebsearchservertool.js +84 -0
  178. package/esm/models/chatwebsearchshorthand.d.ts +219 -0
  179. package/esm/models/chatwebsearchshorthand.js +141 -0
  180. package/esm/models/codeinterpreterservertool.d.ts +68 -0
  181. package/esm/models/codeinterpreterservertool.js +85 -0
  182. package/esm/models/codexlocalshelltool.d.ts +20 -0
  183. package/esm/models/codexlocalshelltool.js +21 -0
  184. package/esm/models/compoundfilter.d.ts +36 -0
  185. package/esm/models/compoundfilter.js +32 -0
  186. package/esm/models/computeruseservertool.d.ts +39 -0
  187. package/esm/models/computeruseservertool.js +50 -0
  188. package/esm/models/conflictresponseerrordata.d.ts +17 -0
  189. package/esm/models/conflictresponseerrordata.js +16 -0
  190. package/esm/models/contentpartaddedevent.d.ts +29 -0
  191. package/esm/models/contentpartaddedevent.js +43 -0
  192. package/esm/models/contentpartdoneevent.d.ts +29 -0
  193. package/esm/models/contentpartdoneevent.js +43 -0
  194. package/esm/models/contextcompressionengine.d.ts +15 -0
  195. package/esm/models/contextcompressionengine.js +14 -0
  196. package/esm/models/customtool.d.ts +75 -0
  197. package/esm/models/customtool.js +96 -0
  198. package/esm/models/datetimeservertool.d.ts +37 -0
  199. package/esm/models/datetimeservertool.js +27 -0
  200. package/esm/models/defaultparameters.d.ts +3 -0
  201. package/esm/models/defaultparameters.js +6 -0
  202. package/esm/models/easyinputmessage.d.ts +120 -0
  203. package/esm/models/easyinputmessage.js +141 -0
  204. package/esm/models/{openresponseserrorevent.d.ts → errorevent.d.ts} +4 -4
  205. package/esm/models/{openresponseserrorevent.js → errorevent.js} +6 -5
  206. package/esm/models/errors/conflictresponseerror.d.ts +33 -0
  207. package/esm/models/errors/conflictresponseerror.js +42 -0
  208. package/esm/models/errors/index.d.ts +1 -0
  209. package/esm/models/errors/index.js +1 -0
  210. package/esm/models/filesearchservertool.d.ts +111 -0
  211. package/esm/models/filesearchservertool.js +180 -0
  212. package/esm/models/formatjsonobjectconfig.d.ts +20 -0
  213. package/esm/models/formatjsonobjectconfig.js +21 -0
  214. package/esm/models/formatjsonschemaconfig.d.ts +32 -0
  215. package/esm/models/formatjsonschemaconfig.js +29 -0
  216. package/esm/models/formats.d.ts +19 -0
  217. package/esm/models/formats.js +29 -0
  218. package/esm/models/formattextconfig.d.ts +20 -0
  219. package/esm/models/formattextconfig.js +21 -0
  220. package/esm/models/functioncallargsdeltaevent.d.ts +17 -0
  221. package/esm/models/functioncallargsdeltaevent.js +25 -0
  222. package/esm/models/functioncallargsdoneevent.d.ts +18 -0
  223. package/esm/models/functioncallargsdoneevent.js +26 -0
  224. package/esm/models/functioncallitem.d.ts +33 -0
  225. package/esm/models/functioncallitem.js +29 -0
  226. package/esm/models/functioncalloutputitem.d.ts +70 -0
  227. package/esm/models/functioncalloutputitem.js +79 -0
  228. package/esm/models/imagegencallcompletedevent.d.ts +16 -0
  229. package/esm/models/{openresponsesimagegencallcompleted.js → imagegencallcompletedevent.js} +5 -5
  230. package/esm/models/imagegencallgeneratingevent.d.ts +16 -0
  231. package/esm/models/{openresponsesimagegencallgenerating.js → imagegencallgeneratingevent.js} +5 -5
  232. package/esm/models/imagegencallinprogressevent.d.ts +16 -0
  233. package/esm/models/{openresponsesimagegencallinprogress.js → imagegencallinprogressevent.js} +5 -5
  234. package/esm/models/{openresponsesimagegencallpartialimage.d.ts → imagegencallpartialimageevent.d.ts} +4 -4
  235. package/esm/models/{openresponsesimagegencallpartialimage.js → imagegencallpartialimageevent.js} +5 -5
  236. package/esm/models/imagegenerationservertool.d.ts +125 -0
  237. package/esm/models/imagegenerationservertool.js +153 -0
  238. package/esm/models/{openairesponsesincompletedetails.d.ts → incompletedetails.d.ts} +4 -4
  239. package/esm/models/{openairesponsesincompletedetails.js → incompletedetails.js} +5 -5
  240. package/esm/models/index.d.ts +126 -95
  241. package/esm/models/index.js +126 -95
  242. package/esm/models/inputaudio.d.ts +47 -0
  243. package/esm/models/inputaudio.js +58 -0
  244. package/esm/models/{responseinputfile.d.ts → inputfile.d.ts} +7 -7
  245. package/esm/models/{responseinputfile.js → inputfile.js} +8 -8
  246. package/esm/models/inputimage.d.ts +43 -0
  247. package/esm/models/inputimage.js +52 -0
  248. package/esm/models/inputmessageitem.d.ts +84 -0
  249. package/esm/models/inputmessageitem.js +92 -0
  250. package/esm/models/inputsunion.d.ts +208 -0
  251. package/esm/models/inputsunion.js +228 -0
  252. package/esm/models/inputtext.d.ts +22 -0
  253. package/esm/models/inputtext.js +23 -0
  254. package/esm/models/inputvideo.d.ts +20 -0
  255. package/esm/models/{responseinputvideo.js → inputvideo.js} +5 -5
  256. package/esm/models/legacychatcontentvideo.d.ts +28 -0
  257. package/esm/models/legacychatcontentvideo.js +33 -0
  258. package/esm/models/legacywebsearchservertool.d.ts +78 -0
  259. package/esm/models/legacywebsearchservertool.js +87 -0
  260. package/esm/models/mcpservertool.d.ts +128 -0
  261. package/esm/models/mcpservertool.js +174 -0
  262. package/esm/models/model.d.ts +4 -0
  263. package/esm/models/model.js +2 -0
  264. package/esm/models/openairesponsestruncation.d.ts +1 -1
  265. package/esm/models/openairesponsestruncation.js +1 -1
  266. package/esm/models/openresponsesresult.d.ts +110 -0
  267. package/esm/models/openresponsesresult.js +142 -0
  268. package/esm/models/operations/bulkassignkeystoguardrail.d.ts +16 -3
  269. package/esm/models/operations/bulkassignkeystoguardrail.js +2 -2
  270. package/esm/models/operations/bulkassignmemberstoguardrail.d.ts +16 -3
  271. package/esm/models/operations/bulkassignmemberstoguardrail.js +2 -2
  272. package/esm/models/operations/bulkunassignkeysfromguardrail.d.ts +16 -3
  273. package/esm/models/operations/bulkunassignkeysfromguardrail.js +2 -2
  274. package/esm/models/operations/bulkunassignmembersfromguardrail.d.ts +16 -3
  275. package/esm/models/operations/bulkunassignmembersfromguardrail.js +2 -2
  276. package/esm/models/operations/createauthkeyscode.d.ts +16 -3
  277. package/esm/models/operations/createauthkeyscode.js +2 -2
  278. package/esm/models/operations/createcoinbasecharge.d.ts +16 -3
  279. package/esm/models/operations/createcoinbasecharge.js +2 -2
  280. package/esm/models/operations/createembeddings.d.ts +16 -3
  281. package/esm/models/operations/createembeddings.js +2 -2
  282. package/esm/models/operations/createguardrail.d.ts +25 -3
  283. package/esm/models/operations/createguardrail.js +6 -2
  284. package/esm/models/operations/createkeys.d.ts +20 -3
  285. package/esm/models/operations/createkeys.js +4 -2
  286. package/esm/models/operations/createresponses.d.ts +20 -7
  287. package/esm/models/operations/createresponses.js +8 -7
  288. package/esm/models/operations/deleteguardrail.d.ts +16 -3
  289. package/esm/models/operations/deleteguardrail.js +2 -2
  290. package/esm/models/operations/deletekeys.d.ts +16 -3
  291. package/esm/models/operations/deletekeys.js +2 -2
  292. package/esm/models/operations/exchangeauthcodeforapikey.d.ts +16 -3
  293. package/esm/models/operations/exchangeauthcodeforapikey.js +2 -2
  294. package/esm/models/operations/getcredits.d.ts +16 -3
  295. package/esm/models/operations/getcredits.js +2 -2
  296. package/esm/models/operations/getcurrentkey.d.ts +20 -3
  297. package/esm/models/operations/getcurrentkey.js +4 -2
  298. package/esm/models/operations/getgeneration.d.ts +27 -3
  299. package/esm/models/operations/getgeneration.js +9 -2
  300. package/esm/models/operations/getguardrail.d.ts +20 -3
  301. package/esm/models/operations/getguardrail.js +4 -2
  302. package/esm/models/operations/getkey.d.ts +20 -3
  303. package/esm/models/operations/getkey.js +4 -2
  304. package/esm/models/operations/getmodels.d.ts +21 -3
  305. package/esm/models/operations/getmodels.js +4 -2
  306. package/esm/models/operations/getuseractivity.d.ts +16 -3
  307. package/esm/models/operations/getuseractivity.js +2 -2
  308. package/esm/models/operations/list.d.ts +20 -3
  309. package/esm/models/operations/list.js +4 -2
  310. package/esm/models/operations/listembeddingsmodels.d.ts +16 -3
  311. package/esm/models/operations/listembeddingsmodels.js +2 -2
  312. package/esm/models/operations/listendpoints.d.ts +16 -3
  313. package/esm/models/operations/listendpoints.js +2 -2
  314. package/esm/models/operations/listendpointszdr.d.ts +16 -3
  315. package/esm/models/operations/listendpointszdr.js +2 -2
  316. package/esm/models/operations/listguardrailkeyassignments.d.ts +16 -3
  317. package/esm/models/operations/listguardrailkeyassignments.js +2 -2
  318. package/esm/models/operations/listguardrailmemberassignments.d.ts +16 -3
  319. package/esm/models/operations/listguardrailmemberassignments.js +2 -2
  320. package/esm/models/operations/listguardrails.d.ts +20 -3
  321. package/esm/models/operations/listguardrails.js +4 -2
  322. package/esm/models/operations/listkeyassignments.d.ts +16 -3
  323. package/esm/models/operations/listkeyassignments.js +2 -2
  324. package/esm/models/operations/listmemberassignments.d.ts +16 -3
  325. package/esm/models/operations/listmemberassignments.js +2 -2
  326. package/esm/models/operations/listmodelscount.d.ts +21 -3
  327. package/esm/models/operations/listmodelscount.js +4 -2
  328. package/esm/models/operations/listmodelsuser.d.ts +16 -3
  329. package/esm/models/operations/listmodelsuser.js +2 -2
  330. package/esm/models/operations/listproviders.d.ts +539 -3
  331. package/esm/models/operations/listproviders.js +514 -2
  332. package/esm/models/operations/sendchatcompletionrequest.d.ts +20 -7
  333. package/esm/models/operations/sendchatcompletionrequest.js +8 -7
  334. package/esm/models/operations/updateguardrail.d.ts +25 -3
  335. package/esm/models/operations/updateguardrail.js +6 -2
  336. package/esm/models/operations/updatekeys.d.ts +20 -3
  337. package/esm/models/operations/updatekeys.js +4 -2
  338. package/esm/models/outputdatetimeitem.d.ts +44 -0
  339. package/esm/models/outputdatetimeitem.js +30 -0
  340. package/esm/models/outputfilesearchcallitem.d.ts +33 -0
  341. package/esm/models/outputfilesearchcallitem.js +35 -0
  342. package/esm/models/outputfunctioncallitem.d.ts +69 -0
  343. package/esm/models/outputfunctioncallitem.js +94 -0
  344. package/esm/models/outputimagegenerationcallitem.d.ts +33 -0
  345. package/esm/models/outputimagegenerationcallitem.js +35 -0
  346. package/esm/models/outputitems.d.ts +18 -0
  347. package/esm/models/outputitems.js +28 -0
  348. package/esm/models/outputmessage.d.ts +23 -0
  349. package/esm/models/outputmessage.js +24 -0
  350. package/esm/models/outputmessageitem.d.ts +81 -0
  351. package/esm/models/outputmessageitem.js +93 -0
  352. package/esm/models/outputmodality.d.ts +1 -0
  353. package/esm/models/outputmodality.js +1 -0
  354. package/esm/models/outputmodalityenum.d.ts +10 -0
  355. package/esm/models/outputmodalityenum.js +12 -0
  356. package/esm/models/outputreasoningitem.d.ts +74 -0
  357. package/esm/models/outputreasoningitem.js +75 -0
  358. package/esm/models/outputservertoolitem.d.ts +42 -0
  359. package/esm/models/outputservertoolitem.js +44 -0
  360. package/esm/models/outputwebsearchcallitem.d.ts +116 -0
  361. package/esm/models/outputwebsearchcallitem.js +141 -0
  362. package/esm/models/pdfparserengine.d.ts +18 -9
  363. package/esm/models/pdfparserengine.js +17 -6
  364. package/esm/models/pdfparseroptions.d.ts +3 -3
  365. package/esm/models/preview20250311websearchservertool.d.ts +75 -0
  366. package/esm/models/preview20250311websearchservertool.js +89 -0
  367. package/esm/models/previewwebsearchservertool.d.ts +75 -0
  368. package/esm/models/previewwebsearchservertool.js +89 -0
  369. package/esm/models/previewwebsearchuserlocation.d.ts +34 -0
  370. package/esm/models/previewwebsearchuserlocation.js +36 -0
  371. package/esm/models/providername.d.ts +2 -0
  372. package/esm/models/providername.js +2 -0
  373. package/esm/models/providerpreferences.d.ts +7 -0
  374. package/esm/models/providerpreferences.js +4 -0
  375. package/esm/models/providersort.d.ts +1 -0
  376. package/esm/models/providersort.js +1 -0
  377. package/esm/models/providersortconfig.d.ts +1 -0
  378. package/esm/models/providersortconfig.js +1 -0
  379. package/esm/models/reasoningconfig.d.ts +23 -0
  380. package/esm/models/reasoningconfig.js +23 -0
  381. package/esm/models/{openresponsesreasoningdeltaevent.d.ts → reasoningdeltaevent.d.ts} +4 -4
  382. package/esm/models/{openresponsesreasoningdeltaevent.js → reasoningdeltaevent.js} +5 -5
  383. package/esm/models/{openresponsesreasoningdoneevent.d.ts → reasoningdoneevent.d.ts} +4 -4
  384. package/esm/models/{openresponsesreasoningdoneevent.js → reasoningdoneevent.js} +5 -5
  385. package/esm/models/reasoningeffortenum.d.ts +16 -0
  386. package/esm/models/reasoningeffortenum.js +18 -0
  387. package/esm/models/reasoningitem.d.ts +73 -0
  388. package/esm/models/reasoningitem.js +71 -0
  389. package/esm/models/{openresponsesreasoningsummarypartaddedevent.d.ts → reasoningsummarypartaddedevent.d.ts} +4 -4
  390. package/esm/models/{openresponsesreasoningsummarypartaddedevent.js → reasoningsummarypartaddedevent.js} +5 -5
  391. package/esm/models/reasoningsummarypartdoneevent.d.ts +19 -0
  392. package/esm/models/reasoningsummarypartdoneevent.js +28 -0
  393. package/esm/models/reasoningsummarytextdeltaevent.d.ts +18 -0
  394. package/esm/models/{openresponsesreasoningsummarytextdeltaevent.js → reasoningsummarytextdeltaevent.js} +5 -5
  395. package/esm/models/reasoningsummarytextdoneevent.d.ts +18 -0
  396. package/esm/models/{openresponsesreasoningsummarytextdoneevent.js → reasoningsummarytextdoneevent.js} +5 -5
  397. package/esm/models/reasoningsummaryverbosityenum.d.ts +13 -0
  398. package/esm/models/reasoningsummaryverbosityenum.js +15 -0
  399. package/esm/models/refusaldeltaevent.d.ts +18 -0
  400. package/esm/models/refusaldeltaevent.js +27 -0
  401. package/esm/models/refusaldoneevent.d.ts +18 -0
  402. package/esm/models/refusaldoneevent.js +27 -0
  403. package/esm/models/{openairesponsesincludable.d.ts → responseincludesenum.d.ts} +4 -4
  404. package/esm/models/{openairesponsesincludable.js → responseincludesenum.js} +4 -4
  405. package/esm/models/responseoutputtext.d.ts +8 -8
  406. package/esm/models/responseoutputtext.js +10 -9
  407. package/esm/models/responsesrequest.d.ts +499 -0
  408. package/esm/models/responsesrequest.js +347 -0
  409. package/esm/models/searchcontextsizeenum.d.ts +19 -0
  410. package/esm/models/searchcontextsizeenum.js +18 -0
  411. package/esm/models/shellservertool.d.ts +20 -0
  412. package/esm/models/shellservertool.js +21 -0
  413. package/esm/models/storedprompttemplate.d.ts +35 -0
  414. package/esm/models/storedprompttemplate.js +56 -0
  415. package/esm/models/streamevents.d.ts +136 -0
  416. package/esm/models/streamevents.js +165 -0
  417. package/esm/models/textconfig.d.ts +27 -0
  418. package/esm/models/textconfig.js +25 -0
  419. package/esm/models/textdeltaevent.d.ts +42 -0
  420. package/esm/models/textdeltaevent.js +52 -0
  421. package/esm/models/textdoneevent.d.ts +42 -0
  422. package/esm/models/textdoneevent.js +53 -0
  423. package/esm/models/textextendedconfig.d.ts +30 -0
  424. package/esm/models/textextendedconfig.js +23 -0
  425. package/esm/models/toolcallstatusenum.d.ts +13 -0
  426. package/esm/models/toolcallstatusenum.js +15 -0
  427. package/esm/models/truncationenum.d.ts +10 -0
  428. package/esm/models/truncationenum.js +12 -0
  429. package/esm/models/{openresponsesusage.d.ts → usage.d.ts} +4 -4
  430. package/esm/models/{openresponsesusage.js → usage.js} +5 -5
  431. package/esm/models/websearchcallcompletedevent.d.ts +16 -0
  432. package/esm/models/websearchcallcompletedevent.js +24 -0
  433. package/esm/models/websearchcallinprogressevent.d.ts +16 -0
  434. package/esm/models/websearchcallinprogressevent.js +24 -0
  435. package/esm/models/websearchcallsearchingevent.d.ts +16 -0
  436. package/esm/models/websearchcallsearchingevent.js +24 -0
  437. package/esm/models/websearchengine.d.ts +2 -0
  438. package/esm/models/websearchengine.js +2 -0
  439. package/esm/models/websearchservertool.d.ts +78 -0
  440. package/esm/models/websearchservertool.js +89 -0
  441. package/esm/models/websearchservertoolopenrouter.d.ts +35 -0
  442. package/esm/models/websearchservertoolopenrouter.js +28 -0
  443. package/esm/models/websearchuserlocation.d.ts +37 -0
  444. package/esm/models/websearchuserlocation.js +36 -0
  445. package/esm/sdk/chat.d.ts +4 -4
  446. package/esm/sdk/responses.d.ts +4 -4
  447. package/esm/sdk/sdk.d.ts +4 -1
  448. package/esm/sdk/sdk.js +0 -1
  449. package/esm/types/index.d.ts +0 -2
  450. package/esm/types/index.js +0 -1
  451. package/jsr.json +1 -1
  452. package/package.json +11 -11
  453. package/tsconfig.json +3 -1
  454. package/turbo.json +10 -0
  455. package/esm/models/assistantmessage.d.ts +0 -80
  456. package/esm/models/assistantmessage.js +0 -83
  457. package/esm/models/assistantmessageimages.d.ts +0 -33
  458. package/esm/models/assistantmessageimages.js +0 -44
  459. package/esm/models/chatcompletionfinishreason.d.ts +0 -13
  460. package/esm/models/chatgenerationparams.js +0 -371
  461. package/esm/models/chatmessagecontentitem.d.ts +0 -30
  462. package/esm/models/chatmessagecontentitem.js +0 -54
  463. package/esm/models/chatmessagecontentitemaudio.d.ts +0 -52
  464. package/esm/models/chatmessagecontentitemaudio.js +0 -55
  465. package/esm/models/chatmessagecontentitemcachecontrol.d.ts +0 -40
  466. package/esm/models/chatmessagecontentitemcachecontrol.js +0 -41
  467. package/esm/models/chatmessagecontentitemimage.d.ts +0 -68
  468. package/esm/models/chatmessagecontentitemimage.js +0 -68
  469. package/esm/models/chatmessagecontentitemtext.d.ts +0 -37
  470. package/esm/models/chatmessagecontentitemtext.js +0 -42
  471. package/esm/models/chatmessagecontentitemvideo.d.ts +0 -26
  472. package/esm/models/chatmessagecontentitemvideo.js +0 -33
  473. package/esm/models/chatmessagecontentitemvideolegacy.d.ts +0 -28
  474. package/esm/models/chatmessagecontentitemvideolegacy.js +0 -33
  475. package/esm/models/chatmessagetokenlogprob.d.ts +0 -36
  476. package/esm/models/chatmessagetokenlogprob.js +0 -31
  477. package/esm/models/chatmessagetokenlogprobs.d.ts +0 -21
  478. package/esm/models/chatmessagetokenlogprobs.js +0 -16
  479. package/esm/models/chatmessagetoolcall.d.ts +0 -57
  480. package/esm/models/chatmessagetoolcall.js +0 -48
  481. package/esm/models/chatresponse.d.ts +0 -46
  482. package/esm/models/chatresponse.js +0 -33
  483. package/esm/models/chatresponsechoice.d.ts +0 -27
  484. package/esm/models/chatresponsechoice.js +0 -24
  485. package/esm/models/chatstreamingchoice.d.ts +0 -27
  486. package/esm/models/chatstreamingchoice.js +0 -24
  487. package/esm/models/chatstreamingmessagechunk.js +0 -35
  488. package/esm/models/chatstreamingmessagetoolcall.d.ts +0 -57
  489. package/esm/models/chatstreamingmessagetoolcall.js +0 -34
  490. package/esm/models/chatstreamingresponsechunk.js +0 -41
  491. package/esm/models/developermessage.d.ts +0 -35
  492. package/esm/models/developermessage.js +0 -24
  493. package/esm/models/message.d.ts +0 -20
  494. package/esm/models/message.js +0 -23
  495. package/esm/models/namedtoolchoice.d.ts +0 -37
  496. package/esm/models/namedtoolchoice.js +0 -26
  497. package/esm/models/openairesponsesinputunion.d.ts +0 -154
  498. package/esm/models/openairesponsesinputunion.js +0 -222
  499. package/esm/models/openairesponsesprompt.d.ts +0 -35
  500. package/esm/models/openairesponsesprompt.js +0 -56
  501. package/esm/models/openairesponsesreasoningconfig.d.ts +0 -13
  502. package/esm/models/openairesponsesreasoningconfig.js +0 -17
  503. package/esm/models/openairesponsesreasoningeffort.d.ts +0 -16
  504. package/esm/models/openairesponsesreasoningeffort.js +0 -18
  505. package/esm/models/openairesponsesservicetier.d.ts +0 -13
  506. package/esm/models/openairesponsesservicetier.js +0 -15
  507. package/esm/models/openresponseseasyinputmessage.d.ts +0 -94
  508. package/esm/models/openresponseseasyinputmessage.js +0 -115
  509. package/esm/models/openresponsesfunctioncalloutput.d.ts +0 -31
  510. package/esm/models/openresponsesfunctioncalloutput.js +0 -28
  511. package/esm/models/openresponsesfunctiontoolcall.d.ts +0 -33
  512. package/esm/models/openresponsesfunctiontoolcall.js +0 -29
  513. package/esm/models/openresponsesimagegencallcompleted.d.ts +0 -16
  514. package/esm/models/openresponsesimagegencallgenerating.d.ts +0 -16
  515. package/esm/models/openresponsesimagegencallinprogress.d.ts +0 -16
  516. package/esm/models/openresponsesinput.d.ts +0 -28
  517. package/esm/models/openresponsesinput.js +0 -54
  518. package/esm/models/openresponsesinputmessageitem.d.ts +0 -84
  519. package/esm/models/openresponsesinputmessageitem.js +0 -92
  520. package/esm/models/openresponseslogprobs.d.ts +0 -16
  521. package/esm/models/openresponseslogprobs.js +0 -22
  522. package/esm/models/openresponsesnonstreamingresponse.d.ts +0 -102
  523. package/esm/models/openresponsesnonstreamingresponse.js +0 -117
  524. package/esm/models/openresponsesreasoning.d.ts +0 -73
  525. package/esm/models/openresponsesreasoning.js +0 -71
  526. package/esm/models/openresponsesreasoningconfig.d.ts +0 -23
  527. package/esm/models/openresponsesreasoningconfig.js +0 -23
  528. package/esm/models/openresponsesreasoningsummarytextdeltaevent.d.ts +0 -18
  529. package/esm/models/openresponsesreasoningsummarytextdoneevent.d.ts +0 -18
  530. package/esm/models/openresponsesrequest.d.ts +0 -451
  531. package/esm/models/openresponsesrequest.js +0 -300
  532. package/esm/models/openresponsesresponsetext.d.ts +0 -30
  533. package/esm/models/openresponsesresponsetext.js +0 -24
  534. package/esm/models/openresponsesstreamevent.d.ts +0 -287
  535. package/esm/models/openresponsesstreamevent.js +0 -379
  536. package/esm/models/openresponsestoplogprobs.d.ts +0 -14
  537. package/esm/models/openresponsestoplogprobs.js +0 -15
  538. package/esm/models/openresponseswebsearch20250826tool.d.ts +0 -47
  539. package/esm/models/openresponseswebsearch20250826tool.js +0 -64
  540. package/esm/models/openresponseswebsearchpreview20250311tool.d.ts +0 -29
  541. package/esm/models/openresponseswebsearchpreview20250311tool.js +0 -40
  542. package/esm/models/openresponseswebsearchpreviewtool.d.ts +0 -29
  543. package/esm/models/openresponseswebsearchpreviewtool.js +0 -40
  544. package/esm/models/openresponseswebsearchtool.d.ts +0 -47
  545. package/esm/models/openresponseswebsearchtool.js +0 -64
  546. package/esm/models/reasoningsummaryverbosity.d.ts +0 -13
  547. package/esm/models/reasoningsummaryverbosity.js +0 -15
  548. package/esm/models/responseformatjsonobject.d.ts +0 -20
  549. package/esm/models/responseformatjsonobject.js +0 -21
  550. package/esm/models/responseformatjsonschema.d.ts +0 -21
  551. package/esm/models/responseformatjsonschema.js +0 -20
  552. package/esm/models/responseformattext.d.ts +0 -15
  553. package/esm/models/responseformattext.js +0 -13
  554. package/esm/models/responseformattextconfig.d.ts +0 -19
  555. package/esm/models/responseformattextconfig.js +0 -28
  556. package/esm/models/responseformattextgrammar.d.ts +0 -20
  557. package/esm/models/responseformattextgrammar.js +0 -14
  558. package/esm/models/responseformattextpython.d.ts +0 -15
  559. package/esm/models/responseformattextpython.js +0 -13
  560. package/esm/models/responseinputaudio.d.ts +0 -47
  561. package/esm/models/responseinputaudio.js +0 -57
  562. package/esm/models/responseinputimage.d.ts +0 -43
  563. package/esm/models/responseinputimage.js +0 -51
  564. package/esm/models/responseinputtext.d.ts +0 -22
  565. package/esm/models/responseinputtext.js +0 -23
  566. package/esm/models/responseinputvideo.d.ts +0 -20
  567. package/esm/models/responsesformattext.d.ts +0 -20
  568. package/esm/models/responsesformattext.js +0 -21
  569. package/esm/models/responsesformattextjsonschemaconfig.d.ts +0 -32
  570. package/esm/models/responsesformattextjsonschemaconfig.js +0 -29
  571. package/esm/models/responsesimagegenerationcall.d.ts +0 -33
  572. package/esm/models/responsesimagegenerationcall.js +0 -35
  573. package/esm/models/responsesoutputitem.d.ts +0 -29
  574. package/esm/models/responsesoutputitem.js +0 -25
  575. package/esm/models/responsesoutputitemfilesearchcall.d.ts +0 -33
  576. package/esm/models/responsesoutputitemfilesearchcall.js +0 -35
  577. package/esm/models/responsesoutputitemfunctioncall.d.ts +0 -69
  578. package/esm/models/responsesoutputitemfunctioncall.js +0 -94
  579. package/esm/models/responsesoutputitemreasoning.d.ts +0 -103
  580. package/esm/models/responsesoutputitemreasoning.js +0 -118
  581. package/esm/models/responsesoutputmessage.d.ts +0 -89
  582. package/esm/models/responsesoutputmessage.js +0 -114
  583. package/esm/models/responsesoutputmodality.d.ts +0 -10
  584. package/esm/models/responsesoutputmodality.js +0 -12
  585. package/esm/models/responsessearchcontextsize.d.ts +0 -19
  586. package/esm/models/responsessearchcontextsize.js +0 -18
  587. package/esm/models/responseswebsearchcalloutput.d.ts +0 -31
  588. package/esm/models/responseswebsearchcalloutput.js +0 -33
  589. package/esm/models/responseswebsearchuserlocation.d.ts +0 -37
  590. package/esm/models/responseswebsearchuserlocation.js +0 -36
  591. package/esm/models/responsetextconfig.d.ts +0 -27
  592. package/esm/models/responsetextconfig.js +0 -24
  593. package/esm/models/systemmessage.d.ts +0 -35
  594. package/esm/models/systemmessage.js +0 -24
  595. package/esm/models/toolcallstatus.d.ts +0 -13
  596. package/esm/models/toolcallstatus.js +0 -15
  597. package/esm/models/toolchoiceoption.d.ts +0 -31
  598. package/esm/models/toolchoiceoption.js +0 -32
  599. package/esm/models/tooldefinitionjson.d.ts +0 -68
  600. package/esm/models/tooldefinitionjson.js +0 -36
  601. package/esm/models/toolresponsemessage.d.ts +0 -35
  602. package/esm/models/toolresponsemessage.js +0 -29
  603. package/esm/models/usermessage.d.ts +0 -35
  604. package/esm/models/usermessage.js +0 -24
  605. package/esm/models/videoinput.d.ts +0 -23
  606. package/esm/models/videoinput.js +0 -22
  607. package/esm/models/websearchpreviewtooluserlocation.d.ts +0 -34
  608. package/esm/models/websearchpreviewtooluserlocation.js +0 -36
@@ -1,4 +1,4 @@
1
- import type * as models from "../models/index.js";
1
+ import type { ClaudeMessageParam } from "../models/claude-message.js";
2
2
  /**
3
3
  * Check if input is in Claude message format
4
4
  * Uses structural analysis to detect Claude-specific patterns
@@ -6,5 +6,5 @@ import type * as models from "../models/index.js";
6
6
  * @param input - Input to check
7
7
  * @returns True if input appears to be Claude format
8
8
  */
9
- export declare function isClaudeStyleMessages(input: unknown): input is models.ClaudeMessageParam[];
9
+ export declare function isClaudeStyleMessages(input: unknown): input is ClaudeMessageParam[];
10
10
  //# sourceMappingURL=claude-type-guards.d.ts.map
@@ -1,4 +1,3 @@
1
- import type { Hook } from "../hooks/types.js";
2
1
  import { HTTPClient } from "./http.js";
3
2
  import { Logger } from "./logger.js";
4
3
  import { RetryConfig } from "./retries.js";
@@ -19,9 +18,13 @@ export type SDKOptions = {
19
18
  */
20
19
  httpReferer?: string | undefined;
21
20
  /**
22
- * Allows setting the xTitle parameter for all supported operations
21
+ * Allows setting the appTitle parameter for all supported operations
23
22
  */
24
- xTitle?: string | undefined;
23
+ appTitle?: string | undefined;
24
+ /**
25
+ * Allows setting the appCategories parameter for all supported operations
26
+ */
27
+ appCategories?: string | undefined;
25
28
  httpClient?: HTTPClient;
26
29
  /**
27
30
  * Allows overriding the default server used by the SDK
@@ -41,18 +44,13 @@ export type SDKOptions = {
41
44
  retryConfig?: RetryConfig;
42
45
  timeoutMs?: number;
43
46
  debugLogger?: Logger;
44
- /**
45
- * Hooks for request/response lifecycle events.
46
- * Can be a single hook object or an array of hooks.
47
- */
48
- hooks?: Hook | Hook[];
49
47
  };
50
48
  export declare function serverURLFromOptions(options: SDKOptions): URL | null;
51
49
  export declare const SDK_METADATA: {
52
50
  readonly language: "typescript";
53
51
  readonly openapiDocVersion: "1.0.0";
54
- readonly sdkVersion: "0.9.11";
55
- readonly genVersion: "2.788.4";
56
- readonly userAgent: "speakeasy-sdk/typescript 0.9.11 2.788.4 1.0.0 @openrouter/sdk";
52
+ readonly sdkVersion: "0.11.2";
53
+ readonly genVersion: "2.879.1";
54
+ readonly userAgent: "speakeasy-sdk/typescript 0.11.2 2.879.1 1.0.0 @openrouter/sdk";
57
55
  };
58
56
  //# sourceMappingURL=config.d.ts.map
package/esm/lib/config.js CHANGED
@@ -26,8 +26,8 @@ export function serverURLFromOptions(options) {
26
26
  export const SDK_METADATA = {
27
27
  language: "typescript",
28
28
  openapiDocVersion: "1.0.0",
29
- sdkVersion: "0.9.11",
30
- genVersion: "2.788.4",
31
- userAgent: "speakeasy-sdk/typescript 0.9.11 2.788.4 1.0.0 @openrouter/sdk",
29
+ sdkVersion: "0.11.2",
30
+ genVersion: "2.879.1",
31
+ userAgent: "speakeasy-sdk/typescript 0.11.2 2.879.1 1.0.0 @openrouter/sdk",
32
32
  };
33
33
  //# sourceMappingURL=config.js.map
@@ -18,7 +18,7 @@ export declare function updateState<TTools extends readonly Tool[] = readonly To
18
18
  /**
19
19
  * Append new items to the message history
20
20
  */
21
- export declare function appendToMessages(current: models.OpenResponsesInput, newItems: models.OpenResponsesInput1[]): models.OpenResponsesInput;
21
+ export declare function appendToMessages(current: models.InputsUnion, newItems: models.BaseInputsUnion[]): models.InputsUnion;
22
22
  /**
23
23
  * Check if a tool call requires approval
24
24
  * @param toolCall - The tool call to check
@@ -49,13 +49,13 @@ export declare function createRejectedResult<TTools extends readonly Tool[] = re
49
49
  /**
50
50
  * Convert unsent tool results to API format for sending to the model
51
51
  */
52
- export declare function unsentResultsToAPIFormat(results: UnsentToolResult[]): models.OpenResponsesFunctionCallOutput[];
52
+ export declare function unsentResultsToAPIFormat(results: UnsentToolResult[]): models.FunctionCallOutputItem[];
53
53
  /**
54
54
  * Extract text content from a response
55
55
  */
56
- export declare function extractTextFromResponse(response: models.OpenResponsesNonStreamingResponse): string;
56
+ export declare function extractTextFromResponse(response: models.OpenResponsesResult): string;
57
57
  /**
58
58
  * Extract tool calls from a response
59
59
  */
60
- export declare function extractToolCallsFromResponse<TTools extends readonly Tool[]>(response: models.OpenResponsesNonStreamingResponse): ParsedToolCall<TTools[number]>[];
60
+ export declare function extractToolCallsFromResponse<TTools extends readonly Tool[]>(response: models.OpenResponsesResult): ParsedToolCall<TTools[number]>[];
61
61
  //# sourceMappingURL=conversation-state.d.ts.map
@@ -5,10 +5,11 @@ import { normalizeInputToArray } from './turn-context.js';
5
5
  function isValidUnsentToolResult(obj) {
6
6
  if (typeof obj !== 'object' || obj === null)
7
7
  return false;
8
- const candidate = obj;
9
- return (typeof candidate['callId'] === 'string' &&
10
- typeof candidate['name'] === 'string' &&
11
- 'output' in candidate);
8
+ return ('callId' in obj &&
9
+ typeof obj.callId === 'string' &&
10
+ 'name' in obj &&
11
+ typeof obj.name === 'string' &&
12
+ 'output' in obj);
12
13
  }
13
14
  /**
14
15
  * Type guard to verify an object is a valid ParsedToolCall
@@ -16,10 +17,11 @@ function isValidUnsentToolResult(obj) {
16
17
  function isValidParsedToolCall(obj) {
17
18
  if (typeof obj !== 'object' || obj === null)
18
19
  return false;
19
- const candidate = obj;
20
- return (typeof candidate['id'] === 'string' &&
21
- typeof candidate['name'] === 'string' &&
22
- 'arguments' in candidate);
20
+ return ('id' in obj &&
21
+ typeof obj.id === 'string' &&
22
+ 'name' in obj &&
23
+ typeof obj.name === 'string' &&
24
+ 'arguments' in obj);
23
25
  }
24
26
  /**
25
27
  * Generate a unique ID for a conversation
@@ -156,9 +158,9 @@ export function extractTextFromResponse(response) {
156
158
  const outputs = Array.isArray(response.output) ? response.output : [response.output];
157
159
  const textParts = [];
158
160
  for (const item of outputs) {
159
- if (item.type === 'message' && item.content) {
161
+ if (item.type === 'message' && 'content' in item && item.content) {
160
162
  for (const content of item.content) {
161
- if (content.type === 'output_text' && content.text) {
163
+ if (content.type === 'output_text' && 'text' in content && content.text) {
162
164
  textParts.push(content.text);
163
165
  }
164
166
  }
@@ -176,31 +178,32 @@ export function extractToolCallsFromResponse(response) {
176
178
  const outputs = Array.isArray(response.output) ? response.output : [response.output];
177
179
  const toolCalls = [];
178
180
  for (const item of outputs) {
179
- if (item.type === 'function_call') {
180
- let parsedArguments;
181
- if (typeof item.arguments === 'string') {
182
- try {
183
- parsedArguments = JSON.parse(item.arguments);
184
- }
185
- catch (error) {
186
- // Log warning and skip malformed tool call, similar to stream-transformers.ts
187
- console.warn(`Failed to parse arguments for tool call "${item.name}": ${error instanceof Error ? error.message : String(error)}`);
188
- continue;
189
- }
190
- }
191
- else {
192
- parsedArguments = item.arguments;
181
+ if (item.type !== 'function_call' || !('arguments' in item)) {
182
+ continue;
183
+ }
184
+ let parsedArguments;
185
+ if (typeof item.arguments === 'string') {
186
+ try {
187
+ parsedArguments = JSON.parse(item.arguments);
193
188
  }
194
- const toolCall = {
195
- id: item.callId ?? item.id ?? '',
196
- name: item.name ?? '',
197
- arguments: parsedArguments,
198
- };
199
- if (!isValidParsedToolCall(toolCall)) {
200
- throw new Error(`Invalid tool call structure for tool: ${item.name}`);
189
+ catch (error) {
190
+ // Log warning and skip malformed tool call, similar to stream-transformers.ts
191
+ console.warn(`Failed to parse arguments for tool call "${'name' in item ? item.name : 'unknown'}": ${error instanceof Error ? error.message : String(error)}`);
192
+ continue;
201
193
  }
202
- toolCalls.push(toolCall);
203
194
  }
195
+ else {
196
+ parsedArguments = item.arguments;
197
+ }
198
+ const toolCall = {
199
+ id: ('callId' in item ? item.callId : undefined) ?? item.id ?? '',
200
+ name: ('name' in item ? item.name : undefined) ?? '',
201
+ arguments: parsedArguments,
202
+ };
203
+ if (!isValidParsedToolCall(toolCall)) {
204
+ throw new Error(`Invalid tool call structure for tool: ${toolCall.name}`);
205
+ }
206
+ toolCalls.push(toolCall);
204
207
  }
205
208
  return toolCalls;
206
209
  }
@@ -349,15 +349,30 @@ export const encodeFormQuery = queryEncoder(encodeForm);
349
349
  export const encodeSpaceDelimitedQuery = queryEncoder(encodeSpaceDelimited);
350
350
  export const encodePipeDelimitedQuery = queryEncoder(encodePipeDelimited);
351
351
  export const encodeDeepObjectQuery = queryEncoder(encodeDeepObject);
352
+ function isBlobLike(val) {
353
+ if (val instanceof Blob) {
354
+ return true;
355
+ }
356
+ if (typeof val !== "object" || val == null || !(Symbol.toStringTag in val)) {
357
+ return false;
358
+ }
359
+ const tag = val[Symbol.toStringTag];
360
+ if (tag !== "Blob" && tag !== "File") {
361
+ return false;
362
+ }
363
+ return "stream" in val && typeof val.stream === "function";
364
+ }
352
365
  export function appendForm(fd, key, value, fileName) {
353
366
  if (value == null) {
354
367
  return;
355
368
  }
356
- else if (value instanceof Blob && fileName) {
357
- fd.append(key, value, fileName);
358
- }
359
- else if (value instanceof Blob) {
360
- fd.append(key, value);
369
+ else if (isBlobLike(value)) {
370
+ if (fileName) {
371
+ fd.append(key, value, fileName);
372
+ }
373
+ else {
374
+ fd.append(key, value);
375
+ }
361
376
  }
362
377
  else {
363
378
  fd.append(key, String(value));
package/esm/lib/env.d.ts CHANGED
@@ -7,9 +7,13 @@ export interface Env {
7
7
  */
8
8
  OPENROUTER_HTTP_REFERER?: string | undefined;
9
9
  /**
10
- * Sets the xTitle parameter for all supported operations
10
+ * Sets the appTitle parameter for all supported operations
11
11
  */
12
- OPENROUTER_X_TITLE?: string | undefined;
12
+ OPENROUTER_APP_TITLE?: string | undefined;
13
+ /**
14
+ * Sets the appCategories parameter for all supported operations
15
+ */
16
+ OPENROUTER_APP_CATEGORIES?: string | undefined;
13
17
  OPENROUTER_DEBUG?: boolean | undefined;
14
18
  }
15
19
  export declare const envSchema: z.ZodType<Env, unknown>;
package/esm/lib/env.js CHANGED
@@ -7,7 +7,8 @@ import { dlv } from "./dlv.js";
7
7
  export const envSchema = z.object({
8
8
  OPENROUTER_API_KEY: z.string().optional(),
9
9
  OPENROUTER_HTTP_REFERER: z.string().optional(),
10
- OPENROUTER_X_TITLE: z.string().optional(),
10
+ OPENROUTER_APP_TITLE: z.string().optional(),
11
+ OPENROUTER_APP_CATEGORIES: z.string().optional(),
11
12
  OPENROUTER_DEBUG: z.coerce.boolean().optional(),
12
13
  });
13
14
  /**
@@ -53,8 +54,11 @@ export function fillGlobals(options) {
53
54
  if (typeof envVars.OPENROUTER_HTTP_REFERER !== "undefined") {
54
55
  clone.httpReferer ?? (clone.httpReferer = envVars.OPENROUTER_HTTP_REFERER);
55
56
  }
56
- if (typeof envVars.OPENROUTER_X_TITLE !== "undefined") {
57
- clone.xTitle ?? (clone.xTitle = envVars.OPENROUTER_X_TITLE);
57
+ if (typeof envVars.OPENROUTER_APP_TITLE !== "undefined") {
58
+ clone.appTitle ?? (clone.appTitle = envVars.OPENROUTER_APP_TITLE);
59
+ }
60
+ if (typeof envVars.OPENROUTER_APP_CATEGORIES !== "undefined") {
61
+ clone.appCategories ?? (clone.appCategories = envVars.OPENROUTER_APP_CATEGORIES);
58
62
  }
59
63
  return clone;
60
64
  }
@@ -1,11 +1,18 @@
1
+ declare global {
2
+ interface ReadableStream<R = any> {
3
+ [Symbol.asyncIterator](): AsyncIterableIterator<R>;
4
+ }
5
+ }
1
6
  export type SseMessage<T> = {
2
7
  data?: T | undefined;
3
- event?: string | undefined;
4
- id?: string | undefined;
5
- retry?: number | undefined;
8
+ event?: string | null | undefined;
9
+ id?: string | null | undefined;
10
+ retry?: number | null | undefined;
6
11
  };
7
12
  export declare class EventStream<T> extends ReadableStream<T> {
8
- constructor(responseBody: ReadableStream<Uint8Array>, parse: (x: SseMessage<string>) => IteratorResult<T, undefined>);
13
+ constructor(responseBody: ReadableStream<Uint8Array>, parse: (x: SseMessage<string>) => IteratorResult<T, undefined>, opts?: {
14
+ dataRequired?: boolean;
15
+ });
9
16
  [Symbol.asyncIterator](): AsyncIterableIterator<T>;
10
17
  }
11
18
  //# sourceMappingURL=event-streams.d.ts.map
@@ -3,9 +3,11 @@
3
3
  * @generated-id: 3f731f808a79
4
4
  */
5
5
  export class EventStream extends ReadableStream {
6
- constructor(responseBody, parse) {
6
+ constructor(responseBody, parse, opts) {
7
7
  const upstream = responseBody.getReader();
8
8
  let buffer = new Uint8Array();
9
+ const state = { eventId: undefined };
10
+ const dataRequired = opts?.dataRequired ?? true;
9
11
  super({
10
12
  async pull(downstream) {
11
13
  try {
@@ -20,7 +22,7 @@ export class EventStream extends ReadableStream {
20
22
  }
21
23
  const message = buffer.slice(0, match.index);
22
24
  buffer = buffer.slice(match.index + match.length);
23
- const item = parseMessage(message, parse);
25
+ const item = parseMessage(message, parse, state, dataRequired);
24
26
  if (item && !item.done)
25
27
  return downstream.enqueue(item.value);
26
28
  if (item?.done) {
@@ -74,25 +76,40 @@ function concatBuffer(a, b) {
74
76
  c.set(b, a.length);
75
77
  return c;
76
78
  }
77
- /** Finds the first (CR,LF,CR,LF) or (CR,CR) or (LF,LF) */
79
+ const CR = 13;
80
+ const LF = 10;
81
+ const BOUNDARIES = [
82
+ [CR, LF, CR, LF], // \r\n\r\n
83
+ [CR, LF, CR], // \r\n\r
84
+ [CR, LF, LF], // \r\n\n
85
+ [CR, CR, LF], // \r\r\n
86
+ [LF, CR, LF], // \n\r\n
87
+ [CR, CR], // \r\r
88
+ [LF, CR], // \n\r
89
+ [LF, LF], // \n\n
90
+ ];
78
91
  function findBoundary(buf) {
79
92
  const len = buf.length;
80
93
  for (let i = 0; i < len; i++) {
81
- if (i <= len - 4
82
- && buf[i] === 13 && buf[i + 1] === 10 && buf[i + 2] === 13
83
- && buf[i + 3] === 10) {
84
- return { index: i, length: 4 };
85
- }
86
- if (i <= len - 2 && buf[i] === 13 && buf[i + 1] === 13) {
87
- return { index: i, length: 2 };
88
- }
89
- if (i <= len - 2 && buf[i] === 10 && buf[i + 1] === 10) {
90
- return { index: i, length: 2 };
94
+ if (buf[i] !== CR && buf[i] !== LF)
95
+ continue;
96
+ for (const boundary of BOUNDARIES) {
97
+ if (i + boundary.length > len)
98
+ continue;
99
+ let match = true;
100
+ for (let j = 0; j < boundary.length; j++) {
101
+ if (buf[i + j] !== boundary[j]) {
102
+ match = false;
103
+ break;
104
+ }
105
+ }
106
+ if (match)
107
+ return { index: i, length: boundary.length };
91
108
  }
92
109
  }
93
110
  return null;
94
111
  }
95
- function parseMessage(chunk, parse) {
112
+ function parseMessage(chunk, parse, state, dataRequired) {
96
113
  const text = new TextDecoder().decode(chunk);
97
114
  const lines = text.split(/\r\n|\r|\n/);
98
115
  const dataLines = [];
@@ -103,24 +120,29 @@ function parseMessage(chunk, parse) {
103
120
  continue;
104
121
  ignore = false;
105
122
  const i = line.indexOf(":");
106
- const field = line.slice(0, i);
107
- const value = line[i + 1] === " " ? line.slice(i + 2) : line.slice(i + 1);
123
+ let field = line;
124
+ let value = "";
125
+ if (i > 0) {
126
+ field = line.slice(0, i);
127
+ value = line[i + 1] === " " ? line.slice(i + 2) : line.slice(i + 1);
128
+ }
108
129
  if (field === "data")
109
130
  dataLines.push(value);
110
131
  else if (field === "event")
111
132
  ret.event = value;
112
- else if (field === "id")
113
- ret.id = value;
114
- else if (field === "retry") {
115
- const n = Number(value);
116
- if (!isNaN(n))
117
- ret.retry = n;
133
+ else if (field === "id" && !value.includes("\0"))
134
+ state.eventId = value;
135
+ else if (field === "retry" && /^\d+$/.test(value)) {
136
+ ret.retry = Number(value);
118
137
  }
119
138
  }
120
139
  if (ignore)
121
140
  return;
141
+ ret.id = state.eventId;
122
142
  if (dataLines.length)
123
143
  ret.data = dataLines.join("\n");
144
+ else if (dataRequired)
145
+ return; // skip data-less events when data is required
124
146
  return parse(ret);
125
147
  }
126
148
  //# sourceMappingURL=event-streams.js.map
@@ -10,4 +10,17 @@ export declare function readableStreamToArrayBuffer(readable: ReadableStream<Uin
10
10
  * Returns null if the extension is not recognized.
11
11
  */
12
12
  export declare function getContentTypeFromFileName(fileName: string): string | null;
13
+ /**
14
+ * Creates a Blob from file content with the given MIME type.
15
+ *
16
+ * Node.js Buffers are Uint8Array subclasses that may share a pooled
17
+ * ArrayBuffer (byteOffset > 0, byteLength < buffer.byteLength). Passing
18
+ * such a Buffer directly to `new Blob([buf])` can include the entire
19
+ * underlying pool on some runtimes, producing a Blob with extra bytes
20
+ * that corrupts multipart uploads.
21
+ *
22
+ * Copying into a standalone Uint8Array ensures the Blob receives only the
23
+ * intended bytes regardless of runtime behaviour.
24
+ */
25
+ export declare function bytesToBlob(content: Uint8Array<ArrayBufferLike> | ArrayBuffer | Blob | string, contentType: string): Blob;
13
26
  //# sourceMappingURL=files.d.ts.map
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") {
@@ -2,15 +2,21 @@ import type { OpenRouterCore } from '../core.js';
2
2
  import type * as models from '../models/index.js';
3
3
  import type { CallModelInput } from './async-params.js';
4
4
  import type { RequestOptions } from './sdks.js';
5
- import type { ConversationState, ResponseStreamEvent, InferToolEventsUnion, InferToolOutputsUnion, ParsedToolCall, StateAccessor, StopWhen, Tool, ToolStreamEvent, TurnContext } from './tool-types.js';
5
+ import type { $ZodObject, $ZodShape } from 'zod/v4/core';
6
+ import type { ConversationState, ToolContextMapWithShared, ResponseStreamEvent, InferToolEventsUnion, InferToolOutputsUnion, ParsedToolCall, StateAccessor, StopWhen, Tool, ToolStreamEvent, TurnContext } from './tool-types.js';
7
+ import { type ContextInput } from './tool-context.js';
6
8
  import { type StreamableOutputItem } from './stream-transformers.js';
7
- export interface GetResponseOptions<TTools extends readonly Tool[]> {
8
- request: CallModelInput<TTools>;
9
+ export interface GetResponseOptions<TTools extends readonly Tool[], TShared extends Record<string, unknown> = Record<string, never>> {
10
+ request: CallModelInput<TTools, TShared>;
9
11
  client: OpenRouterCore;
10
12
  options?: RequestOptions;
11
13
  tools?: TTools;
12
14
  stopWhen?: StopWhen<TTools>;
13
15
  state?: StateAccessor<TTools>;
16
+ /** Typed context data passed to tools via contextSchema. `shared` key for shared context. */
17
+ context?: ContextInput<ToolContextMapWithShared<TTools, TShared>>;
18
+ /** Zod schema for shared context validation */
19
+ sharedContextSchema?: $ZodObject<$ZodShape>;
14
20
  /**
15
21
  * Call-level approval check - overrides tool-level requireApproval setting
16
22
  * Receives the tool call and turn context, can be sync or async
@@ -18,6 +24,10 @@ export interface GetResponseOptions<TTools extends readonly Tool[]> {
18
24
  requireApproval?: (toolCall: ParsedToolCall<TTools[number]>, context: TurnContext) => boolean | Promise<boolean>;
19
25
  approveToolCalls?: string[];
20
26
  rejectToolCalls?: string[];
27
+ /** Callback invoked at the start of each tool execution turn */
28
+ onTurnStart?: (context: TurnContext) => void | Promise<void>;
29
+ /** Callback invoked at the end of each tool execution turn */
30
+ onTurnEnd?: (context: TurnContext, response: models.OpenResponsesResult) => void | Promise<void>;
21
31
  }
22
32
  /**
23
33
  * A wrapper around a streaming response that provides multiple consumption patterns.
@@ -26,7 +36,7 @@ export interface GetResponseOptions<TTools extends readonly Tool[]> {
26
36
  * - `await result.getText()` - Get just the text
27
37
  * - `await result.getResponse()` - Get the full response object
28
38
  * - `for await (const delta of result.getTextStream())` - Stream text deltas
29
- * - `for await (const msg of result.getNewMessagesStream())` - Stream incremental message updates
39
+ * - `for await (const msg of result.getNewMessagesStream())` - Stream cumulative message snapshots
30
40
  * - `for await (const event of result.getFullResponsesStream())` - Stream all response events
31
41
  *
32
42
  * For message format conversion, use the helper functions:
@@ -37,8 +47,9 @@ export interface GetResponseOptions<TTools extends readonly Tool[]> {
37
47
  * ReusableReadableStream implementation.
38
48
  *
39
49
  * @template TTools - The tools array type to enable typed tool calls and results
50
+ * @template TShared - The shape of the shared context (inferred from sharedContextSchema)
40
51
  */
41
- export declare class ModelResult<TTools extends readonly Tool[]> {
52
+ export declare class ModelResult<TTools extends readonly Tool[], TShared extends Record<string, unknown> = Record<string, never>> {
42
53
  private reusableStream;
43
54
  private textPromise;
44
55
  private options;
@@ -54,13 +65,42 @@ export declare class ModelResult<TTools extends readonly Tool[]> {
54
65
  private approvedToolCalls;
55
66
  private rejectedToolCalls;
56
67
  private isResumingFromApproval;
57
- constructor(options: GetResponseOptions<TTools>);
68
+ private turnBroadcaster;
69
+ private initialStreamPipeStarted;
70
+ private initialPipePromise;
71
+ private contextStore;
72
+ constructor(options: GetResponseOptions<TTools, TShared>);
58
73
  /**
59
- * Get or create the tool event broadcaster (lazy initialization).
60
- * Ensures only one broadcaster exists for the lifetime of this ModelResult.
61
- * Broadcasts both preliminary results and final tool results.
74
+ * Get or create the unified turn broadcaster (lazy initialization).
75
+ * Broadcasts all API stream events, tool events, and turn delimiters across turns.
62
76
  */
63
- private ensureBroadcaster;
77
+ private ensureTurnBroadcaster;
78
+ /**
79
+ * Start piping the initial stream into the turn broadcaster.
80
+ * Idempotent — only starts once even if called multiple times.
81
+ * Wraps the initial stream events with turn.start(0) / turn.end(0) delimiters.
82
+ */
83
+ private startInitialStreamPipe;
84
+ /**
85
+ * Pipe a follow-up stream into the turn broadcaster and capture the completed response.
86
+ * Emits turn.start / turn.end delimiters around the stream events.
87
+ */
88
+ private pipeAndConsumeStream;
89
+ /**
90
+ * Push a tool result event to both the legacy tool event broadcaster
91
+ * and the unified turn broadcaster.
92
+ */
93
+ private broadcastToolResult;
94
+ /**
95
+ * Push a preliminary result event to both the legacy tool event broadcaster
96
+ * and the unified turn broadcaster.
97
+ */
98
+ private broadcastPreliminaryResult;
99
+ /**
100
+ * Set up the turn broadcaster with tool execution and return the consumer.
101
+ * Used by stream methods that need to iterate over all turns.
102
+ */
103
+ private startTurnBroadcasterExecution;
64
104
  /**
65
105
  * Type guard to check if a value is a non-streaming response
66
106
  * Only requires 'output' field and absence of 'toReadableStream' method
@@ -162,11 +202,7 @@ export declare class ModelResult<TTools extends readonly Tool[]> {
162
202
  private applyNextTurnParams;
163
203
  /**
164
204
  * Make a follow-up API request with tool results.
165
- * Continues the conversation after tool execution.
166
- *
167
- * @param currentResponse - The response that contained tool calls
168
- * @param toolResults - The results from executing those tools
169
- * @returns The new response from the API
205
+ * Uses streaming and pipes events through the turn broadcaster when available.
170
206
  */
171
207
  private makeFollowupRequest;
172
208
  /**
@@ -229,18 +265,19 @@ export declare class ModelResult<TTools extends readonly Tool[]> {
229
265
  /**
230
266
  * Get the complete response object including usage information.
231
267
  * This will consume the stream until completion and execute any tools.
232
- * Returns the full OpenResponsesNonStreamingResponse with usage data (inputTokens, outputTokens, cachedTokens, etc.)
268
+ * Returns the full OpenResponsesResult with usage data (inputTokens, outputTokens, cachedTokens, etc.)
233
269
  */
234
- getResponse(): Promise<models.OpenResponsesNonStreamingResponse>;
270
+ getResponse(): Promise<models.OpenResponsesResult>;
235
271
  /**
236
- * Stream all response events as they arrive.
272
+ * Stream all response events as they arrive across all turns.
237
273
  * Multiple consumers can iterate over this stream concurrently.
238
- * Preliminary tool results and tool results are streamed in REAL-TIME as generator tools yield.
274
+ * Includes API events, tool events, and turn.start/turn.end delimiters.
239
275
  */
240
276
  getFullResponsesStream(): AsyncIterableIterator<ResponseStreamEvent<InferToolEventsUnion<TTools>, InferToolOutputsUnion<TTools>>>;
241
277
  /**
242
- * Stream only text deltas as they arrive.
243
- * This filters the full event stream to only yield text content.
278
+ * Stream only text deltas as they arrive from all turns.
279
+ * This filters the full event stream to only yield text content,
280
+ * including text from follow-up responses in multi-turn tool loops.
244
281
  */
245
282
  getTextStream(): AsyncIterableIterator<string>;
246
283
  /**
@@ -263,20 +300,21 @@ export declare class ModelResult<TTools extends readonly Tool[]> {
263
300
  * while `getItemsStream()` streams all output item types (messages, function_calls,
264
301
  * reasoning, etc.) with cumulative updates.
265
302
  *
266
- * Stream incremental message updates as content is added in responses format.
303
+ * Stream cumulative message snapshots as content is added in responses format.
267
304
  * Each iteration yields an updated version of the message with new content.
268
- * Also yields function_call items and OpenResponsesFunctionCallOutput after tool execution completes.
269
- * Returns ResponsesOutputMessage, ResponsesOutputItemFunctionCall, or OpenResponsesFunctionCallOutput
305
+ * Also yields function_call items and FunctionCallOutputItem after tool execution completes.
306
+ * Returns OutputMessage, OutputFunctionCallItem, or FunctionCallOutputItem
270
307
  * compatible with OpenAI Responses API format.
271
308
  */
272
- getNewMessagesStream(): AsyncIterableIterator<models.ResponsesOutputMessage | models.OpenResponsesFunctionCallOutput | models.ResponsesOutputItemFunctionCall>;
309
+ getNewMessagesStream(): AsyncIterableIterator<models.OutputMessage | models.FunctionCallOutputItem | models.OutputFunctionCallItem>;
273
310
  /**
274
- * Stream only reasoning deltas as they arrive.
275
- * This filters the full event stream to only yield reasoning content.
311
+ * Stream only reasoning deltas as they arrive from all turns.
312
+ * This filters the full event stream to only yield reasoning content,
313
+ * including reasoning from follow-up responses in multi-turn tool loops.
276
314
  */
277
315
  getReasoningStream(): AsyncIterableIterator<string>;
278
316
  /**
279
- * Stream tool call argument deltas and preliminary results.
317
+ * Stream tool call argument deltas and preliminary results from all turns.
280
318
  * Preliminary results are streamed in REAL-TIME as generator tools yield.
281
319
  * - Tool call argument deltas as { type: "delta", content: string }
282
320
  * - Preliminary results as { type: "preliminary_result", toolCallId, result }
@@ -294,6 +332,19 @@ export declare class ModelResult<TTools extends readonly Tool[]> {
294
332
  * Each iteration yields a complete tool call with parsed arguments.
295
333
  */
296
334
  getToolCallsStream(): AsyncIterableIterator<ParsedToolCall<TTools[number]>>;
335
+ /**
336
+ * Returns an async iterable that emits a full context snapshot every time
337
+ * any tool calls ctx.update(). Can be consumed concurrently with getText(),
338
+ * getToolStream(), etc.
339
+ *
340
+ * @example
341
+ * ```typescript
342
+ * for await (const snapshot of result.getContextUpdates()) {
343
+ * console.log('Context changed:', snapshot);
344
+ * }
345
+ * ```
346
+ */
347
+ getContextUpdates(): AsyncGenerator<ToolContextMapWithShared<TTools, TShared>>;
297
348
  /**
298
349
  * Cancel the underlying stream and all consumers
299
350
  */