@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
@@ -0,0 +1,68 @@
1
+ import type { $ZodObject, $ZodShape } from 'zod/v4/core';
2
+ import type { ToolExecuteContext, TurnContext } from './tool-types.js';
3
+ /**
4
+ * Listener function called when context values change
5
+ * Receives a shallow copy of the full context store
6
+ */
7
+ type ContextChangeListener = (snapshot: Record<string, Record<string, unknown>>) => void;
8
+ /**
9
+ * Context input can be a static value, a sync function, or an async function
10
+ */
11
+ export type ContextInput<T extends Record<string, Record<string, unknown>>> = T | ((turn: TurnContext) => T) | ((turn: TurnContext) => Promise<T>);
12
+ /**
13
+ * Mutable context store shared across all tool executions within a callModel invocation.
14
+ * Stores context keyed by tool name: `{ get_weather: { apiKey: '...' }, db_query: { dbUrl: '...' } }`.
15
+ * Notifies listeners on changes.
16
+ */
17
+ export declare class ToolContextStore {
18
+ private store;
19
+ private listeners;
20
+ constructor(initialValues?: Record<string, Record<string, unknown>>);
21
+ /** Subscribe to context changes. Returns an unsubscribe function. */
22
+ subscribe(listener: ContextChangeListener): () => void;
23
+ /** Get a deep-shallow copy of the full context (all tools) */
24
+ getSnapshot(): Record<string, Record<string, unknown>>;
25
+ /** Get a shallow copy of context for a specific tool */
26
+ getToolContext(toolName: string): Record<string, unknown>;
27
+ /** Set context for a specific tool and notify listeners */
28
+ setToolContext(toolName: string, values: Record<string, unknown>): void;
29
+ /** Merge partial values into a specific tool's context and notify listeners */
30
+ mergeToolContext(toolName: string, partial: Record<string, unknown>): void;
31
+ private notifyListeners;
32
+ }
33
+ /**
34
+ * Build a flat ToolExecuteContext for a specific tool.
35
+ * Returns a merged object with TurnContext fields, a `local` getter
36
+ * (reads from the store on each access), `shared` getter, and mutation methods.
37
+ *
38
+ * The `local` and `shared` getters are live — calling `setContext()` or
39
+ * `setSharedContext()` and then reading the property reflects updated values immediately.
40
+ *
41
+ * @param turnContext - The current turn context
42
+ * @param store - The shared context store (keyed by tool name)
43
+ * @param toolName - The tool's name
44
+ * @param schema - The tool's contextSchema (for validation)
45
+ * @param sharedSchema - The shared contextSchema (for validation)
46
+ * @returns A flat ToolExecuteContext
47
+ */
48
+ export declare function buildToolExecuteContext<TName extends string, TContext extends Record<string, unknown>, TShared extends Record<string, unknown> = Record<string, unknown>>(turnContext: TurnContext, store: ToolContextStore | undefined, toolName: TName, schema: $ZodObject<$ZodShape> | undefined, sharedSchema?: $ZodObject<$ZodShape> | undefined): ToolExecuteContext<TName, TContext, TShared>;
49
+ /**
50
+ * Resolve a context input (static value, sync function, or async function) to a plain object.
51
+ *
52
+ * @param contextInput - The context value or function from callModel
53
+ * @param turnContext - The current turn context for function resolution
54
+ * @returns The resolved context object (keyed by tool name)
55
+ */
56
+ export declare function resolveContext<T extends Record<string, Record<string, unknown>>>(contextInput: ContextInput<T> | undefined, turnContext: TurnContext): Promise<T>;
57
+ /**
58
+ * Extract and validate context values for a specific tool from the context store.
59
+ * Returns a shallow copy so the caller cannot mutate the store directly.
60
+ *
61
+ * @param store - The shared context store (keyed by tool name)
62
+ * @param toolName - The tool's name
63
+ * @param schema - The tool's contextSchema
64
+ * @returns A shallow copy of the validated context values for this tool
65
+ */
66
+ export declare function extractToolContext(store: ToolContextStore, toolName: string, schema: $ZodObject<$ZodShape> | undefined): Record<string, unknown>;
67
+ export {};
68
+ //# sourceMappingURL=tool-context.d.ts.map
@@ -0,0 +1,175 @@
1
+ import * as z4 from 'zod/v4';
2
+ import { SHARED_CONTEXT_KEY } from './tool-types.js';
3
+ //#endregion
4
+ //#region ToolContextStore
5
+ /**
6
+ * Mutable context store shared across all tool executions within a callModel invocation.
7
+ * Stores context keyed by tool name: `{ get_weather: { apiKey: '...' }, db_query: { dbUrl: '...' } }`.
8
+ * Notifies listeners on changes.
9
+ */
10
+ export class ToolContextStore {
11
+ constructor(initialValues = {}) {
12
+ this.listeners = new Set();
13
+ this.store = {};
14
+ for (const [key, value] of Object.entries(initialValues)) {
15
+ this.store[key] = { ...value };
16
+ }
17
+ }
18
+ /** Subscribe to context changes. Returns an unsubscribe function. */
19
+ subscribe(listener) {
20
+ this.listeners.add(listener);
21
+ return () => {
22
+ this.listeners.delete(listener);
23
+ };
24
+ }
25
+ /** Get a deep-shallow copy of the full context (all tools) */
26
+ getSnapshot() {
27
+ const snapshot = {};
28
+ for (const [key, value] of Object.entries(this.store)) {
29
+ snapshot[key] = { ...value };
30
+ }
31
+ return snapshot;
32
+ }
33
+ /** Get a shallow copy of context for a specific tool */
34
+ getToolContext(toolName) {
35
+ const data = this.store[toolName];
36
+ if (!data) {
37
+ return {};
38
+ }
39
+ return { ...data };
40
+ }
41
+ /** Set context for a specific tool and notify listeners */
42
+ setToolContext(toolName, values) {
43
+ this.store[toolName] = { ...values };
44
+ this.notifyListeners();
45
+ }
46
+ /** Merge partial values into a specific tool's context and notify listeners */
47
+ mergeToolContext(toolName, partial) {
48
+ const existing = this.store[toolName] ?? {};
49
+ this.store[toolName] = { ...existing, ...partial };
50
+ this.notifyListeners();
51
+ }
52
+ notifyListeners() {
53
+ const snapshot = {};
54
+ for (const [key, value] of Object.entries(this.store)) {
55
+ snapshot[key] = { ...value };
56
+ }
57
+ for (const listener of this.listeners) {
58
+ listener(snapshot);
59
+ }
60
+ }
61
+ }
62
+ //#endregion
63
+ //#region buildToolExecuteContext
64
+ /**
65
+ * Validate a partial update against a schema's shape, filtering to known keys
66
+ * and validating each key individually. Returns the filtered partial.
67
+ */
68
+ function validatePartialAgainstSchema(partial, schema) {
69
+ const schemaKeys = Object.keys(schema._zod.def.shape);
70
+ const filteredPartial = {};
71
+ for (const [key, value] of Object.entries(partial)) {
72
+ if (schemaKeys.includes(key)) {
73
+ filteredPartial[key] = value;
74
+ }
75
+ }
76
+ const shape = schema._zod.def.shape;
77
+ for (const [key, value] of Object.entries(filteredPartial)) {
78
+ const keySchema = shape[key];
79
+ if (keySchema) {
80
+ z4.parse(keySchema, value);
81
+ }
82
+ }
83
+ return filteredPartial;
84
+ }
85
+ /**
86
+ * Build a flat ToolExecuteContext for a specific tool.
87
+ * Returns a merged object with TurnContext fields, a `local` getter
88
+ * (reads from the store on each access), `shared` getter, and mutation methods.
89
+ *
90
+ * The `local` and `shared` getters are live — calling `setContext()` or
91
+ * `setSharedContext()` and then reading the property reflects updated values immediately.
92
+ *
93
+ * @param turnContext - The current turn context
94
+ * @param store - The shared context store (keyed by tool name)
95
+ * @param toolName - The tool's name
96
+ * @param schema - The tool's contextSchema (for validation)
97
+ * @param sharedSchema - The shared contextSchema (for validation)
98
+ * @returns A flat ToolExecuteContext
99
+ */
100
+ export function buildToolExecuteContext(turnContext, store, toolName, schema, sharedSchema) {
101
+ // Validate initial context eagerly (throws on bad data)
102
+ if (store && schema) {
103
+ extractToolContext(store, toolName, schema);
104
+ }
105
+ if (store && sharedSchema) {
106
+ extractToolContext(store, SHARED_CONTEXT_KEY, sharedSchema);
107
+ }
108
+ const ctx = {
109
+ ...turnContext,
110
+ get local() {
111
+ const data = store ? store.getToolContext(toolName) : {};
112
+ return Object.freeze(data);
113
+ },
114
+ setContext(partial) {
115
+ if (!store || !schema) {
116
+ return;
117
+ }
118
+ const filteredPartial = validatePartialAgainstSchema(partial, schema);
119
+ store.mergeToolContext(toolName, filteredPartial);
120
+ },
121
+ get shared() {
122
+ const data = store ? store.getToolContext(SHARED_CONTEXT_KEY) : {};
123
+ return Object.freeze(data);
124
+ },
125
+ setSharedContext(partial) {
126
+ if (!store || !sharedSchema) {
127
+ return;
128
+ }
129
+ const filteredPartial = validatePartialAgainstSchema(partial, sharedSchema);
130
+ store.mergeToolContext(SHARED_CONTEXT_KEY, filteredPartial);
131
+ },
132
+ };
133
+ return ctx;
134
+ }
135
+ //#endregion
136
+ //#region resolveContext
137
+ /**
138
+ * Resolve a context input (static value, sync function, or async function) to a plain object.
139
+ *
140
+ * @param contextInput - The context value or function from callModel
141
+ * @param turnContext - The current turn context for function resolution
142
+ * @returns The resolved context object (keyed by tool name)
143
+ */
144
+ export async function resolveContext(contextInput, turnContext) {
145
+ if (contextInput === undefined) {
146
+ return {};
147
+ }
148
+ if (typeof contextInput === 'function') {
149
+ return Promise.resolve(contextInput(turnContext));
150
+ }
151
+ return contextInput;
152
+ }
153
+ //#endregion
154
+ //#region extractToolContext
155
+ /**
156
+ * Extract and validate context values for a specific tool from the context store.
157
+ * Returns a shallow copy so the caller cannot mutate the store directly.
158
+ *
159
+ * @param store - The shared context store (keyed by tool name)
160
+ * @param toolName - The tool's name
161
+ * @param schema - The tool's contextSchema
162
+ * @returns A shallow copy of the validated context values for this tool
163
+ */
164
+ export function extractToolContext(store, toolName, schema) {
165
+ if (!schema) {
166
+ return {};
167
+ }
168
+ const toolData = store.getToolContext(toolName);
169
+ // Validate the extracted values against the schema
170
+ z4.parse(schema, toolData);
171
+ // getToolContext already returns a shallow copy
172
+ return toolData;
173
+ }
174
+ //#endregion
175
+ //# sourceMappingURL=tool-context.js.map
@@ -1,6 +1,8 @@
1
1
  import type { $ZodType } from 'zod/v4/core';
