Skip to content

Commit 654dded

Browse files
Merge remote-tracking branch 'origin/main' into stlc/promote-next
2 parents bbfe7a8 + f09793c commit 654dded

2 files changed

Lines changed: 26 additions & 2 deletions

File tree

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ class LinkCardVaultItemSpec(BaseModel):
9696
class AgentCardCardVaultItemSpec(BaseModel):
9797
"""AgentCard reusable live payment card.
9898
99-
Test-mode card creation is not supported. Each checkout creates an approval-gated authorization for spec.merchant / spec.amount. The card stays ready after each authorization.
99+
Test-mode card creation is not supported. Each checkout creates an authorization for spec.merchant / spec.amount that the cardholder approves, unless AgentCard runs it under one of the cardholder's autopilot rules. The card stays ready after each authorization.
100100
"""
101101

102102
amount: int
@@ -119,6 +119,18 @@ class AgentCardCardVaultItemSpec(BaseModel):
119119
cardholder picks on the approval screen.
120120
"""
121121

122+
checkout_origin: Optional[str] = None
123+
"""
124+
Origin of the top-level checkout page, such as https://shop.example.com: https,
125+
a lowercase host, a port only when it is not 443, and no path. http is accepted
126+
only for localhost test pages. Checkouts without a preparation send it to
127+
AgentCard, which uses it to match the cardholder's autopilot rules; prepared
128+
checkouts send the preparation's merchant_origin instead. Kernel sends the
129+
declared value and does not compare it with the page the browser has open.
130+
Omitted, those checkouts ask the cardholder to approve. Card updates replace the
131+
whole spec, so an update that omits it removes it.
132+
"""
133+
122134

123135
CardVaultItemSpec: TypeAlias = Annotated[
124136
Union[LinkCardVaultItemSpec, AgentCardCardVaultItemSpec], PropertyInfo(discriminator="provider")

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class LinkCardVaultItemSpec(TypedDict, total=False):
9595
class AgentCardCardVaultItemSpec(TypedDict, total=False):
9696
"""AgentCard reusable live payment card.
9797
98-
Test-mode card creation is not supported. Each checkout creates an approval-gated authorization for spec.merchant / spec.amount. The card stays ready after each authorization.
98+
Test-mode card creation is not supported. Each checkout creates an authorization for spec.merchant / spec.amount that the cardholder approves, unless AgentCard runs it under one of the cardholder's autopilot rules. The card stays ready after each authorization.
9999
"""
100100

101101
amount: Required[int]
@@ -118,5 +118,17 @@ class AgentCardCardVaultItemSpec(TypedDict, total=False):
118118
cardholder picks on the approval screen.
119119
"""
120120

121+
checkout_origin: str
122+
"""
123+
Origin of the top-level checkout page, such as https://shop.example.com: https,
124+
a lowercase host, a port only when it is not 443, and no path. http is accepted
125+
only for localhost test pages. Checkouts without a preparation send it to
126+
AgentCard, which uses it to match the cardholder's autopilot rules; prepared
127+
checkouts send the preparation's merchant_origin instead. Kernel sends the
128+
declared value and does not compare it with the page the browser has open.
129+
Omitted, those checkouts ask the cardholder to approve. Card updates replace the
130+
whole spec, so an update that omits it removes it.
131+
"""
132+
121133

122134
CardVaultItemSpecParam: TypeAlias = Union[LinkCardVaultItemSpec, AgentCardCardVaultItemSpec]

0 commit comments

Comments
 (0)