@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
@@ -1,6 +1,6 @@
1
1
  import * as next_server from 'next/server';
2
2
  import { NextRequest } from 'next/server';
3
- import { N as NextJsMiddlewareOptions } from '../types-Cns4l8gX.mjs';
3
+ import { N as NextJsMiddlewareOptions } from '../types-DqWPkiYl.mjs';
4
4
 
5
5
  /**
6
6
  * Create Next.js middleware for agent verification.
@@ -1,6 +1,6 @@
1
1
  import * as next_server from 'next/server';
2
2
  import { NextRequest } from 'next/server';
3
- import { N as NextJsMiddlewareOptions } from '../types-Cns4l8gX.js';
3
+ import { N as NextJsMiddlewareOptions } from '../types-DqWPkiYl.js';
4
4
 
5
5
  /**
6
6
  * Create Next.js middleware for agent verification.
@@ -471,7 +471,7 @@ function routePolicyOf(route) {
471
471
  }
472
472
 
473
473
  // src/version.ts
474
- var SDK_VERSION = "5.18.1";
474
+ var SDK_VERSION = "5.19.0";
475
475
 
476
476
  // src/http.ts
477
477
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -737,7 +737,12 @@ function getCacheKey(request, counterpartyId) {
737
737
  // its start_checkout quote was served the cached quote-leg grant (no
738
738
  // settlementOutcome) and never reached the backend. Same F-A1-07 bug class.
739
739
  request.commercePhase || "",
740
- request.checkoutSessionId || ""
740
+ request.checkoutSessionId || "",
741
+ // 5.19.0: a route_config purpose claim is checked server-side against
742
+ // the stored rule for this method + path, so it changes the verdict.
743
+ request.purposeSource || "",
744
+ request.requestMethod || "",
745
+ request.requestPath || ""
741
746
  ].join("|");
742
747
  }
743
748
  function getCachedResult(request, counterpartyId) {
@@ -945,6 +950,11 @@ async function callVerifyAccessAPI(config, request) {
945
950
  if (requestData.buyerEmail) body.buyerEmail = requestData.buyerEmail;
946
951
  if (requestData.commerceArtifacts) body.commerceArtifacts = requestData.commerceArtifacts;
947
952
  if (requestData.attemptId) body.attemptId = requestData.attemptId;
953
+ if (requestData.purposeSource) body.purposeSource = requestData.purposeSource;
954
+ if (requestData.agentArtifacts) body.agentArtifacts = requestData.agentArtifacts;
955
+ if (requestData.metadata) body.metadata = requestData.metadata;
956
+ if (requestData.requestMethod) body.requestMethod = requestData.requestMethod;
957
+ if (requestData.requestPath) body.requestPath = requestData.requestPath;
948
958
  if (requestData.considerationSet) body.considerationSet = requestData.considerationSet;
949
959
  body.sdkVersion = SDK_VERSION;
950
960
  if (requestData.callerMetadata || requestData.clientIp || requestData.userAgent) {
@@ -1134,9 +1144,18 @@ async function verify(config, request, options) {
1134
1144
  if (!apiResponse.access?.allowed) {
1135
1145
  const aggregatedFailures = apiResponse.access?.failures;
1136
1146
  const idVerifiedFromBackend = apiResponse.verificationContext?.idVerified === true && !aggregatedFailures?.some((f) => REJECTED_IDENTITY_DIMENSIONS.has(f.dimension));
1147
+ const denyAgent = idVerifiedFromBackend && apiResponse.agent ? {
1148
+ astraId: apiResponse.agent.astraId,
1149
+ name: apiResponse.agent.name,
1150
+ trustScore: apiResponse.agent.trustScore,
1151
+ trustLevel: getTrustLevel(apiResponse.agent.trustScore),
1152
+ blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
1153
+ status: apiResponse.agent.agentStatus
1154
+ } : void 0;
1137
1155
  const result2 = {
1138
1156
  identityVerified: idVerifiedFromBackend,
1139
1157
  policyAllowed: false,
1158
+ ...denyAgent && { agent: denyAgent },
1140
1159
  // 3.6.0: the server now emits top-level denialReasons on every deny
1141
1160
  // path — prefer it verbatim; the failure-message reconstruction remains
1142
1161
  // as the fallback for older backends.
@@ -1273,7 +1292,7 @@ async function verify(config, request, options) {
1273
1292
  return result;
1274
1293
  }
1275
1294
  var refusedPolicyReads = /* @__PURE__ */ new Set();
1276
- async function fetchRoutes(config, counterpartyId) {
1295
+ async function fetchRoutes(config, counterpartyId, options = {}) {
1277
1296
  if (!counterpartyId) return null;
1278
1297
  const headers = { "Content-Type": "application/json" };
1279
1298
  if (config.apiKey) {
@@ -1282,7 +1301,7 @@ async function fetchRoutes(config, counterpartyId) {
1282
1301
  }
1283
1302
  try {
1284
1303
  const response = await sdkFetch(
1285
- `${config.apiBaseUrl}/endpoints/${encodeURIComponent(counterpartyId)}/routes`,
1304
+ `${config.apiBaseUrl}/endpoints/${encodeURIComponent(counterpartyId)}/routes` + (options.codeGates?.length ? `?codeGates=${options.codeGates.map(encodeURIComponent).join(",")}` : ""),
1286
1305
  { method: "GET", headers }
1287
1306
  );
1288
1307
  if (!response.ok) {
@@ -2115,6 +2134,20 @@ function resolveHttpPdlss(input) {
2115
2134
  }
2116
2135
  return { purpose, action, purposeSource, actionSource };
2117
2136
  }
2137
+ function wirePurposeSource(source) {
2138
+ switch (source) {
2139
+ case "route_config":
2140
+ return "route_config";
2141
+ case "header":
2142
+ case "legacy_header":
2143
+ case "query":
2144
+ return "header";
2145
+ case "custom_extractor":
2146
+ return "body";
2147
+ default:
2148
+ return "default";
2149
+ }
2150
+ }
2118
2151
 
2119
2152
  // src/adapters/approval-gate.ts
2120
2153
  var APPROVAL_REASON = "Transaction is above the autonomous limit and requires human approval. The agent owner can approve or deny this transaction in the AstraSync dashboard.";
@@ -2546,6 +2579,10 @@ function createMiddleware(options) {
2546
2579
  ...commerceArtifacts && { commerceArtifacts },
2547
2580
  purpose,
2548
2581
  action: pdlssPair.action,
2582
+ // 5.19.0: route purpose claim + request line (checked server-side).
2583
+ purposeSource: wirePurposeSource(pdlssPair.purposeSource),
2584
+ requestMethod: request.method,
2585
+ requestPath: pathname,
2549
2586
  resource: pathname,
2550
2587
  counterpartyUrl,
2551
2588
  counterpartyType: config.counterpartyType || "website",