2
- import type { APITool, Tool, ParsedToolCall, ToolExecutionResult, TurnContext } from './tool-types.js';
2
+ import type { $ZodObject, $ZodShape } from 'zod/v4/core';
3
+ import type { APITool, ParsedToolCall, Tool, ToolExecutionResult, TurnContext } from './tool-types.js';
3
4
  import * as z4 from 'zod/v4';
5
+ import { type ToolContextStore } from './tool-context.js';
4
6
  export declare const ZodError: z4.z.core.$constructor<z4.ZodError<unknown>, z4.z.core.$ZodIssue[]>;
5
7
  /**
6
8
  * Recursively remove keys prefixed with ~ from an object.
@@ -36,25 +38,27 @@ export declare function validateToolInput<T>(schema: $ZodType<T>, args: unknown)
36
38
  */
37
39
  export declare function validateToolOutput<T>(schema: $ZodType<T>, result: unknown): T;
38
40
  /**
39
- * Parse tool call arguments from JSON string
41
+ * Parse tool call arguments from JSON string.
42
+ * Treats empty/whitespace-only strings as an empty object — some providers
43
+ * return `arguments: ""` for tools that take no parameters.
40
44
  */
41
45
  export declare function parseToolCallArguments(argumentsString: string): unknown;
42
46
  /**
43
47
  * Execute a regular (non-generator) tool
44
48
  */
45
- export declare function executeRegularTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext): Promise<ToolExecutionResult<Tool>>;
49
+ export declare function executeRegularTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>): Promise<ToolExecutionResult<Tool>>;
46
50
  /**
47
51
  * Execute a generator tool and collect preliminary and final results
48
52
  * - Intermediate yields are validated against eventSchema (preliminary events)
49
53
  * - Last yield is validated against outputSchema (final result sent to model)
50
54
  * - Generator must emit at least one value
51
55
  */
52
- export declare function executeGeneratorTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, onPreliminaryResult?: (toolCallId: string, result: unknown) => void): Promise<ToolExecutionResult<Tool>>;
56
+ export declare function executeGeneratorTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, onPreliminaryResult?: (toolCallId: string, result: unknown) => void, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>): Promise<ToolExecutionResult<Tool>>;
53
57
  /**
54
58
  * Execute a tool call
55
59
  * Automatically detects if it's a regular or generator tool
56
60
  */
57
- export declare function executeTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, onPreliminaryResult?: (toolCallId: string, result: unknown) => void): Promise<ToolExecutionResult<Tool>>;
61
+ export declare function executeTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, onPreliminaryResult?: (toolCallId: string, result: unknown) => void, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>): Promise<ToolExecutionResult<Tool>>;
58
62
  /**
59
63
  * Find a tool by name in the tools array
60
64
  */
