@canonry/canonry 4.179.0 → 4.179.1

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.
@@ -20870,6 +20870,7 @@ async function applyRoutes(app, opts) {
20870
20870
  }
20871
20871
  const now = (/* @__PURE__ */ new Date()).toISOString();
20872
20872
  const name = config.metadata.name;
20873
+ const managesQueries = "queries" in rawSpec || "keywords" in rawSpec;
20873
20874
  const configQueries = resolveConfigSpecQueries(config.spec);
20874
20875
  const target = app.db.select({ id: projects.id, providerModels: projects.providerModels }).from(projects).where(eq22(projects.name, name)).get();
20875
20876
  const scopedProjectId = request.apiKey?.projectId;
@@ -20948,14 +20949,16 @@ async function applyRoutes(app, opts) {
20948
20949
  entityId: projectId
20949
20950
  });
20950
20951
  }
20951
- replaceProjectQueries(tx, projectId, configQueries, now);
20952
- writeAuditLog(tx, {
20953
- projectId,
20954
- actor: "api",
20955
- action: "queries.replaced",
20956
- entityType: "query",
20957
- diff: { queries: configQueries }
20958
- });
20952
+ if (managesQueries) {
20953
+ replaceProjectQueries(tx, projectId, configQueries, now);
20954
+ writeAuditLog(tx, {
20955
+ projectId,
20956
+ actor: "api",
20957
+ action: "queries.replaced",
20958
+ entityType: "query",
20959
+ diff: { queries: configQueries }
20960
+ });
20961
+ }
20959
20962
  tx.delete(competitors).where(eq22(competitors.projectId, projectId)).run();
20960
20963
  const normalizedCompetitors = normalizeCompetitorList2(config.spec.competitors);
20961
20964
  for (const domain of normalizedCompetitors) {
@@ -10388,7 +10388,7 @@ var canonryMcpTools = [
10388
10388
  defineTool({
10389
10389
  name: "canonry_apply_config",
10390
10390
  title: "Apply project config",
10391
- description: "Apply one Canonry config-as-code project document. Replaces the project to match the config \u2014 fields omitted from the spec are reset to defaults. For multi-document YAML, call this tool once per project document.",
10391
+ description: "Apply one Canonry config-as-code project document. Replaces the project to match the config \u2014 fields omitted from the spec are reset to defaults, with one exception: a spec with neither queries nor keywords leaves the tracked-query basket unchanged. To clear the basket, pass an explicit empty queries list. For multi-document YAML, call this tool once per project document.",
10392
10392
  access: "write",
10393
10393
  tier: "core",
10394
10394
  inputSchema: applyConfigInputSchema,
@@ -5,7 +5,7 @@ import {
5
5
  installSkills,
6
6
  loadConfigRaw,
7
7
  saveConfigPatch
8
- } from "./chunk-T7QWSNIE.js";
8
+ } from "./chunk-FFXYNYPZ.js";
9
9
  import {
10
10
  SKILL_MANIFEST_FILENAME,
11
11
  SkillsClients
@@ -11,7 +11,7 @@ import {
11
11
  loadConfig,
12
12
  loadConfigRaw,
13
13
  saveConfigPatch
14
- } from "./chunk-T7QWSNIE.js";
14
+ } from "./chunk-FFXYNYPZ.js";
15
15
  import {
16
16
  CC_CACHE_DIR,
17
17
  DUCKDB_SPEC,
@@ -157,7 +157,7 @@ import {
157
157
  siteCrawlSnapshots,
158
158
  toAlertView,
159
159
  usageCounters
160
- } from "./chunk-RDCTWBPF.js";
160
+ } from "./chunk-5BZWU35I.js";
161
161
  import {
162
162
  AGENT_MEMORY_VALUE_MAX_BYTES,
163
163
  AGENT_PROVIDER_IDS,
@@ -11857,7 +11857,7 @@ function readStoredGroundingSources(rawResponse) {
11857
11857
  return result;
11858
11858
  }
11859
11859
  async function backfillInsightsCommand(project, opts) {
11860
- const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-VBLTZGHS.js");
11860
+ const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-CKGM2RUJ.js");
11861
11861
  const config = loadConfig();
11862
11862
  const db = createClient(config.database);
11863
11863
  migrate(db);
package/dist/cli.js CHANGED
@@ -26,11 +26,11 @@ import {
26
26
  showFirstRunNotice,
27
27
  trackCliCommandFinished,
28
28
  trackEvent
29
- } from "./chunk-JFGP2U52.js";
29
+ } from "./chunk-WG4EDZT3.js";
30
30
  import {
31
31
  autoSyncSkills,
32
32
  formatAutoSyncNotice
33
- } from "./chunk-ZCNQGO3J.js";
33
+ } from "./chunk-LPUTKQDR.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-T7QWSNIE.js";
58
+ } from "./chunk-FFXYNYPZ.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-RDCTWBPF.js";
72
+ } from "./chunk-5BZWU35I.js";
73
73
  import {
74
74
  AdsDeliverySnapshotStatuses,
75
75
  AdsHistoricalCampaignRollupStatuses,
package/dist/index.js CHANGED
@@ -3,11 +3,11 @@ import {
3
3
  createGoogleMarketingCredentialStore,
4
4
  createGoogleMarketingRuntime,
5
5
  createServer
6
- } from "./chunk-JFGP2U52.js";
6
+ } from "./chunk-WG4EDZT3.js";
7
7
  import {
8
8
  loadConfig
9
- } from "./chunk-T7QWSNIE.js";
10
- import "./chunk-RDCTWBPF.js";
9
+ } from "./chunk-FFXYNYPZ.js";
10
+ import "./chunk-5BZWU35I.js";
11
11
  import "./chunk-A2AB7UK5.js";
