@ainyc/canonry 4.67.0 → 4.69.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 +1 -0
- package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +8 -1
- package/assets/assets/{BacklinksPage-B9oyoljV.js → BacklinksPage-BXVoTc3S.js} +1 -1
- package/assets/assets/ChartPrimitives-pJRJPd17.js +1 -0
- package/assets/assets/ProjectPage-CQ1_itHh.js +6 -0
- package/assets/assets/{RunRow-vHM36Fdi.js → RunRow-DPL4FxPl.js} +1 -1
- package/assets/assets/{RunsPage-Cr58nTet.js → RunsPage-B4dCG_66.js} +1 -1
- package/assets/assets/{SettingsPage-BuiP8ZOv.js → SettingsPage-D8aWhLsU.js} +1 -1
- package/assets/assets/{TrafficPage-bwOxChyo.js → TrafficPage-COZa5_Q_.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-B0uY6VIB.js → TrafficSourceDetailPage-CN8Cx6YI.js} +1 -1
- package/assets/assets/{extract-error-message-CWdzuNp4.js → extract-error-message-D8g8YXDH.js} +1 -1
- package/assets/assets/index-BUNCrWTe.css +1 -0
- package/assets/assets/{index-DiN_mzYU.js → index-DPO3uDWZ.js} +79 -79
- package/assets/assets/{server-traffic-D3aICbxr.js → server-traffic-0JT1Vbj_.js} +1 -1
- package/assets/assets/{trash-2-CVKno2W2.js → trash-2-_1TgguOP.js} +1 -1
- package/assets/index.html +2 -2
- package/dist/{chunk-KHN3XMOR.js → chunk-B2CH7GBW.js} +93 -28
- package/dist/{chunk-34PATQZM.js → chunk-D75O5A27.js} +36 -1
- package/dist/{chunk-4V3V4MFF.js → chunk-WQ44ZXGQ.js} +45 -8
- package/dist/{chunk-RQCVITY4.js → chunk-YYFBMDLC.js} +15 -1
- package/dist/cli.js +27 -11
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-SMU5JVVD.js → intelligence-service-IUKD3PMZ.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +11 -10
- package/assets/assets/ChartPrimitives-CvfM24iC.js +0 -1
- package/assets/assets/ProjectPage-DELbOAlm.js +0 -6
- package/assets/assets/index-yMJe1bJR.css +0 -1
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-WQ44ZXGQ.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-YYFBMDLC.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-B2CH7GBW.js";
|
|
56
56
|
import {
|
|
57
57
|
CcReleaseSyncStatuses,
|
|
58
58
|
CheckScopes,
|
|
@@ -69,7 +69,7 @@ import {
|
|
|
69
69
|
notificationEventSchema,
|
|
70
70
|
providerQuotaPolicySchema,
|
|
71
71
|
resolveProviderInput
|
|
72
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-D75O5A27.js";
|
|
73
73
|
|
|
74
74
|
// src/cli.ts
|
|
75
75
|
import { pathToFileURL } from "url";
|
|
@@ -6504,6 +6504,21 @@ Citation Rate Trends (${data.window})`);
|
|
|
6504
6504
|
console.log(` ${start} ${pct2(bucket.citationRate).padStart(6)} ${bar}`);
|
|
6505
6505
|
}
|
|
6506
6506
|
}
|
|
6507
|
+
const providersInBuckets = [...new Set(data.buckets.flatMap((b) => Object.keys(b.byProvider ?? {})))].sort();
|
|
6508
|
+
if (data.buckets.length > 0 && providersInBuckets.length > 0) {
|
|
6509
|
+
console.log(`
|
|
6510
|
+
By Provider Timeline:`);
|
|
6511
|
+
for (const provider of providersInBuckets) {
|
|
6512
|
+
console.log(` ${provider}:`);
|
|
6513
|
+
for (const bucket of data.buckets) {
|
|
6514
|
+
const metric = bucket.byProvider?.[provider];
|
|
6515
|
+
if (!metric) continue;
|
|
6516
|
+
const start = bucket.startDate.slice(0, 10);
|
|
6517
|
+
const bar = metric.total > 0 ? "\u2588".repeat(Math.round(metric.citationRate * 20)) : "";
|
|
6518
|
+
console.log(` ${start} ${pct2(metric.citationRate).padStart(6)} ${bar}`);
|
|
6519
|
+
}
|
|
6520
|
+
}
|
|
6521
|
+
}
|
|
6507
6522
|
}
|
|
6508
6523
|
function printGaps(data) {
|
|
6509
6524
|
console.log(`
|
|
@@ -7742,7 +7757,7 @@ function printSchedule(s) {
|
|
|
7742
7757
|
var SCHEDULE_CLI_COMMANDS = [
|
|
7743
7758
|
{
|
|
7744
7759
|
path: ["schedule", "set"],
|
|
7745
|
-
usage: "canonry schedule set <project> (--preset <preset> | --cron <expr>) [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh] [--source <id>] [--timezone <tz>] [--provider <name>...] [--format json]",
|
|
7760
|
+
usage: "canonry schedule set <project> (--preset <preset> | --cron <expr>) [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh|backlinks-sync] [--source <id>] [--timezone <tz>] [--provider <name>...] [--format json]",
|
|
7746
7761
|
options: {
|
|
7747
7762
|
preset: stringOption(),
|
|
7748
7763
|
cron: stringOption(),
|
|
@@ -7752,7 +7767,7 @@ var SCHEDULE_CLI_COMMANDS = [
|
|
|
7752
7767
|
provider: multiStringOption()
|
|
7753
7768
|
},
|
|
7754
7769
|
run: async (input) => {
|
|
7755
|
-
const usage = "canonry schedule set <project> (--preset <preset> | --cron <expr>) [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh] [--source <id>] [--timezone <tz>] [--provider <name>...] [--format json]";
|
|
7770
|
+
const usage = "canonry schedule set <project> (--preset <preset> | --cron <expr>) [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh|backlinks-sync] [--source <id>] [--timezone <tz>] [--provider <name>...] [--format json]";
|
|
7756
7771
|
const project = requireProject(input, "schedule.set", usage);
|
|
7757
7772
|
if (!getString(input.values, "preset") && !getString(input.values, "cron")) {
|
|
7758
7773
|
throw usageError("Error: --preset or --cron is required", {
|
|
@@ -7777,7 +7792,7 @@ var SCHEDULE_CLI_COMMANDS = [
|
|
|
7777
7792
|
},
|
|
7778
7793
|
{
|
|
7779
7794
|
path: ["schedule", "show"],
|
|
7780
|
-
usage: "canonry schedule show <project> [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh] [--format json]",
|
|
7795
|
+
usage: "canonry schedule show <project> [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh|backlinks-sync] [--format json]",
|
|
7781
7796
|
options: { kind: stringOption() },
|
|
7782
7797
|
run: async (input) => {
|
|
7783
7798
|
const project = requireProject(input, "schedule.show", "canonry schedule show <project> [--kind ...]");
|
|
@@ -7786,7 +7801,7 @@ var SCHEDULE_CLI_COMMANDS = [
|
|
|
7786
7801
|
},
|
|
7787
7802
|
{
|
|
7788
7803
|
path: ["schedule", "enable"],
|
|
7789
|
-
usage: "canonry schedule enable <project> [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh] [--format json]",
|
|
7804
|
+
usage: "canonry schedule enable <project> [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh|backlinks-sync] [--format json]",
|
|
7790
7805
|
options: { kind: stringOption() },
|
|
7791
7806
|
run: async (input) => {
|
|
7792
7807
|
const project = requireProject(input, "schedule.enable", "canonry schedule enable <project> [--kind ...]");
|
|
@@ -7795,7 +7810,7 @@ var SCHEDULE_CLI_COMMANDS = [
|
|
|
7795
7810
|
},
|
|
7796
7811
|
{
|
|
7797
7812
|
path: ["schedule", "disable"],
|
|
7798
|
-
usage: "canonry schedule disable <project> [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh] [--format json]",
|
|
7813
|
+
usage: "canonry schedule disable <project> [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh|backlinks-sync] [--format json]",
|
|
7799
7814
|
options: { kind: stringOption() },
|
|
7800
7815
|
run: async (input) => {
|
|
7801
7816
|
const project = requireProject(input, "schedule.disable", "canonry schedule disable <project> [--kind ...]");
|
|
@@ -7804,7 +7819,7 @@ var SCHEDULE_CLI_COMMANDS = [
|
|
|
7804
7819
|
},
|
|
7805
7820
|
{
|
|
7806
7821
|
path: ["schedule", "remove"],
|
|
7807
|
-
usage: "canonry schedule remove <project> [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh] [--format json]",
|
|
7822
|
+
usage: "canonry schedule remove <project> [--kind answer-visibility|traffic-sync|gbp-sync|data-refresh|backlinks-sync] [--format json]",
|
|
7808
7823
|
options: { kind: stringOption() },
|
|
7809
7824
|
run: async (input) => {
|
|
7810
7825
|
const project = requireProject(input, "schedule.remove", "canonry schedule remove <project> [--kind ...]");
|
|
@@ -8800,7 +8815,8 @@ function renderHuman(overview) {
|
|
|
8800
8815
|
printScore("Competitor press.", scores.competitorPressure);
|
|
8801
8816
|
printScore("Run status ", scores.runStatus);
|
|
8802
8817
|
console.log(`
|
|
8803
|
-
Queries cited:
|
|
8818
|
+
Queries cited: ${queryCounts.citedQueries}/${queryCounts.totalQueries} (${pct(queryCounts.citedRate)})`);
|
|
8819
|
+
console.log(` Queries mentioned: ${queryCounts.mentionedQueries}/${queryCounts.totalQueries} (${pct(queryCounts.mentionRate)})`);
|
|
8804
8820
|
if (movementSummary.hasPreviousRun) {
|
|
8805
8821
|
console.log(` Movement: +${movementSummary.gained} gained, -${movementSummary.lost} lost (${movementSummary.tone})`);
|
|
8806
8822
|
} else if (movementSummary.gained > 0) {
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createServer
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WQ44ZXGQ.js";
|
|
4
4
|
import {
|
|
5
5
|
loadConfig
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-YYFBMDLC.js";
|
|
7
|
+
import "./chunk-B2CH7GBW.js";
|
|
8
|
+
import "./chunk-D75O5A27.js";
|
|
9
9
|
export {
|
|
10
10
|
createServer,
|
|
11
11
|
loadConfig
|
package/dist/mcp.js
CHANGED
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
PACKAGE_VERSION,
|
|
4
4
|
canonryMcpTools,
|
|
5
5
|
createApiClient
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-YYFBMDLC.js";
|
|
7
|
+
import "./chunk-D75O5A27.js";
|
|
8
8
|
|
|
9
9
|
// src/mcp/cli.ts
|
|
10
10
|
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.69.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",
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
"@sinclair/typebox": "^0.34.41",
|
|
47
47
|
"better-sqlite3": "^12.6.2",
|
|
48
48
|
"chrome-remote-interface": "^0.33.2",
|
|
49
|
+
"cron-parser": "^5.5.0",
|
|
49
50
|
"drizzle-orm": "^0.45.2",
|
|
50
51
|
"fastify": "^5.8.5",
|
|
51
52
|
"node-cron": "^4.2.1",
|
|
@@ -62,25 +63,25 @@
|
|
|
62
63
|
"tsup": "^8.5.1",
|
|
63
64
|
"tsx": "^4.19.0",
|
|
64
65
|
"@ainyc/canonry-api-client": "0.0.0",
|
|
65
|
-
"@ainyc/canonry-contracts": "0.0.0",
|
|
66
|
-
"@ainyc/canonry-config": "0.0.0",
|
|
67
66
|
"@ainyc/canonry-api-routes": "0.0.0",
|
|
68
|
-
"@ainyc/canonry-
|
|
69
|
-
"@ainyc/canonry-
|
|
67
|
+
"@ainyc/canonry-config": "0.0.0",
|
|
68
|
+
"@ainyc/canonry-contracts": "0.0.0",
|
|
70
69
|
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
71
|
-
"@ainyc/canonry-integration-
|
|
72
|
-
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
73
|
-
"@ainyc/canonry-integration-google-places": "0.0.0",
|
|
70
|
+
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
74
71
|
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
72
|
+
"@ainyc/canonry-db": "0.0.0",
|
|
75
73
|
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
74
|
+
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
75
|
+
"@ainyc/canonry-integration-google-places": "0.0.0",
|
|
76
76
|
"@ainyc/canonry-intelligence": "0.0.0",
|
|
77
77
|
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
78
|
-
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
79
78
|
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
79
|
+
"@ainyc/canonry-integration-google": "0.0.0",
|
|
80
|
+
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
80
81
|
"@ainyc/canonry-provider-local": "0.0.0",
|
|
81
82
|
"@ainyc/canonry-provider-openai": "0.0.0",
|
|
82
83
|
"@ainyc/canonry-provider-perplexity": "0.0.0",
|
|
83
|
-
"@ainyc/canonry-provider-
|
|
84
|
+
"@ainyc/canonry-provider-claude": "0.0.0"
|
|
84
85
|
},
|
|
85
86
|
"scripts": {
|
|
86
87
|
"build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as o}from"./index-DiN_mzYU.js";const n=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],c=o("chevron-left",n),s={contentStyle:{backgroundColor:"#18181b",border:"1px solid #3f3f46",borderRadius:8,fontSize:12},labelStyle:{color:"#e4e4e7"},itemStyle:{color:"#a1a1aa"}},i={fill:"#71717a",fontSize:11},f="#27272a",T="#27272a",d=["#34d399","#60a5fa","#f472b6","#facc15","#a78bfa","#fb923c","#22d3ee","#f87171"],S={text:"#a1a1aa",textDim:"#71717a",textFaint:"#52525b",surface:"#27272a"},l={positiveDeep:"#10b981"};function a(e){const t=String(e);return t.includes("T")?new Date(t):new Date(t+"T00:00:00")}function C(e){return a(String(e)).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}function u(e){const t=a(e);return`${t.getMonth()+1}/${t.getDate()}`}export{T as C,i as a,C as b,s as c,S as d,d as e,u as f,l as g,c as h,f as i};
|