@astrasyncai/verification-gateway 5.17.2 → 5.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/CHANGELOG.md +1849 -0
  2. package/README.md +141 -7
  3. package/dist/adapters/express.d.mts +1 -1
  4. package/dist/adapters/express.d.ts +1 -1
  5. package/dist/adapters/express.js +30 -12
  6. package/dist/adapters/express.js.map +1 -1
  7. package/dist/adapters/express.mjs +30 -12
  8. package/dist/adapters/express.mjs.map +1 -1
  9. package/dist/adapters/kit-express.d.mts +63 -0
  10. package/dist/adapters/kit-express.d.ts +63 -0
  11. package/dist/adapters/kit-express.js +88 -0
  12. package/dist/adapters/kit-express.js.map +1 -0
  13. package/dist/adapters/kit-express.mjs +61 -0
  14. package/dist/adapters/kit-express.mjs.map +1 -0
  15. package/dist/adapters/mcp.d.mts +1 -1
  16. package/dist/adapters/mcp.d.ts +1 -1
  17. package/dist/adapters/mcp.js +1 -1
  18. package/dist/adapters/mcp.js.map +1 -1
  19. package/dist/adapters/mcp.mjs +1 -1
  20. package/dist/adapters/mcp.mjs.map +1 -1
  21. package/dist/adapters/nextjs.d.mts +1 -1
  22. package/dist/adapters/nextjs.d.ts +1 -1
  23. package/dist/adapters/nextjs.js +18 -8
  24. package/dist/adapters/nextjs.js.map +1 -1
  25. package/dist/adapters/nextjs.mjs +18 -8
  26. package/dist/adapters/nextjs.mjs.map +1 -1
  27. package/dist/adapters/sdk.d.mts +1 -1
  28. package/dist/adapters/sdk.d.ts +1 -1
  29. package/dist/adapters/sdk.js +1 -1
  30. package/dist/adapters/sdk.js.map +1 -1
  31. package/dist/adapters/sdk.mjs +1 -1
  32. package/dist/adapters/sdk.mjs.map +1 -1
  33. package/dist/agent/index.js +1 -1
  34. package/dist/agent/index.js.map +1 -1
  35. package/dist/agent/index.mjs +1 -1
  36. package/dist/agent/index.mjs.map +1 -1
  37. package/dist/bin/astrasync-claude-hook.js +1 -1
  38. package/dist/bin/astrasync-codex-hook.js +1 -1
  39. package/dist/bin/astrasync-guard.js +1 -1
  40. package/dist/bin/astrasync.js +19 -1
  41. package/dist/browser/background.js +1 -1
  42. package/dist/browser/background.js.map +1 -1
  43. package/dist/browser/background.mjs +1 -1
  44. package/dist/browser/background.mjs.map +1 -1
  45. package/dist/cli/index.js +1 -1
  46. package/dist/cli/index.js.map +1 -1
  47. package/dist/cli/index.mjs +1 -1
  48. package/dist/cli/index.mjs.map +1 -1
  49. package/dist/codex/index.js +1 -1
  50. package/dist/codex/index.js.map +1 -1
  51. package/dist/codex/index.mjs +1 -1
  52. package/dist/codex/index.mjs.map +1 -1
  53. package/dist/cursor/extension.js +1 -1
  54. package/dist/cursor/extension.js.map +1 -1
  55. package/dist/cursor/extension.mjs +1 -1
  56. package/dist/cursor/extension.mjs.map +1 -1
  57. package/dist/edge-config.d.mts +1 -1
  58. package/dist/edge-config.d.ts +1 -1
  59. package/dist/edge-config.js +1 -1
  60. package/dist/edge-config.js.map +1 -1
  61. package/dist/edge-config.mjs +1 -1
  62. package/dist/edge-config.mjs.map +1 -1
  63. package/dist/edge-core/index.d.mts +5 -4
  64. package/dist/edge-core/index.d.ts +5 -4
  65. package/dist/edge-core/index.js +18 -8
  66. package/dist/edge-core/index.js.map +1 -1
  67. package/dist/edge-core/index.mjs +18 -8
  68. package/dist/edge-core/index.mjs.map +1 -1
  69. package/dist/gateway/gateway.js +1 -1
  70. package/dist/gateway/gateway.js.map +1 -1
  71. package/dist/gateway/gateway.mjs +1 -1
  72. package/dist/gateway/gateway.mjs.map +1 -1
  73. package/dist/git-trigger/git-hooks.d.mts +1 -1
  74. package/dist/git-trigger/git-hooks.d.ts +1 -1
  75. package/dist/index.d.mts +390 -12
  76. package/dist/index.d.ts +390 -12
  77. package/dist/index.js +766 -230
  78. package/dist/index.js.map +1 -1
  79. package/dist/index.mjs +749 -222
  80. package/dist/index.mjs.map +1 -1
  81. package/dist/registration/index.js +1 -1
  82. package/dist/registration/index.js.map +1 -1
  83. package/dist/registration/index.mjs +1 -1
  84. package/dist/registration/index.mjs.map +1 -1
  85. package/dist/transport/index.d.mts +4 -3
  86. package/dist/transport/index.d.ts +4 -3
  87. package/dist/transport/index.js +1 -1
  88. package/dist/transport/index.js.map +1 -1
  89. package/dist/transport/index.mjs +1 -1
  90. package/dist/transport/index.mjs.map +1 -1
  91. package/dist/{types-vNBvYD7Z.d.mts → types-3ObBpsnf.d.mts} +7 -0
  92. package/dist/{types-DA8LzAOB.d.ts → types-BoxZEYPS.d.ts} +7 -0
  93. package/dist/{types-DRb_plOh.d.mts → types-Cns4l8gX.d.mts} +17 -0
  94. package/dist/{types-DRb_plOh.d.ts → types-Cns4l8gX.d.ts} +17 -0
  95. package/dist/ui/index.d.mts +1 -1
  96. package/dist/ui/index.d.ts +1 -1
  97. package/dist/verify.d.mts +1 -1
  98. package/dist/verify.d.ts +1 -1
  99. package/dist/verify.js +1 -1
  100. package/dist/verify.js.map +1 -1
  101. package/dist/verify.mjs +1 -1
  102. package/dist/verify.mjs.map +1 -1
  103. package/package.json +8 -2
