@canonry/canonry 7.24.1 → 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.
Files changed (32) hide show
  1. package/assets/agent-workspace/skills/canonry/references/aeo-analysis.md +1 -1
  2. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +6 -0
  3. package/assets/agent-workspace/skills/canonry/references/google-business-profile.md +1 -0
  4. package/assets/agent-workspace/skills/canonry/references/server-side-traffic.md +3 -2
  5. package/assets/assets/{AuditHistoryPanel-DK3zE9dO.js → AuditHistoryPanel-B-9DLSmD.js} +1 -1
  6. package/assets/assets/{BacklinksPage-WYFDcXpX.js → BacklinksPage-DPssWU5-.js} +1 -1
  7. package/assets/assets/{HistoryPage-CSlndAeS.js → HistoryPage-BAPUoHjI.js} +1 -1
  8. package/assets/assets/{MeasurementPropertyPage-CivoZOGQ.js → MeasurementPropertyPage-aTs5l1OV.js} +1 -1
  9. package/assets/assets/{ProjectPage-zidnYv65.js → ProjectPage-sVY1ETmt.js} +1 -1
  10. package/assets/assets/{RunsPage-BGMAZ_mA.js → RunsPage-D0q7ifK3.js} +1 -1
  11. package/assets/assets/{SettingsPage-ndSVVJcE.js → SettingsPage-Oo861eRm.js} +1 -1
  12. package/assets/assets/{SiteHealthSection-C7-RrsKk.js → SiteHealthSection-BMdk3Och.js} +3 -3
  13. package/assets/assets/{TrafficPage-2ANBE9Lc.js → TrafficPage-Ciot_0lN.js} +1 -1
  14. package/assets/assets/{TrafficSourceDetailPage-CLYVB4Uq.js → TrafficSourceDetailPage-D7tWadfJ.js} +1 -1
  15. package/assets/assets/{extract-error-message-BzPoRYiA.js → extract-error-message-Bb4azvlK.js} +1 -1
  16. package/assets/assets/{index-CjowCLs3.js → index-ClA5Nf2V.js} +3 -3
  17. package/assets/assets/{react-sigma_core.esm.min-BmKqjMGN.js → react-sigma_core.esm.min-C-Y9Z74U.js} +1 -1
  18. package/assets/assets/{v2-overview-adapter-C7eI2iBf.js → v2-overview-adapter-D2S25ivE.js} +1 -1
  19. package/assets/index.html +1 -1
  20. package/dist/{chunk-332IBSJJ.js → chunk-6AOIFHC6.js} +1 -1
  21. package/dist/{chunk-5ITYNLS3.js → chunk-BMBHREYM.js} +2 -2
  22. package/dist/{chunk-43FZZFOK.js → chunk-I3546GTK.js} +2 -2
  23. package/dist/{chunk-OAWFZAAJ.js → chunk-NOA7KJDB.js} +3 -3
  24. package/dist/{chunk-35IRQYDW.js → chunk-NX257AKC.js} +145 -25
  25. package/dist/{chunk-656KW4RB.js → chunk-PFEQWGJN.js} +5 -4
  26. package/dist/{chunk-H7UNFLYH.js → chunk-PKQF7BV2.js} +756 -609
  27. package/dist/cli.js +14 -14
  28. package/dist/{demo-server-NLD6B4WH.js → demo-server-RUZWYXSW.js} +4 -4
  29. package/dist/index.js +6 -6
  30. package/dist/{intelligence-service-JFHM2EAY.js → intelligence-service-TYSVXO3S.js} +2 -2
  31. package/dist/mcp.js +4 -4
  32. 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-35IRQYDW.js";
