@astrasyncai/verification-gateway 5.18.0 → 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 (115) hide show
  1. package/CHANGELOG.md +178 -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 +375 -117
  46. package/dist/bin/astrasync.js +417 -117
  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 +542 -30
  82. package/dist/index.d.ts +542 -30
  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.d.mts +1 -1
  88. package/dist/registration/index.d.ts +1 -1
  89. package/dist/registration/index.js +1 -1
  90. package/dist/registration/index.js.map +1 -1
  91. package/dist/registration/index.mjs +1 -1
  92. package/dist/registration/index.mjs.map +1 -1
  93. package/dist/transport/index.js +3 -2
  94. package/dist/transport/index.js.map +1 -1
  95. package/dist/transport/index.mjs +3 -2
  96. package/dist/transport/index.mjs.map +1 -1
  97. package/dist/{types-3ObBpsnf.d.mts → types-BoGjyon0.d.mts} +81 -2
  98. package/dist/{types-Cns4l8gX.d.mts → types-DqWPkiYl.d.mts} +90 -12
  99. package/dist/{types-Cns4l8gX.d.ts → types-DqWPkiYl.d.ts} +90 -12
  100. package/dist/{types-BoxZEYPS.d.ts → types-eWyZuz-3.d.ts} +81 -2
  101. package/dist/ui/index.d.mts +1 -1
  102. package/dist/ui/index.d.ts +1 -1
  103. package/dist/verify.d.mts +23 -2
  104. package/dist/verify.d.ts +23 -2
  105. package/dist/verify.js +23 -4
  106. package/dist/verify.js.map +1 -1
  107. package/dist/verify.mjs +23 -4
  108. package/dist/verify.mjs.map +1 -1
  109. package/dist/webhooks.d.mts +16 -3
  110. package/dist/webhooks.d.ts +16 -3
  111. package/dist/webhooks.js +24 -13
  112. package/dist/webhooks.js.map +1 -1
  113. package/dist/webhooks.mjs +24 -13
  114. package/dist/webhooks.mjs.map +1 -1
  115. package/package.json +1 -1
@@ -3994,7 +3994,7 @@ function getTrustLevel(score) {
3994
3994
  }
3995
3995
 
3996
3996
  // src/version.ts
3997
- var SDK_VERSION = "5.18.0";
3997
+ var SDK_VERSION = "5.19.0";
3998
3998
 
3999
3999
  // src/http.ts
4000
4000
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4149,7 +4149,12 @@ function getCacheKey(request, counterpartyId) {
4149
4149
  // its start_checkout quote was served the cached quote-leg grant (no
4150
4150
  // settlementOutcome) and never reached the backend. Same F-A1-07 bug class.
4151
4151
  request.commercePhase || "",
4152
- request.checkoutSessionId || ""
4152
+ request.checkoutSessionId || "",
4153
+ // 5.19.0: a route_config purpose claim is checked server-side against
4154
+ // the stored rule for this method + path, so it changes the verdict.
4155
+ request.purposeSource || "",
4156
+ request.requestMethod || "",
4157
+ request.requestPath || ""
4153
4158
  ].join("|");
4154
4159
  }
