@astrasyncai/verification-gateway 5.18.1 → 5.19.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 (113) hide show
  1. package/CHANGELOG.md +149 -0
  2. package/README.md +168 -4
  3. package/dist/adapters/express.d.mts +9 -1
  4. package/dist/adapters/express.d.ts +9 -1
  5. package/dist/adapters/express.js +96 -37
  6. package/dist/adapters/express.js.map +1 -1
  7. package/dist/adapters/express.mjs +96 -37
  8. package/dist/adapters/express.mjs.map +1 -1
  9. package/dist/adapters/http-pdlss.d.mts +7 -1
  10. package/dist/adapters/http-pdlss.d.ts +7 -1
  11. package/dist/adapters/http-pdlss.js +18 -2
  12. package/dist/adapters/http-pdlss.js.map +1 -1
  13. package/dist/adapters/http-pdlss.mjs +16 -1
  14. package/dist/adapters/http-pdlss.mjs.map +1 -1
  15. package/dist/adapters/kit-express.d.mts +93 -1
  16. package/dist/adapters/kit-express.d.ts +93 -1
  17. package/dist/adapters/kit-express.js +181 -2
  18. package/dist/adapters/kit-express.js.map +1 -1
  19. package/dist/adapters/kit-express.mjs +180 -2
  20. package/dist/adapters/kit-express.mjs.map +1 -1
  21. package/dist/adapters/mcp.d.mts +80 -9
  22. package/dist/adapters/mcp.d.ts +80 -9
  23. package/dist/adapters/mcp.js +153 -5
  24. package/dist/adapters/mcp.js.map +1 -1
  25. package/dist/adapters/mcp.mjs +151 -5
  26. package/dist/adapters/mcp.mjs.map +1 -1
  27. package/dist/adapters/nextjs.d.mts +1 -1
  28. package/dist/adapters/nextjs.d.ts +1 -1
  29. package/dist/adapters/nextjs.js +41 -4
  30. package/dist/adapters/nextjs.js.map +1 -1
  31. package/dist/adapters/nextjs.mjs +41 -4
  32. package/dist/adapters/nextjs.mjs.map +1 -1
  33. package/dist/adapters/sdk.d.mts +44 -1
  34. package/dist/adapters/sdk.d.ts +44 -1
  35. package/dist/adapters/sdk.js +76 -2
  36. package/dist/adapters/sdk.js.map +1 -1
  37. package/dist/adapters/sdk.mjs +76 -2
  38. package/dist/adapters/sdk.mjs.map +1 -1
  39. package/dist/agent/index.js +1 -1
  40. package/dist/agent/index.js.map +1 -1
  41. package/dist/agent/index.mjs +1 -1
  42. package/dist/agent/index.mjs.map +1 -1
  43. package/dist/bin/astrasync-claude-hook.js +46 -6
  44. package/dist/bin/astrasync-codex-hook.js +46 -6
  45. package/dist/bin/astrasync-guard.js +46 -6
  46. package/dist/bin/astrasync.js +77 -5
  47. package/dist/browser/background.js +46 -6
  48. package/dist/browser/background.js.map +1 -1
  49. package/dist/browser/background.mjs +46 -6
  50. package/dist/browser/background.mjs.map +1 -1
  51. package/dist/cli/index.js +1 -1
  52. package/dist/cli/index.js.map +1 -1
  53. package/dist/cli/index.mjs +1 -1
  54. package/dist/cli/index.mjs.map +1 -1
  55. package/dist/codex/index.js +46 -6
  56. package/dist/codex/index.js.map +1 -1
  57. package/dist/codex/index.mjs +46 -6
  58. package/dist/codex/index.mjs.map +1 -1
  59. package/dist/cursor/extension.js +46 -6
  60. package/dist/cursor/extension.js.map +1 -1
  61. package/dist/cursor/extension.mjs +46 -6
  62. package/dist/cursor/extension.mjs.map +1 -1
  63. package/dist/edge-config.d.mts +1 -1
  64. package/dist/edge-config.d.ts +1 -1
  65. package/dist/edge-config.js +1 -1
  66. package/dist/edge-config.js.map +1 -1
  67. package/dist/edge-config.mjs +1 -1
  68. package/dist/edge-config.mjs.map +1 -1
  69. package/dist/edge-core/index.d.mts +1 -1
  70. package/dist/edge-core/index.d.ts +1 -1
  71. package/dist/edge-core/index.js +21 -2
  72. package/dist/edge-core/index.js.map +1 -1
  73. package/dist/edge-core/index.mjs +21 -2
  74. package/dist/edge-core/index.mjs.map +1 -1
  75. package/dist/gateway/gateway.js +46 -6
  76. package/dist/gateway/gateway.js.map +1 -1
  77. package/dist/gateway/gateway.mjs +46 -6
  78. package/dist/gateway/gateway.mjs.map +1 -1
  79. package/dist/git-trigger/git-hooks.d.mts +1 -1
  80. package/dist/git-trigger/git-hooks.d.ts +1 -1
  81. package/dist/index.d.mts +541 -29
  82. package/dist/index.d.ts +541 -29
  83. package/dist/index.js +1171 -183
  84. package/dist/index.js.map +1 -1
  85. package/dist/index.mjs +1157 -173
  86. package/dist/index.mjs.map +1 -1
  87. package/dist/registration/index.js +1 -1
  88. package/dist/registration/index.js.map +1 -1
  89. package/dist/registration/index.mjs +1 -1
  90. package/dist/registration/index.mjs.map +1 -1
  91. package/dist/transport/index.js +3 -2
  92. package/dist/transport/index.js.map +1 -1
  93. package/dist/transport/index.mjs +3 -2
  94. package/dist/transport/index.mjs.map +1 -1
  95. package/dist/{types-3ObBpsnf.d.mts → types-BoGjyon0.d.mts} +81 -2
  96. package/dist/{types-Cns4l8gX.d.mts → types-DqWPkiYl.d.mts} +90 -12
  97. package/dist/{types-Cns4l8gX.d.ts → types-DqWPkiYl.d.ts} +90 -12
  98. package/dist/{types-BoxZEYPS.d.ts → types-eWyZuz-3.d.ts} +81 -2
  99. package/dist/ui/index.d.mts +1 -1
  100. package/dist/ui/index.d.ts +1 -1
  101. package/dist/verify.d.mts +23 -2
  102. package/dist/verify.d.ts +23 -2
  103. package/dist/verify.js +23 -4
  104. package/dist/verify.js.map +1 -1
  105. package/dist/verify.mjs +23 -4
  106. package/dist/verify.mjs.map +1 -1
  107. package/dist/webhooks.d.mts +16 -3
  108. package/dist/webhooks.d.ts +16 -3
  109. package/dist/webhooks.js +24 -13
  110. package/dist/webhooks.js.map +1 -1
  111. package/dist/webhooks.mjs +24 -13
  112. package/dist/webhooks.mjs.map +1 -1
  113. package/package.json +1 -1
