@pseolint/mcp 0.4.3 → 0.5.4

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 CHANGED
@@ -1,129 +1,161 @@
1
- # @pseolint/mcp
2
-
3
- > MCP server for pseolint — audit programmatic SEO sites from AI coding assistants.
4
-
5
- An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that exposes [pseolint](https://www.npmjs.com/package/pseolint) auditing tools to AI coding assistants like Claude Code, Claude Desktop, Cursor, and Windsurf.
6
-
7
- ### Safety defaults (v0.3.3+)
8
-
9
- All three tools default to `safeMode: "saas"` AI assistants running in end-user
10
- environments can't be tricked into scanning AWS/GCP metadata endpoints, localhost,
11
- or RFC1918 networks via a malicious URL argument. Specifically:
12
-
13
- - `guardSsrf: true` DNS-validated private-range check on the source URL,
14
- sitemap entries, redirect hops, and discovered links
15
- - `respectRobotsTxt: true` — sitemap URLs Disallow'd by the target's `robots.txt`
16
- are skipped instead of crawled
17
- - Tighter `maxFetchBytes` (10 MB) and `maxCrawlDiscovered` (2000) caps
18
-
19
- ## Tools
20
-
21
- ### `audit_site`
22
-
23
- Run a full pseolint audit on a URL or directory path. Returns the SpamBrain Risk Score (0-100) and all findings with actionable fix suggestions.
24
-
25
- **Parameters:**
26
- - `source` (required) URL or directory path to audit
27
- - `threshold` Score threshold for pass/fail (default: 40)
28
- - `sampleSize` Audit a random subset of N pages (0 = all)
29
- - `format` — Output format: `console` or `json` (default: console)
30
-
31
- **Example prompt:** "Audit my site at http://localhost:3000 for SpamBrain risk"
32
-
33
- ### `explain_score`
34
-
35
- Run an audit and get a human-readable explanation of what's driving the SpamBrain Risk Score, including category breakdowns, top issues, and prioritized fix suggestions.
36
-
37
- **Parameters:**
38
- - `source` (required) — URL or directory path to audit
39
-
40
- **Example prompt:** "Explain why my site's SpamBrain score is high"
41
-
42
- ## Installation
43
-
44
- ### Claude Code
45
-
46
- ```bash
47
- claude mcp add pseolint -- npx @pseolint/mcp
48
- ```
49
-
50
- ### Claude Desktop
51
-
52
- Add to `claude_desktop_config.json`:
53
-
54
- ```json
55
- {
56
- "mcpServers": {
57
- "pseolint": {
58
- "command": "npx",
59
- "args": ["@pseolint/mcp"]
60
- }
61
- }
62
- }
63
- ```
64
-
65
- ### Cursor
66
-
67
- Add to `.cursor/mcp.json`:
68
-
69
- ```json
70
- {
71
- "mcpServers": {
72
- "pseolint": {
73
- "command": "npx",
74
- "args": ["@pseolint/mcp"]
75
- }
76
- }
77
- }
78
- ```
79
-
80
- ### Windsurf
81
-
82
- Add to `~/.codeium/windsurf/mcp_config.json`:
83
-
84
- ```json
85
- {
86
- "mcpServers": {
87
- "pseolint": {
88
- "command": "npx",
89
- "args": ["@pseolint/mcp"]
90
- }
91
- }
92
- }
93
- ```
94
-
95
- ### VS Code (GitHub Copilot)
96
-
97
- Add to `.vscode/mcp.json`:
98
-
99
- ```json
100
- {
101
- "servers": {
102
- "pseolint": {
103
- "command": "npx",
104
- "args": ["@pseolint/mcp"]
105
- }
106
- }
107
- }
108
- ```
109
-
110
- ## What It Checks
111
-
112
- 34 rules across 6 categories:
113
-
114
- - **SpamBrain Risk** — near-duplicate detection, entity-swap doorway pages, thin content, boilerplate ratio
115
- - **Content Quality** — unique value per page, heading/meta uniqueness, E-E-A-T signals
116
- - **Internal Linking** — orphan pages, dead ends, cluster connectivity, link depth
117
- - **Technical SEO** — canonical consistency, sitemap completeness, robots.txt conflicts
118
- - **Structured Data** — JSON-LD validation, required fields, schema consistency
119
- - **Cannibalization** — title overlap, keyword collision, URL pattern conflicts
120
-
121
- ## Links
122
-
123
- - [GitHub](https://github.com/ouranos-labs/pseolint)
124
- - [npm: pseolint](https://www.npmjs.com/package/pseolint)
125
- - [npm: @pseolint/core](https://www.npmjs.com/package/@pseolint/core)
126
-
127
- ## License
128
-
129
- MIT
1
+ # @pseolint/mcp
2
+
3
+ > MCP server for pseolint — audit programmatic SEO sites from AI coding assistants.
4
+
5
+ An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that exposes [pseolint](https://www.npmjs.com/package/pseolint) auditing tools to AI coding assistants like Claude Code, Claude Desktop, Cursor, and Windsurf.
6
+
7
+ ### What's new in v0.5.2 — credibility layer
8
+
9
+ - **4 new content-quality rules** in the underlying engine (consumed by `audit_site` and `orchestrate_audit`): `content/title-uniqueness`, `content/heading-structure`, `content/image-alt-text`, `tech/og-completeness`. Findings appear in tool output as standard rule findings.
10
+ - **`audit_site.authorityScore`** parameter (0-100) bring-your-own-DA. `>= 80` shifts the verdict one tier lenient on established brands; `<= 30` shifts one tier stricter on newer/lower-authority operators. Raw `risk` number unchanged.
11
+ - **`audit_site.sampleSeed`** parameter deterministic sampler. Same seed = same audit = same verdict, run after run. AI assistants asking the user to confirm a finding can re-audit reproducibly.
12
+ - **`spam/doorway-pattern` cluster collapse** — a 276-pair finding on a catalog directory now arrives as one cluster line per group, not 276 line items eating the LLM's context window.
13
+ - **Findings stay actionable**: info-severity findings are capped per category bucket so they can't accumulate to tank a verdict on their own; the LLM gets the actual signal, not noise.
14
+ - **Calibrated** against reputable in-production pSEO sites; trade-offs and limitations documented at [pseolint.dev/methodology](https://pseolint.dev/methodology).
15
+
16
+ ### What's new in v0.5
17
+
18
+ **`orchestrate_audit` tool.** Drives an LLM through 25 deterministic audit tools and produces a fix manifest with concrete copy-paste patches (rewritten H1s, JSON-LD blocks, robots.txt diffs). Use when a user wants concrete fixes — not just a list of issues.
19
+
20
+ **Conservative MCP defaults**: $2 / 60 tool calls / 180 seconds wall (vs CLI's $5 / 100 / 300). Two output modes: `summary` (terse text for chat UI) and `json` (full manifest + validation + diff). Each invocation reports actual USD spend. Patches that fail deterministic validators are dropped from the manifest and surfaced separately.
21
+
22
+ **Example prompt**: "Use the orchestrate_audit tool to run an AI-native audit of https://example.com with concrete fix proposals."
23
+
24
+ ### Safety defaults (v0.3.3+)
25
+
26
+ All three tools default to `safeMode: "saas"` — AI assistants running in end-user
27
+ environments can't be tricked into scanning AWS/GCP metadata endpoints, localhost,
28
+ or RFC1918 networks via a malicious URL argument. Specifically:
29
+
30
+ - `guardSsrf: true` — DNS-validated private-range check on the source URL,
31
+ sitemap entries, redirect hops, and discovered links
32
+ - `respectRobotsTxt: true` — sitemap URLs Disallow'd by the target's `robots.txt`
33
+ are skipped instead of crawled
34
+ - Tighter `maxFetchBytes` (10 MB) and `maxCrawlDiscovered` (2000) caps
35
+
36
+ ## Tools
37
+
38
+ ### `orchestrate_audit` (v0.5)
39
+
40
+ Drive an LLM through 25 audit tools and produce a fix manifest with concrete patches. Use when a user wants paste-able fixes (not just a list of issues). Costs ~$1-3 per audit on managed Anthropic.
41
+
42
+ **Parameters:**
43
+ - `domain` (required) — URL of the site to audit (e.g. https://example.com)
44
+ - `maxCostUsd` — Hard USD cap (default 2)
45
+ - `maxToolCalls` — Hard tool-call cap (default 60)
46
+ - `maxWallSeconds` — Hard wall-clock cap (default 180)
47
+ - `format` `summary` (terse text) or `json` (full manifest + validation + diff)
48
+
49
+ **Returns**: text summary with verdict + categories + top-3 patches per bucket (or full JSON when `format: "json"`). Validation failures listed separately so the LLM-host conversation stays grounded in what actually shipped.
50
+
51
+ **Example prompt:** "Use orchestrate_audit on https://example.com with format=summary"
52
+
53
+ ### `audit_site`
54
+
55
+ Run a full pseolint audit on a URL or directory path. Returns the SpamBrain Risk Score (0-100) and all findings with actionable fix suggestions.
56
+
57
+ **Parameters:**
58
+ - `source` (required) — URL or directory path to audit
59
+ - `threshold` — Score threshold for pass/fail (default: 40)
60
+ - `sampleSize` — Audit a random subset of N pages (0 = all)
61
+ - `format` — Output format: `console` or `json` (default: console)
62
+
63
+ **Example prompt:** "Audit my site at http://localhost:3000 for SpamBrain risk"
64
+
65
+ ### `explain_score`
66
+
67
+ Run an audit and get a human-readable explanation of what's driving the SpamBrain Risk Score, including category breakdowns, top issues, and prioritized fix suggestions.
68
+
69
+ **Parameters:**
70
+ - `source` (required) — URL or directory path to audit
71
+
72
+ **Example prompt:** "Explain why my site's SpamBrain score is high"
73
+
74
+ ## Installation
75
+
76
+ ### Claude Code
77
+
78
+ ```bash
79
+ claude mcp add pseolint -- npx @pseolint/mcp
80
+ ```
81
+
82
+ ### Claude Desktop
83
+
84
+ Add to `claude_desktop_config.json`:
85
+
86
+ ```json
87
+ {
88
+ "mcpServers": {
89
+ "pseolint": {
90
+ "command": "npx",
91
+ "args": ["@pseolint/mcp"]
92
+ }
93
+ }
94
+ }
95
+ ```
96
+
97
+ ### Cursor
98
+
99
+ Add to `.cursor/mcp.json`:
100
+
101
+ ```json
102
+ {
103
+ "mcpServers": {
104
+ "pseolint": {
105
+ "command": "npx",
106
+ "args": ["@pseolint/mcp"]
107
+ }
108
+ }
109
+ }
110
+ ```
111
+
112
+ ### Windsurf
113
+
114
+ Add to `~/.codeium/windsurf/mcp_config.json`:
115
+
116
+ ```json
117
+ {
118
+ "mcpServers": {
119
+ "pseolint": {
120
+ "command": "npx",
121
+ "args": ["@pseolint/mcp"]
122
+ }
123
+ }
124
+ }
125
+ ```
126
+
127
+ ### VS Code (GitHub Copilot)
128
+
129
+ Add to `.vscode/mcp.json`:
130
+
131
+ ```json
132
+ {
133
+ "servers": {
134
+ "pseolint": {
135
+ "command": "npx",
136
+ "args": ["@pseolint/mcp"]
137
+ }
138
+ }
139
+ }
140
+ ```
141
+
142
+ ## What It Checks
143
+
144
+ 34 rules across 6 categories:
145
+
146
+ - **SpamBrain Risk** — near-duplicate detection, entity-swap doorway pages, thin content, boilerplate ratio
147
+ - **Content Quality** — unique value per page, heading/meta uniqueness, E-E-A-T signals
148
+ - **Internal Linking** — orphan pages, dead ends, cluster connectivity, link depth
149
+ - **Technical SEO** — canonical consistency, sitemap completeness, robots.txt conflicts
150
+ - **Structured Data** — JSON-LD validation, required fields, schema consistency
151
+ - **Cannibalization** — title overlap, keyword collision, URL pattern conflicts
152
+
153
+ ## Links
154
+
155
+ - [GitHub](https://github.com/ouranos-labs/pseolint)
156
+ - [npm: pseolint](https://www.npmjs.com/package/pseolint)
157
+ - [npm: @pseolint/core](https://www.npmjs.com/package/@pseolint/core)
158
+
159
+ ## License
160
+
161
+ MIT
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8JpE,wBAAgB,YAAY,IAAI,SAAS,CA0JxC;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAIpD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8JpE,wBAAgB,YAAY,IAAI,SAAS,CAuNxC;AA6ED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAIpD"}
package/dist/server.js CHANGED
@@ -2,7 +2,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
3
  import { z } from "zod";
4
4
  import { createRequire } from "node:module";
5
- import { auditSource, formatConsole, formatJson } from "@pseolint/core";
5
+ import { auditSource, formatConsole, formatJson, orchestrate } from "@pseolint/core";
6
6
  /**
7
7
  * MCP SDK 1.29's `inputSchema` is typed as `ZodRawShapeCompat = Record<string,
8
8
  * z3.ZodTypeAny | z4.$ZodType>` via a zod-compat shim. zod 4.4.x's high-level
@@ -271,8 +271,121 @@ export function createServer() {
271
271
  };
272
272
  }
273
273
  });
274
+ server.registerTool("orchestrate_audit", {
275
+ title: "Orchestrate AI-Native pSEO Audit",
276
+ description: "Use when a user wants concrete, paste-able fixes (rewritten H1s, JSON-LD blocks, robots.txt patches, internal-link suggestions) — not just a list of issues. " +
277
+ "An LLM drives 25 tools (sitemap fetch, template clustering, per-page rule checks, AEO probes) and produces a fix manifest with structured patches, each validated against a deterministic schema. " +
278
+ "Costs real money (~$1-3 per audit on managed Anthropic). Capped at $2 / 60 tool calls / 180 seconds by default — adjust if the user asks for a deeper run. " +
279
+ "Returns a text summary plus the structured manifest if `format` is 'json'. The full manifest can be streamed via the CLI: `pseolint orchestrate <domain> --manifest-out manifest.json`.",
280
+ inputSchema: inputShape({
281
+ domain: z.string().describe("URL of the site to audit (e.g. https://example.com). The orchestrator's first tool call fetches the sitemap."),
282
+ maxCostUsd: z.number().optional().default(2).describe("Hard USD cap for this session. Default $2 (conservative for MCP-invoked sessions)."),
283
+ maxToolCalls: z.number().int().optional().default(60).describe("Hard tool-call cap. Default 60."),
284
+ maxWallSeconds: z.number().int().optional().default(180).describe("Hard wall-clock cap in seconds. Default 180 (3 minutes)."),
285
+ format: z.enum(["summary", "json"]).optional().default("summary").describe("'summary' = terse text for chat UI; 'json' = full manifest + validation + diff."),
286
+ }),
287
+ annotations: {
288
+ readOnlyHint: true,
289
+ destructiveHint: false,
290
+ openWorldHint: true,
291
+ },
292
+ }, async ({ domain, maxCostUsd, maxToolCalls, maxWallSeconds, format }) => {
293
+ try {
294
+ const result = await orchestrate({
295
+ domain,
296
+ userId: "mcp",
297
+ budget: {
298
+ maxSessionUsd: maxCostUsd,
299
+ maxToolCalls,
300
+ maxWallSeconds,
301
+ },
302
+ });
303
+ if (format === "json") {
304
+ return {
305
+ content: [{ type: "text", text: JSON.stringify({ session: { reason: result.session.reason, usage: result.session.usage, error: result.session.error },
306
+ manifest: result.manifest,
307
+ validation: result.validation,
308
+ diff: result.diff }, null, 2) }],
309
+ isError: result.session.reason !== "completed",
310
+ };
311
+ }
312
+ const text = buildOrchestrateSummary(result.session.reason, result.session.usage, result.manifest, result.validation);
313
+ return {
314
+ content: [{ type: "text", text }],
315
+ isError: result.session.reason !== "completed",
316
+ };
317
+ }
318
+ catch (err) {
319
+ return {
320
+ content: [{ type: "text", text: friendlyError(err, domain) }],
321
+ isError: true,
322
+ };
323
+ }
324
+ });
274
325
  return server;
275
326
  }
327
+ /**
328
+ * Compact text summary suitable for an MCP chat UI. Long manifests get
329
+ * truncated to top-3 patches per bucket; full output is available via the
330
+ * CLI's `--manifest-out` flag.
331
+ */
332
+ function buildOrchestrateSummary(reason, usage, manifest, validation) {
333
+ const lines = [];
334
+ lines.push(`pseolint orchestrate · reason=${reason}`);
335
+ lines.push(` tool calls: ${usage.toolCallCount}` +
336
+ ` · cost: $${usage.estimatedUsd.toFixed(3)}` +
337
+ ` · duration: ${(usage.elapsedMs / 1000).toFixed(1)}s`);
338
+ if (!manifest) {
339
+ lines.push("");
340
+ lines.push("No manifest produced. The orchestrator stopped before calling finish_audit.");
341
+ return lines.join("\n");
342
+ }
343
+ const cats = manifest.categories;
344
+ lines.push(` verdict: ${manifest.verdict}` +
345
+ ` · ${cats.integrity}/${cats.discoverability}/${cats.citation}/${cats.data}` +
346
+ ` (integrity / discoverability / citation / data)`);
347
+ if (validation) {
348
+ const dropped = validation.failures.length;
349
+ lines.push(` patches: ${validation.validPatches}/${validation.totalPatches} valid` +
350
+ (dropped > 0 ? ` · ${dropped} dropped (failed validation)` : ""));
351
+ }
352
+ lines.push("");
353
+ if (manifest.pages.length === 0 && manifest.templates.length === 0 && manifest.domainLevel.length === 0) {
354
+ lines.push("Manifest is empty — orchestrator found nothing actionable.");
355
+ }
356
+ else {
357
+ if (manifest.pages.length > 0) {
358
+ lines.push(`Page-level patches (${manifest.pages.length} pages):`);
359
+ for (const p of manifest.pages.slice(0, 3)) {
360
+ const types = p.changes.map((c) => c.type).join(", ");
361
+ lines.push(` • ${p.url}: ${types}`);
362
+ }
363
+ if (manifest.pages.length > 3)
364
+ lines.push(` … and ${manifest.pages.length - 3} more`);
365
+ lines.push("");
366
+ }
367
+ if (manifest.templates.length > 0) {
368
+ lines.push(`Template-level patches (${manifest.templates.length} templates):`);
369
+ for (const t of manifest.templates.slice(0, 3)) {
370
+ lines.push(` • ${t.templateId} (${t.affectedUrlCount} URLs): ${t.recommendation}`);
371
+ }
372
+ if (manifest.templates.length > 3)
373
+ lines.push(` … and ${manifest.templates.length - 3} more`);
374
+ lines.push("");
375
+ }
376
+ if (manifest.domainLevel.length > 0) {
377
+ lines.push(`Domain-level patches (${manifest.domainLevel.length}):`);
378
+ for (const d of manifest.domainLevel.slice(0, 3)) {
379
+ lines.push(` • ${d.type}: ${d.reason}`);
380
+ }
381
+ if (manifest.domainLevel.length > 3)
382
+ lines.push(` … and ${manifest.domainLevel.length - 3} more`);
383
+ lines.push("");
384
+ }
385
+ }
386
+ lines.push("For full manifest + diffs: `pseolint orchestrate " + manifest.domain + " --manifest-out manifest.json`");
387
+ return lines.join("\n");
388
+ }
276
389
  export async function startMcpServer() {
277
390
  const server = createServer();
278
391
  const transport = new StdioServerTransport();
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGrF;;;;;;;;;;;;;GAaG;AACH,SAAS,UAAU,CAAyC,KAAQ;IAClE,OAAO,KAAyC,CAAC;AACnD,CAAC;AAED,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE;IAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAChD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC,CAAC,EAAE,CAAC;AAEL,SAAS,aAAa,CAAC,GAAY,EAAE,MAAc;IACjD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1D,OAAO,mBAAmB,MAAM,6EAA6E,GAAG,EAAE,CAAC;IACrH,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC5C,OAAO,wBAAwB,MAAM,0CAA0C,CAAC;IAClF,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,OAAO,cAAc,MAAM,0HAA0H,CAAC;IACxJ,CAAC;IACD,OAAO,oBAAoB,MAAM,KAAK,GAAG,EAAE,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,OAAgC;IACpD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO,CAAC,CAAO,OAAO,OAAO,CAAC;QACnC,KAAK,SAAS,CAAC,CAAK,OAAO,SAAS,CAAC;QACrC,KAAK,YAAY,CAAC,CAAE,OAAO,YAAY,CAAC;QACxC,KAAK,UAAU,CAAC,CAAI,OAAO,UAAU,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAAqB;IAC1C,OAAO;QACL,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ;QAC1B,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS;QAC3B,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAqB,EAAE,SAAiB;IAChE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAE7D,KAAK,CAAC,IAAI,CAAC,qBAAqB,KAAK,UAAU,OAAO,CAAC,IAAI,yBAAyB,QAAQ,iBAAiB,SAAS,EAAE,CAAC,CAAC;IAC1H,KAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAEnD,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvF,IAAI,EAAE,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,MAAM,QAAQ,EAAE,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,oCAAoC,CAAC,CAAC;QAC5I,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAE9D,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE;YAC1E,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;YAC7D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACf,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,UAAU,CAAC,CAAC;YAChE,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,UAAU,CAAC,CAAC;YAChE,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACjE,MAAM,SAAS,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,MAAM,KAAK,KAAK,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjF,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,IAAI,sBAAsB,SAAS,iFAAiF,CAAC,CAAC;IACnJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,IAAI,uBAAuB,SAAS,0BAA0B,CAAC,CAAC;IAC7F,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,qBAAqB,EAAE,kBAAkB,EAAE,wBAAwB;IACnE,yBAAyB,EAAE,2BAA2B,EAAE,sBAAsB;IAC9E,wBAAwB,EAAE,sBAAsB;IAChD,yBAAyB;IACzB,sBAAsB;IACtB,oBAAoB,EAAE,iBAAiB;IACvC,4BAA4B;CAC7B,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,UAAU;QAChB,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,+BAA+B;QACtC,WAAW,EAAE,6fAA6f;QAC1gB,WAAW,EAAE,UAAU,CAAC;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC;YAC7G,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,gHAAgH,CAAC;YACvK,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+GAA+G,CAAC;YACtK,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,sFAAsF,CAAC;SACnK,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QAClD,IAAI,CAAC;YACH,wEAAwE;YACxE,oEAAoE;YACpE,yEAAyE;YACzE,mEAAmE;YACnE,MAAM,OAAO,GAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;YACtC,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAEnD,IAAI,IAAY,CAAC;YACjB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,OAAO,CAAC,SAAS,IAAI,cAAc,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;gBAC5D,IAAI,IAAI,+BAA+B,cAAc,+EAA+E,MAAM,EAAE,CAAC;YAC/I,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;gBAC1C,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS;aACnC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;gBACtE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,iRAAiR;QAC9R,WAAW,EAAE,UAAU,CAAC;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC;YAC7G,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;SAC5G,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,OAAO,GAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC/E,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAElD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;gBAC1C,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS;aACnC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;gBACtE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE,6TAA6T;QAC1U,WAAW,EAAE,UAAU,CAAC;YACtB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oFAAoF,CAAC;SAC/G,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QAChB,IAAI,CAAC;YACH,MAAM,OAAO,GAAiB;gBAC5B,cAAc,EAAE,KAAK;gBACrB,QAAQ,EAAE,MAAM;aACjB,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAE9F,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,SAAS,eAAe,CAAC,MAAM,SAAS,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC/F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;oBAChC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBACtE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;wBACV,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,kIAAkI,CAAC,CAAC;YAE/I,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;aAC7D,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;gBACnE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,kCAAkC;QACzC,WAAW,EACT,+JAA+J;YAC/J,oMAAoM;YACpM,6JAA6J;YAC7J,yLAAyL;QAC3L,WAAW,EAAE,UAAU,CAAC;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8GAA8G,CAAC;YAC3I,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oFAAoF,CAAC;YAC3I,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YACjG,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,0DAA0D,CAAC;YAC7H,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,iFAAiF,CAAC;SAC9J,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE;QACrE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAC/B,MAAM;gBACN,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE;oBACN,aAAa,EAAE,UAAU;oBACzB,YAAY;oBACZ,cAAc;iBACf;aACF,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CACrD,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;gCACpG,QAAQ,EAAE,MAAM,CAAC,QAAQ;gCACzB,UAAU,EAAE,MAAM,CAAC,UAAU;gCAC7B,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EACrB,IAAI,EAAE,CAAC,CACR,EAAE,CAAC;oBACJ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,WAAW;iBAC/C,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACtH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;gBAC1C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,WAAW;aAC/C,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;gBACtE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,MAAc,EACd,KAAyE,EACzE,QAA4B,EAC5B,UAA2C;IAE3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CACR,iBAAiB,KAAK,CAAC,aAAa,EAAE;QACpC,eAAe,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC9C,kBAAkB,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAC3D,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;QAC1F,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC;IACjC,KAAK,CAAC,IAAI,CACR,cAAc,QAAQ,CAAC,OAAO,EAAE;QAC9B,QAAQ,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;QAC9E,kDAAkD,CACrD,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3C,KAAK,CAAC,IAAI,CACR,cAAc,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,QAAQ;YACtE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,OAAO,8BAA8B,CAAC,CAAC,CAAC,EAAE,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxG,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,CAAC,KAAK,CAAC,MAAM,UAAU,CAAC,CAAC;YACnE,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;YACvF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,2BAA2B,QAAQ,CAAC,SAAS,CAAC,MAAM,cAAc,CAAC,CAAC;YAC/E,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC/C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,gBAAgB,WAAW,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;YACtF,CAAC;YACD,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,yBAAyB,QAAQ,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC;YACrE,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACjD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;YACnG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,mDAAmD,GAAG,QAAQ,CAAC,MAAM,GAAG,gCAAgC,CAAC,CAAC;IACrH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
package/package.json CHANGED
@@ -1,49 +1,49 @@
1
- {
2
- "name": "@pseolint/mcp",
3
- "version": "0.4.3",
4
- "description": "MCP server for pseolint — audit programmatic SEO sites from AI coding assistants. v0.4 verdict-ladder + site-classification surfacing in explain_score.",
5
- "license": "MIT",
6
- "author": "Ouranos Labs <contact@ouranos-labs.dev>",
7
- "homepage": "https://pseolint.dev",
8
- "repository": {
9
- "type": "git",
10
- "url": "https://github.com/ouranos-labs/pseolint.git",
11
- "directory": "packages/mcp"
12
- },
13
- "keywords": [
14
- "mcp",
15
- "model-context-protocol",
16
- "seo",
17
- "pseo",
18
- "spambrain",
19
- "lint",
20
- "ai"
21
- ],
22
- "type": "module",
23
- "bin": {
24
- "pseolint-mcp": "dist/bin.js"
25
- },
26
- "exports": {
27
- ".": {
28
- "import": "./dist/index.js",
29
- "types": "./dist/index.d.ts"
30
- }
31
- },
32
- "main": "dist/index.js",
33
- "types": "dist/index.d.ts",
34
- "engines": {
35
- "node": ">=18"
36
- },
37
- "files": [
38
- "dist"
39
- ],
40
- "scripts": {
41
- "build": "tsc -p tsconfig.json",
42
- "lint": "tsc --noEmit -p tsconfig.json"
43
- },
44
- "dependencies": {
45
- "@modelcontextprotocol/sdk": "^1.29.0",
46
- "@pseolint/core": "workspace:*",
47
- "zod": "^4.3.6"
48
- }
49
- }
1
+ {
2
+ "name": "@pseolint/mcp",
3
+ "version": "0.5.4",
4
+ "description": "MCP server for pseolint — audit programmatic SEO sites from AI coding assistants. v0.5 adds the AI-orchestrated audit tool that produces a fix manifest with concrete patches.",
5
+ "license": "MIT",
6
+ "author": "Ouranos Labs <contact@ouranos-labs.dev>",
7
+ "homepage": "https://pseolint.dev",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/ouranos-labs/pseolint.git",
11
+ "directory": "packages/mcp"
12
+ },
13
+ "keywords": [
14
+ "mcp",
15
+ "model-context-protocol",
16
+ "seo",
17
+ "pseo",
18
+ "spambrain",
19
+ "lint",
20
+ "ai"
21
+ ],
22
+ "type": "module",
23
+ "bin": {
24
+ "pseolint-mcp": "dist/bin.js"
25
+ },
26
+ "exports": {
27
+ ".": {
28
+ "import": "./dist/index.js",
29
+ "types": "./dist/index.d.ts"
30
+ }
31
+ },
32
+ "main": "dist/index.js",
33
+ "types": "dist/index.d.ts",
34
+ "engines": {
35
+ "node": ">=18"
36
+ },
37
+ "files": [
38
+ "dist"
39
+ ],
40
+ "scripts": {
41
+ "build": "tsc -p tsconfig.json",
42
+ "lint": "tsc --noEmit -p tsconfig.json"
43
+ },
44
+ "dependencies": {
45
+ "@modelcontextprotocol/sdk": "^1.29.0",
46
+ "@pseolint/core": "workspace:*",
47
+ "zod": "^4.3.6"
48
+ }
49
+ }