@canonry/canonry 4.177.0 → 4.177.2

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.
@@ -14363,9 +14363,10 @@ var trafficSourceDtoSchema = z50.object({
14363
14363
  /**
14364
14364
  * Newest instant a sync clamped past instead of ingesting, or null when no
14365
14365
  * skip is outstanding. Non-null means this source has a known gap in its
14366
- * history that only a backfill covering the span will close — it does not
14367
- * clear when the watermark catches up, because catching up is exactly what
14368
- * the skipping sync did.
14366
+ * history that only a repair with proven source coverage can close — it does
14367
+ * not clear when the watermark catches up, because catching up is exactly
14368
+ * what the skipping sync did. WordPress generic replace-mode backfill is
14369
+ * deliberately unavailable because the retained feed cannot prove coverage.
14369
14370
  */
14370
14371
  skippedThroughAt: z50.string().nullable(),
14371
14372
  /** Residual Cloudflare Queue depth reported by the most recent bounded pull. */
@@ -14551,7 +14552,7 @@ var trafficSyncResponseSchema = z50.object({
14551
14552
  windowEnd: z50.string()
14552
14553
  });
14553
14554
  var trafficBackfillRequestSchema = z50.object({
14554
- /** Lookback window in days. Capped server-side at the upstream log retention ceiling (Cloud Logging _Default = 30d). Default: 30. */
14555
+ /** Lookback window in days. Default: 30; capped server-side at the adapter ceiling. WordPress always requires a retention-aware repair, not this generic replace operation. */
14555
14556
  days: z50.number().int().positive().optional()
14556
14557
  });
14557
14558
  var trafficResetRequestSchema = z50.object({
@@ -5,11 +5,11 @@ import {
5
5
  installSkills,
6
6
  loadConfigRaw,
7
7
  saveConfigPatch
8
- } from "./chunk-F4ZZKGAC.js";
8
+ } from "./chunk-6XUWDSLN.js";
9
9
  import {
10
10
  SKILL_MANIFEST_FILENAME,
11
11
  SkillsClients
12
- } from "./chunk-UXXXKDW4.js";
12
+ } from "./chunk-PQT3ECM3.js";
13
13
 
14
14
  // src/skills-autosync.ts
15
15
  import fs from "fs";
@@ -9,7 +9,7 @@ import {
9
9
  loadConfig,
10
10
  loadConfigRaw,
11
11
  saveConfigPatch
12
- } from "./chunk-F4ZZKGAC.js";
12
+ } from "./chunk-6XUWDSLN.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-X776E66Z.js";
148
+ } from "./chunk-GJE334DA.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-UXXXKDW4.js";
285
+ } from "./chunk-PQT3ECM3.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-QLLGPZOC.js");
11842
+ const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-C57RIB37.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-YWFNRDLK.js";
29
+ } from "./chunk-XFAPF2YX.js";
30
30
  import {
31
31
  autoSyncSkills,
32
32
  formatAutoSyncNotice
33
- } from "./chunk-WW7TDVLV.js";
33
+ } from "./chunk-QRE3DAAU.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-F4ZZKGAC.js";
58
+ } from "./chunk-6XUWDSLN.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-X776E66Z.js";
72
+ } from "./chunk-GJE334DA.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-UXXXKDW4.js";
140
+ } from "./chunk-PQT3ECM3.js";
141
141
 
142
142
  // src/cli.ts
143
143
  import { pathToFileURL } from "url";
@@ -6884,7 +6884,7 @@ async function trafficReset(project, opts) {
6884
6884
  throw new CliError({
6885
6885
  code: "TRAFFIC_RESET_REQUIRES_FLAG",
6886
6886
  message: "--advance-to-now is required",
6887
- displayMessage: "Error: --advance-to-now is required. This skips any history between the source's current lastSyncedAt and now; run `canonry traffic backfill` separately if you need to recover it.",
6887
+ displayMessage: "Error: --advance-to-now is required. This skips history between the source's current lastSyncedAt and now. For WordPress, generic replace-mode backfill is unavailable; use a retention-aware repair that declares any unrecoverable span.",
6888
6888
  details: { project, source: opts.source }
6889
6889
  });
6890
6890
  }