43
+ } from "./chunk-NX257AKC.js";
44
44
  import {
45
45
  autoSyncSkills,
46
46
  formatAutoSyncNotice
47
- } from "./chunk-OAWFZAAJ.js";
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-5ITYNLS3.js";
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-43FZZFOK.js";
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-332IBSJJ.js";
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-H7UNFLYH.js";
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-656KW4RB.js";
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-NLD6B4WH.js");
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-JFHM2EAY.js");
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. Enable Common Crawl on the project,");
2082
- lines.push("then run `canonry backlinks sync`.");
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 on change, not every pass)",
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-43FZZFOK.js";
8
+ } from "./chunk-I3546GTK.js";
9
9
  import {
10
10
  PACKAGE_VERSION,
11
11
  canonryMcpTools
12
- } from "./chunk-332IBSJJ.js";
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-H7UNFLYH.js";
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-656KW4RB.js";
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-35IRQYDW.js";
6
+ } from "./chunk-NX257AKC.js";
7
7
  import {
8
8
  loadConfig
9
- } from "./chunk-5ITYNLS3.js";
10
- import "./chunk-43FZZFOK.js";
11
- import "./chunk-332IBSJJ.js";
12
- import "./chunk-H7UNFLYH.js";
13
- import "./chunk-656KW4RB.js";
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,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  HISTORY_WINDOW_RUNS,
3
3
  IntelligenceService
4
- } from "./chunk-H7UNFLYH.js";
5
- import "./chunk-656KW4RB.js";
4
+ } from "./chunk-PKQF7BV2.js";
5
+ import "./chunk-PFEQWGJN.js";
6
6
  export {
7
7
  HISTORY_WINDOW_RUNS,
8
8
  IntelligenceService
package/dist/mcp.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  autoSyncSkills
3
- } from "./chunk-OAWFZAAJ.js";
3
+ } from "./chunk-NOA7KJDB.js";
4
4
  import {
5
5
  createApiClient,
6
6
  createCanonryMcpServer
7
- } from "./chunk-5ITYNLS3.js";
8
- import "./chunk-332IBSJJ.js";
7
+ } from "./chunk-BMBHREYM.js";
8
+ import "./chunk-6AOIFHC6.js";
9
9
  import {
10
10
  isReadOnlyKey,
11
11
  updateCheckEnvOptOut
12
- } from "./chunk-656KW4RB.js";
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.24.1",
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,31 +85,31 @@
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
- "@ainyc/canonry-db": "0.0.0",
93
90
  "@ainyc/canonry-contracts": "0.0.0",
91
+ "@ainyc/canonry-web": "0.0.0",
92
+ "@ainyc/canonry-db": "0.0.0",
93
+ "@ainyc/canonry-config": "0.0.0",
94
94
  "@ainyc/canonry-integration-bing": "0.0.0",
95
+ "@ainyc/canonry-integration-cloud-run": "0.0.0",
95
96
  "@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
96
- "@ainyc/canonry-integration-commoncrawl": "0.0.0",
97
97
  "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
98
+ "@ainyc/canonry-integration-commoncrawl": "0.0.0",
98
99
  "@ainyc/canonry-integration-google-ads": "0.0.0",
99
- "@ainyc/canonry-integration-google-business-profile": "0.0.0",
100
100
  "@ainyc/canonry-integration-google": "0.0.0",
101
- "@ainyc/canonry-integration-cloud-run": "0.0.0",
102
- "@ainyc/canonry-integration-google-tag-manager": "0.0.0",
101
+ "@ainyc/canonry-integration-google-business-profile": "0.0.0",
103
102
  "@ainyc/canonry-integration-google-places": "0.0.0",
103
+ "@ainyc/canonry-integration-google-tag-manager": "0.0.0",
104
104
  "@ainyc/canonry-integration-openai-ads": "0.0.0",
105
+ "@ainyc/canonry-integration-traffic": "0.0.0",
105
106
  "@ainyc/canonry-integration-wordpress": "0.0.0",
106
- "@ainyc/canonry-intelligence": "0.0.0",
107
107
  "@ainyc/canonry-provider-cdp": "0.0.0",
108
- "@ainyc/canonry-integration-traffic": "0.0.0",
108
+ "@ainyc/canonry-intelligence": "0.0.0",
109
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
114
  "@ainyc/canonry-integration-typesafe": "0.0.0",
115
115
  "@ainyc/canonry-provider-perplexity": "0.0.0"