@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
@@ -3969,7 +3969,7 @@ function getTrustLevel(score) {
3969
3969
  }
3970
3970
 
3971
3971
  // src/version.ts
3972
- var SDK_VERSION = "5.18.0";
3972
+ var SDK_VERSION = "5.19.0";
3973
3973
 
3974
3974
  // src/http.ts
3975
3975
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -4124,7 +4124,12 @@ function getCacheKey(request, counterpartyId) {
4124
4124
  // its start_checkout quote was served the cached quote-leg grant (no
4125
4125
  // settlementOutcome) and never reached the backend. Same F-A1-07 bug class.
4126
4126
  request.commercePhase || "",
4127
- request.checkoutSessionId || ""
4127
+ request.checkoutSessionId || "",
4128
+ // 5.19.0: a route_config purpose claim is checked server-side against
4129
+ // the stored rule for this method + path, so it changes the verdict.
4130
+ request.purposeSource || "",
4131
+ request.requestMethod || "",
4132
+ request.requestPath || ""
4128
4133
  ].join("|");
4129
4134
  }
4130
4135
  function getCachedResult(request, counterpartyId) {
@@ -4298,6 +4303,11 @@ async function callVerifyAccessAPI(config, request) {
4298
4303
  if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
4299
4304
  if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
4300
4305
  if (requestData.attemptId) body.attemptId = requestData.attemptId;
4306
+ if (requestData.purposeSource) body.purposeSource = requestData.purposeSource;
4307
+ if (requestData.agentArtifacts) body.agentArtifacts = requestData.agentArtifacts;
4308
+ if (requestData.metadata) body.metadata = requestData.metadata;
4309
+ if (requestData.requestMethod) body.requestMethod = requestData.requestMethod;
4310
+ if (requestData.requestPath) body.requestPath = requestData.requestPath;
4301
4311
  if (requestData.considerationSet) body.considerationSet = requestData.considerationSet;
4302
4312
  body.sdkVersion = SDK_VERSION;
4303
4313
  if (requestData.callerMetadata || requestData.clientIp || requestData.userAgent) {
@@ -4487,9 +4497,18 @@ async function verify(config, request, options) {
4487
4497
  if (!apiResponse.access?.allowed) {
4488
4498
  const aggregatedFailures = apiResponse.access?.failures;
4489
4499
  const idVerifiedFromBackend = apiResponse.verificationContext?.idVerified === true && !aggregatedFailures?.some((f) => REJECTED_IDENTITY_DIMENSIONS.has(f.dimension));
4500
+ const denyAgent = idVerifiedFromBackend && apiResponse.agent ? {
4501
+ astraId: apiResponse.agent.astraId,
4502
+ name: apiResponse.agent.name,
4503
+ trustScore: apiResponse.agent.trustScore,
4504
+ trustLevel: getTrustLevel(apiResponse.agent.trustScore),
4505
+ blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
4506
+ status: apiResponse.agent.agentStatus
4507
+ } : void 0;
4490
4508
  const result2 = {
4491
4509
  identityVerified: idVerifiedFromBackend,
4492
4510
  policyAllowed: false,
4511
+ ...denyAgent && { agent: denyAgent },
4493
4512
  // 3.6.0: the server now emits top-level denialReasons on every deny
4494
4513
  // path — prefer it verbatim; the failure-message reconstruction remains
4495
4514
  // as the fallback for older backends.
@@ -4635,6 +4654,9 @@ var MAX_TOTAL_BYTES = 16 * 1024;
4635
4654
  // src/adapters/commerce-detect.ts
4636
4655
  var MAX_BODY_BYTES = 64 * 1024;
4637
4656
 
4657
+ // src/adapters/routes-cache.ts
4658
+ var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
4659
+
4638
4660
  // src/edge-config.ts
4639
4661
  var DEFAULT_EDGE_CONFIG = Object.freeze({
4640
4662
  version: 1,
@@ -4876,9 +4898,6 @@ var BeaconBuffer = class {
4876
4898
  };
4877
4899
  var beaconBuffer = new BeaconBuffer();
4878
4900
 
4879
- // src/adapters/express.ts
4880
- var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
4881
-
4882
4901
  // src/adapters/nextjs.ts
4883
4902
  var DEFAULT_ROUTES_REFRESH_MS2 = 5 * 60 * 1e3;
4884
4903
 
@@ -4972,6 +4991,25 @@ import {
4972
4991
  // src/idempotency/index.ts
4973
4992
  var DEFAULT_IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1e3;
4974
4993
 
4994
+ // src/ucp/approval-events.ts
4995
+ var MemorySeenEvents = class {
4996
+ constructor(max = 1e4) {
4997
+ this.max = max;
4998
+ this.ids = /* @__PURE__ */ new Set();
4999
+ }
5000
+ async has(eventId) {
5001
+ return this.ids.has(eventId);
5002
+ }
5003
+ async add(eventId) {
5004
+ if (this.ids.size >= this.max) {
5005
+ const first = this.ids.values().next().value;
5006
+ if (first !== void 0) this.ids.delete(first);
5007
+ }
5008
+ this.ids.add(eventId);
5009
+ }
5010
+ };
5011
+ var defaultSeen = new MemorySeenEvents();
5012
+
4975
5013
  // src/payments/kyapay.ts
4976
5014
  import {
4977
5015
  createLocalJWKSet,
@@ -5016,7 +5054,9 @@ function toDecision(result) {
5016
5054
  if (result.identityVerified && result.policyAllowed) {
5017
5055
  return {
5018
5056
  recommendation: "ALLOW",
5019
- reason: result.agent?.trustScore ? `Verified (trust score ${result.agent.trustScore})` : "Verified",
5057
+ // 5.19.0: the score is on `trustScore` for the merchant; `reason` is
5058
+ // text a merchant may relay to the agent, so it never embeds the number.
5059
+ reason: "Verified",
5020
5060
  trustScore: result.agent?.trustScore,
5021
5061
  sessionId: "sessionId" in result ? result.sessionId : void 0
5022
5062
  };