@automatelab/ai-seo-mcp 0.5.0 → 0.6.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 +23 -2
- package/action.yml +15 -3
- package/dist/index.js +39 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/agentic.d.ts +29 -0
- package/dist/lib/agentic.d.ts.map +1 -0
- package/dist/lib/agentic.js +208 -0
- package/dist/lib/agentic.js.map +1 -0
- package/dist/lib/html.d.ts +12 -0
- package/dist/lib/html.d.ts.map +1 -1
- package/dist/lib/html.js +32 -0
- package/dist/lib/html.js.map +1 -1
- package/dist/output-schemas.d.ts +144 -0
- package/dist/output-schemas.d.ts.map +1 -1
- package/dist/output-schemas.js +32 -0
- package/dist/output-schemas.js.map +1 -1
- package/dist/tools/score-agentic-browsing.d.ts +40 -0
- package/dist/tools/score-agentic-browsing.d.ts.map +1 -0
- package/dist/tools/score-agentic-browsing.js +57 -0
- package/dist/tools/score-agentic-browsing.js.map +1 -0
- package/dist/tools/score-citation-worthiness.d.ts +22 -0
- package/dist/tools/score-citation-worthiness.d.ts.map +1 -1
- package/dist/tools/score-citation-worthiness.js +95 -2
- package/dist/tools/score-citation-worthiness.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -103,6 +103,26 @@ Then call `audit_page` with `render: "headless"`. Use static for everything else
|
|
|
103
103
|
|
|
104
104
|
---
|
|
105
105
|
|
|
106
|
+
## Run it in CI (GitHub Action)
|
|
107
|
+
|
|
108
|
+
This repo doubles as a GitHub Action. Drop it in a workflow to fail a PR when any page regresses below an AI-citation score - the same audit engine, gated on every change.
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
- uses: actions/checkout@v4
|
|
112
|
+
- name: AI-SEO audit
|
|
113
|
+
uses: AutomateLab-tech/ai-seo-mcp@v0.5.0
|
|
114
|
+
with:
|
|
115
|
+
urls: "https://example.com,https://example.com/pricing"
|
|
116
|
+
min-score: "70" # fail if any URL scores below this
|
|
117
|
+
respect-robots: "true" # set false for staging / sites you own
|
|
118
|
+
report-path: "ai-seo-report.md" # optional Markdown report artifact
|
|
119
|
+
fail-on-regression: "true"
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
The Action builds the auditor from the pinned ref, runs `audit_page` on each URL, writes a scorecard to the job summary, and exits non-zero if any URL falls below `min-score` (when `fail-on-regression` is true). Outputs: `min_score_observed`, `urls_audited`, `report_path`. Full example: [`examples/github-action-usage.yml`](./examples/github-action-usage.yml).
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
106
126
|
## Further reading
|
|
107
127
|
|
|
108
128
|
- [automatelab.tech](https://automatelab.tech/products/mcp/ai-seo/) - teardowns and case studies
|
|
@@ -110,7 +130,7 @@ Then call `audit_page` with `render: "headless"`. Use static for everything else
|
|
|
110
130
|
---
|
|
111
131
|
|
|
112
132
|
<details>
|
|
113
|
-
<summary>MCP tool surface (
|
|
133
|
+
<summary>MCP tool surface (19 tools)</summary>
|
|
114
134
|
|
|
115
135
|
| Tool | Purpose |
|
|
116
136
|
|------|---------|
|
|
@@ -123,7 +143,8 @@ Then call `audit_page` with `render: "headless"`. Use static for everything else
|
|
|
123
143
|
| `check.sitemap` | Validate XML sitemaps: presence, URL count, `lastmod` freshness, image/video extensions. |
|
|
124
144
|
| `check.technical` | HEAD tag audit: canonical, OpenGraph, Twitter Card, hreflang, HTTPS, noindex, title hygiene. |
|
|
125
145
|
| `score.ai_overview_eligibility` | Score a page's probability of appearing in Google AI Overviews using current correlation factors. |
|
|
126
|
-
| `score.citation_worthiness` | Score how citable a page or text block is for Perplexity, ChatGPT, Google AI Overviews, and Claude. |
|
|
146
|
+
| `score.citation_worthiness` | Score how citable a page or text block is for Perplexity, ChatGPT, Google AI Overviews, and Claude. Includes per-section `chunk_analysis` / `extractability_score`: how cleanly an LLM can lift a standalone answer from each heading. |
|
|
147
|
+
| `score.agentic_browsing` | Score a page against the Lighthouse "Agentic Browsing" category (May 2026): llms.txt, WebMCP, accessibility-tree integrity, and layout stability. |
|
|
127
148
|
| `score.test_citation` | Simulate "would an AI engine cite this for this query?" via MCP sampling, with deterministic heuristic fallback. |
|
|
128
149
|
| `llms_txt.generate` | Generate `llms.txt` and optionally `llms-full.txt` from a domain's sitemap. |
|
|
129
150
|
| `llms_txt.validate` | Lint an existing `llms.txt` for spec compliance and broken links. |
|
package/action.yml
CHANGED
|
@@ -42,9 +42,15 @@ runs:
|
|
|
42
42
|
with:
|
|
43
43
|
node-version: "20"
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
# Build the auditor from this action's own checkout, so the engine version
|
|
46
|
+
# always matches the ref the consumer pinned (e.g. @v0.5.0). No npm version
|
|
47
|
+
# to keep in sync - the action and the CLI it runs are the same commit.
|
|
48
|
+
- name: Build auditor
|
|
46
49
|
shell: bash
|
|
47
|
-
|
|
50
|
+
working-directory: ${{ github.action_path }}
|
|
51
|
+
run: |
|
|
52
|
+
npm ci --no-audit --no-fund
|
|
53
|
+
npm run build
|
|
48
54
|
|
|
49
55
|
- name: Run audit
|
|
50
56
|
id: audit
|
|
@@ -55,12 +61,16 @@ runs:
|
|
|
55
61
|
RESPECT_ROBOTS: ${{ inputs.respect-robots }}
|
|
56
62
|
REPORT_PATH: ${{ inputs.report-path }}
|
|
57
63
|
FAIL_ON_REGRESSION: ${{ inputs.fail-on-regression }}
|
|
64
|
+
ACTION_PATH: ${{ github.action_path }}
|
|
58
65
|
run: |
|
|
66
|
+
set -o pipefail
|
|
59
67
|
ARGS=(--urls "$URLS" --min-score "$MIN_SCORE" --respect-robots "$RESPECT_ROBOTS" --fail-on-regression "$FAIL_ON_REGRESSION")
|
|
60
68
|
if [ -n "$REPORT_PATH" ]; then
|
|
61
69
|
ARGS+=(--report-path "$REPORT_PATH")
|
|
62
70
|
fi
|
|
63
|
-
|
|
71
|
+
# Run from the workspace cwd so --report-path resolves against the consumer repo.
|
|
72
|
+
node "$ACTION_PATH/dist/cli/audit-cli.js" "${ARGS[@]}" | tee "$RUNNER_TEMP/ai-seo-audit.log"
|
|
73
|
+
STATUS=${PIPESTATUS[0]}
|
|
64
74
|
{
|
|
65
75
|
echo "## AI-SEO audit"
|
|
66
76
|
echo ""
|
|
@@ -68,3 +78,5 @@ runs:
|
|
|
68
78
|
cat "$RUNNER_TEMP/ai-seo-audit.log"
|
|
69
79
|
echo '```'
|
|
70
80
|
} >> "$GITHUB_STEP_SUMMARY"
|
|
81
|
+
# Propagate the CLI exit code - tee would otherwise mask a regression failure.
|
|
82
|
+
exit "$STATUS"
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import { scoreAiOverviewEligibility, scoreAiOverviewEligibilityInputSchema } fro
|
|
|
14
14
|
import { generateLlmsTxtTool, generateLlmsTxtInputSchema } from "./tools/generate-llms-txt.js";
|
|
15
15
|
import { validateLlmsTxt } from "./tools/validate-llms-txt.js";
|
|
16
16
|
import { scoreCitationWorthiness } from "./tools/score-citation-worthiness.js";
|
|
17
|
+
import { scoreAgenticBrowsingTool } from "./tools/score-agentic-browsing.js";
|
|
17
18
|
import { rewriteForAeo } from "./tools/rewrite-for-aeo.js";
|
|
18
19
|
import { rewriteForGeo } from "./tools/rewrite-for-geo.js";
|
|
19
20
|
import { extractEntities } from "./tools/extract-entities.js";
|
|
@@ -22,7 +23,7 @@ import { diffPages, diffPagesInputSchema } from "./tools/diff-pages.js";
|
|
|
22
23
|
import { auditSite, auditSiteInputSchema } from "./tools/audit-site.js";
|
|
23
24
|
import { auditSitemap, auditSitemapInputSchema } from "./tools/audit-sitemap.js";
|
|
24
25
|
import { saveAuditReport, saveAuditReportInputSchema } from "./tools/save-audit-report.js";
|
|
25
|
-
import { auditPageOutputShape, auditSchemaOutputShape, auditCanonicalOutputShape, auditSiteOutputShape, auditSitemapOutputShape, checkRobotsOutputShape, checkSitemapOutputShape, checkTechnicalOutputShape, scoreAiOverviewOutputShape, scoreCitationOutputShape, generateLlmsTxtOutputShape, validateLlmsTxtOutputShape, rewriteOutputShape, extractEntitiesOutputShape, testCitationOutputShape, diffPagesOutputShape, saveReportOutputShape, } from "./output-schemas.js";
|
|
26
|
+
import { auditPageOutputShape, auditSchemaOutputShape, auditCanonicalOutputShape, auditSiteOutputShape, auditSitemapOutputShape, checkRobotsOutputShape, checkSitemapOutputShape, checkTechnicalOutputShape, scoreAiOverviewOutputShape, scoreCitationOutputShape, scoreAgenticBrowsingOutputShape, generateLlmsTxtOutputShape, validateLlmsTxtOutputShape, rewriteOutputShape, extractEntitiesOutputShape, testCitationOutputShape, diffPagesOutputShape, saveReportOutputShape, } from "./output-schemas.js";
|
|
26
27
|
import { ToolFetchError } from "./lib/fetch.js";
|
|
27
28
|
const server = new McpServer({
|
|
28
29
|
name: "@automatelab/ai-seo-mcp",
|
|
@@ -223,6 +224,36 @@ server.registerTool("score.ai_overview_eligibility", {
|
|
|
223
224
|
openWorldHint: true,
|
|
224
225
|
},
|
|
225
226
|
}, async (input) => wrapHandler(() => scoreAiOverviewEligibility(input)));
|
|
227
|
+
// --- score.agentic_browsing ---
|
|
228
|
+
server.registerTool("score.agentic_browsing", {
|
|
229
|
+
title: "Score Agentic Browsing readiness",
|
|
230
|
+
description: [
|
|
231
|
+
"Score a page against the four signals Google added to the Lighthouse \"Agentic Browsing\" category in May 2026: presence of an llms.txt, WebMCP integration, accessibility-tree integrity, and layout stability. Returns an overall 0-100 score, a letter grade, and a per-factor breakdown.",
|
|
232
|
+
"Read-only. One HTTP GET for the page plus one for /llms.txt (skip with check_llms_txt=false). Pass `html` instead of `url` to score markup offline (llms.txt is then treated as absent).",
|
|
233
|
+
"Deterministic, rule-based heuristics over the fetched HTML; no LLM and no headless render required. This approximates Lighthouse's runtime signals from static markup - it does not execute Lighthouse.",
|
|
234
|
+
"When to use: checking whether a site is ready for AI agents / agentic browsers, or tracking the new Lighthouse Agentic Browsing category. For citation-eligibility of content, use `score.citation_worthiness`; for a full page audit, use `audit.page`.",
|
|
235
|
+
].join("\n\n"),
|
|
236
|
+
inputSchema: {
|
|
237
|
+
url: z.string().url().optional().describe("Public URL to fetch and score. Either this OR `html` is required."),
|
|
238
|
+
html: z.string().optional().describe("Raw HTML to score offline without fetching. Either this OR `url` is required. llms.txt is treated as absent in this mode."),
|
|
239
|
+
respect_robots: z.boolean().optional().default(true).describe("If true (default), respect robots.txt when fetching `url`. Ignored when `html` is used."),
|
|
240
|
+
render: z.enum(["static", "headless"]).optional().default("static").describe("Rendering mode for `url`. `static` (default) reads raw HTML; `headless` runs Playwright Chromium (adds 3-10s; requires `playwright-core`). Ignored when `html` is used."),
|
|
241
|
+
check_llms_txt: z.boolean().optional().default(true).describe("If true (default), probe /llms.txt for the host to score the llms.txt factor. Set false to skip that extra HTTP GET."),
|
|
242
|
+
},
|
|
243
|
+
outputSchema: scoreAgenticBrowsingOutputShape,
|
|
244
|
+
annotations: {
|
|
245
|
+
title: "Score Agentic Browsing readiness",
|
|
246
|
+
readOnlyHint: true,
|
|
247
|
+
destructiveHint: false,
|
|
248
|
+
idempotentHint: true,
|
|
249
|
+
openWorldHint: true,
|
|
250
|
+
},
|
|
251
|
+
}, async (input) => {
|
|
252
|
+
if (!input.url && !input.html) {
|
|
253
|
+
return toolError({ type: "invalid_url", message: "One of url or html is required" });
|
|
254
|
+
}
|
|
255
|
+
return wrapHandler(() => scoreAgenticBrowsingTool(input));
|
|
256
|
+
});
|
|
226
257
|
// --- llms_txt.generate ---
|
|
227
258
|
server.registerTool("llms_txt.generate", {
|
|
228
259
|
title: "Generate llms.txt",
|
|
@@ -287,6 +318,7 @@ server.registerTool("score.citation_worthiness", {
|
|
|
287
318
|
title: "Score AI citation worthiness",
|
|
288
319
|
description: [
|
|
289
320
|
"Score how citable a page or text block is for AI engines (ChatGPT, Claude, Perplexity, Google AI Overviews). Evaluates BLUF (bottom-line-up-front) opening, FAQ patterns, statistic density, entity clarity, and answer-shape fit for the optional `target_query`.",
|
|
321
|
+
"Also returns `extractability_score` plus per-section `chunk_analysis`: how cleanly an LLM can lift a self-contained answer from each heading-delimited section (length band, lead-sentence directness, anaphora, concrete anchors). This is the GEO mechanic - it pinpoints the exact sections to tighten, with `most_extractable` / `least_extractable` called out.",
|
|
290
322
|
"Read-only when given `url` (one HTTP GET). Zero network when given `text`. No writes.",
|
|
291
323
|
"Deterministic, rule-based; no LLM calls. Returns reproducible scores.",
|
|
292
324
|
"When to use: pre-publish content QA, or to triage which existing pages are worth optimizing for AI citation first. Distinct from `score.ai_overview_eligibility` which scores Google-AI-Overview ranking probability for a URL; this scores the inherent citability of a text passage regardless of host.",
|
|
@@ -557,7 +589,12 @@ server.registerTool("diff.pages", {
|
|
|
557
589
|
// --- audit.site ---
|
|
558
590
|
server.registerTool("audit.site", {
|
|
559
591
|
title: "Audit site (homepage + robots + sitemap + schema)",
|
|
560
|
-
description:
|
|
592
|
+
description: [
|
|
593
|
+
"Single-call site sweep: runs audit.page (homepage), check.robots, check.sitemap, and audit.schema in parallel and returns an overall grade (A–F) plus top-5 highest-impact fixes.",
|
|
594
|
+
"Read-only. Issues several HTTP GETs against the domain (homepage fetch, robots.txt, sitemap.xml, and up to 50 sitemap URL HEAD checks); no writes, no auth required, no rate limits beyond polite per-host throttling. The homepage GET is deduplicated across audit.page and audit.schema (~2 network fetches for 4 logical checks). Deterministic, rule-based scoring; no LLM calls. Same domain returns the same grade on repeated runs given unchanged content.",
|
|
595
|
+
"Output: domain, homepage_url, fetched_at, overall_score (0–100), overall_grade, top_5_fixes (Finding[]), and a parts breakdown with individual audit.page, check.robots, check.sitemap, and audit.schema results — each may be a full result or { error: string } when that sub-audit fails.",
|
|
596
|
+
"When to use: quick 'how does this site look overall?' — use when you want a single consolidated score and actionable fix list without calling 4 tools individually. Distinct from audit.sitemap (samples N pages from the sitemap, not just the homepage) and audit.page (single-URL deep dive with all findings, not just top-5).",
|
|
597
|
+
].join("\n\n"),
|
|
561
598
|
inputSchema: auditSiteInputSchema.shape,
|
|
562
599
|
outputSchema: auditSiteOutputShape,
|
|
563
600
|
annotations: {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Finding } from "../types.js";
|
|
2
|
+
export type Grade = "A" | "B" | "C" | "D" | "F";
|
|
3
|
+
export interface AgenticFactor {
|
|
4
|
+
/** 0-100 subscore for this signal. */
|
|
5
|
+
score: number;
|
|
6
|
+
/** One-line description of what was measured. */
|
|
7
|
+
detail: string;
|
|
8
|
+
}
|
|
9
|
+
export interface AgenticBrowsingResult {
|
|
10
|
+
/** Weighted 0-100 composite (each of the four factors weighs 25%). */
|
|
11
|
+
score: number;
|
|
12
|
+
grade: Grade;
|
|
13
|
+
factors: {
|
|
14
|
+
llms_txt: AgenticFactor;
|
|
15
|
+
webmcp: AgenticFactor;
|
|
16
|
+
accessibility_tree: AgenticFactor;
|
|
17
|
+
layout_stability: AgenticFactor;
|
|
18
|
+
};
|
|
19
|
+
findings: Finding[];
|
|
20
|
+
}
|
|
21
|
+
export interface LlmsTxtState {
|
|
22
|
+
/** Whether an llms.txt was found for the host. */
|
|
23
|
+
present: boolean;
|
|
24
|
+
/** Whether the found llms.txt passed structural validation (no critical findings). */
|
|
25
|
+
valid?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/** Compute the full Agentic Browsing score for a fetched HTML page. */
|
|
28
|
+
export declare function scoreAgenticBrowsing(html: string, llmsTxt: LlmsTxtState): AgenticBrowsingResult;
|
|
29
|
+
//# sourceMappingURL=agentic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentic.d.ts","sourceRoot":"","sources":["../../src/lib/agentic.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE;QACP,QAAQ,EAAE,aAAa,CAAC;QACxB,MAAM,EAAE,aAAa,CAAC;QACtB,kBAAkB,EAAE,aAAa,CAAC;QAClC,gBAAgB,EAAE,aAAa,CAAC;KACjC,CAAC;IACF,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAUD,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,sFAAsF;IACtF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAqID,uEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,qBAAqB,CA2D/F"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
// Agentic Browsing score.
|
|
2
|
+
//
|
|
3
|
+
// Mirrors the four signals Google added to the Lighthouse "Agentic Browsing"
|
|
4
|
+
// category in May 2026: presence of an llms.txt, WebMCP integration, an intact
|
|
5
|
+
// accessibility tree, and layout stability. All checks are static, deterministic
|
|
6
|
+
// heuristics over the fetched HTML (no headless render required) so the score is
|
|
7
|
+
// reproducible. It approximates Lighthouse's runtime signals from markup; it does
|
|
8
|
+
// not run Lighthouse.
|
|
9
|
+
import * as cheerio from "cheerio";
|
|
10
|
+
import { analyzeImages } from "./html.js";
|
|
11
|
+
function grade(score) {
|
|
12
|
+
if (score >= 90)
|
|
13
|
+
return "A";
|
|
14
|
+
if (score >= 75)
|
|
15
|
+
return "B";
|
|
16
|
+
if (score >= 60)
|
|
17
|
+
return "C";
|
|
18
|
+
if (score >= 45)
|
|
19
|
+
return "D";
|
|
20
|
+
return "F";
|
|
21
|
+
}
|
|
22
|
+
/** llms.txt factor: present + valid = 100, present but malformed = 70, absent = 0. */
|
|
23
|
+
function scoreLlmsTxt(state) {
|
|
24
|
+
if (!state.present) {
|
|
25
|
+
return { score: 0, detail: "No llms.txt found at /llms.txt." };
|
|
26
|
+
}
|
|
27
|
+
if (state.valid === false) {
|
|
28
|
+
return { score: 70, detail: "llms.txt present but has structural problems." };
|
|
29
|
+
}
|
|
30
|
+
return { score: 100, detail: "llms.txt present and well-formed." };
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* WebMCP factor: looks for any signal that the page exposes Model Context
|
|
34
|
+
* Protocol tools to agents. WebMCP is nascent, so absence is common and only
|
|
35
|
+
* informational; presence is a strong positive.
|
|
36
|
+
*/
|
|
37
|
+
function scoreWebMcp($, html) {
|
|
38
|
+
const declared = $('script[type="text/mcp"], script[type="application/mcp+json"], script[type="text/mcp+json"]').length > 0 ||
|
|
39
|
+
$('link[rel="mcp"], link[rel="webmcp"]').length > 0 ||
|
|
40
|
+
$('meta[name="mcp"]').length > 0;
|
|
41
|
+
if (declared) {
|
|
42
|
+
return { score: 100, detail: "WebMCP declared via script/link/meta tag." };
|
|
43
|
+
}
|
|
44
|
+
// JS-API usage: navigator.modelContext (WebMCP) or a .well-known/mcp reference.
|
|
45
|
+
const apiHint = /navigator\s*\.\s*modelContext/.test(html) ||
|
|
46
|
+
/\.well-known\/mcp\b/.test(html) ||
|
|
47
|
+
/\bregisterTool\s*\(/.test(html);
|
|
48
|
+
if (apiHint) {
|
|
49
|
+
return { score: 60, detail: "Partial WebMCP signal (JS API or .well-known reference)." };
|
|
50
|
+
}
|
|
51
|
+
return { score: 0, detail: "No WebMCP integration detected." };
|
|
52
|
+
}
|
|
53
|
+
/** Accessibility-tree integrity: lang, landmarks, alt coverage, labeled inputs. */
|
|
54
|
+
function scoreAccessibilityTree($, html) {
|
|
55
|
+
let score = 0;
|
|
56
|
+
const missing = [];
|
|
57
|
+
const lang = $("html").attr("lang");
|
|
58
|
+
if (lang && lang.trim().length > 0)
|
|
59
|
+
score += 20;
|
|
60
|
+
else
|
|
61
|
+
missing.push("html[lang]");
|
|
62
|
+
const hasMain = $("main, [role=main]").length > 0;
|
|
63
|
+
if (hasMain)
|
|
64
|
+
score += 20;
|
|
65
|
+
else
|
|
66
|
+
missing.push("<main> landmark");
|
|
67
|
+
const landmarks = $("nav, header, footer, [role=navigation], [role=banner], [role=contentinfo]").length;
|
|
68
|
+
if (landmarks > 0)
|
|
69
|
+
score += 15;
|
|
70
|
+
else
|
|
71
|
+
missing.push("nav/header/footer landmarks");
|
|
72
|
+
const img = analyzeImages(html);
|
|
73
|
+
const altCoverage = img.total === 0 ? 1 : img.withMeaningfulAlt / img.total;
|
|
74
|
+
if (altCoverage >= 0.8)
|
|
75
|
+
score += 20;
|
|
76
|
+
else if (altCoverage >= 0.5)
|
|
77
|
+
score += 10;
|
|
78
|
+
if (img.total > 0 && altCoverage < 0.8)
|
|
79
|
+
missing.push("image alt text");
|
|
80
|
+
// Form controls: every input/select/textarea should have a label or aria-label.
|
|
81
|
+
let controls = 0;
|
|
82
|
+
let labeled = 0;
|
|
83
|
+
$("input:not([type=hidden]), select, textarea").each((_, el) => {
|
|
84
|
+
controls++;
|
|
85
|
+
const $el = $(el);
|
|
86
|
+
const id = $el.attr("id");
|
|
87
|
+
const hasLabel = (id && $(`label[for="${id}"]`).length > 0) ||
|
|
88
|
+
$el.attr("aria-label") !== undefined ||
|
|
89
|
+
$el.attr("aria-labelledby") !== undefined ||
|
|
90
|
+
$el.closest("label").length > 0;
|
|
91
|
+
if (hasLabel)
|
|
92
|
+
labeled++;
|
|
93
|
+
});
|
|
94
|
+
if (controls === 0)
|
|
95
|
+
score += 15;
|
|
96
|
+
else if (labeled / controls >= 0.9)
|
|
97
|
+
score += 15;
|
|
98
|
+
else {
|
|
99
|
+
score += Math.round((labeled / controls) * 15);
|
|
100
|
+
missing.push("labeled form controls");
|
|
101
|
+
}
|
|
102
|
+
// Discernible names on interactive elements (links/buttons with no text/aria).
|
|
103
|
+
let interactive = 0;
|
|
104
|
+
let named = 0;
|
|
105
|
+
$("a[href], button").each((_, el) => {
|
|
106
|
+
interactive++;
|
|
107
|
+
const $el = $(el);
|
|
108
|
+
const text = $el.text().replace(/\s+/g, " ").trim();
|
|
109
|
+
const hasName = text.length > 0 ||
|
|
110
|
+
$el.attr("aria-label") !== undefined ||
|
|
111
|
+
$el.attr("title") !== undefined ||
|
|
112
|
+
$el.find("img[alt]").filter((_i, im) => ($(im).attr("alt") ?? "").trim().length > 0).length > 0;
|
|
113
|
+
if (hasName)
|
|
114
|
+
named++;
|
|
115
|
+
});
|
|
116
|
+
if (interactive === 0 || named / interactive >= 0.95)
|
|
117
|
+
score += 10;
|
|
118
|
+
else
|
|
119
|
+
missing.push("discernible link/button names");
|
|
120
|
+
score = Math.min(100, score);
|
|
121
|
+
const detail = missing.length === 0
|
|
122
|
+
? "Accessibility tree intact (lang, landmarks, alt text, labels)."
|
|
123
|
+
: `Accessibility gaps: ${missing.join(", ")}.`;
|
|
124
|
+
return { score, detail };
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Layout stability: a CLS proxy. Media that declares intrinsic dimensions
|
|
128
|
+
* (width+height attrs or a CSS aspect-ratio) reserves space and won't shift.
|
|
129
|
+
* Score is the share of media (img/iframe/video) that declares dimensions.
|
|
130
|
+
*/
|
|
131
|
+
function scoreLayoutStability($) {
|
|
132
|
+
let media = 0;
|
|
133
|
+
let dimensioned = 0;
|
|
134
|
+
$("img, iframe, video").each((_, el) => {
|
|
135
|
+
media++;
|
|
136
|
+
const $el = $(el);
|
|
137
|
+
const w = $el.attr("width");
|
|
138
|
+
const h = $el.attr("height");
|
|
139
|
+
const style = ($el.attr("style") ?? "").toLowerCase();
|
|
140
|
+
const hasAspect = style.includes("aspect-ratio") || (/(^|;)\s*width\s*:/.test(style) && /(^|;)\s*height\s*:/.test(style));
|
|
141
|
+
if ((w && h) || hasAspect)
|
|
142
|
+
dimensioned++;
|
|
143
|
+
});
|
|
144
|
+
if (media === 0) {
|
|
145
|
+
return { score: 100, detail: "No media elements that could shift layout." };
|
|
146
|
+
}
|
|
147
|
+
const ratio = dimensioned / media;
|
|
148
|
+
return {
|
|
149
|
+
score: Math.round(ratio * 100),
|
|
150
|
+
detail: `${dimensioned}/${media} media elements declare intrinsic dimensions.`,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/** Compute the full Agentic Browsing score for a fetched HTML page. */
|
|
154
|
+
export function scoreAgenticBrowsing(html, llmsTxt) {
|
|
155
|
+
const $ = cheerio.load(html);
|
|
156
|
+
const factors = {
|
|
157
|
+
llms_txt: scoreLlmsTxt(llmsTxt),
|
|
158
|
+
webmcp: scoreWebMcp($, html),
|
|
159
|
+
accessibility_tree: scoreAccessibilityTree($, html),
|
|
160
|
+
layout_stability: scoreLayoutStability($),
|
|
161
|
+
};
|
|
162
|
+
const score = Math.round(factors.llms_txt.score * 0.25 +
|
|
163
|
+
factors.webmcp.score * 0.25 +
|
|
164
|
+
factors.accessibility_tree.score * 0.25 +
|
|
165
|
+
factors.layout_stability.score * 0.25);
|
|
166
|
+
const findings = [];
|
|
167
|
+
if (factors.llms_txt.score < 100) {
|
|
168
|
+
findings.push({
|
|
169
|
+
severity: llmsTxt.present ? "info" : "warning",
|
|
170
|
+
category: "llms_txt",
|
|
171
|
+
where: "/llms.txt",
|
|
172
|
+
message: factors.llms_txt.detail,
|
|
173
|
+
fix: "Publish a spec-compliant llms.txt at the site root listing your key pages. Lighthouse's Agentic Browsing audit checks for it.",
|
|
174
|
+
estimated_impact: "low",
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
if (factors.webmcp.score < 100) {
|
|
178
|
+
findings.push({
|
|
179
|
+
severity: "info",
|
|
180
|
+
category: "technical",
|
|
181
|
+
where: "<head>",
|
|
182
|
+
message: factors.webmcp.detail,
|
|
183
|
+
fix: "If your site offers agent actions, expose them via WebMCP (a <script type=\"text/mcp\"> manifest or navigator.modelContext). Optional but a positive agentic-browsing signal.",
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
if (factors.accessibility_tree.score < 75) {
|
|
187
|
+
findings.push({
|
|
188
|
+
severity: "warning",
|
|
189
|
+
category: "structure",
|
|
190
|
+
where: "<body>",
|
|
191
|
+
message: factors.accessibility_tree.detail,
|
|
192
|
+
fix: "Add html[lang], a <main> landmark, alt text on content images, and labels on form controls. Agents read the accessibility tree to understand the page.",
|
|
193
|
+
estimated_impact: "medium",
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
if (factors.layout_stability.score < 75) {
|
|
197
|
+
findings.push({
|
|
198
|
+
severity: "warning",
|
|
199
|
+
category: "technical",
|
|
200
|
+
where: "<img>/<iframe>/<video>",
|
|
201
|
+
message: factors.layout_stability.detail,
|
|
202
|
+
fix: "Set explicit width and height (or CSS aspect-ratio) on images, iframes, and videos so content does not shift while loading.",
|
|
203
|
+
estimated_impact: "medium",
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
return { score, grade: grade(score), factors, findings };
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=agentic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentic.js","sourceRoot":"","sources":["../../src/lib/agentic.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/html.d.ts
CHANGED
|
@@ -38,6 +38,18 @@ export interface PageStructure {
|
|
|
38
38
|
export declare function parseHead(html: string, xRobotsTag?: string | string[]): HeadData;
|
|
39
39
|
/** Extract page structure: headings, paragraphs, links, word count, body text. */
|
|
40
40
|
export declare function parseBody(html: string, baseUrl: string): PageStructure;
|
|
41
|
+
/** A content section: a heading and the prose that follows it until the next heading. */
|
|
42
|
+
export interface ContentSection {
|
|
43
|
+
heading: string;
|
|
44
|
+
level: number;
|
|
45
|
+
text: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Split a page's main content into heading-delimited sections, in document order.
|
|
49
|
+
* Nav/header/footer/aside/script/style are stripped first. Nested list text is
|
|
50
|
+
* de-duplicated (a parent <li> does not re-absorb its child <li> text).
|
|
51
|
+
*/
|
|
52
|
+
export declare function extractSections(html: string): ContentSection[];
|
|
41
53
|
/** Extract all JSON-LD script blocks from HTML as raw strings. */
|
|
42
54
|
export declare function extractJsonLdBlocks(html: string): string[];
|
|
43
55
|
/** Image alt-text coverage. */
|
package/dist/lib/html.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/lib/html.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/lib/html.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/html.js
CHANGED
|
@@ -137,6 +137,38 @@ export function parseBody(html, baseUrl) {
|
|
|
137
137
|
bodyText,
|
|
138
138
|
};
|
|
139
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Split a page's main content into heading-delimited sections, in document order.
|
|
142
|
+
* Nav/header/footer/aside/script/style are stripped first. Nested list text is
|
|
143
|
+
* de-duplicated (a parent <li> does not re-absorb its child <li> text).
|
|
144
|
+
*/
|
|
145
|
+
export function extractSections(html) {
|
|
146
|
+
const $ = cheerio.load(html);
|
|
147
|
+
const body = $("body");
|
|
148
|
+
body.find("script, style, nav, header, footer, aside, .nav, .menu").remove();
|
|
149
|
+
const sections = [];
|
|
150
|
+
let current = { heading: "", level: 0, text: "" };
|
|
151
|
+
const flush = () => {
|
|
152
|
+
const text = current.text.trim();
|
|
153
|
+
if (text.length > 0 || current.heading.length > 0)
|
|
154
|
+
sections.push({ ...current, text });
|
|
155
|
+
};
|
|
156
|
+
body.find("h2, h3, p, li").each((_, el) => {
|
|
157
|
+
const tag = el.name ?? "";
|
|
158
|
+
if (tag === "h2" || tag === "h3") {
|
|
159
|
+
flush();
|
|
160
|
+
current = { heading: $(el).text().replace(/\s+/g, " ").trim(), level: tag === "h2" ? 2 : 3, text: "" };
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
// For <li>, drop nested list text so it isn't counted twice.
|
|
164
|
+
const node = tag === "li" ? $(el).clone().children("ul, ol").remove().end() : $(el);
|
|
165
|
+
const txt = node.text().replace(/\s+/g, " ").trim();
|
|
166
|
+
if (txt.length > 0)
|
|
167
|
+
current.text += (current.text ? " " : "") + txt;
|
|
168
|
+
});
|
|
169
|
+
flush();
|
|
170
|
+
return sections.filter((s) => s.heading.length > 0 || s.text.length > 0);
|
|
171
|
+
}
|
|
140
172
|
/** Extract all JSON-LD script blocks from HTML as raw strings. */
|
|
141
173
|
export function extractJsonLdBlocks(html) {
|
|
142
174
|
const $ = cheerio.load(html);
|