@astrasyncai/verification-gateway 5.7.0 → 5.9.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 (106) hide show
  1. package/README.md +37 -1
  2. package/dist/adapters/express.d.mts +1 -1
  3. package/dist/adapters/express.d.ts +1 -1
  4. package/dist/adapters/express.js +41 -7
  5. package/dist/adapters/express.js.map +1 -1
  6. package/dist/adapters/express.mjs +41 -7
  7. package/dist/adapters/express.mjs.map +1 -1
  8. package/dist/adapters/mcp.d.mts +1 -1
  9. package/dist/adapters/mcp.d.ts +1 -1
  10. package/dist/adapters/mcp.js +2 -2
  11. package/dist/adapters/mcp.js.map +1 -1
  12. package/dist/adapters/mcp.mjs +2 -2
  13. package/dist/adapters/mcp.mjs.map +1 -1
  14. package/dist/adapters/nextjs.d.mts +1 -1
  15. package/dist/adapters/nextjs.d.ts +1 -1
  16. package/dist/adapters/nextjs.js +41 -7
  17. package/dist/adapters/nextjs.js.map +1 -1
  18. package/dist/adapters/nextjs.mjs +41 -7
  19. package/dist/adapters/nextjs.mjs.map +1 -1
  20. package/dist/adapters/sdk.d.mts +1 -1
  21. package/dist/adapters/sdk.d.ts +1 -1
  22. package/dist/adapters/sdk.js +2 -2
  23. package/dist/adapters/sdk.js.map +1 -1
  24. package/dist/adapters/sdk.mjs +2 -2
  25. package/dist/adapters/sdk.mjs.map +1 -1
  26. package/dist/agent/index.js +1 -1
  27. package/dist/agent/index.js.map +1 -1
  28. package/dist/agent/index.mjs +1 -1
  29. package/dist/agent/index.mjs.map +1 -1
  30. package/dist/bin/astrasync-claude-hook.js +14 -6
  31. package/dist/bin/astrasync-codex-hook.js +14 -6
  32. package/dist/bin/astrasync-guard.js +14 -6
  33. package/dist/bin/astrasync.js +15 -6
  34. package/dist/browser/background.js +14 -6
  35. package/dist/browser/background.js.map +1 -1
  36. package/dist/browser/background.mjs +14 -6
  37. package/dist/browser/background.mjs.map +1 -1
  38. package/dist/cli/index.js +12 -4
  39. package/dist/cli/index.js.map +1 -1
  40. package/dist/cli/index.mjs +12 -4
  41. package/dist/cli/index.mjs.map +1 -1
  42. package/dist/codex/index.js +14 -6
  43. package/dist/codex/index.js.map +1 -1
  44. package/dist/codex/index.mjs +14 -6
  45. package/dist/codex/index.mjs.map +1 -1
  46. package/dist/cursor/extension.js +14 -6
  47. package/dist/cursor/extension.js.map +1 -1
  48. package/dist/cursor/extension.mjs +14 -6
  49. package/dist/cursor/extension.mjs.map +1 -1
  50. package/dist/edge-config.d.mts +24 -1
  51. package/dist/edge-config.d.ts +24 -1
  52. package/dist/edge-config.js +13 -5
  53. package/dist/edge-config.js.map +1 -1
  54. package/dist/edge-config.mjs +13 -5
  55. package/dist/edge-config.mjs.map +1 -1
  56. package/dist/edge-core/index.d.mts +14 -6
  57. package/dist/edge-core/index.d.ts +14 -6
  58. package/dist/edge-core/index.js +110 -16
  59. package/dist/edge-core/index.js.map +1 -1
  60. package/dist/edge-core/index.mjs +110 -16
  61. package/dist/edge-core/index.mjs.map +1 -1
  62. package/dist/gateway/gateway.js +14 -6
  63. package/dist/gateway/gateway.js.map +1 -1
  64. package/dist/gateway/gateway.mjs +14 -6
  65. package/dist/gateway/gateway.mjs.map +1 -1
  66. package/dist/git-trigger/git-hooks.d.mts +1 -1
  67. package/dist/git-trigger/git-hooks.d.ts +1 -1
  68. package/dist/index.d.mts +80 -6
  69. package/dist/index.d.ts +80 -6
  70. package/dist/index.js +54 -7
  71. package/dist/index.js.map +1 -1
  72. package/dist/index.mjs +52 -7
  73. package/dist/index.mjs.map +1 -1
  74. package/dist/metadata-capture.d.mts +18 -1
  75. package/dist/metadata-capture.d.ts +18 -1
  76. package/dist/metadata-capture.js +10 -0
  77. package/dist/metadata-capture.js.map +1 -1
  78. package/dist/metadata-capture.mjs +8 -0
  79. package/dist/metadata-capture.mjs.map +1 -1
  80. package/dist/platform-signatures.d.mts +1 -1
  81. package/dist/platform-signatures.d.ts +1 -1
  82. package/dist/platform-signatures.js +24 -1
  83. package/dist/platform-signatures.js.map +1 -1
  84. package/dist/platform-signatures.mjs +24 -1
  85. package/dist/platform-signatures.mjs.map +1 -1
  86. package/dist/registration/index.js +1 -1
  87. package/dist/registration/index.js.map +1 -1
  88. package/dist/registration/index.mjs +1 -1
  89. package/dist/registration/index.mjs.map +1 -1
  90. package/dist/transport/index.js +1 -1
  91. package/dist/transport/index.js.map +1 -1
  92. package/dist/transport/index.mjs +1 -1
  93. package/dist/transport/index.mjs.map +1 -1
  94. package/dist/{types-BK_pRNSs.d.mts → types-CTmUpNpS.d.mts} +25 -2
  95. package/dist/{types-BK_pRNSs.d.ts → types-CTmUpNpS.d.ts} +25 -2
  96. package/dist/{types-CwY5IY-0.d.ts → types-CtFXmDzm.d.ts} +17 -2
  97. package/dist/{types-BCmHFdkJ.d.mts → types-DQrn_kei.d.mts} +17 -2
  98. package/dist/ui/index.d.mts +1 -1
  99. package/dist/ui/index.d.ts +1 -1
  100. package/dist/verify.d.mts +13 -1
  101. package/dist/verify.d.ts +13 -1
  102. package/dist/verify.js +2 -2
  103. package/dist/verify.js.map +1 -1
  104. package/dist/verify.mjs +2 -2
  105. package/dist/verify.mjs.map +1 -1
  106. package/package.json +3 -3
