@openrouter/sdk 0.10.2 → 0.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FUNCTIONS.md +1 -1
- package/esm/funcs/betaResponsesSend.d.ts +4 -4
- package/esm/funcs/betaResponsesSend.js +2 -4
- package/esm/funcs/call-model.d.ts +1 -1
- package/esm/funcs/call-model.js +1 -1
- package/esm/funcs/chatSend.d.ts +4 -4
- package/esm/funcs/chatSend.js +2 -4
- package/esm/index.d.ts +0 -17
- package/esm/index.js +0 -23
- package/esm/lib/anthropic-compat.d.ts +2 -2
- package/esm/lib/anthropic-compat.js +9 -9
- package/esm/lib/anthropic-compat.test.js +2 -1
- package/esm/lib/async-params.d.ts +4 -4
- package/esm/lib/chat-compat.d.ts +2 -2
- package/esm/lib/chat-compat.js +8 -8
- package/esm/lib/chat-compat.test.js +3 -2
- package/esm/lib/config.d.ts +3 -3
- package/esm/lib/config.js +3 -3
- package/esm/lib/conversation-state.d.ts +4 -4
- package/esm/lib/encodings.js +20 -5
- 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 +8 -13
- package/esm/lib/model-result.js +61 -46
- package/esm/lib/next-turn-params.d.ts +4 -4
- package/esm/lib/next-turn-params.js +1 -1
- package/esm/lib/sdks.js +10 -6
- package/esm/lib/security.d.ts +1 -1
- package/esm/lib/security.js +20 -10
- package/esm/lib/stream-transformers.d.ts +41 -18
- package/esm/lib/stream-transformers.js +9 -9
- package/esm/lib/stream-type-guards.d.ts +15 -15
- package/esm/lib/tool-orchestrator.d.ts +4 -4
- package/esm/lib/tool-orchestrator.js +1 -1
- package/esm/lib/tool-types.d.ts +26 -12
- package/esm/lib/tool-types.js +6 -0
- 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/{chatcompletionaudiooutput.d.ts → chataudiooutput.d.ts} +7 -7
- package/esm/models/{chatcompletionaudiooutput.js → chataudiooutput.js} +8 -8
- 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/{chatmessagecontentitemfile.d.ts → chatcontentfile.d.ts} +12 -12
- package/esm/models/{chatmessagecontentitemfile.js → chatcontentfile.js} +13 -13
- 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} +154 -130
- 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} +16 -12
- package/esm/models/chatstreamchunk.js +43 -0
- package/esm/models/{chatstreamingmessagechunk.d.ts → chatstreamdelta.d.ts} +12 -12
- 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/{openresponsescodeinterpretertool.d.ts → codeinterpreterservertool.d.ts} +7 -7
- package/esm/models/{openresponsescodeinterpretertool.js → codeinterpreterservertool.js} +8 -8
- package/esm/models/codexlocalshelltool.d.ts +20 -0
- package/esm/models/codexlocalshelltool.js +21 -0
- package/esm/models/{openresponsescomputertool.d.ts → computeruseservertool.d.ts} +7 -7
- package/esm/models/{openresponsescomputertool.js → computeruseservertool.js} +8 -8
- 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/{openresponsescustomtool.d.ts → customtool.d.ts} +7 -7
- package/esm/models/{openresponsescustomtool.js → customtool.js} +9 -8
- package/esm/models/datetimeservertool.d.ts +9 -2
- package/esm/models/datetimeservertool.js +6 -1
- 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/{openresponsesfilesearchtool.d.ts → filesearchservertool.d.ts} +17 -17
- package/esm/models/{openresponsesfilesearchtool.js → filesearchservertool.js} +18 -18
- 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/{openresponsesimagegenerationtool.d.ts → imagegenerationservertool.d.ts} +7 -7
- package/esm/models/{openresponsesimagegenerationtool.js → imagegenerationservertool.js} +8 -8
- 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 +121 -109
- package/esm/models/index.js +121 -109
- 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/{openresponsesmcptool.d.ts → mcpservertool.d.ts} +7 -7
- package/esm/models/{openresponsesmcptool.js → mcpservertool.js} +9 -8
- 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/createkeys.d.ts +4 -0
- package/esm/models/operations/createkeys.js +2 -0
- package/esm/models/operations/createresponses.d.ts +4 -4
- package/esm/models/operations/createresponses.js +6 -5
- package/esm/models/operations/getcurrentkey.d.ts +4 -0
- package/esm/models/operations/getcurrentkey.js +2 -0
- package/esm/models/operations/getgeneration.d.ts +2 -0
- package/esm/models/operations/getgeneration.js +2 -0
- package/esm/models/operations/getkey.d.ts +4 -0
- package/esm/models/operations/getkey.js +2 -0
- package/esm/models/operations/list.d.ts +4 -0
- package/esm/models/operations/list.js +2 -0
- package/esm/models/operations/listproviders.d.ts +523 -0
- package/esm/models/operations/listproviders.js +512 -0
- package/esm/models/operations/sendchatcompletionrequest.d.ts +4 -4
- package/esm/models/operations/sendchatcompletionrequest.js +6 -5
- package/esm/models/operations/updatekeys.d.ts +4 -0
- package/esm/models/operations/updatekeys.js +2 -0
- 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/outputmessageitem.d.ts +81 -0
- package/esm/models/outputmessageitem.js +93 -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/{responseswebsearchcalloutput.d.ts → outputwebsearchcallitem.d.ts} +7 -7
- package/esm/models/{responseswebsearchcalloutput.js → outputwebsearchcallitem.js} +8 -8
- 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 +1 -0
- package/esm/models/providername.js +1 -0
- package/esm/models/providerpreferences.d.ts +3 -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/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/{openresponseswebsearchcallcompleted.js → websearchcallcompletedevent.js} +5 -5
- package/esm/models/websearchcallinprogressevent.d.ts +16 -0
- package/esm/models/{openresponseswebsearchcallinprogress.js → websearchcallinprogressevent.js} +5 -5
- package/esm/models/websearchcallsearchingevent.d.ts +16 -0
- package/esm/models/{openresponseswebsearchcallsearching.js → websearchcallsearchingevent.js} +5 -5
- package/esm/models/websearchservertool.d.ts +43 -81
- package/esm/models/websearchservertool.js +57 -45
- 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/jsr.json +1 -1
- package/package.json +7 -12
- package/tsconfig.json +3 -1
- package/esm/models/assistantmessage.d.ts +0 -86
- package/esm/models/assistantmessage.js +0 -86
- 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 -413
- package/esm/models/chatmessagecontentitem.d.ts +0 -31
- package/esm/models/chatmessagecontentitem.js +0 -57
- 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 -39
- 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 -17
- 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 -37
- 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 -185
- package/esm/models/openairesponsesinputunion.js +0 -274
- 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/openresponsesapplypatchtool.d.ts +0 -20
- package/esm/models/openresponsesapplypatchtool.js +0 -21
- package/esm/models/openresponseseasyinputmessage.d.ts +0 -120
- package/esm/models/openresponseseasyinputmessage.js +0 -141
- package/esm/models/openresponsesfunctioncalloutput.d.ts +0 -70
- package/esm/models/openresponsesfunctioncalloutput.js +0 -80
- package/esm/models/openresponsesfunctionshelltool.d.ts +0 -20
- package/esm/models/openresponsesfunctionshelltool.js +0 -21
- 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/openresponsesinputmessageitem.d.ts +0 -84
- package/esm/models/openresponsesinputmessageitem.js +0 -92
- package/esm/models/openresponsesinputunion.d.ts +0 -207
- package/esm/models/openresponsesinputunion.js +0 -225
- package/esm/models/openresponseslocalshelltool.d.ts +0 -20
- package/esm/models/openresponseslocalshelltool.js +0 -21
- package/esm/models/openresponsesnonstreamingresponse.d.ts +0 -111
- package/esm/models/openresponsesnonstreamingresponse.js +0 -144
- 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 -493
- package/esm/models/openresponsesrequest.js +0 -349
- package/esm/models/openresponsesresponsetext.d.ts +0 -30
- package/esm/models/openresponsesresponsetext.js +0 -24
- package/esm/models/openresponsesstreamevent.d.ts +0 -335
- package/esm/models/openresponsesstreamevent.js +0 -430
- package/esm/models/openresponseswebsearch20250826tool.d.ts +0 -76
- package/esm/models/openresponseswebsearch20250826tool.js +0 -87
- package/esm/models/openresponseswebsearchcallcompleted.d.ts +0 -16
- package/esm/models/openresponseswebsearchcallinprogress.d.ts +0 -16
- package/esm/models/openresponseswebsearchcallsearching.d.ts +0 -16
- package/esm/models/openresponseswebsearchpreview20250311tool.d.ts +0 -73
- package/esm/models/openresponseswebsearchpreview20250311tool.js +0 -91
- package/esm/models/openresponseswebsearchpreviewtool.d.ts +0 -73
- package/esm/models/openresponseswebsearchpreviewtool.js +0 -87
- package/esm/models/openresponseswebsearchtool.d.ts +0 -76
- package/esm/models/openresponseswebsearchtool.js +0 -87
- 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 -18
- package/esm/models/responsesoutputitem.js +0 -27
- 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 -74
- package/esm/models/responsesoutputitemreasoning.js +0 -76
- package/esm/models/responsesoutputmessage.d.ts +0 -81
- package/esm/models/responsesoutputmessage.js +0 -93
- 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/responsesservertooloutput.d.ts +0 -42
- package/esm/models/responsesservertooloutput.js +0 -44
- package/esm/models/responseswebsearchservertool.d.ts +0 -35
- package/esm/models/responseswebsearchservertool.js +0 -28
- 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 -86
- package/esm/models/tooldefinitionjson.js +0 -47
- 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
- package/esm/models/websearchshorthand.d.ts +0 -215
- package/esm/models/websearchshorthand.js +0 -138
package/esm/lib/files.js
CHANGED
|
@@ -71,4 +71,22 @@ export function getContentTypeFromFileName(fileName) {
|
|
|
71
71
|
};
|
|
72
72
|
return mimeTypes[ext] || null;
|
|
73
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Creates a Blob from file content with the given MIME type.
|
|
76
|
+
*
|
|
77
|
+
* Node.js Buffers are Uint8Array subclasses that may share a pooled
|
|
78
|
+
* ArrayBuffer (byteOffset > 0, byteLength < buffer.byteLength). Passing
|
|
79
|
+
* such a Buffer directly to `new Blob([buf])` can include the entire
|
|
80
|
+
* underlying pool on some runtimes, producing a Blob with extra bytes
|
|
81
|
+
* that corrupts multipart uploads.
|
|
82
|
+
*
|
|
83
|
+
* Copying into a standalone Uint8Array ensures the Blob receives only the
|
|
84
|
+
* intended bytes regardless of runtime behaviour.
|
|
85
|
+
*/
|
|
86
|
+
export function bytesToBlob(content, contentType) {
|
|
87
|
+
if (content instanceof Uint8Array) {
|
|
88
|
+
return new Blob([new Uint8Array(content)], { type: contentType });
|
|
89
|
+
}
|
|
90
|
+
return new Blob([content], { type: contentType });
|
|
91
|
+
}
|
|
74
92
|
//# sourceMappingURL=files.js.map
|
package/esm/lib/matchers.js
CHANGED
|
@@ -27,7 +27,7 @@ export interface GetResponseOptions<TTools extends readonly Tool[], TShared exte
|
|
|
27
27
|
/** Callback invoked at the start of each tool execution turn */
|
|
28
28
|
onTurnStart?: (context: TurnContext) => void | Promise<void>;
|
|
29
29
|
/** Callback invoked at the end of each tool execution turn */
|
|
30
|
-
onTurnEnd?: (context: TurnContext, response: models.
|
|
30
|
+
onTurnEnd?: (context: TurnContext, response: models.OpenResponsesResult) => void | Promise<void>;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* A wrapper around a streaming response that provides multiple consumption patterns.
|
|
@@ -36,7 +36,7 @@ export interface GetResponseOptions<TTools extends readonly Tool[], TShared exte
|
|
|
36
36
|
* - `await result.getText()` - Get just the text
|
|
37
37
|
* - `await result.getResponse()` - Get the full response object
|
|
38
38
|
* - `for await (const delta of result.getTextStream())` - Stream text deltas
|
|
39
|
-
* - `for await (const msg of result.getNewMessagesStream())` - Stream
|
|
39
|
+
* - `for await (const msg of result.getNewMessagesStream())` - Stream cumulative message snapshots
|
|
40
40
|
* - `for await (const event of result.getFullResponsesStream())` - Stream all response events
|
|
41
41
|
*
|
|
42
42
|
* For message format conversion, use the helper functions:
|
|
@@ -203,11 +203,6 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
|
|
|
203
203
|
/**
|
|
204
204
|
* Make a follow-up API request with tool results.
|
|
205
205
|
* Uses streaming and pipes events through the turn broadcaster when available.
|
|
206
|
-
*
|
|
207
|
-
* @param currentResponse - The response that contained tool calls
|
|
208
|
-
* @param toolResults - The results from executing those tools
|
|
209
|
-
* @param turnNumber - The turn number for this follow-up request
|
|
210
|
-
* @returns The new response from the API
|
|
211
206
|
*/
|
|
212
207
|
private makeFollowupRequest;
|
|
213
208
|
/**
|
|
@@ -270,9 +265,9 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
|
|
|
270
265
|
/**
|
|
271
266
|
* Get the complete response object including usage information.
|
|
272
267
|
* This will consume the stream until completion and execute any tools.
|
|
273
|
-
* Returns the full
|
|
268
|
+
* Returns the full OpenResponsesResult with usage data (inputTokens, outputTokens, cachedTokens, etc.)
|
|
274
269
|
*/
|
|
275
|
-
getResponse(): Promise<models.
|
|
270
|
+
getResponse(): Promise<models.OpenResponsesResult>;
|
|
276
271
|
/**
|
|
277
272
|
* Stream all response events as they arrive across all turns.
|
|
278
273
|
* Multiple consumers can iterate over this stream concurrently.
|
|
@@ -305,13 +300,13 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
|
|
|
305
300
|
* while `getItemsStream()` streams all output item types (messages, function_calls,
|
|
306
301
|
* reasoning, etc.) with cumulative updates.
|
|
307
302
|
*
|
|
308
|
-
* Stream
|
|
303
|
+
* Stream cumulative message snapshots as content is added in responses format.
|
|
309
304
|
* Each iteration yields an updated version of the message with new content.
|
|
310
|
-
* Also yields function_call items and
|
|
311
|
-
* Returns
|
|
305
|
+
* Also yields function_call items and FunctionCallOutputItem after tool execution completes.
|
|
306
|
+
* Returns OutputMessage, OutputFunctionCallItem, or FunctionCallOutputItem
|
|
312
307
|
* compatible with OpenAI Responses API format.
|
|
313
308
|
*/
|
|
314
|
-
getNewMessagesStream(): AsyncIterableIterator<models.
|
|
309
|
+
getNewMessagesStream(): AsyncIterableIterator<models.OutputMessage | models.FunctionCallOutputItem | models.OutputFunctionCallItem>;
|
|
315
310
|
/**
|
|
316
311
|
* Stream only reasoning deltas as they arrive from all turns.
|
|
317
312
|
* This filters the full event stream to only yield reasoning content,
|
package/esm/lib/model-result.js
CHANGED
|
@@ -4,12 +4,12 @@ import { betaResponsesSend } from '../funcs/betaResponsesSend.js';
|
|
|
4
4
|
import { hasAsyncFunctions, resolveAsyncFunctions, } from './async-params.js';
|
|
5
5
|
import { appendToMessages, createInitialState, createRejectedResult, createUnsentResult, extractTextFromResponse as extractTextFromResponseState, partitionToolCalls, unsentResultsToAPIFormat, updateState, } from './conversation-state.js';
|
|
6
6
|
import { ReusableReadableStream } from './reusable-stream.js';
|
|
7
|
-
import { buildItemsStream, buildResponsesMessageStream, buildToolCallStream, consumeStreamForCompletion, extractReasoningDeltas, extractResponsesMessageFromResponse, extractTextDeltas, extractTextFromResponse, extractToolCallsFromResponse, extractToolDeltas, } from './stream-transformers.js';
|
|
7
|
+
import { buildItemsStream, buildResponsesMessageStream, buildToolCallStream, consumeStreamForCompletion, extractReasoningDeltas, extractResponsesMessageFromResponse, extractTextDeltas, extractTextFromResponse, extractToolCallsFromResponse, extractToolDeltas, itemsStreamHandlers, streamTerminationEvents, } from './stream-transformers.js';
|
|
8
8
|
import { executeTool } from './tool-executor.js';
|
|
9
9
|
import { executeNextTurnParamsFunctions, applyNextTurnParamsToRequest } from './next-turn-params.js';
|
|
10
|
-
import { hasExecuteFunction } from './tool-types.js';
|
|
10
|
+
import { hasExecuteFunction, isToolCallOutputEvent } from './tool-types.js';
|
|
11
11
|
import { isStopConditionMet, stepCountIs } from './stop-conditions.js';
|
|
12
|
-
import {
|
|
12
|
+
import { isFunctionCallItem, isResponseCompletedEvent, isResponseFailedEvent, isResponseIncompleteEvent, isOutputTextDeltaEvent, isReasoningDeltaEvent, hasTypeProperty, } from './stream-type-guards.js';
|
|
13
13
|
/**
|
|
14
14
|
* Default maximum number of tool execution steps if no stopWhen is specified.
|
|
15
15
|
* This prevents infinite loops in tool execution.
|
|
@@ -39,7 +39,7 @@ function isEventStream(value) {
|
|
|
39
39
|
* - `await result.getText()` - Get just the text
|
|
40
40
|
* - `await result.getResponse()` - Get the full response object
|
|
41
41
|
* - `for await (const delta of result.getTextStream())` - Stream text deltas
|
|
42
|
-
* - `for await (const msg of result.getNewMessagesStream())` - Stream
|
|
42
|
+
* - `for await (const msg of result.getNewMessagesStream())` - Stream cumulative message snapshots
|
|
43
43
|
* - `for await (const event of result.getFullResponsesStream())` - Stream all response events
|
|
44
44
|
*
|
|
45
45
|
* For message format conversion, use the helper functions:
|
|
@@ -503,11 +503,17 @@ export class ModelResult {
|
|
|
503
503
|
? settled.reason.message
|
|
504
504
|
: String(settled.reason);
|
|
505
505
|
this.broadcastToolResult(originalToolCall.id, { error: errorMessage });
|
|
506
|
-
|
|
506
|
+
const rejectedOutput = {
|
|
507
507
|
type: 'function_call_output',
|
|
508
508
|
id: `output_${originalToolCall.id}`,
|
|
509
509
|
callId: originalToolCall.id,
|
|
510
510
|
output: JSON.stringify({ error: errorMessage }),
|
|
511
|
+
};
|
|
512
|
+
toolResults.push(rejectedOutput);
|
|
513
|
+
this.turnBroadcaster?.push({
|
|
514
|
+
type: 'tool.call_output',
|
|
515
|
+
output: rejectedOutput,
|
|
516
|
+
timestamp: Date.now(),
|
|
511
517
|
});
|
|
512
518
|
continue;
|
|
513
519
|
}
|
|
@@ -516,19 +522,30 @@ export class ModelResult {
|
|
|
516
522
|
continue;
|
|
517
523
|
if (value.type === 'parse_error') {
|
|
518
524
|
toolResults.push(value.output);
|
|
525
|
+
this.turnBroadcaster?.push({
|
|
526
|
+
type: 'tool.call_output',
|
|
527
|
+
output: value.output,
|
|
528
|
+
timestamp: Date.now(),
|
|
529
|
+
});
|
|
519
530
|
continue;
|
|
520
531
|
}
|
|
521
532
|
const toolResult = (value.result.error
|
|
522
533
|
? { error: value.result.error.message }
|
|
523
534
|
: value.result.result);
|
|
524
535
|
this.broadcastToolResult(value.toolCall.id, toolResult, value.preliminaryResultsForCall.length > 0 ? value.preliminaryResultsForCall : undefined);
|
|
525
|
-
|
|
536
|
+
const executedOutput = {
|
|
526
537
|
type: 'function_call_output',
|
|
527
538
|
id: `output_${value.toolCall.id}`,
|
|
528
539
|
callId: value.toolCall.id,
|
|
529
540
|
output: value.result.error
|
|
530
541
|
? JSON.stringify({ error: value.result.error.message })
|
|
531
542
|
: JSON.stringify(value.result.result),
|
|
543
|
+
};
|
|
544
|
+
toolResults.push(executedOutput);
|
|
545
|
+
this.turnBroadcaster?.push({
|
|
546
|
+
type: 'tool.call_output',
|
|
547
|
+
output: executedOutput,
|
|
548
|
+
timestamp: Date.now(),
|
|
532
549
|
});
|
|
533
550
|
}
|
|
534
551
|
return toolResults;
|
|
@@ -570,14 +587,8 @@ export class ModelResult {
|
|
|
570
587
|
/**
|
|
571
588
|
* Make a follow-up API request with tool results.
|
|
572
589
|
* Uses streaming and pipes events through the turn broadcaster when available.
|
|
573
|
-
*
|
|
574
|
-
* @param currentResponse - The response that contained tool calls
|
|
575
|
-
* @param toolResults - The results from executing those tools
|
|
576
|
-
* @param turnNumber - The turn number for this follow-up request
|
|
577
|
-
* @returns The new response from the API
|
|
578
590
|
*/
|
|
579
591
|
async makeFollowupRequest(currentResponse, toolResults, turnNumber) {
|
|
580
|
-
// Build new input preserving original conversation + tool results
|
|
581
592
|
const originalInput = this.resolvedRequest?.input;
|
|
582
593
|
const normalizedOriginalInput = Array.isArray(originalInput)
|
|
583
594
|
? originalInput
|
|
@@ -603,7 +614,7 @@ export class ModelResult {
|
|
|
603
614
|
...this.resolvedRequest,
|
|
604
615
|
stream: true,
|
|
605
616
|
};
|
|
606
|
-
const newResult = await betaResponsesSend(this.options.client, {
|
|
617
|
+
const newResult = await betaResponsesSend(this.options.client, { responsesRequest: newRequest }, this.options.options);
|
|
607
618
|
if (!newResult.ok) {
|
|
608
619
|
throw newResult.error;
|
|
609
620
|
}
|
|
@@ -768,7 +779,7 @@ export class ModelResult {
|
|
|
768
779
|
// Force stream mode for initial request
|
|
769
780
|
const request = this.resolvedRequest;
|
|
770
781
|
// Make the API request
|
|
771
|
-
const apiResult = await betaResponsesSend(this.options.client, {
|
|
782
|
+
const apiResult = await betaResponsesSend(this.options.client, { responsesRequest: request }, this.options.options);
|
|
772
783
|
if (!apiResult.ok) {
|
|
773
784
|
throw apiResult.error;
|
|
774
785
|
}
|
|
@@ -892,7 +903,7 @@ export class ModelResult {
|
|
|
892
903
|
};
|
|
893
904
|
this.resolvedRequest = request;
|
|
894
905
|
// Make the API request
|
|
895
|
-
const apiResult = await betaResponsesSend(this.options.client, {
|
|
906
|
+
const apiResult = await betaResponsesSend(this.options.client, { responsesRequest: request }, this.options.options);
|
|
896
907
|
if (!apiResult.ok) {
|
|
897
908
|
throw apiResult.error;
|
|
898
909
|
}
|
|
@@ -1021,7 +1032,7 @@ export class ModelResult {
|
|
|
1021
1032
|
/**
|
|
1022
1033
|
* Get the complete response object including usage information.
|
|
1023
1034
|
* This will consume the stream until completion and execute any tools.
|
|
1024
|
-
* Returns the full
|
|
1035
|
+
* Returns the full OpenResponsesResult with usage data (inputTokens, outputTokens, cachedTokens, etc.)
|
|
1025
1036
|
*/
|
|
1026
1037
|
async getResponse() {
|
|
1027
1038
|
await this.executeToolsIfNeeded();
|
|
@@ -1103,39 +1114,43 @@ export class ModelResult {
|
|
|
1103
1114
|
if (!this.reusableStream && !this.finalResponse) {
|
|
1104
1115
|
throw new Error('Stream not initialized');
|
|
1105
1116
|
}
|
|
1106
|
-
//
|
|
1107
|
-
if (this.
|
|
1108
|
-
|
|
1117
|
+
// No tools — stream single turn directly (no broadcaster needed)
|
|
1118
|
+
if (!this.options.tools?.length) {
|
|
1119
|
+
if (this.reusableStream) {
|
|
1120
|
+
yield* buildItemsStream(this.reusableStream);
|
|
1121
|
+
}
|
|
1122
|
+
return;
|
|
1109
1123
|
}
|
|
1110
|
-
//
|
|
1111
|
-
|
|
1112
|
-
//
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
}
|
|
1124
|
+
// Use turnBroadcaster (same pattern as getTextStream/getFullResponsesStream).
|
|
1125
|
+
// executeToolsIfNeeded() drives tool execution in the background while we
|
|
1126
|
+
// passively consume events from the broadcaster in real-time.
|
|
1127
|
+
const { consumer, executionPromise } = this.startTurnBroadcasterExecution();
|
|
1128
|
+
const itemsInProgress = new Map();
|
|
1129
|
+
for await (const event of consumer) {
|
|
1130
|
+
// Tool call outputs → yield directly as function_call_output items
|
|
1131
|
+
if (isToolCallOutputEvent(event)) {
|
|
1132
|
+
yield event.output;
|
|
1133
|
+
continue;
|
|
1121
1134
|
}
|
|
1122
|
-
|
|
1123
|
-
|
|
1135
|
+
// Stream termination → reset items map for next turn
|
|
1136
|
+
if ('type' in event && streamTerminationEvents.has(event.type)) {
|
|
1137
|
+
itemsInProgress.clear();
|
|
1124
1138
|
}
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1139
|
+
// API stream events → dispatch through item handlers
|
|
1140
|
+
// Cast is necessary: TypeScript cannot narrow a union via Record key lookup,
|
|
1141
|
+
// but `event.type in itemsStreamHandlers` guarantees the event is an
|
|
1142
|
+
// StreamEvents whose type matches a handler key.
|
|
1143
|
+
if ('type' in event && event.type in itemsStreamHandlers) {
|
|
1144
|
+
const handler = itemsStreamHandlers[event.type];
|
|
1145
|
+
if (handler) {
|
|
1146
|
+
const result = handler(event, itemsInProgress);
|
|
1147
|
+
if (result) {
|
|
1148
|
+
yield result;
|
|
1149
|
+
}
|
|
1136
1150
|
}
|
|
1137
1151
|
}
|
|
1138
1152
|
}
|
|
1153
|
+
await executionPromise;
|
|
1139
1154
|
}.call(this);
|
|
1140
1155
|
}
|
|
1141
1156
|
/**
|
|
@@ -1143,10 +1158,10 @@ export class ModelResult {
|
|
|
1143
1158
|
* while `getItemsStream()` streams all output item types (messages, function_calls,
|
|
1144
1159
|
* reasoning, etc.) with cumulative updates.
|
|
1145
1160
|
*
|
|
1146
|
-
* Stream
|
|
1161
|
+
* Stream cumulative message snapshots as content is added in responses format.
|
|
1147
1162
|
* Each iteration yields an updated version of the message with new content.
|
|
1148
|
-
* Also yields function_call items and
|
|
1149
|
-
* Returns
|
|
1163
|
+
* Also yields function_call items and FunctionCallOutputItem after tool execution completes.
|
|
1164
|
+
* Returns OutputMessage, OutputFunctionCallItem, or FunctionCallOutputItem
|
|
1150
1165
|
* compatible with OpenAI Responses API format.
|
|
1151
1166
|
*/
|
|
1152
1167
|
getNewMessagesStream() {
|
|
@@ -4,10 +4,10 @@ import type { NextTurnParamsContext, ParsedToolCall, Tool } from './tool-types.j
|
|
|
4
4
|
* Build a NextTurnParamsContext from the current request
|
|
5
5
|
* Extracts relevant fields that can be modified by nextTurnParams functions
|
|
6
6
|
*
|
|
7
|
-
* @param request - The current
|
|
7
|
+
* @param request - The current ResponsesRequest
|
|
8
8
|
* @returns Context object with current parameter values
|
|
9
9
|
*/
|
|
10
|
-
export declare function buildNextTurnParamsContext(request: models.
|
|
10
|
+
export declare function buildNextTurnParamsContext(request: models.ResponsesRequest): NextTurnParamsContext;
|
|
11
11
|
/**
|
|
12
12
|
* Execute nextTurnParams functions for all called tools
|
|
13
13
|
* Composes functions when multiple tools modify the same parameter
|
|
@@ -17,7 +17,7 @@ export declare function buildNextTurnParamsContext(request: models.OpenResponses
|
|
|
17
17
|
* @param currentRequest - The current request
|
|
18
18
|
* @returns Object with computed parameter values
|
|
19
19
|
*/
|
|
20
|
-
export declare function executeNextTurnParamsFunctions(toolCalls: ParsedToolCall<Tool>[], tools: readonly Tool[], currentRequest: models.
|
|
20
|
+
export declare function executeNextTurnParamsFunctions(toolCalls: ParsedToolCall<Tool>[], tools: readonly Tool[], currentRequest: models.ResponsesRequest): Promise<Partial<NextTurnParamsContext>>;
|
|
21
21
|
/**
|
|
22
22
|
* Apply computed nextTurnParams to the current request
|
|
23
23
|
* Returns a new request object with updated parameters
|
|
@@ -26,5 +26,5 @@ export declare function executeNextTurnParamsFunctions(toolCalls: ParsedToolCall
|
|
|
26
26
|
* @param computedParams - Computed parameter values from nextTurnParams functions
|
|
27
27
|
* @returns New request with updated parameters
|
|
28
28
|
*/
|
|
29
|
-
export declare function applyNextTurnParamsToRequest(request: models.
|
|
29
|
+
export declare function applyNextTurnParamsToRequest(request: models.ResponsesRequest, computedParams: Partial<NextTurnParamsContext>): models.ResponsesRequest;
|
|
30
30
|
//# sourceMappingURL=next-turn-params.d.ts.map
|
|
@@ -8,7 +8,7 @@ function isRecord(value) {
|
|
|
8
8
|
* Build a NextTurnParamsContext from the current request
|
|
9
9
|
* Extracts relevant fields that can be modified by nextTurnParams functions
|
|
10
10
|
*
|
|
11
|
-
* @param request - The current
|
|
11
|
+
* @param request - The current ResponsesRequest
|
|
12
12
|
* @returns Context object with current parameter values
|
|
13
13
|
*/
|
|
14
14
|
export function buildNextTurnParamsContext(request) {
|
package/esm/lib/sdks.js
CHANGED
|
@@ -67,12 +67,16 @@ export class ClientSDK {
|
|
|
67
67
|
if (!base) {
|
|
68
68
|
return ERR(new InvalidRequestError("No base URL provided for operation"));
|
|
69
69
|
}
|
|
70
|
-
const
|
|
71
|
-
|
|
70
|
+
const baseURL = new URL(base);
|
|
71
|
+
let reqURL;
|
|
72
72
|
if (path) {
|
|
73
|
-
|
|
74
|
-
reqURL
|
|
73
|
+
baseURL.pathname = baseURL.pathname.replace(/\/+$/, "") + "/";
|
|
74
|
+
reqURL = new URL(path, baseURL);
|
|
75
75
|
}
|
|
76
|
+
else {
|
|
77
|
+
reqURL = baseURL;
|
|
78
|
+
}
|
|
79
|
+
reqURL.hash = "";
|
|
76
80
|
let finalQuery = query || "";
|
|
77
81
|
const secQuery = [];
|
|
78
82
|
for (const [k, v] of Object.entries(security?.queryParams || {})) {
|
|
@@ -186,8 +190,8 @@ export class ClientSDK {
|
|
|
186
190
|
}
|
|
187
191
|
}
|
|
188
192
|
_ClientSDK_httpClient = new WeakMap(), _ClientSDK_hooks = new WeakMap(), _ClientSDK_logger = new WeakMap();
|
|
189
|
-
const jsonLikeContentTypeRE =
|
|
190
|
-
const jsonlLikeContentTypeRE =
|
|
193
|
+
const jsonLikeContentTypeRE = /^(application|text)\/([^+]+\+)*json.*/;
|
|
194
|
+
const jsonlLikeContentTypeRE = /^(application|text)\/([^+]+\+)*(jsonl|x-ndjson)\b.*/;
|
|
191
195
|
async function logRequest(logger, req) {
|
|
192
196
|
if (!logger) {
|
|
193
197
|
return;
|
package/esm/lib/security.d.ts
CHANGED
|
@@ -77,7 +77,7 @@ type SecurityInputCustom = {
|
|
|
77
77
|
};
|
|
78
78
|
export type SecurityInput = SecurityInputBasic | SecurityInputBearer | SecurityInputAPIKey | SecurityInputOAuth2 | SecurityInputOAuth2ClientCredentials | SecurityInputOAuth2PasswordCredentials | SecurityInputOIDC | SecurityInputCustom;
|
|
79
79
|
export declare function resolveSecurity(...options: SecurityInput[][]): SecurityState | null;
|
|
80
|
-
export declare function resolveGlobalSecurity(security: Partial<models.Security> | null | undefined): SecurityState | null;
|
|
80
|
+
export declare function resolveGlobalSecurity(security: Partial<models.Security> | null | undefined, allowedFields?: number[]): SecurityState | null;
|
|
81
81
|
export declare function extractSecurity<T extends string | Record<string, unknown>>(sec: T | (() => Promise<T>) | undefined): Promise<T | undefined>;
|
|
82
82
|
export {};
|
|
83
83
|
//# sourceMappingURL=security.d.ts.map
|
package/esm/lib/security.js
CHANGED
|
@@ -96,8 +96,7 @@ export function resolveSecurity(...options) {
|
|
|
96
96
|
applyBearer(state, spec);
|
|
97
97
|
break;
|
|
98
98
|
default:
|
|
99
|
-
spec;
|
|
100
|
-
throw SecurityError.unrecognizedType(type);
|
|
99
|
+
throw SecurityError.unrecognizedType((spec, type));
|
|
101
100
|
}
|
|
102
101
|
});
|
|
103
102
|
return state;
|
|
@@ -120,14 +119,25 @@ function applyBearer(state, spec) {
|
|
|
120
119
|
state.headers[spec.fieldName] = value;
|
|
121
120
|
}
|
|
122
121
|
}
|
|
123
|
-
export function resolveGlobalSecurity(security) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
122
|
+
export function resolveGlobalSecurity(security, allowedFields) {
|
|
123
|
+
let inputs = [
|
|
124
|
+
[
|
|
125
|
+
{
|
|
126
|
+
fieldName: "Authorization",
|
|
127
|
+
type: "http:bearer",
|
|
128
|
+
value: security?.apiKey ?? env().OPENROUTER_API_KEY,
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
];
|
|
132
|
+
if (allowedFields) {
|
|
133
|
+
inputs = allowedFields.map((i) => {
|
|
134
|
+
if (i < 0 || i >= inputs.length) {
|
|
135
|
+
throw new RangeError(`invalid allowedFields index ${i}`);
|
|
136
|
+
}
|
|
137
|
+
return inputs[i];
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return resolveSecurity(...inputs);
|
|
131
141
|
}
|
|
132
142
|
export async function extractSecurity(sec) {
|
|
133
143
|
if (sec == null) {
|
|
@@ -5,72 +5,94 @@ import type { ParsedToolCall, Tool } from './tool-types.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* Extract text deltas from responses stream events
|
|
7
7
|
*/
|
|
8
|
-
export declare function extractTextDeltas(stream: ReusableReadableStream<models.
|
|
8
|
+
export declare function extractTextDeltas(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<string>;
|
|
9
9
|
/**
|
|
10
10
|
* Extract reasoning deltas from responses stream events
|
|
11
11
|
*/
|
|
12
|
-
export declare function extractReasoningDeltas(stream: ReusableReadableStream<models.
|
|
12
|
+
export declare function extractReasoningDeltas(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<string>;
|
|
13
13
|
/**
|
|
14
14
|
* Extract tool call argument deltas from responses stream events
|
|
15
15
|
*/
|
|
16
|
-
export declare function extractToolDeltas(stream: ReusableReadableStream<models.
|
|
16
|
+
export declare function extractToolDeltas(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<string>;
|
|
17
17
|
/**
|
|
18
18
|
* Build incremental message updates from responses stream events
|
|
19
|
-
* Returns
|
|
19
|
+
* Returns OutputMessage (assistant/responses format)
|
|
20
20
|
*/
|
|
21
|
-
export declare function buildResponsesMessageStream(stream: ReusableReadableStream<models.
|
|
21
|
+
export declare function buildResponsesMessageStream(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<models.OutputMessage>;
|
|
22
22
|
/**
|
|
23
23
|
* Output item types that can be streamed from a response.
|
|
24
24
|
* This is the union of all item types that appear in response output,
|
|
25
25
|
* plus function_call_output for tool results.
|
|
26
26
|
*/
|
|
27
|
-
export type StreamableOutputItem = models.
|
|
27
|
+
export type StreamableOutputItem = models.OutputMessage | models.OutputFunctionCallItem | models.OutputReasoningItem | models.OutputWebSearchCallItem | models.OutputFileSearchCallItem | models.OutputImageGenerationCallItem | models.FunctionCallOutputItem;
|
|
28
|
+
/**
|
|
29
|
+
* Discriminated union for tracking items in progress.
|
|
30
|
+
* Each variant has only the fields relevant to that item type.
|
|
31
|
+
*/
|
|
32
|
+
export type ItemInProgress = {
|
|
33
|
+
type: 'message';
|
|
34
|
+
id: string;
|
|
35
|
+
textContent: string;
|
|
36
|
+
} | {
|
|
37
|
+
type: 'function_call';
|
|
38
|
+
id: string;
|
|
39
|
+
name: string;
|
|
40
|
+
callId: string;
|
|
41
|
+
argumentsAccumulated: string;
|
|
42
|
+
} | {
|
|
43
|
+
type: 'reasoning';
|
|
44
|
+
id: string;
|
|
45
|
+
reasoningContent: string;
|
|
46
|
+
};
|
|
47
|
+
type ItemsStreamHandler = (event: models.StreamEvents, itemsInProgress: Map<string, ItemInProgress>) => StreamableOutputItem | undefined;
|
|
48
|
+
export declare const itemsStreamHandlers: Record<string, ItemsStreamHandler>;
|
|
49
|
+
export declare const streamTerminationEvents: Set<string>;
|
|
28
50
|
/**
|
|
29
51
|
* Build incremental output item updates from responses stream events.
|
|
30
52
|
* Yields all item types cumulatively - same item may be emitted multiple times
|
|
31
53
|
* with the same ID but progressively updated content as streaming progresses.
|
|
32
54
|
*/
|
|
33
|
-
export declare function buildItemsStream(stream: ReusableReadableStream<models.
|
|
55
|
+
export declare function buildItemsStream(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<StreamableOutputItem>;
|
|
34
56
|
/**
|
|
35
57
|
* Build incremental message updates from responses stream events
|
|
36
|
-
* Returns
|
|
58
|
+
* Returns ChatAssistantMessage (chat format) instead of OutputMessage
|
|
37
59
|
*/
|
|
38
|
-
export declare function buildMessageStream(stream: ReusableReadableStream<models.
|
|
60
|
+
export declare function buildMessageStream(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<models.ChatAssistantMessage>;
|
|
39
61
|
/**
|
|
40
62
|
* Consume stream until completion and return the complete response
|
|
41
63
|
*/
|
|
42
|
-
export declare function consumeStreamForCompletion(stream: ReusableReadableStream<models.
|
|
64
|
+
export declare function consumeStreamForCompletion(stream: ReusableReadableStream<models.StreamEvents>): Promise<models.OpenResponsesResult>;
|
|
43
65
|
/**
|
|
44
66
|
* Extract the first message from a completed response (chat format)
|
|
45
67
|
*/
|
|
46
|
-
export declare function extractMessageFromResponse(response: models.
|
|
68
|
+
export declare function extractMessageFromResponse(response: models.OpenResponsesResult): models.ChatAssistantMessage;
|
|
47
69
|
/**
|
|
48
70
|
* Extract the first message from a completed response (responses format)
|
|
49
71
|
*/
|
|
50
|
-
export declare function extractResponsesMessageFromResponse(response: models.
|
|
72
|
+
export declare function extractResponsesMessageFromResponse(response: models.OpenResponsesResult): models.OutputMessage;
|
|
51
73
|
/**
|
|
52
74
|
* Extract text from a response, either from outputText or by concatenating message content
|
|
53
75
|
*/
|
|
54
|
-
export declare function extractTextFromResponse(response: models.
|
|
76
|
+
export declare function extractTextFromResponse(response: models.OpenResponsesResult): string;
|
|
55
77
|
/**
|
|
56
78
|
* Extract all tool calls from a completed response
|
|
57
79
|
* Returns parsed tool calls with arguments as objects (not JSON strings)
|
|
58
80
|
*/
|
|
59
|
-
export declare function extractToolCallsFromResponse(response: models.
|
|
81
|
+
export declare function extractToolCallsFromResponse(response: models.OpenResponsesResult): ParsedToolCall<Tool>[];
|
|
60
82
|
/**
|
|
61
83
|
* Build incremental tool call updates from responses stream events
|
|
62
84
|
* Yields structured tool call objects as they're built from deltas
|
|
63
85
|
*/
|
|
64
|
-
export declare function buildToolCallStream(stream: ReusableReadableStream<models.
|
|
86
|
+
export declare function buildToolCallStream(stream: ReusableReadableStream<models.StreamEvents>): AsyncIterableIterator<ParsedToolCall<Tool>>;
|
|
65
87
|
/**
|
|
66
88
|
* Check if a response contains any tool calls
|
|
67
89
|
*/
|
|
68
|
-
export declare function responseHasToolCalls(response: models.
|
|
90
|
+
export declare function responseHasToolCalls(response: models.OpenResponsesResult): boolean;
|
|
69
91
|
/**
|
|
70
|
-
* Convert
|
|
92
|
+
* Convert OpenResponsesResult to ClaudeMessage format
|
|
71
93
|
* Compatible with the Anthropic SDK BetaMessage type
|
|
72
94
|
*/
|
|
73
|
-
export declare function convertToClaudeMessage(response: models.
|
|
95
|
+
export declare function convertToClaudeMessage(response: models.OpenResponsesResult): ClaudeMessage;
|
|
74
96
|
/**
|
|
75
97
|
* Extract unsupported content by original type
|
|
76
98
|
*/
|
|
@@ -83,4 +105,5 @@ export declare function hasUnsupportedContent(message: ClaudeMessage): boolean;
|
|
|
83
105
|
* Get summary of unsupported content types
|
|
84
106
|
*/
|
|
85
107
|
export declare function getUnsupportedContentSummary(message: ClaudeMessage): Record<string, number>;
|
|
108
|
+
export {};
|
|
86
109
|
//# sourceMappingURL=stream-transformers.d.ts.map
|
|
@@ -101,12 +101,12 @@ async function* buildMessageStreamCore(stream) {
|
|
|
101
101
|
}
|
|
102
102
|
/**
|
|
103
103
|
* Build incremental message updates from responses stream events
|
|
104
|
-
* Returns
|
|
104
|
+
* Returns OutputMessage (assistant/responses format)
|
|
105
105
|
*/
|
|
106
106
|
export async function* buildResponsesMessageStream(stream) {
|
|
107
107
|
for await (const update of buildMessageStreamCore(stream)) {
|
|
108
108
|
if (update.type === 'delta' && update.text !== undefined && update.messageId !== undefined) {
|
|
109
|
-
// Yield incremental update in
|
|
109
|
+
// Yield incremental update in OutputMessage format
|
|
110
110
|
yield {
|
|
111
111
|
id: update.messageId,
|
|
112
112
|
type: 'message',
|
|
@@ -296,14 +296,14 @@ function handleOutputItemDone(event, itemsInProgress) {
|
|
|
296
296
|
}
|
|
297
297
|
return undefined;
|
|
298
298
|
}
|
|
299
|
-
const itemsStreamHandlers = {
|
|
299
|
+
export const itemsStreamHandlers = {
|
|
300
300
|
'response.output_item.added': handleOutputItemAdded,
|
|
301
301
|
'response.output_text.delta': handleTextDelta,
|
|
302
302
|
'response.function_call_arguments.delta': handleFunctionCallDelta,
|
|
303
303
|
'response.reasoning_text.delta': handleReasoningDelta,
|
|
304
304
|
'response.output_item.done': handleOutputItemDone,
|
|
305
305
|
};
|
|
306
|
-
const streamTerminationEvents = new Set([
|
|
306
|
+
export const streamTerminationEvents = new Set([
|
|
307
307
|
'response.completed',
|
|
308
308
|
'response.failed',
|
|
309
309
|
'response.incomplete',
|
|
@@ -335,7 +335,7 @@ export async function* buildItemsStream(stream) {
|
|
|
335
335
|
}
|
|
336
336
|
/**
|
|
337
337
|
* Build incremental message updates from responses stream events
|
|
338
|
-
* Returns
|
|
338
|
+
* Returns ChatAssistantMessage (chat format) instead of OutputMessage
|
|
339
339
|
*/
|
|
340
340
|
export async function* buildMessageStream(stream) {
|
|
341
341
|
for await (const update of buildMessageStreamCore(stream)) {
|
|
@@ -376,7 +376,7 @@ export async function consumeStreamForCompletion(stream) {
|
|
|
376
376
|
throw new Error('Stream ended without completion event');
|
|
377
377
|
}
|
|
378
378
|
/**
|
|
379
|
-
* Convert
|
|
379
|
+
* Convert OutputMessage to ChatAssistantMessage (chat format)
|
|
380
380
|
*/
|
|
381
381
|
function convertToAssistantMessage(outputMessage) {
|
|
382
382
|
// Extract text content
|
|
@@ -423,9 +423,9 @@ export function extractTextFromResponse(response) {
|
|
|
423
423
|
// No message in response (e.g., only function calls)
|
|
424
424
|
return '';
|
|
425
425
|
}
|
|
426
|
-
// Otherwise, extract from the first message (convert to
|
|
426
|
+
// Otherwise, extract from the first message (convert to ChatAssistantMessage which has string content)
|
|
427
427
|
const message = extractMessageFromResponse(response);
|
|
428
|
-
//
|
|
428
|
+
// ChatAssistantMessage.content is string | Array | null | undefined
|
|
429
429
|
if (typeof message.content === 'string') {
|
|
430
430
|
return message.content;
|
|
431
431
|
}
|
|
@@ -644,7 +644,7 @@ function mapStopReason(response) {
|
|
|
644
644
|
return 'end_turn';
|
|
645
645
|
}
|
|
646
646
|
/**
|
|
647
|
-
* Convert
|
|
647
|
+
* Convert OpenResponsesResult to ClaudeMessage format
|
|
648
648
|
* Compatible with the Anthropic SDK BetaMessage type
|
|
649
649
|
*/
|
|
650
650
|
export function convertToClaudeMessage(response) {
|