@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.
- package/FUNCTIONS.md +3 -2
- package/_speakeasy/.github/action-inputs-config.json +4 -0
- package/esm/funcs/analyticsGetUserActivity.js +2 -1
- package/esm/funcs/apiKeysCreate.js +2 -1
- package/esm/funcs/apiKeysDelete.js +2 -1
- package/esm/funcs/apiKeysGet.js +2 -1
- package/esm/funcs/apiKeysGetCurrentKeyMetadata.js +2 -1
- package/esm/funcs/apiKeysList.js +2 -1
- package/esm/funcs/apiKeysUpdate.js +2 -1
- package/esm/funcs/betaResponsesSend.d.ts +4 -4
- package/esm/funcs/betaResponsesSend.js +4 -5
- package/esm/funcs/call-model.d.ts +20 -71
- package/esm/funcs/call-model.js +30 -72
- package/esm/funcs/chatSend.d.ts +4 -4
- package/esm/funcs/chatSend.js +4 -5
- package/esm/funcs/creditsCreateCoinbaseCharge.js +2 -1
- package/esm/funcs/creditsGetCredits.js +2 -1
- package/esm/funcs/embeddingsGenerate.js +2 -1
- package/esm/funcs/embeddingsListModels.js +2 -1
- package/esm/funcs/endpointsList.js +2 -1
- package/esm/funcs/endpointsListZdrEndpoints.js +2 -1
- package/esm/funcs/generationsGetGeneration.js +2 -1
- package/esm/funcs/guardrailsBulkAssignKeys.js +2 -1
- package/esm/funcs/guardrailsBulkAssignMembers.js +2 -1
- package/esm/funcs/guardrailsBulkUnassignKeys.js +2 -1
- package/esm/funcs/guardrailsBulkUnassignMembers.js +2 -1
- package/esm/funcs/guardrailsCreate.js +2 -1
- package/esm/funcs/guardrailsDelete.js +2 -1
- package/esm/funcs/guardrailsGet.js +2 -1
- package/esm/funcs/guardrailsList.js +2 -1
- package/esm/funcs/guardrailsListGuardrailKeyAssignments.js +2 -1
- package/esm/funcs/guardrailsListGuardrailMemberAssignments.js +2 -1
- package/esm/funcs/guardrailsListKeyAssignments.js +2 -1
- package/esm/funcs/guardrailsListMemberAssignments.js +2 -1
- package/esm/funcs/guardrailsUpdate.js +2 -1
- package/esm/funcs/modelsCount.d.ts +1 -1
- package/esm/funcs/modelsCount.js +9 -4
- package/esm/funcs/modelsList.js +3 -1
- package/esm/funcs/modelsListForUser.js +2 -1
- package/esm/funcs/oAuthCreateAuthCode.d.ts +1 -1
- package/esm/funcs/oAuthCreateAuthCode.js +4 -3
- package/esm/funcs/oAuthExchangeAuthCodeForAPIKey.js +2 -1
- package/esm/funcs/providersList.js +2 -1
- package/esm/index.d.ts +5 -23
- package/esm/index.js +5 -25
- package/esm/lib/anthropic-compat.d.ts +3 -2
- package/esm/lib/anthropic-compat.js +10 -11
- package/esm/lib/anthropic-compat.test.js +2 -1
- package/esm/lib/async-params.d.ts +21 -7
- package/esm/lib/async-params.js +5 -1
- package/esm/lib/chat-compat.d.ts +2 -2
- package/esm/lib/chat-compat.js +9 -10
- package/esm/lib/chat-compat.test.js +3 -2
- package/esm/lib/claude-type-guards.d.ts +2 -2
- package/esm/lib/config.d.ts +9 -11
- package/esm/lib/config.js +3 -3
- package/esm/lib/conversation-state.d.ts +4 -4
- package/esm/lib/conversation-state.js +35 -32
- package/esm/lib/encodings.js +20 -5
- package/esm/lib/env.d.ts +6 -2
- package/esm/lib/env.js +7 -3
- package/esm/lib/event-streams.d.ts +11 -4
- package/esm/lib/event-streams.js +44 -22
- package/esm/lib/files.d.ts +13 -0
- package/esm/lib/files.js +18 -0
- package/esm/lib/matchers.js +0 -1
- package/esm/lib/model-result.d.ts +79 -28
- package/esm/lib/model-result.js +386 -167
- package/esm/lib/next-turn-params.d.ts +4 -4
- package/esm/lib/next-turn-params.js +1 -1
- package/esm/lib/sdks.d.ts +1 -1
- package/esm/lib/sdks.js +18 -34
- package/esm/lib/security.d.ts +1 -1
- package/esm/lib/security.js +20 -10
- package/esm/lib/stream-transformers.d.ts +45 -21
- package/esm/lib/stream-transformers.js +33 -38
- package/esm/lib/stream-type-guards.d.ts +15 -15
- package/esm/lib/stream-type-guards.js +8 -32
- package/esm/lib/tool-context.d.ts +68 -0
- package/esm/lib/tool-context.js +175 -0
- package/esm/lib/tool-executor.d.ts +9 -5
- package/esm/lib/tool-executor.js +26 -16
- package/esm/lib/tool-orchestrator.d.ts +4 -4
- package/esm/lib/tool-orchestrator.js +1 -1
- package/esm/lib/tool-types.d.ts +123 -22
- package/esm/lib/tool-types.js +23 -0
- package/esm/lib/tool.d.ts +49 -60
- package/esm/lib/tool.js +15 -19
- package/esm/lib/turn-context.d.ts +3 -3
- package/esm/lib/turn-context.js +1 -1
- package/esm/lib/url.js +4 -2
- package/esm/models/annotationaddedevent.d.ts +20 -0
- package/esm/models/annotationaddedevent.js +30 -0
- package/esm/models/applypatchservertool.d.ts +20 -0
- package/esm/models/applypatchservertool.js +21 -0
- package/esm/models/baseinputsunion.d.ts +185 -0
- package/esm/models/baseinputsunion.js +274 -0
- package/esm/models/basereasoningconfig.d.ts +13 -0
- package/esm/models/basereasoningconfig.js +17 -0
- package/esm/models/chatassistantimages.d.ts +33 -0
- package/esm/models/chatassistantimages.js +44 -0
- package/esm/models/chatassistantmessage.d.ts +86 -0
- package/esm/models/chatassistantmessage.js +70 -0
- package/esm/models/chataudiooutput.d.ts +38 -0
- package/esm/models/chataudiooutput.js +36 -0
- package/esm/models/chatchoice.d.ts +27 -0
- package/esm/models/chatchoice.js +25 -0
- package/esm/models/chatcontentaudio.d.ts +52 -0
- package/esm/models/chatcontentaudio.js +55 -0
- package/esm/models/chatcontentcachecontrol.d.ts +40 -0
- package/esm/models/chatcontentcachecontrol.js +39 -0
- package/esm/models/chatcontentfile.d.ts +57 -0
- package/esm/models/chatcontentfile.js +59 -0
- package/esm/models/chatcontentimage.d.ts +68 -0
- package/esm/models/chatcontentimage.js +68 -0
- package/esm/models/chatcontentitems.d.ts +31 -0
- package/esm/models/chatcontentitems.js +57 -0
- package/esm/models/chatcontenttext.d.ts +37 -0
- package/esm/models/chatcontenttext.js +42 -0
- package/esm/models/chatcontentvideo.d.ts +26 -0
- package/esm/models/chatcontentvideo.js +33 -0
- package/esm/models/chatcontentvideoinput.d.ts +23 -0
- package/esm/models/chatcontentvideoinput.js +21 -0
- package/esm/models/{debugoptions.d.ts → chatdebugoptions.d.ts} +5 -5
- package/esm/models/{debugoptions.js → chatdebugoptions.js} +5 -5
- package/esm/models/chatdevelopermessage.d.ts +35 -0
- package/esm/models/chatdevelopermessage.js +21 -0
- package/esm/models/chatfinishreasonenum.d.ts +13 -0
- package/esm/models/{chatcompletionfinishreason.js → chatfinishreasonenum.js} +4 -4
- package/esm/models/chatformatgrammarconfig.d.ts +20 -0
- package/esm/models/chatformatgrammarconfig.js +14 -0
- package/esm/models/chatformatjsonschemaconfig.d.ts +21 -0
- package/esm/models/chatformatjsonschemaconfig.js +20 -0
- package/esm/models/chatformatpythonconfig.d.ts +15 -0
- package/esm/models/chatformatpythonconfig.js +13 -0
- package/esm/models/chatformattextconfig.d.ts +15 -0
- package/esm/models/chatformattextconfig.js +13 -0
- package/esm/models/chatfunctiontool.d.ts +77 -0
- package/esm/models/chatfunctiontool.js +49 -0
- package/esm/models/{jsonschemaconfig.d.ts → chatjsonschemaconfig.d.ts} +5 -5
- package/esm/models/{jsonschemaconfig.js → chatjsonschemaconfig.js} +5 -5
- package/esm/models/chatmessages.d.ts +20 -0
- package/esm/models/chatmessages.js +22 -0
- package/esm/models/chatnamedtoolchoice.d.ts +37 -0
- package/esm/models/chatnamedtoolchoice.js +26 -0
- package/esm/models/chatreasoningsummaryverbosityenum.d.ts +11 -0
- package/esm/models/chatreasoningsummaryverbosityenum.js +13 -0
- package/esm/models/{chatgenerationparams.d.ts → chatrequest.d.ts} +213 -120
- package/esm/models/chatrequest.js +426 -0
- package/esm/models/chatresult.d.ts +50 -0
- package/esm/models/chatresult.js +35 -0
- package/esm/models/chatstreamchoice.d.ts +27 -0
- package/esm/models/chatstreamchoice.js +24 -0
- package/esm/models/{chatstreamingresponsechunk.d.ts → chatstreamchunk.d.ts} +17 -13
- package/esm/models/chatstreamchunk.js +43 -0
- package/esm/models/{chatstreamingmessagechunk.d.ts → chatstreamdelta.d.ts} +12 -10
- package/esm/models/chatstreamdelta.js +37 -0
- package/esm/models/chatstreamtoolcall.d.ts +57 -0
- package/esm/models/chatstreamtoolcall.js +33 -0
- package/esm/models/chatsystemmessage.d.ts +35 -0
- package/esm/models/chatsystemmessage.js +21 -0
- package/esm/models/chattokenlogprob.d.ts +36 -0
- package/esm/models/chattokenlogprob.js +31 -0
- package/esm/models/chattokenlogprobs.d.ts +21 -0
- package/esm/models/chattokenlogprobs.js +16 -0
- package/esm/models/chattoolcall.d.ts +57 -0
- package/esm/models/chattoolcall.js +49 -0
- package/esm/models/chattoolchoice.d.ts +31 -0
- package/esm/models/chattoolchoice.js +32 -0
- package/esm/models/chattoolmessage.d.ts +35 -0
- package/esm/models/chattoolmessage.js +26 -0
- package/esm/models/{chatgenerationtokenusage.d.ts → chatusage.d.ts} +4 -4
- package/esm/models/{chatgenerationtokenusage.js → chatusage.js} +5 -5
- package/esm/models/chatusermessage.d.ts +35 -0
- package/esm/models/chatusermessage.js +21 -0
- package/esm/models/chatwebsearchservertool.d.ts +124 -0
- package/esm/models/chatwebsearchservertool.js +84 -0
- package/esm/models/chatwebsearchshorthand.d.ts +219 -0
- package/esm/models/chatwebsearchshorthand.js +141 -0
- package/esm/models/codeinterpreterservertool.d.ts +68 -0
- package/esm/models/codeinterpreterservertool.js +85 -0
- package/esm/models/codexlocalshelltool.d.ts +20 -0
- package/esm/models/codexlocalshelltool.js +21 -0
- package/esm/models/compoundfilter.d.ts +36 -0
- package/esm/models/compoundfilter.js +32 -0
- package/esm/models/computeruseservertool.d.ts +39 -0
- package/esm/models/computeruseservertool.js +50 -0
- package/esm/models/conflictresponseerrordata.d.ts +17 -0
- package/esm/models/conflictresponseerrordata.js +16 -0
- package/esm/models/contentpartaddedevent.d.ts +29 -0
- package/esm/models/contentpartaddedevent.js +43 -0
- package/esm/models/contentpartdoneevent.d.ts +29 -0
- package/esm/models/contentpartdoneevent.js +43 -0
- package/esm/models/contextcompressionengine.d.ts +15 -0
- package/esm/models/contextcompressionengine.js +14 -0
- package/esm/models/customtool.d.ts +75 -0
- package/esm/models/customtool.js +96 -0
- package/esm/models/datetimeservertool.d.ts +37 -0
- package/esm/models/datetimeservertool.js +27 -0
- package/esm/models/defaultparameters.d.ts +3 -0
- package/esm/models/defaultparameters.js +6 -0
- package/esm/models/easyinputmessage.d.ts +120 -0
- package/esm/models/easyinputmessage.js +141 -0
- package/esm/models/{openresponseserrorevent.d.ts → errorevent.d.ts} +4 -4
- package/esm/models/{openresponseserrorevent.js → errorevent.js} +6 -5
- package/esm/models/errors/conflictresponseerror.d.ts +33 -0
- package/esm/models/errors/conflictresponseerror.js +42 -0
- package/esm/models/errors/index.d.ts +1 -0
- package/esm/models/errors/index.js +1 -0
- package/esm/models/filesearchservertool.d.ts +111 -0
- package/esm/models/filesearchservertool.js +180 -0
- package/esm/models/formatjsonobjectconfig.d.ts +20 -0
- package/esm/models/formatjsonobjectconfig.js +21 -0
- package/esm/models/formatjsonschemaconfig.d.ts +32 -0
- package/esm/models/formatjsonschemaconfig.js +29 -0
- package/esm/models/formats.d.ts +19 -0
- package/esm/models/formats.js +29 -0
- package/esm/models/formattextconfig.d.ts +20 -0
- package/esm/models/formattextconfig.js +21 -0
- package/esm/models/functioncallargsdeltaevent.d.ts +17 -0
- package/esm/models/functioncallargsdeltaevent.js +25 -0
- package/esm/models/functioncallargsdoneevent.d.ts +18 -0
- package/esm/models/functioncallargsdoneevent.js +26 -0
- package/esm/models/functioncallitem.d.ts +33 -0
- package/esm/models/functioncallitem.js +29 -0
- package/esm/models/functioncalloutputitem.d.ts +70 -0
- package/esm/models/functioncalloutputitem.js +79 -0
- package/esm/models/imagegencallcompletedevent.d.ts +16 -0
- package/esm/models/{openresponsesimagegencallcompleted.js → imagegencallcompletedevent.js} +5 -5
- package/esm/models/imagegencallgeneratingevent.d.ts +16 -0
- package/esm/models/{openresponsesimagegencallgenerating.js → imagegencallgeneratingevent.js} +5 -5
- package/esm/models/imagegencallinprogressevent.d.ts +16 -0
- package/esm/models/{openresponsesimagegencallinprogress.js → imagegencallinprogressevent.js} +5 -5
- package/esm/models/{openresponsesimagegencallpartialimage.d.ts → imagegencallpartialimageevent.d.ts} +4 -4
- package/esm/models/{openresponsesimagegencallpartialimage.js → imagegencallpartialimageevent.js} +5 -5
- package/esm/models/imagegenerationservertool.d.ts +125 -0
- package/esm/models/imagegenerationservertool.js +153 -0
- package/esm/models/{openairesponsesincompletedetails.d.ts → incompletedetails.d.ts} +4 -4
- package/esm/models/{openairesponsesincompletedetails.js → incompletedetails.js} +5 -5
- package/esm/models/index.d.ts +126 -95
- package/esm/models/index.js +126 -95
- package/esm/models/inputaudio.d.ts +47 -0
- package/esm/models/inputaudio.js +58 -0
- package/esm/models/{responseinputfile.d.ts → inputfile.d.ts} +7 -7
- package/esm/models/{responseinputfile.js → inputfile.js} +8 -8
- package/esm/models/inputimage.d.ts +43 -0
- package/esm/models/inputimage.js +52 -0
- package/esm/models/inputmessageitem.d.ts +84 -0
- package/esm/models/inputmessageitem.js +92 -0
- package/esm/models/inputsunion.d.ts +208 -0
- package/esm/models/inputsunion.js +228 -0
- package/esm/models/inputtext.d.ts +22 -0
- package/esm/models/inputtext.js +23 -0
- package/esm/models/inputvideo.d.ts +20 -0
- package/esm/models/{responseinputvideo.js → inputvideo.js} +5 -5
- package/esm/models/legacychatcontentvideo.d.ts +28 -0
- package/esm/models/legacychatcontentvideo.js +33 -0
- package/esm/models/legacywebsearchservertool.d.ts +78 -0
- package/esm/models/legacywebsearchservertool.js +87 -0
- package/esm/models/mcpservertool.d.ts +128 -0
- package/esm/models/mcpservertool.js +174 -0
- package/esm/models/model.d.ts +4 -0
- package/esm/models/model.js +2 -0
- package/esm/models/openairesponsestruncation.d.ts +1 -1
- package/esm/models/openairesponsestruncation.js +1 -1
- package/esm/models/openresponsesresult.d.ts +110 -0
- package/esm/models/openresponsesresult.js +142 -0
- package/esm/models/operations/bulkassignkeystoguardrail.d.ts +16 -3
- package/esm/models/operations/bulkassignkeystoguardrail.js +2 -2
- package/esm/models/operations/bulkassignmemberstoguardrail.d.ts +16 -3
- package/esm/models/operations/bulkassignmemberstoguardrail.js +2 -2
- package/esm/models/operations/bulkunassignkeysfromguardrail.d.ts +16 -3
- package/esm/models/operations/bulkunassignkeysfromguardrail.js +2 -2
- package/esm/models/operations/bulkunassignmembersfromguardrail.d.ts +16 -3
- package/esm/models/operations/bulkunassignmembersfromguardrail.js +2 -2
- package/esm/models/operations/createauthkeyscode.d.ts +16 -3
- package/esm/models/operations/createauthkeyscode.js +2 -2
- package/esm/models/operations/createcoinbasecharge.d.ts +16 -3
- package/esm/models/operations/createcoinbasecharge.js +2 -2
- package/esm/models/operations/createembeddings.d.ts +16 -3
- package/esm/models/operations/createembeddings.js +2 -2
- package/esm/models/operations/createguardrail.d.ts +25 -3
- package/esm/models/operations/createguardrail.js +6 -2
- package/esm/models/operations/createkeys.d.ts +20 -3
- package/esm/models/operations/createkeys.js +4 -2
- package/esm/models/operations/createresponses.d.ts +20 -7
- package/esm/models/operations/createresponses.js +8 -7
- package/esm/models/operations/deleteguardrail.d.ts +16 -3
- package/esm/models/operations/deleteguardrail.js +2 -2
- package/esm/models/operations/deletekeys.d.ts +16 -3
- package/esm/models/operations/deletekeys.js +2 -2
- package/esm/models/operations/exchangeauthcodeforapikey.d.ts +16 -3
- package/esm/models/operations/exchangeauthcodeforapikey.js +2 -2
- package/esm/models/operations/getcredits.d.ts +16 -3
- package/esm/models/operations/getcredits.js +2 -2
- package/esm/models/operations/getcurrentkey.d.ts +20 -3
- package/esm/models/operations/getcurrentkey.js +4 -2
- package/esm/models/operations/getgeneration.d.ts +27 -3
- package/esm/models/operations/getgeneration.js +9 -2
- package/esm/models/operations/getguardrail.d.ts +20 -3
- package/esm/models/operations/getguardrail.js +4 -2
- package/esm/models/operations/getkey.d.ts +20 -3
- package/esm/models/operations/getkey.js +4 -2
- package/esm/models/operations/getmodels.d.ts +21 -3
- package/esm/models/operations/getmodels.js +4 -2
- package/esm/models/operations/getuseractivity.d.ts +16 -3
- package/esm/models/operations/getuseractivity.js +2 -2
- package/esm/models/operations/list.d.ts +20 -3
- package/esm/models/operations/list.js +4 -2
- package/esm/models/operations/listembeddingsmodels.d.ts +16 -3
- package/esm/models/operations/listembeddingsmodels.js +2 -2
- package/esm/models/operations/listendpoints.d.ts +16 -3
- package/esm/models/operations/listendpoints.js +2 -2
- package/esm/models/operations/listendpointszdr.d.ts +16 -3
- package/esm/models/operations/listendpointszdr.js +2 -2
- package/esm/models/operations/listguardrailkeyassignments.d.ts +16 -3
- package/esm/models/operations/listguardrailkeyassignments.js +2 -2
- package/esm/models/operations/listguardrailmemberassignments.d.ts +16 -3
- package/esm/models/operations/listguardrailmemberassignments.js +2 -2
- package/esm/models/operations/listguardrails.d.ts +20 -3
- package/esm/models/operations/listguardrails.js +4 -2
- package/esm/models/operations/listkeyassignments.d.ts +16 -3
- package/esm/models/operations/listkeyassignments.js +2 -2
- package/esm/models/operations/listmemberassignments.d.ts +16 -3
- package/esm/models/operations/listmemberassignments.js +2 -2
- package/esm/models/operations/listmodelscount.d.ts +21 -3
- package/esm/models/operations/listmodelscount.js +4 -2
- package/esm/models/operations/listmodelsuser.d.ts +16 -3
- package/esm/models/operations/listmodelsuser.js +2 -2
- package/esm/models/operations/listproviders.d.ts +539 -3
- package/esm/models/operations/listproviders.js +514 -2
- package/esm/models/operations/sendchatcompletionrequest.d.ts +20 -7
- package/esm/models/operations/sendchatcompletionrequest.js +8 -7
- package/esm/models/operations/updateguardrail.d.ts +25 -3
- package/esm/models/operations/updateguardrail.js +6 -2
- package/esm/models/operations/updatekeys.d.ts +20 -3
- package/esm/models/operations/updatekeys.js +4 -2
- package/esm/models/outputdatetimeitem.d.ts +44 -0
- package/esm/models/outputdatetimeitem.js +30 -0
- package/esm/models/outputfilesearchcallitem.d.ts +33 -0
- package/esm/models/outputfilesearchcallitem.js +35 -0
- package/esm/models/outputfunctioncallitem.d.ts +69 -0
- package/esm/models/outputfunctioncallitem.js +94 -0
- package/esm/models/outputimagegenerationcallitem.d.ts +33 -0
- package/esm/models/outputimagegenerationcallitem.js +35 -0
- package/esm/models/outputitems.d.ts +18 -0
- package/esm/models/outputitems.js +28 -0
- package/esm/models/outputmessage.d.ts +23 -0
- package/esm/models/outputmessage.js +24 -0
- package/esm/models/outputmessageitem.d.ts +81 -0
- package/esm/models/outputmessageitem.js +93 -0
- package/esm/models/outputmodality.d.ts +1 -0
- package/esm/models/outputmodality.js +1 -0
- package/esm/models/outputmodalityenum.d.ts +10 -0
- package/esm/models/outputmodalityenum.js +12 -0
- package/esm/models/outputreasoningitem.d.ts +74 -0
- package/esm/models/outputreasoningitem.js +75 -0
- package/esm/models/outputservertoolitem.d.ts +42 -0
- package/esm/models/outputservertoolitem.js +44 -0
- package/esm/models/outputwebsearchcallitem.d.ts +116 -0
- package/esm/models/outputwebsearchcallitem.js +141 -0
- package/esm/models/pdfparserengine.d.ts +18 -9
- package/esm/models/pdfparserengine.js +17 -6
- package/esm/models/pdfparseroptions.d.ts +3 -3
- package/esm/models/preview20250311websearchservertool.d.ts +75 -0
- package/esm/models/preview20250311websearchservertool.js +89 -0
- package/esm/models/previewwebsearchservertool.d.ts +75 -0
- package/esm/models/previewwebsearchservertool.js +89 -0
- package/esm/models/previewwebsearchuserlocation.d.ts +34 -0
- package/esm/models/previewwebsearchuserlocation.js +36 -0
- package/esm/models/providername.d.ts +2 -0
- package/esm/models/providername.js +2 -0
- package/esm/models/providerpreferences.d.ts +7 -0
- package/esm/models/providerpreferences.js +4 -0
- package/esm/models/providersort.d.ts +1 -0
- package/esm/models/providersort.js +1 -0
- package/esm/models/providersortconfig.d.ts +1 -0
- package/esm/models/providersortconfig.js +1 -0
- package/esm/models/reasoningconfig.d.ts +23 -0
- package/esm/models/reasoningconfig.js +23 -0
- package/esm/models/{openresponsesreasoningdeltaevent.d.ts → reasoningdeltaevent.d.ts} +4 -4
- package/esm/models/{openresponsesreasoningdeltaevent.js → reasoningdeltaevent.js} +5 -5
- package/esm/models/{openresponsesreasoningdoneevent.d.ts → reasoningdoneevent.d.ts} +4 -4
- package/esm/models/{openresponsesreasoningdoneevent.js → reasoningdoneevent.js} +5 -5
- package/esm/models/reasoningeffortenum.d.ts +16 -0
- package/esm/models/reasoningeffortenum.js +18 -0
- package/esm/models/reasoningitem.d.ts +73 -0
- package/esm/models/reasoningitem.js +71 -0
- package/esm/models/{openresponsesreasoningsummarypartaddedevent.d.ts → reasoningsummarypartaddedevent.d.ts} +4 -4
- package/esm/models/{openresponsesreasoningsummarypartaddedevent.js → reasoningsummarypartaddedevent.js} +5 -5
- package/esm/models/reasoningsummarypartdoneevent.d.ts +19 -0
- package/esm/models/reasoningsummarypartdoneevent.js +28 -0
- package/esm/models/reasoningsummarytextdeltaevent.d.ts +18 -0
- package/esm/models/{openresponsesreasoningsummarytextdeltaevent.js → reasoningsummarytextdeltaevent.js} +5 -5
- package/esm/models/reasoningsummarytextdoneevent.d.ts +18 -0
- package/esm/models/{openresponsesreasoningsummarytextdoneevent.js → reasoningsummarytextdoneevent.js} +5 -5
- package/esm/models/reasoningsummaryverbosityenum.d.ts +13 -0
- package/esm/models/reasoningsummaryverbosityenum.js +15 -0
- package/esm/models/refusaldeltaevent.d.ts +18 -0
- package/esm/models/refusaldeltaevent.js +27 -0
- package/esm/models/refusaldoneevent.d.ts +18 -0
- package/esm/models/refusaldoneevent.js +27 -0
- package/esm/models/{openairesponsesincludable.d.ts → responseincludesenum.d.ts} +4 -4
- package/esm/models/{openairesponsesincludable.js → responseincludesenum.js} +4 -4
- package/esm/models/responseoutputtext.d.ts +8 -8
- package/esm/models/responseoutputtext.js +10 -9
- package/esm/models/responsesrequest.d.ts +499 -0
- package/esm/models/responsesrequest.js +347 -0
- package/esm/models/searchcontextsizeenum.d.ts +19 -0
- package/esm/models/searchcontextsizeenum.js +18 -0
- package/esm/models/shellservertool.d.ts +20 -0
- package/esm/models/shellservertool.js +21 -0
- package/esm/models/storedprompttemplate.d.ts +35 -0
- package/esm/models/storedprompttemplate.js +56 -0
- package/esm/models/streamevents.d.ts +136 -0
- package/esm/models/streamevents.js +165 -0
- package/esm/models/textconfig.d.ts +27 -0
- package/esm/models/textconfig.js +25 -0
- package/esm/models/textdeltaevent.d.ts +42 -0
- package/esm/models/textdeltaevent.js +52 -0
- package/esm/models/textdoneevent.d.ts +42 -0
- package/esm/models/textdoneevent.js +53 -0
- package/esm/models/textextendedconfig.d.ts +30 -0
- package/esm/models/textextendedconfig.js +23 -0
- package/esm/models/toolcallstatusenum.d.ts +13 -0
- package/esm/models/toolcallstatusenum.js +15 -0
- package/esm/models/truncationenum.d.ts +10 -0
- package/esm/models/truncationenum.js +12 -0
- package/esm/models/{openresponsesusage.d.ts → usage.d.ts} +4 -4
- package/esm/models/{openresponsesusage.js → usage.js} +5 -5
- package/esm/models/websearchcallcompletedevent.d.ts +16 -0
- package/esm/models/websearchcallcompletedevent.js +24 -0
- package/esm/models/websearchcallinprogressevent.d.ts +16 -0
- package/esm/models/websearchcallinprogressevent.js +24 -0
- package/esm/models/websearchcallsearchingevent.d.ts +16 -0
- package/esm/models/websearchcallsearchingevent.js +24 -0
- package/esm/models/websearchengine.d.ts +2 -0
- package/esm/models/websearchengine.js +2 -0
- package/esm/models/websearchservertool.d.ts +78 -0
- package/esm/models/websearchservertool.js +89 -0
- package/esm/models/websearchservertoolopenrouter.d.ts +35 -0
- package/esm/models/websearchservertoolopenrouter.js +28 -0
- package/esm/models/websearchuserlocation.d.ts +37 -0
- package/esm/models/websearchuserlocation.js +36 -0
- package/esm/sdk/chat.d.ts +4 -4
- package/esm/sdk/responses.d.ts +4 -4
- package/esm/sdk/sdk.d.ts +4 -1
- package/esm/sdk/sdk.js +0 -1
- package/esm/types/index.d.ts +0 -2
- package/esm/types/index.js +0 -1
- package/jsr.json +1 -1
- package/package.json +11 -11
- package/tsconfig.json +3 -1
- package/turbo.json +10 -0
- package/esm/models/assistantmessage.d.ts +0 -80
- package/esm/models/assistantmessage.js +0 -83
- package/esm/models/assistantmessageimages.d.ts +0 -33
- package/esm/models/assistantmessageimages.js +0 -44
- package/esm/models/chatcompletionfinishreason.d.ts +0 -13
- package/esm/models/chatgenerationparams.js +0 -371
- package/esm/models/chatmessagecontentitem.d.ts +0 -30
- package/esm/models/chatmessagecontentitem.js +0 -54
- package/esm/models/chatmessagecontentitemaudio.d.ts +0 -52
- package/esm/models/chatmessagecontentitemaudio.js +0 -55
- package/esm/models/chatmessagecontentitemcachecontrol.d.ts +0 -40
- package/esm/models/chatmessagecontentitemcachecontrol.js +0 -41
- package/esm/models/chatmessagecontentitemimage.d.ts +0 -68
- package/esm/models/chatmessagecontentitemimage.js +0 -68
- package/esm/models/chatmessagecontentitemtext.d.ts +0 -37
- package/esm/models/chatmessagecontentitemtext.js +0 -42
- package/esm/models/chatmessagecontentitemvideo.d.ts +0 -26
- package/esm/models/chatmessagecontentitemvideo.js +0 -33
- package/esm/models/chatmessagecontentitemvideolegacy.d.ts +0 -28
- package/esm/models/chatmessagecontentitemvideolegacy.js +0 -33
- package/esm/models/chatmessagetokenlogprob.d.ts +0 -36
- package/esm/models/chatmessagetokenlogprob.js +0 -31
- package/esm/models/chatmessagetokenlogprobs.d.ts +0 -21
- package/esm/models/chatmessagetokenlogprobs.js +0 -16
- package/esm/models/chatmessagetoolcall.d.ts +0 -57
- package/esm/models/chatmessagetoolcall.js +0 -48
- package/esm/models/chatresponse.d.ts +0 -46
- package/esm/models/chatresponse.js +0 -33
- package/esm/models/chatresponsechoice.d.ts +0 -27
- package/esm/models/chatresponsechoice.js +0 -24
- package/esm/models/chatstreamingchoice.d.ts +0 -27
- package/esm/models/chatstreamingchoice.js +0 -24
- package/esm/models/chatstreamingmessagechunk.js +0 -35
- package/esm/models/chatstreamingmessagetoolcall.d.ts +0 -57
- package/esm/models/chatstreamingmessagetoolcall.js +0 -34
- package/esm/models/chatstreamingresponsechunk.js +0 -41
- package/esm/models/developermessage.d.ts +0 -35
- package/esm/models/developermessage.js +0 -24
- package/esm/models/message.d.ts +0 -20
- package/esm/models/message.js +0 -23
- package/esm/models/namedtoolchoice.d.ts +0 -37
- package/esm/models/namedtoolchoice.js +0 -26
- package/esm/models/openairesponsesinputunion.d.ts +0 -154
- package/esm/models/openairesponsesinputunion.js +0 -222
- package/esm/models/openairesponsesprompt.d.ts +0 -35
- package/esm/models/openairesponsesprompt.js +0 -56
- package/esm/models/openairesponsesreasoningconfig.d.ts +0 -13
- package/esm/models/openairesponsesreasoningconfig.js +0 -17
- package/esm/models/openairesponsesreasoningeffort.d.ts +0 -16
- package/esm/models/openairesponsesreasoningeffort.js +0 -18
- package/esm/models/openairesponsesservicetier.d.ts +0 -13
- package/esm/models/openairesponsesservicetier.js +0 -15
- package/esm/models/openresponseseasyinputmessage.d.ts +0 -94
- package/esm/models/openresponseseasyinputmessage.js +0 -115
- package/esm/models/openresponsesfunctioncalloutput.d.ts +0 -31
- package/esm/models/openresponsesfunctioncalloutput.js +0 -28
- package/esm/models/openresponsesfunctiontoolcall.d.ts +0 -33
- package/esm/models/openresponsesfunctiontoolcall.js +0 -29
- package/esm/models/openresponsesimagegencallcompleted.d.ts +0 -16
- package/esm/models/openresponsesimagegencallgenerating.d.ts +0 -16
- package/esm/models/openresponsesimagegencallinprogress.d.ts +0 -16
- package/esm/models/openresponsesinput.d.ts +0 -28
- package/esm/models/openresponsesinput.js +0 -54
- package/esm/models/openresponsesinputmessageitem.d.ts +0 -84
- package/esm/models/openresponsesinputmessageitem.js +0 -92
- package/esm/models/openresponseslogprobs.d.ts +0 -16
- package/esm/models/openresponseslogprobs.js +0 -22
- package/esm/models/openresponsesnonstreamingresponse.d.ts +0 -102
- package/esm/models/openresponsesnonstreamingresponse.js +0 -117
- package/esm/models/openresponsesreasoning.d.ts +0 -73
- package/esm/models/openresponsesreasoning.js +0 -71
- package/esm/models/openresponsesreasoningconfig.d.ts +0 -23
- package/esm/models/openresponsesreasoningconfig.js +0 -23
- package/esm/models/openresponsesreasoningsummarytextdeltaevent.d.ts +0 -18
- package/esm/models/openresponsesreasoningsummarytextdoneevent.d.ts +0 -18
- package/esm/models/openresponsesrequest.d.ts +0 -451
- package/esm/models/openresponsesrequest.js +0 -300
- package/esm/models/openresponsesresponsetext.d.ts +0 -30
- package/esm/models/openresponsesresponsetext.js +0 -24
- package/esm/models/openresponsesstreamevent.d.ts +0 -287
- package/esm/models/openresponsesstreamevent.js +0 -379
- package/esm/models/openresponsestoplogprobs.d.ts +0 -14
- package/esm/models/openresponsestoplogprobs.js +0 -15
- package/esm/models/openresponseswebsearch20250826tool.d.ts +0 -47
- package/esm/models/openresponseswebsearch20250826tool.js +0 -64
- package/esm/models/openresponseswebsearchpreview20250311tool.d.ts +0 -29
- package/esm/models/openresponseswebsearchpreview20250311tool.js +0 -40
- package/esm/models/openresponseswebsearchpreviewtool.d.ts +0 -29
- package/esm/models/openresponseswebsearchpreviewtool.js +0 -40
- package/esm/models/openresponseswebsearchtool.d.ts +0 -47
- package/esm/models/openresponseswebsearchtool.js +0 -64
- package/esm/models/reasoningsummaryverbosity.d.ts +0 -13
- package/esm/models/reasoningsummaryverbosity.js +0 -15
- package/esm/models/responseformatjsonobject.d.ts +0 -20
- package/esm/models/responseformatjsonobject.js +0 -21
- package/esm/models/responseformatjsonschema.d.ts +0 -21
- package/esm/models/responseformatjsonschema.js +0 -20
- package/esm/models/responseformattext.d.ts +0 -15
- package/esm/models/responseformattext.js +0 -13
- package/esm/models/responseformattextconfig.d.ts +0 -19
- package/esm/models/responseformattextconfig.js +0 -28
- package/esm/models/responseformattextgrammar.d.ts +0 -20
- package/esm/models/responseformattextgrammar.js +0 -14
- package/esm/models/responseformattextpython.d.ts +0 -15
- package/esm/models/responseformattextpython.js +0 -13
- package/esm/models/responseinputaudio.d.ts +0 -47
- package/esm/models/responseinputaudio.js +0 -57
- package/esm/models/responseinputimage.d.ts +0 -43
- package/esm/models/responseinputimage.js +0 -51
- package/esm/models/responseinputtext.d.ts +0 -22
- package/esm/models/responseinputtext.js +0 -23
- package/esm/models/responseinputvideo.d.ts +0 -20
- package/esm/models/responsesformattext.d.ts +0 -20
- package/esm/models/responsesformattext.js +0 -21
- package/esm/models/responsesformattextjsonschemaconfig.d.ts +0 -32
- package/esm/models/responsesformattextjsonschemaconfig.js +0 -29
- package/esm/models/responsesimagegenerationcall.d.ts +0 -33
- package/esm/models/responsesimagegenerationcall.js +0 -35
- package/esm/models/responsesoutputitem.d.ts +0 -29
- package/esm/models/responsesoutputitem.js +0 -25
- package/esm/models/responsesoutputitemfilesearchcall.d.ts +0 -33
- package/esm/models/responsesoutputitemfilesearchcall.js +0 -35
- package/esm/models/responsesoutputitemfunctioncall.d.ts +0 -69
- package/esm/models/responsesoutputitemfunctioncall.js +0 -94
- package/esm/models/responsesoutputitemreasoning.d.ts +0 -103
- package/esm/models/responsesoutputitemreasoning.js +0 -118
- package/esm/models/responsesoutputmessage.d.ts +0 -89
- package/esm/models/responsesoutputmessage.js +0 -114
- package/esm/models/responsesoutputmodality.d.ts +0 -10
- package/esm/models/responsesoutputmodality.js +0 -12
- package/esm/models/responsessearchcontextsize.d.ts +0 -19
- package/esm/models/responsessearchcontextsize.js +0 -18
- package/esm/models/responseswebsearchcalloutput.d.ts +0 -31
- package/esm/models/responseswebsearchcalloutput.js +0 -33
- package/esm/models/responseswebsearchuserlocation.d.ts +0 -37
- package/esm/models/responseswebsearchuserlocation.js +0 -36
- package/esm/models/responsetextconfig.d.ts +0 -27
- package/esm/models/responsetextconfig.js +0 -24
- package/esm/models/systemmessage.d.ts +0 -35
- package/esm/models/systemmessage.js +0 -24
- package/esm/models/toolcallstatus.d.ts +0 -13
- package/esm/models/toolcallstatus.js +0 -15
- package/esm/models/toolchoiceoption.d.ts +0 -31
- package/esm/models/toolchoiceoption.js +0 -32
- package/esm/models/tooldefinitionjson.d.ts +0 -68
- package/esm/models/tooldefinitionjson.js +0 -36
- package/esm/models/toolresponsemessage.d.ts +0 -35
- package/esm/models/toolresponsemessage.js +0 -29
- package/esm/models/usermessage.d.ts +0 -35
- package/esm/models/usermessage.js +0 -24
- package/esm/models/videoinput.d.ts +0 -23
- package/esm/models/videoinput.js +0 -22
- package/esm/models/websearchpreviewtooluserlocation.d.ts +0 -34
- 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 {
|
|
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
|
*/
|
package/esm/lib/tool-executor.js
CHANGED
|
@@ -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(
|
|
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,
|
|
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
|
|
172
|
+
let finalResult;
|
|
163
173
|
let hasFinalResult = false;
|
|
164
|
-
let lastEmittedValue
|
|
174
|
+
let lastEmittedValue;
|
|
165
175
|
let hasEmittedValue = false;
|
|
166
|
-
const iterator = tool.function.execute(validatedInput,
|
|
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.
|
|
14
|
-
allResponses: models.
|
|
13
|
+
finalResponse: models.OpenResponsesResult;
|
|
14
|
+
allResponses: models.OpenResponsesResult[];
|
|
15
15
|
toolExecutionResults: ToolExecutionResult<Tool>[];
|
|
16
|
-
conversationInput: models.
|
|
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.
|
|
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
|
|
68
|
+
// Convert to FunctionCallItem format
|
|
69
69
|
const openResponsesToolCall = {
|
|
70
70
|
type: 'function_call',
|
|
71
71
|
callId: rawToolCall.callId,
|