From cd8f6af5198a6aad740b015ab35c4723d41c27f1 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Fri, 26 Jun 2026 00:18:02 +0000 Subject: [PATCH 1/2] ## Python SDK Changes: * `open_router.embeddings.list_models()`: `response.data.[].pricing.input_cache_write_1h` **Added** * `open_router.endpoints.list_zdr_endpoints()`: `response.data.[].pricing.input_cache_write_1h` **Added** * `open_router.endpoints.list()`: `response.data.endpoints.[].pricing.input_cache_write_1h` **Added** * `open_router.models.get()`: `response.data.pricing.input_cache_write_1h` **Added** * `open_router.models.list()`: `response.data.[].pricing.input_cache_write_1h` **Added** * `open_router.models.list_for_user()`: `response.data.[].pricing.input_cache_write_1h` **Added** --- .speakeasy/gen.lock | 44 ++++++++++++--------- .speakeasy/gen.yaml | 2 +- .speakeasy/out.openapi.yaml | 14 ++++++- .speakeasy/workflow.lock | 12 +++--- RELEASES.md | 12 +++++- docs/components/pricing.md | 33 ++++++++-------- docs/components/publicpricing.md | 33 ++++++++-------- pyproject.toml | 2 +- src/openrouter/_version.py | 4 +- src/openrouter/components/publicendpoint.py | 9 ++++- src/openrouter/components/publicpricing.py | 9 ++++- uv.lock | 2 +- 12 files changed, 108 insertions(+), 68 deletions(-) diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 04626d9..e9b0bde 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: 2.0.0 id: c48cf606-fb42-4a45-9c23-8f0555307828 management: - docChecksum: e1b90a6bfd6ac5ba387e90d8bde5c5da + docChecksum: 10ccd36cac97d16c40f65b41c5c17a9d docVersion: 1.0.0 speakeasyVersion: 1.680.0 generationVersion: 2.788.4 - releaseVersion: 0.10.2 - configChecksum: 673c177f4ade5ed7081f80e54b377efb + releaseVersion: 0.10.3 + configChecksum: 894b8fb8de2ec29bb56a600141f418a7 repoURL: https://github.com/OpenRouterTeam/python-sdk.git installationURL: https://github.com/OpenRouterTeam/python-sdk.git published: true persistentEdits: - generation_id: 0dfeefb4-3077-4ada-9493-b1c27db7302b - pristine_commit_hash: eaff66d4cff11e0b7fad3b3a37a4b91124c2443e - pristine_tree_hash: a917f83ab81dc35cd911b68dd0004e00797a509f + generation_id: a0648830-043f-4811-a88a-6e03d7ec62ab + pristine_commit_hash: 490d4582569daa785cbad82b7bbacaca935ff37d + pristine_tree_hash: d680bb4b3606259d34b419bf826786397b97d271 features: python: acceptHeaders: 3.0.0 @@ -3750,8 +3750,8 @@ trackedFiles: pristine_git_object: 685705c19f968d6408d3bfc3d398eddb2ef5e52a docs/components/pricing.md: id: 15dca753d9eb - last_write_checksum: sha1:92a5a42a7f29a05c1921015aa66655376e70bc2b - pristine_git_object: f17583ae89f52fb3d7dadad5c0bc45c7a3f9c024 + last_write_checksum: sha1:80bb9085218cbe75ef0623b86bc9f52a354b0722 + pristine_git_object: 69ac72cf96ac924243230189563bbe6a6dcdfc6c docs/components/promptinjectionscanscope.md: id: 285ea7802dcd last_write_checksum: sha1:0fff83f064f6699f5a86c5068423c646a9fca69e @@ -3798,8 +3798,8 @@ trackedFiles: pristine_git_object: 7d0edd22dafe693920f18e0c0c99b852c6b3bb57 docs/components/publicpricing.md: id: 9d43651da8ad - last_write_checksum: sha1:13014946ed9c08e7c36a2681efb896bedf068982 - pristine_git_object: 9a1cecc7d832d812bef93c49a9340c29cf4e816b + last_write_checksum: sha1:a0307105d112c890670088159350ed59040629a8 + pristine_git_object: 0746b9999a7aa39ce957aef7cf72235cba2f16a8 docs/components/quantization.md: id: 0d17b4a78828 last_write_checksum: sha1:992ee3fdd0f4e09c9f6e6426c413841fe34a86a5 @@ -6338,8 +6338,8 @@ trackedFiles: pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:4733c52f40b0a81f99ce289daf116a14cf25a2d6 - pristine_git_object: 80031d573d26edca6e5993a5df7e5c451257f494 + last_write_checksum: sha1:98693640698a58477c3b24a614eb99f4c633a0cf + pristine_git_object: 2ef47a09d65d11b780df2cc2acea38dad42f7254 scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54 @@ -6366,8 +6366,8 @@ trackedFiles: pristine_git_object: 07ace03229fd3267623c8f48665d2c3a67c3565d src/openrouter/_version.py: id: d8d15ad6c586 - last_write_checksum: sha1:f4418a5cd8b01a66275a34ce883bde034a374b6f - pristine_git_object: e430f99bd620087545d621221f2edb100d471289 + last_write_checksum: sha1:958ee66ff889b9eb5c0cd94b398bc7fbfb8c2c6b + pristine_git_object: 53d94aa7542adf2049307c96b710cb4846fa2043 src/openrouter/analytics.py: id: cb406b5aaabb last_write_checksum: sha1:6d47d1ab3da9cb4ac9f0a2bfe442f1a82a614f35 @@ -7994,12 +7994,12 @@ trackedFiles: pristine_git_object: 4e1073b4e3c10943c7035376f9984cd6559653a2 src/openrouter/components/publicendpoint.py: id: 848aa2ef9129 - last_write_checksum: sha1:f47947e66b99be6c16bc081af2070cd7d6c7c0f3 - pristine_git_object: 7291ca05ec0df5d1d50be060b6c0298a1a2ec45e + last_write_checksum: sha1:2e389b5e4301174b4c8aaa5e0c679d6872ddd67e + pristine_git_object: a7d3e523472feb11203aa79bd081fa87c0ed6503 src/openrouter/components/publicpricing.py: id: 96d115d83cc5 - last_write_checksum: sha1:0b8d39c8f1fda9cbc932a390d89e93b87105f35e - pristine_git_object: 8ee0045ca6378f37b87715e3bf39148a7a8f0ed4 + last_write_checksum: sha1:1980193d2339dc13b08d1caabb235b0b8bcb8ce3 + pristine_git_object: 09a1bdd6ec5d204533288516de6d01ae20be218f src/openrouter/components/quantization.py: id: bde317b3d703 last_write_checksum: sha1:96b042899bfb818f20d282be76ad37fc948a599d @@ -10559,3 +10559,11 @@ examples: "500": application/json: {"error": {"code": 500, "message": "Internal Server Error"}} examplesVersion: 1.0.2 +releaseNotes: | + ## Python SDK Changes: + * `open_router.embeddings.list_models()`: `response.data.[].pricing.input_cache_write_1h` **Added** + * `open_router.endpoints.list_zdr_endpoints()`: `response.data.[].pricing.input_cache_write_1h` **Added** + * `open_router.endpoints.list()`: `response.data.endpoints.[].pricing.input_cache_write_1h` **Added** + * `open_router.models.get()`: `response.data.pricing.input_cache_write_1h` **Added** + * `open_router.models.list()`: `response.data.[].pricing.input_cache_write_1h` **Added** + * `open_router.models.list_for_user()`: `response.data.[].pricing.input_cache_write_1h` **Added** diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 25fc57f..4f158e4 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -32,7 +32,7 @@ generation: skipResponseBodyAssertions: false preApplyUnionDiscriminators: true python: - version: 0.10.2 + version: 0.10.3 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index e74b2ec..be4b0b3 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -18790,7 +18790,12 @@ components: description: Price in USD per cached input token (read) type: string input_cache_write: - description: Price in USD per cached input token (write) + description: >- + Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate. + type: string + input_cache_write_1h: + description: >- + Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic. type: string internal_reasoning: description: Price in USD per internal reasoning token @@ -18902,7 +18907,12 @@ components: description: Price in USD per cached input token (read) type: string input_cache_write: - description: Price in USD per cached input token (write) + description: >- + Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate. + type: string + input_cache_write_1h: + description: >- + Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic. type: string internal_reasoning: description: Price in USD per internal reasoning token diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 9748ecc..d0b5e17 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -2,20 +2,20 @@ speakeasyVersion: 1.680.0 sources: OpenRouter API: sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:200f4947503f8ac09ca9b8cfad127f20bd1f7afe489a3d08d562aaedea63b740 - sourceBlobDigest: sha256:6fd3f95fe103e9cbf7ed293aadaa0d7351e89bc1d6456536f09b0a645cbe3278 + sourceRevisionDigest: sha256:5098eeb57496c3b506b3c940ffb9052507f9f0cde147c3d63cc264c89a774ccd + sourceBlobDigest: sha256:4b2c8f3e76ec1b55d75c75bfb3636ed8d7a3bcea6cdbcb3dc5dabb5a21ba8766 tags: - latest - - speakeasy-sdk-regen-1782426538 + - speakeasy-sdk-regen-1782432971 - 1.0.0 targets: open-router: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:200f4947503f8ac09ca9b8cfad127f20bd1f7afe489a3d08d562aaedea63b740 - sourceBlobDigest: sha256:6fd3f95fe103e9cbf7ed293aadaa0d7351e89bc1d6456536f09b0a645cbe3278 + sourceRevisionDigest: sha256:5098eeb57496c3b506b3c940ffb9052507f9f0cde147c3d63cc264c89a774ccd + sourceBlobDigest: sha256:4b2c8f3e76ec1b55d75c75bfb3636ed8d7a3bcea6cdbcb3dc5dabb5a21ba8766 codeSamplesNamespace: open-router-python-code-samples - codeSamplesRevisionDigest: sha256:b0d6c032910cacfbba687cc29e3a3d038cc68abb8de505bd25f44c5064263205 + codeSamplesRevisionDigest: sha256:a696107bd47df00518c4564d36d1225f22eb306eedd89809baa53b7a0012fe3e workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.680.0 diff --git a/RELEASES.md b/RELEASES.md index 47fc84e..6edf479 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -48,4 +48,14 @@ Based on: ### Generated - [python v0.10.2] . ### Releases -- [PyPI v0.10.2] https://pypi.org/project/openrouter/0.10.2 - . \ No newline at end of file +- [PyPI v0.10.2] https://pypi.org/project/openrouter/0.10.2 - . + +## 2026-06-26 00:15:50 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.680.0 (2.788.4) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.10.3] . +### Releases +- [PyPI v0.10.3] https://pypi.org/project/openrouter/0.10.3 - . \ No newline at end of file diff --git a/docs/components/pricing.md b/docs/components/pricing.md index f17583a..69ac72c 100644 --- a/docs/components/pricing.md +++ b/docs/components/pricing.md @@ -3,19 +3,20 @@ ## Fields -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| `audio` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio input token | -| `audio_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio output token | -| `completion` | *str* | :heavy_check_mark: | Price in USD per token for completion (output) generation | -| `discount` | *Optional[float]* | :heavy_minus_sign: | Fractional discount applied to this endpoint's pricing; the price is multiplied by (1 - discount) (0 = no discount, 1 = free) | -| `image` | *Optional[str]* | :heavy_minus_sign: | Price in USD per input image | -| `image_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per output image | -| `image_token` | *Optional[str]* | :heavy_minus_sign: | Price in USD per image token | -| `input_audio_cache` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached audio input token | -| `input_cache_read` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached input token (read) | -| `input_cache_write` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached input token (write) | -| `internal_reasoning` | *Optional[str]* | :heavy_minus_sign: | Price in USD per internal reasoning token | -| `prompt` | *str* | :heavy_check_mark: | Price in USD per token for prompt (input) processing | -| `request` | *Optional[str]* | :heavy_minus_sign: | Price in USD per request | -| `web_search` | *Optional[str]* | :heavy_minus_sign: | Price in USD per web search | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `audio` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio input token | +| `audio_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio output token | +| `completion` | *str* | :heavy_check_mark: | Price in USD per token for completion (output) generation | +| `discount` | *Optional[float]* | :heavy_minus_sign: | Fractional discount applied to this endpoint's pricing; the price is multiplied by (1 - discount) (0 = no discount, 1 = free) | +| `image` | *Optional[str]* | :heavy_minus_sign: | Price in USD per input image | +| `image_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per output image | +| `image_token` | *Optional[str]* | :heavy_minus_sign: | Price in USD per image token | +| `input_audio_cache` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached audio input token | +| `input_cache_read` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached input token (read) | +| `input_cache_write` | *Optional[str]* | :heavy_minus_sign: | Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate. | +| `input_cache_write_1h` | *Optional[str]* | :heavy_minus_sign: | Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic. | +| `internal_reasoning` | *Optional[str]* | :heavy_minus_sign: | Price in USD per internal reasoning token | +| `prompt` | *str* | :heavy_check_mark: | Price in USD per token for prompt (input) processing | +| `request` | *Optional[str]* | :heavy_minus_sign: | Price in USD per request | +| `web_search` | *Optional[str]* | :heavy_minus_sign: | Price in USD per web search | \ No newline at end of file diff --git a/docs/components/publicpricing.md b/docs/components/publicpricing.md index 9a1cecc..0746b99 100644 --- a/docs/components/publicpricing.md +++ b/docs/components/publicpricing.md @@ -5,19 +5,20 @@ Pricing information for the model ## Fields -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| `audio` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio input token | -| `audio_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio output token | -| `completion` | *str* | :heavy_check_mark: | Price in USD per token for completion (output) generation | -| `discount` | *Optional[float]* | :heavy_minus_sign: | Fractional discount applied to this endpoint's pricing; the price is multiplied by (1 - discount) (0 = no discount, 1 = free) | -| `image` | *Optional[str]* | :heavy_minus_sign: | Price in USD per input image | -| `image_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per output image | -| `image_token` | *Optional[str]* | :heavy_minus_sign: | Price in USD per image token | -| `input_audio_cache` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached audio input token | -| `input_cache_read` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached input token (read) | -| `input_cache_write` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached input token (write) | -| `internal_reasoning` | *Optional[str]* | :heavy_minus_sign: | Price in USD per internal reasoning token | -| `prompt` | *str* | :heavy_check_mark: | Price in USD per token for prompt (input) processing | -| `request` | *Optional[str]* | :heavy_minus_sign: | Price in USD per request | -| `web_search` | *Optional[str]* | :heavy_minus_sign: | Price in USD per web search | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `audio` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio input token | +| `audio_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per audio output token | +| `completion` | *str* | :heavy_check_mark: | Price in USD per token for completion (output) generation | +| `discount` | *Optional[float]* | :heavy_minus_sign: | Fractional discount applied to this endpoint's pricing; the price is multiplied by (1 - discount) (0 = no discount, 1 = free) | +| `image` | *Optional[str]* | :heavy_minus_sign: | Price in USD per input image | +| `image_output` | *Optional[str]* | :heavy_minus_sign: | Price in USD per output image | +| `image_token` | *Optional[str]* | :heavy_minus_sign: | Price in USD per image token | +| `input_audio_cache` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached audio input token | +| `input_cache_read` | *Optional[str]* | :heavy_minus_sign: | Price in USD per cached input token (read) | +| `input_cache_write` | *Optional[str]* | :heavy_minus_sign: | Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate. | +| `input_cache_write_1h` | *Optional[str]* | :heavy_minus_sign: | Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic. | +| `internal_reasoning` | *Optional[str]* | :heavy_minus_sign: | Price in USD per internal reasoning token | +| `prompt` | *str* | :heavy_check_mark: | Price in USD per token for prompt (input) processing | +| `request` | *Optional[str]* | :heavy_minus_sign: | Price in USD per request | +| `web_search` | *Optional[str]* | :heavy_minus_sign: | Price in USD per web search | \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 80031d5..2ef47a0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openrouter" -version = "0.10.2" +version = "0.10.3" description = "Official Python Client SDK for OpenRouter." authors = [{ name = "OpenRouter" },] readme = "README-PYPI.md" diff --git a/src/openrouter/_version.py b/src/openrouter/_version.py index e430f99..53d94aa 100644 --- a/src/openrouter/_version.py +++ b/src/openrouter/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "openrouter" -__version__: str = "0.10.2" +__version__: str = "0.10.3" __openapi_doc_version__: str = "1.0.0" __gen_version__: str = "2.788.4" -__user_agent__: str = "speakeasy-sdk/python 0.10.2 2.788.4 1.0.0 openrouter" +__user_agent__: str = "speakeasy-sdk/python 0.10.3 2.788.4 1.0.0 openrouter" try: if __package__ is not None: diff --git a/src/openrouter/components/publicendpoint.py b/src/openrouter/components/publicendpoint.py index 7291ca0..a7d3e52 100644 --- a/src/openrouter/components/publicendpoint.py +++ b/src/openrouter/components/publicendpoint.py @@ -35,7 +35,9 @@ class PricingTypedDict(TypedDict): input_cache_read: NotRequired[str] r"""Price in USD per cached input token (read)""" input_cache_write: NotRequired[str] - r"""Price in USD per cached input token (write)""" + r"""Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate.""" + input_cache_write_1h: NotRequired[str] + r"""Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic.""" internal_reasoning: NotRequired[str] r"""Price in USD per internal reasoning token""" request: NotRequired[str] @@ -76,7 +78,10 @@ class Pricing(BaseModel): r"""Price in USD per cached input token (read)""" input_cache_write: Optional[str] = None - r"""Price in USD per cached input token (write)""" + r"""Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate.""" + + input_cache_write_1h: Optional[str] = None + r"""Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic.""" internal_reasoning: Optional[str] = None r"""Price in USD per internal reasoning token""" diff --git a/src/openrouter/components/publicpricing.py b/src/openrouter/components/publicpricing.py index 8ee0045..09a1bdd 100644 --- a/src/openrouter/components/publicpricing.py +++ b/src/openrouter/components/publicpricing.py @@ -30,7 +30,9 @@ class PublicPricingTypedDict(TypedDict): input_cache_read: NotRequired[str] r"""Price in USD per cached input token (read)""" input_cache_write: NotRequired[str] - r"""Price in USD per cached input token (write)""" + r"""Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate.""" + input_cache_write_1h: NotRequired[str] + r"""Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic.""" internal_reasoning: NotRequired[str] r"""Price in USD per internal reasoning token""" request: NotRequired[str] @@ -73,7 +75,10 @@ class PublicPricing(BaseModel): r"""Price in USD per cached input token (read)""" input_cache_write: Optional[str] = None - r"""Price in USD per cached input token (write)""" + r"""Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate.""" + + input_cache_write_1h: Optional[str] = None + r"""Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic.""" internal_reasoning: Optional[str] = None r"""Price in USD per internal reasoning token""" diff --git a/uv.lock b/uv.lock index 567db3a..74bcc38 100644 --- a/uv.lock +++ b/uv.lock @@ -220,7 +220,7 @@ wheels = [ [[package]] name = "openrouter" -version = "0.10.2" +version = "0.10.3" source = { editable = "." } dependencies = [ { name = "httpcore" }, From 528e06b13b96789ed0ae67a8b0280347b2012b35 Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Fri, 26 Jun 2026 00:18:20 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow