Skip to content

Commit 968b0fe

Browse files
committed
Type operator_handle on the assess response
/v1/assess now returns a stable pairwise handle for the account behind a presented operator token. Typed here so SDK consumers keying durable state on identity (prepaid balances first) can read it without casting.
1 parent f41395f commit 968b0fe

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

agentscore/types.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,18 @@ class AssessResponse(_AssessResponseRequired, total=False):
337337
# responses; omitted on denials to avoid leaking the linked set for flagged operators.
338338
# Capped at 100 entries.
339339
linked_wallets: list[str]
340+
# Stable pairwise handle (``oph_...``) for the ACCOUNT behind a presented operator
341+
# token. This is the identity durable merchant state should key on, because it survives
342+
# the token rotating, expiring or being revoked: an ``opc_`` lives 24h and rotates
343+
# silently off a 90-day refresh, so anything keyed on the token instance is stranded
344+
# daily. Pairwise per consuming account, so the same buyer presents an unrelated handle
345+
# to every merchant and handles never correlate across them.
346+
#
347+
# Carries no compliance meaning: a registration-only (``sign_in``) credential resolves
348+
# the same as a KYC-backed one, so read the decision fields for policy. Present only on
349+
# the operator-token path, and returned on denials too, since it is identity rather
350+
# than a verdict.
351+
operator_handle: NotRequired[str]
340352
verify_url: str
341353
policy_result: PolicyResult | None
342354
explanation: NotRequired[list[PolicyExplanation]]

0 commit comments

Comments
 (0)