@@ -3722,7 +3722,7 @@ function getTrustLevel(score) {
3722
3722
  }
3723
3723
 
3724
3724
  // src/version.ts
3725
- var SDK_VERSION = "5.18.1";
3725
+ var SDK_VERSION = "5.19.0";
3726
3726
 
3727
3727
  // src/http.ts
3728
3728
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -3877,7 +3877,12 @@ function getCacheKey(request, counterpartyId) {
3877
3877
  // its start_checkout quote was served the cached quote-leg grant (no
3878
3878
  // settlementOutcome) and never reached the backend. Same F-A1-07 bug class.
3879
3879
  request.commercePhase || "",
3880
- request.checkoutSessionId || ""
3880
+ request.checkoutSessionId || "",
3881
+ // 5.19.0: a route_config purpose claim is checked server-side against
3882
+ // the stored rule for this method + path, so it changes the verdict.
3883
+ request.purposeSource || "",
3884
+ request.requestMethod || "",
3885
+ request.requestPath || ""
3881
3886
  ].join("|");
3882
3887
  }
3883
3888
  function getCachedResult(request, counterpartyId) {
@@ -4051,6 +4056,11 @@ async function callVerifyAccessAPI(config, request) {
4051
4056
  if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
4052
4057
  if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
4053
4058
  if (requestData.attemptId) body.attemptId = requestData.attemptId;
4059
+ if (requestData.purposeSource) body.purposeSource = requestData.purposeSource;
4060
+ if (requestData.agentArtifacts) body.agentArtifacts = requestData.agentArtifacts;
4061
+ if (requestData.metadata) body.metadata = requestData.metadata;
4062
+ if (requestData.requestMethod) body.requestMethod = requestData.requestMethod;
4063
+ if (requestData.requestPath) body.requestPath = requestData.requestPath;
4054
4064
  if (requestData.considerationSet) body.considerationSet = requestData.considerationSet;
4055
4065
  body.sdkVersion = SDK_VERSION;
4056
4066
  if (requestData.callerMetadata || requestData.clientIp || requestData.userAgent) {
@@ -4240,9 +4250,18 @@ async function verify(config, request, options) {
4240
4250
  if (!apiResponse.access?.allowed) {
4241
4251
  const aggregatedFailures = apiResponse.access?.failures;
4242
4252
  const idVerifiedFromBackend = apiResponse.verificationContext?.idVerified === true && !aggregatedFailures?.some((f) => REJECTED_IDENTITY_DIMENSIONS.has(f.dimension));
4253
+ const denyAgent = idVerifiedFromBackend && apiResponse.agent ? {
4254
+ astraId: apiResponse.agent.astraId,
4255
+ name: apiResponse.agent.name,
4256
+ trustScore: apiResponse.agent.trustScore,
4257
+ trustLevel: getTrustLevel(apiResponse.agent.trustScore),
4258
+ blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
4259
+ status: apiResponse.agent.agentStatus
4260
+ } : void 0;
4243
4261
  const result2 = {
4244
4262
  identityVerified: idVerifiedFromBackend,
4245
4263
  policyAllowed: false,
4264
+ ...denyAgent && { agent: denyAgent },
4246
4265
  // 3.6.0: the server now emits top-level denialReasons on every deny
4247
4266
  // path — prefer it verbatim; the failure-message reconstruction remains
4248
4267
  // as the fallback for older backends.
@@ -4388,6 +4407,9 @@ var MAX_TOTAL_BYTES = 16 * 1024;
4388
4407
  // src/adapters/commerce-detect.ts
4389
4408
  var MAX_BODY_BYTES = 64 * 1024;
4390
4409
 
4410
+ // src/adapters/routes-cache.ts
4411
+ var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
4412
+
4391
4413
  // src/edge-config.ts
4392
4414
  var DEFAULT_EDGE_CONFIG = Object.freeze({
4393
4415
  version: 1,
@@ -4629,9 +4651,6 @@ var BeaconBuffer = class {
4629
4651
  };
4630
4652
  var beaconBuffer = new BeaconBuffer();
4631
4653
 
4632
- // src/adapters/express.ts
4633
- var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
4634
-
4635
4654
  // src/adapters/nextjs.ts
4636
4655
  var DEFAULT_ROUTES_REFRESH_MS2 = 5 * 60 * 1e3;
4637
4656
 
@@ -4725,6 +4744,25 @@ import {
4725
4744
  // src/idempotency/index.ts
4726
4745
  var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
4727
4746
 
4747
+ // src/ucp/approval-events.ts
4748
+ var MemorySeenEvents = class {
4749
+ constructor(max = 1e4) {
4750
+ this.max = max;
4751
+ this.ids = /* @__PURE__ */ new Set();
4752
+ }
4753
+ async has(eventId) {
4754
+ return this.ids.has(eventId);
4755
+ }
4756
+ async add(eventId) {
4757
+ if (this.ids.size >= this.max) {
4758
+ const first = this.ids.values().next().value;
4759
+ if (first !== void 0) this.ids.delete(first);
4760
+ }
4761
+ this.ids.add(eventId);
4762
+ }
4763
+ };
4764
+ var defaultSeen = new MemorySeenEvents();
4765
+
4728
4766
  // src/payments/kyapay.ts
4729
4767
  import {
4730
4768
  createLocalJWKSet,
@@ -4769,7 +4807,9 @@ function toDecision(result) {
4769
4807
  if (result.identityVerified && result.policyAllowed) {
4770
4808
  return {
4771
4809
  recommendation: "ALLOW",
4772
- reason: result.agent?.trustScore ? `Verified (trust score ${result.agent.trustScore})` : "Verified",
4810
+ // 5.19.0: the score is on `trustScore` for the merchant; `reason` is
4811
+ // text a merchant may relay to the agent, so it never embeds the number.
4812
+ reason: "Verified",
4773
4813
  trustScore: result.agent?.trustScore,
4774
4814
  sessionId: "sessionId" in result ? result.sessionId : void 0
4775
4815
  };