@canonry/canonry 4.175.0 → 4.177.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 (30) hide show
  1. package/README.md +7 -15
  2. package/assets/agent-workspace/skills/canonry/references/server-side-traffic.md +15 -0
  3. package/assets/assets/{AuditHistoryPanel-C_tGzDt2.js → AuditHistoryPanel-YZvGU1la.js} +1 -1
  4. package/assets/assets/{BacklinksPage-CgKG9gLz.js → BacklinksPage-CB2uJWWy.js} +1 -1
  5. package/assets/assets/{HistoryPage-W7VBtrf9.js → HistoryPage-D9IxxbQ9.js} +1 -1
  6. package/assets/assets/{MeasurementPropertyPage-DMbdygLZ.js → MeasurementPropertyPage-CxgnnPdp.js} +1 -1
  7. package/assets/assets/ProjectPage-CPmaXzhL.js +9 -0
  8. package/assets/assets/{RunRow-DI7R9Gc_.js → RunRow-2KxOta8F.js} +1 -1
  9. package/assets/assets/{RunsPage-Ct90Y0n5.js → RunsPage-ya8vTkyd.js} +1 -1
  10. package/assets/assets/{SettingsPage-CZOkHD5Q.js → SettingsPage-lTy3o2bo.js} +1 -1
  11. package/assets/assets/{SiteHealthSection-DxMTxuhq.js → SiteHealthSection-Cyu7MIv2.js} +3 -3
  12. package/assets/assets/TrafficPage-DjhKfw57.js +1 -0
  13. package/assets/assets/TrafficSourceDetailPage-Pwi-Dl9Q.js +1 -0
  14. package/assets/assets/{extract-error-message-CYrIZxuc.js → extract-error-message-I1FVWHLH.js} +1 -1
  15. package/assets/assets/{index-ahTB9rD2.js → index-BeLVKN3H.js} +3 -3
  16. package/assets/assets/{react-sigma_core.esm.min-DHkPbSvc.js → react-sigma_core.esm.min-BX6mOEq5.js} +1 -1
  17. package/assets/index.html +1 -1
  18. package/dist/{chunk-TIEHKR6K.js → chunk-F4ZZKGAC.js} +1 -1
  19. package/dist/{chunk-OSMUOPBR.js → chunk-UXXXKDW4.js} +70 -6
  20. package/dist/{chunk-HYKZOCBT.js → chunk-WW7TDVLV.js} +2 -2
  21. package/dist/{chunk-J3RVQCCQ.js → chunk-X776E66Z.js} +680 -634
  22. package/dist/{chunk-DSGX2IAI.js → chunk-YWFNRDLK.js} +4 -4
  23. package/dist/cli.js +7 -7
  24. package/dist/index.js +4 -4
  25. package/dist/{intelligence-service-RSZTVVX2.js → intelligence-service-QLLGPZOC.js} +2 -2
  26. package/dist/mcp.js +3 -3
  27. package/package.json +14 -14
  28. package/assets/assets/ProjectPage-D_h2PyoN.js +0 -9
  29. package/assets/assets/TrafficPage-LyHMCUIw.js +0 -1
  30. package/assets/assets/TrafficSourceDetailPage-Fd6Pv5hY.js +0 -1
@@ -9,7 +9,7 @@ import {
9
9
  loadConfig,
10
10
  loadConfigRaw,
11
11
  saveConfigPatch
12
- } from "./chunk-TIEHKR6K.js";
12
+ } from "./chunk-F4ZZKGAC.js";
13
13
  import {
14
14
  CC_CACHE_DIR,
15
15
  DUCKDB_SPEC,
@@ -145,7 +145,7 @@ import {
145
145
  siteCrawlSnapshots,
146
146
  toAlertView,
147
147
  usageCounters
148
- } from "./chunk-J3RVQCCQ.js";
148
+ } from "./chunk-X776E66Z.js";
149
149
  import {
150
150
  AGENT_MEMORY_VALUE_MAX_BYTES,
151
151
  AGENT_PROVIDER_IDS,
@@ -282,7 +282,7 @@ import {
282
282
  validationError,
283
283
  winnabilityClassLabel,
284
284
  withRetry
285
- } from "./chunk-OSMUOPBR.js";
285
+ } from "./chunk-UXXXKDW4.js";
286
286
 
287
287
  // src/telemetry.ts
288
288
  import crypto from "crypto";
@@ -11839,7 +11839,7 @@ function readStoredGroundingSources(rawResponse) {
11839
11839
  return result;
11840
11840
  }
