@canonry/canonry 7.63.1 → 7.64.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/assets/agent-workspace/skills/aero/references/ai-traffic-tracking.md +13 -9
  2. package/assets/agent-workspace/skills/canonry/references/ai-traffic-tracking.md +13 -9
  3. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +24 -3
  4. package/assets/assets/{AgentSetupPage-D6lCJ1G1.js → AgentSetupPage-C9VnIbMS.js} +1 -1
  5. package/assets/assets/{AuditHistoryPanel-DlgI3o-U.js → AuditHistoryPanel-DLa6Ca5t.js} +1 -1
  6. package/assets/assets/{BacklinksPage-ByiMqbSI.js → BacklinksPage-Dxnz-sUy.js} +1 -1
  7. package/assets/assets/{HistoryPage-DclVeuLO.js → HistoryPage-PU7UNO3T.js} +1 -1
  8. package/assets/assets/{MeasurementPropertyPage-DDHybtHa.js → MeasurementPropertyPage-Bo4xKbWQ.js} +1 -1
  9. package/assets/assets/{ProjectPage-vBu6oWFi.js → ProjectPage-DuW9zWT9.js} +1 -1
  10. package/assets/assets/{RunsPage-CYBJ6pXX.js → RunsPage-Cr0QSE4Q.js} +1 -1
  11. package/assets/assets/{SettingsPage-w0GmXir0.js → SettingsPage-K6tGAVHo.js} +1 -1
  12. package/assets/assets/{SiteHealthSection-DDTjGZ05.js → SiteHealthSection-DxhIqNDZ.js} +2 -2
  13. package/assets/assets/ToneBadge-Cvv6Tkk7.js +60 -0
  14. package/assets/assets/{TrafficPage-hUWYv-HT.js → TrafficPage-lNcR4TvT.js} +1 -1
  15. package/assets/assets/{TrafficSourceDetailPage-CGHgPxs8.js → TrafficSourceDetailPage-D47VIFDK.js} +1 -1
  16. package/assets/assets/{account-context-qX-Es0RK.js → account-context-BL8j43iU.js} +1 -1
  17. package/assets/assets/{card-CzROANT5.js → card-BKud0olB.js} +1 -1
  18. package/assets/assets/{extract-error-message-BY1STLiX.js → extract-error-message-CvEgflI1.js} +1 -1
  19. package/assets/assets/{format-helpers-BNQR1HNK.js → format-helpers-Ce3RoH9T.js} +1 -1
  20. package/assets/assets/{index-LmB57HOs.js → index-C2t4yW4t.js} +4 -4
  21. package/assets/assets/{query-client-Gz37p16p.js → query-client-Bf5Rr6po.js} +1 -1
  22. package/assets/assets/{react-query-C6DtBAYQ.js → react-query-CsFtWT8r.js} +1 -1
  23. package/assets/assets/{react-sigma_core.esm.min-CgxuyPPF.js → react-sigma_core.esm.min-D-dyJflK.js} +1 -1
  24. package/assets/assets/{service-DyHZWnMe.js → service-C0U5Ude4.js} +1 -1
  25. package/assets/index.html +7 -7
  26. package/dist/{ads-FOUJNHP4.js → ads-EFXCND5Z.js} +3 -3
  27. package/dist/{agent-UVDVH7LK.js → agent-2MAONYLR.js} +7 -7
  28. package/dist/{agent-ask-UEYN2SQX.js → agent-ask-5555LQQL.js} +3 -3
  29. package/dist/{agent-conversations-F54376Q2.js → agent-conversations-LYWOS4X3.js} +3 -3
  30. package/dist/{agent-memory-SOHBTJ4U.js → agent-memory-HOYIIO66.js} +3 -3
  31. package/dist/{agent-providers-MMEK2H6V.js → agent-providers-EYXB2DMX.js} +3 -3
  32. package/dist/{agent-transcript-5IJ3VAEV.js → agent-transcript-BWDOJXPV.js} +3 -3
  33. package/dist/{analytics-LDWO5IW6.js → analytics-46VKY4SP.js} +3 -3
  34. package/dist/{apply-PSGFDJIC.js → apply-GII5J3QB.js} +3 -3
  35. package/dist/{backfill-2BVFKQ6J.js → backfill-WSIEPRES.js} +9 -9
  36. package/dist/{backlinks-X6DXIL2O.js → backlinks-GRHTLP5Z.js} +3 -3
  37. package/dist/{bing-3HMFUEOO.js → bing-5QDDHK57.js} +3 -3
  38. package/dist/{bootstrap-ZUSSLXCI.js → bootstrap-GWDFCGEQ.js} +10 -10
  39. package/dist/{cdp-FH627HJ6.js → cdp-YMIJN52Z.js} +7 -7
  40. package/dist/{chunk-SN5A767O.js → chunk-2BJDLTDI.js} +1 -1
  41. package/dist/{chunk-TKLE2Y6H.js → chunk-4PRXS5JH.js} +103 -4
  42. package/dist/{chunk-2LAL5W6J.js → chunk-6AYOWQJ3.js} +3 -3
  43. package/dist/{chunk-6ABOEN5D.js → chunk-6ZA23GRE.js} +8 -8
  44. package/dist/{chunk-PH7RTAWW.js → chunk-7LVZATRE.js} +1 -1
  45. package/dist/{chunk-V3QMOGZE.js → chunk-7STLCYWL.js} +5 -5
  46. package/dist/{chunk-AGSQWIE4.js → chunk-7U2SFOJN.js} +20 -20
  47. package/dist/{chunk-L2QPAUTQ.js → chunk-7V6DJCZO.js} +1 -1
  48. package/dist/{chunk-LBD7YXVD.js → chunk-AUIHVRJ3.js} +2 -2
  49. package/dist/{chunk-ZJTU73GW.js → chunk-BAQOH3LE.js} +3 -3
  50. package/dist/{chunk-QNFX7ZCT.js → chunk-BUED4RWE.js} +1 -1
  51. package/dist/{chunk-NOQCIXM6.js → chunk-CLMJSIZU.js} +1 -1
  52. package/dist/{chunk-UBP3AAKA.js → chunk-CNPYR2CQ.js} +1 -1
  53. package/dist/{chunk-SQYYAYH6.js → chunk-DKVY6HFW.js} +3 -3
  54. package/dist/{chunk-LEG7F3DN.js → chunk-DYDLK3YY.js} +2 -2
  55. package/dist/{chunk-CWMJQ2JV.js → chunk-I62VYS4B.js} +4 -4
  56. package/dist/{chunk-GRWZC3GQ.js → chunk-ITYUIHKO.js} +1 -1
  57. package/dist/{chunk-5VAC4KQ2.js → chunk-JP4Q5FEW.js} +3 -3
  58. package/dist/{chunk-32KNDPD3.js → chunk-K5S5HXAK.js} +348 -336
  59. package/dist/{chunk-UYPBR3SF.js → chunk-L6IQN2Y5.js} +2 -2
  60. package/dist/{chunk-ERJ54U2I.js → chunk-M6QGMJAQ.js} +1 -1
  61. package/dist/{chunk-OIHJJHJR.js → chunk-MXQB7AAP.js} +1 -1
  62. package/dist/{chunk-5GMYD7UZ.js → chunk-NFZXB5ZV.js} +5 -5
  63. package/dist/{chunk-22ABGRB7.js → chunk-TX4HBLFP.js} +206 -115
  64. package/dist/{chunk-SG2OPR7J.js → chunk-UQABYWAX.js} +1 -1
  65. package/dist/{chunk-67262NJL.js → chunk-V23ALG2D.js} +2 -2
  66. package/dist/{chunk-H22RCHYH.js → chunk-VLOWXBJS.js} +3 -3
  67. package/dist/{chunk-IDQZTPRG.js → chunk-WFOIIHAK.js} +2 -2
  68. package/dist/{chunk-IRRONWF7.js → chunk-WLCYVJGN.js} +4 -4
  69. package/dist/{chunk-EHTSCLEL.js → chunk-XR3R5PDK.js} +1 -1
  70. package/dist/{chunk-A57HYHJ3.js → chunk-Y3VMSYEG.js} +1 -1
  71. package/dist/{chunk-5YC6IU44.js → chunk-ZGLLSPBB.js} +2 -2
  72. package/dist/{chunk-JM6OFCLX.js → chunk-ZUH7GDQ4.js} +4 -4
  73. package/dist/{chunk-HNZQVIPS.js → chunk-ZYE7D2OC.js} +23 -1
  74. package/dist/{citations-BKWLP5S3.js → citations-AMOXXK5R.js} +3 -3
  75. package/dist/{cli-catalog-VRJS66GR.js → cli-catalog-K5EQZBOO.js} +3 -3
  76. package/dist/{cli-commands-ONFE63OB.js → cli-commands-CCGP2A2P.js} +7 -7
  77. package/dist/cli.js +13 -13
  78. package/dist/{competitor-VELMM2TJ.js → competitor-YQBDZE6A.js} +3 -3
  79. package/dist/{content-I525MITL.js → content-DFZ56U3J.js} +3 -3
  80. package/dist/{dashboard-BC4NKAO2.js → dashboard-LIPZS22H.js} +6 -6
  81. package/dist/{demo-ZRFZ5EBH.js → demo-XZJKCQRO.js} +1 -1
  82. package/dist/{demo-server-7R7NGWJA.js → demo-server-3BCUBH4H.js} +11 -11
  83. package/dist/{discover-E2CV5ZP7.js → discover-JDJ2O6D6.js} +3 -3
  84. package/dist/{discover-eval-ESRCWRHP.js → discover-eval-5GST6BOJ.js} +3 -3
  85. package/dist/{doctor-BQDVERII.js → doctor-2LJGHCIZ.js} +3 -3
  86. package/dist/{evidence-NUULK5XD.js → evidence-FQKL6ULX.js} +3 -3
  87. package/dist/{export-cmd-K324RTN4.js → export-cmd-KNGYT4JH.js} +3 -3
  88. package/dist/{ga-PQ36UFTK.js → ga-UH4RUHX2.js} +25 -3
  89. package/dist/{gbp-KTYA6KHR.js → gbp-IPMROSVV.js} +3 -3
  90. package/dist/{google-3D4E7TJX.js → google-QU5M737H.js} +4 -4
  91. package/dist/{google-marketing-4FRO4PRN.js → google-marketing-QCLVAP25.js} +1 -1
  92. package/dist/{health-cmd-CZJOZUAQ.js → health-cmd-7UFZ5MT6.js} +3 -3
  93. package/dist/{history-JNH34GAM.js → history-3H3CKHVR.js} +3 -3
  94. package/dist/index.d.ts +64 -5
  95. package/dist/index.js +24 -24
  96. package/dist/{init-TU4VSGVU.js → init-HNPTJIOS.js} +11 -11
  97. package/dist/{insights-STYJSZBB.js → insights-LEVVXDBW.js} +3 -3
  98. package/dist/intelligence-service-GQQNTMUX.js +15 -0
  99. package/dist/{journeys-POTSSBOM.js → journeys-JMQBUF2E.js} +3 -3
  100. package/dist/{keys-BPCSPX2O.js → keys-LF2UMTN6.js} +3 -3
  101. package/dist/{keyword-6SML434W.js → keyword-JSJYNWN2.js} +3 -3
  102. package/dist/{logs-WTKKH4UJ.js → logs-RWUB42V3.js} +3 -3
  103. package/dist/{mcp-HTAHMVRC.js → mcp-FWQXTWAR.js} +2 -2
  104. package/dist/mcp.js +9 -9
  105. package/dist/{measurement-plan-LJHKKRZ7.js → measurement-plan-4WXYE6CZ.js} +5 -5
  106. package/dist/{notify-EARS4LMG.js → notify-FBS43GY5.js} +3 -3
  107. package/dist/{organic-evidence-W7ZQQKPL.js → organic-evidence-TTXXAHFX.js} +3 -3
  108. package/dist/{overview-C7KQD4NR.js → overview-AB5JTMWR.js} +4 -4
  109. package/dist/{project-YU2FIL4B.js → project-GSQMF736.js} +7 -4
  110. package/dist/{query-SYFLWHFA.js → query-JITDUO3B.js} +3 -3
  111. package/dist/{research-UOUXMFBV.js → research-UU5W2XPU.js} +3 -3
  112. package/dist/{results-export-VYPG2Z6S.js → results-export-ZX62A645.js} +3 -3
  113. package/dist/{run-GZD3MQGS.js → run-HXNS5CB3.js} +4 -4
  114. package/dist/{schedule-PAA2NLGF.js → schedule-Q4XMBZAH.js} +3 -3
  115. package/dist/{search-6RWCUEEY.js → search-GC4RYLYD.js} +3 -3
  116. package/dist/{serve-VIEGFGSK.js → serve-ECMM256O.js} +25 -25
  117. package/dist/{session-JLH72BF5.js → session-JI4YODZS.js} +12 -12
  118. package/dist/{settings-TTA775EJ.js → settings-5GFLK4DY.js} +3 -3
  119. package/dist/{skills-GA35KKOV.js → skills-B7Z5S3IT.js} +2 -2
  120. package/dist/{snapshot-QVQVAMMN.js → snapshot-2JOQFYJE.js} +3 -3
  121. package/dist/{src-CTHVFVLF.js → src-2UNG3E4M.js} +2 -2
  122. package/dist/{status-E7B726S6.js → status-NKK5MYNE.js} +4 -4
  123. package/dist/{technical-aeo-SMPN3QDQ.js → technical-aeo-MQLGHVIX.js} +3 -3
  124. package/dist/{telemetry-CTBFPMWD.js → telemetry-J5F2H7OJ.js} +4 -4
  125. package/dist/{tools-YOV2KHF2.js → tools-CXANMI23.js} +11 -11
  126. package/dist/{traffic-XACOSYYM.js → traffic-BVKW6QDD.js} +5 -5
  127. package/dist/{users-WJC7SGRL.js → users-2EKLHWPH.js} +3 -3
  128. package/dist/{visibility-stats-H3ZNFV5M.js → visibility-stats-HVQ6VUEB.js} +3 -3
  129. package/dist/{wordpress-72YMWF7F.js → wordpress-EEYBM634.js} +3 -3
  130. package/package.json +1 -1
  131. package/assets/assets/ToneBadge-MKA1xeYc.js +0 -60
  132. package/dist/intelligence-service-MWTHUE7S.js +0 -15
