diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock
index 94c6820d..a2a18316 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: f16abc205e334d77dc451ea14a80dadf
+ docChecksum: ed950d049ab66589aac666ef97de5ade
docVersion: 1.0.0
speakeasyVersion: 1.787.0
generationVersion: 2.914.0
- releaseVersion: 1.0.19
- configChecksum: 4ff021275d1f9854370e7598e50a6ef2
+ releaseVersion: 1.0.20
+ configChecksum: f7f51e2cd388ebe2e91f02fc0a41352e
repoURL: https://github.com/OpenRouterTeam/python-sdk.git
installationURL: https://github.com/OpenRouterTeam/python-sdk.git
published: true
persistentEdits:
- generation_id: e4e0f40f-277a-4507-a2b9-73a13f2a044a
- pristine_commit_hash: ef5af0eed00930ab406a3117b815dff762ee94d7
- pristine_tree_hash: 01e969115c5103bf529f355d443d7b2a22b18715
+ generation_id: f2abf7d4-b877-47c5-8587-59c10d598c75
+ pristine_commit_hash: cc3e616b1f39b9981779f11bd5bb34961b930a68
+ pristine_tree_hash: 47137858cec8990ab2a47c957e7ceeef1b10ca96
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
@@ -2178,8 +2178,8 @@ trackedFiles:
pristine_git_object: 11f1471c8b6c04f52af89d74d6dec2e9d12c2d82
docs/components/imagegenerationproviderpreferencesoptions.mdx:
id: 32d5c4b3e06b
- last_write_checksum: sha1:79448fee4389f7fd560ae6ef99cbc7f3a929b12e
- pristine_git_object: bedae4a2a2e10314cd408752ef62c5ffd50e0114
+ last_write_checksum: sha1:01c587b1f8f0e708180ae7312d069def899ecf3f
+ pristine_git_object: 90824d75b4ad674ae209f2b53a02059154a96e22
docs/components/imagegenerationproviderpreferencesorder.mdx:
id: 0547877073f3
last_write_checksum: sha1:3e890c691097373cc9a2d7e47c3594f56b57809c
@@ -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
@@ -4018,12 +4058,12 @@ trackedFiles:
pristine_git_object: 1d91d32cd0bf4b64699bbbf05a7e95ab835b10cf
docs/components/providername.mdx:
id: aa3a4904b228
- last_write_checksum: sha1:30a2946bcaec079258f0946c083bb96df62a3948
- pristine_git_object: 8f1a8c2b7330f5914dfb40aa7684cf09e802ad8d
+ last_write_checksum: sha1:5ae044c5b3e530f65edbe9337c96a7686c8ea2c4
+ pristine_git_object: 80590eb8a23b3b5ddf09f8230bb9d0f66636c78a
docs/components/provideroptions.mdx:
id: 2697807524fe
- last_write_checksum: sha1:3d8f0c0fffa8e2099525e5248e012cc70fe0b3e3
- pristine_git_object: 9b0ea126f35181ab9b0a75202598974b7127ef0d
+ last_write_checksum: sha1:6c037128c937eb8b23b6ab4e2c3774e99f43632a
+ pristine_git_object: 76828af2dbeccf26afc78fab269f4765b27b1027
docs/components/provideroverloadedresponseerrordata.mdx:
id: dc500cd14889
last_write_checksum: sha1:8326118941c8899a398931c8c7871af21b716b00
@@ -4054,8 +4094,8 @@ trackedFiles:
pristine_git_object: dd376f0952fa0517dd83b06ed7afc2c856123dbc
docs/components/providerresponseprovidername.mdx:
id: 2fc17b61e546
- last_write_checksum: sha1:26eeb2ea7179a98cbd091a8a99933eca127b845d
- pristine_git_object: 3b4630ae10a470529eaafd35820f9a2fbc4a9ebf
+ last_write_checksum: sha1:e6e6d051191493e2906336308fe47a4994c1147c
+ pristine_git_object: 0666eb53983321e4c4c2c6ab17bbff4ba29e8eb6
docs/components/providersort.mdx:
id: d73fa13eeb95
last_write_checksum: sha1:b7e9e6842741e3433d705bd576f2ac5383f00134
@@ -5158,8 +5198,8 @@ trackedFiles:
pristine_git_object: 67f56887bb4758559189e3e9e6123dff9a38df81
docs/components/videogenerationrequestoptions.mdx:
id: 1d67160e7e7a
- last_write_checksum: sha1:38c992ecfda0f3336345725c98cb83722609ab5f
- pristine_git_object: 1d867dfd422b24925bdd97a9cb10b0c9dea9283b
+ last_write_checksum: sha1:a5ac11330f89f599befbe7bb3047c4ed9edbe46c
+ pristine_git_object: 57ae41aa65798aeb76dcf11b01f8248b2ac94a84
docs/components/videogenerationrequestprovider.mdx:
id: d6424dd5de9d
last_write_checksum: sha1:72aa46a3335220b579db56574ea179d150dbe2b6
@@ -6750,8 +6790,8 @@ trackedFiles:
pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544
pyproject.toml:
id: 5d07e7d72637
- last_write_checksum: sha1:61fd11a93986fca25fdcbaa36124bc0348a15db5
- pristine_git_object: 7b37723bb049bafec91318d0031dd5037c5d441d
+ last_write_checksum: sha1:1a91e36dcd5f5821e924ffe8859eaf66a8b302d3
+ pristine_git_object: 1bb07f75ff35ce359f1c69d191259eb1fd0ed582
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:5972427ba4edaedfdfbab8ccf78aa2bde10eedc5
- pristine_git_object: 5549fa9e1068d7511d922b5890f169691ba5c7b8
+ last_write_checksum: sha1:3f59426eeb12319cd895fb7293c1d3ac86db3add
+ pristine_git_object: d89fbfecb9239b69ab6d7851369bd2657ca0c0cc
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
@@ -7786,8 +7826,8 @@ trackedFiles:
pristine_git_object: 6b9a8990973466285f9b49b366bbc5fc1ae42e41
src/openrouter/components/imagegenerationproviderpreferences.py:
id: 100a82a54e2d
- last_write_checksum: sha1:42150ced0fa838d57c03a481da72cef34d411960
- pristine_git_object: cfe137af9fbdbc126e24cf2185bbf0a30fc79518
+ last_write_checksum: sha1:6eabe81b1763f2e3d73817c04d718e067f45cd1d
+ pristine_git_object: ad60b73c8b88652ae1ddf903b9bc20460c8476d6
src/openrouter/components/imagegenerationrequest.py:
id: f8291a7be9a0
last_write_checksum: sha1:48a9640c0b9f48833d5514c7671bfa4b76aac776
@@ -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
@@ -8494,12 +8534,12 @@ trackedFiles:
pristine_git_object: 170ae25c582bb8decd74e1c69bfa8353bd44e86d
src/openrouter/components/providername.py:
id: fcc722fa2fce
- last_write_checksum: sha1:6261798c4856a612a520603298619f2db9b3129e
- pristine_git_object: c13d55442514a266353271b20536cd481167ce92
+ last_write_checksum: sha1:29d0fda6336a7f8ba6b6c478e52833f8b6589604
+ pristine_git_object: 2f5ee1557b43baede2906eabfdf3cad25756e4b0
src/openrouter/components/provideroptions.py:
id: 73dde6c8f359
- last_write_checksum: sha1:f14ad0a870a43023916f09ebd2b954ff2dab4f57
- pristine_git_object: ef73482900d950989db72bc39cdfd216a8064bf4
+ last_write_checksum: sha1:50b71921af35626497a6f2e61bb23cc8f2089280
+ pristine_git_object: a528359929b543b56c7ac1efad49d3691894dc2a
src/openrouter/components/provideroverloadedresponseerrordata.py:
id: 5b693682570e
last_write_checksum: sha1:b54682560ff95dad18d26f9aaf887f8f6e0e1f71
@@ -8510,8 +8550,8 @@ trackedFiles:
pristine_git_object: 54ef6ce91cc841aff1c74c0fed7c6f54f2f0ee2f
src/openrouter/components/providerresponse.py:
id: ad3887be54c5
- last_write_checksum: sha1:f32d7ab3b54c2fec4ba618cb08d370139767eeac
- pristine_git_object: e8c5aeccacb8f7bde3e1a9c39b92713cfc1e0d03
+ last_write_checksum: sha1:693f3d4e926467af2c26fde0404db6db71c3adab
+ pristine_git_object: ae07ca68645f1568ba3d8314e4c94ae7d92f550e
src/openrouter/components/providersort.py:
id: 348e382bf494
last_write_checksum: sha1:57551507f95cd2e16ef995e1c13f859fd0726152
@@ -8974,8 +9014,8 @@ trackedFiles:
pristine_git_object: a0491cc8fd3bd9986146cb1176e27d5b9c9beb60
src/openrouter/components/videogenerationrequest.py:
id: 70e3c9ff288c
- last_write_checksum: sha1:84e56299633c07ed43ed6a92f173e85d0d7202b7
- pristine_git_object: 93be8f71601f64b27d201221edc9372fc6824a82
+ last_write_checksum: sha1:de638803c4a40b4519eb96f4b440118644610250
+ pristine_git_object: 301c264287a2bff1b31a1fa274862a2476b1fce2
src/openrouter/components/videogenerationresponse.py:
id: 541f1321b072
last_write_checksum: sha1:18c3aa7845f63a9614286b1a27b6098eae1c4951
@@ -11281,6 +11321,4 @@ examples:
"500":
application/json: {"error": {"code": 500, "message": "Internal Server Error"}}
examplesVersion: 1.0.2
-releaseNotes: |
- ## Python SDK Changes:
- * `open_router.presets.create_presets_messages()`: `request` **Changed**
+releaseNotes: "## Python SDK Changes:\n* `open_router.presets.create_presets_messages()`: `request` **Changed** (Breaking ⚠️)\n* `open_router.endpoints.list()`: `response.data.endpoints[].provider_name.enum(voyage_ai_by_mongo_db)` **Added**\n* `open_router.stt.create_transcription()`: \n * `request.provider.options.voyageai` **Added**\n* `open_router.chat.send()`: \n * `request.provider.ignore[].union(ProviderName).enum(voyage_ai_by_mongo_db)` **Added**\n* `open_router.embeddings.generate()`: \n * `request.provider.ignore[].union(ProviderName).enum(voyage_ai_by_mongo_db)` **Added**\n* `open_router.endpoints.list_zdr_endpoints()`: `response.data[].provider_name.enum(voyage_ai_by_mongo_db)` **Added**\n* `open_router.beta.responses.send()`: \n * `request.provider.ignore[].union(ProviderName).enum(voyage_ai_by_mongo_db)` **Added**\n* `open_router.generations.get_generation()`: `response.data.provider_responses[].provider_name.enum(voyage_ai_by_mongo_db)` **Added**\n* `open_router.images.generate()`: `request.provider` **Changed**\n* `open_router.presets.create_presets_chat_completions()`: \n * `request.provider.ignore[].union(ProviderName).enum(voyage_ai_by_mongo_db)` **Added**\n* `open_router.tts.create_speech()`: \n * `request.provider.options.voyageai` **Added**\n* `open_router.presets.create_presets_responses()`: \n * `request.provider.ignore[].union(ProviderName).enum(voyage_ai_by_mongo_db)` **Added**\n* `open_router.rerank.rerank()`: \n * `request.provider.ignore[].union(ProviderName).enum(voyage_ai_by_mongo_db)` **Added**\n* `open_router.video_generation.generate()`: \n * `request.provider.options.voyageai` **Added**\n"
diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml
index 3887fe78..6de17e9b 100644
--- a/.speakeasy/gen.yaml
+++ b/.speakeasy/gen.yaml
@@ -36,7 +36,7 @@ generation:
documentation: mintlify
preApplyUnionDiscriminators: true
python:
- version: 1.0.19
+ version: 1.0.20
additionalDependencies:
dev: {}
main: {}
diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml
index e487931c..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'
@@ -13241,6 +13257,7 @@ components:
- 'Modular'
- 'Moonshot AI'
- 'Morph'
+ - 'VoyageAI by MongoDB'
- 'NCompass'
- 'Nebius'
- 'Nex AGI'
@@ -13404,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'
@@ -13432,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'
@@ -16773,6 +16846,7 @@ components:
enum:
- 'end_turn'
- 'max_tokens'
+ - 'model_context_window_exceeded'
- 'stop_sequence'
- 'tool_use'
- 'pause_turn'
@@ -19010,6 +19084,7 @@ components:
- 'Modular'
- 'Moonshot AI'
- 'Morph'
+ - 'VoyageAI by MongoDB'
- 'NCompass'
- 'Nebius'
- 'Nex AGI'
@@ -19428,6 +19503,9 @@ components:
venice:
additionalProperties: {}
type: 'object'
+ voyageai:
+ additionalProperties: {}
+ type: 'object'
wafer:
additionalProperties: {}
type: 'object'
@@ -19724,6 +19802,7 @@ components:
- 'Modular'
- 'Moonshot AI'
- 'Morph'
+ - 'VoyageAI by MongoDB'
- 'NCompass'
- 'Nebius'
- 'Nex AGI'
diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock
index 1f6b32e9..76eda462 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:00d4a3b5a3f008f2b46f301a3e7310d397c100a10e6c70418d60121a4865e259
- sourceBlobDigest: sha256:84f6a4b5f0ae7eeed219cd9ab1049f6181593d3784464dd93240aff6fd727e74
+ 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:00d4a3b5a3f008f2b46f301a3e7310d397c100a10e6c70418d60121a4865e259
- sourceBlobDigest: sha256:84f6a4b5f0ae7eeed219cd9ab1049f6181593d3784464dd93240aff6fd727e74
+ sourceRevisionDigest: sha256:bb9814e3281a9e0c3024eaa6567726ce1522ce6ccf1a05f1206563bccba3bcec
+ sourceBlobDigest: sha256:040172eadbe8a42c5cc61b80aa158f3211bac5e469aca169ad8d0555056d3bea
codeSamplesNamespace: open-router-python-code-samples
- codeSamplesRevisionDigest: sha256:fde97e93bd267a0402aa8338e3d771c4625562ac29d74bcff2211d824e867055
+ codeSamplesRevisionDigest: sha256:60f6bcb0840b8a546ae2fc33b9b02a72286fdf3d65c8ca7007e838b5bb95da5d
workflow:
workflowVersion: 1.0.0
speakeasyVersion: 1.787.0
diff --git a/RELEASES.md b/RELEASES.md
index cd91adf3..5b39f1d9 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -769,4 +769,14 @@ Based on:
### Generated
- [python v1.0.19] .
### Releases
-- [PyPI v1.0.19] https://pypi.org/project/openrouter/1.0.19 - .
\ No newline at end of file
+- [PyPI v1.0.19] https://pypi.org/project/openrouter/1.0.19 - .
+
+## 2026-07-24 20:13:11
+### Changes
+Based on:
+- OpenAPI Doc
+- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [python v1.0.20] .
+### Releases
+- [PyPI v1.0.20] https://pypi.org/project/openrouter/1.0.20 - .
\ 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/imagegenerationproviderpreferencesoptions.mdx b/docs/components/imagegenerationproviderpreferencesoptions.mdx
index bedae4a2..90824d75 100644
--- a/docs/components/imagegenerationproviderpreferencesoptions.mdx
+++ b/docs/components/imagegenerationproviderpreferencesoptions.mdx
@@ -132,6 +132,7 @@ Provider-specific options keyed by provider slug. Only options for the matched p
| `ubicloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `upstage` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `venice` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
+| `voyageai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `wafer` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `wandb` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `wandb_legacy` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
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/docs/components/providername.mdx b/docs/components/providername.mdx
index 8f1a8c2b..80590eb8 100644
--- a/docs/components/providername.mdx
+++ b/docs/components/providername.mdx
@@ -75,6 +75,7 @@ This is an open enum. Unrecognized values will not fail type checks.
- `"Modular"`
- `"Moonshot AI"`
- `"Morph"`
+- `"VoyageAI by MongoDB"`
- `"NCompass"`
- `"Nebius"`
- `"Nex AGI"`
diff --git a/docs/components/provideroptions.mdx b/docs/components/provideroptions.mdx
index 9b0ea126..76828af2 100644
--- a/docs/components/provideroptions.mdx
+++ b/docs/components/provideroptions.mdx
@@ -132,6 +132,7 @@ Provider-specific options keyed by provider slug. Only options for the matched p
| `ubicloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `upstage` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `venice` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
+| `voyageai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `wafer` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `wandb` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `wandb_legacy` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
diff --git a/docs/components/providerresponseprovidername.mdx b/docs/components/providerresponseprovidername.mdx
index 3b4630ae..0666eb53 100644
--- a/docs/components/providerresponseprovidername.mdx
+++ b/docs/components/providerresponseprovidername.mdx
@@ -105,6 +105,7 @@ This is an open enum. Unrecognized values will not fail type checks.
- `"Modular"`
- `"Moonshot AI"`
- `"Morph"`
+- `"VoyageAI by MongoDB"`
- `"NCompass"`
- `"Nebius"`
- `"Nex AGI"`
diff --git a/docs/components/videogenerationrequestoptions.mdx b/docs/components/videogenerationrequestoptions.mdx
index 1d867dfd..57ae41aa 100644
--- a/docs/components/videogenerationrequestoptions.mdx
+++ b/docs/components/videogenerationrequestoptions.mdx
@@ -132,6 +132,7 @@ Provider-specific options keyed by provider slug. Only options for the matched p
| `ubicloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `upstage` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `venice` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
+| `voyageai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `wafer` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `wandb` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
| `wandb_legacy` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
diff --git a/pyproject.toml b/pyproject.toml
index 7b37723b..1bb07f75 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "openrouter"
-version = "1.0.19"
+version = "1.0.20"
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 5549fa9e..d89fbfec 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.19"
+__version__: str = "1.0.20"
__openapi_doc_version__: str = "1.0.0"
__gen_version__: str = "2.914.0"
-__user_agent__: str = "speakeasy-sdk/python 1.0.19 2.914.0 1.0.0 openrouter"
+__user_agent__: str = "speakeasy-sdk/python 1.0.20 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/imagegenerationproviderpreferences.py b/src/openrouter/components/imagegenerationproviderpreferences.py
index cfe137af..ad60b73c 100644
--- a/src/openrouter/components/imagegenerationproviderpreferences.py
+++ b/src/openrouter/components/imagegenerationproviderpreferences.py
@@ -163,6 +163,7 @@ class ImageGenerationProviderPreferencesOptionsTypedDict(TypedDict):
ubicloud: NotRequired[Dict[str, Any]]
upstage: NotRequired[Dict[str, Any]]
venice: NotRequired[Dict[str, Any]]
+ voyageai: NotRequired[Dict[str, Any]]
wafer: NotRequired[Dict[str, Any]]
wandb: NotRequired[Dict[str, Any]]
wandb_legacy: NotRequired[Dict[str, Any]]
@@ -462,6 +463,8 @@ class ImageGenerationProviderPreferencesOptions(BaseModel):
venice: Optional[Dict[str, Any]] = None
+ voyageai: Optional[Dict[str, Any]] = None
+
wafer: Optional[Dict[str, Any]] = None
wandb: Optional[Dict[str, Any]] = None
@@ -603,6 +606,7 @@ def serialize_model(self, handler):
"ubicloud",
"upstage",
"venice",
+ "voyageai",
"wafer",
"wandb",
"wandb-legacy",
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/src/openrouter/components/providername.py b/src/openrouter/components/providername.py
index c13d5544..2f5ee155 100644
--- a/src/openrouter/components/providername.py
+++ b/src/openrouter/components/providername.py
@@ -66,6 +66,7 @@
"Modular",
"Moonshot AI",
"Morph",
+ "VoyageAI by MongoDB",
"NCompass",
"Nebius",
"Nex AGI",
diff --git a/src/openrouter/components/provideroptions.py b/src/openrouter/components/provideroptions.py
index ef734829..a5283599 100644
--- a/src/openrouter/components/provideroptions.py
+++ b/src/openrouter/components/provideroptions.py
@@ -134,6 +134,7 @@ class ProviderOptionsTypedDict(TypedDict):
ubicloud: NotRequired[Dict[str, Any]]
upstage: NotRequired[Dict[str, Any]]
venice: NotRequired[Dict[str, Any]]
+ voyageai: NotRequired[Dict[str, Any]]
wafer: NotRequired[Dict[str, Any]]
wandb: NotRequired[Dict[str, Any]]
wandb_legacy: NotRequired[Dict[str, Any]]
@@ -433,6 +434,8 @@ class ProviderOptions(BaseModel):
venice: Optional[Dict[str, Any]] = None
+ voyageai: Optional[Dict[str, Any]] = None
+
wafer: Optional[Dict[str, Any]] = None
wandb: Optional[Dict[str, Any]] = None
@@ -574,6 +577,7 @@ def serialize_model(self, handler):
"ubicloud",
"upstage",
"venice",
+ "voyageai",
"wafer",
"wandb",
"wandb-legacy",
diff --git a/src/openrouter/components/providerresponse.py b/src/openrouter/components/providerresponse.py
index e8c5aecc..ae07ca68 100644
--- a/src/openrouter/components/providerresponse.py
+++ b/src/openrouter/components/providerresponse.py
@@ -96,6 +96,7 @@
"Modular",
"Moonshot AI",
"Morph",
+ "VoyageAI by MongoDB",
"NCompass",
"Nebius",
"Nex AGI",
diff --git a/src/openrouter/components/videogenerationrequest.py b/src/openrouter/components/videogenerationrequest.py
index 93be8f71..301c2642 100644
--- a/src/openrouter/components/videogenerationrequest.py
+++ b/src/openrouter/components/videogenerationrequest.py
@@ -153,6 +153,7 @@ class VideoGenerationRequestOptionsTypedDict(TypedDict):
ubicloud: NotRequired[Dict[str, Any]]
upstage: NotRequired[Dict[str, Any]]
venice: NotRequired[Dict[str, Any]]
+ voyageai: NotRequired[Dict[str, Any]]
wafer: NotRequired[Dict[str, Any]]
wandb: NotRequired[Dict[str, Any]]
wandb_legacy: NotRequired[Dict[str, Any]]
@@ -452,6 +453,8 @@ class VideoGenerationRequestOptions(BaseModel):
venice: Optional[Dict[str, Any]] = None
+ voyageai: Optional[Dict[str, Any]] = None
+
wafer: Optional[Dict[str, Any]] = None
wandb: Optional[Dict[str, Any]] = None
@@ -593,6 +596,7 @@ def serialize_model(self, handler):
"ubicloud",
"upstage",
"venice",
+ "voyageai",
"wafer",
"wandb",
"wandb-legacy",
diff --git a/uv.lock b/uv.lock
index 69ee6ffd..5d4d9e4d 100644
--- a/uv.lock
+++ b/uv.lock
@@ -213,7 +213,7 @@ wheels = [
[[package]]
name = "openrouter"
-version = "1.0.19"
+version = "1.0.20"
source = { editable = "." }
dependencies = [
{ name = "httpcore" },