11841
11841
  async function backfillInsightsCommand(project, opts) {
11842
- const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-RSZTVVX2.js");
11842
+ const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-QLLGPZOC.js");
11843
11843
  const config = loadConfig();
11844
11844
  const db = createClient(config.database);
11845
11845
  migrate(db);
package/dist/cli.js CHANGED
@@ -26,11 +26,11 @@ import {
26
26
  showFirstRunNotice,
27
27
  trackCliCommandFinished,
28
28
  trackEvent
29
- } from "./chunk-DSGX2IAI.js";
29
+ } from "./chunk-YWFNRDLK.js";
30
30
  import {
31
31
  autoSyncSkills,
32
32
  formatAutoSyncNotice
33
- } from "./chunk-HYKZOCBT.js";
33
+ } from "./chunk-WW7TDVLV.js";
34
34
  import {
35
35
  CliError,
36
36
  EXIT_SYSTEM_ERROR,
@@ -55,7 +55,7 @@ import {
55
55
  saveConfigPatch,
56
56
  systemError,
57
57
  usageError
58
- } from "./chunk-TIEHKR6K.js";
58
+ } from "./chunk-F4ZZKGAC.js";
59
59
  import {
60
60
  CLOUDFLARE_WORKER_BINDINGS,
61
61
  CLOUDFLARE_WORKER_GENERATED_MARKER,
@@ -69,7 +69,7 @@ import {
69
69
  projects,
70
70
  queries,
71
71
  renderReportHtml
72
- } from "./chunk-J3RVQCCQ.js";
72
+ } from "./chunk-X776E66Z.js";
73
73
  import {
74
74
  AdsDeliverySnapshotStatuses,
75
75
  AdsHistoricalCampaignRollupStatuses,
@@ -137,7 +137,7 @@ import {
137
137
  providerQuotaPolicySchema,
138
138
  resolveProviderInput,
139
139
  winnabilityClassSchema
140
- } from "./chunk-OSMUOPBR.js";
140
+ } from "./chunk-UXXXKDW4.js";
141
141
 
142
142
  // src/cli.ts
143
143
  import { pathToFileURL } from "url";
@@ -6958,7 +6958,7 @@ async function trafficStatus(project, opts) {
6958
6958
  console.log(` 24h infra: ${d.totals24h.crawlerInfraHits} sitemap/robots/asset fetches`);
6959
6959
  console.log(` 24h other: ${d.totals24h.crawlerSegments.other} fetches`);
6960
6960
  console.log(` 24h crawler: ${d.totals24h.crawlerHits} hits total`);
6961
- console.log(` 24h AI referral: ${d.totals24h.aiReferralHits} sessions`);
6961
+ console.log(` 24h AI referral: ${d.totals24h.aiReferralLandedHits} sessions (+${d.totals24h.aiReferralRedirectedHits} redirect hops excluded)`);
6962
6962
  console.log(` 24h samples: ${d.totals24h.sampleCount}`);
6963
6963
  if (d.latestRun) {
6964
6964
  console.log(` Latest run: ${d.latestRun.runId} (${d.latestRun.status})`);
@@ -7067,7 +7067,7 @@ async function trafficEvents(project, opts) {
7067
7067
  console.log(` Other fetches (window): ${result.totals.crawlerSegments.other}`);
7068
7068
  console.log(` Crawler hits total (window): ${result.totals.crawlerHits}`);
7069
7069
  console.log(` AI user-fetch hits (window): ${result.totals.aiUserFetchHits}`);
7070
- console.log(` AI referral sessions (window): ${result.totals.aiReferralHits}`);
7070
+ console.log(` AI referral sessions (window): ${result.totals.aiReferralLandedHits} (+${result.totals.aiReferralRedirectedHits} redirect hops excluded)`);
7071
7071
  console.log(` paid: ${result.totals.aiReferralPaidHits}`);
7072
7072
  console.log(` organic: ${result.totals.aiReferralOrganicHits}`);
7073
7073
  console.log(` unclassified: ${result.totals.aiReferralUnknownHits} (ingested before paid/organic classification)`);
package/dist/index.js CHANGED
@@ -3,12 +3,12 @@ import {
3
3
  createGoogleMarketingCredentialStore,
4
4
  createGoogleMarketingRuntime,
5
5
  createServer
6
- } from "./chunk-DSGX2IAI.js";
6
+ } from "./chunk-YWFNRDLK.js";
7
7
  import {
8
8
  loadConfig
9
- } from "./chunk-TIEHKR6K.js";
10
- import "./chunk-J3RVQCCQ.js";
11
- import "./chunk-OSMUOPBR.js";
9
+ } from "./chunk-F4ZZKGAC.js";
10
+ import "./chunk-X776E66Z.js";
11
+ import "./chunk-UXXXKDW4.js";
12
12
  export {
13
13
  GoogleMarketingRuntimeError,
14
14
  createGoogleMarketingCredentialStore,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  IntelligenceService
3
- } from "./chunk-J3RVQCCQ.js";
4
- import "./chunk-OSMUOPBR.js";
3
+ } from "./chunk-X776E66Z.js";
4
+ import "./chunk-UXXXKDW4.js";
5
5
  export {
6
6
  IntelligenceService
7
7
  };
