@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
@@ -3748,7 +3748,7 @@ function getTrustLevel(score) {
3748
3748
  }
3749
3749
 
3750
3750
  // src/version.ts
3751
- var SDK_VERSION = "5.18.1";
3751
+ var SDK_VERSION = "5.19.0";
3752
3752
 
3753
3753
  // src/http.ts
3754
3754
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -3903,7 +3903,12 @@ function getCacheKey(request, counterpartyId) {
3903
3903
  // its start_checkout quote was served the cached quote-leg grant (no
3904
3904
  // settlementOutcome) and never reached the backend. Same F-A1-07 bug class.
3905
3905
  request.commercePhase || "",
3906
- request.checkoutSessionId || ""
3906
+ request.checkoutSessionId || "",
3907
+ // 5.19.0: a route_config purpose claim is checked server-side against
3908
+ // the stored rule for this method + path, so it changes the verdict.
3909
+ request.purposeSource || "",
3910
+ request.requestMethod || "",
3911
+ request.requestPath || ""
3907
3912
  ].join("|");
3908
3913
  }
3909
3914
  function getCachedResult(request, counterpartyId) {
@@ -4077,6 +4082,11 @@ async function callVerifyAccessAPI(config, request) {
4077
4082
  if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
4078
4083
  if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
4079
4084
  if (requestData.attemptId) body.attemptId = requestData.attemptId;
4085
+ if (requestData.purposeSource) body.purposeSource = requestData.purposeSource;
4086
+ if (requestData.agentArtifacts) body.agentArtifacts = requestData.agentArtifacts;
4087
+ if (requestData.metadata) body.metadata = requestData.metadata;
4088
+ if (requestData.requestMethod) body.requestMethod = requestData.requestMethod;
4089
+ if (requestData.requestPath) body.requestPath = requestData.requestPath;
4080
4090
  if (requestData.considerationSet) body.considerationSet = requestData.considerationSet;
4081
4091
  body.sdkVersion = SDK_VERSION;
4082
4092
  if (requestData.callerMetadata || requestData.clientIp || requestData.userAgent) {
@@ -4266,9 +4276,18 @@ async function verify(config, request, options) {
4266
4276
  if (!apiResponse.access?.allowed) {
4267
4277
  const aggregatedFailures = apiResponse.access?.failures;
4268
4278
  const idVerifiedFromBackend = apiResponse.verificationContext?.idVerified === true && !aggregatedFailures?.some((f) => REJECTED_IDENTITY_DIMENSIONS.has(f.dimension));
4279
+ const denyAgent = idVerifiedFromBackend && apiResponse.agent ? {
4280
+ astraId: apiResponse.agent.astraId,
4281
+ name: apiResponse.agent.name,
4282
+ trustScore: apiResponse.agent.trustScore,
4283
+ trustLevel: getTrustLevel(apiResponse.agent.trustScore),
4284
+ blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
4285
+ status: apiResponse.agent.agentStatus
4286
+ } : void 0;
4269
4287
  const result2 = {
4270
4288
  identityVerified: idVerifiedFromBackend,
4271
4289
  policyAllowed: false,
4290
+ ...denyAgent && { agent: denyAgent },
4272
4291
  // 3.6.0: the server now emits top-level denialReasons on every deny
4273
4292
  // path — prefer it verbatim; the failure-message reconstruction remains
4274
4293
  // as the fallback for older backends.
@@ -4414,6 +4433,9 @@ var MAX_TOTAL_BYTES = 16 * 1024;
4414
4433
  // src/adapters/commerce-detect.ts
4415
4434
  var MAX_BODY_BYTES = 64 * 1024;
4416
4435
 
4436
+ // src/adapters/routes-cache.ts
4437
+ var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
4438
+
4417
4439
  // src/edge-config.ts
4418
4440
  var DEFAULT_EDGE_CONFIG = Object.freeze({
4419
4441
  version: 1,
@@ -4655,9 +4677,6 @@ var BeaconBuffer = class {
4655
4677
  };
4656
4678
  var beaconBuffer = new BeaconBuffer();
4657
4679
 
4658
- // src/adapters/express.ts
4659
- var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
4660
-
4661
4680
  // src/adapters/nextjs.ts
4662
4681
  var DEFAULT_ROUTES_REFRESH_MS2 = 5 * 60 * 1e3;
4663
4682
 
@@ -4743,6 +4762,25 @@ var import_jose2 = require("jose");
4743
4762
  // src/idempotency/index.ts
4744
4763
  var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
4745
4764
 
4765
+ // src/ucp/approval-events.ts
4766
+ var MemorySeenEvents = class {
4767
+ constructor(max = 1e4) {
4768
+ this.max = max;
4769
+ this.ids = /* @__PURE__ */ new Set();
4770
+ }
4771
+ async has(eventId) {
4772
+ return this.ids.has(eventId);
4773
+ }
4774
+ async add(eventId) {
4775
+ if (this.ids.size >= this.max) {
4776
+ const first = this.ids.values().next().value;
4777
+ if (first !== void 0) this.ids.delete(first);
4778
+ }
4779
+ this.ids.add(eventId);
4780
+ }
4781
+ };
4782
+ var defaultSeen = new MemorySeenEvents();
4783
+
4746
4784
  // src/payments/kyapay.ts
4747
4785
  var import_jose4 = require("jose");
4748
4786
 
@@ -4782,7 +4820,9 @@ function toDecision(result) {
4782
4820
  if (result.identityVerified && result.policyAllowed) {
4783
4821
  return {
4784
4822
  recommendation: "ALLOW",
4785
- reason: result.agent?.trustScore ? `Verified (trust score ${result.agent.trustScore})` : "Verified",
4823
+ // 5.19.0: the score is on `trustScore` for the merchant; `reason` is
4824
+ // text a merchant may relay to the agent, so it never embeds the number.
4825
+ reason: "Verified",
4786
4826
  trustScore: result.agent?.trustScore,
4787
4827
  sessionId: "sessionId" in result ? result.sessionId : void 0
4788
4828
  };