Build on the supported package contract
Use @absolutejs/agent-exchange-webauthn through its supported public entry points.
@absolutejs/agent-exchange-webauthnv0.5.0betaAIRequest-bound, user-verified WebAuthn approvals for @absolutejs/agent-exchange.
bun add @absolutejs/agent-exchange-webauthnAn interchangeable AgentExchangeApprovalProvider that binds a user-verified WebAuthn assertion to the exact Agent Exchange request digest.
It also provides createWebAuthnAgentExchangeMandateApprovalProvider() for standing mandates. That provider recomputes the domain-separated challenge over the complete mandate draft and requires the issuer authority and subject to match the verifier before beginning or verifying the ceremony.
The provider requires HTTPS, an RP ID valid for the configured verifier origin, an exact caller-provided challenge, user verification, credential ownership, and safe signature-counter progression. It does not persist raw assertions.
Use the resulting provider with the phishing-resistant assurance profile in @absolutejs/agent-exchange@0.4.
For local development only, allowInsecureLocalhost: true permits an HTTP localhost origin and RP ID. It does not permit arbitrary HTTP hosts.
Import approveAgentExchangeWithPasskey from @absolutejs/agent-exchange-webauthn/client. Call it from the user's confirmation button after displaying the exact service, teammate, expiry, and use limit. Provide begin() (returns approvalId and WebAuthn options) and verify() (receives the same approval ID and the authenticator response). The helper uses SimpleWebAuthn's browser implementation and does not approve or persist a mandate itself. The server must consume an Auth challenge bound to purpose, user and session before using the mandate approval provider.
Version 0.5.0 requires Auth 0.89.x, whose credential stores prevent owner/key replacement and counter rollback and provide durable one-use challenge stores.
Outcomes
Use @absolutejs/agent-exchange-webauthn through its supported public entry points.
Hardening checklist
Follow in order
# @absolutejs/agent-exchange-webauthn
const approvalProvider = createWebAuthnAgentExchangeApprovalProvider({
adapter,
credentialStore,
origin: "https://app.example.com",
resolveUserId: async ({ subject }) => subject,
rpId: "example.com",
});Supported entry points declared by this package manifest.
Package entry point declared in package.json.
Scripts declared by this package manifest.