@canonry/canonry 7.99.0 → 7.100.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 +18 -16
- package/assets/agent-workspace/AGENTS.md +13 -6
- package/assets/agent-workspace/skills/aero/SKILL.md +45 -26
- package/assets/agent-workspace/skills/aero/references/agent-operations.md +47 -12
- package/assets/agent-workspace/skills/aero/references/memory-patterns.md +1 -1
- package/assets/agent-workspace/skills/aero/references/orchestration.md +9 -9
- package/assets/agent-workspace/skills/aero/references/reporting.md +8 -4
- package/assets/agent-workspace/skills/aero/references/seo-analysis.md +2 -2
- package/assets/agent-workspace/skills/aero/references/site-health.md +23 -22
- package/assets/agent-workspace/skills/aero/soul.md +2 -2
- package/assets/agent-workspace/skills/canonry/SKILL.md +37 -7
- package/assets/agent-workspace/skills/canonry/references/aeo-analysis.md +14 -11
- package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +122 -53
- package/assets/assets/AccessControls-DzO5Y8v9.js +2 -0
- package/assets/assets/AgentSetupPage-DWWovaCw.js +36 -0
- package/assets/assets/AuditHistoryPanel-BG-n1i8c.js +1 -0
- package/assets/assets/BacklinksPage-D6wdOMXt.js +1 -0
- package/assets/assets/ChartPrimitives-CtKdkn64.js +3 -0
- package/assets/assets/Hint-3TTi0MgX.js +1 -0
- package/assets/assets/{HistoryPage-DNE76LNh.js → HistoryPage-B_ReWHbL.js} +1 -1
- package/assets/assets/InfoTooltip-D29JcNMW.js +1 -0
- package/assets/assets/MeasurementPropertyPage-zdyLL-kl.js +4 -0
- package/assets/assets/ProjectPage-KZNKXR4w.js +15 -0
- package/assets/assets/RunsPage-DxN0xXQh.js +1 -0
- package/assets/assets/ServerTrafficSection-CvISj5pf.js +40 -0
- package/assets/assets/SettingsPage-CpRpBlMV.js +1 -0
- package/assets/assets/ToneBadge-DcwPruHr.js +60 -0
- package/assets/assets/TrafficPage-zk6zMZyz.js +1 -0
- package/assets/assets/TrafficSourceDetailPage-DJtsI06Z.js +1 -0
- package/assets/assets/{account-context-j3asaevn.js → account-context-CoJVqEXZ.js} +1 -1
- package/assets/assets/{agent-trust-copy--U_DFYQE.js → agent-trust-copy-BIXDMtBm.js} +1 -1
- package/assets/assets/{card-CQAQ-c3g.js → card-Dwmc7Srx.js} +1 -1
- package/assets/assets/index-fh1T5JQY.css +1 -0
- package/assets/assets/index-mqc2mWUR.js +42 -0
- package/assets/assets/query-client-Tg1fZu4i.js +1 -0
- package/assets/assets/react-query-BqcEEfEO.js +1 -0
- package/assets/assets/{react-sigma_core.esm.min-BAq_-iP1.js → react-sigma_core.esm.min-D1q0DR_j.js} +3 -3
- package/assets/assets/{server-traffic-jKXLZyeC.js → server-traffic-Djnh_9f0.js} +1 -1
- package/assets/assets/service-BQjBdN4O.js +1 -0
- package/assets/assets/use-tooltip-position-BOzm-6Wy.js +1 -0
- package/assets/assets/vendor-lucide-iE5MEh2-.js +1 -0
- package/assets/assets/{vendor-markdown-BDQ1GKGP.js → vendor-markdown-BBGbNklj.js} +1 -1
- package/assets/assets/{vendor-radix-BGYlvS2l.js → vendor-radix-DKCt5Z_h.js} +1 -1
- package/assets/assets/{vendor-recharts-DhEHcK3G.js → vendor-recharts-D3MLFU3q.js} +1 -1
- package/assets/assets/{vendor-tanstack-BNuZ37rE.js → vendor-tanstack-B90HW50P.js} +2 -2
- package/assets/index.html +16 -15
- package/dist/{ads-EYDUTG4U.js → ads-FVPZ6R6Z.js} +3 -3
- package/dist/{agent-KTK2IDB3.js → agent-2LPU2E5I.js} +7 -7
- package/dist/{agent-ask-KPZOH6RY.js → agent-ask-5ODREK6D.js} +3 -3
- package/dist/{agent-conversations-BCWA4JJL.js → agent-conversations-SNLOOJEM.js} +3 -3
- package/dist/{agent-journeys-UBVLQ7JV.js → agent-journeys-XDXVL6PK.js} +3 -3
- package/dist/{agent-memory-24SYEGEX.js → agent-memory-NKAI2S3U.js} +3 -3
- package/dist/{agent-providers-E7EWFE5P.js → agent-providers-R5L7A72X.js} +3 -3
- package/dist/{agent-transcript-QGJ45NW5.js → agent-transcript-C5WAGYVC.js} +3 -3
- package/dist/{analytics-GHVG5CCT.js → analytics-EJVOLIQL.js} +33 -13
- package/dist/{apply-7YLB2DPH.js → apply-I6JOM247.js} +3 -3
- package/dist/{backfill-WNQ6O5WP.js → backfill-UVUR36IB.js} +10 -10
- package/dist/{backlinks-ZBZR4D27.js → backlinks-3VMVACWN.js} +3 -3
- package/dist/{bing-4VBSKPSX.js → bing-R5RL3PW2.js} +3 -3
- package/dist/{bootstrap-7ESCLP2G.js → bootstrap-GMMSDTNO.js} +12 -12
- package/dist/{cdp-WBL6FZTL.js → cdp-FJKUXHEY.js} +7 -7
- package/dist/{chunk-L53ZSQN5.js → chunk-2DV7F6XA.js} +91 -2
- package/dist/{chunk-MTW37GXF.js → chunk-2FWYWGIR.js} +2 -2
- package/dist/{chunk-DMPSA7ZS.js → chunk-56VVRWJM.js} +14 -5
- package/dist/{chunk-YACKJGY4.js → chunk-7BEGCVVB.js} +1 -1
- package/dist/{chunk-YMHN4UIT.js → chunk-7BH53MOB.js} +27 -2
- package/dist/{chunk-XPIMVXAI.js → chunk-7J2RIIYU.js} +1366 -1033
- package/dist/{chunk-UY6SKAKW.js → chunk-7SNMIXEQ.js} +2 -2
- package/dist/{chunk-C55P75G4.js → chunk-AMGM55CP.js} +2 -2
- package/dist/{chunk-ZN2TEBBX.js → chunk-AYKTVQF7.js} +13 -5
- package/dist/{chunk-74V5EPZH.js → chunk-BKDRT4VS.js} +7 -7
- package/dist/{chunk-O6RXNSNW.js → chunk-COHSL6KW.js} +1 -1
- package/dist/{chunk-3WDQ5GPO.js → chunk-DGDLLRS4.js} +1 -1
- package/dist/{chunk-VADVPARO.js → chunk-DHIB7EIA.js} +4 -4
- package/dist/{chunk-3MFYM2IS.js → chunk-EE3QTCLS.js} +18 -6
- package/dist/{chunk-DLOWRO5R.js → chunk-F46TBLXK.js} +204 -94
- package/dist/{chunk-P764TJKQ.js → chunk-FBO25TA3.js} +1 -1
- package/dist/{chunk-SY3CWJR4.js → chunk-FZ3MUTU3.js} +2 -2
- package/dist/{chunk-WA6APXI6.js → chunk-G6QN4VFS.js} +16 -10
- package/dist/{chunk-YBWATBX4.js → chunk-HBHLYWKE.js} +9 -6
- package/dist/{chunk-5ZOM5BJS.js → chunk-HL2LGRTI.js} +8 -6
- package/dist/chunk-J6536OL6.js +31 -0
- package/dist/{chunk-3MKJ4LP6.js → chunk-KVRX7YIH.js} +20 -10
- package/dist/{chunk-3VPBRGPN.js → chunk-LJO2BKWU.js} +1 -1
- package/dist/{chunk-YEUULP44.js → chunk-LNVFERI4.js} +1 -1
- package/dist/{chunk-WXAF7AMC.js → chunk-NQYJHKML.js} +39 -7
- package/dist/{chunk-UPHHKO3L.js → chunk-O5UFAXUI.js} +646 -588
- package/dist/{chunk-XQP3XHLJ.js → chunk-O6APBEJE.js} +2 -2
- package/dist/{chunk-47X24IJG.js → chunk-O7S7OHLE.js} +9393 -8394
- package/dist/{chunk-2RW5D55K.js → chunk-QS5DWJDI.js} +2 -2
- package/dist/{chunk-TVBOK4P2.js → chunk-RBG2QXQM.js} +4 -4
- package/dist/{chunk-LM7HTNUO.js → chunk-SWZXHHAG.js} +16 -8
- package/dist/{chunk-AY7SDX6G.js → chunk-T7UDY7W3.js} +26 -11
- package/dist/{chunk-AJD252SX.js → chunk-UGO2FO6V.js} +119 -55
- package/dist/{chunk-PT5HNVCM.js → chunk-VHULVUDL.js} +1 -1
- package/dist/{chunk-ZGBLNKFN.js → chunk-YGAQQSCL.js} +56303 -54933
- package/dist/{chunk-RRXLJPBN.js → chunk-YIIRS7V7.js} +98 -65
- package/dist/{chunk-VOVT2H25.js → chunk-YU2WX7RD.js} +3 -3
- package/dist/{citations-N5MGNKJN.js → citations-LOEQRDUB.js} +21 -10
- package/dist/{cli-catalog-FFU7PHW7.js → cli-catalog-5RXNUFBS.js} +3 -3
- package/dist/{cli-commands-AMIDEUO2.js → cli-commands-HE2BQY3Y.js} +7 -7
- package/dist/cli.js +22 -17
- package/dist/{competitor-GRA2GMZR.js → competitor-PIX2BHJW.js} +3 -3
- package/dist/{content-YVAPTIV4.js → content-PJGW4WZF.js} +3 -3
- package/dist/{dashboard-33ACBR5A.js → dashboard-7OKBD4MG.js} +6 -6
- package/dist/{demo-AGXWBMR6.js → demo-SCOFAWFM.js} +1 -1
- package/dist/{demo-server-W4YAC7GT.js → demo-server-SJPI6RSL.js} +38 -36
- package/dist/{discover-BH33TO4Z.js → discover-I3WL2QUN.js} +10 -8
- package/dist/{discover-eval-3CEA6DEE.js → discover-eval-YRECOIP5.js} +3 -3
- package/dist/{doctor-ZAYTD5PC.js → doctor-F4J6LILX.js} +3 -3
- package/dist/{evidence-247GL7UK.js → evidence-MYQTCY4V.js} +25 -10
- package/dist/{export-cmd-HLKWFI5Q.js → export-cmd-3SUFOJM6.js} +3 -3
- package/dist/{ga-BMING57Z.js → ga-VA6FYK4L.js} +3 -3
- package/dist/{gbp-MIB5CXSD.js → gbp-DI6ZVFHL.js} +3 -3
- package/dist/{google-5JP6RYAW.js → google-UVKWJCD2.js} +4 -4
- package/dist/{google-marketing-25OBMPS6.js → google-marketing-S63HN733.js} +1 -1
- package/dist/{health-cmd-D5XSEL7H.js → health-cmd-DOZXGI46.js} +16 -9
- package/dist/{history-6MDRFPQ3.js → history-UTJTUDYK.js} +3 -3
- package/dist/index.d.ts +211 -19
- package/dist/index.js +26 -26
- package/dist/{init-RDR75N2Y.js → init-IVJSS33J.js} +19 -19
- package/dist/{insights-QZVMBGVM.js → insights-UHCVCZ76.js} +3 -3
- package/dist/intelligence-service-3EENJ5DS.js +16 -0
- package/dist/{journeys-TABTZDFZ.js → journeys-XIT7WDM2.js} +3 -3
- package/dist/{keys-SL5YF7NQ.js → keys-MQKW4JUI.js} +3 -3
- package/dist/{keyword-OCDEXRSW.js → keyword-EASMKYZ3.js} +3 -3
- package/dist/{logs-CSC7O364.js → logs-ZHZ6XM55.js} +3 -3
- package/dist/{mcp-P725OHAJ.js → mcp-ECVT2YGU.js} +4 -4
- package/dist/mcp.js +10 -10
- package/dist/{measurement-plan-Z42GBJBO.js → measurement-plan-7FQKUOMR.js} +5 -5
- package/dist/{notify-E5JBES4I.js → notify-TC7ARC6W.js} +3 -3
- package/dist/{organic-evidence-CUA3T64O.js → organic-evidence-M34MWJXE.js} +7 -4
- package/dist/overview-P6BRMXJN.js +314 -0
- package/dist/{project-2ULM64TV.js → project-WZ2YXFPJ.js} +4 -4
- package/dist/project-setup-WV6SPGIV.js +176 -0
- package/dist/{query-Y47IEFKJ.js → query-WAFJKDHG.js} +3 -3
- package/dist/{research-DPFQZ3TE.js → research-B5ZPQX7R.js} +3 -3
- package/dist/{results-export-KBHOBQAH.js → results-export-NIZV6R3K.js} +3 -3
- package/dist/{run-4CYHVIIU.js → run-ICLPZ7QT.js} +7 -4
- package/dist/{schedule-GY4P3RON.js → schedule-4C44LQ7R.js} +22 -3
- package/dist/{search-AGVNZMJQ.js → search-UJM7KII3.js} +11 -4
- package/dist/{serve-5LFKIXNL.js → serve-A6UIO6WP.js} +30 -29
- package/dist/{session-YAYEDM3P.js → session-RTE22GQT.js} +14 -14
- package/dist/settings-BOF5Z7ML.js +211 -0
- package/dist/{sitemaps-APTY7U6H.js → sitemaps-BM7S76H2.js} +4 -4
- package/dist/{skills-4BUONEIZ.js → skills-X5SR4HRO.js} +2 -2
- package/dist/{snapshot-BXCWSF5P.js → snapshot-KLKE37VY.js} +4 -4
- package/dist/{src-R7XZUX3D.js → src-EKLG5A6O.js} +4 -2
- package/dist/{status-SB6HPBYJ.js → status-OYG57DWU.js} +6 -5
- package/dist/{technical-aeo-G7UEMWZD.js → technical-aeo-KWVWOOTI.js} +23 -23
- package/dist/{telemetry-H4S4Y7YV.js → telemetry-KGE6FF3Y.js} +4 -4
- package/dist/{tools-46XX6I4R.js → tools-4R33AZQ3.js} +11 -11
- package/dist/{traffic-I6WRJN3W.js → traffic-SVMOKCSS.js} +7 -11
- package/dist/{trends-AQK3GLWF.js → trends-RGAKGX3L.js} +4 -4
- package/dist/{users-SNTVY6OB.js → users-47WKA2TO.js} +3 -3
- package/dist/{visibility-stats-44QAD2XS.js → visibility-stats-DTGQJPNV.js} +9 -5
- package/dist/{wordpress-N7LTOW46.js → wordpress-2CNUX4UE.js} +3 -3
- package/package.json +1 -1
- package/assets/assets/AgentSetupPage-yOqSVJ-e.js +0 -18
- package/assets/assets/AuditHistoryPanel-CiTzFgbw.js +0 -1
- package/assets/assets/BacklinksPage-DmRdQsFQ.js +0 -1
- package/assets/assets/ChartPrimitives-CvK6CQrj.js +0 -1
- package/assets/assets/Hint-c4a4W87X.js +0 -1
- package/assets/assets/InfoTooltip-Drnst4ML.js +0 -1
- package/assets/assets/MeasurementPropertyPage-Cx64Fnmz.js +0 -4
- package/assets/assets/ProjectPage-DNfgC82V.js +0 -11
- package/assets/assets/RunsPage-BmPKBKKr.js +0 -1
- package/assets/assets/SettingsPage-Dl0TNeVK.js +0 -1
- package/assets/assets/SiteHealthSection-DxQPaR--.js +0 -2
- package/assets/assets/ToneBadge-BhjTBHi-.js +0 -60
- package/assets/assets/TrafficPage-CJp0pS01.js +0 -40
- package/assets/assets/TrafficSourceDetailPage-DKE8tSw5.js +0 -1
- package/assets/assets/format-helpers-BPugHeIX.js +0 -3
- package/assets/assets/index-BAxHW-1G.css +0 -1
- package/assets/assets/index-xlDLvgRC.js +0 -60
- package/assets/assets/query-client-CwZpfiiD.js +0 -1
- package/assets/assets/react-query-CBpNFR4t.js +0 -1
- package/assets/assets/service-DFumlmXt.js +0 -1
- package/assets/assets/vendor-lucide-DuOM7wVi.js +0 -1
- package/dist/intelligence-service-KQE7RO5I.js +0 -16
- package/dist/overview-UKQ52I72.js +0 -213
- package/dist/settings-HUKMWRHY.js +0 -119
|
@@ -20,17 +20,17 @@ import {
|
|
|
20
20
|
showMeasurementProperty,
|
|
21
21
|
showMeasurementPropertyEvidence,
|
|
22
22
|
showMeasurementReport
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-AYKTVQF7.js";
|
|
24
24
|
import {
|
|
25
25
|
resolveServePort
|
|
26
26
|
} from "./chunk-TSENU4GG.js";
|
|
27
27
|
import {
|
|
28
28
|
createApiClient
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-UGO2FO6V.js";
|
|
30
30
|
import {
|
|
31
31
|
getConfigDir,
|
|
32
32
|
loadConfig
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-EE3QTCLS.js";
|
|
34
34
|
import {
|
|
35
35
|
getBoolean,
|
|
36
36
|
getString,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
resolveCliAccess,
|
|
44
44
|
stringOption,
|
|
45
45
|
unknownSubcommand
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-7BH53MOB.js";
|
|
47
47
|
import {
|
|
48
48
|
emitJsonl
|
|
49
49
|
} from "./chunk-Z7IUAJOF.js";
|
|
@@ -58,6 +58,8 @@ import {
|
|
|
58
58
|
AppError,
|
|
59
59
|
FEEDBACK_KINDS,
|
|
60
60
|
OperationAccesses,
|
|
61
|
+
ProviderNames,
|
|
62
|
+
ProviderQuotaFields,
|
|
61
63
|
RatioUnits,
|
|
62
64
|
SITE_AUDIT_MAX_PAGE_LIMIT,
|
|
63
65
|
SeoMarketRankingOutcomes,
|
|
@@ -81,6 +83,7 @@ import {
|
|
|
81
83
|
parseOrganicEvidencePeriod,
|
|
82
84
|
parseWindowIn,
|
|
83
85
|
providerDispatchModeSchema,
|
|
86
|
+
providerSettingsUpdateRequestSchema,
|
|
84
87
|
queryClassFilterSchema,
|
|
85
88
|
sentimentBackfillRequestSchema,
|
|
86
89
|
sentimentBackfillSelectionSchema,
|
|
@@ -100,10 +103,11 @@ import {
|
|
|
100
103
|
siteAuditIssueListQuerySchema,
|
|
101
104
|
siteAuditPageBudgetSchema,
|
|
102
105
|
snapshotProviderModeSchema,
|
|
106
|
+
suggestedBrandName,
|
|
103
107
|
trendSurfaceSchema,
|
|
104
108
|
visibilityCompareSelectionSchema,
|
|
105
109
|
winnabilityClassSchema
|
|
106
|
-
} from "./chunk-
|
|
110
|
+
} from "./chunk-O7S7OHLE.js";
|
|
107
111
|
|
|
108
112
|
// src/cli-commands/sentiment.ts
|
|
109
113
|
import "zod";
|
|
@@ -728,7 +732,7 @@ var DEMO_CLI_COMMANDS = [{
|
|
|
728
732
|
options: { host: stringOption(), port: stringOption(), "trust-proxy": multiStringOption() },
|
|
729
733
|
allowPositionals: false,
|
|
730
734
|
run: async (input) => {
|
|
731
|
-
const { demoCommand } = await import("./demo-
|
|
735
|
+
const { demoCommand } = await import("./demo-SCOFAWFM.js");
|
|
732
736
|
await demoCommand({
|
|
733
737
|
host: getString(input.values, "host"),
|
|
734
738
|
port: getString(input.values, "port"),
|
|
@@ -749,7 +753,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
749
753
|
allowPositionals: false,
|
|
750
754
|
supportsDryRun: true,
|
|
751
755
|
run: async (input) => {
|
|
752
|
-
const { backfillAnswerVisibilityCommand } = await import("./backfill-
|
|
756
|
+
const { backfillAnswerVisibilityCommand } = await import("./backfill-UVUR36IB.js");
|
|
753
757
|
await backfillAnswerVisibilityCommand({
|
|
754
758
|
project: getString(input.values, "project"),
|
|
755
759
|
dryRun: input.dryRun,
|
|
@@ -766,7 +770,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
766
770
|
allowPositionals: false,
|
|
767
771
|
supportsDryRun: true,
|
|
768
772
|
run: async (input) => {
|
|
769
|
-
const { backfillAnswerMentionsCommand } = await import("./backfill-
|
|
773
|
+
const { backfillAnswerMentionsCommand } = await import("./backfill-UVUR36IB.js");
|
|
770
774
|
await backfillAnswerMentionsCommand({
|
|
771
775
|
project: getString(input.values, "project"),
|
|
772
776
|
dryRun: input.dryRun,
|
|
@@ -784,7 +788,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
784
788
|
},
|
|
785
789
|
supportsDryRun: true,
|
|
786
790
|
run: async (input) => {
|
|
787
|
-
const { backfillInsightsCommand } = await import("./backfill-
|
|
791
|
+
const { backfillInsightsCommand } = await import("./backfill-UVUR36IB.js");
|
|
788
792
|
const usage = "canonry backfill insights <project> [--from-run <id>] [--to-run <id>] [--since <date>] [--dry-run] [--format json]";
|
|
789
793
|
const project3 = requireProject(input, "backfill insights", usage);
|
|
790
794
|
await backfillInsightsCommand(project3, {
|
|
@@ -804,7 +808,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
804
808
|
},
|
|
805
809
|
allowPositionals: false,
|
|
806
810
|
run: async (input) => {
|
|
807
|
-
const { backfillNormalizedPathsCommand } = await import("./backfill-
|
|
811
|
+
const { backfillNormalizedPathsCommand } = await import("./backfill-UVUR36IB.js");
|
|
808
812
|
await backfillNormalizedPathsCommand({
|
|
809
813
|
project: getString(input.values, "project"),
|
|
810
814
|
format: input.format
|
|
@@ -819,7 +823,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
819
823
|
},
|
|
820
824
|
allowPositionals: false,
|
|
821
825
|
run: async (input) => {
|
|
822
|
-
const { backfillAiReferralPathsCommand } = await import("./backfill-
|
|
826
|
+
const { backfillAiReferralPathsCommand } = await import("./backfill-UVUR36IB.js");
|
|
823
827
|
await backfillAiReferralPathsCommand({
|
|
824
828
|
project: getString(input.values, "project"),
|
|
825
829
|
format: input.format
|
|
@@ -831,7 +835,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
831
835
|
usage: "canonry backfill snapshot-attribution <project> [--dry-run] [--format json]",
|
|
832
836
|
supportsDryRun: true,
|
|
833
837
|
run: async (input) => {
|
|
834
|
-
const { backfillSnapshotAttributionCommand } = await import("./backfill-
|
|
838
|
+
const { backfillSnapshotAttributionCommand } = await import("./backfill-UVUR36IB.js");
|
|
835
839
|
const usage = "canonry backfill snapshot-attribution <project> [--dry-run] [--format json]";
|
|
836
840
|
const project3 = requireProject(input, "backfill snapshot-attribution", usage);
|
|
837
841
|
await backfillSnapshotAttributionCommand({
|
|
@@ -850,7 +854,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
850
854
|
allowPositionals: false,
|
|
851
855
|
supportsDryRun: true,
|
|
852
856
|
run: async (input) => {
|
|
853
|
-
const { backfillTrafficClassificationCommand } = await import("./backfill-
|
|
857
|
+
const { backfillTrafficClassificationCommand } = await import("./backfill-UVUR36IB.js");
|
|
854
858
|
await backfillTrafficClassificationCommand({
|
|
855
859
|
project: getString(input.values, "project"),
|
|
856
860
|
dryRun: input.dryRun,
|
|
@@ -878,7 +882,7 @@ var BACKLINKS_CLI_COMMANDS = [
|
|
|
878
882
|
usage: "canonry backlinks install [--format json]",
|
|
879
883
|
options: {},
|
|
880
884
|
run: async (input) => {
|
|
881
|
-
const { backlinksInstall } = await import("./backlinks-
|
|
885
|
+
const { backlinksInstall } = await import("./backlinks-3VMVACWN.js");
|
|
882
886
|
await backlinksInstall({ format: input.format });
|
|
883
887
|
}
|
|
884
888
|
},
|
|
@@ -887,7 +891,7 @@ var BACKLINKS_CLI_COMMANDS = [
|
|
|
887
891
|
usage: "canonry backlinks doctor [--format json]",
|
|
888
892
|
options: {},
|
|
889
893
|
run: async (input) => {
|
|
890
|
-
const { backlinksDoctor } = await import("./backlinks-
|
|
894
|
+
const { backlinksDoctor } = await import("./backlinks-3VMVACWN.js");
|
|
891
895
|
await backlinksDoctor({ format: input.format });
|
|
892
896
|
}
|
|
893
897
|
},
|
|
@@ -899,7 +903,7 @@ var BACKLINKS_CLI_COMMANDS = [
|
|
|
899
903
|
wait: { type: "boolean" }
|
|
900
904
|
},
|
|
901
905
|
run: async (input) => {
|
|
902
|
-
const { backlinksSync } = await import("./backlinks-
|
|
906
|
+
const { backlinksSync } = await import("./backlinks-3VMVACWN.js");
|
|
903
907
|
await backlinksSync({
|
|
904
908
|
release: getString(input.values, "release"),
|
|
905
909
|
wait: getBoolean(input.values, "wait"),
|
|
@@ -912,7 +916,7 @@ var BACKLINKS_CLI_COMMANDS = [
|
|
|
912
916
|
usage: "canonry backlinks status [--format json]",
|
|
913
917
|
options: {},
|
|
914
918
|
run: async (input) => {
|
|
915
|
-
const { backlinksStatus } = await import("./backlinks-
|
|
919
|
+
const { backlinksStatus } = await import("./backlinks-3VMVACWN.js");
|
|
916
920
|
await backlinksStatus({ format: input.format });
|
|
917
921
|
}
|
|
918
922
|
},
|
|
@@ -926,7 +930,7 @@ var BACKLINKS_CLI_COMMANDS = [
|
|
|
926
930
|
"exclude-crawlers": { type: "boolean" }
|
|
927
931
|
},
|
|
928
932
|
run: async (input) => {
|
|
929
|
-
const { backlinksList, parseSourceFlag } = await import("./backlinks-
|
|
933
|
+
const { backlinksList, parseSourceFlag } = await import("./backlinks-3VMVACWN.js");
|
|
930
934
|
const project3 = requireProject(
|
|
931
935
|
input,
|
|
932
936
|
"backlinks list",
|
|
@@ -954,7 +958,7 @@ var BACKLINKS_CLI_COMMANDS = [
|
|
|
954
958
|
"exclude-crawlers": { type: "boolean" }
|
|
955
959
|
},
|
|
956
960
|
run: async (input) => {
|
|
957
|
-
const { backlinksSources } = await import("./backlinks-
|
|
961
|
+
const { backlinksSources } = await import("./backlinks-3VMVACWN.js");
|
|
958
962
|
const project3 = requireProject(
|
|
959
963
|
input,
|
|
960
964
|
"backlinks sources",
|
|
@@ -972,7 +976,7 @@ var BACKLINKS_CLI_COMMANDS = [
|
|
|
972
976
|
usage: "canonry backlinks releases [--format json]",
|
|
973
977
|
options: {},
|
|
974
978
|
run: async (input) => {
|
|
975
|
-
const { backlinksReleases } = await import("./backlinks-
|
|
979
|
+
const { backlinksReleases } = await import("./backlinks-3VMVACWN.js");
|
|
976
980
|
await backlinksReleases({ format: input.format });
|
|
977
981
|
}
|
|
978
982
|
},
|
|
@@ -981,7 +985,7 @@ var BACKLINKS_CLI_COMMANDS = [
|
|
|
981
985
|
usage: "canonry backlinks releases latest [--format json]",
|
|
982
986
|
options: {},
|
|
983
987
|
run: async (input) => {
|
|
984
|
-
const { backlinksLatestRelease } = await import("./backlinks-
|
|
988
|
+
const { backlinksLatestRelease } = await import("./backlinks-3VMVACWN.js");
|
|
985
989
|
await backlinksLatestRelease({ format: input.format });
|
|
986
990
|
}
|
|
987
991
|
},
|
|
@@ -993,7 +997,7 @@ var BACKLINKS_CLI_COMMANDS = [
|
|
|
993
997
|
wait: { type: "boolean" }
|
|
994
998
|
},
|
|
995
999
|
run: async (input) => {
|
|
996
|
-
const { backlinksExtract } = await import("./backlinks-
|
|
1000
|
+
const { backlinksExtract } = await import("./backlinks-3VMVACWN.js");
|
|
997
1001
|
const project3 = requireProject(
|
|
998
1002
|
input,
|
|
999
1003
|
"backlinks extract",
|
|
@@ -1014,7 +1018,7 @@ var BACKLINKS_CLI_COMMANDS = [
|
|
|
1014
1018
|
release: stringOption()
|
|
1015
1019
|
},
|
|
1016
1020
|
run: async (input) => {
|
|
1017
|
-
const { backlinksCachePrune } = await import("./backlinks-
|
|
1021
|
+
const { backlinksCachePrune } = await import("./backlinks-3VMVACWN.js");
|
|
1018
1022
|
const release = requireStringOption(input, "release", {
|
|
1019
1023
|
message: "--release is required",
|
|
1020
1024
|
usage: "canonry backlinks cache prune --release <id>",
|
|
@@ -1037,7 +1041,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1037
1041
|
"api-key": stringOption()
|
|
1038
1042
|
},
|
|
1039
1043
|
run: async (input) => {
|
|
1040
|
-
const { bingConnect } = await import("./bing-
|
|
1044
|
+
const { bingConnect } = await import("./bing-R5RL3PW2.js");
|
|
1041
1045
|
const project3 = requireProject(input, "bing.connect", "canonry bing connect <project> [--api-key <key>] [--format json]");
|
|
1042
1046
|
await bingConnect(project3, {
|
|
1043
1047
|
apiKey: getString(input.values, "api-key"),
|
|
@@ -1049,7 +1053,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1049
1053
|
path: ["bing", "disconnect"],
|
|
1050
1054
|
usage: "canonry bing disconnect <project> [--format json]",
|
|
1051
1055
|
run: async (input) => {
|
|
1052
|
-
const { bingDisconnect } = await import("./bing-
|
|
1056
|
+
const { bingDisconnect } = await import("./bing-R5RL3PW2.js");
|
|
1053
1057
|
const project3 = requireProject(input, "bing.disconnect", "canonry bing disconnect <project> [--format json]");
|
|
1054
1058
|
await bingDisconnect(project3, input.format);
|
|
1055
1059
|
}
|
|
@@ -1058,7 +1062,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1058
1062
|
path: ["bing", "status"],
|
|
1059
1063
|
usage: "canonry bing status <project> [--format json]",
|
|
1060
1064
|
run: async (input) => {
|
|
1061
|
-
const { bingStatus } = await import("./bing-
|
|
1065
|
+
const { bingStatus } = await import("./bing-R5RL3PW2.js");
|
|
1062
1066
|
const project3 = requireProject(input, "bing.status", "canonry bing status <project> [--format json]");
|
|
1063
1067
|
await bingStatus(project3, input.format);
|
|
1064
1068
|
}
|
|
@@ -1067,7 +1071,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1067
1071
|
path: ["bing", "sites"],
|
|
1068
1072
|
usage: "canonry bing sites <project> [--format json]",
|
|
1069
1073
|
run: async (input) => {
|
|
1070
|
-
const { bingSites } = await import("./bing-
|
|
1074
|
+
const { bingSites } = await import("./bing-R5RL3PW2.js");
|
|
1071
1075
|
const project3 = requireProject(input, "bing.sites", "canonry bing sites <project> [--format json]");
|
|
1072
1076
|
await bingSites(project3, input.format);
|
|
1073
1077
|
}
|
|
@@ -1076,7 +1080,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1076
1080
|
path: ["bing", "set-site"],
|
|
1077
1081
|
usage: "canonry bing set-site <project> <url> [--format json]",
|
|
1078
1082
|
run: async (input) => {
|
|
1079
|
-
const { bingSetSite } = await import("./bing-
|
|
1083
|
+
const { bingSetSite } = await import("./bing-R5RL3PW2.js");
|
|
1080
1084
|
const project3 = requireProject(input, "bing.set-site", "canonry bing set-site <project> <url> [--format json]");
|
|
1081
1085
|
const siteUrl = requirePositional(input, 1, {
|
|
1082
1086
|
command: "bing.set-site",
|
|
@@ -1091,7 +1095,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1091
1095
|
usage: "canonry bing coverage-history <project> [--limit <n>] [--format json]",
|
|
1092
1096
|
options: { limit: stringOption() },
|
|
1093
1097
|
run: async (input) => {
|
|
1094
|
-
const { bingCoverageHistory } = await import("./bing-
|
|
1098
|
+
const { bingCoverageHistory } = await import("./bing-R5RL3PW2.js");
|
|
1095
1099
|
const project3 = requireProject(input, "bing.coverage-history", "canonry bing coverage-history <project> [--limit <n>] [--format json]");
|
|
1096
1100
|
await bingCoverageHistory(project3, {
|
|
1097
1101
|
limit: parseIntegerOption(input, "limit", {
|
|
@@ -1107,7 +1111,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1107
1111
|
path: ["bing", "coverage"],
|
|
1108
1112
|
usage: "canonry bing coverage <project> [--format json]",
|
|
1109
1113
|
run: async (input) => {
|
|
1110
|
-
const { bingCoverage } = await import("./bing-
|
|
1114
|
+
const { bingCoverage } = await import("./bing-R5RL3PW2.js");
|
|
1111
1115
|
const project3 = requireProject(input, "bing.coverage", "canonry bing coverage <project> [--format json]");
|
|
1112
1116
|
await bingCoverage(project3, input.format);
|
|
1113
1117
|
}
|
|
@@ -1116,7 +1120,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1116
1120
|
path: ["bing", "inspect"],
|
|
1117
1121
|
usage: "canonry bing inspect <project> <url> [--format json]",
|
|
1118
1122
|
run: async (input) => {
|
|
1119
|
-
const { bingInspect } = await import("./bing-
|
|
1123
|
+
const { bingInspect } = await import("./bing-R5RL3PW2.js");
|
|
1120
1124
|
const project3 = requireProject(input, "bing.inspect", "canonry bing inspect <project> <url> [--format json]");
|
|
1121
1125
|
const url = requirePositional(input, 1, {
|
|
1122
1126
|
command: "bing.inspect",
|
|
@@ -1133,7 +1137,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1133
1137
|
url: stringOption()
|
|
1134
1138
|
},
|
|
1135
1139
|
run: async (input) => {
|
|
1136
|
-
const { bingInspections } = await import("./bing-
|
|
1140
|
+
const { bingInspections } = await import("./bing-R5RL3PW2.js");
|
|
1137
1141
|
const project3 = requireProject(input, "bing.inspections", "canonry bing inspections <project> [--url <url>] [--format json]");
|
|
1138
1142
|
await bingInspections(project3, {
|
|
1139
1143
|
url: getString(input.values, "url"),
|
|
@@ -1149,7 +1153,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1149
1153
|
wait: { type: "boolean", default: false }
|
|
1150
1154
|
},
|
|
1151
1155
|
run: async (input) => {
|
|
1152
|
-
const { bingInspectSitemap } = await import("./bing-
|
|
1156
|
+
const { bingInspectSitemap } = await import("./bing-R5RL3PW2.js");
|
|
1153
1157
|
const project3 = requireProject(input, "bing.inspect-sitemap", "canonry bing inspect-sitemap <project> [--sitemap-url <url>] [--wait] [--format json]");
|
|
1154
1158
|
await bingInspectSitemap(project3, {
|
|
1155
1159
|
sitemapUrl: getString(input.values, "sitemap-url"),
|
|
@@ -1165,7 +1169,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1165
1169
|
"all-unindexed": { type: "boolean", default: false }
|
|
1166
1170
|
},
|
|
1167
1171
|
run: async (input) => {
|
|
1168
|
-
const { bingRequestIndexing } = await import("./bing-
|
|
1172
|
+
const { bingRequestIndexing } = await import("./bing-R5RL3PW2.js");
|
|
1169
1173
|
const project3 = requireProject(input, "bing.request-indexing", "canonry bing request-indexing <project> [url] [--all-unindexed] [--format json]");
|
|
1170
1174
|
const url = input.positionals[1];
|
|
1171
1175
|
const allUnindexed = getBoolean(input.values, "all-unindexed");
|
|
@@ -1189,7 +1193,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1189
1193
|
path: ["bing", "performance"],
|
|
1190
1194
|
usage: "canonry bing performance <project> [--format json]",
|
|
1191
1195
|
run: async (input) => {
|
|
1192
|
-
const { bingPerformance } = await import("./bing-
|
|
1196
|
+
const { bingPerformance } = await import("./bing-R5RL3PW2.js");
|
|
1193
1197
|
const project3 = requireProject(input, "bing.performance", "canonry bing performance <project> [--format json]");
|
|
1194
1198
|
await bingPerformance(project3, input.format);
|
|
1195
1199
|
}
|
|
@@ -1198,7 +1202,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1198
1202
|
path: ["bing", "refresh"],
|
|
1199
1203
|
usage: "canonry bing refresh <project> [--format json]",
|
|
1200
1204
|
run: async (input) => {
|
|
1201
|
-
const { bingRefresh } = await import("./bing-
|
|
1205
|
+
const { bingRefresh } = await import("./bing-R5RL3PW2.js");
|
|
1202
1206
|
const project3 = requireProject(input, "bing.refresh", "canonry bing refresh <project> [--format json]");
|
|
1203
1207
|
await bingRefresh(project3, input.format);
|
|
1204
1208
|
}
|
|
@@ -1207,7 +1211,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1207
1211
|
path: ["bing", "submit-sitemap"],
|
|
1208
1212
|
usage: "canonry bing submit-sitemap <project> <sitemap-url> [--format json]",
|
|
1209
1213
|
run: async (input) => {
|
|
1210
|
-
const { bingSubmitSitemap } = await import("./bing-
|
|
1214
|
+
const { bingSubmitSitemap } = await import("./bing-R5RL3PW2.js");
|
|
1211
1215
|
const project3 = requireProject(input, "bing.submit-sitemap", "canonry bing submit-sitemap <project> <sitemap-url> [--format json]");
|
|
1212
1216
|
const sitemapUrl = requirePositional(input, 1, { command: "bing.submit-sitemap", usage: "canonry bing submit-sitemap <project> <sitemap-url> [--format json]", message: "project name and sitemap URL are required" });
|
|
1213
1217
|
await bingSubmitSitemap(project3, sitemapUrl, { format: input.format });
|
|
@@ -1218,7 +1222,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1218
1222
|
usage: "canonry bing sync <project> [--wait] [--format json]",
|
|
1219
1223
|
options: { wait: { type: "boolean", default: false } },
|
|
1220
1224
|
run: async (input) => {
|
|
1221
|
-
const { bingSync } = await import("./bing-
|
|
1225
|
+
const { bingSync } = await import("./bing-R5RL3PW2.js");
|
|
1222
1226
|
const project3 = requireProject(input, "bing.sync", "canonry bing sync <project> [--wait] [--format json]");
|
|
1223
1227
|
await bingSync(project3, { wait: getBoolean(input.values, "wait"), format: input.format });
|
|
1224
1228
|
}
|
|
@@ -1228,7 +1232,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1228
1232
|
usage: "canonry bing traffic <project> [--window 7d|30d|90d|all] [--days <n>] [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--format json|jsonl]",
|
|
1229
1233
|
options: { window: stringOption(), days: stringOption(), "start-date": stringOption(), "end-date": stringOption() },
|
|
1230
1234
|
run: async (input) => {
|
|
1231
|
-
const { bingTraffic } = await import("./bing-
|
|
1235
|
+
const { bingTraffic } = await import("./bing-R5RL3PW2.js");
|
|
1232
1236
|
const project3 = requireProject(input, "bing.traffic", "canonry bing traffic <project> [--window 7d|30d|90d|all] [--days <n>] [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--format json|jsonl]");
|
|
1233
1237
|
await bingTraffic(project3, { window: getString(input.values, "window"), days: getString(input.values, "days"), startDate: getString(input.values, "start-date"), endDate: getString(input.values, "end-date"), format: input.format });
|
|
1234
1238
|
}
|
|
@@ -1238,7 +1242,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1238
1242
|
usage: "canonry bing queries <project> [--window 7d|30d|90d|all] [--days <n>] [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--query <text> [--exact]] [--group-by query|week] [--limit <n>] [--offset <n>] [--format json|jsonl]",
|
|
1239
1243
|
options: { window: stringOption(), days: stringOption(), "start-date": stringOption(), "end-date": stringOption(), query: stringOption(), exact: { type: "boolean", default: false }, "group-by": stringOption(), limit: stringOption(), offset: stringOption() },
|
|
1240
1244
|
run: async (input) => {
|
|
1241
|
-
const { bingQueries } = await import("./bing-
|
|
1245
|
+
const { bingQueries } = await import("./bing-R5RL3PW2.js");
|
|
1242
1246
|
const project3 = requireProject(input, "bing.queries", "canonry bing queries <project> [--window 7d|30d|90d|all] [--days <n>] [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--query <text> [--exact]] [--group-by query|week] [--limit <n>] [--offset <n>] [--format json|jsonl]");
|
|
1243
1247
|
await bingQueries(project3, {
|
|
1244
1248
|
window: getString(input.values, "window"),
|
|
@@ -1259,7 +1263,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1259
1263
|
usage: "canonry bing pages <project> [--window 7d|30d|90d|all] [--days <n>] [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--page <text> [--exact]] [--group-by page|week] [--limit <n>] [--offset <n>] [--format json|jsonl]",
|
|
1260
1264
|
options: { window: stringOption(), days: stringOption(), "start-date": stringOption(), "end-date": stringOption(), page: stringOption(), exact: { type: "boolean", default: false }, "group-by": stringOption(), limit: stringOption(), offset: stringOption() },
|
|
1261
1265
|
run: async (input) => {
|
|
1262
|
-
const { bingPages } = await import("./bing-
|
|
1266
|
+
const { bingPages } = await import("./bing-R5RL3PW2.js");
|
|
1263
1267
|
const project3 = requireProject(input, "bing.pages", "canonry bing pages <project> [--window 7d|30d|90d|all] [--days <n>] [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--page <text> [--exact]] [--group-by page|week] [--limit <n>] [--offset <n>] [--format json|jsonl]");
|
|
1264
1268
|
await bingPages(project3, {
|
|
1265
1269
|
window: getString(input.values, "window"),
|
|
@@ -1280,7 +1284,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1280
1284
|
usage: "canonry bing crawl-stats <project> [--days <n>] [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--format json|jsonl]",
|
|
1281
1285
|
options: { days: stringOption(), "start-date": stringOption(), "end-date": stringOption() },
|
|
1282
1286
|
run: async (input) => {
|
|
1283
|
-
const { bingCrawlStats } = await import("./bing-
|
|
1287
|
+
const { bingCrawlStats } = await import("./bing-R5RL3PW2.js");
|
|
1284
1288
|
const project3 = requireProject(input, "bing.crawl-stats", "canonry bing crawl-stats <project> [--days <n>] [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--format json|jsonl]");
|
|
1285
1289
|
await bingCrawlStats(project3, { days: getString(input.values, "days"), startDate: getString(input.values, "start-date"), endDate: getString(input.values, "end-date"), format: input.format });
|
|
1286
1290
|
}
|
|
@@ -1289,7 +1293,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1289
1293
|
path: ["bing", "sitemaps"],
|
|
1290
1294
|
usage: "canonry bing sitemaps <project> [--format json|jsonl]",
|
|
1291
1295
|
run: async (input) => {
|
|
1292
|
-
const { bingSitemaps } = await import("./bing-
|
|
1296
|
+
const { bingSitemaps } = await import("./bing-R5RL3PW2.js");
|
|
1293
1297
|
const project3 = requireProject(input, "bing.sitemaps", "canonry bing sitemaps <project> [--format json|jsonl]");
|
|
1294
1298
|
await bingSitemaps(project3, input.format);
|
|
1295
1299
|
}
|
|
@@ -1299,7 +1303,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1299
1303
|
usage: "canonry bing site <project> [--kind <kind>] [--format json|jsonl]",
|
|
1300
1304
|
options: { kind: stringOption() },
|
|
1301
1305
|
run: async (input) => {
|
|
1302
|
-
const { bingSite } = await import("./bing-
|
|
1306
|
+
const { bingSite } = await import("./bing-R5RL3PW2.js");
|
|
1303
1307
|
const project3 = requireProject(input, "bing.site", "canonry bing site <project> [--kind <kind>] [--format json|jsonl]");
|
|
1304
1308
|
await bingSite(project3, { kind: getString(input.values, "kind"), format: input.format });
|
|
1305
1309
|
}
|
|
@@ -1309,7 +1313,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1309
1313
|
usage: "canonry bing keyword-demand <project> [--query <tracked query>] [--format json|jsonl]",
|
|
1310
1314
|
options: { query: stringOption() },
|
|
1311
1315
|
run: async (input) => {
|
|
1312
|
-
const { bingKeywordDemand } = await import("./bing-
|
|
1316
|
+
const { bingKeywordDemand } = await import("./bing-R5RL3PW2.js");
|
|
1313
1317
|
const project3 = requireProject(input, "bing.keyword-demand", "canonry bing keyword-demand <project> [--query <tracked query>] [--format json|jsonl]");
|
|
1314
1318
|
await bingKeywordDemand(project3, { query: getString(input.values, "query"), format: input.format });
|
|
1315
1319
|
}
|
|
@@ -1318,7 +1322,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1318
1322
|
path: ["bing", "query-pages"],
|
|
1319
1323
|
usage: "canonry bing query-pages <project> <query> [--format json|jsonl]",
|
|
1320
1324
|
run: async (input) => {
|
|
1321
|
-
const { bingQueryPages } = await import("./bing-
|
|
1325
|
+
const { bingQueryPages } = await import("./bing-R5RL3PW2.js");
|
|
1322
1326
|
const project3 = requireProject(input, "bing.query-pages", "canonry bing query-pages <project> <query> [--format json|jsonl]");
|
|
1323
1327
|
const searchQuery = requirePositional(input, 1, { command: "bing.query-pages", usage: "canonry bing query-pages <project> <query> [--format json|jsonl]", message: "project name and query are required" });
|
|
1324
1328
|
await bingQueryPages(project3, searchQuery, input.format);
|
|
@@ -1328,7 +1332,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1328
1332
|
path: ["bing", "page-queries"],
|
|
1329
1333
|
usage: "canonry bing page-queries <project> <page-url> [--format json|jsonl]",
|
|
1330
1334
|
run: async (input) => {
|
|
1331
|
-
const { bingPageQueries } = await import("./bing-
|
|
1335
|
+
const { bingPageQueries } = await import("./bing-R5RL3PW2.js");
|
|
1332
1336
|
const project3 = requireProject(input, "bing.page-queries", "canonry bing page-queries <project> <page-url> [--format json|jsonl]");
|
|
1333
1337
|
const page = requirePositional(input, 1, { command: "bing.page-queries", usage: "canonry bing page-queries <project> <page-url> [--format json|jsonl]", message: "project name and page URL are required" });
|
|
1334
1338
|
await bingPageQueries(project3, page, input.format);
|
|
@@ -1339,7 +1343,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1339
1343
|
usage: "canonry bing query-history <project> <query> [--page <url>] [--format json|jsonl]",
|
|
1340
1344
|
options: { page: stringOption() },
|
|
1341
1345
|
run: async (input) => {
|
|
1342
|
-
const { bingQueryHistory } = await import("./bing-
|
|
1346
|
+
const { bingQueryHistory } = await import("./bing-R5RL3PW2.js");
|
|
1343
1347
|
const project3 = requireProject(input, "bing.query-history", "canonry bing query-history <project> <query> [--page <url>] [--format json|jsonl]");
|
|
1344
1348
|
const searchQuery = requirePositional(input, 1, { command: "bing.query-history", usage: "canonry bing query-history <project> <query> [--page <url>] [--format json|jsonl]", message: "project name and query are required" });
|
|
1345
1349
|
await bingQueryHistory(project3, { query: searchQuery, page: getString(input.values, "page"), format: input.format });
|
|
@@ -1350,7 +1354,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1350
1354
|
usage: "canonry bing url-traffic <project> <url> [--children] [--page <n>] [--format json|jsonl]",
|
|
1351
1355
|
options: { children: { type: "boolean", default: false }, page: stringOption() },
|
|
1352
1356
|
run: async (input) => {
|
|
1353
|
-
const { bingUrlTraffic } = await import("./bing-
|
|
1357
|
+
const { bingUrlTraffic } = await import("./bing-R5RL3PW2.js");
|
|
1354
1358
|
const project3 = requireProject(input, "bing.url-traffic", "canonry bing url-traffic <project> <url> [--children] [--page <n>] [--format json|jsonl]");
|
|
1355
1359
|
const url = requirePositional(input, 1, { command: "bing.url-traffic", usage: "canonry bing url-traffic <project> <url> [--children] [--page <n>] [--format json|jsonl]", message: "project name and URL are required" });
|
|
1356
1360
|
await bingUrlTraffic(project3, { url, children: getBoolean(input.values, "children"), page: parseIntegerOption(input, "page", { command: "bing.url-traffic", message: "--page must be an integer", usage: "canonry bing url-traffic <project> <url> [--children] [--page <n>] [--format json|jsonl]" }), format: input.format });
|
|
@@ -1361,7 +1365,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1361
1365
|
usage: "canonry bing url-children <project> <url> [--page <n>] [--format json|jsonl]",
|
|
1362
1366
|
options: { page: stringOption() },
|
|
1363
1367
|
run: async (input) => {
|
|
1364
|
-
const { bingUrlChildren } = await import("./bing-
|
|
1368
|
+
const { bingUrlChildren } = await import("./bing-R5RL3PW2.js");
|
|
1365
1369
|
const project3 = requireProject(input, "bing.url-children", "canonry bing url-children <project> <url> [--page <n>] [--format json|jsonl]");
|
|
1366
1370
|
const url = requirePositional(input, 1, { command: "bing.url-children", usage: "canonry bing url-children <project> <url> [--page <n>] [--format json|jsonl]", message: "project name and URL are required" });
|
|
1367
1371
|
await bingUrlChildren(project3, { url, page: parseIntegerOption(input, "page", { command: "bing.url-children", message: "--page must be an integer", usage: "canonry bing url-children <project> <url> [--page <n>] [--format json|jsonl]" }), format: input.format });
|
|
@@ -1372,7 +1376,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1372
1376
|
usage: "canonry bing links <project> [--url <page-url>] [--page <n>] [--format json|jsonl]",
|
|
1373
1377
|
options: { url: stringOption(), page: stringOption() },
|
|
1374
1378
|
run: async (input) => {
|
|
1375
|
-
const { bingLinks } = await import("./bing-
|
|
1379
|
+
const { bingLinks } = await import("./bing-R5RL3PW2.js");
|
|
1376
1380
|
const project3 = requireProject(input, "bing.links", "canonry bing links <project> [--url <page-url>] [--page <n>] [--format json|jsonl]");
|
|
1377
1381
|
await bingLinks(project3, { url: getString(input.values, "url"), page: parseIntegerOption(input, "page", { command: "bing.links", message: "--page must be an integer", usage: "canonry bing links <project> [--url <page-url>] [--page <n>] [--format json|jsonl]" }), format: input.format });
|
|
1378
1382
|
}
|
|
@@ -1382,7 +1386,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1382
1386
|
usage: "canonry bing fetched-urls <project> [--url <url>] [--format json|jsonl]",
|
|
1383
1387
|
options: { url: stringOption() },
|
|
1384
1388
|
run: async (input) => {
|
|
1385
|
-
const { bingFetchedUrls } = await import("./bing-
|
|
1389
|
+
const { bingFetchedUrls } = await import("./bing-R5RL3PW2.js");
|
|
1386
1390
|
const project3 = requireProject(input, "bing.fetched-urls", "canonry bing fetched-urls <project> [--url <url>] [--format json|jsonl]");
|
|
1387
1391
|
await bingFetchedUrls(project3, { url: getString(input.values, "url"), format: input.format });
|
|
1388
1392
|
}
|
|
@@ -1392,7 +1396,7 @@ var BING_CLI_COMMANDS = [
|
|
|
1392
1396
|
usage: "canonry bing keywords <project> <keyword> [--country <cc>] [--language <tag>] [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--format json|jsonl]",
|
|
1393
1397
|
options: { country: stringOption(), language: stringOption(), "start-date": stringOption(), "end-date": stringOption() },
|
|
1394
1398
|
run: async (input) => {
|
|
1395
|
-
const { bingKeywords } = await import("./bing-
|
|
1399
|
+
const { bingKeywords } = await import("./bing-R5RL3PW2.js");
|
|
1396
1400
|
const project3 = requireProject(input, "bing.keywords", "canonry bing keywords <project> <keyword> [--country <cc>] [--language <tag>] [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--format json|jsonl]");
|
|
1397
1401
|
const keyword = requirePositional(input, 1, { command: "bing.keywords", usage: "canonry bing keywords <project> <keyword> [--country <cc>] [--language <tag>] [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--format json|jsonl]", message: "project name and keyword are required" });
|
|
1398
1402
|
await bingKeywords(project3, {
|
|
@@ -1429,7 +1433,7 @@ var CDP_CLI_COMMANDS = [
|
|
|
1429
1433
|
},
|
|
1430
1434
|
allowPositionals: false,
|
|
1431
1435
|
run: async (input) => {
|
|
1432
|
-
const { cdpConnect } = await import("./cdp-
|
|
1436
|
+
const { cdpConnect } = await import("./cdp-FJKUXHEY.js");
|
|
1433
1437
|
await cdpConnect({
|
|
1434
1438
|
host: getString(input.values, "host"),
|
|
1435
1439
|
port: getString(input.values, "port"),
|
|
@@ -1442,7 +1446,7 @@ var CDP_CLI_COMMANDS = [
|
|
|
1442
1446
|
usage: "canonry cdp status [--format json]",
|
|
1443
1447
|
allowPositionals: false,
|
|
1444
1448
|
run: async (input) => {
|
|
1445
|
-
const { cdpStatus } = await import("./cdp-
|
|
1449
|
+
const { cdpStatus } = await import("./cdp-FJKUXHEY.js");
|
|
1446
1450
|
await cdpStatus(input.format);
|
|
1447
1451
|
}
|
|
1448
1452
|
},
|
|
@@ -1451,7 +1455,7 @@ var CDP_CLI_COMMANDS = [
|
|
|
1451
1455
|
usage: "canonry cdp targets [--format json]",
|
|
1452
1456
|
allowPositionals: false,
|
|
1453
1457
|
run: async (input) => {
|
|
1454
|
-
const { cdpTargets } = await import("./cdp-
|
|
1458
|
+
const { cdpTargets } = await import("./cdp-FJKUXHEY.js");
|
|
1455
1459
|
await cdpTargets(input.format);
|
|
1456
1460
|
}
|
|
1457
1461
|
},
|
|
@@ -1462,7 +1466,7 @@ var CDP_CLI_COMMANDS = [
|
|
|
1462
1466
|
targets: stringOption()
|
|
1463
1467
|
},
|
|
1464
1468
|
run: async (input) => {
|
|
1465
|
-
const { cdpScreenshot } = await import("./cdp-
|
|
1469
|
+
const { cdpScreenshot } = await import("./cdp-FJKUXHEY.js");
|
|
1466
1470
|
const query = requirePositional(input, 0, {
|
|
1467
1471
|
command: "cdp.screenshot",
|
|
1468
1472
|
usage: "canonry cdp screenshot <query> [--targets <list>] [--format json]",
|
|
@@ -1494,7 +1498,7 @@ var DASHBOARD_CLI_COMMANDS = [
|
|
|
1494
1498
|
usage: "canonry dashboard reset-password [--format json]",
|
|
1495
1499
|
help: "Clears the dashboard password from config.yaml, so the dashboard asks for a new one after a restart.\nLocal only: it edits the config file under CANONRY_CONFIG_DIR and does not call the server.",
|
|
1496
1500
|
run: async (input) => {
|
|
1497
|
-
const { resetDashboardPassword } = await import("./dashboard-
|
|
1501
|
+
const { resetDashboardPassword } = await import("./dashboard-7OKBD4MG.js");
|
|
1498
1502
|
await resetDashboardPassword({ format: input.format });
|
|
1499
1503
|
}
|
|
1500
1504
|
},
|
|
@@ -1610,7 +1614,7 @@ var DISCOVER_CLI_COMMANDS = [
|
|
|
1610
1614
|
wait: { type: "boolean", default: false }
|
|
1611
1615
|
},
|
|
1612
1616
|
run: async (input) => {
|
|
1613
|
-
const { discoverRun } = await import("./discover-
|
|
1617
|
+
const { discoverRun } = await import("./discover-I3WL2QUN.js");
|
|
1614
1618
|
const usage = 'canonry discover run <project> [--icp "..."] [--buyer "..."] [--seed-provider gemini --seed-provider openai] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--probe-concurrency 3] [--wait] [--format json]';
|
|
1615
1619
|
const project3 = requireProject(input, "discover.run", usage);
|
|
1616
1620
|
await discoverRun(project3, {
|
|
@@ -1647,7 +1651,7 @@ var DISCOVER_CLI_COMMANDS = [
|
|
|
1647
1651
|
"probe-concurrency": stringOption()
|
|
1648
1652
|
},
|
|
1649
1653
|
run: async (input) => {
|
|
1650
|
-
const { discoverEval } = await import("./discover-eval-
|
|
1654
|
+
const { discoverEval } = await import("./discover-eval-YRECOIP5.js");
|
|
1651
1655
|
const usage = "canonry discover eval [--baseline <path>] [--update-baseline] [--shape eval-b2b-saas ...] [--seed-provider gemini --seed-provider openai] [--max-probes 2] [--probe-concurrency 2] [--format json]";
|
|
1652
1656
|
await discoverEval({
|
|
1653
1657
|
baseline: getString(input.values, "baseline"),
|
|
@@ -1683,7 +1687,7 @@ var DISCOVER_CLI_COMMANDS = [
|
|
|
1683
1687
|
wait: { type: "boolean", default: false }
|
|
1684
1688
|
},
|
|
1685
1689
|
run: async (input) => {
|
|
1686
|
-
const { discoverSeed } = await import("./discover-
|
|
1690
|
+
const { discoverSeed } = await import("./discover-I3WL2QUN.js");
|
|
1687
1691
|
const usage = 'canonry discover seed <project> [--icp "..."] [--buyer "..."] [--seed-provider gemini --seed-provider openai] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--probe-concurrency 3] [--wait] [--format json]';
|
|
1688
1692
|
const project3 = requireProject(input, "discover.seed", usage);
|
|
1689
1693
|
await discoverSeed(project3, {
|
|
@@ -1712,7 +1716,7 @@ var DISCOVER_CLI_COMMANDS = [
|
|
|
1712
1716
|
path: ["discover", "probe"],
|
|
1713
1717
|
usage: "canonry discover probe <project> <session-id> [--format json]",
|
|
1714
1718
|
run: async (input) => {
|
|
1715
|
-
const { discoverProbe } = await import("./discover-
|
|
1719
|
+
const { discoverProbe } = await import("./discover-I3WL2QUN.js");
|
|
1716
1720
|
const project3 = requireProject(
|
|
1717
1721
|
input,
|
|
1718
1722
|
"discover.probe",
|
|
@@ -1733,7 +1737,7 @@ var DISCOVER_CLI_COMMANDS = [
|
|
|
1733
1737
|
limit: stringOption()
|
|
1734
1738
|
},
|
|
1735
1739
|
run: async (input) => {
|
|
1736
|
-
const { discoverList } = await import("./discover-
|
|
1740
|
+
const { discoverList } = await import("./discover-I3WL2QUN.js");
|
|
1737
1741
|
const project3 = requireProject(
|
|
1738
1742
|
input,
|
|
1739
1743
|
"discover.list",
|
|
@@ -1753,7 +1757,7 @@ var DISCOVER_CLI_COMMANDS = [
|
|
|
1753
1757
|
path: ["discover", "show"],
|
|
1754
1758
|
usage: "canonry discover show <project> <session-id> [--format json]",
|
|
1755
1759
|
run: async (input) => {
|
|
1756
|
-
const { discoverShow } = await import("./discover-
|
|
1760
|
+
const { discoverShow } = await import("./discover-I3WL2QUN.js");
|
|
1757
1761
|
const project3 = requireProject(
|
|
1758
1762
|
input,
|
|
1759
1763
|
"discover.show",
|
|
@@ -1776,7 +1780,7 @@ var DISCOVER_CLI_COMMANDS = [
|
|
|
1776
1780
|
"no-competitors": { type: "boolean", default: false }
|
|
1777
1781
|
},
|
|
1778
1782
|
run: async (input) => {
|
|
1779
|
-
const { discoverPromote } = await import("./discover-
|
|
1783
|
+
const { discoverPromote } = await import("./discover-I3WL2QUN.js");
|
|
1780
1784
|
const usage = "canonry discover promote <project> <session-id> [--bucket cited,aspirational,wasted-surface] [--competitor-types direct-competitor,editorial-media] [--no-competitors] [--format json]";
|
|
1781
1785
|
const project3 = requireProject(input, "discover.promote", usage);
|
|
1782
1786
|
const sessionId = requirePositional(input, 1, {
|
|
@@ -1800,7 +1804,7 @@ var DISCOVER_CLI_COMMANDS = [
|
|
|
1800
1804
|
"no-anchor": { type: "boolean", default: false }
|
|
1801
1805
|
},
|
|
1802
1806
|
run: async (input) => {
|
|
1803
|
-
const { discoverHarvest } = await import("./discover-
|
|
1807
|
+
const { discoverHarvest } = await import("./discover-I3WL2QUN.js");
|
|
1804
1808
|
const usage = "canonry discover harvest <project> <session-id> [--min-probe-hits <n>] [--no-anchor] [--format json|jsonl]";
|
|
1805
1809
|
const project3 = requireProject(input, "discover.harvest", usage);
|
|
1806
1810
|
const sessionId = requirePositional(input, 1, {
|
|
@@ -1823,7 +1827,7 @@ var DISCOVER_CLI_COMMANDS = [
|
|
|
1823
1827
|
path: ["discover", "promote", "preview"],
|
|
1824
1828
|
usage: "canonry discover promote preview <project> <session-id> [--format json]",
|
|
1825
1829
|
run: async (input) => {
|
|
1826
|
-
const { discoverPromotePreview } = await import("./discover-
|
|
1830
|
+
const { discoverPromotePreview } = await import("./discover-I3WL2QUN.js");
|
|
1827
1831
|
const project3 = requireProject(
|
|
1828
1832
|
input,
|
|
1829
1833
|
"discover.promote.preview",
|
|
@@ -1924,7 +1928,7 @@ var RESEARCH_CLI_COMMANDS = [
|
|
|
1924
1928
|
usage: BATCH_USAGE,
|
|
1925
1929
|
options: { wait: { type: "boolean", default: false } },
|
|
1926
1930
|
run: async (input) => {
|
|
1927
|
-
const { researchBatch } = await import("./research-
|
|
1931
|
+
const { researchBatch } = await import("./research-B5ZPQX7R.js");
|
|
1928
1932
|
const project3 = requireProject(input, "research.batch", BATCH_USAGE);
|
|
1929
1933
|
const source = requirePositional(input, 1, {
|
|
1930
1934
|
command: "research.batch",
|
|
@@ -1951,7 +1955,7 @@ var RESEARCH_CLI_COMMANDS = [
|
|
|
1951
1955
|
wait: { type: "boolean", default: false }
|
|
1952
1956
|
},
|
|
1953
1957
|
run: async (input) => {
|
|
1954
|
-
const { researchRun } = await import("./research-
|
|
1958
|
+
const { researchRun } = await import("./research-B5ZPQX7R.js");
|
|
1955
1959
|
const project3 = requireProject(input, "research.run", RUN_USAGE);
|
|
1956
1960
|
const provider = getString(input.values, "provider")?.trim() || void 0;
|
|
1957
1961
|
const model = getString(input.values, "model")?.trim() || void 0;
|
|
@@ -1980,7 +1984,7 @@ Usage: ${RUN_USAGE}`, {
|
|
|
1980
1984
|
usage: "canonry research list <project> [--limit <n>] [--cursor <cursor>] [--format json|jsonl]",
|
|
1981
1985
|
options: { limit: stringOption(), cursor: stringOption() },
|
|
1982
1986
|
run: async (input) => {
|
|
1983
|
-
const { researchList } = await import("./research-
|
|
1987
|
+
const { researchList } = await import("./research-B5ZPQX7R.js");
|
|
1984
1988
|
const usage = "canonry research list <project> [--limit <n>] [--cursor <cursor>] [--format json|jsonl]";
|
|
1985
1989
|
const project3 = requireProject(input, "research.list", usage);
|
|
1986
1990
|
await researchList(project3, {
|
|
@@ -1994,7 +1998,7 @@ Usage: ${RUN_USAGE}`, {
|
|
|
1994
1998
|
path: ["research", "show"],
|
|
1995
1999
|
usage: "canonry research show <project> <run-id> [--format json|jsonl]",
|
|
1996
2000
|
run: async (input) => {
|
|
1997
|
-
const { researchShow } = await import("./research-
|
|
2001
|
+
const { researchShow } = await import("./research-B5ZPQX7R.js");
|
|
1998
2002
|
const usage = "canonry research show <project> <run-id> [--format json|jsonl]";
|
|
1999
2003
|
const project3 = requireProject(input, "research.show", usage);
|
|
2000
2004
|
const runId = requirePositional(input, 1, { command: "research.show", usage, message: "research run ID is required" });
|
|
@@ -2017,7 +2021,7 @@ var DOCTOR_CLI_COMMANDS = [
|
|
|
2017
2021
|
},
|
|
2018
2022
|
allowPositionals: false,
|
|
2019
2023
|
run: async (input) => {
|
|
2020
|
-
const { doctorCommand } = await import("./doctor-
|
|
2024
|
+
const { doctorCommand } = await import("./doctor-F4J6LILX.js");
|
|
2021
2025
|
await doctorCommand({
|
|
2022
2026
|
project: getString(input.values, "project"),
|
|
2023
2027
|
reportMonth: getString(input.values, "report-month"),
|
|
@@ -2038,7 +2042,7 @@ var ADS_CLI_COMMANDS = [
|
|
|
2038
2042
|
"api-key": stringOption()
|
|
2039
2043
|
},
|
|
2040
2044
|
run: async (input) => {
|
|
2041
|
-
const { adsConnect } = await import("./ads-
|
|
2045
|
+
const { adsConnect } = await import("./ads-FVPZ6R6Z.js");
|
|
2042
2046
|
const project3 = requireProject(input, "ads.connect", "canonry ads connect <project> --api-key <sdk-key> [--format json]");
|
|
2043
2047
|
await adsConnect(project3, {
|
|
2044
2048
|
apiKey: getString(input.values, "api-key"),
|
|
@@ -2050,7 +2054,7 @@ var ADS_CLI_COMMANDS = [
|
|
|
2050
2054
|
path: ["ads", "disconnect"],
|
|
2051
2055
|
usage: "canonry ads disconnect <project> [--format json]",
|
|
2052
2056
|
run: async (input) => {
|
|
2053
|
-
const { adsDisconnect } = await import("./ads-
|
|
2057
|
+
const { adsDisconnect } = await import("./ads-FVPZ6R6Z.js");
|
|
2054
2058
|
const project3 = requireProject(input, "ads.disconnect", "canonry ads disconnect <project> [--format json]");
|
|
2055
2059
|
await adsDisconnect(project3, { format: input.format });
|
|
2056
2060
|
}
|
|
@@ -2059,7 +2063,7 @@ var ADS_CLI_COMMANDS = [
|
|
|
2059
2063
|
path: ["ads", "status"],
|
|
2060
2064
|
usage: "canonry ads status <project> [--format json]",
|
|
2061
2065
|
run: async (input) => {
|
|
2062
|
-
const { adsStatus } = await import("./ads-
|
|
2066
|
+
const { adsStatus } = await import("./ads-FVPZ6R6Z.js");
|
|
2063
2067
|
const project3 = requireProject(input, "ads.status", "canonry ads status <project> [--format json]");
|
|
2064
2068
|
await adsStatus(project3, { format: input.format });
|
|
2065
2069
|
}
|
|
@@ -2068,7 +2072,7 @@ var ADS_CLI_COMMANDS = [
|
|
|
2068
2072
|
path: ["ads", "account"],
|
|
2069
2073
|
usage: "canonry ads account <project> [--format json]",
|
|
2070
2074
|
run: async (input) => {
|
|
2071
|
-
const { adsAccount } = await import("./ads-
|
|
2075
|
+
const { adsAccount } = await import("./ads-FVPZ6R6Z.js");
|
|
2072
2076
|
const project3 = requireProject(input, "ads.account", "canonry ads account <project> [--format json]");
|
|
2073
2077
|
await adsAccount(project3, { format: input.format });
|
|
2074
2078
|
}
|
|
@@ -2081,7 +2085,7 @@ var ADS_CLI_COMMANDS = [
|
|
|
2081
2085
|
limit: stringOption()
|
|
2082
2086
|
},
|
|
2083
2087
|
run: async (input) => {
|
|
2084
|
-
const { adsGeoSearch } = await import("./ads-
|
|
2088
|
+
const { adsGeoSearch } = await import("./ads-FVPZ6R6Z.js");
|
|
2085
2089
|
const usage = "canonry ads geo search <project> --query <text> [--limit <n>] [--format json|jsonl]";
|
|
2086
2090
|
const project3 = requireProject(input, "ads.geo.search", usage);
|
|
2087
2091
|
await adsGeoSearch(project3, {
|
|
@@ -2099,7 +2103,7 @@ var ADS_CLI_COMMANDS = [
|
|
|
2099
2103
|
path: ["ads", "conversions", "pixels"],
|
|
2100
2104
|
usage: "canonry ads conversions pixels <project> [--format json|jsonl]",
|
|
2101
2105
|
run: async (input) => {
|
|
2102
|
-
const { adsConversionPixels } = await import("./ads-
|
|
2106
|
+
const { adsConversionPixels } = await import("./ads-FVPZ6R6Z.js");
|
|
2103
2107
|
const project3 = requireProject(input, "ads.conversions.pixels", "canonry ads conversions pixels <project> [--format json|jsonl]");
|
|
2104
2108
|
await adsConversionPixels(project3, { format: input.format });
|
|
2105
2109
|
}
|
|
@@ -2108,7 +2112,7 @@ var ADS_CLI_COMMANDS = [
|
|
|
2108
2112
|
path: ["ads", "conversions", "event-settings"],
|
|
2109
2113
|
usage: "canonry ads conversions event-settings <project> [--format json|jsonl]",
|
|
2110
2114
|
run: async (input) => {
|
|
2111
|
-
const { adsConversionEventSettings } = await import("./ads-
|
|
2115
|
+
const { adsConversionEventSettings } = await import("./ads-FVPZ6R6Z.js");
|
|
2112
2116
|
const project3 = requireProject(input, "ads.conversions.event-settings", "canonry ads conversions event-settings <project> [--format json|jsonl]");
|
|
2113
2117
|
await adsConversionEventSettings(project3, { format: input.format });
|
|
2114
2118
|
}
|
|
@@ -2122,7 +2126,7 @@ var ADS_CLI_COMMANDS = [
|
|
|
2122
2126
|
cursor: stringOption()
|
|
2123
2127
|
},
|
|
2124
2128
|
run: async (input) => {
|
|
2125
|
-
const { adsOperationsUnresolved } = await import("./ads-
|
|
2129
|
+
const { adsOperationsUnresolved } = await import("./ads-FVPZ6R6Z.js");
|
|
2126
2130
|
const usage = "canonry ads operations unresolved <project> [--state <csv>] [--limit <n>] [--cursor <opaque>] [--format json|jsonl]";
|
|
2127
2131
|
const project3 = requireProject(
|
|
2128
2132
|
input,
|
|
@@ -2154,7 +2158,7 @@ Usage: ${usage}`, {
|
|
|
2154
2158
|
path: ["ads", "operation"],
|
|
2155
2159
|
usage: "canonry ads operation <project> <operation-key> [--format json]",
|
|
2156
2160
|
run: async (input) => {
|
|
2157
|
-
const { adsOperationGet } = await import("./ads-
|
|
2161
|
+
const { adsOperationGet } = await import("./ads-FVPZ6R6Z.js");
|
|
2158
2162
|
const usage = "canonry ads operation <project> <operation-key> [--format json]";
|
|
2159
2163
|
const project3 = requireProject(input, "ads.operation", usage);
|
|
2160
2164
|
const operationKey = requirePositional(input, 1, {
|
|
@@ -2172,7 +2176,7 @@ Usage: ${usage}`, {
|
|
|
2172
2176
|
"operation-key": stringOption()
|
|
2173
2177
|
},
|
|
2174
2178
|
run: async (input) => {
|
|
2175
|
-
const { adsOperationReconcile } = await import("./ads-
|
|
2179
|
+
const { adsOperationReconcile } = await import("./ads-FVPZ6R6Z.js");
|
|
2176
2180
|
const usage = "canonry ads operation reconcile <project> --operation-key <key> [--format json]";
|
|
2177
2181
|
const project3 = requireProject(input, "ads.operation.reconcile", usage);
|
|
2178
2182
|
const operationKey = requireStringOption(input, "operation-key", {
|
|
@@ -2191,7 +2195,7 @@ Usage: ${usage}`, {
|
|
|
2191
2195
|
usage: "canonry ads operation resume-activation <project> --operation-key <key> [--format json]",
|
|
2192
2196
|
options: { "operation-key": stringOption() },
|
|
2193
2197
|
run: async (input) => {
|
|
2194
|
-
const { adsOperationResumeActivation } = await import("./ads-
|
|
2198
|
+
const { adsOperationResumeActivation } = await import("./ads-FVPZ6R6Z.js");
|
|
2195
2199
|
const usage = "canonry ads operation resume-activation <project> --operation-key <key> [--format json]";
|
|
2196
2200
|
const project3 = requireProject(input, "ads.operation.resume-activation", usage);
|
|
2197
2201
|
await adsOperationResumeActivation(project3, {
|
|
@@ -2209,7 +2213,7 @@ Usage: ${usage}`, {
|
|
|
2209
2213
|
usage: "canonry ads activation-grant create <project> --input <json-file|-> [--format json]",
|
|
2210
2214
|
options: { input: stringOption() },
|
|
2211
2215
|
run: async (input) => {
|
|
2212
|
-
const { adsActivationGrantCreate } = await import("./ads-
|
|
2216
|
+
const { adsActivationGrantCreate } = await import("./ads-FVPZ6R6Z.js");
|
|
2213
2217
|
const usage = "canonry ads activation-grant create <project> --input <json-file|-> [--format json]";
|
|
2214
2218
|
const project3 = requireProject(input, "ads.activation-grant.create", usage);
|
|
2215
2219
|
await adsActivationGrantCreate(project3, {
|
|
@@ -2222,7 +2226,7 @@ Usage: ${usage}`, {
|
|
|
2222
2226
|
path: ["ads", "activation-grant", "revoke"],
|
|
2223
2227
|
usage: "canonry ads activation-grant revoke <project> <grant-id> [--format json]",
|
|
2224
2228
|
run: async (input) => {
|
|
2225
|
-
const { adsActivationGrantRevoke } = await import("./ads-
|
|
2229
|
+
const { adsActivationGrantRevoke } = await import("./ads-FVPZ6R6Z.js");
|
|
2226
2230
|
const usage = "canonry ads activation-grant revoke <project> <grant-id> [--format json]";
|
|
2227
2231
|
const project3 = requireProject(input, "ads.activation-grant.revoke", usage);
|
|
2228
2232
|
const grantId = requirePositional(input, 1, {
|
|
@@ -2238,7 +2242,7 @@ Usage: ${usage}`, {
|
|
|
2238
2242
|
usage: "canonry ads image upload <project> --input <json-file|-> [--format json]",
|
|
2239
2243
|
options: { input: stringOption() },
|
|
2240
2244
|
run: async (input) => {
|
|
2241
|
-
const { adsImageUpload } = await import("./ads-
|
|
2245
|
+
const { adsImageUpload } = await import("./ads-FVPZ6R6Z.js");
|
|
2242
2246
|
const project3 = requireProject(input, "ads.image.upload", "canonry ads image upload <project> --input <json-file|-> [--format json]");
|
|
2243
2247
|
await adsImageUpload(project3, { input: getString(input.values, "input"), format: input.format });
|
|
2244
2248
|
}
|
|
@@ -2248,7 +2252,7 @@ Usage: ${usage}`, {
|
|
|
2248
2252
|
usage: "canonry ads campaign create <project> --input <json-file|-> [--format json]",
|
|
2249
2253
|
options: { input: stringOption() },
|
|
2250
2254
|
run: async (input) => {
|
|
2251
|
-
const { adsCampaignCreate } = await import("./ads-
|
|
2255
|
+
const { adsCampaignCreate } = await import("./ads-FVPZ6R6Z.js");
|
|
2252
2256
|
const project3 = requireProject(input, "ads.campaign.create", "canonry ads campaign create <project> --input <json-file|-> [--format json]");
|
|
2253
2257
|
await adsCampaignCreate(project3, { input: getString(input.values, "input"), format: input.format });
|
|
2254
2258
|
}
|
|
@@ -2258,7 +2262,7 @@ Usage: ${usage}`, {
|
|
|
2258
2262
|
usage: "canonry ads campaign update <project> <campaign-id> --input <json-file|-> [--format json]",
|
|
2259
2263
|
options: { input: stringOption() },
|
|
2260
2264
|
run: async (input) => {
|
|
2261
|
-
const { adsCampaignUpdate } = await import("./ads-
|
|
2265
|
+
const { adsCampaignUpdate } = await import("./ads-FVPZ6R6Z.js");
|
|
2262
2266
|
const usage = "canonry ads campaign update <project> <campaign-id> --input <json-file|-> [--format json]";
|
|
2263
2267
|
const project3 = requireProject(input, "ads.campaign.update", usage);
|
|
2264
2268
|
const id2 = requirePositional(input, 1, { command: "ads.campaign.update", usage, message: "campaign id is required" });
|
|
@@ -2270,7 +2274,7 @@ Usage: ${usage}`, {
|
|
|
2270
2274
|
usage: "canonry ads campaign activate-tree <project> <campaign-id> --input <json-file|-> [--format json]",
|
|
2271
2275
|
options: { input: stringOption() },
|
|
2272
2276
|
run: async (input) => {
|
|
2273
|
-
const { adsCampaignActivateTree } = await import("./ads-
|
|
2277
|
+
const { adsCampaignActivateTree } = await import("./ads-FVPZ6R6Z.js");
|
|
2274
2278
|
const usage = "canonry ads campaign activate-tree <project> <campaign-id> --input <json-file|-> [--format json]";
|
|
2275
2279
|
const project3 = requireProject(input, "ads.campaign.activate-tree", usage);
|
|
2276
2280
|
const id2 = requirePositional(input, 1, {
|
|
@@ -2289,7 +2293,7 @@ Usage: ${usage}`, {
|
|
|
2289
2293
|
usage: "canonry ads campaign pause <project> <campaign-id> --input <json-file|-> [--format json]",
|
|
2290
2294
|
options: { input: stringOption() },
|
|
2291
2295
|
run: async (input) => {
|
|
2292
|
-
const { adsCampaignPause } = await import("./ads-
|
|
2296
|
+
const { adsCampaignPause } = await import("./ads-FVPZ6R6Z.js");
|
|
2293
2297
|
const usage = "canonry ads campaign pause <project> <campaign-id> --input <json-file|-> [--format json]";
|
|
2294
2298
|
const project3 = requireProject(input, "ads.campaign.pause", usage);
|
|
2295
2299
|
const id2 = requirePositional(input, 1, { command: "ads.campaign.pause", usage, message: "campaign id is required" });
|
|
@@ -2301,7 +2305,7 @@ Usage: ${usage}`, {
|
|
|
2301
2305
|
usage: "canonry ads ad-group create <project> --input <json-file|-> [--format json]",
|
|
2302
2306
|
options: { input: stringOption() },
|
|
2303
2307
|
run: async (input) => {
|
|
2304
|
-
const { adsAdGroupCreate } = await import("./ads-
|
|
2308
|
+
const { adsAdGroupCreate } = await import("./ads-FVPZ6R6Z.js");
|
|
2305
2309
|
const project3 = requireProject(input, "ads.ad-group.create", "canonry ads ad-group create <project> --input <json-file|-> [--format json]");
|
|
2306
2310
|
await adsAdGroupCreate(project3, { input: getString(input.values, "input"), format: input.format });
|
|
2307
2311
|
}
|
|
@@ -2311,7 +2315,7 @@ Usage: ${usage}`, {
|
|
|
2311
2315
|
usage: "canonry ads ad-group update <project> <ad-group-id> --input <json-file|-> [--format json]",
|
|
2312
2316
|
options: { input: stringOption() },
|
|
2313
2317
|
run: async (input) => {
|
|
2314
|
-
const { adsAdGroupUpdate } = await import("./ads-
|
|
2318
|
+
const { adsAdGroupUpdate } = await import("./ads-FVPZ6R6Z.js");
|
|
2315
2319
|
const usage = "canonry ads ad-group update <project> <ad-group-id> --input <json-file|-> [--format json]";
|
|
2316
2320
|
const project3 = requireProject(input, "ads.ad-group.update", usage);
|
|
2317
2321
|
const id2 = requirePositional(input, 1, { command: "ads.ad-group.update", usage, message: "ad group id is required" });
|
|
@@ -2323,7 +2327,7 @@ Usage: ${usage}`, {
|
|
|
2323
2327
|
usage: "canonry ads ad-group pause <project> <ad-group-id> --input <json-file|-> [--format json]",
|
|
2324
2328
|
options: { input: stringOption() },
|
|
2325
2329
|
run: async (input) => {
|
|
2326
|
-
const { adsAdGroupPause } = await import("./ads-
|
|
2330
|
+
const { adsAdGroupPause } = await import("./ads-FVPZ6R6Z.js");
|
|
2327
2331
|
const usage = "canonry ads ad-group pause <project> <ad-group-id> --input <json-file|-> [--format json]";
|
|
2328
2332
|
const project3 = requireProject(input, "ads.ad-group.pause", usage);
|
|
2329
2333
|
const id2 = requirePositional(input, 1, { command: "ads.ad-group.pause", usage, message: "ad group id is required" });
|
|
@@ -2335,7 +2339,7 @@ Usage: ${usage}`, {
|
|
|
2335
2339
|
usage: "canonry ads ad create <project> --input <json-file|-> [--format json]",
|
|
2336
2340
|
options: { input: stringOption() },
|
|
2337
2341
|
run: async (input) => {
|
|
2338
|
-
const { adsAdCreate } = await import("./ads-
|
|
2342
|
+
const { adsAdCreate } = await import("./ads-FVPZ6R6Z.js");
|
|
2339
2343
|
const project3 = requireProject(input, "ads.ad.create", "canonry ads ad create <project> --input <json-file|-> [--format json]");
|
|
2340
2344
|
await adsAdCreate(project3, { input: getString(input.values, "input"), format: input.format });
|
|
2341
2345
|
}
|
|
@@ -2345,7 +2349,7 @@ Usage: ${usage}`, {
|
|
|
2345
2349
|
usage: "canonry ads ad update <project> <ad-id> --input <json-file|-> [--format json]",
|
|
2346
2350
|
options: { input: stringOption() },
|
|
2347
2351
|
run: async (input) => {
|
|
2348
|
-
const { adsAdUpdate } = await import("./ads-
|
|
2352
|
+
const { adsAdUpdate } = await import("./ads-FVPZ6R6Z.js");
|
|
2349
2353
|
const usage = "canonry ads ad update <project> <ad-id> --input <json-file|-> [--format json]";
|
|
2350
2354
|
const project3 = requireProject(input, "ads.ad.update", usage);
|
|
2351
2355
|
const id2 = requirePositional(input, 1, { command: "ads.ad.update", usage, message: "ad id is required" });
|
|
@@ -2357,7 +2361,7 @@ Usage: ${usage}`, {
|
|
|
2357
2361
|
usage: "canonry ads ad pause <project> <ad-id> --input <json-file|-> [--format json]",
|
|
2358
2362
|
options: { input: stringOption() },
|
|
2359
2363
|
run: async (input) => {
|
|
2360
|
-
const { adsAdPause } = await import("./ads-
|
|
2364
|
+
const { adsAdPause } = await import("./ads-FVPZ6R6Z.js");
|
|
2361
2365
|
const usage = "canonry ads ad pause <project> <ad-id> --input <json-file|-> [--format json]";
|
|
2362
2366
|
const project3 = requireProject(input, "ads.ad.pause", usage);
|
|
2363
2367
|
const id2 = requirePositional(input, 1, { command: "ads.ad.pause", usage, message: "ad id is required" });
|
|
@@ -2368,7 +2372,7 @@ Usage: ${usage}`, {
|
|
|
2368
2372
|
path: ["ads", "sync"],
|
|
2369
2373
|
usage: "canonry ads sync <project> [--format json]",
|
|
2370
2374
|
run: async (input) => {
|
|
2371
|
-
const { adsSync } = await import("./ads-
|
|
2375
|
+
const { adsSync } = await import("./ads-FVPZ6R6Z.js");
|
|
2372
2376
|
const project3 = requireProject(input, "ads.sync", "canonry ads sync <project> [--format json]");
|
|
2373
2377
|
await adsSync(project3, { format: input.format });
|
|
2374
2378
|
}
|
|
@@ -2377,7 +2381,7 @@ Usage: ${usage}`, {
|
|
|
2377
2381
|
path: ["ads", "campaigns"],
|
|
2378
2382
|
usage: "canonry ads campaigns <project> [--format json|jsonl]",
|
|
2379
2383
|
run: async (input) => {
|
|
2380
|
-
const { adsCampaigns } = await import("./ads-
|
|
2384
|
+
const { adsCampaigns } = await import("./ads-FVPZ6R6Z.js");
|
|
2381
2385
|
const project3 = requireProject(input, "ads.campaigns", "canonry ads campaigns <project> [--format json|jsonl]");
|
|
2382
2386
|
await adsCampaigns(project3, { format: input.format });
|
|
2383
2387
|
}
|
|
@@ -2393,7 +2397,7 @@ Usage: ${usage}`, {
|
|
|
2393
2397
|
to: stringOption()
|
|
2394
2398
|
},
|
|
2395
2399
|
run: async (input) => {
|
|
2396
|
-
const { adsInsights } = await import("./ads-
|
|
2400
|
+
const { adsInsights } = await import("./ads-FVPZ6R6Z.js");
|
|
2397
2401
|
const project3 = requireProject(input, "ads.insights", "canonry ads insights <project> [--level <level>] [--entity <id>] [--from <date>] [--to <date>] [--format json|jsonl]");
|
|
2398
2402
|
await adsInsights(project3, {
|
|
2399
2403
|
level: getString(input.values, "level"),
|
|
@@ -2408,7 +2412,7 @@ Usage: ${usage}`, {
|
|
|
2408
2412
|
path: ["ads", "summary"],
|
|
2409
2413
|
usage: "canonry ads summary <project> [--format json]",
|
|
2410
2414
|
run: async (input) => {
|
|
2411
|
-
const { adsSummary } = await import("./ads-
|
|
2415
|
+
const { adsSummary } = await import("./ads-FVPZ6R6Z.js");
|
|
2412
2416
|
const project3 = requireProject(input, "ads.summary", "canonry ads summary <project> [--format json]");
|
|
2413
2417
|
await adsSummary(project3, { format: input.format });
|
|
2414
2418
|
}
|
|
@@ -2421,7 +2425,7 @@ Usage: ${usage}`, {
|
|
|
2421
2425
|
"lookback-days": stringOption()
|
|
2422
2426
|
},
|
|
2423
2427
|
run: async (input) => {
|
|
2424
|
-
const { adsLiveDelivery } = await import("./ads-
|
|
2428
|
+
const { adsLiveDelivery } = await import("./ads-FVPZ6R6Z.js");
|
|
2425
2429
|
const usage = "canonry ads live-delivery <project> [--campaign <id>] [--lookback-days <n>] [--format json]";
|
|
2426
2430
|
const project3 = requireProject(input, "ads.live-delivery", usage);
|
|
2427
2431
|
await adsLiveDelivery(project3, {
|
|
@@ -2439,7 +2443,7 @@ Usage: ${usage}`, {
|
|
|
2439
2443
|
path: ["ads", "delivery-diagnostics"],
|
|
2440
2444
|
usage: "canonry ads delivery-diagnostics <project> [--format json]",
|
|
2441
2445
|
run: async (input) => {
|
|
2442
|
-
const { adsDeliveryDiagnostics } = await import("./ads-
|
|
2446
|
+
const { adsDeliveryDiagnostics } = await import("./ads-FVPZ6R6Z.js");
|
|
2443
2447
|
const project3 = requireProject(input, "ads.delivery-diagnostics", "canonry ads delivery-diagnostics <project> [--format json]");
|
|
2444
2448
|
await adsDeliveryDiagnostics(project3, { format: input.format });
|
|
2445
2449
|
}
|
|
@@ -2468,7 +2472,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2468
2472
|
help: "Stored GA4 sessions only, with filtered totals independent of grouping and paging. Never calls Google. Meaningful page query parameters remain distinct.",
|
|
2469
2473
|
options: { ...RANGE_OPTIONS, channel: stringOption(), source: stringOption(), medium: stringOption(), host: stringOption(), "landing-page": stringOption(), "path-prefix": stringOption(), "group-by": stringOption(), limit: stringOption(), offset: stringOption() },
|
|
2470
2474
|
run: async (input) => {
|
|
2471
|
-
const { gaAcquisition } = await import("./ga-
|
|
2475
|
+
const { gaAcquisition } = await import("./ga-VA6FYK4L.js");
|
|
2472
2476
|
const project3 = requireProject(input, "ga.acquisition", "canonry ga acquisition <project>");
|
|
2473
2477
|
const aliases = { channel: "channelGroup", host: "hostName", "landing-page": "landingPage" };
|
|
2474
2478
|
const groupBy = getString(input.values, "group-by")?.split(",").map((key) => aliases[key.trim()] ?? key.trim()).join(",");
|
|
@@ -2485,7 +2489,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2485
2489
|
"key-json": stringOption()
|
|
2486
2490
|
},
|
|
2487
2491
|
run: async (input) => {
|
|
2488
|
-
const { gaConnect } = await import("./ga-
|
|
2492
|
+
const { gaConnect } = await import("./ga-VA6FYK4L.js");
|
|
2489
2493
|
const project3 = requireProject(input, "ga.connect", "canonry ga connect <project> --property-id <id> [--key-file <path>]");
|
|
2490
2494
|
const propertyId = getString(input.values, "property-id");
|
|
2491
2495
|
if (!propertyId) {
|
|
@@ -2503,7 +2507,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2503
2507
|
path: ["ga", "disconnect"],
|
|
2504
2508
|
usage: "canonry ga disconnect <project> [--format json]",
|
|
2505
2509
|
run: async (input) => {
|
|
2506
|
-
const { gaDisconnect } = await import("./ga-
|
|
2510
|
+
const { gaDisconnect } = await import("./ga-VA6FYK4L.js");
|
|
2507
2511
|
const project3 = requireProject(input, "ga.disconnect", "canonry ga disconnect <project> [--format json]");
|
|
2508
2512
|
await gaDisconnect(project3, input.format);
|
|
2509
2513
|
}
|
|
@@ -2512,7 +2516,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2512
2516
|
path: ["ga", "properties"],
|
|
2513
2517
|
usage: "canonry ga properties <project> [--format json]",
|
|
2514
2518
|
run: async (input) => {
|
|
2515
|
-
const { gaProperties } = await import("./ga-
|
|
2519
|
+
const { gaProperties } = await import("./ga-VA6FYK4L.js");
|
|
2516
2520
|
const project3 = requireProject(input, "ga.properties", "canonry ga properties <project> [--format json]");
|
|
2517
2521
|
await gaProperties(project3, input.format);
|
|
2518
2522
|
}
|
|
@@ -2521,7 +2525,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2521
2525
|
path: ["ga", "status"],
|
|
2522
2526
|
usage: "canonry ga status <project> [--format json]",
|
|
2523
2527
|
run: async (input) => {
|
|
2524
|
-
const { gaStatus } = await import("./ga-
|
|
2528
|
+
const { gaStatus } = await import("./ga-VA6FYK4L.js");
|
|
2525
2529
|
const project3 = requireProject(input, "ga.status", "canonry ga status <project> [--format json]");
|
|
2526
2530
|
await gaStatus(project3, input.format);
|
|
2527
2531
|
}
|
|
@@ -2534,7 +2538,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2534
2538
|
only: stringOption()
|
|
2535
2539
|
},
|
|
2536
2540
|
run: async (input) => {
|
|
2537
|
-
const { gaSync } = await import("./ga-
|
|
2541
|
+
const { gaSync } = await import("./ga-VA6FYK4L.js");
|
|
2538
2542
|
const project3 = requireProject(input, "ga.sync", "canonry ga sync <project> [--days 30] [--only traffic|ai|social|search-landing] [--format json]");
|
|
2539
2543
|
const daysStr = getString(input.values, "days");
|
|
2540
2544
|
const days = daysStr ? parseInt(daysStr, 10) : void 0;
|
|
@@ -2557,7 +2561,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2557
2561
|
limit: stringOption()
|
|
2558
2562
|
},
|
|
2559
2563
|
run: async (input) => {
|
|
2560
|
-
const { gaMeasurementAnalysis } = await import("./ga-
|
|
2564
|
+
const { gaMeasurementAnalysis } = await import("./ga-VA6FYK4L.js");
|
|
2561
2565
|
const project3 = requireProject(input, "ga.measurement-analysis", "canonry ga measurement-analysis <project> [--window 30d|60d|90d] [--format json]");
|
|
2562
2566
|
const limitValue = getString(input.values, "limit");
|
|
2563
2567
|
await gaMeasurementAnalysis(project3, {
|
|
@@ -2579,7 +2583,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2579
2583
|
offset: stringOption()
|
|
2580
2584
|
},
|
|
2581
2585
|
run: async (input) => {
|
|
2582
|
-
const { gaSearchLandingPages } = await import("./ga-
|
|
2586
|
+
const { gaSearchLandingPages } = await import("./ga-VA6FYK4L.js");
|
|
2583
2587
|
const project3 = requireProject(input, "ga.search-landing-pages", "canonry ga search-landing-pages <project> [--window 7d|28d|90d|180d] [--limit 50] [--offset 0] [--format json|jsonl]");
|
|
2584
2588
|
await gaSearchLandingPages(project3, {
|
|
2585
2589
|
window: getString(input.values, "window"),
|
|
@@ -2598,7 +2602,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2598
2602
|
...RANGE_OPTIONS
|
|
2599
2603
|
},
|
|
2600
2604
|
run: async (input) => {
|
|
2601
|
-
const { gaTraffic } = await import("./ga-
|
|
2605
|
+
const { gaTraffic } = await import("./ga-VA6FYK4L.js");
|
|
2602
2606
|
const project3 = requireProject(input, "ga.traffic", `canonry ga traffic <project> [--limit 50] ${RANGE_USAGE} [--format json]`);
|
|
2603
2607
|
const limitStr = getString(input.values, "limit");
|
|
2604
2608
|
const limit = limitStr ? parseInt(limitStr, 10) : void 0;
|
|
@@ -2613,7 +2617,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2613
2617
|
path: ["ga", "coverage"],
|
|
2614
2618
|
usage: "canonry ga coverage <project> [--format json]",
|
|
2615
2619
|
run: async (input) => {
|
|
2616
|
-
const { gaCoverage } = await import("./ga-
|
|
2620
|
+
const { gaCoverage } = await import("./ga-VA6FYK4L.js");
|
|
2617
2621
|
const project3 = requireProject(input, "ga.coverage", "canonry ga coverage <project> [--format json]");
|
|
2618
2622
|
await gaCoverage(project3, input.format);
|
|
2619
2623
|
}
|
|
@@ -2624,7 +2628,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2624
2628
|
usage: `canonry ga ai-referral-history <project> ${RANGE_USAGE} [--format json]`,
|
|
2625
2629
|
options: { ...RANGE_OPTIONS },
|
|
2626
2630
|
run: async (input) => {
|
|
2627
|
-
const { gaAiReferralHistory } = await import("./ga-
|
|
2631
|
+
const { gaAiReferralHistory } = await import("./ga-VA6FYK4L.js");
|
|
2628
2632
|
const project3 = requireProject(input, "ga.ai-referral-history", `canonry ga ai-referral-history <project> ${RANGE_USAGE} [--format json]`);
|
|
2629
2633
|
await gaAiReferralHistory(project3, {
|
|
2630
2634
|
...rangeValues(input.values),
|
|
@@ -2638,7 +2642,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2638
2642
|
usage: `canonry ga ai-referral-daily <project> ${RANGE_USAGE} [--format json]`,
|
|
2639
2643
|
options: { ...RANGE_OPTIONS },
|
|
2640
2644
|
run: async (input) => {
|
|
2641
|
-
const { gaAiReferralDaily } = await import("./ga-
|
|
2645
|
+
const { gaAiReferralDaily } = await import("./ga-VA6FYK4L.js");
|
|
2642
2646
|
const project3 = requireProject(input, "ga.ai-referral-daily", `canonry ga ai-referral-daily <project> ${RANGE_USAGE} [--format json]`);
|
|
2643
2647
|
await gaAiReferralDaily(project3, {
|
|
2644
2648
|
...rangeValues(input.values),
|
|
@@ -2652,7 +2656,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2652
2656
|
usage: `canonry ga social-referral-history <project> ${RANGE_USAGE} [--format json]`,
|
|
2653
2657
|
options: { ...RANGE_OPTIONS },
|
|
2654
2658
|
run: async (input) => {
|
|
2655
|
-
const { gaSocialReferralHistory } = await import("./ga-
|
|
2659
|
+
const { gaSocialReferralHistory } = await import("./ga-VA6FYK4L.js");
|
|
2656
2660
|
const project3 = requireProject(input, "ga.social-referral-history", `canonry ga social-referral-history <project> ${RANGE_USAGE} [--format json]`);
|
|
2657
2661
|
await gaSocialReferralHistory(project3, {
|
|
2658
2662
|
...rangeValues(input.values),
|
|
@@ -2665,7 +2669,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2665
2669
|
windows: WINDOW_SETS.gaOverview,
|
|
2666
2670
|
usage: "canonry ga overview <project> [--window 7d|30d|90d|180d] [--format json]",
|
|
2667
2671
|
run: async (input) => {
|
|
2668
|
-
const { gaOverview } = await import("./ga-
|
|
2672
|
+
const { gaOverview } = await import("./ga-VA6FYK4L.js");
|
|
2669
2673
|
const project3 = requireProject(input, "ga.overview", "canonry ga overview <project> [--window 7d|30d|90d|180d] [--format json]");
|
|
2670
2674
|
await gaOverview(project3, {
|
|
2671
2675
|
window: typeof input.values.window === "string" ? input.values.window : void 0,
|
|
@@ -2679,7 +2683,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2679
2683
|
usage: `canonry ga session-history <project> ${RANGE_USAGE} [--format json]`,
|
|
2680
2684
|
options: { ...RANGE_OPTIONS },
|
|
2681
2685
|
run: async (input) => {
|
|
2682
|
-
const { gaSessionHistory } = await import("./ga-
|
|
2686
|
+
const { gaSessionHistory } = await import("./ga-VA6FYK4L.js");
|
|
2683
2687
|
const project3 = requireProject(input, "ga.session-history", `canonry ga session-history <project> ${RANGE_USAGE} [--format json]`);
|
|
2684
2688
|
await gaSessionHistory(project3, {
|
|
2685
2689
|
...rangeValues(input.values),
|
|
@@ -2694,7 +2698,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2694
2698
|
trend: { type: "boolean", default: false }
|
|
2695
2699
|
},
|
|
2696
2700
|
run: async (input) => {
|
|
2697
|
-
const { gaSocialReferralSummary } = await import("./ga-
|
|
2701
|
+
const { gaSocialReferralSummary } = await import("./ga-VA6FYK4L.js");
|
|
2698
2702
|
const project3 = requireProject(input, "ga.social-referral-summary", "canonry ga social-referral-summary <project> [--trend] [--format json]");
|
|
2699
2703
|
await gaSocialReferralSummary(project3, {
|
|
2700
2704
|
trend: input.values.trend === true,
|
|
@@ -2709,7 +2713,7 @@ var GA_CLI_COMMANDS = [
|
|
|
2709
2713
|
trend: { type: "boolean", default: false }
|
|
2710
2714
|
},
|
|
2711
2715
|
run: async (input) => {
|
|
2712
|
-
const { gaAttribution } = await import("./ga-
|
|
2716
|
+
const { gaAttribution } = await import("./ga-VA6FYK4L.js");
|
|
2713
2717
|
const project3 = requireProject(input, "ga.attribution", "canonry ga attribution <project> [--trend] [--format json]");
|
|
2714
2718
|
await gaAttribution(project3, {
|
|
2715
2719
|
trend: input.values.trend === true,
|
|
@@ -2738,7 +2742,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2738
2742
|
usage: "canonry gbp posts attempt <project> --attempt UUID --package SHA256 [--format json]",
|
|
2739
2743
|
options: { attempt: stringOption(), package: stringOption() },
|
|
2740
2744
|
run: async (input) => {
|
|
2741
|
-
const { gbpLocalPosts } = await import("./gbp-
|
|
2745
|
+
const { gbpLocalPosts } = await import("./gbp-DI6ZVFHL.js");
|
|
2742
2746
|
await gbpLocalPosts(requireProject(input, "gbp.posts.attempt", "canonry gbp posts attempt <project>"), "attempt", { attempt: getString(input.values, "attempt"), package: getString(input.values, "package") });
|
|
2743
2747
|
}
|
|
2744
2748
|
},
|
|
@@ -2748,7 +2752,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2748
2752
|
usage: "canonry gbp posts list <project> --account accounts/id --location locations/id [--page-token token] [--format json]",
|
|
2749
2753
|
options: { account: stringOption(), location: stringOption(), "page-token": stringOption() },
|
|
2750
2754
|
run: async (input) => {
|
|
2751
|
-
const { gbpLocalPosts } = await import("./gbp-
|
|
2755
|
+
const { gbpLocalPosts } = await import("./gbp-DI6ZVFHL.js");
|
|
2752
2756
|
await gbpLocalPosts(requireProject(input, "gbp.posts.list", "canonry gbp posts list <project>"), "list", { account: getString(input.values, "account"), location: getString(input.values, "location"), pageToken: getString(input.values, "page-token") });
|
|
2753
2757
|
}
|
|
2754
2758
|
},
|
|
@@ -2758,7 +2762,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2758
2762
|
usage: "canonry gbp posts get <project> --post resource [--format json]",
|
|
2759
2763
|
options: { post: stringOption() },
|
|
2760
2764
|
run: async (input) => {
|
|
2761
|
-
const { gbpLocalPosts } = await import("./gbp-
|
|
2765
|
+
const { gbpLocalPosts } = await import("./gbp-DI6ZVFHL.js");
|
|
2762
2766
|
await gbpLocalPosts(requireProject(input, "gbp.posts.get", "canonry gbp posts get <project>"), "get", { post: getString(input.values, "post") });
|
|
2763
2767
|
}
|
|
2764
2768
|
},
|
|
@@ -2768,7 +2772,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2768
2772
|
usage: "canonry gbp posts create <project> --request file [--format json]",
|
|
2769
2773
|
options: { request: stringOption() },
|
|
2770
2774
|
run: async (input) => {
|
|
2771
|
-
const { gbpLocalPosts } = await import("./gbp-
|
|
2775
|
+
const { gbpLocalPosts } = await import("./gbp-DI6ZVFHL.js");
|
|
2772
2776
|
await gbpLocalPosts(requireProject(input, "gbp.posts.create", "canonry gbp posts create <project>"), "create", { request: getString(input.values, "request") });
|
|
2773
2777
|
}
|
|
2774
2778
|
},
|
|
@@ -2778,7 +2782,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2778
2782
|
usage: "canonry gbp reviews live <project> --account accounts/id --location locations/id [--format json]",
|
|
2779
2783
|
options: { account: stringOption(), location: stringOption() },
|
|
2780
2784
|
run: async (input) => {
|
|
2781
|
-
const { gbpLocalPosts } = await import("./gbp-
|
|
2785
|
+
const { gbpLocalPosts } = await import("./gbp-DI6ZVFHL.js");
|
|
2782
2786
|
await gbpLocalPosts(requireProject(input, "gbp.reviews.live", "canonry gbp reviews live <project>"), "reviews", { account: getString(input.values, "account"), location: getString(input.values, "location") });
|
|
2783
2787
|
}
|
|
2784
2788
|
},
|
|
@@ -2789,7 +2793,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2789
2793
|
"public-url": stringOption()
|
|
2790
2794
|
},
|
|
2791
2795
|
run: async (input) => {
|
|
2792
|
-
const { gbpConnect } = await import("./gbp-
|
|
2796
|
+
const { gbpConnect } = await import("./gbp-DI6ZVFHL.js");
|
|
2793
2797
|
const project3 = requireProject(input, "gbp.connect", "canonry gbp connect <project> [--public-url <url>] [--format json]");
|
|
2794
2798
|
await gbpConnect(project3, {
|
|
2795
2799
|
publicUrl: getString(input.values, "public-url"),
|
|
@@ -2801,7 +2805,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2801
2805
|
path: ["gbp", "disconnect"],
|
|
2802
2806
|
usage: "canonry gbp disconnect <project> [--format json]",
|
|
2803
2807
|
run: async (input) => {
|
|
2804
|
-
const { gbpDisconnect } = await import("./gbp-
|
|
2808
|
+
const { gbpDisconnect } = await import("./gbp-DI6ZVFHL.js");
|
|
2805
2809
|
const project3 = requireProject(input, "gbp.disconnect", "canonry gbp disconnect <project> [--format json]");
|
|
2806
2810
|
await gbpDisconnect(project3, { format: input.format });
|
|
2807
2811
|
}
|
|
@@ -2813,7 +2817,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2813
2817
|
"selected-only": { type: "boolean" }
|
|
2814
2818
|
},
|
|
2815
2819
|
run: async (input) => {
|
|
2816
|
-
const { gbpLocationsList } = await import("./gbp-
|
|
2820
|
+
const { gbpLocationsList } = await import("./gbp-DI6ZVFHL.js");
|
|
2817
2821
|
const project3 = requireProject(input, "gbp.locations", "canonry gbp locations <project> [--selected-only] [--format json]");
|
|
2818
2822
|
await gbpLocationsList(project3, {
|
|
2819
2823
|
format: input.format,
|
|
@@ -2825,7 +2829,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2825
2829
|
path: ["gbp", "accounts"],
|
|
2826
2830
|
usage: "canonry gbp accounts <project> [--format json]",
|
|
2827
2831
|
run: async (input) => {
|
|
2828
|
-
const { gbpAccounts } = await import("./gbp-
|
|
2832
|
+
const { gbpAccounts } = await import("./gbp-DI6ZVFHL.js");
|
|
2829
2833
|
const project3 = requireProject(input, "gbp.accounts", "canonry gbp accounts <project> [--format json]");
|
|
2830
2834
|
await gbpAccounts(project3, { format: input.format });
|
|
2831
2835
|
}
|
|
@@ -2839,7 +2843,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2839
2843
|
"switch-account": { type: "boolean" }
|
|
2840
2844
|
},
|
|
2841
2845
|
run: async (input) => {
|
|
2842
|
-
const { gbpLocationsDiscover } = await import("./gbp-
|
|
2846
|
+
const { gbpLocationsDiscover } = await import("./gbp-DI6ZVFHL.js");
|
|
2843
2847
|
const project3 = requireProject(input, "gbp.locations.discover", "canonry gbp locations discover <project> [--account <accounts/{n}>] [--switch-account] [--no-select-new] [--format json]");
|
|
2844
2848
|
const noSelectNew = getBoolean(input.values, "no-select-new") ?? false;
|
|
2845
2849
|
await gbpLocationsDiscover(project3, {
|
|
@@ -2857,7 +2861,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2857
2861
|
location: stringOption()
|
|
2858
2862
|
},
|
|
2859
2863
|
run: async (input) => {
|
|
2860
|
-
const { gbpLocationSelect } = await import("./gbp-
|
|
2864
|
+
const { gbpLocationSelect } = await import("./gbp-DI6ZVFHL.js");
|
|
2861
2865
|
const project3 = requireProject(input, "gbp.locations.select", "canonry gbp locations select <project> --location <name> [--format json]");
|
|
2862
2866
|
const location = getString(input.values, "location");
|
|
2863
2867
|
if (!location) throw usageError("canonry gbp locations select <project> --location <locations/{n}>: --location is required");
|
|
@@ -2871,7 +2875,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2871
2875
|
location: stringOption()
|
|
2872
2876
|
},
|
|
2873
2877
|
run: async (input) => {
|
|
2874
|
-
const { gbpLocationDeselect } = await import("./gbp-
|
|
2878
|
+
const { gbpLocationDeselect } = await import("./gbp-DI6ZVFHL.js");
|
|
2875
2879
|
const project3 = requireProject(input, "gbp.locations.deselect", "canonry gbp locations deselect <project> --location <name> [--format json]");
|
|
2876
2880
|
const location = getString(input.values, "location");
|
|
2877
2881
|
if (!location) throw usageError("canonry gbp locations deselect <project> --location <locations/{n}>: --location is required");
|
|
@@ -2888,7 +2892,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2888
2892
|
wait: { type: "boolean" }
|
|
2889
2893
|
},
|
|
2890
2894
|
run: async (input) => {
|
|
2891
|
-
const { gbpSync } = await import("./gbp-
|
|
2895
|
+
const { gbpSync } = await import("./gbp-DI6ZVFHL.js");
|
|
2892
2896
|
const project3 = requireProject(input, "gbp.sync", "canonry gbp sync <project> [--location <name>] [--days N] [--months N] [--wait] [--format json]");
|
|
2893
2897
|
await gbpSync(project3, {
|
|
2894
2898
|
location: getString(input.values, "location"),
|
|
@@ -2907,7 +2911,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2907
2911
|
metric: stringOption()
|
|
2908
2912
|
},
|
|
2909
2913
|
run: async (input) => {
|
|
2910
|
-
const { gbpMetrics } = await import("./gbp-
|
|
2914
|
+
const { gbpMetrics } = await import("./gbp-DI6ZVFHL.js");
|
|
2911
2915
|
const project3 = requireProject(input, "gbp.metrics", "canonry gbp metrics <project> [--location <name>] [--metric <DailyMetric>] [--format json]");
|
|
2912
2916
|
await gbpMetrics(project3, {
|
|
2913
2917
|
location: getString(input.values, "location"),
|
|
@@ -2923,7 +2927,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2923
2927
|
location: stringOption()
|
|
2924
2928
|
},
|
|
2925
2929
|
run: async (input) => {
|
|
2926
|
-
const { gbpKeywords } = await import("./gbp-
|
|
2930
|
+
const { gbpKeywords } = await import("./gbp-DI6ZVFHL.js");
|
|
2927
2931
|
const project3 = requireProject(input, "gbp.keywords", "canonry gbp keywords <project> [--location <name>] [--format json]");
|
|
2928
2932
|
await gbpKeywords(project3, {
|
|
2929
2933
|
location: getString(input.values, "location"),
|
|
@@ -2938,7 +2942,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2938
2942
|
location: stringOption()
|
|
2939
2943
|
},
|
|
2940
2944
|
run: async (input) => {
|
|
2941
|
-
const { gbpPlaceActions } = await import("./gbp-
|
|
2945
|
+
const { gbpPlaceActions } = await import("./gbp-DI6ZVFHL.js");
|
|
2942
2946
|
const project3 = requireProject(input, "gbp.place-actions", "canonry gbp place-actions <project> [--location <name>] [--format json]");
|
|
2943
2947
|
await gbpPlaceActions(project3, { location: getString(input.values, "location"), format: input.format });
|
|
2944
2948
|
}
|
|
@@ -2950,7 +2954,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2950
2954
|
location: stringOption()
|
|
2951
2955
|
},
|
|
2952
2956
|
run: async (input) => {
|
|
2953
|
-
const { gbpLodging } = await import("./gbp-
|
|
2957
|
+
const { gbpLodging } = await import("./gbp-DI6ZVFHL.js");
|
|
2954
2958
|
const project3 = requireProject(input, "gbp.lodging", "canonry gbp lodging <project> [--location <name>] [--format json]");
|
|
2955
2959
|
await gbpLodging(project3, { location: getString(input.values, "location"), format: input.format });
|
|
2956
2960
|
}
|
|
@@ -2962,7 +2966,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2962
2966
|
location: stringOption()
|
|
2963
2967
|
},
|
|
2964
2968
|
run: async (input) => {
|
|
2965
|
-
const { gbpAttributes } = await import("./gbp-
|
|
2969
|
+
const { gbpAttributes } = await import("./gbp-DI6ZVFHL.js");
|
|
2966
2970
|
const project3 = requireProject(input, "gbp.attributes", "canonry gbp attributes <project> [--location <name>] [--format json]");
|
|
2967
2971
|
await gbpAttributes(project3, { location: getString(input.values, "location"), format: input.format });
|
|
2968
2972
|
}
|
|
@@ -2974,7 +2978,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2974
2978
|
location: stringOption()
|
|
2975
2979
|
},
|
|
2976
2980
|
run: async (input) => {
|
|
2977
|
-
const { gbpPlaces } = await import("./gbp-
|
|
2981
|
+
const { gbpPlaces } = await import("./gbp-DI6ZVFHL.js");
|
|
2978
2982
|
const project3 = requireProject(input, "gbp.places", "canonry gbp places <project> [--location <name>] [--format json]");
|
|
2979
2983
|
await gbpPlaces(project3, { location: getString(input.values, "location"), format: input.format });
|
|
2980
2984
|
}
|
|
@@ -2988,7 +2992,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
2988
2992
|
limit: stringOption()
|
|
2989
2993
|
},
|
|
2990
2994
|
run: async (input) => {
|
|
2991
|
-
const { gbpReviews } = await import("./gbp-
|
|
2995
|
+
const { gbpReviews } = await import("./gbp-DI6ZVFHL.js");
|
|
2992
2996
|
const usage = "canonry gbp reviews <project> [--location <name>] [--negative] [--limit N] [--format json]";
|
|
2993
2997
|
const project3 = requireProject(input, "gbp.reviews", usage);
|
|
2994
2998
|
await gbpReviews(project3, {
|
|
@@ -3006,7 +3010,7 @@ var GBP_CLI_COMMANDS = [
|
|
|
3006
3010
|
location: stringOption()
|
|
3007
3011
|
},
|
|
3008
3012
|
run: async (input) => {
|
|
3009
|
-
const { gbpSummary } = await import("./gbp-
|
|
3013
|
+
const { gbpSummary } = await import("./gbp-DI6ZVFHL.js");
|
|
3010
3014
|
const project3 = requireProject(input, "gbp.summary", "canonry gbp summary <project> [--location <name>] [--format json]");
|
|
3011
3015
|
await gbpSummary(project3, { location: getString(input.values, "location"), format: input.format });
|
|
3012
3016
|
}
|
|
@@ -3045,7 +3049,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3045
3049
|
path: ["google-ads", "disconnect"],
|
|
3046
3050
|
usage: "canonry google-ads disconnect <project> [--format json]",
|
|
3047
3051
|
run: async (input) => {
|
|
3048
|
-
const { googleAdsDisconnect } = await import("./google-marketing-
|
|
3052
|
+
const { googleAdsDisconnect } = await import("./google-marketing-S63HN733.js");
|
|
3049
3053
|
const usage = "canonry google-ads disconnect <project> [--format json]";
|
|
3050
3054
|
await googleAdsDisconnect(createClient(), requireProject(input, "google-ads.disconnect", usage), { format: input.format });
|
|
3051
3055
|
}
|
|
@@ -3054,7 +3058,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3054
3058
|
path: ["google-ads", "status"],
|
|
3055
3059
|
usage: "canonry google-ads status <project> [--format json]",
|
|
3056
3060
|
run: async (input) => {
|
|
3057
|
-
const { googleAdsStatus } = await import("./google-marketing-
|
|
3061
|
+
const { googleAdsStatus } = await import("./google-marketing-S63HN733.js");
|
|
3058
3062
|
const usage = "canonry google-ads status <project> [--format json]";
|
|
3059
3063
|
await googleAdsStatus(createClient(), requireProject(input, "google-ads.status", usage), { format: input.format });
|
|
3060
3064
|
}
|
|
@@ -3063,7 +3067,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3063
3067
|
path: ["google-ads", "customers"],
|
|
3064
3068
|
usage: "canonry google-ads customers <project> [--format json|jsonl]",
|
|
3065
3069
|
run: async (input) => {
|
|
3066
|
-
const { googleAdsCustomers } = await import("./google-marketing-
|
|
3070
|
+
const { googleAdsCustomers } = await import("./google-marketing-S63HN733.js");
|
|
3067
3071
|
const usage = "canonry google-ads customers <project> [--format json|jsonl]";
|
|
3068
3072
|
await googleAdsCustomers(createClient(), requireProject(input, "google-ads.customers", usage), { format: input.format });
|
|
3069
3073
|
}
|
|
@@ -3073,7 +3077,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3073
3077
|
usage: "canonry google-ads select <project> --customer <customer-id> [--login-customer <manager-id>] [--format json]",
|
|
3074
3078
|
options: { customer: stringOption(), "login-customer": stringOption() },
|
|
3075
3079
|
run: async (input) => {
|
|
3076
|
-
const { googleAdsSelect } = await import("./google-marketing-
|
|
3080
|
+
const { googleAdsSelect } = await import("./google-marketing-S63HN733.js");
|
|
3077
3081
|
const usage = "canonry google-ads select <project> --customer <customer-id> [--login-customer <manager-id>] [--format json]";
|
|
3078
3082
|
const project3 = requireProject(input, "google-ads.select", usage);
|
|
3079
3083
|
const customerId = requireStringOption(input, "customer", {
|
|
@@ -3091,7 +3095,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3091
3095
|
path: ["google-ads", "sync"],
|
|
3092
3096
|
usage: "canonry google-ads sync <project> [--format json]",
|
|
3093
3097
|
run: async (input) => {
|
|
3094
|
-
const { googleAdsSync } = await import("./google-marketing-
|
|
3098
|
+
const { googleAdsSync } = await import("./google-marketing-S63HN733.js");
|
|
3095
3099
|
const usage = "canonry google-ads sync <project> [--format json]";
|
|
3096
3100
|
await googleAdsSync(createClient(), requireProject(input, "google-ads.sync", usage), { format: input.format });
|
|
3097
3101
|
}
|
|
@@ -3102,7 +3106,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3102
3106
|
usage: "canonry google-ads performance <project> [--window 7d|14d|30d] [--format json]",
|
|
3103
3107
|
options: { window: stringOption() },
|
|
3104
3108
|
run: async (input) => {
|
|
3105
|
-
const { googleAdsPerformance } = await import("./google-marketing-
|
|
3109
|
+
const { googleAdsPerformance } = await import("./google-marketing-S63HN733.js");
|
|
3106
3110
|
const usage = "canonry google-ads performance <project> [--window 7d|14d|30d] [--format json]";
|
|
3107
3111
|
const project3 = requireProject(input, "google-ads.performance", usage);
|
|
3108
3112
|
const window = performanceWindow(input, usage);
|
|
@@ -3117,7 +3121,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3117
3121
|
usage: "canonry google-ads snapshots <project> [--limit <n>] [--cursor <opaque>] [--format json|jsonl]",
|
|
3118
3122
|
options: { limit: stringOption(), cursor: stringOption() },
|
|
3119
3123
|
run: async (input) => {
|
|
3120
|
-
const { googleAdsSnapshots } = await import("./google-marketing-
|
|
3124
|
+
const { googleAdsSnapshots } = await import("./google-marketing-S63HN733.js");
|
|
3121
3125
|
const usage = "canonry google-ads snapshots <project> [--limit <n>] [--cursor <opaque>] [--format json|jsonl]";
|
|
3122
3126
|
await googleAdsSnapshots(createClient(), requireProject(input, "google-ads.snapshots", usage), {
|
|
3123
3127
|
limit: snapshotLimit(input, "google-ads.snapshots", usage),
|
|
@@ -3130,7 +3134,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3130
3134
|
path: ["google-ads", "snapshot"],
|
|
3131
3135
|
usage: "canonry google-ads snapshot <project> <snapshot-id> [--format json]",
|
|
3132
3136
|
run: async (input) => {
|
|
3133
|
-
const { googleAdsSnapshot } = await import("./google-marketing-
|
|
3137
|
+
const { googleAdsSnapshot } = await import("./google-marketing-S63HN733.js");
|
|
3134
3138
|
const usage = "canonry google-ads snapshot <project> <snapshot-id> [--format json]";
|
|
3135
3139
|
const project3 = requireProject(input, "google-ads.snapshot", usage);
|
|
3136
3140
|
await googleAdsSnapshot(createClient(), project3, requirePositional(input, 1, {
|
|
@@ -3144,7 +3148,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3144
3148
|
path: ["gtm", "disconnect"],
|
|
3145
3149
|
usage: "canonry gtm disconnect <project> [--format json]",
|
|
3146
3150
|
run: async (input) => {
|
|
3147
|
-
const { gtmDisconnect } = await import("./google-marketing-
|
|
3151
|
+
const { gtmDisconnect } = await import("./google-marketing-S63HN733.js");
|
|
3148
3152
|
const usage = "canonry gtm disconnect <project> [--format json]";
|
|
3149
3153
|
await gtmDisconnect(createClient(), requireProject(input, "gtm.disconnect", usage), { format: input.format });
|
|
3150
3154
|
}
|
|
@@ -3153,7 +3157,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3153
3157
|
path: ["gtm", "status"],
|
|
3154
3158
|
usage: "canonry gtm status <project> [--format json]",
|
|
3155
3159
|
run: async (input) => {
|
|
3156
|
-
const { gtmStatus } = await import("./google-marketing-
|
|
3160
|
+
const { gtmStatus } = await import("./google-marketing-S63HN733.js");
|
|
3157
3161
|
const usage = "canonry gtm status <project> [--format json]";
|
|
3158
3162
|
await gtmStatus(createClient(), requireProject(input, "gtm.status", usage), { format: input.format });
|
|
3159
3163
|
}
|
|
@@ -3162,7 +3166,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3162
3166
|
path: ["gtm", "accounts"],
|
|
3163
3167
|
usage: "canonry gtm accounts <project> [--format json|jsonl]",
|
|
3164
3168
|
run: async (input) => {
|
|
3165
|
-
const { gtmAccounts } = await import("./google-marketing-
|
|
3169
|
+
const { gtmAccounts } = await import("./google-marketing-S63HN733.js");
|
|
3166
3170
|
const usage = "canonry gtm accounts <project> [--format json|jsonl]";
|
|
3167
3171
|
await gtmAccounts(createClient(), requireProject(input, "gtm.accounts", usage), { format: input.format });
|
|
3168
3172
|
}
|
|
@@ -3172,7 +3176,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3172
3176
|
usage: "canonry gtm containers <project> --account <account-id> [--format json|jsonl]",
|
|
3173
3177
|
options: { account: stringOption() },
|
|
3174
3178
|
run: async (input) => {
|
|
3175
|
-
const { gtmContainers } = await import("./google-marketing-
|
|
3179
|
+
const { gtmContainers } = await import("./google-marketing-S63HN733.js");
|
|
3176
3180
|
const usage = "canonry gtm containers <project> --account <account-id> [--format json|jsonl]";
|
|
3177
3181
|
const project3 = requireProject(input, "gtm.containers", usage);
|
|
3178
3182
|
await gtmContainers(createClient(), project3, requireStringOption(input, "account", {
|
|
@@ -3187,7 +3191,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3187
3191
|
usage: "canonry gtm workspaces <project> --account <account-id> --container <container-id> [--format json|jsonl]",
|
|
3188
3192
|
options: { account: stringOption(), container: stringOption() },
|
|
3189
3193
|
run: async (input) => {
|
|
3190
|
-
const { gtmWorkspaces } = await import("./google-marketing-
|
|
3194
|
+
const { gtmWorkspaces } = await import("./google-marketing-S63HN733.js");
|
|
3191
3195
|
const usage = "canonry gtm workspaces <project> --account <account-id> --container <container-id> [--format json|jsonl]";
|
|
3192
3196
|
const project3 = requireProject(input, "gtm.workspaces", usage);
|
|
3193
3197
|
const accountId = requireStringOption(input, "account", { command: "gtm.workspaces", usage, message: "--account is required" });
|
|
@@ -3200,7 +3204,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3200
3204
|
usage: "canonry gtm select <project> --account <account-id> --container <container-id> [--workspace <workspace-id>] [--format json]",
|
|
3201
3205
|
options: { account: stringOption(), container: stringOption(), workspace: stringOption() },
|
|
3202
3206
|
run: async (input) => {
|
|
3203
|
-
const { gtmSelect } = await import("./google-marketing-
|
|
3207
|
+
const { gtmSelect } = await import("./google-marketing-S63HN733.js");
|
|
3204
3208
|
const usage = "canonry gtm select <project> --account <account-id> --container <container-id> [--workspace <workspace-id>] [--format json]";
|
|
3205
3209
|
const project3 = requireProject(input, "gtm.select", usage);
|
|
3206
3210
|
const accountId = requireStringOption(input, "account", { command: "gtm.select", usage, message: "--account is required" });
|
|
@@ -3217,7 +3221,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3217
3221
|
path: ["gtm", "sync"],
|
|
3218
3222
|
usage: "canonry gtm sync <project> [--format json]",
|
|
3219
3223
|
run: async (input) => {
|
|
3220
|
-
const { gtmSync } = await import("./google-marketing-
|
|
3224
|
+
const { gtmSync } = await import("./google-marketing-S63HN733.js");
|
|
3221
3225
|
const usage = "canonry gtm sync <project> [--format json]";
|
|
3222
3226
|
await gtmSync(createClient(), requireProject(input, "gtm.sync", usage), { format: input.format });
|
|
3223
3227
|
}
|
|
@@ -3227,7 +3231,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3227
3231
|
usage: "canonry gtm snapshots <project> [--limit <n>] [--cursor <opaque>] [--format json|jsonl]",
|
|
3228
3232
|
options: { limit: stringOption(), cursor: stringOption() },
|
|
3229
3233
|
run: async (input) => {
|
|
3230
|
-
const { gtmSnapshots } = await import("./google-marketing-
|
|
3234
|
+
const { gtmSnapshots } = await import("./google-marketing-S63HN733.js");
|
|
3231
3235
|
const usage = "canonry gtm snapshots <project> [--limit <n>] [--cursor <opaque>] [--format json|jsonl]";
|
|
3232
3236
|
await gtmSnapshots(createClient(), requireProject(input, "gtm.snapshots", usage), {
|
|
3233
3237
|
limit: snapshotLimit(input, "gtm.snapshots", usage),
|
|
@@ -3240,7 +3244,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3240
3244
|
path: ["gtm", "snapshot"],
|
|
3241
3245
|
usage: "canonry gtm snapshot <project> <snapshot-id> [--format json]",
|
|
3242
3246
|
run: async (input) => {
|
|
3243
|
-
const { gtmSnapshot } = await import("./google-marketing-
|
|
3247
|
+
const { gtmSnapshot } = await import("./google-marketing-S63HN733.js");
|
|
3244
3248
|
const usage = "canonry gtm snapshot <project> <snapshot-id> [--format json]";
|
|
3245
3249
|
const project3 = requireProject(input, "gtm.snapshot", usage);
|
|
3246
3250
|
await gtmSnapshot(createClient(), project3, requirePositional(input, 1, {
|
|
@@ -3254,7 +3258,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3254
3258
|
path: ["conversion-tracking", "contracts"],
|
|
3255
3259
|
usage: "canonry conversion-tracking contracts <project> [--format json|jsonl]",
|
|
3256
3260
|
run: async (input) => {
|
|
3257
|
-
const { conversionTrackingContracts } = await import("./google-marketing-
|
|
3261
|
+
const { conversionTrackingContracts } = await import("./google-marketing-S63HN733.js");
|
|
3258
3262
|
const usage = "canonry conversion-tracking contracts <project> [--format json|jsonl]";
|
|
3259
3263
|
await conversionTrackingContracts(createClient(), requireProject(input, "conversion-tracking.contracts", usage), { format: input.format });
|
|
3260
3264
|
}
|
|
@@ -3263,7 +3267,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3263
3267
|
path: ["conversion-tracking", "contracts", "get"],
|
|
3264
3268
|
usage: "canonry conversion-tracking contracts get <project> <contract-id> [--format json]",
|
|
3265
3269
|
run: async (input) => {
|
|
3266
|
-
const { conversionTrackingContract } = await import("./google-marketing-
|
|
3270
|
+
const { conversionTrackingContract } = await import("./google-marketing-S63HN733.js");
|
|
3267
3271
|
const usage = "canonry conversion-tracking contracts get <project> <contract-id> [--format json]";
|
|
3268
3272
|
const project3 = requireProject(input, "conversion-tracking.contracts.get", usage);
|
|
3269
3273
|
await conversionTrackingContract(createClient(), project3, requirePositional(input, 1, {
|
|
@@ -3278,7 +3282,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3278
3282
|
usage: "canonry conversion-tracking contracts create <project> --input <json-file|-> [--format json]",
|
|
3279
3283
|
options: { input: stringOption() },
|
|
3280
3284
|
run: async (input) => {
|
|
3281
|
-
const { conversionTrackingCreate, readConversionTrackingContractInput } = await import("./google-marketing-
|
|
3285
|
+
const { conversionTrackingCreate, readConversionTrackingContractInput } = await import("./google-marketing-S63HN733.js");
|
|
3282
3286
|
const usage = "canonry conversion-tracking contracts create <project> --input <json-file|-> [--format json]";
|
|
3283
3287
|
await conversionTrackingCreate(createClient(), requireProject(input, "conversion-tracking.contracts.create", usage), readConversionTrackingContractInput(getString(input.values, "input")), { format: input.format });
|
|
3284
3288
|
}
|
|
@@ -3288,7 +3292,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3288
3292
|
usage: "canonry conversion-tracking contracts update <project> <contract-id> --input <json-file|-> [--format json]",
|
|
3289
3293
|
options: { input: stringOption() },
|
|
3290
3294
|
run: async (input) => {
|
|
3291
|
-
const { conversionTrackingUpdate, readConversionTrackingContractInput } = await import("./google-marketing-
|
|
3295
|
+
const { conversionTrackingUpdate, readConversionTrackingContractInput } = await import("./google-marketing-S63HN733.js");
|
|
3292
3296
|
const usage = "canonry conversion-tracking contracts update <project> <contract-id> --input <json-file|-> [--format json]";
|
|
3293
3297
|
const project3 = requireProject(input, "conversion-tracking.contracts.update", usage);
|
|
3294
3298
|
const contractId = requirePositional(input, 1, { command: "conversion-tracking.contracts.update", usage, message: "contract id is required" });
|
|
@@ -3299,7 +3303,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3299
3303
|
path: ["conversion-tracking", "contracts", "delete"],
|
|
3300
3304
|
usage: "canonry conversion-tracking contracts delete <project> <contract-id> [--format json]",
|
|
3301
3305
|
run: async (input) => {
|
|
3302
|
-
const { conversionTrackingDelete } = await import("./google-marketing-
|
|
3306
|
+
const { conversionTrackingDelete } = await import("./google-marketing-S63HN733.js");
|
|
3303
3307
|
const usage = "canonry conversion-tracking contracts delete <project> <contract-id> [--format json]";
|
|
3304
3308
|
const project3 = requireProject(input, "conversion-tracking.contracts.delete", usage);
|
|
3305
3309
|
await conversionTrackingDelete(createClient(), project3, requirePositional(input, 1, {
|
|
@@ -3313,7 +3317,7 @@ function createGoogleMarketingCliCommands(createClient) {
|
|
|
3313
3317
|
path: ["conversion-tracking", "contracts", "integrity"],
|
|
3314
3318
|
usage: "canonry conversion-tracking contracts integrity <project> <contract-id> [--format json|jsonl]",
|
|
3315
3319
|
run: async (input) => {
|
|
3316
|
-
const { conversionTrackingIntegrity } = await import("./google-marketing-
|
|
3320
|
+
const { conversionTrackingIntegrity } = await import("./google-marketing-S63HN733.js");
|
|
3317
3321
|
const usage = "canonry conversion-tracking contracts integrity <project> <contract-id> [--format json|jsonl]";
|
|
3318
3322
|
const project3 = requireProject(input, "conversion-tracking.contracts.integrity", usage);
|
|
3319
3323
|
await conversionTrackingIntegrity(createClient(), project3, requirePositional(input, 1, {
|
|
@@ -3463,7 +3467,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3463
3467
|
help: "Stored user-triggered agent request sequences, with trust levels, correlation and coverage limits. Likely fake requests are counted, not listed. No provider calls. Default limit: 50 journeys.",
|
|
3464
3468
|
options: agentJourneyOptions,
|
|
3465
3469
|
run: async (input) => {
|
|
3466
|
-
const { trafficAgentJourneys } = await import("./agent-journeys-
|
|
3470
|
+
const { trafficAgentJourneys } = await import("./agent-journeys-XDXVL6PK.js");
|
|
3467
3471
|
const project3 = requireProject(input, "traffic.agent-journeys", AGENT_JOURNEYS_USAGE);
|
|
3468
3472
|
await trafficAgentJourneys(project3, readAgentJourneyOptions(input, "traffic.agent-journeys", AGENT_JOURNEYS_USAGE));
|
|
3469
3473
|
}
|
|
@@ -3474,7 +3478,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3474
3478
|
help: "Read one agent request timeline. Keep the list window and selectors; correlation does not prove one user task. Default limit: 100 requests.",
|
|
3475
3479
|
options: agentJourneyOptions,
|
|
3476
3480
|
run: async (input) => {
|
|
3477
|
-
const { trafficAgentJourney } = await import("./agent-journeys-
|
|
3481
|
+
const { trafficAgentJourney } = await import("./agent-journeys-XDXVL6PK.js");
|
|
3478
3482
|
const project3 = requireProject(input, "traffic.agent-journey", AGENT_JOURNEY_USAGE);
|
|
3479
3483
|
const journeyId = requirePositional(input, 1, { command: "traffic.agent-journey", usage: AGENT_JOURNEY_USAGE, message: "journey id is required" });
|
|
3480
3484
|
await trafficAgentJourney(project3, journeyId, readAgentJourneyOptions(input, "traffic.agent-journey", AGENT_JOURNEY_USAGE));
|
|
@@ -3488,7 +3492,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3488
3492
|
help: "Complete stored traffic totals and breakdowns for the selected window. Project-wide for Simple and Advanced portfolios; no provider calls or sync.",
|
|
3489
3493
|
options: { period: stringOption() },
|
|
3490
3494
|
run: async (input) => {
|
|
3491
|
-
const { trafficAnalytics } = await import("./traffic-
|
|
3495
|
+
const { trafficAnalytics } = await import("./traffic-SVMOKCSS.js");
|
|
3492
3496
|
const project3 = requireProject(input, "traffic.analytics", "canonry traffic analytics <project> [--period 7|14|30|90]");
|
|
3493
3497
|
await trafficAnalytics(project3, { period: getString(input.values, "window") ?? getString(input.values, "period"), format: input.format });
|
|
3494
3498
|
}
|
|
@@ -3500,7 +3504,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3500
3504
|
help: "DB-only diagnostic. Raw headlines stay unchanged. Candidate bursts are not confirmed automation; adjusted counts are estimates. Property, Target and market attribution are unavailable. The observed GA quotient has unknown comparable coverage.",
|
|
3501
3505
|
options: { "start-date": stringOption(), "end-date": stringOption(), source: stringOption(), "burst-threshold": stringOption(), "ratio-threshold": stringOption(), limit: stringOption() },
|
|
3502
3506
|
run: async (input) => {
|
|
3503
|
-
const { trafficReferralAssessment } = await import("./traffic-
|
|
3507
|
+
const { trafficReferralAssessment } = await import("./traffic-SVMOKCSS.js");
|
|
3504
3508
|
const project3 = requireProject(input, "traffic.referral-assessment", "canonry traffic referral-assessment <project> --start-date YYYY-MM-DD --end-date YYYY-MM-DD");
|
|
3505
3509
|
await trafficReferralAssessment(project3, {
|
|
3506
3510
|
startDate: getString(input.values, "start") ?? getString(input.values, "start-date"),
|
|
@@ -3533,7 +3537,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3533
3537
|
"confirm-fail-open": { type: "boolean" }
|
|
3534
3538
|
},
|
|
3535
3539
|
run: async (input) => {
|
|
3536
|
-
const { trafficConnectCloudflare, DEFAULT_CLOUDFLARE_QUEUE_RETENTION_SECONDS } = await import("./traffic-
|
|
3540
|
+
const { trafficConnectCloudflare, DEFAULT_CLOUDFLARE_QUEUE_RETENTION_SECONDS } = await import("./traffic-SVMOKCSS.js");
|
|
3537
3541
|
const forwardPageViews = getBoolean(input.values, "forward-page-views");
|
|
3538
3542
|
const noForwardPageViews = getBoolean(input.values, "no-forward-page-views");
|
|
3539
3543
|
if (forwardPageViews && noForwardPageViews) {
|
|
@@ -3586,7 +3590,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3586
3590
|
"display-name": stringOption()
|
|
3587
3591
|
},
|
|
3588
3592
|
run: async (input) => {
|
|
3589
|
-
const { trafficConnectCloudRun } = await import("./traffic-
|
|
3593
|
+
const { trafficConnectCloudRun } = await import("./traffic-SVMOKCSS.js");
|
|
3590
3594
|
const project3 = requireProject(
|
|
3591
3595
|
input,
|
|
3592
3596
|
"traffic.connect.cloud-run",
|
|
@@ -3617,7 +3621,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3617
3621
|
"display-name": stringOption()
|
|
3618
3622
|
},
|
|
3619
3623
|
run: async (input) => {
|
|
3620
|
-
const { trafficConnectWordpress } = await import("./traffic-
|
|
3624
|
+
const { trafficConnectWordpress } = await import("./traffic-SVMOKCSS.js");
|
|
3621
3625
|
const project3 = requireProject(
|
|
3622
3626
|
input,
|
|
3623
3627
|
"traffic.connect.wordpress",
|
|
@@ -3649,7 +3653,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3649
3653
|
"display-name": stringOption()
|
|
3650
3654
|
},
|
|
3651
3655
|
run: async (input) => {
|
|
3652
|
-
const { trafficConnectVercel } = await import("./traffic-
|
|
3656
|
+
const { trafficConnectVercel } = await import("./traffic-SVMOKCSS.js");
|
|
3653
3657
|
const project3 = requireProject(
|
|
3654
3658
|
input,
|
|
3655
3659
|
"traffic.connect.vercel",
|
|
@@ -3688,7 +3692,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3688
3692
|
source: stringOption()
|
|
3689
3693
|
},
|
|
3690
3694
|
run: async (input) => {
|
|
3691
|
-
const { trafficActivate } = await import("./traffic-
|
|
3695
|
+
const { trafficActivate } = await import("./traffic-SVMOKCSS.js");
|
|
3692
3696
|
const project3 = requireProject(
|
|
3693
3697
|
input,
|
|
3694
3698
|
"traffic.activate",
|
|
@@ -3707,7 +3711,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3707
3711
|
"since-minutes": stringOption()
|
|
3708
3712
|
},
|
|
3709
3713
|
run: async (input) => {
|
|
3710
|
-
const { trafficSync } = await import("./traffic-
|
|
3714
|
+
const { trafficSync } = await import("./traffic-SVMOKCSS.js");
|
|
3711
3715
|
const project3 = requireProject(
|
|
3712
3716
|
input,
|
|
3713
3717
|
"traffic.sync",
|
|
@@ -3736,7 +3740,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3736
3740
|
wait: { type: "boolean" }
|
|
3737
3741
|
},
|
|
3738
3742
|
run: async (input) => {
|
|
3739
|
-
const { trafficBackfill } = await import("./traffic-
|
|
3743
|
+
const { trafficBackfill } = await import("./traffic-SVMOKCSS.js");
|
|
3740
3744
|
const project3 = requireProject(
|
|
3741
3745
|
input,
|
|
3742
3746
|
"traffic.backfill",
|
|
@@ -3765,7 +3769,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3765
3769
|
"advance-to-now": { type: "boolean" }
|
|
3766
3770
|
},
|
|
3767
3771
|
run: async (input) => {
|
|
3768
|
-
const { trafficReset } = await import("./traffic-
|
|
3772
|
+
const { trafficReset } = await import("./traffic-SVMOKCSS.js");
|
|
3769
3773
|
const project3 = requireProject(
|
|
3770
3774
|
input,
|
|
3771
3775
|
"traffic.reset",
|
|
@@ -3787,7 +3791,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3787
3791
|
source: stringOption()
|
|
3788
3792
|
},
|
|
3789
3793
|
run: async (input) => {
|
|
3790
|
-
const { trafficDeclareGap } = await import("./traffic-
|
|
3794
|
+
const { trafficDeclareGap } = await import("./traffic-SVMOKCSS.js");
|
|
3791
3795
|
const project3 = requireProject(
|
|
3792
3796
|
input,
|
|
3793
3797
|
"traffic.declare-gap",
|
|
@@ -3802,7 +3806,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3802
3806
|
path: ["traffic", "sources"],
|
|
3803
3807
|
usage: "canonry traffic sources <project> [--format json]",
|
|
3804
3808
|
run: async (input) => {
|
|
3805
|
-
const { trafficSources } = await import("./traffic-
|
|
3809
|
+
const { trafficSources } = await import("./traffic-SVMOKCSS.js");
|
|
3806
3810
|
const project3 = requireProject(
|
|
3807
3811
|
input,
|
|
3808
3812
|
"traffic.sources",
|
|
@@ -3815,7 +3819,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3815
3819
|
path: ["traffic", "status"],
|
|
3816
3820
|
usage: "canonry traffic status <project> [--format json]",
|
|
3817
3821
|
run: async (input) => {
|
|
3818
|
-
const { trafficStatus } = await import("./traffic-
|
|
3822
|
+
const { trafficStatus } = await import("./traffic-SVMOKCSS.js");
|
|
3819
3823
|
const project3 = requireProject(
|
|
3820
3824
|
input,
|
|
3821
3825
|
"traffic.status",
|
|
@@ -3830,7 +3834,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3830
3834
|
help: "Stored sampled tail with 30-day retention, not visits. Unknown traffic is excluded by default. No provider calls.",
|
|
3831
3835
|
options: { kind: stringOption(), source: stringOption(), since: stringOption(), until: stringOption(), "since-minutes": stringOption(), path: stringOption(), limit: stringOption(), offset: stringOption() },
|
|
3832
3836
|
run: async (input) => {
|
|
3833
|
-
const { trafficSamples } = await import("./traffic-
|
|
3837
|
+
const { trafficSamples } = await import("./traffic-SVMOKCSS.js");
|
|
3834
3838
|
const project3 = requireProject(input, "traffic.samples", "canonry traffic samples <project>");
|
|
3835
3839
|
const integer = (name) => parseIntegerOption(input, name, { command: "traffic.samples", usage: "canonry traffic samples <project>", message: `--${name} must be an integer` });
|
|
3836
3840
|
await trafficSamples(project3, { kind: getString(input.values, "kind"), sourceId: getString(input.values, "source"), since: getString(input.values, "since"), until: getString(input.values, "until"), sinceMinutes: integer("since-minutes"), path: getString(input.values, "path"), limit: integer("limit"), offset: integer("offset"), format: input.format });
|
|
@@ -3842,7 +3846,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3842
3846
|
help: "Bots and agents no rule recognizes yet, by the name in their user agent, busiest first. Default window: last 30 days. Stored rows only, no provider calls.",
|
|
3843
3847
|
options: { source: stringOption(), since: stringOption(), until: stringOption(), limit: stringOption() },
|
|
3844
3848
|
run: async (input) => {
|
|
3845
|
-
const { trafficUnrecognized } = await import("./traffic-
|
|
3849
|
+
const { trafficUnrecognized } = await import("./traffic-SVMOKCSS.js");
|
|
3846
3850
|
const project3 = requireProject(input, "traffic.unrecognized", "canonry traffic unrecognized <project>");
|
|
3847
3851
|
const limit = parseIntegerOption(input, "limit", { command: "traffic.unrecognized", usage: "canonry traffic unrecognized <project>", message: "--limit must be an integer" });
|
|
3848
3852
|
await trafficUnrecognized(project3, { sourceId: getString(input.values, "source"), since: getString(input.values, "since"), until: getString(input.values, "until"), limit, format: input.format });
|
|
@@ -3861,7 +3865,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3861
3865
|
granularity: stringOption()
|
|
3862
3866
|
},
|
|
3863
3867
|
run: async (input) => {
|
|
3864
|
-
const { trafficEvents } = await import("./traffic-
|
|
3868
|
+
const { trafficEvents } = await import("./traffic-SVMOKCSS.js");
|
|
3865
3869
|
const project3 = requireProject(
|
|
3866
3870
|
input,
|
|
3867
3871
|
"traffic.events",
|
|
@@ -3924,7 +3928,7 @@ var JOURNEYS_CLI_COMMANDS = [
|
|
|
3924
3928
|
help: "Stored AI visitor journeys: visitors whose first AI visit fell in the window and how many came back. No provider calls.",
|
|
3925
3929
|
options: { since: stringOption(), until: stringOption() },
|
|
3926
3930
|
run: async (input) => {
|
|
3927
|
-
const { journeysSummary } = await import("./journeys-
|
|
3931
|
+
const { journeysSummary } = await import("./journeys-XIT7WDM2.js");
|
|
3928
3932
|
const project3 = requireProject(input, "journeys.summary", SUMMARY_USAGE);
|
|
3929
3933
|
await journeysSummary(project3, { since: getString(input.values, "since"), until: getString(input.values, "until"), format: input.format });
|
|
3930
3934
|
}
|
|
@@ -3935,7 +3939,7 @@ var JOURNEYS_CLI_COMMANDS = [
|
|
|
3935
3939
|
help: "Stored AI visitors, newest first AI visit first, with their visits. No provider calls.",
|
|
3936
3940
|
options: { since: stringOption(), until: stringOption(), engine: stringOption(), returned: stringOption(), "key-basis": stringOption(), limit: stringOption(), offset: stringOption() },
|
|
3937
3941
|
run: async (input) => {
|
|
3938
|
-
const { journeysList } = await import("./journeys-
|
|
3942
|
+
const { journeysList } = await import("./journeys-XIT7WDM2.js");
|
|
3939
3943
|
const project3 = requireProject(input, "journeys.list", LIST_USAGE);
|
|
3940
3944
|
const integer = (name) => parseIntegerOption(input, name, { command: "journeys.list", usage: LIST_USAGE, message: `--${name} must be an integer` });
|
|
3941
3945
|
await journeysList(project3, {
|
|
@@ -3956,7 +3960,7 @@ var JOURNEYS_CLI_COMMANDS = [
|
|
|
3956
3960
|
help: "Stored visits and requests for one AI visitor, a page at a time. No provider calls.",
|
|
3957
3961
|
options: { events: stringOption(), limit: stringOption(), offset: stringOption() },
|
|
3958
3962
|
run: async (input) => {
|
|
3959
|
-
const { journeyShow } = await import("./journeys-
|
|
3963
|
+
const { journeyShow } = await import("./journeys-XIT7WDM2.js");
|
|
3960
3964
|
const project3 = requireProject(input, "journeys.show", SHOW_USAGE);
|
|
3961
3965
|
const visitorKey = requirePositional(input, 1, { command: "journeys.show", usage: SHOW_USAGE, message: "visitor key is required" });
|
|
3962
3966
|
const integer = (name) => parseIntegerOption(input, name, { command: "journeys.show", usage: SHOW_USAGE, message: `--${name} must be an integer` });
|
|
@@ -4007,7 +4011,7 @@ var COMPETITOR_CLI_COMMANDS = [
|
|
|
4007
4011
|
supportsDryRun: true,
|
|
4008
4012
|
accessFor: ({ dryRun }) => dryRun ? OperationAccesses.stored : OperationAccesses.write,
|
|
4009
4013
|
run: async (input) => {
|
|
4010
|
-
const { addCompetitors } = await import("./competitor-
|
|
4014
|
+
const { addCompetitors } = await import("./competitor-PIX2BHJW.js");
|
|
4011
4015
|
const project3 = requireProject(input, "competitor.add", ADD_USAGE);
|
|
4012
4016
|
const domains = input.positionals.slice(1);
|
|
4013
4017
|
if (domains.length === 0) {
|
|
@@ -4036,7 +4040,7 @@ Usage: ${ADD_USAGE}`, {
|
|
|
4036
4040
|
usage: IMPORT_USAGE,
|
|
4037
4041
|
options: { "acknowledge-bulk-add": { type: "boolean" }, ...WAIT_OPTIONS },
|
|
4038
4042
|
run: async (input) => {
|
|
4039
|
-
const { importCompetitors } = await import("./competitor-
|
|
4043
|
+
const { importCompetitors } = await import("./competitor-PIX2BHJW.js");
|
|
4040
4044
|
const project3 = requireProject(input, "competitor.import", IMPORT_USAGE);
|
|
4041
4045
|
const file = requirePositional(input, 1, { command: "competitor.import", usage: IMPORT_USAGE, message: "input file is required" });
|
|
4042
4046
|
await importCompetitors(project3, file, input.format, { acknowledgeBulkAdd: getBoolean(input.values, "acknowledge-bulk-add"), wait: getBoolean(input.values, "wait"), waitTimeout: getString(input.values, "wait-timeout") });
|
|
@@ -4054,7 +4058,7 @@ Usage: ${ADD_USAGE}`, {
|
|
|
4054
4058
|
supportsDryRun: true,
|
|
4055
4059
|
accessFor: ({ values }) => getBoolean(values, "apply") ? OperationAccesses.write : OperationAccesses.stored,
|
|
4056
4060
|
run: async (input) => {
|
|
4057
|
-
const { detectCompetitorAutoAliases } = await import("./competitor-
|
|
4061
|
+
const { detectCompetitorAutoAliases } = await import("./competitor-PIX2BHJW.js");
|
|
4058
4062
|
const project3 = requireProject(input, "competitor.aliases.detect", DETECT_USAGE);
|
|
4059
4063
|
await detectCompetitorAutoAliases(project3, { apply: getBoolean(input.values, "apply"), ...input.dryRun ? { dryRun: true } : {}, format: input.format });
|
|
4060
4064
|
}
|
|
@@ -4077,7 +4081,7 @@ Usage: ${ADD_USAGE}`, {
|
|
|
4077
4081
|
return mutating && !dryRun ? OperationAccesses.write : OperationAccesses.stored;
|
|
4078
4082
|
},
|
|
4079
4083
|
run: async (input) => {
|
|
4080
|
-
const { competitorAliases } = await import("./competitor-
|
|
4084
|
+
const { competitorAliases } = await import("./competitor-PIX2BHJW.js");
|
|
4081
4085
|
const project3 = requireProject(input, "competitor.aliases", ALIASES_USAGE);
|
|
4082
4086
|
const domain = requirePositional(input, 1, {
|
|
4083
4087
|
command: "competitor.aliases",
|
|
@@ -4114,7 +4118,7 @@ Usage: ${ALIASES_USAGE}`, {
|
|
|
4114
4118
|
usage: "canonry competitor remove <project> <domain...> [--dry-run] [--format json]",
|
|
4115
4119
|
accessFor: ({ dryRun }) => dryRun ? OperationAccesses.stored : OperationAccesses.write,
|
|
4116
4120
|
run: async (input) => {
|
|
4117
|
-
const { removeCompetitors } = await import("./competitor-
|
|
4121
|
+
const { removeCompetitors } = await import("./competitor-PIX2BHJW.js");
|
|
4118
4122
|
const project3 = requireProject(input, "competitor.remove", "canonry competitor remove <project> <domain...> [--dry-run] [--format json]");
|
|
4119
4123
|
const domains = input.positionals.slice(1);
|
|
4120
4124
|
if (domains.length === 0) {
|
|
@@ -4135,7 +4139,7 @@ Usage: ${ALIASES_USAGE}`, {
|
|
|
4135
4139
|
usage: "canonry competitor delete <project> <domain...> [--dry-run] [--format json]",
|
|
4136
4140
|
accessFor: ({ dryRun }) => dryRun ? OperationAccesses.stored : OperationAccesses.write,
|
|
4137
4141
|
run: async (input) => {
|
|
4138
|
-
const { removeCompetitors } = await import("./competitor-
|
|
4142
|
+
const { removeCompetitors } = await import("./competitor-PIX2BHJW.js");
|
|
4139
4143
|
const project3 = requireProject(input, "competitor.delete", "canonry competitor delete <project> <domain...> [--dry-run] [--format json]");
|
|
4140
4144
|
const domains = input.positionals.slice(1);
|
|
4141
4145
|
if (domains.length === 0) {
|
|
@@ -4154,7 +4158,7 @@ Usage: ${ALIASES_USAGE}`, {
|
|
|
4154
4158
|
path: ["competitor", "list"],
|
|
4155
4159
|
usage: "canonry competitor list <project> [--format json]",
|
|
4156
4160
|
run: async (input) => {
|
|
4157
|
-
const { listCompetitors } = await import("./competitor-
|
|
4161
|
+
const { listCompetitors } = await import("./competitor-PIX2BHJW.js");
|
|
4158
4162
|
const project3 = requireProject(input, "competitor.list", "canonry competitor list <project>");
|
|
4159
4163
|
await listCompetitors(project3, input.format);
|
|
4160
4164
|
}
|
|
@@ -4176,7 +4180,7 @@ Usage: ${ALIASES_USAGE}`, {
|
|
|
4176
4180
|
answers: stringOption()
|
|
4177
4181
|
},
|
|
4178
4182
|
run: async (input) => {
|
|
4179
|
-
const { showCompetitorLandscape } = await import("./competitor-
|
|
4183
|
+
const { showCompetitorLandscape } = await import("./competitor-PIX2BHJW.js");
|
|
4180
4184
|
const project3 = requireProject(input, "competitor.landscape", LANDSCAPE_USAGE);
|
|
4181
4185
|
const scope = parseLandscapeScope(getString(input.values, "scope"));
|
|
4182
4186
|
const groupKey = getString(input.values, "group-key");
|
|
@@ -4223,7 +4227,7 @@ Usage: ${ALIASES_USAGE}`, {
|
|
|
4223
4227
|
limit: stringOption()
|
|
4224
4228
|
},
|
|
4225
4229
|
run: async (input) => {
|
|
4226
|
-
const { suggestCompetitors } = await import("./competitor-
|
|
4230
|
+
const { suggestCompetitors } = await import("./competitor-PIX2BHJW.js");
|
|
4227
4231
|
const project3 = requireProject(input, "competitor.suggest", SUGGEST_USAGE);
|
|
4228
4232
|
const minAnswers = parseIntegerOption(input, "min-answers", {
|
|
4229
4233
|
command: "competitor.suggest",
|
|
@@ -4274,7 +4278,7 @@ var GOOGLE_CLI_COMMANDS = [
|
|
|
4274
4278
|
"public-url": stringOption()
|
|
4275
4279
|
},
|
|
4276
4280
|
run: async (input) => {
|
|
4277
|
-
const { googleConnect } = await import("./google-
|
|
4281
|
+
const { googleConnect } = await import("./google-UVKWJCD2.js");
|
|
4278
4282
|
const project3 = requireProject(input, "google.connect", "canonry google connect <project> [--type gsc|ga4] [--public-url <url>] [--format json]");
|
|
4279
4283
|
await googleConnect(project3, {
|
|
4280
4284
|
type: getString(input.values, "type") ?? "gsc",
|
|
@@ -4290,7 +4294,7 @@ var GOOGLE_CLI_COMMANDS = [
|
|
|
4290
4294
|
type: stringOption()
|
|
4291
4295
|
},
|
|
4292
4296
|
run: async (input) => {
|
|
4293
|
-
const { googleDisconnect } = await import("./google-
|
|
4297
|
+
const { googleDisconnect } = await import("./google-UVKWJCD2.js");
|
|
4294
4298
|
const project3 = requireProject(input, "google.disconnect", "canonry google disconnect <project> [--type gsc|ga4] [--format json]");
|
|
4295
4299
|
await googleDisconnect(project3, {
|
|
4296
4300
|
type: getString(input.values, "type") ?? "gsc",
|
|
@@ -4302,7 +4306,7 @@ var GOOGLE_CLI_COMMANDS = [
|
|
|
4302
4306
|
path: ["google", "status"],
|
|
4303
4307
|
usage: "canonry google status <project> [--format json]",
|
|
4304
4308
|
run: async (input) => {
|
|
4305
|
-
const { googleStatus } = await import("./google-
|
|
4309
|
+
const { googleStatus } = await import("./google-UVKWJCD2.js");
|
|
4306
4310
|
const project3 = requireProject(input, "google.status", "canonry google status <project> [--format json]");
|
|
4307
4311
|
await googleStatus(project3, input.format);
|
|
4308
4312
|
}
|
|
@@ -4311,7 +4315,7 @@ var GOOGLE_CLI_COMMANDS = [
|
|
|
4311
4315
|
path: ["google", "properties"],
|
|
4312
4316
|
usage: "canonry google properties <project> [--format json]",
|
|
4313
4317
|
run: async (input) => {
|
|
4314
|
-
const { googleProperties } = await import("./google-
|
|
4318
|
+
const { googleProperties } = await import("./google-UVKWJCD2.js");
|
|
4315
4319
|
const project3 = requireProject(input, "google.properties", "canonry google properties <project> [--format json]");
|
|
4316
4320
|
await googleProperties(project3, input.format);
|
|
4317
4321
|
}
|
|
@@ -4320,7 +4324,7 @@ var GOOGLE_CLI_COMMANDS = [
|
|
|
4320
4324
|
path: ["google", "set-property"],
|
|
4321
4325
|
usage: "canonry google set-property <project> <url> [--format json]",
|
|
4322
4326
|
run: async (input) => {
|
|
4323
|
-
const { googleSetProperty } = await import("./google-
|
|
4327
|
+
const { googleSetProperty } = await import("./google-UVKWJCD2.js");
|
|
4324
4328
|
const project3 = requireProject(input, "google.set-property", "canonry google set-property <project> <url> [--format json]");
|
|
4325
4329
|
const propertyUrl = requirePositional(input, 1, {
|
|
4326
4330
|
command: "google.set-property",
|
|
@@ -4334,7 +4338,7 @@ var GOOGLE_CLI_COMMANDS = [
|
|
|
4334
4338
|
path: ["google", "set-sitemap"],
|
|
4335
4339
|
usage: "canonry google set-sitemap <project> <url> [--format json]",
|
|
4336
4340
|
run: async (input) => {
|
|
4337
|
-
const { googleSetSitemap } = await import("./google-
|
|
4341
|
+
const { googleSetSitemap } = await import("./google-UVKWJCD2.js");
|
|
4338
4342
|
const project3 = requireProject(input, "google.set-sitemap", "canonry google set-sitemap <project> <url> [--format json]");
|
|
4339
4343
|
const sitemapUrl = requirePositional(input, 1, {
|
|
4340
4344
|
command: "google.set-sitemap",
|
|
@@ -4348,7 +4352,7 @@ var GOOGLE_CLI_COMMANDS = [
|
|
|
4348
4352
|
path: ["google", "list-sitemaps"],
|
|
4349
4353
|
usage: "canonry google list-sitemaps <project> [--format json]",
|
|
4350
4354
|
run: async (input) => {
|
|
4351
|
-
const { googleListSitemaps } = await import("./google-
|
|
4355
|
+
const { googleListSitemaps } = await import("./google-UVKWJCD2.js");
|
|
4352
4356
|
const project3 = requireProject(input, "google.list-sitemaps", "canonry google list-sitemaps <project> [--format json]");
|
|
4353
4357
|
await googleListSitemaps(project3, { format: input.format });
|
|
4354
4358
|
}
|
|
@@ -4362,7 +4366,7 @@ var GOOGLE_CLI_COMMANDS = [
|
|
|
4362
4366
|
"all-files": { type: "boolean", default: false }
|
|
4363
4367
|
},
|
|
4364
4368
|
run: async (input) => {
|
|
4365
|
-
const { googleSubmitSitemaps } = await import("./google-
|
|
4369
|
+
const { googleSubmitSitemaps } = await import("./google-UVKWJCD2.js");
|
|
4366
4370
|
const project3 = requireProject(input, "google.submit-sitemap", "canonry google submit-sitemap <project> [url...] [--configured|--all|--all-files] [--format json|jsonl]");
|
|
4367
4371
|
const sitemapUrls = input.positionals.slice(1);
|
|
4368
4372
|
const configured = getBoolean(input.values, "configured");
|
|
@@ -4396,7 +4400,7 @@ var GOOGLE_CLI_COMMANDS = [
|
|
|
4396
4400
|
wait: { type: "boolean", default: false }
|
|
4397
4401
|
},
|
|
4398
4402
|
run: async (input) => {
|
|
4399
|
-
const { googleSync } = await import("./google-
|
|
4403
|
+
const { googleSync } = await import("./google-UVKWJCD2.js");
|
|
4400
4404
|
const project3 = requireProject(input, "google.sync", "canonry google sync <project> [--type gsc|ga4] [--days <n>] [--full] [--wait] [--format json]");
|
|
4401
4405
|
await googleSync(project3, {
|
|
4402
4406
|
type: getString(input.values, "type") ?? "gsc",
|
|
@@ -4426,7 +4430,7 @@ var GOOGLE_CLI_COMMANDS = [
|
|
|
4426
4430
|
"order-by": stringOption()
|
|
4427
4431
|
},
|
|
4428
4432
|
run: async (input) => {
|
|
4429
|
-
const { googlePerformance } = await import("./google-
|
|
4433
|
+
const { googlePerformance } = await import("./google-UVKWJCD2.js");
|
|
4430
4434
|
const project3 = requireProject(input, "google.performance", GOOGLE_PERFORMANCE_USAGE);
|
|
4431
4435
|
const startDate = getString(input.values, "start");
|
|
4432
4436
|
const endDate = getString(input.values, "end");
|
|
@@ -4477,7 +4481,7 @@ Usage: ${GOOGLE_PERFORMANCE_USAGE}`,
|
|
|
4477
4481
|
end: stringOption()
|
|
4478
4482
|
},
|
|
4479
4483
|
run: async (input) => {
|
|
4480
|
-
const { googlePerformanceDaily } = await import("./google-
|
|
4484
|
+
const { googlePerformanceDaily } = await import("./google-UVKWJCD2.js");
|
|
4481
4485
|
const project3 = requireProject(input, "google.performance-daily", "canonry google performance-daily <project> [--window 7d|30d|90d|all] [--start <YYYY-MM-DD>] [--end <YYYY-MM-DD>] [--format json]");
|
|
4482
4486
|
await googlePerformanceDaily(project3, {
|
|
4483
4487
|
window: getString(input.values, "window"),
|
|
@@ -4498,7 +4502,7 @@ Usage: ${GOOGLE_PERFORMANCE_USAGE}`,
|
|
|
4498
4502
|
limit: stringOption()
|
|
4499
4503
|
},
|
|
4500
4504
|
run: async (input) => {
|
|
4501
|
-
const { googleTopPages } = await import("./google-
|
|
4505
|
+
const { googleTopPages } = await import("./google-UVKWJCD2.js");
|
|
4502
4506
|
const usage = "canonry google top-pages <project> [--window 7d|30d|90d|all] [--start <YYYY-MM-DD>] [--end <YYYY-MM-DD>] [--limit <n>] [--format json]";
|
|
4503
4507
|
const project3 = requireProject(input, "google.top-pages", usage);
|
|
4504
4508
|
await googleTopPages(project3, {
|
|
@@ -4526,7 +4530,7 @@ Usage: ${GOOGLE_PERFORMANCE_USAGE}`,
|
|
|
4526
4530
|
offset: stringOption()
|
|
4527
4531
|
},
|
|
4528
4532
|
run: async (input) => {
|
|
4529
|
-
const { googleQueryTotals } = await import("./google-
|
|
4533
|
+
const { googleQueryTotals } = await import("./google-UVKWJCD2.js");
|
|
4530
4534
|
const project3 = requireProject(input, "google.query-totals", GOOGLE_QUERY_TOTALS_USAGE);
|
|
4531
4535
|
await googleQueryTotals(project3, {
|
|
4532
4536
|
window: getString(input.values, "window"),
|
|
@@ -4550,7 +4554,7 @@ Usage: ${GOOGLE_PERFORMANCE_USAGE}`,
|
|
|
4550
4554
|
path: ["google", "inspect"],
|
|
4551
4555
|
usage: "canonry google inspect <project> <url> [--format json]",
|
|
4552
4556
|
run: async (input) => {
|
|
4553
|
-
const { googleInspect } = await import("./google-
|
|
4557
|
+
const { googleInspect } = await import("./google-UVKWJCD2.js");
|
|
4554
4558
|
const project3 = requireProject(input, "google.inspect", "canonry google inspect <project> <url> [--format json]");
|
|
4555
4559
|
const url = requirePositional(input, 1, {
|
|
4556
4560
|
command: "google.inspect",
|
|
@@ -4567,7 +4571,7 @@ Usage: ${GOOGLE_PERFORMANCE_USAGE}`,
|
|
|
4567
4571
|
url: stringOption()
|
|
4568
4572
|
},
|
|
4569
4573
|
run: async (input) => {
|
|
4570
|
-
const { googleInspections } = await import("./google-
|
|
4574
|
+
const { googleInspections } = await import("./google-UVKWJCD2.js");
|
|
4571
4575
|
const project3 = requireProject(input, "google.inspections", "canonry google inspections <project> [--url <url>] [--format json]");
|
|
4572
4576
|
await googleInspections(project3, {
|
|
4573
4577
|
url: getString(input.values, "url"),
|
|
@@ -4583,7 +4587,7 @@ Usage: ${GOOGLE_PERFORMANCE_USAGE}`,
|
|
|
4583
4587
|
wait: { type: "boolean", default: false }
|
|
4584
4588
|
},
|
|
4585
4589
|
run: async (input) => {
|
|
4586
|
-
const { googleInspectSitemap } = await import("./google-
|
|
4590
|
+
const { googleInspectSitemap } = await import("./google-UVKWJCD2.js");
|
|
4587
4591
|
const project3 = requireProject(input, "google.inspect-sitemap", "canonry google inspect-sitemap <project> [--sitemap-url <url>] [--wait] [--format json]");
|
|
4588
4592
|
await googleInspectSitemap(project3, {
|
|
4589
4593
|
sitemapUrl: getString(input.values, "sitemap-url"),
|
|
@@ -4596,7 +4600,7 @@ Usage: ${GOOGLE_PERFORMANCE_USAGE}`,
|
|
|
4596
4600
|
path: ["google", "coverage"],
|
|
4597
4601
|
usage: "canonry google coverage <project> [--format json]",
|
|
4598
4602
|
run: async (input) => {
|
|
4599
|
-
const { googleCoverage } = await import("./google-
|
|
4603
|
+
const { googleCoverage } = await import("./google-UVKWJCD2.js");
|
|
4600
4604
|
const project3 = requireProject(input, "google.coverage", "canonry google coverage <project> [--format json]");
|
|
4601
4605
|
await googleCoverage(project3, input.format);
|
|
4602
4606
|
}
|
|
@@ -4608,7 +4612,7 @@ Usage: ${GOOGLE_PERFORMANCE_USAGE}`,
|
|
|
4608
4612
|
limit: stringOption()
|
|
4609
4613
|
},
|
|
4610
4614
|
run: async (input) => {
|
|
4611
|
-
const { googleCoverageHistory } = await import("./google-
|
|
4615
|
+
const { googleCoverageHistory } = await import("./google-UVKWJCD2.js");
|
|
4612
4616
|
const project3 = requireProject(input, "google.coverage-history", "canonry google coverage-history <project> [--limit <n>] [--format json]");
|
|
4613
4617
|
await googleCoverageHistory(project3, {
|
|
4614
4618
|
limit: parseIntegerOption(input, "limit", {
|
|
@@ -4624,7 +4628,7 @@ Usage: ${GOOGLE_PERFORMANCE_USAGE}`,
|
|
|
4624
4628
|
path: ["google", "deindexed"],
|
|
4625
4629
|
usage: "canonry google deindexed <project> [--format json]",
|
|
4626
4630
|
run: async (input) => {
|
|
4627
|
-
const { googleDeindexed } = await import("./google-
|
|
4631
|
+
const { googleDeindexed } = await import("./google-UVKWJCD2.js");
|
|
4628
4632
|
const project3 = requireProject(input, "google.deindexed", "canonry google deindexed <project> [--format json]");
|
|
4629
4633
|
await googleDeindexed(project3, input.format);
|
|
4630
4634
|
}
|
|
@@ -4636,7 +4640,7 @@ Usage: ${GOOGLE_PERFORMANCE_USAGE}`,
|
|
|
4636
4640
|
wait: { type: "boolean", default: false }
|
|
4637
4641
|
},
|
|
4638
4642
|
run: async (input) => {
|
|
4639
|
-
const { googleDiscoverSitemaps } = await import("./google-
|
|
4643
|
+
const { googleDiscoverSitemaps } = await import("./google-UVKWJCD2.js");
|
|
4640
4644
|
const project3 = requireProject(input, "google.discover-sitemaps", "canonry google discover-sitemaps <project> [--wait] [--format json]");
|
|
4641
4645
|
await googleDiscoverSitemaps(project3, {
|
|
4642
4646
|
wait: getBoolean(input.values, "wait"),
|
|
@@ -4652,7 +4656,7 @@ Usage: ${GOOGLE_PERFORMANCE_USAGE}`,
|
|
|
4652
4656
|
wait: { type: "boolean", default: false }
|
|
4653
4657
|
},
|
|
4654
4658
|
run: async (input) => {
|
|
4655
|
-
const { googleRequestIndexing } = await import("./google-
|
|
4659
|
+
const { googleRequestIndexing } = await import("./google-UVKWJCD2.js");
|
|
4656
4660
|
const project3 = requireProject(input, "google.request-indexing", "canonry google request-indexing <project> [url] [--all-unindexed] [--wait] [--format json]");
|
|
4657
4661
|
const url = input.positionals[1];
|
|
4658
4662
|
const allUnindexed = getBoolean(input.values, "all-unindexed");
|
|
@@ -4677,7 +4681,7 @@ Usage: ${GOOGLE_PERFORMANCE_USAGE}`,
|
|
|
4677
4681
|
path: ["google", "refresh"],
|
|
4678
4682
|
usage: "canonry google refresh <project> [--format json]",
|
|
4679
4683
|
run: async (input) => {
|
|
4680
|
-
const { googleRefresh } = await import("./google-
|
|
4684
|
+
const { googleRefresh } = await import("./google-UVKWJCD2.js");
|
|
4681
4685
|
const project3 = requireProject(input, "google.refresh", "canonry google refresh <project> [--format json]");
|
|
4682
4686
|
await googleRefresh(project3, input.format);
|
|
4683
4687
|
}
|
|
@@ -4701,7 +4705,7 @@ var KEYS_CLI_COMMANDS = [
|
|
|
4701
4705
|
path: ["key", "list"],
|
|
4702
4706
|
usage: "canonry key list [--format json|jsonl]",
|
|
4703
4707
|
run: async (input) => {
|
|
4704
|
-
const { listApiKeys } = await import("./keys-
|
|
4708
|
+
const { listApiKeys } = await import("./keys-MQKW4JUI.js");
|
|
4705
4709
|
await listApiKeys(input.format);
|
|
4706
4710
|
}
|
|
4707
4711
|
},
|
|
@@ -4715,7 +4719,7 @@ var KEYS_CLI_COMMANDS = [
|
|
|
4715
4719
|
project: stringOption()
|
|
4716
4720
|
},
|
|
4717
4721
|
run: async (input) => {
|
|
4718
|
-
const { createApiKey } = await import("./keys-
|
|
4722
|
+
const { createApiKey } = await import("./keys-MQKW4JUI.js");
|
|
4719
4723
|
const name = requireStringOption(input, "name", {
|
|
4720
4724
|
command: "key.create",
|
|
4721
4725
|
usage: "canonry key create --name <name> [--read-only | --scope <s> ...] [--project <name>] [--format json]",
|
|
@@ -4736,7 +4740,7 @@ var KEYS_CLI_COMMANDS = [
|
|
|
4736
4740
|
path: ["key", "whoami"],
|
|
4737
4741
|
usage: "canonry key whoami [--format json]",
|
|
4738
4742
|
run: async (input) => {
|
|
4739
|
-
const { showApiKeySelf } = await import("./keys-
|
|
4743
|
+
const { showApiKeySelf } = await import("./keys-MQKW4JUI.js");
|
|
4740
4744
|
await showApiKeySelf(input.format);
|
|
4741
4745
|
}
|
|
4742
4746
|
},
|
|
@@ -4744,7 +4748,7 @@ var KEYS_CLI_COMMANDS = [
|
|
|
4744
4748
|
path: ["key", "revoke"],
|
|
4745
4749
|
usage: "canonry key revoke <id> [--format json]",
|
|
4746
4750
|
run: async (input) => {
|
|
4747
|
-
const { revokeApiKey } = await import("./keys-
|
|
4751
|
+
const { revokeApiKey } = await import("./keys-MQKW4JUI.js");
|
|
4748
4752
|
const id2 = requirePositional(input, 0, {
|
|
4749
4753
|
command: "key.revoke",
|
|
4750
4754
|
usage: "canonry key revoke <id> [--format json]",
|
|
@@ -4773,7 +4777,7 @@ var USERS_CLI_COMMANDS = [
|
|
|
4773
4777
|
path: ["user", "list"],
|
|
4774
4778
|
usage: "canonry user list [--format json|jsonl]",
|
|
4775
4779
|
run: async (input) => {
|
|
4776
|
-
const { listUsers } = await import("./users-
|
|
4780
|
+
const { listUsers } = await import("./users-47WKA2TO.js");
|
|
4777
4781
|
await listUsers(input.format);
|
|
4778
4782
|
}
|
|
4779
4783
|
},
|
|
@@ -4788,7 +4792,7 @@ var USERS_CLI_COMMANDS = [
|
|
|
4788
4792
|
"password-stdin": { type: "boolean" }
|
|
4789
4793
|
},
|
|
4790
4794
|
run: async (input) => {
|
|
4791
|
-
const { createUser } = await import("./users-
|
|
4795
|
+
const { createUser } = await import("./users-47WKA2TO.js");
|
|
4792
4796
|
const name = requireStringOption(input, "name", {
|
|
4793
4797
|
command: "user.create",
|
|
4794
4798
|
usage: CREATE_USAGE,
|
|
@@ -4811,7 +4815,7 @@ var USERS_CLI_COMMANDS = [
|
|
|
4811
4815
|
path: ["user", "delete"],
|
|
4812
4816
|
usage: "canonry user delete <name> [--format json]",
|
|
4813
4817
|
run: async (input) => {
|
|
4814
|
-
const { deleteUser } = await import("./users-
|
|
4818
|
+
const { deleteUser } = await import("./users-47WKA2TO.js");
|
|
4815
4819
|
const name = requirePositional(input, 0, {
|
|
4816
4820
|
command: "user.delete",
|
|
4817
4821
|
usage: "canonry user delete <name> [--format json]",
|
|
@@ -4839,7 +4843,7 @@ var KEYWORD_CLI_COMMANDS = [
|
|
|
4839
4843
|
path: ["keyword", "add"],
|
|
4840
4844
|
usage: "canonry keyword add <project> <kw...> [--format json]",
|
|
4841
4845
|
run: async (input) => {
|
|
4842
|
-
const { addKeywords } = await import("./keyword-
|
|
4846
|
+
const { addKeywords } = await import("./keyword-EASMKYZ3.js");
|
|
4843
4847
|
const project3 = requireProject(input, "keyword.add", "canonry keyword add <project> <kw...> [--format json]");
|
|
4844
4848
|
const keywords = input.positionals.slice(1);
|
|
4845
4849
|
if (keywords.length === 0) {
|
|
@@ -4858,7 +4862,7 @@ var KEYWORD_CLI_COMMANDS = [
|
|
|
4858
4862
|
path: ["keyword", "replace"],
|
|
4859
4863
|
usage: "canonry keyword replace <project> <kw...> [--format json]",
|
|
4860
4864
|
run: async (input) => {
|
|
4861
|
-
const { replaceKeywords } = await import("./keyword-
|
|
4865
|
+
const { replaceKeywords } = await import("./keyword-EASMKYZ3.js");
|
|
4862
4866
|
const project3 = requireProject(input, "keyword.replace", "canonry keyword replace <project> <kw...> [--format json]");
|
|
4863
4867
|
const keywords = input.positionals.slice(1);
|
|
4864
4868
|
if (keywords.length === 0) {
|
|
@@ -4877,7 +4881,7 @@ var KEYWORD_CLI_COMMANDS = [
|
|
|
4877
4881
|
path: ["keyword", "remove"],
|
|
4878
4882
|
usage: "canonry keyword remove <project> <kw...> [--format json]",
|
|
4879
4883
|
run: async (input) => {
|
|
4880
|
-
const { removeKeywords } = await import("./keyword-
|
|
4884
|
+
const { removeKeywords } = await import("./keyword-EASMKYZ3.js");
|
|
4881
4885
|
const project3 = requireProject(input, "keyword.remove", "canonry keyword remove <project> <kw...> [--format json]");
|
|
4882
4886
|
const keywords = input.positionals.slice(1);
|
|
4883
4887
|
if (keywords.length === 0) {
|
|
@@ -4896,7 +4900,7 @@ var KEYWORD_CLI_COMMANDS = [
|
|
|
4896
4900
|
path: ["keyword", "delete"],
|
|
4897
4901
|
usage: "canonry keyword delete <project> <kw...> [--format json]",
|
|
4898
4902
|
run: async (input) => {
|
|
4899
|
-
const { removeKeywords } = await import("./keyword-
|
|
4903
|
+
const { removeKeywords } = await import("./keyword-EASMKYZ3.js");
|
|
4900
4904
|
const project3 = requireProject(input, "keyword.delete", "canonry keyword delete <project> <kw...> [--format json]");
|
|
4901
4905
|
const keywords = input.positionals.slice(1);
|
|
4902
4906
|
if (keywords.length === 0) {
|
|
@@ -4915,7 +4919,7 @@ var KEYWORD_CLI_COMMANDS = [
|
|
|
4915
4919
|
path: ["keyword", "list"],
|
|
4916
4920
|
usage: "canonry keyword list <project> [--format json]",
|
|
4917
4921
|
run: async (input) => {
|
|
4918
|
-
const { listKeywords } = await import("./keyword-
|
|
4922
|
+
const { listKeywords } = await import("./keyword-EASMKYZ3.js");
|
|
4919
4923
|
const project3 = requireProject(input, "keyword.list", "canonry keyword list <project> [--format json]");
|
|
4920
4924
|
await listKeywords(project3, input.format);
|
|
4921
4925
|
}
|
|
@@ -4924,7 +4928,7 @@ var KEYWORD_CLI_COMMANDS = [
|
|
|
4924
4928
|
path: ["keyword", "import"],
|
|
4925
4929
|
usage: "canonry keyword import <project> <file> [--format json]",
|
|
4926
4930
|
run: async (input) => {
|
|
4927
|
-
const { importKeywords } = await import("./keyword-
|
|
4931
|
+
const { importKeywords } = await import("./keyword-EASMKYZ3.js");
|
|
4928
4932
|
const project3 = requireProject(input, "keyword.import", "canonry keyword import <project> <file> [--format json]");
|
|
4929
4933
|
const filePath = requirePositional(input, 1, {
|
|
4930
4934
|
command: "keyword.import",
|
|
@@ -4943,7 +4947,7 @@ var KEYWORD_CLI_COMMANDS = [
|
|
|
4943
4947
|
save: { type: "boolean", default: false }
|
|
4944
4948
|
},
|
|
4945
4949
|
run: async (input) => {
|
|
4946
|
-
const { generateKeywords } = await import("./keyword-
|
|
4950
|
+
const { generateKeywords } = await import("./keyword-EASMKYZ3.js");
|
|
4947
4951
|
const project3 = requireProject(
|
|
4948
4952
|
input,
|
|
4949
4953
|
"keyword.generate",
|
|
@@ -4984,7 +4988,7 @@ var QUERY_CLI_COMMANDS = [
|
|
|
4984
4988
|
path: ["query", action],
|
|
4985
4989
|
usage: `canonry query ${action} <project>${action === "workspace" ? "" : " <json|->"} [--format json]`,
|
|
4986
4990
|
run: async (input) => {
|
|
4987
|
-
const { runAdvancedMeasurementOperation: runAdvancedMeasurementOperation2 } = await import("./measurement-plan-
|
|
4991
|
+
const { runAdvancedMeasurementOperation: runAdvancedMeasurementOperation2 } = await import("./measurement-plan-7FQKUOMR.js");
|
|
4988
4992
|
const usage = `canonry query ${action} <project>${action === "workspace" ? "" : " <json|->"} [--format json]`;
|
|
4989
4993
|
const project3 = requireProject(input, `query.${action}`, usage);
|
|
4990
4994
|
const source = action === "workspace" ? void 0 : requirePositional(input, 1, {
|
|
@@ -4999,7 +5003,7 @@ var QUERY_CLI_COMMANDS = [
|
|
|
4999
5003
|
path: ["query", "add"],
|
|
5000
5004
|
usage: "canonry query add <project> <query...> [--format json]",
|
|
5001
5005
|
run: async (input) => {
|
|
5002
|
-
const { addQueries } = await import("./query-
|
|
5006
|
+
const { addQueries } = await import("./query-WAFJKDHG.js");
|
|
5003
5007
|
const project3 = requireProject(input, "query.add", "canonry query add <project> <query...> [--format json]");
|
|
5004
5008
|
const queries = input.positionals.slice(1);
|
|
5005
5009
|
if (queries.length === 0) {
|
|
@@ -5019,7 +5023,7 @@ var QUERY_CLI_COMMANDS = [
|
|
|
5019
5023
|
usage: "canonry query replace <project> <query...> [--dry-run] [--format json]",
|
|
5020
5024
|
supportsDryRun: true,
|
|
5021
5025
|
run: async (input) => {
|
|
5022
|
-
const { replaceQueries } = await import("./query-
|
|
5026
|
+
const { replaceQueries } = await import("./query-WAFJKDHG.js");
|
|
5023
5027
|
const project3 = requireProject(input, "query.replace", "canonry query replace <project> <query...> [--dry-run] [--format json]");
|
|
5024
5028
|
const queries = input.positionals.slice(1);
|
|
5025
5029
|
if (queries.length === 0) {
|
|
@@ -5038,7 +5042,7 @@ var QUERY_CLI_COMMANDS = [
|
|
|
5038
5042
|
path: ["query", "remove"],
|
|
5039
5043
|
usage: "canonry query remove <project> <query...> [--format json]",
|
|
5040
5044
|
run: async (input) => {
|
|
5041
|
-
const { removeQueries } = await import("./query-
|
|
5045
|
+
const { removeQueries } = await import("./query-WAFJKDHG.js");
|
|
5042
5046
|
const project3 = requireProject(input, "query.remove", "canonry query remove <project> <query...> [--format json]");
|
|
5043
5047
|
const queries = input.positionals.slice(1);
|
|
5044
5048
|
if (queries.length === 0) {
|
|
@@ -5057,7 +5061,7 @@ var QUERY_CLI_COMMANDS = [
|
|
|
5057
5061
|
path: ["query", "delete"],
|
|
5058
5062
|
usage: "canonry query delete <project> <query...> [--format json]",
|
|
5059
5063
|
run: async (input) => {
|
|
5060
|
-
const { removeQueries } = await import("./query-
|
|
5064
|
+
const { removeQueries } = await import("./query-WAFJKDHG.js");
|
|
5061
5065
|
const project3 = requireProject(input, "query.delete", "canonry query delete <project> <query...> [--format json]");
|
|
5062
5066
|
const queries = input.positionals.slice(1);
|
|
5063
5067
|
if (queries.length === 0) {
|
|
@@ -5076,7 +5080,7 @@ var QUERY_CLI_COMMANDS = [
|
|
|
5076
5080
|
path: ["query", "list"],
|
|
5077
5081
|
usage: "canonry query list <project> [--format json]",
|
|
5078
5082
|
run: async (input) => {
|
|
5079
|
-
const { listQueries } = await import("./query-
|
|
5083
|
+
const { listQueries } = await import("./query-WAFJKDHG.js");
|
|
5080
5084
|
const project3 = requireProject(input, "query.list", "canonry query list <project> [--format json]");
|
|
5081
5085
|
await listQueries(project3, input.format);
|
|
5082
5086
|
}
|
|
@@ -5085,7 +5089,7 @@ var QUERY_CLI_COMMANDS = [
|
|
|
5085
5089
|
path: ["query", "import"],
|
|
5086
5090
|
usage: "canonry query import <project> <file> [--format json]",
|
|
5087
5091
|
run: async (input) => {
|
|
5088
|
-
const { importQueries } = await import("./query-
|
|
5092
|
+
const { importQueries } = await import("./query-WAFJKDHG.js");
|
|
5089
5093
|
const project3 = requireProject(input, "query.import", "canonry query import <project> <file> [--format json]");
|
|
5090
5094
|
const filePath = requirePositional(input, 1, {
|
|
5091
5095
|
command: "query.import",
|
|
@@ -5104,7 +5108,7 @@ var QUERY_CLI_COMMANDS = [
|
|
|
5104
5108
|
save: { type: "boolean", default: false }
|
|
5105
5109
|
},
|
|
5106
5110
|
run: async (input) => {
|
|
5107
|
-
const { generateQueries } = await import("./query-
|
|
5111
|
+
const { generateQueries } = await import("./query-WAFJKDHG.js");
|
|
5108
5112
|
const project3 = requireProject(
|
|
5109
5113
|
input,
|
|
5110
5114
|
"query.generate",
|
|
@@ -5146,7 +5150,7 @@ var MCP_CLI_COMMANDS = [
|
|
|
5146
5150
|
path: ["mcp", "profile"],
|
|
5147
5151
|
usage: "canonry mcp profile [--format json]",
|
|
5148
5152
|
run: async (input) => {
|
|
5149
|
-
const { showMcpProfile } = await import("./mcp-
|
|
5153
|
+
const { showMcpProfile } = await import("./mcp-ECVT2YGU.js");
|
|
5150
5154
|
await showMcpProfile(input.format);
|
|
5151
5155
|
}
|
|
5152
5156
|
},
|
|
@@ -5162,7 +5166,7 @@ var MCP_CLI_COMMANDS = [
|
|
|
5162
5166
|
"config-path": stringOption()
|
|
5163
5167
|
},
|
|
5164
5168
|
run: async (input) => {
|
|
5165
|
-
const { installMcp } = await import("./mcp-
|
|
5169
|
+
const { installMcp } = await import("./mcp-ECVT2YGU.js");
|
|
5166
5170
|
const usage = `canonry mcp install --client ${CLIENT_LIST} [--name <server>] [--read-only] [--dry-run] [--config-path <path>] [--format json]`;
|
|
5167
5171
|
const client = requireStringOption(input, "client", {
|
|
5168
5172
|
command: "mcp.install",
|
|
@@ -5189,7 +5193,7 @@ var MCP_CLI_COMMANDS = [
|
|
|
5189
5193
|
"read-only": { type: "boolean" }
|
|
5190
5194
|
},
|
|
5191
5195
|
run: async (input) => {
|
|
5192
|
-
const { printMcpConfig } = await import("./mcp-
|
|
5196
|
+
const { printMcpConfig } = await import("./mcp-ECVT2YGU.js");
|
|
5193
5197
|
const usage = `canonry mcp config --client ${CLIENT_LIST} [--name <server>] [--read-only] [--format json]`;
|
|
5194
5198
|
const client = requireStringOption(input, "client", {
|
|
5195
5199
|
command: "mcp.config",
|
|
@@ -5225,7 +5229,7 @@ var NOTIFY_CLI_COMMANDS = [
|
|
|
5225
5229
|
usage: "canonry notify events [--target local|server] [--format json|jsonl]",
|
|
5226
5230
|
options: { target: stringOption() },
|
|
5227
5231
|
run: async (input) => {
|
|
5228
|
-
const { listEvents } = await import("./notify-
|
|
5232
|
+
const { listEvents } = await import("./notify-TC7ARC6W.js");
|
|
5229
5233
|
await listEvents(input.format, getString(input.values, "target"));
|
|
5230
5234
|
}
|
|
5231
5235
|
},
|
|
@@ -5237,7 +5241,7 @@ var NOTIFY_CLI_COMMANDS = [
|
|
|
5237
5241
|
events: stringOption()
|
|
5238
5242
|
},
|
|
5239
5243
|
run: async (input) => {
|
|
5240
|
-
const { addNotification } = await import("./notify-
|
|
5244
|
+
const { addNotification } = await import("./notify-TC7ARC6W.js");
|
|
5241
5245
|
const project3 = requireProject(input, "notify.add", "canonry notify add <project> --webhook <url> --events <list> [--format json]");
|
|
5242
5246
|
const webhook = requireStringOption(input, "webhook", {
|
|
5243
5247
|
command: "notify.add",
|
|
@@ -5260,7 +5264,7 @@ var NOTIFY_CLI_COMMANDS = [
|
|
|
5260
5264
|
path: ["notify", "list"],
|
|
5261
5265
|
usage: "canonry notify list <project> [--format json]",
|
|
5262
5266
|
run: async (input) => {
|
|
5263
|
-
const { listNotifications } = await import("./notify-
|
|
5267
|
+
const { listNotifications } = await import("./notify-TC7ARC6W.js");
|
|
5264
5268
|
const project3 = requireProject(input, "notify.list", "canonry notify list <project> [--format json]");
|
|
5265
5269
|
await listNotifications(project3, input.format);
|
|
5266
5270
|
}
|
|
@@ -5269,7 +5273,7 @@ var NOTIFY_CLI_COMMANDS = [
|
|
|
5269
5273
|
path: ["notify", "remove"],
|
|
5270
5274
|
usage: "canonry notify remove <project> <id> [--format json]",
|
|
5271
5275
|
run: async (input) => {
|
|
5272
|
-
const { removeNotification } = await import("./notify-
|
|
5276
|
+
const { removeNotification } = await import("./notify-TC7ARC6W.js");
|
|
5273
5277
|
const project3 = requireProject(input, "notify.remove", "canonry notify remove <project> <id> [--format json]");
|
|
5274
5278
|
const id2 = requirePositional(input, 1, {
|
|
5275
5279
|
command: "notify.remove",
|
|
@@ -5283,7 +5287,7 @@ var NOTIFY_CLI_COMMANDS = [
|
|
|
5283
5287
|
path: ["notify", "test"],
|
|
5284
5288
|
usage: "canonry notify test <project> <id> [--format json]",
|
|
5285
5289
|
run: async (input) => {
|
|
5286
|
-
const { testNotification } = await import("./notify-
|
|
5290
|
+
const { testNotification } = await import("./notify-TC7ARC6W.js");
|
|
5287
5291
|
const project3 = requireProject(input, "notify.test", "canonry notify test <project> <id> [--format json]");
|
|
5288
5292
|
const id2 = requirePositional(input, 1, {
|
|
5289
5293
|
command: "notify.test",
|
|
@@ -5386,6 +5390,10 @@ Source Rankings (${data.window})`);
|
|
|
5386
5390
|
console.log(`
|
|
5387
5391
|
${provider}: answered, but no answer named a source`);
|
|
5388
5392
|
}
|
|
5393
|
+
for (const provider of data.providersCitationNotMeasured ?? []) {
|
|
5394
|
+
console.log(`
|
|
5395
|
+
${provider}: citations not measured, the engine returns no sources`);
|
|
5396
|
+
}
|
|
5389
5397
|
}
|
|
5390
5398
|
}
|
|
5391
5399
|
function describeScope(data) {
|
|
@@ -5399,6 +5407,9 @@ function describeScope(data) {
|
|
|
5399
5407
|
if (data.unclassifiedAnswers) {
|
|
5400
5408
|
parts.push(`${data.unclassifiedAnswers} unclassified ${data.unclassifiedAnswers === 1 ? "answer" : "answers"} excluded`);
|
|
5401
5409
|
}
|
|
5410
|
+
if (data.citationNotMeasuredAnswers) {
|
|
5411
|
+
parts.push(`${data.citationNotMeasuredAnswers} ${data.citationNotMeasuredAnswers === 1 ? "answer" : "answers"} without sources excluded`);
|
|
5412
|
+
}
|
|
5402
5413
|
return parts.length > 0 ? parts.join(" \xB7 ") : null;
|
|
5403
5414
|
}
|
|
5404
5415
|
function printSurfaceClasses(list) {
|
|
@@ -5447,7 +5458,7 @@ var OPERATOR_CLI_COMMANDS = [
|
|
|
5447
5458
|
usage: RESULTS_CLEAR_USAGE,
|
|
5448
5459
|
options: { run: multiStringOption(), "research-run": multiStringOption(), confirm: { type: "boolean", default: false } },
|
|
5449
5460
|
run: async (input) => {
|
|
5450
|
-
const { clearResults } = await import("./history-
|
|
5461
|
+
const { clearResults } = await import("./history-UTJTUDYK.js");
|
|
5451
5462
|
await clearResults(requireProject(input, "results.clear", RESULTS_CLEAR_USAGE), {
|
|
5452
5463
|
runIds: getStringArray(input.values, "run") ?? [],
|
|
5453
5464
|
researchRunIds: getStringArray(input.values, "research-run") ?? [],
|
|
@@ -5466,7 +5477,7 @@ var OPERATOR_CLI_COMMANDS = [
|
|
|
5466
5477
|
output: { type: "string", short: "o" }
|
|
5467
5478
|
},
|
|
5468
5479
|
run: async (input) => {
|
|
5469
|
-
const { exportResults } = await import("./results-export-
|
|
5480
|
+
const { exportResults } = await import("./results-export-NIZV6R3K.js");
|
|
5470
5481
|
const project3 = requireProject(input, "results export", RESULTS_EXPORT_USAGE);
|
|
5471
5482
|
await exportResults(project3, {
|
|
5472
5483
|
format: parseResultsExportFormat(getString(input.values, "format")),
|
|
@@ -5482,7 +5493,7 @@ var OPERATOR_CLI_COMMANDS = [
|
|
|
5482
5493
|
usage: "canonry status <project>|--all [--problems] [--format json|jsonl]",
|
|
5483
5494
|
options: { all: { type: "boolean", default: false }, problems: { type: "boolean", default: false } },
|
|
5484
5495
|
run: async (input) => {
|
|
5485
|
-
const { showStatus } = await import("./status-
|
|
5496
|
+
const { showStatus } = await import("./status-OYG57DWU.js");
|
|
5486
5497
|
const all = getBoolean(input.values, "all");
|
|
5487
5498
|
const usage = "canonry status <project>|--all [--problems] [--format json|jsonl]";
|
|
5488
5499
|
const project3 = all ? void 0 : requireProject(input, "status", usage);
|
|
@@ -5493,7 +5504,7 @@ var OPERATOR_CLI_COMMANDS = [
|
|
|
5493
5504
|
path: ["evidence"],
|
|
5494
5505
|
usage: "canonry evidence <project> [--format json]",
|
|
5495
5506
|
run: async (input) => {
|
|
5496
|
-
const { showEvidence } = await import("./evidence-
|
|
5507
|
+
const { showEvidence } = await import("./evidence-MYQTCY4V.js");
|
|
5497
5508
|
const project3 = requireProject(input, "evidence", "canonry evidence <project> [--format json]");
|
|
5498
5509
|
await showEvidence(project3, input.format);
|
|
5499
5510
|
}
|
|
@@ -5515,7 +5526,7 @@ var OPERATOR_CLI_COMMANDS = [
|
|
|
5515
5526
|
"entity-type": stringOption()
|
|
5516
5527
|
},
|
|
5517
5528
|
run: async (input) => {
|
|
5518
|
-
const { showHistory } = await import("./history-
|
|
5529
|
+
const { showHistory } = await import("./history-UTJTUDYK.js");
|
|
5519
5530
|
const usage = "canonry history <project> [--limit <1..500>] [--offset <n>] [--since <ISO>] [--until <ISO>] [--action <action>] [--action-prefix <prefix>] [--actor <actor>] [--entity-type <type>] [--exclude-entity-type <type>]... [--entity-id <id>] [--format json|jsonl]\n canonry history --all [same filters]";
|
|
5520
5531
|
if (getBoolean(input.values, "all") && input.positionals.length > 0) throw usageError("Use a project or --all, not both.");
|
|
5521
5532
|
const project3 = getBoolean(input.values, "all") ? void 0 : requireProject(input, "history", usage);
|
|
@@ -5541,7 +5552,7 @@ var OPERATOR_CLI_COMMANDS = [
|
|
|
5541
5552
|
"include-secrets": { type: "boolean", default: false }
|
|
5542
5553
|
},
|
|
5543
5554
|
run: async (input) => {
|
|
5544
|
-
const { exportProject } = await import("./export-cmd-
|
|
5555
|
+
const { exportProject } = await import("./export-cmd-3SUFOJM6.js");
|
|
5545
5556
|
const project3 = requireProject(input, "export", "canonry export <project> [--include-results] [--include-secrets] [--format json]");
|
|
5546
5557
|
await exportProject(project3, {
|
|
5547
5558
|
includeResults: getBoolean(input.values, "include-results"),
|
|
@@ -5560,7 +5571,7 @@ var OPERATOR_CLI_COMMANDS = [
|
|
|
5560
5571
|
"query-class": stringOption()
|
|
5561
5572
|
},
|
|
5562
5573
|
run: async (input) => {
|
|
5563
|
-
const { ANALYTICS_USAGE, parseAnalyticsQueryClass, showAnalytics } = await import("./analytics-
|
|
5574
|
+
const { ANALYTICS_USAGE, parseAnalyticsQueryClass, showAnalytics } = await import("./analytics-EJVOLIQL.js");
|
|
5564
5575
|
const project3 = requireProject(input, "analytics", ANALYTICS_USAGE);
|
|
5565
5576
|
await showAnalytics(project3, {
|
|
5566
5577
|
feature: getString(input.values, "feature"),
|
|
@@ -5607,7 +5618,7 @@ var OPERATOR_CLI_COMMANDS = [
|
|
|
5607
5618
|
usage: "canonry apply <file...> [--dry-run] [--format json]",
|
|
5608
5619
|
supportsDryRun: true,
|
|
5609
5620
|
run: async (input) => {
|
|
5610
|
-
const { applyConfigs } = await import("./apply-
|
|
5621
|
+
const { applyConfigs } = await import("./apply-I6JOM247.js");
|
|
5611
5622
|
if (input.positionals.length === 0) {
|
|
5612
5623
|
throw usageError("Error: at least one file path is required\nUsage: canonry apply <file...> [--format json]", {
|
|
5613
5624
|
message: "at least one file path is required",
|
|
@@ -5627,7 +5638,7 @@ var PROJECT_CLI_COMMANDS = [
|
|
|
5627
5638
|
{
|
|
5628
5639
|
path: ["project", "create"],
|
|
5629
5640
|
usage: "canonry project create <name> [--domain <domain>] [--owned-domain <domain>...] [--alias <name>...] [--qualified-alias <name>...] [--country <code>] [--language <lang>] [--display-name <name>] [--provider <name>...] [--provider-model provider=model...] [--dispatch-mode provider=sync|batch...] [--site-audit-max-pages <1-50000|full>] [--format json]",
|
|
5630
|
-
help:
|
|
5641
|
+
help: 'Create a project. Pass --domain for the public site to scan; without --display-name, the brand name comes from the domain ("summit-roofing.com" gives "Summit Roofing"). Provider credentials are not required for Agent Readiness.',
|
|
5631
5642
|
options: {
|
|
5632
5643
|
domain: { type: "string", short: "d" },
|
|
5633
5644
|
"owned-domain": multiStringOption(),
|
|
@@ -5642,20 +5653,22 @@ var PROJECT_CLI_COMMANDS = [
|
|
|
5642
5653
|
"site-audit-max-pages": stringOption()
|
|
5643
5654
|
},
|
|
5644
5655
|
run: async (input) => {
|
|
5645
|
-
const { createProject } = await import("./project-
|
|
5656
|
+
const { createProject } = await import("./project-WZ2YXFPJ.js");
|
|
5646
5657
|
const name = requireProject(
|
|
5647
5658
|
input,
|
|
5648
5659
|
"project.create",
|
|
5649
5660
|
"canonry project create <name> [--domain <domain>] [--owned-domain <domain>...] [--alias <name>...] [--qualified-alias <name>...] [--country <code>] [--language <lang>] [--display-name <name>] [--provider <name>...] [--provider-model provider=model...] [--dispatch-mode provider=sync|batch...] [--site-audit-max-pages <1-50000|full>] [--format json]"
|
|
5650
5661
|
);
|
|
5662
|
+
const domain = getString(input.values, "domain");
|
|
5651
5663
|
await createProject(name, {
|
|
5652
|
-
domain:
|
|
5664
|
+
domain: domain ?? name,
|
|
5653
5665
|
ownedDomains: getStringArray(input.values, "owned-domain") ?? [],
|
|
5654
5666
|
aliases: getStringArray(input.values, "alias") ?? [],
|
|
5655
5667
|
qualifiedAliases: getStringArray(input.values, "qualified-alias") ?? [],
|
|
5656
5668
|
country: getString(input.values, "country") ?? "US",
|
|
5657
5669
|
language: getString(input.values, "language") ?? "en",
|
|
5658
|
-
|
|
5670
|
+
// As in dashboard setup, a site's brand name comes from its domain ("summit-roofing.com" gives "Summit Roofing").
|
|
5671
|
+
displayName: getString(input.values, "display-name") ?? (domain ? suggestedBrandName(domain) : name),
|
|
5659
5672
|
providers: getStringArray(input.values, "provider") ?? [],
|
|
5660
5673
|
providerModels: parseProviderModelAssignments(getStringArray(input.values, "provider-model")),
|
|
5661
5674
|
providerDispatchModes: parseDispatchModeAssignments(getStringArray(input.values, "dispatch-mode")),
|
|
@@ -5705,7 +5718,7 @@ var PROJECT_CLI_COMMANDS = [
|
|
|
5705
5718
|
"remove-marketing-host": multiStringOption()
|
|
5706
5719
|
},
|
|
5707
5720
|
run: async (input) => {
|
|
5708
|
-
const { updateProjectSettings } = await import("./project-
|
|
5721
|
+
const { updateProjectSettings } = await import("./project-WZ2YXFPJ.js");
|
|
5709
5722
|
const name = requireProject(
|
|
5710
5723
|
input,
|
|
5711
5724
|
"project.update",
|
|
@@ -5762,7 +5775,7 @@ var PROJECT_CLI_COMMANDS = [
|
|
|
5762
5775
|
usage: "canonry project list [--format json]",
|
|
5763
5776
|
allowPositionals: false,
|
|
5764
5777
|
run: async (input) => {
|
|
5765
|
-
const { listProjects } = await import("./project-
|
|
5778
|
+
const { listProjects } = await import("./project-WZ2YXFPJ.js");
|
|
5766
5779
|
await listProjects(input.format);
|
|
5767
5780
|
}
|
|
5768
5781
|
},
|
|
@@ -5770,17 +5783,28 @@ var PROJECT_CLI_COMMANDS = [
|
|
|
5770
5783
|
path: ["project", "show"],
|
|
5771
5784
|
usage: "canonry project show <name> [--format json]",
|
|
5772
5785
|
run: async (input) => {
|
|
5773
|
-
const { showProject } = await import("./project-
|
|
5786
|
+
const { showProject } = await import("./project-WZ2YXFPJ.js");
|
|
5774
5787
|
const name = requireProject(input, "project.show", "canonry project show <name>");
|
|
5775
5788
|
await showProject(name, input.format);
|
|
5776
5789
|
}
|
|
5777
5790
|
},
|
|
5791
|
+
{
|
|
5792
|
+
path: ["project", "setup"],
|
|
5793
|
+
usage: "canonry project setup <project> [--format json]",
|
|
5794
|
+
access: OperationAccesses.stored,
|
|
5795
|
+
help: "Show first-run setup: the Agent Readiness audit scan and the AI Visibility check, each with its latest run, and the next step the server suggests. Stored reads only: no provider calls or crawls. JSON is the API response.",
|
|
5796
|
+
run: async (input) => {
|
|
5797
|
+
const { showProjectSetup } = await import("./project-setup-WV6SPGIV.js");
|
|
5798
|
+
const name = requireProject(input, "project.setup", "canonry project setup <project> [--format json]");
|
|
5799
|
+
await showProjectSetup(name, input.format);
|
|
5800
|
+
}
|
|
5801
|
+
},
|
|
5778
5802
|
{
|
|
5779
5803
|
path: ["project", "delete"],
|
|
5780
5804
|
usage: "canonry project delete <name> [--dry-run] [--format json]",
|
|
5781
5805
|
supportsDryRun: true,
|
|
5782
5806
|
run: async (input) => {
|
|
5783
|
-
const { deleteProject } = await import("./project-
|
|
5807
|
+
const { deleteProject } = await import("./project-WZ2YXFPJ.js");
|
|
5784
5808
|
const name = requireProject(input, "project.delete", "canonry project delete <name> [--dry-run] [--format json]");
|
|
5785
5809
|
await deleteProject(name, { dryRun: input.dryRun, format: input.format });
|
|
5786
5810
|
}
|
|
@@ -5796,7 +5820,7 @@ var PROJECT_CLI_COMMANDS = [
|
|
|
5796
5820
|
timezone: stringOption()
|
|
5797
5821
|
},
|
|
5798
5822
|
run: async (input) => {
|
|
5799
|
-
const { addLocation } = await import("./project-
|
|
5823
|
+
const { addLocation } = await import("./project-WZ2YXFPJ.js");
|
|
5800
5824
|
const name = requireProject(
|
|
5801
5825
|
input,
|
|
5802
5826
|
"project.add-location",
|
|
@@ -5830,7 +5854,7 @@ var PROJECT_CLI_COMMANDS = [
|
|
|
5830
5854
|
path: ["project", "locations"],
|
|
5831
5855
|
usage: "canonry project locations <name> [--format json]",
|
|
5832
5856
|
run: async (input) => {
|
|
5833
|
-
const { listLocations } = await import("./project-
|
|
5857
|
+
const { listLocations } = await import("./project-WZ2YXFPJ.js");
|
|
5834
5858
|
const name = requireProject(input, "project.locations", "canonry project locations <name> [--format json]");
|
|
5835
5859
|
await listLocations(name, input.format);
|
|
5836
5860
|
}
|
|
@@ -5839,7 +5863,7 @@ var PROJECT_CLI_COMMANDS = [
|
|
|
5839
5863
|
path: ["project", "remove-location"],
|
|
5840
5864
|
usage: "canonry project remove-location <name> <label> [--format json]",
|
|
5841
5865
|
run: async (input) => {
|
|
5842
|
-
const { removeLocation } = await import("./project-
|
|
5866
|
+
const { removeLocation } = await import("./project-WZ2YXFPJ.js");
|
|
5843
5867
|
const name = requireProject(input, "project.remove-location", "canonry project remove-location <name> <label> [--format json]");
|
|
5844
5868
|
const label = requirePositional(input, 1, {
|
|
5845
5869
|
command: "project.remove-location",
|
|
@@ -5853,7 +5877,7 @@ var PROJECT_CLI_COMMANDS = [
|
|
|
5853
5877
|
path: ["project", "set-default-location"],
|
|
5854
5878
|
usage: "canonry project set-default-location <name> <label> [--format json]",
|
|
5855
5879
|
run: async (input) => {
|
|
5856
|
-
const { setDefaultLocation } = await import("./project-
|
|
5880
|
+
const { setDefaultLocation } = await import("./project-WZ2YXFPJ.js");
|
|
5857
5881
|
const name = requireProject(input, "project.set-default-location", "canonry project set-default-location <name> <label> [--format json]");
|
|
5858
5882
|
const label = requirePositional(input, 1, {
|
|
5859
5883
|
command: "project.set-default-location",
|
|
@@ -5865,12 +5889,12 @@ var PROJECT_CLI_COMMANDS = [
|
|
|
5865
5889
|
},
|
|
5866
5890
|
{
|
|
5867
5891
|
path: ["project"],
|
|
5868
|
-
usage: "canonry project <create|update|list|show|delete|add-location|locations|remove-location|set-default-location> [args]",
|
|
5892
|
+
usage: "canonry project <create|update|list|show|setup|delete|add-location|locations|remove-location|set-default-location> [args]",
|
|
5869
5893
|
run: async (input) => {
|
|
5870
5894
|
unknownSubcommand(input.positionals[0], {
|
|
5871
5895
|
command: "project",
|
|
5872
|
-
usage: "canonry project <create|update|list|show|delete|add-location|locations|remove-location|set-default-location> [args]",
|
|
5873
|
-
available: ["create", "update", "list", "show", "delete", "add-location", "locations", "remove-location", "set-default-location"]
|
|
5896
|
+
usage: "canonry project <create|update|list|show|setup|delete|add-location|locations|remove-location|set-default-location> [args]",
|
|
5897
|
+
available: ["create", "update", "list", "show", "setup", "delete", "add-location", "locations", "remove-location", "set-default-location"]
|
|
5874
5898
|
});
|
|
5875
5899
|
}
|
|
5876
5900
|
}
|
|
@@ -5984,7 +6008,7 @@ var ORGANIC_EVIDENCE_CLI_COMMANDS = [
|
|
|
5984
6008
|
usage: USAGE3,
|
|
5985
6009
|
options: { period: stringOption() },
|
|
5986
6010
|
run: async (input) => {
|
|
5987
|
-
const { showOrganicEvidence } = await import("./organic-evidence-
|
|
6011
|
+
const { showOrganicEvidence } = await import("./organic-evidence-M34MWJXE.js");
|
|
5988
6012
|
const project3 = requireProject(input, "organic-evidence", USAGE3);
|
|
5989
6013
|
await showOrganicEvidence(project3, {
|
|
5990
6014
|
period: parsePeriod(getString(input.values, "window") ?? getString(input.values, "period")),
|
|
@@ -6009,7 +6033,7 @@ var RUN_LIST_OPTIONS = {
|
|
|
6009
6033
|
since: stringOption()
|
|
6010
6034
|
};
|
|
6011
6035
|
async function listRunsCommand(input) {
|
|
6012
|
-
const { listRuns } = await import("./run-
|
|
6036
|
+
const { listRuns } = await import("./run-ICLPZ7QT.js");
|
|
6013
6037
|
const project3 = requireProject(input, "runs", RUNS_USAGE);
|
|
6014
6038
|
await listRuns(project3, {
|
|
6015
6039
|
format: input.format,
|
|
@@ -6055,7 +6079,7 @@ function parseDispatchMode(value, command, usage) {
|
|
|
6055
6079
|
});
|
|
6056
6080
|
}
|
|
6057
6081
|
async function triggerRunCommand(input, command) {
|
|
6058
|
-
const { triggerRun, triggerRunAll } = await import("./run-
|
|
6082
|
+
const { triggerRun, triggerRunAll } = await import("./run-ICLPZ7QT.js");
|
|
6059
6083
|
const groups = getStringArray(input.values, "group") ?? [];
|
|
6060
6084
|
const targets = getStringArray(input.values, "target") ?? [];
|
|
6061
6085
|
const queries = getStringArray(input.values, "query") ?? [];
|
|
@@ -6125,11 +6149,21 @@ async function triggerRunCommand(input, command) {
|
|
|
6125
6149
|
});
|
|
6126
6150
|
}
|
|
6127
6151
|
var RUN_CLI_COMMANDS = [
|
|
6152
|
+
{
|
|
6153
|
+
path: ["run", "preview"],
|
|
6154
|
+
usage: "canonry run preview <project> [--format json]",
|
|
6155
|
+
access: "stored",
|
|
6156
|
+
help: "Preview the next full manual sweep using saved project defaults. Makes no provider calls. Does not preview scoped or forced launches.",
|
|
6157
|
+
run: async (input) => {
|
|
6158
|
+
const { previewRun } = await import("./run-ICLPZ7QT.js");
|
|
6159
|
+
await previewRun(requireProject(input, "run.preview", "canonry run preview <project> [--format json]"), input.format);
|
|
6160
|
+
}
|
|
6161
|
+
},
|
|
6128
6162
|
{
|
|
6129
6163
|
path: ["run", "show"],
|
|
6130
6164
|
usage: "canonry run show <id> [--format json]",
|
|
6131
6165
|
run: async (input) => {
|
|
6132
|
-
const { showRun } = await import("./run-
|
|
6166
|
+
const { showRun } = await import("./run-ICLPZ7QT.js");
|
|
6133
6167
|
const id2 = requirePositional(input, 0, {
|
|
6134
6168
|
command: "run.show",
|
|
6135
6169
|
usage: "canonry run show <id> [--format json]",
|
|
@@ -6147,7 +6181,7 @@ var RUN_CLI_COMMANDS = [
|
|
|
6147
6181
|
},
|
|
6148
6182
|
supportsDryRun: true,
|
|
6149
6183
|
run: async (input) => {
|
|
6150
|
-
const { fillRun } = await import("./run-
|
|
6184
|
+
const { fillRun } = await import("./run-ICLPZ7QT.js");
|
|
6151
6185
|
if (input.positionals.length === 0 && !input.dryRun) return triggerRunCommand({ ...input, positionals: ["fill"] }, "run");
|
|
6152
6186
|
const runId = requirePositional(input, 0, {
|
|
6153
6187
|
command: "run.fill",
|
|
@@ -6167,7 +6201,7 @@ var RUN_CLI_COMMANDS = [
|
|
|
6167
6201
|
path: ["run", "completeness"],
|
|
6168
6202
|
usage: "canonry run completeness <run-id> [--format json]",
|
|
6169
6203
|
run: async (input) => {
|
|
6170
|
-
const { showRunCompleteness } = await import("./run-
|
|
6204
|
+
const { showRunCompleteness } = await import("./run-ICLPZ7QT.js");
|
|
6171
6205
|
if (input.positionals.length === 0) return triggerRunCommand({ ...input, positionals: ["completeness"] }, "run");
|
|
6172
6206
|
const runId = requirePositional(input, 0, {
|
|
6173
6207
|
command: "run.completeness",
|
|
@@ -6181,7 +6215,7 @@ var RUN_CLI_COMMANDS = [
|
|
|
6181
6215
|
path: ["run", "cancel"],
|
|
6182
6216
|
usage: "canonry run cancel <project> [run-id] [--format json]",
|
|
6183
6217
|
run: async (input) => {
|
|
6184
|
-
const { cancelRun } = await import("./run-
|
|
6218
|
+
const { cancelRun } = await import("./run-ICLPZ7QT.js");
|
|
6185
6219
|
const project3 = requireProject(input, "run.cancel", "canonry run cancel <project> [run-id] [--format json]");
|
|
6186
6220
|
await cancelRun(project3, input.positionals[1], input.format);
|
|
6187
6221
|
}
|
|
@@ -6228,10 +6262,29 @@ var SCHEDULE_CLI_COMMANDS = [
|
|
|
6228
6262
|
path: ["schedule", "list"],
|
|
6229
6263
|
usage: "canonry schedule list <project> [--format json|jsonl]",
|
|
6230
6264
|
run: async (input) => {
|
|
6231
|
-
const { listSchedules } = await import("./schedule-
|
|
6265
|
+
const { listSchedules } = await import("./schedule-4C44LQ7R.js");
|
|
6232
6266
|
await listSchedules(requireProject(input, "schedule.list", "canonry schedule list <project>"), input.format);
|
|
6233
6267
|
}
|
|
6234
6268
|
},
|
|
6269
|
+
{
|
|
6270
|
+
path: ["schedule", "preview"],
|
|
6271
|
+
usage: "canonry schedule preview <project> (--preset <preset> | --cron <expr> | --every-days <n> --start-date <YYYY-MM-DD> --at <HH:mm>) [--timezone <tz>] [--format json]",
|
|
6272
|
+
help: "Preview the next occurrence without saving a schedule or starting work. Defaults to UTC when --timezone is omitted.",
|
|
6273
|
+
options: { preset: stringOption(), cron: stringOption(), "every-days": stringOption(), "start-date": stringOption(), at: stringOption(), timezone: stringOption() },
|
|
6274
|
+
run: async (input) => {
|
|
6275
|
+
const { previewSchedule } = await import("./schedule-4C44LQ7R.js");
|
|
6276
|
+
const project3 = requireProject(input, "schedule.preview", "canonry schedule preview <project> --preset <preset> [--timezone <tz>]");
|
|
6277
|
+
const everyDays = getString(input.values, "every-days");
|
|
6278
|
+
const startDate = getString(input.values, "start-date");
|
|
6279
|
+
const at = getString(input.values, "at");
|
|
6280
|
+
await previewSchedule(project3, {
|
|
6281
|
+
preset: getString(input.values, "preset"),
|
|
6282
|
+
cron: getString(input.values, "cron"),
|
|
6283
|
+
timezone: getString(input.values, "timezone"),
|
|
6284
|
+
...[everyDays, startDate, at].some((value) => value !== void 0) ? { recurrence: { everyDays: Number(everyDays), startDate: startDate ?? "", time: at ?? "" } } : {}
|
|
6285
|
+
}, input.format);
|
|
6286
|
+
}
|
|
6287
|
+
},
|
|
6235
6288
|
{
|
|
6236
6289
|
path: ["schedule", "set"],
|
|
6237
6290
|
usage: "canonry schedule set <project> (--preset <preset> | --cron <expr> | --every-days <n> --start-date <YYYY-MM-DD> --at <HH:mm>) [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh|backlinks-sync|site-audit|ads-sync|doctor|seo-sync] [--source <id>] [--timezone <tz>] [--provider <name>...] [--check-dead-links] [--include-geo] [--no-agent-skills] [--default-checks] [--format json]",
|
|
@@ -6255,7 +6308,7 @@ var SCHEDULE_CLI_COMMANDS = [
|
|
|
6255
6308
|
"default-checks": { type: "boolean", default: false }
|
|
6256
6309
|
},
|
|
6257
6310
|
run: async (input) => {
|
|
6258
|
-
const { setSchedule } = await import("./schedule-
|
|
6311
|
+
const { setSchedule } = await import("./schedule-4C44LQ7R.js");
|
|
6259
6312
|
const usage = "canonry schedule set <project> (--preset <preset> | --cron <expr> | --every-days <n> --start-date <YYYY-MM-DD> --at <HH:mm>) [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh|backlinks-sync|site-audit|ads-sync|doctor|seo-sync] [--source <id>] [--timezone <tz>] [--provider <name>...] [--check-dead-links] [--include-geo] [--no-agent-skills] [--default-checks] [--format json]";
|
|
6260
6313
|
const project3 = requireProject(input, "schedule.set", usage);
|
|
6261
6314
|
const preset = getString(input.values, "preset");
|
|
@@ -6316,7 +6369,7 @@ var SCHEDULE_CLI_COMMANDS = [
|
|
|
6316
6369
|
usage: "canonry schedule show <project> [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh|backlinks-sync|site-audit|ads-sync|doctor|seo-sync] [--format json]",
|
|
6317
6370
|
options: { kind: stringOption() },
|
|
6318
6371
|
run: async (input) => {
|
|
6319
|
-
const { showSchedule } = await import("./schedule-
|
|
6372
|
+
const { showSchedule } = await import("./schedule-4C44LQ7R.js");
|
|
6320
6373
|
const project3 = requireProject(input, "schedule.show", "canonry schedule show <project> [--kind ...]");
|
|
6321
6374
|
await showSchedule(project3, input.format, getString(input.values, "kind"));
|
|
6322
6375
|
}
|
|
@@ -6326,7 +6379,7 @@ var SCHEDULE_CLI_COMMANDS = [
|
|
|
6326
6379
|
usage: "canonry schedule enable <project> [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh|backlinks-sync|site-audit|ads-sync|doctor|seo-sync] [--format json]",
|
|
6327
6380
|
options: { kind: stringOption() },
|
|
6328
6381
|
run: async (input) => {
|
|
6329
|
-
const { enableSchedule } = await import("./schedule-
|
|
6382
|
+
const { enableSchedule } = await import("./schedule-4C44LQ7R.js");
|
|
6330
6383
|
const project3 = requireProject(input, "schedule.enable", "canonry schedule enable <project> [--kind ...]");
|
|
6331
6384
|
await enableSchedule(project3, input.format, getString(input.values, "kind"));
|
|
6332
6385
|
}
|
|
@@ -6336,7 +6389,7 @@ var SCHEDULE_CLI_COMMANDS = [
|
|
|
6336
6389
|
usage: "canonry schedule disable <project> [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh|backlinks-sync|site-audit|ads-sync|doctor|seo-sync] [--format json]",
|
|
6337
6390
|
options: { kind: stringOption() },
|
|
6338
6391
|
run: async (input) => {
|
|
6339
|
-
const { disableSchedule } = await import("./schedule-
|
|
6392
|
+
const { disableSchedule } = await import("./schedule-4C44LQ7R.js");
|
|
6340
6393
|
const project3 = requireProject(input, "schedule.disable", "canonry schedule disable <project> [--kind ...]");
|
|
6341
6394
|
await disableSchedule(project3, input.format, getString(input.values, "kind"));
|
|
6342
6395
|
}
|
|
@@ -6346,50 +6399,93 @@ var SCHEDULE_CLI_COMMANDS = [
|
|
|
6346
6399
|
usage: "canonry schedule remove <project> [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh|backlinks-sync|site-audit|ads-sync|doctor|seo-sync] [--format json]",
|
|
6347
6400
|
options: { kind: stringOption() },
|
|
6348
6401
|
run: async (input) => {
|
|
6349
|
-
const { removeSchedule } = await import("./schedule-
|
|
6402
|
+
const { removeSchedule } = await import("./schedule-4C44LQ7R.js");
|
|
6350
6403
|
const project3 = requireProject(input, "schedule.remove", "canonry schedule remove <project> [--kind ...]");
|
|
6351
6404
|
await removeSchedule(project3, input.format, getString(input.values, "kind"));
|
|
6352
6405
|
}
|
|
6353
6406
|
},
|
|
6354
6407
|
{
|
|
6355
6408
|
path: ["schedule"],
|
|
6356
|
-
usage: "canonry schedule <list|set|show|enable|disable|remove> <project>",
|
|
6409
|
+
usage: "canonry schedule <list|preview|set|show|enable|disable|remove> <project>",
|
|
6357
6410
|
run: async (input) => {
|
|
6358
6411
|
unknownSubcommand(input.positionals[0], {
|
|
6359
6412
|
command: "schedule",
|
|
6360
|
-
usage: "canonry schedule <list|set|show|enable|disable|remove> <project>",
|
|
6361
|
-
available: ["list", "set", "show", "enable", "disable", "remove"]
|
|
6413
|
+
usage: "canonry schedule <list|preview|set|show|enable|disable|remove> <project>",
|
|
6414
|
+
available: ["list", "preview", "set", "show", "enable", "disable", "remove"]
|
|
6362
6415
|
});
|
|
6363
6416
|
}
|
|
6364
6417
|
}
|
|
6365
6418
|
];
|
|
6366
6419
|
|
|
6367
6420
|
// src/cli-commands/settings.ts
|
|
6421
|
+
var PROVIDER_USAGE = "canonry settings provider <name> [--api-key <key>] [--base-url <url> | --reset-base-url] [--model <model> | --reset-model] [--remove-key] [--max-concurrent <n>] [--max-per-minute <n>] [--max-per-day <n>] [--reset-quota <field>] [--reset-limits] [--if-revision <revision>] [--format json]";
|
|
6422
|
+
var PROVIDER_TEST_USAGE = "canonry settings provider test <name> [--format json]";
|
|
6368
6423
|
var SETTINGS_CLI_COMMANDS = [
|
|
6424
|
+
{
|
|
6425
|
+
path: ["settings", "provider-info"],
|
|
6426
|
+
usage: "canonry settings provider-info <name> [--format json]",
|
|
6427
|
+
run: async (input) => {
|
|
6428
|
+
const { showProviderSettings } = await import("./settings-BOF5Z7ML.js");
|
|
6429
|
+
const name = requirePositional(input, 0, { command: "settings.provider-info", usage: "canonry settings provider-info <name> [--format json]", message: "provider name is required" });
|
|
6430
|
+
await showProviderSettings(name, input.format);
|
|
6431
|
+
}
|
|
6432
|
+
},
|
|
6433
|
+
{
|
|
6434
|
+
path: ["settings", "disconnect-provider"],
|
|
6435
|
+
usage: "canonry settings disconnect-provider <name> [--confirm] [--if-impact-revision <revision>] [--format json]",
|
|
6436
|
+
options: { confirm: { type: "boolean" }, "if-impact-revision": stringOption() },
|
|
6437
|
+
accessFor: ({ values }) => getBoolean(values, "confirm") ? OperationAccesses.write : OperationAccesses.stored,
|
|
6438
|
+
run: async (input) => {
|
|
6439
|
+
const { disconnectProvider } = await import("./settings-BOF5Z7ML.js");
|
|
6440
|
+
const name = requirePositional(input, 0, { command: "settings.disconnect-provider", usage: "canonry settings disconnect-provider <name> [--confirm] [--format json]", message: "provider name is required" });
|
|
6441
|
+
await disconnectProvider(name, { confirm: getBoolean(input.values, "confirm"), expectedImpactRevision: getString(input.values, "if-impact-revision"), format: input.format });
|
|
6442
|
+
}
|
|
6443
|
+
},
|
|
6369
6444
|
{
|
|
6370
6445
|
path: ["settings", "reload-providers"],
|
|
6371
6446
|
usage: "canonry settings reload-providers [--format json]",
|
|
6372
6447
|
run: async (input) => {
|
|
6373
|
-
const { reloadProviders } = await import("./settings-
|
|
6448
|
+
const { reloadProviders } = await import("./settings-BOF5Z7ML.js");
|
|
6374
6449
|
return reloadProviders(input.format);
|
|
6375
6450
|
}
|
|
6376
6451
|
},
|
|
6452
|
+
{
|
|
6453
|
+
// Longer than `settings provider <name>`, so dispatch picks it for `provider test`.
|
|
6454
|
+
path: ["settings", "provider", "test"],
|
|
6455
|
+
usage: PROVIDER_TEST_USAGE,
|
|
6456
|
+
help: "Checks the saved connection with the provider now and changes no settings. Most answer engines answer one tiny prompt on your provider account; Local lists its models; OpenRouter reads its key. Exit 0: connected, or saved but not verifiable for free. Exit 2: the provider refused the settings or did not answer. Exit 1: unknown or unconfigured provider.",
|
|
6457
|
+
run: async (input) => {
|
|
6458
|
+
const { testProvider } = await import("./settings-BOF5Z7ML.js");
|
|
6459
|
+
const name = requirePositional(input, 0, {
|
|
6460
|
+
command: "settings.provider.test",
|
|
6461
|
+
usage: PROVIDER_TEST_USAGE,
|
|
6462
|
+
message: "provider name is required (e.g. gemini, openai, claude, perplexity, muse, local, openrouter)"
|
|
6463
|
+
});
|
|
6464
|
+
await testProvider(name, input.format);
|
|
6465
|
+
}
|
|
6466
|
+
},
|
|
6377
6467
|
{
|
|
6378
6468
|
path: ["settings", "provider"],
|
|
6379
|
-
usage:
|
|
6469
|
+
usage: PROVIDER_USAGE,
|
|
6380
6470
|
options: {
|
|
6381
6471
|
"api-key": stringOption(),
|
|
6382
6472
|
"base-url": stringOption(),
|
|
6383
6473
|
model: stringOption(),
|
|
6384
6474
|
"max-concurrent": stringOption(),
|
|
6385
6475
|
"max-per-minute": stringOption(),
|
|
6386
|
-
"max-per-day": stringOption()
|
|
6476
|
+
"max-per-day": stringOption(),
|
|
6477
|
+
"reset-model": { type: "boolean" },
|
|
6478
|
+
"reset-base-url": { type: "boolean" },
|
|
6479
|
+
"remove-key": { type: "boolean" },
|
|
6480
|
+
"reset-limits": { type: "boolean" },
|
|
6481
|
+
"reset-quota": multiStringOption(),
|
|
6482
|
+
"if-revision": stringOption()
|
|
6387
6483
|
},
|
|
6388
6484
|
run: async (input) => {
|
|
6389
|
-
const { setProvider } = await import("./settings-
|
|
6485
|
+
const { setProvider } = await import("./settings-BOF5Z7ML.js");
|
|
6390
6486
|
const name = requirePositional(input, 0, {
|
|
6391
6487
|
command: "settings.provider",
|
|
6392
|
-
usage:
|
|
6488
|
+
usage: PROVIDER_USAGE,
|
|
6393
6489
|
message: "provider name is required (e.g. gemini, openai, claude, perplexity, muse, local)"
|
|
6394
6490
|
});
|
|
6395
6491
|
const apiKey = getString(input.values, "api-key");
|
|
@@ -6397,60 +6493,46 @@ var SETTINGS_CLI_COMMANDS = [
|
|
|
6397
6493
|
const model = getString(input.values, "model");
|
|
6398
6494
|
const maxConcurrency = parseIntegerOption(input, "max-concurrent", {
|
|
6399
6495
|
command: "settings.provider",
|
|
6400
|
-
usage:
|
|
6496
|
+
usage: PROVIDER_USAGE,
|
|
6401
6497
|
message: "--max-concurrent must be an integer"
|
|
6402
6498
|
});
|
|
6403
6499
|
const maxRequestsPerMinute = parseIntegerOption(input, "max-per-minute", {
|
|
6404
6500
|
command: "settings.provider",
|
|
6405
|
-
usage:
|
|
6501
|
+
usage: PROVIDER_USAGE,
|
|
6406
6502
|
message: "--max-per-minute must be an integer"
|
|
6407
6503
|
});
|
|
6408
6504
|
const maxRequestsPerDay = parseIntegerOption(input, "max-per-day", {
|
|
6409
6505
|
command: "settings.provider",
|
|
6410
|
-
usage:
|
|
6506
|
+
usage: PROVIDER_USAGE,
|
|
6411
6507
|
message: "--max-per-day must be an integer"
|
|
6412
6508
|
});
|
|
6413
|
-
const hasNonCredentialEdit = Boolean(model) || maxConcurrency != null || maxRequestsPerMinute != null || maxRequestsPerDay != null;
|
|
6414
|
-
if (name === "local") {
|
|
6415
|
-
if (!baseUrl && !hasNonCredentialEdit) {
|
|
6416
|
-
throw usageError(
|
|
6417
|
-
"Error: --base-url is required for the local provider\nUsage: canonry settings provider local --base-url <url> [--api-key <key>] [--model <model>] [--max-concurrent <n>] [--max-per-minute <n>] [--max-per-day <n>] [--format json]",
|
|
6418
|
-
{
|
|
6419
|
-
message: "--base-url is required for the local provider",
|
|
6420
|
-
details: {
|
|
6421
|
-
command: "settings.provider",
|
|
6422
|
-
usage: "canonry settings provider local --base-url <url> [--api-key <key>] [--model <model>] [--max-concurrent <n>] [--max-per-minute <n>] [--max-per-day <n>] [--format json]",
|
|
6423
|
-
required: ["base-url"]
|
|
6424
|
-
}
|
|
6425
|
-
}
|
|
6426
|
-
);
|
|
6427
|
-
}
|
|
6428
|
-
} else if (!apiKey && !baseUrl && !hasNonCredentialEdit) {
|
|
6429
|
-
throw usageError(
|
|
6430
|
-
`Error: --api-key is required
|
|
6431
|
-
Usage: canonry settings provider ${name} --api-key <key> [--model <model>] [--max-concurrent <n>] [--max-per-minute <n>] [--max-per-day <n>] [--format json]`,
|
|
6432
|
-
{
|
|
6433
|
-
message: "--api-key is required",
|
|
6434
|
-
details: {
|
|
6435
|
-
command: "settings.provider",
|
|
6436
|
-
usage: `canonry settings provider ${name} --api-key <key> [--model <model>] [--max-concurrent <n>] [--max-per-minute <n>] [--max-per-day <n>] [--format json]`,
|
|
6437
|
-
required: ["api-key"]
|
|
6438
|
-
}
|
|
6439
|
-
}
|
|
6440
|
-
);
|
|
6441
|
-
}
|
|
6442
6509
|
const quota = maxConcurrency != null || maxRequestsPerMinute != null || maxRequestsPerDay != null ? {
|
|
6443
6510
|
...maxConcurrency != null ? { maxConcurrency } : {},
|
|
6444
6511
|
...maxRequestsPerMinute != null ? { maxRequestsPerMinute } : {},
|
|
6445
6512
|
...maxRequestsPerDay != null ? { maxRequestsPerDay } : {}
|
|
6446
6513
|
} : void 0;
|
|
6447
|
-
|
|
6448
|
-
|
|
6449
|
-
|
|
6450
|
-
|
|
6451
|
-
|
|
6452
|
-
|
|
6453
|
-
|
|
6514
|
+
const resetQuota = getBoolean(input.values, "reset-limits") ? Object.values(ProviderQuotaFields) : getStringArray(input.values, "reset-quota");
|
|
6515
|
+
const resetModel = getBoolean(input.values, "reset-model");
|
|
6516
|
+
const removeKey = getBoolean(input.values, "remove-key");
|
|
6517
|
+
const resetBaseUrl = getBoolean(input.values, "reset-base-url");
|
|
6518
|
+
const reset = resetModel || removeKey || resetQuota || resetBaseUrl ? { ...resetBaseUrl ? { baseUrl: true } : {}, ...resetModel ? { model: true } : {}, ...removeKey ? { apiKey: true } : {}, ...resetQuota ? { quota: resetQuota } : {} } : void 0;
|
|
6519
|
+
const mutation = { apiKey, baseUrl, model, quota, reset };
|
|
6520
|
+
if (Object.values(mutation).every((value) => value === void 0)) {
|
|
6521
|
+
const required = name === ProviderNames.local ? "base-url" : "api-key";
|
|
6522
|
+
const message = required === "base-url" ? "--base-url is required for the local provider" : "--api-key is required";
|
|
6523
|
+
throw usageError(`Error: ${message}
|
|
6524
|
+
Usage: ${PROVIDER_USAGE}`, {
|
|
6525
|
+
message,
|
|
6526
|
+
details: { command: "settings.provider", usage: PROVIDER_USAGE, required: [required] }
|
|
6527
|
+
});
|
|
6528
|
+
}
|
|
6529
|
+
const parsed = providerSettingsUpdateRequestSchema.safeParse({ ...mutation, expectedRevision: getString(input.values, "if-revision") });
|
|
6530
|
+
if (!parsed.success) {
|
|
6531
|
+
const message = parsed.error.issues.map((issue) => issue.message).join("; ");
|
|
6532
|
+
throw usageError(`Error: ${message}
|
|
6533
|
+
Usage: ${PROVIDER_USAGE}`, { message, details: { command: "settings.provider", usage: PROVIDER_USAGE } });
|
|
6534
|
+
}
|
|
6535
|
+
await setProvider(name, { ...parsed.data, format: input.format });
|
|
6454
6536
|
}
|
|
6455
6537
|
},
|
|
6456
6538
|
{
|
|
@@ -6462,7 +6544,7 @@ Usage: canonry settings provider ${name} --api-key <key> [--model <model>] [--ma
|
|
|
6462
6544
|
target: stringOption()
|
|
6463
6545
|
},
|
|
6464
6546
|
run: async (input) => {
|
|
6465
|
-
const { setGoogleAuth } = await import("./settings-
|
|
6547
|
+
const { setGoogleAuth } = await import("./settings-BOF5Z7ML.js");
|
|
6466
6548
|
const clientId = getString(input.values, "client-id");
|
|
6467
6549
|
const clientSecret = getString(input.values, "client-secret");
|
|
6468
6550
|
if (!clientId || !clientSecret) {
|
|
@@ -6503,9 +6585,9 @@ Usage: canonry settings provider ${name} --api-key <key> [--model <model>] [--ma
|
|
|
6503
6585
|
},
|
|
6504
6586
|
{
|
|
6505
6587
|
path: ["settings"],
|
|
6506
|
-
usage: "canonry settings [provider|reload-providers|google] [args]",
|
|
6588
|
+
usage: "canonry settings [provider|provider-info|disconnect-provider|reload-providers|google] [args]",
|
|
6507
6589
|
run: async (input) => {
|
|
6508
|
-
const { showSettings } = await import("./settings-
|
|
6590
|
+
const { showSettings } = await import("./settings-BOF5Z7ML.js");
|
|
6509
6591
|
const subcommand = input.positionals[0];
|
|
6510
6592
|
if (!subcommand) {
|
|
6511
6593
|
await showSettings(input.format);
|
|
@@ -6513,8 +6595,8 @@ Usage: canonry settings provider ${name} --api-key <key> [--model <model>] [--ma
|
|
|
6513
6595
|
}
|
|
6514
6596
|
unknownSubcommand(subcommand, {
|
|
6515
6597
|
command: "settings",
|
|
6516
|
-
usage: "canonry settings [provider|reload-providers|google] [args]",
|
|
6517
|
-
available: ["provider", "reload-providers", "google"]
|
|
6598
|
+
usage: "canonry settings [provider|provider-info|disconnect-provider|reload-providers|google] [args]",
|
|
6599
|
+
available: ["provider", "provider-info", "disconnect-provider", "reload-providers", "google"]
|
|
6518
6600
|
});
|
|
6519
6601
|
}
|
|
6520
6602
|
}
|
|
@@ -6526,7 +6608,7 @@ var SKILLS_CLI_COMMANDS = [
|
|
|
6526
6608
|
path: ["skills", "list"],
|
|
6527
6609
|
usage: "canonry skills list [--format json]",
|
|
6528
6610
|
run: async (input) => {
|
|
6529
|
-
const { listSkills } = await import("./skills-
|
|
6611
|
+
const { listSkills } = await import("./skills-X5SR4HRO.js");
|
|
6530
6612
|
await listSkills({ format: input.format });
|
|
6531
6613
|
}
|
|
6532
6614
|
},
|
|
@@ -6541,7 +6623,7 @@ var SKILLS_CLI_COMMANDS = [
|
|
|
6541
6623
|
},
|
|
6542
6624
|
allowPositionals: true,
|
|
6543
6625
|
run: async (input) => {
|
|
6544
|
-
const { emitInstallSummary, installSkills, parseSkillsClient } = await import("./skills-
|
|
6626
|
+
const { emitInstallSummary, installSkills, parseSkillsClient } = await import("./skills-X5SR4HRO.js");
|
|
6545
6627
|
const summary = await installSkills({
|
|
6546
6628
|
dir: getString(input.values, "dir"),
|
|
6547
6629
|
user: getBoolean(input.values, "user"),
|
|
@@ -6588,7 +6670,7 @@ var SNAPSHOT_CLI_COMMANDS = [
|
|
|
6588
6670
|
output: stringOption()
|
|
6589
6671
|
},
|
|
6590
6672
|
run: async (input) => {
|
|
6591
|
-
const { createSnapshotReport } = await import("./snapshot-
|
|
6673
|
+
const { createSnapshotReport } = await import("./snapshot-KLKE37VY.js");
|
|
6592
6674
|
const usage = SNAPSHOT_USAGE;
|
|
6593
6675
|
const companyName = requirePositional(input, 0, {
|
|
6594
6676
|
command: "snapshot",
|
|
@@ -6641,7 +6723,7 @@ var INTELLIGENCE_CLI_COMMANDS = [
|
|
|
6641
6723
|
limit: { type: "string" }
|
|
6642
6724
|
},
|
|
6643
6725
|
run: async (input) => {
|
|
6644
|
-
const { listInsights } = await import("./insights-
|
|
6726
|
+
const { listInsights } = await import("./insights-UHCVCZ76.js");
|
|
6645
6727
|
const usage = "canonry insights <project> [--type <type|prefix*>] [--severity <low|medium|high|critical>] [--limit <n>] [--dismissed] [--run-id <id>] [--format json]";
|
|
6646
6728
|
const project3 = requireProject(input, "insights", usage);
|
|
6647
6729
|
const dismissed = input.values.dismissed === true;
|
|
@@ -6657,7 +6739,7 @@ var INTELLIGENCE_CLI_COMMANDS = [
|
|
|
6657
6739
|
usage: "canonry insights dismiss <project> <id> [--format json]",
|
|
6658
6740
|
options: {},
|
|
6659
6741
|
run: async (input) => {
|
|
6660
|
-
const { dismissInsight } = await import("./insights-
|
|
6742
|
+
const { dismissInsight } = await import("./insights-UHCVCZ76.js");
|
|
6661
6743
|
const usage = "canonry insights dismiss <project> <id> [--format json]";
|
|
6662
6744
|
const project3 = requireProject(input, "insights dismiss", usage);
|
|
6663
6745
|
const id2 = requirePositional(input, 1, { command: "insights dismiss", usage, message: "insight ID is required" });
|
|
@@ -6672,7 +6754,7 @@ var INTELLIGENCE_CLI_COMMANDS = [
|
|
|
6672
6754
|
limit: { type: "string" }
|
|
6673
6755
|
},
|
|
6674
6756
|
run: async (input) => {
|
|
6675
|
-
const { showHealth } = await import("./health-cmd-
|
|
6757
|
+
const { showHealth } = await import("./health-cmd-DOZXGI46.js");
|
|
6676
6758
|
const usage = "canonry health <project> [--history] [--limit <n>] [--format json]";
|
|
6677
6759
|
const project3 = requireProject(input, "health", usage);
|
|
6678
6760
|
const history = input.values.history === true;
|
|
@@ -6694,7 +6776,7 @@ var INTELLIGENCE_CLI_COMMANDS = [
|
|
|
6694
6776
|
},
|
|
6695
6777
|
allowPositionals: true,
|
|
6696
6778
|
run: async (input) => {
|
|
6697
|
-
const { showAllOverviews, showOverview } = await import("./overview-
|
|
6779
|
+
const { showAllOverviews, showOverview } = await import("./overview-P6BRMXJN.js");
|
|
6698
6780
|
const usage = "canonry overview <project>|--all [--location <label>] [--since <iso>] [--format json]";
|
|
6699
6781
|
const all = getBoolean(input.values, "all");
|
|
6700
6782
|
const location = getString(input.values, "location");
|
|
@@ -6714,7 +6796,7 @@ var INTELLIGENCE_CLI_COMMANDS = [
|
|
|
6714
6796
|
limit: { type: "string" }
|
|
6715
6797
|
},
|
|
6716
6798
|
run: async (input) => {
|
|
6717
|
-
const { searchProject } = await import("./search-
|
|
6799
|
+
const { searchProject } = await import("./search-UJM7KII3.js");
|
|
6718
6800
|
const usage = "canonry search <project> <query> [--limit <n>] [--format json]";
|
|
6719
6801
|
const project3 = requireProject(input, "search", usage);
|
|
6720
6802
|
const query = requirePositional(input, 1, { command: "search", usage, message: "query is required" });
|
|
@@ -6731,7 +6813,7 @@ var INTELLIGENCE_CLI_COMMANDS = [
|
|
|
6731
6813
|
usage: "canonry citations visibility <project> [--format json]",
|
|
6732
6814
|
options: {},
|
|
6733
6815
|
run: async (input) => {
|
|
6734
|
-
const { showCitationVisibility } = await import("./citations-
|
|
6816
|
+
const { showCitationVisibility } = await import("./citations-LOEQRDUB.js");
|
|
6735
6817
|
const usage = "canonry citations visibility <project> [--format json]";
|
|
6736
6818
|
const project3 = requireProject(input, "citations visibility", usage);
|
|
6737
6819
|
await showCitationVisibility(project3, { format: input.format });
|
|
@@ -6747,7 +6829,7 @@ var CONTENT_CLI_COMMANDS = [
|
|
|
6747
6829
|
help: "List persisted addressed content targets, including those hidden from content targets.",
|
|
6748
6830
|
options: {},
|
|
6749
6831
|
run: async (input) => {
|
|
6750
|
-
const { listContentDismissals } = await import("./content-
|
|
6832
|
+
const { listContentDismissals } = await import("./content-PJGW4WZF.js");
|
|
6751
6833
|
const project3 = requireProject(input, "content dismissals", "canonry content dismissals <project> [--format json|jsonl]");
|
|
6752
6834
|
await listContentDismissals(project3, { format: input.format });
|
|
6753
6835
|
}
|
|
@@ -6758,7 +6840,7 @@ var CONTENT_CLI_COMMANDS = [
|
|
|
6758
6840
|
help: "Mark a content target addressed. Restore it with content restore.",
|
|
6759
6841
|
options: { "addressed-url": { type: "string" }, note: { type: "string" } },
|
|
6760
6842
|
run: async (input) => {
|
|
6761
|
-
const { dismissContentTarget } = await import("./content-
|
|
6843
|
+
const { dismissContentTarget } = await import("./content-PJGW4WZF.js");
|
|
6762
6844
|
const usage = "canonry content dismiss <project> <targetRef> [--addressed-url <url>] [--note <text>] [--format json]";
|
|
6763
6845
|
const project3 = requireProject(input, "content dismiss", usage);
|
|
6764
6846
|
const targetRef = requirePositional(input, 1, { command: "content dismiss", usage, message: "targetRef is required (from content targets)" });
|
|
@@ -6771,7 +6853,7 @@ var CONTENT_CLI_COMMANDS = [
|
|
|
6771
6853
|
help: "Remove a persisted dismissal so an eligible target can appear again.",
|
|
6772
6854
|
options: {},
|
|
6773
6855
|
run: async (input) => {
|
|
6774
|
-
const { restoreContentTarget } = await import("./content-
|
|
6856
|
+
const { restoreContentTarget } = await import("./content-PJGW4WZF.js");
|
|
6775
6857
|
const usage = "canonry content restore <project> <targetRef> [--format json]";
|
|
6776
6858
|
const project3 = requireProject(input, "content restore", usage);
|
|
6777
6859
|
const targetRef = requirePositional(input, 1, { command: "content restore", usage, message: "targetRef is required (from content dismissals)" });
|
|
@@ -6788,7 +6870,7 @@ var CONTENT_CLI_COMMANDS = [
|
|
|
6788
6870
|
"winnability-class": { type: "string" }
|
|
6789
6871
|
},
|
|
6790
6872
|
run: async (input) => {
|
|
6791
|
-
const { listContentTargets } = await import("./content-
|
|
6873
|
+
const { listContentTargets } = await import("./content-PJGW4WZF.js");
|
|
6792
6874
|
const usage = "canonry content targets <project> [--limit <n>] [--include-in-progress] [--ownable] [--winnability-class <ownable|ceded>] [--format json]";
|
|
6793
6875
|
const project3 = requireProject(input, "content targets", usage);
|
|
6794
6876
|
const limit = parseIntegerOption(input, "limit", {
|
|
@@ -6819,7 +6901,7 @@ var CONTENT_CLI_COMMANDS = [
|
|
|
6819
6901
|
usage: "canonry content sources <project> [--format json]",
|
|
6820
6902
|
options: {},
|
|
6821
6903
|
run: async (input) => {
|
|
6822
|
-
const { listContentSources } = await import("./content-
|
|
6904
|
+
const { listContentSources } = await import("./content-PJGW4WZF.js");
|
|
6823
6905
|
const usage = "canonry content sources <project> [--format json]";
|
|
6824
6906
|
const project3 = requireProject(input, "content sources", usage);
|
|
6825
6907
|
await listContentSources(project3, { format: input.format });
|
|
@@ -6830,7 +6912,7 @@ var CONTENT_CLI_COMMANDS = [
|
|
|
6830
6912
|
usage: "canonry content gaps <project> [--format json]",
|
|
6831
6913
|
options: {},
|
|
6832
6914
|
run: async (input) => {
|
|
6833
|
-
const { listContentGaps } = await import("./content-
|
|
6915
|
+
const { listContentGaps } = await import("./content-PJGW4WZF.js");
|
|
6834
6916
|
const usage = "canonry content gaps <project> [--format json]";
|
|
6835
6917
|
const project3 = requireProject(input, "content gaps", usage);
|
|
6836
6918
|
await listContentGaps(project3, { format: input.format });
|
|
@@ -6845,7 +6927,7 @@ var CONTENT_CLI_COMMANDS = [
|
|
|
6845
6927
|
force: { type: "boolean" }
|
|
6846
6928
|
},
|
|
6847
6929
|
run: async (input) => {
|
|
6848
|
-
const { generateContentBrief } = await import("./content-
|
|
6930
|
+
const { generateContentBrief } = await import("./content-PJGW4WZF.js");
|
|
6849
6931
|
const usage = "canonry content brief <project> <targetRef> [--provider <p>] [--model <m>] [--force] [--format json]";
|
|
6850
6932
|
const project3 = requireProject(input, "content brief", usage);
|
|
6851
6933
|
const targetRef = requirePositional(input, 1, {
|
|
@@ -6866,7 +6948,7 @@ var CONTENT_CLI_COMMANDS = [
|
|
|
6866
6948
|
usage: "canonry content map <project> [--format json]",
|
|
6867
6949
|
options: {},
|
|
6868
6950
|
run: async (input) => {
|
|
6869
|
-
const { contentMap } = await import("./content-
|
|
6951
|
+
const { contentMap } = await import("./content-PJGW4WZF.js");
|
|
6870
6952
|
const usage = "canonry content map <project> [--format json]";
|
|
6871
6953
|
const project3 = requireProject(input, "content map", usage);
|
|
6872
6954
|
await contentMap(project3, { format: input.format });
|
|
@@ -7161,7 +7243,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
7161
7243
|
options: { access: stringOption() },
|
|
7162
7244
|
run: async (input) => {
|
|
7163
7245
|
if (input.positionals.length > 1) throw usageError("Expected at most one command group");
|
|
7164
|
-
const [{ printCliCatalog }, { REGISTERED_CLI_COMMANDS: REGISTERED_CLI_COMMANDS2 }] = await Promise.all([import("./cli-catalog-
|
|
7246
|
+
const [{ printCliCatalog }, { REGISTERED_CLI_COMMANDS: REGISTERED_CLI_COMMANDS2 }] = await Promise.all([import("./cli-catalog-5RXNUFBS.js"), import("./cli-commands-HE2BQY3Y.js")]);
|
|
7165
7247
|
printCliCatalog(REGISTERED_CLI_COMMANDS2, input.format, input.positionals[0], getString(input.values, "access"));
|
|
7166
7248
|
}
|
|
7167
7249
|
},
|
|
@@ -7172,7 +7254,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
7172
7254
|
options: { level: stringOption(), module: stringOption(), "run-id": stringOption(), "project-id": stringOption(), actor: stringOption(), "request-id": stringOption(), since: stringOption(), until: stringOption(), limit: stringOption(), cursor: stringOption() },
|
|
7173
7255
|
allowPositionals: false,
|
|
7174
7256
|
run: async (input) => {
|
|
7175
|
-
const { showOperationalLogs } = await import("./logs-
|
|
7257
|
+
const { showOperationalLogs } = await import("./logs-ZHZ6XM55.js");
|
|
7176
7258
|
return showOperationalLogs({
|
|
7177
7259
|
level: getString(input.values, "level"),
|
|
7178
7260
|
module: getString(input.values, "module"),
|
|
@@ -7190,7 +7272,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
7190
7272
|
{
|
|
7191
7273
|
path: ["init"],
|
|
7192
7274
|
usage: "canonry init [--force] [--ref <tag>] [--gemini-key <key>] [--openai-key <key>] [--claude-key <key>] [--perplexity-key <key>] [--muse-key <key>] [--local-url <url>] [--local-model <name>] [--local-key <key>] [--google-client-id <id>] [--google-client-secret <key>] [--skip-skills] [--skip-mcp] [--skills-dir <path>] [--format json]",
|
|
7193
|
-
help: 'Optional interactive provider and OAuth setup. First-run
|
|
7275
|
+
help: 'Optional interactive provider and OAuth setup. First-run Agent Readiness does not need this: use "canonry bootstrap", then "canonry serve". At least one provider is required here. --format json needs provider flags or environment variables.',
|
|
7194
7276
|
options: {
|
|
7195
7277
|
force: { type: "boolean", short: "f", default: false },
|
|
7196
7278
|
ref: stringOption(),
|
|
@@ -7210,7 +7292,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
7210
7292
|
},
|
|
7211
7293
|
allowPositionals: false,
|
|
7212
7294
|
run: async (input) => {
|
|
7213
|
-
const { initCommand } = await import("./init-
|
|
7295
|
+
const { initCommand } = await import("./init-IVJSS33J.js");
|
|
7214
7296
|
await initCommand({
|
|
7215
7297
|
force: getBoolean(input.values, "force"),
|
|
7216
7298
|
ref: getString(input.values, "ref"),
|
|
@@ -7243,7 +7325,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
7243
7325
|
},
|
|
7244
7326
|
allowPositionals: false,
|
|
7245
7327
|
run: async (input) => {
|
|
7246
|
-
const { bootstrapCommand } = await import("./bootstrap-
|
|
7328
|
+
const { bootstrapCommand } = await import("./bootstrap-GMMSDTNO.js");
|
|
7247
7329
|
await bootstrapCommand({
|
|
7248
7330
|
format: input.format,
|
|
7249
7331
|
ref: getString(input.values, "ref")
|
|
@@ -7265,7 +7347,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
7265
7347
|
allowPositionals: false,
|
|
7266
7348
|
run: async (input) => {
|
|
7267
7349
|
applyServerEnv(input.values);
|
|
7268
|
-
const { serveCommand } = await import("./serve-
|
|
7350
|
+
const { serveCommand } = await import("./serve-A6UIO6WP.js");
|
|
7269
7351
|
await serveCommand(input.format);
|
|
7270
7352
|
}
|
|
7271
7353
|
},
|
|
@@ -7335,7 +7417,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
7335
7417
|
options: { target: stringOption() },
|
|
7336
7418
|
allowPositionals: false,
|
|
7337
7419
|
run: async (input) => {
|
|
7338
|
-
const { telemetryCommand } = await import("./telemetry-
|
|
7420
|
+
const { telemetryCommand } = await import("./telemetry-KGE6FF3Y.js");
|
|
7339
7421
|
await telemetryCommand("status", input.format, getString(input.values, "target"));
|
|
7340
7422
|
}
|
|
7341
7423
|
},
|
|
@@ -7345,7 +7427,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
7345
7427
|
options: { target: stringOption() },
|
|
7346
7428
|
allowPositionals: false,
|
|
7347
7429
|
run: async (input) => {
|
|
7348
|
-
const { telemetryCommand } = await import("./telemetry-
|
|
7430
|
+
const { telemetryCommand } = await import("./telemetry-KGE6FF3Y.js");
|
|
7349
7431
|
await telemetryCommand("enable", input.format, getString(input.values, "target"));
|
|
7350
7432
|
}
|
|
7351
7433
|
},
|
|
@@ -7355,7 +7437,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
7355
7437
|
options: { target: stringOption() },
|
|
7356
7438
|
allowPositionals: false,
|
|
7357
7439
|
run: async (input) => {
|
|
7358
|
-
const { telemetryCommand } = await import("./telemetry-
|
|
7440
|
+
const { telemetryCommand } = await import("./telemetry-KGE6FF3Y.js");
|
|
7359
7441
|
await telemetryCommand("disable", input.format, getString(input.values, "target"));
|
|
7360
7442
|
}
|
|
7361
7443
|
},
|
|
@@ -7406,58 +7488,58 @@ Usage: ${usage}`, {
|
|
|
7406
7488
|
}
|
|
7407
7489
|
return selection3.data;
|
|
7408
7490
|
}
|
|
7409
|
-
var
|
|
7491
|
+
var AGENT_READINESS_CLI_COMMANDS = [
|
|
7410
7492
|
{
|
|
7411
|
-
path: ["
|
|
7412
|
-
usage: "canonry
|
|
7493
|
+
path: ["agent-readiness", "issues"],
|
|
7494
|
+
usage: "canonry agent-readiness issues <project> [--run-id <id>] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]",
|
|
7413
7495
|
access: "stored",
|
|
7414
7496
|
options: { "run-id": stringOption(), cursor: stringOption(), limit: stringOption() },
|
|
7415
7497
|
run: async (input) => {
|
|
7416
|
-
const { technicalAeoIssues } = await import("./technical-aeo-
|
|
7417
|
-
const usage = "canonry
|
|
7418
|
-
const project3 = requireProject(input, "
|
|
7498
|
+
const { technicalAeoIssues } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7499
|
+
const usage = "canonry agent-readiness issues <project> [--run-id <id>] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]";
|
|
7500
|
+
const project3 = requireProject(input, "agent-readiness.issues", usage);
|
|
7419
7501
|
await technicalAeoIssues(project3, {
|
|
7420
|
-
...auditIssueSelection(input, "
|
|
7502
|
+
...auditIssueSelection(input, "agent-readiness.issues", usage),
|
|
7421
7503
|
format: input.format
|
|
7422
7504
|
});
|
|
7423
7505
|
}
|
|
7424
7506
|
},
|
|
7425
7507
|
{
|
|
7426
|
-
path: ["
|
|
7427
|
-
usage: "canonry
|
|
7508
|
+
path: ["agent-readiness", "issue-pages"],
|
|
7509
|
+
usage: "canonry agent-readiness issue-pages <project> --issue-id <id> [--run-id <id>] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]",
|
|
7428
7510
|
access: "stored",
|
|
7429
7511
|
options: { "issue-id": stringOption(), "run-id": stringOption(), cursor: stringOption(), limit: stringOption() },
|
|
7430
7512
|
run: async (input) => {
|
|
7431
|
-
const { technicalAeoIssuePages } = await import("./technical-aeo-
|
|
7432
|
-
const usage = "canonry
|
|
7433
|
-
const project3 = requireProject(input, "
|
|
7434
|
-
const issueId = requireStringOption(input, "issue-id", { command: "
|
|
7513
|
+
const { technicalAeoIssuePages } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7514
|
+
const usage = "canonry agent-readiness issue-pages <project> --issue-id <id> [--run-id <id>] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]";
|
|
7515
|
+
const project3 = requireProject(input, "agent-readiness.issue-pages", usage);
|
|
7516
|
+
const issueId = requireStringOption(input, "issue-id", { command: "agent-readiness.issue-pages", usage, message: "--issue-id is required" });
|
|
7435
7517
|
await technicalAeoIssuePages(project3, {
|
|
7436
7518
|
issueId,
|
|
7437
|
-
...auditIssueSelection(input, "
|
|
7519
|
+
...auditIssueSelection(input, "agent-readiness.issue-pages", usage),
|
|
7438
7520
|
format: input.format
|
|
7439
7521
|
});
|
|
7440
7522
|
}
|
|
7441
7523
|
},
|
|
7442
7524
|
{
|
|
7443
|
-
path: ["
|
|
7444
|
-
usage: "canonry
|
|
7525
|
+
path: ["agent-readiness", "score"],
|
|
7526
|
+
usage: "canonry agent-readiness score <project> [--run-id <id>] [--format json]",
|
|
7445
7527
|
options: {
|
|
7446
7528
|
"run-id": stringOption()
|
|
7447
7529
|
},
|
|
7448
7530
|
run: async (input) => {
|
|
7449
|
-
const { technicalAeoScore } = await import("./technical-aeo-
|
|
7531
|
+
const { technicalAeoScore } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7450
7532
|
const project3 = requireProject(
|
|
7451
7533
|
input,
|
|
7452
|
-
"
|
|
7453
|
-
"canonry
|
|
7534
|
+
"agent-readiness.score",
|
|
7535
|
+
"canonry agent-readiness score <project> [--run-id <id>] [--format json]"
|
|
7454
7536
|
);
|
|
7455
7537
|
await technicalAeoScore(project3, { runId: getString(input.values, "run-id"), format: input.format });
|
|
7456
7538
|
}
|
|
7457
7539
|
},
|
|
7458
7540
|
{
|
|
7459
|
-
path: ["
|
|
7460
|
-
usage: "canonry
|
|
7541
|
+
path: ["agent-readiness", "page-scores"],
|
|
7542
|
+
usage: "canonry agent-readiness page-scores <project> [--run-id <id>] [--status success|error] [--sort score-asc|score-desc|url] [--limit <n>] [--format json|jsonl]",
|
|
7461
7543
|
options: {
|
|
7462
7544
|
"run-id": stringOption(),
|
|
7463
7545
|
status: stringOption(),
|
|
@@ -7465,15 +7547,15 @@ var TECHNICAL_AEO_CLI_COMMANDS_BASE = [
|
|
|
7465
7547
|
limit: stringOption()
|
|
7466
7548
|
},
|
|
7467
7549
|
run: async (input) => {
|
|
7468
|
-
const { technicalAeoPages } = await import("./technical-aeo-
|
|
7469
|
-
const usage = "canonry
|
|
7470
|
-
const project3 = requireProject(input, "
|
|
7550
|
+
const { technicalAeoPages } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7551
|
+
const usage = "canonry agent-readiness page-scores <project> [--run-id <id>] [--status success|error] [--sort score-asc|score-desc|url] [--limit <n>] [--format json|jsonl]";
|
|
7552
|
+
const project3 = requireProject(input, "agent-readiness.page-scores", usage);
|
|
7471
7553
|
await technicalAeoPages(project3, {
|
|
7472
7554
|
runId: getString(input.values, "run-id"),
|
|
7473
7555
|
status: getString(input.values, "status"),
|
|
7474
7556
|
sort: getString(input.values, "sort"),
|
|
7475
7557
|
limit: parseIntegerOption(input, "limit", {
|
|
7476
|
-
command: "
|
|
7558
|
+
command: "agent-readiness.page-scores",
|
|
7477
7559
|
usage,
|
|
7478
7560
|
message: "--limit must be an integer"
|
|
7479
7561
|
}),
|
|
@@ -7482,18 +7564,18 @@ var TECHNICAL_AEO_CLI_COMMANDS_BASE = [
|
|
|
7482
7564
|
}
|
|
7483
7565
|
},
|
|
7484
7566
|
{
|
|
7485
|
-
path: ["
|
|
7486
|
-
usage: "canonry
|
|
7567
|
+
path: ["agent-readiness", "trend"],
|
|
7568
|
+
usage: "canonry agent-readiness trend <project> [--limit <n>] [--format json|jsonl]",
|
|
7487
7569
|
options: {
|
|
7488
7570
|
limit: stringOption()
|
|
7489
7571
|
},
|
|
7490
7572
|
run: async (input) => {
|
|
7491
|
-
const { technicalAeoTrend } = await import("./technical-aeo-
|
|
7492
|
-
const usage = "canonry
|
|
7493
|
-
const project3 = requireProject(input, "
|
|
7573
|
+
const { technicalAeoTrend } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7574
|
+
const usage = "canonry agent-readiness trend <project> [--limit <n>] [--format json|jsonl]";
|
|
7575
|
+
const project3 = requireProject(input, "agent-readiness.trend", usage);
|
|
7494
7576
|
await technicalAeoTrend(project3, {
|
|
7495
7577
|
limit: parseIntegerOption(input, "limit", {
|
|
7496
|
-
command: "
|
|
7578
|
+
command: "agent-readiness.trend",
|
|
7497
7579
|
usage,
|
|
7498
7580
|
message: "--limit must be an integer"
|
|
7499
7581
|
}),
|
|
@@ -7502,9 +7584,9 @@ var TECHNICAL_AEO_CLI_COMMANDS_BASE = [
|
|
|
7502
7584
|
}
|
|
7503
7585
|
},
|
|
7504
7586
|
{
|
|
7505
|
-
path: ["
|
|
7506
|
-
usage: "canonry
|
|
7507
|
-
help: "Start
|
|
7587
|
+
path: ["agent-readiness", "run"],
|
|
7588
|
+
usage: "canonry agent-readiness run <project> [--sitemap-url <url>] [--max-pages <n>] [--max-edges <n>] [--max-depth <n>] [--check-dead-links] [--include-geo] [--no-agent-skills] [--wait] [--format json]",
|
|
7589
|
+
help: "Start an Agent Readiness audit scan. No answer-engine provider is required. Without --max-pages the scan uses the project's saved page budget (canonry project update <project> --site-audit-max-pages <n|full>), else the full site, up to 50,000 pages. --wait polls for up to 15 minutes, so a large full-site scan can outlast it; follow it with canonry agent-readiness progress <project> --run-id <id>. Dead-link checking is off unless --check-dead-links is set. Add --include-geo for location and service-area checks. Agent integration checks are on by default; use --no-agent-skills to disable them.",
|
|
7508
7590
|
options: {
|
|
7509
7591
|
"sitemap-url": stringOption(),
|
|
7510
7592
|
limit: stringOption(),
|
|
@@ -7518,28 +7600,28 @@ var TECHNICAL_AEO_CLI_COMMANDS_BASE = [
|
|
|
7518
7600
|
wait: { type: "boolean", default: false }
|
|
7519
7601
|
},
|
|
7520
7602
|
run: async (input) => {
|
|
7521
|
-
const { technicalAeoRun } = await import("./technical-aeo-
|
|
7522
|
-
const usage = "canonry
|
|
7523
|
-
const project3 = requireProject(input, "
|
|
7603
|
+
const { technicalAeoRun } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7604
|
+
const usage = "canonry agent-readiness run <project> [--sitemap-url <url>] [--max-pages <n>] [--max-edges <n>] [--max-depth <n>] [--check-dead-links] [--include-geo] [--no-agent-skills] [--wait] [--format json]";
|
|
7605
|
+
const project3 = requireProject(input, "agent-readiness.run", usage);
|
|
7524
7606
|
await technicalAeoRun(project3, {
|
|
7525
7607
|
sitemapUrl: getString(input.values, "sitemap-url"),
|
|
7526
7608
|
limit: parseIntegerOption(input, "limit", {
|
|
7527
|
-
command: "
|
|
7609
|
+
command: "agent-readiness.run",
|
|
7528
7610
|
usage,
|
|
7529
7611
|
message: "--limit must be an integer"
|
|
7530
7612
|
}),
|
|
7531
7613
|
maxPages: parseIntegerOption(input, "max-pages", {
|
|
7532
|
-
command: "
|
|
7614
|
+
command: "agent-readiness.run",
|
|
7533
7615
|
usage,
|
|
7534
7616
|
message: "--max-pages must be an integer"
|
|
7535
7617
|
}),
|
|
7536
7618
|
maxEdges: parseIntegerOption(input, "max-edges", {
|
|
7537
|
-
command: "
|
|
7619
|
+
command: "agent-readiness.run",
|
|
7538
7620
|
usage,
|
|
7539
7621
|
message: "--max-edges must be an integer"
|
|
7540
7622
|
}),
|
|
7541
7623
|
maxDepth: parseIntegerOption(input, "max-depth", {
|
|
7542
|
-
command: "
|
|
7624
|
+
command: "agent-readiness.run",
|
|
7543
7625
|
usage,
|
|
7544
7626
|
message: "--max-depth must be an integer"
|
|
7545
7627
|
}),
|
|
@@ -7552,26 +7634,26 @@ var TECHNICAL_AEO_CLI_COMMANDS_BASE = [
|
|
|
7552
7634
|
}
|
|
7553
7635
|
},
|
|
7554
7636
|
{
|
|
7555
|
-
path: ["
|
|
7556
|
-
usage: "canonry
|
|
7637
|
+
path: ["agent-readiness", "overview"],
|
|
7638
|
+
usage: "canonry agent-readiness overview <project> [--run-id <id> | --date YYYY-MM-DD] [--format json]",
|
|
7557
7639
|
options: { "run-id": stringOption(), date: stringOption() },
|
|
7558
7640
|
run: async (input) => {
|
|
7559
|
-
const { technicalAeoCrawl } = await import("./technical-aeo-
|
|
7560
|
-
const usage = "canonry
|
|
7561
|
-
const project3 = requireProject(input, "
|
|
7641
|
+
const { technicalAeoCrawl } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7642
|
+
const usage = "canonry agent-readiness overview <project> [--run-id <id> | --date YYYY-MM-DD] [--format json]";
|
|
7643
|
+
const project3 = requireProject(input, "agent-readiness.overview", usage);
|
|
7562
7644
|
await technicalAeoCrawl(project3, { runId: getString(input.values, "run-id"), date: getString(input.values, "date"), format: input.format });
|
|
7563
7645
|
}
|
|
7564
7646
|
},
|
|
7565
7647
|
{
|
|
7566
|
-
path: ["
|
|
7567
|
-
usage: "canonry
|
|
7648
|
+
path: ["agent-readiness", "progress"],
|
|
7649
|
+
usage: "canonry agent-readiness progress <project> --run-id <id> [--format json]",
|
|
7568
7650
|
options: { "run-id": stringOption() },
|
|
7569
7651
|
run: async (input) => {
|
|
7570
|
-
const { technicalAeoProgress } = await import("./technical-aeo-
|
|
7571
|
-
const usage = "canonry
|
|
7572
|
-
const project3 = requireProject(input, "
|
|
7652
|
+
const { technicalAeoProgress } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7653
|
+
const usage = "canonry agent-readiness progress <project> --run-id <id> [--format json]";
|
|
7654
|
+
const project3 = requireProject(input, "agent-readiness.progress", usage);
|
|
7573
7655
|
const runId = requireStringOption(input, "run-id", {
|
|
7574
|
-
command: "
|
|
7656
|
+
command: "agent-readiness.progress",
|
|
7575
7657
|
usage,
|
|
7576
7658
|
message: "--run-id is required"
|
|
7577
7659
|
});
|
|
@@ -7579,8 +7661,8 @@ var TECHNICAL_AEO_CLI_COMMANDS_BASE = [
|
|
|
7579
7661
|
}
|
|
7580
7662
|
},
|
|
7581
7663
|
{
|
|
7582
|
-
path: ["
|
|
7583
|
-
usage: "canonry
|
|
7664
|
+
path: ["agent-readiness", "subgraph"],
|
|
7665
|
+
usage: "canonry agent-readiness subgraph <project> [--run-id <id>] [--node-key <key>|--url <url>] [--hops <n>] [--max-nodes <n>] [--max-edges <n>] [--format json]",
|
|
7584
7666
|
options: {
|
|
7585
7667
|
"run-id": stringOption(),
|
|
7586
7668
|
"node-key": stringOption(),
|
|
@@ -7590,32 +7672,32 @@ var TECHNICAL_AEO_CLI_COMMANDS_BASE = [
|
|
|
7590
7672
|
"max-edges": stringOption()
|
|
7591
7673
|
},
|
|
7592
7674
|
run: async (input) => {
|
|
7593
|
-
const { technicalAeoSubgraph } = await import("./technical-aeo-
|
|
7594
|
-
const usage = "canonry
|
|
7595
|
-
const project3 = requireProject(input, "
|
|
7675
|
+
const { technicalAeoSubgraph } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7676
|
+
const usage = "canonry agent-readiness subgraph <project> [--run-id <id>] [--node-key <key>|--url <url>] [--hops <n>] [--max-nodes <n>] [--max-edges <n>] [--format json]";
|
|
7677
|
+
const project3 = requireProject(input, "agent-readiness.subgraph", usage);
|
|
7596
7678
|
const nodeKey = getString(input.values, "node-key");
|
|
7597
7679
|
const url = getString(input.values, "url");
|
|
7598
7680
|
if (nodeKey && url) {
|
|
7599
7681
|
throw usageError(`Error: --node-key and --url cannot be combined
|
|
7600
7682
|
Usage: ${usage}`, {
|
|
7601
7683
|
message: "--node-key and --url cannot be combined",
|
|
7602
|
-
details: { command: "
|
|
7684
|
+
details: { command: "agent-readiness.subgraph", usage }
|
|
7603
7685
|
});
|
|
7604
7686
|
}
|
|
7605
7687
|
await technicalAeoSubgraph(project3, {
|
|
7606
7688
|
runId: getString(input.values, "run-id"),
|
|
7607
7689
|
nodeKey,
|
|
7608
7690
|
url,
|
|
7609
|
-
hops: parseIntegerOption(input, "hops", { command: "
|
|
7610
|
-
maxNodes: parseIntegerOption(input, "max-nodes", { command: "
|
|
7611
|
-
maxEdges: parseIntegerOption(input, "max-edges", { command: "
|
|
7691
|
+
hops: parseIntegerOption(input, "hops", { command: "agent-readiness.subgraph", usage, message: "--hops must be an integer" }),
|
|
7692
|
+
maxNodes: parseIntegerOption(input, "max-nodes", { command: "agent-readiness.subgraph", usage, message: "--max-nodes must be an integer" }),
|
|
7693
|
+
maxEdges: parseIntegerOption(input, "max-edges", { command: "agent-readiness.subgraph", usage, message: "--max-edges must be an integer" }),
|
|
7612
7694
|
format: input.format
|
|
7613
7695
|
});
|
|
7614
7696
|
}
|
|
7615
7697
|
},
|
|
7616
7698
|
{
|
|
7617
|
-
path: ["
|
|
7618
|
-
usage: "canonry
|
|
7699
|
+
path: ["agent-readiness", "path"],
|
|
7700
|
+
usage: "canonry agent-readiness path <project> (--to-node-key <key>|--to-url <url>) [--run-id <id>] [--from-node-key <key>|--from-url <url>] [--max-depth <n>] [--format json]",
|
|
7619
7701
|
options: {
|
|
7620
7702
|
"run-id": stringOption(),
|
|
7621
7703
|
"from-node-key": stringOption(),
|
|
@@ -7625,9 +7707,9 @@ Usage: ${usage}`, {
|
|
|
7625
7707
|
"max-depth": stringOption()
|
|
7626
7708
|
},
|
|
7627
7709
|
run: async (input) => {
|
|
7628
|
-
const { technicalAeoPath } = await import("./technical-aeo-
|
|
7629
|
-
const usage = "canonry
|
|
7630
|
-
const project3 = requireProject(input, "
|
|
7710
|
+
const { technicalAeoPath } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7711
|
+
const usage = "canonry agent-readiness path <project> (--to-node-key <key>|--to-url <url>) [--run-id <id>] [--from-node-key <key>|--from-url <url>] [--max-depth <n>] [--format json]";
|
|
7712
|
+
const project3 = requireProject(input, "agent-readiness.path", usage);
|
|
7631
7713
|
const fromNodeKey = getString(input.values, "from-node-key");
|
|
7632
7714
|
const fromUrl = getString(input.values, "from-url");
|
|
7633
7715
|
const toNodeKey = getString(input.values, "to-node-key");
|
|
@@ -7636,14 +7718,14 @@ Usage: ${usage}`, {
|
|
|
7636
7718
|
throw usageError(`Error: --to-node-key or --to-url is required
|
|
7637
7719
|
Usage: ${usage}`, {
|
|
7638
7720
|
message: "--to-node-key or --to-url is required",
|
|
7639
|
-
details: { command: "
|
|
7721
|
+
details: { command: "agent-readiness.path", usage }
|
|
7640
7722
|
});
|
|
7641
7723
|
}
|
|
7642
7724
|
if (fromNodeKey && fromUrl || toNodeKey && toUrl) {
|
|
7643
7725
|
throw usageError(`Error: node-key and URL selectors cannot be combined
|
|
7644
7726
|
Usage: ${usage}`, {
|
|
7645
7727
|
message: "node-key and URL selectors cannot be combined",
|
|
7646
|
-
details: { command: "
|
|
7728
|
+
details: { command: "agent-readiness.path", usage }
|
|
7647
7729
|
});
|
|
7648
7730
|
}
|
|
7649
7731
|
await technicalAeoPath(project3, {
|
|
@@ -7652,14 +7734,14 @@ Usage: ${usage}`, {
|
|
|
7652
7734
|
fromUrl,
|
|
7653
7735
|
toNodeKey,
|
|
7654
7736
|
toUrl,
|
|
7655
|
-
maxDepth: parseIntegerOption(input, "max-depth", { command: "
|
|
7737
|
+
maxDepth: parseIntegerOption(input, "max-depth", { command: "agent-readiness.path", usage, message: "--max-depth must be an integer" }),
|
|
7656
7738
|
format: input.format
|
|
7657
7739
|
});
|
|
7658
7740
|
}
|
|
7659
7741
|
},
|
|
7660
7742
|
{
|
|
7661
|
-
path: ["
|
|
7662
|
-
usage: "canonry
|
|
7743
|
+
path: ["agent-readiness", "changes"],
|
|
7744
|
+
usage: "canonry agent-readiness changes <project> [--from-run-id <id>] [--to-run-id <id>] [--scope all|pages|links] [--change all|added|removed|changed] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]",
|
|
7663
7745
|
options: {
|
|
7664
7746
|
"from-run-id": stringOption(),
|
|
7665
7747
|
"to-run-id": stringOption(),
|
|
@@ -7669,9 +7751,9 @@ Usage: ${usage}`, {
|
|
|
7669
7751
|
limit: stringOption()
|
|
7670
7752
|
},
|
|
7671
7753
|
run: async (input) => {
|
|
7672
|
-
const { technicalAeoChanges } = await import("./technical-aeo-
|
|
7673
|
-
const usage = "canonry
|
|
7674
|
-
const project3 = requireProject(input, "
|
|
7754
|
+
const { technicalAeoChanges } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7755
|
+
const usage = "canonry agent-readiness changes <project> [--from-run-id <id>] [--to-run-id <id>] [--scope all|pages|links] [--change all|added|removed|changed] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]";
|
|
7756
|
+
const project3 = requireProject(input, "agent-readiness.changes", usage);
|
|
7675
7757
|
const fromRunId = getString(input.values, "from-run-id");
|
|
7676
7758
|
const toRunId = getString(input.values, "to-run-id");
|
|
7677
7759
|
const scope = getString(input.values, "scope");
|
|
@@ -7680,14 +7762,14 @@ Usage: ${usage}`, {
|
|
|
7680
7762
|
throw usageError(`Error: --scope must be all, pages, or links
|
|
7681
7763
|
Usage: ${usage}`, {
|
|
7682
7764
|
message: "--scope must be all, pages, or links",
|
|
7683
|
-
details: { command: "
|
|
7765
|
+
details: { command: "agent-readiness.changes", usage, option: "scope", value: scope }
|
|
7684
7766
|
});
|
|
7685
7767
|
}
|
|
7686
7768
|
if (change !== void 0 && !isSiteHealthChange(change)) {
|
|
7687
7769
|
throw usageError(`Error: --change must be all, added, removed, or changed
|
|
7688
7770
|
Usage: ${usage}`, {
|
|
7689
7771
|
message: "--change must be all, added, removed, or changed",
|
|
7690
|
-
details: { command: "
|
|
7772
|
+
details: { command: "agent-readiness.changes", usage, option: "change", value: change }
|
|
7691
7773
|
});
|
|
7692
7774
|
}
|
|
7693
7775
|
await technicalAeoChanges(project3, {
|
|
@@ -7696,14 +7778,14 @@ Usage: ${usage}`, {
|
|
|
7696
7778
|
scope,
|
|
7697
7779
|
change,
|
|
7698
7780
|
cursor: getString(input.values, "cursor"),
|
|
7699
|
-
limit: parseIntegerOption(input, "limit", { command: "
|
|
7781
|
+
limit: parseIntegerOption(input, "limit", { command: "agent-readiness.changes", usage, message: "--limit must be an integer" }),
|
|
7700
7782
|
format: input.format
|
|
7701
7783
|
});
|
|
7702
7784
|
}
|
|
7703
7785
|
},
|
|
7704
7786
|
{
|
|
7705
|
-
path: ["
|
|
7706
|
-
usage: "canonry
|
|
7787
|
+
path: ["agent-readiness", "pages"],
|
|
7788
|
+
usage: "canonry agent-readiness pages <project> [--run-id <id> | --date YYYY-MM-DD] [--inventory-eligible true|false] [--fetch-state <state>] [--indexability-state <state>] [--audit-state <state>] [--url-versions include|exclude|only] [--sort url|path|score-asc|score-desc] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]",
|
|
7707
7789
|
options: {
|
|
7708
7790
|
"run-id": stringOption(),
|
|
7709
7791
|
date: stringOption(),
|
|
@@ -7717,15 +7799,15 @@ Usage: ${usage}`, {
|
|
|
7717
7799
|
limit: stringOption()
|
|
7718
7800
|
},
|
|
7719
7801
|
run: async (input) => {
|
|
7720
|
-
const { technicalAeoCrawlPages } = await import("./technical-aeo-
|
|
7721
|
-
const usage = "canonry
|
|
7722
|
-
const project3 = requireProject(input, "
|
|
7802
|
+
const { technicalAeoCrawlPages } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7803
|
+
const usage = "canonry agent-readiness pages <project> [--run-id <id> | --date YYYY-MM-DD] [--inventory-eligible true|false] [--fetch-state <state>] [--indexability-state <state>] [--audit-state <state>] [--url-versions include|exclude|only] [--sort url|path|score-asc|score-desc] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]";
|
|
7804
|
+
const project3 = requireProject(input, "agent-readiness.pages", usage);
|
|
7723
7805
|
const sort = getString(input.values, "sort");
|
|
7724
7806
|
if (sort !== void 0 && !["url", "path", "score-asc", "score-desc"].includes(sort)) {
|
|
7725
7807
|
throw usageError(`Error: --sort must be url, path, score-asc, or score-desc
|
|
7726
7808
|
Usage: ${usage}`, {
|
|
7727
7809
|
message: "--sort must be url, path, score-asc, or score-desc",
|
|
7728
|
-
details: { command: "
|
|
7810
|
+
details: { command: "agent-readiness.pages", usage, option: "sort", value: sort }
|
|
7729
7811
|
});
|
|
7730
7812
|
}
|
|
7731
7813
|
const urlVersions = getString(input.values, "url-versions");
|
|
@@ -7733,46 +7815,46 @@ Usage: ${usage}`, {
|
|
|
7733
7815
|
throw usageError(`Error: --url-versions must be include, exclude, or only
|
|
7734
7816
|
Usage: ${usage}`, {
|
|
7735
7817
|
message: "--url-versions must be include, exclude, or only",
|
|
7736
|
-
details: { command: "
|
|
7818
|
+
details: { command: "agent-readiness.pages", usage, option: "url-versions", value: urlVersions }
|
|
7737
7819
|
});
|
|
7738
7820
|
}
|
|
7739
7821
|
await technicalAeoCrawlPages(project3, {
|
|
7740
7822
|
runId: getString(input.values, "run-id"),
|
|
7741
7823
|
date: getString(input.values, "date"),
|
|
7742
|
-
inventoryEligible: parseOptionalBoolean(input, "inventory-eligible", { command: "
|
|
7824
|
+
inventoryEligible: parseOptionalBoolean(input, "inventory-eligible", { command: "agent-readiness.pages", usage }),
|
|
7743
7825
|
fetchState: getString(input.values, "fetch-state"),
|
|
7744
7826
|
indexabilityState: getString(input.values, "indexability-state"),
|
|
7745
7827
|
auditState: getString(input.values, "audit-state"),
|
|
7746
7828
|
urlVersions,
|
|
7747
7829
|
sort,
|
|
7748
7830
|
cursor: getString(input.values, "cursor"),
|
|
7749
|
-
limit: parseIntegerOption(input, "limit", { command: "
|
|
7831
|
+
limit: parseIntegerOption(input, "limit", { command: "agent-readiness.pages", usage, message: "--limit must be an integer" }),
|
|
7750
7832
|
format: input.format
|
|
7751
7833
|
});
|
|
7752
7834
|
}
|
|
7753
7835
|
},
|
|
7754
7836
|
{
|
|
7755
|
-
path: ["
|
|
7756
|
-
usage: "canonry
|
|
7837
|
+
path: ["agent-readiness", "page-audit"],
|
|
7838
|
+
usage: "canonry agent-readiness page-audit <project> (--node-key <key>|--url <url>) [--run-id <id>] [--format json]",
|
|
7757
7839
|
options: { "run-id": stringOption(), "node-key": stringOption(), url: stringOption() },
|
|
7758
7840
|
run: async (input) => {
|
|
7759
|
-
const { technicalAeoPageAudit } = await import("./technical-aeo-
|
|
7760
|
-
const usage = "canonry
|
|
7761
|
-
const project3 = requireProject(input, "
|
|
7841
|
+
const { technicalAeoPageAudit } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7842
|
+
const usage = "canonry agent-readiness page-audit <project> (--node-key <key>|--url <url>) [--run-id <id>] [--format json]";
|
|
7843
|
+
const project3 = requireProject(input, "agent-readiness.page-audit", usage);
|
|
7762
7844
|
const nodeKey = getString(input.values, "node-key");
|
|
7763
7845
|
const url = getString(input.values, "url");
|
|
7764
7846
|
if (!nodeKey && !url) {
|
|
7765
7847
|
throw usageError(`Error: --node-key or --url is required
|
|
7766
7848
|
Usage: ${usage}`, {
|
|
7767
7849
|
message: "--node-key or --url is required",
|
|
7768
|
-
details: { command: "
|
|
7850
|
+
details: { command: "agent-readiness.page-audit", usage }
|
|
7769
7851
|
});
|
|
7770
7852
|
}
|
|
7771
7853
|
if (nodeKey && url) {
|
|
7772
7854
|
throw usageError(`Error: --node-key and --url cannot be combined
|
|
7773
7855
|
Usage: ${usage}`, {
|
|
7774
7856
|
message: "--node-key and --url cannot be combined",
|
|
7775
|
-
details: { command: "
|
|
7857
|
+
details: { command: "agent-readiness.page-audit", usage }
|
|
7776
7858
|
});
|
|
7777
7859
|
}
|
|
7778
7860
|
await technicalAeoPageAudit(project3, {
|
|
@@ -7784,25 +7866,25 @@ Usage: ${usage}`, {
|
|
|
7784
7866
|
}
|
|
7785
7867
|
},
|
|
7786
7868
|
{
|
|
7787
|
-
path: ["
|
|
7788
|
-
usage: "canonry
|
|
7869
|
+
path: ["agent-readiness", "structure"],
|
|
7870
|
+
usage: "canonry agent-readiness structure <project> [--run-id <id>] [--parent-path <path>] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]",
|
|
7789
7871
|
options: { "run-id": stringOption(), "parent-path": stringOption(), cursor: stringOption(), limit: stringOption() },
|
|
7790
7872
|
run: async (input) => {
|
|
7791
|
-
const { technicalAeoStructure } = await import("./technical-aeo-
|
|
7792
|
-
const usage = "canonry
|
|
7793
|
-
const project3 = requireProject(input, "
|
|
7873
|
+
const { technicalAeoStructure } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7874
|
+
const usage = "canonry agent-readiness structure <project> [--run-id <id>] [--parent-path <path>] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]";
|
|
7875
|
+
const project3 = requireProject(input, "agent-readiness.structure", usage);
|
|
7794
7876
|
await technicalAeoStructure(project3, {
|
|
7795
7877
|
runId: getString(input.values, "run-id"),
|
|
7796
7878
|
parentPath: getString(input.values, "parent-path"),
|
|
7797
7879
|
cursor: getString(input.values, "cursor"),
|
|
7798
|
-
limit: parseIntegerOption(input, "limit", { command: "
|
|
7880
|
+
limit: parseIntegerOption(input, "limit", { command: "agent-readiness.structure", usage, message: "--limit must be an integer" }),
|
|
7799
7881
|
format: input.format
|
|
7800
7882
|
});
|
|
7801
7883
|
}
|
|
7802
7884
|
},
|
|
7803
7885
|
{
|
|
7804
|
-
path: ["
|
|
7805
|
-
usage: "canonry
|
|
7886
|
+
path: ["agent-readiness", "links"],
|
|
7887
|
+
usage: "canonry agent-readiness links <project> [--run-id <id>] [--source-url <url>] [--target-url <url>] [--followable|--nofollow] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]",
|
|
7806
7888
|
options: {
|
|
7807
7889
|
"run-id": stringOption(),
|
|
7808
7890
|
"source-url": stringOption(),
|
|
@@ -7813,16 +7895,16 @@ Usage: ${usage}`, {
|
|
|
7813
7895
|
limit: stringOption()
|
|
7814
7896
|
},
|
|
7815
7897
|
run: async (input) => {
|
|
7816
|
-
const { technicalAeoInternalLinks } = await import("./technical-aeo-
|
|
7817
|
-
const usage = "canonry
|
|
7818
|
-
const project3 = requireProject(input, "
|
|
7898
|
+
const { technicalAeoInternalLinks } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7899
|
+
const usage = "canonry agent-readiness links <project> [--run-id <id>] [--source-url <url>] [--target-url <url>] [--followable|--nofollow] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]";
|
|
7900
|
+
const project3 = requireProject(input, "agent-readiness.links", usage);
|
|
7819
7901
|
const followable = getBoolean(input.values, "followable");
|
|
7820
7902
|
const nofollow = getBoolean(input.values, "nofollow");
|
|
7821
7903
|
if (followable && nofollow) {
|
|
7822
7904
|
throw usageError(`Error: --followable and --nofollow cannot be combined
|
|
7823
7905
|
Usage: ${usage}`, {
|
|
7824
7906
|
message: "--followable and --nofollow cannot be combined",
|
|
7825
|
-
details: { command: "
|
|
7907
|
+
details: { command: "agent-readiness.links", usage }
|
|
7826
7908
|
});
|
|
7827
7909
|
}
|
|
7828
7910
|
await technicalAeoInternalLinks(project3, {
|
|
@@ -7831,143 +7913,119 @@ Usage: ${usage}`, {
|
|
|
7831
7913
|
targetUrl: getString(input.values, "target-url"),
|
|
7832
7914
|
followable: followable ? true : nofollow ? false : void 0,
|
|
7833
7915
|
cursor: getString(input.values, "cursor"),
|
|
7834
|
-
limit: parseIntegerOption(input, "limit", { command: "
|
|
7916
|
+
limit: parseIntegerOption(input, "limit", { command: "agent-readiness.links", usage, message: "--limit must be an integer" }),
|
|
7835
7917
|
format: input.format
|
|
7836
7918
|
});
|
|
7837
7919
|
}
|
|
7838
7920
|
},
|
|
7839
7921
|
{
|
|
7840
|
-
path: ["
|
|
7841
|
-
usage: "canonry
|
|
7922
|
+
path: ["agent-readiness", "neighbors"],
|
|
7923
|
+
usage: "canonry agent-readiness neighbors <project> (--node-key <key>|--url <url>) [--run-id <id>] [--limit <n>] [--format json]",
|
|
7842
7924
|
options: { "run-id": stringOption(), "node-key": stringOption(), url: stringOption(), limit: stringOption() },
|
|
7843
7925
|
run: async (input) => {
|
|
7844
|
-
const { technicalAeoLinkNeighbors } = await import("./technical-aeo-
|
|
7845
|
-
const usage = "canonry
|
|
7846
|
-
const project3 = requireProject(input, "
|
|
7926
|
+
const { technicalAeoLinkNeighbors } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7927
|
+
const usage = "canonry agent-readiness neighbors <project> (--node-key <key>|--url <url>) [--run-id <id>] [--limit <n>] [--format json]";
|
|
7928
|
+
const project3 = requireProject(input, "agent-readiness.neighbors", usage);
|
|
7847
7929
|
const nodeKey = getString(input.values, "node-key");
|
|
7848
7930
|
const url = getString(input.values, "url");
|
|
7849
7931
|
if (!nodeKey && !url) {
|
|
7850
7932
|
throw usageError(`Error: --node-key or --url is required
|
|
7851
7933
|
Usage: ${usage}`, {
|
|
7852
7934
|
message: "--node-key or --url is required",
|
|
7853
|
-
details: { command: "
|
|
7935
|
+
details: { command: "agent-readiness.neighbors", usage }
|
|
7854
7936
|
});
|
|
7855
7937
|
}
|
|
7856
7938
|
await technicalAeoLinkNeighbors(project3, {
|
|
7857
7939
|
runId: getString(input.values, "run-id"),
|
|
7858
7940
|
nodeKey,
|
|
7859
7941
|
url,
|
|
7860
|
-
limit: parseIntegerOption(input, "limit", { command: "
|
|
7942
|
+
limit: parseIntegerOption(input, "limit", { command: "agent-readiness.neighbors", usage, message: "--limit must be an integer" }),
|
|
7861
7943
|
format: input.format
|
|
7862
7944
|
});
|
|
7863
7945
|
}
|
|
7864
7946
|
},
|
|
7865
7947
|
{
|
|
7866
|
-
path: ["
|
|
7867
|
-
usage: "canonry
|
|
7948
|
+
path: ["agent-readiness", "dead-links"],
|
|
7949
|
+
usage: "canonry agent-readiness dead-links <project> [--run-id <id>] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]",
|
|
7868
7950
|
options: { "run-id": stringOption(), cursor: stringOption(), limit: stringOption() },
|
|
7869
7951
|
run: async (input) => {
|
|
7870
|
-
const { technicalAeoDeadLinks } = await import("./technical-aeo-
|
|
7871
|
-
const usage = "canonry
|
|
7872
|
-
const project3 = requireProject(input, "
|
|
7952
|
+
const { technicalAeoDeadLinks } = await import("./technical-aeo-KWVWOOTI.js");
|
|
7953
|
+
const usage = "canonry agent-readiness dead-links <project> [--run-id <id>] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]";
|
|
7954
|
+
const project3 = requireProject(input, "agent-readiness.dead-links", usage);
|
|
7873
7955
|
await technicalAeoDeadLinks(project3, {
|
|
7874
7956
|
runId: getString(input.values, "run-id"),
|
|
7875
7957
|
cursor: getString(input.values, "cursor"),
|
|
7876
|
-
limit: parseIntegerOption(input, "limit", { command: "
|
|
7958
|
+
limit: parseIntegerOption(input, "limit", { command: "agent-readiness.dead-links", usage, message: "--limit must be an integer" }),
|
|
7877
7959
|
format: input.format
|
|
7878
7960
|
});
|
|
7879
7961
|
}
|
|
7880
7962
|
}
|
|
7881
7963
|
];
|
|
7882
|
-
|
|
7883
|
-
|
|
7884
|
-
|
|
7964
|
+
var DEPRECATED_AGENT_READINESS_CLI_ALIASES = [
|
|
7965
|
+
[["technical-aeo", "score"], ["agent-readiness", "score"]],
|
|
7966
|
+
[["technical-aeo", "pages"], ["agent-readiness", "page-scores"]],
|
|
7967
|
+
[["technical-aeo", "trend"], ["agent-readiness", "trend"]],
|
|
7968
|
+
[["technical-aeo", "run"], ["agent-readiness", "run"]],
|
|
7969
|
+
[["technical-aeo", "progress"], ["agent-readiness", "progress"]],
|
|
7970
|
+
[["technical-aeo", "crawl"], ["agent-readiness", "overview"]],
|
|
7971
|
+
[["technical-aeo", "crawl-pages"], ["agent-readiness", "pages"]],
|
|
7972
|
+
[["technical-aeo", "page-audit"], ["agent-readiness", "page-audit"]],
|
|
7973
|
+
[["technical-aeo", "issues"], ["agent-readiness", "issues"]],
|
|
7974
|
+
[["technical-aeo", "issue-pages"], ["agent-readiness", "issue-pages"]],
|
|
7975
|
+
[["technical-aeo", "structure"], ["agent-readiness", "structure"]],
|
|
7976
|
+
[["technical-aeo", "links"], ["agent-readiness", "links"]],
|
|
7977
|
+
[["technical-aeo", "links", "neighbors"], ["agent-readiness", "neighbors"]],
|
|
7978
|
+
[["technical-aeo", "dead-links"], ["agent-readiness", "dead-links"]],
|
|
7979
|
+
[["technical-aeo", "subgraph"], ["agent-readiness", "subgraph"]],
|
|
7980
|
+
[["technical-aeo", "path"], ["agent-readiness", "path"]],
|
|
7981
|
+
[["technical-aeo", "changes"], ["agent-readiness", "changes"]],
|
|
7982
|
+
[["site-health", "overview"], ["agent-readiness", "overview"]],
|
|
7983
|
+
[["site-health", "pages"], ["agent-readiness", "pages"]],
|
|
7984
|
+
[["site-health", "page-audit"], ["agent-readiness", "page-audit"]],
|
|
7985
|
+
[["site-health", "issues"], ["agent-readiness", "issues"]],
|
|
7986
|
+
[["site-health", "issue-pages"], ["agent-readiness", "issue-pages"]],
|
|
7987
|
+
[["site-health", "structure"], ["agent-readiness", "structure"]],
|
|
7988
|
+
[["site-health", "links"], ["agent-readiness", "links"]],
|
|
7989
|
+
[["site-health", "neighbors"], ["agent-readiness", "neighbors"]],
|
|
7990
|
+
[["site-health", "dead-links"], ["agent-readiness", "dead-links"]],
|
|
7991
|
+
[["site-health", "subgraph"], ["agent-readiness", "subgraph"]],
|
|
7992
|
+
[["site-health", "path"], ["agent-readiness", "path"]],
|
|
7993
|
+
[["site-health", "changes"], ["agent-readiness", "changes"]]
|
|
7994
|
+
];
|
|
7995
|
+
function deprecatedAlias(aliasPath, canonicalPath) {
|
|
7996
|
+
const canonical = AGENT_READINESS_CLI_COMMANDS.find(
|
|
7997
|
+
(candidate) => candidate.path.join(" ") === canonicalPath.join(" ")
|
|
7885
7998
|
);
|
|
7886
|
-
if (!
|
|
7999
|
+
if (!canonical) throw new Error(`Missing Agent Readiness command for deprecated alias: ${aliasPath.join(" ")}`);
|
|
8000
|
+
const canonicalPrefix = `canonry ${canonical.path.join(" ")} `;
|
|
8001
|
+
if (!canonical.usage.startsWith(canonicalPrefix)) {
|
|
8002
|
+
throw new Error(`Agent Readiness usage must start with "${canonicalPrefix}": ${canonical.usage}`);
|
|
8003
|
+
}
|
|
8004
|
+
const usage = `canonry ${aliasPath.join(" ")} ${canonical.usage.slice(canonicalPrefix.length)}`;
|
|
8005
|
+
const command = aliasPath.join(".");
|
|
7887
8006
|
return {
|
|
7888
|
-
...
|
|
7889
|
-
path:
|
|
8007
|
+
...canonical,
|
|
8008
|
+
path: aliasPath,
|
|
7890
8009
|
usage,
|
|
8010
|
+
deprecatedAliasOf: canonical.path,
|
|
7891
8011
|
run: async (input) => {
|
|
7892
8012
|
try {
|
|
7893
|
-
await
|
|
8013
|
+
await canonical.run(input);
|
|
7894
8014
|
} catch (error) {
|
|
7895
8015
|
if (!(error instanceof CliError) || error.code !== "CLI_USAGE_ERROR") throw error;
|
|
7896
8016
|
const firstLine = error.displayMessage?.split("\n", 1)[0] ?? `Error: ${error.message}`;
|
|
7897
8017
|
throw usageError(`${firstLine}
|
|
7898
8018
|
Usage: ${usage}`, {
|
|
7899
8019
|
message: error.message,
|
|
7900
|
-
details: { ...error.details, command
|
|
8020
|
+
details: { ...error.details, command, usage }
|
|
7901
8021
|
});
|
|
7902
8022
|
}
|
|
7903
8023
|
}
|
|
7904
8024
|
};
|
|
7905
8025
|
}
|
|
7906
|
-
var SITE_HEALTH_COMPATIBILITY_COMMANDS = [
|
|
7907
|
-
siteHealthAlias(
|
|
7908
|
-
["technical-aeo", "issues"],
|
|
7909
|
-
["site-health", "issues"],
|
|
7910
|
-
"canonry site-health issues <project> [--run-id <id>] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]"
|
|
7911
|
-
),
|
|
7912
|
-
siteHealthAlias(
|
|
7913
|
-
["technical-aeo", "issue-pages"],
|
|
7914
|
-
["site-health", "issue-pages"],
|
|
7915
|
-
"canonry site-health issue-pages <project> --issue-id <id> [--run-id <id>] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]"
|
|
7916
|
-
),
|
|
7917
|
-
siteHealthAlias(
|
|
7918
|
-
["technical-aeo", "crawl"],
|
|
7919
|
-
["site-health", "overview"],
|
|
7920
|
-
"canonry site-health overview <project> [--run-id <id>] [--format json]"
|
|
7921
|
-
),
|
|
7922
|
-
siteHealthAlias(
|
|
7923
|
-
["technical-aeo", "crawl-pages"],
|
|
7924
|
-
["site-health", "pages"],
|
|
7925
|
-
"canonry site-health pages <project> [--run-id <id>] [--inventory-eligible true|false] [--fetch-state <state>] [--indexability-state <state>] [--audit-state <state>] [--sort url|path|score-asc|score-desc] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]"
|
|
7926
|
-
),
|
|
7927
|
-
siteHealthAlias(
|
|
7928
|
-
["technical-aeo", "page-audit"],
|
|
7929
|
-
["site-health", "page-audit"],
|
|
7930
|
-
"canonry site-health page-audit <project> (--node-key <key>|--url <url>) [--run-id <id>] [--format json]"
|
|
7931
|
-
),
|
|
7932
|
-
siteHealthAlias(
|
|
7933
|
-
["technical-aeo", "structure"],
|
|
7934
|
-
["site-health", "structure"],
|
|
7935
|
-
"canonry site-health structure <project> [--run-id <id>] [--parent-path <path>] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]"
|
|
7936
|
-
),
|
|
7937
|
-
siteHealthAlias(
|
|
7938
|
-
["technical-aeo", "links"],
|
|
7939
|
-
["site-health", "links"],
|
|
7940
|
-
"canonry site-health links <project> [--run-id <id>] [--source-url <url>] [--target-url <url>] [--followable|--nofollow] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]"
|
|
7941
|
-
),
|
|
7942
|
-
siteHealthAlias(
|
|
7943
|
-
["technical-aeo", "links", "neighbors"],
|
|
7944
|
-
["site-health", "neighbors"],
|
|
7945
|
-
"canonry site-health neighbors <project> (--node-key <key>|--url <url>) [--run-id <id>] [--limit <n>] [--format json]"
|
|
7946
|
-
),
|
|
7947
|
-
siteHealthAlias(
|
|
7948
|
-
["technical-aeo", "dead-links"],
|
|
7949
|
-
["site-health", "dead-links"],
|
|
7950
|
-
"canonry site-health dead-links <project> [--run-id <id>] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]"
|
|
7951
|
-
),
|
|
7952
|
-
siteHealthAlias(
|
|
7953
|
-
["technical-aeo", "subgraph"],
|
|
7954
|
-
["site-health", "subgraph"],
|
|
7955
|
-
"canonry site-health subgraph <project> [--run-id <id>] [--node-key <key>|--url <url>] [--hops <n>] [--max-nodes <n>] [--max-edges <n>] [--format json]"
|
|
7956
|
-
),
|
|
7957
|
-
siteHealthAlias(
|
|
7958
|
-
["technical-aeo", "path"],
|
|
7959
|
-
["site-health", "path"],
|
|
7960
|
-
"canonry site-health path <project> (--to-node-key <key>|--to-url <url>) [--run-id <id>] [--from-node-key <key>|--from-url <url>] [--max-depth <n>] [--format json]"
|
|
7961
|
-
),
|
|
7962
|
-
siteHealthAlias(
|
|
7963
|
-
["technical-aeo", "changes"],
|
|
7964
|
-
["site-health", "changes"],
|
|
7965
|
-
"canonry site-health changes <project> [--from-run-id <id>] [--to-run-id <id>] [--scope all|pages|links] [--change all|added|removed|changed] [--cursor <cursor>] [--limit <n>] [--format json|jsonl]"
|
|
7966
|
-
)
|
|
7967
|
-
];
|
|
7968
8026
|
var TECHNICAL_AEO_CLI_COMMANDS = [
|
|
7969
|
-
...
|
|
7970
|
-
...
|
|
8027
|
+
...AGENT_READINESS_CLI_COMMANDS,
|
|
8028
|
+
...DEPRECATED_AGENT_READINESS_CLI_ALIASES.map(([alias, canonical]) => deprecatedAlias(alias, canonical))
|
|
7971
8029
|
];
|
|
7972
8030
|
|
|
7973
8031
|
// src/cli-commands/trends.ts
|
|
@@ -7977,7 +8035,7 @@ var TRENDS_CLI_COMMANDS = [
|
|
|
7977
8035
|
{
|
|
7978
8036
|
path: ["trends"],
|
|
7979
8037
|
usage: USAGE4,
|
|
7980
|
-
help: "Read a dashboard trend card from stored data: each figure's latest reading, its change since the first reading in the window, and its readings. index-coverage covers Google and Bing indexed pages, site-health the
|
|
8038
|
+
help: "Read a dashboard trend card from stored data: each figure's latest reading, its change since the first reading in the window, and its readings. index-coverage covers Google and Bing indexed pages, site-health the Agent Readiness score per scan, backlinks referring domains per Common Crawl release (crawler and proxy hosts left out). The window ends on the latest reading; it defaults to 90d for index-coverage and all otherwise. --start and --end read your own calendar range instead.",
|
|
7981
8039
|
options: {
|
|
7982
8040
|
surface: stringOption(),
|
|
7983
8041
|
window: stringOption(),
|
|
@@ -8015,7 +8073,7 @@ Usage: ${USAGE4}`, {
|
|
|
8015
8073
|
details: { command: "trends", usage: USAGE4, option: "window", value: windowValue }
|
|
8016
8074
|
});
|
|
8017
8075
|
}
|
|
8018
|
-
const { trendsCommand } = await import("./trends-
|
|
8076
|
+
const { trendsCommand } = await import("./trends-RGAKGX3L.js");
|
|
8019
8077
|
await trendsCommand(project3, { surface: surface.data, window: windowValue, startDate: start, endDate: end, format: input.format });
|
|
8020
8078
|
}
|
|
8021
8079
|
}
|
|
@@ -8027,7 +8085,7 @@ var SITEMAPS_CLI_COMMANDS = [
|
|
|
8027
8085
|
{
|
|
8028
8086
|
path: ["sitemaps"],
|
|
8029
8087
|
usage: USAGE5,
|
|
8030
|
-
help: `Compare the site's sitemaps (from the latest
|
|
8088
|
+
help: `Compare the site's sitemaps (from the latest Agent Readiness audit scan) with what Google and Bing list, from stored data. Each engine shows its sitemaps and the ones it is missing: those the site declares or that were submitted to the other engine. Add a missing one with "canonry google submit-sitemap" or "canonry bing submit-sitemap".`,
|
|
8031
8089
|
options: { engine: stringOption() },
|
|
8032
8090
|
run: async (input) => {
|
|
8033
8091
|
const project3 = requireProject(input, "sitemaps", USAGE5);
|
|
@@ -8037,7 +8095,7 @@ var SITEMAPS_CLI_COMMANDS = [
|
|
|
8037
8095
|
throw usageError(`Error: ${message}
|
|
8038
8096
|
Usage: ${USAGE5}`, { message, details: { command: "sitemaps", usage: USAGE5, option: "engine", value: engine } });
|
|
8039
8097
|
}
|
|
8040
|
-
const { sitemapsCommand } = await import("./sitemaps-
|
|
8098
|
+
const { sitemapsCommand } = await import("./sitemaps-BM7S76H2.js");
|
|
8041
8099
|
await sitemapsCommand(project3, { engine, format: input.format });
|
|
8042
8100
|
}
|
|
8043
8101
|
}
|
|
@@ -8093,7 +8151,7 @@ var VISIBILITY_STATS_CLI_COMMANDS = [
|
|
|
8093
8151
|
"query-class": stringOption()
|
|
8094
8152
|
},
|
|
8095
8153
|
run: async (input) => {
|
|
8096
|
-
const { showVisibilityStats } = await import("./visibility-stats-
|
|
8154
|
+
const { showVisibilityStats } = await import("./visibility-stats-DTGQJPNV.js");
|
|
8097
8155
|
const project3 = requireProject(input, "visibility-stats", USAGE6);
|
|
8098
8156
|
await showVisibilityStats(project3, {
|
|
8099
8157
|
since: getString(input.values, "since"),
|
|
@@ -8124,7 +8182,7 @@ var VISIBILITY_STATS_CLI_COMMANDS = [
|
|
|
8124
8182
|
location: stringOption()
|
|
8125
8183
|
},
|
|
8126
8184
|
run: async (input) => {
|
|
8127
|
-
const { showVisibilityCompare } = await import("./visibility-stats-
|
|
8185
|
+
const { showVisibilityCompare } = await import("./visibility-stats-DTGQJPNV.js");
|
|
8128
8186
|
const project3 = requireProject(input, "visibility-compare", COMPARE_USAGE);
|
|
8129
8187
|
await showVisibilityCompare(project3, {
|
|
8130
8188
|
from: getString(input.values, "from"),
|
|
@@ -8207,7 +8265,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8207
8265
|
"default-env": stringOption()
|
|
8208
8266
|
},
|
|
8209
8267
|
run: async (input) => {
|
|
8210
|
-
const { wordpressConnect } = await import("./wordpress-
|
|
8268
|
+
const { wordpressConnect } = await import("./wordpress-2CNUX4UE.js");
|
|
8211
8269
|
const usage = "canonry wordpress connect <project> --url <url> --user <user> [--app-password <password>] [--staging-url <url>] [--default-env live|staging] [--format json]";
|
|
8212
8270
|
const project3 = requireProject(input, "wordpress.connect", usage);
|
|
8213
8271
|
const url = requireStringOption(input, "url", {
|
|
@@ -8241,7 +8299,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8241
8299
|
path: ["wordpress", "disconnect"],
|
|
8242
8300
|
usage: "canonry wordpress disconnect <project> [--format json]",
|
|
8243
8301
|
run: async (input) => {
|
|
8244
|
-
const { wordpressDisconnect } = await import("./wordpress-
|
|
8302
|
+
const { wordpressDisconnect } = await import("./wordpress-2CNUX4UE.js");
|
|
8245
8303
|
const project3 = requireProject(input, "wordpress.disconnect", "canonry wordpress disconnect <project> [--format json]");
|
|
8246
8304
|
await wordpressDisconnect(project3, input.format);
|
|
8247
8305
|
}
|
|
@@ -8250,7 +8308,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8250
8308
|
path: ["wordpress", "status"],
|
|
8251
8309
|
usage: "canonry wordpress status <project> [--format json]",
|
|
8252
8310
|
run: async (input) => {
|
|
8253
|
-
const { wordpressStatus } = await import("./wordpress-
|
|
8311
|
+
const { wordpressStatus } = await import("./wordpress-2CNUX4UE.js");
|
|
8254
8312
|
const project3 = requireProject(input, "wordpress.status", "canonry wordpress status <project> [--format json]");
|
|
8255
8313
|
await wordpressStatus(project3, input.format);
|
|
8256
8314
|
}
|
|
@@ -8260,7 +8318,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8260
8318
|
usage: "canonry wordpress pages <project> [--live|--staging] [--format json]",
|
|
8261
8319
|
options: envOptions,
|
|
8262
8320
|
run: async (input) => {
|
|
8263
|
-
const { wordpressPages } = await import("./wordpress-
|
|
8321
|
+
const { wordpressPages } = await import("./wordpress-2CNUX4UE.js");
|
|
8264
8322
|
const usage = "canonry wordpress pages <project> [--live|--staging] [--format json]";
|
|
8265
8323
|
const project3 = requireProject(input, "wordpress.pages", usage);
|
|
8266
8324
|
await wordpressPages(project3, {
|
|
@@ -8274,7 +8332,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8274
8332
|
usage: "canonry wordpress page <project> <slug> [--live|--staging] [--format json]",
|
|
8275
8333
|
options: envOptions,
|
|
8276
8334
|
run: async (input) => {
|
|
8277
|
-
const { wordpressPage } = await import("./wordpress-
|
|
8335
|
+
const { wordpressPage } = await import("./wordpress-2CNUX4UE.js");
|
|
8278
8336
|
const usage = "canonry wordpress page <project> <slug> [--live|--staging] [--format json]";
|
|
8279
8337
|
const project3 = requireProject(input, "wordpress.page", usage);
|
|
8280
8338
|
const slug = requirePositional(input, 1, {
|
|
@@ -8300,7 +8358,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8300
8358
|
...envOptions
|
|
8301
8359
|
},
|
|
8302
8360
|
run: async (input) => {
|
|
8303
|
-
const { wordpressCreatePage } = await import("./wordpress-
|
|
8361
|
+
const { wordpressCreatePage } = await import("./wordpress-2CNUX4UE.js");
|
|
8304
8362
|
const usage = "canonry wordpress create-page <project> --title <title> --slug <slug> [--content <content>|--content-file <path>] [--status draft|publish] [--live|--staging] [--format json]";
|
|
8305
8363
|
const project3 = requireProject(input, "wordpress.create-page", usage);
|
|
8306
8364
|
await wordpressCreatePage(project3, {
|
|
@@ -8333,7 +8391,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8333
8391
|
...envOptions
|
|
8334
8392
|
},
|
|
8335
8393
|
run: async (input) => {
|
|
8336
|
-
const { wordpressUpdatePage } = await import("./wordpress-
|
|
8394
|
+
const { wordpressUpdatePage } = await import("./wordpress-2CNUX4UE.js");
|
|
8337
8395
|
const usage = "canonry wordpress update-page <project> <slug> [--title <title>] [--slug <slug>] [--content <content>|--content-file <path>] [--status draft|publish] [--live|--staging] [--format json]";
|
|
8338
8396
|
const project3 = requireProject(input, "wordpress.update-page", usage);
|
|
8339
8397
|
const currentSlug = requirePositional(input, 1, {
|
|
@@ -8364,7 +8422,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8364
8422
|
...envOptions
|
|
8365
8423
|
},
|
|
8366
8424
|
run: async (input) => {
|
|
8367
|
-
const { wordpressBulkSetMeta, wordpressSetMeta } = await import("./wordpress-
|
|
8425
|
+
const { wordpressBulkSetMeta, wordpressSetMeta } = await import("./wordpress-2CNUX4UE.js");
|
|
8368
8426
|
const fromFile = getString(input.values, "from");
|
|
8369
8427
|
if (fromFile) {
|
|
8370
8428
|
const usage2 = "canonry wordpress set-meta <project> --from <file> [--live|--staging] [--format json]";
|
|
@@ -8401,7 +8459,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8401
8459
|
...envOptions
|
|
8402
8460
|
},
|
|
8403
8461
|
run: async (input) => {
|
|
8404
|
-
const { wordpressSchemaDeploy } = await import("./wordpress-
|
|
8462
|
+
const { wordpressSchemaDeploy } = await import("./wordpress-2CNUX4UE.js");
|
|
8405
8463
|
const usage = "canonry wordpress schema deploy <project> --profile <file> [--live|--staging] [--format json]";
|
|
8406
8464
|
const project3 = requireProject(input, "wordpress.schema.deploy", usage);
|
|
8407
8465
|
const profile = requireStringOption(input, "profile", {
|
|
@@ -8421,7 +8479,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8421
8479
|
usage: "canonry wordpress schema status <project> [--live|--staging] [--format json]",
|
|
8422
8480
|
options: envOptions,
|
|
8423
8481
|
run: async (input) => {
|
|
8424
|
-
const { wordpressSchemaStatus } = await import("./wordpress-
|
|
8482
|
+
const { wordpressSchemaStatus } = await import("./wordpress-2CNUX4UE.js");
|
|
8425
8483
|
const usage = "canonry wordpress schema status <project> [--live|--staging] [--format json]";
|
|
8426
8484
|
const project3 = requireProject(input, "wordpress.schema.status", usage);
|
|
8427
8485
|
await wordpressSchemaStatus(project3, {
|
|
@@ -8435,7 +8493,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8435
8493
|
usage: "canonry wordpress schema <project> <slug> [--live|--staging] [--format json]",
|
|
8436
8494
|
options: envOptions,
|
|
8437
8495
|
run: async (input) => {
|
|
8438
|
-
const { wordpressSchema } = await import("./wordpress-
|
|
8496
|
+
const { wordpressSchema } = await import("./wordpress-2CNUX4UE.js");
|
|
8439
8497
|
const usage = "canonry wordpress schema <project> <slug> [--live|--staging] [--format json]";
|
|
8440
8498
|
const project3 = requireProject(input, "wordpress.schema", usage);
|
|
8441
8499
|
const slug = requirePositional(input, 1, {
|
|
@@ -8458,7 +8516,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8458
8516
|
...envOptions
|
|
8459
8517
|
},
|
|
8460
8518
|
run: async (input) => {
|
|
8461
|
-
const { wordpressSetSchema } = await import("./wordpress-
|
|
8519
|
+
const { wordpressSetSchema } = await import("./wordpress-2CNUX4UE.js");
|
|
8462
8520
|
const usage = "canonry wordpress set-schema <project> <slug> --json <json> [--type <type>] [--live|--staging] [--format json]";
|
|
8463
8521
|
const project3 = requireProject(input, "wordpress.set-schema", usage);
|
|
8464
8522
|
const slug = requirePositional(input, 1, {
|
|
@@ -8484,7 +8542,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8484
8542
|
usage: "canonry wordpress llms-txt <project> [--live|--staging] [--format json]",
|
|
8485
8543
|
options: envOptions,
|
|
8486
8544
|
run: async (input) => {
|
|
8487
|
-
const { wordpressLlmsTxt } = await import("./wordpress-
|
|
8545
|
+
const { wordpressLlmsTxt } = await import("./wordpress-2CNUX4UE.js");
|
|
8488
8546
|
const usage = "canonry wordpress llms-txt <project> [--live|--staging] [--format json]";
|
|
8489
8547
|
const project3 = requireProject(input, "wordpress.llms-txt", usage);
|
|
8490
8548
|
await wordpressLlmsTxt(project3, {
|
|
@@ -8501,7 +8559,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8501
8559
|
...envOptions
|
|
8502
8560
|
},
|
|
8503
8561
|
run: async (input) => {
|
|
8504
|
-
const { wordpressSetLlmsTxt } = await import("./wordpress-
|
|
8562
|
+
const { wordpressSetLlmsTxt } = await import("./wordpress-2CNUX4UE.js");
|
|
8505
8563
|
const usage = "canonry wordpress set-llms-txt <project> --content <content> [--live|--staging] [--format json]";
|
|
8506
8564
|
const project3 = requireProject(input, "wordpress.set-llms-txt", usage);
|
|
8507
8565
|
await wordpressSetLlmsTxt(project3, {
|
|
@@ -8529,7 +8587,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8529
8587
|
...envOptions
|
|
8530
8588
|
},
|
|
8531
8589
|
run: async (input) => {
|
|
8532
|
-
const { wordpressOnboard } = await import("./wordpress-
|
|
8590
|
+
const { wordpressOnboard } = await import("./wordpress-2CNUX4UE.js");
|
|
8533
8591
|
const usage = "canonry wordpress onboard <project> --url <url> --user <user> [--app-password <pw>] [--profile <file>] [--format json]";
|
|
8534
8592
|
const project3 = requireProject(input, "wordpress.onboard", usage);
|
|
8535
8593
|
const url = requireStringOption(input, "url", {
|
|
@@ -8560,7 +8618,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8560
8618
|
usage: "canonry wordpress audit <project> [--live|--staging] [--format json]",
|
|
8561
8619
|
options: envOptions,
|
|
8562
8620
|
run: async (input) => {
|
|
8563
|
-
const { wordpressAudit } = await import("./wordpress-
|
|
8621
|
+
const { wordpressAudit } = await import("./wordpress-2CNUX4UE.js");
|
|
8564
8622
|
const usage = "canonry wordpress audit <project> [--live|--staging] [--format json]";
|
|
8565
8623
|
const project3 = requireProject(input, "wordpress.audit", usage);
|
|
8566
8624
|
await wordpressAudit(project3, {
|
|
@@ -8573,7 +8631,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8573
8631
|
path: ["wordpress", "diff"],
|
|
8574
8632
|
usage: "canonry wordpress diff <project> <slug> [--format json]",
|
|
8575
8633
|
run: async (input) => {
|
|
8576
|
-
const { wordpressDiff } = await import("./wordpress-
|
|
8634
|
+
const { wordpressDiff } = await import("./wordpress-2CNUX4UE.js");
|
|
8577
8635
|
const usage = "canonry wordpress diff <project> <slug> [--format json]";
|
|
8578
8636
|
const project3 = requireProject(input, "wordpress.diff", usage);
|
|
8579
8637
|
const slug = requirePositional(input, 1, {
|
|
@@ -8588,7 +8646,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8588
8646
|
path: ["wordpress", "staging", "status"],
|
|
8589
8647
|
usage: "canonry wordpress staging status <project> [--format json]",
|
|
8590
8648
|
run: async (input) => {
|
|
8591
|
-
const { wordpressStagingStatus } = await import("./wordpress-
|
|
8649
|
+
const { wordpressStagingStatus } = await import("./wordpress-2CNUX4UE.js");
|
|
8592
8650
|
const project3 = requireProject(input, "wordpress.staging.status", "canonry wordpress staging status <project> [--format json]");
|
|
8593
8651
|
await wordpressStagingStatus(project3, input.format);
|
|
8594
8652
|
}
|
|
@@ -8597,7 +8655,7 @@ var WORDPRESS_CLI_COMMANDS = [
|
|
|
8597
8655
|
path: ["wordpress", "staging", "push"],
|
|
8598
8656
|
usage: "canonry wordpress staging push <project> [--format json]",
|
|
8599
8657
|
run: async (input) => {
|
|
8600
|
-
const { wordpressStagingPush } = await import("./wordpress-
|
|
8658
|
+
const { wordpressStagingPush } = await import("./wordpress-2CNUX4UE.js");
|
|
8601
8659
|
const project3 = requireProject(input, "wordpress.staging.push", "canonry wordpress staging push <project> [--format json]");
|
|
8602
8660
|
await wordpressStagingPush(project3, input.format);
|
|
8603
8661
|
}
|
|
@@ -8634,7 +8692,7 @@ var AGENT_CLI_COMMANDS = [
|
|
|
8634
8692
|
usage: `canonry agent conversations ${action} <project> [--id <conversation-id>] [--offset <n>] [--limit <n>] [--format json]`,
|
|
8635
8693
|
options: { id: stringOption(), offset: stringOption(), limit: stringOption() },
|
|
8636
8694
|
run: async (input) => {
|
|
8637
|
-
const { agentConversations } = await import("./agent-conversations-
|
|
8695
|
+
const { agentConversations } = await import("./agent-conversations-SNLOOJEM.js");
|
|
8638
8696
|
const usage = `canonry agent conversations ${action} <project>`;
|
|
8639
8697
|
const project3 = requireProject(input, `agent.conversations.${action}`, usage);
|
|
8640
8698
|
const id2 = action === "new" || action === "list" ? getString(input.values, "id") : requireStringOption(input, "id", { command: `agent.conversations.${action}`, usage, message: "--id is required" });
|
|
@@ -8657,9 +8715,9 @@ var AGENT_CLI_COMMANDS = [
|
|
|
8657
8715
|
"timeout-ms": stringOption()
|
|
8658
8716
|
},
|
|
8659
8717
|
run: async (input) => {
|
|
8660
|
-
const { coerceAgentProvider } = await import("./session-
|
|
8661
|
-
const { AERO_TOOL_PROFILES, isAeroToolProfile } = await import("./tools-
|
|
8662
|
-
const { agentAsk } = await import("./agent-ask-
|
|
8718
|
+
const { coerceAgentProvider } = await import("./session-RTE22GQT.js");
|
|
8719
|
+
const { AERO_TOOL_PROFILES, isAeroToolProfile } = await import("./tools-4R33AZQ3.js");
|
|
8720
|
+
const { agentAsk } = await import("./agent-ask-5ODREK6D.js");
|
|
8663
8721
|
const usage = `canonry agent ask <project> "<prompt>" [--provider ${AGENT_PROVIDER_IDS.join("|")}] [--model <id>] [--scope all|read-only] [--profile default|ads-operator] [--context <json>] [--conversation <id>] [--max-tool-calls <n>] [--timeout-ms <ms>] [--format json]`;
|
|
8664
8722
|
const project3 = requireProject(input, "agent.ask", usage);
|
|
8665
8723
|
const prompt = input.positionals.slice(1).join(" ").trim();
|
|
@@ -8744,7 +8802,7 @@ Usage: ${usage}`, {
|
|
|
8744
8802
|
usage: "canonry agent providers <project> [--format json]",
|
|
8745
8803
|
options: {},
|
|
8746
8804
|
run: async (input) => {
|
|
8747
|
-
const { agentProviders } = await import("./agent-providers-
|
|
8805
|
+
const { agentProviders } = await import("./agent-providers-R5L7A72X.js");
|
|
8748
8806
|
const project3 = requireProject(input, "agent.providers", "canonry agent providers <project> [--format json]");
|
|
8749
8807
|
await agentProviders({ project: project3, format: input.format });
|
|
8750
8808
|
}
|
|
@@ -8756,7 +8814,7 @@ Usage: ${usage}`, {
|
|
|
8756
8814
|
url: stringOption()
|
|
8757
8815
|
},
|
|
8758
8816
|
run: async (input) => {
|
|
8759
|
-
const { agentAttach } = await import("./agent-
|
|
8817
|
+
const { agentAttach } = await import("./agent-2LPU2E5I.js");
|
|
8760
8818
|
const usage = "canonry agent attach <project> --url <webhook-url> [--format json]";
|
|
8761
8819
|
const project3 = requireProject(input, "agent.attach", usage);
|
|
8762
8820
|
const url = requireStringOption(input, "url", {
|
|
@@ -8775,7 +8833,7 @@ Usage: ${usage}`, {
|
|
|
8775
8833
|
usage: "canonry agent detach <project> [--format json]",
|
|
8776
8834
|
options: {},
|
|
8777
8835
|
run: async (input) => {
|
|
8778
|
-
const { agentDetach } = await import("./agent-
|
|
8836
|
+
const { agentDetach } = await import("./agent-2LPU2E5I.js");
|
|
8779
8837
|
const project3 = requireProject(input, "agent.detach", "canonry agent detach <project> [--format json]");
|
|
8780
8838
|
await agentDetach({ project: project3, format: input.format });
|
|
8781
8839
|
}
|
|
@@ -8785,7 +8843,7 @@ Usage: ${usage}`, {
|
|
|
8785
8843
|
usage: "canonry agent transcript <project> [--format json]",
|
|
8786
8844
|
options: {},
|
|
8787
8845
|
run: async (input) => {
|
|
8788
|
-
const { agentTranscript } = await import("./agent-transcript-
|
|
8846
|
+
const { agentTranscript } = await import("./agent-transcript-C5WAGYVC.js");
|
|
8789
8847
|
const project3 = requireProject(input, "agent.transcript", "canonry agent transcript <project> [--format json]");
|
|
8790
8848
|
await agentTranscript({ project: project3, format: input.format });
|
|
8791
8849
|
}
|
|
@@ -8795,7 +8853,7 @@ Usage: ${usage}`, {
|
|
|
8795
8853
|
usage: "canonry agent reset <project> [--format json]",
|
|
8796
8854
|
options: {},
|
|
8797
8855
|
run: async (input) => {
|
|
8798
|
-
const { agentTranscriptReset } = await import("./agent-transcript-
|
|
8856
|
+
const { agentTranscriptReset } = await import("./agent-transcript-C5WAGYVC.js");
|
|
8799
8857
|
const project3 = requireProject(input, "agent.reset", "canonry agent reset <project> [--format json]");
|
|
8800
8858
|
await agentTranscriptReset({ project: project3, format: input.format });
|
|
8801
8859
|
}
|
|
@@ -8805,7 +8863,7 @@ Usage: ${usage}`, {
|
|
|
8805
8863
|
usage: "canonry agent clear <project> [--format json]",
|
|
8806
8864
|
options: {},
|
|
8807
8865
|
run: async (input) => {
|
|
8808
|
-
const { agentTranscriptReset } = await import("./agent-transcript-
|
|
8866
|
+
const { agentTranscriptReset } = await import("./agent-transcript-C5WAGYVC.js");
|
|
8809
8867
|
const project3 = requireProject(input, "agent.clear", "canonry agent clear <project> [--format json]");
|
|
8810
8868
|
await agentTranscriptReset({ project: project3, format: input.format });
|
|
8811
8869
|
}
|
|
@@ -8815,7 +8873,7 @@ Usage: ${usage}`, {
|
|
|
8815
8873
|
usage: "canonry agent memory list <project> [--format json]",
|
|
8816
8874
|
options: {},
|
|
8817
8875
|
run: async (input) => {
|
|
8818
|
-
const { agentMemoryList } = await import("./agent-memory-
|
|
8876
|
+
const { agentMemoryList } = await import("./agent-memory-NKAI2S3U.js");
|
|
8819
8877
|
const usage = "canonry agent memory list <project> [--format json]";
|
|
8820
8878
|
const project3 = requireProject(input, "agent.memory.list", usage);
|
|
8821
8879
|
await agentMemoryList({ project: project3, format: input.format });
|
|
@@ -8829,7 +8887,7 @@ Usage: ${usage}`, {
|
|
|
8829
8887
|
value: stringOption()
|
|
8830
8888
|
},
|
|
8831
8889
|
run: async (input) => {
|
|
8832
|
-
const { agentMemorySet } = await import("./agent-memory-
|
|
8890
|
+
const { agentMemorySet } = await import("./agent-memory-NKAI2S3U.js");
|
|
8833
8891
|
const usage = "canonry agent memory set <project> --key <k> --value <v> [--format json]";
|
|
8834
8892
|
const project3 = requireProject(input, "agent.memory.set", usage);
|
|
8835
8893
|
const key = requireStringOption(input, "key", {
|
|
@@ -8858,7 +8916,7 @@ Usage: ${usage}`, {
|
|
|
8858
8916
|
key: stringOption()
|
|
8859
8917
|
},
|
|
8860
8918
|
run: async (input) => {
|
|
8861
|
-
const { agentMemoryForget } = await import("./agent-memory-
|
|
8919
|
+
const { agentMemoryForget } = await import("./agent-memory-NKAI2S3U.js");
|
|
8862
8920
|
const usage = "canonry agent memory forget <project> --key <k> [--format json]";
|
|
8863
8921
|
const project3 = requireProject(input, "agent.memory.forget", usage);
|
|
8864
8922
|
const key = requireStringOption(input, "key", {
|