@canonry/canonry 5.16.0 → 5.17.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/assets/{AuditHistoryPanel-CnoGPJ5Y.js → AuditHistoryPanel-CZUnfysJ.js} +1 -1
  2. package/assets/assets/{BacklinksPage-DYe2CYfD.js → BacklinksPage-C9qSkTUW.js} +1 -1
  3. package/assets/assets/{HistoryPage-CO-dzLAo.js → HistoryPage-CYMWnCta.js} +1 -1
  4. package/assets/assets/{MeasurementPropertyPage-smsZFdd6.js → MeasurementPropertyPage-Bu4KDAdf.js} +1 -1
  5. package/assets/assets/{ProjectPage-jL3jB2TR.js → ProjectPage-Bg87LPit.js} +1 -1
  6. package/assets/assets/{RunRow-CzcaoK_3.js → RunRow-CwMUW3rM.js} +1 -1
  7. package/assets/assets/{RunsPage-DQWPHDoq.js → RunsPage-DbzSmrnc.js} +1 -1
  8. package/assets/assets/{SettingsPage-DMtQLrWP.js → SettingsPage-DM-G5WzL.js} +1 -1
  9. package/assets/assets/{SiteHealthSection-2ljW02xK.js → SiteHealthSection-BwmQJ9Z9.js} +3 -3
  10. package/assets/assets/{TrafficPage-NFu0LEdk.js → TrafficPage-DSumJzUk.js} +1 -1
  11. package/assets/assets/{TrafficSourceDetailPage-DbBIzmbL.js → TrafficSourceDetailPage-D5BjIBkN.js} +1 -1
  12. package/assets/assets/{extract-error-message-pMGpUsIh.js → extract-error-message-DbpR8Tzb.js} +1 -1
  13. package/assets/assets/index-BtHRel6S.js +86 -0
  14. package/assets/assets/{react-sigma_core.esm.min-CadBie52.js → react-sigma_core.esm.min-C3cM2I3z.js} +1 -1
  15. package/assets/assets/{v2-overview-adapter-Oe8hHMAO.js → v2-overview-adapter-DllH2EQb.js} +1 -1
  16. package/assets/index.html +1 -1
  17. package/dist/{chunk-JO5HHEJV.js → chunk-2EE6RPWV.js} +1 -1
  18. package/dist/{chunk-CDQDPUY4.js → chunk-3OYWLQEE.js} +1 -1
  19. package/dist/{chunk-XDFMFZRN.js → chunk-GYX277BV.js} +484 -159
  20. package/dist/{chunk-3YAPVVFN.js → chunk-H6COEFVL.js} +1 -0
  21. package/dist/{chunk-ZGZSROSR.js → chunk-XC24KCTL.js} +7 -0
  22. package/dist/cli.js +6 -6
  23. package/dist/{demo-server-QLQUVMKJ.js → demo-server-CUBR2NVR.js} +2 -2
  24. package/dist/index.d.ts +7 -0
  25. package/dist/index.js +4 -4
  26. package/dist/{intelligence-service-EAUKUVVM.js → intelligence-service-6N7SIWLD.js} +1 -1
  27. package/dist/mcp.js +2 -2
  28. package/package.json +11 -11
  29. package/assets/assets/index-D9NReRHX.js +0 -86
@@ -11681,6 +11681,7 @@ function applyRoleGates(request) {
11681
11681
  }
11682
11682
  function applyScopedWriteGates(request) {
11683
11683
  if (!WRITE_METHODS2.has(request.method) || isTransportEnvelopeRoute(request) || request.readSemanticGrant) return;
11684
+ if (isPaidReadRoute(request) && request.principal?.kind === "user") return;
11684
11685
  const scopes = principalScopes(request) ?? [];
11685
11686
  const restricted = restrictedWriteScopes(scopes);
11686
11687
  if (!restricted) return;
@@ -206,6 +206,7 @@ import { parse, stringify } from "yaml";
206
206
  import { z } from "zod";
207
207
  var dashboardManagedSweepsSchema = z.boolean().nullish();
208
208
  var researchAllowViewersSchema = z.boolean().nullish();
209
+ var agentAllowViewersSchema = z.boolean().nullish();
209
210
  var researchViewerDailyRunLimitSchema = z.number().int().positive().nullish();
210
211
  var dashboardManagedRunKindsSchema = z.array(schedulableRunKindSchema).nullish();
211
212
  var agentProviderSchema = agentProviderIdSchema.nullish();
@@ -476,6 +477,12 @@ Do not use "canonry init --force" for recovery. It replaces credentials without
476
477
  message: `Invalid config at ${configPath}: agent.model must be a non-empty string or left blank.`
477
478
  });
