@canonry/canonry 4.131.0 → 4.133.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.
- package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +7 -0
- package/assets/assets/{AuditHistoryPanel-yJXZMO5t.js → AuditHistoryPanel-CVDg3GXg.js} +1 -1
- package/assets/assets/{BacklinksPage-6VTLbAYx.js → BacklinksPage-Dh4RIvS7.js} +1 -1
- package/assets/assets/{ChartPrimitives-D5YGiDLi.js → ChartPrimitives-BK89G5H_.js} +1 -1
- package/assets/assets/{HistoryPage-BxdTM6-R.js → HistoryPage-D8rMu_Js.js} +1 -1
- package/assets/assets/{ProjectPage-BJKxZPRO.js → ProjectPage-CiTDveNK.js} +1 -1
- package/assets/assets/{RunRow-DTrAO7tE.js → RunRow-DVOwbmTp.js} +1 -1
- package/assets/assets/{RunsPage-CHU0DQGl.js → RunsPage-tz3Oil7N.js} +1 -1
- package/assets/assets/{SettingsPage-bOIwju6t.js → SettingsPage-C698YidM.js} +1 -1
- package/assets/assets/{TrafficPage-BKvuR482.js → TrafficPage-XDXWMtey.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-3-iUTgQg.js → TrafficSourceDetailPage-Clz8kOR8.js} +1 -1
- package/assets/assets/{arrow-left-BXSfGhr6.js → arrow-left-GWLbh0pE.js} +1 -1
- package/assets/assets/{extract-error-message-DEAY62LS.js → extract-error-message-Dk8w-sb1.js} +1 -1
- package/assets/assets/index-jTshRRh0.js +210 -0
- package/assets/assets/{trash-2-O1wo9IX1.js → trash-2-DwnzsuH1.js} +1 -1
- package/assets/index.html +1 -1
- package/dist/{chunk-5GQ6FF5R.js → chunk-42P7POVS.js} +4 -4
- package/dist/{chunk-73HPY6XQ.js → chunk-P4MIG7V5.js} +81 -1
- package/dist/{chunk-ZXVWL5HX.js → chunk-VPY3PZXV.js} +1827 -873
- package/dist/{chunk-3WBAJKRR.js → chunk-ZPQX5ZQ2.js} +740 -555
- package/dist/cli.js +139 -11
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-YJKQQYJQ.js → intelligence-service-2K7GVEQM.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +8 -8
- package/assets/assets/index-CfjIYitV.js +0 -210
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as a}from"./index-
|
|
1
|
+
import{c as a}from"./index-jTshRRh0.js";const c=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],d=a("circle-check",c);const e=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],k=a("circle-question-mark",e);const t=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],s=a("download",t);const o=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],r=a("external-link",o);const n=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],y=a("trash-2",n);export{d as C,s as D,r as E,y as T,k as a};
|
package/assets/index.html
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<link rel="icon" type="image/png" sizes="32x32" href="./favicon-32.png" />
|
|
13
13
|
<link rel="apple-touch-icon" href="./apple-touch-icon.png" />
|
|
14
14
|
<title>Canonry</title>
|
|
15
|
-
<script type="module" crossorigin src="./assets/index-
|
|
15
|
+
<script type="module" crossorigin src="./assets/index-jTshRRh0.js"></script>
|
|
16
16
|
<link rel="modulepreload" crossorigin href="./assets/vendor-tanstack-Be8JdV5M.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="./assets/vendor-radix-CQ77EO2y.js">
|
|
18
18
|
<link rel="modulepreload" crossorigin href="./assets/vendor-recharts-DSxTZhaH.js">
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
loadConfig,
|
|
11
11
|
loadConfigRaw,
|
|
12
12
|
saveConfigPatch
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-P4MIG7V5.js";
|
|
14
14
|
import {
|
|
15
15
|
CC_CACHE_DIR,
|
|
16
16
|
DUCKDB_SPEC,
|
|
@@ -118,7 +118,7 @@ import {
|
|
|
118
118
|
siteAuditPages,
|
|
119
119
|
siteAuditSnapshots,
|
|
120
120
|
usageCounters
|
|
121
|
-
} from "./chunk-
|
|
121
|
+
} from "./chunk-VPY3PZXV.js";
|
|
122
122
|
import {
|
|
123
123
|
AGENT_MEMORY_VALUE_MAX_BYTES,
|
|
124
124
|
AGENT_PROVIDER_IDS,
|
|
@@ -191,7 +191,7 @@ import {
|
|
|
191
191
|
validationError,
|
|
192
192
|
winnabilityClassLabel,
|
|
193
193
|
withRetry
|
|
194
|
-
} from "./chunk-
|
|
194
|
+
} from "./chunk-ZPQX5ZQ2.js";
|
|
195
195
|
|
|
196
196
|
// src/telemetry.ts
|
|
197
197
|
import crypto from "crypto";
|
|
@@ -7000,7 +7000,7 @@ function readStoredGroundingSources(rawResponse) {
|
|
|
7000
7000
|
return result;
|
|
7001
7001
|
}
|
|
7002
7002
|
async function backfillInsightsCommand(project, opts) {
|
|
7003
|
-
const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-
|
|
7003
|
+
const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-2K7GVEQM.js");
|
|
7004
7004
|
const config = loadConfig();
|
|
7005
7005
|
const db = createClient(config.database);
|
|
7006
7006
|
migrate(db);
|
|
@@ -21,10 +21,13 @@ import {
|
|
|
21
21
|
discoveryCompetitorTypeSchema,
|
|
22
22
|
discoveryPromoteRequestSchema,
|
|
23
23
|
discoveryRunRequestSchema,
|
|
24
|
+
gaMeasurementAnalysisWindowSchema,
|
|
25
|
+
gaMeasurementHostScopeSchema,
|
|
24
26
|
keywordBatchRequestSchema,
|
|
25
27
|
keywordGenerateRequestSchema,
|
|
26
28
|
notificationCreateRequestSchema,
|
|
27
29
|
notificationEventSchema,
|
|
30
|
+
organicEvidencePeriodSchema,
|
|
28
31
|
projectConfigSchema,
|
|
29
32
|
projectUpsertRequestSchema,
|
|
30
33
|
queryBatchRequestSchema,
|
|
@@ -39,7 +42,7 @@ import {
|
|
|
39
42
|
trafficConnectWordpressRequestSchema,
|
|
40
43
|
trafficEventKindSchema,
|
|
41
44
|
trafficSeriesGranularitySchema
|
|
42
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-ZPQX5ZQ2.js";
|
|
43
46
|
|
|
44
47
|
// src/config.ts
|
|
45
48
|
import fs from "fs";
|
|
@@ -3204,6 +3207,18 @@ var getApiV1ProjectsByNameGaStatus = (options) => {
|
|
|
3204
3207
|
...options
|
|
3205
3208
|
});
|
|
3206
3209
|
};
|
|
3210
|
+
var getApiV1ProjectsByNameGaMeasurementAnalysis = (options) => {
|
|
3211
|
+
return (options.client ?? client).get({
|
|
3212
|
+
security: [
|
|
3213
|
+
{
|
|
3214
|
+
scheme: "bearer",
|
|
3215
|
+
type: "http"
|
|
3216
|
+
}
|
|
3217
|
+
],
|
|
3218
|
+
url: "/api/v1/projects/{name}/ga/measurement-analysis",
|
|
3219
|
+
...options
|
|
3220
|
+
});
|
|
3221
|
+
};
|
|
3207
3222
|
var postApiV1ProjectsByNameGaSync = (options) => {
|
|
3208
3223
|
return (options.client ?? client).post({
|
|
3209
3224
|
security: [
|
|
@@ -3340,6 +3355,18 @@ var postApiV1ProjectsByNameInsightsByIdDismiss = (options) => {
|
|
|
3340
3355
|
...options
|
|
3341
3356
|
});
|
|
3342
3357
|
};
|
|
3358
|
+
var getApiV1ProjectsByNameOrganicEvidence = (options) => {
|
|
3359
|
+
return (options.client ?? client).get({
|
|
3360
|
+
security: [
|
|
3361
|
+
{
|
|
3362
|
+
scheme: "bearer",
|
|
3363
|
+
type: "http"
|
|
3364
|
+
}
|
|
3365
|
+
],
|
|
3366
|
+
url: "/api/v1/projects/{name}/organic-evidence",
|
|
3367
|
+
...options
|
|
3368
|
+
});
|
|
3369
|
+
};
|
|
3343
3370
|
var getApiV1ProjectsByNameReport = (options) => {
|
|
3344
3371
|
return (options.client ?? client).get({
|
|
3345
3372
|
security: [
|
|
@@ -4327,6 +4354,15 @@ var ApiClient = class {
|
|
|
4327
4354
|
})
|
|
4328
4355
|
);
|
|
4329
4356
|
}
|
|
4357
|
+
async getOrganicEvidence(project, period) {
|
|
4358
|
+
return this.invoke(
|
|
4359
|
+
() => getApiV1ProjectsByNameOrganicEvidence({
|
|
4360
|
+
client: this.heyClient,
|
|
4361
|
+
path: { name: project },
|
|
4362
|
+
...period !== void 0 && { query: { period } }
|
|
4363
|
+
})
|
|
4364
|
+
);
|
|
4365
|
+
}
|
|
4330
4366
|
/** Download the versioned historical answer-engine results attachment. */
|
|
4331
4367
|
async downloadResultsExport(project, opts) {
|
|
4332
4368
|
await this.probeBasePath();
|
|
@@ -5234,6 +5270,15 @@ var ApiClient = class {
|
|
|
5234
5270
|
() => getApiV1ProjectsByNameGaStatus({ client: this.heyClient, path: { name: project } })
|
|
5235
5271
|
);
|
|
5236
5272
|
}
|
|
5273
|
+
async gaMeasurementAnalysis(project, params) {
|
|
5274
|
+
return this.invoke(
|
|
5275
|
+
() => getApiV1ProjectsByNameGaMeasurementAnalysis({
|
|
5276
|
+
client: this.heyClient,
|
|
5277
|
+
path: { name: project },
|
|
5278
|
+
query: params
|
|
5279
|
+
})
|
|
5280
|
+
);
|
|
5281
|
+
}
|
|
5237
5282
|
async gaSync(project, body) {
|
|
5238
5283
|
return this.invoke(
|
|
5239
5284
|
() => postApiV1ProjectsByNameGaSync({
|
|
@@ -6049,6 +6094,13 @@ var gaWindowInputSchema = z2.object({
|
|
|
6049
6094
|
var gaTrafficInputSchema = gaWindowInputSchema.extend({
|
|
6050
6095
|
limit: z2.number().int().positive().max(500).optional()
|
|
6051
6096
|
});
|
|
6097
|
+
var gaMeasurementAnalysisInputSchema = z2.object({
|
|
6098
|
+
project: projectNameSchema,
|
|
6099
|
+
window: gaMeasurementAnalysisWindowSchema.optional(),
|
|
6100
|
+
hostScope: gaMeasurementHostScopeSchema.optional(),
|
|
6101
|
+
pathPrefix: z2.string().min(1).optional(),
|
|
6102
|
+
limit: z2.number().int().positive().max(100).optional()
|
|
6103
|
+
});
|
|
6052
6104
|
var queriesInputSchema = z2.object({
|
|
6053
6105
|
project: projectNameSchema,
|
|
6054
6106
|
request: queryBatchRequestSchema
|
|
@@ -6415,6 +6467,20 @@ var canonryMcpTools = [
|
|
|
6415
6467
|
openApiOperations: ["GET /api/v1/projects/{name}/report"],
|
|
6416
6468
|
handler: (client2, input) => client2.getReport(input.project, input.period !== void 0 ? { period: input.period } : void 0)
|
|
6417
6469
|
}),
|
|
6470
|
+
defineTool({
|
|
6471
|
+
name: "canonry_organic_evidence",
|
|
6472
|
+
title: "Reconcile organic and AI evidence",
|
|
6473
|
+
description: "One-call investigation of whether organic work is gaining visibility, traffic, AI attention, or leads. Returns source-specific 30-day GSC and GA4 cohorts, URL-agnostic page evidence, available GA4 lead events, server-observed AI crawling/user-fetch/referral evidence, the latest answer-visibility sweep, source coverage, findings, and limitations. It preserves native units. Prefer this over fanning out across GSC, GA, traffic, and visibility tools.",
|
|
6474
|
+
access: "read",
|
|
6475
|
+
tier: "monitoring",
|
|
6476
|
+
inputSchema: z2.object({
|
|
6477
|
+
project: projectNameSchema,
|
|
6478
|
+
period: organicEvidencePeriodSchema.optional().describe("Evidence window: 60 or 90 days (default 90).")
|
|
6479
|
+
}),
|
|
6480
|
+
annotations: readAnnotations(),
|
|
6481
|
+
openApiOperations: ["GET /api/v1/projects/{name}/organic-evidence"],
|
|
6482
|
+
handler: (client2, input) => client2.getOrganicEvidence(input.project, input.period)
|
|
6483
|
+
}),
|
|
6418
6484
|
defineTool({
|
|
6419
6485
|
name: "canonry_analytics_metrics",
|
|
6420
6486
|
title: "Get citation & mention trend",
|
|
@@ -6931,6 +6997,20 @@ var canonryMcpTools = [
|
|
|
6931
6997
|
openApiOperations: ["GET /api/v1/projects/{name}/ga/status"],
|
|
6932
6998
|
handler: (client2, input) => client2.gaStatus(input.project)
|
|
6933
6999
|
}),
|
|
7000
|
+
defineTool({
|
|
7001
|
+
name: "canonry_ga_measurement_analysis",
|
|
7002
|
+
title: "Analyze GA acquisition and search demand",
|
|
7003
|
+
description: "Compare native GA4 channels and lead events with branded/non-brand Search Console demand over fixed 30-day cohorts.",
|
|
7004
|
+
access: "read",
|
|
7005
|
+
tier: "ga",
|
|
7006
|
+
inputSchema: gaMeasurementAnalysisInputSchema,
|
|
7007
|
+
annotations: readAnnotations(),
|
|
7008
|
+
openApiOperations: ["GET /api/v1/projects/{name}/ga/measurement-analysis"],
|
|
7009
|
+
handler: (client2, input) => client2.gaMeasurementAnalysis(
|
|
7010
|
+
input.project,
|
|
7011
|
+
compactStringParams(input, ["window", "hostScope", "pathPrefix", "limit"])
|
|
7012
|
+
)
|
|
7013
|
+
}),
|
|
6934
7014
|
defineTool({
|
|
6935
7015
|
name: "canonry_ga_traffic",
|
|
6936
7016
|
title: "Get GA traffic",
|