@canonry/canonry 5.11.0 → 5.12.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-Cq8CoZV5.js → AuditHistoryPanel-DL_NSpfm.js} +1 -1
  2. package/assets/assets/{BacklinksPage-B5_QeuXd.js → BacklinksPage-BtcBybtX.js} +1 -1
  3. package/assets/assets/{HistoryPage-Foj5--rM.js → HistoryPage-jXj-qi9c.js} +1 -1
  4. package/assets/assets/{MeasurementPropertyPage-2t8jVNFL.js → MeasurementPropertyPage-DKw401ok.js} +1 -1
  5. package/assets/assets/{ProjectPage-By0UYm8r.js → ProjectPage-og4qfFFD.js} +1 -1
  6. package/assets/assets/{RunRow-CbTtzDK5.js → RunRow-nK5iaZe1.js} +1 -1
  7. package/assets/assets/{RunsPage-Cjv7YiXR.js → RunsPage-CMgr3YSF.js} +1 -1
  8. package/assets/assets/{SettingsPage-DIQgJQ8Y.js → SettingsPage-QtElCcew.js} +1 -1
  9. package/assets/assets/{SiteHealthSection-CUNhD0To.js → SiteHealthSection-DNdVVl30.js} +3 -3
  10. package/assets/assets/{TrafficPage-abuZqCEU.js → TrafficPage-C0WgvfRj.js} +1 -1
  11. package/assets/assets/{TrafficSourceDetailPage-B-zVt0Sa.js → TrafficSourceDetailPage-jOTedQtt.js} +1 -1
  12. package/assets/assets/{extract-error-message-C5-X8IcG.js → extract-error-message-DO_053o0.js} +1 -1
  13. package/assets/assets/{index-Dzg_siX8.js → index-CnVwWE3V.js} +27 -27
  14. package/assets/assets/{react-sigma_core.esm.min-Ybxr8Ybd.js → react-sigma_core.esm.min-DJttq2UK.js} +1 -1
  15. package/assets/assets/{v2-overview-adapter-BMOnF8IE.js → v2-overview-adapter-BC_oa__K.js} +1 -1
  16. package/assets/index.html +1 -1
  17. package/dist/{chunk-SMYBGUVV.js → chunk-DOC4QQLS.js} +26 -4
  18. package/dist/{chunk-UYSTNPTX.js → chunk-KBSAEALE.js} +95 -27
  19. package/dist/{chunk-JNU6GLAV.js → chunk-LWGYRN3T.js} +2 -2
  20. package/dist/{chunk-MQMJJZ6W.js → chunk-NYRRWWEE.js} +6 -2
  21. package/dist/{chunk-NV3X6O5P.js → chunk-S4BIBUCK.js} +2 -2
  22. package/dist/{chunk-JW5DCORY.js → chunk-WJGUBZSW.js} +23 -1
  23. package/dist/cli.js +7 -7
  24. package/dist/{demo-server-76IZBMJ3.js → demo-server-OTXS6ZHS.js} +3 -3
  25. package/dist/index.d.ts +28 -1
  26. package/dist/index.js +5 -5
  27. package/dist/{intelligence-service-KF5WWPGR.js → intelligence-service-K4U55A2J.js} +2 -2
  28. package/dist/mcp.js +3 -3
  29. package/package.json +11 -11
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  layoutSiteCrawlGraphInput,
6
6
  persistSiteCrawlGraphLayout
7
- } from "./chunk-JNU6GLAV.js";
7
+ } from "./chunk-LWGYRN3T.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-SMYBGUVV.js";
86
+ } from "./chunk-DOC4QQLS.js";
87
87
  import {
88
88
  RunKinds,
89
89
  SiteCrawlFetchStates,
@@ -104,7 +104,7 @@ import {
104
104
  measurementPlanV2Schema,
105
105
  placementLinkDecision,
106
106
  siteAuditPageFactorSchema
107
- } from "./chunk-MQMJJZ6W.js";
107
+ } from "./chunk-NYRRWWEE.js";
108
108
 
