Skip to content

Commit 13d6cd1

Browse files
committed
chore(commerce): scrub internal disclosures from public-package source
Mirrors the node-commerce sweep on the python side: - Removed "pending_identity" (internal order-state column value) from _TEMPO_WARNING + _X402_WARNING in agent_instructions.py and from the default llms.txt template; agents see "the order will not complete" - Tightened the agentscore-pay tool description from "x402 on Base + Solana" to "x402 on Base and MPP on Tempo + Solana" so the rail-protocol mapping matches the 1.4.0 reality (Solana goes through MPP solana/charge) - Genericized docstring examples in identity/a2a.py, identity/ucp.py, discovery/skill_md.py, challenge/order_receipt.py: "Martin Estate" + "agents.martinestate.com" + "wine-purchase" placeholders replaced with "Example Merchant" / "agents.example.com" / generic skills - examples/multi_rail_merchant.py docstring renamed from "Martin-Estate- style" to "regulated-commerce" to describe the pattern, not the customer Mintlify worked-example pages keep referencing Martin Estate by name; that's allowed at the marketing/URL level per the disclosure-posture rules.
1 parent f0c9c87 commit 13d6cd1

7 files changed

Lines changed: 19 additions & 21 deletions

File tree

agentscore_commerce/challenge/agent_instructions.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,17 @@
66

77
_TEMPO_WARNING = (
88
"Do NOT use `tempo wallet transfer` to pay to the address above. That moves USDC on-chain but does not "
9-
"notify this server, leaving your order in pending_identity state. Use `tempo request` insteadit performs "
10-
"the full MPP handshake (signs, submits Authorization: Payment, waits for server confirmation)."
9+
"notify this server, so the order will not complete. Use `tempo request` instead; it performs the full MPP "
10+
"handshake (signs, submits Authorization: Payment, waits for server confirmation)."
1111
)
1212
_X402_WARNING = (
1313
"Do NOT send USDC manually to the x402 deposit addresses (e.g. via a bare wallet `transfer`). Use "
14-
"`agentscore-pay pay` so the X-Payment credential is signed and submitted; otherwise the order stays in "
15-
"pending_identity even though the deposit lands."
14+
"`agentscore-pay pay` so the X-Payment credential is signed and submitted; otherwise the order will not "
15+
"complete even though the deposit lands."
1616
)
1717
_TEMPO_TOOL = "`tempo request` for Tempo USDC (installs via `tempo add request`)"
1818
_AGENTSCORE_PAY_TOOL = (
19-
"`agentscore-pay` (npm: `@agent-score/pay`) — single CLI for x402 on Base + Solana, "
20-
"also speaks tempo MPP via `--chain tempo`"
19+
"`agentscore-pay` (npm: `@agent-score/pay`); single CLI for x402 on Base and MPP on Tempo + Solana"
2120
)
2221

2322
DEFAULT_WALLET_COMPATIBILITY = (

agentscore_commerce/challenge/order_receipt.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
"""Canonical order-receipt shape returned to agents on the 200 after settlement.
22
3-
Merchants own their order schema, but converging on this shape across every AgentScore-gated
4-
merchant (Martin Estate today; Commerce7 / WooCommerce / Shopify plugins tomorrow) means
5-
agents can render and post-process orders consistently. Lift this type, fill the fields you
6-
care about, and ignore (or extend via ``extras``) what you don't.
3+
Merchants own their order schema, but converging on this shape across AgentScore-gated
4+
merchants means agents can render and post-process orders consistently. Lift this type,
5+
fill the fields you care about, and ignore (or extend via ``extras``) what you don't.
76
87
All money fields are dollar-strings. Use :func:`build_pricing_block` from
98
:mod:`agentscore_commerce.challenge` to compose the pricing fields from cents.

agentscore_commerce/discovery/llms_txt.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,8 @@ def _llms_txt_payment_section_verbose(input: LlmsTxtPaymentSectionInput) -> str:
232232
lines.append("")
233233

234234
lines.append(
235-
"IMPORTANT: Do NOT use `tempo wallet transfer` or send USDC manually to the x402 deposit addresses "
236-
"those bypass the payment handshake and your order will stay in pending_identity."
235+
"IMPORTANT: Do NOT use `tempo wallet transfer` or send USDC manually to the x402 deposit addresses; "
236+
"those bypass the payment handshake and the order will not complete."
237237
)
238238
if has_base or has_solana:
239239
lines.append(

agentscore_commerce/discovery/skill_md.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ class BuildSkillMdInput:
9999
"""Merchant homepage (or domain root). Emitted as ``metadata.homepage`` per spec
100100
(top-level non-spec fields go under metadata)."""
101101
merchant_name: str
102-
"""Human display name (e.g. 'Martin Estate Winery')."""
102+
"""Human display name (e.g. 'Example Merchant')."""
103103
accepted_rails: list[RailKey]
104104
"""Rails the merchant accepts. Drives the Payment + Compatible Clients sections.
105105
Order is preserved in render."""

agentscore_commerce/identity/a2a.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,12 @@ def build_a2a_agent_card(
129129
130130
result = client.check(identity)
131131
card = build_a2a_agent_card(
132-
name="Martin Estate Wine Concierge",
133-
description="Buy regulated wines from Martin Estate via agent payments.",
134-
url="https://agents.martinestate.com",
132+
name="Example Merchant Concierge",
133+
description="Buy regulated goods via agent payments.",
134+
url="https://agents.example.com",
135135
capabilities=A2AAgentCardCapabilities(
136136
endpoints=[{"name": "purchase", "path": "/purchase", "method": "POST"}],
137-
skills=["wine-purchase", "regulated-commerce"],
137+
skills=["product-purchase", "regulated-commerce"],
138138
),
139139
data=result,
140140
)

agentscore_commerce/identity/ucp.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,14 +177,14 @@ def build_ucp_profile(
177177
async def ucp_profile():
178178
result = await client.acheck(identity)
179179
return build_ucp_profile(
180-
name="Martin Estate",
181-
services=[UCPService(type="rest", url="https://agents.martinestate.com")],
180+
name="Example Merchant",
181+
services=[UCPService(type="rest", url="https://agents.example.com")],
182182
payment_handlers=[
183183
UCPPaymentHandler(name="tempo", config={"recipient": TEMPO_ADDR}),
184184
UCPPaymentHandler(name="stripe", config={"profile_id": STRIPE_PROFILE_ID}),
185185
],
186186
signing_keys=[
187-
UCPSigningKey(kid="me-2026-04", kty="EC", alg="ES256", crv="P-256",
187+
UCPSigningKey(kid="merchant-2026-04", kty="EC", alg="ES256", crv="P-256",
188188
extras={"x": "...", "y": "..."}),
189189
],
190190
data=result,

examples/multi_rail_merchant.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""Example: full agent-commerce merchant (Martin-Estate-style stripped down).
1+
"""Example: full regulated-commerce merchant.
22
33
Scenario: you sell a regulated good. Identity gate (KYC + age + jurisdiction + sanctions),
44
plus 402 payment challenge advertising multiple rails so agents can pay with whatever they

0 commit comments

Comments
 (0)