diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock
index 2115e443..6fd77524 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: effbf6ffde5c3aa927a7a0f984807f34
+ docChecksum: ed950d049ab66589aac666ef97de5ade
docVersion: 1.0.0
speakeasyVersion: 1.787.0
generationVersion: 2.914.0
- releaseVersion: 1.0.21
- configChecksum: 91f9e0d15d64982a1f86ca005e2ce251
+ releaseVersion: 1.0.22
+ configChecksum: eea86bd0d0182c493782d4e779a36642
repoURL: https://github.com/OpenRouterTeam/python-sdk.git
installationURL: https://github.com/OpenRouterTeam/python-sdk.git
published: true
persistentEdits:
- generation_id: 47030794-ee1a-4abe-b750-38f901f47d13
- pristine_commit_hash: f53db57246fd012a217dd67e0a17cc6fb77fb379
- pristine_tree_hash: 7d032ba184eb9581b2609af00a47ded717ee7d28
+ generation_id: 6c3cde2e-c79c-4fb2-a368-09c397fc2171
+ pristine_commit_hash: 07bd316b05d346a37d1a557fa35656e99bd60dc5
+ pristine_tree_hash: b951060366946f0af191e522aade310a354d8dd2
features:
python:
acceptHeaders: 3.0.0
@@ -122,16 +122,16 @@ trackedFiles:
pristine_git_object: 129b2fdfb6379bb7c755bc13f0d92da88bac1eaf
docs/components/additionaltoolsitemtoolfunction.mdx:
id: b8c1e4fcad3b
- last_write_checksum: sha1:c65fd2849b323fa3e0917a9b7e10929df6d998b5
- pristine_git_object: c4c0bf16f0604b95990d3d327d00fe7c6c6a625c
- docs/components/additionaltoolsitemtooltype.mdx:
- id: 15c11e47b2fb
- last_write_checksum: sha1:8d8cf453178adbb327348a2c504356653eb2abbb
- pristine_git_object: ef321af2412bd7aee72744d98c4b9a59463094eb
+ last_write_checksum: sha1:372d0aba8f1703b6a0d93905f2dbe4d068e50886
+ pristine_git_object: 619939c0a51f1f4171680082ce7d5ec6b4a81225
docs/components/additionaltoolsitemtoolunion.mdx:
id: b3e8598b1887
last_write_checksum: sha1:989ba14acb7cb2d5fb09fd46427781890a63aac8
pristine_git_object: 137fc3f93d3e840ceb1bf0081a5ac9feaf098c1e
+ docs/components/additionaltoolsitemtypefunction.mdx:
+ id: bf179b4008af
+ last_write_checksum: sha1:c0d4fee7d39fbd3d08c44bbe0e7b929350c5d7e8
+ pristine_git_object: 00ce08abaaf149eb1713cc084e87a8b1efc8df81
docs/components/advisornestedtool.mdx:
id: 71464b7dde39
last_write_checksum: sha1:89d7a7836c487fe84756f39b306bbfca59b1ca6c
@@ -1274,8 +1274,8 @@ trackedFiles:
pristine_git_object: 9a8e9eaadebb36e2836d73c4ed1867c5f1e564e7
docs/components/contentcompaction.mdx:
id: 1923f9db3cff
- last_write_checksum: sha1:db0ae20faae38b060e586c80655b79849bb4e18b
- pristine_git_object: 87f9c8d7936595373ebeae59a265705db8df2721
+ last_write_checksum: sha1:e889398f84c645ceb38309894f5a62184922d144
+ pristine_git_object: 805357e1fbefca3ed8efeca9bb729883f27f4828
docs/components/contentencryptedcontent.mdx:
id: 0dc55809c394
last_write_checksum: sha1:4ade3f8974c39af89b3dde5c847d7f397e7c66ad
@@ -2826,24 +2826,64 @@ trackedFiles:
pristine_git_object: 52ce907478e961eb90e709fca118e6d0631883d2
docs/components/messagestooladditionblock.mdx:
id: ee6e08ccc2ae
- last_write_checksum: sha1:b41bd9af1900643127851361ff1acf2707ab7309
- pristine_git_object: 399c9ceaa89fd23664936145da40e3f873bc3782
- docs/components/messagestooladditionblocktool.mdx:
- id: 77122e0d40d2
- last_write_checksum: sha1:7d05a00487c1da64a8f04ebd273f4c4a2cb95412
- pristine_git_object: 459a5a4f96363226908c4c5be396e3ab09479bb6
+ last_write_checksum: sha1:b56dd3ae6d6e105c57162a705794a799ffd65533
+ pristine_git_object: 5a532b3a3467bd87a7be3b53b5678de2f100366a
+ docs/components/messagestooladditionblocktoolmcptoolreference.mdx:
+ id: 9234e01f465c
+ last_write_checksum: sha1:bd53c613d701f425326a4e3c1f722940b6ce8abc
+ pristine_git_object: 8f35a41fceb796a063731ba9b02ae0c6d746a1f3
+ docs/components/messagestooladditionblocktoolmcptoolsetreference.mdx:
+ id: 30be15aded6a
+ last_write_checksum: sha1:5e3877621517fcde29a8481c074b731f0f21bc59
+ pristine_git_object: 807e3193597268935ff590fca8713d28797555f1
+ docs/components/messagestooladditionblocktooltoolreference.mdx:
+ id: f98f14b0fd49
+ last_write_checksum: sha1:19f6fd8337f0c404ae3041134be1e7c7557e8a99
+ pristine_git_object: f56ec1fdc2a36533dcd3cabc399b02d815896623
+ docs/components/messagestooladditionblocktoolunion.mdx:
+ id: 403384c18cfd
+ last_write_checksum: sha1:7b1238036e243c5cb6a7f09225880229f0879f5c
+ pristine_git_object: fe8e0e549274161ac8c0cab3516a810eeccd4671
+ docs/components/messagestooladditionblocktypemcptoolreference.mdx:
+ id: db2ce8be8ba7
+ last_write_checksum: sha1:116a77b38bdbd09bc9fa94649046157fc89d26fe
+ pristine_git_object: f0f014eda67617de68bdcdc7f3b63302be92ff6d
+ docs/components/messagestooladditionblocktypemcptoolsetreference.mdx:
+ id: ca24da95aec9
+ last_write_checksum: sha1:00efeac75c8bdc1656f982c6d92638631e08ce4f
+ pristine_git_object: 4799e82fbeb97009ff4e6011515b0fcdd1f6c86a
docs/components/messagestooladditionblocktypetoolreference.mdx:
id: 46a9c5c3d297
last_write_checksum: sha1:960eea34388236a826d75f4aa3be8beba58ae7f1
pristine_git_object: cbfee207d314517204d955f1b850109ed3382528
docs/components/messagestoolremovalblock.mdx:
id: 06fb00f68d0a
- last_write_checksum: sha1:5acfab12a15c5bb0ae2b914ad6f849d21a3eb72a
- pristine_git_object: 7924930128661e2401a39fcd4c13b18e435c4042
- docs/components/messagestoolremovalblocktool.mdx:
- id: dac44151c72f
- last_write_checksum: sha1:676c881b2bcba2ec974e04ef498c484fb3cfced9
- pristine_git_object: a9340a29a53dfd3fdc50dd5e3cdf7f9708d8c862
+ last_write_checksum: sha1:cb0899c7c9678e882a1fffeb58a12467e4a52b06
+ pristine_git_object: a8f4a77b42fc64493816c4ab02e231fe4e5e6c46
+ docs/components/messagestoolremovalblocktoolmcptoolreference.mdx:
+ id: 8671f904d963
+ last_write_checksum: sha1:06481a9c285c7386dd08091dcc2b89017a3d3b56
+ pristine_git_object: 63a22858dd3595dcb33e3a6d6ae3ea5342295f30
+ docs/components/messagestoolremovalblocktoolmcptoolsetreference.mdx:
+ id: 0a2a94bb6655
+ last_write_checksum: sha1:12884ba8d12d2ec781fe6d80c8cd06d27ba09356
+ pristine_git_object: 39ce3ffdf4fc647bf7b434df451933aa45e3c55f
+ docs/components/messagestoolremovalblocktooltoolreference.mdx:
+ id: 70ee6c5930fd
+ last_write_checksum: sha1:e73ca402fedecfd529a0b11e0ddf310dec43ab5d
+ pristine_git_object: 5700e11ae06fe87a229cf318d80c3155284ce3a3
+ docs/components/messagestoolremovalblocktoolunion.mdx:
+ id: 91e74b616e71
+ last_write_checksum: sha1:25093a32bca9c9440b12f48d655bea1f454b05dc
+ pristine_git_object: 896fc1773a348df9162e9a2e8006c28673c95aa8
+ docs/components/messagestoolremovalblocktypemcptoolreference.mdx:
+ id: 114fe5a7137c
+ last_write_checksum: sha1:b043ce8285902d0b9fa8f28178daa706461d4f56
+ pristine_git_object: 183c5b2ad7ebdf4c71d2518141d79e8638e36d47
+ docs/components/messagestoolremovalblocktypemcptoolsetreference.mdx:
+ id: 0718f4550e4b
+ last_write_checksum: sha1:0db0d887ad5042a8056bb9ae8e2b9908d4d4d45c
+ pristine_git_object: 8f5189ad772cc836901e2dd9b1eb3c7a3dec9429
docs/components/messagestoolremovalblocktypetoolreference.mdx:
id: 2a88fefa96ee
last_write_checksum: sha1:f19a0f1059fd13cf83467960835553dfbc618c5b
@@ -6750,8 +6790,8 @@ trackedFiles:
pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544
pyproject.toml:
id: 5d07e7d72637
- last_write_checksum: sha1:7e1a565bdad5f09f62b21e25d3f7adef321ab09c
- pristine_git_object: 6f4b3e395088807feb507c95eb7a0f84baca95af
+ last_write_checksum: sha1:18e56f63c9d74f7372f61bb11033e3109c442d43
+ pristine_git_object: 05a245e6c0f584fd6e364b931d8bd4079e5158ac
scripts/prepare_readme.py:
id: e0c5957a6035
last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54
@@ -6778,8 +6818,8 @@ trackedFiles:
pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137
src/openrouter/_version.py:
id: d8d15ad6c586
- last_write_checksum: sha1:ada3f16ee3d08d81af1386fe9e0512715d212add
- pristine_git_object: 154d73fa7df21ecc8f0a2b82a5f4bc1bc50b7ea0
+ last_write_checksum: sha1:7cf0cf327dddee692402b00a69d3de77b6b04639
+ pristine_git_object: 6edf59c879482baa7693c4d0ddd870e86e1b054a
src/openrouter/analytics.py:
id: cb406b5aaabb
last_write_checksum: sha1:9e709b71dd0611056dc0cec6150b578defe32841
@@ -6818,8 +6858,8 @@ trackedFiles:
pristine_git_object: ad3d247954547814054c01989a2dff3d12b3e4e1
src/openrouter/components/__init__.py:
id: 81754e97b3f4
- last_write_checksum: sha1:face799abf2003d53c7615e54616773093f238df
- pristine_git_object: af44c2e31fff1acb25b180c4011470806217efa4
+ last_write_checksum: sha1:03132ec935a4e444eab14cb18e268fb77e3b6d08
+ pristine_git_object: 1a1bea47e675fbde39b1b72e7b42ef04b2025a54
src/openrouter/components/aabenchmarkentry.py:
id: e2e0f0b48c82
last_write_checksum: sha1:fab4d9a24d2cea937bb749d46c5f83941e99d65c
@@ -6834,8 +6874,8 @@ trackedFiles:
pristine_git_object: 1138e6f6bc025546a86877749ce83aca4c46499a
src/openrouter/components/additionaltoolsitem.py:
id: 2761ab789f41
- last_write_checksum: sha1:80488ef84b869dc9d564b23a3e7b34c4d5a466d4
- pristine_git_object: 2cef174af8ac4a32498556307acc43d908dddf7e
+ last_write_checksum: sha1:f711aac1f44184306bed8d816190208e8c73daa5
+ pristine_git_object: c9851ef1cc4b9fadc8f0cb79089282ab0b0af941
src/openrouter/components/advisornestedtool.py:
id: 768fcc6bad2b
last_write_checksum: sha1:23f5831fd27a32345fb4e50c1406df0510b0bf47
@@ -8018,8 +8058,8 @@ trackedFiles:
pristine_git_object: 9026664fa77c678a7a5f2b317b511ad93445cff7
src/openrouter/components/messagesmessageparam.py:
id: ed8bbab6720d
- last_write_checksum: sha1:b70a1e2a4d040e06798588438b2b877f7761712d
- pristine_git_object: b2cde9fb8e6fdab577b9f9b693fdd2133111b4f3
+ last_write_checksum: sha1:e24e57ae188645de8aa3ce815753ac3cb2e30d37
+ pristine_git_object: 67bf044b3bd3c373bf4fa33131c511301f3bf056
src/openrouter/components/messagesoutputconfig.py:
id: 54d1e297f740
last_write_checksum: sha1:478d9f534254d60225ac89bd21ddc49d18329297
@@ -8034,12 +8074,12 @@ trackedFiles:
pristine_git_object: d101995fd27b0bccbac266805caba629039c5f93
src/openrouter/components/messagestooladditionblock.py:
id: 3fc00d28b82d
- last_write_checksum: sha1:cb0db9a0a8c20509c34af7784800ba5fd8bb5401
- pristine_git_object: d6be5ce89e9cb363feb3279d7d80559f4e20991e
+ last_write_checksum: sha1:9d58d3e11b4260f7d00efcf0630fe4186b5d01a1
+ pristine_git_object: 4c081d8d6f173682a96948b2e5b72231c3ee6bba
src/openrouter/components/messagestoolremovalblock.py:
id: 4b02812d2191
- last_write_checksum: sha1:d4cd536d132e7718cac14738732ec243b494aa84
- pristine_git_object: 32238d761a961ada3192532ffd860f170e53b748
+ last_write_checksum: sha1:1e6851ac4b3d1d1d67253357ce9367888663665b
+ pristine_git_object: c06c11fd99a69e262dd2fe7ffa28601570ae9377
src/openrouter/components/metadatalevel.py:
id: 0eede47eef62
last_write_checksum: sha1:b4e7e6fc4e9016b65008e9ebbfcc6f018fe89ced
diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml
index df44b45c..238dbe21 100644
--- a/.speakeasy/gen.yaml
+++ b/.speakeasy/gen.yaml
@@ -36,7 +36,7 @@ generation:
documentation: mintlify
preApplyUnionDiscriminators: true
python:
- version: 1.0.21
+ version: 1.0.22
additionalDependencies:
dev: {}
main: {}
diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml
index ba716bb0..37fb80b0 100644
--- a/.speakeasy/out.openapi.yaml
+++ b/.speakeasy/out.openapi.yaml
@@ -1206,6 +1206,10 @@ components:
type:
- 'string'
- 'null'
+ encrypted_content:
+ type:
+ - 'string'
+ - 'null'
type:
enum:
- 'compaction'
@@ -12058,6 +12062,10 @@ components:
type:
- 'string'
- 'null'
+ encrypted_content:
+ type:
+ - 'string'
+ - 'null'
type:
enum:
- 'compaction_delta'
@@ -12108,6 +12116,10 @@ components:
type:
- 'string'
- 'null'
+ encrypted_content:
+ type:
+ - 'string'
+ - 'null'
type:
enum:
- 'compaction'
@@ -12460,6 +12472,10 @@ components:
type:
- 'string'
- 'null'
+ encrypted_content:
+ type:
+ - 'string'
+ - 'null'
type:
enum:
- 'compaction'
@@ -13405,18 +13421,46 @@ components:
type: 'tool_reference'
type: 'tool_addition'
properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
tool:
- properties:
- name:
- type: 'string'
- type:
- enum:
- - 'tool_reference'
- type: 'string'
- required:
- - 'type'
- - 'name'
- type: 'object'
+ oneOf:
+ - properties:
+ name:
+ type: 'string'
+ type:
+ enum:
+ - 'tool_reference'
+ type: 'string'
+ required:
+ - 'type'
+ - 'name'
+ type: 'object'
+ - properties:
+ name:
+ type: 'string'
+ server_name:
+ type: 'string'
+ type:
+ enum:
+ - 'mcp_tool_reference'
+ type: 'string'
+ required:
+ - 'type'
+ - 'name'
+ - 'server_name'
+ type: 'object'
+ - properties:
+ server_name:
+ type: 'string'
+ type:
+ enum:
+ - 'mcp_toolset_reference'
+ type: 'string'
+ required:
+ - 'type'
+ - 'server_name'
+ type: 'object'
type:
enum:
- 'tool_addition'
@@ -13433,18 +13477,46 @@ components:
type: 'tool_reference'
type: 'tool_removal'
properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
tool:
- properties:
- name:
- type: 'string'
- type:
- enum:
- - 'tool_reference'
- type: 'string'
- required:
- - 'type'
- - 'name'
- type: 'object'
+ oneOf:
+ - properties:
+ name:
+ type: 'string'
+ type:
+ enum:
+ - 'tool_reference'
+ type: 'string'
+ required:
+ - 'type'
+ - 'name'
+ type: 'object'
+ - properties:
+ name:
+ type: 'string'
+ server_name:
+ type: 'string'
+ type:
+ enum:
+ - 'mcp_tool_reference'
+ type: 'string'
+ required:
+ - 'type'
+ - 'name'
+ - 'server_name'
+ type: 'object'
+ - properties:
+ server_name:
+ type: 'string'
+ type:
+ enum:
+ - 'mcp_toolset_reference'
+ type: 'string'
+ required:
+ - 'type'
+ - 'server_name'
+ type: 'object'
type:
enum:
- 'tool_removal'
@@ -16774,6 +16846,7 @@ components:
enum:
- 'end_turn'
- 'max_tokens'
+ - 'model_context_window_exceeded'
- 'stop_sequence'
- 'tool_use'
- 'pause_turn'
diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock
index 25766247..8c9a334c 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:84956abf97cd05ac3fcf7eda297a5696d5a4b4de8a6b8502273012c1273423c0
- sourceBlobDigest: sha256:6b2b895ab85fff8a1f2dfbc12a459ba36af372d3597d26d157b6079bcc5e6466
+ sourceRevisionDigest: sha256:bb9814e3281a9e0c3024eaa6567726ce1522ce6ccf1a05f1206563bccba3bcec
+ sourceBlobDigest: sha256:040172eadbe8a42c5cc61b80aa158f3211bac5e469aca169ad8d0555056d3bea
tags:
- latest
- 1.0.0
@@ -11,10 +11,10 @@ targets:
open-router:
source: OpenRouter API
sourceNamespace: open-router-chat-completions-api
- sourceRevisionDigest: sha256:84956abf97cd05ac3fcf7eda297a5696d5a4b4de8a6b8502273012c1273423c0
- sourceBlobDigest: sha256:6b2b895ab85fff8a1f2dfbc12a459ba36af372d3597d26d157b6079bcc5e6466
+ sourceRevisionDigest: sha256:bb9814e3281a9e0c3024eaa6567726ce1522ce6ccf1a05f1206563bccba3bcec
+ sourceBlobDigest: sha256:040172eadbe8a42c5cc61b80aa158f3211bac5e469aca169ad8d0555056d3bea
codeSamplesNamespace: open-router-python-code-samples
- codeSamplesRevisionDigest: sha256:65a32b84d126d5b1c4eb7e3481aa970c419ca48b238669b4a52ac6fd6508d6ca
+ codeSamplesRevisionDigest: sha256:1821552e46e96ec3536132a65e72ad74f213f58fc59900072da10b8c2428fedc
workflow:
workflowVersion: 1.0.0
speakeasyVersion: 1.787.0
diff --git a/RELEASES.md b/RELEASES.md
index 2e9e65c0..1597f161 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -789,4 +789,14 @@ Based on:
### Generated
- [python v1.0.21] .
### Releases
-- [PyPI v1.0.21] https://pypi.org/project/openrouter/1.0.21 - .
\ No newline at end of file
+- [PyPI v1.0.21] https://pypi.org/project/openrouter/1.0.21 - .
+
+## 2026-07-24 22:19:24
+### Changes
+Based on:
+- OpenAPI Doc
+- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [python v1.0.22] .
+### Releases
+- [PyPI v1.0.22] https://pypi.org/project/openrouter/1.0.22 - .
\ No newline at end of file
diff --git a/docs/components/additionaltoolsitemtoolfunction.mdx b/docs/components/additionaltoolsitemtoolfunction.mdx
index c4c0bf16..619939c0 100644
--- a/docs/components/additionaltoolsitemtoolfunction.mdx
+++ b/docs/components/additionaltoolsitemtoolfunction.mdx
@@ -7,10 +7,10 @@ Function tool definition
## Fields
-| Field | Type | Required | Description |
-| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
-| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A |
-| `name` | *str* | :heavy_check_mark: | N/A |
-| `parameters` | Dict[str, *Any*] | :heavy_check_mark: | N/A |
-| `strict` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A |
-| `type` | [components.AdditionalToolsItemToolType](../components/additionaltoolsitemtooltype.mdx) | :heavy_check_mark: | N/A |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
+| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A |
+| `name` | *str* | :heavy_check_mark: | N/A |
+| `parameters` | Dict[str, *Any*] | :heavy_check_mark: | N/A |
+| `strict` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A |
+| `type` | [components.AdditionalToolsItemTypeFunction](../components/additionaltoolsitemtypefunction.mdx) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/components/additionaltoolsitemtooltype.mdx b/docs/components/additionaltoolsitemtooltype.mdx
deleted file mode 100644
index ef321af2..00000000
--- a/docs/components/additionaltoolsitemtooltype.mdx
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: "AdditionalToolsItemToolType"
----
-
-## Example Usage
-
-```python
-from openrouter.components import AdditionalToolsItemToolType
-value: AdditionalToolsItemToolType = "function"
-```
-
-
-## Values
-
-- `"function"`
diff --git a/docs/components/additionaltoolsitemtypefunction.mdx b/docs/components/additionaltoolsitemtypefunction.mdx
new file mode 100644
index 00000000..00ce08ab
--- /dev/null
+++ b/docs/components/additionaltoolsitemtypefunction.mdx
@@ -0,0 +1,15 @@
+---
+title: "AdditionalToolsItemTypeFunction"
+---
+
+## Example Usage
+
+```python
+from openrouter.components import AdditionalToolsItemTypeFunction
+value: AdditionalToolsItemTypeFunction = "function"
+```
+
+
+## Values
+
+- `"function"`
diff --git a/docs/components/contentcompaction.mdx b/docs/components/contentcompaction.mdx
index 87f9c8d7..805357e1 100644
--- a/docs/components/contentcompaction.mdx
+++ b/docs/components/contentcompaction.mdx
@@ -8,4 +8,5 @@ title: "ContentCompaction"
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `cache_control` | [Optional[components.AnthropicCacheControlDirective]](../components/anthropiccachecontroldirective.mdx) | :heavy_minus_sign: | Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format. | \{
"type": "ephemeral"
} |
| `content` | *Nullable[str]* | :heavy_check_mark: | N/A | |
+| `encrypted_content` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | |
| `type` | [components.MessagesMessageParamTypeCompaction](../components/messagesmessageparamtypecompaction.mdx) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/components/messagestooladditionblock.mdx b/docs/components/messagestooladditionblock.mdx
index 399c9cea..5a532b3a 100644
--- a/docs/components/messagestooladditionblock.mdx
+++ b/docs/components/messagestooladditionblock.mdx
@@ -7,7 +7,8 @@ Loads a previously deferred tool (declared in `tools` with `defer_loading: true`
## Fields
-| Field | Type | Required | Description |
-| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
-| `tool` | [components.MessagesToolAdditionBlockTool](../components/messagestooladditionblocktool.mdx) | :heavy_check_mark: | N/A |
-| `type` | [components.TypeToolAddition](../components/typetooladdition.mdx) | :heavy_check_mark: | N/A |
\ No newline at end of file
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `cache_control` | [Optional[components.AnthropicCacheControlDirective]](../components/anthropiccachecontroldirective.mdx) | :heavy_minus_sign: | Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format. | \{
"type": "ephemeral"
} |
+| `tool` | [components.MessagesToolAdditionBlockToolUnion](../components/messagestooladditionblocktoolunion.mdx) | :heavy_check_mark: | N/A | |
+| `type` | [components.TypeToolAddition](../components/typetooladdition.mdx) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/components/messagestooladditionblocktoolmcptoolreference.mdx b/docs/components/messagestooladditionblocktoolmcptoolreference.mdx
new file mode 100644
index 00000000..8f35a41f
--- /dev/null
+++ b/docs/components/messagestooladditionblocktoolmcptoolreference.mdx
@@ -0,0 +1,11 @@
+---
+title: "MessagesToolAdditionBlockToolMcpToolReference"
+---
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
+| `name` | *str* | :heavy_check_mark: | N/A |
+| `server_name` | *str* | :heavy_check_mark: | N/A |
+| `type` | [components.MessagesToolAdditionBlockTypeMcpToolReference](../components/messagestooladditionblocktypemcptoolreference.mdx) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/components/messagestooladditionblocktoolmcptoolsetreference.mdx b/docs/components/messagestooladditionblocktoolmcptoolsetreference.mdx
new file mode 100644
index 00000000..807e3193
--- /dev/null
+++ b/docs/components/messagestooladditionblocktoolmcptoolsetreference.mdx
@@ -0,0 +1,10 @@
+---
+title: "MessagesToolAdditionBlockToolMcpToolsetReference"
+---
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
+| `server_name` | *str* | :heavy_check_mark: | N/A |
+| `type` | [components.MessagesToolAdditionBlockTypeMcpToolsetReference](../components/messagestooladditionblocktypemcptoolsetreference.mdx) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/components/messagestooladditionblocktool.mdx b/docs/components/messagestooladditionblocktooltoolreference.mdx
similarity index 97%
rename from docs/components/messagestooladditionblocktool.mdx
rename to docs/components/messagestooladditionblocktooltoolreference.mdx
index 459a5a4f..f56ec1fd 100644
--- a/docs/components/messagestooladditionblocktool.mdx
+++ b/docs/components/messagestooladditionblocktooltoolreference.mdx
@@ -1,5 +1,5 @@
---
-title: "MessagesToolAdditionBlockTool"
+title: "MessagesToolAdditionBlockToolToolReference"
---
## Fields
diff --git a/docs/components/messagestooladditionblocktoolunion.mdx b/docs/components/messagestooladditionblocktoolunion.mdx
new file mode 100644
index 00000000..fe8e0e54
--- /dev/null
+++ b/docs/components/messagestooladditionblocktoolunion.mdx
@@ -0,0 +1,24 @@
+---
+title: "MessagesToolAdditionBlockToolUnion"
+---
+
+## Supported Types
+
+### `components.MessagesToolAdditionBlockToolToolReference`
+
+```python
+value: components.MessagesToolAdditionBlockToolToolReference = /* values here */
+```
+
+### `components.MessagesToolAdditionBlockToolMcpToolReference`
+
+```python
+value: components.MessagesToolAdditionBlockToolMcpToolReference = /* values here */
+```
+
+### `components.MessagesToolAdditionBlockToolMcpToolsetReference`
+
+```python
+value: components.MessagesToolAdditionBlockToolMcpToolsetReference = /* values here */
+```
+
diff --git a/docs/components/messagestooladditionblocktypemcptoolreference.mdx b/docs/components/messagestooladditionblocktypemcptoolreference.mdx
new file mode 100644
index 00000000..f0f014ed
--- /dev/null
+++ b/docs/components/messagestooladditionblocktypemcptoolreference.mdx
@@ -0,0 +1,15 @@
+---
+title: "MessagesToolAdditionBlockTypeMcpToolReference"
+---
+
+## Example Usage
+
+```python
+from openrouter.components import MessagesToolAdditionBlockTypeMcpToolReference
+value: MessagesToolAdditionBlockTypeMcpToolReference = "mcp_tool_reference"
+```
+
+
+## Values
+
+- `"mcp_tool_reference"`
diff --git a/docs/components/messagestooladditionblocktypemcptoolsetreference.mdx b/docs/components/messagestooladditionblocktypemcptoolsetreference.mdx
new file mode 100644
index 00000000..4799e82f
--- /dev/null
+++ b/docs/components/messagestooladditionblocktypemcptoolsetreference.mdx
@@ -0,0 +1,15 @@
+---
+title: "MessagesToolAdditionBlockTypeMcpToolsetReference"
+---
+
+## Example Usage
+
+```python
+from openrouter.components import MessagesToolAdditionBlockTypeMcpToolsetReference
+value: MessagesToolAdditionBlockTypeMcpToolsetReference = "mcp_toolset_reference"
+```
+
+
+## Values
+
+- `"mcp_toolset_reference"`
diff --git a/docs/components/messagestoolremovalblock.mdx b/docs/components/messagestoolremovalblock.mdx
index 79249301..a8f4a77b 100644
--- a/docs/components/messagestoolremovalblock.mdx
+++ b/docs/components/messagestoolremovalblock.mdx
@@ -7,7 +7,8 @@ Removes a tool from the conversation mid-conversation without invalidating the p
## Fields
-| Field | Type | Required | Description |
-| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
-| `tool` | [components.MessagesToolRemovalBlockTool](../components/messagestoolremovalblocktool.mdx) | :heavy_check_mark: | N/A |
-| `type` | [components.TypeToolRemoval](../components/typetoolremoval.mdx) | :heavy_check_mark: | N/A |
\ No newline at end of file
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `cache_control` | [Optional[components.AnthropicCacheControlDirective]](../components/anthropiccachecontroldirective.mdx) | :heavy_minus_sign: | Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format. | \{
"type": "ephemeral"
} |
+| `tool` | [components.MessagesToolRemovalBlockToolUnion](../components/messagestoolremovalblocktoolunion.mdx) | :heavy_check_mark: | N/A | |
+| `type` | [components.TypeToolRemoval](../components/typetoolremoval.mdx) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/docs/components/messagestoolremovalblocktoolmcptoolreference.mdx b/docs/components/messagestoolremovalblocktoolmcptoolreference.mdx
new file mode 100644
index 00000000..63a22858
--- /dev/null
+++ b/docs/components/messagestoolremovalblocktoolmcptoolreference.mdx
@@ -0,0 +1,11 @@
+---
+title: "MessagesToolRemovalBlockToolMcpToolReference"
+---
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
+| `name` | *str* | :heavy_check_mark: | N/A |
+| `server_name` | *str* | :heavy_check_mark: | N/A |
+| `type` | [components.MessagesToolRemovalBlockTypeMcpToolReference](../components/messagestoolremovalblocktypemcptoolreference.mdx) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/components/messagestoolremovalblocktoolmcptoolsetreference.mdx b/docs/components/messagestoolremovalblocktoolmcptoolsetreference.mdx
new file mode 100644
index 00000000..39ce3ffd
--- /dev/null
+++ b/docs/components/messagestoolremovalblocktoolmcptoolsetreference.mdx
@@ -0,0 +1,10 @@
+---
+title: "MessagesToolRemovalBlockToolMcpToolsetReference"
+---
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
+| `server_name` | *str* | :heavy_check_mark: | N/A |
+| `type` | [components.MessagesToolRemovalBlockTypeMcpToolsetReference](../components/messagestoolremovalblocktypemcptoolsetreference.mdx) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/components/messagestoolremovalblocktool.mdx b/docs/components/messagestoolremovalblocktooltoolreference.mdx
similarity index 97%
rename from docs/components/messagestoolremovalblocktool.mdx
rename to docs/components/messagestoolremovalblocktooltoolreference.mdx
index a9340a29..5700e11a 100644
--- a/docs/components/messagestoolremovalblocktool.mdx
+++ b/docs/components/messagestoolremovalblocktooltoolreference.mdx
@@ -1,5 +1,5 @@
---
-title: "MessagesToolRemovalBlockTool"
+title: "MessagesToolRemovalBlockToolToolReference"
---
## Fields
diff --git a/docs/components/messagestoolremovalblocktoolunion.mdx b/docs/components/messagestoolremovalblocktoolunion.mdx
new file mode 100644
index 00000000..896fc177
--- /dev/null
+++ b/docs/components/messagestoolremovalblocktoolunion.mdx
@@ -0,0 +1,24 @@
+---
+title: "MessagesToolRemovalBlockToolUnion"
+---
+
+## Supported Types
+
+### `components.MessagesToolRemovalBlockToolToolReference`
+
+```python
+value: components.MessagesToolRemovalBlockToolToolReference = /* values here */
+```
+
+### `components.MessagesToolRemovalBlockToolMcpToolReference`
+
+```python
+value: components.MessagesToolRemovalBlockToolMcpToolReference = /* values here */
+```
+
+### `components.MessagesToolRemovalBlockToolMcpToolsetReference`
+
+```python
+value: components.MessagesToolRemovalBlockToolMcpToolsetReference = /* values here */
+```
+
diff --git a/docs/components/messagestoolremovalblocktypemcptoolreference.mdx b/docs/components/messagestoolremovalblocktypemcptoolreference.mdx
new file mode 100644
index 00000000..183c5b2a
--- /dev/null
+++ b/docs/components/messagestoolremovalblocktypemcptoolreference.mdx
@@ -0,0 +1,15 @@
+---
+title: "MessagesToolRemovalBlockTypeMcpToolReference"
+---
+
+## Example Usage
+
+```python
+from openrouter.components import MessagesToolRemovalBlockTypeMcpToolReference
+value: MessagesToolRemovalBlockTypeMcpToolReference = "mcp_tool_reference"
+```
+
+
+## Values
+
+- `"mcp_tool_reference"`
diff --git a/docs/components/messagestoolremovalblocktypemcptoolsetreference.mdx b/docs/components/messagestoolremovalblocktypemcptoolsetreference.mdx
new file mode 100644
index 00000000..8f5189ad
--- /dev/null
+++ b/docs/components/messagestoolremovalblocktypemcptoolsetreference.mdx
@@ -0,0 +1,15 @@
+---
+title: "MessagesToolRemovalBlockTypeMcpToolsetReference"
+---
+
+## Example Usage
+
+```python
+from openrouter.components import MessagesToolRemovalBlockTypeMcpToolsetReference
+value: MessagesToolRemovalBlockTypeMcpToolsetReference = "mcp_toolset_reference"
+```
+
+
+## Values
+
+- `"mcp_toolset_reference"`
diff --git a/pyproject.toml b/pyproject.toml
index 6f4b3e39..05a245e6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "openrouter"
-version = "1.0.21"
+version = "1.0.22"
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 154d73fa..6edf59c8 100644
--- a/src/openrouter/_version.py
+++ b/src/openrouter/_version.py
@@ -3,10 +3,10 @@
import importlib.metadata
__title__: str = "openrouter"
-__version__: str = "1.0.21"
+__version__: str = "1.0.22"
__openapi_doc_version__: str = "1.0.0"
__gen_version__: str = "2.914.0"
-__user_agent__: str = "speakeasy-sdk/python 1.0.21 2.914.0 1.0.0 openrouter"
+__user_agent__: str = "speakeasy-sdk/python 1.0.22 2.914.0 1.0.0 openrouter"
try:
if __package__ is not None:
diff --git a/src/openrouter/components/__init__.py b/src/openrouter/components/__init__.py
index af44c2e3..1a1bea47 100644
--- a/src/openrouter/components/__init__.py
+++ b/src/openrouter/components/__init__.py
@@ -14,10 +14,10 @@
AdditionalToolsItemTool,
AdditionalToolsItemToolFunction,
AdditionalToolsItemToolFunctionTypedDict,
- AdditionalToolsItemToolType,
AdditionalToolsItemToolTypedDict,
AdditionalToolsItemToolUnion,
AdditionalToolsItemToolUnionTypedDict,
+ AdditionalToolsItemTypeFunction,
AdditionalToolsItemTypedDict,
TypeAdditionalTools,
)
@@ -1632,16 +1632,32 @@
)
from .messagestooladditionblock import (
MessagesToolAdditionBlock,
- MessagesToolAdditionBlockTool,
- MessagesToolAdditionBlockToolTypedDict,
+ MessagesToolAdditionBlockToolMcpToolReference,
+ MessagesToolAdditionBlockToolMcpToolReferenceTypedDict,
+ MessagesToolAdditionBlockToolMcpToolsetReference,
+ MessagesToolAdditionBlockToolMcpToolsetReferenceTypedDict,
+ MessagesToolAdditionBlockToolToolReference,
+ MessagesToolAdditionBlockToolToolReferenceTypedDict,
+ MessagesToolAdditionBlockToolUnion,
+ MessagesToolAdditionBlockToolUnionTypedDict,
+ MessagesToolAdditionBlockTypeMcpToolReference,
+ MessagesToolAdditionBlockTypeMcpToolsetReference,
MessagesToolAdditionBlockTypeToolReference,
MessagesToolAdditionBlockTypedDict,
TypeToolAddition,
)
from .messagestoolremovalblock import (
MessagesToolRemovalBlock,
- MessagesToolRemovalBlockTool,
- MessagesToolRemovalBlockToolTypedDict,
+ MessagesToolRemovalBlockToolMcpToolReference,
+ MessagesToolRemovalBlockToolMcpToolReferenceTypedDict,
+ MessagesToolRemovalBlockToolMcpToolsetReference,
+ MessagesToolRemovalBlockToolMcpToolsetReferenceTypedDict,
+ MessagesToolRemovalBlockToolToolReference,
+ MessagesToolRemovalBlockToolToolReferenceTypedDict,
+ MessagesToolRemovalBlockToolUnion,
+ MessagesToolRemovalBlockToolUnionTypedDict,
+ MessagesToolRemovalBlockTypeMcpToolReference,
+ MessagesToolRemovalBlockTypeMcpToolsetReference,
MessagesToolRemovalBlockTypeToolReference,
MessagesToolRemovalBlockTypedDict,
TypeToolRemoval,
@@ -2906,10 +2922,10 @@
"AdditionalToolsItemTool",
"AdditionalToolsItemToolFunction",
"AdditionalToolsItemToolFunctionTypedDict",
- "AdditionalToolsItemToolType",
"AdditionalToolsItemToolTypedDict",
"AdditionalToolsItemToolUnion",
"AdditionalToolsItemToolUnionTypedDict",
+ "AdditionalToolsItemTypeFunction",
"AdditionalToolsItemTypedDict",
"AdvisorNestedTool",
"AdvisorNestedToolTypedDict",
@@ -3994,13 +4010,29 @@
"MessagesSearchModelsServerToolType",
"MessagesSearchModelsServerToolTypedDict",
"MessagesToolAdditionBlock",
- "MessagesToolAdditionBlockTool",
- "MessagesToolAdditionBlockToolTypedDict",
+ "MessagesToolAdditionBlockToolMcpToolReference",
+ "MessagesToolAdditionBlockToolMcpToolReferenceTypedDict",
+ "MessagesToolAdditionBlockToolMcpToolsetReference",
+ "MessagesToolAdditionBlockToolMcpToolsetReferenceTypedDict",
+ "MessagesToolAdditionBlockToolToolReference",
+ "MessagesToolAdditionBlockToolToolReferenceTypedDict",
+ "MessagesToolAdditionBlockToolUnion",
+ "MessagesToolAdditionBlockToolUnionTypedDict",
+ "MessagesToolAdditionBlockTypeMcpToolReference",
+ "MessagesToolAdditionBlockTypeMcpToolsetReference",
"MessagesToolAdditionBlockTypeToolReference",
"MessagesToolAdditionBlockTypedDict",
"MessagesToolRemovalBlock",
- "MessagesToolRemovalBlockTool",
- "MessagesToolRemovalBlockToolTypedDict",
+ "MessagesToolRemovalBlockToolMcpToolReference",
+ "MessagesToolRemovalBlockToolMcpToolReferenceTypedDict",
+ "MessagesToolRemovalBlockToolMcpToolsetReference",
+ "MessagesToolRemovalBlockToolMcpToolsetReferenceTypedDict",
+ "MessagesToolRemovalBlockToolToolReference",
+ "MessagesToolRemovalBlockToolToolReferenceTypedDict",
+ "MessagesToolRemovalBlockToolUnion",
+ "MessagesToolRemovalBlockToolUnionTypedDict",
+ "MessagesToolRemovalBlockTypeMcpToolReference",
+ "MessagesToolRemovalBlockTypeMcpToolsetReference",
"MessagesToolRemovalBlockTypeToolReference",
"MessagesToolRemovalBlockTypedDict",
"MetadataLevel",
@@ -5011,10 +5043,10 @@
"AdditionalToolsItemTool": ".additionaltoolsitem",
"AdditionalToolsItemToolFunction": ".additionaltoolsitem",
"AdditionalToolsItemToolFunctionTypedDict": ".additionaltoolsitem",
- "AdditionalToolsItemToolType": ".additionaltoolsitem",
"AdditionalToolsItemToolTypedDict": ".additionaltoolsitem",
"AdditionalToolsItemToolUnion": ".additionaltoolsitem",
"AdditionalToolsItemToolUnionTypedDict": ".additionaltoolsitem",
+ "AdditionalToolsItemTypeFunction": ".additionaltoolsitem",
"AdditionalToolsItemTypedDict": ".additionaltoolsitem",
"TypeAdditionalTools": ".additionaltoolsitem",
"AdvisorNestedTool": ".advisornestedtool",
@@ -6209,14 +6241,30 @@
"MessagesSearchModelsServerToolType": ".messagessearchmodelsservertool",
"MessagesSearchModelsServerToolTypedDict": ".messagessearchmodelsservertool",
"MessagesToolAdditionBlock": ".messagestooladditionblock",
- "MessagesToolAdditionBlockTool": ".messagestooladditionblock",
- "MessagesToolAdditionBlockToolTypedDict": ".messagestooladditionblock",
+ "MessagesToolAdditionBlockToolMcpToolReference": ".messagestooladditionblock",
+ "MessagesToolAdditionBlockToolMcpToolReferenceTypedDict": ".messagestooladditionblock",
+ "MessagesToolAdditionBlockToolMcpToolsetReference": ".messagestooladditionblock",
+ "MessagesToolAdditionBlockToolMcpToolsetReferenceTypedDict": ".messagestooladditionblock",
+ "MessagesToolAdditionBlockToolToolReference": ".messagestooladditionblock",
+ "MessagesToolAdditionBlockToolToolReferenceTypedDict": ".messagestooladditionblock",
+ "MessagesToolAdditionBlockToolUnion": ".messagestooladditionblock",
+ "MessagesToolAdditionBlockToolUnionTypedDict": ".messagestooladditionblock",
+ "MessagesToolAdditionBlockTypeMcpToolReference": ".messagestooladditionblock",
+ "MessagesToolAdditionBlockTypeMcpToolsetReference": ".messagestooladditionblock",
"MessagesToolAdditionBlockTypeToolReference": ".messagestooladditionblock",
"MessagesToolAdditionBlockTypedDict": ".messagestooladditionblock",
"TypeToolAddition": ".messagestooladditionblock",
"MessagesToolRemovalBlock": ".messagestoolremovalblock",
- "MessagesToolRemovalBlockTool": ".messagestoolremovalblock",
- "MessagesToolRemovalBlockToolTypedDict": ".messagestoolremovalblock",
+ "MessagesToolRemovalBlockToolMcpToolReference": ".messagestoolremovalblock",
+ "MessagesToolRemovalBlockToolMcpToolReferenceTypedDict": ".messagestoolremovalblock",
+ "MessagesToolRemovalBlockToolMcpToolsetReference": ".messagestoolremovalblock",
+ "MessagesToolRemovalBlockToolMcpToolsetReferenceTypedDict": ".messagestoolremovalblock",
+ "MessagesToolRemovalBlockToolToolReference": ".messagestoolremovalblock",
+ "MessagesToolRemovalBlockToolToolReferenceTypedDict": ".messagestoolremovalblock",
+ "MessagesToolRemovalBlockToolUnion": ".messagestoolremovalblock",
+ "MessagesToolRemovalBlockToolUnionTypedDict": ".messagestoolremovalblock",
+ "MessagesToolRemovalBlockTypeMcpToolReference": ".messagestoolremovalblock",
+ "MessagesToolRemovalBlockTypeMcpToolsetReference": ".messagestoolremovalblock",
"MessagesToolRemovalBlockTypeToolReference": ".messagestoolremovalblock",
"MessagesToolRemovalBlockTypedDict": ".messagestoolremovalblock",
"TypeToolRemoval": ".messagestoolremovalblock",
diff --git a/src/openrouter/components/additionaltoolsitem.py b/src/openrouter/components/additionaltoolsitem.py
index 2cef174a..c9851ef1 100644
--- a/src/openrouter/components/additionaltoolsitem.py
+++ b/src/openrouter/components/additionaltoolsitem.py
@@ -116,7 +116,7 @@ def additional_properties(self, value):
self.__pydantic_extra__ = value # pyright: ignore[reportIncompatibleVariableOverride]
-AdditionalToolsItemToolType = Literal["function",]
+AdditionalToolsItemTypeFunction = Literal["function",]
class AdditionalToolsItemToolFunctionTypedDict(TypedDict):
@@ -124,7 +124,7 @@ class AdditionalToolsItemToolFunctionTypedDict(TypedDict):
name: str
parameters: Nullable[Dict[str, Any]]
- type: AdditionalToolsItemToolType
+ type: AdditionalToolsItemTypeFunction
description: NotRequired[Nullable[str]]
strict: NotRequired[Nullable[bool]]
@@ -136,7 +136,7 @@ class AdditionalToolsItemToolFunction(BaseModel):
parameters: Nullable[Dict[str, Any]]
- type: AdditionalToolsItemToolType
+ type: AdditionalToolsItemTypeFunction
description: OptionalNullable[str] = UNSET
diff --git a/src/openrouter/components/messagesmessageparam.py b/src/openrouter/components/messagesmessageparam.py
index b2cde9fb..67bf044b 100644
--- a/src/openrouter/components/messagesmessageparam.py
+++ b/src/openrouter/components/messagesmessageparam.py
@@ -37,7 +37,14 @@
MessagesToolRemovalBlock,
MessagesToolRemovalBlockTypedDict,
)
-from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL, UnrecognizedStr
+from openrouter.types import (
+ BaseModel,
+ Nullable,
+ OptionalNullable,
+ UNSET,
+ UNSET_SENTINEL,
+ UnrecognizedStr,
+)
from openrouter.utils import get_discriminator
from pydantic import Discriminator, Tag, model_serializer
from typing import Any, List, Literal, Optional, Union
@@ -52,6 +59,7 @@ class ContentCompactionTypedDict(TypedDict):
type: MessagesMessageParamTypeCompaction
cache_control: NotRequired[AnthropicCacheControlDirectiveTypedDict]
r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format."""
+ encrypted_content: NotRequired[Nullable[str]]
class ContentCompaction(BaseModel):
@@ -62,10 +70,12 @@ class ContentCompaction(BaseModel):
cache_control: Optional[AnthropicCacheControlDirective] = None
r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format."""
+ encrypted_content: OptionalNullable[str] = UNSET
+
@model_serializer(mode="wrap")
def serialize_model(self, handler):
- optional_fields = set(["cache_control"])
- nullable_fields = set(["content"])
+ optional_fields = set(["cache_control", "encrypted_content"])
+ nullable_fields = set(["content", "encrypted_content"])
serialized = handler(self)
m = {}
@@ -374,13 +384,13 @@ def serialize_model(self, handler):
MessagesMessageParamContentUnion4TypedDict = TypeAliasType(
"MessagesMessageParamContentUnion4TypedDict",
Union[
- MessagesToolRemovalBlockTypedDict,
- MessagesToolAdditionBlockTypedDict,
ContentRedactedThinkingTypedDict,
- ContentCompactionTypedDict,
AnthropicImageBlockParamTypedDict,
+ MessagesToolRemovalBlockTypedDict,
+ MessagesToolAdditionBlockTypedDict,
ContentThinkingTypedDict,
MessagesAdvisorToolResultBlockTypedDict,
+ ContentCompactionTypedDict,
AnthropicTextBlockParamTypedDict,
ContentWebSearchToolResultTypedDict,
ContentToolUseTypedDict,
diff --git a/src/openrouter/components/messagestooladditionblock.py b/src/openrouter/components/messagestooladditionblock.py
index d6be5ce8..4c081d8d 100644
--- a/src/openrouter/components/messagestooladditionblock.py
+++ b/src/openrouter/components/messagestooladditionblock.py
@@ -1,38 +1,121 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
-from openrouter.types import BaseModel
-from typing import Literal
-from typing_extensions import TypedDict
+from .anthropiccachecontroldirective import (
+ AnthropicCacheControlDirective,
+ AnthropicCacheControlDirectiveTypedDict,
+)
+from openrouter.types import BaseModel, UNSET_SENTINEL
+from openrouter.utils import get_discriminator
+from pydantic import Discriminator, Tag, model_serializer
+from typing import Literal, Optional, Union
+from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
+
+
+MessagesToolAdditionBlockTypeMcpToolsetReference = Literal["mcp_toolset_reference",]
+
+
+class MessagesToolAdditionBlockToolMcpToolsetReferenceTypedDict(TypedDict):
+ server_name: str
+ type: MessagesToolAdditionBlockTypeMcpToolsetReference
+
+
+class MessagesToolAdditionBlockToolMcpToolsetReference(BaseModel):
+ server_name: str
+
+ type: MessagesToolAdditionBlockTypeMcpToolsetReference
+
+
+MessagesToolAdditionBlockTypeMcpToolReference = Literal["mcp_tool_reference",]
+
+
+class MessagesToolAdditionBlockToolMcpToolReferenceTypedDict(TypedDict):
+ name: str
+ server_name: str
+ type: MessagesToolAdditionBlockTypeMcpToolReference
+
+
+class MessagesToolAdditionBlockToolMcpToolReference(BaseModel):
+ name: str
+
+ server_name: str
+
+ type: MessagesToolAdditionBlockTypeMcpToolReference
MessagesToolAdditionBlockTypeToolReference = Literal["tool_reference",]
-class MessagesToolAdditionBlockToolTypedDict(TypedDict):
+class MessagesToolAdditionBlockToolToolReferenceTypedDict(TypedDict):
name: str
type: MessagesToolAdditionBlockTypeToolReference
-class MessagesToolAdditionBlockTool(BaseModel):
+class MessagesToolAdditionBlockToolToolReference(BaseModel):
name: str
type: MessagesToolAdditionBlockTypeToolReference
+MessagesToolAdditionBlockToolUnionTypedDict = TypeAliasType(
+ "MessagesToolAdditionBlockToolUnionTypedDict",
+ Union[
+ MessagesToolAdditionBlockToolToolReferenceTypedDict,
+ MessagesToolAdditionBlockToolMcpToolsetReferenceTypedDict,
+ MessagesToolAdditionBlockToolMcpToolReferenceTypedDict,
+ ],
+)
+
+
+MessagesToolAdditionBlockToolUnion = Annotated[
+ Union[
+ Annotated[MessagesToolAdditionBlockToolToolReference, Tag("tool_reference")],
+ Annotated[
+ MessagesToolAdditionBlockToolMcpToolReference, Tag("mcp_tool_reference")
+ ],
+ Annotated[
+ MessagesToolAdditionBlockToolMcpToolsetReference,
+ Tag("mcp_toolset_reference"),
+ ],
+ ],
+ Discriminator(lambda m: get_discriminator(m, "type", "type")),
+]
+
+
TypeToolAddition = Literal["tool_addition",]
class MessagesToolAdditionBlockTypedDict(TypedDict):
r"""Loads a previously deferred tool (declared in `tools` with `defer_loading: true`) mid-conversation without invalidating the prompt cache. Only valid in `role: \"system\"` messages. Not supported on Claude Sonnet 5 or models older than Claude Opus 4.8."""
- tool: MessagesToolAdditionBlockToolTypedDict
+ tool: MessagesToolAdditionBlockToolUnionTypedDict
type: TypeToolAddition
+ cache_control: NotRequired[AnthropicCacheControlDirectiveTypedDict]
+ r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format."""
class MessagesToolAdditionBlock(BaseModel):
r"""Loads a previously deferred tool (declared in `tools` with `defer_loading: true`) mid-conversation without invalidating the prompt cache. Only valid in `role: \"system\"` messages. Not supported on Claude Sonnet 5 or models older than Claude Opus 4.8."""
- tool: MessagesToolAdditionBlockTool
+ tool: MessagesToolAdditionBlockToolUnion
type: TypeToolAddition
+
+ cache_control: Optional[AnthropicCacheControlDirective] = None
+ r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format."""
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = set(["cache_control"])
+ serialized = handler(self)
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k, serialized.get(n))
+
+ if val != UNSET_SENTINEL:
+ if val is not None or k not in optional_fields:
+ m[k] = val
+
+ return m
diff --git a/src/openrouter/components/messagestoolremovalblock.py b/src/openrouter/components/messagestoolremovalblock.py
index 32238d76..c06c11fd 100644
--- a/src/openrouter/components/messagestoolremovalblock.py
+++ b/src/openrouter/components/messagestoolremovalblock.py
@@ -1,38 +1,121 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
-from openrouter.types import BaseModel
-from typing import Literal
-from typing_extensions import TypedDict
+from .anthropiccachecontroldirective import (
+ AnthropicCacheControlDirective,
+ AnthropicCacheControlDirectiveTypedDict,
+)
+from openrouter.types import BaseModel, UNSET_SENTINEL
+from openrouter.utils import get_discriminator
+from pydantic import Discriminator, Tag, model_serializer
+from typing import Literal, Optional, Union
+from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
+
+
+MessagesToolRemovalBlockTypeMcpToolsetReference = Literal["mcp_toolset_reference",]
+
+
+class MessagesToolRemovalBlockToolMcpToolsetReferenceTypedDict(TypedDict):
+ server_name: str
+ type: MessagesToolRemovalBlockTypeMcpToolsetReference
+
+
+class MessagesToolRemovalBlockToolMcpToolsetReference(BaseModel):
+ server_name: str
+
+ type: MessagesToolRemovalBlockTypeMcpToolsetReference
+
+
+MessagesToolRemovalBlockTypeMcpToolReference = Literal["mcp_tool_reference",]
+
+
+class MessagesToolRemovalBlockToolMcpToolReferenceTypedDict(TypedDict):
+ name: str
+ server_name: str
+ type: MessagesToolRemovalBlockTypeMcpToolReference
+
+
+class MessagesToolRemovalBlockToolMcpToolReference(BaseModel):
+ name: str
+
+ server_name: str
+
+ type: MessagesToolRemovalBlockTypeMcpToolReference
MessagesToolRemovalBlockTypeToolReference = Literal["tool_reference",]
-class MessagesToolRemovalBlockToolTypedDict(TypedDict):
+class MessagesToolRemovalBlockToolToolReferenceTypedDict(TypedDict):
name: str
type: MessagesToolRemovalBlockTypeToolReference
-class MessagesToolRemovalBlockTool(BaseModel):
+class MessagesToolRemovalBlockToolToolReference(BaseModel):
name: str
type: MessagesToolRemovalBlockTypeToolReference
+MessagesToolRemovalBlockToolUnionTypedDict = TypeAliasType(
+ "MessagesToolRemovalBlockToolUnionTypedDict",
+ Union[
+ MessagesToolRemovalBlockToolToolReferenceTypedDict,
+ MessagesToolRemovalBlockToolMcpToolsetReferenceTypedDict,
+ MessagesToolRemovalBlockToolMcpToolReferenceTypedDict,
+ ],
+)
+
+
+MessagesToolRemovalBlockToolUnion = Annotated[
+ Union[
+ Annotated[MessagesToolRemovalBlockToolToolReference, Tag("tool_reference")],
+ Annotated[
+ MessagesToolRemovalBlockToolMcpToolReference, Tag("mcp_tool_reference")
+ ],
+ Annotated[
+ MessagesToolRemovalBlockToolMcpToolsetReference,
+ Tag("mcp_toolset_reference"),
+ ],
+ ],
+ Discriminator(lambda m: get_discriminator(m, "type", "type")),
+]
+
+
TypeToolRemoval = Literal["tool_removal",]
class MessagesToolRemovalBlockTypedDict(TypedDict):
r"""Removes a tool from the conversation mid-conversation without invalidating the prompt cache. Only valid in `role: \"system\"` messages. Not supported on Claude Sonnet 5 or models older than Claude Opus 4.8."""
- tool: MessagesToolRemovalBlockToolTypedDict
+ tool: MessagesToolRemovalBlockToolUnionTypedDict
type: TypeToolRemoval
+ cache_control: NotRequired[AnthropicCacheControlDirectiveTypedDict]
+ r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format."""
class MessagesToolRemovalBlock(BaseModel):
r"""Removes a tool from the conversation mid-conversation without invalidating the prompt cache. Only valid in `role: \"system\"` messages. Not supported on Claude Sonnet 5 or models older than Claude Opus 4.8."""
- tool: MessagesToolRemovalBlockTool
+ tool: MessagesToolRemovalBlockToolUnion
type: TypeToolRemoval
+
+ cache_control: Optional[AnthropicCacheControlDirective] = None
+ r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format."""
+
+ @model_serializer(mode="wrap")
+ def serialize_model(self, handler):
+ optional_fields = set(["cache_control"])
+ serialized = handler(self)
+ m = {}
+
+ for n, f in type(self).model_fields.items():
+ k = f.alias or n
+ val = serialized.get(k, serialized.get(n))
+
+ if val != UNSET_SENTINEL:
+ if val is not None or k not in optional_fields:
+ m[k] = val
+
+ return m
diff --git a/uv.lock b/uv.lock
index 23ac6d48..b0baabf3 100644
--- a/uv.lock
+++ b/uv.lock
@@ -213,7 +213,7 @@ wheels = [
[[package]]
name = "openrouter"
-version = "1.0.21"
+version = "1.0.22"
source = { editable = "." }
dependencies = [
{ name = "httpcore" },