@@ -1,5 +1,6 @@
1
1
  import * as z4 from 'zod/v4';
2
2
  import { hasExecuteFunction, isGeneratorTool, isRegularExecuteTool } from './tool-types.js';
3
+ import { buildToolExecuteContext } from './tool-context.js';
3
4
  // Re-export ZodError for convenience
4
5
  export const ZodError = z4.ZodError;
5
6
  /**
@@ -96,30 +97,40 @@ function tryValidate(schema, value) {
96
97
  return result.success;
97
98
  }
98
99
  /**
99
- * Parse tool call arguments from JSON string
100
+ * Parse tool call arguments from JSON string.
101
+ * Treats empty/whitespace-only strings as an empty object — some providers
102
+ * return `arguments: ""` for tools that take no parameters.
100
103
  */
101
104
  export function parseToolCallArguments(argumentsString) {
105
+ const trimmed = argumentsString.trim();
106
+ if (!trimmed) {
107
+ return {};
108
+ }
102
109
  try {
103
- return JSON.parse(argumentsString);
110
+ return JSON.parse(trimmed);
104
111
  }
105
112
  catch (error) {
106
113
  throw new Error(`Failed to parse tool call arguments: ${error instanceof Error ? error.message : String(error)}`);
107
114
  }
108
115
  }
116
+ /**
117
+ * Build a ToolExecuteContext for a tool from a TurnContext and optional context store
118
+ */
119
+ function buildExecuteCtx(tool, turnContext, contextStore, sharedSchema) {
120
+ return buildToolExecuteContext(turnContext, contextStore, tool.function.name, tool.function.contextSchema, sharedSchema);
121
+ }
109
122
  /**
110
123
  * Execute a regular (non-generator) tool
111
124
  */