478
479
  }
480
+ if (!agentAllowViewersSchema.safeParse(parsed.agent?.allowViewers).success) {
481
+ throw new CliError({
482
+ code: "CONFIG_INVALID",
483
+ message: `Invalid config at ${configPath}: agent.allowViewers must be true, false, or left blank.`
484
+ });
485
+ }
479
486
  if (parsed.agent?.model && !parsed.agent?.provider) {
480
487
  throw new CliError({
481
488
  code: "CONFIG_INVALID",
package/dist/cli.js CHANGED
@@ -35,11 +35,11 @@ import {
35
35
  trackCliCommandFinished,
36
36
  trackEvent,
37
37
  waitForServerRuntimeStartup
38
- } from "./chunk-XDFMFZRN.js";
38
+ } from "./chunk-GYX277BV.js";
39
39
  import {
40
40
  autoSyncSkills,
41
41
  formatAutoSyncNotice
42
- } from "./chunk-JO5HHEJV.js";
42
+ } from "./chunk-2EE6RPWV.js";
43
43
  import {
44
44
  CliError,
45
45
  EXIT_SYSTEM_ERROR,
@@ -66,13 +66,13 @@ import {
66
66
  shouldPrintServeSkillsNudge,
67
67
  systemError,
68
68
  usageError
69
- } from "./chunk-ZGZSROSR.js";
69
+ } from "./chunk-XC24KCTL.js";
70
70
  import {
71
71
  DEFAULT_DEMO_TRUSTED_PROXIES,
72
72
  trustedProxiesProblem,
73
73
  trustedProxyProblem
74
74
  } from "./chunk-RB2F4D3Z.js";
75
- import "./chunk-CDQDPUY4.js";
75
+ import "./chunk-3OYWLQEE.js";
76
76
  import "./chunk-AOJU5LKX.js";
77
77
  import {
78
78
  CLOUDFLARE_WORKER_BINDINGS,
@@ -88,7 +88,7 @@ import {
88
88
  queries,
89
89
  renderReportHtml,
90
90
  runs
91
- } from "./chunk-3YAPVVFN.js";
91
+ } from "./chunk-H6COEFVL.js";
92
92
  import {
93
93
  AdsDeliverySnapshotStatuses,
94
94
  AdsHistoricalCampaignRollupStatuses,
@@ -438,7 +438,7 @@ function parseDemoTrustedProxies(values) {
438
438
  async function demoCommand(options) {
439
439
  const { host, port } = parseDemoListenOptions(options);
440
440
  const trustProxy = parseDemoTrustedProxies(options.trustProxy);
441
- const { createDemoServer } = await import("./demo-server-QLQUVMKJ.js");
441
+ const { createDemoServer } = await import("./demo-server-CUBR2NVR.js");
442
442
  const app = await createDemoServer({ trustProxy });
443
443
  let stopping = false;
444
444
  const stop = () => {
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  layoutSiteCrawlGraphInput,
6
6
  persistSiteCrawlGraphLayout
7
- } from "./chunk-CDQDPUY4.js";
7
+ } from "./chunk-3OYWLQEE.js";
8
8
  import {
9
9
  PACKAGE_VERSION
10
10
  } from "./chunk-AOJU5LKX.js";
@@ -83,7 +83,7 @@ import {
83
83
  siteCrawlPages,
84
84
  siteCrawlSnapshots,
85
85
  trafficSources
86
- } from "./chunk-3YAPVVFN.js";
86
+ } from "./chunk-H6COEFVL.js";
87
87
  import {
88
88
  RunKinds,
89
89
  SiteCrawlFetchStates,
package/dist/index.d.ts CHANGED
@@ -316,6 +316,13 @@ interface AgentConfigEntry {
316
316
  * provider's agent-tier default.
317
317
  */
318
318
  model?: string;
319
+ /**
320
+ * Let signed-in viewer accounts use Aero. Off by default. A viewer gets their
321
+ * own in-memory conversation, never the operator's, and every tool call runs
322
+ * with the viewer's own read-only authority. `CANONRY_AGENT_ALLOW_VIEWERS`
323
+ * overrides it; resolved by `resolveAgentAllowViewers`.
324
+ */
325
+ allowViewers?: boolean | null;
319
326
  }
320
327
  interface DashboardConfigEntry {
321
328
  /**
package/dist/index.js CHANGED
@@ -3,13 +3,13 @@ import {
3
3
  createGoogleMarketingCredentialStore,
4
4
  createGoogleMarketingRuntime,
5
5
  createServer
6
- } from "./chunk-XDFMFZRN.js";
6
+ } from "./chunk-GYX277BV.js";
7
7
  import {
8
8
  loadConfig
9
- } from "./chunk-ZGZSROSR.js";
10
- import "./chunk-CDQDPUY4.js";
9
+ } from "./chunk-XC24KCTL.js";
10
+ import "./chunk-3OYWLQEE.js";
11
11
  import "./chunk-AOJU5LKX.js";
12
- import "./chunk-3YAPVVFN.js";
12
+ import "./chunk-H6COEFVL.js";
13
13
  import "./chunk-L36TC6LB.js";
14
14
  export {
15
15
  GoogleMarketingRuntimeError,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HISTORY_WINDOW_RUNS,
3
3
  IntelligenceService
4
- } from "./chunk-3YAPVVFN.js";
4
+ } from "./chunk-H6COEFVL.js";
5
5
  import "./chunk-L36TC6LB.js";
6
6
  export {
7
7
  HISTORY_WINDOW_RUNS,
package/dist/mcp.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  autoSyncSkills
3
- } from "./chunk-JO5HHEJV.js";
3
+ } from "./chunk-2EE6RPWV.js";
4
4
  import {
5
5
  createApiClient,
6
6
  createCanonryMcpServer
7
- } from "./chunk-ZGZSROSR.js";
7
+ } from "./chunk-XC24KCTL.js";
8
8
  import "./chunk-AOJU5LKX.js";
9
9
  import {
10
10
  isReadOnlyKey,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canonry/canonry",
3
- "version": "5.16.0",
3
+ "version": "5.17.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": [
@@ -88,30 +88,30 @@
88
88
  "tsx": "^4.19.0",
89
89
  "@ainyc/canonry-api-client": "0.0.0",
90
90
  "@ainyc/canonry-web": "0.0.0",
91
- "@ainyc/canonry-config": "0.0.0",
92
91
  "@ainyc/canonry-api-routes": "0.0.0",
93
92
  "@ainyc/canonry-contracts": "0.0.0",
94
93
  "@ainyc/canonry-db": "0.0.0",
94
+ "@ainyc/canonry-config": "0.0.0",
95
95
  "@ainyc/canonry-integration-bing": "0.0.0",
96
96
  "@ainyc/canonry-integration-cloud-run": "0.0.0",
97
- "@ainyc/canonry-integration-commoncrawl": "0.0.0",
98
- "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
99
97
  "@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
98
+ "@ainyc/canonry-integration-commoncrawl": "0.0.0",
100
99
  "@ainyc/canonry-integration-google": "0.0.0",
101
- "@ainyc/canonry-integration-google-business-profile": "0.0.0",
102
100
  "@ainyc/canonry-integration-google-ads": "0.0.0",
101
+ "@ainyc/canonry-integration-google-business-profile": "0.0.0",
102
+ "@ainyc/canonry-integration-google-places": "0.0.0",
103
103
  "@ainyc/canonry-integration-google-tag-manager": "0.0.0",
104
- "@ainyc/canonry-integration-openai-ads": "0.0.0",
105
104
  "@ainyc/canonry-integration-traffic": "0.0.0",
106
- "@ainyc/canonry-integration-wordpress": "0.0.0",
105
+ "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
106
+ "@ainyc/canonry-integration-openai-ads": "0.0.0",
107
107
  "@ainyc/canonry-intelligence": "0.0.0",
108
- "@ainyc/canonry-integration-google-places": "0.0.0",
108
+ "@ainyc/canonry-integration-wordpress": "0.0.0",
109
109
  "@ainyc/canonry-provider-cdp": "0.0.0",
110
- "@ainyc/canonry-provider-gemini": "0.0.0",
111
- "@ainyc/canonry-provider-local": "0.0.0",
112
110
  "@ainyc/canonry-provider-claude": "0.0.0",
111
+ "@ainyc/canonry-provider-local": "0.0.0",
112
+ "@ainyc/canonry-provider-perplexity": "0.0.0",
113
113
  "@ainyc/canonry-provider-openai": "0.0.0",
114
- "@ainyc/canonry-provider-perplexity": "0.0.0"
114
+ "@ainyc/canonry-provider-gemini": "0.0.0"
115
115
  },
116
116
  "scripts": {
117
117
  "build": "pnpm run build:cli && pnpm run build:web",