@astrasyncai/verification-gateway 5.8.0 → 5.10.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 +56 -7
  5. package/dist/adapters/express.js.map +1 -1
  6. package/dist/adapters/express.mjs +56 -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 +20 -2
  11. package/dist/adapters/mcp.js.map +1 -1
  12. package/dist/adapters/mcp.mjs +20 -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 +56 -7
  17. package/dist/adapters/nextjs.js.map +1 -1
  18. package/dist/adapters/nextjs.mjs +56 -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 +20 -2
  23. package/dist/adapters/sdk.js.map +1 -1
  24. package/dist/adapters/sdk.mjs +20 -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 +32 -6
  31. package/dist/bin/astrasync-codex-hook.js +32 -6
  32. package/dist/bin/astrasync-guard.js +32 -6
  33. package/dist/bin/astrasync.js +33 -6
  34. package/dist/browser/background.js +32 -6
  35. package/dist/browser/background.js.map +1 -1
  36. package/dist/browser/background.mjs +32 -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 +32 -6
  43. package/dist/codex/index.js.map +1 -1
  44. package/dist/codex/index.mjs +32 -6
  45. package/dist/codex/index.mjs.map +1 -1
  46. package/dist/cursor/extension.js +32 -6
  47. package/dist/cursor/extension.js.map +1 -1
  48. package/dist/cursor/extension.mjs +32 -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 +129 -17
  59. package/dist/edge-core/index.js.map +1 -1
  60. package/dist/edge-core/index.mjs +129 -17
  61. package/dist/edge-core/index.mjs.map +1 -1
  62. package/dist/gateway/gateway.js +32 -6
  63. package/dist/gateway/gateway.js.map +1 -1
  64. package/dist/gateway/gateway.mjs +32 -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 +66 -7
  71. package/dist/index.js.map +1 -1
  72. package/dist/index.mjs +64 -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 +20 -2
  103. package/dist/verify.js.map +1 -1
  104. package/dist/verify.mjs +20 -2
  105. package/dist/verify.mjs.map +1 -1
  106. package/package.json +3 -3
package/README.md CHANGED
@@ -407,7 +407,7 @@ interface VerificationResult {
407
407
  name: string;
408
408
  trustScore: number;
409
409
  trustLevel: 'BRONZE' | 'SILVER' | 'GOLD' | 'PLATINUM';
410
- blockchainVerified: boolean;
410
+ blockchainAnchored: boolean;
411
411
  };
412
412
 
