@canonry/canonry 7.71.0 → 7.72.1
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/skills/canonry/references/canonry-cli.md +1 -1
- package/assets/assets/{AgentSetupPage-DexQKsfX.js → AgentSetupPage-D39M9CRK.js} +1 -1
- package/assets/assets/{AuditHistoryPanel-C0tKUYig.js → AuditHistoryPanel-BS-iFyHX.js} +1 -1
- package/assets/assets/{BacklinksPage-CXKsDXhy.js → BacklinksPage-BW2bEGF4.js} +1 -1
- package/assets/assets/{HistoryPage-D1UkPELF.js → HistoryPage-Dh6o2iVd.js} +1 -1
- package/assets/assets/MeasurementPropertyPage-DL9cbtVz.js +4 -0
- package/assets/assets/{ProjectPage-DVQora-C.js → ProjectPage-DXh97uDN.js} +5 -5
- package/assets/assets/{RunsPage-CnPgX-bf.js → RunsPage-BM4ETLsm.js} +1 -1
- package/assets/assets/SettingsPage-DpJTB2-Q.js +1 -0
- package/assets/assets/SiteHealthSection-CmlMQ17V.js +2 -0
- package/assets/assets/{ToneBadge-aGjnkfBI.js → ToneBadge-CmvL5mFG.js} +1 -1
- package/assets/assets/{TrafficPage-DIa6lxo2.js → TrafficPage-ClH3Dxnm.js} +4 -4
- package/assets/assets/{TrafficSourceDetailPage-BTFJ4JkC.js → TrafficSourceDetailPage-DE-NyNGz.js} +1 -1
- package/assets/assets/{account-context-RobEwj-E.js → account-context-BwV6ox8O.js} +1 -1
- package/assets/assets/{card-BLjXAqaV.js → card-DhkoBNyY.js} +1 -1
- package/assets/assets/{extract-error-message-BnVETQ_r.js → extract-error-message-dNDtiSBo.js} +1 -1
- package/assets/assets/{format-helpers-2INiLwsz.js → format-helpers-Bt4tx-f3.js} +1 -1
- package/assets/assets/{index-zdoJudA4.js → index-MbApCekj.js} +16 -16
- package/assets/assets/{query-client-BMplcUQL.js → query-client-D-zMw63p.js} +1 -1
- package/assets/assets/{react-query-BYjj2p2M.js → react-query-EdiRRB2q.js} +1 -1
- package/assets/assets/{react-sigma_core.esm.min-CerNhJzW.js → react-sigma_core.esm.min-Bidr1Gxk.js} +1 -1
- package/assets/assets/service-BUi8JgGI.js +1 -0
- package/assets/index.html +7 -7
- package/dist/{ads-P75E4E3Q.js → ads-FFUUMS4J.js} +3 -3
- package/dist/{agent-WKTCTJL7.js → agent-LCD2VG7C.js} +7 -7
- package/dist/{agent-ask-CI4I5UER.js → agent-ask-OBHTCYFR.js} +3 -3
- package/dist/{agent-conversations-2LXN6PC5.js → agent-conversations-VMZ4NFIX.js} +3 -3
- package/dist/{agent-memory-STJUYUEI.js → agent-memory-UPFJFNWC.js} +3 -3
- package/dist/{agent-providers-HRQCKR57.js → agent-providers-4GOWLBZK.js} +3 -3
- package/dist/{agent-transcript-SMNVT5UA.js → agent-transcript-RGXIVZUP.js} +3 -3
- package/dist/{analytics-GZRA5LS4.js → analytics-FBK4XV5P.js} +3 -3
- package/dist/{apply-QXMZGXAY.js → apply-Y2DVE3YB.js} +3 -3
- package/dist/{backfill-3VVYI6XX.js → backfill-7SGCPH6J.js} +9 -9
- package/dist/{backlinks-VUTZFYJY.js → backlinks-YWHFC7DZ.js} +3 -3
- package/dist/{bing-DKYPVXU4.js → bing-7BP3DWPK.js} +3 -3
- package/dist/{bootstrap-3CMHZS6G.js → bootstrap-Z7QSKVPL.js} +10 -10
- package/dist/{cdp-XP4RGCA6.js → cdp-OL6RENO3.js} +7 -7
- package/dist/{chunk-SNCRERSZ.js → chunk-3AG3LPZX.js} +1 -1
- package/dist/{chunk-JCECURGF.js → chunk-4LTL5RNY.js} +4 -4
- package/dist/{chunk-ALXQPMYR.js → chunk-6MYHGP46.js} +1 -1
- package/dist/{chunk-SZSJALQM.js → chunk-7KOAP47B.js} +21 -8
- package/dist/{chunk-T6IV35KG.js → chunk-ATT3ZCSS.js} +2 -2
- package/dist/{chunk-U6EUBP4B.js → chunk-BADJCT6U.js} +1 -1
- package/dist/{chunk-JB4NDUWJ.js → chunk-BZZDFIY2.js} +1 -1
- package/dist/{chunk-Z6BDB4KS.js → chunk-DFCKSJQI.js} +4 -4
- package/dist/{chunk-ETMB45WP.js → chunk-DRGCVTYH.js} +1 -1
- package/dist/{chunk-WE3SK5GQ.js → chunk-GA2EHZTI.js} +4 -4
- package/dist/{chunk-XSRKTGRG.js → chunk-GPTRCOKV.js} +38 -21
- package/dist/{chunk-VLFPI3T3.js → chunk-H4HNXCDF.js} +2 -2
- package/dist/{chunk-ILLWCY2P.js → chunk-IV6VZ63E.js} +3 -3
- package/dist/{chunk-FNVUPIMW.js → chunk-IZMT4WLZ.js} +2 -2
- package/dist/{chunk-WHH7HWN7.js → chunk-J523Y7X2.js} +1 -1
- package/dist/{chunk-3NOFNFGV.js → chunk-JE5QURTR.js} +1 -1
- package/dist/{chunk-WNBN4FYE.js → chunk-JEBY6MS6.js} +1 -1
- package/dist/{chunk-K4S2T6C5.js → chunk-JO73L677.js} +2 -2
- package/dist/{chunk-DEMNY4YE.js → chunk-MJYO6UK2.js} +2 -2
- package/dist/{chunk-IX7AKQBJ.js → chunk-NZZWJCKS.js} +3 -3
- package/dist/{chunk-EDQ4V4PJ.js → chunk-O7WOCTBD.js} +13 -1
- package/dist/{chunk-OOXR7SZ5.js → chunk-P3UGNR2Y.js} +4 -4
- package/dist/{chunk-NPHBHVAY.js → chunk-PPM6Z7CM.js} +1 -1
- package/dist/{chunk-AVNEHYTZ.js → chunk-Q25JQANW.js} +1 -1
- package/dist/{chunk-2G3J62KV.js → chunk-QDN3FL2A.js} +1 -1
- package/dist/{chunk-JEC5Z22M.js → chunk-QKMGGM4B.js} +5 -5
- package/dist/{chunk-JHCIMIB5.js → chunk-TEDY3MHN.js} +3 -3
- package/dist/{chunk-DP5V4C3I.js → chunk-TOX6HAQJ.js} +3 -3
- package/dist/{chunk-AAPMP2T3.js → chunk-TUVG7BIF.js} +8 -8
- package/dist/{chunk-ZCIC3DLS.js → chunk-UWBJWKDQ.js} +2 -2
- package/dist/{chunk-C3ZH2HLV.js → chunk-WJ2JU32O.js} +5 -5
- package/dist/{chunk-QREFWO3Q.js → chunk-XR6ZVMYK.js} +1 -1
- package/dist/{chunk-KRDMSGNZ.js → chunk-YFITKHCV.js} +334 -334
- package/dist/{chunk-A3NSYJJL.js → chunk-YXAKL5HM.js} +9 -1
- package/dist/{citations-X24SQ4ZU.js → citations-RVSC67GE.js} +3 -3
- package/dist/{cli-catalog-RYUJEUAY.js → cli-catalog-NEZE5QU5.js} +3 -3
- package/dist/{cli-commands-DFTOVHCU.js → cli-commands-HGCYU4MQ.js} +7 -7
- package/dist/cli.js +13 -13
- package/dist/{competitor-4GIR3D4Q.js → competitor-BX3M3OYS.js} +3 -3
- package/dist/{content-FPMODFJ4.js → content-PKJMVMHJ.js} +3 -3
- package/dist/{dashboard-IJCLC5MW.js → dashboard-SVHZBVM6.js} +6 -6
- package/dist/{demo-52GRHFQH.js → demo-HYDPECCK.js} +1 -1
- package/dist/{demo-server-QZPEIXU2.js → demo-server-KEOO7WFO.js} +11 -11
- package/dist/{discover-Y7I3V75V.js → discover-JDP44ZHX.js} +3 -3
- package/dist/{discover-eval-TS67TA2C.js → discover-eval-6ORCVYYR.js} +3 -3
- package/dist/{doctor-E3OPJGNR.js → doctor-TVZRMBSS.js} +3 -3
- package/dist/{evidence-HBPR3QYE.js → evidence-FNIAFBBG.js} +3 -3
- package/dist/{export-cmd-AXSRXCD5.js → export-cmd-HQNF2SSD.js} +3 -3
- package/dist/{ga-JXHGIEMK.js → ga-PIO5OXMK.js} +3 -3
- package/dist/{gbp-4M54KRXG.js → gbp-3R5FME43.js} +3 -3
- package/dist/{google-TBZLFQTN.js → google-BYZREX2O.js} +4 -4
- package/dist/{google-marketing-EFUITED7.js → google-marketing-SPQ2GW6X.js} +1 -1
- package/dist/{health-cmd-5SCHBHXS.js → health-cmd-HH5RYMSV.js} +3 -3
- package/dist/{history-BLOGMFLZ.js → history-Q35NLLMJ.js} +3 -3
- package/dist/index.d.ts +84 -67
- package/dist/index.js +24 -24
- package/dist/{init-2WCCRDYU.js → init-TV4ZKAAW.js} +11 -11
- package/dist/{insights-AUTLWRQS.js → insights-SH73B4PD.js} +3 -3
- package/dist/intelligence-service-YNHDEY4M.js +15 -0
- package/dist/{journeys-7Y3HE5AX.js → journeys-SIV7HPW7.js} +3 -3
- package/dist/{keys-3T65JGMW.js → keys-O656YWSW.js} +3 -3
- package/dist/{keyword-2MQEXEYJ.js → keyword-FZ2N4EW7.js} +3 -3
- package/dist/{logs-4AWZCX2X.js → logs-2NPN7HBI.js} +3 -3
- package/dist/{mcp-RCMC554F.js → mcp-RHQY3DV6.js} +2 -2
- package/dist/mcp.js +9 -9
- package/dist/{measurement-plan-HFPXGBVZ.js → measurement-plan-JQKVSJRL.js} +5 -5
- package/dist/{notify-GEUMV4QL.js → notify-VTAYBHC6.js} +3 -3
- package/dist/{organic-evidence-TAH2R2U4.js → organic-evidence-HPXXEPOW.js} +3 -3
- package/dist/{overview-WBZW5QMX.js → overview-FSBNDYZJ.js} +4 -4
- package/dist/{project-52XSBNDM.js → project-MAPPXURS.js} +3 -3
- package/dist/{query-7DHBS2QS.js → query-R6DLPIPJ.js} +3 -3
- package/dist/{research-VDLJDU72.js → research-FXKOEUQB.js} +3 -3
- package/dist/{results-export-4XMDISAJ.js → results-export-X2PUM63S.js} +3 -3
- package/dist/{run-NQ664S64.js → run-6ENTG4IO.js} +4 -4
- package/dist/{schedule-CFG2I3BJ.js → schedule-DMMVRT7P.js} +3 -3
- package/dist/{search-Q5HSLPLD.js → search-FHI6APT7.js} +3 -3
- package/dist/{serve-4X3LDV6K.js → serve-76BGQFPW.js} +25 -25
- package/dist/{session-3JP36MHE.js → session-JBTIV7SS.js} +12 -12
- package/dist/{settings-Y7RLRCLF.js → settings-FMB4QED4.js} +3 -3
- package/dist/{skills-ZVV7HCF5.js → skills-HBIMHSOI.js} +2 -2
- package/dist/{snapshot-UAWGXBKI.js → snapshot-RBA2EL7R.js} +3 -3
- package/dist/{src-6ZMVHPAY.js → src-BXXGJOQB.js} +2 -2
- package/dist/{status-A2FZZJ4M.js → status-ATFDFAVG.js} +4 -4
- package/dist/{technical-aeo-HXGF72PP.js → technical-aeo-JWQTGCTB.js} +6 -4
- package/dist/{telemetry-7SHJAUQD.js → telemetry-6QFGJL2I.js} +4 -4
- package/dist/{tools-3HY3R5J5.js → tools-4VRHKUBE.js} +11 -11
- package/dist/{traffic-6LPWSVRR.js → traffic-5R7M4CK5.js} +5 -5
- package/dist/{users-UHABRTME.js → users-24TIUYJY.js} +3 -3
- package/dist/{visibility-stats-Z5D6ITSA.js → visibility-stats-YLQPPBJJ.js} +3 -3
- package/dist/{wordpress-HEIQZGMP.js → wordpress-7VDPHMUZ.js} +3 -3
- package/package.json +2 -2
- package/assets/assets/MeasurementPropertyPage-CsSUHpB7.js +0 -4
- package/assets/assets/SettingsPage-DfiH_eyL.js +0 -1
- package/assets/assets/SiteHealthSection-BTfTcF_w.js +0 -2
- package/assets/assets/service-DM_6LxOl.js +0 -1
- package/dist/intelligence-service-XDGWLXW4.js +0 -15
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
bucketCliCommandDuration,
|
|
3
3
|
isTelemetryEnabled,
|
|
4
4
|
trackEvent
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MJYO6UK2.js";
|
|
6
6
|
import {
|
|
7
7
|
getConfigDir
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-JE5QURTR.js";
|
|
9
9
|
import {
|
|
10
10
|
currentOutcomeAttribution
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-BADJCT6U.js";
|
|
12
12
|
import {
|
|
13
13
|
AGENT_NONE,
|
|
14
14
|
OutcomeSurfaces,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
integrationConnectionPropertiesSchema,
|
|
20
20
|
normalizeAgentSlug,
|
|
21
21
|
usageSurfaceSchema
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-YXAKL5HM.js";
|
|
23
23
|
|
|
24
24
|
// src/outcome-telemetry.ts
|
|
25
25
|
import fs from "fs";
|
|
@@ -9,14 +9,14 @@ import {
|
|
|
9
9
|
normalizeCloudflareWorkerEvent,
|
|
10
10
|
sessionizeJourneyRequests,
|
|
11
11
|
verifyRequestSignature
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-JEBY6MS6.js";
|
|
13
13
|
import {
|
|
14
14
|
currentOutcomeAttribution,
|
|
15
15
|
getRequestContext,
|
|
16
16
|
registerRequestContext,
|
|
17
17
|
requestAuditIdentity,
|
|
18
18
|
sanitizeRequestContext
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-BADJCT6U.js";
|
|
20
20
|
import {
|
|
21
21
|
SentimentIdempotencyConflict,
|
|
22
22
|
SentimentRepository,
|
|
@@ -156,7 +156,7 @@ import {
|
|
|
156
156
|
userSessions,
|
|
157
157
|
users,
|
|
158
158
|
writeNegativeReviewMaxStars
|
|
159
|
-
} from "./chunk-
|
|
159
|
+
} from "./chunk-O7WOCTBD.js";
|
|
160
160
|
import {
|
|
161
161
|
ADS_ACTIVATE_SCOPE,
|
|
162
162
|
ADS_ACTIVATION_ABSOLUTE_MAX_ENTITIES,
|
|
@@ -1194,7 +1194,7 @@ import {
|
|
|
1194
1194
|
wordpressSchemaDeployResultDtoSchema,
|
|
1195
1195
|
wordpressSchemaStatusResultDtoSchema,
|
|
1196
1196
|
wordpressStatusDtoSchema
|
|
1197
|
-
} from "./chunk-
|
|
1197
|
+
} from "./chunk-YXAKL5HM.js";
|
|
1198
1198
|
|
|
1199
1199
|
// ../api-routes/src/user-session.ts
|
|
1200
1200
|
import crypto2 from "crypto";
|
|
@@ -7433,8 +7433,15 @@ var SentimentService = class {
|
|
|
7433
7433
|
result: sentimentResults.result,
|
|
7434
7434
|
returnedModel: sentimentResults.returnedModel
|
|
7435
7435
|
}).from(sentimentWorkItems).leftJoin(sentimentResults, eq15(sentimentResults.workItemId, sentimentWorkItems.id)).where(scope).all();
|
|
7436
|
-
const
|
|
7437
|
-
|
|
7436
|
+
const admitted = rows.filter((row) => allowed.has(`${row.snapshotId}:${row.sourceTextHash}:${row.subjectHash}`));
|
|
7437
|
+
const inputs = withInput ? /* @__PURE__ */ new Map() : null;
|
|
7438
|
+
if (inputs) {
|
|
7439
|
+
const ids = admitted.map((row) => row.id);
|
|
7440
|
+
for (let index = 0; index < ids.length; index += 500) {
|
|
7441
|
+
for (const row of this.db.select({ id: sentimentWorkItems.id, input: sentimentWorkItems.input }).from(sentimentWorkItems).where(and9(scope, inArray6(sentimentWorkItems.id, ids.slice(index, index + 500)))).all()) inputs.set(row.id, row.input);
|
|
7442
|
+
}
|
|
7443
|
+
}
|
|
7444
|
+
return admitted.flatMap(({ resultOutcome, result, returnedModel, ...work }) => {
|
|
7438
7445
|
const member = allowed.get(`${work.snapshotId}:${work.sourceTextHash}:${work.subjectHash}`);
|
|
7439
7446
|
if (!member) return [];
|
|
7440
7447
|
const edges = member.edges.filter((edge) => matchesSentimentEdge(edge, filter));
|
|
@@ -42312,7 +42319,7 @@ var routeCatalog = [
|
|
|
42312
42319
|
{ name: "nodeKey", in: "query", description: "Return only the page with this node key. Combined with a filter it answers whether that exact page is in the filtered set, without paging through the list.", schema: stringSchema },
|
|
42313
42320
|
{ name: "healthState", in: "query", description: "Filter by the derived Site Health state shared with the dashboard and agents. Unlike `indexabilityState` this folds fetch state, canonical identity, and the crawler reasons into one decision. `hidden` means the SITE told answer engines not to index the page (noindex, canonical-away, robots.txt); a non-HTML file is `resource` and a redirect is `redirect`, because neither is suppressed. Values: `eligible`, `hidden`, `resource`, `redirect`, `failed`, `unchecked`.", schema: { type: "string", enum: ["eligible", "hidden", "resource", "redirect", "failed", "unchecked"] } },
|
|
42314
42321
|
{ name: "auditState", in: "query", description: "Filter by audit state. A URL version has `url-version`: it was fetched and classified but not scored.", schema: stringSchema },
|
|
42315
|
-
{ name: "urlVersions", in: "query", description: "URL versions are parameter addresses (filters, views, cache settings) whose canonical names the same path, so the site marks them as copies of that page. The audit does not score them or count them in fixes, and `inventorySummary.urlVersions` counts them. `include` (default) keeps every crawled address, `exclude` lists pages only, as the dashboard does, and `only` lists the URL versions, each with `urlVersionOf`. Scans made before URL versions were set aside have none.", schema: { type: "string", enum: ["include", "exclude", "only"] } },
|
|
42322
|
+
{ name: "urlVersions", in: "query", description: "URL versions are parameter addresses (filters, views, cache settings) whose canonical names the same path, so the site marks them as copies of that page. The audit does not score them or count them in fixes, and `inventorySummary.urlVersions` counts them. `include` (default) keeps every crawled address, `exclude` lists pages only, as the dashboard does, and `only` lists the URL versions, each with `urlVersionOf`. Once a few addresses with the same parameter pattern prove to be copies, the crawl stops fetching that pattern: those have no rows and `inventorySummary.urlVersionsNotFetched` counts them. Scans made before URL versions were set aside have none.", schema: { type: "string", enum: ["include", "exclude", "only"] } },
|
|
42316
42323
|
{ name: "sort", in: "query", description: "Sort order. Defaults to `url`.", schema: { type: "string", enum: ["url", "path", "score-asc", "score-desc"] } },
|
|
42317
42324
|
crawlCursorParameter,
|
|
42318
42325
|
crawlLimitParameter
|
|
@@ -72580,13 +72587,19 @@ async function technicalAeoRoutes(app, opts) {
|
|
|
72580
72587
|
const total = groups.reduce((sum, group) => sum + group.pages, 0);
|
|
72581
72588
|
const eligible = groups.reduce((sum, group) => sum + (group.inventoryEligible ? group.pages : 0), 0);
|
|
72582
72589
|
const urlVersions = app.db.select({ value: count8() }).from(siteCrawlPages).where(and83(inScope, isNotNull10(siteCrawlPages.urlVersionOf))).get()?.value ?? 0;
|
|
72590
|
+
const urlVersionsNotFetched = app.db.select({ value: siteCrawlAttempts.urlVersionsSkipped }).from(siteCrawlAttempts).where(and83(
|
|
72591
|
+
eq100(siteCrawlAttempts.projectId, scope.projectId),
|
|
72592
|
+
eq100(siteCrawlAttempts.runId, scope.runId),
|
|
72593
|
+
eq100(siteCrawlAttempts.id, scope.attemptId)
|
|
72594
|
+
)).get()?.value ?? 0;
|
|
72583
72595
|
return {
|
|
72584
72596
|
scope: "selected-snapshot",
|
|
72585
72597
|
total,
|
|
72586
72598
|
eligible,
|
|
72587
72599
|
excluded: total - eligible,
|
|
72588
72600
|
excludedReasons: reasonCounts(groups.filter((group) => !group.inventoryEligible)),
|
|
72589
|
-
urlVersions
|
|
72601
|
+
urlVersions,
|
|
72602
|
+
urlVersionsNotFetched
|
|
72590
72603
|
};
|
|
72591
72604
|
};
|
|
72592
72605
|
const completenessOf = (target) => ({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
loadConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JE5QURTR.js";
|
|
4
4
|
import {
|
|
5
5
|
PACKAGE_VERSION
|
|
6
6
|
} from "./chunk-AOJU5LKX.js";
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
sentimentSettingsReadSchema,
|
|
37
37
|
sentimentSummaryReadSchema,
|
|
38
38
|
upgradeCommandFor
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-YXAKL5HM.js";
|
|
40
40
|
|
|
41
41
|
// ../api-client-generated/src/generated/core/bodySerializer.gen.ts
|
|
42
42
|
var jsonBodySerializer = {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
registeredProviderNames
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6MYHGP46.js";
|
|
4
4
|
import {
|
|
5
5
|
configExists,
|
|
6
6
|
loadConfigRaw
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-JE5QURTR.js";
|
|
8
8
|
|
|
9
9
|
// src/setup-state.ts
|
|
10
10
|
import fs from "fs";
|
|
@@ -28,7 +28,7 @@ async function buildSetupState() {
|
|
|
28
28
|
}
|
|
29
29
|
if (dbPath && fs.existsSync(dbPath)) {
|
|
30
30
|
try {
|
|
31
|
-
const { createClient, projects, queries: queriesTable } = await import("./src-
|
|
31
|
+
const { createClient, projects, queries: queriesTable } = await import("./src-BXXGJOQB.js");
|
|
32
32
|
const db = createClient(dbPath);
|
|
33
33
|
project_count = db.select({ id: projects.id }).from(projects).all().length;
|
|
34
34
|
const firstQuery = db.select({ id: queriesTable.id }).from(queriesTable).limit(1).all();
|
|
@@ -47,7 +47,7 @@ function queueServeHandoff() {
|
|
|
47
47
|
async function runPendingServeHandoff(format) {
|
|
48
48
|
if (!pendingServeHandoff) return;
|
|
49
49
|
pendingServeHandoff = false;
|
|
50
|
-
const { serveCommand } = await import("./serve-
|
|
50
|
+
const { serveCommand } = await import("./serve-76BGQFPW.js");
|
|
51
51
|
await serveCommand(format);
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
dedupeGscSitemapUrls,
|
|
3
3
|
resolveDiscoveredGscSitemapUrls,
|
|
4
4
|
submitGscSitemapBatches
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-J523Y7X2.js";
|
|
6
6
|
import {
|
|
7
7
|
measurementDraftOperationSchema,
|
|
8
8
|
runMeasurementDraftAction
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-3AG3LPZX.js";
|
|
10
10
|
import {
|
|
11
11
|
CliError
|
|
12
12
|
} from "./chunk-HGMYEDAQ.js";
|
|
@@ -177,7 +177,7 @@ import {
|
|
|
177
177
|
trafficSeriesGranularitySchema,
|
|
178
178
|
visibilityCompareSelectionSchema,
|
|
179
179
|
visibilityReportRequestSchema
|
|
180
|
-
} from "./chunk-
|
|
180
|
+
} from "./chunk-YXAKL5HM.js";
|
|
181
181
|
|
|
182
182
|
// src/mcp/tool-registry.ts
|
|
183
183
|
import { z as z2 } from "zod";
|
|
@@ -1035,7 +1035,7 @@ var technicalAeoCrawlPagesInputSchema = z2.object({
|
|
|
1035
1035
|
fetchState: z2.string().min(1).optional().describe("Filter crawler fetch state, for example html, redirect, non-html, or fetch-error."),
|
|
1036
1036
|
indexabilityState: z2.string().min(1).optional().describe("Filter crawler-derived indexability state. This is not Google index coverage."),
|
|
1037
1037
|
auditState: z2.string().min(1).optional().describe("Filter audit state. url-version marks a URL version: fetched and classified, not scored."),
|
|
1038
|
-
urlVersions: z2.enum(["include", "exclude", "only"]).optional().describe("URL versions are parameter addresses whose canonical names the same path, so the site marks them as copies of that page; the audit does not score them or count them in fixes. include (default) keeps every address, exclude lists pages only (the dashboard view), only lists the URL versions with urlVersionOf."),
|
|
1038
|
+
urlVersions: z2.enum(["include", "exclude", "only"]).optional().describe("URL versions are parameter addresses whose canonical names the same path, so the site marks them as copies of that page; the audit does not score them or count them in fixes. include (default) keeps every address, exclude lists pages only (the dashboard view), only lists the URL versions with urlVersionOf. Once a few addresses with one parameter pattern prove to be copies, the crawl stops fetching that pattern; those have no rows and inventorySummary.urlVersionsNotFetched counts them."),
|
|
1039
1039
|
sort: z2.enum(["url", "path", "score-asc", "score-desc"]).optional(),
|
|
1040
1040
|
cursor: z2.string().min(1).optional().describe("Opaque cursor from the previous crawl-pages result."),
|
|
1041
1041
|
limit: z2.number().int().positive().max(200).optional()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
answerServiceAdapters,
|
|
3
3
|
answerServiceDescriptors
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-XR6ZVMYK.js";
|
|
5
5
|
import {
|
|
6
6
|
AeroLlmUsageFeatures,
|
|
7
7
|
aeroTurnStatus,
|
|
@@ -27,14 +27,14 @@ import {
|
|
|
27
27
|
resolveConfiguredAgentProvider,
|
|
28
28
|
resolveSessionProviderAndModel,
|
|
29
29
|
setAeroSystemPrompt
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-WJ2JU32O.js";
|
|
31
31
|
import {
|
|
32
32
|
AeroToolProfiles,
|
|
33
33
|
AeroToolScopes,
|
|
34
34
|
buildAeroStateTools,
|
|
35
35
|
isAeroToolProfile,
|
|
36
36
|
truncateToolResult
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-P3UGNR2Y.js";
|
|
38
38
|
import {
|
|
39
39
|
getGoogleAuthConfig,
|
|
40
40
|
getGoogleConnection,
|
|
@@ -53,7 +53,7 @@ import {
|
|
|
53
53
|
removeCloudflareTrafficConnection,
|
|
54
54
|
removeCloudflareTrafficConnectionBySourceId,
|
|
55
55
|
upsertCloudflareTrafficConnection
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-BZZDFIY2.js";
|
|
57
57
|
import {
|
|
58
58
|
claudeAdapter,
|
|
59
59
|
embedQueries,
|
|
@@ -64,7 +64,7 @@ import {
|
|
|
64
64
|
openaiAdapter,
|
|
65
65
|
openrouterAdapter,
|
|
66
66
|
perplexityAdapter
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-JO73L677.js";
|
|
68
68
|
import {
|
|
69
69
|
classifyUsageSurface,
|
|
70
70
|
createApiUsageTelemetry,
|
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
startOutcomeTimer,
|
|
77
77
|
trackFeatureCompleted,
|
|
78
78
|
trackInstallState
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-4LTL5RNY.js";
|
|
80
80
|
import {
|
|
81
81
|
isLoopbackBindHost
|
|
82
82
|
} from "./chunk-TSENU4GG.js";
|
|
@@ -84,7 +84,7 @@ import {
|
|
|
84
84
|
isApiProviderRegistrable,
|
|
85
85
|
isCdpProviderRegistrable,
|
|
86
86
|
registeredProviderNames
|
|
87
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-6MYHGP46.js";
|
|
88
88
|
import {
|
|
89
89
|
checkLatestVersionForServer,
|
|
90
90
|
getOrCreateAnonymousId,
|
|
@@ -95,17 +95,17 @@ import {
|
|
|
95
95
|
recordDashboardEvent,
|
|
96
96
|
setTelemetryPreference,
|
|
97
97
|
trackEvent
|
|
98
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-MJYO6UK2.js";
|
|
99
99
|
import {
|
|
100
100
|
createCanonryMcpServer
|
|
101
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-IV6VZ63E.js";
|
|
102
102
|
import {
|
|
103
103
|
CANONRY_MCP_TIERS,
|
|
104
104
|
CANONRY_MCP_TOOLKIT_NAMES
|
|
105
105
|
} from "./chunk-NDTU7FGL.js";
|
|
106
106
|
import {
|
|
107
107
|
ApiClient
|
|
108
|
-
} from "./chunk-
|
|
108
|
+
} from "./chunk-ATT3ZCSS.js";
|
|
109
109
|
import {
|
|
110
110
|
AGENT_PROVIDERS,
|
|
111
111
|
adapterSupportsBatch,
|
|
@@ -136,21 +136,21 @@ import {
|
|
|
136
136
|
saveConfigPatch,
|
|
137
137
|
sentimentInstallReadiness,
|
|
138
138
|
updateSharedProviderExecutionGate
|
|
139
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-JE5QURTR.js";
|
|
140
140
|
import {
|
|
141
141
|
getBundledSkillSnapshots
|
|
142
|
-
} from "./chunk-
|
|
142
|
+
} from "./chunk-PPM6Z7CM.js";
|
|
143
143
|
import {
|
|
144
144
|
computeFactorAverages,
|
|
145
145
|
deleteSiteCrawlGraphLayout,
|
|
146
146
|
persistSiteCrawlGraphLayout,
|
|
147
147
|
prepareSiteCrawlGraphLayout,
|
|
148
148
|
recordedSharePct
|
|
149
|
-
} from "./chunk-
|
|
149
|
+
} from "./chunk-IZMT4WLZ.js";
|
|
150
150
|
import {
|
|
151
151
|
CanonryMcpToolNames,
|
|
152
152
|
canonryMcpTools
|
|
153
|
-
} from "./chunk-
|
|
153
|
+
} from "./chunk-GA2EHZTI.js";
|
|
154
154
|
import {
|
|
155
155
|
PACKAGE_VERSION
|
|
156
156
|
} from "./chunk-AOJU5LKX.js";
|
|
@@ -162,11 +162,11 @@ import {
|
|
|
162
162
|
addLogListener,
|
|
163
163
|
createFastifyLogger,
|
|
164
164
|
createLogger
|
|
165
|
-
} from "./chunk-
|
|
165
|
+
} from "./chunk-QKMGGM4B.js";
|
|
166
166
|
import {
|
|
167
167
|
computeCitedCompetitorDomains,
|
|
168
168
|
determineCitationState
|
|
169
|
-
} from "./chunk-
|
|
169
|
+
} from "./chunk-DRGCVTYH.js";
|
|
170
170
|
import {
|
|
171
171
|
BingApiError,
|
|
172
172
|
CC_CACHE_DIR,
|
|
@@ -286,7 +286,7 @@ import {
|
|
|
286
286
|
webhookResponseReason,
|
|
287
287
|
webhookTargetRefusalReason,
|
|
288
288
|
writeAuditLog
|
|
289
|
-
} from "./chunk-
|
|
289
|
+
} from "./chunk-7KOAP47B.js";
|
|
290
290
|
import {
|
|
291
291
|
OperationalLogStore,
|
|
292
292
|
SentimentIdempotencyConflict,
|
|
@@ -372,7 +372,7 @@ import {
|
|
|
372
372
|
siteLivenessState,
|
|
373
373
|
trafficSources,
|
|
374
374
|
usageCounters
|
|
375
|
-
} from "./chunk-
|
|
375
|
+
} from "./chunk-O7WOCTBD.js";
|
|
376
376
|
import {
|
|
377
377
|
AGENT_MEMORY_VALUE_MAX_BYTES,
|
|
378
378
|
AI_ENGINE_DOMAINS,
|
|
@@ -624,7 +624,7 @@ import {
|
|
|
624
624
|
winnabilityClassLabel,
|
|
625
625
|
withRetry,
|
|
626
626
|
withSkippedProviders
|
|
627
|
-
} from "./chunk-
|
|
627
|
+
} from "./chunk-YXAKL5HM.js";
|
|
628
628
|
|
|
629
629
|
// src/google-marketing-runtime.ts
|
|
630
630
|
import crypto2 from "crypto";
|
|
@@ -5807,7 +5807,7 @@ function nonBlank(value) {
|
|
|
5807
5807
|
return trimmed ? trimmed : void 0;
|
|
5808
5808
|
}
|
|
5809
5809
|
function resolveBuildCommit(env = process.env) {
|
|
5810
|
-
const embedded = true ? "
|
|
5810
|
+
const embedded = true ? "f363ee51db531415324bfdb27933588afe17a5f3" : void 0;
|
|
5811
5811
|
return nonBlank(embedded) ?? nonBlank(env.CANONRY_COMMIT);
|
|
5812
5812
|
}
|
|
5813
5813
|
function resolveInstanceIdentity(env = process.env) {
|
|
@@ -11884,6 +11884,7 @@ var log14 = createLogger("SiteAudit");
|
|
|
11884
11884
|
var SiteAuditCancelledError = class extends Error {
|
|
11885
11885
|
name = "SiteAuditCancelledError";
|
|
11886
11886
|
};
|
|
11887
|
+
var SITE_AUDIT_SKIP_URL_VERSIONS_AFTER = 3;
|
|
11887
11888
|
var NON_PAGE_MEDIA_EXTENSIONS = /\.(?:jpe?g|png|gif|webp|avif|bmp|ico|tiff?|svg|mp4|webm|mov|avi|mp3|wav|ogg|woff2?|ttf|otf|eot)(?:$|\?)/i;
|
|
11888
11889
|
var NON_PAGE_MEDIA_CONTENT_TYPE = /^(?:image|video|audio|font)\//i;
|
|
11889
11890
|
function isNonPageMedia(page) {
|
|
@@ -12317,6 +12318,8 @@ async function executeSiteAudit(db, runId, projectId, opts = {}) {
|
|
|
12317
12318
|
pagesFetched: progress.pagesFetched,
|
|
12318
12319
|
pagesEligible: event.type === "summary" ? observedPages.size === 0 ? 0 : [...observedPages.values()].filter(isInventoryEligible).length : sql6`${siteCrawlAttempts.pagesEligible}`,
|
|
12319
12320
|
pagesErrored: event.type === "summary" ? observedErrorCount(observedPages.values()) : sql6`${siteCrawlAttempts.pagesErrored}`,
|
|
12321
|
+
// Only the summary knows how many URL versions the crawl left unfetched.
|
|
12322
|
+
urlVersionsSkipped: event.type === "summary" ? event.summary.urlVersions?.skipped ?? 0 : sql6`${siteCrawlAttempts.urlVersionsSkipped}`,
|
|
12320
12323
|
edgesDiscovered: progress.edgesObserved,
|
|
12321
12324
|
updatedAt: now
|
|
12322
12325
|
}).where(eq18(siteCrawlAttempts.id, attemptId)).run();
|
|
@@ -12361,6 +12364,7 @@ async function executeSiteAudit(db, runId, projectId, opts = {}) {
|
|
|
12361
12364
|
checkDeadLinks: opts.checkDeadLinks ?? false,
|
|
12362
12365
|
includeGeo: opts.includeGeo ?? false,
|
|
12363
12366
|
includeAgentSkills: opts.includeAgentSkills ?? true,
|
|
12367
|
+
skipUrlVersionsAfter: SITE_AUDIT_SKIP_URL_VERSIONS_AFTER,
|
|
12364
12368
|
signal: opts.signal,
|
|
12365
12369
|
onEvent: persistEvent
|
|
12366
12370
|
});
|
|
@@ -12560,7 +12564,20 @@ async function executeSiteAudit(db, runId, projectId, opts = {}) {
|
|
|
12560
12564
|
if (current?.status === "cancelled") throw new SiteAuditCancelledError(`Site audit cancelled before publication: ${runId}`);
|
|
12561
12565
|
throw new Error(`Site audit run was no longer running before publication: ${runId}`);
|
|
12562
12566
|
}
|
|
12563
|
-
log14.info("completed", {
|
|
12567
|
+
log14.info("completed", {
|
|
12568
|
+
runId,
|
|
12569
|
+
projectId,
|
|
12570
|
+
status: terminalStatus,
|
|
12571
|
+
complete: crawlSummary.complete,
|
|
12572
|
+
pages: crawlSummary.pagesObserved,
|
|
12573
|
+
urlVersionsSkipped: crawlSummary.urlVersions?.skipped ?? 0,
|
|
12574
|
+
urlVersionPatterns: (crawlSummary.urlVersions?.patterns ?? []).map((pattern) => ({
|
|
12575
|
+
section: pattern.section,
|
|
12576
|
+
parameters: pattern.parameters,
|
|
12577
|
+
copies: pattern.copies,
|
|
12578
|
+
skipped: pattern.skipped
|
|
12579
|
+
}))
|
|
12580
|
+
});
|
|
12564
12581
|
trackSiteAuditOutcome(db, {
|
|
12565
12582
|
runId,
|
|
12566
12583
|
projectId,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
trackIntegrationConnection
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4LTL5RNY.js";
|
|
4
4
|
import {
|
|
5
5
|
cliRuntimeContext
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MJYO6UK2.js";
|
|
7
7
|
|
|
8
8
|
// src/cli-connection-telemetry.ts
|
|
9
9
|
function trackCliConnection(properties) {
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
createApiClient,
|
|
8
8
|
runWithUsageTags
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-ATT3ZCSS.js";
|
|
10
10
|
import {
|
|
11
11
|
canonryMcpTools,
|
|
12
12
|
mcpOutputSchema,
|
|
13
13
|
toolOperationAccess
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-GA2EHZTI.js";
|
|
15
15
|
import {
|
|
16
16
|
PACKAGE_VERSION
|
|
17
17
|
} from "./chunk-AOJU5LKX.js";
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
isReadOnlyKey,
|
|
25
25
|
restrictedWriteScopes,
|
|
26
26
|
upgradeCaveatFor
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-YXAKL5HM.js";
|
|
28
28
|
|
|
29
29
|
// src/mcp/server.ts
|
|
30
30
|
import { randomUUID } from "crypto";
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
siteCrawlGraphNodes,
|
|
6
6
|
siteCrawlPages,
|
|
7
7
|
siteCrawlSnapshots
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-O7WOCTBD.js";
|
|
9
9
|
import {
|
|
10
10
|
SITE_CRAWL_GRAPH_MAX_EDGES,
|
|
11
11
|
SITE_CRAWL_GRAPH_MAX_NODES,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
factorStatusFromDistribution,
|
|
16
16
|
factorStatusFromScore,
|
|
17
17
|
roundPreservingTotal
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-YXAKL5HM.js";
|
|
19
19
|
|
|
20
20
|
// src/site-audit-factors.ts
|
|
21
21
|
function recordedSharePct(factor) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseJsonColumn
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-O7WOCTBD.js";
|
|
4
4
|
import {
|
|
5
5
|
AI_ENGINE_DOMAINS,
|
|
6
6
|
AI_ENGINE_SELF_DOMAINS,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
retryAfterDelayMs,
|
|
27
27
|
usageCount,
|
|
28
28
|
withRetry
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-YXAKL5HM.js";
|
|
30
30
|
|
|
31
31
|
// ../provider-openai/src/normalize.ts
|
|
32
32
|
import OpenAI from "openai";
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
loadConfig,
|
|
6
6
|
loadConfigRaw,
|
|
7
7
|
saveConfigPatch
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-JE5QURTR.js";
|
|
9
9
|
import {
|
|
10
10
|
CANONRY_NPM_PACKAGE_URL,
|
|
11
11
|
compareSemver,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
updateCheckEnvOptOut,
|
|
19
19
|
upgradeCaveatFor,
|
|
20
20
|
upgradeCommandFor
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-YXAKL5HM.js";
|
|
22
22
|
|
|
23
23
|
// src/runtime-context.ts
|
|
24
24
|
function cliRuntimeContext(env = process.env, stdio = process) {
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
resolveCliAccess,
|
|
4
4
|
resolveCliAccessForInvocation,
|
|
5
5
|
windowOptions
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QDN3FL2A.js";
|
|
7
7
|
import {
|
|
8
8
|
emitJsonl
|
|
9
9
|
} from "./chunk-Z7IUAJOF.js";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
} from "./chunk-HGMYEDAQ.js";
|
|
15
15
|
import {
|
|
16
16
|
OperationAccesses
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-YXAKL5HM.js";
|
|
18
18
|
|
|
19
19
|
// src/cli-catalog.ts
|
|
20
20
|
import { createRequire } from "module";
|
|
@@ -111,7 +111,7 @@ async function dispatchRegisteredCommand(args, fallbackFormat, specs) {
|
|
|
111
111
|
const accessValue = accessFilterFromArgs(argsWithoutHelp);
|
|
112
112
|
validateAccessFilter(accessValue);
|
|
113
113
|
if (fallbackFormat !== "text") {
|
|
114
|
-
const { printCliCatalog: printCliCatalog2 } = await import("./cli-catalog-
|
|
114
|
+
const { printCliCatalog: printCliCatalog2 } = await import("./cli-catalog-NEZE5QU5.js");
|
|
115
115
|
const group2 = argsWithoutHelp.find((arg) => !arg.startsWith("--"));
|
|
116
116
|
printCliCatalog2(specs, fallbackFormat, group2, accessValue);
|
|
117
117
|
return true;
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
templateLinkRatio,
|
|
21
21
|
templateLinkUbiquityAvailable,
|
|
22
22
|
validationError
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-YXAKL5HM.js";
|
|
24
24
|
import {
|
|
25
25
|
__export
|
|
26
26
|
} from "./chunk-MLKGABMK.js";
|
|
@@ -1298,6 +1298,8 @@ var siteCrawlAttempts = sqliteTable2("site_crawl_attempts", {
|
|
|
1298
1298
|
pagesFetched: integer2("pages_fetched").notNull().default(0),
|
|
1299
1299
|
pagesEligible: integer2("pages_eligible").notNull().default(0),
|
|
1300
1300
|
pagesErrored: integer2("pages_errored").notNull().default(0),
|
|
1301
|
+
/** URL versions the crawl recognised by parameter pattern and did not fetch; they have no page rows. */
|
|
1302
|
+
urlVersionsSkipped: integer2("url_versions_skipped").notNull().default(0),
|
|
1301
1303
|
edgesDiscovered: integer2("edges_discovered").notNull().default(0),
|
|
1302
1304
|
startedAt: text2("started_at"),
|
|
1303
1305
|
finishedAt: text2("finished_at"),
|
|
@@ -8272,6 +8274,16 @@ var MIGRATION_VERSIONS = [
|
|
|
8272
8274
|
statements: [
|
|
8273
8275
|
`ALTER TABLE site_crawl_pages ADD COLUMN url_version_of TEXT`
|
|
8274
8276
|
]
|
|
8277
|
+
},
|
|
8278
|
+
{
|
|
8279
|
+
// URL versions a crawl skipped without fetching, once their parameter
|
|
8280
|
+
// pattern proved to make copies. They have no page rows, so the count
|
|
8281
|
+
// lives on the attempt. 0 for earlier scans, which fetched every address.
|
|
8282
|
+
version: 198,
|
|
8283
|
+
name: "site-crawl-url-versions-skipped",
|
|
8284
|
+
statements: [
|
|
8285
|
+
`ALTER TABLE site_crawl_attempts ADD COLUMN url_versions_skipped INTEGER NOT NULL DEFAULT 0`
|
|
8286
|
+
]
|
|
8275
8287
|
}
|
|
8276
8288
|
];
|
|
8277
8289
|
var AERO_LEDGER_REBUILDS = [
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runWithUsageTags
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ATT3ZCSS.js";
|
|
4
4
|
import {
|
|
5
5
|
CanonryMcpToolNames,
|
|
6
6
|
canonryMcpTools
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-GA2EHZTI.js";
|
|
8
8
|
import {
|
|
9
9
|
CliError
|
|
10
10
|
} from "./chunk-HGMYEDAQ.js";
|
|
11
11
|
import {
|
|
12
12
|
buildOpenApiDocument
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-7KOAP47B.js";
|
|
14
14
|
import {
|
|
15
15
|
DEFAULT_COMPETITOR_AUTO_ALIAS_MODE,
|
|
16
16
|
MeasurementPortfolioLists,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
seoDatasetWithoutVendor,
|
|
24
24
|
seoProviderSchema,
|
|
25
25
|
truncateUtf16
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-YXAKL5HM.js";
|
|
27
27
|
|
|
28
28
|
// src/agent/tools.ts
|
|
29
29
|
import { Type as Type2 } from "@earendil-works/pi-ai";
|