@@ -6898,6 +6898,9 @@ async function trafficReset(project, opts) {
6898
6898
  console.log(` Status: ${updated.status}`);
6899
6899
  console.log(` Last synced: ${updated.lastSyncedAt ?? "never"} (advanced to NOW)`);
6900
6900
  console.log(` Last error: ${updated.lastError ?? "none"}`);
6901
+ if (updated.skippedThroughAt) {
6902
+ console.log(" Historical repair: generic WordPress replace-mode backfill is unavailable until a retention-aware repair proves coverage.");
6903
+ }
6901
6904
  console.log("");
6902
6905
  console.log("Next scheduled sync will resume from this timestamp.");
6903
6906
  }
package/dist/index.js CHANGED
@@ -3,12 +3,12 @@ import {
3
3
  createGoogleMarketingCredentialStore,
4
4
  createGoogleMarketingRuntime,
5
5
  createServer
6
- } from "./chunk-YWFNRDLK.js";
6
+ } from "./chunk-XFAPF2YX.js";
7
7
  import {
8
8
  loadConfig
9
- } from "./chunk-F4ZZKGAC.js";
10
- import "./chunk-X776E66Z.js";
11
- import "./chunk-UXXXKDW4.js";
9
+ } from "./chunk-6XUWDSLN.js";
10
+ import "./chunk-GJE334DA.js";
11
+ import "./chunk-PQT3ECM3.js";
12
12
  export {
13
13
  GoogleMarketingRuntimeError,
14
14
  createGoogleMarketingCredentialStore,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  IntelligenceService
3
- } from "./chunk-X776E66Z.js";
4
- import "./chunk-UXXXKDW4.js";
3
+ } from "./chunk-GJE334DA.js";
4
+ import "./chunk-PQT3ECM3.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-WW7TDVLV.js";
3
+ } from "./chunk-QRE3DAAU.js";
4
4
  import {
5
5
  CliError,
6
6
  PACKAGE_VERSION,
7
7
  canonryMcpTools,
8
8
  createApiClient
9
- } from "./chunk-F4ZZKGAC.js";
9
+ } from "./chunk-6XUWDSLN.js";
10
10
  import {
11
11
  isReadOnlyKey
12
- } from "./chunk-UXXXKDW4.js";
12
+ } from "./chunk-PQT3ECM3.js";
13
13
 
14
14
  // src/mcp/cli.ts
15
15
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canonry/canonry",
3
- "version": "4.177.0",
3
+ "version": "4.177.2",
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",
@@ -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-routes": "0.0.0",
74
- "@ainyc/canonry-config": "0.0.0",
75
73
  "@ainyc/canonry-api-client": "0.0.0",
76
74
  "@ainyc/canonry-contracts": "0.0.0",
75
+ "@ainyc/canonry-api-routes": "0.0.0",
76
+ "@ainyc/canonry-config": "0.0.0",
77
77
  "@ainyc/canonry-db": "0.0.0",
78
78
  "@ainyc/canonry-integration-bing": "0.0.0",
79
+ "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
79
80
  "@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
80
81
  "@ainyc/canonry-integration-cloud-run": "0.0.0",
81
- "@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
82
+ "@ainyc/canonry-integration-google": "0.0.0",
82
83
  "@ainyc/canonry-integration-commoncrawl": "0.0.0",
83
84
  "@ainyc/canonry-integration-google-ads": "0.0.0",
84
85
  "@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",
87
86
  "@ainyc/canonry-integration-google-places": "0.0.0",
88
- "@ainyc/canonry-integration-traffic": "0.0.0",
89
- "@ainyc/canonry-integration-wordpress": "0.0.0",
90
- "@ainyc/canonry-provider-cdp": "0.0.0",
91
87
  "@ainyc/canonry-integration-google-tag-manager": "0.0.0",
88
+ "@ainyc/canonry-integration-openai-ads": "0.0.0",
89
+ "@ainyc/canonry-integration-wordpress": "0.0.0",
90
+ "@ainyc/canonry-intelligence": "0.0.0",
92
91
  "@ainyc/canonry-provider-claude": "0.0.0",
92
+ "@ainyc/canonry-provider-cdp": "0.0.0",
93
93
  "@ainyc/canonry-provider-local": "0.0.0",
94
- "@ainyc/canonry-intelligence": "0.0.0",
95
- "@ainyc/canonry-provider-gemini": "0.0.0",
96
94
  "@ainyc/canonry-provider-openai": "0.0.0",
97
- "@ainyc/canonry-provider-perplexity": "0.0.0"
95
+ "@ainyc/canonry-provider-gemini": "0.0.0",
96
+ "@ainyc/canonry-provider-perplexity": "0.0.0",
97
+ "@ainyc/canonry-integration-traffic": "0.0.0"
98
98
  },
99
99
  "scripts": {
100
100
  "build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",