@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
@@ -4036,7 +4036,7 @@ function getTrustLevel(score) {
4036
4036
  }
4037
4037
 
4038
4038
  // src/version.ts
4039
- var SDK_VERSION = "5.18.0";
4039
+ var SDK_VERSION = "5.19.0";
4040
4040
 
4041
4041
  // src/http.ts
4042
4042
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4191,7 +4191,12 @@ function getCacheKey(request, counterpartyId) {
4191
4191
  // its start_checkout quote was served the cached quote-leg grant (no
4192
4192
  // settlementOutcome) and never reached the backend. Same F-A1-07 bug class.
4193
4193
  request.commercePhase || "",
4194
- request.checkoutSessionId || ""
4194
+ request.checkoutSessionId || "",
4195
+ // 5.19.0: a route_config purpose claim is checked server-side against
4196
+ // the stored rule for this method + path, so it changes the verdict.
4197
+ request.purposeSource || "",
4198
+ request.requestMethod || "",
4199
+ request.requestPath || ""
4195
4200
  ].join("|");
4196
4201
  }
4197
4202
  function getCachedResult(request, counterpartyId) {
@@ -4365,6 +4370,11 @@ async function callVerifyAccessAPI(config, request) {
4365
4370
  if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
4366
4371
  if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
4367
4372
  if (requestData.attemptId) body.attemptId = requestData.attemptId;
4373
+ if (requestData.purposeSource) body.purposeSource = requestData.purposeSource;
4374
+ if (requestData.agentArtifacts) body.agentArtifacts = requestData.agentArtifacts;
4375
+ if (requestData.metadata) body.metadata = requestData.metadata;
4376
+ if (requestData.requestMethod) body.requestMethod = requestData.requestMethod;
4377
+ if (requestData.requestPath) body.requestPath = requestData.requestPath;
4368
4378
  if (requestData.considerationSet) body.considerationSet = requestData.considerationSet;
4369
4379
  body.sdkVersion = SDK_VERSION;
4370
4380
  if (requestData.callerMetadata || requestData.clientIp || requestData.userAgent) {
@@ -4554,9 +4564,18 @@ async function verify(config, request, options) {
4554
4564
  if (!apiResponse.access?.allowed) {
4555
4565
  const aggregatedFailures = apiResponse.access?.failures;
4556
4566
  const idVerifiedFromBackend = apiResponse.verificationContext?.idVerified === true && !aggregatedFailures?.some((f) => REJECTED_IDENTITY_DIMENSIONS.has(f.dimension));
4567
+ const denyAgent = idVerifiedFromBackend && apiResponse.agent ? {
4568
+ astraId: apiResponse.agent.astraId,
4569
+ name: apiResponse.agent.name,
4570
+ trustScore: apiResponse.agent.trustScore,
4571
+ trustLevel: getTrustLevel(apiResponse.agent.trustScore),
4572
+ blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
4573
+ status: apiResponse.agent.agentStatus
4574
+ } : void 0;
4557
4575
  const result2 = {
4558
4576
  identityVerified: idVerifiedFromBackend,
4559
4577
  policyAllowed: false,
4578
+ ...denyAgent && { agent: denyAgent },
4560
4579
  // 3.6.0: the server now emits top-level denialReasons on every deny
4561
4580
  // path — prefer it verbatim; the failure-message reconstruction remains
4562
4581
  // as the fallback for older backends.
@@ -4702,6 +4721,9 @@ var MAX_TOTAL_BYTES = 16 * 1024;
4702
4721
  // src/adapters/commerce-detect.ts
4703
4722
  var MAX_BODY_BYTES = 64 * 1024;
4704
4723
 
4724
+ // src/adapters/routes-cache.ts
4725
+ var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
4726
+
4705
4727
  // src/edge-config.ts
4706
4728
  var DEFAULT_EDGE_CONFIG = Object.freeze({
4707
4729
  version: 1,
@@ -4943,9 +4965,6 @@ var BeaconBuffer = class {
4943
4965
  };
4944
4966
  var beaconBuffer = new BeaconBuffer();
4945
4967
 
4946
- // src/adapters/express.ts
4947
- var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
4948
-
4949
4968
  // src/adapters/nextjs.ts
4950
4969
  var DEFAULT_ROUTES_REFRESH_MS2 = 5 * 60 * 1e3;
4951
4970
 
@@ -5031,6 +5050,25 @@ var import_jose2 = require("jose");
5031
5050
  // src/idempotency/index.ts
5032
5051
  var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
5033
5052
 
5053
+ // src/ucp/approval-events.ts
5054
+ var MemorySeenEvents = class {
5055
+ constructor(max = 1e4) {
5056
+ this.max = max;
5057
+ this.ids = /* @__PURE__ */ new Set();
5058
+ }
5059
+ async has(eventId) {
5060
+ return this.ids.has(eventId);
5061
+ }
5062
+ async add(eventId) {
5063
+ if (this.ids.size >= this.max) {
5064
+ const first = this.ids.values().next().value;
5065
+ if (first !== void 0) this.ids.delete(first);
5066
+ }
5067
+ this.ids.add(eventId);
5068
+ }
5069
+ };
5070
+ var defaultSeen = new MemorySeenEvents();
5071
+
5034
5072
  // src/payments/kyapay.ts
5035
5073
  var import_jose4 = require("jose");
5036
5074
 
@@ -5070,7 +5108,9 @@ function toDecision(result) {
5070
5108
  if (result.identityVerified && result.policyAllowed) {
5071
5109
  return {
5072
5110
  recommendation: "ALLOW",
5073
- reason: result.agent?.trustScore ? `Verified (trust score ${result.agent.trustScore})` : "Verified",
5111
+ // 5.19.0: the score is on `trustScore` for the merchant; `reason` is
5112
+ // text a merchant may relay to the agent, so it never embeds the number.
5113
+ reason: "Verified",
5074
5114
  trustScore: result.agent?.trustScore,
5075
5115
  sessionId: "sessionId" in result ? result.sessionId : void 0
5076
5116
  };