@astrasyncai/verification-gateway 5.14.0 → 5.16.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 (100) hide show
  1. package/README.md +36 -18
  2. package/dist/adapters/express.d.mts +1 -1
  3. package/dist/adapters/express.d.ts +1 -1
  4. package/dist/adapters/express.js +492 -240
  5. package/dist/adapters/express.js.map +1 -1
  6. package/dist/adapters/express.mjs +492 -240
  7. package/dist/adapters/express.mjs.map +1 -1
  8. package/dist/adapters/mcp.d.mts +1 -1
  9. package/dist/adapters/mcp.d.ts +1 -1
  10. package/dist/adapters/mcp.js +23 -6
  11. package/dist/adapters/mcp.js.map +1 -1
  12. package/dist/adapters/mcp.mjs +23 -6
  13. package/dist/adapters/mcp.mjs.map +1 -1
  14. package/dist/adapters/nextjs.d.mts +1 -1
  15. package/dist/adapters/nextjs.d.ts +1 -1
  16. package/dist/adapters/nextjs.js +475 -239
  17. package/dist/adapters/nextjs.js.map +1 -1
  18. package/dist/adapters/nextjs.mjs +475 -239
  19. package/dist/adapters/nextjs.mjs.map +1 -1
  20. package/dist/adapters/sdk.d.mts +18 -10
  21. package/dist/adapters/sdk.d.ts +18 -10
  22. package/dist/adapters/sdk.js +83 -23
  23. package/dist/adapters/sdk.js.map +1 -1
  24. package/dist/adapters/sdk.mjs +83 -23
  25. package/dist/adapters/sdk.mjs.map +1 -1
  26. package/dist/agent/index.d.mts +69 -54
  27. package/dist/agent/index.d.ts +69 -54
  28. package/dist/agent/index.js +24 -14
  29. package/dist/agent/index.js.map +1 -1
  30. package/dist/agent/index.mjs +24 -14
  31. package/dist/agent/index.mjs.map +1 -1
  32. package/dist/bin/astrasync-claude-hook.js +58 -11
  33. package/dist/bin/astrasync-codex-hook.js +58 -11
  34. package/dist/bin/astrasync-guard.js +177 -11
  35. package/dist/bin/astrasync.js +433 -38
  36. package/dist/browser/background.js +53 -6
  37. package/dist/browser/background.js.map +1 -1
  38. package/dist/browser/background.mjs +63 -6
  39. package/dist/browser/background.mjs.map +1 -1
  40. package/dist/cli/index.js +1 -1
  41. package/dist/cli/index.js.map +1 -1
  42. package/dist/cli/index.mjs +1 -1
  43. package/dist/cli/index.mjs.map +1 -1
  44. package/dist/codex/index.js +58 -11
  45. package/dist/codex/index.js.map +1 -1
  46. package/dist/codex/index.mjs +68 -11
  47. package/dist/codex/index.mjs.map +1 -1
  48. package/dist/cursor/extension.js +58 -11
  49. package/dist/cursor/extension.js.map +1 -1
  50. package/dist/cursor/extension.mjs +68 -11
  51. package/dist/cursor/extension.mjs.map +1 -1
  52. package/dist/edge-config.d.mts +31 -2
  53. package/dist/edge-config.d.ts +31 -2
  54. package/dist/edge-config.js +35 -5
  55. package/dist/edge-config.js.map +1 -1
  56. package/dist/edge-config.mjs +32 -4
  57. package/dist/edge-config.mjs.map +1 -1
  58. package/dist/edge-core/index.d.mts +11 -2
  59. package/dist/edge-core/index.d.ts +11 -2
  60. package/dist/edge-core/index.js +97 -11
  61. package/dist/edge-core/index.js.map +1 -1
  62. package/dist/edge-core/index.mjs +95 -11
  63. package/dist/edge-core/index.mjs.map +1 -1
  64. package/dist/gateway/gateway.js +53 -6
  65. package/dist/gateway/gateway.js.map +1 -1
  66. package/dist/gateway/gateway.mjs +63 -6
  67. package/dist/gateway/gateway.mjs.map +1 -1
  68. package/dist/git-trigger/git-hooks.d.mts +1 -1
  69. package/dist/git-trigger/git-hooks.d.ts +1 -1
  70. package/dist/index.d.mts +1407 -88
  71. package/dist/index.d.ts +1407 -88
  72. package/dist/index.js +5148 -2616
  73. package/dist/index.js.map +1 -1
  74. package/dist/index.mjs +5094 -2618
  75. package/dist/index.mjs.map +1 -1
  76. package/dist/registration/index.d.mts +28 -2
  77. package/dist/registration/index.d.ts +28 -2
  78. package/dist/registration/index.js +18 -3
  79. package/dist/registration/index.js.map +1 -1
  80. package/dist/registration/index.mjs +15 -2
  81. package/dist/registration/index.mjs.map +1 -1
  82. package/dist/transport/index.d.mts +7 -5
  83. package/dist/transport/index.d.ts +7 -5
  84. package/dist/transport/index.js +61 -5
  85. package/dist/transport/index.js.map +1 -1
  86. package/dist/transport/index.mjs +67 -11
  87. package/dist/transport/index.mjs.map +1 -1
  88. package/dist/{types-BCkwBA84.d.mts → types-Blz520bR.d.mts} +116 -12
  89. package/dist/{types-BCkwBA84.d.ts → types-Blz520bR.d.ts} +116 -12
  90. package/dist/{types-C_b4QTyO.d.ts → types-Bm1QvGqI.d.ts} +114 -10
  91. package/dist/{types-DlshIIR-.d.mts → types-DBe4hgfT.d.mts} +114 -10
  92. package/dist/ui/index.d.mts +1 -1
  93. package/dist/ui/index.d.ts +1 -1
  94. package/dist/verify.d.mts +1 -1
  95. package/dist/verify.d.ts +1 -1
  96. package/dist/verify.js +23 -6
  97. package/dist/verify.js.map +1 -1
  98. package/dist/verify.mjs +23 -6
  99. package/dist/verify.mjs.map +1 -1
  100. package/package.json +1 -1
