Skip to content

Identity verification and compliance gating (v1.5.0)#16

Merged
vvillait88 merged 10 commits intomainfrom
identity-v1.5
Apr 18, 2026
Merged

Identity verification and compliance gating (v1.5.0)#16
vvillait88 merged 10 commits intomainfrom
identity-v1.5

Conversation

@vvillait88
Copy link
Copy Markdown
Contributor

Summary

  • Identity expansion for v1.5.0 release
  • See agentscore/core#148 for the full changeset

Test plan

  • All tests pass locally

🤖 Generated with Claude Code

vvillait88 and others added 10 commits April 13, 2026 17:35
- assess() accepts operatorToken for non-wallet agents
- createSession(), pollSession() for verification bootstrapping
- createCredential(), listCredentials(), revokeCredential()
- DecisionPolicy: scoring fields removed, allowed_jurisdictions added
- 429 retry with Retry-After header
- Version bumped to 1.5.0

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Assess is a compliance gate. Scoring data comes from /v1/reputation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Blacksmith checkout uses cached git mirrors for faster clones.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Session creation uses first-class fields (return_url, payment_methods, product_name)
- Remove metadata from session creation
- Clean stale test references

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Paired with core removing these from POST /v1/sessions.

- Remove return_url and payment_methods from SessionCreateOptions
- Remove the now-unused PaymentMethod type export
- Drop corresponding tests

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nt_verification)

SessionPollNextSteps + retry_after_seconds + token_ttl_seconds on
SessionPollResponse. PolicyExplanation with how_to_remedy on AssessResponse.
AccountVerification on CredentialListResponse. CredentialCreateErrorResponse
for 409 kyc_required. All additive/optional — no breaking changes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Make account_verification required on CredentialListResponse (API
always returns it). typescript 6.0.2→6.0.3.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Assess endpoint returns a flat decision response (no subject/chains/score).
Use require_kyc policy instead of min_score for deny testing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@vvillait88 vvillait88 merged commit f32ec6b into main Apr 18, 2026
5 checks passed
@vvillait88 vvillait88 deleted the identity-v1.5 branch April 18, 2026 01:52
vvillait88 added a commit that referenced this pull request Apr 29, 2026
…rgs + drop verifyWebhookSignature (#21)

## Summary

`@agent-score/sdk@2.0.0` — wallet-auth hardening types + structured
error access + speculative-helper drop. **Breaking** because of the
webhook removal.

### New (additive)

- `DenialCode` union extended: `wallet_signer_mismatch`,
`wallet_auth_requires_wallet_signing`, `token_expired`,
`invalid_credential`.
- `NextStepsAction` extended: `send_existing_identity`,
`mint_new_credential`, `use_operator_token`,
`regenerate_payment_from_linked_wallet`, `deliver_verify_url_and_poll`,
`switch_token_or_restart_session`.
- New types: `AgentMemoryHint`, `WalletSignerMismatchBody`,
`WalletAuthRequiresSigningBody` + per-shape `NextSteps` discriminator
unions.
- `AssessResponse.linked_wallets?: string[]` on allow responses (cap
100).
- `SessionCreateResponse.agent_memory?` +
`CredentialCreateResponse.agent_memory?` on bootstrap paths.
- `CredentialListItem.label` / `.expires_at` are now nullable to match
the API.
- **`AgentScoreError.details: Record<string, unknown>`** — carries
response-body fields beyond `{code, message}` so consumers can branch on
`verify_url`, `linked_wallets`, `claimed_operator`, `actual_signer`,
`expected_signer`, `reasons`, `agent_memory` without parsing the
response a second time. The mcp tools depend on this.
- `createSession({address?, operator_token?})` — optional
pre-association lets a caller refresh KYC for an existing `opc_...` or
pin a session to a known wallet.

### Removed (BREAKING)

- `verifyWebhookSignature` removed. Audit found zero outbound webhook
emitter in core/api and zero internal consumers. When AgentScore
eventually emits events, the right move is the official
`standardwebhooks` (Svix) lib, not a hand-rolled HMAC verifier —
exporting one preemptively was speculative surface.

### Versioning

Bumped to **2.0.0**. The webhook removal is a breaking change in the
published surface even though no real consumer exercised it; honest
semver.

## Test plan

- [x] 115 tests passing
- [x] Type compilation (tsc) green
- [x] Lint clean
- [ ] Tag `v2.0.0` after merge → publish workflow fires (OIDC trusted
publishing on npm)

## Coordinated release

Plan doc: `core/internal_docs/wallet-auth-hardening-plan.md`.

Sibling PRs: `python-sdk` #16 (mirror), `mcp` #24 (consumes this),
`martin-estate` #44 (consumes via `@agent-score/commerce`), `core` #190
(server side). Merge order: this + python-sdk + core land first → tag
v2.0.0 → publish → commerce 1.0.0 publishes → mcp + martin-estate
auto-clear and merge.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant