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.108.0"
".": "0.109.0"
}
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Changelog

## [0.109.0](https://github.com/kernel/kernel-python-sdk/compare/v0.108.0...v0.109.0) (2026-09-17)


### Features

* Accept opaque AgentCard vaulted card IDs ([569a604](https://github.com/kernel/kernel-python-sdk/commit/569a604ad58c278c83bda5068c8a6080334d085f))
* Expose organization-wide concurrent browser capacity ([8b22180](https://github.com/kernel/kernel-python-sdk/commit/8b22180766c592d1480e26fc781ffd5e1b623051))
* Preserve credential field order ([1a408c4](https://github.com/kernel/kernel-python-sdk/commit/1a408c41c0fd043ff69187f7d62bc721f9e5f867))

## [0.108.0](https://github.com/kernel/kernel-python-sdk/compare/v0.107.0...v0.108.0) (2026-09-17)


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.108.0"
version = "0.109.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.108.0" # x-release-please-version
__version__ = "0.109.0" # x-release-please-version
10 changes: 8 additions & 2 deletions src/kernel/resources/organization/limits.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,10 @@ def retrieve(
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> OrgLimits:
"""Get the organization's effective limits and managed auth and vault usage."""
"""
Get the organization's effective limits and current concurrency, managed auth,
and vault usage.
"""
return self._get(
"/org/limits",
options=make_request_options(
Expand Down Expand Up @@ -138,7 +141,10 @@ async def retrieve(
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> OrgLimits:
"""Get the organization's effective limits and managed auth and vault usage."""
"""
Get the organization's effective limits and current concurrency, managed auth,
and vault usage.
"""
return await self._get(
"/org/limits",
options=make_request_options(
Expand Down
8 changes: 6 additions & 2 deletions src/kernel/resources/vaults/items.py
Original file line number Diff line number Diff line change
Expand Up @@ -757,7 +757,9 @@ def upsert(
Args:
spec: Credential fields are for login and other non-payment credentials. Do not store,
collect, or fill credit card data in credential items. Use wallet and card item
types for credit cards and payment checkout instead.
types for credit cards and payment checkout instead. Field order is preserved in
the user-facing collection form, so list fields in the same top-to-bottom order
as the website.

extra_headers: Send extra headers

Expand Down Expand Up @@ -1528,7 +1530,9 @@ async def upsert(
Args:
spec: Credential fields are for login and other non-payment credentials. Do not store,
collect, or fill credit card data in credential items. Use wallet and card item
types for credit cards and payment checkout instead.
types for credit cards and payment checkout instead. Field order is preserved in
the user-facing collection form, so list fields in the same top-to-bottom order
as the website.

extra_headers: Send extra headers

Expand Down
13 changes: 13 additions & 0 deletions src/kernel/types/organization/org_limits.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,19 @@ class OrgLimits(BaseModel):
remaining capacity before a create is rejected with 403 insufficient_plan.
"""

concurrent_sessions_available: Optional[int] = None
"""Number of concurrent browser slots currently available to the organization.

This is the effective concurrency limit minus active on-demand sessions and
browser pool reservations, floored at zero. Null when usage cannot be read.
"""

concurrent_sessions_used: Optional[int] = None
"""
Current organization-wide concurrent browser usage, including active on-demand
sessions and browser pool reservations. Null when usage cannot be read.
"""

max_auth_connections: Optional[int] = None
"""Maximum managed auth connections the organization's plan allows.

Expand Down
5 changes: 3 additions & 2 deletions src/kernel/types/vaults/card_vault_item_spec.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,10 @@ class AgentCardCardVaultItemSpec(BaseModel):
"""Wallet item key used to authorize checkouts."""

card_id: Optional[str] = None
"""AgentCard vaulted card to pay with.
"""Opaque card ID returned by AgentCard for a card in the connected wallet.

Omitted, the cardholder picks on the approval screen.
Pass it through unchanged without assuming a prefix or format. Omitted, the
cardholder picks on the approval screen.
"""


Expand Down
5 changes: 3 additions & 2 deletions src/kernel/types/vaults/card_vault_item_spec_param.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,10 @@ class AgentCardCardVaultItemSpec(TypedDict, total=False):
"""Wallet item key used to authorize checkouts."""

card_id: str
"""AgentCard vaulted card to pay with.
"""Opaque card ID returned by AgentCard for a card in the connected wallet.

Omitted, the cardholder picks on the approval screen.
Pass it through unchanged without assuming a prefix or format. Omitted, the
cardholder picks on the approval screen.
"""


Expand Down
3 changes: 3 additions & 0 deletions src/kernel/types/vaults/credential_vault_field_definition.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@


class CredentialVaultFieldDefinition(BaseModel):
name: str
"""Stable field name used to key values, updates, and browser fills."""

required: bool
"""Whether a nonempty value is required for readiness and form submission."""

Expand Down
3 changes: 3 additions & 0 deletions src/kernel/types/vaults/credential_vault_field_input_param.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@


class CredentialVaultFieldInputParam(TypedDict, total=False):
name: Required[str]
"""Unique stable field name used to key values, updates, and browser fills."""

type: Required[CredentialVaultFieldType]
"""
Text, email, and password have form inputs; totp does not and is omitted from
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@ class CredentialVaultItemRequestParam(TypedDict, total=False):
"""Credential fields are for login and other non-payment credentials.

Do not store, collect, or fill credit card data in credential items. Use wallet
and card item types for credit cards and payment checkout instead.
and card item types for credit cards and payment checkout instead. Field order
is preserved in the user-facing collection form, so list fields in the same
top-to-bottom order as the website.
"""

type: Required[Literal["credential"]]
7 changes: 5 additions & 2 deletions src/kernel/types/vaults/credential_vault_item_spec.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import Dict, Optional
from typing import List, Optional

from ..._models import BaseModel
from .credential_vault_field_definition import CredentialVaultFieldDefinition
Expand All @@ -9,7 +9,10 @@


class CredentialVaultItemSpec(BaseModel):
fields: Dict[str, CredentialVaultFieldDefinition]
fields: List[CredentialVaultFieldDefinition]
"""
Ordered field definitions rendered in this order by credential collection forms.
"""

description: Optional[str] = None
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from __future__ import annotations

from typing import Dict
from typing import Iterable
from typing_extensions import Required, TypedDict

from .credential_vault_field_input_param import CredentialVaultFieldInputParam
Expand All @@ -13,10 +13,15 @@
class CredentialVaultItemSpecInputParam(TypedDict, total=False):
"""Credential fields are for login and other non-payment credentials.

Do not store, collect, or fill credit card data in credential items. Use wallet and card item types for credit cards and payment checkout instead.
Do not store, collect, or fill credit card data in credential items. Use wallet and card item types for credit cards and payment checkout instead. Field order is preserved in the user-facing collection form, so list fields in the same top-to-bottom order as the website.
"""

fields: Required[Dict[str, CredentialVaultFieldInputParam]]
fields: Required[Iterable[CredentialVaultFieldInputParam]]
"""Ordered field definitions.

Use the website's top-to-bottom field order; the collection form renders this
order unchanged.
"""

description: str
"""
Expand Down
4 changes: 3 additions & 1 deletion src/kernel/types/vaults/item_upsert_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,9 @@ class CredentialVaultItemRequest(TypedDict, total=False):
"""Credential fields are for login and other non-payment credentials.

Do not store, collect, or fill credit card data in credential items. Use wallet
and card item types for credit cards and payment checkout instead.
and card item types for credit cards and payment checkout instead. Field order
is preserved in the user-facing collection form, so list fields in the same
top-to-bottom order as the website.
"""

type: Required[Literal["credential"]]
Expand Down
Loading
Loading