@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.
- package/README.md +1 -1
- package/dist/adapters/express.d.mts +1 -1
- package/dist/adapters/express.d.ts +1 -1
- package/dist/adapters/express.js +56 -7
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +56 -7
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/mcp.d.mts +1 -1
- package/dist/adapters/mcp.d.ts +1 -1
- package/dist/adapters/mcp.js +20 -2
- package/dist/adapters/mcp.js.map +1 -1
- package/dist/adapters/mcp.mjs +20 -2
- package/dist/adapters/mcp.mjs.map +1 -1
- package/dist/adapters/nextjs.d.mts +1 -1
- package/dist/adapters/nextjs.d.ts +1 -1
- package/dist/adapters/nextjs.js +56 -7
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +56 -7
- package/dist/adapters/nextjs.mjs.map +1 -1
- package/dist/adapters/sdk.d.mts +1 -1
- package/dist/adapters/sdk.d.ts +1 -1
- package/dist/adapters/sdk.js +20 -2
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +20 -2
- package/dist/adapters/sdk.mjs.map +1 -1
- package/dist/agent/index.js +1 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/index.mjs +1 -1
- package/dist/agent/index.mjs.map +1 -1
- package/dist/bin/astrasync-claude-hook.js +32 -6
- package/dist/bin/astrasync-codex-hook.js +32 -6
- package/dist/bin/astrasync-guard.js +32 -6
- package/dist/bin/astrasync.js +33 -6
- package/dist/browser/background.js +32 -6
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +32 -6
- package/dist/browser/background.mjs.map +1 -1
- package/dist/cli/index.js +12 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +12 -4
- package/dist/cli/index.mjs.map +1 -1
- package/dist/codex/index.js +32 -6
- package/dist/codex/index.js.map +1 -1
- package/dist/codex/index.mjs +32 -6
- package/dist/codex/index.mjs.map +1 -1
- package/dist/cursor/extension.js +32 -6
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +32 -6
- package/dist/cursor/extension.mjs.map +1 -1
- package/dist/edge-config.d.mts +24 -1
- package/dist/edge-config.d.ts +24 -1
- package/dist/edge-config.js +13 -5
- package/dist/edge-config.js.map +1 -1
- package/dist/edge-config.mjs +13 -5
- package/dist/edge-config.mjs.map +1 -1
- package/dist/edge-core/index.d.mts +14 -6
- package/dist/edge-core/index.d.ts +14 -6
- package/dist/edge-core/index.js +129 -17
- package/dist/edge-core/index.js.map +1 -1
- package/dist/edge-core/index.mjs +129 -17
- package/dist/edge-core/index.mjs.map +1 -1
- package/dist/gateway/gateway.js +32 -6
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +32 -6
- package/dist/gateway/gateway.mjs.map +1 -1
- package/dist/git-trigger/git-hooks.d.mts +1 -1
- package/dist/git-trigger/git-hooks.d.ts +1 -1
- package/dist/index.d.mts +73 -6
- package/dist/index.d.ts +73 -6
- package/dist/index.js +66 -7
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +64 -7
- package/dist/index.mjs.map +1 -1
- package/dist/metadata-capture.d.mts +18 -1
- package/dist/metadata-capture.d.ts +18 -1
- package/dist/metadata-capture.js +10 -0
- package/dist/metadata-capture.js.map +1 -1
- package/dist/metadata-capture.mjs +8 -0
- package/dist/metadata-capture.mjs.map +1 -1
- package/dist/platform-signatures.d.mts +1 -1
- package/dist/platform-signatures.d.ts +1 -1
- package/dist/platform-signatures.js +24 -1
- package/dist/platform-signatures.js.map +1 -1
- package/dist/platform-signatures.mjs +24 -1
- package/dist/platform-signatures.mjs.map +1 -1
- package/dist/registration/index.js +1 -1
- package/dist/registration/index.js.map +1 -1
- package/dist/registration/index.mjs +1 -1
- package/dist/registration/index.mjs.map +1 -1
- package/dist/transport/index.js +1 -1
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/index.mjs +1 -1
- package/dist/transport/index.mjs.map +1 -1
- package/dist/{types-BK_pRNSs.d.mts → types-CTmUpNpS.d.mts} +25 -2
- package/dist/{types-BK_pRNSs.d.ts → types-CTmUpNpS.d.ts} +25 -2
- package/dist/{types-CwY5IY-0.d.ts → types-CtFXmDzm.d.ts} +17 -2
- package/dist/{types-BCmHFdkJ.d.mts → types-DQrn_kei.d.mts} +17 -2
- package/dist/ui/index.d.mts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/verify.d.mts +13 -1
- package/dist/verify.d.ts +13 -1
- package/dist/verify.js +20 -2
- package/dist/verify.js.map +1 -1
- package/dist/verify.mjs +20 -2
- package/dist/verify.mjs.map +1 -1
- 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.
|
|
22
|
+
var SDK_VERSION = "5.10.0";
|
|
23
23
|
|
|
24
24
|
// src/http.ts
|
|
25
25
|
var SDK_USER_AGENT = `astrasync-sdk/${SDK_VERSION}`;
|
|
@@ -430,6 +430,24 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
430
430
|
}
|
|
431
431
|
};
|
|
432
432
|
}
|
|
433
|
+
if (response.status === 400 && data?.error === "INVALID_AGENT_ID") {
|
|
434
|
+
const message = typeof data?.message === "string" ? data.message : "Agent identifier must be a canonical ASTRA-* id.";
|
|
435
|
+
return {
|
|
436
|
+
success: true,
|
|
437
|
+
attemptId: typeof data?.attemptId === "string" ? data.attemptId : void 0,
|
|
438
|
+
access: {
|
|
439
|
+
allowed: false,
|
|
440
|
+
reason: "invalid_agent_id",
|
|
441
|
+
failures: [
|
|
442
|
+
{
|
|
443
|
+
dimension: "identity.invalid_agent_id",
|
|
444
|
+
message,
|
|
445
|
+
guidance: typeof data?.guidance === "string" ? data.guidance : "Present your canonical ASTRA-* id (discover it via GET /api/agents/request-registration/{requestId} after owner approval)."
|
|
446
|
+
}
|
|
447
|
+
]
|
|
448
|
+
}
|
|
449
|
+
};
|
|
450
|
+
}
|
|
433
451
|
if (!response.ok) {
|
|
434
452
|
if (response.status === 401) {
|
|
435
453
|
return {
|
|
@@ -569,7 +587,7 @@ async function verify(config, request, options) {
|
|
|
569
587
|
name: apiResponse.agent.name,
|
|
570
588
|
trustScore: apiResponse.agent.trustScore,
|
|
571
589
|
trustLevel: getTrustLevel(apiResponse.agent.trustScore),
|
|
572
|
-
|
|
590
|
+
blockchainAnchored: apiResponse.agent.blockchainStatus === "anchored",
|
|
573
591
|
status: apiResponse.agent.agentStatus
|
|
574
592
|
} : void 0;
|
|
575
593
|
const developer = apiResponse.developer ? {
|
|
@@ -1153,6 +1171,12 @@ var KEY_FORMAT_PREFIXES = [
|
|
|
1153
1171
|
var MAX_HEADERS = 64;
|
|
1154
1172
|
var MAX_HEADER_VALUE_BYTES = 1024;
|
|
1155
1173
|
var MAX_TOTAL_BYTES = 16 * 1024;
|
|
1174
|
+
var DECLARED_SOURCE_MAX = 64;
|
|
1175
|
+
var DECLARED_SOURCE_PATTERN = /^[a-z0-9][a-z0-9 ._/-]{0,63}$/;
|
|
1176
|
+
function normalizeDeclaredSource(value) {
|
|
1177
|
+
const trimmed = value?.trim().slice(0, DECLARED_SOURCE_MAX).toLowerCase();
|
|
1178
|
+
return trimmed && DECLARED_SOURCE_PATTERN.test(trimmed) ? trimmed : void 0;
|
|
1179
|
+
}
|
|
1156
1180
|
function byteLength(s) {
|
|
1157
1181
|
let bytes = 0;
|
|
1158
1182
|
for (let i = 0; i < s.length; i++) {
|
|
@@ -1332,11 +1356,16 @@ var DEFAULT_EDGE_CONFIG = Object.freeze({
|
|
|
1332
1356
|
mode: "observe",
|
|
1333
1357
|
depth: "classify",
|
|
1334
1358
|
pathRules: [],
|
|
1335
|
-
sampling: Object.freeze({ anonymousBeaconRate:
|
|
1359
|
+
sampling: Object.freeze({ anonymousBeaconRate: 1 }),
|
|
1336
1360
|
failurePosture: "open"
|
|
1337
1361
|
});
|
|
1338
1362
|
var EDGE_MODES = ["observe", "enforce"];
|
|
1339
1363
|
var EDGE_DEPTHS = ["classify", "authenticate", "authorize"];
|
|
1364
|
+
function isSamplingShape(value) {
|
|
1365
|
+
if (typeof value !== "object" || value === null) return false;
|
|
1366
|
+
const rate = value.anonymousBeaconRate;
|
|
1367
|
+
return typeof rate === "number" && rate >= 0 && rate <= 1;
|
|
1368
|
+
}
|
|
1340
1369
|
function isEdgeConfig(value) {
|
|
1341
1370
|
if (typeof value !== "object" || value === null) return false;
|
|
1342
1371
|
const v = value;
|
|
@@ -1350,10 +1379,13 @@ function isEdgeConfig(value) {
|
|
|
1350
1379
|
if (typeof r.pattern !== "string" || r.pattern.length === 0) return false;
|
|
1351
1380
|
if (r.mode !== void 0 && !EDGE_MODES.includes(r.mode)) return false;
|
|
1352
1381
|
if (r.depth !== void 0 && !EDGE_DEPTHS.includes(r.depth)) return false;
|
|
1382
|
+
if (r.sampling !== void 0 && !isSamplingShape(r.sampling)) return false;
|
|
1353
1383
|
}
|
|
1354
|
-
|
|
1355
|
-
if (
|
|
1356
|
-
|
|
1384
|
+
if (!isSamplingShape(v.sampling)) return false;
|
|
1385
|
+
if (v.queryValueAllowlist !== void 0) {
|
|
1386
|
+
if (!Array.isArray(v.queryValueAllowlist) || v.queryValueAllowlist.length > 16 || !v.queryValueAllowlist.every((e) => typeof e === "string" && e.length > 0 && e.length <= 64)) {
|
|
1387
|
+
return false;
|
|
1388
|
+
}
|
|
1357
1389
|
}
|
|
1358
1390
|
return v.failurePosture === "open";
|
|
1359
1391
|
}
|
|
@@ -1469,7 +1501,20 @@ var PLATFORM_AGENT_SIGNATURES = [
|
|
|
1469
1501
|
{
|
|
1470
1502
|
vendor: "gemini",
|
|
1471
1503
|
displayName: "Google Gemini",
|
|
1472
|
-
uaPatterns: [
|
|
1504
|
+
uaPatterns: [
|
|
1505
|
+
/gemini/i,
|
|
1506
|
+
/google-gemini/i,
|
|
1507
|
+
/bard/i,
|
|
1508
|
+
// Google's AI/agent fetcher tokens (VI uplift 1.3). These are the
|
|
1509
|
+
// AI-training/agent crawlers, NOT the Search crawler — googlebot IP
|
|
1510
|
+
// ranges attribute Search and are deliberately absent from
|
|
1511
|
+
// vendor-ip-ranges. Anchored tokens: none appears in stock browser
|
|
1512
|
+
// UAs, and `-` counts as a \b boundary so GoogleOther-Image/-Video
|
|
1513
|
+
// match too.
|
|
1514
|
+
/\bGoogle-Extended\b/i,
|
|
1515
|
+
/\bGoogleOther\b/i,
|
|
1516
|
+
/\bGoogle-CloudVertexBot\b/i
|
|
1517
|
+
],
|
|
1473
1518
|
agentCardPatterns: [/gemini\.google\.com/i, /ai\.google\.dev/i],
|
|
1474
1519
|
apiKeyFormatPatterns: [/^aiza/i],
|
|
1475
1520
|
headerPatterns: [/^x-goog-user-project/i, /^x-goog-api-client/i]
|
|
@@ -1515,6 +1560,16 @@ var PLATFORM_AGENT_SIGNATURES = [
|
|
|
1515
1560
|
uaPatterns: [/\bcomet\/\d/i],
|
|
1516
1561
|
headerPatterns: [/^sec-ch-ua: .*comet/i]
|
|
1517
1562
|
},
|
|
1563
|
+
// The MCP bridge's own catalog fetches (VI uplift 1.5). Deliberately a
|
|
1564
|
+
// DISTINCT UA from `astrasync-sdk/`: bridge fetches are buyer-agent
|
|
1565
|
+
// traffic merchants should see (identified · unregistered), so this
|
|
1566
|
+
// vendor is kept OUT of the self-traffic filter and the edge's SELF
|
|
1567
|
+
// short-circuit.
|
|
1568
|
+
{
|
|
1569
|
+
vendor: "astrasync-bridge",
|
|
1570
|
+
displayName: "AstraSync MCP bridge (buyer-agent catalog fetch)",
|
|
1571
|
+
uaPatterns: [/^astrasync-bridge\//i]
|
|
1572
|
+
},
|
|
1518
1573
|
// Our own SDK self-identifies (sdkFetch stamps this UA) — first-party
|
|
1519
1574
|
// traffic must never pollute the unknown/anonymous pool it exists to audit.
|
|
1520
1575
|
{
|
|
@@ -6534,6 +6589,7 @@ export {
|
|
|
6534
6589
|
AuthenticationError,
|
|
6535
6590
|
CAPTURE_SCHEMA_VERSION,
|
|
6536
6591
|
ChallengeHandler,
|
|
6592
|
+
DECLARED_SOURCE_MAX,
|
|
6537
6593
|
DEFAULT_EDGE_CONFIG,
|
|
6538
6594
|
KYDRequiredError,
|
|
6539
6595
|
MAX_HEADERS,
|
|
@@ -6578,6 +6634,7 @@ export {
|
|
|
6578
6634
|
matchEdgePathRule,
|
|
6579
6635
|
matchPlatformSignature,
|
|
6580
6636
|
nextjs_exports as nextjs,
|
|
6637
|
+
normalizeDeclaredSource,
|
|
6581
6638
|
parseVerifiedHop,
|
|
6582
6639
|
pollStepUpStatus,
|
|
6583
6640
|
prefetchWellKnown,
|