@canonry/canonry 4.142.0 → 4.143.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 +33 -0
- package/assets/assets/{AuditHistoryPanel-CfaF5B_e.js → AuditHistoryPanel--kNrRAQm.js} +1 -1
- package/assets/assets/{BacklinksPage-BIytWBpL.js → BacklinksPage-CtW1w9lh.js} +1 -1
- package/assets/assets/{ChartPrimitives-0tQT6GE7.js → ChartPrimitives-C-nMEqdu.js} +1 -1
- package/assets/assets/{HistoryPage-Bn6IH8WV.js → HistoryPage-CAPJDSbc.js} +1 -1
- package/assets/assets/ProjectPage-79R3wJW6.js +9 -0
- package/assets/assets/{RunRow-RHd8Bd52.js → RunRow-aDzTzGSK.js} +1 -1
- package/assets/assets/{RunsPage-BsDqqQFX.js → RunsPage-Dy9oWMBK.js} +1 -1
- package/assets/assets/{SettingsPage-CX2LkFDB.js → SettingsPage-DTAs1BrZ.js} +1 -1
- package/assets/assets/{TrafficPage-I19b7i9m.js → TrafficPage-B4ADqeKG.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-DOLEAPsc.js → TrafficSourceDetailPage-CFcoL_PR.js} +1 -1
- package/assets/assets/{arrow-left-BG9o86__.js → arrow-left-DV9xcX1v.js} +1 -1
- package/assets/assets/{extract-error-message-D0cgM2XG.js → extract-error-message-DXtgw8Q8.js} +1 -1
- package/assets/assets/{index-BDo9nl4O.css → index-CYA3jd24.css} +1 -1
- package/assets/assets/index-H2iFFrr1.js +213 -0
- package/assets/assets/{trash-2-C_THWxO_.js → trash-2-DMV6uGU1.js} +1 -1
- package/assets/index.html +2 -2
- package/dist/{chunk-D7NJUGNQ.js → chunk-3G5B3IMZ.js} +310 -1
- package/dist/{chunk-LS6SEZVF.js → chunk-KUPTGRME.js} +4259 -3034
- package/dist/{chunk-UFPP5CSN.js → chunk-TJ6SDLXL.js} +4 -4
- package/dist/{chunk-NR6OGEV3.js → chunk-VN3CI6K6.js} +3148 -1193
- package/dist/cli.js +129 -19
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-EOUP37XN.js → intelligence-service-V6JYDYGF.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +9 -9
- package/assets/assets/ProjectPage-DsQic9wX.js +0 -8
- package/assets/assets/index-CYGBt2f0.js +0 -213
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as a}from"./index-
|
|
1
|
+
import{c as a}from"./index-H2iFFrr1.js";const t=[["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"}]],h=a("circle-question-mark",t);const e=[["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"}]],d=a("download",e);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"}]],p=a("external-link",o);const c=[["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"}]],s=a("trash-2",c);export{h as C,d as D,p as E,s as T};
|
package/assets/index.html
CHANGED
|
@@ -12,12 +12,12 @@
|
|
|
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-H2iFFrr1.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">
|
|
19
19
|
<link rel="modulepreload" crossorigin href="./assets/vendor-markdown-6dwjPOKK.js">
|
|
20
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
20
|
+
<link rel="stylesheet" crossorigin href="./assets/index-CYA3jd24.css">
|
|
21
21
|
</head>
|
|
22
22
|
<body>
|
|
23
23
|
<div id="root"></div>
|
|
@@ -26,6 +26,9 @@ import {
|
|
|
26
26
|
gscPerformanceOrderBySchema,
|
|
27
27
|
keywordBatchRequestSchema,
|
|
28
28
|
keywordGenerateRequestSchema,
|
|
29
|
+
measurementDiscoveryRequestSchema,
|
|
30
|
+
measurementPlanAuthoringSchema,
|
|
31
|
+
measurementPlanPublishRequestSchema,
|
|
29
32
|
notificationCreateRequestSchema,
|
|
30
33
|
notificationEventSchema,
|
|
31
34
|
organicEvidencePeriodSchema,
|
|
@@ -43,7 +46,7 @@ import {
|
|
|
43
46
|
trafficConnectWordpressRequestSchema,
|
|
44
47
|
trafficEventKindSchema,
|
|
45
48
|
trafficSeriesGranularitySchema
|
|
46
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-KUPTGRME.js";
|
|
47
50
|
|
|
48
51
|
// src/config.ts
|
|
49
52
|
import fs from "fs";
|
|
@@ -1144,6 +1147,130 @@ var putApiV1ProjectsByName = (options) => {
|
|
|
1144
1147
|
}
|
|
1145
1148
|
});
|
|
1146
1149
|
};
|
|
1150
|
+
var postApiV1ProjectsByNameMeasurementDiscovery = (options) => {
|
|
1151
|
+
return (options.client ?? client).post({
|
|
1152
|
+
security: [
|
|
1153
|
+
{
|
|
1154
|
+
scheme: "bearer",
|
|
1155
|
+
type: "http"
|
|
1156
|
+
}
|
|
1157
|
+
],
|
|
1158
|
+
url: "/api/v1/projects/{name}/measurement-discovery",
|
|
1159
|
+
...options,
|
|
1160
|
+
headers: {
|
|
1161
|
+
"Content-Type": "application/json",
|
|
1162
|
+
...options.headers
|
|
1163
|
+
}
|
|
1164
|
+
});
|
|
1165
|
+
};
|
|
1166
|
+
var getApiV1ProjectsByNameMeasurementPlan = (options) => {
|
|
1167
|
+
return (options.client ?? client).get({
|
|
1168
|
+
security: [
|
|
1169
|
+
{
|
|
1170
|
+
scheme: "bearer",
|
|
1171
|
+
type: "http"
|
|
1172
|
+
}
|
|
1173
|
+
],
|
|
1174
|
+
url: "/api/v1/projects/{name}/measurement-plan",
|
|
1175
|
+
...options
|
|
1176
|
+
});
|
|
1177
|
+
};
|
|
1178
|
+
var putApiV1ProjectsByNameMeasurementPlan = (options) => {
|
|
1179
|
+
return (options.client ?? client).put({
|
|
1180
|
+
security: [
|
|
1181
|
+
{
|
|
1182
|
+
scheme: "bearer",
|
|
1183
|
+
type: "http"
|
|
1184
|
+
}
|
|
1185
|
+
],
|
|
1186
|
+
url: "/api/v1/projects/{name}/measurement-plan",
|
|
1187
|
+
...options,
|
|
1188
|
+
headers: {
|
|
1189
|
+
"Content-Type": "application/json",
|
|
1190
|
+
...options.headers
|
|
1191
|
+
}
|
|
1192
|
+
});
|
|
1193
|
+
};
|
|
1194
|
+
var postApiV1ProjectsByNameMeasurementPlanCompilePreview = (options) => {
|
|
1195
|
+
return (options.client ?? client).post({
|
|
1196
|
+
security: [
|
|
1197
|
+
{
|
|
1198
|
+
scheme: "bearer",
|
|
1199
|
+
type: "http"
|
|
1200
|
+
}
|
|
1201
|
+
],
|
|
1202
|
+
url: "/api/v1/projects/{name}/measurement-plan/compile-preview",
|
|
1203
|
+
...options,
|
|
1204
|
+
headers: {
|
|
1205
|
+
"Content-Type": "application/json",
|
|
1206
|
+
...options.headers
|
|
1207
|
+
}
|
|
1208
|
+
});
|
|
1209
|
+
};
|
|
1210
|
+
var postApiV1ProjectsByNameMeasurementPlanDiffPreview = (options) => {
|
|
1211
|
+
return (options.client ?? client).post({
|
|
1212
|
+
security: [
|
|
1213
|
+
{
|
|
1214
|
+
scheme: "bearer",
|
|
1215
|
+
type: "http"
|
|
1216
|
+
}
|
|
1217
|
+
],
|
|
1218
|
+
url: "/api/v1/projects/{name}/measurement-plan/diff-preview",
|
|
1219
|
+
...options,
|
|
1220
|
+
headers: {
|
|
1221
|
+
"Content-Type": "application/json",
|
|
1222
|
+
...options.headers
|
|
1223
|
+
}
|
|
1224
|
+
});
|
|
1225
|
+
};
|
|
1226
|
+
var getApiV1ProjectsByNameMeasurementPlanVersions = (options) => {
|
|
1227
|
+
return (options.client ?? client).get({
|
|
1228
|
+
security: [
|
|
1229
|
+
{
|
|
1230
|
+
scheme: "bearer",
|
|
1231
|
+
type: "http"
|
|
1232
|
+
}
|
|
1233
|
+
],
|
|
1234
|
+
url: "/api/v1/projects/{name}/measurement-plan/versions",
|
|
1235
|
+
...options
|
|
1236
|
+
});
|
|
1237
|
+
};
|
|
1238
|
+
var postApiV1ProjectsByNameMeasurementPlanSegmentsByStableKeyRetire = (options) => {
|
|
1239
|
+
return (options.client ?? client).post({
|
|
1240
|
+
security: [
|
|
1241
|
+
{
|
|
1242
|
+
scheme: "bearer",
|
|
1243
|
+
type: "http"
|
|
1244
|
+
}
|
|
1245
|
+
],
|
|
1246
|
+
url: "/api/v1/projects/{name}/measurement-plan/segments/{stableKey}/retire",
|
|
1247
|
+
...options
|
|
1248
|
+
});
|
|
1249
|
+
};
|
|
1250
|
+
var getApiV1ProjectsByNameMeasurementPlanVersionsByRevision = (options) => {
|
|
1251
|
+
return (options.client ?? client).get({
|
|
1252
|
+
security: [
|
|
1253
|
+
{
|
|
1254
|
+
scheme: "bearer",
|
|
1255
|
+
type: "http"
|
|
1256
|
+
}
|
|
1257
|
+
],
|
|
1258
|
+
url: "/api/v1/projects/{name}/measurement-plan/versions/{revision}",
|
|
1259
|
+
...options
|
|
1260
|
+
});
|
|
1261
|
+
};
|
|
1262
|
+
var getApiV1ProjectsByNameMeasurementReport = (options) => {
|
|
1263
|
+
return (options.client ?? client).get({
|
|
1264
|
+
security: [
|
|
1265
|
+
{
|
|
1266
|
+
scheme: "bearer",
|
|
1267
|
+
type: "http"
|
|
1268
|
+
}
|
|
1269
|
+
],
|
|
1270
|
+
url: "/api/v1/projects/{name}/measurement-report",
|
|
1271
|
+
...options
|
|
1272
|
+
});
|
|
1273
|
+
};
|
|
1147
1274
|
var getApiV1Projects = (options) => {
|
|
1148
1275
|
return (options?.client ?? client).get({
|
|
1149
1276
|
security: [
|
|
@@ -4558,6 +4685,77 @@ var ApiClient = class {
|
|
|
4558
4685
|
})
|
|
4559
4686
|
);
|
|
4560
4687
|
}
|
|
4688
|
+
async getMeasurementPlan(project) {
|
|
4689
|
+
return this.invoke(
|
|
4690
|
+
() => getApiV1ProjectsByNameMeasurementPlan({ client: this.heyClient, path: { name: project } })
|
|
4691
|
+
);
|
|
4692
|
+
}
|
|
4693
|
+
async listMeasurementPlanVersions(project) {
|
|
4694
|
+
return this.invoke(
|
|
4695
|
+
() => getApiV1ProjectsByNameMeasurementPlanVersions({ client: this.heyClient, path: { name: project } })
|
|
4696
|
+
);
|
|
4697
|
+
}
|
|
4698
|
+
async getMeasurementPlanVersion(project, revision) {
|
|
4699
|
+
return this.invoke(
|
|
4700
|
+
() => getApiV1ProjectsByNameMeasurementPlanVersionsByRevision({
|
|
4701
|
+
client: this.heyClient,
|
|
4702
|
+
path: { name: project, revision }
|
|
4703
|
+
})
|
|
4704
|
+
);
|
|
4705
|
+
}
|
|
4706
|
+
async compileMeasurementPlanPreview(project, plan) {
|
|
4707
|
+
return this.invoke(
|
|
4708
|
+
() => postApiV1ProjectsByNameMeasurementPlanCompilePreview({
|
|
4709
|
+
client: this.heyClient,
|
|
4710
|
+
path: { name: project },
|
|
4711
|
+
body: plan
|
|
4712
|
+
})
|
|
4713
|
+
);
|
|
4714
|
+
}
|
|
4715
|
+
async diffMeasurementPlanPreview(project, plan) {
|
|
4716
|
+
return this.invoke(
|
|
4717
|
+
() => postApiV1ProjectsByNameMeasurementPlanDiffPreview({
|
|
4718
|
+
client: this.heyClient,
|
|
4719
|
+
path: { name: project },
|
|
4720
|
+
body: plan
|
|
4721
|
+
})
|
|
4722
|
+
);
|
|
4723
|
+
}
|
|
4724
|
+
async publishMeasurementPlan(project, request) {
|
|
4725
|
+
return this.invoke(
|
|
4726
|
+
() => putApiV1ProjectsByNameMeasurementPlan({
|
|
4727
|
+
client: this.heyClient,
|
|
4728
|
+
path: { name: project },
|
|
4729
|
+
body: request
|
|
4730
|
+
})
|
|
4731
|
+
);
|
|
4732
|
+
}
|
|
4733
|
+
async retireMeasurementPlanSegment(project, stableKey) {
|
|
4734
|
+
return this.invoke(
|
|
4735
|
+
() => postApiV1ProjectsByNameMeasurementPlanSegmentsByStableKeyRetire({
|
|
4736
|
+
client: this.heyClient,
|
|
4737
|
+
path: { name: project, stableKey }
|
|
4738
|
+
})
|
|
4739
|
+
);
|
|
4740
|
+
}
|
|
4741
|
+
async discoverMeasurementTargets(project, request) {
|
|
4742
|
+
return this.invoke(
|
|
4743
|
+
() => postApiV1ProjectsByNameMeasurementDiscovery({
|
|
4744
|
+
client: this.heyClient,
|
|
4745
|
+
path: { name: project },
|
|
4746
|
+
body: request
|
|
4747
|
+
})
|
|
4748
|
+
);
|
|
4749
|
+
}
|
|
4750
|
+
async getMeasurementReport(project, revision) {
|
|
4751
|
+
return this.invoke(
|
|
4752
|
+
() => getApiV1ProjectsByNameMeasurementReport({
|
|
4753
|
+
client: this.heyClient,
|
|
4754
|
+
path: { name: project },
|
|
4755
|
+
query: { revision }
|
|
4756
|
+
})
|
|
4757
|
+
);
|
|
4758
|
+
}
|
|
4561
4759
|
async listRuns(project, limit, kind) {
|
|
4562
4760
|
return this.invoke(
|
|
4563
4761
|
() => getApiV1ProjectsByNameRuns({
|
|
@@ -6110,6 +6308,11 @@ var runTriggerInputSchema = z2.object({
|
|
|
6110
6308
|
project: projectNameSchema,
|
|
6111
6309
|
request: runTriggerRequestSchema.optional()
|
|
6112
6310
|
});
|
|
6311
|
+
var measurementPlanVersionInputSchema = z2.object({ project: projectNameSchema, revision: z2.number().int().positive() });
|
|
6312
|
+
var measurementPlanPreviewInputSchema = z2.object({ project: projectNameSchema, plan: measurementPlanAuthoringSchema });
|
|
6313
|
+
var measurementPlanPublishInputSchema = measurementPlanPublishRequestSchema.extend({ project: projectNameSchema });
|
|
6314
|
+
var measurementPlanRetireInputSchema = z2.object({ project: projectNameSchema, stableKey: z2.string().min(1) });
|
|
6315
|
+
var measurementDiscoveryInputSchema = measurementDiscoveryRequestSchema.extend({ project: projectNameSchema });
|
|
6113
6316
|
var runsListInputSchema = z2.object({
|
|
6114
6317
|
project: projectNameSchema,
|
|
6115
6318
|
limit: z2.number().int().positive().max(500).optional()
|
|
@@ -7671,6 +7874,112 @@ var canonryMcpTools = [
|
|
|
7671
7874
|
await client2.putKeywords(input.project, uniqueStrings(input.request.keywords));
|
|
7672
7875
|
}
|
|
7673
7876
|
}),
|
|
7877
|
+
defineTool({
|
|
7878
|
+
name: "canonry_measurement_discovery",
|
|
7879
|
+
title: "Discover measurement Targets",
|
|
7880
|
+
description: "Fetch a public sitemap under bounded network policy and deterministically classify project-owned URLs into Target proposals, aliases, shared paths, unmatched paths, and exclusions. Does not publish a plan.",
|
|
7881
|
+
access: "write",
|
|
7882
|
+
tier: "setup",
|
|
7883
|
+
inputSchema: measurementDiscoveryInputSchema,
|
|
7884
|
+
annotations: writeAnnotations({ idempotentHint: false, openWorldHint: true }),
|
|
7885
|
+
openApiOperations: ["POST /api/v1/projects/{name}/measurement-discovery"],
|
|
7886
|
+
handler: (client2, input) => client2.discoverMeasurementTargets(input.project, {
|
|
7887
|
+
sitemapUrl: input.sitemapUrl,
|
|
7888
|
+
rule: input.rule,
|
|
7889
|
+
...input.maxUrls === void 0 ? {} : { maxUrls: input.maxUrls }
|
|
7890
|
+
})
|
|
7891
|
+
}),
|
|
7892
|
+
defineTool({
|
|
7893
|
+
name: "canonry_measurement_plan_get",
|
|
7894
|
+
title: "Get measurement plan",
|
|
7895
|
+
description: "Get the active measurement plan for a project.",
|
|
7896
|
+
access: "read",
|
|
7897
|
+
tier: "setup",
|
|
7898
|
+
inputSchema: projectInputSchema,
|
|
7899
|
+
annotations: readAnnotations(),
|
|
7900
|
+
openApiOperations: ["GET /api/v1/projects/{name}/measurement-plan"],
|
|
7901
|
+
handler: (client2, input) => client2.getMeasurementPlan(input.project)
|
|
7902
|
+
}),
|
|
7903
|
+
defineTool({
|
|
7904
|
+
name: "canonry_measurement_plan_versions",
|
|
7905
|
+
title: "List measurement plan versions",
|
|
7906
|
+
description: "List immutable measurement-plan revisions.",
|
|
7907
|
+
access: "read",
|
|
7908
|
+
tier: "setup",
|
|
7909
|
+
inputSchema: projectInputSchema,
|
|
7910
|
+
annotations: readAnnotations(),
|
|
7911
|
+
openApiOperations: ["GET /api/v1/projects/{name}/measurement-plan/versions"],
|
|
7912
|
+
handler: (client2, input) => client2.listMeasurementPlanVersions(input.project)
|
|
7913
|
+
}),
|
|
7914
|
+
defineTool({
|
|
7915
|
+
name: "canonry_measurement_plan_version_get",
|
|
7916
|
+
title: "Get measurement plan revision",
|
|
7917
|
+
description: "Get one immutable measurement-plan revision.",
|
|
7918
|
+
access: "read",
|
|
7919
|
+
tier: "setup",
|
|
7920
|
+
inputSchema: measurementPlanVersionInputSchema,
|
|
7921
|
+
annotations: readAnnotations(),
|
|
7922
|
+
openApiOperations: ["GET /api/v1/projects/{name}/measurement-plan/versions/{revision}"],
|
|
7923
|
+
handler: (client2, input) => client2.getMeasurementPlanVersion(input.project, input.revision)
|
|
7924
|
+
}),
|
|
7925
|
+
defineTool({
|
|
7926
|
+
name: "canonry_measurement_plan_compile_preview",
|
|
7927
|
+
title: "Compile measurement plan",
|
|
7928
|
+
description: "Validate and compile a Target/group plan without publishing it.",
|
|
7929
|
+
access: "write",
|
|
7930
|
+
tier: "setup",
|
|
7931
|
+
inputSchema: measurementPlanPreviewInputSchema,
|
|
7932
|
+
annotations: writeAnnotations({ idempotentHint: true }),
|
|
7933
|
+
openApiOperations: ["POST /api/v1/projects/{name}/measurement-plan/compile-preview"],
|
|
7934
|
+
handler: (client2, input) => client2.compileMeasurementPlanPreview(input.project, input.plan)
|
|
7935
|
+
}),
|
|
7936
|
+
defineTool({
|
|
7937
|
+
name: "canonry_measurement_plan_diff_preview",
|
|
7938
|
+
title: "Preview measurement plan changes",
|
|
7939
|
+
description: "Compare a compiled Target/group plan with the active immutable revision without publishing it.",
|
|
7940
|
+
access: "write",
|
|
7941
|
+
tier: "setup",
|
|
7942
|
+
inputSchema: measurementPlanPreviewInputSchema,
|
|
7943
|
+
annotations: writeAnnotations({ idempotentHint: true }),
|
|
7944
|
+
openApiOperations: ["POST /api/v1/projects/{name}/measurement-plan/diff-preview"],
|
|
7945
|
+
handler: (client2, input) => client2.diffMeasurementPlanPreview(input.project, input.plan)
|
|
7946
|
+
}),
|
|
7947
|
+
defineTool({
|
|
7948
|
+
name: "canonry_measurement_plan_publish",
|
|
7949
|
+
title: "Publish measurement plan",
|
|
7950
|
+
description: "Publish only when the active revision still matches the revision you reviewed. Use null only when you reviewed a planless project.",
|
|
7951
|
+
access: "write",
|
|
7952
|
+
tier: "setup",
|
|
7953
|
+
inputSchema: measurementPlanPublishInputSchema,
|
|
7954
|
+
annotations: writeAnnotations({ idempotentHint: true }),
|
|
7955
|
+
openApiOperations: ["PUT /api/v1/projects/{name}/measurement-plan"],
|
|
7956
|
+
handler: (client2, input) => client2.publishMeasurementPlan(input.project, {
|
|
7957
|
+
expectedActiveRevision: input.expectedActiveRevision,
|
|
7958
|
+
plan: input.plan
|
|
7959
|
+
})
|
|
7960
|
+
}),
|
|
7961
|
+
defineTool({
|
|
7962
|
+
name: "canonry_measurement_plan_segment_retire",
|
|
7963
|
+
title: "Retire measurement segment",
|
|
7964
|
+
description: "Permanently retire an inactive Target or group stable key. Publish a revision without it first; there is no unretire.",
|
|
7965
|
+
access: "write",
|
|
7966
|
+
tier: "setup",
|
|
7967
|
+
inputSchema: measurementPlanRetireInputSchema,
|
|
7968
|
+
annotations: writeAnnotations({ idempotentHint: true, destructiveHint: true }),
|
|
7969
|
+
openApiOperations: ["POST /api/v1/projects/{name}/measurement-plan/segments/{stableKey}/retire"],
|
|
7970
|
+
handler: (client2, input) => client2.retireMeasurementPlanSegment(input.project, input.stableKey)
|
|
7971
|
+
}),
|
|
7972
|
+
defineTool({
|
|
7973
|
+
name: "canonry_measurement_report",
|
|
7974
|
+
title: "Get measurement report",
|
|
7975
|
+
description: "Get a revision-pinned Target and group measurement report from stored runs. Never starts live provider work.",
|
|
7976
|
+
access: "read",
|
|
7977
|
+
tier: "setup",
|
|
7978
|
+
inputSchema: measurementPlanVersionInputSchema,
|
|
7979
|
+
annotations: readAnnotations(),
|
|
7980
|
+
openApiOperations: ["GET /api/v1/projects/{name}/measurement-report"],
|
|
7981
|
+
handler: (client2, input) => client2.getMeasurementReport(input.project, input.revision)
|
|
7982
|
+
}),
|
|
7674
7983
|
defineTool({
|
|
7675
7984
|
name: "canonry_run_trigger",
|
|
7676
7985
|
title: "Trigger run",
|