Skip to content

Commit 1f7d3de

Browse files
authored
Merge pull request #184 from kernel/release-please--branches--main--changes--next
release: 0.117.0
2 parents 6181c95 + 3761340 commit 1f7d3de

16 files changed

Lines changed: 685 additions & 7 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.116.0"
2+
".": "0.117.0"
33
}

‎CHANGELOG.md‎

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

3+
## [0.117.0](https://github.com/kernel/kernel-python-sdk/compare/v0.116.0...v0.117.0) (2026-10-02)
4+
5+
6+
### Features
7+
8+
* Invoke WebMCP tools with vault item fields ([a75eb77](https://github.com/kernel/kernel-python-sdk/commit/a75eb77bb3722e82b45836e1b9f5f6fc43dfa4ff))
9+
310
## [0.116.0](https://github.com/kernel/kernel-python-sdk/compare/v0.115.0...v0.116.0) (2026-10-01)
411

512

‎api.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -596,8 +596,11 @@ from kernel.types.vaults import (
596596
VaultItemEvent,
597597
VaultItemOperationResponse,
598598
VaultPaymentMethod,
599+
VaultWebmcpBinding,
599600
WalletVaultItemSpec,
600601
WalletVaultItemState,
602+
WebmcpInvokeVaultItemOperationRequest,
603+
WebmcpInvokeVaultItemOperationResult,
601604
ItemListResponse,
602605
ItemEventsResponse,
603606
)

‎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.116.0"
3+
version = "0.117.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.116.0" # x-release-please-version
4+
__version__ = "0.117.0" # x-release-please-version

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

Lines changed: 158 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from __future__ import annotations
44

5-
from typing import Any, List, Union, Iterable, cast
5+
from typing import Any, Dict, List, Union, Iterable, cast
66
from datetime import datetime
77
from typing_extensions import Literal, overload
88

@@ -31,6 +31,7 @@
3131
from ...types.vaults.item_events_response import ItemEventsResponse
3232
from ...types.vaults.vault_fill_field_param import VaultFillFieldParam
3333
from ...types.vaults.card_vault_item_spec_param import CardVaultItemSpecParam
34+
from ...types.vaults.vault_webmcp_binding_param import VaultWebmcpBindingParam
3435
from ...types.vaults.vault_checkout_context_param import VaultCheckoutContextParam
3536
from ...types.vaults.vault_item_operation_response import VaultItemOperationResponse
3637
from ...types.vaults.credential_vault_item_spec_input_param import CredentialVaultItemSpecInputParam
@@ -857,13 +858,81 @@ def perform_operation(
857858
"""
858859
...
859860

861+
@overload
862+
def perform_operation(
863+
self,
864+
key: str,
865+
*,
866+
id_or_name: str,
867+
bindings: Iterable[VaultWebmcpBindingParam],
868+
browser_id: str,
869+
input: Dict[str, object],
870+
page_url: str,
871+
tool_ref: str,
872+
type: Literal["webmcp_invoke"],
873+
timeout_sec: int | Omit = omit,
874+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
875+
# The extra values given here take precedence over values defined on the client or passed to this method.
876+
extra_headers: Headers | None = None,
877+
extra_query: Query | None = None,
878+
extra_body: Body | None = None,
879+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
880+
) -> VaultItemOperationResponse:
881+
"""
882+
Retrieve the item first and invoke only an operation listed in
883+
`available_operations`, following its natural-language description. Availability
884+
is rechecked at execution time; unavailable operations return 409. Authorization
885+
and preparation may call an external provider and return updated state. Link
886+
cards advertise authorize without checkout context. Eligible unused AgentCard
887+
cards advertise prepare_checkout, which requires checkout context and obtains
888+
device approval before native Square Pay. Keep the returned approval page open,
889+
poll until ready_to_submit, then submit before preparation.expires_at. Unused
890+
preparations expire automatically and cannot be reused. If spend-request
891+
creation is rejected with a non-retryable provider error, the card item is
892+
deleted and the provider's error code and message are returned. Rate limits
893+
return HTTP 429 and retain the card item; stop, back off, and retry the same
894+
authorize operation.
895+
896+
Fill returns a value-free execution result. Validation failures before writing
897+
return 400 (invalid request or targets), 403 (access or destination denied), 404
898+
(resource not found), or 409 (item or browser not ready). Once writing starts,
899+
known partial failures and indeterminate field outcomes return 200 with status
900+
`failed` or `unknown`, not an automatic-retry signal. A transport error may
901+
leave the outcome unknown; do not automatically retry.
902+
903+
Args:
904+
browser_id: Browser session ID, not a reusable browser name.
905+
906+
input: Public tool arguments with an existing null slot at each binding path. At most
907+
64 KiB after JSON serialization, including substituted values. Never include
908+
vault values here.
909+
910+
page_url: Exact top-level URL from the discovered tool source (fragment omitted). This
911+
pins the target page; it does not authorize a destination.
912+
913+
tool_ref: Opaque reference to the exact live WebMCP registration.
914+
915+
timeout_sec: Tool invocation timeout in seconds; preflight and response handling have an
916+
additional bounded allowance. An indeterminate outcome is not retried.
917+
918+
extra_headers: Send extra headers
919+
920+
extra_query: Add additional query parameters to the request
921+
922+
extra_body: Add additional JSON properties to the request
923+
924+
timeout: Override the client-level default timeout for this request, in seconds
925+
"""
926+
...
927+
860928
@required_args(
861929
["id_or_name", "type"],
862930
["id_or_name", "checkout", "type"],
863931
["id_or_name", "browser_id", "fields", "type"],
864932
["id_or_name", "browser_id", "type"],
865933
["id_or_name", "browser_id", "page_url", "type"],
866934
["id_or_name", "access_token", "type"],
935+
["id_or_name", "bindings", "browser_id", "input", "page_url", "tool_ref", "type"],
867936
)
868937
def perform_operation(
869938
self,
@@ -878,7 +947,8 @@ def perform_operation(
878947
| Literal["1pw_access_request_status"]
879948
| Literal["1pw_fill"]
880949
| Literal["1pw_recover"]
881-
| Literal["1pw_update_access_token"],
950+
| Literal["1pw_update_access_token"]
951+
| Literal["webmcp_invoke"],
882952
checkout: VaultCheckoutContextParam | Omit = omit,
883953
browser_id: str | Omit = omit,
884954
fields: Iterable[VaultFillFieldParam] | Omit = omit,
@@ -891,6 +961,10 @@ def perform_operation(
891961
entry_id: str | Omit = omit,
892962
access_token: str | Omit = omit,
893963
access_token_expires_at: Union[str, datetime] | Omit = omit,
964+
bindings: Iterable[VaultWebmcpBindingParam] | Omit = omit,
965+
input: Dict[str, object] | Omit = omit,
966+
tool_ref: str | Omit = omit,
967+
timeout_sec: int | Omit = omit,
894968
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
895969
# The extra values given here take precedence over values defined on the client or passed to this method.
896970
extra_headers: Headers | None = None,
@@ -921,6 +995,10 @@ def perform_operation(
921995
"entry_id": entry_id,
922996
"access_token": access_token,
923997
"access_token_expires_at": access_token_expires_at,
998+
"bindings": bindings,
999+
"input": input,
1000+
"tool_ref": tool_ref,
1001+
"timeout_sec": timeout_sec,
9241002
},
9251003
item_perform_operation_params.ItemPerformOperationParams,
9261004
),
@@ -1954,13 +2032,81 @@ async def perform_operation(
19542032
"""
19552033
...
19562034

2035+
@overload
2036+
async def perform_operation(
2037+
self,
2038+
key: str,
2039+
*,
2040+
id_or_name: str,
2041+
bindings: Iterable[VaultWebmcpBindingParam],
2042+
browser_id: str,
2043+
input: Dict[str, object],
2044+
page_url: str,
2045+
tool_ref: str,
2046+
type: Literal["webmcp_invoke"],
2047+
timeout_sec: int | Omit = omit,
2048+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
2049+
# The extra values given here take precedence over values defined on the client or passed to this method.
2050+
extra_headers: Headers | None = None,
2051+
extra_query: Query | None = None,
2052+
extra_body: Body | None = None,
2053+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
2054+
) -> VaultItemOperationResponse:
2055+
"""
2056+
Retrieve the item first and invoke only an operation listed in
2057+
`available_operations`, following its natural-language description. Availability
2058+
is rechecked at execution time; unavailable operations return 409. Authorization
2059+
and preparation may call an external provider and return updated state. Link
2060+
cards advertise authorize without checkout context. Eligible unused AgentCard
2061+
cards advertise prepare_checkout, which requires checkout context and obtains
2062+
device approval before native Square Pay. Keep the returned approval page open,
2063+
poll until ready_to_submit, then submit before preparation.expires_at. Unused
2064+
preparations expire automatically and cannot be reused. If spend-request
2065+
creation is rejected with a non-retryable provider error, the card item is
2066+
deleted and the provider's error code and message are returned. Rate limits
2067+
return HTTP 429 and retain the card item; stop, back off, and retry the same
2068+
authorize operation.
2069+
2070+
Fill returns a value-free execution result. Validation failures before writing
2071+
return 400 (invalid request or targets), 403 (access or destination denied), 404
2072+
(resource not found), or 409 (item or browser not ready). Once writing starts,
2073+
known partial failures and indeterminate field outcomes return 200 with status
2074+
`failed` or `unknown`, not an automatic-retry signal. A transport error may
2075+
leave the outcome unknown; do not automatically retry.
2076+
2077+
Args:
2078+
browser_id: Browser session ID, not a reusable browser name.
2079+
2080+
input: Public tool arguments with an existing null slot at each binding path. At most
2081+
64 KiB after JSON serialization, including substituted values. Never include
2082+
vault values here.
2083+
2084+
page_url: Exact top-level URL from the discovered tool source (fragment omitted). This
2085+
pins the target page; it does not authorize a destination.
2086+
2087+
tool_ref: Opaque reference to the exact live WebMCP registration.
2088+
2089+
timeout_sec: Tool invocation timeout in seconds; preflight and response handling have an
2090+
additional bounded allowance. An indeterminate outcome is not retried.
2091+
2092+
extra_headers: Send extra headers
2093+
2094+
extra_query: Add additional query parameters to the request
2095+
2096+
extra_body: Add additional JSON properties to the request
2097+
2098+
timeout: Override the client-level default timeout for this request, in seconds
2099+
"""
2100+
...
2101+
19572102
@required_args(
19582103
["id_or_name", "type"],
19592104
["id_or_name", "checkout", "type"],
19602105
["id_or_name", "browser_id", "fields", "type"],
19612106
["id_or_name", "browser_id", "type"],
19622107
["id_or_name", "browser_id", "page_url", "type"],
19632108
["id_or_name", "access_token", "type"],
2109+
["id_or_name", "bindings", "browser_id", "input", "page_url", "tool_ref", "type"],
19642110
)
19652111
async def perform_operation(
19662112
self,
@@ -1975,7 +2121,8 @@ async def perform_operation(
19752121
| Literal["1pw_access_request_status"]
19762122
| Literal["1pw_fill"]
19772123
| Literal["1pw_recover"]
1978-
| Literal["1pw_update_access_token"],
2124+
| Literal["1pw_update_access_token"]
2125+
| Literal["webmcp_invoke"],
19792126
checkout: VaultCheckoutContextParam | Omit = omit,
19802127
browser_id: str | Omit = omit,
19812128
fields: Iterable[VaultFillFieldParam] | Omit = omit,
@@ -1988,6 +2135,10 @@ async def perform_operation(
19882135
entry_id: str | Omit = omit,
19892136
access_token: str | Omit = omit,
19902137
access_token_expires_at: Union[str, datetime] | Omit = omit,
2138+
bindings: Iterable[VaultWebmcpBindingParam] | Omit = omit,
2139+
input: Dict[str, object] | Omit = omit,
2140+
tool_ref: str | Omit = omit,
2141+
timeout_sec: int | Omit = omit,
19912142
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
19922143
# The extra values given here take precedence over values defined on the client or passed to this method.
19932144
extra_headers: Headers | None = None,
@@ -2018,6 +2169,10 @@ async def perform_operation(
20182169
"entry_id": entry_id,
20192170
"access_token": access_token,
20202171
"access_token_expires_at": access_token_expires_at,
2172+
"bindings": bindings,
2173+
"input": input,
2174+
"tool_ref": tool_ref,
2175+
"timeout_sec": timeout_sec,
20212176
},
20222177
item_perform_operation_params.ItemPerformOperationParams,
20232178
),

‎src/kernel/types/vaults/__init__.py‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from .one_password_oauth_action import OnePasswordOAuthAction as OnePasswordOAuthAction
2424
from .card_vault_item_spec_param import CardVaultItemSpecParam as CardVaultItemSpecParam
2525
from .credential_vault_item_spec import CredentialVaultItemSpec as CredentialVaultItemSpec
26+
from .vault_webmcp_binding_param import VaultWebmcpBindingParam as VaultWebmcpBindingParam
2627
from .credential_vault_field_type import CredentialVaultFieldType as CredentialVaultFieldType
2728
from .credential_vault_item_state import CredentialVaultItemState as CredentialVaultItemState
2829
from .agentcard_prepared_processor import AgentcardPreparedProcessor as AgentcardPreparedProcessor
@@ -60,6 +61,9 @@
6061
from .one_password_credential_vault_item_state import (
6162
OnePasswordCredentialVaultItemState as OnePasswordCredentialVaultItemState,
6263
)
64+
from .webmcp_invoke_vault_item_operation_result import (
65+
WebmcpInvokeVaultItemOperationResult as WebmcpInvokeVaultItemOperationResult,
66+
)
6367
from .collect_vault_item_operation_request_param import (
6468
CollectVaultItemOperationRequestParam as CollectVaultItemOperationRequestParam,
6569
)
@@ -81,6 +85,9 @@
8185
from .one_password_fill_vault_item_operation_result import (
8286
OnePasswordFillVaultItemOperationResult as OnePasswordFillVaultItemOperationResult,
8387
)
88+
from .webmcp_invoke_vault_item_operation_request_param import (
89+
WebmcpInvokeVaultItemOperationRequestParam as WebmcpInvokeVaultItemOperationRequestParam,
90+
)
8491
from .one_password_credential_vault_item_spec_input_param import (
8592
OnePasswordCredentialVaultItemSpecInputParam as OnePasswordCredentialVaultItemSpecInputParam,
8693
)

‎src/kernel/types/vaults/credential_account_vault_item.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class AvailableOperation(BaseModel):
4040
"1pw_fill",
4141
"1pw_recover",
4242
"1pw_update_access_token",
43+
"webmcp_invoke",
4344
]
4445

4546

‎src/kernel/types/vaults/credential_vault_item.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ class AvailableOperation(BaseModel):
4747
"1pw_fill",
4848
"1pw_recover",
4949
"1pw_update_access_token",
50+
"webmcp_invoke",
5051
]
5152

5253

0 commit comments

Comments
 (0)