Skip to content

Commit f4d2d33

Browse files
Merge pull request #172 from kernel/release-please--branches--main--changes--next
release: 0.106.0
2 parents 9ea92bc + bb42605 commit f4d2d33

34 files changed

Lines changed: 347 additions & 69 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.104.0"
2+
".": "0.106.0"
33
}

.stats.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
configured_endpoints: 163
1+
configured_endpoints: 164

CHANGELOG.md

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

3+
## 0.106.0 (2026-09-16)
4+
5+
Full Changelog: [v0.104.0...v0.106.0](https://github.com/kernel/kernel-python-sdk/compare/v0.104.0...v0.106.0)
6+
7+
### Features
8+
9+
* Add processor-bound AgentCard preparation contracts ([37d5e9c](https://github.com/kernel/kernel-python-sdk/commit/37d5e9c3d5db76bece8f8ba8d5358b939bc79315))
10+
* Add start_url to browser session updates ([82a475d](https://github.com/kernel/kernel-python-sdk/commit/82a475dae250abce535476386be88033a5314656))
11+
* Polish and publish the Config Registry API ([afe2fea](https://github.com/kernel/kernel-python-sdk/commit/afe2feaf2dcea1f4fc160d66cfe9f3711b61a447))
12+
* Square UKP and Hypeman placement load factors ([76dee03](https://github.com/kernel/kernel-python-sdk/commit/76dee03d215481de6ee42b2cba631b5f5893c1a3))
13+
314
## [0.104.0](https://github.com/kernel/kernel-python-sdk/compare/v0.103.0...v0.104.0) (2026-09-15)
415

516

api.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ Methods:
109109

110110
- <code title="get /config-registry/analyses/{id}">client.config_registry.analyses.<a href="./src/kernel/resources/config_registry/analyses.py">retrieve</a>(id) -> <a href="./src/kernel/types/config_registry_response.py">ConfigRegistryResponse</a></code>
111111
- <code title="get /config-registry/analyses">client.config_registry.analyses.<a href="./src/kernel/resources/config_registry/analyses.py">list</a>(\*\*<a href="src/kernel/types/config_registry/analysis_list_params.py">params</a>) -> <a href="./src/kernel/types/analysis_summary.py">SyncOffsetPagination[AnalysisSummary]</a></code>
112+
- <code title="post /config-registry/analyses/{id}/cancel">client.config_registry.analyses.<a href="./src/kernel/resources/config_registry/analyses.py">cancel</a>(id) -> <a href="./src/kernel/types/config_registry_response.py">ConfigRegistryResponse</a></code>
112113

113114
# Browsers
114115

@@ -526,6 +527,7 @@ Types:
526527
from kernel.types.vaults import (
527528
AgentcardCheckoutAuthorization,
528529
AgentcardCheckoutPreparation,
530+
AgentcardPreparedProcessor,
529531
AuthorizeVaultItemOperationRequest,
530532
CardVaultItemSpec,
531533
CardVaultItemState,

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.104.0"
3+
version = "0.106.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.104.0" # x-release-please-version
4+
__version__ = "0.106.0" # x-release-please-version

src/kernel/resources/browsers/browsers.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,7 @@ def update(
394394
profile: BrowserProfile | Omit = omit,
395395
proxy: BrowserProxyConfigParam | Omit = omit,
396396
proxy_id: Optional[str] | Omit = omit,
397+
start_url: str | Omit = omit,
397398
tags: Optional[TagsParam] | Omit = omit,
398399
telemetry: Optional[browser_update_params.Telemetry] | Omit = omit,
399400
viewport: browser_update_params.Viewport | Omit = omit,
@@ -428,6 +429,11 @@ def update(
428429
proxy_id: ID of the proxy to use. Omit to leave unchanged, set to empty string to remove
429430
proxy. Deprecated in favor of proxy.
430431
432+
start_url: Optional URL to navigate the browser to after applying this update. When a
433+
profile is loaded in the same update, this overrides the profile's restored
434+
tabs. Navigation is best-effort, so failures do not fail the update. Omit or set
435+
to an empty string to leave the current page unchanged.
436+
431437
tags: User-defined key-value tags for the browser session. Omit to leave unchanged.
432438
Provide a map to replace the entire tag set (full replace, not a merge). Set to
433439
an empty object ({}) to clear all tags. Up to 50 pairs.
@@ -459,6 +465,7 @@ def update(
459465
"profile": profile,
460466
"proxy": proxy,
461467
"proxy_id": proxy_id,
468+
"start_url": start_url,
462469
"tags": tags,
463470
"telemetry": telemetry,
464471
"viewport": viewport,
@@ -1024,6 +1031,7 @@ async def update(
10241031
profile: BrowserProfile | Omit = omit,
10251032
proxy: BrowserProxyConfigParam | Omit = omit,
10261033
proxy_id: Optional[str] | Omit = omit,
1034+
start_url: str | Omit = omit,
10271035
tags: Optional[TagsParam] | Omit = omit,
10281036
telemetry: Optional[browser_update_params.Telemetry] | Omit = omit,
10291037
viewport: browser_update_params.Viewport | Omit = omit,
@@ -1058,6 +1066,11 @@ async def update(
10581066
proxy_id: ID of the proxy to use. Omit to leave unchanged, set to empty string to remove
10591067
proxy. Deprecated in favor of proxy.
10601068
1069+
start_url: Optional URL to navigate the browser to after applying this update. When a
1070+
profile is loaded in the same update, this overrides the profile's restored
1071+
tabs. Navigation is best-effort, so failures do not fail the update. Omit or set
1072+
to an empty string to leave the current page unchanged.
1073+
10611074
tags: User-defined key-value tags for the browser session. Omit to leave unchanged.
10621075
Provide a map to replace the entire tag set (full replace, not a merge). Set to
10631076
an empty object ({}) to clear all tags. Up to 50 pairs.
@@ -1089,6 +1102,7 @@ async def update(
10891102
"profile": profile,
10901103
"proxy": proxy,
10911104
"proxy_id": proxy_id,
1105+
"start_url": start_url,
10921106
"tags": tags,
10931107
"telemetry": telemetry,
10941108
"viewport": viewport,

src/kernel/resources/config_registry/analyses.py

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,43 @@ def list(
126126
model=AnalysisSummary,
127127
)
128128

129+
def cancel(
130+
self,
131+
id: str,
132+
*,
133+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
134+
# The extra values given here take precedence over values defined on the client or passed to this method.
135+
extra_headers: Headers | None = None,
136+
extra_query: Query | None = None,
137+
extra_body: Body | None = None,
138+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
139+
) -> ConfigRegistryResponse:
140+
"""Requests cancellation of a running project-scoped analysis.
141+
142+
Cancellation is
143+
asynchronous; poll the analysis until its status becomes canceled. Repeating the
144+
request after the analysis reaches a terminal state returns the existing
145+
outcome.
146+
147+
Args:
148+
extra_headers: Send extra headers
149+
150+
extra_query: Add additional query parameters to the request
151+
152+
extra_body: Add additional JSON properties to the request
153+
154+
timeout: Override the client-level default timeout for this request, in seconds
155+
"""
156+
if not id:
157+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
158+
return self._post(
159+
path_template("/config-registry/analyses/{id}/cancel", id=id),
160+
options=make_request_options(
161+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
162+
),
163+
cast_to=ConfigRegistryResponse,
164+
)
165+
129166

130167
class AsyncAnalysesResource(AsyncAPIResource):
131168
"""Resolve browser and proxy recommendations for bot-protected sites."""
@@ -230,6 +267,43 @@ def list(
230267
model=AnalysisSummary,
231268
)
232269

270+
async def cancel(
271+
self,
272+
id: str,
273+
*,
274+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
275+
# The extra values given here take precedence over values defined on the client or passed to this method.
276+
extra_headers: Headers | None = None,
277+
extra_query: Query | None = None,
278+
extra_body: Body | None = None,
279+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
280+
) -> ConfigRegistryResponse:
281+
"""Requests cancellation of a running project-scoped analysis.
282+
283+
Cancellation is
284+
asynchronous; poll the analysis until its status becomes canceled. Repeating the
285+
request after the analysis reaches a terminal state returns the existing
286+
outcome.
287+
288+
Args:
289+
extra_headers: Send extra headers
290+
291+
extra_query: Add additional query parameters to the request
292+
293+
extra_body: Add additional JSON properties to the request
294+
295+
timeout: Override the client-level default timeout for this request, in seconds
296+
"""
297+
if not id:
298+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
299+
return await self._post(
300+
path_template("/config-registry/analyses/{id}/cancel", id=id),
301+
options=make_request_options(
302+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
303+
),
304+
cast_to=ConfigRegistryResponse,
305+
)
306+
233307

234308
class AnalysesResourceWithRawResponse:
235309
def __init__(self, analyses: AnalysesResource) -> None:
@@ -241,6 +315,9 @@ def __init__(self, analyses: AnalysesResource) -> None:
241315
self.list = to_raw_response_wrapper(
242316
analyses.list,
243317
)
318+
self.cancel = to_raw_response_wrapper(
319+
analyses.cancel,
320+
)
244321

245322

246323
class AsyncAnalysesResourceWithRawResponse:
@@ -253,6 +330,9 @@ def __init__(self, analyses: AsyncAnalysesResource) -> None:
253330
self.list = async_to_raw_response_wrapper(
254331
analyses.list,
255332
)
333+
self.cancel = async_to_raw_response_wrapper(
334+
analyses.cancel,
335+
)
256336

257337

258338
class AnalysesResourceWithStreamingResponse:
@@ -265,6 +345,9 @@ def __init__(self, analyses: AnalysesResource) -> None:
265345
self.list = to_streamed_response_wrapper(
266346
analyses.list,
267347
)
348+
self.cancel = to_streamed_response_wrapper(
349+
analyses.cancel,
350+
)
268351

269352

270353
class AsyncAnalysesResourceWithStreamingResponse:
@@ -277,3 +360,6 @@ def __init__(self, analyses: AsyncAnalysesResource) -> None:
277360
self.list = async_to_streamed_response_wrapper(
278361
analyses.list,
279362
)
363+
self.cancel = async_to_streamed_response_wrapper(
364+
analyses.cancel,
365+
)

src/kernel/resources/config_registry/config_registry.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,9 @@ def resolve(
190190
any non-HTTPS destination as off-site and will not drive an http one. Kernel
191191
uses it to drive the browser further into the site, where it can observe
192192
protections that only appear once a session interacts. When this target already
193-
has a verified configuration, the run confirms that one instead of re-deriving
194-
the whole matrix, so supplying an intent narrows what can be recommended.
193+
has a recommended configuration, the run confirms that one instead of
194+
re-deriving the whole matrix, so supplying an intent narrows what can be
195+
recommended.
195196
196197
extra_headers: Send extra headers
197198
@@ -374,8 +375,9 @@ async def resolve(
374375
any non-HTTPS destination as off-site and will not drive an http one. Kernel
375376
uses it to drive the browser further into the site, where it can observe
376377
protections that only appear once a session interacts. When this target already
377-
has a verified configuration, the run confirms that one instead of re-deriving
378-
the whole matrix, so supplying an intent narrows what can be recommended.
378+
has a recommended configuration, the run confirms that one instead of
379+
re-deriving the whole matrix, so supplying an intent narrows what can be
380+
recommended.
379381
380382
extra_headers: Send extra headers
381383

src/kernel/resources/vaults/items.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -511,11 +511,11 @@ def perform_operation(
511511
leave the outcome unknown; do not automatically retry.
512512
513513
Args:
514-
checkout: Required when preparing an unused AgentCard card for Square. Consent is bound to
515-
this browser and declared merchant origin, not a tab. Wait for the item's
516-
ready_to_submit status before native Pay and submit within its readiness
517-
deadline. Unused preparations expire automatically; every preparation is
518-
single-use, including after failure or expiry.
514+
checkout: Required when preparing an unused AgentCard card for a supported tokenization
515+
processor. Consent is bound to this browser and declared merchant origin, not a
516+
tab. Wait for the item's ready_to_submit status before native Pay and submit
517+
within its readiness deadline. Unused preparations expire automatically; every
518+
preparation is single-use, including after failure or expiry.
519519
520520
extra_headers: Send extra headers
521521
@@ -1274,11 +1274,11 @@ async def perform_operation(
12741274
leave the outcome unknown; do not automatically retry.
12751275
12761276
Args:
1277-
checkout: Required when preparing an unused AgentCard card for Square. Consent is bound to
1278-
this browser and declared merchant origin, not a tab. Wait for the item's
1279-
ready_to_submit status before native Pay and submit within its readiness
1280-
deadline. Unused preparations expire automatically; every preparation is
1281-
single-use, including after failure or expiry.
1277+
checkout: Required when preparing an unused AgentCard card for a supported tokenization
1278+
processor. Consent is bound to this browser and declared merchant origin, not a
1279+
tab. Wait for the item's ready_to_submit status before native Pay and submit
1280+
within its readiness deadline. Unused preparations expire automatically; every
1281+
preparation is single-use, including after failure or expiry.
12821282
12831283
extra_headers: Send extra headers
12841284

0 commit comments

Comments
 (0)