@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.
- package/README.md +1 -1
- package/assets/agent-workspace/skills/canonry/SKILL.md +7 -0
- package/assets/agent-workspace/skills/canonry/references/server-side-traffic.md +132 -66
- package/dist/{chunk-F4ZZKGAC.js → chunk-6XUWDSLN.js} +10 -10
- package/dist/{chunk-X776E66Z.js → chunk-GJE334DA.js} +823 -613
- package/dist/{chunk-UXXXKDW4.js → chunk-PQT3ECM3.js} +5 -4
- package/dist/{chunk-WW7TDVLV.js → chunk-QRE3DAAU.js} +2 -2
- package/dist/{chunk-YWFNRDLK.js → chunk-XFAPF2YX.js} +4 -4
- package/dist/cli.js +9 -6
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-QLLGPZOC.js → intelligence-service-C57RIB37.js} +2 -2
- package/dist/mcp.js +3 -3
- package/package.json +12 -12
|
@@ -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
|
|
14367
|
-
* clear when the watermark catches up, because catching up is exactly
|
|
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.
|
|
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-
|
|
8
|
+
} from "./chunk-6XUWDSLN.js";
|
|
9
9
|
import {
|
|
10
10
|
SKILL_MANIFEST_FILENAME,
|
|
11
11
|
SkillsClients
|
|
12
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
29
|
+
} from "./chunk-XFAPF2YX.js";
|
|
30
30
|
import {
|
|
31
31
|
autoSyncSkills,
|
|
32
32
|
formatAutoSyncNotice
|
|
33
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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-
|
|
6
|
+
} from "./chunk-XFAPF2YX.js";
|
|
7
7
|
import {
|
|
8
8
|
loadConfig
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-6XUWDSLN.js";
|
|
10
|
+
import "./chunk-GJE334DA.js";
|
|
11
|
+
import "./chunk-PQT3ECM3.js";
|
|
12
12
|
export {
|
|
13
13
|
GoogleMarketingRuntimeError,
|
|
14
14
|
createGoogleMarketingCredentialStore,
|
package/dist/mcp.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
autoSyncSkills
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QRE3DAAU.js";
|
|
4
4
|
import {
|
|
5
5
|
CliError,
|
|
6
6
|
PACKAGE_VERSION,
|
|
7
7
|
canonryMcpTools,
|
|
8
8
|
createApiClient
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-6XUWDSLN.js";
|
|
10
10
|
import {
|
|
11
11
|
isReadOnlyKey
|
|
12
|
-
} from "./chunk-
|
|
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.
|
|
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-
|
|
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-
|
|
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",
|