112
- export async function executeRegularTool(tool, toolCall, context) {
125
+ export async function executeRegularTool(tool, toolCall, context, contextStore, sharedSchema) {
113
126
  if (!isRegularExecuteTool(tool)) {
114
127
  throw new Error(`Tool "${toolCall.name}" is not a regular execute tool or has no execute function`);
115
128
  }
116
129
  try {
117
- // Validate input - the schema validation ensures type safety at runtime
118
- // validateToolInput returns z.infer<typeof tool.function.inputSchema>
119
- // which is exactly the type expected by execute
120
130
  const validatedInput = validateToolInput(tool.function.inputSchema, toolCall.arguments);
131
+ const executeContext = buildExecuteCtx(tool, context, contextStore, sharedSchema);
121
132
  // Execute tool with context
122
- const result = await Promise.resolve(tool.function.execute(validatedInput, context));
133
+ const result = await Promise.resolve(tool.function.execute(validatedInput, executeContext));
123
134
  // Validate output if schema is provided
124
135
  if (tool.function.outputSchema) {
125
136
  const validatedOutput = validateToolOutput(tool.function.outputSchema, result);
@@ -150,20 +161,19 @@ export async function executeRegularTool(tool, toolCall, context) {
150
161
  * - Last yield is validated against outputSchema (final result sent to model)
151
162
  * - Generator must emit at least one value
152
163
  */
153
- export async function executeGeneratorTool(tool, toolCall, context, onPreliminaryResult) {
164
+ export async function executeGeneratorTool(tool, toolCall, context, onPreliminaryResult, contextStore, sharedSchema) {
154
165
  if (!isGeneratorTool(tool)) {
155
166
  throw new Error(`Tool "${toolCall.name}" is not a generator tool`);
156
167
  }
157
168
  try {
158
- // Validate input - the schema validation ensures type safety at runtime
159
- // The inputSchema's inferred type matches the execute function's parameter type by construction
160
169
  const validatedInput = validateToolInput(tool.function.inputSchema, toolCall.arguments);
170
+ const executeContext = buildExecuteCtx(tool, context, contextStore, sharedSchema);
161
171
  const preliminaryResults = [];
162
- let finalResult = undefined;
172
+ let finalResult;
163
173
  let hasFinalResult = false;
164
- let lastEmittedValue = undefined;
174
+ let lastEmittedValue;
165
175
  let hasEmittedValue = false;
166
- const iterator = tool.function.execute(validatedInput, context);
176
+ const iterator = tool.function.execute(validatedInput, executeContext);
167
177
  let iterResult = await iterator.next();
168
178
  while (!iterResult.done) {
169
179
  const event = iterResult.value;
@@ -214,14 +224,14 @@ export async function executeGeneratorTool(tool, toolCall, context, onPreliminar
214
224
  * Execute a tool call
215
225
  * Automatically detects if it's a regular or generator tool
216
226
  */
217
- export async function executeTool(tool, toolCall, context, onPreliminaryResult) {
227
+ export async function executeTool(tool, toolCall, context, onPreliminaryResult, contextStore, sharedSchema) {
218
228
  if (!hasExecuteFunction(tool)) {
219
229
  throw new Error(`Tool "${toolCall.name}" has no execute function. Use manual tool execution.`);
220
230
  }
221
231
  if (isGeneratorTool(tool)) {
222
- return executeGeneratorTool(tool, toolCall, context, onPreliminaryResult);
232
+ return executeGeneratorTool(tool, toolCall, context, onPreliminaryResult, contextStore, sharedSchema);
223
233
  }
224
- return executeRegularTool(tool, toolCall, context);
234
+ return executeRegularTool(tool, toolCall, context, contextStore, sharedSchema);
225
235
  }
226
236
  /**
227
237
  * Find a tool by name in the tools array
@@ -10,10 +10,10 @@ export interface ToolExecutionOptions {
10
10
  * Result of the tool execution loop
11
11
  */
12
12
  export interface ToolOrchestrationResult {
13
- finalResponse: models.OpenResponsesNonStreamingResponse;
14
- allResponses: models.OpenResponsesNonStreamingResponse[];
13
+ finalResponse: models.OpenResponsesResult;
14
+ allResponses: models.OpenResponsesResult[];
15
15
  toolExecutionResults: ToolExecutionResult<Tool>[];
16
- conversationInput: models.OpenResponsesInput;
16
+ conversationInput: models.InputsUnion;
17
17
  }
18
18
  /**
19
19
  * Execute tool calls and manage multi-turn conversations
@@ -27,7 +27,7 @@ export interface ToolOrchestrationResult {
27
27
  * @param options - Execution options
28
28
  * @returns Result containing final response and all execution data
29
29
  */
30
- export declare function executeToolLoop(sendRequest: (input: models.OpenResponsesInput, tools: APITool[]) => Promise<models.OpenResponsesNonStreamingResponse>, initialInput: models.OpenResponsesInput, initialRequest: models.OpenResponsesRequest, tools: Tool[], apiTools: APITool[], options?: ToolExecutionOptions): Promise<ToolOrchestrationResult>;
30
+ export declare function executeToolLoop(sendRequest: (input: models.InputsUnion, tools: APITool[]) => Promise<models.OpenResponsesResult>, initialInput: models.InputsUnion, initialRequest: models.ResponsesRequest, tools: Tool[], apiTools: APITool[], options?: ToolExecutionOptions): Promise<ToolOrchestrationResult>;
31
31
  /**
32
32
  * Convert tool execution results to a map for easy lookup
33
33
  */
@@ -65,7 +65,7 @@ export async function executeToolLoop(sendRequest, initialInput, initialRequest,
65
65
  if (!rawToolCall) {
66
66
  throw new Error(`Could not find raw tool call for ${toolCall.id}`);
67
67
  }
68
- // Convert to OpenResponsesFunctionToolCall format
68
+ // Convert to FunctionCallItem format
69
69
  const openResponsesToolCall = {
70
70
  type: 'function_call',
71
71
  callId: rawToolCall.callId,