Skip to content

Commit f0fb461

Browse files
authored
Merge pull request #189 from kernel/release-please--branches--main--changes--next
release: 0.121.0
2 parents 465ee69 + 57b81ba commit f0fb461

27 files changed

Lines changed: 142 additions & 245 deletions

‎.release-please-manifest.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.120.0"
2+
".": "0.121.0"
33
}

‎CHANGELOG.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## [0.121.0](https://github.com/kernel/kernel-python-sdk/compare/v0.120.0...v0.121.0) (2026-10-07)
4+
5+
6+
### Features
7+
8+
* Create and poll 1Password access requests over the 1Password API ([c59f487](https://github.com/kernel/kernel-python-sdk/commit/c59f4871e5dfafd294d9fe9338555d07a6ecd491))
9+
* Deprecate datacenter proxies in the API ([c34882c](https://github.com/kernel/kernel-python-sdk/commit/c34882c77d247ace0fa23d37da1c3574d21bd1b0))
10+
311
## [0.120.0](https://github.com/kernel/kernel-python-sdk/compare/v0.119.0...v0.120.0) (2026-10-06)
412

513

‎api.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ from kernel.types import (
120120
BrowserMemory,
121121
BrowserMemoryRequest,
122122
BrowserNetworkConfig,
123+
BrowserNetworkUpdate,
123124
BrowserPoolRef,
124125
BrowserProxy,
125126
BrowserProxyConfig,

‎pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "kernel"
3-
version = "0.120.0"
3+
version = "0.121.0"
44
description = "The official Python library for the kernel API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

‎src/kernel/_version.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
__title__ = "kernel"
4-
__version__ = "0.120.0" # x-release-please-version
4+
__version__ = "0.121.0" # x-release-please-version

‎src/kernel/resources/browsers/browsers.py‎

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@
112112
from ...types.browser_retrieve_response import BrowserRetrieveResponse
113113
from ...types.browser_proxy_config_param import BrowserProxyConfigParam
114114
from ...types.browser_network_config_param import BrowserNetworkConfigParam
115+
from ...types.browser_network_update_param import BrowserNetworkUpdateParam
115116
from ...types.shared_params.browser_profile import BrowserProfile
116117
from ...types.shared_params.browser_viewport import BrowserViewport
117118
from ...types.shared_params.browser_extension import BrowserExtension
@@ -241,7 +242,8 @@ def create(
241242
the dashboard. Must be unique among active sessions within the project. Can be
242243
changed later via PATCH /browsers/{id_or_name}.
243244
244-
network: Network configuration for the browser session. Cannot be changed after creation.
245+
network: Network configuration for the browser session. Only allowed_hosts can be changed
246+
after creation, with PATCH /browsers/{id_or_name}.
245247
246248
profile: Profile selection for the browser session. Provide either id or name. If
247249
specified, the matching profile will be loaded into the browser session.
@@ -393,6 +395,7 @@ def update(
393395
*,
394396
disable_default_proxy: bool | Omit = omit,
395397
name: Optional[str] | Omit = omit,
398+
network: BrowserNetworkUpdateParam | Omit = omit,
396399
profile: BrowserProfile | Omit = omit,
397400
proxy: BrowserProxyConfigParam | Omit = omit,
398401
proxy_id: Optional[str] | Omit = omit,
@@ -418,6 +421,8 @@ def update(
418421
empty string to clear the name. When set, must be unique among active sessions
419422
within the project.
420423
424+
network: Network configuration changes to apply to the running browser session.
425+
421426
profile: Profile to load into the browser session. Only allowed if the session does not
422427
already have a profile loaded.
423428
@@ -464,6 +469,7 @@ def update(
464469
{
465470
"disable_default_proxy": disable_default_proxy,
466471
"name": name,
472+
"network": network,
467473
"profile": profile,
468474
"proxy": proxy,
469475
"proxy_id": proxy_id,
@@ -945,7 +951,8 @@ async def create(
945951
the dashboard. Must be unique among active sessions within the project. Can be
946952
changed later via PATCH /browsers/{id_or_name}.
947953
948-
network: Network configuration for the browser session. Cannot be changed after creation.
954+
network: Network configuration for the browser session. Only allowed_hosts can be changed
955+
after creation, with PATCH /browsers/{id_or_name}.
949956
950957
profile: Profile selection for the browser session. Provide either id or name. If
951958
specified, the matching profile will be loaded into the browser session.
@@ -1097,6 +1104,7 @@ async def update(
10971104
*,
10981105
disable_default_proxy: bool | Omit = omit,
10991106
name: Optional[str] | Omit = omit,
1107+
network: BrowserNetworkUpdateParam | Omit = omit,
11001108
profile: BrowserProfile | Omit = omit,
11011109
proxy: BrowserProxyConfigParam | Omit = omit,
11021110
proxy_id: Optional[str] | Omit = omit,
@@ -1122,6 +1130,8 @@ async def update(
11221130
empty string to clear the name. When set, must be unique among active sessions
11231131
within the project.
11241132
1133+
network: Network configuration changes to apply to the running browser session.
1134+
11251135
profile: Profile to load into the browser session. Only allowed if the session does not
11261136
already have a profile loaded.
11271137
@@ -1168,6 +1178,7 @@ async def update(
11681178
{
11691179
"disable_default_proxy": disable_default_proxy,
11701180
"name": name,
1181+
"network": network,
11711182
"profile": profile,
11721183
"proxy": proxy,
11731184
"proxy_id": proxy_id,

‎src/kernel/resources/proxies.py‎

Lines changed: 32 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def with_streaming_response(self) -> ProxiesResourceWithStreamingResponse:
5353
def create(
5454
self,
5555
*,
56-
type: Literal["datacenter", "isp", "residential", "mobile", "custom"],
56+
type: Literal["isp", "residential", "mobile", "custom"],
5757
bypass_hosts: SequenceNotStr[str] | Omit = omit,
5858
config: proxy_create_params.Config | Omit = omit,
5959
name: str | Omit = omit,
@@ -69,12 +69,9 @@ def create(
6969
Create a new proxy configuration in the resolved project.
7070
7171
Args:
72-
type: Proxy type to use. In terms of quality for avoiding bot-detection, from best to
73-
worst: `mobile` > `residential` > `isp` > `datacenter`.
74-
7572
bypass_hosts: Hostnames that should bypass the parent proxy and connect directly.
7673
77-
config: Configuration specific to the selected proxy `type`.
74+
config: Configuration for an ISP proxy.
7875
7976
name: Readable name of the proxy.
8077
@@ -292,25 +289,25 @@ def check(
292289
"""Run a health check on the proxy to verify it's working.
293290
294291
Optionally specify a URL
295-
to test reachability against a specific target. For ISP and datacenter proxies,
296-
this reliably tests whether the target site is reachable from the proxy's stable
297-
exit IP. For residential and mobile proxies, the exit node varies between
298-
requests, so this validates proxy configuration and connectivity rather than
299-
guaranteeing site-specific reachability.
292+
to test reachability against a specific target. For ISP proxies, this reliably
293+
tests whether the target site is reachable from the proxy's stable exit IP. For
294+
residential and mobile proxies, the exit node varies between requests, so this
295+
validates proxy configuration and connectivity rather than guaranteeing
296+
site-specific reachability.
300297
301298
Args:
302299
url: An optional URL to test reachability against. If provided, the proxy check will
303300
test connectivity to this URL instead of the default test URLs. Only HTTP and
304301
HTTPS schemes are allowed, and the URL must resolve to a public IP address. For
305-
ISP and datacenter proxies, the exit IP is stable, so a successful check
306-
reliably indicates that subsequent browser sessions will reach the target site
307-
with the same IP. For residential and mobile proxies, the exit node changes
308-
between requests, so a successful check validates proxy configuration but does
309-
not guarantee that a subsequent browser session will use the same exit IP or
310-
reach the same site — it is useful for verifying credentials and connectivity,
311-
not for predicting site-specific behavior. When provided, the check result does
312-
not update the proxy's health status, since a failure may indicate a problem
313-
with the target site rather than the proxy itself.
302+
ISP proxies, the exit IP is stable, so a successful check reliably indicates
303+
that subsequent browser sessions will reach the target site with the same IP.
304+
For residential and mobile proxies, the exit node changes between requests, so a
305+
successful check validates proxy configuration but does not guarantee that a
306+
subsequent browser session will use the same exit IP or reach the same site — it
307+
is useful for verifying credentials and connectivity, not for predicting
308+
site-specific behavior. When provided, the check result does not update the
309+
proxy's health status, since a failure may indicate a problem with the target
310+
site rather than the proxy itself.
314311
315312
extra_headers: Send extra headers
316313
@@ -357,7 +354,7 @@ def with_streaming_response(self) -> AsyncProxiesResourceWithStreamingResponse:
357354
async def create(
358355
self,
359356
*,
360-
type: Literal["datacenter", "isp", "residential", "mobile", "custom"],
357+
type: Literal["isp", "residential", "mobile", "custom"],
361358
bypass_hosts: SequenceNotStr[str] | Omit = omit,
362359
config: proxy_create_params.Config | Omit = omit,
363360
name: str | Omit = omit,
@@ -373,12 +370,9 @@ async def create(
373370
Create a new proxy configuration in the resolved project.
374371
375372
Args:
376-
type: Proxy type to use. In terms of quality for avoiding bot-detection, from best to
377-
worst: `mobile` > `residential` > `isp` > `datacenter`.
378-
379373
bypass_hosts: Hostnames that should bypass the parent proxy and connect directly.
380374
381-
config: Configuration specific to the selected proxy `type`.
375+
config: Configuration for an ISP proxy.
382376
383377
name: Readable name of the proxy.
384378
@@ -596,25 +590,25 @@ async def check(
596590
"""Run a health check on the proxy to verify it's working.
597591
598592
Optionally specify a URL
599-
to test reachability against a specific target. For ISP and datacenter proxies,
600-
this reliably tests whether the target site is reachable from the proxy's stable
601-
exit IP. For residential and mobile proxies, the exit node varies between
602-
requests, so this validates proxy configuration and connectivity rather than
603-
guaranteeing site-specific reachability.
593+
to test reachability against a specific target. For ISP proxies, this reliably
594+
tests whether the target site is reachable from the proxy's stable exit IP. For
595+
residential and mobile proxies, the exit node varies between requests, so this
596+
validates proxy configuration and connectivity rather than guaranteeing
597+
site-specific reachability.
604598
605599
Args:
606600
url: An optional URL to test reachability against. If provided, the proxy check will
607601
test connectivity to this URL instead of the default test URLs. Only HTTP and
608602
HTTPS schemes are allowed, and the URL must resolve to a public IP address. For
609-
ISP and datacenter proxies, the exit IP is stable, so a successful check
610-
reliably indicates that subsequent browser sessions will reach the target site
611-
with the same IP. For residential and mobile proxies, the exit node changes
612-
between requests, so a successful check validates proxy configuration but does
613-
not guarantee that a subsequent browser session will use the same exit IP or
614-
reach the same site — it is useful for verifying credentials and connectivity,
615-
not for predicting site-specific behavior. When provided, the check result does
616-
not update the proxy's health status, since a failure may indicate a problem
617-
with the target site rather than the proxy itself.
603+
ISP proxies, the exit IP is stable, so a successful check reliably indicates
604+
that subsequent browser sessions will reach the target site with the same IP.
605+
For residential and mobile proxies, the exit node changes between requests, so a
606+
successful check validates proxy configuration but does not guarantee that a
607+
subsequent browser session will use the same exit IP or reach the same site — it
608+
is useful for verifying credentials and connectivity, not for predicting
609+
site-specific behavior. When provided, the check result does not update the
610+
proxy's health status, since a failure may indicate a problem with the target
611+
site rather than the proxy itself.
618612
619613
extra_headers: Send extra headers
620614

‎src/kernel/resources/vaults/items.py‎

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -610,7 +610,6 @@ def perform_operation(
610610
key: str,
611611
*,
612612
id_or_name: str,
613-
browser_id: str,
614613
type: Literal["1pw_create_access_request"],
615614
goal: str | Omit = omit,
616615
keywords: SequenceNotStr[str] | Omit = omit,
@@ -645,8 +644,6 @@ def perform_operation(
645644
leave the outcome unknown; do not automatically retry.
646645
647646
Args:
648-
browser_id: Kernel browser session used to invoke the extension.
649-
650647
extra_headers: Send extra headers
651648
652649
extra_query: Add additional query parameters to the request
@@ -663,7 +660,6 @@ def perform_operation(
663660
key: str,
664661
*,
665662
id_or_name: str,
666-
browser_id: str,
667663
type: Literal["1pw_access_request_status"],
668664
timeout_seconds: int | Omit = omit,
669665
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -934,7 +930,6 @@ def perform_operation(
934930
["id_or_name", "type"],
935931
["id_or_name", "checkout", "type"],
936932
["id_or_name", "browser_id", "fields", "type"],
937-
["id_or_name", "browser_id", "type"],
938933
["id_or_name", "browser_id", "page_url", "type"],
939934
["id_or_name", "access_token", "type"],
940935
["id_or_name", "bindings", "browser_id", "input", "page_url", "tool_ref", "type"],
@@ -1789,7 +1784,6 @@ async def perform_operation(
17891784
key: str,
17901785
*,
17911786
id_or_name: str,
1792-
browser_id: str,
17931787
type: Literal["1pw_create_access_request"],
17941788
goal: str | Omit = omit,
17951789
keywords: SequenceNotStr[str] | Omit = omit,
@@ -1824,8 +1818,6 @@ async def perform_operation(
18241818
leave the outcome unknown; do not automatically retry.
18251819
18261820
Args:
1827-
browser_id: Kernel browser session used to invoke the extension.
1828-
18291821
extra_headers: Send extra headers
18301822
18311823
extra_query: Add additional query parameters to the request
@@ -1842,7 +1834,6 @@ async def perform_operation(
18421834
key: str,
18431835
*,
18441836
id_or_name: str,
1845-
browser_id: str,
18461837
type: Literal["1pw_access_request_status"],
18471838
timeout_seconds: int | Omit = omit,
18481839
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -2113,7 +2104,6 @@ async def perform_operation(
21132104
["id_or_name", "type"],
21142105
["id_or_name", "checkout", "type"],
21152106
["id_or_name", "browser_id", "fields", "type"],
2116-
["id_or_name", "browser_id", "type"],
21172107
["id_or_name", "browser_id", "page_url", "type"],
21182108
["id_or_name", "access_token", "type"],
21192109
["id_or_name", "bindings", "browser_id", "input", "page_url", "tool_ref", "type"],

‎src/kernel/types/__init__.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@
132132
from .browser_pool_release_params import BrowserPoolReleaseParams as BrowserPoolReleaseParams
133133
from .config_registry_list_params import ConfigRegistryListParams as ConfigRegistryListParams
134134
from .browser_network_config_param import BrowserNetworkConfigParam as BrowserNetworkConfigParam
135+
from .browser_network_update_param import BrowserNetworkUpdateParam as BrowserNetworkUpdateParam
135136
from .deployment_retrieve_response import DeploymentRetrieveResponse as DeploymentRetrieveResponse
136137
from .invocation_retrieve_response import InvocationRetrieveResponse as InvocationRetrieveResponse
137138
from .audit_log_export_chunk_params import AuditLogExportChunkParams as AuditLogExportChunkParams

‎src/kernel/types/browser_create_params.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ class BrowserCreateParams(TypedDict, total=False):
7474
network: BrowserNetworkConfigParam
7575
"""Network configuration for the browser session.
7676
77-
Cannot be changed after creation.
77+
Only allowed_hosts can be changed after creation, with PATCH
78+
/browsers/{id_or_name}.
7879
"""
7980

8081
profile: BrowserProfile

0 commit comments

Comments
 (0)