109
109
  // src/demo-server.ts
110
110
  import { dirname, join as join2 } from "path";
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { FastifyInstance } from 'fastify';
2
2
  import { DatabaseClient } from '@ainyc/canonry-db';
3
- import { ProviderQuotaPolicy, SchedulableRunKind, EmbedConfigEntry, AgentPluginState, GoogleAdsCampaignMetricsQuery, GoogleAdsRawSnapshotDto, GoogleAdsEffectiveGoalGraphDto, GoogleMarketingProvider, GoogleAdsAccessibleCustomersResponse, GoogleAdsAccessibleCustomerDto, GtmAccountsResponse, GtmContainerListResponse, GtmWorkspaceListResponse, GtmRawSnapshotDto } from '@ainyc/canonry-contracts';
3
+ import { ProviderQuotaPolicy, SchedulableRunKind, AgentProviderId, EmbedConfigEntry, AgentPluginState, GoogleAdsCampaignMetricsQuery, GoogleAdsRawSnapshotDto, GoogleAdsEffectiveGoalGraphDto, GoogleMarketingProvider, GoogleAdsAccessibleCustomersResponse, GoogleAdsAccessibleCustomerDto, GtmAccountsResponse, GtmContainerListResponse, GtmWorkspaceListResponse, GtmRawSnapshotDto } from '@ainyc/canonry-contracts';
4
4
  import { GoogleTokenResponse } from '@ainyc/canonry-integration-google';
5
5
 
6
6
  type GoogleConnectionType = 'gsc' | 'ga4' | 'gbp';
@@ -289,6 +289,33 @@ interface AgentConfigEntry {
289
289
  * Both resolvers live in agent-config.ts.
290
290
  */
291
291
  mode?: 'disabled' | 'prompt-only';
292
+ /**
293
+ * Pin the LLM provider Aero reasons with.
294
+ *
295
+ * Absent (the default) keeps the historical behaviour: the first provider
296
+ * holding a usable key wins, by `autoDetectPriority`. That default is an
297
+ * accident of which ANSWER-ENGINE keys the install happens to hold -- an
298
+ * install that sweeps with Claude silently gets Claude for Aero too, at that
299
+ * provider's agent-tier pricing -- so any deployment that cares which model
300
+ * answers has to say so here rather than rely on detection order.
301
+ *
302
+ * Ranked by `resolveSessionProviderAndModel`: an explicit per-request
303
+ * provider beats this pin, and this pin beats both the persisted session row
304
+ * and auto-detection. Because it outranks the row, a pin survives the
305
+ * conversation-delete path that drops that row entirely. An explicit request
306
+ * lasts one turn: the next turn that names no provider returns to the pin.
307
+ *
308
+ * Removing the pin does not move an existing session back to detection:
309
+ * without a pin a session keeps its stored provider, as it always has, until
310
+ * its conversation is deleted. Starting a new conversation keeps it too.
311
+ */
312
+ provider?: AgentProviderId;
313
+ /**
314
+ * Model id for `provider`. Ignored unless `provider` is set: a model slug is
315
+ * only meaningful against the provider that serves it. Absent uses that
316
+ * provider's agent-tier default.
317
+ */
318
+ model?: string;
292
319
  }
