@openrouter/sdk 0.9.11 → 0.10.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 +2 -1
- 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.js +2 -1
- package/esm/funcs/call-model.d.ts +19 -70
- package/esm/funcs/call-model.js +29 -71
- package/esm/funcs/chatSend.js +2 -1
- 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 +22 -23
- package/esm/index.js +20 -17
- package/esm/lib/anthropic-compat.d.ts +2 -1
- package/esm/lib/anthropic-compat.js +1 -2
- package/esm/lib/async-params.d.ts +19 -5
- package/esm/lib/async-params.js +5 -1
- package/esm/lib/chat-compat.d.ts +1 -1
- package/esm/lib/chat-compat.js +1 -2
- package/esm/lib/claude-type-guards.d.ts +2 -2
- package/esm/lib/config.d.ts +8 -10
- package/esm/lib/config.js +2 -2
- package/esm/lib/conversation-state.d.ts +1 -1
- package/esm/lib/conversation-state.js +35 -32
- package/esm/lib/env.d.ts +6 -2
- package/esm/lib/env.js +7 -3
- package/esm/lib/model-result.d.ts +73 -17
- package/esm/lib/model-result.js +329 -125
- package/esm/lib/sdks.d.ts +1 -1
- package/esm/lib/sdks.js +8 -28
- package/esm/lib/stream-transformers.d.ts +5 -4
- package/esm/lib/stream-transformers.js +24 -29
- 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 +2 -2
- package/esm/lib/tool-types.d.ts +101 -14
- package/esm/lib/tool-types.js +17 -0
- package/esm/lib/tool.d.ts +49 -60
- package/esm/lib/tool.js +15 -19
- package/esm/lib/turn-context.d.ts +1 -1
- package/esm/models/assistantmessage.d.ts +6 -0
- package/esm/models/assistantmessage.js +3 -0
- package/esm/models/chatcompletionaudiooutput.d.ts +38 -0
- package/esm/models/chatcompletionaudiooutput.js +36 -0
- package/esm/models/chatgenerationparams.d.ts +75 -6
- package/esm/models/chatgenerationparams.js +42 -0
- package/esm/models/chatmessagecontentitem.d.ts +3 -2
- package/esm/models/chatmessagecontentitem.js +3 -0
- package/esm/models/chatmessagecontentitemcachecontrol.d.ts +5 -5
- package/esm/models/chatmessagecontentitemcachecontrol.js +5 -7
- package/esm/models/chatmessagecontentitemfile.d.ts +57 -0
- package/esm/models/chatmessagecontentitemfile.js +59 -0
- package/esm/models/chatmessagetokenlogprobs.d.ts +1 -1
- package/esm/models/chatmessagetokenlogprobs.js +2 -1
- package/esm/models/chatresponse.d.ts +1 -1
- package/esm/models/chatresponse.js +1 -1
- package/esm/models/chatstreamingmessagechunk.d.ts +2 -0
- package/esm/models/chatstreamingmessagechunk.js +2 -0
- package/esm/models/chatstreamingresponsechunk.d.ts +1 -1
- package/esm/models/chatstreamingresponsechunk.js +1 -1
- package/esm/models/compoundfilter.d.ts +36 -0
- package/esm/models/compoundfilter.js +32 -0
- package/esm/models/conflictresponseerrordata.d.ts +17 -0
- package/esm/models/conflictresponseerrordata.js +16 -0
- package/esm/models/contextcompressionengine.d.ts +15 -0
- package/esm/models/contextcompressionengine.js +14 -0
- package/esm/models/datetimeservertool.d.ts +30 -0
- package/esm/models/datetimeservertool.js +22 -0
- package/esm/models/defaultparameters.d.ts +3 -0
- package/esm/models/defaultparameters.js +6 -0
- 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/index.d.ts +23 -4
- package/esm/models/index.js +23 -4
- package/esm/models/openairesponsesinputunion.d.ts +32 -1
- package/esm/models/openairesponsesinputunion.js +53 -1
- package/esm/models/openresponsesapplypatchtool.d.ts +20 -0
- package/esm/models/openresponsesapplypatchtool.js +21 -0
- package/esm/models/openresponsescodeinterpretertool.d.ts +68 -0
- package/esm/models/openresponsescodeinterpretertool.js +85 -0
- package/esm/models/openresponsescomputertool.d.ts +39 -0
- package/esm/models/openresponsescomputertool.js +50 -0
- package/esm/models/openresponsescustomtool.d.ts +75 -0
- package/esm/models/openresponsescustomtool.js +95 -0
- package/esm/models/openresponseseasyinputmessage.d.ts +30 -4
- package/esm/models/openresponseseasyinputmessage.js +28 -2
- package/esm/models/openresponsesfilesearchtool.d.ts +111 -0
- package/esm/models/openresponsesfilesearchtool.js +180 -0
- package/esm/models/openresponsesfunctioncalloutput.d.ts +46 -7
- package/esm/models/openresponsesfunctioncalloutput.js +56 -4
- package/esm/models/openresponsesfunctionshelltool.d.ts +20 -0
- package/esm/models/openresponsesfunctionshelltool.js +21 -0
- package/esm/models/openresponsesimagegenerationtool.d.ts +125 -0
- package/esm/models/openresponsesimagegenerationtool.js +153 -0
- package/esm/models/openresponsesinputmessageitem.d.ts +2 -2
- package/esm/models/openresponsesinputmessageitem.js +2 -2
- package/esm/models/openresponsesinputunion.d.ts +207 -0
- package/esm/models/openresponsesinputunion.js +225 -0
- package/esm/models/openresponseslocalshelltool.d.ts +20 -0
- package/esm/models/openresponseslocalshelltool.js +21 -0
- package/esm/models/openresponsesmcptool.d.ts +128 -0
- package/esm/models/openresponsesmcptool.js +173 -0
- package/esm/models/openresponsesnonstreamingresponse.d.ts +11 -2
- package/esm/models/openresponsesnonstreamingresponse.js +27 -0
- package/esm/models/openresponsesrequest.d.ts +53 -11
- package/esm/models/openresponsesrequest.js +51 -2
- package/esm/models/openresponsesstreamevent.d.ts +52 -4
- package/esm/models/openresponsesstreamevent.js +54 -3
- package/esm/models/openresponseswebsearch20250826tool.d.ts +29 -0
- package/esm/models/openresponseswebsearch20250826tool.js +23 -0
- package/esm/models/openresponseswebsearchcallcompleted.d.ts +16 -0
- package/esm/models/openresponseswebsearchcallcompleted.js +24 -0
- package/esm/models/openresponseswebsearchcallinprogress.d.ts +16 -0
- package/esm/models/openresponseswebsearchcallinprogress.js +24 -0
- package/esm/models/openresponseswebsearchcallsearching.d.ts +16 -0
- package/esm/models/openresponseswebsearchcallsearching.js +24 -0
- package/esm/models/openresponseswebsearchpreview20250311tool.d.ts +44 -0
- package/esm/models/openresponseswebsearchpreview20250311tool.js +51 -0
- package/esm/models/openresponseswebsearchpreviewtool.d.ts +44 -0
- package/esm/models/openresponseswebsearchpreviewtool.js +47 -0
- package/esm/models/openresponseswebsearchtool.d.ts +29 -0
- package/esm/models/openresponseswebsearchtool.js +23 -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 +16 -3
- package/esm/models/operations/createkeys.js +2 -2
- package/esm/models/operations/createresponses.d.ts +16 -3
- package/esm/models/operations/createresponses.js +2 -2
- 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 +16 -3
- package/esm/models/operations/getcurrentkey.js +2 -2
- package/esm/models/operations/getgeneration.d.ts +25 -3
- package/esm/models/operations/getgeneration.js +7 -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 +16 -3
- package/esm/models/operations/getkey.js +2 -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 +16 -3
- package/esm/models/operations/list.js +2 -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 +16 -3
- package/esm/models/operations/listproviders.js +2 -2
- package/esm/models/operations/sendchatcompletionrequest.d.ts +16 -3
- package/esm/models/operations/sendchatcompletionrequest.js +2 -2
- package/esm/models/operations/updateguardrail.d.ts +25 -3
- package/esm/models/operations/updateguardrail.js +6 -2
- package/esm/models/operations/updatekeys.d.ts +16 -3
- package/esm/models/operations/updatekeys.js +2 -2
- package/esm/models/outputmessage.d.ts +23 -0
- package/esm/models/outputmessage.js +24 -0
- package/esm/models/outputmodality.d.ts +1 -0
- package/esm/models/outputmodality.js +1 -0
- package/esm/models/providername.d.ts +1 -0
- package/esm/models/providername.js +1 -0
- package/esm/models/providerpreferences.d.ts +4 -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/responseoutputtext.d.ts +8 -8
- package/esm/models/responseoutputtext.js +10 -9
- package/esm/models/responsesoutputitem.d.ts +2 -13
- package/esm/models/responsesoutputitem.js +8 -6
- package/esm/models/responsesoutputitemreasoning.d.ts +2 -31
- package/esm/models/responsesoutputitemreasoning.js +2 -44
- package/esm/models/responsesoutputmessage.d.ts +24 -32
- package/esm/models/responsesoutputmessage.js +26 -47
- package/esm/models/responsesservertooloutput.d.ts +42 -0
- package/esm/models/responsesservertooloutput.js +44 -0
- package/esm/models/responseswebsearchcalloutput.d.ts +90 -5
- package/esm/models/responseswebsearchcalloutput.js +113 -5
- package/esm/models/responseswebsearchservertool.d.ts +35 -0
- package/esm/models/responseswebsearchservertool.js +28 -0
- package/esm/models/tooldefinitionjson.d.ts +38 -20
- package/esm/models/tooldefinitionjson.js +22 -11
- package/esm/models/websearchengine.d.ts +2 -0
- package/esm/models/websearchengine.js +2 -0
- package/esm/models/websearchservertool.d.ts +116 -0
- package/esm/models/websearchservertool.js +77 -0
- package/esm/models/websearchshorthand.d.ts +215 -0
- package/esm/models/websearchshorthand.js +138 -0
- 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 -6
- package/turbo.json +10 -0
- package/esm/models/openresponsesinput.d.ts +0 -28
- package/esm/models/openresponsesinput.js +0 -54
- package/esm/models/openresponseslogprobs.d.ts +0 -16
- package/esm/models/openresponseslogprobs.js +0 -22
- package/esm/models/openresponsestoplogprobs.d.ts +0 -14
- package/esm/models/openresponsestoplogprobs.js +0 -15
|
@@ -38,7 +38,8 @@ async function $do(client, request, options) {
|
|
|
38
38
|
"Content-Type": "application/json",
|
|
39
39
|
Accept: "application/json",
|
|
40
40
|
"HTTP-Referer": encodeSimple("HTTP-Referer", payload["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
|
|
41
|
-
"X-
|
|
41
|
+
"X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
|
|
42
|
+
"X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
|
|
42
43
|
}));
|
|
43
44
|
const secConfig = await extractSecurity(client._options.apiKey);
|
|
44
45
|
const securityInput = secConfig == null ? {} : { apiKey: secConfig };
|
|
@@ -12,5 +12,5 @@ import { Result } from "../types/fp.js";
|
|
|
12
12
|
/**
|
|
13
13
|
* Get total count of available models
|
|
14
14
|
*/
|
|
15
|
-
export declare function modelsCount(client: OpenRouterCore, request?: operations.ListModelsCountRequest | undefined, options?: RequestOptions): APIPromise<Result<models.ModelsCountResponse, errors.InternalServerResponseError | OpenRouterError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
|
|
15
|
+
export declare function modelsCount(client: OpenRouterCore, request?: operations.ListModelsCountRequest | undefined, options?: RequestOptions): APIPromise<Result<models.ModelsCountResponse, errors.BadRequestResponseError | errors.InternalServerResponseError | OpenRouterError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
|
|
16
16
|
//# sourceMappingURL=modelsCount.d.ts.map
|
package/esm/funcs/modelsCount.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
3
|
* @generated-id: 371adfc67b48
|
|
4
4
|
*/
|
|
5
|
-
import { encodeSimple } from "../lib/encodings.js";
|
|
5
|
+
import { encodeFormQuery, encodeSimple } from "../lib/encodings.js";
|
|
6
6
|
import * as M from "../lib/matchers.js";
|
|
7
7
|
import { compactMap } from "../lib/primitives.js";
|
|
8
8
|
import { safeParse } from "../lib/schemas.js";
|
|
@@ -26,10 +26,14 @@ async function $do(client, request, options) {
|
|
|
26
26
|
const payload = parsed.value;
|
|
27
27
|
const body = null;
|
|
28
28
|
const path = pathToFunc("/models/count")();
|
|
29
|
+
const query = encodeFormQuery({
|
|
30
|
+
"output_modalities": payload?.output_modalities,
|
|
31
|
+
});
|
|
29
32
|
const headers = new Headers(compactMap({
|
|
30
33
|
Accept: "application/json",
|
|
31
34
|
"HTTP-Referer": encodeSimple("HTTP-Referer", payload?.["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
|
|
32
|
-
"X-
|
|
35
|
+
"X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload?.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
|
|
36
|
+
"X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload?.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
|
|
33
37
|
}));
|
|
34
38
|
const secConfig = await extractSecurity(client._options.apiKey);
|
|
35
39
|
const securityInput = secConfig == null ? {} : { apiKey: secConfig };
|
|
@@ -52,6 +56,7 @@ async function $do(client, request, options) {
|
|
|
52
56
|
baseURL: options?.serverURL,
|
|
53
57
|
path: path,
|
|
54
58
|
headers: headers,
|
|
59
|
+
query: query,
|
|
55
60
|
body: body,
|
|
56
61
|
userAgent: client._options.userAgent,
|
|
57
62
|
timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
|
|
@@ -62,7 +67,7 @@ async function $do(client, request, options) {
|
|
|
62
67
|
const req = requestRes.value;
|
|
63
68
|
const doResult = await client._do(req, {
|
|
64
69
|
context,
|
|
65
|
-
errorCodes: ["4XX", "500", "5XX"],
|
|
70
|
+
errorCodes: ["400", "4XX", "500", "5XX"],
|
|
66
71
|
retryConfig: context.retryConfig,
|
|
67
72
|
retryCodes: context.retryCodes,
|
|
68
73
|
});
|
|
@@ -73,7 +78,7 @@ async function $do(client, request, options) {
|
|
|
73
78
|
const responseFields = {
|
|
74
79
|
HttpMeta: { Response: response, Request: req },
|
|
75
80
|
};
|
|
76
|
-
const [result] = await M.match(M.json(200, models.ModelsCountResponse$inboundSchema), M.jsonErr(500, errors.InternalServerResponseError$inboundSchema), M.fail("4XX"), M.fail("5XX"))(response, req, { extraFields: responseFields });
|
|
81
|
+
const [result] = await M.match(M.json(200, models.ModelsCountResponse$inboundSchema), M.jsonErr(400, errors.BadRequestResponseError$inboundSchema), M.jsonErr(500, errors.InternalServerResponseError$inboundSchema), M.fail("4XX"), M.fail("5XX"))(response, req, { extraFields: responseFields });
|
|
77
82
|
if (!result.ok) {
|
|
78
83
|
return [result, { status: "complete", request: req, response }];
|
|
79
84
|
}
|
package/esm/funcs/modelsList.js
CHANGED
|
@@ -28,12 +28,14 @@ async function $do(client, request, options) {
|
|
|
28
28
|
const path = pathToFunc("/models")();
|
|
29
29
|
const query = encodeFormQuery({
|
|
30
30
|
"category": payload?.category,
|
|
31
|
+
"output_modalities": payload?.output_modalities,
|
|
31
32
|
"supported_parameters": payload?.supported_parameters,
|
|
32
33
|
});
|
|
33
34
|
const headers = new Headers(compactMap({
|
|
34
35
|
Accept: "application/json",
|
|
35
36
|
"HTTP-Referer": encodeSimple("HTTP-Referer", payload?.["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
|
|
36
|
-
"X-
|
|
37
|
+
"X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload?.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
|
|
38
|
+
"X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload?.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
|
|
37
39
|
}));
|
|
38
40
|
const secConfig = await extractSecurity(client._options.apiKey);
|
|
39
41
|
const securityInput = secConfig == null ? {} : { apiKey: secConfig };
|
|
@@ -32,7 +32,8 @@ async function $do(client, security, request, options) {
|
|
|
32
32
|
const headers = new Headers(compactMap({
|
|
33
33
|
Accept: "application/json",
|
|
34
34
|
"HTTP-Referer": encodeSimple("HTTP-Referer", payload?.["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
|
|
35
|
-
"X-
|
|
35
|
+
"X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload?.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
|
|
36
|
+
"X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload?.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
|
|
36
37
|
}));
|
|
37
38
|
const requestSecurity = resolveSecurity([
|
|
38
39
|
{
|
|
@@ -14,5 +14,5 @@ import { Result } from "../types/fp.js";
|
|
|
14
14
|
* @remarks
|
|
15
15
|
* Create an authorization code for the PKCE flow to generate a user-controlled API key
|
|
16
16
|
*/
|
|
17
|
-
export declare function oAuthCreateAuthCode(client: OpenRouterCore, request: operations.CreateAuthKeysCodeRequest, options?: RequestOptions): APIPromise<Result<operations.CreateAuthKeysCodeResponse, errors.BadRequestResponseError | errors.UnauthorizedResponseError | errors.InternalServerResponseError | OpenRouterError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
|
|
17
|
+
export declare function oAuthCreateAuthCode(client: OpenRouterCore, request: operations.CreateAuthKeysCodeRequest, options?: RequestOptions): APIPromise<Result<operations.CreateAuthKeysCodeResponse, errors.BadRequestResponseError | errors.UnauthorizedResponseError | errors.ConflictResponseError | errors.InternalServerResponseError | OpenRouterError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
|
|
18
18
|
//# sourceMappingURL=oAuthCreateAuthCode.d.ts.map
|
|
@@ -32,7 +32,8 @@ async function $do(client, request, options) {
|
|
|
32
32
|
"Content-Type": "application/json",
|
|
33
33
|
Accept: "application/json",
|
|
34
34
|
"HTTP-Referer": encodeSimple("HTTP-Referer", payload["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
|
|
35
|
-
"X-
|
|
35
|
+
"X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
|
|
36
|
+
"X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
|
|
36
37
|
}));
|
|
37
38
|
const secConfig = await extractSecurity(client._options.apiKey);
|
|
38
39
|
const securityInput = secConfig == null ? {} : { apiKey: secConfig };
|
|
@@ -65,7 +66,7 @@ async function $do(client, request, options) {
|
|
|
65
66
|
const req = requestRes.value;
|
|
66
67
|
const doResult = await client._do(req, {
|
|
67
68
|
context,
|
|
68
|
-
errorCodes: ["400", "401", "4XX", "500", "5XX"],
|
|
69
|
+
errorCodes: ["400", "401", "409", "4XX", "500", "5XX"],
|
|
69
70
|
retryConfig: context.retryConfig,
|
|
70
71
|
retryCodes: context.retryCodes,
|
|
71
72
|
});
|
|
@@ -76,7 +77,7 @@ async function $do(client, request, options) {
|
|
|
76
77
|
const responseFields = {
|
|
77
78
|
HttpMeta: { Response: response, Request: req },
|
|
78
79
|
};
|
|
79
|
-
const [result] = await M.match(M.json(200, operations.CreateAuthKeysCodeResponse$inboundSchema), M.jsonErr(400, errors.BadRequestResponseError$inboundSchema), M.jsonErr(401, errors.UnauthorizedResponseError$inboundSchema), M.jsonErr(500, errors.InternalServerResponseError$inboundSchema), M.fail("4XX"), M.fail("5XX"))(response, req, { extraFields: responseFields });
|
|
80
|
+
const [result] = await M.match(M.json(200, operations.CreateAuthKeysCodeResponse$inboundSchema), M.jsonErr(400, errors.BadRequestResponseError$inboundSchema), M.jsonErr(401, errors.UnauthorizedResponseError$inboundSchema), M.jsonErr(409, errors.ConflictResponseError$inboundSchema), M.jsonErr(500, errors.InternalServerResponseError$inboundSchema), M.fail("4XX"), M.fail("5XX"))(response, req, { extraFields: responseFields });
|
|
80
81
|
if (!result.ok) {
|
|
81
82
|
return [result, { status: "complete", request: req, response }];
|
|
82
83
|
}
|
|
@@ -32,7 +32,8 @@ async function $do(client, request, options) {
|
|
|
32
32
|
"Content-Type": "application/json",
|
|
33
33
|
Accept: "application/json",
|
|
34
34
|
"HTTP-Referer": encodeSimple("HTTP-Referer", payload["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
|
|
35
|
-
"X-
|
|
35
|
+
"X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
|
|
36
|
+
"X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
|
|
36
37
|
}));
|
|
37
38
|
const secConfig = await extractSecurity(client._options.apiKey);
|
|
38
39
|
const securityInput = secConfig == null ? {} : { apiKey: secConfig };
|
|
@@ -28,7 +28,8 @@ async function $do(client, request, options) {
|
|
|
28
28
|
const headers = new Headers(compactMap({
|
|
29
29
|
Accept: "application/json",
|
|
30
30
|
"HTTP-Referer": encodeSimple("HTTP-Referer", payload?.["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
|
|
31
|
-
"X-
|
|
31
|
+
"X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload?.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
|
|
32
|
+
"X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload?.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
|
|
32
33
|
}));
|
|
33
34
|
const secConfig = await extractSecurity(client._options.apiKey);
|
|
34
35
|
const securityInput = secConfig == null ? {} : { apiKey: secConfig };
|
package/esm/index.d.ts
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export type {
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export {
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
20
|
-
export {
|
|
21
|
-
export {
|
|
22
|
-
export
|
|
23
|
-
export * from './sdk/sdk.js';
|
|
1
|
+
export { fromClaudeMessages, toClaudeMessage } from "./lib/anthropic-compat.js";
|
|
2
|
+
export { hasAsyncFunctions, resolveAsyncFunctions } from "./lib/async-params.js";
|
|
3
|
+
export type { CallModelInput, CallModelInputWithState, ResolvedCallModelInput } from "./lib/async-params.js";
|
|
4
|
+
export { fromChatMessages, toChatMessage } from "./lib/chat-compat.js";
|
|
5
|
+
export { ClaudeContentBlockType, NonClaudeMessageRole } from "./lib/claude-constants.js";
|
|
6
|
+
export { isClaudeStyleMessages } from "./lib/claude-type-guards.js";
|
|
7
|
+
export * from "./lib/config.js";
|
|
8
|
+
export * as files from "./lib/files.js";
|
|
9
|
+
export { HTTPClient } from "./lib/http.js";
|
|
10
|
+
export type { Fetcher, HTTPClientOptions } from "./lib/http.js";
|
|
11
|
+
export { applyNextTurnParamsToRequest, buildNextTurnParamsContext, executeNextTurnParamsFunctions } from "./lib/next-turn-params.js";
|
|
12
|
+
export { finishReasonIs, hasToolCall, isStopConditionMet, maxCost, maxTokensUsed, stepCountIs } from "./lib/stop-conditions.js";
|
|
13
|
+
export { extractUnsupportedContent, getUnsupportedContentSummary, hasUnsupportedContent } from "./lib/stream-transformers.js";
|
|
14
|
+
export { tool } from "./lib/tool.js";
|
|
15
|
+
export { hasApprovalRequiredTools, hasExecuteFunction, isGeneratorTool, isRegularExecuteTool, isToolPreliminaryResultEvent, isToolResultEvent, isTurnEndEvent, isTurnStartEvent, toolHasApprovalConfigured, ToolType, } from "./lib/tool-types.js";
|
|
16
|
+
export type { ChatStreamEvent, ConversationState, ConversationStatus, ResponseStreamEvent, ResponseStreamEvent as EnhancedResponseStreamEvent, HasApprovalTools, InferToolEvent, InferToolEventsUnion, InferToolInput, InferToolOutput, InferToolOutputsUnion, ManualTool, NextTurnParamsContext, NextTurnParamsFunctions, ParsedToolCall, PartialResponse, StateAccessor, StepResult, StopCondition, StopWhen, Tool, ToolApprovalCheck, ToolExecutionResult, ToolExecutionResultUnion, ToolHasApproval, ToolPreliminaryResultEvent, ToolResultEvent, ToolStreamEvent, ToolWithExecute, ToolWithGenerator, TurnContext, TurnEndEvent, TurnStartEvent, TypedToolCall, TypedToolCallUnion, UnsentToolResult, Warning, } from "./lib/tool-types.js";
|
|
17
|
+
export { buildTurnContext, normalizeInputToArray } from "./lib/turn-context.js";
|
|
18
|
+
export { buildToolExecuteContext, ToolContextStore } from "./lib/tool-context.js";
|
|
19
|
+
export type { ContextInput } from "./lib/tool-context.js";
|
|
20
|
+
export { appendToMessages, createInitialState, createRejectedResult, createUnsentResult, generateConversationId, partitionToolCalls, toolRequiresApproval, updateState, } from "./lib/conversation-state.js";
|
|
21
|
+
export { ToolEventBroadcaster } from "./lib/tool-event-broadcaster.js";
|
|
22
|
+
export * from "./sdk/sdk.js";
|
|
24
23
|
//# sourceMappingURL=index.d.ts.map
|
package/esm/index.js
CHANGED
|
@@ -1,29 +1,32 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
+
* @generated-id: f7d15e20e3c5
|
|
3
4
|
*/
|
|
4
5
|
// Message format compatibility helpers
|
|
5
|
-
export { fromClaudeMessages, toClaudeMessage } from
|
|
6
|
-
export { hasAsyncFunctions, resolveAsyncFunctions
|
|
7
|
-
export { fromChatMessages, toChatMessage } from
|
|
6
|
+
export { fromClaudeMessages, toClaudeMessage } from "./lib/anthropic-compat.js";
|
|
7
|
+
export { hasAsyncFunctions, resolveAsyncFunctions } from "./lib/async-params.js";
|
|
8
|
+
export { fromChatMessages, toChatMessage } from "./lib/chat-compat.js";
|
|
8
9
|
// Claude constants and type guards
|
|
9
|
-
export { ClaudeContentBlockType, NonClaudeMessageRole } from
|
|
10
|
-
export { isClaudeStyleMessages } from
|
|
11
|
-
export * from
|
|
12
|
-
export * as files from
|
|
13
|
-
export { HTTPClient } from
|
|
10
|
+
export { ClaudeContentBlockType, NonClaudeMessageRole } from "./lib/claude-constants.js";
|
|
11
|
+
export { isClaudeStyleMessages } from "./lib/claude-type-guards.js";
|
|
12
|
+
export * from "./lib/config.js";
|
|
13
|
+
export * as files from "./lib/files.js";
|
|
14
|
+
export { HTTPClient } from "./lib/http.js";
|
|
14
15
|
// Next turn params helpers
|
|
15
|
-
export { applyNextTurnParamsToRequest, buildNextTurnParamsContext, executeNextTurnParamsFunctions
|
|
16
|
+
export { applyNextTurnParamsToRequest, buildNextTurnParamsContext, executeNextTurnParamsFunctions } from "./lib/next-turn-params.js";
|
|
16
17
|
// Stop condition helpers
|
|
17
|
-
export { finishReasonIs, hasToolCall, isStopConditionMet, maxCost, maxTokensUsed, stepCountIs
|
|
18
|
-
export { extractUnsupportedContent, getUnsupportedContentSummary, hasUnsupportedContent
|
|
18
|
+
export { finishReasonIs, hasToolCall, isStopConditionMet, maxCost, maxTokensUsed, stepCountIs } from "./lib/stop-conditions.js";
|
|
19
|
+
export { extractUnsupportedContent, getUnsupportedContentSummary, hasUnsupportedContent } from "./lib/stream-transformers.js";
|
|
19
20
|
// Tool creation helpers
|
|
20
|
-
export { tool } from
|
|
21
|
-
export { hasApprovalRequiredTools, hasExecuteFunction, isGeneratorTool, isRegularExecuteTool, isToolPreliminaryResultEvent, isToolResultEvent, toolHasApprovalConfigured, ToolType, } from
|
|
21
|
+
export { tool } from "./lib/tool.js";
|
|
22
|
+
export { hasApprovalRequiredTools, hasExecuteFunction, isGeneratorTool, isRegularExecuteTool, isToolPreliminaryResultEvent, isToolResultEvent, isTurnEndEvent, isTurnStartEvent, toolHasApprovalConfigured, ToolType, } from "./lib/tool-types.js";
|
|
22
23
|
// Turn context helpers
|
|
23
|
-
export { buildTurnContext, normalizeInputToArray } from
|
|
24
|
+
export { buildTurnContext, normalizeInputToArray } from "./lib/turn-context.js";
|
|
25
|
+
// Tool context helpers
|
|
26
|
+
export { buildToolExecuteContext, ToolContextStore } from "./lib/tool-context.js";
|
|
24
27
|
// Conversation state helpers
|
|
25
|
-
export { appendToMessages, createInitialState, createRejectedResult, createUnsentResult, generateConversationId, partitionToolCalls, toolRequiresApproval, updateState, } from
|
|
28
|
+
export { appendToMessages, createInitialState, createRejectedResult, createUnsentResult, generateConversationId, partitionToolCalls, toolRequiresApproval, updateState, } from "./lib/conversation-state.js";
|
|
26
29
|
// Real-time tool event broadcasting
|
|
27
|
-
export { ToolEventBroadcaster } from
|
|
28
|
-
export * from
|
|
30
|
+
export { ToolEventBroadcaster } from "./lib/tool-event-broadcaster.js";
|
|
31
|
+
export * from "./sdk/sdk.js";
|
|
29
32
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type * as models from '../models/index.js';
|
|
2
|
+
import type { ClaudeMessageParam } from '../models/claude-message.js';
|
|
2
3
|
import { convertToClaudeMessage } from './stream-transformers.js';
|
|
3
4
|
/**
|
|
4
5
|
* Convert Anthropic Claude-style messages to OpenResponses input format.
|
|
@@ -25,7 +26,7 @@ import { convertToClaudeMessage } from './stream-transformers.js';
|
|
|
25
26
|
* });
|
|
26
27
|
* ```
|
|
27
28
|
*/
|
|
28
|
-
export declare function fromClaudeMessages(messages:
|
|
29
|
+
export declare function fromClaudeMessages(messages: ClaudeMessageParam[]): models.OpenResponsesInputUnion;
|
|
29
30
|
/**
|
|
30
31
|
* Convert an OpenResponses response to Anthropic Claude message format.
|
|
31
32
|
*
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { OpenResponsesEasyInputMessageRoleAssistant, OpenResponsesEasyInputMessageRoleUser, } from '../models/openresponseseasyinputmessage.js';
|
|
2
|
-
import { OpenResponsesFunctionCallOutputType } from '../models/openresponsesfunctioncalloutput.js';
|
|
3
2
|
import { OpenResponsesInputMessageItemRoleUser, OpenResponsesInputMessageItemRoleDeveloper } from '../models/openresponsesinputmessageitem.js';
|
|
4
3
|
import { convertToClaudeMessage } from './stream-transformers.js';
|
|
5
4
|
/**
|
|
@@ -25,7 +24,7 @@ function createEasyInputMessage(role, content) {
|
|
|
25
24
|
*/
|
|
26
25
|
function createFunctionCallOutput(callId, output) {
|
|
27
26
|
return {
|
|
28
|
-
type:
|
|
27
|
+
type: "function_call_output",
|
|
29
28
|
callId,
|
|
30
29
|
output,
|
|
31
30
|
};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type * as models from '../models/index.js';
|
|
2
|
-
import type { ParsedToolCall, StateAccessor, StopWhen, Tool, TurnContext } from './tool-types.js';
|
|
2
|
+
import type { ToolContextMapWithShared, ParsedToolCall, StateAccessor, StopWhen, Tool, TurnContext } from './tool-types.js';
|
|
3
|
+
import type { OpenResponsesNonStreamingResponse } from '../models/index.js';
|
|
4
|
+
import type { ContextInput } from './tool-context.js';
|
|
3
5
|
export type { Tool } from './tool-types.js';
|
|
4
6
|
/**
|
|
5
7
|
* A field can be either a value of type T or a function that computes T
|
|
@@ -8,16 +10,28 @@ export type FieldOrAsyncFunction<T> = T | ((context: TurnContext) => T | Promise
|
|
|
8
10
|
/**
|
|
9
11
|
* Base input type for callModel without approval-related fields
|
|
10
12
|
*/
|
|
11
|
-
type BaseCallModelInput<TTools extends readonly Tool[] = readonly Tool[]> = {
|
|
13
|
+
type BaseCallModelInput<TTools extends readonly Tool[] = readonly Tool[], TShared extends Record<string, unknown> = Record<string, never>> = {
|
|
12
14
|
[K in keyof Omit<models.OpenResponsesRequest, 'stream' | 'tools'>]?: FieldOrAsyncFunction<models.OpenResponsesRequest[K]>;
|
|
13
15
|
} & {
|
|
14
16
|
tools?: TTools;
|
|
15
17
|
stopWhen?: StopWhen<TTools>;
|
|
18
|
+
/** Typed context data passed to tools via contextSchema. Includes optional `shared` key. */
|
|
19
|
+
context?: ContextInput<ToolContextMapWithShared<TTools, TShared>>;
|
|
16
20
|
/**
|
|
17
21
|
* Call-level approval check - overrides tool-level requireApproval setting
|
|
18
22
|
* Receives the tool call and turn context, can be sync or async
|
|
19
23
|
*/
|
|
20
24
|
requireApproval?: (toolCall: ParsedToolCall<TTools[number]>, context: TurnContext) => boolean | Promise<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* Callback invoked at the start of each tool execution turn
|
|
27
|
+
* Receives the turn context with the current turn number
|
|
28
|
+
*/
|
|
29
|
+
onTurnStart?: (context: TurnContext) => void | Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Callback invoked at the end of each tool execution turn
|
|
32
|
+
* Receives the turn context and the completed response for that turn
|
|
33
|
+
*/
|
|
34
|
+
onTurnEnd?: (context: TurnContext, response: OpenResponsesNonStreamingResponse) => void | Promise<void>;
|
|
21
35
|
};
|
|
22
36
|
/**
|
|
23
37
|
* Approval params when state is provided (allows approve/reject)
|
|
@@ -50,11 +64,11 @@ type ApprovalParamsWithoutState = {
|
|
|
50
64
|
* - `approveToolCalls` and `rejectToolCalls` are only valid when `state` is provided
|
|
51
65
|
* - Using these without `state` will cause a TypeScript error
|
|
52
66
|
*/
|
|
53
|
-
export type CallModelInput<TTools extends readonly Tool[] = readonly Tool[]> = BaseCallModelInput<TTools> & (ApprovalParamsWithState<TTools> | ApprovalParamsWithoutState);
|
|
67
|
+
export type CallModelInput<TTools extends readonly Tool[] = readonly Tool[], TShared extends Record<string, unknown> = Record<string, never>> = BaseCallModelInput<TTools, TShared> & (ApprovalParamsWithState<TTools> | ApprovalParamsWithoutState);
|
|
54
68
|
/**
|
|
55
69
|
* CallModelInput variant that requires state - use when approval workflows are needed
|
|
56
70
|
*/
|
|
57
|
-
export type CallModelInputWithState<TTools extends readonly Tool[] = readonly Tool[]> = BaseCallModelInput<TTools> & ApprovalParamsWithState<TTools>;
|
|
71
|
+
export type CallModelInputWithState<TTools extends readonly Tool[] = readonly Tool[], TShared extends Record<string, unknown> = Record<string, never>> = BaseCallModelInput<TTools, TShared> & ApprovalParamsWithState<TTools>;
|
|
58
72
|
/**
|
|
59
73
|
* Resolved CallModelInput (all functions evaluated to values)
|
|
60
74
|
* This is the type after all async functions have been resolved to their values
|
|
@@ -77,7 +91,7 @@ export type ResolvedCallModelInput = Omit<models.OpenResponsesRequest, 'stream'
|
|
|
77
91
|
* temperature: (ctx) => ctx.numberOfTurns * 0.1,
|
|
78
92
|
* input: 'Hello',
|
|
79
93
|
* },
|
|
80
|
-
* { numberOfTurns: 2
|
|
94
|
+
* { numberOfTurns: 2 }
|
|
81
95
|
* );
|
|
82
96
|
* // resolved.temperature === 0.2
|
|
83
97
|
* ```
|
package/esm/lib/async-params.js
CHANGED
|
@@ -28,7 +28,7 @@ function buildResolvedRequest(entries) {
|
|
|
28
28
|
* temperature: (ctx) => ctx.numberOfTurns * 0.1,
|
|
29
29
|
* input: 'Hello',
|
|
30
30
|
* },
|
|
31
|
-
* { numberOfTurns: 2
|
|
31
|
+
* { numberOfTurns: 2 }
|
|
32
32
|
* );
|
|
33
33
|
* // resolved.temperature === 0.2
|
|
34
34
|
* ```
|
|
@@ -43,6 +43,10 @@ export async function resolveAsyncFunctions(input, context) {
|
|
|
43
43
|
'requireApproval', // Client-side approval check function
|
|
44
44
|
'approveToolCalls', // Client-side approval decisions
|
|
45
45
|
'rejectToolCalls', // Client-side rejection decisions
|
|
46
|
+
'context', // Passed through via GetResponseOptions, not sent to API
|
|
47
|
+
'sharedContextSchema', // Client-side schema for shared context validation
|
|
48
|
+
'onTurnStart', // Client-side turn start callback
|
|
49
|
+
'onTurnEnd', // Client-side turn end callback
|
|
46
50
|
]);
|
|
47
51
|
// Iterate over all keys in the input
|
|
48
52
|
for (const [key, value] of Object.entries(input)) {
|
package/esm/lib/chat-compat.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ import { extractMessageFromResponse } from "./stream-transformers.js";
|
|
|
21
21
|
* });
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
-
export declare function fromChatMessages(messages: models.Message[]): models.
|
|
24
|
+
export declare function fromChatMessages(messages: models.Message[]): models.OpenResponsesInputUnion;
|
|
25
25
|
/**
|
|
26
26
|
* Convert an OpenResponses response to OpenAI chat message format.
|
|
27
27
|
*
|
package/esm/lib/chat-compat.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { OpenResponsesEasyInputMessageRoleUser, OpenResponsesEasyInputMessageRoleSystem, OpenResponsesEasyInputMessageRoleAssistant, OpenResponsesEasyInputMessageRoleDeveloper, } from "../models/openresponseseasyinputmessage.js";
|
|
2
|
-
import { OpenResponsesFunctionCallOutputType } from "../models/openresponsesfunctioncalloutput.js";
|
|
3
2
|
import { extractMessageFromResponse } from "./stream-transformers.js";
|
|
4
3
|
/**
|
|
5
4
|
* Type guard for ToolResponseMessage
|
|
@@ -70,7 +69,7 @@ export function fromChatMessages(messages) {
|
|
|
70
69
|
return messages.map((msg) => {
|
|
71
70
|
if (isToolResponseMessage(msg)) {
|
|
72
71
|
return {
|
|
73
|
-
type:
|
|
72
|
+
type: "function_call_output",
|
|
74
73
|
callId: msg.toolCallId,
|
|
75
74
|
output: contentToString(msg.content),
|
|
76
75
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { ClaudeMessageParam } from "../models/claude-message.js";
|
|
2
2
|
/**
|
|
3
3
|
* Check if input is in Claude message format
|
|
4
4
|
* Uses structural analysis to detect Claude-specific patterns
|
|
@@ -6,5 +6,5 @@ import type * as models from "../models/index.js";
|
|
|
6
6
|
* @param input - Input to check
|
|
7
7
|
* @returns True if input appears to be Claude format
|
|
8
8
|
*/
|
|
9
|
-
export declare function isClaudeStyleMessages(input: unknown): input is
|
|
9
|
+
export declare function isClaudeStyleMessages(input: unknown): input is ClaudeMessageParam[];
|
|
10
10
|
//# sourceMappingURL=claude-type-guards.d.ts.map
|
package/esm/lib/config.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Hook } from "../hooks/types.js";
|
|
2
1
|
import { HTTPClient } from "./http.js";
|
|
3
2
|
import { Logger } from "./logger.js";
|
|
4
3
|
import { RetryConfig } from "./retries.js";
|
|
@@ -19,9 +18,13 @@ export type SDKOptions = {
|
|
|
19
18
|
*/
|
|
20
19
|
httpReferer?: string | undefined;
|
|
21
20
|
/**
|
|
22
|
-
* Allows setting the
|
|
21
|
+
* Allows setting the appTitle parameter for all supported operations
|
|
23
22
|
*/
|
|
24
|
-
|
|
23
|
+
appTitle?: string | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Allows setting the appCategories parameter for all supported operations
|
|
26
|
+
*/
|
|
27
|
+
appCategories?: string | undefined;
|
|
25
28
|
httpClient?: HTTPClient;
|
|
26
29
|
/**
|
|
27
30
|
* Allows overriding the default server used by the SDK
|
|
@@ -41,18 +44,13 @@ export type SDKOptions = {
|
|
|
41
44
|
retryConfig?: RetryConfig;
|
|
42
45
|
timeoutMs?: number;
|
|
43
46
|
debugLogger?: Logger;
|
|
44
|
-
/**
|
|
45
|
-
* Hooks for request/response lifecycle events.
|
|
46
|
-
* Can be a single hook object or an array of hooks.
|
|
47
|
-
*/
|
|
48
|
-
hooks?: Hook | Hook[];
|
|
49
47
|
};
|
|
50
48
|
export declare function serverURLFromOptions(options: SDKOptions): URL | null;
|
|
51
49
|
export declare const SDK_METADATA: {
|
|
52
50
|
readonly language: "typescript";
|
|
53
51
|
readonly openapiDocVersion: "1.0.0";
|
|
54
|
-
readonly sdkVersion: "0.
|
|
52
|
+
readonly sdkVersion: "0.10.2";
|
|
55
53
|
readonly genVersion: "2.788.4";
|
|
56
|
-
readonly userAgent: "speakeasy-sdk/typescript 0.
|
|
54
|
+
readonly userAgent: "speakeasy-sdk/typescript 0.10.2 2.788.4 1.0.0 @openrouter/sdk";
|
|
57
55
|
};
|
|
58
56
|
//# sourceMappingURL=config.d.ts.map
|
package/esm/lib/config.js
CHANGED
|
@@ -26,8 +26,8 @@ export function serverURLFromOptions(options) {
|
|
|
26
26
|
export const SDK_METADATA = {
|
|
27
27
|
language: "typescript",
|
|
28
28
|
openapiDocVersion: "1.0.0",
|
|
29
|
-
sdkVersion: "0.
|
|
29
|
+
sdkVersion: "0.10.2",
|
|
30
30
|
genVersion: "2.788.4",
|
|
31
|
-
userAgent: "speakeasy-sdk/typescript 0.
|
|
31
|
+
userAgent: "speakeasy-sdk/typescript 0.10.2 2.788.4 1.0.0 @openrouter/sdk",
|
|
32
32
|
};
|
|
33
33
|
//# sourceMappingURL=config.js.map
|
|
@@ -18,7 +18,7 @@ export declare function updateState<TTools extends readonly Tool[] = readonly To
|
|
|
18
18
|
/**
|
|
19
19
|
* Append new items to the message history
|
|
20
20
|
*/
|
|
21
|
-
export declare function appendToMessages(current: models.
|
|
21
|
+
export declare function appendToMessages(current: models.OpenResponsesInputUnion, newItems: models.OpenResponsesInputUnion1[]): models.OpenResponsesInputUnion;
|
|
22
22
|
/**
|
|
23
23
|
* Check if a tool call requires approval
|
|
24
24
|
* @param toolCall - The tool call to check
|
|
@@ -5,10 +5,11 @@ import { normalizeInputToArray } from './turn-context.js';
|
|
|
5
5
|
function isValidUnsentToolResult(obj) {
|
|
6
6
|
if (typeof obj !== 'object' || obj === null)
|
|
7
7
|
return false;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
'
|
|
8
|
+
return ('callId' in obj &&
|
|
9
|
+
typeof obj.callId === 'string' &&
|
|
10
|
+
'name' in obj &&
|
|
11
|
+
typeof obj.name === 'string' &&
|
|
12
|
+
'output' in obj);
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
15
|
* Type guard to verify an object is a valid ParsedToolCall
|
|
@@ -16,10 +17,11 @@ function isValidUnsentToolResult(obj) {
|
|
|
16
17
|
function isValidParsedToolCall(obj) {
|
|
17
18
|
if (typeof obj !== 'object' || obj === null)
|
|
18
19
|
return false;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
'
|
|
20
|
+
return ('id' in obj &&
|
|
21
|
+
typeof obj.id === 'string' &&
|
|
22
|
+
'name' in obj &&
|
|
23
|
+
typeof obj.name === 'string' &&
|
|
24
|
+
'arguments' in obj);
|
|
23
25
|
}
|
|
24
26
|
/**
|
|
25
27
|
* Generate a unique ID for a conversation
|
|
@@ -156,9 +158,9 @@ export function extractTextFromResponse(response) {
|
|
|
156
158
|
const outputs = Array.isArray(response.output) ? response.output : [response.output];
|
|
157
159
|
const textParts = [];
|
|
158
160
|
for (const item of outputs) {
|
|
159
|
-
if (item.type === 'message' && item.content) {
|
|
161
|
+
if (item.type === 'message' && 'content' in item && item.content) {
|
|
160
162
|
for (const content of item.content) {
|
|
161
|
-
if (content.type === 'output_text' && content.text) {
|
|
163
|
+
if (content.type === 'output_text' && 'text' in content && content.text) {
|
|
162
164
|
textParts.push(content.text);
|
|
163
165
|
}
|
|
164
166
|
}
|
|
@@ -176,31 +178,32 @@ export function extractToolCallsFromResponse(response) {
|
|
|
176
178
|
const outputs = Array.isArray(response.output) ? response.output : [response.output];
|
|
177
179
|
const toolCalls = [];
|
|
178
180
|
for (const item of outputs) {
|
|
179
|
-
if (item.type
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
// Log warning and skip malformed tool call, similar to stream-transformers.ts
|
|
187
|
-
console.warn(`Failed to parse arguments for tool call "${item.name}": ${error instanceof Error ? error.message : String(error)}`);
|
|
188
|
-
continue;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
parsedArguments = item.arguments;
|
|
181
|
+
if (item.type !== 'function_call' || !('arguments' in item)) {
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
let parsedArguments;
|
|
185
|
+
if (typeof item.arguments === 'string') {
|
|
186
|
+
try {
|
|
187
|
+
parsedArguments = JSON.parse(item.arguments);
|
|
193
188
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
name
|
|
197
|
-
|
|
198
|
-
};
|
|
199
|
-
if (!isValidParsedToolCall(toolCall)) {
|
|
200
|
-
throw new Error(`Invalid tool call structure for tool: ${item.name}`);
|
|
189
|
+
catch (error) {
|
|
190
|
+
// Log warning and skip malformed tool call, similar to stream-transformers.ts
|
|
191
|
+
console.warn(`Failed to parse arguments for tool call "${'name' in item ? item.name : 'unknown'}": ${error instanceof Error ? error.message : String(error)}`);
|
|
192
|
+
continue;
|
|
201
193
|
}
|
|
202
|
-
toolCalls.push(toolCall);
|
|
203
194
|
}
|
|
195
|
+
else {
|
|
196
|
+
parsedArguments = item.arguments;
|
|
197
|
+
}
|
|
198
|
+
const toolCall = {
|
|
199
|
+
id: ('callId' in item ? item.callId : undefined) ?? item.id ?? '',
|
|
200
|
+
name: ('name' in item ? item.name : undefined) ?? '',
|
|
201
|
+
arguments: parsedArguments,
|
|
202
|
+
};
|
|
203
|
+
if (!isValidParsedToolCall(toolCall)) {
|
|
204
|
+
throw new Error(`Invalid tool call structure for tool: ${toolCall.name}`);
|
|
205
|
+
}
|
|
206
|
+
toolCalls.push(toolCall);
|
|
204
207
|
}
|
|
205
208
|
return toolCalls;
|
|
206
209
|
}
|
package/esm/lib/env.d.ts
CHANGED
|
@@ -7,9 +7,13 @@ export interface Env {
|
|
|
7
7
|
*/
|
|
8
8
|
OPENROUTER_HTTP_REFERER?: string | undefined;
|
|
9
9
|
/**
|
|
10
|
-
* Sets the
|
|
10
|
+
* Sets the appTitle parameter for all supported operations
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
OPENROUTER_APP_TITLE?: string | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Sets the appCategories parameter for all supported operations
|
|
15
|
+
*/
|
|
16
|
+
OPENROUTER_APP_CATEGORIES?: string | undefined;
|
|
13
17
|
OPENROUTER_DEBUG?: boolean | undefined;
|
|
14
18
|
}
|
|
15
19
|
export declare const envSchema: z.ZodType<Env, unknown>;
|