diff --git a/dist/index.d.mts b/dist/index.d.mts index 0055af0c73ad638a59df92fa5d46edc7995da151..f9b8eff0f1ceca6e1077d60117690f93b01fd162 100644 --- a/dist/index.d.mts +++ b/dist/index.d.mts @@ -398,6 +398,7 @@ type OpenRouterProviderOptions = { * help OpenRouter to monitor and detect abuse. */ user?: string; + strictJsonSchema?: boolean; }; type OpenRouterSharedSettings = OpenRouterProviderOptions & { /** diff --git a/dist/index.d.ts b/dist/index.d.ts index 0055af0c73ad638a59df92fa5d46edc7995da151..f9b8eff0f1ceca6e1077d60117690f93b01fd162 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -398,6 +398,7 @@ type OpenRouterProviderOptions = { * help OpenRouter to monitor and detect abuse. */ user?: string; + strictJsonSchema?: boolean; }; type OpenRouterSharedSettings = OpenRouterProviderOptions & { /** diff --git a/dist/index.js b/dist/index.js index 3c6c1b100611983d32172288e9e40a1e6736320d..5dd9fcc359de1f6009d8fbeebb2343dc5fa5a515 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2585,7 +2585,8 @@ var OpenRouterProviderOptionsSchema = import_v43.z.object({ // (e.g., a future format not yet in the enum) is individually dropped // rather than causing the entire array to fail parsing. reasoning_details: ReasoningDetailArraySchema.optional(), - annotations: import_v43.z.array(FileAnnotationSchema).optional() + annotations: import_v43.z.array(FileAnnotationSchema).optional(), + strictJsonSchema: import_v43.z.boolean().optional() }).optional() }).optional(); @@ -3548,7 +3549,8 @@ var OpenRouterChatLanguageModel = class { responseFormat, topK, tools, - toolChoice + toolChoice, + providerOptions }) { var _a16, _b16, _c, _d; const baseArgs = __spreadValues(__spreadValues({ @@ -3607,7 +3609,8 @@ var OpenRouterChatLanguageModel = class { function: { name: tool2.name, description: tool2.description, - parameters: tool2.inputSchema + parameters: tool2.inputSchema, + strict: providerOptions?.openrouter?.strictJsonSchema } }, eagerInputStreaming != null && { eager_input_streaming: eagerInputStreaming @@ -3627,7 +3630,7 @@ var OpenRouterChatLanguageModel = class { var _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v; const providerOptions = options.providerOptions || {}; const openrouterOptions = providerOptions.openrouter || {}; - const _a16 = openrouterOptions, { cacheControl } = _a16, restOpenrouterOptions = __objRest(_a16, ["cacheControl"]); + const _a16 = openrouterOptions, { cacheControl, strictJsonSchema: _strictJsonSchema } = _a16, restOpenrouterOptions = __objRest(_a16, ["cacheControl", "strictJsonSchema"]); const args = __spreadValues(__spreadValues(__spreadValues({}, this.getArgs(options)), restOpenrouterOptions), cacheControl != null && !("cache_control" in restOpenrouterOptions) ? { cache_control: cacheControl } : {}); const { value: responseValue, responseHeaders } = await postJsonToApi({ url: this.config.url({ @@ -3822,7 +3825,7 @@ var OpenRouterChatLanguageModel = class { var _b16; const providerOptions = options.providerOptions || {}; const openrouterOptions = providerOptions.openrouter || {}; - const _a16 = openrouterOptions, { cacheControl } = _a16, restOpenrouterOptions = __objRest(_a16, ["cacheControl"]); + const _a16 = openrouterOptions, { cacheControl, strictJsonSchema: _strictJsonSchema } = _a16, restOpenrouterOptions = __objRest(_a16, ["cacheControl", "strictJsonSchema"]); const args = __spreadValues(__spreadValues(__spreadValues({}, this.getArgs(options)), restOpenrouterOptions), cacheControl != null && !("cache_control" in restOpenrouterOptions) ? { cache_control: cacheControl } : {}); const { value: response, responseHeaders } = await postJsonToApi({ url: this.config.url({ @@ -4542,7 +4545,7 @@ var OpenRouterCompletionLanguageModel = class { async doGenerate(options) { var _a16, _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q; const providerOptions = options.providerOptions || {}; - const openrouterOptions = providerOptions.openrouter || {}; + const { strictJsonSchema: _strictJsonSchema, ...openrouterOptions } = providerOptions.openrouter || {}; const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions); const { value: response, responseHeaders } = await postJsonToApi({ url: this.config.url({ @@ -4617,7 +4620,7 @@ var OpenRouterCompletionLanguageModel = class { } async doStream(options) { const providerOptions = options.providerOptions || {}; - const openrouterOptions = providerOptions.openrouter || {}; + const { strictJsonSchema: _strictJsonSchema, ...openrouterOptions } = providerOptions.openrouter || {}; const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions); const { value: response, responseHeaders } = await postJsonToApi({ url: this.config.url({ diff --git a/dist/index.mjs b/dist/index.mjs index 6320306870c5f3ce5439f068b32b2848f6cb0c7e..01862a6c5693445f87397f0639eb6f034ca5909f 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -2552,7 +2552,8 @@ var OpenRouterProviderOptionsSchema = z3.object({ // (e.g., a future format not yet in the enum) is individually dropped // rather than causing the entire array to fail parsing. reasoning_details: ReasoningDetailArraySchema.optional(), - annotations: z3.array(FileAnnotationSchema).optional() + annotations: z3.array(FileAnnotationSchema).optional(), + strictJsonSchema: z3.boolean().optional() }).optional() }).optional(); @@ -3515,7 +3516,8 @@ var OpenRouterChatLanguageModel = class { responseFormat, topK, tools, - toolChoice + toolChoice, + providerOptions }) { var _a16, _b16, _c, _d; const baseArgs = __spreadValues(__spreadValues({ @@ -3574,7 +3576,8 @@ var OpenRouterChatLanguageModel = class { function: { name: tool2.name, description: tool2.description, - parameters: tool2.inputSchema + parameters: tool2.inputSchema, + strict: providerOptions?.openrouter?.strictJsonSchema } }, eagerInputStreaming != null && { eager_input_streaming: eagerInputStreaming @@ -3594,7 +3597,7 @@ var OpenRouterChatLanguageModel = class { var _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v; const providerOptions = options.providerOptions || {}; const openrouterOptions = providerOptions.openrouter || {}; - const _a16 = openrouterOptions, { cacheControl } = _a16, restOpenrouterOptions = __objRest(_a16, ["cacheControl"]); + const _a16 = openrouterOptions, { cacheControl, strictJsonSchema: _strictJsonSchema } = _a16, restOpenrouterOptions = __objRest(_a16, ["cacheControl", "strictJsonSchema"]); const args = __spreadValues(__spreadValues(__spreadValues({}, this.getArgs(options)), restOpenrouterOptions), cacheControl != null && !("cache_control" in restOpenrouterOptions) ? { cache_control: cacheControl } : {}); const { value: responseValue, responseHeaders } = await postJsonToApi({ url: this.config.url({ @@ -3789,7 +3792,7 @@ var OpenRouterChatLanguageModel = class { var _b16; const providerOptions = options.providerOptions || {}; const openrouterOptions = providerOptions.openrouter || {}; - const _a16 = openrouterOptions, { cacheControl } = _a16, restOpenrouterOptions = __objRest(_a16, ["cacheControl"]); + const _a16 = openrouterOptions, { cacheControl, strictJsonSchema: _strictJsonSchema } = _a16, restOpenrouterOptions = __objRest(_a16, ["cacheControl", "strictJsonSchema"]); const args = __spreadValues(__spreadValues(__spreadValues({}, this.getArgs(options)), restOpenrouterOptions), cacheControl != null && !("cache_control" in restOpenrouterOptions) ? { cache_control: cacheControl } : {}); const { value: response, responseHeaders } = await postJsonToApi({ url: this.config.url({ @@ -4509,7 +4512,7 @@ var OpenRouterCompletionLanguageModel = class { async doGenerate(options) { var _a16, _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q; const providerOptions = options.providerOptions || {}; - const openrouterOptions = providerOptions.openrouter || {}; + const { strictJsonSchema: _strictJsonSchema, ...openrouterOptions } = providerOptions.openrouter || {}; const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions); const { value: response, responseHeaders } = await postJsonToApi({ url: this.config.url({ @@ -4584,7 +4587,7 @@ var OpenRouterCompletionLanguageModel = class { } async doStream(options) { const providerOptions = options.providerOptions || {}; - const openrouterOptions = providerOptions.openrouter || {}; + const { strictJsonSchema: _strictJsonSchema, ...openrouterOptions } = providerOptions.openrouter || {}; const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions); const { value: response, responseHeaders } = await postJsonToApi({ url: this.config.url({