package/dist/mcp.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  autoSyncSkills
3
- } from "./chunk-HYKZOCBT.js";
3
+ } from "./chunk-WW7TDVLV.js";
4
4
  import {
5
5
  CliError,
6
6
  PACKAGE_VERSION,
7
7
  canonryMcpTools,
8
8
  createApiClient
9
- } from "./chunk-TIEHKR6K.js";
9
+ } from "./chunk-F4ZZKGAC.js";
10
10
  import {
11
11
  isReadOnlyKey
12
- } from "./chunk-OSMUOPBR.js";
12
+ } from "./chunk-UXXXKDW4.js";
13
13
 
14
14
  // src/mcp/cli.ts
15
15
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@canonry/canonry",
3
- "version": "4.175.0",
3
+ "version": "4.177.0",
4
4
  "type": "module",
5
- "description": "Agent-first open-source AEO operating platform - track how answer engines cite your domain",
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
  "license": "FSL-1.1-ALv2",
7
7
  "homepage": "https://canonry.ai",
8
8
  "repository": {
@@ -37,7 +37,7 @@
37
37
  "THIRD_PARTY_NOTICES.md"
38
38
  ],
39
39
  "engines": {
40
- "node": ">=22.14.0 <26"
40
+ "node": ">=22.14.0 <27"
41
41
  },
42
42
  "dependencies": {
43
43
  "@anthropic-ai/sdk": "^0.91.1",
@@ -49,7 +49,7 @@
49
49
  "@mariozechner/pi-ai": "0.67.6",
50
50
  "@modelcontextprotocol/sdk": "^1.29.0",
51
51
  "@sinclair/typebox": "^0.34.41",
52
- "better-sqlite3": "^12.6.2",
52
+ "better-sqlite3": "^12.11.1",
53
53
  "chrome-remote-interface": "^0.33.2",
54
54
  "cron-parser": "^5.5.0",
55
55
  "drizzle-orm": "^0.45.2",
@@ -70,31 +70,31 @@
70
70
  "@types/node-cron": "^3.0.11",
71
71
  "tsup": "^8.5.1",
72
72
  "tsx": "^4.19.0",
73
- "@ainyc/canonry-api-client": "0.0.0",
74
73
  "@ainyc/canonry-api-routes": "0.0.0",
75
74
  "@ainyc/canonry-config": "0.0.0",
75
+ "@ainyc/canonry-api-client": "0.0.0",
76
76
  "@ainyc/canonry-contracts": "0.0.0",
77
77
  "@ainyc/canonry-db": "0.0.0",
78
78
  "@ainyc/canonry-integration-bing": "0.0.0",
79
79
  "@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
80
- "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
81
- "@ainyc/canonry-integration-openai-ads": "0.0.0",
82
80
  "@ainyc/canonry-integration-cloud-run": "0.0.0",
81
+ "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
83
82
  "@ainyc/canonry-integration-commoncrawl": "0.0.0",
84
83
  "@ainyc/canonry-integration-google-ads": "0.0.0",
84
+ "@ainyc/canonry-integration-google-business-profile": "0.0.0",
85
+ "@ainyc/canonry-integration-google": "0.0.0",
86
+ "@ainyc/canonry-integration-openai-ads": "0.0.0",
85
87
  "@ainyc/canonry-integration-google-places": "0.0.0",
86
- "@ainyc/canonry-integration-google-tag-manager": "0.0.0",
87
88
  "@ainyc/canonry-integration-traffic": "0.0.0",
88
- "@ainyc/canonry-integration-google": "0.0.0",
89
- "@ainyc/canonry-integration-google-business-profile": "0.0.0",
90
- "@ainyc/canonry-provider-cdp": "0.0.0",
91
- "@ainyc/canonry-intelligence": "0.0.0",
92
89
  "@ainyc/canonry-integration-wordpress": "0.0.0",
90
+ "@ainyc/canonry-provider-cdp": "0.0.0",
91
+ "@ainyc/canonry-integration-google-tag-manager": "0.0.0",
93
92
  "@ainyc/canonry-provider-claude": "0.0.0",
94
93
  "@ainyc/canonry-provider-local": "0.0.0",
94
+ "@ainyc/canonry-intelligence": "0.0.0",
95
+ "@ainyc/canonry-provider-gemini": "0.0.0",
95
96
  "@ainyc/canonry-provider-openai": "0.0.0",
96
- "@ainyc/canonry-provider-perplexity": "0.0.0",
97
- "@ainyc/canonry-provider-gemini": "0.0.0"
97
+ "@ainyc/canonry-provider-perplexity": "0.0.0"
98
98
  },
99
99
  "scripts": {
100
100
  "build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",