@@ -1,4 +1,4 @@
1
- import { T as TokenGuidance, b as CounterpartyType } from '../types-vNBvYD7Z.mjs';
1
+ import { T as TokenGuidance, b as CounterpartyType } from '../types-3ObBpsnf.mjs';
2
2
  import '../metadata-capture.mjs';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { T as TokenGuidance, b as CounterpartyType } from '../types-DA8LzAOB.js';
1
+ import { T as TokenGuidance, b as CounterpartyType } from '../types-BoxZEYPS.js';
2
2
  import '../metadata-capture.js';
3
3
 
4
4
  /**
package/dist/index.d.mts CHANGED
@@ -531,6 +531,13 @@ interface StepUpApprovalInfo {
531
531
  */
532
532
  approvalUrl?: string;
533
533
  expiresAt: string;
534
+ /**
535
+ * 5.18.0: `'consumed'` when this verification just redeemed the approval
536
+ * (the purchase may proceed); `'pending'` (or absent) while the buyer
537
+ * still has to approve; `'approved'` when the buyer approved but the
538
+ * purchase can't settle yet (e.g. no payment method) — still held.
539
+ */
540
+ status?: 'pending' | 'approved' | 'consumed';
534
541
  }
535
542
  /**
536
543
  * Lifecycle states of a step-up approval row (mirrors the backend's
@@ -1295,6 +1302,16 @@ interface ExpressMiddlewareOptions extends GatewayConfig {
1295
1302
  * owner approves once. Any deny is still refused. Default: none.
1296
1303
  */
1297
1304
  approvalHeldByRoute?: (req: unknown) => boolean;
1305
+ /**
1306
+ * 5.18.0: what happens to a request no configured route matches.
1307
+ * `'pass'` (default): it passes unevaluated — unless
1308
+ * `evaluateAlwaysIfCredentialed` is set and the caller sent an X-Astra-Id,
1309
+ * in which case it's evaluated in observe mode. `'observe'`: any caller
1310
+ * presenting AstraSync credentials (X-Astra-Id, API key or JWT) is
1311
+ * evaluated in observe mode. Observe never vetoes: the request always
1312
+ * reaches your handler, with `req.agentVerification` populated.
1313
+ */
1314
+ defaultRoutePolicy?: 'pass' | 'observe';
1298
1315
  /**
1299
1316
  * Refresh interval (ms) for the remote-fetched route policy. Default:
1300
1317
  * 5 minutes. Operators can shorten this to test policy edits faster, or
@@ -2968,9 +2985,10 @@ declare function verifyACPSignature(input: ACPVerifyInput): Promise<ACPVerifyRes
2968
2985
  /**
2969
2986
  * MPP (Machine Payments Protocol) extractor.
2970
2987
  *
2971
- * Wraps mppx (wevm) — pinned to 0.5.13, wrapped behind this adapter so
2972
- * upgrades localise here. MPP launched March 18 2026 (Stripe + Tempo +
2973
- * Paradigm), IETF draft-ryan-httpauth-payment-01.
2988
+ * Wraps mppx (wevm) — the exact version is pinned in package.json (0.8.2 as
2989
+ * of 5.18.0), wrapped behind this adapter so upgrades localise here. MPP
2990
+ * launched March 18 2026 (Stripe + Tempo + Paradigm), IETF
2991
+ * draft-ryan-httpauth-payment-01.
2974
2992
  *
2975
2993
  * Flow:
2976
2994
  * Client → GET /resource
@@ -5148,7 +5166,7 @@ declare function detectRuntime(userAgent: string | undefined | null): string | u
5148
5166
  * silently (never throwing), so this is a no-op there — which is correct:
5149
5167
  * in a browser the page's real UA is the honest identity.
5150
5168
  */
5151
- declare const SDK_USER_AGENT = "astrasync-sdk/5.17.2";
5169
+ declare const SDK_USER_AGENT = "astrasync-sdk/5.18.0";
5152
5170
  declare const sdkFetch: typeof fetch;
5153
5171
 
5154
5172
  interface LocalPolicy {
@@ -5266,7 +5284,7 @@ declare function parseYaml(yamlContent: string): ParseResult;
5266
5284
  * is fine — bumping both in the release-ceremony commit keeps them
5267
5285
  * lockstep.
5268
5286
  */
5269
- declare const SDK_VERSION = "5.17.2";
5287
+ declare const SDK_VERSION = "5.18.0";
5270
5288
 
5271
5289
  /**
5272
5290
  * 5.15.0 — the `UCP-Agent` request header (UCP 2026-08-25): an RFC 8941
@@ -5357,9 +5375,16 @@ interface BuildProfileOptions {
5357
5375
  paymentHandlers?: string[];
5358
5376
  /** Accept AP2 mandates (adds dev.ucp.common.payment.ap2_mandate). */
5359
5377
  ap2Mandates?: boolean;
5378
+ /**
5379
+ * 5.18.0: advertise the order capability (`dev.ucp.shopping.order`) —
5380
+ * `GET /orders/{id}` and order webhooks. The checkout kit serves both.
5381
+ */
5382
+ orders?: boolean;
5360
5383
  /** Extra capabilities beyond checkout (e.g. order). */
5361
5384
  capabilities?: Record<string, UcpCapabilityEntry[]>;
5362
5385
  }
5386
+ /** 5.18.0: the order capability id. */
5387
+ declare const UCP_ORDER_CAPABILITY = "dev.ucp.shopping.order";
5363
5388
  declare function buildUcpProfile(opts: BuildProfileOptions): UcpProfile;
5364
5389
  /** A fetch-style handler for GET /.well-known/ucp. */
5365
5390
  declare function ucpProfileHandler(profile: UcpProfile, maxAgeSec?: number): () => Promise<Response>;
