@canonry/canonry 4.154.1 → 4.156.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/assets/agent-workspace/AGENTS.md +2 -2
- package/assets/agent-workspace/skills/aero/references/orchestration.md +3 -3
- package/assets/agent-workspace/skills/canonry/SKILL.md +2 -2
- package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +27 -7
- package/assets/assets/{AuditHistoryPanel-WKf-vvmg.js → AuditHistoryPanel-gmJMVlXX.js} +1 -1
- package/assets/assets/{BacklinksPage-By06DbHN.js → BacklinksPage-Bv2sTCyN.js} +1 -1
- package/assets/assets/{HistoryPage-C_PcPiyX.js → HistoryPage-13q7GkiI.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-BHnNegEa.js → MeasurementPropertyPage-BgBqXT1p.js} +1 -1
- package/assets/assets/ProjectPage-EsGwKhot.js +15 -0
- package/assets/assets/{RunRow-9qn5Eer_.js → RunRow-bPzapIGJ.js} +1 -1
- package/assets/assets/{RunsPage-FxMTprK1.js → RunsPage-Dqfz18lH.js} +1 -1
- package/assets/assets/{SettingsPage-Cr7_PrNW.js → SettingsPage-_wMecn-V.js} +1 -1
- package/assets/assets/{TrafficPage-D0qk9uMN.js → TrafficPage-RYBdsOLB.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-CXa_3_Gy.js → TrafficSourceDetailPage-DpeMMyKU.js} +1 -1
- package/assets/assets/{extract-error-message-RkTEH1Vb.js → extract-error-message-DUarAlyD.js} +1 -1
- package/assets/assets/index-BxegEwic.css +1 -0
- package/assets/assets/index-DP-fT2uI.js +83 -0
- package/assets/assets/react-sigma_core.esm.min-DnypJl5w.js +312 -0
- package/assets/assets/vendor-lucide-BtYdosYk.js +1 -0
- package/assets/assets/{vendor-markdown-CpDJch4G.js → vendor-markdown-D274_wsI.js} +1 -1
- package/assets/assets/{vendor-radix-DnzzbllM.js → vendor-radix-BxMXSwbC.js} +1 -1
- package/assets/assets/{vendor-recharts-33ACLxsD.js → vendor-recharts-C4ktw_aE.js} +1 -1
- package/assets/assets/{vendor-tanstack-BjS7iY3g.js → vendor-tanstack-pFxw0eGP.js} +1 -1
- package/assets/index.html +7 -7
- package/dist/{chunk-KRMLGFY3.js → chunk-ABNN2ZVR.js} +2438 -114
- package/dist/{chunk-NNW7TJUZ.js → chunk-AMPT2EP7.js} +527 -5
- package/dist/{chunk-ANSQ6JNO.js → chunk-CPASKGUE.js} +563 -4
- package/dist/{chunk-JOP2DGXL.js → chunk-ZWESOFA5.js} +1230 -310
- package/dist/cli.js +742 -8
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-ZY5KOSZV.js → intelligence-service-WHC7B32V.js} +2 -2
- package/dist/mcp.js +4 -4
- package/package.json +13 -11
- package/assets/assets/ProjectPage-VTbW21dz.js +0 -12
- package/assets/assets/index-DyL54s8x.css +0 -1
- package/assets/assets/index-nSWJ9yka.js +0 -83
- package/assets/assets/vendor-lucide-ByU7vBHt.js +0 -1
|
@@ -8441,6 +8441,7 @@ var snapshotReportSchema = z23.object({
|
|
|
8441
8441
|
|
|
8442
8442
|
// ../contracts/src/technical-aeo.ts
|
|
8443
8443
|
import { z as z24 } from "zod";
|
|
8444
|
+
var nullableRunStatusSchema = z24.union([runStatusSchema, z24.null()]);
|
|
8444
8445
|
var siteAuditFactorStatusSchema = z24.enum(["pass", "partial", "fail"]);
|
|
8445
8446
|
var SiteAuditFactorStatuses = siteAuditFactorStatusSchema.enum;
|
|
8446
8447
|
function factorStatusFromScore(score) {
|
|
@@ -8475,7 +8476,7 @@ var siteAuditScoreSchema = z24.object({
|
|
|
8475
8476
|
project: z24.string(),
|
|
8476
8477
|
hasData: z24.boolean(),
|
|
8477
8478
|
runId: z24.string().nullable(),
|
|
8478
|
-
runStatus:
|
|
8479
|
+
runStatus: nullableRunStatusSchema,
|
|
8479
8480
|
sitemapUrl: z24.string().nullable(),
|
|
8480
8481
|
auditedAt: z24.string().nullable(),
|
|
8481
8482
|
aggregateScore: z24.number(),
|
|
@@ -8523,12 +8524,498 @@ var siteAuditTrendResponseSchema = z24.object({
|
|
|
8523
8524
|
project: z24.string(),
|
|
8524
8525
|
points: z24.array(siteAuditTrendPointSchema).default([])
|
|
8525
8526
|
});
|
|
8527
|
+
var siteCrawlDeadLinkStateSchema = z24.enum(["disabled", "complete", "partial", "unavailable"]);
|
|
8528
|
+
var SiteCrawlDeadLinkStates = siteCrawlDeadLinkStateSchema.enum;
|
|
8529
|
+
var siteCrawlCountsSchema = z24.object({
|
|
8530
|
+
pagesDiscovered: z24.number().int().nonnegative(),
|
|
8531
|
+
pagesFetched: z24.number().int().nonnegative(),
|
|
8532
|
+
pagesEligible: z24.number().int().nonnegative(),
|
|
8533
|
+
edges: z24.number().int().nonnegative(),
|
|
8534
|
+
findings: z24.number().int().nonnegative()
|
|
8535
|
+
});
|
|
8536
|
+
var siteCrawlDeadLinksSummarySchema = z24.discriminatedUnion("state", [
|
|
8537
|
+
z24.object({ state: z24.literal("unavailable") }),
|
|
8538
|
+
z24.object({ state: z24.literal("disabled") }),
|
|
8539
|
+
z24.object({ state: z24.literal("complete"), checked: z24.number().int().nonnegative(), found: z24.number().int().nonnegative() }),
|
|
8540
|
+
z24.object({ state: z24.literal("partial"), checked: z24.number().int().nonnegative(), found: z24.number().int().nonnegative() })
|
|
8541
|
+
]);
|
|
8542
|
+
var siteCrawlSummarySchema = z24.object({
|
|
8543
|
+
project: z24.string(),
|
|
8544
|
+
hasCrawlData: z24.boolean(),
|
|
8545
|
+
legacyAuditAvailable: z24.boolean(),
|
|
8546
|
+
runId: z24.string().nullable(),
|
|
8547
|
+
runStatus: nullableRunStatusSchema,
|
|
8548
|
+
/** Root URL originally requested by the operator; null for legacy snapshots. */
|
|
8549
|
+
requestedRootUrl: z24.string().nullable(),
|
|
8550
|
+
/** Effective root followed by the crawl after any supported host redirect. */
|
|
8551
|
+
rootUrl: z24.string().nullable(),
|
|
8552
|
+
crawlSchemaVersion: z24.string().nullable().optional(),
|
|
8553
|
+
engineVersion: z24.string().nullable().optional(),
|
|
8554
|
+
normalizationVersion: z24.string().nullable().optional(),
|
|
8555
|
+
indexabilityVersion: z24.string().nullable().optional(),
|
|
8556
|
+
linkScoreVersion: z24.string().nullable().optional(),
|
|
8557
|
+
effectiveOptions: z24.record(z24.string(), z24.unknown()).default({}),
|
|
8558
|
+
complete: z24.boolean(),
|
|
8559
|
+
termination: z24.string().nullable(),
|
|
8560
|
+
detailsAvailable: z24.boolean(),
|
|
8561
|
+
counts: siteCrawlCountsSchema,
|
|
8562
|
+
deadLinks: siteCrawlDeadLinksSummarySchema
|
|
8563
|
+
});
|
|
8564
|
+
var siteHealthStateSchema = z24.enum(["eligible", "hidden", "failed", "unchecked"]);
|
|
8565
|
+
var SiteCrawlFetchStates = {
|
|
8566
|
+
discovered: "discovered",
|
|
8567
|
+
robotsBlocked: "robots-blocked",
|
|
8568
|
+
html: "html",
|
|
8569
|
+
redirect: "redirect",
|
|
8570
|
+
nonHtml: "non-html",
|
|
8571
|
+
fetchError: "fetch-error"
|
|
8572
|
+
};
|
|
8573
|
+
var SiteCrawlFetchedStates = [
|
|
8574
|
+
SiteCrawlFetchStates.html,
|
|
8575
|
+
SiteCrawlFetchStates.redirect,
|
|
8576
|
+
SiteCrawlFetchStates.nonHtml,
|
|
8577
|
+
SiteCrawlFetchStates.fetchError
|
|
8578
|
+
];
|
|
8579
|
+
var SiteCrawlIndexabilityStates = {
|
|
8580
|
+
indexable: "indexable",
|
|
8581
|
+
noindex: "noindex",
|
|
8582
|
+
blocked: "blocked",
|
|
8583
|
+
unknown: "unknown"
|
|
8584
|
+
};
|
|
8585
|
+
var SiteCrawlIndexabilityReasons = {
|
|
8586
|
+
robotsDisallow: "robots-disallow",
|
|
8587
|
+
redirectTerminal: "redirect-terminal",
|
|
8588
|
+
metaRobotsNoindex: "meta-robots-noindex",
|
|
8589
|
+
xRobotsNoindex: "x-robots-noindex",
|
|
8590
|
+
canonicalToOther: "canonical-to-other",
|
|
8591
|
+
notHtmlOrUnavailable: "not-html-or-unavailable"
|
|
8592
|
+
};
|
|
8593
|
+
function pointsToOtherCanonical(input) {
|
|
8594
|
+
return input.indexabilityReasons?.some((reason) => reason === SiteCrawlIndexabilityReasons.canonicalToOther) === true || input.nodeKey !== void 0 && input.canonicalNodeKey !== null && input.canonicalNodeKey !== void 0 && input.canonicalNodeKey !== input.nodeKey;
|
|
8595
|
+
}
|
|
8596
|
+
function deriveSiteHealthState(input) {
|
|
8597
|
+
switch (input.fetchState) {
|
|
8598
|
+
case SiteCrawlFetchStates.fetchError:
|
|
8599
|
+
return "failed";
|
|
8600
|
+
case SiteCrawlFetchStates.discovered:
|
|
8601
|
+
return "unchecked";
|
|
8602
|
+
case SiteCrawlFetchStates.redirect:
|
|
8603
|
+
case SiteCrawlFetchStates.robotsBlocked:
|
|
8604
|
+
case SiteCrawlFetchStates.nonHtml:
|
|
8605
|
+
return "hidden";
|
|
8606
|
+
case SiteCrawlFetchStates.html:
|
|
8607
|
+
break;
|
|
8608
|
+
default:
|
|
8609
|
+
return "unchecked";
|
|
8610
|
+
}
|
|
8611
|
+
if (pointsToOtherCanonical(input)) return "hidden";
|
|
8612
|
+
switch (input.indexabilityState) {
|
|
8613
|
+
case SiteCrawlIndexabilityStates.indexable:
|
|
8614
|
+
return "eligible";
|
|
8615
|
+
case SiteCrawlIndexabilityStates.noindex:
|
|
8616
|
+
case SiteCrawlIndexabilityStates.blocked:
|
|
8617
|
+
return "hidden";
|
|
8618
|
+
case SiteCrawlIndexabilityStates.unknown:
|
|
8619
|
+
default:
|
|
8620
|
+
return "unchecked";
|
|
8621
|
+
}
|
|
8622
|
+
}
|
|
8623
|
+
var siteCrawlPageSchema = z24.object({
|
|
8624
|
+
nodeKey: z24.string(),
|
|
8625
|
+
url: z24.string(),
|
|
8626
|
+
finalUrl: z24.string().nullable(),
|
|
8627
|
+
path: z24.string(),
|
|
8628
|
+
parentPath: z24.string(),
|
|
8629
|
+
discoverySource: z24.string(),
|
|
8630
|
+
fetchState: z24.string(),
|
|
8631
|
+
httpStatus: z24.number().int().nullable(),
|
|
8632
|
+
canonicalUrl: z24.string().nullable(),
|
|
8633
|
+
indexabilityState: z24.string(),
|
|
8634
|
+
indexabilityReasons: z24.array(z24.string()).default([]),
|
|
8635
|
+
auditState: z24.string(),
|
|
8636
|
+
auditScore: z24.number().nullable(),
|
|
8637
|
+
inventoryEligible: z24.boolean(),
|
|
8638
|
+
depth: z24.number().int().nullable(),
|
|
8639
|
+
inboundUniqueEdges: z24.number().int().nonnegative(),
|
|
8640
|
+
outboundUniqueEdges: z24.number().int().nonnegative(),
|
|
8641
|
+
inboundOccurrences: z24.number().int().nonnegative(),
|
|
8642
|
+
outboundOccurrences: z24.number().int().nonnegative(),
|
|
8643
|
+
linkScoreRaw: z24.number().nullable(),
|
|
8644
|
+
linkScoreNormalized: z24.number().nullable(),
|
|
8645
|
+
healthState: siteHealthStateSchema
|
|
8646
|
+
});
|
|
8647
|
+
var siteCrawlAuditFindingSchema = z24.object({
|
|
8648
|
+
type: z24.enum(["found", "missing", "info", "timeout", "unreachable"]),
|
|
8649
|
+
/** Stable machine code; UI and agents must not key behavior off `message`. */
|
|
8650
|
+
code: z24.string().min(1),
|
|
8651
|
+
message: z24.string().min(1)
|
|
8652
|
+
});
|
|
8653
|
+
var siteCrawlAuditFactorSchema = siteAuditPageFactorSchema.extend({
|
|
8654
|
+
status: siteAuditFactorStatusSchema,
|
|
8655
|
+
/** `null` means the engine did not explicitly classify applicability. */
|
|
8656
|
+
applicable: z24.boolean().nullable(),
|
|
8657
|
+
findings: z24.array(siteCrawlAuditFindingSchema).default([]),
|
|
8658
|
+
recommendations: z24.array(z24.string()).default([])
|
|
8659
|
+
});
|
|
8660
|
+
var siteCrawlCriticalDefectSchema = z24.object({
|
|
8661
|
+
id: z24.string().min(1),
|
|
8662
|
+
severity: z24.enum(["critical", "warning"]),
|
|
8663
|
+
detail: z24.string().min(1),
|
|
8664
|
+
recommendation: z24.string().min(1)
|
|
8665
|
+
});
|
|
8666
|
+
var siteCrawlPageAuditProvenanceSchema = z24.object({
|
|
8667
|
+
project: z24.string(),
|
|
8668
|
+
runId: z24.string(),
|
|
8669
|
+
complete: z24.boolean(),
|
|
8670
|
+
termination: z24.string().nullable()
|
|
8671
|
+
});
|
|
8672
|
+
var siteCrawlPageAuditIdentitySchema = z24.object({
|
|
8673
|
+
nodeKey: z24.string(),
|
|
8674
|
+
url: z24.string(),
|
|
8675
|
+
auditState: z24.string()
|
|
8676
|
+
});
|
|
8677
|
+
var siteCrawlPageAuditSchema = z24.discriminatedUnion("state", [
|
|
8678
|
+
z24.object({
|
|
8679
|
+
state: z24.literal("no-crawl"),
|
|
8680
|
+
project: z24.string(),
|
|
8681
|
+
runId: z24.null()
|
|
8682
|
+
}),
|
|
8683
|
+
siteCrawlPageAuditProvenanceSchema.extend({ state: z24.literal("details-unavailable") }),
|
|
8684
|
+
siteCrawlPageAuditProvenanceSchema.extend({ state: z24.literal("not-found") }),
|
|
8685
|
+
siteCrawlPageAuditProvenanceSchema.merge(siteCrawlPageAuditIdentitySchema).extend({
|
|
8686
|
+
state: z24.literal("not-audited"),
|
|
8687
|
+
auditScore: z24.null(),
|
|
8688
|
+
factors: z24.array(siteCrawlAuditFactorSchema).length(0).default([]),
|
|
8689
|
+
criticalDefects: z24.array(siteCrawlCriticalDefectSchema).length(0).default([])
|
|
8690
|
+
}),
|
|
8691
|
+
siteCrawlPageAuditProvenanceSchema.merge(siteCrawlPageAuditIdentitySchema).extend({
|
|
8692
|
+
state: z24.literal("ready"),
|
|
8693
|
+
auditScore: z24.number(),
|
|
8694
|
+
/** Old crawl rows retain factor scores but did not persist evidence prose. */
|
|
8695
|
+
evidenceState: z24.enum(["complete", "scores-only"]),
|
|
8696
|
+
factors: z24.array(siteCrawlAuditFactorSchema).default([]),
|
|
8697
|
+
criticalDefects: z24.array(siteCrawlCriticalDefectSchema).default([])
|
|
8698
|
+
})
|
|
8699
|
+
]);
|
|
8700
|
+
var siteCrawlPagesResponseSchema = z24.object({
|
|
8701
|
+
project: z24.string(),
|
|
8702
|
+
hasCrawlData: z24.boolean(),
|
|
8703
|
+
runId: z24.string().nullable(),
|
|
8704
|
+
total: z24.number().int().nonnegative(),
|
|
8705
|
+
nextCursor: z24.string().nullable(),
|
|
8706
|
+
pages: z24.array(siteCrawlPageSchema).default([])
|
|
8707
|
+
});
|
|
8708
|
+
var siteCrawlStructureChildSchema = z24.object({
|
|
8709
|
+
path: z24.string(),
|
|
8710
|
+
/** URL of the exact folder landing page, null for a synthetic hierarchy node. */
|
|
8711
|
+
url: z24.string().nullable(),
|
|
8712
|
+
hasPage: z24.boolean(),
|
|
8713
|
+
pageCount: z24.number().int().positive(),
|
|
8714
|
+
inventoryEligibleCount: z24.number().int().nonnegative(),
|
|
8715
|
+
fetchedCount: z24.number().int().nonnegative()
|
|
8716
|
+
});
|
|
8717
|
+
var siteCrawlStructureResponseSchema = z24.object({
|
|
8718
|
+
project: z24.string(),
|
|
8719
|
+
hasCrawlData: z24.boolean(),
|
|
8720
|
+
runId: z24.string().nullable(),
|
|
8721
|
+
parentPath: z24.string(),
|
|
8722
|
+
nextCursor: z24.string().nullable(),
|
|
8723
|
+
children: z24.array(siteCrawlStructureChildSchema).default([])
|
|
8724
|
+
});
|
|
8725
|
+
var siteCrawlEdgeSchema = z24.object({
|
|
8726
|
+
edgeKey: z24.string(),
|
|
8727
|
+
sourceNodeKey: z24.string(),
|
|
8728
|
+
sourceUrl: z24.string(),
|
|
8729
|
+
targetNodeKey: z24.string().nullable(),
|
|
8730
|
+
targetUrl: z24.string(),
|
|
8731
|
+
relation: z24.string(),
|
|
8732
|
+
internal: z24.boolean(),
|
|
8733
|
+
followable: z24.boolean(),
|
|
8734
|
+
occurrences: z24.number().int().positive(),
|
|
8735
|
+
followableOccurrences: z24.number().int().nonnegative(),
|
|
8736
|
+
nofollowOccurrences: z24.number().int().nonnegative(),
|
|
8737
|
+
anchors: z24.array(z24.string()).default([])
|
|
8738
|
+
});
|
|
8739
|
+
var siteCrawlGraphNodeSchema = z24.object({
|
|
8740
|
+
nodeKey: z24.string(),
|
|
8741
|
+
url: z24.string(),
|
|
8742
|
+
path: z24.string(),
|
|
8743
|
+
depth: z24.number().int().nonnegative().nullable(),
|
|
8744
|
+
indexabilityState: z24.string(),
|
|
8745
|
+
fetchState: z24.string(),
|
|
8746
|
+
auditState: z24.string(),
|
|
8747
|
+
auditScore: z24.number().nullable(),
|
|
8748
|
+
inventoryEligible: z24.boolean(),
|
|
8749
|
+
inboundUniqueEdges: z24.number().int().nonnegative(),
|
|
8750
|
+
outboundUniqueEdges: z24.number().int().nonnegative(),
|
|
8751
|
+
linkScoreNormalized: z24.number().nullable(),
|
|
8752
|
+
healthState: siteHealthStateSchema,
|
|
8753
|
+
/** Publish-time ForceAtlas2 coordinate. Reads never run layout physics. */
|
|
8754
|
+
x: z24.number(),
|
|
8755
|
+
/** Publish-time ForceAtlas2 coordinate. Reads never run layout physics. */
|
|
8756
|
+
y: z24.number()
|
|
8757
|
+
});
|
|
8758
|
+
var siteCrawlGraphEdgeSchema = z24.object({
|
|
8759
|
+
edgeKey: z24.string(),
|
|
8760
|
+
sourceNodeKey: z24.string(),
|
|
8761
|
+
targetNodeKey: z24.string(),
|
|
8762
|
+
followable: z24.boolean(),
|
|
8763
|
+
occurrences: z24.number().int().positive()
|
|
8764
|
+
});
|
|
8765
|
+
var siteCrawlGraphLayoutSchema = z24.discriminatedUnion("state", [
|
|
8766
|
+
z24.object({
|
|
8767
|
+
state: z24.literal("ready"),
|
|
8768
|
+
version: z24.string().min(1),
|
|
8769
|
+
computedAt: z24.string().min(1)
|
|
8770
|
+
}),
|
|
8771
|
+
z24.object({
|
|
8772
|
+
state: z24.literal("unavailable"),
|
|
8773
|
+
version: z24.null(),
|
|
8774
|
+
reason: z24.enum(["no-crawl", "legacy-snapshot", "details-unavailable", "layout-failed", "empty-crawl"])
|
|
8775
|
+
})
|
|
8776
|
+
]);
|
|
8777
|
+
var siteCrawlGraphResponseSchema = z24.object({
|
|
8778
|
+
project: z24.string(),
|
|
8779
|
+
hasCrawlData: z24.boolean(),
|
|
8780
|
+
runId: z24.string().nullable(),
|
|
8781
|
+
layout: siteCrawlGraphLayoutSchema,
|
|
8782
|
+
/** Total canonical pages in the persisted crawl before graph sampling. */
|
|
8783
|
+
totalNodes: z24.number().int().nonnegative(),
|
|
8784
|
+
/** Total graph-compatible internal anchor edges before graph sampling. */
|
|
8785
|
+
totalEdges: z24.number().int().nonnegative(),
|
|
8786
|
+
nodes: z24.array(siteCrawlGraphNodeSchema).default([]),
|
|
8787
|
+
edges: z24.array(siteCrawlGraphEdgeSchema).default([]),
|
|
8788
|
+
omittedNodes: z24.number().int().nonnegative(),
|
|
8789
|
+
omittedEdges: z24.number().int().nonnegative(),
|
|
8790
|
+
/** True when publish/read caps or a layout failure omit graph rows. */
|
|
8791
|
+
sampled: z24.boolean()
|
|
8792
|
+
});
|
|
8793
|
+
var SITE_CRAWL_GRAPH_DEFAULT_MAX_NODES = 2e4;
|
|
8794
|
+
var SITE_CRAWL_GRAPH_MAX_NODES = 2e4;
|
|
8795
|
+
var SITE_CRAWL_GRAPH_DEFAULT_MAX_EDGES = 5e4;
|
|
8796
|
+
var SITE_CRAWL_GRAPH_MAX_EDGES = 5e4;
|
|
8797
|
+
var siteHealthSubgraphRelationSchema = z24.enum([
|
|
8798
|
+
"focus",
|
|
8799
|
+
"inbound",
|
|
8800
|
+
"outbound",
|
|
8801
|
+
"both",
|
|
8802
|
+
"transitive"
|
|
8803
|
+
]);
|
|
8804
|
+
var siteHealthSubgraphNodeSchema = siteCrawlPageSchema.extend({
|
|
8805
|
+
distance: z24.number().int().nonnegative(),
|
|
8806
|
+
relationToFocus: siteHealthSubgraphRelationSchema
|
|
8807
|
+
});
|
|
8808
|
+
var siteHealthSubgraphResponseSchema = z24.object({
|
|
8809
|
+
project: z24.string(),
|
|
8810
|
+
hasCrawlData: z24.boolean(),
|
|
8811
|
+
runId: z24.string().nullable(),
|
|
8812
|
+
/** Selected snapshot provenance. Historical partial crawls stay explicit. */
|
|
8813
|
+
complete: z24.boolean(),
|
|
8814
|
+
termination: z24.string().nullable(),
|
|
8815
|
+
state: z24.enum(["no-crawl", "details-unavailable", "ready"]),
|
|
8816
|
+
focusNodeKey: z24.string().nullable(),
|
|
8817
|
+
focusUrl: z24.string().nullable(),
|
|
8818
|
+
hops: z24.number().int().min(0).max(3),
|
|
8819
|
+
totalNodes: z24.number().int().nonnegative(),
|
|
8820
|
+
totalEdges: z24.number().int().nonnegative(),
|
|
8821
|
+
nodes: z24.array(siteHealthSubgraphNodeSchema).default([]),
|
|
8822
|
+
edges: z24.array(siteCrawlEdgeSchema).default([]),
|
|
8823
|
+
omittedNodes: z24.number().int().nonnegative(),
|
|
8824
|
+
omittedEdges: z24.number().int().nonnegative(),
|
|
8825
|
+
/** `lower-bound` means totals and omissions are minimums because traversal hit a cap. */
|
|
8826
|
+
countAccuracy: z24.enum(["exact", "lower-bound"]),
|
|
8827
|
+
truncated: z24.boolean()
|
|
8828
|
+
});
|
|
8829
|
+
var SITE_HEALTH_SUBGRAPH_DEFAULT_MAX_NODES = 25;
|
|
8830
|
+
var SITE_HEALTH_SUBGRAPH_MAX_NODES = 200;
|
|
8831
|
+
var SITE_HEALTH_SUBGRAPH_DEFAULT_MAX_EDGES = 50;
|
|
8832
|
+
var SITE_HEALTH_SUBGRAPH_MAX_EDGES = 500;
|
|
8833
|
+
var siteHealthNodeReferenceSchema = z24.object({
|
|
8834
|
+
nodeKey: z24.string(),
|
|
8835
|
+
url: z24.string(),
|
|
8836
|
+
path: z24.string()
|
|
8837
|
+
});
|
|
8838
|
+
var siteHealthPathResponseSchema = z24.object({
|
|
8839
|
+
project: z24.string(),
|
|
8840
|
+
runId: z24.string().nullable(),
|
|
8841
|
+
/** Selected snapshot provenance. `unreachable` on a partial crawl is not a site-wide claim. */
|
|
8842
|
+
complete: z24.boolean(),
|
|
8843
|
+
termination: z24.string().nullable(),
|
|
8844
|
+
state: z24.enum(["no-crawl", "details-unavailable", "found", "unreachable", "truncated"]),
|
|
8845
|
+
from: siteHealthNodeReferenceSchema.nullable(),
|
|
8846
|
+
to: siteHealthNodeReferenceSchema.nullable(),
|
|
8847
|
+
maxDepth: z24.number().int().positive(),
|
|
8848
|
+
visitedNodes: z24.number().int().nonnegative(),
|
|
8849
|
+
nodes: z24.array(siteCrawlPageSchema).default([]),
|
|
8850
|
+
edges: z24.array(siteCrawlEdgeSchema).default([])
|
|
8851
|
+
});
|
|
8852
|
+
var SITE_HEALTH_PATH_DEFAULT_MAX_DEPTH = 12;
|
|
8853
|
+
var SITE_HEALTH_PATH_MAX_DEPTH = 24;
|
|
8854
|
+
var SITE_HEALTH_PATH_MAX_VISITED_NODES = 5e3;
|
|
8855
|
+
var siteHealthChangeKindSchema = z24.enum(["added", "removed", "changed"]);
|
|
8856
|
+
var siteHealthPageChangeSchema = z24.object({
|
|
8857
|
+
entity: z24.literal("page"),
|
|
8858
|
+
change: siteHealthChangeKindSchema,
|
|
8859
|
+
key: z24.string(),
|
|
8860
|
+
changedFields: z24.array(z24.string()).default([]),
|
|
8861
|
+
before: siteCrawlPageSchema.nullable(),
|
|
8862
|
+
after: siteCrawlPageSchema.nullable()
|
|
8863
|
+
});
|
|
8864
|
+
var siteHealthLinkChangeSchema = z24.object({
|
|
8865
|
+
entity: z24.literal("link"),
|
|
8866
|
+
change: siteHealthChangeKindSchema,
|
|
8867
|
+
key: z24.string(),
|
|
8868
|
+
changedFields: z24.array(z24.string()).default([]),
|
|
8869
|
+
before: siteCrawlEdgeSchema.nullable(),
|
|
8870
|
+
after: siteCrawlEdgeSchema.nullable()
|
|
8871
|
+
});
|
|
8872
|
+
var siteHealthChangeRecordSchema = z24.discriminatedUnion("entity", [
|
|
8873
|
+
siteHealthPageChangeSchema,
|
|
8874
|
+
siteHealthLinkChangeSchema
|
|
8875
|
+
]);
|
|
8876
|
+
var siteHealthChangeCountsSchema = z24.object({
|
|
8877
|
+
added: z24.number().int().nonnegative(),
|
|
8878
|
+
removed: z24.number().int().nonnegative(),
|
|
8879
|
+
changed: z24.number().int().nonnegative()
|
|
8880
|
+
});
|
|
8881
|
+
var siteHealthChangesFiltersSchema = z24.object({
|
|
8882
|
+
scope: z24.enum(["all", "pages", "links"]),
|
|
8883
|
+
change: z24.enum(["all", "added", "removed", "changed"])
|
|
8884
|
+
});
|
|
8885
|
+
var siteHealthChangesResponseSchema = z24.discriminatedUnion("state", [
|
|
8886
|
+
z24.object({
|
|
8887
|
+
project: z24.string(),
|
|
8888
|
+
state: z24.literal("unavailable"),
|
|
8889
|
+
reason: z24.enum(["no-crawl", "insufficient-history", "details-unavailable", "partial-not-comparable"]),
|
|
8890
|
+
fromRunId: z24.string().nullable(),
|
|
8891
|
+
toRunId: z24.string().nullable()
|
|
8892
|
+
}),
|
|
8893
|
+
z24.object({
|
|
8894
|
+
project: z24.string(),
|
|
8895
|
+
state: z24.literal("incompatible"),
|
|
8896
|
+
reason: z24.literal("incompatible-versions"),
|
|
8897
|
+
fromRunId: z24.string(),
|
|
8898
|
+
toRunId: z24.string(),
|
|
8899
|
+
mismatchedVersions: z24.array(z24.string()).min(1)
|
|
8900
|
+
}),
|
|
8901
|
+
z24.object({
|
|
8902
|
+
project: z24.string(),
|
|
8903
|
+
state: z24.literal("ready"),
|
|
8904
|
+
fromRunId: z24.string(),
|
|
8905
|
+
toRunId: z24.string(),
|
|
8906
|
+
versions: z24.object({
|
|
8907
|
+
crawlSchema: z24.string(),
|
|
8908
|
+
normalization: z24.string(),
|
|
8909
|
+
indexability: z24.string(),
|
|
8910
|
+
linkScore: z24.string()
|
|
8911
|
+
}),
|
|
8912
|
+
/** The filters whose post-filter counts and records this page represents. */
|
|
8913
|
+
filters: siteHealthChangesFiltersSchema,
|
|
8914
|
+
/** Continuations omit summary work; reuse the exact summary from the first page. */
|
|
8915
|
+
summaryState: z24.enum(["exact", "omitted-on-continuation"]),
|
|
8916
|
+
summary: z24.object({
|
|
8917
|
+
pages: siteHealthChangeCountsSchema,
|
|
8918
|
+
links: siteHealthChangeCountsSchema
|
|
8919
|
+
}).nullable(),
|
|
8920
|
+
total: z24.number().int().nonnegative().nullable(),
|
|
8921
|
+
nextCursor: z24.string().nullable(),
|
|
8922
|
+
changes: z24.array(siteHealthChangeRecordSchema).default([])
|
|
8923
|
+
})
|
|
8924
|
+
]);
|
|
8925
|
+
var SITE_HEALTH_CHANGES_DEFAULT_LIMIT = 25;
|
|
8926
|
+
var SITE_HEALTH_CHANGES_MAX_LIMIT = 100;
|
|
8927
|
+
var siteCrawlInternalLinksResponseSchema = z24.object({
|
|
8928
|
+
project: z24.string(),
|
|
8929
|
+
hasCrawlData: z24.boolean(),
|
|
8930
|
+
runId: z24.string().nullable(),
|
|
8931
|
+
total: z24.number().int().nonnegative(),
|
|
8932
|
+
nextCursor: z24.string().nullable(),
|
|
8933
|
+
edges: z24.array(siteCrawlEdgeSchema).default([])
|
|
8934
|
+
});
|
|
8935
|
+
var siteCrawlNeighborsResponseSchema = z24.object({
|
|
8936
|
+
project: z24.string(),
|
|
8937
|
+
hasCrawlData: z24.boolean(),
|
|
8938
|
+
runId: z24.string().nullable(),
|
|
8939
|
+
nodeKey: z24.string().nullable(),
|
|
8940
|
+
url: z24.string().nullable(),
|
|
8941
|
+
inbound: z24.array(siteCrawlEdgeSchema).default([]),
|
|
8942
|
+
outbound: z24.array(siteCrawlEdgeSchema).default([]),
|
|
8943
|
+
inboundTruncated: z24.boolean(),
|
|
8944
|
+
outboundTruncated: z24.boolean()
|
|
8945
|
+
});
|
|
8946
|
+
var siteCrawlDeadLinkSchema = z24.object({
|
|
8947
|
+
findingKey: z24.string(),
|
|
8948
|
+
severity: z24.string(),
|
|
8949
|
+
sourceNodeKey: z24.string().nullable(),
|
|
8950
|
+
sourceUrl: z24.string().nullable(),
|
|
8951
|
+
targetNodeKey: z24.string().nullable(),
|
|
8952
|
+
targetUrl: z24.string().nullable(),
|
|
8953
|
+
evidence: z24.record(z24.string(), z24.unknown()).default({})
|
|
8954
|
+
});
|
|
8955
|
+
var siteCrawlDeadLinksResponseSchema = z24.discriminatedUnion("state", [
|
|
8956
|
+
z24.object({ project: z24.string(), runId: z24.string().nullable(), state: z24.literal("unavailable"), legacyAuditAvailable: z24.boolean() }),
|
|
8957
|
+
z24.object({ project: z24.string(), runId: z24.string(), state: z24.literal("disabled"), checkDeadLinks: z24.literal(false) }),
|
|
8958
|
+
z24.object({
|
|
8959
|
+
project: z24.string(),
|
|
8960
|
+
runId: z24.string(),
|
|
8961
|
+
state: z24.literal("complete"),
|
|
8962
|
+
checkDeadLinks: z24.literal(true),
|
|
8963
|
+
checked: z24.number().int().nonnegative(),
|
|
8964
|
+
found: z24.number().int().nonnegative(),
|
|
8965
|
+
total: z24.number().int().nonnegative(),
|
|
8966
|
+
nextCursor: z24.string().nullable(),
|
|
8967
|
+
deadLinks: z24.array(siteCrawlDeadLinkSchema).default([])
|
|
8968
|
+
}),
|
|
8969
|
+
z24.object({
|
|
8970
|
+
project: z24.string(),
|
|
8971
|
+
runId: z24.string(),
|
|
8972
|
+
state: z24.literal("partial"),
|
|
8973
|
+
checkDeadLinks: z24.literal(true),
|
|
8974
|
+
checked: z24.number().int().nonnegative(),
|
|
8975
|
+
found: z24.number().int().nonnegative(),
|
|
8976
|
+
total: z24.number().int().nonnegative(),
|
|
8977
|
+
nextCursor: z24.string().nullable(),
|
|
8978
|
+
deadLinks: z24.array(siteCrawlDeadLinkSchema).default([])
|
|
8979
|
+
})
|
|
8980
|
+
]);
|
|
8981
|
+
var SITE_AUDIT_DEFAULT_PAGE_LIMIT = 1e3;
|
|
8982
|
+
var SITE_AUDIT_MAX_PAGE_LIMIT = 5e4;
|
|
8983
|
+
var SITE_AUDIT_DEFAULT_EDGE_LIMIT = 1e5;
|
|
8984
|
+
var SITE_AUDIT_MAX_EDGE_LIMIT = 1e6;
|
|
8526
8985
|
var siteAuditRunRequestSchema = z24.object({
|
|
8527
|
-
/**
|
|
8986
|
+
/** @deprecated Prefer the configured project sitemap; retained for compatibility. */
|
|
8528
8987
|
sitemapUrl: z24.string().url().optional(),
|
|
8529
|
-
/**
|
|
8530
|
-
limit: z24.number().int().positive().max(2e3).optional()
|
|
8531
|
-
|
|
8988
|
+
/** @deprecated Prefer `maxPages`; retained for compatibility. */
|
|
8989
|
+
limit: z24.number().int().positive().max(2e3).optional(),
|
|
8990
|
+
/** Crawl page budget. When omitted, Canonry crawls up to 1,000 pages. */
|
|
8991
|
+
maxPages: z24.number().int().positive().max(5e4).optional(),
|
|
8992
|
+
/** Internal-link observation budget. When omitted, Canonry retains up to 100,000 edges. */
|
|
8993
|
+
maxEdges: z24.number().int().positive().max(1e6).optional(),
|
|
8994
|
+
/** Maximum crawl depth from the root. */
|
|
8995
|
+
maxDepth: z24.number().int().min(0).max(100).optional(),
|
|
8996
|
+
/** Off by default; derives findings only from observed internal targets. External links are never probed. */
|
|
8997
|
+
checkDeadLinks: z24.boolean().default(false)
|
|
8998
|
+
});
|
|
8999
|
+
function normalizeSiteAuditRunRequest(request) {
|
|
9000
|
+
return {
|
|
9001
|
+
schemaVersion: 1,
|
|
9002
|
+
sitemapUrl: request.sitemapUrl ? new URL(request.sitemapUrl).toString() : null,
|
|
9003
|
+
maxPages: request.maxPages ?? request.limit ?? SITE_AUDIT_DEFAULT_PAGE_LIMIT,
|
|
9004
|
+
maxEdges: request.maxEdges ?? SITE_AUDIT_DEFAULT_EDGE_LIMIT,
|
|
9005
|
+
maxDepth: request.maxDepth ?? null,
|
|
9006
|
+
checkDeadLinks: request.checkDeadLinks === true
|
|
9007
|
+
};
|
|
9008
|
+
}
|
|
9009
|
+
function siteAuditRequestIdentity(request) {
|
|
9010
|
+
return JSON.stringify([
|
|
9011
|
+
request.schemaVersion,
|
|
9012
|
+
request.sitemapUrl,
|
|
9013
|
+
request.maxPages,
|
|
9014
|
+
request.maxEdges,
|
|
9015
|
+
request.maxDepth,
|
|
9016
|
+
request.checkDeadLinks
|
|
9017
|
+
]);
|
|
9018
|
+
}
|
|
8532
9019
|
var siteAuditRunResponseSchema = z24.object({
|
|
8533
9020
|
runId: z24.string(),
|
|
8534
9021
|
status: runStatusSchema
|
|
@@ -14143,9 +14630,44 @@ export {
|
|
|
14143
14630
|
factorStatusFromScore,
|
|
14144
14631
|
SiteAuditTrendDirections,
|
|
14145
14632
|
siteAuditScoreSchema,
|
|
14633
|
+
siteAuditPageFactorSchema,
|
|
14146
14634
|
siteAuditPagesResponseSchema,
|
|
14147
14635
|
siteAuditTrendResponseSchema,
|
|
14636
|
+
siteCrawlSummarySchema,
|
|
14637
|
+
SiteCrawlFetchedStates,
|
|
14638
|
+
deriveSiteHealthState,
|
|
14639
|
+
siteCrawlAuditFactorSchema,
|
|
14640
|
+
siteCrawlCriticalDefectSchema,
|
|
14641
|
+
siteCrawlPageAuditSchema,
|
|
14642
|
+
siteCrawlPagesResponseSchema,
|
|
14643
|
+
siteCrawlStructureResponseSchema,
|
|
14644
|
+
siteCrawlGraphResponseSchema,
|
|
14645
|
+
SITE_CRAWL_GRAPH_DEFAULT_MAX_NODES,
|
|
14646
|
+
SITE_CRAWL_GRAPH_MAX_NODES,
|
|
14647
|
+
SITE_CRAWL_GRAPH_DEFAULT_MAX_EDGES,
|
|
14648
|
+
SITE_CRAWL_GRAPH_MAX_EDGES,
|
|
14649
|
+
siteHealthSubgraphResponseSchema,
|
|
14650
|
+
SITE_HEALTH_SUBGRAPH_DEFAULT_MAX_NODES,
|
|
14651
|
+
SITE_HEALTH_SUBGRAPH_MAX_NODES,
|
|
14652
|
+
SITE_HEALTH_SUBGRAPH_DEFAULT_MAX_EDGES,
|
|
14653
|
+
SITE_HEALTH_SUBGRAPH_MAX_EDGES,
|
|
14654
|
+
siteHealthPathResponseSchema,
|
|
14655
|
+
SITE_HEALTH_PATH_DEFAULT_MAX_DEPTH,
|
|
14656
|
+
SITE_HEALTH_PATH_MAX_DEPTH,
|
|
14657
|
+
SITE_HEALTH_PATH_MAX_VISITED_NODES,
|
|
14658
|
+
siteHealthChangesResponseSchema,
|
|
14659
|
+
SITE_HEALTH_CHANGES_DEFAULT_LIMIT,
|
|
14660
|
+
SITE_HEALTH_CHANGES_MAX_LIMIT,
|
|
14661
|
+
siteCrawlInternalLinksResponseSchema,
|
|
14662
|
+
siteCrawlNeighborsResponseSchema,
|
|
14663
|
+
siteCrawlDeadLinksResponseSchema,
|
|
14664
|
+
SITE_AUDIT_DEFAULT_PAGE_LIMIT,
|
|
14665
|
+
SITE_AUDIT_MAX_PAGE_LIMIT,
|
|
14666
|
+
SITE_AUDIT_DEFAULT_EDGE_LIMIT,
|
|
14667
|
+
SITE_AUDIT_MAX_EDGE_LIMIT,
|
|
14148
14668
|
siteAuditRunRequestSchema,
|
|
14669
|
+
normalizeSiteAuditRunRequest,
|
|
14670
|
+
siteAuditRequestIdentity,
|
|
14149
14671
|
siteAuditRunResponseSchema,
|
|
14150
14672
|
schedulableRunKindSchema,
|
|
14151
14673
|
SchedulableRunKinds,
|