@canonry/canonry 7.98.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 +34 -23
- 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-DeN79d3c.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-CdEHcI5S.js → account-context-CoJVqEXZ.js} +1 -1
- package/assets/assets/{agent-trust-copy-N6WacCSg.js → agent-trust-copy-BIXDMtBm.js} +1 -1
- package/assets/assets/{card-B1O0SunG.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-f4uuOgrw.js → react-sigma_core.esm.min-D1q0DR_j.js} +3 -3
- package/assets/assets/{server-traffic-CkSCFMnL.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-PQ4OP6OH.js → ads-FVPZ6R6Z.js} +3 -3
- package/dist/{agent-B6ZPL2HH.js → agent-2LPU2E5I.js} +7 -7
- package/dist/{agent-ask-ZUKNXRAX.js → agent-ask-5ODREK6D.js} +3 -3
- package/dist/{agent-conversations-DJ7WU7PL.js → agent-conversations-SNLOOJEM.js} +3 -3
- package/dist/{agent-journeys-LGUI3SQG.js → agent-journeys-XDXVL6PK.js} +3 -3
- package/dist/{agent-memory-PWZJ7G5Q.js → agent-memory-NKAI2S3U.js} +3 -3
- package/dist/{agent-providers-TEERDNJT.js → agent-providers-R5L7A72X.js} +3 -3
- package/dist/{agent-transcript-KDPOPK5Z.js → agent-transcript-C5WAGYVC.js} +3 -3
- package/dist/{analytics-NFW5RQRT.js → analytics-EJVOLIQL.js} +33 -13
- package/dist/{apply-EP4V4UF5.js → apply-I6JOM247.js} +3 -3
- package/dist/{backfill-6UTNNVFO.js → backfill-UVUR36IB.js} +10 -10
- package/dist/{backlinks-SG5GV5X5.js → backlinks-3VMVACWN.js} +3 -3
- package/dist/{bing-Q4W24JNC.js → bing-R5RL3PW2.js} +3 -3
- package/dist/{bootstrap-WEMERVNZ.js → bootstrap-GMMSDTNO.js} +12 -12
- package/dist/{cdp-3XKBJGHO.js → cdp-FJKUXHEY.js} +7 -7
- package/dist/{chunk-KK3Z34AN.js → chunk-2DV7F6XA.js} +91 -2
- package/dist/{chunk-MTW37GXF.js → chunk-2FWYWGIR.js} +2 -2
- package/dist/{chunk-Q5SNOMRB.js → chunk-56VVRWJM.js} +14 -5
- package/dist/{chunk-52M2JWCB.js → chunk-7BEGCVVB.js} +1 -1
- package/dist/{chunk-WZSDGC45.js → chunk-7BH53MOB.js} +27 -2
- package/dist/{chunk-IX5AC3QB.js → chunk-7J2RIIYU.js} +1450 -1067
- package/dist/{chunk-UXXZXXNG.js → chunk-7SNMIXEQ.js} +2 -2
- package/dist/{chunk-2XCYEBQV.js → chunk-AMGM55CP.js} +2 -2
- package/dist/{chunk-MSI4BGFN.js → chunk-AYKTVQF7.js} +13 -5
- package/dist/{chunk-3JWY65XO.js → chunk-BKDRT4VS.js} +7 -7
- package/dist/{chunk-FQ3L2TIX.js → chunk-COHSL6KW.js} +1 -1
- package/dist/{chunk-X3UXMHWC.js → chunk-DGDLLRS4.js} +1 -1
- package/dist/{chunk-YJITDEZR.js → chunk-DHIB7EIA.js} +4 -4
- package/dist/{chunk-BLW327AU.js → chunk-EE3QTCLS.js} +18 -6
- package/dist/{chunk-3GMBHGQ5.js → chunk-F46TBLXK.js} +204 -94
- package/dist/{chunk-RTH5JVC3.js → chunk-FBO25TA3.js} +1 -1
- package/dist/{chunk-2Q7JEC6N.js → chunk-FZ3MUTU3.js} +2 -2
- package/dist/{chunk-64R66MWZ.js → chunk-G6QN4VFS.js} +16 -10
- package/dist/{chunk-ISIJ2NS4.js → chunk-HBHLYWKE.js} +9 -6
- package/dist/{chunk-EJZ444VV.js → chunk-HL2LGRTI.js} +8 -6
- package/dist/chunk-J6536OL6.js +31 -0
- package/dist/{chunk-RLKI2QF7.js → chunk-KVRX7YIH.js} +20 -10
- package/dist/{chunk-3BA75QYU.js → chunk-LJO2BKWU.js} +1 -1
- package/dist/{chunk-CN6MVUY3.js → chunk-LNVFERI4.js} +1 -1
- package/dist/{chunk-ZADRESLB.js → chunk-NQYJHKML.js} +39 -7
- package/dist/{chunk-IAGC2MGP.js → chunk-O5UFAXUI.js} +646 -588
- package/dist/{chunk-RGFIRJ7F.js → chunk-O6APBEJE.js} +2 -2
- package/dist/{chunk-ZBTUISPG.js → chunk-O7S7OHLE.js} +9399 -8388
- package/dist/{chunk-ER5ZHAB2.js → chunk-QS5DWJDI.js} +2 -2
- package/dist/{chunk-QSL3FXE4.js → chunk-RBG2QXQM.js} +4 -4
- package/dist/{chunk-SAKH2RRF.js → chunk-SWZXHHAG.js} +16 -8
- package/dist/{chunk-VMGZBH5L.js → chunk-T7UDY7W3.js} +26 -11
- package/dist/{chunk-OL2L5ANJ.js → chunk-UGO2FO6V.js} +119 -55
- package/dist/{chunk-J6MYB3F4.js → chunk-VHULVUDL.js} +1 -1
- package/dist/{chunk-O22WSFWL.js → chunk-YGAQQSCL.js} +56339 -54966
- package/dist/{chunk-TNOYUE2L.js → chunk-YIIRS7V7.js} +98 -65
- package/dist/{chunk-64KB6YTG.js → chunk-YU2WX7RD.js} +3 -3
- package/dist/{citations-5OSQ3ZYU.js → citations-LOEQRDUB.js} +21 -10
- package/dist/{cli-catalog-T5OAVKGS.js → cli-catalog-5RXNUFBS.js} +3 -3
- package/dist/{cli-commands-VATCVJKW.js → cli-commands-HE2BQY3Y.js} +7 -7
- package/dist/cli.js +22 -17
- package/dist/{competitor-YIKTMTHY.js → competitor-PIX2BHJW.js} +3 -3
- package/dist/{content-DS2LKR7J.js → content-PJGW4WZF.js} +3 -3
- package/dist/{dashboard-HLVRRRI4.js → dashboard-7OKBD4MG.js} +6 -6
- package/dist/{demo-A5DTVJGK.js → demo-SCOFAWFM.js} +1 -1
- package/dist/{demo-server-P2JGAI6C.js → demo-server-SJPI6RSL.js} +38 -36
- package/dist/{discover-VNZDO2MU.js → discover-I3WL2QUN.js} +10 -8
- package/dist/{discover-eval-ON77LUEN.js → discover-eval-YRECOIP5.js} +3 -3
- package/dist/{doctor-7TNNTI7H.js → doctor-F4J6LILX.js} +3 -3
- package/dist/{evidence-E54CNGXS.js → evidence-MYQTCY4V.js} +25 -10
- package/dist/{export-cmd-XXZ6KLQQ.js → export-cmd-3SUFOJM6.js} +3 -3
- package/dist/{ga-ZQB4EJI3.js → ga-VA6FYK4L.js} +3 -3
- package/dist/{gbp-ZQL6NQEK.js → gbp-DI6ZVFHL.js} +3 -3
- package/dist/{google-7EIHQGSV.js → google-UVKWJCD2.js} +4 -4
- package/dist/{google-marketing-RSAO4PG7.js → google-marketing-S63HN733.js} +1 -1
- package/dist/{health-cmd-R7WPKGWX.js → health-cmd-DOZXGI46.js} +16 -9
- package/dist/{history-2CSWSVCY.js → history-UTJTUDYK.js} +3 -3
- package/dist/index.d.ts +204 -12
- package/dist/index.js +26 -26
- package/dist/{init-FXZRMXZ3.js → init-IVJSS33J.js} +19 -19
- package/dist/{insights-EJUL3W6D.js → insights-UHCVCZ76.js} +3 -3
- package/dist/intelligence-service-3EENJ5DS.js +16 -0
- package/dist/{journeys-YUMBANFH.js → journeys-XIT7WDM2.js} +3 -3
- package/dist/{keys-KLOTGT4H.js → keys-MQKW4JUI.js} +3 -3
- package/dist/{keyword-5NSJFEOI.js → keyword-EASMKYZ3.js} +3 -3
- package/dist/{logs-WW3RLCRG.js → logs-ZHZ6XM55.js} +3 -3
- package/dist/{mcp-NTBEIEVX.js → mcp-ECVT2YGU.js} +4 -4
- package/dist/mcp.js +10 -10
- package/dist/{measurement-plan-BLPAZEXS.js → measurement-plan-7FQKUOMR.js} +5 -5
- package/dist/{notify-KAGE6UEN.js → notify-TC7ARC6W.js} +3 -3
- package/dist/{organic-evidence-HTYRXRML.js → organic-evidence-M34MWJXE.js} +7 -4
- package/dist/overview-P6BRMXJN.js +314 -0
- package/dist/{project-NYUWICVC.js → project-WZ2YXFPJ.js} +4 -4
- package/dist/project-setup-WV6SPGIV.js +176 -0
- package/dist/{query-3CRRDOHD.js → query-WAFJKDHG.js} +3 -3
- package/dist/{research-ZULVD3TW.js → research-B5ZPQX7R.js} +3 -3
- package/dist/{results-export-STM7SQ4J.js → results-export-NIZV6R3K.js} +3 -3
- package/dist/{run-S4MFU4MK.js → run-ICLPZ7QT.js} +7 -4
- package/dist/{schedule-6W3Q2FUL.js → schedule-4C44LQ7R.js} +22 -3
- package/dist/{search-EKXXN7C4.js → search-UJM7KII3.js} +11 -4
- package/dist/{serve-TFBFPFAQ.js → serve-A6UIO6WP.js} +30 -29
- package/dist/{session-4B5V3AH6.js → session-RTE22GQT.js} +14 -14
- package/dist/settings-BOF5Z7ML.js +211 -0
- package/dist/{sitemaps-R7XFCH6E.js → sitemaps-BM7S76H2.js} +4 -4
- package/dist/{skills-44XYCTVD.js → skills-X5SR4HRO.js} +2 -2
- package/dist/{snapshot-ROAOJI4W.js → snapshot-KLKE37VY.js} +4 -4
- package/dist/{src-ZJRIKEDB.js → src-EKLG5A6O.js} +4 -2
- package/dist/{status-EN3A2TX5.js → status-OYG57DWU.js} +6 -5
- package/dist/{technical-aeo-ZV466F65.js → technical-aeo-KWVWOOTI.js} +23 -23
- package/dist/{telemetry-EZHPNZ2A.js → telemetry-KGE6FF3Y.js} +4 -4
- package/dist/{tools-IH4M7AAG.js → tools-4R33AZQ3.js} +11 -11
- package/dist/{traffic-VFLXWB3Z.js → traffic-SVMOKCSS.js} +7 -11
- package/dist/{trends-ZXJIX3Z3.js → trends-RGAKGX3L.js} +4 -4
- package/dist/{users-J2BYEWOE.js → users-47WKA2TO.js} +3 -3
- package/dist/{visibility-stats-AJ7NY2BP.js → visibility-stats-DTGQJPNV.js} +9 -5
- package/dist/{wordpress-U6MS35VE.js → wordpress-2CNUX4UE.js} +3 -3
- package/package.json +2 -2
- package/assets/assets/AgentSetupPage-h1kJhy9q.js +0 -18
- package/assets/assets/AuditHistoryPanel-CNUApNiJ.js +0 -1
- package/assets/assets/BacklinksPage-CpKmlAek.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-CcHnYn81.js +0 -4
- package/assets/assets/ProjectPage-Tmuqmust.js +0 -11
- package/assets/assets/RunsPage-BD4k3MjX.js +0 -1
- package/assets/assets/SettingsPage-BHy30JP5.js +0 -1
- package/assets/assets/SiteHealthSection-SYdtuGjq.js +0 -2
- package/assets/assets/ToneBadge-Cii5KNtg.js +0 -60
- package/assets/assets/TrafficPage-DuxtRqnc.js +0 -40
- package/assets/assets/TrafficSourceDetailPage-DiX1bB02.js +0 -1
- package/assets/assets/format-helpers-V8Pyc7cR.js +0 -3
- package/assets/assets/index-BAxHW-1G.css +0 -1
- package/assets/assets/index-BTz-B9hV.js +0 -60
- package/assets/assets/query-client-C1ycmW1c.js +0 -1
- package/assets/assets/react-query-DI7VfOND.js +0 -1
- package/assets/assets/service-DSgXWhNq.js +0 -1
- package/assets/assets/vendor-lucide-DuOM7wVi.js +0 -1
- package/dist/intelligence-service-TKK7O3Z5.js +0 -16
- package/dist/overview-GSJ4GP2T.js +0 -213
- package/dist/settings-VRTDPFR3.js +0 -119
|
@@ -1,10 +1,10 @@
|
|
|
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 "./chunk-HGMYEDAQ.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-O7S7OHLE.js";
|
|
8
8
|
import "./chunk-MLKGABMK.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/results-export.ts
|
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
cancelRun,
|
|
3
3
|
fillRun,
|
|
4
4
|
listRuns,
|
|
5
|
+
previewRun,
|
|
5
6
|
printRunDetail,
|
|
6
7
|
providerAccountStreakLine,
|
|
7
8
|
runAdmissionLines,
|
|
@@ -9,18 +10,20 @@ import {
|
|
|
9
10
|
showRunCompleteness,
|
|
10
11
|
triggerRun,
|
|
11
12
|
triggerRunAll
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-NQYJHKML.js";
|
|
14
|
+
import "./chunk-J6536OL6.js";
|
|
15
|
+
import "./chunk-UGO2FO6V.js";
|
|
16
|
+
import "./chunk-EE3QTCLS.js";
|
|
15
17
|
import "./chunk-Z7IUAJOF.js";
|
|
16
18
|
import "./chunk-AOJU5LKX.js";
|
|
17
19
|
import "./chunk-HGMYEDAQ.js";
|
|
18
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-O7S7OHLE.js";
|
|
19
21
|
import "./chunk-MLKGABMK.js";
|
|
20
22
|
export {
|
|
21
23
|
cancelRun,
|
|
22
24
|
fillRun,
|
|
23
25
|
listRuns,
|
|
26
|
+
previewRun,
|
|
24
27
|
printRunDetail,
|
|
25
28
|
providerAccountStreakLine,
|
|
26
29
|
runAdmissionLines,
|
|
@@ -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,10 +10,28 @@ import {
|
|
|
10
10
|
isMachineFormat,
|
|
11
11
|
usageError
|
|
12
12
|
} from "./chunk-HGMYEDAQ.js";
|
|
13
|
-
import
|
|
13
|
+
import {
|
|
14
|
+
formatZonedTimestamp,
|
|
15
|
+
schedulePreviewRequestSchema
|
|
16
|
+
} from "./chunk-O7S7OHLE.js";
|
|
14
17
|
import "./chunk-MLKGABMK.js";
|
|
15
18
|
|
|
16
19
|
// src/commands/schedule.ts
|
|
20
|
+
async function previewSchedule(project, timing, format) {
|
|
21
|
+
const parsed = schedulePreviewRequestSchema.safeParse(timing);
|
|
22
|
+
if (!parsed.success) throw usageError("Invalid schedule timing", { message: parsed.error.issues.map((issue) => issue.message).join("; ") });
|
|
23
|
+
const preview = await getClient().previewSchedule(project, parsed.data);
|
|
24
|
+
if (format === "jsonl") {
|
|
25
|
+
emitJsonl([preview]);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (format === "json") {
|
|
29
|
+
console.log(JSON.stringify(preview, null, 2));
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
console.log(`Next run: ${preview.nextRunAt ? formatZonedTimestamp(preview.nextRunAt, preview.timezone) : "No future occurrence"}`);
|
|
33
|
+
console.log("Preview only. No schedule was saved or enabled.");
|
|
34
|
+
}
|
|
17
35
|
async function listSchedules(project, format) {
|
|
18
36
|
const schedules = await getClient().listSchedules(project);
|
|
19
37
|
if (format === "jsonl") {
|
|
@@ -185,6 +203,7 @@ export {
|
|
|
185
203
|
enableSchedule,
|
|
186
204
|
formatNextRun,
|
|
187
205
|
listSchedules,
|
|
206
|
+
previewSchedule,
|
|
188
207
|
printSchedule,
|
|
189
208
|
removeSchedule,
|
|
190
209
|
setSchedule,
|
|
@@ -1,15 +1,22 @@
|
|
|
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
|
|
8
8
|
} from "./chunk-HGMYEDAQ.js";
|
|
9
|
-
import
|
|
9
|
+
import {
|
|
10
|
+
CitationStates
|
|
11
|
+
} from "./chunk-O7S7OHLE.js";
|
|
10
12
|
import "./chunk-MLKGABMK.js";
|
|
11
13
|
|
|
12
14
|
// src/commands/search.ts
|
|
15
|
+
var CITATION_STATE_LABEL = {
|
|
16
|
+
[CitationStates.cited]: "cited",
|
|
17
|
+
[CitationStates["not-cited"]]: "not-cited",
|
|
18
|
+
[CitationStates["not-measured"]]: "citation not measured"
|
|
19
|
+
};
|
|
13
20
|
async function searchProject(project, opts) {
|
|
14
21
|
const client = createApiClient();
|
|
15
22
|
const result = await client.searchProject(project, { q: opts.query, limit: opts.limit });
|
|
@@ -25,7 +32,7 @@ async function searchProject(project, opts) {
|
|
|
25
32
|
}
|
|
26
33
|
for (const hit of result.hits) {
|
|
27
34
|
if (hit.kind === "snapshot") {
|
|
28
|
-
console.log(` [snapshot] ${hit.query} (${hit.provider}, ${hit.citationState}) \u2014 ${hit.matchedField}`);
|
|
35
|
+
console.log(` [snapshot] ${hit.query} (${hit.provider}, ${CITATION_STATE_LABEL[hit.citationState]}) \u2014 ${hit.matchedField}`);
|
|
29
36
|
console.log(` ${hit.snippet}`);
|
|
30
37
|
console.log(` run=${hit.runId} at ${hit.createdAt}`);
|
|
31
38
|
} else {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
backfillAiReferralPaths,
|
|
3
3
|
backfillNormalizedPaths
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BKDRT4VS.js";
|
|
5
5
|
import {
|
|
6
6
|
operatorHttpUrl
|
|
7
7
|
} from "./chunk-6GO5VVAC.js";
|
|
@@ -9,24 +9,24 @@ import {
|
|
|
9
9
|
allowsKeylessFirstRunSetup,
|
|
10
10
|
createServer,
|
|
11
11
|
waitForServerRuntimeStartup
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-7J2RIIYU.js";
|
|
13
|
+
import "./chunk-KVRX7YIH.js";
|
|
14
|
+
import "./chunk-HL2LGRTI.js";
|
|
15
|
+
import "./chunk-56VVRWJM.js";
|
|
16
16
|
import "./chunk-ELCLGWUT.js";
|
|
17
17
|
import "./chunk-XEBKF4N5.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-VHULVUDL.js";
|
|
19
|
+
import "./chunk-YIIRS7V7.js";
|
|
20
20
|
import {
|
|
21
21
|
trackFeatureCompleted
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-DHIB7EIA.js";
|
|
23
23
|
import {
|
|
24
24
|
isLoopbackBindHost,
|
|
25
25
|
resolveServePort
|
|
26
26
|
} from "./chunk-TSENU4GG.js";
|
|
27
27
|
import {
|
|
28
28
|
registeredProviderNames
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-COHSL6KW.js";
|
|
30
30
|
import {
|
|
31
31
|
cliRuntimeContext,
|
|
32
32
|
getPrintedUpdateAvailable,
|
|
@@ -34,45 +34,45 @@ import {
|
|
|
34
34
|
isTelemetryEnabled,
|
|
35
35
|
setTelemetrySource,
|
|
36
36
|
trackEvent
|
|
37
|
-
} from "./chunk-
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
37
|
+
} from "./chunk-AMGM55CP.js";
|
|
38
|
+
import "./chunk-G6QN4VFS.js";
|
|
39
|
+
import "./chunk-2FWYWGIR.js";
|
|
40
|
+
import "./chunk-UGO2FO6V.js";
|
|
41
41
|
import {
|
|
42
42
|
getConfigDir,
|
|
43
43
|
getConfigPath,
|
|
44
44
|
loadConfig,
|
|
45
45
|
saveConfigPatch
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-EE3QTCLS.js";
|
|
47
47
|
import {
|
|
48
48
|
getMissingUserSkillsNudge,
|
|
49
49
|
shouldPrintServeSkillsNudge
|
|
50
|
-
} from "./chunk-
|
|
51
|
-
import "./chunk-
|
|
52
|
-
import "./chunk-
|
|
53
|
-
import "./chunk-
|
|
54
|
-
import "./chunk-
|
|
50
|
+
} from "./chunk-FBO25TA3.js";
|
|
51
|
+
import "./chunk-FZ3MUTU3.js";
|
|
52
|
+
import "./chunk-F46TBLXK.js";
|
|
53
|
+
import "./chunk-DGDLLRS4.js";
|
|
54
|
+
import "./chunk-7BEGCVVB.js";
|
|
55
55
|
import "./chunk-AOJU5LKX.js";
|
|
56
56
|
import {
|
|
57
57
|
CliError,
|
|
58
58
|
isMachineFormat
|
|
59
59
|
} from "./chunk-HGMYEDAQ.js";
|
|
60
|
-
import "./chunk-
|
|
61
|
-
import "./chunk-
|
|
62
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-SWZXHHAG.js";
|
|
61
|
+
import "./chunk-HBHLYWKE.js";
|
|
62
|
+
import "./chunk-7SNMIXEQ.js";
|
|
63
63
|
import {
|
|
64
64
|
refreshSnapshotMentionIdentity,
|
|
65
65
|
snapshotsWithSentimentResults
|
|
66
|
-
} from "./chunk-
|
|
67
|
-
import "./chunk-
|
|
68
|
-
import "./chunk-
|
|
66
|
+
} from "./chunk-YGAQQSCL.js";
|
|
67
|
+
import "./chunk-LNVFERI4.js";
|
|
68
|
+
import "./chunk-LJO2BKWU.js";
|
|
69
69
|
import {
|
|
70
70
|
createClient,
|
|
71
71
|
dataRepairCompletions,
|
|
72
72
|
migrate,
|
|
73
73
|
projects,
|
|
74
74
|
runs
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-2DV7F6XA.js";
|
|
76
76
|
import {
|
|
77
77
|
OutcomeReasonCodes,
|
|
78
78
|
OutcomeTriggers,
|
|
@@ -82,7 +82,7 @@ import {
|
|
|
82
82
|
URL_PATH_NORMALIZATION_VERSION,
|
|
83
83
|
classifyOutcomeError,
|
|
84
84
|
describeError
|
|
85
|
-
} from "./chunk-
|
|
85
|
+
} from "./chunk-O7S7OHLE.js";
|
|
86
86
|
import "./chunk-MLKGABMK.js";
|
|
87
87
|
|
|
88
88
|
// src/commands/serve.ts
|
|
@@ -482,10 +482,11 @@ function readServeOpenState(db) {
|
|
|
482
482
|
}
|
|
483
483
|
function buildServeOpenLine(input) {
|
|
484
484
|
if (input.projectCount === 0) {
|
|
485
|
-
return `Open ${input.url}/setup to
|
|
485
|
+
return `Open ${input.url}/setup to set up your first project: a free Agent Readiness audit scan, then AI Visibility.`;
|
|
486
486
|
}
|
|
487
487
|
if (!input.hasSiteAudit && input.firstProjectName) {
|
|
488
|
-
|
|
488
|
+
const firstRun = input.projectCount === 1 ? "&onboarding=first-run" : "";
|
|
489
|
+
return `Open ${input.url}/setup?project=${encodeURIComponent(input.firstProjectName)}${firstRun} to run its first Agent Readiness audit scan.`;
|
|
489
490
|
}
|
|
490
491
|
return `Open ${input.url}`;
|
|
491
492
|
}
|
|
@@ -9,28 +9,28 @@ import {
|
|
|
9
9
|
resolveAeroModel,
|
|
10
10
|
resolveConfiguredAgentProvider,
|
|
11
11
|
resolveSessionProviderAndModel
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-KVRX7YIH.js";
|
|
13
|
+
import "./chunk-56VVRWJM.js";
|
|
14
14
|
import {
|
|
15
15
|
resolveAeroSkillDir
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-2FWYWGIR.js";
|
|
17
|
+
import "./chunk-UGO2FO6V.js";
|
|
18
18
|
import {
|
|
19
19
|
AgentProviders,
|
|
20
20
|
coerceAgentProvider,
|
|
21
21
|
listAgentProviders
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
22
|
+
} from "./chunk-EE3QTCLS.js";
|
|
23
|
+
import "./chunk-F46TBLXK.js";
|
|
24
|
+
import "./chunk-DGDLLRS4.js";
|
|
25
|
+
import "./chunk-7BEGCVVB.js";
|
|
26
26
|
import "./chunk-AOJU5LKX.js";
|
|
27
27
|
import "./chunk-HGMYEDAQ.js";
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-7SNMIXEQ.js";
|
|
29
|
+
import "./chunk-YGAQQSCL.js";
|
|
30
|
+
import "./chunk-LNVFERI4.js";
|
|
31
|
+
import "./chunk-LJO2BKWU.js";
|
|
32
|
+
import "./chunk-2DV7F6XA.js";
|
|
33
|
+
import "./chunk-O7S7OHLE.js";
|
|
34
34
|
import "./chunk-MLKGABMK.js";
|
|
35
35
|
export {
|
|
36
36
|
AgentProviders,
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import {
|
|
2
|
+
setGoogleAuthConfig
|
|
3
|
+
} from "./chunk-ELCLGWUT.js";
|
|
4
|
+
import {
|
|
5
|
+
createApiClient
|
|
6
|
+
} from "./chunk-UGO2FO6V.js";
|
|
7
|
+
import {
|
|
8
|
+
getConfigPath,
|
|
9
|
+
loadConfig,
|
|
10
|
+
saveConfigPatch
|
|
11
|
+
} from "./chunk-EE3QTCLS.js";
|
|
12
|
+
import "./chunk-AOJU5LKX.js";
|
|
13
|
+
import {
|
|
14
|
+
CliError,
|
|
15
|
+
EXIT_SYSTEM_ERROR,
|
|
16
|
+
isMachineFormat
|
|
17
|
+
} from "./chunk-HGMYEDAQ.js";
|
|
18
|
+
import {
|
|
19
|
+
ProviderConnectionTestStatuses,
|
|
20
|
+
formatDurationSeconds
|
|
21
|
+
} from "./chunk-O7S7OHLE.js";
|
|
22
|
+
import "./chunk-MLKGABMK.js";
|
|
23
|
+
|
|
24
|
+
// src/commands/settings.ts
|
|
25
|
+
function getClient() {
|
|
26
|
+
return createApiClient();
|
|
27
|
+
}
|
|
28
|
+
async function setProvider(name, opts) {
|
|
29
|
+
const client = getClient();
|
|
30
|
+
const { format, ...payload } = opts;
|
|
31
|
+
const result = await client.updateProvider(name, payload);
|
|
32
|
+
if (isMachineFormat(format)) {
|
|
33
|
+
console.log(JSON.stringify(result, null, 2));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
console.log(`Provider ${result.name} updated successfully.`);
|
|
37
|
+
if (result.model) {
|
|
38
|
+
console.log(` Model: ${result.model}`);
|
|
39
|
+
}
|
|
40
|
+
if (result.quota) {
|
|
41
|
+
console.log(` Quota: ${result.quota.maxConcurrency} concurrent \xB7 ${result.quota.maxRequestsPerMinute}/min \xB7 ${result.quota.maxRequestsPerDay}/day`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function printConnection(connection) {
|
|
45
|
+
console.log(`${connection.displayName}: ${connection.configured ? "configured" : "not configured"}`);
|
|
46
|
+
if (connection.baseUrl) console.log(` Endpoint: ${connection.baseUrl}`);
|
|
47
|
+
console.log(` API key: ${connection.apiKeyConfigured ? "saved" : "not saved"}`);
|
|
48
|
+
if (connection.effectiveModel) console.log(` Model: ${connection.effectiveModel}${connection.model ? " (custom)" : " (inherited)"}`);
|
|
49
|
+
if (connection.configured && connection.lastTest !== void 0) console.log(` Last test: ${lastTestLine(connection.name, connection.lastTest)}`);
|
|
50
|
+
if (connection.capabilities.quota) {
|
|
51
|
+
for (const [key, value] of Object.entries(connection.quota.effective)) {
|
|
52
|
+
console.log(` ${key}: ${value} (${Object.hasOwn(connection.quota.overrides, key) ? "custom" : "inherited"})`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
console.log(` Used by ${connection.usage.projectCount} projects:`);
|
|
56
|
+
for (const project of connection.usage.projects) console.log(` ${project.displayName} (${project.name}): ${project.providers.join(", ")} \xB7 ${project.sources.join(", ")}`);
|
|
57
|
+
const unknown = connection.usage.unknown;
|
|
58
|
+
if (unknown) {
|
|
59
|
+
console.log(` Usage unknown for ${unknown.projectCount} ${unknown.projectCount === 1 ? "project" : "projects"} (saved settings could not be read):`);
|
|
60
|
+
for (const project of unknown.projects) console.log(` ${project.displayName} (${project.name}): ${project.sources.join(", ")}`);
|
|
61
|
+
}
|
|
62
|
+
for (const use of connection.hostUses) console.log(` Host use: ${use}`);
|
|
63
|
+
for (const blocker of connection.blockers) console.log(` Blocked: ${blocker.message}`);
|
|
64
|
+
if (connection.hostManaged.vertex) console.log(` Vertex AI (host managed): ${connection.hostManaged.vertex.project} \xB7 ${connection.hostManaged.vertex.region ?? "default region"}`);
|
|
65
|
+
if (connection.hostManaged.batch) console.log(` Batch (host managed): ${JSON.stringify(connection.hostManaged.batch)}`);
|
|
66
|
+
if (connection.hostManaged.pricing) console.log(` Pricing (host managed): ${JSON.stringify(connection.hostManaged.pricing)}`);
|
|
67
|
+
console.log(` Revision: ${connection.revision}`);
|
|
68
|
+
console.log(` Impact revision: ${connection.impactRevision}`);
|
|
69
|
+
}
|
|
70
|
+
async function showProviderSettings(name, format) {
|
|
71
|
+
const connection = await getClient().getProviderSettings(name);
|
|
72
|
+
if (isMachineFormat(format)) console.log(JSON.stringify(connection, null, 2));
|
|
73
|
+
else printConnection(connection);
|
|
74
|
+
}
|
|
75
|
+
async function disconnectProvider(name, opts) {
|
|
76
|
+
const client = getClient();
|
|
77
|
+
const preview = await client.getProviderSettings(name);
|
|
78
|
+
if (!opts.confirm) {
|
|
79
|
+
if (isMachineFormat(opts.format)) console.log(JSON.stringify(preview, null, 2));
|
|
80
|
+
else {
|
|
81
|
+
printConnection(preview);
|
|
82
|
+
console.log("\nDisconnect removes the saved connection. Project selections and history are retained; the vendor key is not revoked.");
|
|
83
|
+
console.log(`Run canonry settings disconnect-provider ${name} --confirm --if-impact-revision ${preview.impactRevision} to disconnect.`);
|
|
84
|
+
}
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const result = await client.disconnectProvider(name, { expectedImpactRevision: opts.expectedImpactRevision ?? preview.impactRevision });
|
|
88
|
+
if (isMachineFormat(opts.format)) console.log(JSON.stringify(result, null, 2));
|
|
89
|
+
else console.log(`Provider ${result.displayName} disconnected. Project selections and history were retained.`);
|
|
90
|
+
}
|
|
91
|
+
async function showSettings(format) {
|
|
92
|
+
const client = getClient();
|
|
93
|
+
const settings = await client.getSettings();
|
|
94
|
+
if (isMachineFormat(format)) {
|
|
95
|
+
console.log(JSON.stringify(settings, null, 2));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
console.log("Provider settings:\n");
|
|
99
|
+
for (const provider of settings.providers) {
|
|
100
|
+
const status = provider.configured ? "configured" : "not configured";
|
|
101
|
+
console.log(` ${provider.name.padEnd(10)} ${status}`);
|
|
102
|
+
if (provider.configured) {
|
|
103
|
+
const modelLabel = provider.model ? provider.model : provider.defaultModel ? `${provider.defaultModel} (default)` : "(default)";
|
|
104
|
+
console.log(` Model: ${modelLabel}`);
|
|
105
|
+
if (provider.quota) {
|
|
106
|
+
console.log(` Quota: ${provider.quota.maxConcurrency} concurrent \xB7 ${provider.quota.maxRequestsPerMinute}/min \xB7 ${provider.quota.maxRequestsPerDay}/day`);
|
|
107
|
+
}
|
|
108
|
+
const lastTest = settings.providerConnections?.find((connection) => connection.name === provider.name)?.lastTest;
|
|
109
|
+
if (lastTest !== void 0) console.log(` Last test: ${lastTestLine(provider.name, lastTest)}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const services = settings.providerCatalog.filter((entry) => entry.kind === "answer-service" && entry.connection === entry.name);
|
|
113
|
+
if (services.length > 0) {
|
|
114
|
+
console.log("\nSearch answer services (run only where a project or request names a profile):\n");
|
|
115
|
+
for (const service of services) {
|
|
116
|
+
const configured = settings.providers.some((provider) => provider.name === service.name && provider.configured);
|
|
117
|
+
const keyEnv = (service.settingsFields ?? []).map((field) => field.env).filter((env) => Boolean(env));
|
|
118
|
+
console.log(` ${service.displayName} (${service.name}): ${configured ? "configured" : "not configured"}${service.keyCheck === "saved-not-verified" ? ", key not verified until first use" : ""}${keyEnv.length > 0 ? `, key from ${keyEnv.join(" or ")} at bootstrap` : ""}`);
|
|
119
|
+
for (const profile of service.profiles ?? []) {
|
|
120
|
+
console.log(` ${profile.route.padEnd(28)} ${profile.workflows.join(", ")} ${profile.description}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
console.log("\nGoogle OAuth:\n");
|
|
125
|
+
console.log(` ${settings.google.configured ? "configured" : "not configured"}`);
|
|
126
|
+
}
|
|
127
|
+
async function reloadProviders(format) {
|
|
128
|
+
const result = await getClient().reloadProviders();
|
|
129
|
+
if (isMachineFormat(format)) {
|
|
130
|
+
console.log(JSON.stringify(result, null, 2));
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
console.log("Saved provider configuration is now active on the server.");
|
|
134
|
+
for (const provider of result.providers) {
|
|
135
|
+
console.log(` ${provider.name}: ${provider.configured ? "configured" : "not configured"}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function testStatusLabel(status) {
|
|
139
|
+
switch (status) {
|
|
140
|
+
case ProviderConnectionTestStatuses.connected:
|
|
141
|
+
return "connected";
|
|
142
|
+
case ProviderConnectionTestStatuses.failed:
|
|
143
|
+
return "failed";
|
|
144
|
+
case ProviderConnectionTestStatuses["not-verified"]:
|
|
145
|
+
return "saved, not verified";
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function lastTestLine(name, lastTest) {
|
|
149
|
+
if (!lastTest) return `none since these settings changed; run "canonry settings provider test ${name}"`;
|
|
150
|
+
const detail = lastTest.status === ProviderConnectionTestStatuses.connected ? "" : ` (${lastTest.message})`;
|
|
151
|
+
return `${testStatusLabel(lastTest.status)} at ${lastTest.checkedAt}${detail}`;
|
|
152
|
+
}
|
|
153
|
+
async function testProvider(name, format) {
|
|
154
|
+
const result = await getClient().testProvider(name);
|
|
155
|
+
if (isMachineFormat(format)) {
|
|
156
|
+
console.log(JSON.stringify(result, null, 2));
|
|
157
|
+
} else {
|
|
158
|
+
console.log(`${result.displayName}: ${testStatusLabel(result.status)}`);
|
|
159
|
+
if (result.model) console.log(` Model: ${result.model}`);
|
|
160
|
+
console.log(` Result: ${result.message}`);
|
|
161
|
+
console.log(` Checked: ${result.checkedAt} (${formatDurationSeconds(result.durationMs / 1e3)})`);
|
|
162
|
+
}
|
|
163
|
+
if (!result.ok) {
|
|
164
|
+
throw new CliError({
|
|
165
|
+
code: "PROVIDER_TEST_FAILED",
|
|
166
|
+
message: `${result.displayName} connection test failed: ${result.message}`,
|
|
167
|
+
displayMessage: `Error: the ${result.displayName} connection test failed. Fix the saved key or endpoint with "canonry settings provider ${result.provider}", then test again.`,
|
|
168
|
+
details: { provider: result.provider, status: result.status },
|
|
169
|
+
exitCode: EXIT_SYSTEM_ERROR
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
async function setGoogleAuth(opts) {
|
|
174
|
+
if (opts.target === "server") {
|
|
175
|
+
const result = await getClient().updateGoogleSettings({
|
|
176
|
+
clientId: opts.clientId,
|
|
177
|
+
clientSecret: opts.clientSecret
|
|
178
|
+
});
|
|
179
|
+
if (isMachineFormat(opts.format)) {
|
|
180
|
+
console.log(JSON.stringify(result, null, 2));
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
console.log("Google OAuth credentials updated on the server.");
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
const config = loadConfig();
|
|
187
|
+
setGoogleAuthConfig(config, {
|
|
188
|
+
clientId: opts.clientId,
|
|
189
|
+
clientSecret: opts.clientSecret
|
|
190
|
+
});
|
|
191
|
+
saveConfigPatch(config);
|
|
192
|
+
if (isMachineFormat(opts.format)) {
|
|
193
|
+
console.log(JSON.stringify({
|
|
194
|
+
configured: true,
|
|
195
|
+
configPath: getConfigPath(),
|
|
196
|
+
restartRequired: true
|
|
197
|
+
}, null, 2));
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
console.log(`Google OAuth credentials saved to ${getConfigPath()}.`);
|
|
201
|
+
console.log("Restart the local server if it is already running.");
|
|
202
|
+
}
|
|
203
|
+
export {
|
|
204
|
+
disconnectProvider,
|
|
205
|
+
reloadProviders,
|
|
206
|
+
setGoogleAuth,
|
|
207
|
+
setProvider,
|
|
208
|
+
showProviderSettings,
|
|
209
|
+
showSettings,
|
|
210
|
+
testProvider
|
|
211
|
+
};
|
|
@@ -1,12 +1,12 @@
|
|
|
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
|
|
8
8
|
} from "./chunk-HGMYEDAQ.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-O7S7OHLE.js";
|
|
10
10
|
import "./chunk-MLKGABMK.js";
|
|
11
11
|
|
|
12
12
|
// src/commands/sitemaps.ts
|
|
@@ -34,7 +34,7 @@ async function sitemapsCommand(project, opts) {
|
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
36
|
const lines = [
|
|
37
|
-
result.site.scannedAt ? `Site: ${result.site.sitemaps.length} sitemap file${result.site.sitemaps.length === 1 ? "" : "s"} in the
|
|
37
|
+
result.site.scannedAt ? `Site: ${result.site.sitemaps.length} sitemap file${result.site.sitemaps.length === 1 ? "" : "s"} in the Agent Readiness audit scan of ${result.site.scannedAt}` : "Site: no Agent Readiness audit scan yet, so only the engines are compared."
|
|
38
38
|
];
|
|
39
39
|
for (const engine of opts.engine ? [opts.engine] : ["google", "bing"]) {
|
|
40
40
|
lines.push("", ...engineLines(ENGINE_NAMES[engine], result[engine]));
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
parseSkillsClient,
|
|
10
10
|
resolveBundledSkillsRoot,
|
|
11
11
|
shouldPrintServeSkillsNudge
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-FBO25TA3.js";
|
|
13
13
|
import "./chunk-AOJU5LKX.js";
|
|
14
14
|
import "./chunk-HGMYEDAQ.js";
|
|
15
15
|
import {
|
|
16
16
|
CodingAgents,
|
|
17
17
|
SkillsClients
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-O7S7OHLE.js";
|
|
19
19
|
import "./chunk-MLKGABMK.js";
|
|
20
20
|
export {
|
|
21
21
|
BUNDLED_SKILL_NAMES,
|
|
@@ -3,15 +3,15 @@ import {
|
|
|
3
3
|
} from "./chunk-XEBKF4N5.js";
|
|
4
4
|
import {
|
|
5
5
|
createApiClient
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-UGO2FO6V.js";
|
|
7
|
+
import "./chunk-EE3QTCLS.js";
|
|
8
8
|
import "./chunk-AOJU5LKX.js";
|
|
9
9
|
import {
|
|
10
10
|
isMachineFormat
|
|
11
11
|
} from "./chunk-HGMYEDAQ.js";
|
|
12
12
|
import {
|
|
13
13
|
factorStatusFromScore
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-O7S7OHLE.js";
|
|
15
15
|
import "./chunk-MLKGABMK.js";
|
|
16
16
|
|
|
17
17
|
// src/commands/snapshot.ts
|
|
@@ -406,7 +406,7 @@ function formatSnapshotMarkdown(report) {
|
|
|
406
406
|
lines.push("");
|
|
407
407
|
lines.push(`**Domain:** ${report.domain}`);
|
|
408
408
|
lines.push(`**Generated:** ${new Date(report.generatedAt).toLocaleString("en-US", { year: "numeric", month: "long", day: "numeric", hour: "numeric", minute: "2-digit" })}`);
|
|
409
|
-
lines.push(`**
|
|
409
|
+
lines.push(`**Agent Readiness score:** ${report.audit.overallScore}/100`);
|
|
410
410
|
lines.push("");
|
|
411
411
|
lines.push("## Visibility Gap (Citations + Mentions)");
|
|
412
412
|
lines.push("");
|
|
@@ -131,6 +131,7 @@ import {
|
|
|
131
131
|
projects,
|
|
132
132
|
providerBatchRequests,
|
|
133
133
|
providerBatches,
|
|
134
|
+
providerConnectionTests,
|
|
134
135
|
queries,
|
|
135
136
|
queryBasketVersions,
|
|
136
137
|
querySnapshots,
|
|
@@ -188,10 +189,10 @@ import {
|
|
|
188
189
|
userSessions,
|
|
189
190
|
users,
|
|
190
191
|
writeNegativeReviewMaxStars
|
|
191
|
-
} from "./chunk-
|
|
192
|
+
} from "./chunk-2DV7F6XA.js";
|
|
192
193
|
import {
|
|
193
194
|
emptySeoResults
|
|
194
|
-
} from "./chunk-
|
|
195
|
+
} from "./chunk-O7S7OHLE.js";
|
|
195
196
|
import "./chunk-MLKGABMK.js";
|
|
196
197
|
export {
|
|
197
198
|
MIGRATION_VERSIONS,
|
|
@@ -327,6 +328,7 @@ export {
|
|
|
327
328
|
projects,
|
|
328
329
|
providerBatchRequests,
|
|
329
330
|
providerBatches,
|
|
331
|
+
providerConnectionTests,
|
|
330
332
|
queries,
|
|
331
333
|
queryBasketVersions,
|
|
332
334
|
querySnapshots,
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runAdmissionLines
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NQYJHKML.js";
|
|
4
|
+
import "./chunk-J6536OL6.js";
|
|
4
5
|
import {
|
|
5
6
|
createApiClient
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-UGO2FO6V.js";
|
|
8
|
+
import "./chunk-EE3QTCLS.js";
|
|
8
9
|
import {
|
|
9
10
|
emitJsonl
|
|
10
11
|
} from "./chunk-Z7IUAJOF.js";
|
|
@@ -16,7 +17,7 @@ import {
|
|
|
16
17
|
import {
|
|
17
18
|
HostedMcpStatuses,
|
|
18
19
|
HostedMcpUnavailableReasons
|
|
19
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-O7S7OHLE.js";
|
|
20
21
|
import "./chunk-MLKGABMK.js";
|
|
21
22
|
|
|
22
23
|
// src/commands/status.ts
|
|
@@ -121,7 +122,7 @@ async function showStatus(project, format, options = {}) {
|
|
|
121
122
|
} else {
|
|
122
123
|
const projectArg = /^[\w.-]+$/.test(project) ? project : `'${project.replaceAll("'", `'\\''`)}'`;
|
|
123
124
|
console.log(`
|
|
124
|
-
No runs yet.
|
|
125
|
+
No runs yet. Run an Agent Readiness audit scan with "canonry agent-readiness run ${projectArg}", or run an AI Visibility sweep after adding a provider.`);
|
|
125
126
|
}
|
|
126
127
|
const admission = runAdmissionLines(project, latest.admission, latest.manualAdmission);
|
|
127
128
|
if (admission.length > 0) console.log(`
|