293
320
  interface DashboardConfigEntry {
294
321
  /**
package/dist/index.js CHANGED
@@ -3,14 +3,14 @@ import {
3
3
  createGoogleMarketingCredentialStore,
4
4
  createGoogleMarketingRuntime,
5
5
  createServer
6
- } from "./chunk-UYSTNPTX.js";
6
+ } from "./chunk-KBSAEALE.js";
7
7
  import {
8
8
  loadConfig
9
- } from "./chunk-JW5DCORY.js";
10
- import "./chunk-JNU6GLAV.js";
9
+ } from "./chunk-WJGUBZSW.js";
10
+ import "./chunk-LWGYRN3T.js";
11
11
  import "./chunk-AOJU5LKX.js";
12
- import "./chunk-SMYBGUVV.js";
13
- import "./chunk-MQMJJZ6W.js";
12
+ import "./chunk-DOC4QQLS.js";
13
+ import "./chunk-NYRRWWEE.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-SMYBGUVV.js";
5
- import "./chunk-MQMJJZ6W.js";
4
+ } from "./chunk-DOC4QQLS.js";
5
+ import "./chunk-NYRRWWEE.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-NV3X6O5P.js";
3
+ } from "./chunk-S4BIBUCK.js";
4
4
  import {
5
5
  createApiClient,
6
6
  createCanonryMcpServer
7
- } from "./chunk-JW5DCORY.js";
7
+ } from "./chunk-WJGUBZSW.js";
8
8
  import "./chunk-AOJU5LKX.js";
9
9
  import {
10
10
  isReadOnlyKey,
11
11
  updateCheckEnvOptOut
12
- } from "./chunk-MQMJJZ6W.js";
12
+ } from "./chunk-NYRRWWEE.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": "5.11.0",
3
+ "version": "5.12.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": [
@@ -87,31 +87,31 @@
87
87
  "tsup": "^8.5.1",
88
88
  "tsx": "^4.19.0",
89
89
  "@ainyc/canonry-web": "0.0.0",
90
- "@ainyc/canonry-api-routes": "0.0.0",
91
90
  "@ainyc/canonry-api-client": "0.0.0",
92
91
  "@ainyc/canonry-config": "0.0.0",
93
92
  "@ainyc/canonry-contracts": "0.0.0",
93
+ "@ainyc/canonry-api-routes": "0.0.0",
94
94
  "@ainyc/canonry-db": "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-cloudflare-queue": "0.0.0",
98
- "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
99
97
  "@ainyc/canonry-integration-commoncrawl": "0.0.0",
100
- "@ainyc/canonry-integration-google-ads": "0.0.0",
98
+ "@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
101
99
  "@ainyc/canonry-integration-google": "0.0.0",
100
+ "@ainyc/canonry-integration-google-ads": "0.0.0",
102
101
  "@ainyc/canonry-integration-google-business-profile": "0.0.0",
103
- "@ainyc/canonry-integration-google-places": "0.0.0",
104
102
  "@ainyc/canonry-integration-google-tag-manager": "0.0.0",
103
+ "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
104
+ "@ainyc/canonry-integration-google-places": "0.0.0",
105
105
  "@ainyc/canonry-integration-openai-ads": "0.0.0",
106
- "@ainyc/canonry-integration-wordpress": "0.0.0",
107
106
  "@ainyc/canonry-integration-traffic": "0.0.0",
108
- "@ainyc/canonry-provider-claude": "0.0.0",
109
107
  "@ainyc/canonry-intelligence": "0.0.0",
110
108
  "@ainyc/canonry-provider-cdp": "0.0.0",
111
- "@ainyc/canonry-provider-openai": "0.0.0",
109
+ "@ainyc/canonry-integration-wordpress": "0.0.0",
110
+ "@ainyc/canonry-provider-claude": "0.0.0",
112
111
  "@ainyc/canonry-provider-local": "0.0.0",
113
- "@ainyc/canonry-provider-perplexity": "0.0.0",
114
- "@ainyc/canonry-provider-gemini": "0.0.0"
112
+ "@ainyc/canonry-provider-gemini": "0.0.0",
113
+ "@ainyc/canonry-provider-openai": "0.0.0",
114
+ "@ainyc/canonry-provider-perplexity": "0.0.0"
115
115
  },
116
116
  "scripts": {
117
117
  "build": "pnpm run build:cli && pnpm run build:web",