@@ -5630,6 +5655,16 @@ declare function idempotencyMiddleware(opts: IdempotencyOptions): (req: ExpressR
5630
5655
  /** Next.js / fetch-style route handler wrapper. */
5631
5656
  declare function withIdempotency(opts: IdempotencyOptions, handler: (req: Request) => Promise<Response>): (req: Request) => Promise<Response>;
5632
5657
 
5658
+ /** Per-request context a host adapter (e.g. `expressHandler`) passes to `kit.handle`. */
5659
+ interface KitRequestContext {
5660
+ /**
5661
+ * The caller's VERIFIED ASTRA-id (e.g. from `req.agentVerification` after
5662
+ * the AstraSync middleware ran). Sessions and idempotency keys are scoped
5663
+ * to it; without it the kit falls back to Authorization, then X-Astra-Id.
5664
+ */
5665
+ callerId?: string;
5666
+ }
5667
+
5633
5668
  interface CatalogItem {
5634
5669
  id: string;
5635
5670
  title: string;
@@ -5662,6 +5697,23 @@ interface CheckoutSession {
5662
5697
  permalink_url?: string;
5663
5698
  };
5664
5699
  /** Kit state (never serialised). */
5700
+ /** 5.18.0: hashed caller scope (see `KitRequestContext`). */
5701
+ _caller?: string;
5702
+ /** 5.18.0: the detached merchant_authorization last sent, and the hash of the view it signs. */
5703
+ _merchantAuth?: string;
5704
+ _merchantAuthFor?: string;
5705
+ /** 5.18.0: a settlement the processor hasn't confirmed yet (see `resolvePending`). */
5706
+ _pending?: {
5707
+ orderId?: string;
5708
+ report: {
5709
+ amountMinor: number;
5710
+ currency: string;
5711
+ };
5712
+ /** The verification result, minus merchant-lane secrets. */
5713
+ result: VerificationResult;
5714
+ };
5715
+ /** 5.18.0: the platform's order webhook URL from its profile, when it declared one. */
5716
+ _webhookUrl?: string;
5665
5717
  _platformProfile?: string;
5666
5718
  _ap2?: boolean;
5667
5719
  _platformKeys?: JWK[];
@@ -5675,12 +5727,80 @@ interface CheckoutSession {
5675
5727
  interface CheckoutStore {
5676
5728
  get(id: string): Promise<CheckoutSession | null>;
5677
5729
  put(s: CheckoutSession): Promise<void>;
5730
+ /**
5731
+ * 5.18.0: compare-and-set the session's status — set it to `to` only when
5732
+ * it is currently `from`; true when this call won. `complete` claims
5733
+ * `complete_in_progress` with it so concurrent completes can't both
5734
+ * charge. Implement it atomically (e.g. `UPDATE … WHERE status = $from`).
5735
+ * Without it the kit warns once and the lock is best-effort.
5736
+ */
5737
+ claim?(id: string, from: CheckoutSession['status'], to: CheckoutSession['status']): Promise<boolean>;
5738
+ /** 5.18.0: the session that produced an order (for `GET /orders/{id}`). */
5739
+ findByOrderId?(orderId: string): Promise<CheckoutSession | null>;
5678
5740
  }
5679
5741
  declare class MemoryCheckoutStore implements CheckoutStore {
5680
5742
  private m;
5743
+ private orders;
5681
5744
  get(id: string): Promise<CheckoutSession | null>;
5682
5745
  put(s: CheckoutSession): Promise<void>;
5746
+ claim(id: string, from: CheckoutSession['status'], to: CheckoutSession['status']): Promise<boolean>;
5747
+ findByOrderId(orderId: string): Promise<CheckoutSession | null>;
5748
+ }
5749
+ /** 5.18.0: a policy link shown with the checkout (part of the signed body). */
5750
+ interface UcpLink {
5751
+ type: 'terms_of_service' | 'privacy_policy' | 'refund_policy' | 'shipping_policy' | 'faq' | (string & {});
5752
+ url: string;
5753
+ title?: string;
5683
5754
  }
5755
+ /** 5.18.0: the order entity (`dev.ucp.shopping.order`). */
5756
+ interface UcpOrder {
5757
+ ucp: {
5758
+ version: string;
5759
+ capabilities: Record<string, Array<{
5760
+ version: string;
5761
+ }>>;
5762
+ };
5763
+ id: string;
5764
+ checkout_id: string;
5765
+ permalink_url?: string;
5766
+ currency: string;
5767
+ line_items: Array<{
5768
+ id: string;
5769
+ item: CatalogItem;
5770
+ quantity: {
5771
+ total: number;
5772
+ fulfilled: number;
5773
+ };
5774
+ totals: Array<{
5775
+ type: string;
5776
+ amount: number;
5777
+ }>;
5778
+ status: 'processing' | 'fulfilled' | 'removed';
5779
+ }>;
5780
+ fulfillment: {
5781
+ expectations: unknown[];
5782
+ events: unknown[];
5783
+ };
5784
+ adjustments: unknown[];
5785
+ totals: Array<{
5786
+ type: string;
5787
+ amount: number;
5788
+ }>;
5789
+ }
5790
+ /** 5.18.0: the order entity for a completed checkout, or null when it has no order yet. */
5791
+ declare function buildUcpOrder(session: CheckoutSession, opts?: {
5792
+ version?: string;
5793
+ }): UcpOrder | null;
5794
+ /** 5.18.0: the outcome your processor reported for a pending settlement. */
5795
+ type PendingResolution = {
5796
+ status: 'settled';
5797
+ processorRef?: string;
5798
+ txHash?: string;
5799
+ chainId?: number;
5800
+ } | {
5801
+ status: 'failed';
5802
+ failureCode?: string;
5803
+ };
5684
5804
  type SettleResult = {
5685
5805
  status: 'settled';
5686
5806
  processorRef?: string;
@@ -5743,11 +5863,69 @@ interface UcpCheckoutKitOptions {
5743
5863
  fallbackContinueUrl?: string;
5744
5864
  /** Profile fetch override (tests). */
5745
5865
  fetchProfile?: (url: string, fresh: boolean) => Promise<UcpProfile | UcpDiscoveryError>;
5866
+ /**
5867
+ * 5.18.0: policy links (terms of service, privacy, refund, shipping, FAQ)
5868
+ * returned on every checkout and covered by `ap2.merchant_authorization`.
5869
+ */
5870
+ links?: UcpLink[];
5871
+ /**
5872
+ * 5.18.0: the caller's verified ASTRA-id for scoping sessions and
5873
+ * idempotency keys (default: `ctx.callerId`, then Authorization, then
5874
+ * X-Astra-Id, then the platform profile).
5875
+ */
5876
+ resolveCallerId?: (req: Request) => string | undefined | Promise<string | undefined>;
5877
+ /**
5878
+ * 5.18.0: the protocol identities to bind `UCP-Agent` against (default
5879
+ * `result.agent.protocolIdentities` from `verifyPurchase`).
5880
+ */
5881
+ resolveIdentities?: (req: Request, result: VerificationResult) => AgentProtocolIdentities | undefined | Promise<AgentProtocolIdentities | undefined>;
5882
+ /**
5883
+ * 5.18.0: how `UCP-Agent` is bound to the verified agent after
5884
+ * `verifyPurchase` (a mismatch never settles).
5885
+ * - `'registered'` (default): refuse a profile that differs from the one
5886
+ * the agent registered; an agent with no registered profile passes (e.g.
5887
+ * calls relayed by the AstraSync bridge under its own profile).
5888
+ * - `'strict'`: `checkUcpAgentBinding` verbatim — also refuses agents with
5889
+ * no registered profile.
5890
+ * - `'off'`: no binding check.
5891
+ */
5892
+ ucpAgentBinding?: 'registered' | 'strict' | 'off';
5893
+ /** 5.18.0: `permalink_url` = `${permalinkBase}/${orderId}` when `fulfil` returns none. */
5894
+ permalinkBase?: string;
5895
+ /**
5896
+ * 5.18.0: send signed order webhooks (`sendUcpWebhook`, full order entity)
5897
+ * when an order is created — including from `resolvePending` — and on
5898
+ * `kit.sendOrderWebhook(sessionId)` after you update it.
5899
+ */
5900
+ webhook?: {
5901
+ /** Default: the platform profile's `dev.ucp.shopping.order` `config.webhook_url`. */
5902
+ url?: string;
5903
+ /** Default: `signingKey.privateKey`. */
5904
+ privateKey?: KeyObject | string;
5905
+ /** Default: `signingKey.kid`. */
5906
+ keyId?: string;
5907
+ /** Default: `/.well-known/ucp` on the origin of `profile.endpoint`. */
5908
+ businessProfileUrl?: string;
5909
+ attempts?: number;
5910
+ fetch?: typeof fetch;
5911
+ /** Delivery outcome of the background sends. */
5912
+ onResult?: (r: {
5913
+ ok: boolean;
5914
+ status: number;
5915
+ attempts: number;
5916
+ }, order: UcpOrder) => void;
5917
+ };
5746
5918
  }
5747
5919
  declare function createUcpCheckoutKit(opts: UcpCheckoutKitOptions): {
5748
- handle: (req: Request) => Promise<Response>;
5920
+ handle: (req: Request, reqCtx?: KitRequestContext) => Promise<Response>;
5749
5921
  profile: UcpProfile;
5750
5922
  profileHandler: () => Response;
5923
+ resolvePending: (sessionId: string, outcome: PendingResolution) => Promise<CheckoutSession | null>;
5924
+ sendOrderWebhook: (sessionId: string) => Promise<{
5925
+ ok: boolean;
5926
+ status: number;
5927
+ attempts: number;
5928
+ } | null>;
5751
5929
  };
5752
5930
 
5753
5931
  /** RFC 8785-style canonical JSON (sorted keys, no whitespace). */
@@ -5841,6 +6019,7 @@ interface MppChallenge {
5841
6019
  expires?: string;
5842
6020
  digest?: string;
5843
6021
  description?: string;
6022
+ /** base64url (no padding) of the canonical JSON correlation map (mppx `meta`). */
5844
6023
  opaque?: string;
5845
6024
  header?: 'Payment-Authorization';
5846
6025
  }
@@ -5862,14 +6041,75 @@ interface MppReceipt {
5862
6041
  */
5863
6042
  declare function buildMppChallenge(input: Omit<MppChallenge, 'id' | 'request'> & {
5864
6043
  request: Record<string, unknown>;
6044
+ /** 5.18.0: correlation data, encoded into `opaque` (mppx `meta`). */
6045
+ meta?: Record<string, string>;
5865
6046
  }, hmacSecret: string): {
5866
6047
  challenge: MppChallenge;
5867
6048
  header: string;
5868
6049
  };
5869
6050
  /** Decode `Authorization: Payment <…>` (or Payment-Authorization). */
5870
6051
  declare function parseMppCredential(header: string | null | undefined): MppCredential | null;
6052
+ /**
6053
+ * 5.18.0: remembers which challenges were already redeemed, so a credential
6054
+ * is accepted once. `consume` returns true the first time an id is seen
6055
+ * (atomically, e.g. Redis `SET NX PX`) and false after; `expiresAt` (epoch
6056
+ * ms) says how long the id must be kept.
6057
+ */
6058
+ interface MppChallengeStore {
6059
+ consume(id: string, expiresAt: number): Promise<boolean>;
6060
+ }
6061
+ /** In-process {@link MppChallengeStore} (single instance / tests). */
6062
+ declare class MemoryMppChallengeStore implements MppChallengeStore {
6063
+ /** Kept this long when the challenge has no `expires`. Default 1 h. */
6064
+ private defaultTtlMs;
6065
+ private now;
6066
+ private seen;
6067
+ constructor(
6068
+ /** Kept this long when the challenge has no `expires`. Default 1 h. */
6069
+ defaultTtlMs?: number, now?: () => number);
6070
+ consume(id: string, expiresAt: number): Promise<boolean>;
6071
+ }
6072
+ interface MppVerifyOptions {
6073
+ now?: Date;
6074
+ /**
6075
+ * The request body the credential was sent with. Required when the
6076
+ * challenge carries a `digest` (`sha-256=<base64 SHA-256 of the body>`).
6077
+ */
6078
+ body?: string | Uint8Array;
6079
+ /** Accept each challenge once (see {@link MppChallengeStore}). */
6080
+ store?: MppChallengeStore;
6081
+ }
6082
+ type MppVerifyResult = {
6083
+ ok: true;
6084
+ } | {
6085
+ ok: false;
6086
+ reason: 'invalid_id' | 'expired' | 'body_required' | 'digest_mismatch' | 'already_used';
6087
+ };
6088
+ /** `sha-256=<base64>` of a body (the MPP `digest` parameter). */
6089
+ declare function mppBodyDigest(body: string | Uint8Array): string;
5871
6090
  /** True when the echoed challenge is one this server issued (and isn't expired). */
5872
6091
  declare function verifyMppChallenge(challenge: MppChallenge, hmacSecret: string, now?: Date): boolean;
6092
+ /**
6093
+ * 5.18.0: the full check — issued here, not expired, the body matches the
6094
+ * challenge `digest`, and (with `store`) not redeemed before. The challenge
6095
+ * is consumed only when every other check passed.
6096
+ */
6097
+ declare function verifyMppChallenge(challenge: MppChallenge, hmacSecret: string, options: MppVerifyOptions): Promise<MppVerifyResult>;
6098
+ /**
6099
+ * 5.18.0: the 402 response carrying one or more challenges — one
6100
+ * `WWW-Authenticate` per offered method, `Cache-Control: no-store` (a
6101
+ * challenge is single-use), and an RFC 9457 problem body.
6102
+ */
6103
+ declare function buildMpp402Response(challenges: string | {
6104
+ header: string;
6105
+ } | Array<string | {
6106
+ header: string;
6107
+ }>, problem?: {
6108
+ title?: string;
6109
+ detail?: string;
6110
+ type?: string;
6111
+ instance?: string;
6112
+ }): Response;
5873
6113
  /** The decoded method request from a challenge. */
5874
6114
  declare function decodeMppRequest(challenge: MppChallenge): Record<string, unknown> | null;
5875
6115
  /** `Payment-Receipt` header value — 2xx responses only. */
@@ -6064,6 +6304,8 @@ declare function aepPublicKeyDocument(keys: Array<{
6064
6304
  };
6065
6305
 
6066
6306
  declare const ACP_API_VERSION = "2026-04-17";
6307
+ /** 5.18.0: `API-Version` values this kit serves. */
6308
+ declare const ACP_SUPPORTED_API_VERSIONS: readonly string[];
6067
6309
  type AcpStatus = 'not_ready_for_payment' | 'ready_for_payment' | 'pending_approval' | 'complete_in_progress' | 'completed' | 'canceled';
6068
6310
  interface AcpMessage {
6069
6311
  type: 'error' | 'info' | 'warning';
@@ -6099,9 +6341,27 @@ interface AcpCheckoutSession {
6099
6341
  messages: AcpMessage[];
6100
6342
  continue_url?: string;
6101
6343
  order?: Record<string, unknown>;
6344
+ /** 5.18.0: hashed caller scope (was the raw Authorization header). */
6102
6345
  _caller?: string;
6103
6346
  _astraCheckoutSessionId?: string;
6347
+ /** 5.18.0: a settlement the processor hasn't confirmed yet (see `resolvePending`). */
6348
+ _pending?: {
6349
+ orderId?: string;
6350
+ report: {
6351
+ amountMinor: number;
6352
+ currency: string;
6353
+ };
6354
+ result: VerificationResult;
6355
+ };
6356
+ }
6357
+ /** 5.18.0: the ACP kit's session store (`claim` and the memory default as in the UCP kit). */
6358
+ interface AcpCheckoutStore {
6359
+ get(id: string): Promise<AcpCheckoutSession | null>;
6360
+ put(s: AcpCheckoutSession): Promise<void>;
6361
+ /** Atomic compare-and-set of `status` (see the UCP `CheckoutStore.claim`). */
6362
+ claim?(id: string, from: AcpStatus, to: AcpStatus): Promise<boolean>;
6104
6363
  }
6364
+ type AcpCheckoutStatus = AcpStatus;
6105
6365
  interface AcpCheckoutKitOptions {
6106
6366
  currency: string;
6107
6367
  /** Payment handlers you accept (endpoint paymentHandlers), e.g. ['ai.astrasync.voucher']. */
@@ -6130,17 +6390,135 @@ interface AcpCheckoutKitOptions {
6130
6390
  }>;
6131
6391
  /** Base path the kit is mounted at (default ''). */
6132
6392
  basePath?: string;
6133
- store?: {
6134
- get(id: string): Promise<AcpCheckoutSession | null>;
6135
- put(s: AcpCheckoutSession): Promise<void>;
6136
- };
6393
+ store?: AcpCheckoutStore;
6137
6394
  idempotencyStore?: IdempotencyStore;
6138
6395
  fallbackContinueUrl?: string;
6396
+ /**
6397
+ * 5.18.0: the caller's verified ASTRA-id for scoping sessions and
6398
+ * idempotency keys (default: `ctx.callerId`, then Authorization, then X-Astra-Id).
6399
+ */
6400
+ resolveCallerId?: (req: Request) => string | undefined | Promise<string | undefined>;
6401
+ /** 5.18.0: `permalink_url` = `${permalinkBase}/${orderId}` when `fulfil` returns none. */
6402
+ permalinkBase?: string;
6403
+ }
6404
+ /** 5.18.0: inputs for {@link buildAcpWellKnown}. */
6405
+ interface AcpWellKnownOptions {
6406
+ /** Absolute base URL the checkout routes are served under. */
6407
+ endpoint: string;
6408
+ /** Payment handlers you accept, e.g. ['ai.astrasync.voucher']. */
6409
+ paymentHandlers: string[];
6410
+ /** Default {@link ACP_SUPPORTED_API_VERSIONS}. */
6411
+ apiVersions?: readonly string[];
6412
+ /** Policy links (terms of use, privacy, …). */
6413
+ links?: Array<{
6414
+ type: string;
6415
+ url: string;
6416
+ title?: string;
6417
+ }>;
6139
6418
  }
6419
+ /** The `capabilities.payment.handlers` entries for AstraSync handler names. */
6420
+ declare function acpPaymentHandlers(names: string[]): {
6421
+ id: string;
6422
+ name: string;
6423
+ version: string;
6424
+ spec: string;
6425
+ requires_delegate_payment: boolean;
6426
+ requires_pci_compliance: boolean;
6427
+ psp: string;
6428
+ config_schema: string;
6429
+ instrument_schemas: never[];
6430
+ config: {};
6431
+ display_order: number;
6432
+ }[];
6433
+ /**
6434
+ * 5.18.0: a discovery document for your ACP endpoint (serve it at e.g.
6435
+ * `/.well-known/acp.json`): the API versions you speak, where the checkout
6436
+ * routes live, and the payment handlers you accept.
6437
+ */
6438
+ declare function buildAcpWellKnown(opts: AcpWellKnownOptions): {
6439
+ links?: {
6440
+ type: string;
6441
+ url: string;
6442
+ title?: string;
6443
+ }[] | undefined;
6444
+ protocol: "acp";
6445
+ api_versions: string[];
6446
+ endpoint: string;
6447
+ capabilities: {
6448
+ payment: {
6449
+ handlers: {
6450
+ id: string;
6451
+ name: string;
6452
+ version: string;
6453
+ spec: string;
6454
+ requires_delegate_payment: boolean;
6455
+ requires_pci_compliance: boolean;
6456
+ psp: string;
6457
+ config_schema: string;
6458
+ instrument_schemas: never[];
6459
+ config: {};
6460
+ display_order: number;
6461
+ }[];
6462
+ };
6463
+ };
6464
+ };
6140
6465
  declare function createAcpCheckoutKit(opts: AcpCheckoutKitOptions): {
6141
- handle: (req: Request) => Promise<Response>;
6466
+ handle: (req: Request, reqCtx?: KitRequestContext) => Promise<Response>;
6467
+ resolvePending: (sessionId: string, outcome: PendingResolution) => Promise<AcpCheckoutSession | null>;
6142
6468
  };
6143
6469
 
6470
+ /**
6471
+ * 5.18.0 — mount a fetch-style checkout kit (`createUcpCheckoutKit`,
6472
+ * `createAcpCheckoutKit`) on Express.
6473
+ *
6474
+ * app.use('/ucp/v1', express.raw({ type: '*\/*' }), expressHandler(ucpKit));
6475
+ *
6476
+ * The kit checks RFC 9421 signatures and Content-Digest / idempotency
6477
+ * fingerprints over the EXACT request bytes, so give it the raw body: mount
6478
+ * `express.raw()` on the kit's routes (req.body is a Buffer), or keep a copy
6479
+ * on `req.rawBody` (Buffer or string) in your JSON parser's `verify` hook.
6480
+ * A body that was already parsed to an object is re-serialised with
6481
+ * JSON.stringify — fine for unsigned traffic, but signatures won't verify.
6482
+ *
6483
+ * When the AstraSync middleware ran first, the caller's verified ASTRA-id
6484
+ * (`req.agentVerification.agent.astraId`) scopes sessions and idempotency
6485
+ * keys; override with `callerId`.
6486
+ */
6487
+
6488
+ /** Anything with a fetch-style `handle` (both checkout kits). */
6489
+ interface FetchKit {
6490
+ handle(req: Request, ctx?: KitRequestContext): Promise<Response>;
6491
+ }
6492
+ /** The parts of an Express request this adapter reads. */
6493
+ interface KitExpressRequest {
6494
+ method: string;
6495
+ protocol?: string;
6496
+ originalUrl?: string;
6497
+ url: string;
6498
+ headers: Record<string, string | string[] | undefined>;
6499
+ body?: unknown;
6500
+ rawBody?: unknown;
6501
+ get?(name: string): string | undefined;
6502
+ agentVerification?: {
6503
+ identityVerified?: boolean;
6504
+ agent?: {
6505
+ astraId?: string;
6506
+ };
6507
+ };
6508
+ }
6509
+ /** The parts of an Express response this adapter writes. */
6510
+ interface KitExpressResponse {
6511
+ status(code: number): unknown;
6512
+ setHeader(name: string, value: string | string[]): unknown;
6513
+ end(body?: unknown): unknown;
6514
+ }
6515
+ interface ExpressHandlerOptions {
6516
+ /** The caller's verified ASTRA-id (default: from `req.agentVerification` when identity-verified). */
6517
+ callerId?: (req: KitExpressRequest) => string | undefined;
6518
+ }
6519
+ /** An Express handler that runs a checkout kit and writes its Response back. */
6520
+ declare function expressHandler(kit: FetchKit, options?: ExpressHandlerOptions): (req: KitExpressRequest, res: KitExpressResponse, next: (err?: unknown) => void) => Promise<void>;
6521
+
6144
6522
  interface IssueDelegateOptions {
6145
6523
  /** The mandate object (e.g. `{ vct: 'mandate.checkout.1', … }`). */
6146
6524
  mandate: Record<string, unknown>;
@@ -6388,4 +6766,4 @@ declare function contentDigest(body: string): string;
6388
6766
  */
6389
6767
  declare function signHttpRequest(req: SignableRequest, opts: SignHttpRequestOptions): Promise<Record<string, string>>;
6390
6768
 
6391
- export { ACP_API_VERSION, AEP_SPEC_VERSION, AP2_VCT, type AcpCheckoutKitOptions, type AcpCheckoutSession, type AepActorType, type AepArtifactRecord, type AepArtifactType, AepChain, type AepChainOptions, type AepChainVerification, type AepHashInput, AgentClient, type AgentCredentials, type AgentProtocol, type AgentProtocolIdentities, type AgentRecord, type Ap2Party, type Ap2VerifyResult, AstraSync, type AstraSyncAepEvidence, type AstraSyncConfig, type AstraSyncCredentials, AstraSyncError, type AstraSyncMandates, type AttemptOutcome, type AttemptReport, AuthenticationError, type BuildGuidanceParams, CAPTURE_SCHEMA_VERSION, type CallerMetadata, ChallengeHandler, type CommerceArtifactsPayload, type CommerceContext, type CommercePipelineInput, type CommerceShieldProps, type ConsiderationItem, type ConsiderationSet, type CounterpartyType, DECLARED_SOURCE_MAX, DEFAULT_EDGE_CONFIG, DEFAULT_IDEMPOTENCY_TTL_MS, type DynamicPlatformFingerprint, type EdgeConfig, type EdgeMode, type EdgePathRule, type EdgeVerificationDepth, type EnhancedVerificationResult, type ExpressMiddlewareOptions, type FetchEdgeConfigResult, type FetchEdgeConfigSuccess, type FiatSettlementBinding, type FrameworkConfig, type FulfilmentInfo, type GatewayConfig, type GuidanceEnvelope, type GuidanceInfo, type HealthResponse, type HttpSignatureAlgorithm, type IdempotencyOptions, type IdempotencyRecord, type IdempotencyStore, KYDRequiredError, type KyaPayIdentity, type KyaPayResult, type KyaPayTokenType, type KyaPayVerifyOptions, type ParseResult as LocalPolicyParseResult, type ValidationError as LocalPolicyValidationError, type ValidationResult as LocalPolicyValidationResult, MAX_HEADERS, MAX_HEADER_VALUE_BYTES, MAX_TOTAL_BYTES, MCP_VERIFIED_HOP_HEADER, MCP_VERIFIED_HOP_MAX_AGE_MS, type McpMiddlewareOptions, MemoryCheckoutStore, MemoryIdempotencyStore, type MerchantSettlementToken, type ModelConfig, type MppChallenge, type MppCredential, type MppReceipt, type NegotiationResult, type NextJsMiddlewareOptions, type ObservedMetadata, type PDLSSConfig$1 as PDLSSConfig, type PDLSSDuration, type PDLSSInfo, type PDLSSLimits, type PDLSSPurpose, type PDLSSScope, type PDLSSSelfInstantiation, PLATFORM_AGENT_SIGNATURES, type PendingRegistrationResponse, type PlatformAgentVendor, type PlatformDetectionInput, type PlatformFingerprint, type PlatformSignatureDef, type PollRegistrationResult, type ProtocolTransport, RUNTIME_SIGNATURES, RedisIdempotencyStore, type RedisLike, type RegisterOptions, type RegisterResult, RegistrationDeniedError, RegistrationExpiredError, type RegistrationResponse, RegistrationTimeoutError, type ReportAttemptOptions, type RootKeyResolver, type RouteAccessConfig, type RoutePolicy, type RuntimeChallengeResult, type RuntimeSignature, type SDKOptions, SDK_USER_AGENT, type SanitizeHeadersResult, type SettlementArtifact, type SettlementArtifactBinding, type SettlementArtifactBindingBase, type SettlementDecision, type SettlementOutcomeInfo, SettlementReportError, type SettlementRequest, type SignHttpRequestOptions, type SignableRequest, type StablecoinSettlementBinding, type StepUpApprovalInfo, type StepUpApprovalStatus, type StepUpOutcome, TRUST_LEVEL_RANGES, type TokenGuidance, type ToolGate, type ToolGateConfig, type TrustLevel, UCP_VERSION, type UcpAgentBinding, type CatalogItem as UcpCatalogItem, type UcpCheckoutKitOptions, type CheckoutSession as UcpCheckoutSession, type CheckoutStore as UcpCheckoutStore, type UcpMessage, type UcpProfile, type UcpProfileResult, type SettleResult as UcpSettleResult, type UcpSeverity, type UcpSignatureResult, VERIFICATION_STATUS_HEADER, SDK_VERSION as VERSION, type VerificationInterstitialProps, type VerificationRequest, type VerificationResult, type VerifiedAgent, type VerifiedDeveloper, type VerifiedHopMarker, type VerifiedOrganization, type VerifyAp2Options, type VerifyOptions, type VerifyResponse, type WaitForApprovalOptions, type WellKnownAgenticCommerce, type X402PaymentPayload, type X402PaymentRequired, type X402PaymentRequirements, type X402ResourceInfo, type X402SettlementResponse, _resetEdgeConfigCache, aepCanonicalJson, aepHash, aepPrivateKeyFromSeed, aepPublicKeyDocument, aepPublicKeyFromBase64, aepRawPublicKey, aepSign, aepTimestamp, aepVerifySignature, index as agent, astrasyncPaymentHandlers, authorizeSettlement, awaitStepUpApproval, beginIdempotent, buildGuidance, buildMppChallenge, buildSdkObservedMetadata, buildUcpProfile, buildVerificationUnavailableBody, buildX402Challenge, canonicalJson, checkUcpAgentBinding, checkoutHash, clearCache, closedCheckoutMandate, closedPaymentMandate, contentDigest, createAcpCheckoutKit, createKbHop, createMcpMiddleware, createUcpCheckoutKit, decodeMppRequest, degradeToObserve, denyStatusFor, deriveConnectionFromHeaders, detectPlatformFingerprint, detectRuntime, encodeMppReceipt, encodeX402SettlementResponse, express, extractApiKeyFormat, extractCredentials, extractMcpCredentials, extractPlatformHeaders, fetchEdgeConfig, fetchRoutes, fetchUcpProfile, finishIdempotent, getCachedWellKnownUrls, getEdgeConfig, getTrustLevel, getWellKnownUrls, hasCredentials, idempotencyMiddleware, isEdgeConfig, isRejectedIdentityClaim, isRetryableSettlementError, isSpecialUseIp, isVerificationUnavailable, isVerifiedHopValidFor, issueDelegateSdJwt, matchEdgePathRule, matchPlatformSignature, matchRoutePattern, negotiateUcp, nextjs, normalizeDeclaredSource, openCheckoutMandate, openPaymentMandate, parseYaml as parseLocalPolicyYaml, parseMppCredential, parseUcpAgentHeader, parseVerifiedHop, parseX402Challenge, parseX402Payment, pollStepUpStatus, prefetchWellKnown, quickVerify, recordDecision, reportAttempt, reportUnregisteredAttempt, requestFingerprint, rootMandateDigest, routePatternToRegExp, routePolicyOf, sanitizeHeaders, sdk, sdkFetch, sendUcpWebhook, serializeVerifiedHop, setMcpMeta, signHttpRequest, signRootMandate, signUcpRequest, signUcpResponse, index$1 as transport, ucpError, ucpEscalation, ucpFailure, ucpProfileHandler, ucpRequiredComponents, unavailableRetryAfterSeconds, validatePolicy as validateLocalPolicy, verify, verifyAepChain, verifyAp2Mandate, verifyDelegateChain, verifyKyaPayTokens, verifyMppChallenge, verifyUcpRequest, withIdempotency, x402PaymentMatchesOffer };
6769
+ export { ACP_API_VERSION, ACP_SUPPORTED_API_VERSIONS, AEP_SPEC_VERSION, AP2_VCT, type AcpCheckoutKitOptions, type AcpCheckoutSession, type AcpCheckoutStatus, type AcpCheckoutStore, type AcpWellKnownOptions, type AepActorType, type AepArtifactRecord, type AepArtifactType, AepChain, type AepChainOptions, type AepChainVerification, type AepHashInput, AgentClient, type AgentCredentials, type AgentProtocol, type AgentProtocolIdentities, type AgentRecord, type Ap2Party, type Ap2VerifyResult, AstraSync, type AstraSyncAepEvidence, type AstraSyncConfig, type AstraSyncCredentials, AstraSyncError, type AstraSyncMandates, type AttemptOutcome, type AttemptReport, AuthenticationError, type BuildGuidanceParams, CAPTURE_SCHEMA_VERSION, type CallerMetadata, ChallengeHandler, type CommerceArtifactsPayload, type CommerceContext, type CommercePipelineInput, type CommerceShieldProps, type ConsiderationItem, type ConsiderationSet, type CounterpartyType, DECLARED_SOURCE_MAX, DEFAULT_EDGE_CONFIG, DEFAULT_IDEMPOTENCY_TTL_MS, type DynamicPlatformFingerprint, type EdgeConfig, type EdgeMode, type EdgePathRule, type EdgeVerificationDepth, type EnhancedVerificationResult, type ExpressHandlerOptions, type ExpressMiddlewareOptions, type FetchEdgeConfigResult, type FetchEdgeConfigSuccess, type FetchKit, type FiatSettlementBinding, type FrameworkConfig, type FulfilmentInfo, type GatewayConfig, type GuidanceEnvelope, type GuidanceInfo, type HealthResponse, type HttpSignatureAlgorithm, type IdempotencyOptions, type IdempotencyRecord, type IdempotencyStore, KYDRequiredError, type KitExpressRequest, type KitExpressResponse, type KitRequestContext, type KyaPayIdentity, type KyaPayResult, type KyaPayTokenType, type KyaPayVerifyOptions, type ParseResult as LocalPolicyParseResult, type ValidationError as LocalPolicyValidationError, type ValidationResult as LocalPolicyValidationResult, MAX_HEADERS, MAX_HEADER_VALUE_BYTES, MAX_TOTAL_BYTES, MCP_VERIFIED_HOP_HEADER, MCP_VERIFIED_HOP_MAX_AGE_MS, type McpMiddlewareOptions, MemoryCheckoutStore, MemoryIdempotencyStore, MemoryMppChallengeStore, type MerchantSettlementToken, type ModelConfig, type MppChallenge, type MppChallengeStore, type MppCredential, type MppReceipt, type MppVerifyOptions, type MppVerifyResult, type NegotiationResult, type NextJsMiddlewareOptions, type ObservedMetadata, type PDLSSConfig$1 as PDLSSConfig, type PDLSSDuration, type PDLSSInfo, type PDLSSLimits, type PDLSSPurpose, type PDLSSScope, type PDLSSSelfInstantiation, PLATFORM_AGENT_SIGNATURES, type PendingRegistrationResponse, type PendingResolution, type PlatformAgentVendor, type PlatformDetectionInput, type PlatformFingerprint, type PlatformSignatureDef, type PollRegistrationResult, type ProtocolTransport, RUNTIME_SIGNATURES, RedisIdempotencyStore, type RedisLike, type RegisterOptions, type RegisterResult, RegistrationDeniedError, RegistrationExpiredError, type RegistrationResponse, RegistrationTimeoutError, type ReportAttemptOptions, type RootKeyResolver, type RouteAccessConfig, type RoutePolicy, type RuntimeChallengeResult, type RuntimeSignature, type SDKOptions, SDK_USER_AGENT, type SanitizeHeadersResult, type SettlementArtifact, type SettlementArtifactBinding, type SettlementArtifactBindingBase, type SettlementDecision, type SettlementOutcomeInfo, SettlementReportError, type SettlementRequest, type SignHttpRequestOptions, type SignableRequest, type StablecoinSettlementBinding, type StepUpApprovalInfo, type StepUpApprovalStatus, type StepUpOutcome, TRUST_LEVEL_RANGES, type TokenGuidance, type ToolGate, type ToolGateConfig, type TrustLevel, UCP_ORDER_CAPABILITY, UCP_VERSION, type UcpAgentBinding, type CatalogItem as UcpCatalogItem, type UcpCheckoutKitOptions, type CheckoutSession as UcpCheckoutSession, type CheckoutStore as UcpCheckoutStore, type UcpLink, type UcpMessage, type UcpOrder, type UcpProfile, type UcpProfileResult, type SettleResult as UcpSettleResult, type UcpSeverity, type UcpSignatureResult, VERIFICATION_STATUS_HEADER, SDK_VERSION as VERSION, type VerificationInterstitialProps, type VerificationRequest, type VerificationResult, type VerifiedAgent, type VerifiedDeveloper, type VerifiedHopMarker, type VerifiedOrganization, type VerifyAp2Options, type VerifyOptions, type VerifyResponse, type WaitForApprovalOptions, type WellKnownAgenticCommerce, type X402PaymentPayload, type X402PaymentRequired, type X402PaymentRequirements, type X402ResourceInfo, type X402SettlementResponse, _resetEdgeConfigCache, acpPaymentHandlers, aepCanonicalJson, aepHash, aepPrivateKeyFromSeed, aepPublicKeyDocument, aepPublicKeyFromBase64, aepRawPublicKey, aepSign, aepTimestamp, aepVerifySignature, index as agent, astrasyncPaymentHandlers, authorizeSettlement, awaitStepUpApproval, beginIdempotent, buildAcpWellKnown, buildGuidance, buildMpp402Response, buildMppChallenge, buildSdkObservedMetadata, buildUcpOrder, buildUcpProfile, buildVerificationUnavailableBody, buildX402Challenge, canonicalJson, checkUcpAgentBinding, checkoutHash, clearCache, closedCheckoutMandate, closedPaymentMandate, contentDigest, createAcpCheckoutKit, createKbHop, createMcpMiddleware, createUcpCheckoutKit, decodeMppRequest, degradeToObserve, denyStatusFor, deriveConnectionFromHeaders, detectPlatformFingerprint, detectRuntime, encodeMppReceipt, encodeX402SettlementResponse, express, expressHandler, extractApiKeyFormat, extractCredentials, extractMcpCredentials, extractPlatformHeaders, fetchEdgeConfig, fetchRoutes, fetchUcpProfile, finishIdempotent, getCachedWellKnownUrls, getEdgeConfig, getTrustLevel, getWellKnownUrls, hasCredentials, idempotencyMiddleware, isEdgeConfig, isRejectedIdentityClaim, isRetryableSettlementError, isSpecialUseIp, isVerificationUnavailable, isVerifiedHopValidFor, issueDelegateSdJwt, matchEdgePathRule, matchPlatformSignature, matchRoutePattern, mppBodyDigest, negotiateUcp, nextjs, normalizeDeclaredSource, openCheckoutMandate, openPaymentMandate, parseYaml as parseLocalPolicyYaml, parseMppCredential, parseUcpAgentHeader, parseVerifiedHop, parseX402Challenge, parseX402Payment, pollStepUpStatus, prefetchWellKnown, quickVerify, recordDecision, reportAttempt, reportUnregisteredAttempt, requestFingerprint, rootMandateDigest, routePatternToRegExp, routePolicyOf, sanitizeHeaders, sdk, sdkFetch, sendUcpWebhook, serializeVerifiedHop, setMcpMeta, signHttpRequest, signRootMandate, signUcpRequest, signUcpResponse, index$1 as transport, ucpError, ucpEscalation, ucpFailure, ucpProfileHandler, ucpRequiredComponents, unavailableRetryAfterSeconds, validatePolicy as validateLocalPolicy, verify, verifyAepChain, verifyAp2Mandate, verifyDelegateChain, verifyKyaPayTokens, verifyMppChallenge, verifyUcpRequest, withIdempotency, x402PaymentMatchesOffer };