ax-audit 3.1.0 → 4.0.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/CHANGELOG.md +198 -0
- package/LICENSE +1 -1
- package/README.md +89 -231
- package/dist/baseline.d.ts +2 -0
- package/dist/baseline.d.ts.map +1 -1
- package/dist/baseline.js +42 -4
- package/dist/baseline.js.map +1 -1
- package/dist/check-ids.d.ts +19 -0
- package/dist/check-ids.d.ts.map +1 -0
- package/dist/check-ids.js +53 -0
- package/dist/check-ids.js.map +1 -0
- package/dist/checks/agent-access.d.ts +33 -0
- package/dist/checks/agent-access.d.ts.map +1 -0
- package/dist/checks/agent-access.js +256 -0
- package/dist/checks/agent-access.js.map +1 -0
- package/dist/checks/agent-card.d.ts +37 -0
- package/dist/checks/agent-card.d.ts.map +1 -0
- package/dist/checks/agent-card.js +352 -0
- package/dist/checks/agent-card.js.map +1 -0
- package/dist/checks/agent-operability.d.ts +66 -0
- package/dist/checks/agent-operability.d.ts.map +1 -0
- package/dist/checks/agent-operability.js +383 -0
- package/dist/checks/agent-operability.js.map +1 -0
- package/dist/checks/agent-skills.d.ts +24 -0
- package/dist/checks/agent-skills.d.ts.map +1 -0
- package/dist/checks/agent-skills.js +316 -0
- package/dist/checks/agent-skills.js.map +1 -0
- package/dist/checks/ai-catalog.d.ts +28 -0
- package/dist/checks/ai-catalog.d.ts.map +1 -0
- package/dist/checks/ai-catalog.js +254 -0
- package/dist/checks/ai-catalog.js.map +1 -0
- package/dist/checks/ai-directives.d.ts +57 -0
- package/dist/checks/ai-directives.d.ts.map +1 -0
- package/dist/checks/ai-directives.js +263 -0
- package/dist/checks/ai-directives.js.map +1 -0
- package/dist/checks/api-discovery.d.ts +26 -0
- package/dist/checks/api-discovery.d.ts.map +1 -0
- package/dist/checks/api-discovery.js +432 -0
- package/dist/checks/api-discovery.js.map +1 -0
- package/dist/checks/auth-discovery.d.ts +28 -0
- package/dist/checks/auth-discovery.d.ts.map +1 -0
- package/dist/checks/auth-discovery.js +213 -0
- package/dist/checks/auth-discovery.js.map +1 -0
- package/dist/checks/commerce-discovery.d.ts +40 -0
- package/dist/checks/commerce-discovery.d.ts.map +1 -0
- package/dist/checks/commerce-discovery.js +295 -0
- package/dist/checks/commerce-discovery.js.map +1 -0
- package/dist/checks/content-negotiation.d.ts.map +1 -1
- package/dist/checks/content-negotiation.js +135 -20
- package/dist/checks/content-negotiation.js.map +1 -1
- package/dist/checks/crawl-efficiency.d.ts +16 -0
- package/dist/checks/crawl-efficiency.d.ts.map +1 -0
- package/dist/checks/crawl-efficiency.js +186 -0
- package/dist/checks/crawl-efficiency.js.map +1 -0
- package/dist/checks/frontmatter.d.ts +34 -0
- package/dist/checks/frontmatter.d.ts.map +1 -0
- package/dist/checks/frontmatter.js +100 -0
- package/dist/checks/frontmatter.js.map +1 -0
- package/dist/checks/html-rendering.d.ts.map +1 -1
- package/dist/checks/html-rendering.js +0 -1
- package/dist/checks/html-rendering.js.map +1 -1
- package/dist/checks/html-utils.d.ts +10 -0
- package/dist/checks/html-utils.d.ts.map +1 -1
- package/dist/checks/html-utils.js +19 -0
- package/dist/checks/html-utils.js.map +1 -1
- package/dist/checks/http-headers.d.ts.map +1 -1
- package/dist/checks/http-headers.js +82 -10
- package/dist/checks/http-headers.js.map +1 -1
- package/dist/checks/http-hygiene.d.ts +26 -0
- package/dist/checks/http-hygiene.d.ts.map +1 -0
- package/dist/checks/http-hygiene.js +257 -0
- package/dist/checks/http-hygiene.js.map +1 -0
- package/dist/checks/index.d.ts.map +1 -1
- package/dist/checks/index.js +30 -8
- package/dist/checks/index.js.map +1 -1
- package/dist/checks/llms-txt.d.ts +15 -0
- package/dist/checks/llms-txt.d.ts.map +1 -1
- package/dist/checks/llms-txt.js +162 -2
- package/dist/checks/llms-txt.js.map +1 -1
- package/dist/checks/mcp-discovery.d.ts +30 -0
- package/dist/checks/mcp-discovery.d.ts.map +1 -0
- package/dist/checks/mcp-discovery.js +523 -0
- package/dist/checks/mcp-discovery.js.map +1 -0
- package/dist/checks/meta-tags.d.ts.map +1 -1
- package/dist/checks/meta-tags.js +6 -5
- package/dist/checks/meta-tags.js.map +1 -1
- package/dist/checks/robots-parser.d.ts +110 -0
- package/dist/checks/robots-parser.d.ts.map +1 -0
- package/dist/checks/robots-parser.js +277 -0
- package/dist/checks/robots-parser.js.map +1 -0
- package/dist/checks/robots-txt.d.ts +2 -0
- package/dist/checks/robots-txt.d.ts.map +1 -1
- package/dist/checks/robots-txt.js +252 -45
- package/dist/checks/robots-txt.js.map +1 -1
- package/dist/checks/{mcp.d.ts → rsl.d.ts} +1 -1
- package/dist/checks/rsl.d.ts.map +1 -0
- package/dist/checks/rsl.js +242 -0
- package/dist/checks/rsl.js.map +1 -0
- package/dist/checks/security-txt.d.ts.map +1 -1
- package/dist/checks/security-txt.js +0 -1
- package/dist/checks/security-txt.js.map +1 -1
- package/dist/checks/seo-basics.d.ts.map +1 -1
- package/dist/checks/seo-basics.js +0 -1
- package/dist/checks/seo-basics.js.map +1 -1
- package/dist/checks/sitemap.d.ts.map +1 -1
- package/dist/checks/sitemap.js +0 -1
- package/dist/checks/sitemap.js.map +1 -1
- package/dist/checks/structured-data.d.ts.map +1 -1
- package/dist/checks/structured-data.js +215 -4
- package/dist/checks/structured-data.js.map +1 -1
- package/dist/checks/structured-fields.d.ts +46 -0
- package/dist/checks/structured-fields.d.ts.map +1 -0
- package/dist/checks/structured-fields.js +112 -0
- package/dist/checks/structured-fields.js.map +1 -0
- package/dist/checks/surface.d.ts +59 -0
- package/dist/checks/surface.d.ts.map +1 -0
- package/dist/checks/surface.js +106 -0
- package/dist/checks/surface.js.map +1 -0
- package/dist/checks/tls-https.d.ts.map +1 -1
- package/dist/checks/tls-https.js +0 -1
- package/dist/checks/tls-https.js.map +1 -1
- package/dist/checks/usage-policy.d.ts +53 -0
- package/dist/checks/usage-policy.d.ts.map +1 -0
- package/dist/checks/usage-policy.js +339 -0
- package/dist/checks/usage-policy.js.map +1 -0
- package/dist/checks/utils.d.ts +25 -1
- package/dist/checks/utils.d.ts.map +1 -1
- package/dist/checks/utils.js +33 -1
- package/dist/checks/utils.js.map +1 -1
- package/dist/checks/waf.d.ts +75 -0
- package/dist/checks/waf.d.ts.map +1 -0
- package/dist/checks/waf.js +203 -0
- package/dist/checks/waf.js.map +1 -0
- package/dist/checks/webmcp.d.ts +55 -0
- package/dist/checks/webmcp.d.ts.map +1 -0
- package/dist/checks/webmcp.js +209 -0
- package/dist/checks/webmcp.js.map +1 -0
- package/dist/checks/well-known.d.ts +38 -0
- package/dist/checks/well-known.d.ts.map +1 -0
- package/dist/checks/well-known.js +202 -0
- package/dist/checks/well-known.js.map +1 -0
- package/dist/cli.d.ts +14 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +144 -6
- package/dist/cli.js.map +1 -1
- package/dist/constants.d.ts +212 -14
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +625 -59
- package/dist/constants.js.map +1 -1
- package/dist/fetcher.d.ts +5 -1
- package/dist/fetcher.d.ts.map +1 -1
- package/dist/fetcher.js +62 -27
- package/dist/fetcher.js.map +1 -1
- package/dist/guide-urls.js +1 -1
- package/dist/guide-urls.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/orchestrator.d.ts +2 -2
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +18 -7
- package/dist/orchestrator.js.map +1 -1
- package/dist/reporter/html.d.ts +9 -0
- package/dist/reporter/html.d.ts.map +1 -1
- package/dist/reporter/html.js +49 -11
- package/dist/reporter/html.js.map +1 -1
- package/dist/reporter/index.d.ts.map +1 -1
- package/dist/reporter/index.js +7 -0
- package/dist/reporter/index.js.map +1 -1
- package/dist/reporter/markdown.d.ts +8 -0
- package/dist/reporter/markdown.d.ts.map +1 -0
- package/dist/reporter/markdown.js +106 -0
- package/dist/reporter/markdown.js.map +1 -0
- package/dist/reporter/terminal.d.ts.map +1 -1
- package/dist/reporter/terminal.js +36 -1
- package/dist/reporter/terminal.js.map +1 -1
- package/dist/scorer.d.ts +10 -0
- package/dist/scorer.d.ts.map +1 -1
- package/dist/scorer.js +22 -5
- package/dist/scorer.js.map +1 -1
- package/dist/types.d.ts +96 -3
- package/dist/types.d.ts.map +1 -1
- package/docs/api.md +200 -0
- package/docs/architecture.md +104 -0
- package/docs/checks.md +555 -0
- package/docs/ci.md +89 -0
- package/docs/cli.md +103 -0
- package/docs/concepts.md +101 -0
- package/docs/faq.md +89 -0
- package/docs/getting-started.md +108 -0
- package/docs/roadmap.md +367 -0
- package/package.json +14 -5
- package/dist/checks/agent-json.d.ts +0 -14
- package/dist/checks/agent-json.d.ts.map +0 -1
- package/dist/checks/agent-json.js +0 -167
- package/dist/checks/agent-json.js.map +0 -1
- package/dist/checks/mcp.d.ts.map +0 -1
- package/dist/checks/mcp.js +0 -162
- package/dist/checks/mcp.js.map +0 -1
- package/dist/checks/openapi.d.ts +0 -4
- package/dist/checks/openapi.d.ts.map +0 -1
- package/dist/checks/openapi.js +0 -121
- package/dist/checks/openapi.js.map +0 -1
- package/dist/checks/well-known-ai.d.ts +0 -17
- package/dist/checks/well-known-ai.d.ts.map +0 -1
- package/dist/checks/well-known-ai.js +0 -123
- package/dist/checks/well-known-ai.js.map +0 -1
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { ALL_AI_CRAWLERS, CORE_AI_CRAWLERS } from '../constants.js';
|
|
1
|
+
import { ALL_AI_CRAWLERS, CONTENT_SIGNALS, CONTENT_SIGNAL_USE_VALUES, CORE_AI_CRAWLERS, crawlerInfo, crawlerPurpose, legacyCrawlerNote, } from '../constants.js';
|
|
2
2
|
import { guideUrl } from '../guide-urls.js';
|
|
3
3
|
import { buildResult } from './utils.js';
|
|
4
|
+
import { parseRobotsTxt, parseContentSignalValue, parseContentUsageValue, toBotEntries, } from './robots-parser.js';
|
|
4
5
|
export const meta = {
|
|
5
6
|
id: 'robots-txt',
|
|
6
7
|
name: 'Robots.txt',
|
|
7
8
|
description: 'Checks AI crawler configuration in robots.txt',
|
|
8
|
-
weight: 11,
|
|
9
9
|
};
|
|
10
|
+
// Re-exported for checks and consumers that were written against the pre-3.7
|
|
11
|
+
// location of the parser. The implementation now lives in `robots-parser.ts`.
|
|
12
|
+
export { parseUserAgents, intentBlocked } from './robots-parser.js';
|
|
10
13
|
export default async function check(ctx) {
|
|
11
14
|
const start = performance.now();
|
|
12
15
|
const findings = [];
|
|
@@ -23,18 +26,26 @@ export default async function check(ctx) {
|
|
|
23
26
|
}
|
|
24
27
|
findings.push({ status: 'pass', message: '/robots.txt exists' });
|
|
25
28
|
const text = res.body;
|
|
26
|
-
const
|
|
29
|
+
const robots = parseRobotsTxt(text);
|
|
30
|
+
const configuredBots = toBotEntries(robots);
|
|
27
31
|
const wildcardEntry = configuredBots.find((b) => b.name === '*');
|
|
28
|
-
const
|
|
29
|
-
|
|
32
|
+
const isConfigured = (bot) => configuredBots.some((b) => b.name.toLowerCase() === bot.toLowerCase());
|
|
33
|
+
// 4.0 scores against the current core set. The 3.x freeze that held it at
|
|
34
|
+
// eight tokens is gone, so the crawlers that gained traffic share in 2026
|
|
35
|
+
// now count.
|
|
36
|
+
const coreConfigured = CORE_AI_CRAWLERS.filter(isConfigured);
|
|
37
|
+
const coreMissing = CORE_AI_CRAWLERS.filter((bot) => !isConfigured(bot));
|
|
30
38
|
if (coreConfigured.length === CORE_AI_CRAWLERS.length) {
|
|
31
|
-
findings.push({
|
|
39
|
+
findings.push({
|
|
40
|
+
status: 'pass',
|
|
41
|
+
message: `All ${CORE_AI_CRAWLERS.length} core AI crawlers explicitly configured`,
|
|
42
|
+
});
|
|
32
43
|
}
|
|
33
44
|
else if (coreConfigured.length > 0) {
|
|
34
45
|
findings.push({
|
|
35
46
|
status: 'warn',
|
|
36
47
|
message: `${coreConfigured.length}/${CORE_AI_CRAWLERS.length} core AI crawlers configured`,
|
|
37
|
-
detail:
|
|
48
|
+
detail: coreMissing.map((bot) => `${bot} — ${crawlerInfo(bot)?.impact ?? 'no explicit rule'}`).join('\n'),
|
|
38
49
|
hint: `Add explicit User-agent entries for the missing crawlers with Allow: / for each one.`,
|
|
39
50
|
learnMoreUrl: guideUrl(meta.id, 'missing-crawlers'),
|
|
40
51
|
});
|
|
@@ -52,7 +63,7 @@ export default async function check(ctx) {
|
|
|
52
63
|
}
|
|
53
64
|
// Check wildcard blocking unconfigured AI crawlers
|
|
54
65
|
if (wildcardEntry?.disallowed) {
|
|
55
|
-
const blockedByWildcard = CORE_AI_CRAWLERS.filter((bot) => !
|
|
66
|
+
const blockedByWildcard = CORE_AI_CRAWLERS.filter((bot) => !isConfigured(bot));
|
|
56
67
|
if (blockedByWildcard.length > 0) {
|
|
57
68
|
findings.push({
|
|
58
69
|
status: 'warn',
|
|
@@ -73,8 +84,16 @@ export default async function check(ctx) {
|
|
|
73
84
|
hint: 'These crawlers have "Disallow: /" rules. If you want AI agents to access your site, change to "Allow: /" for each blocked crawler.',
|
|
74
85
|
learnMoreUrl: guideUrl(meta.id, 'explicitly-blocked'),
|
|
75
86
|
});
|
|
76
|
-
|
|
87
|
+
// 4.0 removed the 3.x freeze: every catalogued crawler counts. Search
|
|
88
|
+
// crawlers cost more than training ones, because blocking a search crawler
|
|
89
|
+
// removes the site from that assistant's answers while blocking a training
|
|
90
|
+
// crawler is a policy choice.
|
|
91
|
+
for (const bot of blockedBots) {
|
|
92
|
+
score -= crawlerPurpose(bot.name) === 'search' ? 5 : 2;
|
|
93
|
+
}
|
|
77
94
|
}
|
|
95
|
+
addBlockedPurposeFindings(blockedBots.map((b) => b.name), findings);
|
|
96
|
+
addLegacyTokenFindings(configuredBots.map((b) => b.name), findings);
|
|
78
97
|
// Check partial restrictions (Disallow on specific paths, not full block)
|
|
79
98
|
const restrictedBots = configuredBots.filter((b) => b.name !== '*' &&
|
|
80
99
|
ALL_AI_CRAWLERS.some((ai) => ai.toLowerCase() === b.name.toLowerCase()) &&
|
|
@@ -89,7 +108,7 @@ export default async function check(ctx) {
|
|
|
89
108
|
learnMoreUrl: guideUrl(meta.id, 'partial-restrictions'),
|
|
90
109
|
});
|
|
91
110
|
}
|
|
92
|
-
if (
|
|
111
|
+
if (robots.sitemaps.length > 0) {
|
|
93
112
|
findings.push({ status: 'pass', message: 'Sitemap directive present' });
|
|
94
113
|
}
|
|
95
114
|
else {
|
|
@@ -101,6 +120,9 @@ export default async function check(ctx) {
|
|
|
101
120
|
});
|
|
102
121
|
score -= 5;
|
|
103
122
|
}
|
|
123
|
+
// Usage-preference directives — informational in 3.x: findings only, no score impact.
|
|
124
|
+
addContentSignalFindings(robots, findings);
|
|
125
|
+
addContentUsageFindings(robots, findings);
|
|
104
126
|
const totalConfigured = ALL_AI_CRAWLERS.filter((bot) => configuredBots.some((b) => b.name.toLowerCase() === bot.toLowerCase()));
|
|
105
127
|
findings.push({
|
|
106
128
|
status: totalConfigured.length >= 10 ? 'pass' : 'warn',
|
|
@@ -114,47 +136,232 @@ export default async function check(ctx) {
|
|
|
114
136
|
});
|
|
115
137
|
return buildResult(meta, score, findings, start);
|
|
116
138
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
139
|
+
/* ── Crawler catalogue reporting (informational in 3.x) ────────────────── */
|
|
140
|
+
/**
|
|
141
|
+
* Explain a block in terms of what it costs, grouped by purpose.
|
|
142
|
+
*
|
|
143
|
+
* Blocking a training crawler is a deliberate, defensible policy choice.
|
|
144
|
+
* Blocking a search crawler removes the site from that assistant's answers,
|
|
145
|
+
* which operators frequently do by accident when copying a "block AI" snippet.
|
|
146
|
+
* Reporting both as one undifferentiated warning hides the difference that
|
|
147
|
+
* matters.
|
|
148
|
+
*/
|
|
149
|
+
function addBlockedPurposeFindings(blockedNames, findings) {
|
|
150
|
+
if (blockedNames.length === 0)
|
|
151
|
+
return;
|
|
152
|
+
const byPurpose = new Map();
|
|
153
|
+
for (const name of blockedNames) {
|
|
154
|
+
const purpose = crawlerPurpose(name);
|
|
155
|
+
if (purpose === undefined)
|
|
124
156
|
continue;
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
157
|
+
byPurpose.set(purpose, [...(byPurpose.get(purpose) ?? []), name]);
|
|
158
|
+
}
|
|
159
|
+
const search = byPurpose.get('search') ?? [];
|
|
160
|
+
if (search.length > 0) {
|
|
161
|
+
findings.push({
|
|
162
|
+
status: 'warn',
|
|
163
|
+
message: `${search.length} assistant search crawler(s) blocked — your site cannot be cited by those assistants`,
|
|
164
|
+
detail: search.map((n) => `${n} — ${crawlerInfo(n)?.impact ?? 'search index crawler'}`).join('\n'),
|
|
165
|
+
hint: 'Search crawlers build the index an assistant cites from; they are separate from the training crawlers. ' +
|
|
166
|
+
'If the intent was to opt out of training only, allow these and block the training tokens instead.',
|
|
167
|
+
learnMoreUrl: guideUrl(meta.id, 'blocked-search-crawlers'),
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
const training = byPurpose.get('training') ?? [];
|
|
171
|
+
if (training.length > 0) {
|
|
172
|
+
findings.push({
|
|
173
|
+
status: 'pass',
|
|
174
|
+
message: `${training.length} training crawler(s) blocked — recorded as a deliberate policy choice`,
|
|
175
|
+
detail: training.join(', '),
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
const userFetch = byPurpose.get('user-fetch') ?? [];
|
|
179
|
+
const ignoring = userFetch.filter((n) => crawlerInfo(n)?.honorsRobots !== true);
|
|
180
|
+
if (ignoring.length > 0) {
|
|
181
|
+
findings.push({
|
|
182
|
+
status: 'warn',
|
|
183
|
+
message: `${ignoring.length} user-triggered fetcher(s) blocked in robots.txt that may ignore it`,
|
|
184
|
+
detail: ignoring
|
|
185
|
+
.map((n) => `${n} — ${crawlerInfo(n)?.note ?? 'documented as possibly ignoring robots.txt'}`)
|
|
186
|
+
.join('\n'),
|
|
187
|
+
hint: 'These clients fetch a page because a person asked for that URL, and their vendors document that robots.txt may not apply. ' +
|
|
188
|
+
'Enforce at the edge if the block must hold.',
|
|
189
|
+
learnMoreUrl: guideUrl(meta.id, 'blocked-user-fetchers'),
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Flag rules for tokens that no longer do anything: renamed products,
|
|
195
|
+
* discontinued crawlers, and strings that were never real user agents but
|
|
196
|
+
* circulate widely in copy-pasted "block AI" snippets.
|
|
197
|
+
*/
|
|
198
|
+
function addLegacyTokenFindings(configuredNames, findings) {
|
|
199
|
+
const legacy = configuredNames
|
|
200
|
+
.map((name) => ({ name, note: legacyCrawlerNote(name) }))
|
|
201
|
+
.filter((e) => e.note !== undefined);
|
|
202
|
+
if (legacy.length === 0)
|
|
203
|
+
return;
|
|
204
|
+
findings.push({
|
|
205
|
+
status: 'warn',
|
|
206
|
+
message: `${legacy.length} robots.txt rule(s) target a retired or non-existent crawler token`,
|
|
207
|
+
detail: legacy.map((e) => `${e.name} — ${e.note}`).join('\n'),
|
|
208
|
+
hint: 'These rules have no effect. Remove them so the file reflects your actual policy.',
|
|
209
|
+
learnMoreUrl: guideUrl(meta.id, 'legacy-tokens'),
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
/* ── Content Signals Policy (https://contentsignals.org) ───────────────── */
|
|
213
|
+
/**
|
|
214
|
+
* Report `Content-Signal:` declarations, the machine-readable statement of how
|
|
215
|
+
* content may be used *after* access. Cloudflare serves these by default on its
|
|
216
|
+
* managed robots.txt, so they show up on a large share of the web.
|
|
217
|
+
*
|
|
218
|
+
* Every finding here is informational in 3.x: no major AI operator has publicly
|
|
219
|
+
* committed to honoring the policy (Google has said its crawlers ignore it), so
|
|
220
|
+
* an absent directive must never cost a site points.
|
|
221
|
+
*/
|
|
222
|
+
function addContentSignalFindings(robots, findings) {
|
|
223
|
+
const declared = robots.groups.flatMap((g) => g.contentSignals.map((raw) => ({ group: g.userAgents, raw })));
|
|
224
|
+
for (const raw of robots.orphanContentSignals) {
|
|
225
|
+
findings.push({
|
|
226
|
+
status: 'warn',
|
|
227
|
+
message: 'Content-Signal directive outside a User-agent group',
|
|
228
|
+
detail: `Content-Signal: ${raw}`,
|
|
229
|
+
hint: 'Place Content-Signal inside a User-agent group, after the User-agent line it applies to.',
|
|
230
|
+
learnMoreUrl: guideUrl(meta.id, 'invalid-content-signal'),
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
if (declared.length === 0) {
|
|
234
|
+
if (robots.orphanContentSignals.length > 0)
|
|
235
|
+
return;
|
|
236
|
+
findings.push({
|
|
237
|
+
status: 'warn',
|
|
238
|
+
message: 'No Content-Signal directive found (optional)',
|
|
239
|
+
hint: 'Declare how crawlers may use your content after access with the Content Signals Policy, ' +
|
|
240
|
+
'e.g.: Content-Signal: search=yes, ai-train=no. Known signals: ' +
|
|
241
|
+
`${CONTENT_SIGNALS.join(', ')}, plus the optional use=${CONTENT_SIGNAL_USE_VALUES.join('|')}. ` +
|
|
242
|
+
'Generate yours at contentsignals.org.',
|
|
243
|
+
learnMoreUrl: guideUrl(meta.id, 'missing-content-signals'),
|
|
244
|
+
});
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
if (robots.cloudflareManaged) {
|
|
248
|
+
findings.push({
|
|
249
|
+
status: 'pass',
|
|
250
|
+
message: 'Content signals served from a Cloudflare-managed robots.txt block',
|
|
251
|
+
detail: 'Edit these in the Cloudflare dashboard (AI Crawl Control), not in your origin robots.txt.',
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
for (const decl of declared) {
|
|
255
|
+
const group = decl.group.join(', ');
|
|
256
|
+
const { valid, malformed, unknown, invalidValue } = parseContentSignalValue(decl.raw);
|
|
257
|
+
if (valid.length > 0) {
|
|
258
|
+
findings.push({
|
|
259
|
+
status: 'pass',
|
|
260
|
+
message: `Content signals declared for User-agent: ${group} — ${valid.join(', ')}`,
|
|
261
|
+
});
|
|
134
262
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
263
|
+
if (malformed.length > 0) {
|
|
264
|
+
findings.push({
|
|
265
|
+
status: 'warn',
|
|
266
|
+
message: `Malformed content signal segment(s) for User-agent: ${group}`,
|
|
267
|
+
detail: malformed.join(', '),
|
|
268
|
+
hint: 'Use comma-delimited signal=yes|no pairs, e.g.: Content-Signal: search=yes, ai-train=no.',
|
|
269
|
+
learnMoreUrl: guideUrl(meta.id, 'invalid-content-signal'),
|
|
270
|
+
});
|
|
141
271
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
272
|
+
if (invalidValue.length > 0) {
|
|
273
|
+
findings.push({
|
|
274
|
+
status: 'warn',
|
|
275
|
+
message: `Content signal(s) with an out-of-vocabulary value for User-agent: ${group}`,
|
|
276
|
+
detail: invalidValue.join(', '),
|
|
277
|
+
hint: `${CONTENT_SIGNALS.join(', ')} take yes or no. ` +
|
|
278
|
+
`use takes ${CONTENT_SIGNAL_USE_VALUES.join(', ')} (default: reference).`,
|
|
279
|
+
learnMoreUrl: guideUrl(meta.id, 'invalid-content-signal'),
|
|
280
|
+
});
|
|
147
281
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
282
|
+
if (unknown.length > 0) {
|
|
283
|
+
findings.push({
|
|
284
|
+
status: 'warn',
|
|
285
|
+
message: `Unknown content signal name(s) for User-agent: ${group}`,
|
|
286
|
+
detail: unknown.join(', '),
|
|
287
|
+
hint: `The Content Signals Policy defines: ${CONTENT_SIGNALS.join(', ')}, use. Other names are ignored by crawlers.`,
|
|
288
|
+
learnMoreUrl: guideUrl(meta.id, 'unknown-content-signal'),
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
/* ── IETF AIPREF Content-Usage (draft-ietf-aipref-attach-05) ────────────── */
|
|
294
|
+
/**
|
|
295
|
+
* Report `Content-Usage:` rules. AIPREF is the IETF's answer to the same
|
|
296
|
+
* question Content Signals asks, and its drafts are still pre-last-call, so
|
|
297
|
+
* these findings are informational and an absent directive is never penalised.
|
|
298
|
+
*
|
|
299
|
+
* The one thing worth flagging loudly is a vocabulary mix-up: AIPREF spells the
|
|
300
|
+
* training token `train-ai` with `y`/`n` values, while Content Signals and RSL
|
|
301
|
+
* spell it `ai-train` with `yes`/`no`. A `Content-Usage: ai-train=no` line looks
|
|
302
|
+
* right and does nothing.
|
|
303
|
+
*/
|
|
304
|
+
function addContentUsageFindings(robots, findings) {
|
|
305
|
+
const declared = robots.groups.flatMap((g) => g.contentUsage.map((raw) => ({ group: g.userAgents, raw })));
|
|
306
|
+
const orphans = robots.orphanContentUsage;
|
|
307
|
+
if (declared.length === 0 && orphans.length === 0)
|
|
308
|
+
return;
|
|
309
|
+
for (const raw of orphans) {
|
|
310
|
+
findings.push({
|
|
311
|
+
status: 'warn',
|
|
312
|
+
message: 'Content-Usage rule outside a User-agent group',
|
|
313
|
+
detail: `Content-Usage: ${raw}`,
|
|
314
|
+
hint: 'AIPREF scopes Content-Usage rules to the User-agent group they appear in. Place the rule after a User-agent line.',
|
|
315
|
+
learnMoreUrl: guideUrl(meta.id, 'invalid-content-usage'),
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
for (const decl of declared) {
|
|
319
|
+
const group = decl.group.join(', ');
|
|
320
|
+
const scope = (path) => (path === null ? '' : ` for ${path}`);
|
|
321
|
+
const { path, valid, unknown, invalidValue, malformed, crossVocabulary } = parseContentUsageValue(decl.raw);
|
|
322
|
+
if (valid.length > 0) {
|
|
323
|
+
findings.push({
|
|
324
|
+
status: 'pass',
|
|
325
|
+
message: `AI usage preferences declared for User-agent: ${group}${scope(path)} — ${valid.join(', ')}`,
|
|
326
|
+
detail: 'IETF AIPREF (draft-ietf-aipref-attach). The drafts are pre-last-call; treat this as a forward-looking signal.',
|
|
327
|
+
});
|
|
153
328
|
}
|
|
154
|
-
|
|
155
|
-
|
|
329
|
+
if (crossVocabulary.length > 0) {
|
|
330
|
+
findings.push({
|
|
331
|
+
status: 'warn',
|
|
332
|
+
message: `Content-Usage uses Content Signals vocabulary for User-agent: ${group}`,
|
|
333
|
+
detail: crossVocabulary.join(', '),
|
|
334
|
+
hint: 'AIPREF defines train-ai and search with y/n values. Content Signals defines ai-train, ai-input and search with yes/no. Write Content-Usage: train-ai=n, and keep ai-train=no on the Content-Signal line.',
|
|
335
|
+
learnMoreUrl: guideUrl(meta.id, 'content-usage-vocabulary'),
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
if (invalidValue.length > 0) {
|
|
339
|
+
findings.push({
|
|
340
|
+
status: 'warn',
|
|
341
|
+
message: `Content-Usage value(s) outside the AIPREF vocabulary for User-agent: ${group}`,
|
|
342
|
+
detail: invalidValue.join(', '),
|
|
343
|
+
hint: 'AIPREF preference values are y and n. An absent token means "unknown", never "allowed".',
|
|
344
|
+
learnMoreUrl: guideUrl(meta.id, 'content-usage-vocabulary'),
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
if (unknown.length > 0) {
|
|
348
|
+
findings.push({
|
|
349
|
+
status: 'warn',
|
|
350
|
+
message: `Unknown Content-Usage token(s) for User-agent: ${group}`,
|
|
351
|
+
detail: unknown.join(', '),
|
|
352
|
+
hint: 'AIPREF vocabulary v07 defines train-ai and search. Extensions require a standards-track RFC.',
|
|
353
|
+
learnMoreUrl: guideUrl(meta.id, 'content-usage-vocabulary'),
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
if (malformed.length > 0) {
|
|
357
|
+
findings.push({
|
|
358
|
+
status: 'warn',
|
|
359
|
+
message: `Malformed Content-Usage segment(s) for User-agent: ${group}`,
|
|
360
|
+
detail: malformed.join(', '),
|
|
361
|
+
hint: 'Content-Usage takes an optional path pattern then a Structured Fields dictionary, e.g.: Content-Usage: /docs/ train-ai=n, search=y.',
|
|
362
|
+
learnMoreUrl: guideUrl(meta.id, 'invalid-content-usage'),
|
|
363
|
+
});
|
|
156
364
|
}
|
|
157
365
|
}
|
|
158
|
-
return entries;
|
|
159
366
|
}
|
|
160
367
|
//# sourceMappingURL=robots-txt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"robots-txt.js","sourceRoot":"","sources":["../../src/checks/robots-txt.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"robots-txt.js","sourceRoot":"","sources":["../../src/checks/robots-txt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsl.d.ts","sourceRoot":"","sources":["../../src/checks/rsl.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAW,MAAM,aAAa,CAAC;AAMjF,eAAO,MAAM,IAAI,EAAE,SAIlB,CAAC;AAmBF,wBAA8B,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA+F3E"}
|