@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-UGO2FO6V.js";
|
|
4
|
+
import "./chunk-EE3QTCLS.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-
|
|
24
|
+
} from "./chunk-O7S7OHLE.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-
|
|
4
|
-
import "./chunk-
|
|
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
|
import {
|
|
15
15
|
contentTargetDismissRequestSchema,
|
|
16
16
|
formatPercent
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-O7S7OHLE.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-
|
|
4
|
+
} from "./chunk-EE3QTCLS.js";
|
|
5
5
|
import {
|
|
6
6
|
isMachineFormat
|
|
7
7
|
} from "./chunk-HGMYEDAQ.js";
|
|
8
8
|
import {
|
|
9
9
|
anyUsersExist
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-YGAQQSCL.js";
|
|
11
|
+
import "./chunk-LNVFERI4.js";
|
|
12
|
+
import "./chunk-LJO2BKWU.js";
|
|
13
13
|
import {
|
|
14
14
|
createClient
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-2DV7F6XA.js";
|
|
16
|
+
import "./chunk-O7S7OHLE.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-
|
|
43
|
+
const { createDemoServer } = await import("./demo-server-SJPI6RSL.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-
|
|
8
|
+
} from "./chunk-FZ3MUTU3.js";
|
|
9
9
|
import {
|
|
10
10
|
canonryMcpTools
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-F46TBLXK.js";
|
|
12
|
+
import "./chunk-DGDLLRS4.js";
|
|
13
|
+
import "./chunk-7BEGCVVB.js";
|
|
14
14
|
import {
|
|
15
15
|
PACKAGE_VERSION
|
|
16
16
|
} from "./chunk-AOJU5LKX.js";
|
|
@@ -18,17 +18,17 @@ import "./chunk-HGMYEDAQ.js";
|
|
|
18
18
|
import {
|
|
19
19
|
HISTORY_WINDOW_RUNS,
|
|
20
20
|
IntelligenceService
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-SWZXHHAG.js";
|
|
22
22
|
import {
|
|
23
23
|
determineCitationState
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import "./chunk-
|
|
24
|
+
} from "./chunk-HBHLYWKE.js";
|
|
25
|
+
import "./chunk-7SNMIXEQ.js";
|
|
26
26
|
import {
|
|
27
27
|
apiRoutes,
|
|
28
28
|
assessConversionTrackingIntegrity
|
|
29
|
-
} from "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
29
|
+
} from "./chunk-YGAQQSCL.js";
|
|
30
|
+
import "./chunk-LNVFERI4.js";
|
|
31
|
+
import "./chunk-LJO2BKWU.js";
|
|
32
32
|
import {
|
|
33
33
|
adsAdGroups,
|
|
34
34
|
adsAds,
|
|
@@ -104,9 +104,10 @@ import {
|
|
|
104
104
|
siteCrawlPages,
|
|
105
105
|
siteCrawlSnapshots,
|
|
106
106
|
trafficSources
|
|
107
|
-
} from "./chunk-
|
|
107
|
+
} from "./chunk-2DV7F6XA.js";
|
|
108
108
|
import {
|
|
109
109
|
AI_ENGINE_DOMAINS,
|
|
110
|
+
CitationStates,
|
|
110
111
|
GA_OVERVIEW_HISTORY_DAYS,
|
|
111
112
|
GA_OVERVIEW_WINDOWS,
|
|
112
113
|
GaOverviewPeriods,
|
|
@@ -150,8 +151,9 @@ import {
|
|
|
150
151
|
queryClassSchema,
|
|
151
152
|
roundPreservingTotal,
|
|
152
153
|
siteAuditPageFactorSchema,
|
|
153
|
-
wilsonInterval
|
|
154
|
-
|
|
154
|
+
wilsonInterval,
|
|
155
|
+
withLegacyAgentReadinessPaths
|
|
156
|
+
} from "./chunk-O7S7OHLE.js";
|
|
155
157
|
import "./chunk-MLKGABMK.js";
|
|
156
158
|
|
|
157
159
|
// src/demo-server.ts
|
|
@@ -838,7 +840,7 @@ function loadDeadLinks(db, facts) {
|
|
|
838
840
|
};
|
|
839
841
|
}
|
|
840
842
|
function deadLinkStep(project, deadLinks, text) {
|
|
841
|
-
return step("
|
|
843
|
+
return step("canonry_agent_readiness_dead_links", { project: project.name }, {
|
|
842
844
|
state: deadLinks.state,
|
|
843
845
|
checked: deadLinks.checked,
|
|
844
846
|
found: deadLinks.found,
|
|
@@ -1107,7 +1109,7 @@ function harborInsights(db, facts, deadLinks) {
|
|
|
1107
1109
|
}
|
|
1108
1110
|
if (deadLinks) {
|
|
1109
1111
|
const detail = deadLinkDetail(deadLinks);
|
|
1110
|
-
findings.push(`**${deadLinks.found} dead links from the site audit.** There is ${detail}. Action: remove or redirect that link on all ${deadLinks.sources.length} pages. ${link("Open
|
|
1112
|
+
findings.push(`**${deadLinks.found} dead links from the site audit.** There is ${detail}. Action: remove or redirect that link on all ${deadLinks.sources.length} pages. ${link("Open Agent Readiness", `/projects/${project.name}/agent-readiness`)}`);
|
|
1111
1113
|
}
|
|
1112
1114
|
const answer = [
|
|
1113
1115
|
`Only ${active.length} ${active.length === 1 ? "insight is" : "insights are"} stored for ${project.displayName}${fromSweeps.length === 0 ? `, and ${active.length === 2 ? "neither" : "none"} comes from a sweep` : ""}, so there is no severity ranking worth walking through. These are the ${findings.length} most important measured findings instead:`,
|
|
@@ -1155,7 +1157,7 @@ import fastifyStatic from "@fastify/static";
|
|
|
1155
1157
|
import rateLimit from "@fastify/rate-limit";
|
|
1156
1158
|
|
|
1157
1159
|
// src/demo/access.ts
|
|
1158
|
-
var DEMO_READ_ROUTES =
|
|
1160
|
+
var DEMO_READ_ROUTES = new Set(withLegacyAgentReadinessPaths([
|
|
1159
1161
|
"/api/v1/auth/session",
|
|
1160
1162
|
"/api/v1/backlinks/releases",
|
|
1161
1163
|
"/api/v1/backlinks/status",
|
|
@@ -1295,23 +1297,23 @@ var DEMO_READ_ROUTES = /* @__PURE__ */ new Set([
|
|
|
1295
1297
|
"/api/v1/projects/:name/seo/runs/:id",
|
|
1296
1298
|
"/api/v1/projects/:name/snapshots",
|
|
1297
1299
|
"/api/v1/projects/:name/snapshots/diff",
|
|
1298
|
-
"/api/v1/projects/:name/
|
|
1299
|
-
"/api/v1/projects/:name/
|
|
1300
|
-
"/api/v1/projects/:name/
|
|
1301
|
-
"/api/v1/projects/:name/
|
|
1302
|
-
"/api/v1/projects/:name/
|
|
1303
|
-
"/api/v1/projects/:name/
|
|
1304
|
-
"/api/v1/projects/:name/
|
|
1305
|
-
"/api/v1/projects/:name/
|
|
1306
|
-
"/api/v1/projects/:name/
|
|
1307
|
-
"/api/v1/projects/:name/
|
|
1308
|
-
"/api/v1/projects/:name/
|
|
1309
|
-
"/api/v1/projects/:name/
|
|
1310
|
-
"/api/v1/projects/:name/
|
|
1311
|
-
"/api/v1/projects/:name/
|
|
1312
|
-
"/api/v1/projects/:name/
|
|
1313
|
-
"/api/v1/projects/:name/
|
|
1314
|
-
"/api/v1/projects/:name/
|
|
1300
|
+
"/api/v1/projects/:name/agent-readiness",
|
|
1301
|
+
"/api/v1/projects/:name/agent-readiness/changes",
|
|
1302
|
+
"/api/v1/projects/:name/agent-readiness/crawl",
|
|
1303
|
+
"/api/v1/projects/:name/agent-readiness/crawl/pages",
|
|
1304
|
+
"/api/v1/projects/:name/agent-readiness/crawl/pages/audit",
|
|
1305
|
+
"/api/v1/projects/:name/agent-readiness/dead-links",
|
|
1306
|
+
"/api/v1/projects/:name/agent-readiness/graph",
|
|
1307
|
+
"/api/v1/projects/:name/agent-readiness/internal-links",
|
|
1308
|
+
"/api/v1/projects/:name/agent-readiness/internal-links/neighbors",
|
|
1309
|
+
"/api/v1/projects/:name/agent-readiness/pages",
|
|
1310
|
+
"/api/v1/projects/:name/agent-readiness/path",
|
|
1311
|
+
"/api/v1/projects/:name/agent-readiness/runs",
|
|
1312
|
+
"/api/v1/projects/:name/agent-readiness/runs/:runId/page-health-preview",
|
|
1313
|
+
"/api/v1/projects/:name/agent-readiness/runs/:runId/progress",
|
|
1314
|
+
"/api/v1/projects/:name/agent-readiness/structure",
|
|
1315
|
+
"/api/v1/projects/:name/agent-readiness/subgraph",
|
|
1316
|
+
"/api/v1/projects/:name/agent-readiness/trend",
|
|
1315
1317
|
"/api/v1/projects/:name/timeline",
|
|
1316
1318
|
"/api/v1/projects/:name/trends",
|
|
1317
1319
|
"/api/v1/projects/:name/traffic/events",
|
|
@@ -1324,7 +1326,7 @@ var DEMO_READ_ROUTES = /* @__PURE__ */ new Set([
|
|
|
1324
1326
|
"/api/v1/runs",
|
|
1325
1327
|
"/api/v1/runs/:id",
|
|
1326
1328
|
"/api/v1/session"
|
|
1327
|
-
]);
|
|
1329
|
+
]));
|
|
1328
1330
|
function isDemoApiReadAllowed(method, registeredRoute) {
|
|
1329
1331
|
return (method === "GET" || method === "HEAD") && registeredRoute !== void 0 && DEMO_READ_ROUTES.has(registeredRoute);
|
|
1330
1332
|
}
|
|
@@ -1336,7 +1338,7 @@ var DEMO_CLIENT_CONFIG = {
|
|
|
1336
1338
|
dashboard: { showAgentBar: false, showUpdateNotification: false }
|
|
1337
1339
|
};
|
|
1338
1340
|
var INLINE_SCRIPT = /<script(?<attributes>[^>]*)>(?<body>[\s\S]*?)<\/script>/gi;
|
|
1339
|
-
var DEMO_DOCUMENT_PATH = /^\/(?:projects(?:\/[^/.]+(?:\/(?:portfolio|discovery|search-console|seo-data|activity|technical-aeo|conversions|local|queries|backlinks|report|history|settings|properties)(?:\/[^/.]+)*)?)?|runs|history|traffic(?:\/[^/.]+(?:\/[^/.]+)?)?)\/?$/;
|
|
1341
|
+
var DEMO_DOCUMENT_PATH = /^\/(?:projects(?:\/[^/.]+(?:\/(?:portfolio|discovery|search-console|seo-data|activity|traffic|journeys|agent-readiness|technical-aeo|conversions|local|queries|backlinks|report|history|settings|properties)(?:\/[^/.]+)*)?)?|runs|history|traffic(?:\/[^/.]+(?:\/[^/.]+)?)?)\/?$/;
|
|
1340
1342
|
var DEMO_TITLE = "Canonry live demo";
|
|
1341
1343
|
var DEMO_DESCRIPTION = "The open-source AEO operating platform. Sample data, no sign-in.";
|
|
1342
1344
|
var DEMO_PREVIEW_IMAGE = "demo-og.png";
|
|
@@ -2147,7 +2149,7 @@ function seedDemoCore(db, context) {
|
|
|
2147
2149
|
provider: identity.provider,
|
|
2148
2150
|
model: identity.requestedModel,
|
|
2149
2151
|
servedModel: identity.servedModel,
|
|
2150
|
-
citationState: cited ?
|
|
2152
|
+
citationState: cited ? CitationStates.cited : CitationStates["not-cited"],
|
|
2151
2153
|
answerMentioned: cited,
|
|
2152
2154
|
answerText: cited ? `Fictional answer: ${target.label} is a Harbor Resorts option for this stay.` : `Fictional answer: ${providerIndex === 1 ? "Coastal Stays" : "Seaside Collection"} is recommended instead.`,
|
|
2153
2155
|
citedDomains: cited ? [context.portfolio.domain] : [competitor],
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SNAPSHOT_CELL_LEGEND,
|
|
3
|
+
citationGlyph,
|
|
4
|
+
mentionGlyph
|
|
5
|
+
} from "./chunk-J6536OL6.js";
|
|
1
6
|
import {
|
|
2
7
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-UGO2FO6V.js";
|
|
9
|
+
import "./chunk-EE3QTCLS.js";
|
|
5
10
|
import {
|
|
6
11
|
emitJsonl
|
|
7
12
|
} from "./chunk-Z7IUAJOF.js";
|
|
@@ -11,10 +16,9 @@ import {
|
|
|
11
16
|
isMachineFormat
|
|
12
17
|
} from "./chunk-HGMYEDAQ.js";
|
|
13
18
|
import {
|
|
14
|
-
CitationStates,
|
|
15
19
|
DiscoveryPromoteCompetitorSkipReasons,
|
|
16
20
|
describeError
|
|
17
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-O7S7OHLE.js";
|
|
18
22
|
import "./chunk-MLKGABMK.js";
|
|
19
23
|
|
|
20
24
|
// src/commands/discover.ts
|
|
@@ -330,12 +334,10 @@ function printSessionDetail(session) {
|
|
|
330
334
|
if (session.probes && session.probes.length > 0) {
|
|
331
335
|
const sorted = [...session.probes].sort((a, b) => (a.bucket ?? "").localeCompare(b.bucket ?? ""));
|
|
332
336
|
console.log(`
|
|
333
|
-
Probes (${session.probes.length}):
|
|
337
|
+
Probes (${session.probes.length}): ${SNAPSHOT_CELL_LEGEND}`);
|
|
334
338
|
for (const p of sorted) {
|
|
335
339
|
const bucket = (p.bucket ?? "\u2013").padEnd(15);
|
|
336
|
-
|
|
337
|
-
const mentionGlyph = typeof p.answerMentioned === "boolean" ? p.answerMentioned ? "M" : "m" : "\u2013";
|
|
338
|
-
console.log(` [${citationGlyph}${mentionGlyph}] ${bucket} ${p.query}`);
|
|
340
|
+
console.log(` [${citationGlyph(p.citationState)}${mentionGlyph(p.answerMentioned)}] ${bucket} ${p.query}`);
|
|
339
341
|
}
|
|
340
342
|
}
|
|
341
343
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-UGO2FO6V.js";
|
|
4
|
+
import "./chunk-EE3QTCLS.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-
|
|
10
|
+
import "./chunk-O7S7OHLE.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-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-UGO2FO6V.js";
|
|
4
|
+
import "./chunk-EE3QTCLS.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-
|
|
16
|
+
} from "./chunk-O7S7OHLE.js";
|
|
17
17
|
import "./chunk-MLKGABMK.js";
|
|
18
18
|
|
|
19
19
|
// src/commands/doctor.ts
|
|
@@ -1,18 +1,29 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-UGO2FO6V.js";
|
|
4
|
+
import "./chunk-EE3QTCLS.js";
|
|
5
5
|
import {
|
|
6
6
|
emitJsonl
|
|
7
7
|
} from "./chunk-Z7IUAJOF.js";
|
|
8
8
|
import "./chunk-AOJU5LKX.js";
|
|
9
9
|
import "./chunk-HGMYEDAQ.js";
|
|
10
10
|
import {
|
|
11
|
-
CitationStates
|
|
12
|
-
|
|
11
|
+
CitationStates,
|
|
12
|
+
citationStateToCited,
|
|
13
|
+
isCitationStateMeasured
|
|
14
|
+
} from "./chunk-O7S7OHLE.js";
|
|
13
15
|
import "./chunk-MLKGABMK.js";
|
|
14
16
|
|
|
15
17
|
// src/commands/evidence.ts
|
|
18
|
+
function latestCited(entry) {
|
|
19
|
+
const latest = entry.runs.at(-1);
|
|
20
|
+
return latest ? citationStateToCited(latest.citationState) : false;
|
|
21
|
+
}
|
|
22
|
+
var STATE_LABEL = {
|
|
23
|
+
[CitationStates.cited]: "\u2713 cited",
|
|
24
|
+
[CitationStates["not-cited"]]: "\u2717 not-cited",
|
|
25
|
+
[CitationStates["not-measured"]]: "\xB7 not measured (no sources)"
|
|
26
|
+
};
|
|
16
27
|
function getClient() {
|
|
17
28
|
return createApiClient();
|
|
18
29
|
}
|
|
@@ -22,7 +33,7 @@ async function showEvidence(project, format) {
|
|
|
22
33
|
if (format === "json") {
|
|
23
34
|
const enriched = timeline.map((entry) => ({
|
|
24
35
|
...entry,
|
|
25
|
-
cited: entry
|
|
36
|
+
cited: latestCited(entry)
|
|
26
37
|
}));
|
|
27
38
|
console.log(JSON.stringify(enriched, null, 2));
|
|
28
39
|
return;
|
|
@@ -30,7 +41,7 @@ async function showEvidence(project, format) {
|
|
|
30
41
|
emitJsonl(timeline.map((entry) => ({
|
|
31
42
|
project,
|
|
32
43
|
...entry,
|
|
33
|
-
cited: entry
|
|
44
|
+
cited: latestCited(entry)
|
|
34
45
|
})));
|
|
35
46
|
return;
|
|
36
47
|
}
|
|
@@ -43,14 +54,18 @@ async function showEvidence(project, format) {
|
|
|
43
54
|
for (const entry of timeline) {
|
|
44
55
|
const latest = entry.runs[entry.runs.length - 1];
|
|
45
56
|
if (!latest) continue;
|
|
46
|
-
const state = latest.citationState === CitationStates.cited ? "\u2713 cited" : "\u2717 not-cited";
|
|
47
57
|
const transition = latest.transition !== latest.citationState ? ` (${latest.transition})` : "";
|
|
48
|
-
console.log(` ${
|
|
58
|
+
console.log(` ${STATE_LABEL[latest.citationState]}${transition} ${entry.query}`);
|
|
49
59
|
}
|
|
60
|
+
const latestStates = timeline.flatMap((e) => e.runs.length > 0 ? [e.runs[e.runs.length - 1].citationState] : []);
|
|
61
|
+
const measured = latestStates.filter(isCitationStateMeasured).length;
|
|
62
|
+
const cited = latestStates.filter((state) => state === CitationStates.cited).length;
|
|
50
63
|
console.log(`
|
|
51
64
|
Queries: ${timeline.length}`);
|
|
52
|
-
|
|
53
|
-
|
|
65
|
+
console.log(` Cited: ${cited} / ${measured}`);
|
|
66
|
+
if (measured < latestStates.length) {
|
|
67
|
+
console.log(` Not measured: ${latestStates.length - measured} (no answer carried sources)`);
|
|
68
|
+
}
|
|
54
69
|
}
|
|
55
70
|
export {
|
|
56
71
|
showEvidence
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-UGO2FO6V.js";
|
|
4
|
+
import "./chunk-EE3QTCLS.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-
|
|
12
|
+
} from "./chunk-O7S7OHLE.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-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-UGO2FO6V.js";
|
|
4
|
+
import "./chunk-EE3QTCLS.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-
|
|
29
|
+
} from "./chunk-O7S7OHLE.js";
|
|
30
30
|
import "./chunk-MLKGABMK.js";
|
|
31
31
|
|
|
32
32
|
// src/commands/ga.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-UGO2FO6V.js";
|
|
4
|
+
import "./chunk-EE3QTCLS.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-
|
|
14
|
+
} from "./chunk-O7S7OHLE.js";
|
|
15
15
|
import "./chunk-MLKGABMK.js";
|
|
16
16
|
|
|
17
17
|
// src/commands/gbp.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
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
|
requireGscSitemapUrls,
|
|
11
11
|
resolveDiscoveredGscSitemapUrls,
|
|
12
12
|
submitGscSitemapBatches
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-DGDLLRS4.js";
|
|
14
14
|
import "./chunk-AOJU5LKX.js";
|
|
15
15
|
import {
|
|
16
16
|
CliError,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
} from "./chunk-HGMYEDAQ.js";
|
|
19
19
|
import {
|
|
20
20
|
formatPercent
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-O7S7OHLE.js";
|
|
22
22
|
import "./chunk-MLKGABMK.js";
|
|
23
23
|
|
|
24
24
|
// src/commands/google.ts
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
citedBase
|
|
3
|
+
} from "./chunk-J6536OL6.js";
|
|
1
4
|
import {
|
|
2
5
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-UGO2FO6V.js";
|
|
7
|
+
import "./chunk-EE3QTCLS.js";
|
|
5
8
|
import {
|
|
6
9
|
emitJsonl
|
|
7
10
|
} from "./chunk-Z7IUAJOF.js";
|
|
@@ -9,10 +12,13 @@ import "./chunk-AOJU5LKX.js";
|
|
|
9
12
|
import "./chunk-HGMYEDAQ.js";
|
|
10
13
|
import {
|
|
11
14
|
formatPercent
|
|
12
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-O7S7OHLE.js";
|
|
13
16
|
import "./chunk-MLKGABMK.js";
|
|
14
17
|
|
|
15
18
|
// src/commands/health-cmd.ts
|
|
19
|
+
function citedText(rate, cited, measured) {
|
|
20
|
+
return rate === null ? "not measured" : `${formatPercent(rate)} cited (${cited}/${measured})`;
|
|
21
|
+
}
|
|
16
22
|
async function showHealth(project, opts) {
|
|
17
23
|
const client = createApiClient();
|
|
18
24
|
if (opts.history) {
|
|
@@ -28,13 +34,13 @@ async function showHealth(project, opts) {
|
|
|
28
34
|
console.log("No health history available.");
|
|
29
35
|
return;
|
|
30
36
|
}
|
|
31
|
-
console.log("Date Mention Rate Mentioned/Total Cited Rate Cited/
|
|
32
|
-
console.log("\u2500".repeat(
|
|
37
|
+
console.log("Date Mention Rate Mentioned/Total Cited Rate Cited/Checked");
|
|
38
|
+
console.log("\u2500".repeat(88));
|
|
33
39
|
for (const snap of snapshots) {
|
|
34
40
|
const mRate = formatPercent(snap.overallMentionRate).padStart(6);
|
|
35
41
|
const mRatio = `${snap.mentionedPairs}/${snap.totalPairs}`.padEnd(15);
|
|
36
|
-
const cRate = formatPercent(snap.overallCitedRate).padStart(6);
|
|
37
|
-
const cRatio = `${snap.citedPairs}/${snap.totalPairs}`;
|
|
42
|
+
const cRate = snap.overallCitedRate === null ? "not measured" : formatPercent(snap.overallCitedRate).padStart(6);
|
|
43
|
+
const cRatio = `${snap.citedPairs}/${citedBase(snap.totalPairs, snap.citationNotMeasuredPairs)}`;
|
|
38
44
|
const date = snap.createdAt.slice(0, 19).padEnd(25);
|
|
39
45
|
console.log(`${date} ${mRate} ${mRatio} ${cRate} ${cRatio}`);
|
|
40
46
|
}
|
|
@@ -49,13 +55,14 @@ async function showHealth(project, opts) {
|
|
|
49
55
|
console.log("No health data yet \u2014 run a sweep first (canonry run <project>).");
|
|
50
56
|
return;
|
|
51
57
|
}
|
|
58
|
+
const notMeasured = health.citationNotMeasuredPairs;
|
|
52
59
|
console.log(`Health: ${formatPercent(health.overallMentionRate)} mentioned (${health.mentionedPairs}/${health.totalPairs} pairs)`);
|
|
53
|
-
console.log(` ${formatPercent(health.overallCitedRate)} cited (${health.citedPairs}/${health.totalPairs} pairs)`);
|
|
60
|
+
console.log(health.overallCitedRate === null ? ` citations not measured (no pair's engine returns sources, ${notMeasured} pairs)` : ` ${formatPercent(health.overallCitedRate)} cited (${health.citedPairs}/${citedBase(health.totalPairs, notMeasured)} pairs)${notMeasured > 0 ? `, ${notMeasured} not measured (no sources)` : ""}`);
|
|
54
61
|
console.log("");
|
|
55
62
|
if (health.providerBreakdown && Object.keys(health.providerBreakdown).length > 0) {
|
|
56
63
|
console.log("Provider Breakdown:");
|
|
57
64
|
for (const [provider, stats] of Object.entries(health.providerBreakdown)) {
|
|
58
|
-
console.log(` ${provider.padEnd(15)} ${formatPercent(stats.mentionRate)} mentioned (${stats.mentioned}/${stats.total}) ${
|
|
65
|
+
console.log(` ${provider.padEnd(15)} ${formatPercent(stats.mentionRate)} mentioned (${stats.mentioned}/${stats.total}) ${citedText(stats.citedRate, stats.cited, citedBase(stats.total, stats.citationNotMeasured))}`);
|
|
59
66
|
}
|
|
60
67
|
}
|
|
61
68
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-UGO2FO6V.js";
|
|
4
|
+
import "./chunk-EE3QTCLS.js";
|
|
5
5
|
import {
|
|
6
6
|
emitJsonl
|
|
7
7
|
} from "./chunk-Z7IUAJOF.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
describeError,
|
|
16
16
|
formatValidationIssues,
|
|
17
17
|
resultsClearRequestSchema
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-O7S7OHLE.js";
|
|
19
19
|
import "./chunk-MLKGABMK.js";
|
|
20
20
|
|
|
21
21
|
// src/commands/history.ts
|