413
413
  developer?: {
@@ -1,5 +1,5 @@
1
1
  import { RequestHandler, Request } from 'express';
2
- import { d as VerificationResult, E as ExpressMiddlewareOptions, a as AstraSyncCredentials } from '../types-BK_pRNSs.mjs';
2
+ import { d as VerificationResult, E as ExpressMiddlewareOptions, a as AstraSyncCredentials } from '../types-CTmUpNpS.mjs';
3
3
 
4
4
  /**
5
5
  * AstraSync Universal Verification Gateway - Express Middleware
@@ -1,5 +1,5 @@
1
1
  import { RequestHandler, Request } from 'express';
2
- import { d as VerificationResult, E as ExpressMiddlewareOptions, a as AstraSyncCredentials } from '../types-BK_pRNSs.js';
2
+ import { d as VerificationResult, E as ExpressMiddlewareOptions, a as AstraSyncCredentials } from '../types-CTmUpNpS.js';
3
3
 
4
4
  /**
5
5
  * AstraSync Universal Verification Gateway - Express Middleware
@@ -26,7 +26,7 @@ __export(express_exports, {
26
26
  module.exports = __toCommonJS(express_exports);
27
27
 
28
28
  // src/version.ts
29
- var SDK_VERSION = "5.8.0";
29
+ var SDK_VERSION = "5.10.0";
30
30
 
31
31
  // src/http.ts
32
32
  var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
@@ -497,6 +497,24 @@ async function callVerifyAccessAPI(config, request) {
497
497
  }
498
498
  };
499
499
  }
500
+ if (response.status === 400 && data?.error === "INVALID_AGENT_ID") {
501
+ const message = typeof data?.message === "string" ? data.message : "Agent identifier must be a canonical ASTRA-* id.";
502
+ return {
503
+ success: true,
504
+ attemptId: typeof data?.attemptId === "string" ? data.attemptId : void 0,
505
+ access: {
506
+ allowed: false,
507
+ reason: "invalid_agent_id",
508
+ failures: [
509
+ {
510
+ dimension: "identity.invalid_agent_id",
511
+ message,
512
+ guidance: typeof data?.guidance === "string" ? data.guidance : "Present your canonical ASTRA-* id (discover it via GET /api/agents/request-registration/{requestId} after owner approval)."
513
+ }
514
+ ]
515
+ }
516
+ };
517
+ }
500
518
  if (!response.ok) {
501
519
  if (response.status === 401) {
502
520
  return {
@@ -636,7 +654,7 @@ async function verify(config, request, options) {
636
654
  name: apiResponse.agent.name,
637
655
  trustScore: apiResponse.agent.trustScore,
638
656
  trustLevel: getTrustLevel(apiResponse.agent.trustScore),
639
- blockchainVerified: apiResponse.agent.blockchainStatus === "verified",
657
+ blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
640
658
  status: apiResponse.agent.agentStatus
641
659
  } : void 0;
642
660
  const developer = apiResponse.developer ? {
@@ -1221,11 +1239,16 @@ var DEFAULT_EDGE_CONFIG = Object.freeze({
1221
1239
  mode: "observe",
1222
1240
  depth: "classify",
1223
1241
  pathRules: [],
1224
- sampling: Object.freeze({ anonymousBeaconRate: 0.1 }),
1242
+ sampling: Object.freeze({ anonymousBeaconRate: 1 }),
1225
1243
  failurePosture: "open"
1226
1244
  });
1227
1245
  var EDGE_MODES = ["observe", "enforce"];
1228
1246
  var EDGE_DEPTHS = ["classify", "authenticate", "authorize"];
1247
+ function isSamplingShape(value) {
1248
+ if (typeof value !== "object" || value === null) return false;
1249
+ const rate = value.anonymousBeaconRate;
1250
+ return typeof rate === "number" && rate >= 0 && rate <= 1;
1251
+ }
1229
1252
  function isEdgeConfig(value) {
1230
1253
  if (typeof value !== "object" || value === null) return false;
1231
1254
  const v = value;
@@ -1239,10 +1262,13 @@ function isEdgeConfig(value) {
1239
1262
  if (typeof r.pattern !== "string" || r.pattern.length === 0) return false;
1240
1263
  if (r.mode !== void 0 && !EDGE_MODES.includes(r.mode)) return false;
1241
1264
  if (r.depth !== void 0 && !EDGE_DEPTHS.includes(r.depth)) return false;
1265
+ if (r.sampling !== void 0 && !isSamplingShape(r.sampling)) return false;
1242
1266
  }
1243
- const sampling = v.sampling;
1244
- if (typeof sampling !== "object" || sampling === null || typeof sampling.anonymousBeaconRate !== "number" || sampling.anonymousBeaconRate < 0 || sampling.anonymousBeaconRate > 1) {
1245
- return false;
1267
+ if (!isSamplingShape(v.sampling)) return false;
1268
+ if (v.queryValueAllowlist !== void 0) {
1269
+ if (!Array.isArray(v.queryValueAllowlist) || v.queryValueAllowlist.length > 16 || !v.queryValueAllowlist.every((e) => typeof e === "string" && e.length > 0 && e.length <= 64)) {
1270
+ return false;
1271
+ }
1246
1272
  }
1247
1273
  return v.failurePosture === "open";
1248
1274
  }
@@ -1344,7 +1370,20 @@ var PLATFORM_AGENT_SIGNATURES = [
1344
1370
  {
1345
1371
  vendor: "gemini",
1346
1372
  displayName: "Google Gemini",
1347
- uaPatterns: [/gemini/i, /google-gemini/i, /bard/i],
1373
+ uaPatterns: [
1374
+ /gemini/i,
1375
+ /google-gemini/i,
1376
+ /bard/i,
1377
+ // Google's AI/agent fetcher tokens (VI uplift 1.3). These are the
1378
+ // AI-training/agent crawlers, NOT the Search crawler — googlebot IP
1379
+ // ranges attribute Search and are deliberately absent from
1380
+ // vendor-ip-ranges. Anchored tokens: none appears in stock browser
1381
+ // UAs, and `-` counts as a \b boundary so GoogleOther-Image/-Video
1382
+ // match too.
1383
+ /\bGoogle-Extended\b/i,
1384
+ /\bGoogleOther\b/i,
1385
+ /\bGoogle-CloudVertexBot\b/i
1386
+ ],
1348
1387
  agentCardPatterns: [/gemini\.google\.com/i, /ai\.google\.dev/i],
1349
1388
  apiKeyFormatPatterns: [/^aiza/i],
1350
1389
  headerPatterns: [/^x-goog-user-project/i, /^x-goog-api-client/i]
@@ -1390,6 +1429,16 @@ var PLATFORM_AGENT_SIGNATURES = [
1390
1429
  uaPatterns: [/\bcomet\/\d/i],
1391
1430
  headerPatterns: [/^sec-ch-ua: .*comet/i]
1392
1431
  },
1432
+ // The MCP bridge's own catalog fetches (VI uplift 1.5). Deliberately a
1433
+ // DISTINCT UA from `astrasync-sdk/`: bridge fetches are buyer-agent
1434
+ // traffic merchants should see (identified · unregistered), so this
1435
+ // vendor is kept OUT of the self-traffic filter and the edge's SELF
1436
+ // short-circuit.
1437
+ {
1438
+ vendor: "astrasync-bridge",
1439
+ displayName: "AstraSync MCP bridge (buyer-agent catalog fetch)",
1440
+ uaPatterns: [/^astrasync-bridge\//i]
1441
+ },
1393
1442
  // Our own SDK self-identifies (sdkFetch stamps this UA) — first-party
1394
1443
  // traffic must never pollute the unknown/anonymous pool it exists to audit.
1395
1444
  {