@pseolint/core 0.4.3 → 0.5.3
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 +264 -169
- package/dist/ai/manifest/diff.d.ts +78 -0
- package/dist/ai/manifest/diff.d.ts.map +1 -0
- package/dist/ai/manifest/diff.js +139 -0
- package/dist/ai/manifest/diff.js.map +1 -0
- package/dist/ai/manifest/index.d.ts +18 -0
- package/dist/ai/manifest/index.d.ts.map +1 -0
- package/dist/ai/manifest/index.js +15 -0
- package/dist/ai/manifest/index.js.map +1 -0
- package/dist/ai/manifest/validate-manifest.d.ts +37 -0
- package/dist/ai/manifest/validate-manifest.d.ts.map +1 -0
- package/dist/ai/manifest/validate-manifest.js +67 -0
- package/dist/ai/manifest/validate-manifest.js.map +1 -0
- package/dist/ai/manifest/validators/domain-patches.d.ts +15 -0
- package/dist/ai/manifest/validators/domain-patches.d.ts.map +1 -0
- package/dist/ai/manifest/validators/domain-patches.js +110 -0
- package/dist/ai/manifest/validators/domain-patches.js.map +1 -0
- package/dist/ai/manifest/validators/index.d.ts +5 -0
- package/dist/ai/manifest/validators/index.d.ts.map +1 -0
- package/dist/ai/manifest/validators/index.js +4 -0
- package/dist/ai/manifest/validators/index.js.map +1 -0
- package/dist/ai/manifest/validators/page-changes.d.ts +36 -0
- package/dist/ai/manifest/validators/page-changes.d.ts.map +1 -0
- package/dist/ai/manifest/validators/page-changes.js +221 -0
- package/dist/ai/manifest/validators/page-changes.js.map +1 -0
- package/dist/ai/manifest/validators/types.d.ts +17 -0
- package/dist/ai/manifest/validators/types.d.ts.map +1 -0
- package/dist/ai/manifest/validators/types.js +5 -0
- package/dist/ai/manifest/validators/types.js.map +1 -0
- package/dist/ai/orchestrate.d.ts +74 -0
- package/dist/ai/orchestrate.d.ts.map +1 -0
- package/dist/ai/orchestrate.js +54 -0
- package/dist/ai/orchestrate.js.map +1 -0
- package/dist/ai/orchestrator/budget.d.ts +57 -0
- package/dist/ai/orchestrator/budget.d.ts.map +1 -0
- package/dist/ai/orchestrator/budget.js +114 -0
- package/dist/ai/orchestrator/budget.js.map +1 -0
- package/dist/ai/orchestrator/finish-tool.d.ts +568 -0
- package/dist/ai/orchestrator/finish-tool.d.ts.map +1 -0
- package/dist/ai/orchestrator/finish-tool.js +114 -0
- package/dist/ai/orchestrator/finish-tool.js.map +1 -0
- package/dist/ai/orchestrator/index.d.ts +25 -0
- package/dist/ai/orchestrator/index.d.ts.map +1 -0
- package/dist/ai/orchestrator/index.js +21 -0
- package/dist/ai/orchestrator/index.js.map +1 -0
- package/dist/ai/orchestrator/log.d.ts +24 -0
- package/dist/ai/orchestrator/log.d.ts.map +1 -0
- package/dist/ai/orchestrator/log.js +48 -0
- package/dist/ai/orchestrator/log.js.map +1 -0
- package/dist/ai/orchestrator/page-cache.d.ts +64 -0
- package/dist/ai/orchestrator/page-cache.d.ts.map +1 -0
- package/dist/ai/orchestrator/page-cache.js +127 -0
- package/dist/ai/orchestrator/page-cache.js.map +1 -0
- package/dist/ai/orchestrator/prompt.d.ts +16 -0
- package/dist/ai/orchestrator/prompt.d.ts.map +1 -0
- package/dist/ai/orchestrator/prompt.js +52 -0
- package/dist/ai/orchestrator/prompt.js.map +1 -0
- package/dist/ai/orchestrator/runner.d.ts +65 -0
- package/dist/ai/orchestrator/runner.d.ts.map +1 -0
- package/dist/ai/orchestrator/runner.js +223 -0
- package/dist/ai/orchestrator/runner.js.map +1 -0
- package/dist/ai/orchestrator/session.d.ts +44 -0
- package/dist/ai/orchestrator/session.d.ts.map +1 -0
- package/dist/ai/orchestrator/session.js +64 -0
- package/dist/ai/orchestrator/session.js.map +1 -0
- package/dist/ai/orchestrator/types.d.ts +99 -0
- package/dist/ai/orchestrator/types.d.ts.map +1 -0
- package/dist/ai/orchestrator/types.js +8 -0
- package/dist/ai/orchestrator/types.js.map +1 -0
- package/dist/ai/probes/cache.d.ts +12 -0
- package/dist/ai/probes/cache.d.ts.map +1 -0
- package/dist/ai/probes/cache.js +46 -0
- package/dist/ai/probes/cache.js.map +1 -0
- package/dist/ai/tools/ask-ai-engine.d.ts +77 -0
- package/dist/ai/tools/ask-ai-engine.d.ts.map +1 -0
- package/dist/ai/tools/ask-ai-engine.js +253 -0
- package/dist/ai/tools/ask-ai-engine.js.map +1 -0
- package/dist/ai/tools/check-domain-crawler-access.d.ts +71 -0
- package/dist/ai/tools/check-domain-crawler-access.d.ts.map +1 -0
- package/dist/ai/tools/check-domain-crawler-access.js +76 -0
- package/dist/ai/tools/check-domain-crawler-access.js.map +1 -0
- package/dist/ai/tools/check-domain-llms-txt.d.ts +70 -0
- package/dist/ai/tools/check-domain-llms-txt.d.ts.map +1 -0
- package/dist/ai/tools/check-domain-llms-txt.js +75 -0
- package/dist/ai/tools/check-domain-llms-txt.js.map +1 -0
- package/dist/ai/tools/check-indexability.d.ts +58 -0
- package/dist/ai/tools/check-indexability.d.ts.map +1 -0
- package/dist/ai/tools/check-indexability.js +64 -0
- package/dist/ai/tools/check-indexability.js.map +1 -0
- package/dist/ai/tools/check-robots.d.ts +68 -0
- package/dist/ai/tools/check-robots.d.ts.map +1 -0
- package/dist/ai/tools/check-robots.js +90 -0
- package/dist/ai/tools/check-robots.js.map +1 -0
- package/dist/ai/tools/check-rule-answer-first.d.ts +54 -0
- package/dist/ai/tools/check-rule-answer-first.d.ts.map +1 -0
- package/dist/ai/tools/check-rule-answer-first.js +50 -0
- package/dist/ai/tools/check-rule-answer-first.js.map +1 -0
- package/dist/ai/tools/check-rule-canonical-consistency.d.ts +66 -0
- package/dist/ai/tools/check-rule-canonical-consistency.d.ts.map +1 -0
- package/dist/ai/tools/check-rule-canonical-consistency.js +51 -0
- package/dist/ai/tools/check-rule-canonical-consistency.js.map +1 -0
- package/dist/ai/tools/check-rule-citable-facts.d.ts +58 -0
- package/dist/ai/tools/check-rule-citable-facts.d.ts.map +1 -0
- package/dist/ai/tools/check-rule-citable-facts.js +41 -0
- package/dist/ai/tools/check-rule-citable-facts.js.map +1 -0
- package/dist/ai/tools/check-rule-content-modularity.d.ts +58 -0
- package/dist/ai/tools/check-rule-content-modularity.d.ts.map +1 -0
- package/dist/ai/tools/check-rule-content-modularity.js +45 -0
- package/dist/ai/tools/check-rule-content-modularity.js.map +1 -0
- package/dist/ai/tools/check-rule-faq-coverage.d.ts +54 -0
- package/dist/ai/tools/check-rule-faq-coverage.d.ts.map +1 -0
- package/dist/ai/tools/check-rule-faq-coverage.js +39 -0
- package/dist/ai/tools/check-rule-faq-coverage.js.map +1 -0
- package/dist/ai/tools/check-rule-freshness-signals.d.ts +54 -0
- package/dist/ai/tools/check-rule-freshness-signals.d.ts.map +1 -0
- package/dist/ai/tools/check-rule-freshness-signals.js +45 -0
- package/dist/ai/tools/check-rule-freshness-signals.js.map +1 -0
- package/dist/ai/tools/check-rule-json-ld-valid.d.ts +54 -0
- package/dist/ai/tools/check-rule-json-ld-valid.d.ts.map +1 -0
- package/dist/ai/tools/check-rule-json-ld-valid.js +44 -0
- package/dist/ai/tools/check-rule-json-ld-valid.js.map +1 -0
- package/dist/ai/tools/check-rule-missing-author.d.ts +54 -0
- package/dist/ai/tools/check-rule-missing-author.d.ts.map +1 -0
- package/dist/ai/tools/check-rule-missing-author.js +45 -0
- package/dist/ai/tools/check-rule-missing-author.js.map +1 -0
- package/dist/ai/tools/check-rule-near-duplicate.d.ts +82 -0
- package/dist/ai/tools/check-rule-near-duplicate.d.ts.map +1 -0
- package/dist/ai/tools/check-rule-near-duplicate.js +63 -0
- package/dist/ai/tools/check-rule-near-duplicate.js.map +1 -0
- package/dist/ai/tools/check-rule-required-fields.d.ts +50 -0
- package/dist/ai/tools/check-rule-required-fields.d.ts.map +1 -0
- package/dist/ai/tools/check-rule-required-fields.js +38 -0
- package/dist/ai/tools/check-rule-required-fields.js.map +1 -0
- package/dist/ai/tools/check-rule-schema-consistency.d.ts +54 -0
- package/dist/ai/tools/check-rule-schema-consistency.d.ts.map +1 -0
- package/dist/ai/tools/check-rule-schema-consistency.js +44 -0
- package/dist/ai/tools/check-rule-schema-consistency.js.map +1 -0
- package/dist/ai/tools/check-rule-summary-bait.d.ts +54 -0
- package/dist/ai/tools/check-rule-summary-bait.d.ts.map +1 -0
- package/dist/ai/tools/check-rule-summary-bait.js +39 -0
- package/dist/ai/tools/check-rule-summary-bait.js.map +1 -0
- package/dist/ai/tools/check-rule-thin-content.d.ts +66 -0
- package/dist/ai/tools/check-rule-thin-content.d.ts.map +1 -0
- package/dist/ai/tools/check-rule-thin-content.js +58 -0
- package/dist/ai/tools/check-rule-thin-content.js.map +1 -0
- package/dist/ai/tools/detect-templates.d.ts +60 -0
- package/dist/ai/tools/detect-templates.d.ts.map +1 -0
- package/dist/ai/tools/detect-templates.js +43 -0
- package/dist/ai/tools/detect-templates.js.map +1 -0
- package/dist/ai/tools/fetch-page.d.ts +70 -0
- package/dist/ai/tools/fetch-page.d.ts.map +1 -0
- package/dist/ai/tools/fetch-page.js +93 -0
- package/dist/ai/tools/fetch-page.js.map +1 -0
- package/dist/ai/tools/fetch-sitemap.d.ts +60 -0
- package/dist/ai/tools/fetch-sitemap.d.ts.map +1 -0
- package/dist/ai/tools/fetch-sitemap.js +116 -0
- package/dist/ai/tools/fetch-sitemap.js.map +1 -0
- package/dist/ai/tools/index.d.ts +1555 -0
- package/dist/ai/tools/index.d.ts.map +1 -0
- package/dist/ai/tools/index.js +119 -0
- package/dist/ai/tools/index.js.map +1 -0
- package/dist/ai/tools/parse-page.d.ts +94 -0
- package/dist/ai/tools/parse-page.d.ts.map +1 -0
- package/dist/ai/tools/parse-page.js +108 -0
- package/dist/ai/tools/parse-page.js.map +1 -0
- package/dist/ai/tools/query-serp.d.ts +113 -0
- package/dist/ai/tools/query-serp.d.ts.map +1 -0
- package/dist/ai/tools/query-serp.js +131 -0
- package/dist/ai/tools/query-serp.js.map +1 -0
- package/dist/ai/tools/sample-template.d.ts +67 -0
- package/dist/ai/tools/sample-template.d.ts.map +1 -0
- package/dist/ai/tools/sample-template.js +75 -0
- package/dist/ai/tools/sample-template.js.map +1 -0
- package/dist/ai/tools/types.d.ts +73 -0
- package/dist/ai/tools/types.d.ts.map +1 -0
- package/dist/ai/tools/types.js +64 -0
- package/dist/ai/tools/types.js.map +1 -0
- package/dist/ai/tools/validate-jsonld.d.ts +62 -0
- package/dist/ai/tools/validate-jsonld.d.ts.map +1 -0
- package/dist/ai/tools/validate-jsonld.js +84 -0
- package/dist/ai/tools/validate-jsonld.js.map +1 -0
- package/dist/auditor.d.ts +4 -0
- package/dist/auditor.d.ts.map +1 -1
- package/dist/auditor.js +629 -64
- package/dist/auditor.js.map +1 -1
- package/dist/backpressure.d.ts.map +1 -1
- package/dist/backpressure.js +10 -3
- package/dist/backpressure.js.map +1 -1
- package/dist/enrich-findings.d.ts.map +1 -1
- package/dist/enrich-findings.js +15 -1
- package/dist/enrich-findings.js.map +1 -1
- package/dist/formatters/console.d.ts.map +1 -1
- package/dist/formatters/console.js +13 -0
- package/dist/formatters/console.js.map +1 -1
- package/dist/formatters/markdown.d.ts.map +1 -1
- package/dist/formatters/markdown.js +20 -2
- package/dist/formatters/markdown.js.map +1 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/rule-references.d.ts.map +1 -1
- package/dist/rule-references.js +5 -0
- package/dist/rule-references.js.map +1 -1
- package/dist/rules/content/heading-structure.d.ts +21 -0
- package/dist/rules/content/heading-structure.d.ts.map +1 -0
- package/dist/rules/content/heading-structure.js +56 -0
- package/dist/rules/content/heading-structure.js.map +1 -0
- package/dist/rules/content/image-alt-text.d.ts +18 -0
- package/dist/rules/content/image-alt-text.d.ts.map +1 -0
- package/dist/rules/content/image-alt-text.js +77 -0
- package/dist/rules/content/image-alt-text.js.map +1 -0
- package/dist/rules/content/title-uniqueness.d.ts +18 -0
- package/dist/rules/content/title-uniqueness.d.ts.map +1 -0
- package/dist/rules/content/title-uniqueness.js +70 -0
- package/dist/rules/content/title-uniqueness.js.map +1 -0
- package/dist/rules/links/host-section-divergence.d.ts +3 -0
- package/dist/rules/links/host-section-divergence.d.ts.map +1 -0
- package/dist/rules/links/host-section-divergence.js +158 -0
- package/dist/rules/links/host-section-divergence.js.map +1 -0
- package/dist/rules/links/link-depth.d.ts +12 -1
- package/dist/rules/links/link-depth.d.ts.map +1 -1
- package/dist/rules/links/link-depth.js +25 -12
- package/dist/rules/links/link-depth.js.map +1 -1
- package/dist/rules/scope.d.ts.map +1 -1
- package/dist/rules/scope.js +5 -0
- package/dist/rules/scope.js.map +1 -1
- package/dist/rules/spam/doorway-pattern.d.ts.map +1 -1
- package/dist/rules/spam/doorway-pattern.js +27 -4
- package/dist/rules/spam/doorway-pattern.js.map +1 -1
- package/dist/rules/spam/publication-velocity.d.ts +1 -1
- package/dist/rules/spam/publication-velocity.d.ts.map +1 -1
- package/dist/rules/spam/publication-velocity.js +9 -4
- package/dist/rules/spam/publication-velocity.js.map +1 -1
- package/dist/rules/spam/template-coverage.js +1 -1
- package/dist/rules/spam/template-coverage.js.map +1 -1
- package/dist/rules/spam/template-diversity.js +1 -1
- package/dist/rules/spam/template-diversity.js.map +1 -1
- package/dist/rules/tech/hreflang-consistency.d.ts.map +1 -1
- package/dist/rules/tech/hreflang-consistency.js +33 -4
- package/dist/rules/tech/hreflang-consistency.js.map +1 -1
- package/dist/rules/tech/og-completeness.d.ts +11 -0
- package/dist/rules/tech/og-completeness.d.ts.map +1 -1
- package/dist/rules/tech/og-completeness.js +22 -23
- package/dist/rules/tech/og-completeness.js.map +1 -1
- package/dist/ruleset-version.d.ts +8 -0
- package/dist/ruleset-version.d.ts.map +1 -0
- package/dist/ruleset-version.js +8 -0
- package/dist/ruleset-version.js.map +1 -0
- package/dist/scrape-strategy.d.ts +42 -0
- package/dist/scrape-strategy.d.ts.map +1 -0
- package/dist/scrape-strategy.js +101 -0
- package/dist/scrape-strategy.js.map +1 -0
- package/dist/site-classifier.d.ts.map +1 -1
- package/dist/site-classifier.js +1 -0
- package/dist/site-classifier.js.map +1 -1
- package/dist/state.d.ts +36 -1
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +3 -1
- package/dist/state.js.map +1 -1
- package/dist/stratified-sample.d.ts +9 -1
- package/dist/stratified-sample.d.ts.map +1 -1
- package/dist/stratified-sample.js +23 -6
- package/dist/stratified-sample.js.map +1 -1
- package/dist/types.d.ts +135 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/url-normalize.d.ts.map +1 -1
- package/dist/url-normalize.js +13 -1
- package/dist/url-normalize.js.map +1 -1
- package/package.json +90 -90
package/dist/types.d.ts
CHANGED
|
@@ -82,6 +82,19 @@ export interface RuleResult {
|
|
|
82
82
|
* render a caveat in the message.
|
|
83
83
|
*/
|
|
84
84
|
confidence?: Confidence;
|
|
85
|
+
/**
|
|
86
|
+
* v0.5+ change-driven monitoring. True when the finding was carried forward
|
|
87
|
+
* from a prior audit because the page was skipped under monitoring mode (no
|
|
88
|
+
* sitemap-lastmod change, within age floor, no other refetch trigger). The
|
|
89
|
+
* finding has not been re-verified this run.
|
|
90
|
+
*/
|
|
91
|
+
carriedForward?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* v0.5+ change-driven monitoring. ISO timestamp of the last audit that
|
|
94
|
+
* actually re-fetched the page and confirmed this finding fires. Set on
|
|
95
|
+
* carried-forward findings so consumers can reason about staleness.
|
|
96
|
+
*/
|
|
97
|
+
lastVerifiedAt?: string;
|
|
85
98
|
}
|
|
86
99
|
/** v0.4 four-category bucket keys. */
|
|
87
100
|
export type CategoryKey = "integrity" | "discoverability" | "citation" | "data" | "audit";
|
|
@@ -149,10 +162,31 @@ export interface CacheStats {
|
|
|
149
162
|
export interface StateOptions {
|
|
150
163
|
/** Path to state file. Default: `.pseolint/state.json`. */
|
|
151
164
|
path?: string;
|
|
152
|
-
/**
|
|
165
|
+
/**
|
|
166
|
+
* v0.5+: alias for `mode: "monitoring"`. Kept for back-compat with users who
|
|
167
|
+
* passed `--since` explicitly. Auto-monitoring on prior state existence is
|
|
168
|
+
* the new default and does not require this flag.
|
|
169
|
+
*/
|
|
153
170
|
since?: boolean;
|
|
154
171
|
/** If true, exit non-zero when a new rule ID fires on any URL vs prior state. */
|
|
155
172
|
exitOnRegression?: boolean;
|
|
173
|
+
/**
|
|
174
|
+
* v0.5+: monitoring strategy.
|
|
175
|
+
* "monitoring" — apply the pre-fetch decision matrix (default when prior
|
|
176
|
+
* state exists). Skipped URLs are NOT fetched; their findings are
|
|
177
|
+
* carried forward.
|
|
178
|
+
* "fresh" — fetch every candidate URL even when prior state exists. Still
|
|
179
|
+
* writes a fresh state file at end of run.
|
|
180
|
+
* When omitted, the auditor picks "monitoring" if prior state exists, else
|
|
181
|
+
* "fresh".
|
|
182
|
+
*/
|
|
183
|
+
mode?: "monitoring" | "fresh";
|
|
184
|
+
/**
|
|
185
|
+
* v0.5+: minimum age (in days) since a URL's last fetch before the
|
|
186
|
+
* monitoring matrix forces a re-fetch regardless of other signals. Defends
|
|
187
|
+
* against silently-incorrect skips (e.g. lying sitemap lastmods). Default: 7.
|
|
188
|
+
*/
|
|
189
|
+
ageFloorDays?: number;
|
|
156
190
|
}
|
|
157
191
|
/** Options for local-only telemetry JSONL output. */
|
|
158
192
|
export interface TelemetryOptions {
|
|
@@ -211,6 +245,17 @@ export interface AuditSummary {
|
|
|
211
245
|
* rules to run anyway.
|
|
212
246
|
*/
|
|
213
247
|
siteClassification: import("./site-classifier.js").SiteClassification;
|
|
248
|
+
/**
|
|
249
|
+
* 2026-05-03 calibration credibility: rule IDs whose severity was
|
|
250
|
+
* remapped by the active scoring profile (e.g. `aeo/citable-facts`
|
|
251
|
+
* demoted from `error` to `info` on a `programmatic-directory` site).
|
|
252
|
+
* Empty when no demotions applied. Surfaced to formatters so users can
|
|
253
|
+
* see the engine's reasoning rather than wondering whether the score
|
|
254
|
+
* was gamed. Distinct from `siteClassification.suppressedRules` which
|
|
255
|
+
* tracks `PSEO_ONLY_RULE_IDS` suppression — those rules don't run at
|
|
256
|
+
* all; demoted rules ran and emitted findings, just at lower severity.
|
|
257
|
+
*/
|
|
258
|
+
appliedSeverityDemotions?: string[];
|
|
214
259
|
/** Engine-internal diagnostics (origin readiness, crawl stats). Weight 0. */
|
|
215
260
|
diagnostics: Diagnostics;
|
|
216
261
|
groupScores?: Record<string, number>;
|
|
@@ -224,11 +269,50 @@ export interface AuditSummary {
|
|
|
224
269
|
cacheStats?: CacheStats;
|
|
225
270
|
/** True when --exit-on-regression detected a new rule ID vs prior state. */
|
|
226
271
|
hasRegression?: boolean;
|
|
227
|
-
/**
|
|
272
|
+
/**
|
|
273
|
+
* v0.5+: URLs the change-driven monitoring matrix decided to skip pre-fetch
|
|
274
|
+
* (their findings were carried forward from prior state). Pre-v0.5 this
|
|
275
|
+
* field carried URLs whose contentHash matched prior state under `--since`;
|
|
276
|
+
* the new pre-fetch decision replaces that meaning.
|
|
277
|
+
*/
|
|
228
278
|
skippedUrls?: string[];
|
|
279
|
+
/**
|
|
280
|
+
* v0.5+: change-driven monitoring summary. Present whenever the auditor ran
|
|
281
|
+
* in monitoring mode (prior state existed and no `--mode=fresh` override).
|
|
282
|
+
* Absent on fresh runs and on filesystem-source audits.
|
|
283
|
+
*/
|
|
284
|
+
scrapePlan?: ScrapePlanSummary;
|
|
229
285
|
/** AI triage result when AI is enabled and call succeeded. */
|
|
230
286
|
triage?: import("./ai/types.js").TriageResult;
|
|
231
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* v0.5+ change-driven monitoring summary surfaced on AuditSummary so dashboards
|
|
290
|
+
* and CI consumers can show "X/Y URLs re-scraped" without recomputing.
|
|
291
|
+
*/
|
|
292
|
+
export interface ScrapePlanSummary {
|
|
293
|
+
/**
|
|
294
|
+
* URLs whose bodies actually came back this run. May be lower than
|
|
295
|
+
* `intended` when downstream filters drop URLs (robots disallow, byte
|
|
296
|
+
* budget, content-type, 4xx).
|
|
297
|
+
*/
|
|
298
|
+
fetched: number;
|
|
299
|
+
/**
|
|
300
|
+
* URLs the decision matrix marked for refetch. `intended - fetched` =
|
|
301
|
+
* URLs the matrix wanted to fetch but downstream filters dropped.
|
|
302
|
+
*/
|
|
303
|
+
intended: number;
|
|
304
|
+
/** URLs whose findings were carried forward from prior state without re-fetching. */
|
|
305
|
+
carriedForward: number;
|
|
306
|
+
/**
|
|
307
|
+
* Counts per matrix reason (`new`, `age`, `ruleset`, `recheck`, `lastmod`,
|
|
308
|
+
* `gsc`, `no-signal`, `unchanged`). Sums to `intended + carriedForward`.
|
|
309
|
+
*/
|
|
310
|
+
reasonCounts: Record<string, number>;
|
|
311
|
+
/** CORE_RULESET_VERSION active during this run. */
|
|
312
|
+
rulesetVersion: string;
|
|
313
|
+
/** ISO timestamp of the last full (non-monitoring) audit, or null if never. */
|
|
314
|
+
lastFullAuditAt: string | null;
|
|
315
|
+
}
|
|
232
316
|
export interface PageGroupConfig {
|
|
233
317
|
/** Glob pattern(s) to match page URLs/paths. */
|
|
234
318
|
match: string | string[];
|
|
@@ -248,6 +332,13 @@ export interface AuditOptions {
|
|
|
248
332
|
entitySwapThreshold?: number;
|
|
249
333
|
thinContentMinWords?: number;
|
|
250
334
|
publicationVelocityMaxPerDay?: number;
|
|
335
|
+
/**
|
|
336
|
+
* spam/publication-velocity: corpus-relative ceiling expressed as a fraction (0..1).
|
|
337
|
+
* Effective threshold = max(publicationVelocityMaxPerDay, ceil(corpusSize * fraction)).
|
|
338
|
+
* Lets large sites publish proportionally without tripping the rule, while small/medium
|
|
339
|
+
* sites stay governed by `publicationVelocityMaxPerDay`. Default: 0.10 (10%).
|
|
340
|
+
*/
|
|
341
|
+
publicationVelocityMaxPerDayCorpusFraction?: number;
|
|
251
342
|
boilerplateMaxRatio?: number;
|
|
252
343
|
templateDiversityMinUniqueRatio?: number;
|
|
253
344
|
uniqueValueMinWords?: number;
|
|
@@ -341,8 +432,50 @@ export interface AuditOptions {
|
|
|
341
432
|
samplingStrategy?: SamplingStrategy;
|
|
342
433
|
/** Max samples per inferred URL template cluster. Caps per-cluster allocation. */
|
|
343
434
|
maxPerTemplate?: number;
|
|
435
|
+
/**
|
|
436
|
+
* Optional integer seed for the stratified-sampler PRNG. When set, repeated
|
|
437
|
+
* audits with the same `sampleSize` and `samplingStrategy` pick the same
|
|
438
|
+
* pages — letting callers (calibration runners, CI gates) get reproducible
|
|
439
|
+
* verdicts. When omitted, the sampler uses `Math.random` (the legacy
|
|
440
|
+
* non-deterministic behavior).
|
|
441
|
+
*/
|
|
442
|
+
sampleSeed?: number;
|
|
443
|
+
/**
|
|
444
|
+
* 2026-05-03 v0.5.2 — bring-your-own domain authority score (0-100).
|
|
445
|
+
* pseolint does not measure backlinks/DA itself (deliberate non-feature
|
|
446
|
+
* to keep the engine offline-runnable), but the calibration corpus is
|
|
447
|
+
* biased toward high-authority sites. To prevent the engine's leniency
|
|
448
|
+
* from over-applying to low-authority operators copying high-DA shapes,
|
|
449
|
+
* callers can pass an authority hint:
|
|
450
|
+
*
|
|
451
|
+
* - `score >= 80` (established brand): verdict shifts ONE TIER UP
|
|
452
|
+
* (more lenient — acknowledges the site can absorb shapes that
|
|
453
|
+
* would tank a newer domain)
|
|
454
|
+
* - `score <= 30` (newer/lower-authority): verdict shifts ONE TIER DOWN
|
|
455
|
+
* (less lenient — fixing flagged issues is a necessary condition,
|
|
456
|
+
* not a sufficient one)
|
|
457
|
+
* - 31..79: no shift (default behavior)
|
|
458
|
+
*
|
|
459
|
+
* The raw `risk` number is NEVER modified by this option — only the
|
|
460
|
+
* user-facing `verdict` mapping shifts. CI gates that key off `risk`
|
|
461
|
+
* stay stable.
|
|
462
|
+
*
|
|
463
|
+
* Omitted = no shift (back-compat).
|
|
464
|
+
*/
|
|
465
|
+
authorityScore?: number;
|
|
344
466
|
/** Run state persistence. When omitted, no state is written. */
|
|
345
467
|
state?: StateOptions;
|
|
468
|
+
/**
|
|
469
|
+
* v0.5.3 — caller-supplied refetch overrides. Any URL listed in `force.urls`
|
|
470
|
+
* is always re-fetched and short-circuits the monitoring decision matrix
|
|
471
|
+
* (reason: `"watched"`). Owned by the caller (e.g. the web app's per-domain
|
|
472
|
+
* "watched pages" list); the engine treats it as a transient input and never
|
|
473
|
+
* persists it. Watched URLs absent from the discovered sitemap are still
|
|
474
|
+
* audited so the caller learns when a watched page has been removed.
|
|
475
|
+
*/
|
|
476
|
+
force?: {
|
|
477
|
+
urls?: ReadonlyArray<string>;
|
|
478
|
+
};
|
|
346
479
|
/** AI triage options. When omitted or `enabled: false`, no AI is invoked. */
|
|
347
480
|
ai?: AiOptions;
|
|
348
481
|
/** Local-only telemetry (JSONL) options. When omitted or `enabled: false`, no records are written. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-normalize.d.ts","sourceRoot":"","sources":["../src/url-normalize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAOtD,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAKrG;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"url-normalize.d.ts","sourceRoot":"","sources":["../src/url-normalize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAOtD,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAKrG;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAoBpF"}
|
package/dist/url-normalize.js
CHANGED
|
@@ -21,7 +21,19 @@ export function normalizeAuditUrl(url, options) {
|
|
|
21
21
|
return trimmed;
|
|
22
22
|
}
|
|
23
23
|
if (/^https?:\/\//i.test(trimmed)) {
|
|
24
|
-
|
|
24
|
+
try {
|
|
25
|
+
return normalizeHttpUrl(trimmed, mergeNormalizeUrlOptions(options));
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// 2026-05-03 calibration round 2: malformed URLs scraped from page
|
|
29
|
+
// HTML (bare "https://", non-ASCII garbage, etc.) crashed `new URL()`
|
|
30
|
+
// and aborted entire audits. Multiple call sites feed user-controlled
|
|
31
|
+
// strings here (parser hrefs, canonical raw, hreflang href). Return
|
|
32
|
+
// the trimmed input on parse failure so the audit continues; the
|
|
33
|
+
// surrounding rule will surface its own "malformed URL" finding when
|
|
34
|
+
// it makes sense to.
|
|
35
|
+
return trimmed;
|
|
36
|
+
}
|
|
25
37
|
}
|
|
26
38
|
return normalize(trimmed);
|
|
27
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-normalize.js","sourceRoot":"","sources":["../src/url-normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,QAAQ,GAAkC;IAC9C,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,KAAK;CACpB,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,OAA6B;IACpE,OAAO;QACL,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,QAAQ,CAAC,UAAU;QACtD,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,QAAQ,CAAC,YAAY;KAC7D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,OAA6B;IAC1E,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,gBAAgB,CAAC,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"url-normalize.js","sourceRoot":"","sources":["../src/url-normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,QAAQ,GAAkC;IAC9C,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,KAAK;CACpB,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,OAA6B;IACpE,OAAO;QACL,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,QAAQ,CAAC,UAAU;QACtD,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,QAAQ,CAAC,YAAY;KAC7D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,OAA6B;IAC1E,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,gBAAgB,CAAC,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;YACnE,sEAAsE;YACtE,sEAAsE;YACtE,oEAAoE;YACpE,iEAAiE;YACjE,qEAAqE;YACrE,qBAAqB;YACrB,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW,EAAE,IAAmC;IACxE,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IACZ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;IAChB,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACtB,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IACd,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAChD,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC1B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,CAAC,CAAC,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC;IAC7B,OAAO,CAAC,CAAC,IAAI,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@pseolint/core",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Programmatic SEO audit engine — 32 rules across 4 categories (integrity, discoverability, citation, data) for SpamBrain risk + AI Overview citability. v0.4 verdict ladder + site classifier.",
|
|
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/core"
|
|
12
|
-
},
|
|
13
|
-
"keywords": [
|
|
14
|
-
"seo",
|
|
15
|
-
"pseo",
|
|
16
|
-
"programmatic-seo",
|
|
17
|
-
"spambrain",
|
|
18
|
-
"lint",
|
|
19
|
-
"audit"
|
|
20
|
-
],
|
|
21
|
-
"type": "module",
|
|
22
|
-
"exports": {
|
|
23
|
-
".": {
|
|
24
|
-
"import": "./dist/index.js",
|
|
25
|
-
"types": "./dist/index.d.ts"
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"main": "dist/index.js",
|
|
29
|
-
"types": "dist/index.d.ts",
|
|
30
|
-
"engines": {
|
|
31
|
-
"node": ">=18"
|
|
32
|
-
},
|
|
33
|
-
"files": [
|
|
34
|
-
"dist"
|
|
35
|
-
],
|
|
36
|
-
"scripts": {
|
|
37
|
-
"build": "tsc -p tsconfig.json",
|
|
38
|
-
"lint": "tsc --noEmit -p tsconfig.json",
|
|
39
|
-
"test": "vitest run --passWithNoTests tests/**/*.test.ts",
|
|
40
|
-
"typecheck": "tsc --noEmit -p tsconfig.json"
|
|
41
|
-
},
|
|
42
|
-
"dependencies": {
|
|
43
|
-
"ai": "^5.0.0",
|
|
44
|
-
"cheerio": "^1.2.0",
|
|
45
|
-
"zod": "^4.3.6"
|
|
46
|
-
},
|
|
47
|
-
"peerDependencies": {
|
|
48
|
-
"playwright-core": ">=1.40.0",
|
|
49
|
-
"@ai-sdk/anthropic": "^2.0.0",
|
|
50
|
-
"@ai-sdk/openai": "^2.0.0",
|
|
51
|
-
"@ai-sdk/google": "^2.0.0",
|
|
52
|
-
"@ai-sdk/mistral": "^2.0.0",
|
|
53
|
-
"@ai-sdk/groq": "^2.0.0",
|
|
54
|
-
"@ai-sdk/xai": "^2.0.0",
|
|
55
|
-
"@ai-sdk/cohere": "^2.0.0",
|
|
56
|
-
"ollama-ai-provider-v2": "^1.0.0"
|
|
57
|
-
},
|
|
58
|
-
"peerDependenciesMeta": {
|
|
59
|
-
"playwright-core": {
|
|
60
|
-
"optional": true
|
|
61
|
-
},
|
|
62
|
-
"@ai-sdk/anthropic": {
|
|
63
|
-
"optional": true
|
|
64
|
-
},
|
|
65
|
-
"@ai-sdk/openai": {
|
|
66
|
-
"optional": true
|
|
67
|
-
},
|
|
68
|
-
"@ai-sdk/google": {
|
|
69
|
-
"optional": true
|
|
70
|
-
},
|
|
71
|
-
"@ai-sdk/mistral": {
|
|
72
|
-
"optional": true
|
|
73
|
-
},
|
|
74
|
-
"@ai-sdk/groq": {
|
|
75
|
-
"optional": true
|
|
76
|
-
},
|
|
77
|
-
"@ai-sdk/xai": {
|
|
78
|
-
"optional": true
|
|
79
|
-
},
|
|
80
|
-
"@ai-sdk/cohere": {
|
|
81
|
-
"optional": true
|
|
82
|
-
},
|
|
83
|
-
"ollama-ai-provider-v2": {
|
|
84
|
-
"optional": true
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
"devDependencies": {
|
|
88
|
-
"@ai-sdk/anthropic": "^2.0.0",
|
|
89
|
-
"ollama-ai-provider-v2": "^1.0.0"
|
|
90
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@pseolint/core",
|
|
3
|
+
"version": "0.5.3",
|
|
4
|
+
"description": "Programmatic SEO audit engine — 32 rules across 4 categories (integrity, discoverability, citation, data) for SpamBrain risk + AI Overview citability. v0.4 verdict ladder + site classifier.",
|
|
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/core"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"seo",
|
|
15
|
+
"pseo",
|
|
16
|
+
"programmatic-seo",
|
|
17
|
+
"spambrain",
|
|
18
|
+
"lint",
|
|
19
|
+
"audit"
|
|
20
|
+
],
|
|
21
|
+
"type": "module",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"import": "./dist/index.js",
|
|
25
|
+
"types": "./dist/index.d.ts"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"main": "dist/index.js",
|
|
29
|
+
"types": "dist/index.d.ts",
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">=18"
|
|
32
|
+
},
|
|
33
|
+
"files": [
|
|
34
|
+
"dist"
|
|
35
|
+
],
|
|
36
|
+
"scripts": {
|
|
37
|
+
"build": "tsc -p tsconfig.json",
|
|
38
|
+
"lint": "tsc --noEmit -p tsconfig.json",
|
|
39
|
+
"test": "vitest run --passWithNoTests tests/**/*.test.ts",
|
|
40
|
+
"typecheck": "tsc --noEmit -p tsconfig.json"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"ai": "^5.0.0",
|
|
44
|
+
"cheerio": "^1.2.0",
|
|
45
|
+
"zod": "^4.3.6"
|
|
46
|
+
},
|
|
47
|
+
"peerDependencies": {
|
|
48
|
+
"playwright-core": ">=1.40.0",
|
|
49
|
+
"@ai-sdk/anthropic": "^2.0.0",
|
|
50
|
+
"@ai-sdk/openai": "^2.0.0",
|
|
51
|
+
"@ai-sdk/google": "^2.0.0",
|
|
52
|
+
"@ai-sdk/mistral": "^2.0.0",
|
|
53
|
+
"@ai-sdk/groq": "^2.0.0",
|
|
54
|
+
"@ai-sdk/xai": "^2.0.0",
|
|
55
|
+
"@ai-sdk/cohere": "^2.0.0",
|
|
56
|
+
"ollama-ai-provider-v2": "^1.0.0"
|
|
57
|
+
},
|
|
58
|
+
"peerDependenciesMeta": {
|
|
59
|
+
"playwright-core": {
|
|
60
|
+
"optional": true
|
|
61
|
+
},
|
|
62
|
+
"@ai-sdk/anthropic": {
|
|
63
|
+
"optional": true
|
|
64
|
+
},
|
|
65
|
+
"@ai-sdk/openai": {
|
|
66
|
+
"optional": true
|
|
67
|
+
},
|
|
68
|
+
"@ai-sdk/google": {
|
|
69
|
+
"optional": true
|
|
70
|
+
},
|
|
71
|
+
"@ai-sdk/mistral": {
|
|
72
|
+
"optional": true
|
|
73
|
+
},
|
|
74
|
+
"@ai-sdk/groq": {
|
|
75
|
+
"optional": true
|
|
76
|
+
},
|
|
77
|
+
"@ai-sdk/xai": {
|
|
78
|
+
"optional": true
|
|
79
|
+
},
|
|
80
|
+
"@ai-sdk/cohere": {
|
|
81
|
+
"optional": true
|
|
82
|
+
},
|
|
83
|
+
"ollama-ai-provider-v2": {
|
|
84
|
+
"optional": true
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"devDependencies": {
|
|
88
|
+
"@ai-sdk/anthropic": "^2.0.0",
|
|
89
|
+
"ollama-ai-provider-v2": "^1.0.0"
|
|
90
|
+
}
|
|
91
91
|
}
|