From a417ea79722eb78dd7b425cf515485f3b18af5b4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 20:16:46 +0000 Subject: [PATCH 1/2] feat: GPU pools --- .stats.yml | 4 ++-- src/kernel/resources/browsers/browsers.py | 10 ++++++++++ src/kernel/types/browser_create_params.py | 6 ++++++ src/kernel/types/browser_create_response.py | 3 +++ src/kernel/types/browser_list_response.py | 3 +++ src/kernel/types/browser_pool_acquire_response.py | 3 +++ src/kernel/types/browser_retrieve_response.py | 3 +++ src/kernel/types/browser_update_response.py | 3 +++ src/kernel/types/invocation_list_browsers_response.py | 3 +++ tests/api_resources/test_browsers.py | 2 ++ 10 files changed, 38 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 1c121c2..92d7f1d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 100 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-2b77b2efd4d25aaa264cbd6fcb0e43f82d14ce5a4bd6fb1e3859be440868685a.yml -openapi_spec_hash: 299be31ecb4a96dcd54d4d902a716e68 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-a0f1d08e6f62a74de2aac5c25e592494abdd59f2cfca2842c5810927554faee0.yml +openapi_spec_hash: ebd8bf67b7bb371cf4b4fa68b967cab5 config_hash: 27c0ea01aeb797a1767af139851c5b66 diff --git a/src/kernel/resources/browsers/browsers.py b/src/kernel/resources/browsers/browsers.py index fe0e5ab..58c3e2a 100644 --- a/src/kernel/resources/browsers/browsers.py +++ b/src/kernel/resources/browsers/browsers.py @@ -136,6 +136,7 @@ def create( self, *, extensions: Iterable[BrowserExtension] | Omit = omit, + gpu: bool | Omit = omit, headless: bool | Omit = omit, invocation_id: str | Omit = omit, kiosk_mode: bool | Omit = omit, @@ -158,6 +159,9 @@ def create( Args: extensions: List of browser extensions to load into the session. Provide each by id or name. + gpu: If true, launches a hardware-accelerated browser with GPU rendering. Requires + Start-Up or Enterprise plan. + headless: If true, launches the browser using a headless image (no VNC/GUI). Defaults to false. @@ -206,6 +210,7 @@ def create( body=maybe_transform( { "extensions": extensions, + "gpu": gpu, "headless": headless, "invocation_id": invocation_id, "kiosk_mode": kiosk_mode, @@ -547,6 +552,7 @@ async def create( self, *, extensions: Iterable[BrowserExtension] | Omit = omit, + gpu: bool | Omit = omit, headless: bool | Omit = omit, invocation_id: str | Omit = omit, kiosk_mode: bool | Omit = omit, @@ -569,6 +575,9 @@ async def create( Args: extensions: List of browser extensions to load into the session. Provide each by id or name. + gpu: If true, launches a hardware-accelerated browser with GPU rendering. Requires + Start-Up or Enterprise plan. + headless: If true, launches the browser using a headless image (no VNC/GUI). Defaults to false. @@ -617,6 +626,7 @@ async def create( body=await async_maybe_transform( { "extensions": extensions, + "gpu": gpu, "headless": headless, "invocation_id": invocation_id, "kiosk_mode": kiosk_mode, diff --git a/src/kernel/types/browser_create_params.py b/src/kernel/types/browser_create_params.py index 3a6297b..6df2463 100644 --- a/src/kernel/types/browser_create_params.py +++ b/src/kernel/types/browser_create_params.py @@ -20,6 +20,12 @@ class BrowserCreateParams(TypedDict, total=False): Provide each by id or name. """ + gpu: bool + """If true, launches a hardware-accelerated browser with GPU rendering. + + Requires Start-Up or Enterprise plan. + """ + headless: bool """If true, launches the browser using a headless image (no VNC/GUI). diff --git a/src/kernel/types/browser_create_response.py b/src/kernel/types/browser_create_response.py index 898f9fa..051d739 100644 --- a/src/kernel/types/browser_create_response.py +++ b/src/kernel/types/browser_create_response.py @@ -39,6 +39,9 @@ class BrowserCreateResponse(BaseModel): deleted_at: Optional[datetime] = None """When the browser session was soft-deleted. Only present for deleted sessions.""" + gpu: Optional[bool] = None + """Whether the browser session has hardware-accelerated GPU rendering.""" + kiosk_mode: Optional[bool] = None """Whether the browser session is running in kiosk mode.""" diff --git a/src/kernel/types/browser_list_response.py b/src/kernel/types/browser_list_response.py index f687b17..85d1dd1 100644 --- a/src/kernel/types/browser_list_response.py +++ b/src/kernel/types/browser_list_response.py @@ -39,6 +39,9 @@ class BrowserListResponse(BaseModel): deleted_at: Optional[datetime] = None """When the browser session was soft-deleted. Only present for deleted sessions.""" + gpu: Optional[bool] = None + """Whether the browser session has hardware-accelerated GPU rendering.""" + kiosk_mode: Optional[bool] = None """Whether the browser session is running in kiosk mode.""" diff --git a/src/kernel/types/browser_pool_acquire_response.py b/src/kernel/types/browser_pool_acquire_response.py index 581168c..b8d066d 100644 --- a/src/kernel/types/browser_pool_acquire_response.py +++ b/src/kernel/types/browser_pool_acquire_response.py @@ -39,6 +39,9 @@ class BrowserPoolAcquireResponse(BaseModel): deleted_at: Optional[datetime] = None """When the browser session was soft-deleted. Only present for deleted sessions.""" + gpu: Optional[bool] = None + """Whether the browser session has hardware-accelerated GPU rendering.""" + kiosk_mode: Optional[bool] = None """Whether the browser session is running in kiosk mode.""" diff --git a/src/kernel/types/browser_retrieve_response.py b/src/kernel/types/browser_retrieve_response.py index 454cbd6..ee99dcd 100644 --- a/src/kernel/types/browser_retrieve_response.py +++ b/src/kernel/types/browser_retrieve_response.py @@ -39,6 +39,9 @@ class BrowserRetrieveResponse(BaseModel): deleted_at: Optional[datetime] = None """When the browser session was soft-deleted. Only present for deleted sessions.""" + gpu: Optional[bool] = None + """Whether the browser session has hardware-accelerated GPU rendering.""" + kiosk_mode: Optional[bool] = None """Whether the browser session is running in kiosk mode.""" diff --git a/src/kernel/types/browser_update_response.py b/src/kernel/types/browser_update_response.py index 8f45173..6591144 100644 --- a/src/kernel/types/browser_update_response.py +++ b/src/kernel/types/browser_update_response.py @@ -39,6 +39,9 @@ class BrowserUpdateResponse(BaseModel): deleted_at: Optional[datetime] = None """When the browser session was soft-deleted. Only present for deleted sessions.""" + gpu: Optional[bool] = None + """Whether the browser session has hardware-accelerated GPU rendering.""" + kiosk_mode: Optional[bool] = None """Whether the browser session is running in kiosk mode.""" diff --git a/src/kernel/types/invocation_list_browsers_response.py b/src/kernel/types/invocation_list_browsers_response.py index 619fdce..a1b1a08 100644 --- a/src/kernel/types/invocation_list_browsers_response.py +++ b/src/kernel/types/invocation_list_browsers_response.py @@ -39,6 +39,9 @@ class Browser(BaseModel): deleted_at: Optional[datetime] = None """When the browser session was soft-deleted. Only present for deleted sessions.""" + gpu: Optional[bool] = None + """Whether the browser session has hardware-accelerated GPU rendering.""" + kiosk_mode: Optional[bool] = None """Whether the browser session is running in kiosk mode.""" diff --git a/tests/api_resources/test_browsers.py b/tests/api_resources/test_browsers.py index 914b5af..fc2d4d0 100644 --- a/tests/api_resources/test_browsers.py +++ b/tests/api_resources/test_browsers.py @@ -41,6 +41,7 @@ def test_method_create_with_all_params(self, client: Kernel) -> None: "name": "name", } ], + gpu=False, headless=False, invocation_id="rr33xuugxj9h0bkf1rdt2bet", kiosk_mode=True, @@ -402,6 +403,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncKernel) -> "name": "name", } ], + gpu=False, headless=False, invocation_id="rr33xuugxj9h0bkf1rdt2bet", kiosk_mode=True, From 66948a100849da99be831624f528ac1e38d0242d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 20:17:04 +0000 Subject: [PATCH 2/2] release: 0.35.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ pyproject.toml | 2 +- src/kernel/_version.py | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index e4e1c3c..ce5e5c7 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.34.0" + ".": "0.35.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index cd3689b..eb47e82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.35.0 (2026-02-18) + +Full Changelog: [v0.34.0...v0.35.0](https://github.com/kernel/kernel-python-sdk/compare/v0.34.0...v0.35.0) + +### Features + +* GPU pools ([a417ea7](https://github.com/kernel/kernel-python-sdk/commit/a417ea79722eb78dd7b425cf515485f3b18af5b4)) + ## 0.34.0 (2026-02-18) Full Changelog: [v0.33.0...v0.34.0](https://github.com/kernel/kernel-python-sdk/compare/v0.33.0...v0.34.0) diff --git a/pyproject.toml b/pyproject.toml index b7f4fe6..75cbfbe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "kernel" -version = "0.34.0" +version = "0.35.0" description = "The official Python library for the kernel API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/kernel/_version.py b/src/kernel/_version.py index 23d2f20..ccc3c75 100644 --- a/src/kernel/_version.py +++ b/src/kernel/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "kernel" -__version__ = "0.34.0" # x-release-please-version +__version__ = "0.35.0" # x-release-please-version