@astrasyncai/verification-gateway 5.8.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 +1 -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 +38 -7
  5. package/dist/adapters/express.js.map +1 -1
  6. package/dist/adapters/express.mjs +38 -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 +38 -7
  17. package/dist/adapters/nextjs.js.map +1 -1
  18. package/dist/adapters/nextjs.mjs +38 -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 +73 -6
  69. package/dist/index.d.ts +73 -6
  70. package/dist/index.js +48 -7
  71. package/dist/index.js.map +1 -1
  72. package/dist/index.mjs +46 -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
package/dist/index.mjs CHANGED
@@ -19,7 +19,7 @@ function getTrustLevel(score) {
19
19
  }
20
20
 
21
21
  // src/version.ts
22
- var SDK_VERSION = "5.8.0";
22
+ var SDK_VERSION = "5.9.0";
23
23
 
24
24
  // src/http.ts
25
25
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -569,7 +569,7 @@ async function verify(config, request, options) {
569
569
  name: apiResponse.agent.name,
570
570
  trustScore: apiResponse.agent.trustScore,
571
571
  trustLevel: getTrustLevel(apiResponse.agent.trustScore),
572
- blockchainVerified: apiResponse.agent.blockchainStatus === "verified",
572
+ blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
573
573
  status: apiResponse.agent.agentStatus
574
574
  } : void 0;
