@canonry/canonry 7.5.1 → 7.6.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 (29) hide show
  1. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +8 -0
  2. package/assets/assets/{AuditHistoryPanel-B5aLMnWE.js → AuditHistoryPanel-DZbPVuDn.js} +1 -1
  3. package/assets/assets/{BacklinksPage-Biq1jrqe.js → BacklinksPage-6iPxcQdF.js} +1 -1
  4. package/assets/assets/{HistoryPage-CGGkAgnz.js → HistoryPage-DQ4gqs5s.js} +1 -1
  5. package/assets/assets/{MeasurementPropertyPage-BwyWGGBg.js → MeasurementPropertyPage-X4EGa3a5.js} +1 -1
  6. package/assets/assets/{ProjectPage-DEnKyD3e.js → ProjectPage-qvbLROZz.js} +1 -1
  7. package/assets/assets/{RunsPage-DNBn0Rau.js → RunsPage-DBfy79uf.js} +1 -1
  8. package/assets/assets/{SettingsPage-D3m-BLuf.js → SettingsPage-BlNafKGd.js} +1 -1
  9. package/assets/assets/{SiteHealthSection-CPMu1l-l.js → SiteHealthSection-79l2PnfR.js} +3 -3
  10. package/assets/assets/{TrafficPage-BCK_V__i.js → TrafficPage-CPZWDxjp.js} +1 -1
  11. package/assets/assets/{TrafficSourceDetailPage-DaCehUm8.js → TrafficSourceDetailPage-BIhpWiRg.js} +1 -1
  12. package/assets/assets/{extract-error-message-CqBLzzuR.js → extract-error-message-C9XX_kMH.js} +1 -1
  13. package/assets/assets/{index-C2X_UARl.js → index-CUQtRdIf.js} +20 -20
  14. package/assets/assets/{react-sigma_core.esm.min-BvO4SZKT.js → react-sigma_core.esm.min-FTRP6jVQ.js} +1 -1
  15. package/assets/assets/{v2-overview-adapter-CgDChBa5.js → v2-overview-adapter-DEuH0zoM.js} +1 -1
  16. package/assets/index.html +1 -1
  17. package/dist/{chunk-56YOI7QX.js → chunk-7FJZCG7A.js} +2 -2
  18. package/dist/{chunk-VVEMJCC6.js → chunk-B7IT47FE.js} +4 -2
  19. package/dist/{chunk-HAWCV4SU.js → chunk-BLHPFAR6.js} +22 -10
  20. package/dist/{chunk-JTQ4KFIR.js → chunk-FRSGZYQZ.js} +427 -277
  21. package/dist/{chunk-KJIXDPYH.js → chunk-HXAGDOYV.js} +3 -3
  22. package/dist/{chunk-Y7K5NMNV.js → chunk-P72CWNTU.js} +2 -2
  23. package/dist/{chunk-RVM6QJQT.js → chunk-WO7XJJHH.js} +5508 -5464
  24. package/dist/cli.js +24 -12
  25. package/dist/{demo-server-V3DDLXND.js → demo-server-Z7NM6DJT.js} +4 -4
  26. package/dist/index.js +6 -6
  27. package/dist/{intelligence-service-MZVPWIXL.js → intelligence-service-P7AOOXLZ.js} +2 -2
  28. package/dist/mcp.js +4 -4
  29. package/package.json +8 -8
package/dist/cli.js CHANGED
@@ -32,11 +32,11 @@ import {
32
32
  trackCliCommandFinished,
33
33
  trackEvent,
34
34
  waitForServerRuntimeStartup
35
- } from "./chunk-HAWCV4SU.js";
35
+ } from "./chunk-BLHPFAR6.js";
36
36
  import {
37
37
  autoSyncSkills,
38
38
  formatAutoSyncNotice
39
- } from "./chunk-KJIXDPYH.js";
39
+ } from "./chunk-HXAGDOYV.js";
40
40
  import {
41
41
  configExists,
42
42
  createApiClient,
@@ -53,13 +53,13 @@ import {
53
53
  saveConfig,
54
54
  saveConfigPatch,
55
55
  shouldPrintServeSkillsNudge
56
- } from "./chunk-56YOI7QX.js";
56
+ } from "./chunk-7FJZCG7A.js";
57
57
  import {
58
58
  DEFAULT_DEMO_TRUSTED_PROXIES,
59
59
  trustedProxiesProblem,
60
60
  trustedProxyProblem
61
61
  } from "./chunk-RB2F4D3Z.js";
62
- import "./chunk-Y7K5NMNV.js";
62
+ import "./chunk-P72CWNTU.js";
63
63
  import {
64
64
  CliError,
65
65
  EXIT_SYSTEM_ERROR,
@@ -71,7 +71,7 @@ import {
71
71
  runMeasurementDraftAction,
72
72
  systemError,
73
73
  usageError
74
- } from "./chunk-VVEMJCC6.js";
74
+ } from "./chunk-B7IT47FE.js";
75
75
  import {
76
76
  CLOUDFLARE_WORKER_BINDINGS,
77
77
  CLOUDFLARE_WORKER_GENERATED_MARKER,
@@ -100,7 +100,7 @@ import {
100
100
  querySnapshots,
101
101
  rawEventSamples,
102
102
  runs
103
- } from "./chunk-JTQ4KFIR.js";
103
+ } from "./chunk-FRSGZYQZ.js";
104
104
  import {
105
105
  AdsDeliverySnapshotStatuses,
106
106
  AdsHistoricalCampaignRollupStatuses,
@@ -228,7 +228,7 @@ import {
228
228
  visibilityCompareSelectionSchema,
229
229
  visibilityReportRequestSchema,
230
230
  winnabilityClassSchema
231
- } from "./chunk-RVM6QJQT.js";
231
+ } from "./chunk-WO7XJJHH.js";
232
232
 
233
233
  // src/cli.ts
234
234
  import { pathToFileURL } from "url";
