Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.94.0"
".": "0.95.0"
}
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## [0.95.0](https://github.com/kernel/kernel-python-sdk/compare/v0.94.0...v0.95.0) (2026-08-26)


### Features

* Add OTLP destination delivery health storage ([516cbce](https://github.com/kernel/kernel-python-sdk/commit/516cbce77afab43b346d9e95df2e4a25757c474b))
* route process calls directly to browser VMs ([f833c55](https://github.com/kernel/kernel-python-sdk/commit/f833c55fee9e7c33c444af6366890a9c876e149c))

## [0.94.0](https://github.com/kernel/kernel-python-sdk/compare/v0.93.0...v0.94.0) (2026-08-24)


Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "kernel"
version = "0.94.0"
version = "0.95.0"
description = "The official Python library for the kernel API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "kernel"
__version__ = "0.94.0" # x-release-please-version
__version__ = "0.95.0" # x-release-please-version
22 changes: 16 additions & 6 deletions src/kernel/resources/auth/connections.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,10 @@ def create(
profile_name: Name of the profile to manage authentication for. If the profile does not exist,
it is created automatically.

allowed_domains: Additional domains valid for this auth flow (besides the primary domain). Useful
when login pages redirect to different domains.
allowed_domains: Additional hostname roots valid for this auth flow, besides the primary domain.
Each value allows credential entry on that exact hostname and its subdomains.
Leading `www.` and `*.` labels are normalized away. When omitted or empty,
credential entry is unrestricted.

The following SSO/OAuth provider domains are automatically allowed by default
and do not need to be specified:
Expand Down Expand Up @@ -254,7 +256,10 @@ def update(
updated.

Args:
allowed_domains: Additional domains valid for this auth flow (replaces existing list)
allowed_domains: Additional hostname roots valid for this auth flow. Each value allows credential
entry on that exact hostname and its subdomains; leading `www.` and `*.` labels
are normalized away. An empty list leaves credential entry unrestricted.
Replaces the existing list.

auto_reauth: Whether automatic re-authentication is permitted for this connection. This is an
opt-in flag only — it does not check whether re-auth is actually feasible. Even
Expand Down Expand Up @@ -713,8 +718,10 @@ async def create(
profile_name: Name of the profile to manage authentication for. If the profile does not exist,
it is created automatically.

allowed_domains: Additional domains valid for this auth flow (besides the primary domain). Useful
when login pages redirect to different domains.
allowed_domains: Additional hostname roots valid for this auth flow, besides the primary domain.
Each value allows credential entry on that exact hostname and its subdomains.
Leading `www.` and `*.` labels are normalized away. When omitted or empty,
credential entry is unrestricted.

The following SSO/OAuth provider domains are automatically allowed by default
and do not need to be specified:
Expand Down Expand Up @@ -872,7 +879,10 @@ async def update(
updated.

Args:
allowed_domains: Additional domains valid for this auth flow (replaces existing list)
allowed_domains: Additional hostname roots valid for this auth flow. Each value allows credential
entry on that exact hostname and its subdomains; leading `www.` and `*.` labels
are normalized away. An empty list leaves credential entry unrestricted.
Replaces the existing list.

auto_reauth: Whether automatic re-authentication is permitted for this connection. This is an
opt-in flag only — it does not check whether re-auth is actually feasible. Even
Expand Down
8 changes: 4 additions & 4 deletions src/kernel/resources/browser_pools.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ def create(
profile: browser_pool_create_params.Profile | Omit = omit,
proxy_id: str | Omit = omit,
refresh_on_profile_update: bool | Omit = omit,
region: Literal["us-east", "eu-west"] | Omit = omit,
region: Literal["us-east", "eu-west", "ap-southeast"] | Omit = omit,
start_url: str | Omit = omit,
stealth: bool | Omit = omit,
telemetry: Optional[browser_pool_create_params.Telemetry] | Omit = omit,
Expand Down Expand Up @@ -406,7 +406,7 @@ def list(
name: str | Omit = omit,
offset: int | Omit = omit,
query: str | Omit = omit,
region: Literal["us-east", "eu-west"] | Omit = omit,
region: Literal["us-east", "eu-west", "ap-southeast"] | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
Expand Down Expand Up @@ -703,7 +703,7 @@ async def create(
profile: browser_pool_create_params.Profile | Omit = omit,
proxy_id: str | Omit = omit,
refresh_on_profile_update: bool | Omit = omit,
region: Literal["us-east", "eu-west"] | Omit = omit,
region: Literal["us-east", "eu-west", "ap-southeast"] | Omit = omit,
start_url: str | Omit = omit,
stealth: bool | Omit = omit,
telemetry: Optional[browser_pool_create_params.Telemetry] | Omit = omit,
Expand Down Expand Up @@ -1036,7 +1036,7 @@ def list(
name: str | Omit = omit,
offset: int | Omit = omit,
query: str | Omit = omit,
region: Literal["us-east", "eu-west"] | Omit = omit,
region: Literal["us-east", "eu-west", "ap-southeast"] | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
Expand Down
16 changes: 8 additions & 8 deletions src/kernel/resources/browsers/browsers.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ def create(
profile: BrowserProfile | Omit = omit,
proxy: BrowserProxyConfigParam | Omit = omit,
proxy_id: str | Omit = omit,
region: Literal["us-east", "eu-west"] | Omit = omit,
region: Literal["us-east", "eu-west", "ap-southeast"] | Omit = omit,
start_url: str | Omit = omit,
stealth: bool | Omit = omit,
tags: TagsParam | Omit = omit,
Expand Down Expand Up @@ -459,7 +459,7 @@ def list(
limit: int | Omit = omit,
offset: int | Omit = omit,
query: str | Omit = omit,
region: Literal["us-east", "eu-west"] | Omit = omit,
region: Literal["us-east", "eu-west", "ap-southeast"] | Omit = omit,
status: Literal["active", "deleted", "all"] | Omit = omit,
tags: Dict[str, str] | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
Expand Down Expand Up @@ -694,8 +694,8 @@ def load_extensions(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> None:
"""
Loads one or more unpacked extensions and restarts Chromium on the browser
instance.
Loads one or more unpacked extensions using live CDP activation when eligible.
Chromium restarts when enterprise policy requires it or live activation fails.

Args:
extensions: List of extensions to upload and activate
Expand Down Expand Up @@ -802,7 +802,7 @@ async def create(
profile: BrowserProfile | Omit = omit,
proxy: BrowserProxyConfigParam | Omit = omit,
proxy_id: str | Omit = omit,
region: Literal["us-east", "eu-west"] | Omit = omit,
region: Literal["us-east", "eu-west", "ap-southeast"] | Omit = omit,
start_url: str | Omit = omit,
stealth: bool | Omit = omit,
tags: TagsParam | Omit = omit,
Expand Down Expand Up @@ -1079,7 +1079,7 @@ def list(
limit: int | Omit = omit,
offset: int | Omit = omit,
query: str | Omit = omit,
region: Literal["us-east", "eu-west"] | Omit = omit,
region: Literal["us-east", "eu-west", "ap-southeast"] | Omit = omit,
status: Literal["active", "deleted", "all"] | Omit = omit,
tags: Dict[str, str] | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
Expand Down Expand Up @@ -1314,8 +1314,8 @@ async def load_extensions(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> None:
"""
Loads one or more unpacked extensions and restarts Chromium on the browser
instance.
Loads one or more unpacked extensions using live CDP activation when eligible.
Chromium restarts when enterprise policy requires it or live activation fails.

Args:
extensions: List of extensions to upload and activate
Expand Down
6 changes: 4 additions & 2 deletions src/kernel/types/auth/connection_create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,11 @@ class ConnectionCreateParams(TypedDict, total=False):
"""

allowed_domains: SequenceNotStr[str]
"""Additional domains valid for this auth flow (besides the primary domain).
"""Additional hostname roots valid for this auth flow, besides the primary domain.

Useful when login pages redirect to different domains.
Each value allows credential entry on that exact hostname and its subdomains.
Leading `www.` and `*.` labels are normalized away. When omitted or empty,
credential entry is unrestricted.

The following SSO/OAuth provider domains are automatically allowed by default
and do not need to be specified:
Expand Down
7 changes: 6 additions & 1 deletion src/kernel/types/auth/connection_update_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,12 @@

class ConnectionUpdateParams(TypedDict, total=False):
allowed_domains: SequenceNotStr[str]
"""Additional domains valid for this auth flow (replaces existing list)"""
"""Additional hostname roots valid for this auth flow.

Each value allows credential entry on that exact hostname and its subdomains;
leading `www.` and `*.` labels are normalized away. An empty list leaves
credential entry unrestricted. Replaces the existing list.
"""

auto_reauth: bool
"""Whether automatic re-authentication is permitted for this connection.
Expand Down
8 changes: 5 additions & 3 deletions src/kernel/types/auth/managed_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -309,9 +309,11 @@ class ManagedAuth(BaseModel):
"""Current authentication status of the managed profile"""

allowed_domains: Optional[List[str]] = None
"""
Additional domains that are valid for this auth flow (besides the primary
domain). Useful when login pages redirect to different domains.
"""Additional hostname roots valid for this auth flow, besides the primary domain.

Each value allows credential entry on that exact hostname and its subdomains.
Leading `www.` and `*.` labels are normalized away. When omitted or empty,
credential entry is unrestricted.

The following SSO/OAuth provider domains are automatically allowed by default
and do not need to be specified:
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/types/browser_create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ class BrowserCreateParams(TypedDict, total=False):
favor of proxy.
"""

region: Literal["us-east", "eu-west"]
region: Literal["us-east", "eu-west", "ap-southeast"]
"""Geographic region for the browser session.

It is fixed once the session is created. Region selection requires a Start-Up or
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/types/browser_create_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class BrowserCreateResponse(BaseModel):
memory: BrowserMemory
"""Memory allocated to the browser session."""

region: Literal["us-east", "eu-west"]
region: Literal["us-east", "eu-west", "ap-southeast"]
"""Geographic region of the browser session. Fixed once the session is created."""

session_id: str
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/types/browser_list_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class BrowserListParams(TypedDict, total=False):
Search browsers by name, session ID, profile name or ID, proxy ID, or pool name.
"""

region: Literal["us-east", "eu-west"]
region: Literal["us-east", "eu-west", "ap-southeast"]
"""Filter sessions by geographic region. Omit to list sessions in all regions."""

status: Literal["active", "deleted", "all"]
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/types/browser_list_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class BrowserListResponse(BaseModel):
memory: BrowserMemory
"""Memory allocated to the browser session."""

region: Literal["us-east", "eu-west"]
region: Literal["us-east", "eu-west", "ap-southeast"]
"""Geographic region of the browser session. Fixed once the session is created."""

session_id: str
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/types/browser_pool.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ class BrowserPool(BaseModel):
(echoed as sent on create).
"""

region: Literal["us-east", "eu-west"]
region: Literal["us-east", "eu-west", "ap-southeast"]
"""Geographic region of the browser pool. Fixed once the pool is created."""

name: Optional[str] = None
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/types/browser_pool_acquire_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class BrowserPoolAcquireResponse(BaseModel):
memory: BrowserMemory
"""Memory allocated to the browser session."""

region: Literal["us-east", "eu-west"]
region: Literal["us-east", "eu-west", "ap-southeast"]
"""Geographic region of the browser session. Fixed once the session is created."""

session_id: str
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/types/browser_pool_create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ class BrowserPoolCreateParams(TypedDict, total=False):
creation, this defaults to true. Requires a profile to be set on the pool.
"""

region: Literal["us-east", "eu-west"]
region: Literal["us-east", "eu-west", "ap-southeast"]
"""Geographic region for the browser pool.

It is fixed once the pool is created. Region selection requires a Start-Up or
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/types/browser_pool_list_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@ class BrowserPoolListParams(TypedDict, total=False):
IDs match by exact value.
"""

region: Literal["us-east", "eu-west"]
region: Literal["us-east", "eu-west", "ap-southeast"]
"""Filter pools by geographic region. Omit to list pools in all regions."""
2 changes: 1 addition & 1 deletion src/kernel/types/browser_retrieve_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class BrowserRetrieveResponse(BaseModel):
memory: BrowserMemory
"""Memory allocated to the browser session."""

region: Literal["us-east", "eu-west"]
region: Literal["us-east", "eu-west", "ap-southeast"]
"""Geographic region of the browser session. Fixed once the session is created."""

session_id: str
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/types/browser_update_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class BrowserUpdateResponse(BaseModel):
memory: BrowserMemory
"""Memory allocated to the browser session."""

region: Literal["us-east", "eu-west"]
region: Literal["us-east", "eu-west", "ap-southeast"]
"""Geographic region of the browser session. Fixed once the session is created."""

session_id: str
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/types/invocation_list_browsers_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class Browser(BaseModel):
memory: BrowserMemory
"""Memory allocated to the browser session."""

region: Literal["us-east", "eu-west"]
region: Literal["us-east", "eu-west", "ap-southeast"]
"""Geographic region of the browser session. Fixed once the session is created."""

session_id: str
Expand Down
Loading