@@ -8,7 +8,7 @@ import {
8
8
  classifyJourneyEntry,
9
9
  hostMatchesDomain,
10
10
  hostOf
11
- } from "./chunk-TKLE2Y6H.js";
11
+ } from "./chunk-4PRXS5JH.js";
12
12
 
13
13
  // ../integration-traffic/src/ip-ranges/amazonbot.json
14
14
  var amazonbot_default = {
@@ -5,7 +5,7 @@ import {
5
5
  loadConfig,
6
6
  loadConfigRaw,
7
7
  saveConfigPatch
8
- } from "./chunk-A57HYHJ3.js";
8
+ } from "./chunk-Y3VMSYEG.js";
9
9
  import {
10
10
  CANONRY_NPM_PACKAGE_URL,
11
11
  compareSemver,
@@ -18,7 +18,7 @@ import {
18
18
  updateCheckEnvOptOut,
19
19
  upgradeCaveatFor,
20
20
  upgradeCommandFor
21
- } from "./chunk-TKLE2Y6H.js";
21
+ } from "./chunk-4PRXS5JH.js";
22
22
 
23
23
  // src/runtime-context.ts
24
24
  function cliRuntimeContext(env = process.env, stdio = process) {
@@ -2,11 +2,11 @@ import {
2
2
  dedupeGscSitemapUrls,
3
3
  resolveDiscoveredGscSitemapUrls,
4
4
  submitGscSitemapBatches
5
- } from "./chunk-SN5A767O.js";
5
+ } from "./chunk-2BJDLTDI.js";
6
6
  import {
7
7
  measurementDraftOperationSchema,
8
8
  runMeasurementDraftAction
9
- } from "./chunk-NOQCIXM6.js";
9
+ } from "./chunk-CLMJSIZU.js";
10
10
  import {
11
11
  CliError
12
12
  } from "./chunk-HGMYEDAQ.js";
@@ -173,7 +173,7 @@ import {
173
173
  trafficSeriesGranularitySchema,
174
174
  visibilityCompareSelectionSchema,
175
175
  visibilityReportRequestSchema
176
- } from "./chunk-TKLE2Y6H.js";
176
+ } from "./chunk-4PRXS5JH.js";
177
177
 
178
178
  // src/mcp/tool-registry.ts
179
179
  import { z as z2 } from "zod";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-LEG7F3DN.js";
3
+ } from "./chunk-DYDLK3YY.js";
4
4
  import {
5
5
  emitJsonl
6
6
  } from "./chunk-Z7IUAJOF.js";
@@ -19,7 +19,7 @@ import {
19
19
  formatMicros,
20
20
  formatRunErrorOneLine,
21
21
  resolveProviderInput
22
- } from "./chunk-TKLE2Y6H.js";
22
+ } from "./chunk-4PRXS5JH.js";
23
23
 
24
24
  // src/commands/run.ts
25
25
  function getClient() {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  registeredProviderNames
3
- } from "./chunk-GRWZC3GQ.js";
3
+ } from "./chunk-ITYUIHKO.js";
4
4
  import {
5
5
  configExists,
6
6
  loadConfigRaw
7
- } from "./chunk-A57HYHJ3.js";
7
+ } from "./chunk-Y3VMSYEG.js";
8
8
 
9
9
  // src/setup-state.ts
10
10
  import fs from "fs";
@@ -28,7 +28,7 @@ async function buildSetupState() {
28
28
  }
29
29
  if (dbPath && fs.existsSync(dbPath)) {
30
30
  try {
31
- const { createClient, projects, queries: queriesTable } = await import("./src-CTHVFVLF.js");
31
+ const { createClient, projects, queries: queriesTable } = await import("./src-2UNG3E4M.js");
32
32
  const db = createClient(dbPath);
33
33
  project_count = db.select({ id: projects.id }).from(projects).all().length;
34
34
  const firstQuery = db.select({ id: queriesTable.id }).from(queriesTable).limit(1).all();
@@ -47,7 +47,7 @@ function queueServeHandoff() {
47
47
  async function runPendingServeHandoff(format) {
48
48
  if (!pendingServeHandoff) return;
49
49
  pendingServeHandoff = false;
50
- const { serveCommand } = await import("./serve-VIEGFGSK.js");
50
+ const { serveCommand } = await import("./serve-ECMM256O.js");
51
51
  await serveCommand(format);
52
52
  }
53
53
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  hostMatchesDomain
3
- } from "./chunk-TKLE2Y6H.js";
3
+ } from "./chunk-4PRXS5JH.js";
4
4
 
5
5
  // src/citation-utils.ts
6
6
  function pickProjectCitedDomain(citedDomains, projectDomains) {
@@ -20,7 +20,7 @@ import {
20
20
  resolveProviderModel,
21
21
  schedulableRunKindSchema,
22
22
  sentimentEvaluatorProviderSchema
23
- } from "./chunk-TKLE2Y6H.js";
23
+ } from "./chunk-4PRXS5JH.js";
24
24
 
25
25
  // ../config/src/index.ts
26
26
  import { z as z4 } from "zod";
@@ -5,7 +5,7 @@ import {
5
5
  siteCrawlGraphNodes,
6
6
  siteCrawlPages,
7
7
  siteCrawlSnapshots
8
- } from "./chunk-HNZQVIPS.js";
8
+ } from "./chunk-ZYE7D2OC.js";
9
9
  import {
10
10
  SITE_CRAWL_GRAPH_MAX_EDGES,
11
11
  SITE_CRAWL_GRAPH_MAX_NODES,
@@ -15,7 +15,7 @@ import {
15
15
  factorStatusFromDistribution,
16
16
  factorStatusFromScore,
17
17
  roundPreservingTotal
18
- } from "./chunk-TKLE2Y6H.js";
18
+ } from "./chunk-4PRXS5JH.js";
19
19
 
20
20
  // src/site-audit-factors.ts
21
21
  function recordedSharePct(factor) {
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  runWithUsageTags
3
- } from "./chunk-LEG7F3DN.js";
3
+ } from "./chunk-DYDLK3YY.js";
4
4
  import {
5
5
  CanonryMcpToolNames,
6
6
  canonryMcpTools
7
- } from "./chunk-H22RCHYH.js";
7
+ } from "./chunk-VLOWXBJS.js";
8
8
  import {
9
9
  CliError
10
10
  } from "./chunk-HGMYEDAQ.js";
11
11
  import {
12
12
  buildOpenApiDocument
13
- } from "./chunk-22ABGRB7.js";
13
+ } from "./chunk-TX4HBLFP.js";
14
14
  import {
15
15
  DEFAULT_COMPETITOR_AUTO_ALIAS_MODE,
16
16
  MeasurementPortfolioLists,
@@ -20,7 +20,7 @@ import {
20
20
  formatPercent,
21
21
  ratioUnitSchema,
22
22
  truncateUtf16
23
- } from "./chunk-TKLE2Y6H.js";
23
+ } from "./chunk-4PRXS5JH.js";
24
24
 
25
25
  // src/agent/tools.ts
26
26
  import { Type as Type2 } from "@earendil-works/pi-ai";
@@ -20,7 +20,7 @@ import {
20
20
  templateLinkRatio,
21
21
  templateLinkUbiquityAvailable,
22
22
  validationError
23
- } from "./chunk-TKLE2Y6H.js";
23
+ } from "./chunk-4PRXS5JH.js";
24
24
  import {
25
25
  __export
26
26
  } from "./chunk-MLKGABMK.js";
@@ -1905,6 +1905,16 @@ var gaMeasurementSyncStates = sqliteTable2("ga_measurement_sync_state", {
1905
1905
  leadError: text2("lead_error"),
1906
1906
  leadSyncedAt: text2("lead_synced_at"),
1907
1907
  leadAttributionScope: text2("lead_attribution_scope").$type(),
1908
+ /**
1909
+ * The GA4 event names the last lead sync counted (configured lead events
1910
+ * plus key events), sorted. A sync whose set differs refreshes the full GA4
1911
+ * window so every stored day counts the same events (v194).
1912
+ */
1913
+ leadEventNames: text2("lead_event_names", { mode: "json" }).$type(),
1914
+ /** The property's key events from the last successful Admin API read; null before one (v194). */
1915
+ keyEventNames: text2("key_event_names", { mode: "json" }).$type(),
1916
+ /** The latest failed key-event read; cleared by a successful one (v194). */
1917
+ keyEventsError: text2("key_events_error"),
1908
1918
  /** GA4 Search Console landing-page snapshot state (v176). */
1909
1919
  searchLandingStatus: text2("search_landing_status").$type().notNull().default("never-synced"),
1910
1920
  searchLandingError: text2("search_landing_error"),
@@ -8202,6 +8212,18 @@ var MIGRATION_VERSIONS = [
8202
8212
  statements: [
8203
8213
  `ALTER TABLE runs ADD COLUMN sync_summary TEXT`
8204
8214
  ]
8215
+ },
8216
+ {
8217
+ // Which GA4 events a lead sync counted (configured lead events plus the
8218
+ // property's key events) and the last key-event read. Nullable with no
8219
+ // default: until a sync records them, the configured events are the set.
8220
+ version: 194,
8221
+ name: "ga-lead-key-events",
8222
+ statements: [
8223
+ `ALTER TABLE ga_measurement_sync_state ADD COLUMN lead_event_names TEXT`,
8224
+ `ALTER TABLE ga_measurement_sync_state ADD COLUMN key_event_names TEXT`,
8225
+ `ALTER TABLE ga_measurement_sync_state ADD COLUMN key_events_error TEXT`
8226
+ ]
8205
8227
  }
8206
8228
  ];
8207
8229
  var AERO_LEDGER_REBUILDS = [
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-LEG7F3DN.js";
4
- import "./chunk-A57HYHJ3.js";
3
+ } from "./chunk-DYDLK3YY.js";
4
+ import "./chunk-Y3VMSYEG.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import "./chunk-HGMYEDAQ.js";
7
- import "./chunk-TKLE2Y6H.js";
7
+ import "./chunk-4PRXS5JH.js";
8
8
  import "./chunk-MLKGABMK.js";
9
9
 
10
10
  // src/commands/citations.ts
@@ -3,11 +3,11 @@ import {
3
3
  buildCliCatalog,
4
4
  printCliCatalog,
5
5
  renderTopLevelHelp
6
- } from "./chunk-ZJTU73GW.js";
7
- import "./chunk-L2QPAUTQ.js";
6
+ } from "./chunk-BAQOH3LE.js";
7
+ import "./chunk-7V6DJCZO.js";
8
8
  import "./chunk-Z7IUAJOF.js";
9
9
  import "./chunk-HGMYEDAQ.js";
10
- import "./chunk-TKLE2Y6H.js";
10
+ import "./chunk-4PRXS5JH.js";
11
11
  import "./chunk-MLKGABMK.js";
12
12
  export {
13
13
  CLI_ROOT_SUMMARIES,
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  REGISTERED_CLI_COMMANDS
3
- } from "./chunk-32KNDPD3.js";
3
+ } from "./chunk-K5S5HXAK.js";
4
4
  import "./chunk-6GO5VVAC.js";
5
- import "./chunk-2LAL5W6J.js";
5
+ import "./chunk-6AYOWQJ3.js";
6
6
  import "./chunk-VJWDBFSL.js";
7
7
  import "./chunk-TSENU4GG.js";
8
- import "./chunk-LEG7F3DN.js";
9
- import "./chunk-A57HYHJ3.js";
10
- import "./chunk-L2QPAUTQ.js";
8
+ import "./chunk-DYDLK3YY.js";
9
+ import "./chunk-Y3VMSYEG.js";
10
+ import "./chunk-7V6DJCZO.js";
11
11
  import "./chunk-Z7IUAJOF.js";
12
- import "./chunk-NOQCIXM6.js";
12
+ import "./chunk-CLMJSIZU.js";
13
13
  import "./chunk-AOJU5LKX.js";
14
14
  import "./chunk-HGMYEDAQ.js";
15
- import "./chunk-TKLE2Y6H.js";
15
+ import "./chunk-4PRXS5JH.js";
16
16
  import "./chunk-MLKGABMK.js";
17
17
  export {
18
18
  REGISTERED_CLI_COMMANDS
package/dist/cli.js CHANGED
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node --import tsx
2
2
  import {
3
3
  REGISTERED_CLI_COMMANDS
4
- } from "./chunk-32KNDPD3.js";
4
+ } from "./chunk-K5S5HXAK.js";
5
5
  import {
6
6
  buildSetupState,
7
7
  runPendingServeHandoff
8
- } from "./chunk-IRRONWF7.js";
8
+ } from "./chunk-WLCYVJGN.js";
9
9
  import "./chunk-6GO5VVAC.js";
10
- import "./chunk-2LAL5W6J.js";
10
+ import "./chunk-6AYOWQJ3.js";
11
11
  import "./chunk-VJWDBFSL.js";
12
12
  import "./chunk-TSENU4GG.js";
13
- import "./chunk-GRWZC3GQ.js";
13
+ import "./chunk-ITYUIHKO.js";
14
14
  import {
15
15
  checkLatestVersionForCli,
16
16
  cliRuntimeContext,
@@ -24,24 +24,24 @@ import {
24
24
  showFirstRunNotice,
25
25
  trackCliCommandFinished,
26
26
  trackEvent
27
- } from "./chunk-67262NJL.js";
27
+ } from "./chunk-V23ALG2D.js";
28
28
  import {
29
29
  autoSyncSkills,
30
30
  formatAutoSyncNotice
31
- } from "./chunk-SQYYAYH6.js";
32
- import "./chunk-LEG7F3DN.js";
33
- import "./chunk-A57HYHJ3.js";
31
+ } from "./chunk-DKVY6HFW.js";
32
+ import "./chunk-DYDLK3YY.js";
33
+ import "./chunk-Y3VMSYEG.js";
34
34
  import {
35
35
  accessFilterFromArgs,
36
36
  dispatchRegisteredCommand,
37
37
  printCliCatalog
38
- } from "./chunk-ZJTU73GW.js";
38
+ } from "./chunk-BAQOH3LE.js";
39
39
  import {
40
40
  resolveCliAccess
41
- } from "./chunk-L2QPAUTQ.js";
41
+ } from "./chunk-7V6DJCZO.js";
42
42
  import "./chunk-Z7IUAJOF.js";
43
- import "./chunk-PH7RTAWW.js";
44
- import "./chunk-NOQCIXM6.js";
43
+ import "./chunk-7LVZATRE.js";
44
+ import "./chunk-CLMJSIZU.js";
45
45
  import "./chunk-AOJU5LKX.js";
46
46
  import {
47
47
  CliError,
@@ -52,7 +52,7 @@ import {
52
52
  } from "./chunk-HGMYEDAQ.js";
53
53
  import {
54
54
  OperationAccesses
55
- } from "./chunk-TKLE2Y6H.js";
55
+ } from "./chunk-4PRXS5JH.js";
56
56
  import "./chunk-MLKGABMK.js";
57
57
 
58
58
  // src/cli.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-LEG7F3DN.js";
4
- import "./chunk-A57HYHJ3.js";
3
+ } from "./chunk-DYDLK3YY.js";
4
+ import "./chunk-Y3VMSYEG.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -21,7 +21,7 @@ import {
21
21
  normalizeCompetitorDomain,
22
22
  shareOfVoiceLabel,
23
23
  shareOfVoiceReason
24
- } from "./chunk-TKLE2Y6H.js";
24
+ } from "./chunk-4PRXS5JH.js";
25
25
  import "./chunk-MLKGABMK.js";
26
26
 
27
27
  // src/commands/competitor.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-LEG7F3DN.js";
4
- import "./chunk-A57HYHJ3.js";
3
+ } from "./chunk-DYDLK3YY.js";
4
+ import "./chunk-Y3VMSYEG.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  contentTargetDismissRequestSchema,
16
16
  formatPercent
17
- } from "./chunk-TKLE2Y6H.js";
17
+ } from "./chunk-4PRXS5JH.js";
18
18
  import "./chunk-MLKGABMK.js";
19
19
 
20
20
  // src/commands/content.ts
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  clearDashboardPassword,
3
3
  loadConfigRaw
4
- } from "./chunk-A57HYHJ3.js";
4
+ } from "./chunk-Y3VMSYEG.js";
5
5
  import {
6
6
  isMachineFormat
7
7
  } from "./chunk-HGMYEDAQ.js";
8
8
  import {
9
9
  anyUsersExist
10
- } from "./chunk-22ABGRB7.js";
11
- import "./chunk-SG2OPR7J.js";
12
- import "./chunk-QNFX7ZCT.js";
10
+ } from "./chunk-TX4HBLFP.js";
11
+ import "./chunk-UQABYWAX.js";
12
+ import "./chunk-BUED4RWE.js";
13
13
  import {
14
14
  createClient
15
- } from "./chunk-HNZQVIPS.js";
16
- import "./chunk-TKLE2Y6H.js";
15
+ } from "./chunk-ZYE7D2OC.js";
16
+ import "./chunk-4PRXS5JH.js";
17
17
  import "./chunk-MLKGABMK.js";
18
18
 
19
19
  // src/commands/dashboard.ts
@@ -40,7 +40,7 @@ function parseDemoTrustedProxies(values) {
40
40
  async function demoCommand(options) {
41
41
  const { host, port } = parseDemoListenOptions(options);
42
42
  const trustProxy = parseDemoTrustedProxies(options.trustProxy);
43
- const { createDemoServer } = await import("./demo-server-7R7NGWJA.js");
43
+ const { createDemoServer } = await import("./demo-server-3BCUBH4H.js");
44
44
  const app = await createDemoServer({ trustProxy });
45
45
  let stopping = false;
46
46
  const stop = () => {
@@ -5,12 +5,12 @@ import {
5
5
  computeFactorAverages,
6
6
  layoutSiteCrawlGraphInput,
7
7
  persistSiteCrawlGraphLayout
8
- } from "./chunk-5YC6IU44.js";
8
+ } from "./chunk-ZGLLSPBB.js";
9
9
  import {
10
10
  canonryMcpTools
11
- } from "./chunk-H22RCHYH.js";
12
- import "./chunk-SN5A767O.js";
13
- import "./chunk-NOQCIXM6.js";
11
+ } from "./chunk-VLOWXBJS.js";
12
+ import "./chunk-2BJDLTDI.js";
13
+ import "./chunk-CLMJSIZU.js";
14
14
  import {
15
15
  PACKAGE_VERSION
16
16
  } from "./chunk-AOJU5LKX.js";
@@ -18,16 +18,16 @@ import "./chunk-HGMYEDAQ.js";
18
18
  import {
19
19
  HISTORY_WINDOW_RUNS,
20
20
  IntelligenceService
21
- } from "./chunk-5GMYD7UZ.js";
21
+ } from "./chunk-NFZXB5ZV.js";
22
22
  import {
23
23
  determineCitationState
24
- } from "./chunk-EHTSCLEL.js";
24
+ } from "./chunk-XR3R5PDK.js";
25
25
  import {
26
26
  apiRoutes,
27
27
  assessConversionTrackingIntegrity
28
- } from "./chunk-22ABGRB7.js";
29
- import "./chunk-SG2OPR7J.js";
30
- import "./chunk-QNFX7ZCT.js";
28
+ } from "./chunk-TX4HBLFP.js";
29
+ import "./chunk-UQABYWAX.js";
30
+ import "./chunk-BUED4RWE.js";
31
31
  import {
32
32
  adsAdGroups,
33
33
  adsAds,
@@ -103,7 +103,7 @@ import {
103
103
  siteCrawlPages,
104
104
  siteCrawlSnapshots,
105
105
  trafficSources
106
- } from "./chunk-HNZQVIPS.js";
106
+ } from "./chunk-ZYE7D2OC.js";
107
107
  import {
108
108
  AI_ENGINE_DOMAINS,
109
109
  GA_OVERVIEW_HISTORY_DAYS,
@@ -148,7 +148,7 @@ import {
148
148
  roundPreservingTotal,
149
149
  siteAuditPageFactorSchema,
150
150
  wilsonInterval
151
- } from "./chunk-TKLE2Y6H.js";
151
+ } from "./chunk-4PRXS5JH.js";
152
152
  import "./chunk-MLKGABMK.js";
153
153
 
154
154
  // src/demo-server.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-LEG7F3DN.js";
4
- import "./chunk-A57HYHJ3.js";
3
+ } from "./chunk-DYDLK3YY.js";
4
+ import "./chunk-Y3VMSYEG.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -14,7 +14,7 @@ import {
14
14
  CitationStates,
15
15
  DiscoveryPromoteCompetitorSkipReasons,
16
16
  describeError
17
- } from "./chunk-TKLE2Y6H.js";
17
+ } from "./chunk-4PRXS5JH.js";
18
18
  import "./chunk-MLKGABMK.js";
19
19
 
20
20
  // src/commands/discover.ts
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-LEG7F3DN.js";
4
- import "./chunk-A57HYHJ3.js";
3
+ } from "./chunk-DYDLK3YY.js";
4
+ import "./chunk-Y3VMSYEG.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  CliError,
8
8
  EXIT_USER_ERROR
9
9
  } from "./chunk-HGMYEDAQ.js";
10
- import "./chunk-TKLE2Y6H.js";
10
+ import "./chunk-4PRXS5JH.js";
11
11
  import "./chunk-MLKGABMK.js";
12
12
 
13
13
  // src/commands/discover-eval.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-LEG7F3DN.js";
4
- import "./chunk-A57HYHJ3.js";
3
+ } from "./chunk-DYDLK3YY.js";
4
+ import "./chunk-Y3VMSYEG.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  CheckScopes,
15
15
  CheckStatuses
16
- } from "./chunk-TKLE2Y6H.js";
16
+ } from "./chunk-4PRXS5JH.js";
17
17
  import "./chunk-MLKGABMK.js";
18
18
 
19
19
  // src/commands/doctor.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-LEG7F3DN.js";
4
- import "./chunk-A57HYHJ3.js";
3
+ } from "./chunk-DYDLK3YY.js";
4
+ import "./chunk-Y3VMSYEG.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -9,7 +9,7 @@ import "./chunk-AOJU5LKX.js";
9
9
  import "./chunk-HGMYEDAQ.js";
10
10
  import {
11
11
  CitationStates
12
- } from "./chunk-TKLE2Y6H.js";
12
+ } from "./chunk-4PRXS5JH.js";
13
13
  import "./chunk-MLKGABMK.js";
14
14
 
15
15
  // src/commands/evidence.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-LEG7F3DN.js";
4
- import "./chunk-A57HYHJ3.js";
3
+ } from "./chunk-DYDLK3YY.js";
4
+ import "./chunk-Y3VMSYEG.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  isEndpointMissing,
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-HGMYEDAQ.js";
10
10
  import {
11
11
  isRedactedNotificationUrl
12
- } from "./chunk-TKLE2Y6H.js";
12
+ } from "./chunk-4PRXS5JH.js";
13
13
  import "./chunk-MLKGABMK.js";
14
14
 
15
15
  // src/commands/export-cmd.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-LEG7F3DN.js";
4
- import "./chunk-A57HYHJ3.js";
3
+ } from "./chunk-DYDLK3YY.js";
4
+ import "./chunk-Y3VMSYEG.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -26,7 +26,7 @@ import {
26
26
  gaSearchLandingHasSearchData,
27
27
  gaSearchLandingPageLabel,
28
28
  isGaOverviewWindow
29
- } from "./chunk-TKLE2Y6H.js";
29
+ } from "./chunk-4PRXS5JH.js";
30
30
  import "./chunk-MLKGABMK.js";
31
31
 
32
32
  // src/commands/ga.ts
@@ -186,6 +186,13 @@ async function gaSync(project, opts) {
186
186
  console.log(` AI rows: ${result.aiReferralCount}`);
187
187
  console.log(` Social rows: ${result.socialReferralCount}`);
188
188
  console.log(` Period: ${result.days} days${result.clamped ? ` (requested ${result.requestedDays})` : ""}`);
189
+ const leadSync = result.measurement?.leads;
190
+ if (leadSync?.eventNames) {
191
+ console.log(` Lead events: ${leadSync.eventNames.join(", ") || "(none)"} (${leadSync.days} days, ${leadSync.rowCount} rows)`);
192
+ }
193
+ if (leadSync?.keyEvents?.status === "error") {
194
+ console.log(` GA4 key event read failed, kept the previous list: ${leadSync.keyEvents.error ?? "unknown error"}`);
195
+ }
189
196
  const searchLanding = result.measurement.searchLandingPages;
190
197
  if (searchLanding) {
191
198
  console.log(` Search Console landing pages: ${searchLanding.status} (${searchLanding.rowCount} rows)`);
@@ -408,6 +415,20 @@ function printAiEngineLeadClass(heading, block) {
408
415
  console.log(line("ENGINE", block.periods.map((period) => period.label.toUpperCase())));
409
416
  for (const row of rows) console.log(line(row.label, row.cells));
410
417
  }
418
+ function printCountedEvents(leads) {
419
+ const counted = leads.countedEvents;
420
+ if (counted) {
421
+ const keyEvents = !counted.keyEventsEnabled ? "not counted" : counted.keyEvents === null ? "not read yet" : counted.keyEvents.join(", ") || "(none marked in GA4)";
422
+ console.log(` Counted events: configured ${counted.configured.join(", ") || "(none)"}; GA4 key events ${keyEvents}`);
423
+ if (counted.ignoredKeyEvents?.length) {
424
+ console.log(` Not counted (funnel or engagement steps): ${counted.ignoredKeyEvents.join(", ")}`);
425
+ }
426
+ if (counted.keyEventsError) console.log(` Key event read failed: ${counted.keyEventsError}`);
427
+ }
428
+ for (const event of leads.events ?? []) {
429
+ console.log(event.measured === false ? ` ${event.eventName} (${event.origin}): not synced yet` : ` ${event.eventName} (${event.origin}): ${event.periods.at(-1)?.eventCount ?? 0} in the latest cohort`);
430
+ }
431
+ }
411
432
  function printAiEngineLeads(aiEngines) {
412
433
  if (!aiEngines) return;
413
434
  if (aiEngines.organic.periods.length === 0) return;
@@ -455,6 +476,7 @@ async function gaMeasurementAnalysis(project, opts) {
455
476
  for (const period of result.leads.periods) {
456
477
  console.log(` ${period.label.padEnd(8)} ${period.eventCount} leads ${period.startDate} to ${period.endDate}`);
457
478
  }
479
+ printCountedEvents(result.leads);
458
480
  printAiEngineLeads(result.leads.aiEngines);
459
481
  console.log(` Search demand: ${result.searchDemand.status}`);
460
482
  for (const period of result.searchDemand.periods) {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-LEG7F3DN.js";
4
- import "./chunk-A57HYHJ3.js";
3
+ } from "./chunk-DYDLK3YY.js";
4
+ import "./chunk-Y3VMSYEG.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  isMachineFormat
@@ -11,7 +11,7 @@ import {
11
11
  formatPercent,
12
12
  gbpLocalPostCreateSchema,
13
13
  validationError
14
- } from "./chunk-TKLE2Y6H.js";
14
+ } from "./chunk-4PRXS5JH.js";
15
15
  import "./chunk-MLKGABMK.js";
16
16
 
17
17
  // src/commands/gbp.ts