@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
@@ -4006,7 +4006,7 @@ function getTrustLevel(score) {
4006
4006
  }
4007
4007
 
4008
4008
  // src/version.ts
4009
- var SDK_VERSION = "5.18.1";
4009
+ var SDK_VERSION = "5.19.0";
4010
4010
 
4011
4011
  // src/http.ts
4012
4012
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4161,7 +4161,12 @@ function getCacheKey(request, counterpartyId) {
4161
4161
  // its start_checkout quote was served the cached quote-leg grant (no
4162
4162
  // settlementOutcome) and never reached the backend. Same F-A1-07 bug class.
4163
4163
  request.commercePhase || "",
4164
- request.checkoutSessionId || ""
4164
+ request.checkoutSessionId || "",
4165
+ // 5.19.0: a route_config purpose claim is checked server-side against
4166
+ // the stored rule for this method + path, so it changes the verdict.
4167
+ request.purposeSource || "",
4168
+ request.requestMethod || "",
4169
+ request.requestPath || ""
4165
4170
  ].join("|");
4166
4171
  }
4167
4172
  function getCachedResult(request, counterpartyId) {
@@ -4335,6 +4340,11 @@ async function callVerifyAccessAPI(config, request) {
4335
4340
  if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
4336
4341
  if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
4337
4342
  if (requestData.attemptId) body.attemptId = requestData.attemptId;
4343
+ if (requestData.purposeSource) body.purposeSource = requestData.purposeSource;
4344
+ if (requestData.agentArtifacts) body.agentArtifacts = requestData.agentArtifacts;
4345
+ if (requestData.metadata) body.metadata = requestData.metadata;
4346
+ if (requestData.requestMethod) body.requestMethod = requestData.requestMethod;
4347
+ if (requestData.requestPath) body.requestPath = requestData.requestPath;
4338
4348
  if (requestData.considerationSet) body.considerationSet = requestData.considerationSet;
4339
4349
  body.sdkVersion = SDK_VERSION;
4340
4350
  if (requestData.callerMetadata || requestData.clientIp || requestData.userAgent) {
@@ -4524,9 +4534,18 @@ async function verify(config, request, options) {
4524
4534
  if (!apiResponse.access?.allowed) {
4525
4535
  const aggregatedFailures = apiResponse.access?.failures;
4526
4536
  const idVerifiedFromBackend = apiResponse.verificationContext?.idVerified === true && !aggregatedFailures?.some((f) => REJECTED_IDENTITY_DIMENSIONS.has(f.dimension));
4537
+ const denyAgent = idVerifiedFromBackend && apiResponse.agent ? {
4538
+ astraId: apiResponse.agent.astraId,
4539
+ name: apiResponse.agent.name,
4540
+ trustScore: apiResponse.agent.trustScore,
4541
+ trustLevel: getTrustLevel(apiResponse.agent.trustScore),
4542
+ blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
4543
+ status: apiResponse.agent.agentStatus
4544
+ } : void 0;
4527
4545
  const result2 = {
4528
4546
  identityVerified: idVerifiedFromBackend,
4529
4547
  policyAllowed: false,
4548
+ ...denyAgent && { agent: denyAgent },
4530
4549
  // 3.6.0: the server now emits top-level denialReasons on every deny
4531
4550
  // path — prefer it verbatim; the failure-message reconstruction remains
4532
4551
  // as the fallback for older backends.
@@ -4672,6 +4691,9 @@ var MAX_TOTAL_BYTES = 16 * 1024;
4672
4691
  // src/adapters/commerce-detect.ts
4673
4692
  var MAX_BODY_BYTES = 64 * 1024;
4674
4693
 
4694
+ // src/adapters/routes-cache.ts
4695
+ var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
4696
+
4675
4697
  // src/edge-config.ts
4676
4698
  var DEFAULT_EDGE_CONFIG = Object.freeze({
4677
4699
  version: 1,
@@ -4913,9 +4935,6 @@ var BeaconBuffer = class {
4913
4935
  };
4914
4936
  var beaconBuffer = new BeaconBuffer();
4915
4937
 
4916
- // src/adapters/express.ts
4917
- var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
4918
-
4919
4938
  // src/adapters/nextjs.ts
4920
4939
  var DEFAULT_ROUTES_REFRESH_MS2 = 5 * 60 * 1e3;
4921
4940
 
@@ -5009,6 +5028,25 @@ import {
5009
5028
  // src/idempotency/index.ts
5010
5029
  var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
5011
5030
 
5031
+ // src/ucp/approval-events.ts
5032
+ var MemorySeenEvents = class {
5033
+ constructor(max = 1e4) {
5034
+ this.max = max;
5035
+ this.ids = /* @__PURE__ */ new Set();
5036
+ }
5037
+ async has(eventId) {
5038
+ return this.ids.has(eventId);
5039
+ }
5040
+ async add(eventId) {
5041
+ if (this.ids.size >= this.max) {
5042
+ const first = this.ids.values().next().value;
5043
+ if (first !== void 0) this.ids.delete(first);
5044
+ }
5045
+ this.ids.add(eventId);
5046
+ }
5047
+ };
5048
+ var defaultSeen = new MemorySeenEvents();
5049
+
5012
5050
  // src/payments/kyapay.ts
5013
5051
  import {
5014
5052
  createLocalJWKSet,
@@ -5053,7 +5091,9 @@ function toDecision(result) {
5053
5091
  if (result.identityVerified && result.policyAllowed) {
5054
5092
  return {
5055
5093
  recommendation: "ALLOW",
5056
- reason: result.agent?.trustScore ? `Verified (trust score ${result.agent.trustScore})` : "Verified",
5094
+ // 5.19.0: the score is on `trustScore` for the merchant; `reason` is
5095
+ // text a merchant may relay to the agent, so it never embeds the number.
5096
+ reason: "Verified",
5057
5097
  trustScore: result.agent?.trustScore,
5058
5098
  sessionId: "sessionId" in result ? result.sessionId : void 0
5059
5099
  };