575
575
  const developer = apiResponse.developer ? {
@@ -1153,6 +1153,12 @@ var KEY_FORMAT_PREFIXES = [
1153
1153
  var MAX_HEADERS = 64;
1154
1154
  var MAX_HEADER_VALUE_BYTES = 1024;
1155
1155
  var MAX_TOTAL_BYTES = 16 * 1024;
1156
+ var DECLARED_SOURCE_MAX = 64;
1157
+ var DECLARED_SOURCE_PATTERN = /^[a-z0-9][a-z0-9 ._/-]{0,63}$/;
1158
+ function normalizeDeclaredSource(value) {
1159
+ const trimmed = value?.trim().slice(0, DECLARED_SOURCE_MAX).toLowerCase();
1160
+ return trimmed && DECLARED_SOURCE_PATTERN.test(trimmed) ? trimmed : void 0;
1161
+ }
1156
1162
  function byteLength(s) {
1157
1163
  let bytes = 0;
1158
1164
  for (let i = 0; i < s.length; i++) {
@@ -1332,11 +1338,16 @@ var DEFAULT_EDGE_CONFIG = Object.freeze({
1332
1338
  mode: "observe",
1333
1339
  depth: "classify",
1334
1340
  pathRules: [],
1335
- sampling: Object.freeze({ anonymousBeaconRate: 0.1 }),
1341
+ sampling: Object.freeze({ anonymousBeaconRate: 1 }),
1336
1342
  failurePosture: "open"
1337
1343
  });
1338
1344
  var EDGE_MODES = ["observe", "enforce"];
1339
1345
  var EDGE_DEPTHS = ["classify", "authenticate", "authorize"];
1346
+ function isSamplingShape(value) {
1347
+ if (typeof value !== "object" || value === null) return false;
1348
+ const rate = value.anonymousBeaconRate;
1349
+ return typeof rate === "number" && rate >= 0 && rate <= 1;
1350
+ }
1340
1351
  function isEdgeConfig(value) {
1341
1352
  if (typeof value !== "object" || value === null) return false;
1342
1353
  const v = value;
@@ -1350,10 +1361,13 @@ function isEdgeConfig(value) {
1350
1361
  if (typeof r.pattern !== "string" || r.pattern.length === 0) return false;
1351
1362
  if (r.mode !== void 0 && !EDGE_MODES.includes(r.mode)) return false;
1352
1363
  if (r.depth !== void 0 && !EDGE_DEPTHS.includes(r.depth)) return false;
1364
+ if (r.sampling !== void 0 && !isSamplingShape(r.sampling)) return false;
1353
1365
  }
1354
- const sampling = v.sampling;
1355
- if (typeof sampling !== "object" || sampling === null || typeof sampling.anonymousBeaconRate !== "number" || sampling.anonymousBeaconRate < 0 || sampling.anonymousBeaconRate > 1) {
1356
- return false;
1366
+ if (!isSamplingShape(v.sampling)) return false;
1367
+ if (v.queryValueAllowlist !== void 0) {
1368
+ if (!Array.isArray(v.queryValueAllowlist) || v.queryValueAllowlist.length > 16 || !v.queryValueAllowlist.every((e) => typeof e === "string" && e.length > 0 && e.length <= 64)) {
1369
+ return false;
1370
+ }
1357
1371
  }
1358
1372
  return v.failurePosture === "open";
1359
1373
  }
@@ -1469,7 +1483,20 @@ var PLATFORM_AGENT_SIGNATURES = [
1469
1483
  {
1470
1484
  vendor: "gemini",
1471
1485
  displayName: "Google Gemini",
1472
- uaPatterns: [/gemini/i, /google-gemini/i, /bard/i],
1486
+ uaPatterns: [
1487
+ /gemini/i,
1488
+ /google-gemini/i,
1489
+ /bard/i,
1490
+ // Google's AI/agent fetcher tokens (VI uplift 1.3). These are the
1491
+ // AI-training/agent crawlers, NOT the Search crawler — googlebot IP
1492
+ // ranges attribute Search and are deliberately absent from
1493
+ // vendor-ip-ranges. Anchored tokens: none appears in stock browser
1494
+ // UAs, and `-` counts as a \b boundary so GoogleOther-Image/-Video
1495
+ // match too.
1496
+ /\bGoogle-Extended\b/i,
1497
+ /\bGoogleOther\b/i,
1498
+ /\bGoogle-CloudVertexBot\b/i
1499
+ ],
1473
1500
  agentCardPatterns: [/gemini\.google\.com/i, /ai\.google\.dev/i],
1474
1501
  apiKeyFormatPatterns: [/^aiza/i],
1475
1502
  headerPatterns: [/^x-goog-user-project/i, /^x-goog-api-client/i]
@@ -1515,6 +1542,16 @@ var PLATFORM_AGENT_SIGNATURES = [
1515
1542
  uaPatterns: [/\bcomet\/\d/i],
1516
1543
  headerPatterns: [/^sec-ch-ua: .*comet/i]
1517
1544
  },
1545
+ // The MCP bridge's own catalog fetches (VI uplift 1.5). Deliberately a
1546
+ // DISTINCT UA from `astrasync-sdk/`: bridge fetches are buyer-agent
1547
+ // traffic merchants should see (identified · unregistered), so this
1548
+ // vendor is kept OUT of the self-traffic filter and the edge's SELF
1549
+ // short-circuit.
1550
+ {
1551
+ vendor: "astrasync-bridge",
1552
+ displayName: "AstraSync MCP bridge (buyer-agent catalog fetch)",
1553
+ uaPatterns: [/^astrasync-bridge\//i]
1554
+ },
1518
1555
  // Our own SDK self-identifies (sdkFetch stamps this UA) — first-party
1519
1556
  // traffic must never pollute the unknown/anonymous pool it exists to audit.
1520
1557
  {
@@ -6534,6 +6571,7 @@ export {
6534
6571
  AuthenticationError,
6535
6572
  CAPTURE_SCHEMA_VERSION,
6536
6573
  ChallengeHandler,
6574
+ DECLARED_SOURCE_MAX,
6537
6575
  DEFAULT_EDGE_CONFIG,
6538
6576
  KYDRequiredError,
6539
6577
  MAX_HEADERS,
@@ -6578,6 +6616,7 @@ export {
6578
6616
  matchEdgePathRule,
6579
6617
  matchPlatformSignature,
6580
6618
  nextjs_exports as nextjs,
6619
+ normalizeDeclaredSource,
6581
6620
  parseVerifiedHop,
6582
6621
  pollStepUpStatus,
6583
6622
  prefetchWellKnown,