4155
4160
  function getCachedResult(request, counterpartyId) {
@@ -4323,6 +4328,11 @@ async function callVerifyAccessAPI(config, request) {
4323
4328
  if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
4324
4329
  if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
4325
4330
  if (requestData.attemptId) body.attemptId = requestData.attemptId;
4331
+ if (requestData.purposeSource) body.purposeSource = requestData.purposeSource;
4332
+ if (requestData.agentArtifacts) body.agentArtifacts = requestData.agentArtifacts;
4333
+ if (requestData.metadata) body.metadata = requestData.metadata;
4334
+ if (requestData.requestMethod) body.requestMethod = requestData.requestMethod;
4335
+ if (requestData.requestPath) body.requestPath = requestData.requestPath;
4326
4336
  if (requestData.considerationSet) body.considerationSet = requestData.considerationSet;
4327
4337
  body.sdkVersion = SDK_VERSION;
4328
4338
  if (requestData.callerMetadata || requestData.clientIp || requestData.userAgent) {
@@ -4512,9 +4522,18 @@ async function verify(config, request, options) {
4512
4522
  if (!apiResponse.access?.allowed) {
4513
4523
  const aggregatedFailures = apiResponse.access?.failures;
4514
4524
  const idVerifiedFromBackend = apiResponse.verificationContext?.idVerified === true && !aggregatedFailures?.some((f) => REJECTED_IDENTITY_DIMENSIONS.has(f.dimension));
4525
+ const denyAgent = idVerifiedFromBackend && apiResponse.agent ? {
4526
+ astraId: apiResponse.agent.astraId,
4527
+ name: apiResponse.agent.name,
4528
+ trustScore: apiResponse.agent.trustScore,
4529
+ trustLevel: getTrustLevel(apiResponse.agent.trustScore),
4530
+ blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
4531
+ status: apiResponse.agent.agentStatus
4532
+ } : void 0;
4515
4533
  const result2 = {
4516
4534
  identityVerified: idVerifiedFromBackend,
4517
4535
  policyAllowed: false,
4536
+ ...denyAgent && { agent: denyAgent },
4518
4537
  // 3.6.0: the server now emits top-level denialReasons on every deny
4519
4538
  // path — prefer it verbatim; the failure-message reconstruction remains
4520
4539
  // as the fallback for older backends.
@@ -4660,6 +4679,9 @@ var MAX_TOTAL_BYTES = 16 * 1024;
4660
4679
  // src/adapters/commerce-detect.ts
4661
4680
  var MAX_BODY_BYTES = 64 * 1024;
4662
4681
 
4682
+ // src/adapters/routes-cache.ts
4683
+ var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
4684
+
4663
4685
  // src/edge-config.ts
4664
4686
  var DEFAULT_EDGE_CONFIG = Object.freeze({
4665
4687
  version: 1,
@@ -4901,9 +4923,6 @@ var BeaconBuffer = class {
4901
4923
  };
4902
4924
  var beaconBuffer = new BeaconBuffer();
4903
4925
 
4904
- // src/adapters/express.ts
4905
- var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
4906
-
4907
4926
  // src/adapters/nextjs.ts
4908
4927
  var DEFAULT_ROUTES_REFRESH_MS2 = 5 * 60 * 1e3;
4909
4928
 
@@ -4989,6 +5008,25 @@ var import_jose2 = require("jose");
4989
5008
  // src/idempotency/index.ts
4990
5009
  var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
4991
5010
 
5011
+ // src/ucp/approval-events.ts
5012
+ var MemorySeenEvents = class {
5013
+ constructor(max = 1e4) {
5014
+ this.max = max;
5015
+ this.ids = /* @__PURE__ */ new Set();
5016
+ }
5017
+ async has(eventId) {
5018
+ return this.ids.has(eventId);
5019
+ }
5020
+ async add(eventId) {
5021
+ if (this.ids.size >= this.max) {
5022
+ const first = this.ids.values().next().value;
5023
+ if (first !== void 0) this.ids.delete(first);
5024
+ }
5025
+ this.ids.add(eventId);
5026
+ }
5027
+ };
5028
+ var defaultSeen = new MemorySeenEvents();
5029
+
4992
5030
  // src/payments/kyapay.ts
4993
5031
  var import_jose4 = require("jose");
4994
5032
 
@@ -5028,7 +5066,9 @@ function toDecision(result) {
5028
5066
  if (result.identityVerified && result.policyAllowed) {
5029
5067
  return {
5030
5068
  recommendation: "ALLOW",
5031
- reason: result.agent?.trustScore ? `Verified (trust score ${result.agent.trustScore})` : "Verified",
5069
+ // 5.19.0: the score is on `trustScore` for the merchant; `reason` is
5070
+ // text a merchant may relay to the agent, so it never embeds the number.
5071
+ reason: "Verified",
5032
5072
  trustScore: result.agent?.trustScore,
5033
5073
  sessionId: "sessionId" in result ? result.sessionId : void 0
5034
5074
  };