@@ -3748,7 +3748,7 @@ function getTrustLevel(score) {
3748
3748
  }
3749
3749
 
3750
3750
  // src/version.ts
3751
- var SDK_VERSION = "5.14.0";
3751
+ var SDK_VERSION = "5.16.0";
3752
3752
 
3753
3753
  // src/http.ts
3754
3754
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -3885,6 +3885,8 @@ function getCacheKey(request, counterpartyId) {
3885
3885
  request.durationRequired ?? "",
3886
3886
  request.invocationProtocol || "",
3887
3887
  request.enableRuntimeChallenge ? "1" : "0",
3888
+ // 5.16.0: route policy changes the verdict (owners / challenge).
3889
+ request.routePolicy ? JSON.stringify(request.routePolicy) : "",
3888
3890
  // callerMetadata fields contribute to risk model; include the ones
3889
3891
  // backend reads. sourceIp/userAgent/forwardedFor change per-request
3890
3892
  // so their inclusion effectively forces a re-check for any varying
@@ -4057,6 +4059,7 @@ async function callVerifyAccessAPI(config, request) {
4057
4059
  if (requestData.subAgentDepth !== void 0) body.subAgentDepth = requestData.subAgentDepth;
4058
4060
  if (requestData.enableRuntimeChallenge)
4059
4061
  body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
4062
+ if (requestData.routePolicy) body.routePolicy = requestData.routePolicy;
4060
4063
  if (requestData.createSession) body.createSession = requestData.createSession;
4061
4064
  if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
4062
4065
  if (requestData.counterpartyType) body.counterpartyType = requestData.counterpartyType;
@@ -4067,6 +4070,7 @@ async function callVerifyAccessAPI(config, request) {
4067
4070
  if (requestData.invocationProtocol) body.invocationProtocol = requestData.invocationProtocol;
4068
4071
  if (requestData.commercePhase) body.commercePhase = requestData.commercePhase;
4069
4072
  if (requestData.checkoutSessionId) body.checkoutSessionId = requestData.checkoutSessionId;
4073
+ if (requestData.checkoutJwt) body.checkoutJwt = requestData.checkoutJwt;
4070
4074
  if (requestData.checkoutItems) body.checkoutItems = requestData.checkoutItems;
4071
4075
  if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
4072
4076
  if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
@@ -4217,7 +4221,8 @@ async function verify(config, request, options) {
4217
4221
  "[VerificationGateway] minTrustScore / minTrustScoreForFull are deprecated in v2.3.0 and have no effect. Server is now the single source of truth for access decisions (verified ID + runtime challenge + PDLSS + trust score). To gate access to an endpoint, configure the endpoint's trust_score_requirement server-side."
4218
4222
  );
4219
4223
  }
4220
- if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache) {
4224
+ const uncacheable = Boolean(request.commerceArtifacts);
4225
+ if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4221
4226
  const cached = getCachedResult(request, mergedConfig.counterpartyId);
4222
4227
  if (cached) {
4223
4228
  if (mergedConfig.debug) {
@@ -4298,7 +4303,10 @@ async function verify(config, request, options) {
4298
4303
  // MERCHANT caller only (bridge callers strip it before the agent plane).
4299
4304
  settlementToken: apiResponse.settlementToken,
4300
4305
  // 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
4301
- fulfilment: apiResponse.fulfilment
4306
+ fulfilment: apiResponse.fulfilment,
4307
+ mandates: apiResponse.mandates,
4308
+ kyaToken: apiResponse.kyaToken,
4309
+ aep: apiResponse.aep
4302
4310
  };
4303
4311
  return result2;
4304
4312
  }
@@ -4308,7 +4316,10 @@ async function verify(config, request, options) {
4308
4316
  trustScore: apiResponse.agent.trustScore,
4309
4317
  trustLevel: getTrustLevel(apiResponse.agent.trustScore),
4310
4318
  blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
4311
- status: apiResponse.agent.agentStatus
4319
+ status: apiResponse.agent.agentStatus,
4320
+ ...apiResponse.agent.protocolIdentities && {
4321
+ protocolIdentities: apiResponse.agent.protocolIdentities
4322
+ }
4312
4323
  } : void 0;
4313
4324
  const developer = apiResponse.developer ? {
4314
4325
  astradId: apiResponse.developer.kyaOwnerId,
@@ -4359,7 +4370,11 @@ async function verify(config, request, options) {
4359
4370
  settlementOutcome: apiResponse.settlementOutcome,
4360
4371
  settlementToken: apiResponse.settlementToken,
4361
4372
  // 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
4362
- fulfilment: apiResponse.fulfilment
4373
+ fulfilment: apiResponse.fulfilment,
4374
+ // 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
4375
+ mandates: apiResponse.mandates,
4376
+ kyaToken: apiResponse.kyaToken,
4377
+ aep: apiResponse.aep
4363
4378
  };
4364
4379
  if (result.recommendation === "deny") {
4365
4380
  result.policyAllowed = false;
@@ -4379,7 +4394,9 @@ async function verify(config, request, options) {
4379
4394
  }
4380
4395
  const escalates = result.requiresStepUp === true || result.requiresApproval === true || result.recommendation === "step_up_required";
4381
4396
  if (mergedConfig.cacheTtl !== 0 && result.recommendation !== "deny" && !escalates) {
4382
- cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4397
+ if (!uncacheable) {
4398
+ cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4399
+ }
4383
4400
  }
4384
4401
  return result;
4385
4402
  }
@@ -4390,6 +4407,9 @@ var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
4390
4407
  // src/metadata-capture.ts
4391
4408
  var MAX_TOTAL_BYTES = 16 * 1024;
4392
4409
 
4410
+ // src/adapters/commerce-detect.ts
4411
+ var MAX_BODY_BYTES = 64 * 1024;
4412
+
4393
4413
  // src/edge-config.ts
4394
4414
  var DEFAULT_EDGE_CONFIG = Object.freeze({
4395
4415
  version: 1,
@@ -4699,6 +4719,33 @@ var import_node_crypto4 = require("crypto");
4699
4719
  // src/transport/registry/visa.ts
4700
4720
  var import_jose = require("jose");
4701
4721
 
4722
+ // src/ucp/profile.ts
4723
+ var UCP_VERSION = "2026-08-25";
4724
+ var SPEC = `https://ucp.dev/${UCP_VERSION}/specification`;
4725
+ var SCHEMAS = `https://ucp.dev/${UCP_VERSION}/schemas`;
4726
+
4727
+ // src/ucp/signatures.ts
4728
+ var import_http_message_signatures3 = require("http-message-signatures");
4729
+
4730
+ // src/http-signatures/sign.ts
4731
+ var import_http_message_signatures2 = require("http-message-signatures");
4732
+
4733
+ // src/ucp/checkout-kit.ts
4734
+ var import_jose3 = require("jose");
4735
+
4736
+ // src/mandates/sd-jwt.ts
4737
+ var import_jose2 = require("jose");
4738
+
4739
+ // src/idempotency/index.ts
4740
+ var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
4741
+
4742
+ // src/payments/kyapay.ts
4743
+ var import_jose4 = require("jose");
4744
+
4745
+ // src/aep/core.ts
4746
+ var ED25519_PKCS8_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
4747
+ var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
4748
+
4702
4749
  // src/gateway/modes/online.ts
4703
4750
  function toGatewayConfig(config) {
4704
4751
  return {