@canonry/canonry 7.24.0 → 7.25.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/canonry/references/aeo-analysis.md +1 -1
- package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +6 -0
- package/assets/agent-workspace/skills/canonry/references/google-business-profile.md +1 -0
- package/assets/agent-workspace/skills/canonry/references/server-side-traffic.md +3 -2
- package/assets/assets/{AuditHistoryPanel-DKKnX8IT.js → AuditHistoryPanel-B-9DLSmD.js} +1 -1
- package/assets/assets/{BacklinksPage-DNbur8am.js → BacklinksPage-DPssWU5-.js} +1 -1
- package/assets/assets/{HistoryPage-DahtHlpM.js → HistoryPage-BAPUoHjI.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-BoNDtLfp.js → MeasurementPropertyPage-aTs5l1OV.js} +1 -1
- package/assets/assets/{ProjectPage--ZlpQduH.js → ProjectPage-sVY1ETmt.js} +1 -1
- package/assets/assets/{RunsPage-DKB2CHTM.js → RunsPage-D0q7ifK3.js} +1 -1
- package/assets/assets/{SettingsPage-lnmMZzEj.js → SettingsPage-Oo861eRm.js} +1 -1
- package/assets/assets/{SiteHealthSection-BBjucRed.js → SiteHealthSection-BMdk3Och.js} +3 -3
- package/assets/assets/{TrafficPage-DNyTmPLd.js → TrafficPage-Ciot_0lN.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-D1zKZHSh.js → TrafficSourceDetailPage-D7tWadfJ.js} +1 -1
- package/assets/assets/{extract-error-message-v0b8P-wc.js → extract-error-message-Bb4azvlK.js} +1 -1
- package/assets/assets/{index-CfaBRiBG.js → index-ClA5Nf2V.js} +18 -18
- package/assets/assets/{react-sigma_core.esm.min-BZSJoRrV.js → react-sigma_core.esm.min-C-Y9Z74U.js} +1 -1
- package/assets/assets/{v2-overview-adapter-DXAl-O_h.js → v2-overview-adapter-D2S25ivE.js} +1 -1
- package/assets/index.html +1 -1
- package/dist/{chunk-DS2ZKB3T.js → chunk-6AOIFHC6.js} +1 -1
- package/dist/{chunk-JJBVYL45.js → chunk-BMBHREYM.js} +2 -2
- package/dist/{chunk-7Q7QCBJ3.js → chunk-I3546GTK.js} +2 -2
- package/dist/{chunk-YCPTP2NC.js → chunk-NOA7KJDB.js} +3 -3
- package/dist/{chunk-SG3MPCDL.js → chunk-NX257AKC.js} +145 -25
- package/dist/{chunk-IM2BFAAT.js → chunk-PFEQWGJN.js} +7 -5
- package/dist/{chunk-O5UMRQVN.js → chunk-PKQF7BV2.js} +759 -610
- package/dist/cli.js +14 -14
- package/dist/{demo-server-C7UGXXN7.js → demo-server-RUZWYXSW.js} +4 -4
- package/dist/index.js +6 -6
- package/dist/{intelligence-service-37TX4YV7.js → intelligence-service-TYSVXO3S.js} +2 -2
- package/dist/mcp.js +4 -4
- package/package.json +11 -11
package/dist/cli.js
CHANGED
|
@@ -40,11 +40,11 @@ import {
|
|
|
40
40
|
trackFeatureCompleted,
|
|
41
41
|
trackIntegrationConnection,
|
|
42
42
|
waitForServerRuntimeStartup
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-NX257AKC.js";
|
|
44
44
|
import {
|
|
45
45
|
autoSyncSkills,
|
|
46
46
|
formatAutoSyncNotice
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-NOA7KJDB.js";
|
|
48
48
|
import {
|
|
49
49
|
clearDashboardPassword,
|
|
50
50
|
configExists,
|
|
@@ -63,13 +63,13 @@ import {
|
|
|
63
63
|
saveConfigPatch,
|
|
64
64
|
shouldPrintServeSkillsNudge,
|
|
65
65
|
withBootstrapProviderDefaults
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-BMBHREYM.js";
|
|
67
67
|
import {
|
|
68
68
|
DEFAULT_DEMO_TRUSTED_PROXIES,
|
|
69
69
|
trustedProxiesProblem,
|
|
70
70
|
trustedProxyProblem
|
|
71
71
|
} from "./chunk-RB2F4D3Z.js";
|
|
72
|
-
import "./chunk-
|
|
72
|
+
import "./chunk-I3546GTK.js";
|
|
73
73
|
import {
|
|
74
74
|
CANONRY_DISCORD_URL,
|
|
75
75
|
CANONRY_ISSUES_URL,
|
|
@@ -83,7 +83,7 @@ import {
|
|
|
83
83
|
runMeasurementDraftAction,
|
|
84
84
|
systemError,
|
|
85
85
|
usageError
|
|
86
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-6AOIFHC6.js";
|
|
87
87
|
import {
|
|
88
88
|
CLOUDFLARE_WORKER_BINDINGS,
|
|
89
89
|
CLOUDFLARE_WORKER_GENERATED_MARKER,
|
|
@@ -116,7 +116,7 @@ import {
|
|
|
116
116
|
rawEventSamples,
|
|
117
117
|
readMarketCompetitorNames,
|
|
118
118
|
runs
|
|
119
|
-
} from "./chunk-
|
|
119
|
+
} from "./chunk-PKQF7BV2.js";
|
|
120
120
|
import {
|
|
121
121
|
AdsDeliverySnapshotStatuses,
|
|
122
122
|
AdsHistoricalCampaignRollupStatuses,
|
|
@@ -253,7 +253,7 @@ import {
|
|
|
253
253
|
visibilityCompareSelectionSchema,
|
|
254
254
|
visibilityReportRequestSchema,
|
|
255
255
|
winnabilityClassSchema
|
|
256
|
-
} from "./chunk-
|
|
256
|
+
} from "./chunk-PFEQWGJN.js";
|
|
257
257
|
|
|
258
258
|
// src/cli.ts
|
|
259
259
|
import { pathToFileURL } from "url";
|
|
@@ -799,7 +799,7 @@ function parseDemoTrustedProxies(values) {
|
|
|
799
799
|
async function demoCommand(options) {
|
|
800
800
|
const { host, port } = parseDemoListenOptions(options);
|
|
801
801
|
const trustProxy = parseDemoTrustedProxies(options.trustProxy);
|
|
802
|
-
const { createDemoServer } = await import("./demo-server-
|
|
802
|
+
const { createDemoServer } = await import("./demo-server-RUZWYXSW.js");
|
|
803
803
|
const app = await createDemoServer({ trustProxy });
|
|
804
804
|
let stopping = false;
|
|
805
805
|
const stop = () => {
|
|
@@ -1213,7 +1213,7 @@ No DB writes performed. Re-run without --dry-run to apply.`);
|
|
|
1213
1213
|
}
|
|
1214
1214
|
}
|
|
1215
1215
|
async function backfillInsightsCommand(project2, opts) {
|
|
1216
|
-
const { IntelligenceService } = await import("./intelligence-service-
|
|
1216
|
+
const { IntelligenceService } = await import("./intelligence-service-TYSVXO3S.js");
|
|
1217
1217
|
const config = loadConfig();
|
|
1218
1218
|
const db = createClient(config.database);
|
|
1219
1219
|
migrate(db);
|
|
@@ -2066,7 +2066,7 @@ async function backlinksList(opts) {
|
|
|
2066
2066
|
}
|
|
2067
2067
|
console.log(formatSummaryAndDomains(opts.project, response));
|
|
2068
2068
|
}
|
|
2069
|
-
function formatSourceAvailability(res) {
|
|
2069
|
+
function formatSourceAvailability(project2, res) {
|
|
2070
2070
|
const lines = [];
|
|
2071
2071
|
lines.push(`Project: ${res.projectId} Target: ${res.targetDomain}`);
|
|
2072
2072
|
lines.push("");
|
|
@@ -2078,8 +2078,8 @@ function formatSourceAvailability(res) {
|
|
|
2078
2078
|
}
|
|
2079
2079
|
if (!res.anyConnected) {
|
|
2080
2080
|
lines.push("");
|
|
2081
|
-
lines.push("No active backlink source is set up.
|
|
2082
|
-
lines.push(
|
|
2081
|
+
lines.push("No active backlink source is set up. Run `canonry backlinks sync` to download a");
|
|
2082
|
+
lines.push(`Common Crawl release, or \`canonry backlinks extract ${project2}\` when one is already synced.`);
|
|
2083
2083
|
}
|
|
2084
2084
|
return lines.join("\n");
|
|
2085
2085
|
}
|
|
@@ -2092,7 +2092,7 @@ async function backlinksSources(opts) {
|
|
|
2092
2092
|
emitJsonl(res.sources.map((s) => ({ project: opts.project, targetDomain: res.targetDomain, ...s })));
|
|
2093
2093
|
return;
|
|
2094
2094
|
}
|
|
2095
|
-
console.log(formatSourceAvailability(res));
|
|
2095
|
+
console.log(formatSourceAvailability(opts.project, res));
|
|
2096
2096
|
}
|
|
2097
2097
|
async function backlinksReleases(opts = {}) {
|
|
2098
2098
|
const rows = await getClient().backlinksCachedReleases();
|
|
@@ -13048,7 +13048,7 @@ var EVENT_DESCRIPTIONS = {
|
|
|
13048
13048
|
"run.failed": "An AEO sweep failed",
|
|
13049
13049
|
"insight.critical": "A critical-severity insight was generated",
|
|
13050
13050
|
"insight.high": "A high-severity insight was generated",
|
|
13051
|
-
"health.degraded": "A scheduled health check found the measurement degraded, daily data stopped arriving, or the website stopped answering (sent
|
|
13051
|
+
"health.degraded": "A scheduled health check found the measurement degraded, daily data stopped arriving, or the website stopped answering (sent when a check starts failing or gets worse, not every pass)",
|
|
13052
13052
|
"health.recovered": "A degraded health check is passing again, or a website that was paged as down answers again",
|
|
13053
13053
|
"review.negative": "A new or edited Google review at or below the project's negative-review threshold, 3 stars by default (Business Profile reviews, or the public listing when Google has not enabled review access)",
|
|
13054
13054
|
"review.rating-dropped": "A location's public Google rating fell (sent for locations without Business Profile review access)"
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
computeFactorAverages,
|
|
6
6
|
layoutSiteCrawlGraphInput,
|
|
7
7
|
persistSiteCrawlGraphLayout
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-I3546GTK.js";
|
|
9
9
|
import {
|
|
10
10
|
PACKAGE_VERSION,
|
|
11
11
|
canonryMcpTools
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-6AOIFHC6.js";
|
|
13
13
|
import {
|
|
14
14
|
HISTORY_WINDOW_RUNS,
|
|
15
15
|
IntelligenceService,
|
|
@@ -85,7 +85,7 @@ import {
|
|
|
85
85
|
siteCrawlPages,
|
|
86
86
|
siteCrawlSnapshots,
|
|
87
87
|
trafficSources
|
|
88
|
-
} from "./chunk-
|
|
88
|
+
} from "./chunk-PKQF7BV2.js";
|
|
89
89
|
import {
|
|
90
90
|
RunKinds,
|
|
91
91
|
SiteCrawlFetchStates,
|
|
@@ -115,7 +115,7 @@ import {
|
|
|
115
115
|
roundPreservingTotal,
|
|
116
116
|
siteAuditPageFactorSchema,
|
|
117
117
|
wilsonInterval
|
|
118
|
-
} from "./chunk-
|
|
118
|
+
} from "./chunk-PFEQWGJN.js";
|
|
119
119
|
|
|
120
120
|
// src/demo-server.ts
|
|
121
121
|
import { dirname, join as join2 } from "path";
|
package/dist/index.js
CHANGED
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
createGoogleMarketingCredentialStore,
|
|
4
4
|
createGoogleMarketingRuntime,
|
|
5
5
|
createServer
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-NX257AKC.js";
|
|
7
7
|
import {
|
|
8
8
|
loadConfig
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-BMBHREYM.js";
|
|
10
|
+
import "./chunk-I3546GTK.js";
|
|
11
|
+
import "./chunk-6AOIFHC6.js";
|
|
12
|
+
import "./chunk-PKQF7BV2.js";
|
|
13
|
+
import "./chunk-PFEQWGJN.js";
|
|
14
14
|
export {
|
|
15
15
|
GoogleMarketingRuntimeError,
|
|
16
16
|
createGoogleMarketingCredentialStore,
|
package/dist/mcp.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
autoSyncSkills
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NOA7KJDB.js";
|
|
4
4
|
import {
|
|
5
5
|
createApiClient,
|
|
6
6
|
createCanonryMcpServer
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-BMBHREYM.js";
|
|
8
|
+
import "./chunk-6AOIFHC6.js";
|
|
9
9
|
import {
|
|
10
10
|
isReadOnlyKey,
|
|
11
11
|
updateCheckEnvOptOut
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-PFEQWGJN.js";
|
|
13
13
|
|
|
14
14
|
// src/mcp/cli.ts
|
|
15
15
|
import { randomUUID } from "crypto";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@canonry/canonry",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.25.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Self-hosted AI visibility (AEO) platform: track how ChatGPT, Claude, Gemini, and Perplexity cite your domain, join it with Search Console, GA4, server-side traffic, and paid media, and fix what you find through agent tools (CLI, REST, MCP). Local SQLite.",
|
|
6
6
|
"keywords": [
|
|
@@ -85,34 +85,34 @@
|
|
|
85
85
|
"@types/node-cron": "^3.0.11",
|
|
86
86
|
"tsup": "^8.5.1",
|
|
87
87
|
"tsx": "^4.19.0",
|
|
88
|
-
"@ainyc/canonry-web": "0.0.0",
|
|
89
88
|
"@ainyc/canonry-api-client": "0.0.0",
|
|
90
89
|
"@ainyc/canonry-api-routes": "0.0.0",
|
|
91
|
-
"@ainyc/canonry-config": "0.0.0",
|
|
92
90
|
"@ainyc/canonry-contracts": "0.0.0",
|
|
91
|
+
"@ainyc/canonry-web": "0.0.0",
|
|
93
92
|
"@ainyc/canonry-db": "0.0.0",
|
|
93
|
+
"@ainyc/canonry-config": "0.0.0",
|
|
94
94
|
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
95
95
|
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
96
|
+
"@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
|
|
96
97
|
"@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
|
|
97
|
-
"@ainyc/canonry-integration-google": "0.0.0",
|
|
98
98
|
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
99
|
-
"@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
|
|
100
99
|
"@ainyc/canonry-integration-google-ads": "0.0.0",
|
|
100
|
+
"@ainyc/canonry-integration-google": "0.0.0",
|
|
101
101
|
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
102
102
|
"@ainyc/canonry-integration-google-places": "0.0.0",
|
|
103
103
|
"@ainyc/canonry-integration-google-tag-manager": "0.0.0",
|
|
104
|
-
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
105
104
|
"@ainyc/canonry-integration-openai-ads": "0.0.0",
|
|
106
|
-
"@ainyc/canonry-
|
|
105
|
+
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
107
106
|
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
108
|
-
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
109
107
|
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
108
|
+
"@ainyc/canonry-intelligence": "0.0.0",
|
|
109
|
+
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
110
110
|
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
111
|
-
"@ainyc/canonry-provider-local": "0.0.0",
|
|
112
111
|
"@ainyc/canonry-provider-muse": "0.0.0",
|
|
112
|
+
"@ainyc/canonry-provider-local": "0.0.0",
|
|
113
113
|
"@ainyc/canonry-provider-openai": "0.0.0",
|
|
114
|
-
"@ainyc/canonry-
|
|
115
|
-
"@ainyc/canonry-
|
|
114
|
+
"@ainyc/canonry-integration-typesafe": "0.0.0",
|
|
115
|
+
"@ainyc/canonry-provider-perplexity": "0.0.0"
|
|
116
116
|
},
|
|
117
117
|
"scripts": {
|
|
118
118
|
"build": "pnpm run build:cli && pnpm run build:web",
|