From 62854d582400610e85d3e8f683cf4b874b93d5f3 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Tue, 27 Oct 2026 17:43:00 +0000 Subject: [PATCH 1/2] ## Typescript SDK Changes: * `openrouter.alpha.decisions.create()`: * `request.decisionsRequest.assets` **Added** * `openrouter.systemOne.create()`: * `request.decisionsRequest.assets` **Added** --- .speakeasy/gen.lock | 70 +++++++++++------- .speakeasy/gen.yaml | 2 +- .speakeasy/out.openapi.yaml | 28 +++++++ .speakeasy/workflow.lock | 10 +-- RELEASES.md | 12 ++- docs/models/decisionsimageasset.mdx | 24 ++++++ docs/models/decisionsimageassetformat.mdx | 19 +++++ docs/models/decisionsimageassettype.mdx | 17 +++++ docs/models/decisionsrequest.mdx | 19 ++--- .../{formatenum.mdx => inputaudioformat.mdx} | 6 +- docs/models/inputaudioinputaudio.mdx | 8 +- jsr.json | 2 +- package.json | 10 +-- src/lib/config.ts | 4 +- src/models/decisionsimageasset.ts | 74 +++++++++++++++++++ src/models/decisionsrequest.ts | 11 +++ src/models/index.ts | 1 + src/models/inputaudio.ts | 22 +++--- 18 files changed, 272 insertions(+), 67 deletions(-) create mode 100644 docs/models/decisionsimageasset.mdx create mode 100644 docs/models/decisionsimageassetformat.mdx create mode 100644 docs/models/decisionsimageassettype.mdx rename docs/models/{formatenum.mdx => inputaudioformat.mdx} (60%) create mode 100644 src/models/decisionsimageasset.ts diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index f44b85249..5b398a237 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: "" id: "" management: - docChecksum: c9f890b0cf83340464ac12ed871d03b5 + docChecksum: 994b0f9ce9fbeec025d2b04b944d7886 docVersion: 1.0.0 speakeasyVersion: 1.802.0 generationVersion: 2.948.4 - releaseVersion: 1.5.12 - configChecksum: 14b7c6753aa315d1e6a9f04fedb04ba7 + releaseVersion: 1.5.13 + configChecksum: 189a27e450c80c7bf20243c1651daaa4 repoURL: https://github.com/OpenRouterTeam/typescript-sdk.git installationURL: https://github.com/OpenRouterTeam/typescript-sdk published: true persistentEdits: - generation_id: c5d90c2a-d4e9-4f07-a447-8087768c074c - pristine_commit_hash: fd3edf69f3e77e8052d9e9c52d4bf5f88c3bc04b - pristine_tree_hash: 538f1ee5b939c8d040881e2f8877aeff9363ee4a + generation_id: 74a2214c-2809-4ad3-ae92-81741a99b12a + pristine_commit_hash: 30a2587d0b9eb0b5820506d30c6c79bbc295e163 + pristine_tree_hash: 58cbee426c7af2e326972238f4e54b07e9a4434e features: typescript: acceptHeaders: 2.81.2 @@ -4305,6 +4305,18 @@ trackedFiles: id: da87fadfd34f last_write_checksum: sha1:52e137994582816b0e80fba3333f57ab5e38503c pristine_git_object: d21c978f3c7eca3963565ad2aec15d1760d38de2 + docs/models/decisionsimageasset.mdx: + id: 4426174c7eb6 + last_write_checksum: sha1:76fc0d087f9b4470b84e0cfcb80fd50a177c683d + pristine_git_object: 6c4b61c3f61bfbd3d9fdafaae6158ab8c82ed3e2 + docs/models/decisionsimageassetformat.mdx: + id: a5886fdac244 + last_write_checksum: sha1:8bdb6cad6586abd721bbaee96ce80b3c1a6025fa + pristine_git_object: 04b4d2127547e11e72928749033ce42f557fd478 + docs/models/decisionsimageassettype.mdx: + id: 1a2f230ada7f + last_write_checksum: sha1:ec202d725a72d10a2da97d2580aefede35a774db + pristine_git_object: 581cb58acec456a9287314ef7518e958635bfddf docs/models/decisionsnoulanswer.mdx: id: dde88697c689 last_write_checksum: sha1:306bd9aaa438b8f6109cd9201e2831c2417532e4 @@ -4323,8 +4335,8 @@ trackedFiles: pristine_git_object: 47f98730a5700349a662891d4670a645fb1d0e71 docs/models/decisionsrequest.mdx: id: 8002d8d4ad92 - last_write_checksum: sha1:43f1ec7d23027ce7594b6c684c6e21a0295ff0e8 - pristine_git_object: daa8153079e92a1a37039814e7eba001f430b683 + last_write_checksum: sha1:d41cb5b3f96943b0ec93264c4d4c6bbb30ff7189 + pristine_git_object: cbdebc8cce9ec7cca88071961823b71518d643fc docs/models/decisionsresponse.mdx: id: e2be79e574d8 last_write_checksum: sha1:8cb15a1c1bc0859c7421dbd9a57fc7ccd87b80b8 @@ -5001,10 +5013,6 @@ trackedFiles: last_write_checksum: sha1:7a8d68b70b9d7c300bd14cf2801b03392af57f09 pristine_git_object: 25dbcf70cdc2f8dd25eee7c98cbb3c6aff520624 deleted: true - docs/models/formatenum.mdx: - id: 28a61c9d0ea9 - last_write_checksum: sha1:03d2cab97803e58f322232ebc5a1b9526db77feb - pristine_git_object: 35875715687114c665a3bc980dba3feeef5c979b docs/models/formatgrammar.md: id: dbda5ad4fee4 last_write_checksum: sha1:5ebfc958ce5d4f3812a1cadcc5addb51087990fe @@ -5983,6 +5991,10 @@ trackedFiles: last_write_checksum: sha1:9794664a5ec3c5e2b730900b5f781c3c32ab89e1 pristine_git_object: 2963708be20103059fac937356b03d4161969217 deleted: true + docs/models/inputaudioformat.mdx: + id: f9189f3d07b5 + last_write_checksum: sha1:dea4f308471a074ea22f2400b36908dcdd91bd17 + pristine_git_object: ab62cd475d3235435f3a311a32259d02ec064b36 docs/models/inputaudioinputaudio.md: id: f0d13f50558d last_write_checksum: sha1:ada9800494d5bbdba3d8c1d27f93733a8b07fd71 @@ -5990,8 +6002,8 @@ trackedFiles: deleted: true docs/models/inputaudioinputaudio.mdx: id: 8fce20aeda35 - last_write_checksum: sha1:99fcaf7534ffe05d76bb7f1b63c5d9c2ae369742 - pristine_git_object: d6d649462d953b6ea2848df5048889ce57736071 + last_write_checksum: sha1:827a7d5de161fd0ef0be8a33c8e13761e4496fcb + pristine_git_object: a97f611eb8fc9309bbb66f2083029892259de524 docs/models/inputfidelity.md: id: f19e94e3f06b last_write_checksum: sha1:0c773bdb0e02c5a69c18773b159b396e434af484 @@ -15415,12 +15427,12 @@ trackedFiles: pristine_git_object: 410efafd6a7f50d91ccb87131fedbe0c3d47e15a jsr.json: id: 7f6ab7767282 - last_write_checksum: sha1:3addaa8d37fde13bb3e5fe68a9456d680f028c67 - pristine_git_object: 5ac64d087b27896e6dcd049f776a0d05ecb9de88 + last_write_checksum: sha1:5eee98e025da86a69a50cc64fee5e839ad5253c3 + pristine_git_object: 619dd3cd0d56f972474e317f767883683212dedd package.json: id: 7030d0b2f71b - last_write_checksum: sha1:c0abec4cb17b9275f02c645ab5dd7ceb6dfef3b3 - pristine_git_object: 6f41328bb4dbb21edd963e4d33049e4f01024a6d + last_write_checksum: sha1:632a2ad7347e07b882604a764bdc30999ee5d3b4 + pristine_git_object: 5d2c14c27372bbb607ea8f85708a577a8f291ff5 src/core.ts: id: f431fdbcd144 last_write_checksum: sha1:5aa66b0b6a5964f3eea7f3098c2eb3c0ee9c0131 @@ -16003,8 +16015,8 @@ trackedFiles: pristine_git_object: a187e58707bdb726ca2aff74941efe7493422d4e src/lib/config.ts: id: 320761608fb3 - last_write_checksum: sha1:6f4d5cd561eea73b02525ea35db19a73f593ed90 - pristine_git_object: 87d344092d5769f8a81d20fae1ac613fc0148288 + last_write_checksum: sha1:dc64f4737203cea1bf9c39f1db761cd7f779e332 + pristine_git_object: 11083b91d9970f23385912fefa76a2e591a6cdd0 src/lib/dlv.ts: id: b1988214835a last_write_checksum: sha1:eaac763b22717206a6199104e0403ed17a4e2711 @@ -17255,6 +17267,10 @@ trackedFiles: id: 47fb575187d1 last_write_checksum: sha1:1499e92c6c5d49b5f23e6d5ae3da990ca4532f62 pristine_git_object: 5221427a4c49746499d573d4a2ded3c7c7a9635d + src/models/decisionsimageasset.ts: + id: 4869a6173b1c + last_write_checksum: sha1:8700ca768ecbdbde19ee8b47f18c5deb7ea4cf1b + pristine_git_object: 751b78b5dc49888617a854a9027379c542e3b530 src/models/decisionsnoulanswer.ts: id: da6d759cdb2f last_write_checksum: sha1:e72f49202a9b8d1af298d29ba8f9098502360d3b @@ -17265,8 +17281,8 @@ trackedFiles: pristine_git_object: a75ace9f2d6e80102ba0cd20a4cd0de1b86f0052 src/models/decisionsrequest.ts: id: 5ff115bbd9a7 - last_write_checksum: sha1:23381df3410ab192b902aa2646f9520ffb5d52a0 - pristine_git_object: 765bf85dbd4b17ce18014aea93247d9db1da7e25 + last_write_checksum: sha1:555ef9a33d100da5c97f1c1b0edf120af033c5f3 + pristine_git_object: ebd94507435fad3be03dc9157faf13b26f4d4e9a src/models/decisionsresponse.ts: id: 5989c9497b2d last_write_checksum: sha1:76b985995b79e0da64ed4f93df1df75716717fff @@ -17825,12 +17841,12 @@ trackedFiles: pristine_git_object: 7abdfe096d3adff317db6837dc689c69db92e127 src/models/index.ts: id: f93644b0f37e - last_write_checksum: sha1:a7c971745d17a86e55d430cb3b18773dd050c31d - pristine_git_object: fbc5712cfd7e1ce7b4c449851dcef64836d60567 + last_write_checksum: sha1:bb24029749949bf9bb8af95c000a7aa9cd381d61 + pristine_git_object: 3b7ae71871f9d95d55bf8552e74965c82af3c2c7 src/models/inputaudio.ts: id: 9bdc14c7565f - last_write_checksum: sha1:2f8dc4c1d6a9c2927d9eb186e0ecedf7b81838e6 - pristine_git_object: ac0dcba364afe51b7c878197209049273cd69002 + last_write_checksum: sha1:cc3b750b39a3c3563b76930fd2989f9bfdb24c1f + pristine_git_object: 4109a621eb85427da98d899f1a237a8257e20e58 src/models/inputfile.ts: id: 21319fb604ac last_write_checksum: sha1:d926e56a7e4742ee261f00d8350e036e7d6ab9e0 @@ -24697,4 +24713,4 @@ examples: "502": application/json: {"error": {"code": 502, "message": "Provider returned error"}} examplesVersion: 1.0.2 -releaseNotes: "## Typescript SDK Changes:\n* `openrouter.privateEndpoints.updateParameters()`: **Added**\n* `openrouter.privateEndpoints.create()`: \n * `request.createPrivateEndpointRequest` **Changed**\n * `response.data.maxCompletionTokens` **Added**\n * `error.union(CreatePrivateEndpointValidationFailedResponse).data` **Changed**\n* `openrouter.privateEndpoints.get()`: `response.data` **Changed**\n* `openrouter.privateEndpoints.update()`: `response.data` **Changed**\n* `openrouter.privateEndpoints.activate()`: `response.data.maxCompletionTokens` **Added**\n* `openrouter.privateEndpoints.disable()`: `response.data.maxCompletionTokens` **Added**\n* `openrouter.privateEndpoints.enable()`: `response.data.maxCompletionTokens` **Added**\n* `openrouter.privateEndpoints.updatePricing()`: `response.data` **Changed**\n* `openrouter.privateEndpoints.validate()`: `response.data.parameters` **Added**\n" +releaseNotes: "## Typescript SDK Changes:\n* `openrouter.alpha.decisions.create()`: \n * `request.decisionsRequest.assets` **Added**\n* `openrouter.systemOne.create()`: \n * `request.decisionsRequest.assets` **Added**\n" diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 8acf43219..a71be2aee 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -37,7 +37,7 @@ generation: documentation: mintlify preApplyUnionDiscriminators: true typescript: - version: 1.5.12 + version: 1.5.13 acceptHeaderEnum: false additionalDependencies: dependencies: diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index 3d66a2e57..6e1b10e20 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -11003,6 +11003,29 @@ components: - 'instructions' - 'criteria' type: 'object' + DecisionsImageAsset: + additionalProperties: false + description: 'An image sent once and referenced by its key in the `assets` map. `data_base64` is the PNG or JPEG file in standard base64 with no `data:` prefix. The multipart `part` field of TypeSafe''s API is not accepted.' + properties: + data_base64: + minLength: 1 + pattern: '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' + type: 'string' + format: + enum: + - 'png' + - 'jpg' + - 'jpeg' + type: 'string' + x-speakeasy-unknown-values: allow + type: + enum: + - 'image' + type: 'string' + required: + - 'format' + - 'data_base64' + type: 'object' DecisionsNoulAnswer: properties: noul: @@ -11058,6 +11081,11 @@ components: type: 'object' DecisionsRequest: properties: + assets: + additionalProperties: + $ref: '#/components/schemas/DecisionsImageAsset' + description: 'Images keyed by reference string, as in TypeSafe''s API. Write a reference wherever the image belongs in `state`, `instructions`, or `criteria`; every asset must be referenced at least once. Jev reads a reference as a whole string value or inside longer text. Other Decisions models read a whole-string reference wherever they read an `image_url` part and reject a reference inside longer text.' + type: 'object' model: type: 'string' provider: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index da1766e4b..e664c7e32 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -2,8 +2,8 @@ speakeasyVersion: 1.802.0 sources: OpenRouter API: sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:b0a0d63fb8ba2a606815d85a30f7a026ce28f24c8c0056d2e9b399ceb6aed6a6 - sourceBlobDigest: sha256:f08a5534613374830d1f780269f0fcecc7bb95c0ffd70cb69f7a2c1957cd606b + sourceRevisionDigest: sha256:c3bc8c6dd91d5a67bbe8f0b4f920bea23c84010cc51edeb70f3ce928a71ace6e + sourceBlobDigest: sha256:1d16b212bb7cd8bda220881b69398b628d10061bde3ec952c30318a978f3a6c6 tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: openrouter: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:b0a0d63fb8ba2a606815d85a30f7a026ce28f24c8c0056d2e9b399ceb6aed6a6 - sourceBlobDigest: sha256:f08a5534613374830d1f780269f0fcecc7bb95c0ffd70cb69f7a2c1957cd606b + sourceRevisionDigest: sha256:c3bc8c6dd91d5a67bbe8f0b4f920bea23c84010cc51edeb70f3ce928a71ace6e + sourceBlobDigest: sha256:1d16b212bb7cd8bda220881b69398b628d10061bde3ec952c30318a978f3a6c6 codeSamplesNamespace: open-router-chat-completions-api-typescript-code-samples - codeSamplesRevisionDigest: sha256:9ac7de60c171070e85329ede46debecc99ce11c9e61ee09354fbdffe4be4ee91 + codeSamplesRevisionDigest: sha256:aafb1f4bf88d12ae23bfea1bc5f88ce07bb9556c21e7433e39710ffa0f104f90 workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.802.0 diff --git a/RELEASES.md b/RELEASES.md index 902727ac6..eeb47ef2c 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -4506,4 +4506,14 @@ Based on: ### Generated - [typescript v1.5.12] . ### Releases -- [NPM v1.5.12] https://www.npmjs.com/package/@openrouter/sdk/v/1.5.12 - . \ No newline at end of file +- [NPM v1.5.12] https://www.npmjs.com/package/@openrouter/sdk/v/1.5.12 - . + +## 2026-10-27 17:39:44 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.802.0 (2.948.4) https://github.com/speakeasy-api/speakeasy +### Generated +- [typescript v1.5.13] . +### Releases +- [NPM v1.5.13] https://www.npmjs.com/package/@openrouter/sdk/v/1.5.13 - . \ No newline at end of file diff --git a/docs/models/decisionsimageasset.mdx b/docs/models/decisionsimageasset.mdx new file mode 100644 index 000000000..6c4b61c3f --- /dev/null +++ b/docs/models/decisionsimageasset.mdx @@ -0,0 +1,24 @@ +--- +title: "DecisionsImageAsset" +--- + +An image sent once and referenced by its key in the `assets` map. `data_base64` is the PNG or JPEG file in standard base64 with no `data:` prefix. The multipart `part` field of TypeSafe's API is not accepted. + +## Example Usage + +```typescript +import { DecisionsImageAsset } from "@openrouter/sdk/models"; + +let value: DecisionsImageAsset = { + dataBase64: "", + format: "png", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `dataBase64` | *string* | ✔️ | N/A | +| `format` | [models.DecisionsImageAssetFormat](../models/decisionsimageassetformat.mdx) | ✔️ | N/A | +| `type` | [models.DecisionsImageAssetType](../models/decisionsimageassettype.mdx) | ➖ | N/A | \ No newline at end of file diff --git a/docs/models/decisionsimageassetformat.mdx b/docs/models/decisionsimageassetformat.mdx new file mode 100644 index 000000000..04b4d2127 --- /dev/null +++ b/docs/models/decisionsimageassetformat.mdx @@ -0,0 +1,19 @@ +--- +title: "DecisionsImageAssetFormat" +--- + +## Example Usage + +```typescript +import { DecisionsImageAssetFormat } from "@openrouter/sdk/models"; + +let value: DecisionsImageAssetFormat = "png"; + +// Open enum: unrecognized values are captured as Unrecognized +``` + +## Values + +```typescript +"png" | "jpg" | "jpeg" | Unrecognized +``` \ No newline at end of file diff --git a/docs/models/decisionsimageassettype.mdx b/docs/models/decisionsimageassettype.mdx new file mode 100644 index 000000000..581cb58ac --- /dev/null +++ b/docs/models/decisionsimageassettype.mdx @@ -0,0 +1,17 @@ +--- +title: "DecisionsImageAssetType" +--- + +## Example Usage + +```typescript +import { DecisionsImageAssetType } from "@openrouter/sdk/models"; + +let value: DecisionsImageAssetType = "image"; +``` + +## Values + +```typescript +"image" +``` \ No newline at end of file diff --git a/docs/models/decisionsrequest.mdx b/docs/models/decisionsrequest.mdx index daa815307..cbdebc8cc 100644 --- a/docs/models/decisionsrequest.mdx +++ b/docs/models/decisionsrequest.mdx @@ -18,12 +18,13 @@ let value: DecisionsRequest = { ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `model` | *string* | ✔️ | N/A | | -| `provider` | [models.ProviderPreferences](../models/providerpreferences.mdx) | ➖ | N/A | \{
"allow_fallbacks": true
} | -| `questions` | Record\ | ✔️ | N/A | | -| `sessionId` | *string* | ➖ | A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. | session-1234 | -| `state` | *models.State* | ✔️ | The content to evaluate: a plain string, or a JSON object or array of related context. | | -| `trace` | [models.TraceConfig](../models/traceconfig.mdx) | ➖ | Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name, parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations. | \{
"trace_id": "trace-abc123",
"trace_name": "my-app-trace"
} | -| `user` | *string* | ➖ | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `assets` | Record\ | ➖ | Images keyed by reference string, as in TypeSafe's API. Write a reference wherever the image belongs in `state`, `instructions`, or `criteria`; every asset must be referenced at least once. Jev reads a reference as a whole string value or inside longer text. Other Decisions models read a whole-string reference wherever they read an `image_url` part and reject a reference inside longer text. | | +| `model` | *string* | ✔️ | N/A | | +| `provider` | [models.ProviderPreferences](../models/providerpreferences.mdx) | ➖ | N/A | \{
"allow_fallbacks": true
} | +| `questions` | Record\ | ✔️ | N/A | | +| `sessionId` | *string* | ➖ | A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. | session-1234 | +| `state` | *models.State* | ✔️ | The content to evaluate: a plain string, or a JSON object or array of related context. | | +| `trace` | [models.TraceConfig](../models/traceconfig.mdx) | ➖ | Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name, parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations. | \{
"trace_id": "trace-abc123",
"trace_name": "my-app-trace"
} | +| `user` | *string* | ➖ | N/A | | \ No newline at end of file diff --git a/docs/models/formatenum.mdx b/docs/models/inputaudioformat.mdx similarity index 60% rename from docs/models/formatenum.mdx rename to docs/models/inputaudioformat.mdx index 358757156..ab62cd475 100644 --- a/docs/models/formatenum.mdx +++ b/docs/models/inputaudioformat.mdx @@ -1,13 +1,13 @@ --- -title: "FormatEnum" +title: "InputAudioFormat" --- ## Example Usage ```typescript -import { FormatEnum } from "@openrouter/sdk/models"; +import { InputAudioFormat } from "@openrouter/sdk/models"; -let value: FormatEnum = "wav"; +let value: InputAudioFormat = "mp3"; // Open enum: unrecognized values are captured as Unrecognized ``` diff --git a/docs/models/inputaudioinputaudio.mdx b/docs/models/inputaudioinputaudio.mdx index d6d649462..a97f611eb 100644 --- a/docs/models/inputaudioinputaudio.mdx +++ b/docs/models/inputaudioinputaudio.mdx @@ -15,7 +15,7 @@ let value: InputAudioInputAudio = { ## Fields -| Field | Type | Required | Description | -| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -| `data` | *string* | ✔️ | N/A | -| `format` | [models.FormatEnum](../models/formatenum.mdx) | ✔️ | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `data` | *string* | ✔️ | N/A | +| `format` | [models.InputAudioFormat](../models/inputaudioformat.mdx) | ✔️ | N/A | \ No newline at end of file diff --git a/jsr.json b/jsr.json index 5ac64d087..619dd3cd0 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@openrouter/sdk", - "version": "1.5.12", + "version": "1.5.13", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package.json b/package.json index 6f41328bb..5d2c14c27 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@openrouter/sdk", - "version": "1.5.12", + "version": "1.5.13", "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": [ @@ -21,8 +21,8 @@ "license": "Apache-2.0", "packageManager": "pnpm@10.22.0", "publishConfig": { - "provenance": true, - "access": "public" + "access": "public", + "provenance": true }, "type": "module", "main": "./esm/index.js", @@ -74,13 +74,13 @@ "build": "tsc && node scripts/unbarrel-imports.js", "prepublishOnly": "npm run build", "postinstall": "node scripts/check-types.js || true", - "test:e2e": "vitest --run --project e2e", + "test:transit": "exit 0", "test:watch": "vitest --watch --project unit", "typecheck": "tsc --noEmit", "compile": "tsc && node scripts/unbarrel-imports.js", "prepare": "npm run build", "test": "vitest --run --project unit", - "test:transit": "exit 0", + "test:e2e": "vitest --run --project e2e", "typecheck:transit": "exit 0" }, "peerDependencies": { diff --git a/src/lib/config.ts b/src/lib/config.ts index 8b12aba89..fdca3cc61 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.5.12", + sdkVersion: "1.5.13", genVersion: "2.948.4", - userAgent: "speakeasy-sdk/typescript 1.5.12 2.948.4 1.0.0 @openrouter/sdk", + userAgent: "speakeasy-sdk/typescript 1.5.13 2.948.4 1.0.0 @openrouter/sdk", } as const; diff --git a/src/models/decisionsimageasset.ts b/src/models/decisionsimageasset.ts new file mode 100644 index 000000000..751b78b5d --- /dev/null +++ b/src/models/decisionsimageasset.ts @@ -0,0 +1,74 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 4869a6173b1c + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../lib/primitives.js"; +import * as openEnums from "../types/enums.js"; +import { ClosedEnum, OpenEnum } from "../types/enums.js"; + +export const DecisionsImageAssetFormat = { + Png: "png", + Jpg: "jpg", + Jpeg: "jpeg", +} as const; +export type DecisionsImageAssetFormat = OpenEnum< + typeof DecisionsImageAssetFormat +>; + +export const DecisionsImageAssetType = { + Image: "image", +} as const; +export type DecisionsImageAssetType = ClosedEnum< + typeof DecisionsImageAssetType +>; + +/** + * An image sent once and referenced by its key in the `assets` map. `data_base64` is the PNG or JPEG file in standard base64 with no `data:` prefix. The multipart `part` field of TypeSafe's API is not accepted. + */ +export type DecisionsImageAsset = { + dataBase64: string; + format: DecisionsImageAssetFormat; + type?: DecisionsImageAssetType | undefined; +}; + +/** @internal */ +export const DecisionsImageAssetFormat$outboundSchema: z.ZodType< + string, + DecisionsImageAssetFormat +> = openEnums.outboundSchema(DecisionsImageAssetFormat); + +/** @internal */ +export const DecisionsImageAssetType$outboundSchema: z.ZodEnum< + typeof DecisionsImageAssetType +> = z.enum(DecisionsImageAssetType); + +/** @internal */ +export type DecisionsImageAsset$Outbound = { + data_base64: string; + format: string; + type?: string | undefined; +}; + +/** @internal */ +export const DecisionsImageAsset$outboundSchema: z.ZodType< + DecisionsImageAsset$Outbound, + DecisionsImageAsset +> = z.object({ + dataBase64: z.string(), + format: DecisionsImageAssetFormat$outboundSchema, + type: DecisionsImageAssetType$outboundSchema.optional(), +}).transform((v) => { + return remap$(v, { + dataBase64: "data_base64", + }); +}); + +export function decisionsImageAssetToJSON( + decisionsImageAsset: DecisionsImageAsset, +): string { + return JSON.stringify( + DecisionsImageAsset$outboundSchema.parse(decisionsImageAsset), + ); +} diff --git a/src/models/decisionsrequest.ts b/src/models/decisionsrequest.ts index 765bf85db..ebd945074 100644 --- a/src/models/decisionsrequest.ts +++ b/src/models/decisionsrequest.ts @@ -15,6 +15,11 @@ import { DecisionsChoiceQuestion$Outbound, DecisionsChoiceQuestion$outboundSchema, } from "./decisionschoicequestion.js"; +import { + DecisionsImageAsset, + DecisionsImageAsset$Outbound, + DecisionsImageAsset$outboundSchema, +} from "./decisionsimageasset.js"; import { DecisionsNoulQuestion, DecisionsNoulQuestion$Outbound, @@ -51,6 +56,10 @@ export type Questions = export type State = string | { [k: string]: any } | Array; export type DecisionsRequest = { + /** + * Images keyed by reference string, as in TypeSafe's API. Write a reference wherever the image belongs in `state`, `instructions`, or `criteria`; every asset must be referenced at least once. Jev reads a reference as a whole string value or inside longer text. Other Decisions models read a whole-string reference wherever they read an `image_url` part and reject a reference inside longer text. + */ + assets?: { [k: string]: DecisionsImageAsset } | undefined; model: string; provider?: ProviderPreferences | null | undefined; questions: { @@ -113,6 +122,7 @@ export function stateToJSON(state: State): string { /** @internal */ export type DecisionsRequest$Outbound = { + assets?: { [k: string]: DecisionsImageAsset$Outbound } | undefined; model: string; provider?: ProviderPreferences$Outbound | null | undefined; questions: { @@ -133,6 +143,7 @@ export const DecisionsRequest$outboundSchema: z.ZodType< DecisionsRequest$Outbound, DecisionsRequest > = z.object({ + assets: z.record(z.string(), DecisionsImageAsset$outboundSchema).optional(), model: z.string(), provider: z.nullable(ProviderPreferences$outboundSchema).optional(), questions: z.record( diff --git a/src/models/index.ts b/src/models/index.ts index fbc5712cf..3b7ae7187 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -300,6 +300,7 @@ export * from "./decisionsboxanswer.js"; export * from "./decisionsboxquestion.js"; export * from "./decisionschoiceanswer.js"; export * from "./decisionschoicequestion.js"; +export * from "./decisionsimageasset.js"; export * from "./decisionsnoulanswer.js"; export * from "./decisionsnoulquestion.js"; export * from "./decisionsrequest.js"; diff --git a/src/models/inputaudio.ts b/src/models/inputaudio.ts index ac0dcba36..4109a621e 100644 --- a/src/models/inputaudio.ts +++ b/src/models/inputaudio.ts @@ -11,15 +11,15 @@ import { OpenEnum } from "../types/enums.js"; import { Result as SafeParseResult } from "../types/fp.js"; import { SDKValidationError } from "./errors/sdkvalidationerror.js"; -export const FormatEnum = { +export const InputAudioFormat = { Mp3: "mp3", Wav: "wav", } as const; -export type FormatEnum = OpenEnum; +export type InputAudioFormat = OpenEnum; export type InputAudioInputAudio = { data: string; - format: FormatEnum; + format: InputAudioFormat; }; /** @@ -31,11 +31,15 @@ export type InputAudio = { }; /** @internal */ -export const FormatEnum$inboundSchema: z.ZodType = - openEnums.inboundSchema(FormatEnum); +export const InputAudioFormat$inboundSchema: z.ZodType< + InputAudioFormat, + unknown +> = openEnums.inboundSchema(InputAudioFormat); /** @internal */ -export const FormatEnum$outboundSchema: z.ZodType = - openEnums.outboundSchema(FormatEnum); +export const InputAudioFormat$outboundSchema: z.ZodType< + string, + InputAudioFormat +> = openEnums.outboundSchema(InputAudioFormat); /** @internal */ export const InputAudioInputAudio$inboundSchema: z.ZodType< @@ -43,7 +47,7 @@ export const InputAudioInputAudio$inboundSchema: z.ZodType< unknown > = z.object({ data: z.string(), - format: FormatEnum$inboundSchema, + format: InputAudioFormat$inboundSchema, }); /** @internal */ export type InputAudioInputAudio$Outbound = { @@ -57,7 +61,7 @@ export const InputAudioInputAudio$outboundSchema: z.ZodType< InputAudioInputAudio > = z.object({ data: z.string(), - format: FormatEnum$outboundSchema, + format: InputAudioFormat$outboundSchema, }); export function inputAudioInputAudioToJSON( From 48c7425b465083ee1d2f446a5f80254ccd9aaa18 Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Tue, 27 Oct 2026 17:43:15 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow