@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.
Files changed (182) hide show
  1. package/README.md +18 -16
  2. package/assets/agent-workspace/AGENTS.md +13 -6
  3. package/assets/agent-workspace/skills/aero/SKILL.md +45 -26
  4. package/assets/agent-workspace/skills/aero/references/agent-operations.md +47 -12
  5. package/assets/agent-workspace/skills/aero/references/memory-patterns.md +1 -1
  6. package/assets/agent-workspace/skills/aero/references/orchestration.md +9 -9
  7. package/assets/agent-workspace/skills/aero/references/reporting.md +8 -4
  8. package/assets/agent-workspace/skills/aero/references/seo-analysis.md +2 -2
  9. package/assets/agent-workspace/skills/aero/references/site-health.md +23 -22
  10. package/assets/agent-workspace/skills/aero/soul.md +2 -2
  11. package/assets/agent-workspace/skills/canonry/SKILL.md +37 -7
  12. package/assets/agent-workspace/skills/canonry/references/aeo-analysis.md +14 -11
  13. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +122 -53
  14. package/assets/assets/AccessControls-DzO5Y8v9.js +2 -0
  15. package/assets/assets/AgentSetupPage-DWWovaCw.js +36 -0
  16. package/assets/assets/AuditHistoryPanel-BG-n1i8c.js +1 -0
  17. package/assets/assets/BacklinksPage-D6wdOMXt.js +1 -0
  18. package/assets/assets/ChartPrimitives-CtKdkn64.js +3 -0
  19. package/assets/assets/Hint-3TTi0MgX.js +1 -0
  20. package/assets/assets/{HistoryPage-DNE76LNh.js → HistoryPage-B_ReWHbL.js} +1 -1
  21. package/assets/assets/InfoTooltip-D29JcNMW.js +1 -0
  22. package/assets/assets/MeasurementPropertyPage-zdyLL-kl.js +4 -0
  23. package/assets/assets/ProjectPage-KZNKXR4w.js +15 -0
  24. package/assets/assets/RunsPage-DxN0xXQh.js +1 -0
  25. package/assets/assets/ServerTrafficSection-CvISj5pf.js +40 -0
  26. package/assets/assets/SettingsPage-CpRpBlMV.js +1 -0
  27. package/assets/assets/ToneBadge-DcwPruHr.js +60 -0
  28. package/assets/assets/TrafficPage-zk6zMZyz.js +1 -0
  29. package/assets/assets/TrafficSourceDetailPage-DJtsI06Z.js +1 -0
  30. package/assets/assets/{account-context-j3asaevn.js → account-context-CoJVqEXZ.js} +1 -1
  31. package/assets/assets/{agent-trust-copy--U_DFYQE.js → agent-trust-copy-BIXDMtBm.js} +1 -1
  32. package/assets/assets/{card-CQAQ-c3g.js → card-Dwmc7Srx.js} +1 -1
  33. package/assets/assets/index-fh1T5JQY.css +1 -0
  34. package/assets/assets/index-mqc2mWUR.js +42 -0
  35. package/assets/assets/query-client-Tg1fZu4i.js +1 -0
  36. package/assets/assets/react-query-BqcEEfEO.js +1 -0
  37. package/assets/assets/{react-sigma_core.esm.min-BAq_-iP1.js → react-sigma_core.esm.min-D1q0DR_j.js} +3 -3
  38. package/assets/assets/{server-traffic-jKXLZyeC.js → server-traffic-Djnh_9f0.js} +1 -1
  39. package/assets/assets/service-BQjBdN4O.js +1 -0
  40. package/assets/assets/use-tooltip-position-BOzm-6Wy.js +1 -0
  41. package/assets/assets/vendor-lucide-iE5MEh2-.js +1 -0
  42. package/assets/assets/{vendor-markdown-BDQ1GKGP.js → vendor-markdown-BBGbNklj.js} +1 -1
  43. package/assets/assets/{vendor-radix-BGYlvS2l.js → vendor-radix-DKCt5Z_h.js} +1 -1
  44. package/assets/assets/{vendor-recharts-DhEHcK3G.js → vendor-recharts-D3MLFU3q.js} +1 -1
  45. package/assets/assets/{vendor-tanstack-BNuZ37rE.js → vendor-tanstack-B90HW50P.js} +2 -2
  46. package/assets/index.html +16 -15
  47. package/dist/{ads-EYDUTG4U.js → ads-FVPZ6R6Z.js} +3 -3
  48. package/dist/{agent-KTK2IDB3.js → agent-2LPU2E5I.js} +7 -7
  49. package/dist/{agent-ask-KPZOH6RY.js → agent-ask-5ODREK6D.js} +3 -3
  50. package/dist/{agent-conversations-BCWA4JJL.js → agent-conversations-SNLOOJEM.js} +3 -3
  51. package/dist/{agent-journeys-UBVLQ7JV.js → agent-journeys-XDXVL6PK.js} +3 -3
  52. package/dist/{agent-memory-24SYEGEX.js → agent-memory-NKAI2S3U.js} +3 -3
  53. package/dist/{agent-providers-E7EWFE5P.js → agent-providers-R5L7A72X.js} +3 -3
  54. package/dist/{agent-transcript-QGJ45NW5.js → agent-transcript-C5WAGYVC.js} +3 -3
  55. package/dist/{analytics-GHVG5CCT.js → analytics-EJVOLIQL.js} +33 -13
  56. package/dist/{apply-7YLB2DPH.js → apply-I6JOM247.js} +3 -3
  57. package/dist/{backfill-WNQ6O5WP.js → backfill-UVUR36IB.js} +10 -10
  58. package/dist/{backlinks-ZBZR4D27.js → backlinks-3VMVACWN.js} +3 -3
  59. package/dist/{bing-4VBSKPSX.js → bing-R5RL3PW2.js} +3 -3
  60. package/dist/{bootstrap-7ESCLP2G.js → bootstrap-GMMSDTNO.js} +12 -12
  61. package/dist/{cdp-WBL6FZTL.js → cdp-FJKUXHEY.js} +7 -7
  62. package/dist/{chunk-L53ZSQN5.js → chunk-2DV7F6XA.js} +91 -2
  63. package/dist/{chunk-MTW37GXF.js → chunk-2FWYWGIR.js} +2 -2
  64. package/dist/{chunk-DMPSA7ZS.js → chunk-56VVRWJM.js} +14 -5
  65. package/dist/{chunk-YACKJGY4.js → chunk-7BEGCVVB.js} +1 -1
  66. package/dist/{chunk-YMHN4UIT.js → chunk-7BH53MOB.js} +27 -2
  67. package/dist/{chunk-XPIMVXAI.js → chunk-7J2RIIYU.js} +1366 -1033
  68. package/dist/{chunk-UY6SKAKW.js → chunk-7SNMIXEQ.js} +2 -2
  69. package/dist/{chunk-C55P75G4.js → chunk-AMGM55CP.js} +2 -2
  70. package/dist/{chunk-ZN2TEBBX.js → chunk-AYKTVQF7.js} +13 -5
  71. package/dist/{chunk-74V5EPZH.js → chunk-BKDRT4VS.js} +7 -7
  72. package/dist/{chunk-O6RXNSNW.js → chunk-COHSL6KW.js} +1 -1
  73. package/dist/{chunk-3WDQ5GPO.js → chunk-DGDLLRS4.js} +1 -1
  74. package/dist/{chunk-VADVPARO.js → chunk-DHIB7EIA.js} +4 -4
  75. package/dist/{chunk-3MFYM2IS.js → chunk-EE3QTCLS.js} +18 -6
  76. package/dist/{chunk-DLOWRO5R.js → chunk-F46TBLXK.js} +204 -94
  77. package/dist/{chunk-P764TJKQ.js → chunk-FBO25TA3.js} +1 -1
  78. package/dist/{chunk-SY3CWJR4.js → chunk-FZ3MUTU3.js} +2 -2
  79. package/dist/{chunk-WA6APXI6.js → chunk-G6QN4VFS.js} +16 -10
  80. package/dist/{chunk-YBWATBX4.js → chunk-HBHLYWKE.js} +9 -6
  81. package/dist/{chunk-5ZOM5BJS.js → chunk-HL2LGRTI.js} +8 -6
  82. package/dist/chunk-J6536OL6.js +31 -0
  83. package/dist/{chunk-3MKJ4LP6.js → chunk-KVRX7YIH.js} +20 -10
  84. package/dist/{chunk-3VPBRGPN.js → chunk-LJO2BKWU.js} +1 -1
  85. package/dist/{chunk-YEUULP44.js → chunk-LNVFERI4.js} +1 -1
  86. package/dist/{chunk-WXAF7AMC.js → chunk-NQYJHKML.js} +39 -7
  87. package/dist/{chunk-UPHHKO3L.js → chunk-O5UFAXUI.js} +646 -588
  88. package/dist/{chunk-XQP3XHLJ.js → chunk-O6APBEJE.js} +2 -2
  89. package/dist/{chunk-47X24IJG.js → chunk-O7S7OHLE.js} +9393 -8394
  90. package/dist/{chunk-2RW5D55K.js → chunk-QS5DWJDI.js} +2 -2
  91. package/dist/{chunk-TVBOK4P2.js → chunk-RBG2QXQM.js} +4 -4
  92. package/dist/{chunk-LM7HTNUO.js → chunk-SWZXHHAG.js} +16 -8
  93. package/dist/{chunk-AY7SDX6G.js → chunk-T7UDY7W3.js} +26 -11
  94. package/dist/{chunk-AJD252SX.js → chunk-UGO2FO6V.js} +119 -55
  95. package/dist/{chunk-PT5HNVCM.js → chunk-VHULVUDL.js} +1 -1
  96. package/dist/{chunk-ZGBLNKFN.js → chunk-YGAQQSCL.js} +56303 -54933
  97. package/dist/{chunk-RRXLJPBN.js → chunk-YIIRS7V7.js} +98 -65
  98. package/dist/{chunk-VOVT2H25.js → chunk-YU2WX7RD.js} +3 -3
  99. package/dist/{citations-N5MGNKJN.js → citations-LOEQRDUB.js} +21 -10
  100. package/dist/{cli-catalog-FFU7PHW7.js → cli-catalog-5RXNUFBS.js} +3 -3
  101. package/dist/{cli-commands-AMIDEUO2.js → cli-commands-HE2BQY3Y.js} +7 -7
  102. package/dist/cli.js +22 -17
  103. package/dist/{competitor-GRA2GMZR.js → competitor-PIX2BHJW.js} +3 -3
  104. package/dist/{content-YVAPTIV4.js → content-PJGW4WZF.js} +3 -3
  105. package/dist/{dashboard-33ACBR5A.js → dashboard-7OKBD4MG.js} +6 -6
  106. package/dist/{demo-AGXWBMR6.js → demo-SCOFAWFM.js} +1 -1
  107. package/dist/{demo-server-W4YAC7GT.js → demo-server-SJPI6RSL.js} +38 -36
  108. package/dist/{discover-BH33TO4Z.js → discover-I3WL2QUN.js} +10 -8
  109. package/dist/{discover-eval-3CEA6DEE.js → discover-eval-YRECOIP5.js} +3 -3
  110. package/dist/{doctor-ZAYTD5PC.js → doctor-F4J6LILX.js} +3 -3
  111. package/dist/{evidence-247GL7UK.js → evidence-MYQTCY4V.js} +25 -10
  112. package/dist/{export-cmd-HLKWFI5Q.js → export-cmd-3SUFOJM6.js} +3 -3
  113. package/dist/{ga-BMING57Z.js → ga-VA6FYK4L.js} +3 -3
  114. package/dist/{gbp-MIB5CXSD.js → gbp-DI6ZVFHL.js} +3 -3
  115. package/dist/{google-5JP6RYAW.js → google-UVKWJCD2.js} +4 -4
  116. package/dist/{google-marketing-25OBMPS6.js → google-marketing-S63HN733.js} +1 -1
  117. package/dist/{health-cmd-D5XSEL7H.js → health-cmd-DOZXGI46.js} +16 -9
  118. package/dist/{history-6MDRFPQ3.js → history-UTJTUDYK.js} +3 -3
  119. package/dist/index.d.ts +211 -19
  120. package/dist/index.js +26 -26
  121. package/dist/{init-RDR75N2Y.js → init-IVJSS33J.js} +19 -19
  122. package/dist/{insights-QZVMBGVM.js → insights-UHCVCZ76.js} +3 -3
  123. package/dist/intelligence-service-3EENJ5DS.js +16 -0
  124. package/dist/{journeys-TABTZDFZ.js → journeys-XIT7WDM2.js} +3 -3
  125. package/dist/{keys-SL5YF7NQ.js → keys-MQKW4JUI.js} +3 -3
  126. package/dist/{keyword-OCDEXRSW.js → keyword-EASMKYZ3.js} +3 -3
  127. package/dist/{logs-CSC7O364.js → logs-ZHZ6XM55.js} +3 -3
  128. package/dist/{mcp-P725OHAJ.js → mcp-ECVT2YGU.js} +4 -4
  129. package/dist/mcp.js +10 -10
  130. package/dist/{measurement-plan-Z42GBJBO.js → measurement-plan-7FQKUOMR.js} +5 -5
  131. package/dist/{notify-E5JBES4I.js → notify-TC7ARC6W.js} +3 -3
  132. package/dist/{organic-evidence-CUA3T64O.js → organic-evidence-M34MWJXE.js} +7 -4
  133. package/dist/overview-P6BRMXJN.js +314 -0
  134. package/dist/{project-2ULM64TV.js → project-WZ2YXFPJ.js} +4 -4
  135. package/dist/project-setup-WV6SPGIV.js +176 -0
  136. package/dist/{query-Y47IEFKJ.js → query-WAFJKDHG.js} +3 -3
  137. package/dist/{research-DPFQZ3TE.js → research-B5ZPQX7R.js} +3 -3
  138. package/dist/{results-export-KBHOBQAH.js → results-export-NIZV6R3K.js} +3 -3
  139. package/dist/{run-4CYHVIIU.js → run-ICLPZ7QT.js} +7 -4
  140. package/dist/{schedule-GY4P3RON.js → schedule-4C44LQ7R.js} +22 -3
  141. package/dist/{search-AGVNZMJQ.js → search-UJM7KII3.js} +11 -4
  142. package/dist/{serve-5LFKIXNL.js → serve-A6UIO6WP.js} +30 -29
  143. package/dist/{session-YAYEDM3P.js → session-RTE22GQT.js} +14 -14
  144. package/dist/settings-BOF5Z7ML.js +211 -0
  145. package/dist/{sitemaps-APTY7U6H.js → sitemaps-BM7S76H2.js} +4 -4
  146. package/dist/{skills-4BUONEIZ.js → skills-X5SR4HRO.js} +2 -2
  147. package/dist/{snapshot-BXCWSF5P.js → snapshot-KLKE37VY.js} +4 -4
  148. package/dist/{src-R7XZUX3D.js → src-EKLG5A6O.js} +4 -2
  149. package/dist/{status-SB6HPBYJ.js → status-OYG57DWU.js} +6 -5
  150. package/dist/{technical-aeo-G7UEMWZD.js → technical-aeo-KWVWOOTI.js} +23 -23
  151. package/dist/{telemetry-H4S4Y7YV.js → telemetry-KGE6FF3Y.js} +4 -4
  152. package/dist/{tools-46XX6I4R.js → tools-4R33AZQ3.js} +11 -11
  153. package/dist/{traffic-I6WRJN3W.js → traffic-SVMOKCSS.js} +7 -11
  154. package/dist/{trends-AQK3GLWF.js → trends-RGAKGX3L.js} +4 -4
  155. package/dist/{users-SNTVY6OB.js → users-47WKA2TO.js} +3 -3
  156. package/dist/{visibility-stats-44QAD2XS.js → visibility-stats-DTGQJPNV.js} +9 -5
  157. package/dist/{wordpress-N7LTOW46.js → wordpress-2CNUX4UE.js} +3 -3
  158. package/package.json +1 -1
  159. package/assets/assets/AgentSetupPage-yOqSVJ-e.js +0 -18
  160. package/assets/assets/AuditHistoryPanel-CiTzFgbw.js +0 -1
  161. package/assets/assets/BacklinksPage-DmRdQsFQ.js +0 -1
  162. package/assets/assets/ChartPrimitives-CvK6CQrj.js +0 -1
  163. package/assets/assets/Hint-c4a4W87X.js +0 -1
  164. package/assets/assets/InfoTooltip-Drnst4ML.js +0 -1
  165. package/assets/assets/MeasurementPropertyPage-Cx64Fnmz.js +0 -4
  166. package/assets/assets/ProjectPage-DNfgC82V.js +0 -11
  167. package/assets/assets/RunsPage-BmPKBKKr.js +0 -1
  168. package/assets/assets/SettingsPage-Dl0TNeVK.js +0 -1
  169. package/assets/assets/SiteHealthSection-DxQPaR--.js +0 -2
  170. package/assets/assets/ToneBadge-BhjTBHi-.js +0 -60
  171. package/assets/assets/TrafficPage-CJp0pS01.js +0 -40
  172. package/assets/assets/TrafficSourceDetailPage-DKE8tSw5.js +0 -1
  173. package/assets/assets/format-helpers-BPugHeIX.js +0 -3
  174. package/assets/assets/index-BAxHW-1G.css +0 -1
  175. package/assets/assets/index-xlDLvgRC.js +0 -60
  176. package/assets/assets/query-client-CwZpfiiD.js +0 -1
  177. package/assets/assets/react-query-CBpNFR4t.js +0 -1
  178. package/assets/assets/service-DFumlmXt.js +0 -1
  179. package/assets/assets/vendor-lucide-DuOM7wVi.js +0 -1
  180. package/dist/intelligence-service-KQE7RO5I.js +0 -16
  181. package/dist/overview-UKQ52I72.js +0 -213
  182. package/dist/settings-HUKMWRHY.js +0 -119
package/assets/index.html CHANGED
@@ -12,24 +12,25 @@
12
12
  <link rel="icon" type="image/png" sizes="32x32" href="./favicon-32.png" />
13
13
  <link rel="apple-touch-icon" href="./apple-touch-icon.png" />
14
14
  <title>Canonry</title>
15
- <script type="module" crossorigin src="./assets/index-xlDLvgRC.js"></script>
15
+ <script type="module" crossorigin src="./assets/index-mqc2mWUR.js"></script>
16
16
  <link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-XKyaHtl9.js">
17
- <link rel="modulepreload" crossorigin href="./assets/vendor-lucide-DuOM7wVi.js">
18
- <link rel="modulepreload" crossorigin href="./assets/vendor-markdown-BDQ1GKGP.js">
19
- <link rel="modulepreload" crossorigin href="./assets/vendor-radix-BGYlvS2l.js">
20
- <link rel="modulepreload" crossorigin href="./assets/vendor-recharts-DhEHcK3G.js">
21
- <link rel="modulepreload" crossorigin href="./assets/vendor-tanstack-BNuZ37rE.js">
22
- <link rel="modulepreload" crossorigin href="./assets/ToneBadge-BhjTBHi-.js">
23
- <link rel="modulepreload" crossorigin href="./assets/format-helpers-BPugHeIX.js">
24
- <link rel="modulepreload" crossorigin href="./assets/account-context-j3asaevn.js">
17
+ <link rel="modulepreload" crossorigin href="./assets/vendor-lucide-iE5MEh2-.js">
18
+ <link rel="modulepreload" crossorigin href="./assets/vendor-markdown-BBGbNklj.js">
19
+ <link rel="modulepreload" crossorigin href="./assets/vendor-radix-DKCt5Z_h.js">
20
+ <link rel="modulepreload" crossorigin href="./assets/vendor-recharts-D3MLFU3q.js">
21
+ <link rel="modulepreload" crossorigin href="./assets/vendor-tanstack-B90HW50P.js">
22
+ <link rel="modulepreload" crossorigin href="./assets/ToneBadge-DcwPruHr.js">
23
+ <link rel="modulepreload" crossorigin href="./assets/ChartPrimitives-CtKdkn64.js">
24
+ <link rel="modulepreload" crossorigin href="./assets/account-context-CoJVqEXZ.js">
25
+ <link rel="modulepreload" crossorigin href="./assets/card-Dwmc7Srx.js">
26
+ <link rel="modulepreload" crossorigin href="./assets/AccessControls-DzO5Y8v9.js">
25
27
  <link rel="modulepreload" crossorigin href="./assets/async-handler-Bj3TnIRw.js">
26
- <link rel="modulepreload" crossorigin href="./assets/query-client-CwZpfiiD.js">
27
- <link rel="modulepreload" crossorigin href="./assets/react-query-CBpNFR4t.js">
28
- <link rel="modulepreload" crossorigin href="./assets/ChartPrimitives-CvK6CQrj.js">
29
- <link rel="modulepreload" crossorigin href="./assets/InfoTooltip-Drnst4ML.js">
30
- <link rel="modulepreload" crossorigin href="./assets/card-CQAQ-c3g.js">
28
+ <link rel="modulepreload" crossorigin href="./assets/query-client-Tg1fZu4i.js">
29
+ <link rel="modulepreload" crossorigin href="./assets/react-query-BqcEEfEO.js">
30
+ <link rel="modulepreload" crossorigin href="./assets/use-tooltip-position-BOzm-6Wy.js">
31
+ <link rel="modulepreload" crossorigin href="./assets/InfoTooltip-D29JcNMW.js">
31
32
  <link rel="modulepreload" crossorigin href="./assets/vendor-yaml-Y43rmNgW.js">
32
- <link rel="stylesheet" crossorigin href="./assets/index-BAxHW-1G.css">
33
+ <link rel="stylesheet" crossorigin href="./assets/index-fh1T5JQY.css">
33
34
  </head>
34
35
  <body>
35
36
  <script id="theme-bootstrap">
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-AJD252SX.js";
4
- import "./chunk-3MFYM2IS.js";
3
+ } from "./chunk-UGO2FO6V.js";
4
+ import "./chunk-EE3QTCLS.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -31,7 +31,7 @@ import {
31
31
  describeError,
32
32
  formatMicros,
33
33
  formatPercent
34
- } from "./chunk-47X24IJG.js";
34
+ } from "./chunk-O7S7OHLE.js";
35
35
  import "./chunk-MLKGABMK.js";
36
36
 
37
37
  // src/commands/ads.ts
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  trackCliConnection
3
- } from "./chunk-XQP3XHLJ.js";
4
- import "./chunk-VADVPARO.js";
5
- import "./chunk-C55P75G4.js";
3
+ } from "./chunk-O6APBEJE.js";
4
+ import "./chunk-DHIB7EIA.js";
5
+ import "./chunk-AMGM55CP.js";
6
6
  import {
7
7
  createApiClient
8
- } from "./chunk-AJD252SX.js";
9
- import "./chunk-3MFYM2IS.js";
8
+ } from "./chunk-UGO2FO6V.js";
9
+ import "./chunk-EE3QTCLS.js";
10
10
  import "./chunk-AOJU5LKX.js";
11
11
  import {
12
12
  isMachineFormat
13
13
  } from "./chunk-HGMYEDAQ.js";
14
- import "./chunk-3VPBRGPN.js";
15
- import "./chunk-47X24IJG.js";
14
+ import "./chunk-LJO2BKWU.js";
15
+ import "./chunk-O7S7OHLE.js";
16
16
  import "./chunk-MLKGABMK.js";
17
17
 
18
18
  // src/agent-webhook.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-AJD252SX.js";
4
- import "./chunk-3MFYM2IS.js";
3
+ } from "./chunk-UGO2FO6V.js";
4
+ import "./chunk-EE3QTCLS.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  CliError,
@@ -9,7 +9,7 @@ import {
9
9
  isMachineFormat,
10
10
  printCliError
11
11
  } from "./chunk-HGMYEDAQ.js";
12
- import "./chunk-47X24IJG.js";
12
+ import "./chunk-O7S7OHLE.js";
13
13
  import "./chunk-MLKGABMK.js";
14
14
 
15
15
  // src/commands/agent-ask.ts
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-AJD252SX.js";
4
- import "./chunk-3MFYM2IS.js";
3
+ } from "./chunk-UGO2FO6V.js";
4
+ import "./chunk-EE3QTCLS.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  CliError,
8
8
  isMachineFormat,
9
9
  printCliError
10
10
  } from "./chunk-HGMYEDAQ.js";
11
- import "./chunk-47X24IJG.js";
11
+ import "./chunk-O7S7OHLE.js";
12
12
  import "./chunk-MLKGABMK.js";
13
13
 
14
14
  // src/commands/agent-conversations.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-AJD252SX.js";
4
- import "./chunk-3MFYM2IS.js";
3
+ } from "./chunk-UGO2FO6V.js";
4
+ import "./chunk-EE3QTCLS.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -14,7 +14,7 @@ import {
14
14
  AgentJourneyCorrelationBases,
15
15
  agentJourneysQuerySchema,
16
16
  formatValidationIssues
17
- } from "./chunk-47X24IJG.js";
17
+ } from "./chunk-O7S7OHLE.js";
18
18
  import "./chunk-MLKGABMK.js";
19
19
 
20
20
  // src/commands/agent-journeys.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-AJD252SX.js";
4
- import "./chunk-3MFYM2IS.js";
3
+ } from "./chunk-UGO2FO6V.js";
4
+ import "./chunk-EE3QTCLS.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -11,7 +11,7 @@ import {
11
11
  isMachineFormat,
12
12
  printCliError
13
13
  } from "./chunk-HGMYEDAQ.js";
14
- import "./chunk-47X24IJG.js";
14
+ import "./chunk-O7S7OHLE.js";
15
15
  import "./chunk-MLKGABMK.js";
16
16
 
17
17
  // src/commands/agent-memory.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-AJD252SX.js";
4
- import "./chunk-3MFYM2IS.js";
3
+ } from "./chunk-UGO2FO6V.js";
4
+ import "./chunk-EE3QTCLS.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -10,7 +10,7 @@ import {
10
10
  CliError,
11
11
  printCliError
12
12
  } from "./chunk-HGMYEDAQ.js";
13
- import "./chunk-47X24IJG.js";
13
+ import "./chunk-O7S7OHLE.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // src/commands/agent-providers.ts
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-AJD252SX.js";
4
- import "./chunk-3MFYM2IS.js";
3
+ } from "./chunk-UGO2FO6V.js";
4
+ import "./chunk-EE3QTCLS.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  CliError,
8
8
  isMachineFormat,
9
9
  printCliError
10
10
  } from "./chunk-HGMYEDAQ.js";
11
- import "./chunk-47X24IJG.js";
11
+ import "./chunk-O7S7OHLE.js";
12
12
  import "./chunk-MLKGABMK.js";
13
13
 
14
14
  // src/commands/agent-transcript.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-AJD252SX.js";
4
- import "./chunk-3MFYM2IS.js";
3
+ } from "./chunk-UGO2FO6V.js";
4
+ import "./chunk-EE3QTCLS.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  CliError,
@@ -13,7 +13,7 @@ import {
13
13
  formatPercent,
14
14
  formatSignedPointDelta,
15
15
  queryClassFilterSchema
16
- } from "./chunk-47X24IJG.js";
16
+ } from "./chunk-O7S7OHLE.js";
17
17
  import "./chunk-MLKGABMK.js";
18
18
 
19
19
  // src/commands/analytics.ts
@@ -100,22 +100,21 @@ Citation Rate Trends (${data.window}, ${METRICS_QUERY_CLASS_LABEL[queryClass]})`
100
100
  console.log(` ${modelChangeNotice.text}`);
101
101
  console.log("");
102
102
  }
103
- console.log(` Overall: ${formatPercent(data.overall.citationRate)} (${data.overall.cited}/${data.overall.total})`);
103
+ console.log(` Overall: ${citedFigure(data.overall)}`);
104
104
  console.log(` Trend: ${data.trend}`);
105
105
  printWindowChange(data);
106
106
  if (Object.keys(data.byProvider).length > 0) {
107
107
  console.log(`
108
108
  By Provider:`);
109
109
  for (const [provider, metric] of Object.entries(data.byProvider)) {
110
- console.log(` ${provider.padEnd(10)} ${formatPercent(metric.citationRate).padStart(6)} (${metric.cited}/${metric.total})`);
110
+ console.log(` ${provider.padEnd(10)} ${citedFigure(metric, 6)}`);
111
111
  }
112
112
  }
113
113
  if (data.buckets.length > 0) {
114
114
  console.log(`
115
115
  Timeline (dates in UTC):`);
116
116
  for (const bucket of data.buckets) {
117
- const bar = bucket.total > 0 ? "\u2588".repeat(Math.round(bucket.citationRate * 20)) : "";
118
- console.log(` ${bucketDates(bucket).padEnd(BUCKET_DATE_WIDTH)} ${formatPercent(bucket.citationRate).padStart(6)} ${bar}`);
117
+ console.log(` ${bucketDates(bucket).padEnd(BUCKET_DATE_WIDTH)} ${citedBar(bucket)}`);
119
118
  }
120
119
  }
121
120
  const providersInBuckets = [...new Set(data.buckets.flatMap((b) => Object.keys(b.byProvider ?? {})))].sort();
@@ -127,8 +126,7 @@ Citation Rate Trends (${data.window}, ${METRICS_QUERY_CLASS_LABEL[queryClass]})`
127
126
  for (const bucket of data.buckets) {
128
127
  const metric = bucket.byProvider?.[provider];
129
128
  if (!metric) continue;
130
- const bar = metric.total > 0 ? "\u2588".repeat(Math.round(metric.citationRate * 20)) : "";
131
- console.log(` ${bucketDates(bucket).padEnd(BUCKET_DATE_WIDTH)} ${formatPercent(metric.citationRate).padStart(6)} ${bar}`);
129
+ console.log(` ${bucketDates(bucket).padEnd(BUCKET_DATE_WIDTH)} ${citedBar(metric)}`);
132
130
  }
133
131
  }
134
132
  }
@@ -176,6 +174,18 @@ Citation Rate Trends (${data.window}, ${METRICS_QUERY_CLASS_LABEL[queryClass]})`
176
174
  }
177
175
  }
178
176
  }
177
+ function citedFigure(metric, rateWidth = 0) {
178
+ if (metric.citationRate === null) {
179
+ return `not measured (${metric.total} ${metric.total === 1 ? "answer" : "answers"} without sources)`;
180
+ }
181
+ const excluded = metric.citationNotMeasured > 0 ? `, ${metric.citationNotMeasured} not measured` : "";
182
+ return `${formatPercent(metric.citationRate).padStart(rateWidth)} (${metric.cited}/${metric.citedTotal ?? metric.total}${excluded})`;
183
+ }
184
+ function citedBar(metric) {
185
+ if (metric.citationRate === null) return `${"n/m".padStart(6)} not measured`;
186
+ const bar = metric.total > 0 ? "\u2588".repeat(Math.round(metric.citationRate * 20)) : "";
187
+ return `${formatPercent(metric.citationRate).padStart(6)} ${bar}`;
188
+ }
179
189
  function printWindowChange(data) {
180
190
  const windowChange = data.windowChange;
181
191
  if (!windowChange) return;
@@ -185,10 +195,11 @@ function printWindowChange(data) {
185
195
  ["Cited", windowChange.citationRate],
186
196
  [`Mention share \xB7 ${shareScope}`, windowChange.mentionShare]
187
197
  ];
198
+ const citationNotMeasured = data.buckets.length > 0 && data.buckets.every((bucket) => bucket.citationRate === null);
188
199
  console.log(`
189
200
  Change Across the Window (first \u2192 latest bucket):`);
190
201
  for (const [label, change] of series) {
191
- const text = change ? `${formatPercent(change.first)} \u2192 ${formatPercent(change.latest)} (${formatSignedPointDelta(change.delta)})` : "fewer than two buckets to compare";
202
+ const text = change ? `${formatPercent(change.first)} \u2192 ${formatPercent(change.latest)} (${formatSignedPointDelta(change.delta)})` : label === "Cited" && citationNotMeasured ? "not measured (no answer in this window carries sources)" : "fewer than two buckets to compare";
192
203
  console.log(` ${label}: ${text}`);
193
204
  }
194
205
  }
@@ -218,17 +229,21 @@ function formatModelEvidence(state) {
218
229
  return `mixed ${state.models.join(", ")}${state.includesUnknown ? " + unknown" : ""}`;
219
230
  }
220
231
  }
232
+ function citedRunBase(consistency) {
233
+ return consistency.citedTotalRuns ?? consistency.totalRuns;
234
+ }
221
235
  function printGaps(data) {
236
+ const notMeasured = data.citationNotMeasured ?? [];
222
237
  console.log(`
223
238
  Brand Gap Analysis`);
224
239
  console.log("\u2500".repeat(50));
225
- console.log(` Cited: ${data.cited.length} | Gap: ${data.gap.length} | Uncited: ${data.uncited.length}`);
240
+ console.log(` Cited: ${data.cited.length} | Gap: ${data.gap.length} | Uncited: ${data.uncited.length}${notMeasured.length > 0 ? ` | Not measured: ${notMeasured.length}` : ""}`);
226
241
  if (data.gap.length > 0) {
227
242
  console.log(`
228
243
  Opportunity Gaps (competitors cited, you're not):`);
229
244
  for (const q of data.gap) {
230
245
  const competitors = q.competitorsCiting.join(", ");
231
- const cons = q.consistency.totalRuns > 0 ? ` [cited ${q.consistency.citedRuns}/${q.consistency.totalRuns} runs]` : "";
246
+ const cons = citedRunBase(q.consistency) > 0 ? ` [cited ${q.consistency.citedRuns}/${citedRunBase(q.consistency)} runs]` : "";
232
247
  console.log(` \u2022 ${q.query}${cons}`);
233
248
  console.log(` Competitors: ${competitors}`);
234
249
  }
@@ -237,10 +252,15 @@ Brand Gap Analysis`);
237
252
  console.log(`
238
253
  Cited Queries:`);
239
254
  for (const q of data.cited) {
240
- const cons = q.consistency.totalRuns > 0 ? ` [${q.consistency.citedRuns}/${q.consistency.totalRuns} runs]` : "";
255
+ const cons = citedRunBase(q.consistency) > 0 ? ` [${q.consistency.citedRuns}/${citedRunBase(q.consistency)} runs]` : "";
241
256
  console.log(` \u2713 ${q.query} (${q.providers.join(", ")})${cons}`);
242
257
  }
243
258
  }
259
+ if (notMeasured.length > 0) {
260
+ console.log(`
261
+ Citations Not Measured (no answer carries sources):`);
262
+ for (const q of notMeasured) console.log(` \xB7 ${q.query}`);
263
+ }
244
264
  }
245
265
  function printSources(data) {
246
266
  console.log(`
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-AJD252SX.js";
4
- import "./chunk-3MFYM2IS.js";
3
+ } from "./chunk-UGO2FO6V.js";
4
+ import "./chunk-EE3QTCLS.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  CliError,
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-HGMYEDAQ.js";
11
11
  import {
12
12
  describeError
13
- } from "./chunk-47X24IJG.js";
13
+ } from "./chunk-O7S7OHLE.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
 
16
16
  // src/commands/apply.ts
@@ -10,20 +10,20 @@ import {
10
10
  backfillSnapshotAttributionCommand,
11
11
  backfillTrafficClassificationCommand,
12
12
  replayQueryAuditLog
13
- } from "./chunk-74V5EPZH.js";
14
- import "./chunk-RRXLJPBN.js";
15
- import "./chunk-3MFYM2IS.js";
13
+ } from "./chunk-BKDRT4VS.js";
14
+ import "./chunk-YIIRS7V7.js";
15
+ import "./chunk-EE3QTCLS.js";
16
16
  import "./chunk-HGMYEDAQ.js";
17
- import "./chunk-YBWATBX4.js";
18
- import "./chunk-UY6SKAKW.js";
17
+ import "./chunk-HBHLYWKE.js";
18
+ import "./chunk-7SNMIXEQ.js";
19
19
  import {
20
20
  backfillProjectAnswerMentions,
21
21
  backfillProjectAnswerMentionsInChunks
22
- } from "./chunk-ZGBLNKFN.js";
23
- import "./chunk-YEUULP44.js";
24
- import "./chunk-3VPBRGPN.js";
25
- import "./chunk-L53ZSQN5.js";
26
- import "./chunk-47X24IJG.js";
22
+ } from "./chunk-YGAQQSCL.js";
23
+ import "./chunk-LNVFERI4.js";
24
+ import "./chunk-LJO2BKWU.js";
25
+ import "./chunk-2DV7F6XA.js";
26
+ import "./chunk-O7S7OHLE.js";
27
27
  import "./chunk-MLKGABMK.js";
28
28
  export {
29
29
  activeQueriesAt,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-AJD252SX.js";
4
- import "./chunk-3MFYM2IS.js";
3
+ } from "./chunk-UGO2FO6V.js";
4
+ import "./chunk-EE3QTCLS.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -17,7 +17,7 @@ import {
17
17
  backlinkSourceSchema,
18
18
  formatPercent,
19
19
  formatRunErrorOneLine
20
- } from "./chunk-47X24IJG.js";
20
+ } from "./chunk-O7S7OHLE.js";
21
21
  import "./chunk-MLKGABMK.js";
22
22
 
23
23
  // src/commands/backlinks.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-AJD252SX.js";
4
- import "./chunk-3MFYM2IS.js";
3
+ } from "./chunk-UGO2FO6V.js";
4
+ import "./chunk-EE3QTCLS.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -14,7 +14,7 @@ import {
14
14
  describeError,
15
15
  formatPercent,
16
16
  formatRunErrorOneLine
17
- } from "./chunk-47X24IJG.js";
17
+ } from "./chunk-O7S7OHLE.js";
18
18
  import "./chunk-MLKGABMK.js";
19
19
 
20
20
  // src/commands/bing.ts
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  trackCliConnection
3
- } from "./chunk-XQP3XHLJ.js";
3
+ } from "./chunk-O6APBEJE.js";
4
4
  import {
5
5
  answerServiceDescriptors
6
- } from "./chunk-5ZOM5BJS.js";
6
+ } from "./chunk-HL2LGRTI.js";
7
7
  import {
8
8
  outcomeFailure
9
- } from "./chunk-VADVPARO.js";
9
+ } from "./chunk-DHIB7EIA.js";
10
10
  import {
11
11
  isLoopbackBindHost
12
12
  } from "./chunk-TSENU4GG.js";
13
13
  import {
14
14
  registeredProviderNames
15
- } from "./chunk-O6RXNSNW.js";
15
+ } from "./chunk-COHSL6KW.js";
16
16
  import {
17
17
  isTelemetryEnabled,
18
18
  recordInstallRef
19
- } from "./chunk-C55P75G4.js";
19
+ } from "./chunk-AMGM55CP.js";
20
20
  import {
21
21
  createApiClient
22
- } from "./chunk-AJD252SX.js";
22
+ } from "./chunk-UGO2FO6V.js";
23
23
  import {
24
24
  configExists,
25
25
  getAnswerServiceEnv,
@@ -30,7 +30,7 @@ import {
30
30
  loadConfigRaw,
31
31
  saveConfig,
32
32
  withBootstrapProviderDefaults
33
- } from "./chunk-3MFYM2IS.js";
33
+ } from "./chunk-EE3QTCLS.js";
34
34
  import "./chunk-AOJU5LKX.js";
35
35
  import {
36
36
  CliError,
@@ -38,17 +38,17 @@ import {
38
38
  isMachineFormat,
39
39
  systemError
40
40
  } from "./chunk-HGMYEDAQ.js";
41
- import "./chunk-3VPBRGPN.js";
41
+ import "./chunk-LJO2BKWU.js";
42
42
  import {
43
43
  apiKeys,
44
44
  createClient,
45
45
  dashboardSessions,
46
46
  migrate
47
- } from "./chunk-L53ZSQN5.js";
47
+ } from "./chunk-2DV7F6XA.js";
48
48
  import {
49
49
  ProviderNames,
50
50
  ProviderReloadErrorReasons
51
- } from "./chunk-47X24IJG.js";
51
+ } from "./chunk-O7S7OHLE.js";
52
52
  import "./chunk-MLKGABMK.js";
53
53
 
54
54
  // src/commands/bootstrap.ts
@@ -66,7 +66,7 @@ function persistedValue(value) {
66
66
  return value;
67
67
  }
68
68
  var PROVIDER_FREE_NEXT_STEPS = [
69
- "AI Visibility needs an answer-engine provider. Page Health does not.",
69
+ "AI Visibility needs an answer-engine provider. Agent Readiness does not.",
70
70
  "With the server running, the operator runs `canonry settings provider gemini --api-key <key>` (free key at https://aistudio.google.com/apikey). It takes effect immediately.",
71
71
  "Or the operator sets GEMINI_API_KEY and reruns `canonry bootstrap`. It reloads the matching running local server and confirms active providers; an offline server uses the saved settings at startup.",
72
72
  "A provider key is the operator's credential: never ask for it in chat."
@@ -319,7 +319,7 @@ async function bootstrapCommand(opts) {
319
319
  break;
320
320
  }
321
321
  if (providerFree) {
322
- console.log("Providers: none (Page Health works now; add one later to enable AI Visibility).");
322
+ console.log("Providers: none (Agent Readiness works now; add one later to enable AI Visibility).");
323
323
  console.log(" To add one with the server running: canonry settings provider gemini --api-key <key>");
324
324
  console.log(" (free key at aistudio.google.com). Or set GEMINI_API_KEY and rerun `canonry bootstrap`;");
325
325
  console.log(" bootstrap reloads the matching running local server and confirms active providers.");
@@ -1,26 +1,26 @@
1
1
  import {
2
2
  trackCliConnection
3
- } from "./chunk-XQP3XHLJ.js";
3
+ } from "./chunk-O6APBEJE.js";
4
4
  import {
5
5
  outcomeFailure
6
- } from "./chunk-VADVPARO.js";
7
- import "./chunk-C55P75G4.js";
6
+ } from "./chunk-DHIB7EIA.js";
7
+ import "./chunk-AMGM55CP.js";
8
8
  import {
9
9
  createApiClient
10
- } from "./chunk-AJD252SX.js";
10
+ } from "./chunk-UGO2FO6V.js";
11
11
  import {
12
12
  loadConfig,
13
13
  saveConfigPatch
14
- } from "./chunk-3MFYM2IS.js";
14
+ } from "./chunk-EE3QTCLS.js";
15
15
  import "./chunk-AOJU5LKX.js";
16
16
  import {
17
17
  CliError,
18
18
  isMachineFormat
19
19
  } from "./chunk-HGMYEDAQ.js";
20
- import "./chunk-3VPBRGPN.js";
20
+ import "./chunk-LJO2BKWU.js";
21
21
  import {
22
22
  describeError
23
- } from "./chunk-47X24IJG.js";
23
+ } from "./chunk-O7S7OHLE.js";
24
24
  import "./chunk-MLKGABMK.js";
25
25
 
26
26
  // src/commands/cdp.ts