@@ -778,7 +778,7 @@ function parseDemoTrustedProxies(values) {
778
778
  async function demoCommand(options) {
779
779
  const { host, port } = parseDemoListenOptions(options);
780
780
  const trustProxy = parseDemoTrustedProxies(options.trustProxy);
781
- const { createDemoServer } = await import("./demo-server-V3DDLXND.js");
781
+ const { createDemoServer } = await import("./demo-server-Z7NM6DJT.js");
782
782
  const app = await createDemoServer({ trustProxy });
783
783
  let stopping = false;
784
784
  const stop = () => {
@@ -1192,7 +1192,7 @@ No DB writes performed. Re-run without --dry-run to apply.`);
1192
1192
  }
1193
1193
  }
1194
1194
  async function backfillInsightsCommand(project2, opts) {
1195
- const { IntelligenceService } = await import("./intelligence-service-MZVPWIXL.js");
1195
+ const { IntelligenceService } = await import("./intelligence-service-P7AOOXLZ.js");
1196
1196
  const config = loadConfig();
1197
1197
  const db = createClient(config.database);
1198
1198
  migrate(db);
@@ -14264,6 +14264,9 @@ async function triggerRun(project2, opts) {
14264
14264
  if (opts?.dispatchMode) {
14265
14265
  body.dispatchMode = opts.dispatchMode;
14266
14266
  }
14267
+ if (opts?.force) {
14268
+ body.force = true;
14269
+ }
14267
14270
  const response = await client.triggerRun(project2, body);
14268
14271
  if (Array.isArray(response)) {
14269
14272
  const locationRuns = response;
@@ -14386,6 +14389,9 @@ async function triggerRunAll(opts) {
14386
14389
  if (opts?.dispatchMode) {
14387
14390
  baseBody.dispatchMode = opts.dispatchMode;
14388
14391
  }
14392
+ if (opts?.force) {
14393
+ baseBody.force = true;
14394
+ }
14389
14395
  const results = [];
14390
14396
  for (const p of projects2) {
14391
14397
  const body = { ...baseBody };
@@ -14727,8 +14733,8 @@ async function fillRun(runId, opts = {}) {
14727
14733
  }
14728
14734
 
14729
14735
  // src/cli-commands/run.ts
14730
- var RUN_TRIGGER_USAGE = "canonry run trigger <project> [--group <key>]... [--target <key>]... [--provider <name>] [--query <q>...] [--location <label>] [--all-locations] [--no-location] [--probe] [--dispatch-mode sync|batch] [--wait] [--format json]";
14731
- var RUN_USAGE2 = "canonry run <project|--all> [--group <key>]... [--target <key>]... [--provider <name>] [--query <q>...] [--location <label>] [--all-locations] [--no-location] [--probe] [--dispatch-mode sync|batch] [--wait] [--format json]";
14736
+ var RUN_TRIGGER_USAGE = "canonry run trigger <project> [--group <key>]... [--target <key>]... [--provider <name>] [--query <q>...] [--location <label>] [--all-locations] [--no-location] [--probe] [--dispatch-mode sync|batch] [--force] [--wait] [--format json]";
14737
+ var RUN_USAGE2 = "canonry run <project|--all> [--group <key>]... [--target <key>]... [--provider <name>] [--query <q>...] [--location <label>] [--all-locations] [--no-location] [--probe] [--dispatch-mode sync|batch] [--force] [--wait] [--format json]";
14732
14738
  var RUN_FILL_USAGE = "canonry run fill <run-id> [--provider <name>[,<name>]] [--dry-run] [--wait] [--format json]";
14733
14739
  var RUNS_USAGE = "canonry runs <project> [--limit <n>] [--kind <kind>] [--status <status>] [--format json]";
14734
14740
  var RUN_TRIGGER_OPTIONS = {
@@ -14750,7 +14756,10 @@ var RUN_TRIGGER_OPTIONS = {
14750
14756
  probe: { type: "boolean", default: false },
14751
14757
  // `batch` sends every provider that can to its asynchronous batch API (a
14752
14758
  // full plan sweep, enabled in config.yaml); refused when none can.
14753
- "dispatch-mode": stringOption()
14759
+ "dispatch-mode": stringOption(),
14760
+ // Run even though every provider failed its recent runs on a rejected key
14761
+ // or an exhausted account (the API refuses with PROVIDERS_FAILING).
14762
+ force: { type: "boolean", default: false }
14754
14763
  };
14755
14764
  function parseDispatchMode(value, command, usage) {
14756
14765
  if (value === void 0) return void 0;
@@ -14798,6 +14807,7 @@ async function triggerRunCommand(input, command) {
14798
14807
  allLocations: getBoolean(input.values, "all-locations"),
14799
14808
  noLocation: getBoolean(input.values, "no-location"),
14800
14809
  dispatchMode,
14810
+ force: getBoolean(input.values, "force"),
14801
14811
  format: input.format
14802
14812
  });
14803
14813
  return;
@@ -14825,6 +14835,7 @@ async function triggerRunCommand(input, command) {
14825
14835
  noLocation: getBoolean(input.values, "no-location"),
14826
14836
  probe: getBoolean(input.values, "probe"),
14827
14837
  dispatchMode,
14838
+ force: getBoolean(input.values, "force"),
14828
14839
  format: input.format
14829
14840
  });
14830
14841
  }
@@ -21752,6 +21763,7 @@ var TELEMETRY_ERROR_CODES = /* @__PURE__ */ new Set([
21752
21763
  "PROVIDER_ERROR",
21753
21764
  "NO_PROVIDER",
21754
21765
  "NO_QUERIES",
21766
+ "PROVIDERS_FAILING",
21755
21767
  "RUN_IN_PROGRESS",
21756
21768
  "OPERATION_IN_PROGRESS",
21757
21769
  "UNSUPPORTED_KIND",
@@ -5,11 +5,11 @@ import {
5
5
  computeFactorAverages,
6
6
  layoutSiteCrawlGraphInput,
7
7
  persistSiteCrawlGraphLayout
8
- } from "./chunk-Y7K5NMNV.js";
8
+ } from "./chunk-P72CWNTU.js";
9
9
  import {
10
10
  PACKAGE_VERSION,
11
11
  canonryMcpTools
12
- } from "./chunk-VVEMJCC6.js";
12
+ } from "./chunk-B7IT47FE.js";
13
13
  import {
14
14
  HISTORY_WINDOW_RUNS,
15
15
  IntelligenceService,
@@ -83,7 +83,7 @@ import {
83
83
  siteCrawlPages,
84
84
  siteCrawlSnapshots,
85
85
  trafficSources
86
- } from "./chunk-JTQ4KFIR.js";
86
+ } from "./chunk-FRSGZYQZ.js";
87
87
  import {
88
88
  RunKinds,
89
89
  SiteCrawlFetchStates,
@@ -112,7 +112,7 @@ import {
112
112
  roundPreservingTotal,
113
113
  siteAuditPageFactorSchema,
114
114
  wilsonInterval
115
- } from "./chunk-RVM6QJQT.js";
115
+ } from "./chunk-WO7XJJHH.js";
116
116
 
117
117
  // src/demo-server.ts
118
118
  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-HAWCV4SU.js";
6
+ } from "./chunk-BLHPFAR6.js";
7
7
  import {
8
8
  loadConfig
9
- } from "./chunk-56YOI7QX.js";
10
- import "./chunk-Y7K5NMNV.js";
11
- import "./chunk-VVEMJCC6.js";
12
- import "./chunk-JTQ4KFIR.js";
13
- import "./chunk-RVM6QJQT.js";
9
+ } from "./chunk-7FJZCG7A.js";
10
+ import "./chunk-P72CWNTU.js";
11
+ import "./chunk-B7IT47FE.js";
12
+ import "./chunk-FRSGZYQZ.js";
13
+ import "./chunk-WO7XJJHH.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-JTQ4KFIR.js";
5
- import "./chunk-RVM6QJQT.js";
4
+ } from "./chunk-FRSGZYQZ.js";
5
+ import "./chunk-WO7XJJHH.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-KJIXDPYH.js";
3
+ } from "./chunk-HXAGDOYV.js";
4
4
  import {
5
5
  createApiClient,
6
6
  createCanonryMcpServer
7
- } from "./chunk-56YOI7QX.js";
8
- import "./chunk-VVEMJCC6.js";
7
+ } from "./chunk-7FJZCG7A.js";
8
+ import "./chunk-B7IT47FE.js";
9
9
  import {
10
10
  isReadOnlyKey,
11
11
  updateCheckEnvOptOut
12
- } from "./chunk-RVM6QJQT.js";
12
+ } from "./chunk-WO7XJJHH.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.5.1",
3
+ "version": "7.6.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": [
@@ -86,25 +86,25 @@
86
86
  "tsup": "^8.5.1",
87
87
  "tsx": "^4.19.0",
88
88
  "@ainyc/canonry-web": "0.0.0",
89
- "@ainyc/canonry-config": "0.0.0",
90
- "@ainyc/canonry-contracts": "0.0.0",
91
- "@ainyc/canonry-api-routes": "0.0.0",
92
89
  "@ainyc/canonry-api-client": "0.0.0",
90
+ "@ainyc/canonry-api-routes": "0.0.0",
93
91
  "@ainyc/canonry-db": "0.0.0",
94
- "@ainyc/canonry-integration-bing": "0.0.0",
92
+ "@ainyc/canonry-contracts": "0.0.0",
93
+ "@ainyc/canonry-config": "0.0.0",
95
94
  "@ainyc/canonry-integration-cloud-run": "0.0.0",
96
- "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
95
+ "@ainyc/canonry-integration-bing": "0.0.0",
97
96
  "@ainyc/canonry-integration-commoncrawl": "0.0.0",
97
+ "@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
98
+ "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
98
99
  "@ainyc/canonry-integration-google": "0.0.0",
99
100
  "@ainyc/canonry-integration-google-ads": "0.0.0",
100
- "@ainyc/canonry-integration-cloudflare-queue": "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",
104
105
  "@ainyc/canonry-integration-openai-ads": "0.0.0",
105
106
  "@ainyc/canonry-integration-wordpress": "0.0.0",
106
107
  "@ainyc/canonry-intelligence": "0.0.0",
107
- "@ainyc/canonry-integration-traffic": "0.0.0",
108
108
  "@ainyc/canonry-provider-cdp": "0.0.0",
109
109
  "@ainyc/canonry-provider-claude": "0.0.0",
110
110
  "@ainyc/canonry-provider-gemini": "0.0.0",