diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock
index 1705aa28..e82fa7e4 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: 186444ac50b88d1207a835200608f251
+ docChecksum: df0d6eec5d59a46271d17a5a306ff4e0
docVersion: 1.0.0
speakeasyVersion: 1.787.0
generationVersion: 2.914.0
- releaseVersion: 1.1.82
- configChecksum: 6b02708e9a731c541c4323938516a205
+ releaseVersion: 1.1.83
+ configChecksum: cc59a69762c567d051b239f3e001a0be
repoURL: https://github.com/OpenRouterTeam/python-sdk.git
installationURL: https://github.com/OpenRouterTeam/python-sdk.git
published: true
persistentEdits:
- generation_id: e0f8cd63-f2af-4039-837c-6f102e5afaa8
- pristine_commit_hash: 914334dd4b71b6cea69a39113b6421a255db660e
- pristine_tree_hash: 3b27fb8c1c6eb0f50343d764f364332c24110317
+ generation_id: 24890d2e-297e-4231-b36d-bcc73bf36fbf
+ pristine_commit_hash: 6a33cbe2b00e9f2864b4a7abb91f5f226c3bdc5b
+ pristine_tree_hash: 816dcc6dab02fb5bbbf3038381b1c572a3ea0b92
features:
python:
acceptHeaders: 3.0.0
@@ -742,8 +742,8 @@ trackedFiles:
pristine_git_object: 09464da84a2c1e57d9c6d7abda98254de075a858
docs/components/bashservertoolconfig.mdx:
id: 7c7f1dd1cc47
- last_write_checksum: sha1:8d566ee18106ce2ff562d5adb0a0f87a59aba68e
- pristine_git_object: 967974c047982a57c544e0533f251b200edeec2d
+ last_write_checksum: sha1:1a797d8d0af2f0fdaa01f62c1e6f4e1b3d1969de
+ pristine_git_object: 868659fff55fc2bebd154d902979c571998297dd
docs/components/bashservertoolengine.mdx:
id: d0779ee68ded
last_write_checksum: sha1:68e15335058a5c91b1e3fc74efa5e5d3767ad0fa
@@ -4854,8 +4854,8 @@ trackedFiles:
pristine_git_object: 0f55c3798873d7c5583fd06187cb7a9566bcc5b9
docs/components/shellservertoolconfig.mdx:
id: 5958cff854db
- last_write_checksum: sha1:8b6bd8f0e38c574f64e0b13a333fd80fca807043
- pristine_git_object: 5f24f1a8895e63426351e0bcb2d75fbffc06045b
+ last_write_checksum: sha1:8eae24960bc29a0446419cb016c0c82d895d959f
+ pristine_git_object: 5e52a3e5eecc86f483d9bd83554b6f3df564e451
docs/components/shellservertoolengine.mdx:
id: afea02c824ea
last_write_checksum: sha1:2c179cb81f553cad5ebf67e42230b011a4e01b7f
@@ -7378,8 +7378,8 @@ trackedFiles:
pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544
pyproject.toml:
id: 5d07e7d72637
- last_write_checksum: sha1:ee5273941a01e88fc4491ce707da7194cb8bd4c2
- pristine_git_object: c62bd79fcd4210fbd9d956a6f1b068c972ad287d
+ last_write_checksum: sha1:20826a15627db88885dc63332402d2c527df9ac2
+ pristine_git_object: 51b84ef6bdded0fab9af8288c3b7eb3fe72d2aaa
scripts/prepare_readme.py:
id: e0c5957a6035
last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54
@@ -7406,8 +7406,8 @@ trackedFiles:
pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137
src/openrouter/_version.py:
id: d8d15ad6c586
- last_write_checksum: sha1:dcd38933ce3fe0560a62846e839314f4a75de73e
- pristine_git_object: 66415488ba4a2b6bdfa9d321923b27b511c61cf0
+ last_write_checksum: sha1:b20d78d660b6979cd800255ad8162bc6da2fe6ed
+ pristine_git_object: a2972516c189344cad9d2be0329e107103086a1e
src/openrouter/analytics.py:
id: cb406b5aaabb
last_write_checksum: sha1:1e0004d8d1d5d797e2b54cd1cabeb7f9489d08e9
@@ -7738,8 +7738,8 @@ trackedFiles:
pristine_git_object: b2a50762374284e45d7850991774618c9367c488
src/openrouter/components/bashservertoolconfig.py:
id: c8c5bf3fd9a8
- last_write_checksum: sha1:d183602699550fe088b4c95bb0f351fd83b477f1
- pristine_git_object: 7bb32209eef6480a06cf0b951686520ca9d006a4
+ last_write_checksum: sha1:9a8800cea1f3e1cb0337bc7d592b9d25f298d697
+ pristine_git_object: 7f6fc452db272ec0e79367f7408f24c426916989
src/openrouter/components/bashservertoolengine.py:
id: 4648c91620a8
last_write_checksum: sha1:a4bc825f816c6207d69d3ca51098d05d14b0d69a
@@ -9510,8 +9510,8 @@ trackedFiles:
pristine_git_object: 0778136a1b4e03775ab17f69f3536f06e98e0cf9
src/openrouter/components/shellservertoolconfig.py:
id: eab9ca1aa376
- last_write_checksum: sha1:50279d498af202473ab9ae77e170fb6a07aed523
- pristine_git_object: aaa115f0224c807ceeaac7a80358894409e7aa0f
+ last_write_checksum: sha1:8071a91e9449637707a19ab00e535b925953e6da
+ pristine_git_object: c9a40551ef718008f102b2a228c114b32141d7ac
src/openrouter/components/shellservertoolengine.py:
id: 8a1dda027cc3
last_write_checksum: sha1:d8dd2e5aa21fd779a52853a0c496ed7a16d99bc4
@@ -12410,4 +12410,3 @@ examples:
"503":
application/json: {"error": {"code": 503, "message": "Service temporarily unavailable"}}
examplesVersion: 1.0.2
-releaseNotes: "## Python SDK Changes:\n* `open_router.chat.send()`: \n * `request.tools[].union(BashServerTool).parameters.environment` **Changed**\n* `open_router.presets.create_presets_chat_completions()`: \n * `request.tools[].union(BashServerTool).parameters.environment` **Changed**\n* `open_router.presets.create_presets_messages()`: \n * `request.tools[].union(BashServerTool).parameters.environment` **Changed**\n* `open_router.presets.create_presets_responses()`: \n * `request.input.union(Array<>)[].union(AdditionalToolsItem).tools[].union(BashServerTool).parameters.environment` **Changed**\n* `open_router.responses.send()`: \n * `request.input.union(Array<>)[].union(AdditionalToolsItem).tools[].union(BashServerTool).parameters.environment` **Changed**\n* `open_router.beta.responses.send()`: \n * `request.input.union(Array<>)[].union(AdditionalToolsItem).tools[].union(ShellServerTool_OpenRouter).parameters.environment` **Changed**\n"
diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml
index 6c0f3f70..ff85f3f7 100644
--- a/.speakeasy/gen.yaml
+++ b/.speakeasy/gen.yaml
@@ -36,7 +36,7 @@ generation:
documentation: mintlify
preApplyUnionDiscriminators: true
python:
- version: 1.1.82
+ version: 1.1.83
additionalDependencies:
dev: {}
main: {}
diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml
index 6850780d..edc9be70 100644
--- a/.speakeasy/out.openapi.yaml
+++ b/.speakeasy/out.openapi.yaml
@@ -22939,7 +22939,7 @@ components:
type: 'string'
x-speakeasy-unknown-values: allow
SandboxSleepAfterSeconds:
- description: 'How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 2592000 (30 days).'
+ description: 'How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 14400 (4 hours).'
example: 900
type: 'integer'
ScimGroup:
diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock
index 246a3f74..906fc8ab 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:0092c7ac1b0ecd92a3d9dfa895ae3122821745e1bb2bf1281b4a9f2fa2db5a0d
- sourceBlobDigest: sha256:ad9a760785d69b72c95fda1d0efe927d16f005536045dad1d758035c81c98d1c
+ sourceRevisionDigest: sha256:c331775b7df6778e735a39b2cd5b41ccf66ef26421c9211916c4205b2f789d56
+ sourceBlobDigest: sha256:aaa1849b0526d25a2484f884191ca793e0886f024a0042909874ec6bc3a0f08b
tags:
- latest
- 1.0.0
@@ -11,10 +11,10 @@ targets:
open-router:
source: OpenRouter API
sourceNamespace: open-router-chat-completions-api
- sourceRevisionDigest: sha256:0092c7ac1b0ecd92a3d9dfa895ae3122821745e1bb2bf1281b4a9f2fa2db5a0d
- sourceBlobDigest: sha256:ad9a760785d69b72c95fda1d0efe927d16f005536045dad1d758035c81c98d1c
+ sourceRevisionDigest: sha256:c331775b7df6778e735a39b2cd5b41ccf66ef26421c9211916c4205b2f789d56
+ sourceBlobDigest: sha256:aaa1849b0526d25a2484f884191ca793e0886f024a0042909874ec6bc3a0f08b
codeSamplesNamespace: open-router-python-code-samples
- codeSamplesRevisionDigest: sha256:265040464ee7de25944d60e31fcc4320ffe2d68c0cae5758f98b0286e613df91
+ codeSamplesRevisionDigest: sha256:38c695b42b3dd6ebf7f5351ee0239057682f2311e87ffee647c8d6288cb2884e
workflow:
workflowVersion: 1.0.0
speakeasyVersion: 1.787.0
diff --git a/RELEASES.md b/RELEASES.md
index e5446a1f..ce6d7b03 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -1609,4 +1609,14 @@ Based on:
### Generated
- [python v1.1.82] .
### Releases
-- [PyPI v1.1.82] https://pypi.org/project/openrouter/1.1.82 - .
\ No newline at end of file
+- [PyPI v1.1.82] https://pypi.org/project/openrouter/1.1.82 - .
+
+## 2026-08-25 07:33:02
+### Changes
+Based on:
+- OpenAPI Doc
+- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [python v1.1.83] .
+### Releases
+- [PyPI v1.1.83] https://pypi.org/project/openrouter/1.1.83 - .
\ No newline at end of file
diff --git a/docs/components/bashservertoolconfig.mdx b/docs/components/bashservertoolconfig.mdx
index 967974c0..868659ff 100644
--- a/docs/components/bashservertoolconfig.mdx
+++ b/docs/components/bashservertoolconfig.mdx
@@ -11,4 +11,4 @@ Configuration for the openrouter:bash server tool
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `engine` | [Optional[components.BashServerToolEngine]](../components/bashservertoolengine.mdx) | :heavy_minus_sign: | Which bash engine to use. "openrouter" runs commands server-side in the OpenRouter sandbox. "auto" (default) and "native" use native passthrough, returning the tool call to your application to run client-side; OpenRouter does not execute the commands. | auto |
| `environment` | [Optional[components.BashServerToolEnvironment]](../components/bashservertoolenvironment.mdx) | :heavy_minus_sign: | Execution environment for the bash server tool. | \{
"type": "container_auto"
} |
-| `sleep_after_seconds` | *Optional[int]* | :heavy_minus_sign: | How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 2592000 (30 days). | 900 |
\ No newline at end of file
+| `sleep_after_seconds` | *Optional[int]* | :heavy_minus_sign: | How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 14400 (4 hours). | 900 |
\ No newline at end of file
diff --git a/docs/components/shellservertoolconfig.mdx b/docs/components/shellservertoolconfig.mdx
index 5f24f1a8..5e52a3e5 100644
--- a/docs/components/shellservertoolconfig.mdx
+++ b/docs/components/shellservertoolconfig.mdx
@@ -11,4 +11,4 @@ Configuration for the openrouter:shell server tool
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `engine` | [Optional[components.ShellServerToolEngine]](../components/shellservertoolengine.mdx) | :heavy_minus_sign: | Which shell engine to use. "openrouter" runs commands server-side in the OpenRouter sandbox. "auto" (default) keeps the provider's native hosted shell when available (OpenAI); on other providers the call is routed to the OpenRouter sandbox. | openrouter |
| `environment` | [Optional[components.ShellServerToolEnvironment]](../components/shellservertoolenvironment.mdx) | :heavy_minus_sign: | Server-side execution environment for the shell tool. Only container-backed environments are supported; "local" shells are not. | \{
"type": "container_auto"
} |
-| `sleep_after_seconds` | *Optional[int]* | :heavy_minus_sign: | How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 2592000 (30 days). | 900 |
\ No newline at end of file
+| `sleep_after_seconds` | *Optional[int]* | :heavy_minus_sign: | How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 14400 (4 hours). | 900 |
\ No newline at end of file
diff --git a/pyproject.toml b/pyproject.toml
index c62bd79f..51b84ef6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "openrouter"
-version = "1.1.82"
+version = "1.1.83"
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 66415488..a2972516 100644
--- a/src/openrouter/_version.py
+++ b/src/openrouter/_version.py
@@ -3,10 +3,10 @@
import importlib.metadata
__title__: str = "openrouter"
-__version__: str = "1.1.82"
+__version__: str = "1.1.83"
__openapi_doc_version__: str = "1.0.0"
__gen_version__: str = "2.914.0"
-__user_agent__: str = "speakeasy-sdk/python 1.1.82 2.914.0 1.0.0 openrouter"
+__user_agent__: str = "speakeasy-sdk/python 1.1.83 2.914.0 1.0.0 openrouter"
try:
if __package__ is not None:
diff --git a/src/openrouter/components/bashservertoolconfig.py b/src/openrouter/components/bashservertoolconfig.py
index 7bb32209..7f6fc452 100644
--- a/src/openrouter/components/bashservertoolconfig.py
+++ b/src/openrouter/components/bashservertoolconfig.py
@@ -20,7 +20,7 @@ class BashServerToolConfigTypedDict(TypedDict):
environment: NotRequired[BashServerToolEnvironmentTypedDict]
r"""Execution environment for the bash server tool."""
sleep_after_seconds: NotRequired[int]
- r"""How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 2592000 (30 days)."""
+ r"""How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 14400 (4 hours)."""
class BashServerToolConfig(BaseModel):
@@ -33,7 +33,7 @@ class BashServerToolConfig(BaseModel):
r"""Execution environment for the bash server tool."""
sleep_after_seconds: Optional[int] = None
- r"""How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 2592000 (30 days)."""
+ r"""How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 14400 (4 hours)."""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
diff --git a/src/openrouter/components/shellservertoolconfig.py b/src/openrouter/components/shellservertoolconfig.py
index aaa115f0..c9a40551 100644
--- a/src/openrouter/components/shellservertoolconfig.py
+++ b/src/openrouter/components/shellservertoolconfig.py
@@ -20,7 +20,7 @@ class ShellServerToolConfigTypedDict(TypedDict):
environment: NotRequired[ShellServerToolEnvironmentTypedDict]
r"""Server-side execution environment for the shell tool. Only container-backed environments are supported; \"local\" shells are not."""
sleep_after_seconds: NotRequired[int]
- r"""How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 2592000 (30 days)."""
+ r"""How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 14400 (4 hours)."""
class ShellServerToolConfig(BaseModel):
@@ -33,7 +33,7 @@ class ShellServerToolConfig(BaseModel):
r"""Server-side execution environment for the shell tool. Only container-backed environments are supported; \"local\" shells are not."""
sleep_after_seconds: Optional[int] = None
- r"""How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 2592000 (30 days)."""
+ r"""How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 14400 (4 hours)."""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
diff --git a/uv.lock b/uv.lock
index 022434b0..e8743a30 100644
--- a/uv.lock
+++ b/uv.lock
@@ -213,7 +213,7 @@ wheels = [
[[package]]
name = "openrouter"
-version = "1.1.82"
+version = "1.1.83"
source = { editable = "." }
dependencies = [
{ name = "httpcore" },