@canonry/canonry 4.178.1 → 4.178.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/assets/agent-workspace/skills/canonry/references/canonry-cli.md +1 -1
- package/dist/{chunk-JKKHGDDC.js → chunk-5KI5WVWS.js} +7 -2
- package/dist/{chunk-VIVLYBFX.js → chunk-EAUE2RRY.js} +1 -1
- package/dist/{chunk-WINVGL5B.js → chunk-LMI72WZP.js} +3 -3
- package/dist/{chunk-UTW6QOGP.js → chunk-P6JVZJO5.js} +2 -2
- package/dist/cli.js +5 -5
- package/dist/index.js +3 -3
- package/dist/{intelligence-service-YSRPTRKP.js → intelligence-service-KYIQZBEO.js} +1 -1
- package/dist/mcp.js +2 -2
- package/package.json +11 -11
|
@@ -332,7 +332,7 @@ cnry measurement-plan discover <project> --sitemap-url https://example.com/sitem
|
|
|
332
332
|
cnry measurement-plan show <project> # active immutable revision
|
|
333
333
|
cnry measurement-plan show <project> --revision 2 # one historical revision
|
|
334
334
|
cnry measurement-plan versions <project>
|
|
335
|
-
cnry measurement-plan publish <project> plan.yaml
|
|
335
|
+
cnry measurement-plan publish <project> plan.yaml # legacy schema v1 only; refuses over an active v2 plan (use: measurement-plan advanced <project> draft-action)
|
|
336
336
|
cnry measurement-plan report <project> --revision 2 # stored evidence only; never starts provider work
|
|
337
337
|
cnry measurement-plan retire <project> <stable-key>
|
|
338
338
|
```
|
|
@@ -14527,6 +14527,11 @@ async function measurementPlanRoutes(app, opts) {
|
|
|
14527
14527
|
if (activePlan && !activeVersion) {
|
|
14528
14528
|
throw new Error(`Measurement plan ${project.id} points to missing version ${activePlan.activeVersionId}`);
|
|
14529
14529
|
}
|
|
14530
|
+
if (activeVersion && activeVersion.schemaVersion !== 1) {
|
|
14531
|
+
throw validationError(
|
|
14532
|
+
`The active measurement plan is schema v${activeVersion.schemaVersion}; this legacy endpoint publishes only schema v1 and would downgrade it. Publish through the draft flow instead: POST /projects/:name/measurement-plan/draft/actions/publish (CLI: canonry measurement-plan advanced <project> draft-action; MCP: canonry_measurement_draft_action).`
|
|
14533
|
+
);
|
|
14534
|
+
}
|
|
14530
14535
|
if (activeVersion && activeVersion.checksum === checksum) return { kind: "existing", version: activeVersion };
|
|
14531
14536
|
const actualActiveRevision = activeVersion?.revision ?? null;
|
|
14532
14537
|
if (actualActiveRevision !== expectedActiveRevision) {
|
|
@@ -30849,8 +30854,8 @@ var routeCatalog = [
|
|
|
30849
30854
|
{
|
|
30850
30855
|
method: "put",
|
|
30851
30856
|
path: "/api/v1/projects/{name}/measurement-plan",
|
|
30852
|
-
summary: "Publish a measurement-plan revision",
|
|
30853
|
-
description: "Compares the caller-observed active revision, then validates and canonicalizes the plan against current project domains, locations, and tracked queries. Identical active content is idempotent; restoring older content creates a new immutable revision.",
|
|
30857
|
+
summary: "Publish a measurement-plan revision (legacy schema v1)",
|
|
30858
|
+
description: "Legacy schema-v1 publish. Compares the caller-observed active revision, then validates and canonicalizes the plan against current project domains, locations, and tracked queries. Identical active content is idempotent; restoring older content creates a new immutable revision. Refuses when the active revision is schema v2 rather than downgrade it; publish v2 plans through the draft flow (POST .../measurement-plan/draft/actions/publish).",
|
|
30854
30859
|
tags: ["measurement-plans"],
|
|
30855
30860
|
parameters: [nameParameter],
|
|
30856
30861
|
requestBody: {
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
loadConfig,
|
|
12
12
|
loadConfigRaw,
|
|
13
13
|
saveConfigPatch
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-P6JVZJO5.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-
|
|
160
|
+
} from "./chunk-5KI5WVWS.js";
|
|
161
161
|
import {
|
|
162
162
|
AGENT_MEMORY_VALUE_MAX_BYTES,
|
|
163
163
|
AGENT_PROVIDER_IDS,
|
|
@@ -11896,7 +11896,7 @@ function readStoredGroundingSources(rawResponse) {
|
|
|
11896
11896
|
return result;
|
|
11897
11897
|
}
|
|
11898
11898
|
async function backfillInsightsCommand(project, opts) {
|
|
11899
|
-
const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-
|
|
11899
|
+
const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-KYIQZBEO.js");
|
|
11900
11900
|
const config = loadConfig();
|
|
11901
11901
|
const db = createClient(config.database);
|
|
11902
11902
|
migrate(db);
|
|
@@ -10528,8 +10528,8 @@ var canonryMcpTools = [
|
|
|
10528
10528
|
}),
|
|
10529
10529
|
defineTool({
|
|
10530
10530
|
name: "canonry_measurement_plan_publish",
|
|
10531
|
-
title: "Publish measurement plan",
|
|
10532
|
-
description: "Publish only when the active revision still matches the revision you reviewed. Use null only when you reviewed a planless project.",
|
|
10531
|
+
title: "Publish measurement plan (legacy v1)",
|
|
10532
|
+
description: "Legacy schema-v1 publish. For Advanced Measurement use canonry_measurement_draft_action instead: this tool compiles only schema v1 and refuses when the active revision is schema v2 rather than downgrade it. Publish only when the active revision still matches the revision you reviewed. Use null only when you reviewed a planless project.",
|
|
10533
10533
|
access: "write",
|
|
10534
10534
|
tier: "setup",
|
|
10535
10535
|
inputSchema: measurementPlanPublishInputSchema,
|
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-LMI72WZP.js";
|
|
30
30
|
import {
|
|
31
31
|
autoSyncSkills,
|
|
32
32
|
formatAutoSyncNotice
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-EAUE2RRY.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-P6JVZJO5.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-5KI5WVWS.js";
|
|
73
73
|
import {
|
|
74
74
|
AdsDeliverySnapshotStatuses,
|
|
75
75
|
AdsHistoricalCampaignRollupStatuses,
|
|
@@ -18537,7 +18537,7 @@ var MEASUREMENT_PLAN_CLI_COMMANDS = [
|
|
|
18537
18537
|
await showMeasurementPlan(requireProject(input, "measurement-plan.show", "canonry measurement-plan show <project> [--revision N]"), revision);
|
|
18538
18538
|
} },
|
|
18539
18539
|
{ path: ["measurement-plan", "versions"], usage: "canonry measurement-plan versions <project> [--format json]", run: (input) => listMeasurementPlanVersions(requireProject(input, "measurement-plan.versions", "canonry measurement-plan versions <project>")) },
|
|
18540
|
-
{ path: ["measurement-plan", "publish"], usage: "canonry measurement-plan publish <project> <yaml|json|-> [--format json]", run: (input) => {
|
|
18540
|
+
{ path: ["measurement-plan", "publish"], usage: "canonry measurement-plan publish <project> <yaml|json|-> [--format json] (legacy schema v1 only; refuses over an active v2 plan; for Advanced Measurement use: canonry measurement-plan advanced <project> draft-action)", run: (input) => {
|
|
18541
18541
|
const project = requireProject(input, "measurement-plan.publish", "canonry measurement-plan publish <project> <yaml|json|->");
|
|
18542
18542
|
const source = input.positionals[1];
|
|
18543
18543
|
if (!source) throw usageError("plan file path or - is required");
|
package/dist/index.js
CHANGED
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
createGoogleMarketingCredentialStore,
|
|
4
4
|
createGoogleMarketingRuntime,
|
|
5
5
|
createServer
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LMI72WZP.js";
|
|
7
7
|
import {
|
|
8
8
|
loadConfig
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-P6JVZJO5.js";
|
|
10
|
+
import "./chunk-5KI5WVWS.js";
|
|
11
11
|
import "./chunk-OYDIND7Q.js";
|
|
12
12
|
export {
|
|
13
13
|
GoogleMarketingRuntimeError,
|
package/dist/mcp.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
autoSyncSkills
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EAUE2RRY.js";
|
|
4
4
|
import {
|
|
5
5
|
createApiClient,
|
|
6
6
|
createCanonryMcpServer
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-P6JVZJO5.js";
|
|
8
8
|
import {
|
|
9
9
|
isReadOnlyKey
|
|
10
10
|
} from "./chunk-OYDIND7Q.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@canonry/canonry",
|
|
3
|
-
"version": "4.178.
|
|
3
|
+
"version": "4.178.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",
|
|
@@ -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-contracts": "0.0.0",
|
|
77
76
|
"@ainyc/canonry-db": "0.0.0",
|
|
78
|
-
"@ainyc/canonry-
|
|
79
|
-
"@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
|
|
77
|
+
"@ainyc/canonry-contracts": "0.0.0",
|
|
80
78
|
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
79
|
+
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
81
80
|
"@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
|
|
82
|
-
"@ainyc/canonry-integration-
|
|
81
|
+
"@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
|
|
83
82
|
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
84
|
-
"@ainyc/canonry-integration-google
|
|
83
|
+
"@ainyc/canonry-integration-google": "0.0.0",
|
|
85
84
|
"@ainyc/canonry-integration-google-ads": "0.0.0",
|
|
86
85
|
"@ainyc/canonry-integration-google-places": "0.0.0",
|
|
86
|
+
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
87
87
|
"@ainyc/canonry-integration-openai-ads": "0.0.0",
|
|
88
88
|
"@ainyc/canonry-integration-google-tag-manager": "0.0.0",
|
|
89
89
|
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
90
|
-
"@ainyc/canonry-
|
|
90
|
+
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
91
91
|
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
92
|
-
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
93
92
|
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
94
|
-
"@ainyc/canonry-
|
|
93
|
+
"@ainyc/canonry-intelligence": "0.0.0",
|
|
94
|
+
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
95
95
|
"@ainyc/canonry-provider-local": "0.0.0",
|
|
96
|
-
"@ainyc/canonry-provider-
|
|
97
|
-
"@ainyc/canonry-provider-
|
|
96
|
+
"@ainyc/canonry-provider-perplexity": "0.0.0",
|
|
97
|
+
"@ainyc/canonry-provider-openai": "0.0.0"
|
|
98
98
|
},
|
|
99
99
|
"scripts": {
|
|
100
100
|
"build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",
|