@canonry/canonry 7.70.0 → 7.72.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -5
- package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +2 -1
- package/assets/assets/{AgentSetupPage-BSHWZvRa.js → AgentSetupPage-kkWYCvUB.js} +1 -1
- package/assets/assets/{AuditHistoryPanel-CkOJ_9_W.js → AuditHistoryPanel-BS-iFyHX.js} +1 -1
- package/assets/assets/{BacklinksPage-DrWQ2idL.js → BacklinksPage-BW2bEGF4.js} +1 -1
- package/assets/assets/{HistoryPage-XQL_fdA9.js → HistoryPage-Dh6o2iVd.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-Z7HN9XvJ.js → MeasurementPropertyPage-BsUyf7NF.js} +1 -1
- package/assets/assets/ProjectPage-CYBZBlk3.js +9 -0
- package/assets/assets/{RunsPage-DDlvUciW.js → RunsPage-D27pEHr4.js} +1 -1
- package/assets/assets/{SettingsPage-CajGcfAQ.js → SettingsPage-CkI60Uw0.js} +1 -1
- package/assets/assets/SiteHealthSection-BKHeLIQL.js +2 -0
- package/assets/assets/{ToneBadge-enK5ryht.js → ToneBadge-CmvL5mFG.js} +1 -1
- package/assets/assets/{TrafficPage-BlRi6C8Y.js → TrafficPage-x01Zc1a-.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-DiUYQhDR.js → TrafficSourceDetailPage-DE-NyNGz.js} +1 -1
- package/assets/assets/{account-context-gUhEyKww.js → account-context-BwV6ox8O.js} +1 -1
- package/assets/assets/{card-BPDsfFv5.js → card-DhkoBNyY.js} +1 -1
- package/assets/assets/{extract-error-message-YbSa8SSn.js → extract-error-message-dNDtiSBo.js} +1 -1
- package/assets/assets/{format-helpers-B-WHGMGn.js → format-helpers-Bt4tx-f3.js} +1 -1
- package/assets/assets/{index-CigLVn5A.js → index-DtKWmlCj.js} +19 -19
- package/assets/assets/{index-CONZUwQB.css → index-Yn3nIj4B.css} +1 -1
- package/assets/assets/{query-client-DScmA_aM.js → query-client-D-zMw63p.js} +1 -1
- package/assets/assets/react-query-EdiRRB2q.js +1 -0
- package/assets/assets/{react-sigma_core.esm.min-CtveVGNY.js → react-sigma_core.esm.min-CmaI5ZWC.js} +1 -1
- package/assets/assets/{service--FVsrK0Z.js → service-C_Ai7oQC.js} +1 -1
- package/assets/index.html +8 -8
- package/dist/{ads-UTME46NF.js → ads-FFUUMS4J.js} +3 -3
- package/dist/{agent-PYDTNLR4.js → agent-LCD2VG7C.js} +7 -7
- package/dist/{agent-ask-NA4QFFM6.js → agent-ask-OBHTCYFR.js} +3 -3
- package/dist/{agent-conversations-3S56EX4U.js → agent-conversations-VMZ4NFIX.js} +3 -3
- package/dist/{agent-memory-D2RT5TVJ.js → agent-memory-UPFJFNWC.js} +3 -3
- package/dist/{agent-providers-5C2DRUR3.js → agent-providers-4GOWLBZK.js} +3 -3
- package/dist/{agent-transcript-SY5BZPO3.js → agent-transcript-RGXIVZUP.js} +3 -3
- package/dist/{analytics-GUENANBB.js → analytics-FBK4XV5P.js} +3 -3
- package/dist/{apply-R5K6RGEH.js → apply-Y2DVE3YB.js} +3 -3
- package/dist/{backfill-B2EXGQCW.js → backfill-ENGKBFKH.js} +9 -9
- package/dist/{backlinks-X55GUIQL.js → backlinks-YWHFC7DZ.js} +3 -3
- package/dist/{bing-5NTEC247.js → bing-7BP3DWPK.js} +3 -3
- package/dist/{bootstrap-UDEEVI4Z.js → bootstrap-Z7QSKVPL.js} +10 -10
- package/dist/{cdp-WWVZ6IBS.js → cdp-OL6RENO3.js} +7 -7
- package/dist/{chunk-HZ55UIKM.js → chunk-2PC54WLE.js} +4 -4
- package/dist/{chunk-ULUKHNE4.js → chunk-3AG3LPZX.js} +1 -1
- package/dist/{chunk-3LTLLHCD.js → chunk-4LTL5RNY.js} +4 -4
- package/dist/{chunk-3ZF3T3OG.js → chunk-6MYHGP46.js} +1 -1
- package/dist/{chunk-BRT5GE3Z.js → chunk-7OJQWLDI.js} +5 -5
- package/dist/{chunk-BGTJTKOJ.js → chunk-ATT3ZCSS.js} +3 -2
- package/dist/{chunk-KDV5NQZH.js → chunk-BADJCT6U.js} +1 -1
- package/dist/{chunk-QBR7BWO6.js → chunk-BKIFKB7E.js} +8 -8
- package/dist/{chunk-RPYSCFFA.js → chunk-BZZDFIY2.js} +1 -1
- package/dist/{chunk-R7RTWOOV.js → chunk-DRGCVTYH.js} +1 -1
- package/dist/{chunk-QNSMMQJY.js → chunk-GA2EHZTI.js} +7 -5
- package/dist/{chunk-MBNXKKOD.js → chunk-H4HNXCDF.js} +2 -2
- package/dist/{chunk-DW3KF33I.js → chunk-H6IQ4YCJ.js} +4 -4
- package/dist/{chunk-PHHQVV3G.js → chunk-IV6VZ63E.js} +3 -3
- package/dist/{chunk-7W4KNDAW.js → chunk-IZMT4WLZ.js} +2 -2
- package/dist/{chunk-CSDDKEL6.js → chunk-J523Y7X2.js} +1 -1
- package/dist/{chunk-6RI7JFFI.js → chunk-JE5QURTR.js} +1 -1
- package/dist/{chunk-CNSLBHFP.js → chunk-JEBY6MS6.js} +1 -1
- package/dist/{chunk-EIRIZPR6.js → chunk-JO73L677.js} +6 -3
- package/dist/{chunk-42JQQZZQ.js → chunk-L6WMECR5.js} +5 -5
- package/dist/{chunk-RVEXUQHP.js → chunk-MJYO6UK2.js} +2 -2
- package/dist/{chunk-NHF3OGZN.js → chunk-NZZWJCKS.js} +3 -3
- package/dist/{chunk-XOCF2U54.js → chunk-O7WOCTBD.js} +31 -1
- package/dist/{chunk-JNRMODJS.js → chunk-PPM6Z7CM.js} +1 -1
- package/dist/{chunk-RSK7E53V.js → chunk-Q25JQANW.js} +1 -1
- package/dist/{chunk-PJYXLC3D.js → chunk-QDN3FL2A.js} +1 -1
- package/dist/{chunk-SSNKQTRX.js → chunk-TEDY3MHN.js} +3 -3
- package/dist/{chunk-RJSJNR76.js → chunk-TOX6HAQJ.js} +3 -3
- package/dist/{chunk-OQR4F7WF.js → chunk-UWBJWKDQ.js} +2 -2
- package/dist/{chunk-3QHKN3JY.js → chunk-VH2KHJGT.js} +65 -33
- package/dist/{chunk-JGO7LGVN.js → chunk-VJFQNFOR.js} +36 -10
- package/dist/{chunk-SFMCFMJR.js → chunk-XR6ZVMYK.js} +1 -1
- package/dist/{chunk-6JGQT4OH.js → chunk-YXAKL5HM.js} +45 -2
- package/dist/{chunk-WOETP6NH.js → chunk-ZG4KG53J.js} +346 -336
- package/dist/{citations-ILU2CNT2.js → citations-RVSC67GE.js} +3 -3
- package/dist/{cli-catalog-ZBTUYNJA.js → cli-catalog-NEZE5QU5.js} +3 -3
- package/dist/{cli-commands-672L7BFD.js → cli-commands-5YNRJIN6.js} +7 -7
- package/dist/cli.js +13 -13
- package/dist/{competitor-NXSL3AWD.js → competitor-BX3M3OYS.js} +3 -3
- package/dist/{content-TGWYXNBI.js → content-PKJMVMHJ.js} +3 -3
- package/dist/{dashboard-IDCQTIYG.js → dashboard-FI5KKIP4.js} +6 -6
- package/dist/{demo-6X6IDMPT.js → demo-DQSDWOTF.js} +1 -1
- package/dist/{demo-server-HKJWIYPQ.js → demo-server-32RKOBFE.js} +11 -11
- package/dist/{discover-NW7NKL2Z.js → discover-JDP44ZHX.js} +3 -3
- package/dist/{discover-eval-2BVYL62I.js → discover-eval-6ORCVYYR.js} +3 -3
- package/dist/{doctor-6I3LPYM7.js → doctor-TVZRMBSS.js} +3 -3
- package/dist/{evidence-ZTAMPBEP.js → evidence-FNIAFBBG.js} +3 -3
- package/dist/{export-cmd-4CXUQVYT.js → export-cmd-HQNF2SSD.js} +3 -3
- package/dist/{ga-2YXMDGHQ.js → ga-PIO5OXMK.js} +3 -3
- package/dist/{gbp-LTPPWTUR.js → gbp-3R5FME43.js} +3 -3
- package/dist/{google-KTUJ4D3T.js → google-BYZREX2O.js} +4 -4
- package/dist/{google-marketing-FAKTAI5S.js → google-marketing-SPQ2GW6X.js} +1 -1
- package/dist/{health-cmd-C75E3NPQ.js → health-cmd-HH5RYMSV.js} +3 -3
- package/dist/{history-HE734BPT.js → history-Q35NLLMJ.js} +3 -3
- package/dist/index.d.ts +101 -65
- package/dist/index.js +24 -24
- package/dist/{init-M73CSTWU.js → init-O6PEZ2RT.js} +11 -11
- package/dist/{insights-4GUVXY2V.js → insights-SH73B4PD.js} +3 -3
- package/dist/intelligence-service-V2VS43H4.js +15 -0
- package/dist/{journeys-BZCKKFG7.js → journeys-SIV7HPW7.js} +3 -3
- package/dist/{keys-CMN3FUDW.js → keys-O656YWSW.js} +3 -3
- package/dist/{keyword-QUM65R7C.js → keyword-FZ2N4EW7.js} +3 -3
- package/dist/{logs-HH7EP7YK.js → logs-2NPN7HBI.js} +3 -3
- package/dist/{mcp-76T6WX4K.js → mcp-RHQY3DV6.js} +2 -2
- package/dist/mcp.js +9 -9
- package/dist/{measurement-plan-2D2KQLTW.js → measurement-plan-JQKVSJRL.js} +5 -5
- package/dist/{notify-VP5YYBJO.js → notify-VTAYBHC6.js} +3 -3
- package/dist/{organic-evidence-EAUZJVET.js → organic-evidence-HPXXEPOW.js} +3 -3
- package/dist/{overview-MCX3OHXK.js → overview-FSBNDYZJ.js} +4 -4
- package/dist/{project-HMELPKXT.js → project-MAPPXURS.js} +3 -3
- package/dist/{query-J7UTKCY5.js → query-R6DLPIPJ.js} +3 -3
- package/dist/{research-O4FYADRL.js → research-FXKOEUQB.js} +3 -3
- package/dist/{results-export-4JHIHSWW.js → results-export-X2PUM63S.js} +3 -3
- package/dist/{run-YJ3Y7FIE.js → run-6ENTG4IO.js} +4 -4
- package/dist/{schedule-6SXEB245.js → schedule-DMMVRT7P.js} +3 -3
- package/dist/{search-MVL346VH.js → search-FHI6APT7.js} +3 -3
- package/dist/{serve-GSPGAHMD.js → serve-KS6ABZHU.js} +25 -25
- package/dist/{session-KFFTQBJU.js → session-Q623G5DT.js} +12 -12
- package/dist/{settings-UKVP6TDD.js → settings-FMB4QED4.js} +3 -3
- package/dist/{skills-DF336KFJ.js → skills-HBIMHSOI.js} +2 -2
- package/dist/{snapshot-YKWGIRTM.js → snapshot-RBA2EL7R.js} +3 -3
- package/dist/{src-WDWTA7ON.js → src-BXXGJOQB.js} +2 -2
- package/dist/{status-4PDQOFYS.js → status-ATFDFAVG.js} +4 -4
- package/dist/{technical-aeo-XJRWNW24.js → technical-aeo-JWQTGCTB.js} +9 -5
- package/dist/{telemetry-TXB7NGPP.js → telemetry-6QFGJL2I.js} +4 -4
- package/dist/{tools-5DBHZB4K.js → tools-GNTPFDAF.js} +11 -11
- package/dist/{traffic-AP22ENAC.js → traffic-5R7M4CK5.js} +5 -5
- package/dist/{users-44XJB4ZN.js → users-24TIUYJY.js} +3 -3
- package/dist/{visibility-stats-5DMILJO6.js → visibility-stats-YLQPPBJJ.js} +3 -3
- package/dist/{wordpress-P6J44TMN.js → wordpress-7VDPHMUZ.js} +3 -3
- package/package.json +2 -2
- package/assets/assets/ProjectPage-DCOhyc0W.js +0 -9
- package/assets/assets/SiteHealthSection-Ch56JPKl.js +0 -2
- package/assets/assets/react-query-gGXPkSlb.js +0 -1
- package/dist/intelligence-service-PAMFRLPE.js +0 -15
|
@@ -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-KS6ABZHU.js");
|
|
51
51
|
await serveCommand(format);
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
measurementDraftUpsertGroupRequestSchema,
|
|
24
24
|
measurementDraftUpsertMarketRequestSchema,
|
|
25
25
|
measurementDraftUpsertTargetRequestSchema
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-YXAKL5HM.js";
|
|
27
27
|
|
|
28
28
|
// src/measurement-draft-actions.ts
|
|
29
29
|
import { z } from "zod";
|
|
@@ -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";
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
isStoredPageReadTool,
|
|
6
6
|
isStoredReadTool,
|
|
7
7
|
truncateToolResult
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-H6IQ4YCJ.js";
|
|
9
9
|
import {
|
|
10
10
|
CANONRY_MCP_TOOLKITS
|
|
11
11
|
} from "./chunk-NDTU7FGL.js";
|
|
@@ -22,15 +22,15 @@ import {
|
|
|
22
22
|
resolveApiKeyFor,
|
|
23
23
|
resolveModelForProvider,
|
|
24
24
|
validateAgentProviderRegistry
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-JE5QURTR.js";
|
|
26
26
|
import {
|
|
27
27
|
CanonryMcpToolNames,
|
|
28
28
|
canonryMcpTools
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-GA2EHZTI.js";
|
|
30
30
|
import {
|
|
31
31
|
agentToolEvents,
|
|
32
32
|
llmUsageEvents
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-O7WOCTBD.js";
|
|
34
34
|
import {
|
|
35
35
|
MeasurementPortfolioLists,
|
|
36
36
|
SeoCapabilities,
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
describeError,
|
|
40
40
|
validationError,
|
|
41
41
|
visibilityReportRequestSchema
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-YXAKL5HM.js";
|
|
43
43
|
|
|
44
44
|
// src/agent/session.ts
|
|
45
45
|
import fs3 from "fs";
|
|
@@ -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 = {
|
|
@@ -6410,6 +6410,7 @@ var ApiClient = class {
|
|
|
6410
6410
|
fetchState: opts?.fetchState,
|
|
6411
6411
|
indexabilityState: opts?.indexabilityState,
|
|
6412
6412
|
auditState: opts?.auditState,
|
|
6413
|
+
urlVersions: opts?.urlVersions,
|
|
6413
6414
|
sort: opts?.sort,
|
|
6414
6415
|
cursor: opts?.cursor,
|
|
6415
6416
|
limit: opts?.limit !== void 0 ? String(opts.limit) : void 0
|
|
@@ -7,27 +7,27 @@ import {
|
|
|
7
7
|
reparseStoredResult4,
|
|
8
8
|
reparseStoredResult5,
|
|
9
9
|
resolveStoredApiResponse
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-JO73L677.js";
|
|
11
11
|
import {
|
|
12
12
|
loadConfig
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-JE5QURTR.js";
|
|
14
14
|
import {
|
|
15
15
|
isMachineFormat
|
|
16
16
|
} from "./chunk-HGMYEDAQ.js";
|
|
17
17
|
import {
|
|
18
18
|
determineCitationState
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-DRGCVTYH.js";
|
|
20
20
|
import {
|
|
21
21
|
backfillProjectAnswerMentions,
|
|
22
22
|
competitorIdentityColumns,
|
|
23
23
|
createRunCompetitorResolver,
|
|
24
24
|
readMarketCompetitorNames,
|
|
25
25
|
refreshSnapshotMentionIdentity
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-VJFQNFOR.js";
|
|
27
27
|
import {
|
|
28
28
|
classifyAiUserFetch,
|
|
29
29
|
classifyCrawler
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-JEBY6MS6.js";
|
|
31
31
|
import {
|
|
32
32
|
aiUserFetchEventsHourly,
|
|
33
33
|
auditLog,
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
querySnapshots,
|
|
43
43
|
rawEventSamples,
|
|
44
44
|
runs
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-O7WOCTBD.js";
|
|
46
46
|
import {
|
|
47
47
|
ProviderNames,
|
|
48
48
|
RetrievalContracts,
|
|
@@ -59,7 +59,7 @@ import {
|
|
|
59
59
|
extractRecommendedCompetitors,
|
|
60
60
|
normalizeUrlPath,
|
|
61
61
|
openRouterRouteModel
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-YXAKL5HM.js";
|
|
63
63
|
|
|
64
64
|
// src/commands/backfill.ts
|
|
65
65
|
import { setImmediate as yieldToEventLoop } from "timers/promises";
|
|
@@ -437,7 +437,7 @@ No DB writes performed. Re-run without --dry-run to apply.`);
|
|
|
437
437
|
}
|
|
438
438
|
}
|
|
439
439
|
async function backfillInsightsCommand(project, opts) {
|
|
440
|
-
const { IntelligenceService } = await import("./intelligence-service-
|
|
440
|
+
const { IntelligenceService } = await import("./intelligence-service-V2VS43H4.js");
|
|
441
441
|
const config = loadConfig();
|
|
442
442
|
const db = createClient(config.database);
|
|
443
443
|
migrate(db);
|
|
@@ -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";
|
|
@@ -1034,7 +1034,8 @@ var technicalAeoCrawlPagesInputSchema = z2.object({
|
|
|
1034
1034
|
inventoryEligible: z2.boolean().optional().describe("Filter Canonry technical-inventory eligibility. This is not actual Google index coverage."),
|
|
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
|
-
auditState: z2.string().min(1).optional().describe("Filter audit state."),
|
|
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. 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."),
|
|
1038
1039
|
sort: z2.enum(["url", "path", "score-asc", "score-desc"]).optional(),
|
|
1039
1040
|
cursor: z2.string().min(1).optional().describe("Opaque cursor from the previous crawl-pages result."),
|
|
1040
1041
|
limit: z2.number().int().positive().max(200).optional()
|
|
@@ -4150,7 +4151,7 @@ var rawCanonryMcpTools = [
|
|
|
4150
4151
|
defineTool({
|
|
4151
4152
|
name: "canonry_technical_aeo_crawl_pages",
|
|
4152
4153
|
title: "List Technical AEO crawl pages",
|
|
4153
|
-
description: "For a requested scan date pass date=YYYY-MM-DD. If the year was omitted and that date has no data, use availableScanDates.matchingMonthDayDates to resolve the year and request the exact returned date before concluding the historical scan is missing. recentDates and matchingMonthDayDates are bounded; totalDates and matchingMonthDayTotal report their full counts. No automatic date fallback. inventorySummary gives whole-snapshot eligible/excluded counts
|
|
4154
|
+
description: "For a requested scan date pass date=YYYY-MM-DD. If the year was omitted and that date has no data, use availableScanDates.matchingMonthDayDates to resolve the year and request the exact returned date before concluding the historical scan is missing. recentDates and matchingMonthDayDates are bounded; totalDates and matchingMonthDayTotal report their full counts. No automatic date fallback. inventorySummary gives whole-snapshot eligible/excluded counts, disjoint excluded reasons, and urlVersions (parameter copies of a page the audit did not score; pass urlVersions=exclude to list pages only); healthReasonCounts covers the filtered list before paging. Use these exact counts, never infer canonical-away from unknown indexability. healthReason distinguishes terminal redirects from canonical-to-other pages. Default runSelection reports same-date ambiguity and selects complete or most-pages evidence on the latest scan date. Read one bounded, cursor-paged list of canonical crawl nodes. Filter crawler-derived indexability and audit state, then follow nextCursor; this is technical inventory eligibility, not a claim about Google index coverage. `complete: false` means the crawl stopped at the budget named by `termination`, so a missing page or link is not proof it does not exist.",
|
|
4154
4155
|
access: "read",
|
|
4155
4156
|
tier: "monitoring",
|
|
4156
4157
|
inputSchema: technicalAeoCrawlPagesInputSchema,
|
|
@@ -4163,6 +4164,7 @@ var rawCanonryMcpTools = [
|
|
|
4163
4164
|
fetchState: input.fetchState,
|
|
4164
4165
|
indexabilityState: input.indexabilityState,
|
|
4165
4166
|
auditState: input.auditState,
|
|
4167
|
+
urlVersions: input.urlVersions,
|
|
4166
4168
|
sort: input.sort,
|
|
4167
4169
|
cursor: input.cursor,
|
|
4168
4170
|
limit: input.limit
|
|
@@ -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) {
|
|
@@ -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-VJFQNFOR.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";
|
|
@@ -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";
|
|
@@ -1618,6 +1618,7 @@ function toRawQueryResult3(raw) {
|
|
|
1618
1618
|
stopReason: raw.stopReason
|
|
1619
1619
|
};
|
|
1620
1620
|
}
|
|
1621
|
+
var QUERY_ONLY_PROMPT_TOKEN_LIMIT = 60;
|
|
1621
1622
|
function readRetrievalStatus(rawResponse) {
|
|
1622
1623
|
const response = rawResponse;
|
|
1623
1624
|
if (usageCount(response.usageMetadata?.toolUsePromptTokenCount) > 0) return RetrievalStatuses.used;
|
|
@@ -1631,7 +1632,9 @@ function readRetrievalStatus(rawResponse) {
|
|
|
1631
1632
|
}
|
|
1632
1633
|
const parts = candidate.content?.parts;
|
|
1633
1634
|
const hasAnswer = Array.isArray(parts) && parts.some((part) => !part.thought && typeof part.text === "string" && part.text.trim().length > 0);
|
|
1634
|
-
|
|
1635
|
+
if (candidate.finishReason !== FinishReason.STOP || !hasAnswer) return RetrievalStatuses.unknown;
|
|
1636
|
+
const promptTokens = usageCount(response.usageMetadata?.promptTokenCount);
|
|
1637
|
+
return promptTokens > 0 && promptTokens <= QUERY_ONLY_PROMPT_TOKEN_LIMIT ? RetrievalStatuses["not-used"] : RetrievalStatuses.unknown;
|
|
1635
1638
|
}
|
|
1636
1639
|
var geminiAdapter = {
|
|
1637
1640
|
name: "gemini",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pickProjectCitedDomain
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DRGCVTYH.js";
|
|
4
4
|
import {
|
|
5
5
|
GBP_INSIGHT_PROVIDER,
|
|
6
6
|
PERSISTENT_GAP_THRESHOLD,
|
|
@@ -14,10 +14,10 @@ import {
|
|
|
14
14
|
mergeGscQueryTotalsWithFallback,
|
|
15
15
|
readGscQueryDailyRows,
|
|
16
16
|
readLatestGscDataDate
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-VJFQNFOR.js";
|
|
18
18
|
import {
|
|
19
19
|
getRequestContext
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-BADJCT6U.js";
|
|
21
21
|
import {
|
|
22
22
|
competitors,
|
|
23
23
|
gbpDailyMetrics,
|
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
queries,
|
|
36
36
|
querySnapshots,
|
|
37
37
|
runs
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-O7WOCTBD.js";
|
|
39
39
|
import {
|
|
40
40
|
CitationStates,
|
|
41
41
|
RunKinds,
|
|
@@ -45,7 +45,7 @@ import {
|
|
|
45
45
|
effectiveDomains,
|
|
46
46
|
redactLogString,
|
|
47
47
|
redactLogValue
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-YXAKL5HM.js";
|
|
49
49
|
|
|
50
50
|
// src/intelligence-service.ts
|
|
51
51
|
import { eq, desc, asc, and, ne, or, inArray, gte, lte, isNull, sql, exists } from "drizzle-orm";
|
|
@@ -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"),
|
|
@@ -1415,6 +1417,13 @@ var siteCrawlPages = sqliteTable2("site_crawl_pages", {
|
|
|
1415
1417
|
* column existed, which reads must report rather than treat as a state.
|
|
1416
1418
|
*/
|
|
1417
1419
|
healthState: text2("health_state"),
|
|
1420
|
+
/**
|
|
1421
|
+
* The canonical page this address is a URL version of (contract
|
|
1422
|
+
* `siteCrawlUrlVersionOf`), written at publish time; such a row is not
|
|
1423
|
+
* scored. NULL for a page, and for every row of a scan published before the
|
|
1424
|
+
* audit set URL versions aside.
|
|
1425
|
+
*/
|
|
1426
|
+
urlVersionOf: text2("url_version_of"),
|
|
1418
1427
|
auditState: text2("audit_state").notNull().default("pending"),
|
|
1419
1428
|
auditScore: real("audit_score"),
|
|
1420
1429
|
auditFields: text2("audit_fields", { mode: "json" }).$type().notNull().default({}),
|
|
@@ -8254,6 +8263,27 @@ var MIGRATION_VERSIONS = [
|
|
|
8254
8263
|
statements: [
|
|
8255
8264
|
`ALTER TABLE schedules ADD COLUMN enabled_at TEXT`
|
|
8256
8265
|
]
|
|
8266
|
+
},
|
|
8267
|
+
{
|
|
8268
|
+
// The page a crawled address is a URL version of: a parameter copy whose
|
|
8269
|
+
// canonical names the same path, which the audit no longer scores.
|
|
8270
|
+
// Nullable with no default and no backfill: a scan published before this
|
|
8271
|
+
// scored every address, so its rows truthfully read as pages.
|
|
8272
|
+
version: 197,
|
|
8273
|
+
name: "site-crawl-url-versions",
|
|
8274
|
+
statements: [
|
|
8275
|
+
`ALTER TABLE site_crawl_pages ADD COLUMN url_version_of TEXT`
|
|
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
|
+
]
|
|
8257
8287
|
}
|
|
8258
8288
|
];
|
|
8259
8289
|
var AERO_LEDGER_REBUILDS = [
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ATT3ZCSS.js";
|
|
4
4
|
import {
|
|
5
5
|
emitJsonl
|
|
6
6
|
} from "./chunk-Z7IUAJOF.js";
|
|
7
7
|
import {
|
|
8
8
|
measurementDraftOperationSchema,
|
|
9
9
|
runMeasurementDraftAction
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-3AG3LPZX.js";
|
|
11
11
|
import {
|
|
12
12
|
isMachineFormat,
|
|
13
13
|
systemError
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
unattributedAnswersLabel,
|
|
38
38
|
uncheckedSourcesLabel,
|
|
39
39
|
visibilityReportRequestSchema
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-YXAKL5HM.js";
|
|
41
41
|
|
|
42
42
|
// src/commands/measurement-plan.ts
|
|
43
43
|
import crypto from "crypto";
|
|
@@ -2,18 +2,18 @@ import {
|
|
|
2
2
|
configExists,
|
|
3
3
|
loadConfigRaw,
|
|
4
4
|
saveConfigPatch
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JE5QURTR.js";
|
|
6
6
|
import {
|
|
7
7
|
BUNDLED_SKILL_NAMES,
|
|
8
8
|
installSkills
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-PPM6Z7CM.js";
|
|
10
10
|
import {
|
|
11
11
|
PACKAGE_VERSION
|
|
12
12
|
} from "./chunk-AOJU5LKX.js";
|
|
13
13
|
import {
|
|
14
14
|
SKILL_MANIFEST_FILENAME,
|
|
15
15
|
SkillsClients
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-YXAKL5HM.js";
|
|
17
17
|
|
|
18
18
|
// src/skills-autosync.ts
|
|
19
19
|
import fs from "fs";
|