12
12
  export {
13
13
  GoogleMarketingRuntimeError,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  IntelligenceService
3
- } from "./chunk-RDCTWBPF.js";
3
+ } from "./chunk-5BZWU35I.js";
4
4
  import "./chunk-A2AB7UK5.js";
5
5
  export {
6
6
  IntelligenceService
package/dist/mcp.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  autoSyncSkills
3
- } from "./chunk-ZCNQGO3J.js";
3
+ } from "./chunk-LPUTKQDR.js";
4
4
  import {
5
5
  createApiClient,
6
6
  createCanonryMcpServer
7
- } from "./chunk-T7QWSNIE.js";
7
+ } from "./chunk-FFXYNYPZ.js";
8
8
  import {
9
9
  isReadOnlyKey
10
10
  } from "./chunk-A2AB7UK5.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canonry/canonry",
3
- "version": "4.179.0",
3
+ "version": "4.179.1",
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
  "license": "FSL-1.1-ALv2",
@@ -73,28 +73,28 @@
73
73
  "@ainyc/canonry-api-client": "0.0.0",
74
74
  "@ainyc/canonry-api-routes": "0.0.0",
75
75
  "@ainyc/canonry-config": "0.0.0",
76
- "@ainyc/canonry-integration-bing": "0.0.0",
77
76
  "@ainyc/canonry-contracts": "0.0.0",
78
77
  "@ainyc/canonry-db": "0.0.0",
79
- "@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
78
+ "@ainyc/canonry-integration-bing": "0.0.0",
80
79
  "@ainyc/canonry-integration-cloud-run": "0.0.0",
81
- "@ainyc/canonry-integration-commoncrawl": "0.0.0",
82
80
  "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
81
+ "@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
82
+ "@ainyc/canonry-integration-commoncrawl": "0.0.0",
83
83
  "@ainyc/canonry-integration-google": "0.0.0",
84
84
  "@ainyc/canonry-integration-google-ads": "0.0.0",
85
- "@ainyc/canonry-integration-google-business-profile": "0.0.0",
86
85
  "@ainyc/canonry-integration-google-tag-manager": "0.0.0",
87
86
  "@ainyc/canonry-integration-google-places": "0.0.0",
88
87
  "@ainyc/canonry-integration-openai-ads": "0.0.0",
88
+ "@ainyc/canonry-integration-google-business-profile": "0.0.0",
89
89
  "@ainyc/canonry-integration-wordpress": "0.0.0",
90
90
  "@ainyc/canonry-intelligence": "0.0.0",
91
91
  "@ainyc/canonry-integration-traffic": "0.0.0",
92
92
  "@ainyc/canonry-provider-cdp": "0.0.0",
93
93
  "@ainyc/canonry-provider-claude": "0.0.0",
94
- "@ainyc/canonry-provider-gemini": "0.0.0",
95
94
  "@ainyc/canonry-provider-local": "0.0.0",
96
- "@ainyc/canonry-provider-perplexity": "0.0.0",
97
- "@ainyc/canonry-provider-openai": "0.0.0"
95
+ "@ainyc/canonry-provider-gemini": "0.0.0",
96
+ "@ainyc/canonry-provider-openai": "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",