Skip to content

Commit bb70883

Browse files
authored
Merge branch 'main' into hypeship/direct-vm-fs-logs
2 parents fe23cc7 + ecaa457 commit bb70883

53 files changed

Lines changed: 4454 additions & 26 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.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.98.0"
2+
".": "0.100.0"
33
}

‎.stats.yml‎

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

‎CHANGELOG.md‎

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

3+
## [0.100.0](https://github.com/kernel/kernel-python-sdk/compare/v0.99.0...v0.100.0) (2026-09-04)
4+
5+
6+
### Features
7+
8+
* Fix vault provider errors and remove test card mode ([043d252](https://github.com/kernel/kernel-python-sdk/commit/043d2521509d4e44a4b3e43694db3a77bd6fe546))
9+
10+
## [0.99.0](https://github.com/kernel/kernel-python-sdk/compare/v0.98.0...v0.99.0) (2026-09-04)
11+
12+
13+
### Features
14+
15+
* Expose OTLP destination delivery health ([9ab1d58](https://github.com/kernel/kernel-python-sdk/commit/9ab1d583d7bb4dabba5a640883dda9f2ac248f18))
16+
* Repair Vault SDK custom-code seals ([645ce00](https://github.com/kernel/kernel-python-sdk/commit/645ce00d68172a323d11b7e4dd4f3997cc287fe0))
17+
318
## [0.98.0](https://github.com/kernel/kernel-python-sdk/compare/v0.97.0...v0.98.0) (2026-09-02)
419

520

‎api.md‎

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ from kernel.types import (
126126
BrowserUsage,
127127
Profile,
128128
Tags,
129+
VaultReference,
129130
BrowserCreateResponse,
130131
BrowserRetrieveResponse,
131132
BrowserUpdateResponse,
@@ -486,6 +487,52 @@ Methods:
486487
- <code title="post /browser_pools/{id_or_name}/flush">client.browser_pools.<a href="./src/kernel/resources/browser_pools.py">flush</a>(id_or_name) -> None</code>
487488
- <code title="post /browser_pools/{id_or_name}/release">client.browser_pools.<a href="./src/kernel/resources/browser_pools.py">release</a>(id_or_name, \*\*<a href="src/kernel/types/browser_pool_release_params.py">params</a>) -> None</code>
488489

490+
# Vaults
491+
492+
Types:
493+
494+
```python
495+
from kernel.types import Vault
496+
```
497+
498+
Methods:
499+
500+
- <code title="get /vaults/{id_or_name}">client.vaults.<a href="./src/kernel/resources/vaults/vaults.py">retrieve</a>(id_or_name) -> <a href="./src/kernel/types/vault.py">Vault</a></code>
501+
- <code title="get /vaults">client.vaults.<a href="./src/kernel/resources/vaults/vaults.py">list</a>(\*\*<a href="src/kernel/types/vault_list_params.py">params</a>) -> <a href="./src/kernel/types/vault.py">SyncOffsetPagination[Vault]</a></code>
502+
- <code title="delete /vaults/{id_or_name}">client.vaults.<a href="./src/kernel/resources/vaults/vaults.py">delete</a>(id_or_name) -> None</code>
503+
- <code title="post /vaults">client.vaults.<a href="./src/kernel/resources/vaults/vaults.py">upsert</a>(\*\*<a href="src/kernel/types/vault_upsert_params.py">params</a>) -> <a href="./src/kernel/types/vault.py">Vault</a></code>
504+
505+
## Items
506+
507+
Types:
508+
509+
```python
510+
from kernel.types.vaults import (
511+
AgentcardCheckoutAuthorization,
512+
CardVaultItemSpec,
513+
CardVaultItemState,
514+
VaultCardAliases,
515+
VaultItem,
516+
VaultItemAction,
517+
VaultItemEvent,
518+
VaultPaymentMethod,
519+
WalletVaultItemSpec,
520+
WalletVaultItemState,
521+
ItemListResponse,
522+
ItemEventsResponse,
523+
)
524+
```
525+
526+
Methods:
527+
528+
- <code title="get /vaults/{id_or_name}/items/{key}">client.vaults.items.<a href="./src/kernel/resources/vaults/items.py">retrieve</a>(key, \*, id_or_name, \*\*<a href="src/kernel/types/vaults/item_retrieve_params.py">params</a>) -> <a href="./src/kernel/types/vaults/vault_item.py">VaultItem</a></code>
529+
- <code title="patch /vaults/{id_or_name}/items/{key}">client.vaults.items.<a href="./src/kernel/resources/vaults/items.py">update</a>(key, \*, id_or_name, \*\*<a href="src/kernel/types/vaults/item_update_params.py">params</a>) -> <a href="./src/kernel/types/vaults/vault_item.py">VaultItem</a></code>
530+
- <code title="get /vaults/{id_or_name}/items">client.vaults.items.<a href="./src/kernel/resources/vaults/items.py">list</a>(id_or_name) -> <a href="./src/kernel/types/vaults/item_list_response.py">ItemListResponse</a></code>
531+
- <code title="delete /vaults/{id_or_name}/items/{key}">client.vaults.items.<a href="./src/kernel/resources/vaults/items.py">delete</a>(key, \*, id_or_name) -> None</code>
532+
- <code title="get /vaults/{id_or_name}/items/{key}/events">client.vaults.items.<a href="./src/kernel/resources/vaults/items.py">events</a>(key, \*, id_or_name, \*\*<a href="src/kernel/types/vaults/item_events_params.py">params</a>) -> <a href="./src/kernel/types/vaults/item_events_response.py">ItemEventsResponse</a></code>
533+
- <code title="post /vaults/{id_or_name}/items/{key}/operations">client.vaults.items.<a href="./src/kernel/resources/vaults/items.py">perform_operation</a>(key, \*, id_or_name, \*\*<a href="src/kernel/types/vaults/item_perform_operation_params.py">params</a>) -> <a href="./src/kernel/types/vaults/vault_item.py">VaultItem</a></code>
534+
- <code title="put /vaults/{id_or_name}/items/{key}">client.vaults.items.<a href="./src/kernel/resources/vaults/items.py">upsert</a>(key, \*, id_or_name, \*\*<a href="src/kernel/types/vaults/item_upsert_params.py">params</a>) -> <a href="./src/kernel/types/vaults/vault_item.py">VaultItem</a></code>
535+
489536
# Credentials
490537

491538
Types:

‎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.98.0"
3+
version = "0.100.0"
44
description = "The official Python library for the kernel API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

‎src/kernel/_client.py‎

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
from .resources import (
5454
apps,
5555
auth,
56+
vaults,
5657
proxies,
5758
api_keys,
5859
browsers,
@@ -79,6 +80,7 @@
7980
from .resources.deployments import DeploymentsResource, AsyncDeploymentsResource
8081
from .resources.invocations import InvocationsResource, AsyncInvocationsResource
8182
from .resources.browser_pools import BrowserPoolsResource, AsyncBrowserPoolsResource
83+
from .resources.vaults.vaults import VaultsResource, AsyncVaultsResource
8284
from .resources.browsers.browsers import BrowsersResource, AsyncBrowsersResource
8385
from .resources.projects.projects import ProjectsResource, AsyncProjectsResource
8486
from .resources.telemetry.telemetry import TelemetryResource, AsyncTelemetryResource
@@ -283,6 +285,12 @@ def browser_pools(self) -> BrowserPoolsResource:
283285

284286
return BrowserPoolsResource(self)
285287

288+
@cached_property
289+
def vaults(self) -> VaultsResource:
290+
from .resources.vaults import VaultsResource
291+
292+
return VaultsResource(self)
293+
286294
@cached_property
287295
def credentials(self) -> CredentialsResource:
288296
"""Create and manage credentials for authentication."""
@@ -669,6 +677,12 @@ def browser_pools(self) -> AsyncBrowserPoolsResource:
669677

670678
return AsyncBrowserPoolsResource(self)
671679

680+
@cached_property
681+
def vaults(self) -> AsyncVaultsResource:
682+
from .resources.vaults import AsyncVaultsResource
683+
684+
return AsyncVaultsResource(self)
685+
672686
@cached_property
673687
def credentials(self) -> AsyncCredentialsResource:
674688
"""Create and manage credentials for authentication."""
@@ -958,6 +972,12 @@ def browser_pools(self) -> browser_pools.BrowserPoolsResourceWithRawResponse:
958972

959973
return BrowserPoolsResourceWithRawResponse(self._client.browser_pools)
960974

975+
@cached_property
976+
def vaults(self) -> vaults.VaultsResourceWithRawResponse:
977+
from .resources.vaults import VaultsResourceWithRawResponse
978+
979+
return VaultsResourceWithRawResponse(self._client.vaults)
980+
961981
@cached_property
962982
def credentials(self) -> credentials.CredentialsResourceWithRawResponse:
963983
"""Create and manage credentials for authentication."""
@@ -1085,6 +1105,12 @@ def browser_pools(self) -> browser_pools.AsyncBrowserPoolsResourceWithRawRespons
10851105

10861106
return AsyncBrowserPoolsResourceWithRawResponse(self._client.browser_pools)
10871107

1108+
@cached_property
1109+
def vaults(self) -> vaults.AsyncVaultsResourceWithRawResponse:
1110+
from .resources.vaults import AsyncVaultsResourceWithRawResponse
1111+
1112+
return AsyncVaultsResourceWithRawResponse(self._client.vaults)
1113+
10881114
@cached_property
10891115
def credentials(self) -> credentials.AsyncCredentialsResourceWithRawResponse:
10901116
"""Create and manage credentials for authentication."""
@@ -1212,6 +1238,12 @@ def browser_pools(self) -> browser_pools.BrowserPoolsResourceWithStreamingRespon
12121238

12131239
return BrowserPoolsResourceWithStreamingResponse(self._client.browser_pools)
12141240

1241+
@cached_property
1242+
def vaults(self) -> vaults.VaultsResourceWithStreamingResponse:
1243+
from .resources.vaults import VaultsResourceWithStreamingResponse
1244+
1245+
return VaultsResourceWithStreamingResponse(self._client.vaults)
1246+
12151247
@cached_property
12161248
def credentials(self) -> credentials.CredentialsResourceWithStreamingResponse:
12171249
"""Create and manage credentials for authentication."""
@@ -1339,6 +1371,12 @@ def browser_pools(self) -> browser_pools.AsyncBrowserPoolsResourceWithStreamingR
13391371

13401372
return AsyncBrowserPoolsResourceWithStreamingResponse(self._client.browser_pools)
13411373

1374+
@cached_property
1375+
def vaults(self) -> vaults.AsyncVaultsResourceWithStreamingResponse:
1376+
from .resources.vaults import AsyncVaultsResourceWithStreamingResponse
1377+
1378+
return AsyncVaultsResourceWithStreamingResponse(self._client.vaults)
1379+
13421380
@cached_property
13431381
def credentials(self) -> credentials.AsyncCredentialsResourceWithStreamingResponse:
13441382
"""Create and manage credentials for authentication."""

‎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.98.0" # x-release-please-version
4+
__version__ = "0.100.0" # x-release-please-version

‎src/kernel/resources/__init__.py‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@
1616
AuthResourceWithStreamingResponse,
1717
AsyncAuthResourceWithStreamingResponse,
1818
)
19+
from .vaults import (
20+
VaultsResource,
21+
AsyncVaultsResource,
22+
VaultsResourceWithRawResponse,
23+
AsyncVaultsResourceWithRawResponse,
24+
VaultsResourceWithStreamingResponse,
25+
AsyncVaultsResourceWithStreamingResponse,
26+
)
1927
from .proxies import (
2028
ProxiesResource,
2129
AsyncProxiesResource,
@@ -204,6 +212,12 @@
204212
"AsyncBrowserPoolsResourceWithRawResponse",
205213
"BrowserPoolsResourceWithStreamingResponse",
206214
"AsyncBrowserPoolsResourceWithStreamingResponse",
215+
"VaultsResource",
216+
"AsyncVaultsResource",
217+
"VaultsResourceWithRawResponse",
218+
"AsyncVaultsResourceWithRawResponse",
219+
"VaultsResourceWithStreamingResponse",
220+
"AsyncVaultsResourceWithStreamingResponse",
207221
"CredentialsResource",
208222
"AsyncCredentialsResource",
209223
"CredentialsResourceWithRawResponse",

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@
9797
from ...types.tags_param import TagsParam
9898
from ...types.browser_curl_response import BrowserCurlResponse
9999
from ...types.browser_list_response import BrowserListResponse
100+
from ...types.vault_reference_param import VaultReferenceParam
100101
from ...lib.browser_routing.raw_http import (
101102
stream_via_browser_route,
102103
request_via_browser_route,
@@ -201,6 +202,7 @@ def create(
201202
tags: TagsParam | Omit = omit,
202203
telemetry: Optional[browser_create_params.Telemetry] | Omit = omit,
203204
timeout_seconds: int | Omit = omit,
205+
vaults: Iterable[VaultReferenceParam] | Omit = omit,
204206
viewport: BrowserViewport | Omit = omit,
205207
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
206208
# The extra values given here take precedence over values defined on the client or passed to this method.
@@ -284,6 +286,9 @@ def create(
284286
check for inactivity every 5 seconds, so the actual timeout behavior you will
285287
see is +/- 5 seconds around the specified value.
286288
289+
vaults: Project-scoped vaults to link to the browser session. Links are immutable after
290+
creation.
291+
287292
viewport: Initial browser window size in pixels with optional refresh rate. If omitted,
288293
image defaults apply (1920x1080@25). For GPU images, the default is
289294
1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted.
@@ -327,6 +332,7 @@ def create(
327332
"tags": tags,
328333
"telemetry": telemetry,
329334
"timeout_seconds": timeout_seconds,
335+
"vaults": vaults,
330336
"viewport": viewport,
331337
},
332338
browser_create_params.BrowserCreateParams,
@@ -826,6 +832,7 @@ async def create(
826832
tags: TagsParam | Omit = omit,
827833
telemetry: Optional[browser_create_params.Telemetry] | Omit = omit,
828834
timeout_seconds: int | Omit = omit,
835+
vaults: Iterable[VaultReferenceParam] | Omit = omit,
829836
viewport: BrowserViewport | Omit = omit,
830837
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
831838
# The extra values given here take precedence over values defined on the client or passed to this method.
@@ -909,6 +916,9 @@ async def create(
909916
check for inactivity every 5 seconds, so the actual timeout behavior you will
910917
see is +/- 5 seconds around the specified value.
911918
919+
vaults: Project-scoped vaults to link to the browser session. Links are immutable after
920+
creation.
921+
912922
viewport: Initial browser window size in pixels with optional refresh rate. If omitted,
913923
image defaults apply (1920x1080@25). For GPU images, the default is
914924
1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted.
@@ -952,6 +962,7 @@ async def create(
952962
"tags": tags,
953963
"telemetry": telemetry,
954964
"timeout_seconds": timeout_seconds,
965+
"vaults": vaults,
955966
"viewport": viewport,
956967
},
957968
browser_create_params.BrowserCreateParams,

‎src/kernel/resources/config_registry/config_registry.py‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,12 @@ def list(
7878
timeout: float | httpx.Timeout | None | NotGiven = not_given,
7979
) -> SyncOffsetPagination[RecommendationSummary]:
8080
"""
81-
Lists unique domains previously analyzed by the selected project with their
82-
current domain-level recommendations.
81+
Lists unique exact targets previously analyzed by the selected project with the
82+
recommendation produced by each target's latest analysis.
8383
8484
Args:
85-
search: Case-insensitive domain search. Full URLs are reduced to their registrable
86-
domain.
85+
search: Case-insensitive substring search over normalized targets, including domain,
86+
subdomain, and path.
8787
8888
extra_headers: Send extra headers
8989
@@ -252,12 +252,12 @@ def list(
252252
timeout: float | httpx.Timeout | None | NotGiven = not_given,
253253
) -> AsyncPaginator[RecommendationSummary, AsyncOffsetPagination[RecommendationSummary]]:
254254
"""
255-
Lists unique domains previously analyzed by the selected project with their
256-
current domain-level recommendations.
255+
Lists unique exact targets previously analyzed by the selected project with the
256+
recommendation produced by each target's latest analysis.
257257
258258
Args:
259-
search: Case-insensitive domain search. Full URLs are reduced to their registrable
260-
domain.
259+
search: Case-insensitive substring search over normalized targets, including domain,
260+
subdomain, and path.
261261
262262
extra_headers: Send extra headers
263263

0 commit comments

Comments
 (0)