@@ -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-BK_pRNSs.mjs';
3
+ import { N as NextJsMiddlewareOptions } from '../types-CTmUpNpS.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-BK_pRNSs.js';
3
+ import { N as NextJsMiddlewareOptions } from '../types-CTmUpNpS.js';
4
4
 
5
5
  /**
6
6
  * Create Next.js middleware for agent verification.
@@ -36,7 +36,7 @@ __export(nextjs_exports, {
36
36
  module.exports = __toCommonJS(nextjs_exports);
37
37
 
38
38
  // src/version.ts
39
- var SDK_VERSION = "5.7.0";
39
+ var SDK_VERSION = "5.9.0";
40
40
 
41
41
  // src/http.ts
42
42
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -594,7 +594,7 @@ async function verify(config, request, options) {
594
594
  name: apiResponse.agent.name,
595
595
  trustScore: apiResponse.agent.trustScore,
596
596
  trustLevel: getTrustLevel(apiResponse.agent.trustScore),
597
- blockchainVerified: apiResponse.agent.blockchainStatus === "verified",
597
+ blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
598
598
  status: apiResponse.agent.agentStatus
599
599
  } : void 0;
600
600
  const developer = apiResponse.developer ? {
@@ -1049,11 +1049,16 @@ var DEFAULT_EDGE_CONFIG = Object.freeze({
1049
1049
  mode: "observe",
1050
1050
  depth: "classify",
1051
1051
  pathRules: [],
1052
- sampling: Object.freeze({ anonymousBeaconRate: 0.1 }),
1052
+ sampling: Object.freeze({ anonymousBeaconRate: 1 }),
1053
1053
  failurePosture: "open"
1054
1054
  });
1055
1055
  var EDGE_MODES = ["observe", "enforce"];
1056
1056
  var EDGE_DEPTHS = ["classify", "authenticate", "authorize"];
1057
+ function isSamplingShape(value) {
1058
+ if (typeof value !== "object" || value === null) return false;
1059
+ const rate = value.anonymousBeaconRate;
1060
+ return typeof rate === "number" && rate >= 0 && rate <= 1;
1061
+ }
1057
1062
  function isEdgeConfig(value) {
1058
1063
  if (typeof value !== "object" || value === null) return false;
1059
1064
  const v = value;
@@ -1067,10 +1072,13 @@ function isEdgeConfig(value) {
1067
1072
  if (typeof r.pattern !== "string" || r.pattern.length === 0) return false;
1068
1073
  if (r.mode !== void 0 && !EDGE_MODES.includes(r.mode)) return false;
1069
1074
  if (r.depth !== void 0 && !EDGE_DEPTHS.includes(r.depth)) return false;
1075
+ if (r.sampling !== void 0 && !isSamplingShape(r.sampling)) return false;
1070
1076
  }
1071
- const sampling = v.sampling;
1072
- if (typeof sampling !== "object" || sampling === null || typeof sampling.anonymousBeaconRate !== "number" || sampling.anonymousBeaconRate < 0 || sampling.anonymousBeaconRate > 1) {
1073
- return false;
1077
+ if (!isSamplingShape(v.sampling)) return false;
1078
+ if (v.queryValueAllowlist !== void 0) {
1079
+ if (!Array.isArray(v.queryValueAllowlist) || v.queryValueAllowlist.length > 16 || !v.queryValueAllowlist.every((e) => typeof e === "string" && e.length > 0 && e.length <= 64)) {
1080
+ return false;
1081
+ }
1074
1082
  }
1075
1083
  return v.failurePosture === "open";
1076
1084
  }
@@ -1172,7 +1180,20 @@ var PLATFORM_AGENT_SIGNATURES = [
1172
1180
  {
1173
1181
  vendor: "gemini",
1174
1182
  displayName: "Google Gemini",
1175
- uaPatterns: [/gemini/i, /google-gemini/i, /bard/i],
1183
+ uaPatterns: [
1184
+ /gemini/i,
1185
+ /google-gemini/i,
1186
+ /bard/i,
1187
+ // Google's AI/agent fetcher tokens (VI uplift 1.3). These are the
1188
+ // AI-training/agent crawlers, NOT the Search crawler — googlebot IP
1189
+ // ranges attribute Search and are deliberately absent from
1190
+ // vendor-ip-ranges. Anchored tokens: none appears in stock browser
1191
+ // UAs, and `-` counts as a \b boundary so GoogleOther-Image/-Video
1192
+ // match too.
1193
+ /\bGoogle-Extended\b/i,
1194
+ /\bGoogleOther\b/i,
1195
+ /\bGoogle-CloudVertexBot\b/i
1196
+ ],
1176
1197
  agentCardPatterns: [/gemini\.google\.com/i, /ai\.google\.dev/i],
1177
1198
  apiKeyFormatPatterns: [/^aiza/i],
1178
1199
  headerPatterns: [/^x-goog-user-project/i, /^x-goog-api-client/i]
@@ -1218,6 +1239,16 @@ var PLATFORM_AGENT_SIGNATURES = [
1218
1239
  uaPatterns: [/\bcomet\/\d/i],
1219
1240
  headerPatterns: [/^sec-ch-ua: .*comet/i]
1220
1241
  },
1242
+ // The MCP bridge's own catalog fetches (VI uplift 1.5). Deliberately a
1243
+ // DISTINCT UA from `astrasync-sdk/`: bridge fetches are buyer-agent
1244
+ // traffic merchants should see (identified · unregistered), so this
1245
+ // vendor is kept OUT of the self-traffic filter and the edge's SELF
1246
+ // short-circuit.
1247
+ {
1248
+ vendor: "astrasync-bridge",
1249
+ displayName: "AstraSync MCP bridge (buyer-agent catalog fetch)",
1250
+ uaPatterns: [/^astrasync-bridge\//i]
1251
+ },
1221
1252
  // Our own SDK self-identifies (sdkFetch stamps this UA) — first-party
1222
1253
  // traffic must never pollute the unknown/anonymous pool it exists to audit.
1223
1254
  {
@@ -1857,6 +1888,8 @@ function createMiddleware(options) {
1857
1888
  }
1858
1889
  const forwardedFor = request.headers.get("x-forwarded-for") || void 0;
1859
1890
  const originalClientIp = forwardedFor?.split(",")[0]?.trim();
1891
+ const attemptHeader = request.headers.get("x-astra-attempt-id");
1892
+ const inboundAttemptId = attemptHeader && /^att_[0-9a-f]{32}$/.test(attemptHeader) ? attemptHeader : void 0;
1860
1893
  const verificationRequest = {
1861
1894
  credentials,
1862
1895
  purpose,
@@ -1866,6 +1899,7 @@ function createMiddleware(options) {
1866
1899
  counterpartyType: config.counterpartyType || "website",
1867
1900
  enableRuntimeChallenge,
1868
1901
  durationRequired: astraCreds?.pdlss?.duration?.maxSessionDuration,
1902
+ ...inboundAttemptId && { attemptId: inboundAttemptId },
1869
1903
  callerMetadata: {
1870
1904
  sourceIp: originalClientIp,
1871
1905
  userAgent: request.headers.get("user-agent") || void 0,