@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
@@ -3988,7 +3988,7 @@ function getTrustLevel(score) {
3988
3988
  }
3989
3989
 
3990
3990
  // src/version.ts
3991
- var SDK_VERSION = "5.14.0";
3991
+ var SDK_VERSION = "5.16.0";
3992
3992
 
3993
3993
  // src/http.ts
3994
3994
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4125,6 +4125,8 @@ function getCacheKey(request, counterpartyId) {
4125
4125
  request.durationRequired ?? "",
4126
4126
  request.invocationProtocol || "",
4127
4127
  request.enableRuntimeChallenge ? "1" : "0",
4128
+ // 5.16.0: route policy changes the verdict (owners / challenge).
4129
+ request.routePolicy ? JSON.stringify(request.routePolicy) : "",
4128
4130
  // callerMetadata fields contribute to risk model; include the ones
4129
4131
  // backend reads. sourceIp/userAgent/forwardedFor change per-request
4130
4132
  // so their inclusion effectively forces a re-check for any varying
@@ -4297,6 +4299,7 @@ async function callVerifyAccessAPI(config, request) {
4297
4299
  if (requestData.subAgentDepth !== void 0) body.subAgentDepth = requestData.subAgentDepth;
4298
4300
  if (requestData.enableRuntimeChallenge)
4299
4301
  body.enableRuntimeChallenge = requestData.enableRuntimeChallenge;
4302
+ if (requestData.routePolicy) body.routePolicy = requestData.routePolicy;
4300
4303
  if (requestData.createSession) body.createSession = requestData.createSession;
4301
4304
  if (requestData.durationRequired) body.durationRequired = requestData.durationRequired;
4302
4305
  if (requestData.counterpartyType) body.counterpartyType = requestData.counterpartyType;
@@ -4307,6 +4310,7 @@ async function callVerifyAccessAPI(config, request) {
4307
4310
  if (requestData.invocationProtocol) body.invocationProtocol = requestData.invocationProtocol;
4308
4311
  if (requestData.commercePhase) body.commercePhase = requestData.commercePhase;
4309
4312
  if (requestData.checkoutSessionId) body.checkoutSessionId = requestData.checkoutSessionId;
4313
+ if (requestData.checkoutJwt) body.checkoutJwt = requestData.checkoutJwt;
4310
4314
  if (requestData.checkoutItems) body.checkoutItems = requestData.checkoutItems;
4311
4315
  if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
4312
4316
  if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
@@ -4457,7 +4461,8 @@ async function verify(config, request, options) {
4457
4461
  "[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."
4458
4462
  );
4459
4463
  }
4460
- if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache) {
4464
+ const uncacheable = Boolean(request.commerceArtifacts);
4465
+ if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache && !uncacheable) {
4461
4466
  const cached = getCachedResult(request, mergedConfig.counterpartyId);
4462
4467
  if (cached) {
4463
4468
  if (mergedConfig.debug) {
@@ -4538,7 +4543,10 @@ async function verify(config, request, options) {
4538
4543
  // MERCHANT caller only (bridge callers strip it before the agent plane).
4539
4544
  settlementToken: apiResponse.settlementToken,
4540
4545
  // 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
4541
- fulfilment: apiResponse.fulfilment
4546
+ fulfilment: apiResponse.fulfilment,
4547
+ mandates: apiResponse.mandates,
4548
+ kyaToken: apiResponse.kyaToken,
4549
+ aep: apiResponse.aep
4542
4550
  };
4543
4551
  return result2;
4544
4552
  }
@@ -4548,7 +4556,10 @@ async function verify(config, request, options) {
4548
4556
  trustScore: apiResponse.agent.trustScore,
4549
4557
  trustLevel: getTrustLevel(apiResponse.agent.trustScore),
4550
4558
  blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
4551
- status: apiResponse.agent.agentStatus
4559
+ status: apiResponse.agent.agentStatus,
4560
+ ...apiResponse.agent.protocolIdentities && {
4561
+ protocolIdentities: apiResponse.agent.protocolIdentities
4562
+ }
4552
4563
  } : void 0;
4553
4564
  const developer = apiResponse.developer ? {
4554
4565
  astradId: apiResponse.developer.kyaOwnerId,
@@ -4599,7 +4610,11 @@ async function verify(config, request, options) {
4599
4610
  settlementOutcome: apiResponse.settlementOutcome,
4600
4611
  settlementToken: apiResponse.settlementToken,
4601
4612
  // 5.6.0: fulfilment contact — merchant-only lane, same strip rule.
4602
- fulfilment: apiResponse.fulfilment
4613
+ fulfilment: apiResponse.fulfilment,
4614
+ // 5.15.0: merchant-lane AP2 mandates + KYAPay identity token.
4615
+ mandates: apiResponse.mandates,
4616
+ kyaToken: apiResponse.kyaToken,
4617
+ aep: apiResponse.aep
4603
4618
  };
4604
4619
  if (result.recommendation === "deny") {
4605
4620
  result.policyAllowed = false;
@@ -4619,7 +4634,9 @@ async function verify(config, request, options) {
4619
4634
  }
4620
4635
  const escalates = result.requiresStepUp === true || result.requiresApproval === true || result.recommendation === "step_up_required";
4621
4636
  if (mergedConfig.cacheTtl !== 0 && result.recommendation !== "deny" && !escalates) {
4622
- cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4637
+ if (!uncacheable) {
4638
+ cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
4639
+ }
4623
4640
  }
4624
4641
  return result;
4625
4642
  }
@@ -4630,6 +4647,9 @@ var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
4630
4647
  // src/metadata-capture.ts
4631
4648
  var MAX_TOTAL_BYTES = 16 * 1024;
4632
4649
 
4650
+ // src/adapters/commerce-detect.ts
4651
+ var MAX_BODY_BYTES = 64 * 1024;
4652
+
4633
4653
  // src/edge-config.ts
4634
4654
  var DEFAULT_EDGE_CONFIG = Object.freeze({
4635
4655
  version: 1,
@@ -4939,6 +4959,33 @@ var import_node_crypto4 = require("crypto");
4939
4959
  // src/transport/registry/visa.ts
4940
4960
  var import_jose = require("jose");
4941
4961
 
4962
+ // src/ucp/profile.ts
4963
+ var UCP_VERSION = "2026-08-25";
4964
+ var SPEC = `https://ucp.dev/${UCP_VERSION}/specification`;
4965
+ var SCHEMAS = `https://ucp.dev/${UCP_VERSION}/schemas`;
4966
+
4967
+ // src/ucp/signatures.ts
4968
+ var import_http_message_signatures3 = require("http-message-signatures");
4969
+
4970
+ // src/http-signatures/sign.ts
4971
+ var import_http_message_signatures2 = require("http-message-signatures");
4972
+
4973
+ // src/ucp/checkout-kit.ts
4974
+ var import_jose3 = require("jose");
4975
+
4976
+ // src/mandates/sd-jwt.ts
4977
+ var import_jose2 = require("jose");
4978
+
4979
+ // src/idempotency/index.ts
4980
+ var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
4981
+
4982
+ // src/payments/kyapay.ts
4983
+ var import_jose4 = require("jose");
4984
+
4985
+ // src/aep/core.ts
4986
+ var ED25519_PKCS8_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
4987
+ var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
4988
+
4942
4989
  // src/gateway/modes/online.ts
4943
4990
  function toGatewayConfig(config) {
4944
4991
  return {