diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 1bf907683..0044ffe69 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: "" id: "" management: - docChecksum: e6cd84f8bf1959ada801dc195a7cba3b + docChecksum: 67da7fd67895c381ff5bcc5c732f2849 docVersion: 1.0.0 speakeasyVersion: 1.787.0 generationVersion: 2.914.0 - releaseVersion: 1.3.23 - configChecksum: ae14bc8e9a620a5eb1725abe5a823297 + releaseVersion: 1.3.24 + configChecksum: 52a19d00a7745622fb6f9f2c44629e1e repoURL: https://github.com/OpenRouterTeam/typescript-sdk.git installationURL: https://github.com/OpenRouterTeam/typescript-sdk published: true persistentEdits: - generation_id: d6b67e9c-312e-484d-b345-6a30b51fceba - pristine_commit_hash: fd241eb35afe2867c1860a5b9589fbea6c9b765d - pristine_tree_hash: 7b5b81f7a2a829875c35e84785f58d0e0820ce95 + generation_id: b8f5e0f8-5a83-48d1-abf7-fef3f1d201ee + pristine_commit_hash: 99b22d19edce2b5b5313d3ca58b5d18693998463 + pristine_tree_hash: af1f9a96625e38b8b6ed71cc7bfb4dc730c5595b features: typescript: acceptHeaders: 2.81.2 @@ -11018,8 +11018,8 @@ trackedFiles: pristine_git_object: 8a0a8f31cac3bfabf0b5cda641857a18ec0d930f docs/models/providerpreferences.mdx: id: f2ed5f9ca276 - last_write_checksum: sha1:f460e6557b976cb46e147d334adec10b40f33de2 - pristine_git_object: 5127e87a05fde3b92a7f79ecca9267ad6d1fc442 + last_write_checksum: sha1:698499317c5c149964500c7022f6448b3c7abf9a + pristine_git_object: 6d071b02e47d91dc2171d35556c9e2d5fd71b9b4 docs/models/providerpreferencesignore.mdx: id: d1540b827a2f last_write_checksum: sha1:20efb59580efd1f626045d9f644513c8755418e7 @@ -13846,12 +13846,12 @@ trackedFiles: pristine_git_object: 410efafd6a7f50d91ccb87131fedbe0c3d47e15a jsr.json: id: 7f6ab7767282 - last_write_checksum: sha1:1f24fea8165cb89d565657a595a1e1c28b4165fa - pristine_git_object: b1dc5951631911c6a1950dfaeca70b4de8b014c0 + last_write_checksum: sha1:be3d930c53234272996351afffa2bc4d7f45ef3d + pristine_git_object: 6ab08e9c0bbdcfc6975eccd077e5a090818176d8 package.json: id: 7030d0b2f71b - last_write_checksum: sha1:5951316670dff7ed3fc37c4a3f44ab4f87603664 - pristine_git_object: 1038f6821c0bb838b4e7d86d826d4dadbd6cd348 + last_write_checksum: sha1:ceb409a77e57906afa1dce818e167bb77d254f4b + pristine_git_object: c51e7de8b4bbba2e08c29332a1facdae77c35731 src/core.ts: id: f431fdbcd144 last_write_checksum: sha1:5aa66b0b6a5964f3eea7f3098c2eb3c0ee9c0131 @@ -14366,8 +14366,8 @@ trackedFiles: pristine_git_object: a187e58707bdb726ca2aff74941efe7493422d4e src/lib/config.ts: id: 320761608fb3 - last_write_checksum: sha1:03912a05acdb18ac72e3268e94d33500c1122205 - pristine_git_object: 6bd1fc4b835f0170acafef3496b788437bb52662 + last_write_checksum: sha1:2113f7a00ec5722edb127267086ac709f844b63f + pristine_git_object: 8700876d66d4a60f1c4a708fffe710f459671dd9 src/lib/dlv.ts: id: b1988214835a last_write_checksum: sha1:eaac763b22717206a6199104e0403ed17a4e2711 @@ -17096,8 +17096,8 @@ trackedFiles: pristine_git_object: df30cc9421746c494f22787f735bf63b0cbd0b92 src/models/providerpreferences.ts: id: 3a47295d7b91 - last_write_checksum: sha1:23155d98eaf184e1c99ef049dbbe30fef503152b - pristine_git_object: 8632e02383672b1134a140e599cec36403eb175b + last_write_checksum: sha1:2ff8714e07ce4f49e86f5dc9e6c2d82f65634362 + pristine_git_object: 59f176460f7d485d697eb3edfa8ceec3dc7c0983 src/models/providerresponse.ts: id: 7427d17a27bc last_write_checksum: sha1:2b932f19635d8c9bf1ac56637cbc5d52cc017afc @@ -21262,4 +21262,4 @@ examples: "500": application/json: {"error": {"code": 409, "message": "That question is no longer waiting for an answer."}} examplesVersion: 1.0.2 -releaseNotes: "## Typescript SDK Changes:\n* `openrouter.presets.createPresetsResponses()`: \n * `request.responsesRequest.input.union(Array<>)[]` **Changed** (Breaking ⚠️)\n* `openrouter.responses.send()`: \n * `request.responsesRequest.input.union(Array<>)[]` **Changed** (Breaking ⚠️)\n * `response` **Changed** (Breaking ⚠️)\n* `openrouter.beta.responses.send()`: \n * `request.responsesRequest.input.union(Array<>)[]` **Changed** (Breaking ⚠️)\n * `response` **Changed** (Breaking ⚠️)\n" +releaseNotes: "## Typescript SDK Changes:\n* `openrouter.alpha.decisions.create()`: \n * `request.decisionsRequest.provider.options` **Added**\n* `openrouter.chat.send()`: \n * `request.chatRequest.provider.options` **Added**\n* `openrouter.embeddings.generate()`: \n * `request.requestBody.provider.options` **Added**\n* `openrouter.presets.createPresetsChatCompletions()`: \n * `request.chatRequest.provider.options` **Added**\n* `openrouter.presets.createPresetsMessages()`: \n * `request.messagesRequest.provider.options` **Added**\n* `openrouter.presets.createPresetsResponses()`: \n * `request.responsesRequest.provider.options` **Added**\n* `openrouter.rerank.rerank()`: \n * `request.requestBody.provider.options` **Added**\n* `openrouter.responses.send()`: \n * `request.responsesRequest.provider.options` **Added**\n* `openrouter.beta.responses.send()`: \n * `request.responsesRequest.provider.options` **Added**\n* `openrouter.systemOne.create()`: \n * `request.decisionsRequest.provider.options` **Added**\n" diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 694df2af3..aca89a60b 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -37,7 +37,7 @@ generation: documentation: mintlify preApplyUnionDiscriminators: true typescript: - version: 1.3.23 + version: 1.3.24 acceptHeaderEnum: false additionalDependencies: dependencies: diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index b15863097..2d6358a93 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -23631,6 +23631,8 @@ components: type: - 'array' - 'null' + options: + $ref: '#/components/schemas/ProviderOptions' order: description: 'An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message.' example: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 228b68ab7..f131d70b4 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -2,8 +2,8 @@ speakeasyVersion: 1.787.0 sources: OpenRouter API: sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:2de2501c0c155289805b42b71bd8008f8bb86c78e1052c93ebceaa1d379230e0 - sourceBlobDigest: sha256:0c435ab79c2de6229704b694c2999fb612dcf404f925a3782a8c553f57088de5 + sourceRevisionDigest: sha256:426b8c712b132624c2f8f9ca5e4400e4805127f2cdff1332cb51760ed5c78235 + sourceBlobDigest: sha256:ca8be6156df91d8fae7e9bb738f971cb1a2272bce01c013f1f072913eec1744b tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: openrouter: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:2de2501c0c155289805b42b71bd8008f8bb86c78e1052c93ebceaa1d379230e0 - sourceBlobDigest: sha256:0c435ab79c2de6229704b694c2999fb612dcf404f925a3782a8c553f57088de5 + sourceRevisionDigest: sha256:426b8c712b132624c2f8f9ca5e4400e4805127f2cdff1332cb51760ed5c78235 + sourceBlobDigest: sha256:ca8be6156df91d8fae7e9bb738f971cb1a2272bce01c013f1f072913eec1744b codeSamplesNamespace: open-router-chat-completions-api-typescript-code-samples - codeSamplesRevisionDigest: sha256:59e388d552f6b69470b57f6f0c7c6363fad02a92a14fbc2fb1cd3cc40880d1d4 + codeSamplesRevisionDigest: sha256:2930669fabec8877653dd3196fda7a519ac94419beba4b079e49484e266f5ccc workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.787.0 diff --git a/RELEASES.md b/RELEASES.md index 5c33be93b..33e766d80 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -4016,4 +4016,14 @@ Based on: ### Generated - [typescript v1.3.23] . ### Releases -- [NPM v1.3.23] https://www.npmjs.com/package/@openrouter/sdk/v/1.3.23 - . \ No newline at end of file +- [NPM v1.3.23] https://www.npmjs.com/package/@openrouter/sdk/v/1.3.23 - . + +## 2026-09-24 17:37:18 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [typescript v1.3.24] . +### Releases +- [NPM v1.3.24] https://www.npmjs.com/package/@openrouter/sdk/v/1.3.24 - . \ No newline at end of file diff --git a/docs/models/providerpreferences.mdx b/docs/models/providerpreferences.mdx index 5127e87a0..6d071b02e 100644 --- a/docs/models/providerpreferences.mdx +++ b/docs/models/providerpreferences.mdx @@ -22,6 +22,7 @@ let value: ProviderPreferences = {}; | `ignore` | *models.ProviderPreferencesIgnore*[] | :heavy_minus_sign: | List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider settings for this request. | [
"openai",
"anthropic"
] | | `maxPrice` | [models.MaxPrice](../models/maxprice.mdx) | :heavy_minus_sign: | The object specifying the maximum price you want to pay for this request. USD price per million tokens, for prompt and completion. | | | `only` | *models.ProviderPreferencesOnly*[] | :heavy_minus_sign: | List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request. | [
"openai",
"anthropic"
] | +| `options` | [models.ProviderOptions](../models/provideroptions.mdx) | :heavy_minus_sign: | Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped. | \{
"openai": \{
"max_tokens": 1000
}
} | | `order` | *models.ProviderPreferencesOrder*[] | :heavy_minus_sign: | An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message. | [
"openai",
"anthropic"
] | | `preferredMaxLatency` | *models.PreferredMaxLatency* | :heavy_minus_sign: | Preferred maximum latency (in seconds). Can be a number (applies to p50) or an object with percentile-specific cutoffs. Endpoints above the threshold(s) may still be used, but are deprioritized in routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if it meets the threshold. | 5 | | `preferredMinThroughput` | *models.PreferredMinThroughput* | :heavy_minus_sign: | Preferred minimum throughput (in tokens per second). Can be a number (applies to p50) or an object with percentile-specific cutoffs. Endpoints below the threshold(s) may still be used, but are deprioritized in routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if it meets the threshold. | 100 | diff --git a/jsr.json b/jsr.json index b1dc59516..6ab08e9c0 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@openrouter/sdk", - "version": "1.3.23", + "version": "1.3.24", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package.json b/package.json index 1038f6821..c51e7de8b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@openrouter/sdk", - "version": "1.3.23", + "version": "1.3.24", "author": "OpenRouter", "description": "The OpenRouter TypeScript SDK is a type-safe toolkit for building AI applications with access to 400+ language models through a unified API.", "keywords": [ @@ -73,15 +73,15 @@ "lint": "eslint --cache --max-warnings=0 src", "build": "tsc && node scripts/unbarrel-imports.js", "prepublishOnly": "npm run build", - "test:transit": "exit 0", "typecheck": "tsc --noEmit", + "typecheck:transit": "exit 0", "postinstall": "node scripts/check-types.js || true", - "prepare": "npm run build", "test": "vitest --run --project unit", "test:e2e": "vitest --run --project e2e", - "test:watch": "vitest --watch --project unit", - "typecheck:transit": "exit 0", - "compile": "tsc && node scripts/unbarrel-imports.js" + "compile": "tsc && node scripts/unbarrel-imports.js", + "prepare": "npm run build", + "test:transit": "exit 0", + "test:watch": "vitest --watch --project unit" }, "peerDependencies": { diff --git a/src/lib/config.ts b/src/lib/config.ts index ee3477295..acd70fed7 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -79,7 +79,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0.0", - sdkVersion: "1.3.23", + sdkVersion: "1.3.24", genVersion: "2.914.0", - userAgent: "speakeasy-sdk/typescript 1.3.23 2.914.0 1.0.0 @openrouter/sdk", + userAgent: "speakeasy-sdk/typescript 1.3.24 2.914.0 1.0.0 @openrouter/sdk", } as const; diff --git a/src/models/providerpreferences.ts b/src/models/providerpreferences.ts index 8632e0238..59f176460 100644 --- a/src/models/providerpreferences.ts +++ b/src/models/providerpreferences.ts @@ -18,6 +18,11 @@ import { PreferredMinThroughput$outboundSchema, } from "./preferredminthroughput.js"; import { ProviderName, ProviderName$outboundSchema } from "./providername.js"; +import { + ProviderOptions, + ProviderOptions$Outbound, + ProviderOptions$outboundSchema, +} from "./provideroptions.js"; import { ProviderSort, ProviderSort$outboundSchema } from "./providersort.js"; import { ProviderSortConfig, @@ -122,6 +127,10 @@ export type ProviderPreferences = { * List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request. */ only?: Array | null | undefined; + /** + * Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped. + */ + options?: ProviderOptions | undefined; /** * An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message. */ @@ -257,6 +266,7 @@ export type ProviderPreferences$Outbound = { ignore?: Array | null | undefined; max_price?: MaxPrice$Outbound | undefined; only?: Array | null | undefined; + options?: ProviderOptions$Outbound | undefined; order?: Array | null | undefined; preferred_max_latency?: PreferredMaxLatency$Outbound | null | undefined; preferred_min_throughput?: PreferredMinThroughput$Outbound | null | undefined; @@ -280,6 +290,7 @@ export const ProviderPreferences$outboundSchema: z.ZodType< maxPrice: z.lazy(() => MaxPrice$outboundSchema).optional(), only: z.nullable(z.array(z.union([ProviderName$outboundSchema, z.string()]))) .optional(), + options: ProviderOptions$outboundSchema.optional(), order: z.nullable(z.array(z.union([ProviderName$outboundSchema, z.string()]))) .optional(), preferredMaxLatency: z.nullable(PreferredMaxLatency$outboundSchema)