@ainyc/canonry 4.83.0 → 4.85.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/assets/agent-workspace/skills/aero/SKILL.md +14 -10
- package/assets/agent-workspace/skills/aero/references/aeo-discovery.md +7 -5
- package/assets/agent-workspace/skills/aero/references/memory-patterns.md +1 -1
- package/assets/agent-workspace/skills/aero/references/orchestration.md +22 -20
- package/assets/agent-workspace/skills/aero/references/regression-playbook.md +11 -9
- package/assets/agent-workspace/skills/aero/references/reporting.md +14 -9
- package/assets/agent-workspace/skills/aero/soul.md +5 -5
- package/assets/agent-workspace/skills/canonry/SKILL.md +1 -1
- package/assets/agent-workspace/skills/canonry/references/aeo-analysis.md +84 -36
- package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +44 -10
- package/assets/assets/{BacklinksPage-OrSg_iPA.js → BacklinksPage-CDAv0ggn.js} +1 -1
- package/assets/assets/{ChartPrimitives-DPBhAT_r.js → ChartPrimitives-CnAmsyt7.js} +1 -1
- package/assets/assets/{ProjectPage-CpMcEmtw.js → ProjectPage-C9KEgRxD.js} +1 -1
- package/assets/assets/{RunRow-2Rty0BAH.js → RunRow-CVZ5o8fg.js} +1 -1
- package/assets/assets/{RunsPage-B3ahqf8s.js → RunsPage-Bzy5c0MZ.js} +1 -1
- package/assets/assets/{SettingsPage-BIjeI85q.js → SettingsPage-B1ocxPBe.js} +1 -1
- package/assets/assets/{TrafficPage-DjGoj691.js → TrafficPage-D2zepQOC.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-BgKG-2q3.js → TrafficSourceDetailPage-C7JuAkaK.js} +1 -1
- package/assets/assets/{arrow-left-Cf7wmru1.js → arrow-left-Bv3CWylm.js} +1 -1
- package/assets/assets/{extract-error-message-CANxezte.js → extract-error-message-BtVid5TP.js} +1 -1
- package/assets/assets/{index-CGlPx_cu.js → index-DmNti_xn.js} +72 -72
- package/assets/assets/{trash-2-6nHJZrvy.js → trash-2-BoimCsYz.js} +1 -1
- package/assets/index.html +1 -1
- package/dist/{chunk-GOWH42QV.js → chunk-3K3QRSYE.js} +709 -426
- package/dist/{chunk-Y3O3HBMN.js → chunk-62YB3ML7.js} +49 -1
- package/dist/{chunk-NRACXNI7.js → chunk-7BMSWI2K.js} +6 -4
- package/dist/{chunk-BNF3HXBW.js → chunk-I2BJC3DT.js} +1021 -942
- package/dist/cli.js +165 -29
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-FHQM7YMA.js → intelligence-service-AHHBQKRD.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +7 -7
package/dist/cli.js
CHANGED
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
setTelemetrySource,
|
|
28
28
|
showFirstRunNotice,
|
|
29
29
|
trackEvent
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-7BMSWI2K.js";
|
|
31
31
|
import {
|
|
32
32
|
CliError,
|
|
33
33
|
EXIT_SYSTEM_ERROR,
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
saveConfig,
|
|
45
45
|
saveConfigPatch,
|
|
46
46
|
usageError
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-62YB3ML7.js";
|
|
48
48
|
import {
|
|
49
49
|
apiKeys,
|
|
50
50
|
createClient,
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
projects,
|
|
53
53
|
queries,
|
|
54
54
|
renderReportHtml
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-3K3QRSYE.js";
|
|
56
56
|
import {
|
|
57
57
|
BacklinkSources,
|
|
58
58
|
CcReleaseSyncStatuses,
|
|
@@ -70,13 +70,14 @@ import {
|
|
|
70
70
|
formatGbpMetricLabel,
|
|
71
71
|
formatIsoDate,
|
|
72
72
|
formatMicros,
|
|
73
|
+
formatRatio,
|
|
73
74
|
formatRunErrorOneLine,
|
|
74
75
|
normalizeProjectAliases,
|
|
75
76
|
notificationEventSchema,
|
|
76
77
|
providerQuotaPolicySchema,
|
|
77
78
|
resolveProviderInput,
|
|
78
79
|
winnabilityClassSchema
|
|
79
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-I2BJC3DT.js";
|
|
80
81
|
|
|
81
82
|
// src/cli.ts
|
|
82
83
|
import { pathToFileURL } from "url";
|
|
@@ -2868,7 +2869,7 @@ async function gaSocialReferralSummary(project, opts) {
|
|
|
2868
2869
|
console.log(` Sessions: ${traffic.socialSessions} (${traffic.socialSharePct}% of ${traffic.totalSessions} total)`);
|
|
2869
2870
|
console.log(` Users: ${traffic.socialUsers}`);
|
|
2870
2871
|
console.log();
|
|
2871
|
-
const fmtTrend = (
|
|
2872
|
+
const fmtTrend = (pct4) => pct4 === null ? "n/a" : `${pct4 >= 0 ? "+" : ""}${pct4}%`;
|
|
2872
2873
|
console.log(` 7d trend: ${fmtTrend(trend.trend7dPct)} (${trend.socialSessions7d} vs ${trend.socialSessionsPrev7d})`);
|
|
2873
2874
|
console.log(` 30d trend: ${fmtTrend(trend.trend30dPct)} (${trend.socialSessions30d} vs ${trend.socialSessionsPrev30d})`);
|
|
2874
2875
|
if (trend.biggestMover) {
|
|
@@ -2911,7 +2912,7 @@ async function gaSocialReferralSummary(project, opts) {
|
|
|
2911
2912
|
async function gaAttribution(project, opts) {
|
|
2912
2913
|
const client = getClient6();
|
|
2913
2914
|
const traffic = await client.gaTraffic(project);
|
|
2914
|
-
const fmtTrend = (
|
|
2915
|
+
const fmtTrend = (pct4) => pct4 === null ? "n/a" : `${pct4 >= 0 ? "+" : ""}${pct4}%`;
|
|
2915
2916
|
if (opts?.trend) {
|
|
2916
2917
|
const trend = await client.gaAttributionTrend(project);
|
|
2917
2918
|
if (isMachineFormat(opts.format)) {
|
|
@@ -3475,9 +3476,9 @@ async function gbpPlaces(project, opts) {
|
|
|
3475
3476
|
console.log(` ${p.locationName} [${p.tier}] ${amenities}`);
|
|
3476
3477
|
}
|
|
3477
3478
|
}
|
|
3478
|
-
function fmtDelta(
|
|
3479
|
-
if (
|
|
3480
|
-
return `${
|
|
3479
|
+
function fmtDelta(pct4) {
|
|
3480
|
+
if (pct4 === null) return "n/a";
|
|
3481
|
+
return `${pct4 >= 0 ? "+" : ""}${pct4}%`;
|
|
3481
3482
|
}
|
|
3482
3483
|
async function gbpSummary(project, opts) {
|
|
3483
3484
|
const client = getClient7();
|
|
@@ -6951,14 +6952,14 @@ function printMetrics(data) {
|
|
|
6951
6952
|
console.log(`
|
|
6952
6953
|
Citation Rate Trends (${data.window})`);
|
|
6953
6954
|
console.log("\u2500".repeat(50));
|
|
6954
|
-
const
|
|
6955
|
-
console.log(` Overall: ${
|
|
6955
|
+
const pct4 = (n) => `${(n * 100).toFixed(1)}%`;
|
|
6956
|
+
console.log(` Overall: ${pct4(data.overall.citationRate)} (${data.overall.cited}/${data.overall.total})`);
|
|
6956
6957
|
console.log(` Trend: ${data.trend}`);
|
|
6957
6958
|
if (Object.keys(data.byProvider).length > 0) {
|
|
6958
6959
|
console.log(`
|
|
6959
6960
|
By Provider:`);
|
|
6960
6961
|
for (const [provider, metric] of Object.entries(data.byProvider)) {
|
|
6961
|
-
console.log(` ${provider.padEnd(10)} ${
|
|
6962
|
+
console.log(` ${provider.padEnd(10)} ${pct4(metric.citationRate).padStart(6)} (${metric.cited}/${metric.total})`);
|
|
6962
6963
|
}
|
|
6963
6964
|
}
|
|
6964
6965
|
if (data.buckets.length > 0) {
|
|
@@ -6967,7 +6968,7 @@ Citation Rate Trends (${data.window})`);
|
|
|
6967
6968
|
for (const bucket of data.buckets) {
|
|
6968
6969
|
const start = bucket.startDate.slice(0, 10);
|
|
6969
6970
|
const bar = bucket.total > 0 ? "\u2588".repeat(Math.round(bucket.citationRate * 20)) : "";
|
|
6970
|
-
console.log(` ${start} ${
|
|
6971
|
+
console.log(` ${start} ${pct4(bucket.citationRate).padStart(6)} ${bar}`);
|
|
6971
6972
|
}
|
|
6972
6973
|
}
|
|
6973
6974
|
const providersInBuckets = [...new Set(data.buckets.flatMap((b) => Object.keys(b.byProvider ?? {})))].sort();
|
|
@@ -6981,7 +6982,7 @@ Citation Rate Trends (${data.window})`);
|
|
|
6981
6982
|
if (!metric) continue;
|
|
6982
6983
|
const start = bucket.startDate.slice(0, 10);
|
|
6983
6984
|
const bar = metric.total > 0 ? "\u2588".repeat(Math.round(metric.citationRate * 20)) : "";
|
|
6984
|
-
console.log(` ${start} ${
|
|
6985
|
+
console.log(` ${start} ${pct4(metric.citationRate).padStart(6)} ${bar}`);
|
|
6985
6986
|
}
|
|
6986
6987
|
}
|
|
6987
6988
|
}
|
|
@@ -7019,9 +7020,9 @@ Source Origin Breakdown`);
|
|
|
7019
7020
|
return;
|
|
7020
7021
|
}
|
|
7021
7022
|
for (const cat of data.overall) {
|
|
7022
|
-
const
|
|
7023
|
+
const pct4 = `${(cat.percentage * 100).toFixed(1)}%`;
|
|
7023
7024
|
const domains = cat.topDomains.slice(0, 3).map((d) => d.domain).join(", ");
|
|
7024
|
-
console.log(` ${cat.label.padEnd(20)} ${
|
|
7025
|
+
console.log(` ${cat.label.padEnd(20)} ${pct4.padStart(6)} (${cat.count}) ${domains}`);
|
|
7025
7026
|
}
|
|
7026
7027
|
}
|
|
7027
7028
|
|
|
@@ -9247,13 +9248,15 @@ async function showHealth(project, opts) {
|
|
|
9247
9248
|
console.log("No health history available.");
|
|
9248
9249
|
return;
|
|
9249
9250
|
}
|
|
9250
|
-
console.log("Date Cited Rate Cited/Total");
|
|
9251
|
-
console.log("\u2500".repeat(
|
|
9251
|
+
console.log("Date Mention Rate Mentioned/Total Cited Rate Cited/Total");
|
|
9252
|
+
console.log("\u2500".repeat(86));
|
|
9252
9253
|
for (const snap of snapshots) {
|
|
9253
|
-
const
|
|
9254
|
-
const
|
|
9254
|
+
const mRate = (snap.overallMentionRate * 100).toFixed(1).padStart(5) + "%";
|
|
9255
|
+
const mRatio = `${snap.mentionedPairs}/${snap.totalPairs}`.padEnd(15);
|
|
9256
|
+
const cRate = (snap.overallCitedRate * 100).toFixed(1).padStart(5) + "%";
|
|
9257
|
+
const cRatio = `${snap.citedPairs}/${snap.totalPairs}`;
|
|
9255
9258
|
const date = snap.createdAt.slice(0, 19).padEnd(25);
|
|
9256
|
-
console.log(`${date} ${
|
|
9259
|
+
console.log(`${date} ${mRate} ${mRatio} ${cRate} ${cRatio}`);
|
|
9257
9260
|
}
|
|
9258
9261
|
return;
|
|
9259
9262
|
}
|
|
@@ -9266,14 +9269,17 @@ async function showHealth(project, opts) {
|
|
|
9266
9269
|
console.log("No health data yet \u2014 run a sweep first (canonry run <project>).");
|
|
9267
9270
|
return;
|
|
9268
9271
|
}
|
|
9269
|
-
const
|
|
9270
|
-
|
|
9272
|
+
const mentionRate = (health.overallMentionRate * 100).toFixed(1);
|
|
9273
|
+
const citedRate = (health.overallCitedRate * 100).toFixed(1);
|
|
9274
|
+
console.log(`Health: ${mentionRate}% mentioned (${health.mentionedPairs}/${health.totalPairs} pairs)`);
|
|
9275
|
+
console.log(` ${citedRate}% cited (${health.citedPairs}/${health.totalPairs} pairs)`);
|
|
9271
9276
|
console.log("");
|
|
9272
9277
|
if (health.providerBreakdown && Object.keys(health.providerBreakdown).length > 0) {
|
|
9273
9278
|
console.log("Provider Breakdown:");
|
|
9274
9279
|
for (const [provider, stats] of Object.entries(health.providerBreakdown)) {
|
|
9275
|
-
const
|
|
9276
|
-
|
|
9280
|
+
const pMention = (stats.mentionRate * 100).toFixed(1);
|
|
9281
|
+
const pCited = (stats.citedRate * 100).toFixed(1);
|
|
9282
|
+
console.log(` ${provider.padEnd(15)} ${pMention}% mentioned (${stats.mentioned}/${stats.total}) ${pCited}% cited (${stats.cited}/${stats.total})`);
|
|
9277
9283
|
}
|
|
9278
9284
|
}
|
|
9279
9285
|
}
|
|
@@ -9450,8 +9456,8 @@ function printMentionShareBreakdown(mentionShare) {
|
|
|
9450
9456
|
const youPct = (breakdown.projectMentionSnapshots / total * 100).toFixed(1);
|
|
9451
9457
|
console.log(` you${" ".repeat(28)} ${breakdown.projectMentionSnapshots} mentions (${youPct}% of combined)`);
|
|
9452
9458
|
for (const row of breakdown.perCompetitor.slice(0, 3)) {
|
|
9453
|
-
const
|
|
9454
|
-
console.log(` ${row.domain.padEnd(30)} ${row.mentionSnapshots} mentions (${
|
|
9459
|
+
const pct4 = (row.mentionSnapshots / total * 100).toFixed(1);
|
|
9460
|
+
console.log(` ${row.domain.padEnd(30)} ${row.mentionSnapshots} mentions (${pct4}% of combined)`);
|
|
9455
9461
|
}
|
|
9456
9462
|
if (breakdown.perCompetitor.length > 3) {
|
|
9457
9463
|
console.log(` + ${breakdown.perCompetitor.length - 3} more competitor${breakdown.perCompetitor.length - 3 === 1 ? "" : "s"} (--format json for full breakdown)`);
|
|
@@ -11261,6 +11267,135 @@ var TECHNICAL_AEO_CLI_COMMANDS = [
|
|
|
11261
11267
|
}
|
|
11262
11268
|
];
|
|
11263
11269
|
|
|
11270
|
+
// src/commands/visibility-stats.ts
|
|
11271
|
+
async function showVisibilityStats(project, opts) {
|
|
11272
|
+
const client = createApiClient();
|
|
11273
|
+
const data = await client.getVisibilityStats(project, {
|
|
11274
|
+
since: opts.since,
|
|
11275
|
+
until: opts.until,
|
|
11276
|
+
lastRuns: opts.lastRuns,
|
|
11277
|
+
groupBy: opts.byProvider ? "provider" : void 0
|
|
11278
|
+
});
|
|
11279
|
+
if (opts.format === "jsonl") {
|
|
11280
|
+
emitJsonl(data.queries.map((q) => ({ project: data.project, runCount: data.window.runCount, ...q })));
|
|
11281
|
+
return;
|
|
11282
|
+
}
|
|
11283
|
+
if (opts.format === "json") {
|
|
11284
|
+
console.log(JSON.stringify(data, null, 2));
|
|
11285
|
+
return;
|
|
11286
|
+
}
|
|
11287
|
+
printVisibilityStats(data);
|
|
11288
|
+
}
|
|
11289
|
+
function pct3(rate) {
|
|
11290
|
+
return rate === null ? "\u2014" : formatRatio(rate);
|
|
11291
|
+
}
|
|
11292
|
+
function citedCell(c) {
|
|
11293
|
+
return `${c.cited}/${c.total}`;
|
|
11294
|
+
}
|
|
11295
|
+
function mentionedCell(c) {
|
|
11296
|
+
return `${c.mentioned}/${c.checked}`;
|
|
11297
|
+
}
|
|
11298
|
+
function printVisibilityStats(data) {
|
|
11299
|
+
const w = data.window;
|
|
11300
|
+
const windowParts = [`${w.runCount} run(s)`];
|
|
11301
|
+
if (w.lastRuns !== null) windowParts.push(`last ${w.lastRuns}`);
|
|
11302
|
+
if (w.since !== null) windowParts.push(`since ${w.since}`);
|
|
11303
|
+
if (w.until !== null) windowParts.push(`until ${w.until}`);
|
|
11304
|
+
console.log("Visibility stats (cited = source list, mentioned = answer text)");
|
|
11305
|
+
console.log(`Window: ${windowParts.join(" \xB7 ")}`);
|
|
11306
|
+
console.log('Cited = cited/total snapshots \xB7 Mentioned = mentioned/checked (checked excludes "not checked")');
|
|
11307
|
+
console.log("");
|
|
11308
|
+
if (data.queries.length === 0) {
|
|
11309
|
+
console.log("No answer-visibility snapshots in this window \u2014 run a sweep first (canonry run <project>).");
|
|
11310
|
+
return;
|
|
11311
|
+
}
|
|
11312
|
+
const rows = data.queries.map((q) => ({
|
|
11313
|
+
label: q.query,
|
|
11314
|
+
cited: citedCell(q),
|
|
11315
|
+
citedPct: pct3(q.citedRate),
|
|
11316
|
+
ment: mentionedCell(q),
|
|
11317
|
+
mentPct: pct3(q.mentionRate)
|
|
11318
|
+
}));
|
|
11319
|
+
const queryWidth = Math.max(7, ...rows.map((r) => r.label.length));
|
|
11320
|
+
const citedWidth = Math.max(7, ...rows.map((r) => r.cited.length));
|
|
11321
|
+
const mentWidth = Math.max(9, ...rows.map((r) => r.ment.length));
|
|
11322
|
+
const header = [
|
|
11323
|
+
"Query".padEnd(queryWidth),
|
|
11324
|
+
"Cited".padEnd(citedWidth),
|
|
11325
|
+
"Cited%".padStart(7),
|
|
11326
|
+
"Mentioned".padEnd(mentWidth),
|
|
11327
|
+
"Ment%".padStart(7)
|
|
11328
|
+
].join(" ");
|
|
11329
|
+
console.log(header);
|
|
11330
|
+
console.log("\u2500".repeat(header.length));
|
|
11331
|
+
for (const r of rows) {
|
|
11332
|
+
console.log(
|
|
11333
|
+
[
|
|
11334
|
+
r.label.padEnd(queryWidth),
|
|
11335
|
+
r.cited.padEnd(citedWidth),
|
|
11336
|
+
r.citedPct.padStart(7),
|
|
11337
|
+
r.ment.padEnd(mentWidth),
|
|
11338
|
+
r.mentPct.padStart(7)
|
|
11339
|
+
].join(" ")
|
|
11340
|
+
);
|
|
11341
|
+
}
|
|
11342
|
+
console.log("\u2500".repeat(header.length));
|
|
11343
|
+
console.log(
|
|
11344
|
+
[
|
|
11345
|
+
"TOTAL".padEnd(queryWidth),
|
|
11346
|
+
citedCell(data.totals).padEnd(citedWidth),
|
|
11347
|
+
pct3(data.totals.citedRate).padStart(7),
|
|
11348
|
+
mentionedCell(data.totals).padEnd(mentWidth),
|
|
11349
|
+
pct3(data.totals.mentionRate).padStart(7)
|
|
11350
|
+
].join(" ")
|
|
11351
|
+
);
|
|
11352
|
+
if (data.groupBy === "provider" && data.byProvider && data.byProvider.length > 0) {
|
|
11353
|
+
console.log("");
|
|
11354
|
+
console.log("By provider (pooled across queries):");
|
|
11355
|
+
const provWidth = Math.max(8, ...data.byProvider.map((p) => p.provider.length));
|
|
11356
|
+
for (const p of data.byProvider) {
|
|
11357
|
+
console.log(
|
|
11358
|
+
[
|
|
11359
|
+
` ${p.provider}`.padEnd(provWidth + 2),
|
|
11360
|
+
citedCell(p).padEnd(citedWidth),
|
|
11361
|
+
pct3(p.citedRate).padStart(7),
|
|
11362
|
+
mentionedCell(p).padEnd(mentWidth),
|
|
11363
|
+
pct3(p.mentionRate).padStart(7)
|
|
11364
|
+
].join(" ")
|
|
11365
|
+
);
|
|
11366
|
+
}
|
|
11367
|
+
}
|
|
11368
|
+
}
|
|
11369
|
+
|
|
11370
|
+
// src/cli-commands/visibility-stats.ts
|
|
11371
|
+
var USAGE4 = "canonry visibility-stats <project> [--since <iso>] [--until <iso>] [--last-runs <n>] [--by-provider] [--format json|jsonl]";
|
|
11372
|
+
var VISIBILITY_STATS_CLI_COMMANDS = [
|
|
11373
|
+
{
|
|
11374
|
+
path: ["visibility-stats"],
|
|
11375
|
+
usage: USAGE4,
|
|
11376
|
+
options: {
|
|
11377
|
+
since: stringOption(),
|
|
11378
|
+
until: stringOption(),
|
|
11379
|
+
"last-runs": stringOption(),
|
|
11380
|
+
"by-provider": { type: "boolean", default: false }
|
|
11381
|
+
},
|
|
11382
|
+
run: async (input) => {
|
|
11383
|
+
const project = requireProject(input, "visibility-stats", USAGE4);
|
|
11384
|
+
await showVisibilityStats(project, {
|
|
11385
|
+
since: getString(input.values, "since"),
|
|
11386
|
+
until: getString(input.values, "until"),
|
|
11387
|
+
lastRuns: parseIntegerOption(input, "last-runs", {
|
|
11388
|
+
command: "visibility-stats",
|
|
11389
|
+
usage: USAGE4,
|
|
11390
|
+
message: "--last-runs must be an integer"
|
|
11391
|
+
}),
|
|
11392
|
+
byProvider: getBoolean(input.values, "by-provider"),
|
|
11393
|
+
format: input.format
|
|
11394
|
+
});
|
|
11395
|
+
}
|
|
11396
|
+
}
|
|
11397
|
+
];
|
|
11398
|
+
|
|
11264
11399
|
// src/cli-commands/wordpress.ts
|
|
11265
11400
|
import fs11 from "fs";
|
|
11266
11401
|
|
|
@@ -12845,6 +12980,7 @@ var REGISTERED_CLI_COMMANDS = [
|
|
|
12845
12980
|
...GBP_CLI_COMMANDS,
|
|
12846
12981
|
...TRAFFIC_CLI_COMMANDS,
|
|
12847
12982
|
...INTELLIGENCE_CLI_COMMANDS,
|
|
12983
|
+
...VISIBILITY_STATS_CLI_COMMANDS,
|
|
12848
12984
|
...CONTENT_CLI_COMMANDS,
|
|
12849
12985
|
...AGENT_CLI_COMMANDS,
|
|
12850
12986
|
...DISCOVER_CLI_COMMANDS,
|
|
@@ -12856,7 +12992,7 @@ var REGISTERED_CLI_COMMANDS = [
|
|
|
12856
12992
|
|
|
12857
12993
|
// src/cli.ts
|
|
12858
12994
|
import { createRequire as createRequire2 } from "module";
|
|
12859
|
-
var
|
|
12995
|
+
var USAGE5 = `
|
|
12860
12996
|
cnry \u2014 AEO monitoring CLI ('canonry' also works)
|
|
12861
12997
|
|
|
12862
12998
|
Usage: cnry <command> [options]
|
|
@@ -12921,7 +13057,7 @@ function extractFormat(cmdArgs) {
|
|
|
12921
13057
|
}
|
|
12922
13058
|
async function runCli(args = process.argv.slice(2)) {
|
|
12923
13059
|
if (args.length === 0 || args[0] === "--help" || args[0] === "-h") {
|
|
12924
|
-
console.log(
|
|
13060
|
+
console.log(USAGE5);
|
|
12925
13061
|
return 0;
|
|
12926
13062
|
}
|
|
12927
13063
|
if (args.includes("--version") || args.includes("-v")) {
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createServer
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7BMSWI2K.js";
|
|
4
4
|
import {
|
|
5
5
|
loadConfig
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-62YB3ML7.js";
|
|
7
|
+
import "./chunk-3K3QRSYE.js";
|
|
8
|
+
import "./chunk-I2BJC3DT.js";
|
|
9
9
|
export {
|
|
10
10
|
createServer,
|
|
11
11
|
loadConfig
|
package/dist/mcp.js
CHANGED
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
PACKAGE_VERSION,
|
|
4
4
|
canonryMcpTools,
|
|
5
5
|
createApiClient
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-62YB3ML7.js";
|
|
7
7
|
import {
|
|
8
8
|
isReadOnlyKey
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-I2BJC3DT.js";
|
|
10
10
|
|
|
11
11
|
// src/mcp/cli.ts
|
|
12
12
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ainyc/canonry",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.85.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Agent-first open-source AEO operating platform - track how answer engines cite your domain",
|
|
6
6
|
"license": "FSL-1.1-ALv2",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"node": ">=22.14.0"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@ainyc/aeo-audit": "
|
|
39
|
+
"@ainyc/aeo-audit": "4.0.1",
|
|
40
40
|
"@anthropic-ai/sdk": "^0.91.1",
|
|
41
41
|
"@fastify/static": "^9.1.1",
|
|
42
42
|
"@google/genai": "^1.46.0",
|
|
@@ -65,22 +65,22 @@
|
|
|
65
65
|
"@ainyc/canonry-config": "0.0.0",
|
|
66
66
|
"@ainyc/canonry-api-client": "0.0.0",
|
|
67
67
|
"@ainyc/canonry-api-routes": "0.0.0",
|
|
68
|
-
"@ainyc/canonry-contracts": "0.0.0",
|
|
69
68
|
"@ainyc/canonry-db": "0.0.0",
|
|
69
|
+
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
70
70
|
"@ainyc/canonry-integration-openai-ads": "0.0.0",
|
|
71
71
|
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
72
|
-
"@ainyc/canonry-
|
|
72
|
+
"@ainyc/canonry-contracts": "0.0.0",
|
|
73
73
|
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
74
74
|
"@ainyc/canonry-integration-google": "0.0.0",
|
|
75
|
-
"@ainyc/canonry-integration-google-places": "0.0.0",
|
|
76
75
|
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
76
|
+
"@ainyc/canonry-integration-google-places": "0.0.0",
|
|
77
77
|
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
78
|
+
"@ainyc/canonry-intelligence": "0.0.0",
|
|
78
79
|
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
79
80
|
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
80
|
-
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
81
81
|
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
82
|
-
"@ainyc/canonry-intelligence": "0.0.0",
|
|
83
82
|
"@ainyc/canonry-provider-local": "0.0.0",
|
|
83
|
+
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
84
84
|
"@ainyc/canonry-provider-openai": "0.0.0",
|
|
85
85
|
"@ainyc/canonry-provider-perplexity": "0.0.0"
|
|
86
86
|
},
|