@canonry/canonry 4.147.0 → 4.148.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 +2 -2
- package/assets/assets/{AuditHistoryPanel-DiQ0Ynw5.js → AuditHistoryPanel-D5fRv5sF.js} +1 -1
- package/assets/assets/{BacklinksPage-DLUQuPE_.js → BacklinksPage-CFdO1s1V.js} +1 -1
- package/assets/assets/{ChartPrimitives-BoEy1qo7.js → ChartPrimitives-BoB1RfNf.js} +1 -1
- package/assets/assets/{HistoryPage-mYR2vk8n.js → HistoryPage-YT2JCo2G.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-BocyGHJN.js → MeasurementPropertyPage-JDEzHX1H.js} +1 -1
- package/assets/assets/ProjectPage-B6t_j9tN.js +12 -0
- package/assets/assets/{RunRow-Ct-A6H9e.js → RunRow-yKrIU8zY.js} +1 -1
- package/assets/assets/{RunsPage-CsDtq0Qw.js → RunsPage-DAeC6Ebm.js} +1 -1
- package/assets/assets/{SettingsPage-BXwFGc1P.js → SettingsPage-8Z251PH0.js} +1 -1
- package/assets/assets/{TrafficPage-B2omyoI8.js → TrafficPage-DNJGp16_.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-CoEqc6OJ.js → TrafficSourceDetailPage-BuzdNFB8.js} +1 -1
- package/assets/assets/{arrow-left-Dh0vsQxe.js → arrow-left-BrVL2J2e.js} +1 -1
- package/assets/assets/{extract-error-message-DvWJ0xRn.js → extract-error-message-jd9FdYvE.js} +1 -1
- package/assets/assets/index-Bo0hzrG2.js +213 -0
- package/assets/assets/{index-CXe6S1ey.css → index-D5NO3NEG.css} +1 -1
- package/assets/assets/{trash-2-D1_8ZseY.js → trash-2-lAIhBm6w.js} +1 -1
- package/assets/assets/{v2-overview-adapter-owDeFdUc.js → v2-overview-adapter-BHmxTmCf.js} +1 -1
- package/assets/index.html +2 -2
- package/dist/{chunk-4BL24FQA.js → chunk-3HYF3LUP.js} +353 -346
- package/dist/{chunk-BVOU4UJM.js → chunk-43XIYBG4.js} +8 -0
- package/dist/{chunk-ZDYS24LW.js → chunk-MHTZ4THA.js} +7 -4
- package/dist/{chunk-DRDNHYIF.js → chunk-VUTKHFTM.js} +77 -22
- package/dist/cli.js +209 -7
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-7CGZ537D.js → intelligence-service-OGOGIQJD.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +8 -8
- package/assets/assets/ProjectPage-Q5wQ7nSW.js +0 -12
- package/assets/assets/index-FE8JPHmT.js +0 -213
|
@@ -81,7 +81,7 @@ import {
|
|
|
81
81
|
trafficConnectWordpressRequestSchema,
|
|
82
82
|
trafficEventKindSchema,
|
|
83
83
|
trafficSeriesGranularitySchema
|
|
84
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-43XIYBG4.js";
|
|
85
85
|
|
|
86
86
|
// src/config.ts
|
|
87
87
|
import fs from "fs";
|
|
@@ -7440,21 +7440,133 @@ var _require = createRequire(import.meta.url);
|
|
|
7440
7440
|
var PACKAGE_VERSION = _require("../package.json").version;
|
|
7441
7441
|
|
|
7442
7442
|
// src/mcp/tool-registry.ts
|
|
7443
|
-
import { z as
|
|
7443
|
+
import { z as z3 } from "zod";
|
|
7444
7444
|
|
|
7445
|
-
// src/
|
|
7445
|
+
// src/measurement-draft-actions.ts
|
|
7446
7446
|
import { z } from "zod";
|
|
7447
|
-
var
|
|
7448
|
-
|
|
7449
|
-
|
|
7450
|
-
var
|
|
7451
|
-
|
|
7452
|
-
|
|
7447
|
+
var idempotencyKeySchema = z.string().trim().min(1).describe(
|
|
7448
|
+
"A fresh request key. Reuse it only when retrying the identical request."
|
|
7449
|
+
);
|
|
7450
|
+
var draftEtagSchema = z.string().trim().min(1).optional().describe(
|
|
7451
|
+
"Current draft ETag from canonry_measurement_draft_get. The API requires it for draft edits, publish, and discard; omit it only to receive the API\u2019s actionable 428 response."
|
|
7452
|
+
);
|
|
7453
|
+
function mutationOperationSchema(action, request) {
|
|
7454
|
+
return z.object({
|
|
7455
|
+
action: z.literal(action),
|
|
7456
|
+
request,
|
|
7457
|
+
etag: draftEtagSchema,
|
|
7458
|
+
idempotencyKey: idempotencyKeySchema
|
|
7459
|
+
}).strict().describe(`Operation for ${action}.`);
|
|
7460
|
+
}
|
|
7461
|
+
var measurementDraftOperationSchema = z.discriminatedUnion("action", [
|
|
7462
|
+
z.object({
|
|
7463
|
+
action: z.literal("create"),
|
|
7464
|
+
request: measurementDraftCreateRequestSchema,
|
|
7465
|
+
idempotencyKey: idempotencyKeySchema
|
|
7466
|
+
}).strict().describe("Operation for create."),
|
|
7467
|
+
mutationOperationSchema("import-sitemap", measurementDraftImportSitemapRequestSchema),
|
|
7468
|
+
mutationOperationSchema("apply-sitemap-selection", measurementDraftApplySitemapSelectionRequestSchema),
|
|
7469
|
+
mutationOperationSchema("upsert-target", measurementDraftUpsertTargetRequestSchema),
|
|
7470
|
+
mutationOperationSchema("rename-target", measurementDraftRenameTargetRequestSchema),
|
|
7471
|
+
mutationOperationSchema("merge-targets", measurementDraftMergeTargetsRequestSchema),
|
|
7472
|
+
mutationOperationSchema("exclude-target", measurementDraftExcludeTargetRequestSchema),
|
|
7473
|
+
mutationOperationSchema("rebind-target", measurementDraftRebindTargetRequestSchema),
|
|
7474
|
+
mutationOperationSchema("apply-assignments", measurementDraftApplyAssignmentsRequestSchema),
|
|
7475
|
+
z.object({
|
|
7476
|
+
action: z.literal("preview-assignments"),
|
|
7477
|
+
request: measurementDraftPreviewAssignmentsRequestSchema
|
|
7478
|
+
}).strict().describe("Read-semantic assignment impact preview."),
|
|
7479
|
+
mutationOperationSchema("replace-assignments", measurementDraftReplaceAssignmentsRequestSchema),
|
|
7480
|
+
mutationOperationSchema("apply-paired-assignments", measurementDraftApplyPairedAssignmentsRequestSchema),
|
|
7481
|
+
mutationOperationSchema("remove-assignment", measurementDraftRemoveAssignmentRequestSchema),
|
|
7482
|
+
mutationOperationSchema("clear-assignments", measurementDraftClearAssignmentsRequestSchema),
|
|
7483
|
+
mutationOperationSchema("classify-assignments", measurementDraftClassifyAssignmentsRequestSchema),
|
|
7484
|
+
mutationOperationSchema("upsert-group", measurementDraftUpsertGroupRequestSchema),
|
|
7485
|
+
mutationOperationSchema("remove-group", measurementDraftRemoveGroupRequestSchema),
|
|
7486
|
+
z.object({
|
|
7487
|
+
action: z.literal("preview-group-membership"),
|
|
7488
|
+
request: measurementDraftPreviewGroupMembershipRequestSchema
|
|
7489
|
+
}).strict().describe("Read-semantic CSV group-membership preview."),
|
|
7490
|
+
mutationOperationSchema("apply-group-membership", measurementDraftApplyGroupMembershipRequestSchema),
|
|
7491
|
+
mutationOperationSchema("upsert-competitor", measurementDraftUpsertCompetitorRequestSchema),
|
|
7492
|
+
mutationOperationSchema("remove-competitor", measurementDraftRemoveCompetitorRequestSchema),
|
|
7493
|
+
z.object({ action: z.literal("compile-preview") }).strict().describe("Operation for compile-preview."),
|
|
7494
|
+
z.object({ action: z.literal("diff-preview") }).strict().describe("Operation for diff-preview."),
|
|
7495
|
+
mutationOperationSchema("publish", measurementDraftPublishRequestSchema),
|
|
7496
|
+
z.object({
|
|
7497
|
+
action: z.literal("discard"),
|
|
7498
|
+
etag: draftEtagSchema,
|
|
7499
|
+
idempotencyKey: idempotencyKeySchema
|
|
7500
|
+
}).strict().describe("Operation for discard.")
|
|
7501
|
+
]);
|
|
7502
|
+
function runMeasurementDraftAction(client2, project, actionInput) {
|
|
7503
|
+
switch (actionInput.action) {
|
|
7504
|
+
case "create":
|
|
7505
|
+
return client2.createMeasurementPlanDraft(project, actionInput.request, actionInput.idempotencyKey);
|
|
7506
|
+
case "import-sitemap":
|
|
7507
|
+
return client2.importMeasurementDraftSitemap(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7508
|
+
case "apply-sitemap-selection":
|
|
7509
|
+
return client2.applyMeasurementDraftSitemapSelection(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7510
|
+
case "upsert-target":
|
|
7511
|
+
return client2.upsertMeasurementDraftTarget(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7512
|
+
case "rename-target":
|
|
7513
|
+
return client2.renameMeasurementDraftTarget(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7514
|
+
case "merge-targets":
|
|
7515
|
+
return client2.mergeMeasurementDraftTargets(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7516
|
+
case "exclude-target":
|
|
7517
|
+
return client2.excludeMeasurementDraftTarget(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7518
|
+
case "rebind-target":
|
|
7519
|
+
return client2.rebindMeasurementDraftTarget(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7520
|
+
case "apply-assignments":
|
|
7521
|
+
return client2.applyMeasurementDraftAssignments(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7522
|
+
case "preview-assignments":
|
|
7523
|
+
return client2.previewMeasurementDraftAssignments(project, actionInput.request);
|
|
7524
|
+
case "replace-assignments":
|
|
7525
|
+
return client2.replaceMeasurementDraftAssignments(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7526
|
+
case "apply-paired-assignments":
|
|
7527
|
+
return client2.applyPairedMeasurementDraftAssignments(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7528
|
+
case "remove-assignment":
|
|
7529
|
+
return client2.removeMeasurementDraftAssignment(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7530
|
+
case "clear-assignments":
|
|
7531
|
+
return client2.clearMeasurementDraftAssignments(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7532
|
+
case "classify-assignments":
|
|
7533
|
+
return client2.classifyMeasurementDraftAssignments(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7534
|
+
case "upsert-group":
|
|
7535
|
+
return client2.upsertMeasurementDraftGroup(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7536
|
+
case "remove-group":
|
|
7537
|
+
return client2.removeMeasurementDraftGroup(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7538
|
+
case "preview-group-membership":
|
|
7539
|
+
return client2.previewMeasurementDraftGroupMembership(project, actionInput.request);
|
|
7540
|
+
case "apply-group-membership":
|
|
7541
|
+
return client2.applyMeasurementDraftGroupMembership(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7542
|
+
case "upsert-competitor":
|
|
7543
|
+
return client2.upsertMeasurementDraftCompetitor(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7544
|
+
case "remove-competitor":
|
|
7545
|
+
return client2.removeMeasurementDraftCompetitor(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7546
|
+
case "compile-preview":
|
|
7547
|
+
return client2.compileMeasurementDraftPreview(project);
|
|
7548
|
+
case "diff-preview":
|
|
7549
|
+
return client2.diffMeasurementDraftPreview(project);
|
|
7550
|
+
case "publish":
|
|
7551
|
+
return client2.publishMeasurementDraft(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7552
|
+
case "discard":
|
|
7553
|
+
return client2.discardMeasurementDraft(project, actionInput.idempotencyKey, actionInput.etag);
|
|
7554
|
+
}
|
|
7555
|
+
}
|
|
7556
|
+
|
|
7557
|
+
// src/mcp/schema.ts
|
|
7558
|
+
import { z as z2 } from "zod";
|
|
7559
|
+
var projectNameSchema = z2.string().min(1).describe("Canonry project name.");
|
|
7560
|
+
var runIdSchema = z2.string().min(1).describe("Canonry run ID.");
|
|
7561
|
+
var insightIdSchema = z2.string().min(1).describe("Canonry insight ID.");
|
|
7562
|
+
var analyticsWindowSchema = z2.enum(["7d", "30d", "90d", "all"]).describe("Analytics time window.");
|
|
7563
|
+
var emptyInputSchema = z2.object({});
|
|
7564
|
+
var projectInputSchema = z2.object({
|
|
7453
7565
|
project: projectNameSchema
|
|
7454
7566
|
});
|
|
7455
7567
|
function toJsonSchema(schema, name) {
|
|
7456
7568
|
return {
|
|
7457
|
-
...
|
|
7569
|
+
...z2.toJSONSchema(schema, { target: "draft-7" }),
|
|
7458
7570
|
title: name
|
|
7459
7571
|
};
|
|
7460
7572
|
}
|
|
@@ -7500,23 +7612,20 @@ function defineTool(tool) {
|
|
|
7500
7612
|
inputJsonSchema: toJsonSchema(tool.inputSchema, tool.name)
|
|
7501
7613
|
};
|
|
7502
7614
|
}
|
|
7503
|
-
var runTriggerInputSchema =
|
|
7615
|
+
var runTriggerInputSchema = z3.object({
|
|
7504
7616
|
project: projectNameSchema,
|
|
7505
7617
|
request: runTriggerRequestSchema.optional()
|
|
7506
7618
|
});
|
|
7507
|
-
var measurementPlanVersionInputSchema =
|
|
7619
|
+
var measurementPlanVersionInputSchema = z3.object({ project: projectNameSchema, revision: z3.number().int().positive() });
|
|
7508
7620
|
var measurementReportInputSchema = measurementPlanVersionInputSchema.extend({
|
|
7509
7621
|
runId: runIdSchema.optional().describe("Exact eligible full measurement run to reconstruct. Omit for the latest run in the revision.")
|
|
7510
7622
|
});
|
|
7511
|
-
var measurementPlanPreviewInputSchema =
|
|
7623
|
+
var measurementPlanPreviewInputSchema = z3.object({ project: projectNameSchema, plan: measurementPlanAuthoringSchema });
|
|
7512
7624
|
var measurementPlanPublishInputSchema = measurementPlanPublishRequestSchema.extend({ project: projectNameSchema });
|
|
7513
|
-
var measurementPlanRetireInputSchema =
|
|
7625
|
+
var measurementPlanRetireInputSchema = z3.object({ project: projectNameSchema, stableKey: z3.string().min(1) });
|
|
7514
7626
|
var measurementDiscoveryInputSchema = measurementDiscoveryRequestSchema.extend({ project: projectNameSchema });
|
|
7515
|
-
var idempotencyKeyInputSchema =
|
|
7516
|
-
var
|
|
7517
|
-
"Current draft ETag from canonry_measurement_draft_get. The API requires it for draft edits, publish, and discard; omit it only to receive the API\u2019s actionable 428 response."
|
|
7518
|
-
);
|
|
7519
|
-
var measurementOverviewInputSchema = z2.object({
|
|
7627
|
+
var idempotencyKeyInputSchema = z3.string().trim().min(1).describe("A fresh request key. Reuse it only when retrying the identical request.");
|
|
7628
|
+
var measurementOverviewInputSchema = z3.object({
|
|
7520
7629
|
project: projectNameSchema,
|
|
7521
7630
|
scope: measurementOverviewQuerySchema.shape.scope.describe("Read all Properties, one reporting group, or one Property."),
|
|
7522
7631
|
groupKey: measurementOverviewQuerySchema.shape.groupKey.describe("Group stable key. Required only for group scope."),
|
|
@@ -7571,16 +7680,16 @@ var measurementDataQualityInputSchema = measurementDataQualityQuerySchema.extend
|
|
|
7571
7680
|
project: projectNameSchema
|
|
7572
7681
|
}).strict();
|
|
7573
7682
|
var measurementDraftCollectionInputSchema = measurementDraftCollectionQuerySchema.extend({ project: projectNameSchema });
|
|
7574
|
-
var measurementQuerySetInputSchema =
|
|
7683
|
+
var measurementQuerySetInputSchema = z3.object({
|
|
7575
7684
|
project: projectNameSchema,
|
|
7576
|
-
setId:
|
|
7685
|
+
setId: z3.string().trim().min(1)
|
|
7577
7686
|
}).strict();
|
|
7578
7687
|
var measurementQuerySetUpsertInputSchema = measurementQuerySetInputSchema.extend({
|
|
7579
7688
|
request: measurementQuerySetUpsertRequestSchema
|
|
7580
7689
|
}).strict();
|
|
7581
|
-
var measurementQueryTemplateInputSchema =
|
|
7690
|
+
var measurementQueryTemplateInputSchema = z3.object({
|
|
7582
7691
|
project: projectNameSchema,
|
|
7583
|
-
templateId:
|
|
7692
|
+
templateId: z3.string().trim().min(1)
|
|
7584
7693
|
}).strict();
|
|
7585
7694
|
var measurementQueryTemplateUpsertInputSchema = measurementQueryTemplateInputSchema.extend({
|
|
7586
7695
|
request: measurementQueryTemplateUpsertRequestSchema
|
|
@@ -7593,56 +7702,7 @@ var measurementPlanDeactivateInputSchema = measurementPlanDeactivateRequestSchem
|
|
|
7593
7702
|
project: projectNameSchema,
|
|
7594
7703
|
idempotencyKey: idempotencyKeyInputSchema
|
|
7595
7704
|
}).strict();
|
|
7596
|
-
|
|
7597
|
-
return z2.object({
|
|
7598
|
-
action: z2.literal(action),
|
|
7599
|
-
request,
|
|
7600
|
-
etag: measurementDraftEtagInputSchema,
|
|
7601
|
-
idempotencyKey: idempotencyKeyInputSchema
|
|
7602
|
-
}).strict().describe(`Operation for ${action}.`);
|
|
7603
|
-
}
|
|
7604
|
-
var measurementDraftOperationSchema = z2.discriminatedUnion("action", [
|
|
7605
|
-
z2.object({
|
|
7606
|
-
action: z2.literal("create"),
|
|
7607
|
-
request: measurementDraftCreateRequestSchema,
|
|
7608
|
-
idempotencyKey: idempotencyKeyInputSchema
|
|
7609
|
-
}).strict().describe("Operation for create."),
|
|
7610
|
-
measurementDraftMutationOperationSchema("import-sitemap", measurementDraftImportSitemapRequestSchema),
|
|
7611
|
-
measurementDraftMutationOperationSchema("apply-sitemap-selection", measurementDraftApplySitemapSelectionRequestSchema),
|
|
7612
|
-
measurementDraftMutationOperationSchema("upsert-target", measurementDraftUpsertTargetRequestSchema),
|
|
7613
|
-
measurementDraftMutationOperationSchema("rename-target", measurementDraftRenameTargetRequestSchema),
|
|
7614
|
-
measurementDraftMutationOperationSchema("merge-targets", measurementDraftMergeTargetsRequestSchema),
|
|
7615
|
-
measurementDraftMutationOperationSchema("exclude-target", measurementDraftExcludeTargetRequestSchema),
|
|
7616
|
-
measurementDraftMutationOperationSchema("rebind-target", measurementDraftRebindTargetRequestSchema),
|
|
7617
|
-
measurementDraftMutationOperationSchema("apply-assignments", measurementDraftApplyAssignmentsRequestSchema),
|
|
7618
|
-
z2.object({
|
|
7619
|
-
action: z2.literal("preview-assignments"),
|
|
7620
|
-
request: measurementDraftPreviewAssignmentsRequestSchema
|
|
7621
|
-
}).strict().describe("Read-semantic assignment impact preview."),
|
|
7622
|
-
measurementDraftMutationOperationSchema("replace-assignments", measurementDraftReplaceAssignmentsRequestSchema),
|
|
7623
|
-
measurementDraftMutationOperationSchema("apply-paired-assignments", measurementDraftApplyPairedAssignmentsRequestSchema),
|
|
7624
|
-
measurementDraftMutationOperationSchema("remove-assignment", measurementDraftRemoveAssignmentRequestSchema),
|
|
7625
|
-
measurementDraftMutationOperationSchema("clear-assignments", measurementDraftClearAssignmentsRequestSchema),
|
|
7626
|
-
measurementDraftMutationOperationSchema("classify-assignments", measurementDraftClassifyAssignmentsRequestSchema),
|
|
7627
|
-
measurementDraftMutationOperationSchema("upsert-group", measurementDraftUpsertGroupRequestSchema),
|
|
7628
|
-
measurementDraftMutationOperationSchema("remove-group", measurementDraftRemoveGroupRequestSchema),
|
|
7629
|
-
z2.object({
|
|
7630
|
-
action: z2.literal("preview-group-membership"),
|
|
7631
|
-
request: measurementDraftPreviewGroupMembershipRequestSchema
|
|
7632
|
-
}).strict().describe("Read-semantic CSV group-membership preview."),
|
|
7633
|
-
measurementDraftMutationOperationSchema("apply-group-membership", measurementDraftApplyGroupMembershipRequestSchema),
|
|
7634
|
-
measurementDraftMutationOperationSchema("upsert-competitor", measurementDraftUpsertCompetitorRequestSchema),
|
|
7635
|
-
measurementDraftMutationOperationSchema("remove-competitor", measurementDraftRemoveCompetitorRequestSchema),
|
|
7636
|
-
z2.object({ action: z2.literal("compile-preview") }).strict().describe("Operation for compile-preview."),
|
|
7637
|
-
z2.object({ action: z2.literal("diff-preview") }).strict().describe("Operation for diff-preview."),
|
|
7638
|
-
measurementDraftMutationOperationSchema("publish", measurementDraftPublishRequestSchema),
|
|
7639
|
-
z2.object({
|
|
7640
|
-
action: z2.literal("discard"),
|
|
7641
|
-
etag: measurementDraftEtagInputSchema,
|
|
7642
|
-
idempotencyKey: idempotencyKeyInputSchema
|
|
7643
|
-
}).strict().describe("Operation for discard.")
|
|
7644
|
-
]);
|
|
7645
|
-
var measurementDraftActionInputSchema = z2.object({
|
|
7705
|
+
var measurementDraftActionInputSchema = z3.object({
|
|
7646
7706
|
project: projectNameSchema,
|
|
7647
7707
|
operation: measurementDraftOperationSchema.describe("Typed draft operation. Select exactly one action branch.")
|
|
7648
7708
|
}).strict();
|
|
@@ -7673,152 +7733,97 @@ var measurementDraftActionOpenApiOperations = [
|
|
|
7673
7733
|
"POST /api/v1/projects/{name}/measurement-plan/draft/actions/publish",
|
|
7674
7734
|
"POST /api/v1/projects/{name}/measurement-plan/draft/actions/discard"
|
|
7675
7735
|
];
|
|
7676
|
-
|
|
7677
|
-
const { project, operation: actionInput } = input;
|
|
7678
|
-
switch (actionInput.action) {
|
|
7679
|
-
case "create":
|
|
7680
|
-
return client2.createMeasurementPlanDraft(project, actionInput.request, actionInput.idempotencyKey);
|
|
7681
|
-
case "import-sitemap":
|
|
7682
|
-
return client2.importMeasurementDraftSitemap(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7683
|
-
case "apply-sitemap-selection":
|
|
7684
|
-
return client2.applyMeasurementDraftSitemapSelection(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7685
|
-
case "upsert-target":
|
|
7686
|
-
return client2.upsertMeasurementDraftTarget(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7687
|
-
case "rename-target":
|
|
7688
|
-
return client2.renameMeasurementDraftTarget(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7689
|
-
case "merge-targets":
|
|
7690
|
-
return client2.mergeMeasurementDraftTargets(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7691
|
-
case "exclude-target":
|
|
7692
|
-
return client2.excludeMeasurementDraftTarget(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7693
|
-
case "rebind-target":
|
|
7694
|
-
return client2.rebindMeasurementDraftTarget(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7695
|
-
case "apply-assignments":
|
|
7696
|
-
return client2.applyMeasurementDraftAssignments(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7697
|
-
case "preview-assignments":
|
|
7698
|
-
return client2.previewMeasurementDraftAssignments(project, actionInput.request);
|
|
7699
|
-
case "replace-assignments":
|
|
7700
|
-
return client2.replaceMeasurementDraftAssignments(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7701
|
-
case "apply-paired-assignments":
|
|
7702
|
-
return client2.applyPairedMeasurementDraftAssignments(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7703
|
-
case "remove-assignment":
|
|
7704
|
-
return client2.removeMeasurementDraftAssignment(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7705
|
-
case "clear-assignments":
|
|
7706
|
-
return client2.clearMeasurementDraftAssignments(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7707
|
-
case "classify-assignments":
|
|
7708
|
-
return client2.classifyMeasurementDraftAssignments(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7709
|
-
case "upsert-group":
|
|
7710
|
-
return client2.upsertMeasurementDraftGroup(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7711
|
-
case "remove-group":
|
|
7712
|
-
return client2.removeMeasurementDraftGroup(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7713
|
-
case "preview-group-membership":
|
|
7714
|
-
return client2.previewMeasurementDraftGroupMembership(project, actionInput.request);
|
|
7715
|
-
case "apply-group-membership":
|
|
7716
|
-
return client2.applyMeasurementDraftGroupMembership(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7717
|
-
case "upsert-competitor":
|
|
7718
|
-
return client2.upsertMeasurementDraftCompetitor(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7719
|
-
case "remove-competitor":
|
|
7720
|
-
return client2.removeMeasurementDraftCompetitor(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7721
|
-
case "compile-preview":
|
|
7722
|
-
return client2.compileMeasurementDraftPreview(project);
|
|
7723
|
-
case "diff-preview":
|
|
7724
|
-
return client2.diffMeasurementDraftPreview(project);
|
|
7725
|
-
case "publish":
|
|
7726
|
-
return client2.publishMeasurementDraft(project, actionInput.request, actionInput.idempotencyKey, actionInput.etag);
|
|
7727
|
-
case "discard":
|
|
7728
|
-
return client2.discardMeasurementDraft(project, actionInput.idempotencyKey, actionInput.etag);
|
|
7729
|
-
}
|
|
7730
|
-
}
|
|
7731
|
-
var runsListInputSchema = z2.object({
|
|
7736
|
+
var runsListInputSchema = z3.object({
|
|
7732
7737
|
project: projectNameSchema,
|
|
7733
|
-
limit:
|
|
7738
|
+
limit: z3.number().int().positive().max(500).optional()
|
|
7734
7739
|
});
|
|
7735
|
-
var runGetInputSchema =
|
|
7740
|
+
var runGetInputSchema = z3.object({
|
|
7736
7741
|
runId: runIdSchema
|
|
7737
7742
|
});
|
|
7738
|
-
var timelineInputSchema =
|
|
7743
|
+
var timelineInputSchema = z3.object({
|
|
7739
7744
|
project: projectNameSchema,
|
|
7740
|
-
location:
|
|
7741
|
-
limit:
|
|
7745
|
+
location: z3.string().optional().describe("Location label. Use an empty string for locationless results."),
|
|
7746
|
+
limit: z3.number().int().positive().max(100).optional().describe("Restrict history to the most recent N project runs.")
|
|
7742
7747
|
});
|
|
7743
7748
|
var historyFilterShape = {
|
|
7744
|
-
limit:
|
|
7745
|
-
offset:
|
|
7746
|
-
since:
|
|
7747
|
-
action:
|
|
7748
|
-
actor:
|
|
7749
|
-
entityType:
|
|
7750
|
-
};
|
|
7751
|
-
var projectHistoryInputSchema =
|
|
7752
|
-
var globalHistoryInputSchema =
|
|
7753
|
-
var snapshotsListInputSchema =
|
|
7749
|
+
limit: z3.number().int().positive().max(500).optional(),
|
|
7750
|
+
offset: z3.number().int().nonnegative().optional(),
|
|
7751
|
+
since: z3.string().optional().describe("ISO 8601 lower bound."),
|
|
7752
|
+
action: z3.string().optional().describe("Exact audit action filter."),
|
|
7753
|
+
actor: z3.string().optional().describe("Exact actor filter."),
|
|
7754
|
+
entityType: z3.string().optional().describe("Exact entity type filter.")
|
|
7755
|
+
};
|
|
7756
|
+
var projectHistoryInputSchema = z3.object({ project: projectNameSchema, ...historyFilterShape });
|
|
7757
|
+
var globalHistoryInputSchema = z3.object(historyFilterShape);
|
|
7758
|
+
var snapshotsListInputSchema = z3.object({
|
|
7754
7759
|
project: projectNameSchema,
|
|
7755
|
-
limit:
|
|
7756
|
-
offset:
|
|
7757
|
-
location:
|
|
7760
|
+
limit: z3.number().int().positive().max(500).optional(),
|
|
7761
|
+
offset: z3.number().int().nonnegative().optional(),
|
|
7762
|
+
location: z3.string().optional().describe("Location label. Use an empty string for locationless results.")
|
|
7758
7763
|
});
|
|
7759
|
-
var snapshotsDiffInputSchema =
|
|
7764
|
+
var snapshotsDiffInputSchema = z3.object({
|
|
7760
7765
|
project: projectNameSchema,
|
|
7761
7766
|
run1: runIdSchema,
|
|
7762
7767
|
run2: runIdSchema
|
|
7763
7768
|
});
|
|
7764
|
-
var insightsListInputSchema =
|
|
7769
|
+
var insightsListInputSchema = z3.object({
|
|
7765
7770
|
project: projectNameSchema,
|
|
7766
|
-
dismissed:
|
|
7771
|
+
dismissed: z3.boolean().optional(),
|
|
7767
7772
|
runId: runIdSchema.optional()
|
|
7768
7773
|
});
|
|
7769
|
-
var insightInputSchema =
|
|
7774
|
+
var insightInputSchema = z3.object({
|
|
7770
7775
|
project: projectNameSchema,
|
|
7771
7776
|
insightId: insightIdSchema
|
|
7772
7777
|
});
|
|
7773
|
-
var healthHistoryInputSchema =
|
|
7778
|
+
var healthHistoryInputSchema = z3.object({
|
|
7774
7779
|
project: projectNameSchema,
|
|
7775
|
-
limit:
|
|
7780
|
+
limit: z3.number().int().positive().max(100).optional()
|
|
7776
7781
|
});
|
|
7777
|
-
var gscPerformanceInputSchema =
|
|
7782
|
+
var gscPerformanceInputSchema = z3.object({
|
|
7778
7783
|
project: projectNameSchema,
|
|
7779
|
-
startDate:
|
|
7780
|
-
endDate:
|
|
7781
|
-
query:
|
|
7782
|
-
page:
|
|
7783
|
-
limit:
|
|
7784
|
-
offset:
|
|
7784
|
+
startDate: z3.string().optional(),
|
|
7785
|
+
endDate: z3.string().optional(),
|
|
7786
|
+
query: z3.string().optional(),
|
|
7787
|
+
page: z3.string().optional(),
|
|
7788
|
+
limit: z3.number().int().positive().max(5e3).optional(),
|
|
7789
|
+
offset: z3.number().int().nonnegative().optional(),
|
|
7785
7790
|
orderBy: gscPerformanceOrderBySchema.optional(),
|
|
7786
7791
|
window: analyticsWindowSchema.optional()
|
|
7787
7792
|
});
|
|
7788
|
-
var gscPerformanceDailyInputSchema =
|
|
7793
|
+
var gscPerformanceDailyInputSchema = z3.object({
|
|
7789
7794
|
project: projectNameSchema,
|
|
7790
|
-
startDate:
|
|
7791
|
-
endDate:
|
|
7795
|
+
startDate: z3.string().optional(),
|
|
7796
|
+
endDate: z3.string().optional(),
|
|
7792
7797
|
window: analyticsWindowSchema.optional()
|
|
7793
7798
|
});
|
|
7794
|
-
var gscTopPagesInputSchema =
|
|
7799
|
+
var gscTopPagesInputSchema = z3.object({
|
|
7795
7800
|
project: projectNameSchema,
|
|
7796
|
-
startDate:
|
|
7797
|
-
endDate:
|
|
7798
|
-
limit:
|
|
7801
|
+
startDate: z3.string().optional(),
|
|
7802
|
+
endDate: z3.string().optional(),
|
|
7803
|
+
limit: z3.number().int().positive().max(500).optional(),
|
|
7799
7804
|
window: analyticsWindowSchema.optional()
|
|
7800
7805
|
});
|
|
7801
|
-
var gscInspectionsInputSchema =
|
|
7806
|
+
var gscInspectionsInputSchema = z3.object({
|
|
7802
7807
|
project: projectNameSchema,
|
|
7803
|
-
url:
|
|
7804
|
-
limit:
|
|
7808
|
+
url: z3.string().optional(),
|
|
7809
|
+
limit: z3.number().int().positive().max(500).optional()
|
|
7805
7810
|
});
|
|
7806
|
-
var gscCoverageHistoryInputSchema =
|
|
7811
|
+
var gscCoverageHistoryInputSchema = z3.object({
|
|
7807
7812
|
project: projectNameSchema,
|
|
7808
|
-
limit:
|
|
7813
|
+
limit: z3.number().int().positive().max(500).optional()
|
|
7809
7814
|
});
|
|
7810
|
-
var gscSitemapsInputSchema =
|
|
7815
|
+
var gscSitemapsInputSchema = z3.object({
|
|
7811
7816
|
project: projectNameSchema,
|
|
7812
|
-
sitemapIndex:
|
|
7817
|
+
sitemapIndex: z3.string().url().optional()
|
|
7813
7818
|
});
|
|
7814
|
-
var gscSitemapsSubmitInputSchema =
|
|
7815
|
-
|
|
7819
|
+
var gscSitemapsSubmitInputSchema = z3.union([
|
|
7820
|
+
z3.object({
|
|
7816
7821
|
project: projectNameSchema,
|
|
7817
|
-
sitemapUrls:
|
|
7822
|
+
sitemapUrls: z3.array(z3.string().url()).min(1).max(50)
|
|
7818
7823
|
}).strict(),
|
|
7819
|
-
|
|
7824
|
+
z3.object({
|
|
7820
7825
|
project: projectNameSchema,
|
|
7821
|
-
mode:
|
|
7826
|
+
mode: z3.enum(["indexes", "all-files"])
|
|
7822
7827
|
}).strict()
|
|
7823
7828
|
]);
|
|
7824
7829
|
async function submitGscSitemapsFromMcp(client2, input) {
|
|
@@ -7893,82 +7898,82 @@ async function submitGscSitemapsFromMcp(client2, input) {
|
|
|
7893
7898
|
}
|
|
7894
7899
|
return aggregate;
|
|
7895
7900
|
}
|
|
7896
|
-
var gaWindowInputSchema =
|
|
7901
|
+
var gaWindowInputSchema = z3.object({
|
|
7897
7902
|
project: projectNameSchema,
|
|
7898
7903
|
window: analyticsWindowSchema.optional(),
|
|
7899
|
-
startDate:
|
|
7900
|
-
endDate:
|
|
7904
|
+
startDate: z3.string().optional(),
|
|
7905
|
+
endDate: z3.string().optional()
|
|
7901
7906
|
});
|
|
7902
7907
|
var GA_RANGE_PARAMS = ["window", "startDate", "endDate"];
|
|
7903
7908
|
var gaTrafficInputSchema = gaWindowInputSchema.extend({
|
|
7904
|
-
limit:
|
|
7909
|
+
limit: z3.number().int().positive().max(500).optional()
|
|
7905
7910
|
});
|
|
7906
|
-
var gaMeasurementAnalysisInputSchema =
|
|
7911
|
+
var gaMeasurementAnalysisInputSchema = z3.object({
|
|
7907
7912
|
project: projectNameSchema,
|
|
7908
7913
|
window: gaMeasurementAnalysisWindowSchema.optional(),
|
|
7909
7914
|
hostScope: gaMeasurementHostScopeSchema.optional(),
|
|
7910
|
-
pathPrefix:
|
|
7911
|
-
limit:
|
|
7915
|
+
pathPrefix: z3.string().min(1).optional(),
|
|
7916
|
+
limit: z3.number().int().positive().max(100).optional()
|
|
7912
7917
|
});
|
|
7913
|
-
var queriesInputSchema =
|
|
7918
|
+
var queriesInputSchema = z3.object({
|
|
7914
7919
|
project: projectNameSchema,
|
|
7915
7920
|
request: queryBatchRequestSchema
|
|
7916
7921
|
});
|
|
7917
|
-
var queryGenerateInputSchema =
|
|
7922
|
+
var queryGenerateInputSchema = z3.object({
|
|
7918
7923
|
project: projectNameSchema,
|
|
7919
7924
|
request: queryGenerateRequestSchema
|
|
7920
7925
|
});
|
|
7921
|
-
var gbpListLocationsInputSchema =
|
|
7926
|
+
var gbpListLocationsInputSchema = z3.object({
|
|
7922
7927
|
project: projectNameSchema,
|
|
7923
|
-
selected:
|
|
7928
|
+
selected: z3.boolean().optional()
|
|
7924
7929
|
});
|
|
7925
|
-
var gbpDiscoverInputSchema =
|
|
7930
|
+
var gbpDiscoverInputSchema = z3.object({
|
|
7926
7931
|
project: projectNameSchema,
|
|
7927
|
-
selectAllNew:
|
|
7928
|
-
accountName:
|
|
7929
|
-
switchAccount:
|
|
7932
|
+
selectAllNew: z3.boolean().optional().default(true),
|
|
7933
|
+
accountName: z3.string().regex(/^accounts\//, 'accountName must be a Google resource name like "accounts/12345"').optional(),
|
|
7934
|
+
switchAccount: z3.boolean().optional().default(false)
|
|
7930
7935
|
});
|
|
7931
|
-
var gbpLocationSelectionInputSchema =
|
|
7936
|
+
var gbpLocationSelectionInputSchema = z3.object({
|
|
7932
7937
|
project: projectNameSchema,
|
|
7933
|
-
locationName:
|
|
7934
|
-
selected:
|
|
7938
|
+
locationName: z3.string().min(1).regex(/^locations\//, 'locationName must be a Google resource name like "locations/12345"'),
|
|
7939
|
+
selected: z3.boolean()
|
|
7935
7940
|
});
|
|
7936
|
-
var gbpSyncInputSchema =
|
|
7941
|
+
var gbpSyncInputSchema = z3.object({
|
|
7937
7942
|
project: projectNameSchema,
|
|
7938
|
-
locationNames:
|
|
7939
|
-
daysOfMetrics:
|
|
7940
|
-
monthsOfKeywords:
|
|
7943
|
+
locationNames: z3.array(z3.string()).optional(),
|
|
7944
|
+
daysOfMetrics: z3.number().int().positive().max(540).optional(),
|
|
7945
|
+
monthsOfKeywords: z3.number().int().positive().max(18).optional()
|
|
7941
7946
|
});
|
|
7942
|
-
var gbpMetricsInputSchema =
|
|
7947
|
+
var gbpMetricsInputSchema = z3.object({
|
|
7943
7948
|
project: projectNameSchema,
|
|
7944
|
-
locationName:
|
|
7945
|
-
metric:
|
|
7949
|
+
locationName: z3.string().optional(),
|
|
7950
|
+
metric: z3.string().optional()
|
|
7946
7951
|
});
|
|
7947
|
-
var gbpLocationScopedInputSchema =
|
|
7952
|
+
var gbpLocationScopedInputSchema = z3.object({
|
|
7948
7953
|
project: projectNameSchema,
|
|
7949
|
-
locationName:
|
|
7954
|
+
locationName: z3.string().optional()
|
|
7950
7955
|
});
|
|
7951
|
-
var gbpAccountsInputSchema =
|
|
7956
|
+
var gbpAccountsInputSchema = z3.object({
|
|
7952
7957
|
project: projectNameSchema
|
|
7953
7958
|
});
|
|
7954
|
-
var adsInsightsInputSchema =
|
|
7959
|
+
var adsInsightsInputSchema = z3.object({
|
|
7955
7960
|
project: projectNameSchema,
|
|
7956
|
-
level:
|
|
7957
|
-
entityId:
|
|
7958
|
-
from:
|
|
7959
|
-
to:
|
|
7961
|
+
level: z3.enum(["campaign", "ad_group"]).optional(),
|
|
7962
|
+
entityId: z3.string().optional(),
|
|
7963
|
+
from: z3.string().optional(),
|
|
7964
|
+
to: z3.string().optional()
|
|
7960
7965
|
});
|
|
7961
7966
|
var adsGeoSearchInputSchema = adsGeoSearchQuerySchema.extend({
|
|
7962
7967
|
project: projectNameSchema
|
|
7963
7968
|
});
|
|
7964
|
-
var adsLiveDeliveryInputSchema =
|
|
7969
|
+
var adsLiveDeliveryInputSchema = z3.object({
|
|
7965
7970
|
project: projectNameSchema,
|
|
7966
|
-
campaignId:
|
|
7967
|
-
lookbackDays:
|
|
7971
|
+
campaignId: z3.string().min(1).max(200).optional(),
|
|
7972
|
+
lookbackDays: z3.number().int().min(1).max(30).optional()
|
|
7968
7973
|
});
|
|
7969
|
-
var adsOperationInputSchema =
|
|
7974
|
+
var adsOperationInputSchema = z3.object({
|
|
7970
7975
|
project: projectNameSchema,
|
|
7971
|
-
operationKey:
|
|
7976
|
+
operationKey: z3.string().min(8).max(128)
|
|
7972
7977
|
});
|
|
7973
7978
|
var adsOperationResumeActivationInputSchema = adsOperationInputSchema.strict();
|
|
7974
7979
|
var adsUnresolvedOperationsInputSchema = adsUnresolvedOperationListQuerySchema.extend({
|
|
@@ -7976,238 +7981,238 @@ var adsUnresolvedOperationsInputSchema = adsUnresolvedOperationListQuerySchema.e
|
|
|
7976
7981
|
});
|
|
7977
7982
|
var adsOperationReconcileInputSchema = adsOperationReconcileRequestSchema.extend({
|
|
7978
7983
|
project: projectNameSchema,
|
|
7979
|
-
operationKey:
|
|
7984
|
+
operationKey: z3.string().min(8).max(128)
|
|
7980
7985
|
});
|
|
7981
|
-
var adsImageUploadInputSchema =
|
|
7986
|
+
var adsImageUploadInputSchema = z3.object({
|
|
7982
7987
|
project: projectNameSchema,
|
|
7983
7988
|
request: adsImageUploadRequestSchema
|
|
7984
7989
|
});
|
|
7985
|
-
var adsCampaignCreateInputSchema =
|
|
7990
|
+
var adsCampaignCreateInputSchema = z3.object({
|
|
7986
7991
|
project: projectNameSchema,
|
|
7987
7992
|
request: adsCampaignCreateRequestSchema
|
|
7988
7993
|
});
|
|
7989
|
-
var adsCampaignUpdateInputSchema =
|
|
7994
|
+
var adsCampaignUpdateInputSchema = z3.object({
|
|
7990
7995
|
project: projectNameSchema,
|
|
7991
|
-
campaignId:
|
|
7996
|
+
campaignId: z3.string().min(1),
|
|
7992
7997
|
request: adsCampaignUpdateRequestSchema
|
|
7993
7998
|
});
|
|
7994
|
-
var adsCampaignActivateTreeInputSchema =
|
|
7999
|
+
var adsCampaignActivateTreeInputSchema = z3.object({
|
|
7995
8000
|
project: projectNameSchema,
|
|
7996
|
-
campaignId:
|
|
8001
|
+
campaignId: z3.string().min(1),
|
|
7997
8002
|
request: adsActivateTreeRequestSchema
|
|
7998
8003
|
});
|
|
7999
|
-
var adsCampaignPauseInputSchema =
|
|
8004
|
+
var adsCampaignPauseInputSchema = z3.object({
|
|
8000
8005
|
project: projectNameSchema,
|
|
8001
|
-
campaignId:
|
|
8006
|
+
campaignId: z3.string().min(1),
|
|
8002
8007
|
request: adsPauseRequestSchema
|
|
8003
8008
|
});
|
|
8004
|
-
var adsAdGroupCreateInputSchema =
|
|
8009
|
+
var adsAdGroupCreateInputSchema = z3.object({
|
|
8005
8010
|
project: projectNameSchema,
|
|
8006
8011
|
request: adsAdGroupCreateRequestSchema
|
|
8007
8012
|
});
|
|
8008
|
-
var adsAdGroupUpdateInputSchema =
|
|
8013
|
+
var adsAdGroupUpdateInputSchema = z3.object({
|
|
8009
8014
|
project: projectNameSchema,
|
|
8010
|
-
adGroupId:
|
|
8015
|
+
adGroupId: z3.string().min(1),
|
|
8011
8016
|
request: adsAdGroupUpdateRequestSchema
|
|
8012
8017
|
});
|
|
8013
|
-
var adsAdGroupPauseInputSchema =
|
|
8018
|
+
var adsAdGroupPauseInputSchema = z3.object({
|
|
8014
8019
|
project: projectNameSchema,
|
|
8015
|
-
adGroupId:
|
|
8020
|
+
adGroupId: z3.string().min(1),
|
|
8016
8021
|
request: adsPauseRequestSchema
|
|
8017
8022
|
});
|
|
8018
|
-
var adsAdCreateInputSchema =
|
|
8023
|
+
var adsAdCreateInputSchema = z3.object({
|
|
8019
8024
|
project: projectNameSchema,
|
|
8020
8025
|
request: adsAdCreateRequestSchema
|
|
8021
8026
|
});
|
|
8022
|
-
var adsAdUpdateInputSchema =
|
|
8027
|
+
var adsAdUpdateInputSchema = z3.object({
|
|
8023
8028
|
project: projectNameSchema,
|
|
8024
|
-
adId:
|
|
8029
|
+
adId: z3.string().min(1),
|
|
8025
8030
|
request: adsAdUpdateRequestSchema
|
|
8026
8031
|
});
|
|
8027
|
-
var adsAdPauseInputSchema =
|
|
8032
|
+
var adsAdPauseInputSchema = z3.object({
|
|
8028
8033
|
project: projectNameSchema,
|
|
8029
|
-
adId:
|
|
8034
|
+
adId: z3.string().min(1),
|
|
8030
8035
|
request: adsPauseRequestSchema
|
|
8031
8036
|
});
|
|
8032
|
-
var keywordsInputSchema =
|
|
8037
|
+
var keywordsInputSchema = z3.object({
|
|
8033
8038
|
project: projectNameSchema,
|
|
8034
8039
|
request: keywordBatchRequestSchema
|
|
8035
8040
|
});
|
|
8036
|
-
var keywordGenerateInputSchema =
|
|
8041
|
+
var keywordGenerateInputSchema = z3.object({
|
|
8037
8042
|
project: projectNameSchema,
|
|
8038
8043
|
request: keywordGenerateRequestSchema
|
|
8039
8044
|
});
|
|
8040
|
-
var competitorsInputSchema =
|
|
8045
|
+
var competitorsInputSchema = z3.object({
|
|
8041
8046
|
project: projectNameSchema,
|
|
8042
8047
|
request: competitorBatchRequestSchema
|
|
8043
8048
|
});
|
|
8044
|
-
var projectUpsertInputSchema =
|
|
8049
|
+
var projectUpsertInputSchema = z3.object({
|
|
8045
8050
|
project: projectNameSchema,
|
|
8046
8051
|
request: projectUpsertRequestSchema
|
|
8047
8052
|
});
|
|
8048
|
-
var applyConfigInputSchema =
|
|
8053
|
+
var applyConfigInputSchema = z3.object({
|
|
8049
8054
|
config: projectConfigSchema
|
|
8050
8055
|
});
|
|
8051
|
-
var scheduleSetInputSchema =
|
|
8056
|
+
var scheduleSetInputSchema = z3.object({
|
|
8052
8057
|
project: projectNameSchema,
|
|
8053
8058
|
schedule: scheduleUpsertRequestSchema
|
|
8054
8059
|
});
|
|
8055
|
-
var scheduleReadInputSchema =
|
|
8060
|
+
var scheduleReadInputSchema = z3.object({
|
|
8056
8061
|
project: projectNameSchema,
|
|
8057
8062
|
kind: schedulableRunKindSchema.optional().describe('Schedulable run kind. Defaults to "answer-visibility" if omitted.')
|
|
8058
8063
|
});
|
|
8059
|
-
var agentWebhookAttachInputSchema =
|
|
8064
|
+
var agentWebhookAttachInputSchema = z3.object({
|
|
8060
8065
|
project: projectNameSchema,
|
|
8061
|
-
url:
|
|
8066
|
+
url: z3.string().url()
|
|
8062
8067
|
});
|
|
8063
|
-
var doctorInputSchema =
|
|
8068
|
+
var doctorInputSchema = z3.object({
|
|
8064
8069
|
project: projectNameSchema.optional().describe("Project name to scope project-level checks. Omit to run global checks (provider keys, config, etc.)."),
|
|
8065
|
-
checks:
|
|
8070
|
+
checks: z3.array(z3.string().min(1)).optional().describe('Optional check IDs or wildcard prefixes (e.g. "google.auth.*", "config.providers"). Empty/omitted runs all matching checks for the chosen scope.')
|
|
8066
8071
|
});
|
|
8067
|
-
var contentTargetsInputSchema =
|
|
8072
|
+
var contentTargetsInputSchema = z3.object({
|
|
8068
8073
|
project: projectNameSchema,
|
|
8069
|
-
limit:
|
|
8070
|
-
includeInProgress:
|
|
8071
|
-
winnabilityClass:
|
|
8072
|
-
ownable:
|
|
8074
|
+
limit: z3.number().int().positive().max(500).optional().describe("Max rows. Defaults to all. Use a small number (3-10) when summarizing for the user."),
|
|
8075
|
+
includeInProgress: z3.boolean().optional().describe("Include rows that already have an in-flight tracked action. Default false."),
|
|
8076
|
+
winnabilityClass: z3.enum(["ownable", "ceded"]).optional().describe('Filter by winnability: "ownable" (worth a brief) or "ceded" (aggregator/editorial head term to skip).'),
|
|
8077
|
+
ownable: z3.boolean().optional().describe('Convenience: when true, return only ownable targets (same as winnabilityClass="ownable").')
|
|
8073
8078
|
});
|
|
8074
|
-
var contentBriefInputSchema =
|
|
8079
|
+
var contentBriefInputSchema = z3.object({
|
|
8075
8080
|
project: projectNameSchema,
|
|
8076
|
-
targetRef:
|
|
8077
|
-
provider:
|
|
8078
|
-
model:
|
|
8079
|
-
forceRefresh:
|
|
8081
|
+
targetRef: z3.string().min(1).describe("Stable target ref from canonry_content_targets. The target must be ownable; ceded targets are rejected."),
|
|
8082
|
+
provider: z3.string().optional().describe("Optional provider override (claude|openai|gemini|zai|deepinfra)."),
|
|
8083
|
+
model: z3.string().optional().describe("Optional model override within the chosen provider."),
|
|
8084
|
+
forceRefresh: z3.boolean().optional().describe("Force a fresh synthesis even if a cached brief exists.")
|
|
8080
8085
|
});
|
|
8081
|
-
var contentMapInputSchema =
|
|
8086
|
+
var contentMapInputSchema = z3.object({
|
|
8082
8087
|
project: projectNameSchema
|
|
8083
8088
|
});
|
|
8084
|
-
var backlinksDomainsInputSchema =
|
|
8089
|
+
var backlinksDomainsInputSchema = z3.object({
|
|
8085
8090
|
project: projectNameSchema,
|
|
8086
|
-
limit:
|
|
8087
|
-
release:
|
|
8091
|
+
limit: z3.number().int().positive().max(200).optional().describe("Max linking-domain rows. Default 50, max 200."),
|
|
8092
|
+
release: z3.string().optional().describe("Common Crawl release id, e.g. cc-main-2026-jan-feb-mar. Omit for the most recent release with data."),
|
|
8088
8093
|
source: backlinkSourceSchema.optional().describe("Stored source. Common Crawl is active; bing-webmaster is historical-only.")
|
|
8089
8094
|
});
|
|
8090
|
-
var backlinksSourcesInputSchema =
|
|
8095
|
+
var backlinksSourcesInputSchema = z3.object({
|
|
8091
8096
|
project: projectNameSchema
|
|
8092
8097
|
});
|
|
8093
|
-
var memoryUpsertInputSchema =
|
|
8098
|
+
var memoryUpsertInputSchema = z3.object({
|
|
8094
8099
|
project: projectNameSchema,
|
|
8095
|
-
key:
|
|
8096
|
-
value:
|
|
8100
|
+
key: z3.string().min(1).max(AGENT_MEMORY_KEY_MAX_LENGTH).describe(`Stable identifier for the note (max ${AGENT_MEMORY_KEY_MAX_LENGTH} chars). Writing the same key overwrites the prior value.`),
|
|
8101
|
+
value: z3.string().min(1).describe(`Plain-text note body (max ${AGENT_MEMORY_VALUE_MAX_BYTES} bytes). Use for durable operator preferences, migration context, or non-obvious reasoning that should survive future sessions.`)
|
|
8097
8102
|
});
|
|
8098
|
-
var memoryForgetInputSchema =
|
|
8103
|
+
var memoryForgetInputSchema = z3.object({
|
|
8099
8104
|
project: projectNameSchema,
|
|
8100
|
-
key:
|
|
8105
|
+
key: z3.string().min(1).max(AGENT_MEMORY_KEY_MAX_LENGTH).describe("Exact key of the note to remove. No-op (status=missing) when no note exists for that key.")
|
|
8101
8106
|
});
|
|
8102
|
-
var trafficConnectCloudRunInputSchema =
|
|
8107
|
+
var trafficConnectCloudRunInputSchema = z3.object({
|
|
8103
8108
|
project: projectNameSchema,
|
|
8104
8109
|
request: trafficConnectCloudRunRequestSchema
|
|
8105
8110
|
});
|
|
8106
|
-
var trafficConnectWordpressInputSchema =
|
|
8111
|
+
var trafficConnectWordpressInputSchema = z3.object({
|
|
8107
8112
|
project: projectNameSchema,
|
|
8108
8113
|
request: trafficConnectWordpressRequestSchema
|
|
8109
8114
|
});
|
|
8110
|
-
var trafficConnectVercelInputSchema =
|
|
8115
|
+
var trafficConnectVercelInputSchema = z3.object({
|
|
8111
8116
|
project: projectNameSchema,
|
|
8112
8117
|
request: trafficConnectVercelRequestSchema
|
|
8113
8118
|
});
|
|
8114
|
-
var trafficSyncInputSchema =
|
|
8119
|
+
var trafficSyncInputSchema = z3.object({
|
|
8115
8120
|
project: projectNameSchema,
|
|
8116
|
-
sourceId:
|
|
8117
|
-
sinceMinutes:
|
|
8121
|
+
sourceId: z3.string().min(1).describe("Traffic source ID returned by canonry_traffic_connect_cloud_run or canonry_traffic_sources_list."),
|
|
8122
|
+
sinceMinutes: z3.number().int().positive().max(7 * 24 * 60).optional().describe("Lookback window in minutes. Defaults to the source's configured window (60 min) when omitted; clamped forward to lastSyncedAt to avoid double-counting.")
|
|
8118
8123
|
});
|
|
8119
|
-
var trafficBackfillInputSchema =
|
|
8124
|
+
var trafficBackfillInputSchema = z3.object({
|
|
8120
8125
|
project: projectNameSchema,
|
|
8121
|
-
sourceId:
|
|
8122
|
-
days:
|
|
8126
|
+
sourceId: z3.string().min(1).describe("Traffic source ID returned by canonry_traffic_sources_list."),
|
|
8127
|
+
days: z3.number().int().positive().max(30).optional().describe("Lookback window in days. Default 30, capped server-side at the upstream log retention ceiling (Cloud Logging _Default = 30d).")
|
|
8123
8128
|
});
|
|
8124
|
-
var trafficResetInputSchema =
|
|
8129
|
+
var trafficResetInputSchema = z3.object({
|
|
8125
8130
|
project: projectNameSchema,
|
|
8126
|
-
sourceId:
|
|
8127
|
-
advanceToNow:
|
|
8131
|
+
sourceId: z3.string().min(1).describe("Traffic source ID returned by canonry_traffic_sources_list."),
|
|
8132
|
+
advanceToNow: z3.literal(true).describe("Must be `true`. Explicit gate against accidental resets. Advances lastSyncedAt to NOW and clears the source's error state.")
|
|
8128
8133
|
});
|
|
8129
|
-
var trafficEventsInputSchema =
|
|
8134
|
+
var trafficEventsInputSchema = z3.object({
|
|
8130
8135
|
project: projectNameSchema,
|
|
8131
|
-
since:
|
|
8132
|
-
until:
|
|
8133
|
-
kind:
|
|
8134
|
-
sourceId:
|
|
8135
|
-
limit:
|
|
8136
|
+
since: z3.string().optional().describe("ISO 8601 lower bound. Defaults to 24h ago when omitted."),
|
|
8137
|
+
until: z3.string().optional().describe("ISO 8601 upper bound. Defaults to now when omitted."),
|
|
8138
|
+
kind: z3.union([trafficEventKindSchema, z3.literal("all")]).optional().describe('Filter to one traffic kind; "all" (default) returns every kind.'),
|
|
8139
|
+
sourceId: z3.string().min(1).optional().describe("Restrict to a single traffic source ID."),
|
|
8140
|
+
limit: z3.number().int().positive().max(5e3).optional().describe("Max combined rows. Defaults to 500, max 5000. Totals always reflect the full window."),
|
|
8136
8141
|
granularity: trafficSeriesGranularitySchema.optional().describe("Full-window chart series bucket size: hour (default) or day.")
|
|
8137
8142
|
});
|
|
8138
|
-
var trafficSourceIdInputSchema =
|
|
8143
|
+
var trafficSourceIdInputSchema = z3.object({
|
|
8139
8144
|
project: projectNameSchema,
|
|
8140
|
-
sourceId:
|
|
8145
|
+
sourceId: z3.string().min(1).describe("Traffic source ID.")
|
|
8141
8146
|
});
|
|
8142
|
-
var discoveryRunInputSchema =
|
|
8147
|
+
var discoveryRunInputSchema = z3.object({
|
|
8143
8148
|
project: projectNameSchema,
|
|
8144
8149
|
request: discoveryRunRequestSchema.extend({
|
|
8145
8150
|
// Stronger descriptions for the LLM. The base Zod schema enforces the
|
|
8146
8151
|
// upper bound; this just clarifies the meaning of each knob.
|
|
8147
|
-
icpDescription:
|
|
8148
|
-
buyerDescription:
|
|
8149
|
-
seedProviders:
|
|
8150
|
-
dedupThreshold:
|
|
8151
|
-
maxProbes:
|
|
8152
|
-
probeConcurrency:
|
|
8152
|
+
icpDescription: z3.string().min(1).optional().describe("Free-text ICP description. If omitted, the project must already have spec.icpDescription stored."),
|
|
8153
|
+
buyerDescription: z3.string().min(1).optional().describe("Who evaluates or buys the offering, separate from the ICP. When present, every generated query is anchored on this buyer."),
|
|
8154
|
+
seedProviders: z3.array(z3.enum(["gemini", "openai"])).min(1).optional().describe('Which providers generate seed candidates. Omit for the Gemini-only default; ["gemini","openai"] merges both phrasing distributions before dedup.'),
|
|
8155
|
+
dedupThreshold: z3.number().min(0).max(1).optional().describe("Cosine similarity threshold for clustering seed candidates. Defaults to 0.85. Lower values dedupe more aggressively."),
|
|
8156
|
+
maxProbes: z3.number().int().positive().max(DISCOVERY_MAX_PROBES_CAP).optional().describe(`Max canonical queries to probe in this session. Default 100, hard cap ${DISCOVERY_MAX_PROBES_CAP}.`),
|
|
8157
|
+
probeConcurrency: z3.number().int().min(1).max(DISCOVERY_PROBE_CONCURRENCY_CAP).optional().describe(`How many probes may run in parallel. Default 1 (strictly serial), hard cap ${DISCOVERY_PROBE_CONCURRENCY_CAP}. Probe rows are persisted in canonical order regardless of concurrency, so this only shortens wall-clock time.`)
|
|
8153
8158
|
}).optional()
|
|
8154
8159
|
});
|
|
8155
|
-
var discoverySessionsListInputSchema =
|
|
8160
|
+
var discoverySessionsListInputSchema = z3.object({
|
|
8156
8161
|
project: projectNameSchema,
|
|
8157
|
-
limit:
|
|
8162
|
+
limit: z3.number().int().positive().max(200).optional().describe("Max sessions returned. Default 50.")
|
|
8158
8163
|
});
|
|
8159
|
-
var discoverySessionIdInputSchema =
|
|
8164
|
+
var discoverySessionIdInputSchema = z3.object({
|
|
8160
8165
|
project: projectNameSchema,
|
|
8161
|
-
sessionId:
|
|
8166
|
+
sessionId: z3.string().min(1).describe("Discovery session ID returned by canonry_discover_run_start.")
|
|
8162
8167
|
});
|
|
8163
|
-
var researchRunStartInputSchema =
|
|
8168
|
+
var researchRunStartInputSchema = z3.object({
|
|
8164
8169
|
project: projectNameSchema,
|
|
8165
8170
|
request: researchRunCreateSchema.describe("One shared provider/model/location context for every free-form query in this saved research batch.")
|
|
8166
8171
|
});
|
|
8167
|
-
var researchRunsListInputSchema =
|
|
8172
|
+
var researchRunsListInputSchema = z3.object({
|
|
8168
8173
|
project: projectNameSchema,
|
|
8169
|
-
limit:
|
|
8174
|
+
limit: z3.number().int().positive().max(100).optional().describe("Max saved research runs returned. Default 20.")
|
|
8170
8175
|
});
|
|
8171
|
-
var researchRunIdInputSchema =
|
|
8176
|
+
var researchRunIdInputSchema = z3.object({
|
|
8172
8177
|
project: projectNameSchema,
|
|
8173
|
-
runId:
|
|
8178
|
+
runId: z3.string().min(1).describe("Research run ID returned by canonry_research_run_start.")
|
|
8174
8179
|
});
|
|
8175
|
-
var discoveryHarvestInputSchema =
|
|
8180
|
+
var discoveryHarvestInputSchema = z3.object({
|
|
8176
8181
|
project: projectNameSchema,
|
|
8177
|
-
sessionId:
|
|
8178
|
-
minProbeHits:
|
|
8179
|
-
anchor:
|
|
8182
|
+
sessionId: z3.string().min(1).describe("Discovery session ID returned by canonry_discover_run_start."),
|
|
8183
|
+
minProbeHits: z3.number().int().positive().optional().describe("Recurrence floor \u2014 a candidate must have appeared in at least this many distinct probes to be admitted. Default 1."),
|
|
8184
|
+
anchor: z3.boolean().optional().describe("Apply the subject-anchor filter that drops off-topic acronym collisions. Default true; pass false for new-subject discovery on a well-scoped project.")
|
|
8180
8185
|
});
|
|
8181
|
-
var discoveryPromoteInputSchema =
|
|
8186
|
+
var discoveryPromoteInputSchema = z3.object({
|
|
8182
8187
|
project: projectNameSchema,
|
|
8183
|
-
sessionId:
|
|
8188
|
+
sessionId: z3.string().min(1).describe("Discovery session ID returned by canonry_discover_run_start."),
|
|
8184
8189
|
request: discoveryPromoteRequestSchema.extend({
|
|
8185
8190
|
// Stronger descriptions for the LLM. The base Zod schema enforces the shape.
|
|
8186
|
-
buckets:
|
|
8187
|
-
includeCompetitors:
|
|
8188
|
-
competitorTypes:
|
|
8191
|
+
buckets: z3.array(discoveryBucketSchema).min(1).optional().describe("Which probe buckets to adopt into the tracked basket. Omitted promotes cited + aspirational; include wasted-surface explicitly for off-ICP competitor gaps."),
|
|
8192
|
+
includeCompetitors: z3.boolean().optional().describe("Whether to also merge recurring discovered competitor domains into the project. Defaults to true."),
|
|
8193
|
+
competitorTypes: z3.array(discoveryCompetitorTypeSchema).min(1).optional().describe("Which classified competitor types to merge. Omitted promotes direct-competitor only; pass an explicit list to also adopt editorial-media channels or to recover legacy unknown entries. Ignored when includeCompetitors is false.")
|
|
8189
8194
|
}).optional()
|
|
8190
8195
|
});
|
|
8191
|
-
var technicalAeoScoreInputSchema =
|
|
8196
|
+
var technicalAeoScoreInputSchema = z3.object({
|
|
8192
8197
|
project: projectNameSchema,
|
|
8193
8198
|
runId: runIdSchema.optional().describe("Historical site-audit run ID. Omit for the latest audit.")
|
|
8194
8199
|
});
|
|
8195
|
-
var technicalAeoPagesInputSchema =
|
|
8200
|
+
var technicalAeoPagesInputSchema = z3.object({
|
|
8196
8201
|
project: projectNameSchema,
|
|
8197
8202
|
runId: runIdSchema.optional().describe("Historical site-audit run ID. Omit for the latest audit."),
|
|
8198
|
-
status:
|
|
8199
|
-
sort:
|
|
8200
|
-
limit:
|
|
8201
|
-
offset:
|
|
8203
|
+
status: z3.enum(["success", "error"]).optional().describe("Filter to successfully-audited or errored pages."),
|
|
8204
|
+
sort: z3.enum(["score-asc", "score-desc", "url"]).optional().describe("Sort order. Defaults to score-asc (worst pages first)."),
|
|
8205
|
+
limit: z3.number().int().positive().max(500).optional(),
|
|
8206
|
+
offset: z3.number().int().nonnegative().optional()
|
|
8202
8207
|
});
|
|
8203
|
-
var technicalAeoTrendInputSchema =
|
|
8208
|
+
var technicalAeoTrendInputSchema = z3.object({
|
|
8204
8209
|
project: projectNameSchema,
|
|
8205
|
-
limit:
|
|
8210
|
+
limit: z3.number().int().positive().max(365).optional()
|
|
8206
8211
|
});
|
|
8207
|
-
var technicalAeoRunInputSchema =
|
|
8212
|
+
var technicalAeoRunInputSchema = z3.object({
|
|
8208
8213
|
project: projectNameSchema,
|
|
8209
|
-
sitemapUrl:
|
|
8210
|
-
limit:
|
|
8214
|
+
sitemapUrl: z3.string().url().optional().describe("Override the sitemap URL. Defaults to https://<canonicalDomain>/sitemap.xml."),
|
|
8215
|
+
limit: z3.number().int().positive().max(2e3).optional().describe("Cap pages audited (highest sitemap <priority> first).")
|
|
8211
8216
|
});
|
|
8212
8217
|
var AGENT_WEBHOOK_EVENTS = [
|
|
8213
8218
|
notificationEventSchema.enum["run.completed"],
|
|
@@ -8233,7 +8238,7 @@ var canonryMcpTools = [
|
|
|
8233
8238
|
description: "Get a Canonry project by name.",
|
|
8234
8239
|
access: "read",
|
|
8235
8240
|
tier: "core",
|
|
8236
|
-
inputSchema:
|
|
8241
|
+
inputSchema: projectInputSchema,
|
|
8237
8242
|
annotations: readAnnotations(),
|
|
8238
8243
|
openApiOperations: ["GET /api/v1/projects/{name}"],
|
|
8239
8244
|
handler: (client2, input) => client2.getProject(input.project)
|
|
@@ -8255,10 +8260,10 @@ var canonryMcpTools = [
|
|
|
8255
8260
|
description: 'One-call summary for "how is project X doing?". Returns independent mention and citation coverage, separate query-level movement for each signal, query-basket comparability with added/removed counts, latest run and health, insights, provider/model breakdowns, competitors, attention items, and recent history. Movement excludes queries not shared by both sweeps. Filterable by location and time window. Prefer this over fanning out to separate tools.',
|
|
8256
8261
|
access: "read",
|
|
8257
8262
|
tier: "core",
|
|
8258
|
-
inputSchema:
|
|
8263
|
+
inputSchema: z3.object({
|
|
8259
8264
|
project: projectNameSchema,
|
|
8260
|
-
location:
|
|
8261
|
-
since:
|
|
8265
|
+
location: z3.string().optional().describe('Filter to runs from this location label (e.g. "Boston, MA, US"). Omit for all locations.'),
|
|
8266
|
+
since: z3.string().optional().describe("ISO 8601 datetime \u2014 only include runs at or after this time. Omit for full history.")
|
|
8262
8267
|
}),
|
|
8263
8268
|
annotations: readAnnotations(),
|
|
8264
8269
|
openApiOperations: ["GET /api/v1/projects/{name}/overview"],
|
|
@@ -8273,7 +8278,7 @@ var canonryMcpTools = [
|
|
|
8273
8278
|
description: "Returns the full canonical AEO report bundle for a project \u2014 executive summary, client summary, agency diagnostics, action plan, per-query \xD7 per-provider citation matrix, competitor landscape, AI citation sources, GSC/GA4 performance, social and AI referrals, indexing health, citations trend, prioritized insights, and recommended next steps. Same payload `canonry report <project>` consumes to render audience-specific HTML. Pass `period` (7/14/30/90 days, default 30) to scope the GSC/GA4/server-activity sections and the period-over-period comparisons.",
|
|
8274
8279
|
access: "read",
|
|
8275
8280
|
tier: "monitoring",
|
|
8276
|
-
inputSchema:
|
|
8281
|
+
inputSchema: z3.object({
|
|
8277
8282
|
project: projectNameSchema,
|
|
8278
8283
|
period: reportPeriodSchema.optional()
|
|
8279
8284
|
}),
|
|
@@ -8287,7 +8292,7 @@ var canonryMcpTools = [
|
|
|
8287
8292
|
description: "One-call investigation of whether organic work is gaining visibility, traffic, or AI attention. Returns source-specific 30-day GSC and GA4 cohorts, URL-agnostic page evidence, available GA4 lead-event evidence (not lead attribution), 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.",
|
|
8288
8293
|
access: "read",
|
|
8289
8294
|
tier: "monitoring",
|
|
8290
|
-
inputSchema:
|
|
8295
|
+
inputSchema: z3.object({
|
|
8291
8296
|
project: projectNameSchema,
|
|
8292
8297
|
period: organicEvidencePeriodSchema.optional().describe("Evidence window: 60 or 90 days (default 90).")
|
|
8293
8298
|
}),
|
|
@@ -8301,7 +8306,7 @@ var canonryMcpTools = [
|
|
|
8301
8306
|
description: "Citation and mention rates over time for a project, bucketed adaptively (daily \u2192 monthly by span) and probe-excluded. Returns overall + per-provider window aggregates AND a per-bucket `byProvider` breakdown so you can read how each engine's cited/mentioned rate moved run-over-run \u2014 the same data the dashboard's \"Citations & mentions over time\" chart plots. Includes trend direction (improving/declining/stable) for both signals and query-set-change annotations. Filter the range with `window` (7d/30d/90d/all).",
|
|
8302
8307
|
access: "read",
|
|
8303
8308
|
tier: "monitoring",
|
|
8304
|
-
inputSchema:
|
|
8309
|
+
inputSchema: z3.object({
|
|
8305
8310
|
project: projectNameSchema,
|
|
8306
8311
|
window: analyticsWindowSchema.optional().describe("Time range: 7d, 30d, 90d, or all (default all).")
|
|
8307
8312
|
}),
|
|
@@ -8315,10 +8320,10 @@ var canonryMcpTools = [
|
|
|
8315
8320
|
description: "Where AI engines get the facts they cite for a project. Returns the FULL ranked list of cited domains (not truncated) \u2014 each tagged with a category and an actionable surface class (own / direct-competitor / ota-aggregator / editorial-media / other) \u2014 plus a surface-class roll-up and a per-provider breakdown (each provider's cited-domain mix + total cited slots). The surface class is deterministic (own/competitor from project data, the rest from the source allow-list) and enriched by discovery's stored per-domain classifications when present \u2014 no new LLM calls. Probe-excluded, window-filterable (7d/30d/90d/all). Use `limit` to cap each ranked list to the top N domains (an explicit long-tail rollup preserves the totals). All counts/shares/classification are computed server-side.",
|
|
8316
8321
|
access: "read",
|
|
8317
8322
|
tier: "monitoring",
|
|
8318
|
-
inputSchema:
|
|
8323
|
+
inputSchema: z3.object({
|
|
8319
8324
|
project: projectNameSchema,
|
|
8320
8325
|
window: analyticsWindowSchema.optional().describe("Time range: 7d, 30d, 90d, or all (default all)."),
|
|
8321
|
-
limit:
|
|
8326
|
+
limit: z3.number().int().positive().optional().describe("Cap each ranked list to the top N domains. Omit for the full list.")
|
|
8322
8327
|
}),
|
|
8323
8328
|
annotations: readAnnotations(),
|
|
8324
8329
|
openApiOperations: ["GET /api/v1/projects/{name}/analytics/sources"],
|
|
@@ -8330,10 +8335,10 @@ var canonryMcpTools = [
|
|
|
8330
8335
|
description: "Search query snapshots and intelligence insights for the given text. Looks at snapshot answer text, cited domains, raw provider responses, and insight title/query/recommendation/cause. Returns ranked hits with snippets \u2014 use it instead of paginating snapshots when you need to find a competitor mention or term.",
|
|
8331
8336
|
access: "read",
|
|
8332
8337
|
tier: "core",
|
|
8333
|
-
inputSchema:
|
|
8338
|
+
inputSchema: z3.object({
|
|
8334
8339
|
project: projectNameSchema,
|
|
8335
|
-
q:
|
|
8336
|
-
limit:
|
|
8340
|
+
q: z3.string().min(2).describe("Search term, at least 2 characters."),
|
|
8341
|
+
limit: z3.number().int().positive().max(50).optional().describe("Max combined hits (1-50, default 25).")
|
|
8337
8342
|
}),
|
|
8338
8343
|
annotations: readAnnotations(),
|
|
8339
8344
|
openApiOperations: ["GET /api/v1/projects/{name}/search"],
|
|
@@ -8521,14 +8526,14 @@ var canonryMcpTools = [
|
|
|
8521
8526
|
description: 'Per-query mention (answer-text) and citation (source-list) counts WITH a sample size, pooled across many answer-visibility runs (probe-excluded) \u2014 the data to compute a confidence-aware (Wilson) proportion or detect drift without fetching every run. Tri-state aware: `checked` (the n for the mention proportion) counts only snapshots where answerMentioned was recorded; `null` ("not checked") is excluded, never counted as not-mentioned. Returns per-query `total`/`checked`/`mentioned`/`cited` + derived `mentionRate` (mentioned/checked) and `citedRate` (cited/total), `firstObserved`/`lastObserved`, and pooled `totals`. Window with `since`/`until` (ISO), `lastRuns`, or `month=YYYY-MM` (mutually exclusive); with none set, EVERY completed/partial run is pooled (`window.runCount` says how many) \u2014 pass `lastRuns` for a recent sample. Set `groupBy=provider` for a per-provider breakdown whose counts sum to the pooled counts (`groupBy` is omitted from the response otherwise). Set `shareOfVoice=true` for pooled project-vs-tracked-competitor brand-mention share across the same attributed snapshot set.',
|
|
8522
8527
|
access: "read",
|
|
8523
8528
|
tier: "monitoring",
|
|
8524
|
-
inputSchema:
|
|
8529
|
+
inputSchema: z3.object({
|
|
8525
8530
|
project: projectNameSchema,
|
|
8526
|
-
since:
|
|
8527
|
-
until:
|
|
8528
|
-
lastRuns:
|
|
8529
|
-
month:
|
|
8530
|
-
groupBy:
|
|
8531
|
-
shareOfVoice:
|
|
8531
|
+
since: z3.string().optional().describe("Inclusive lower bound on run createdAt (ISO 8601). A date-only value (YYYY-MM-DD) is the start of that UTC day. Mutually exclusive with lastRuns/month."),
|
|
8532
|
+
until: z3.string().optional().describe("Inclusive upper bound on run createdAt (ISO 8601). A date-only value (YYYY-MM-DD) covers the whole UTC day (through 23:59:59.999). Mutually exclusive with lastRuns/month."),
|
|
8533
|
+
lastRuns: z3.number().int().positive().optional().describe("Aggregate only the most recent N answer-visibility runs. Mutually exclusive with since/until/month."),
|
|
8534
|
+
month: z3.string().optional().describe("Aggregate one calendar month (YYYY-MM), expanded to that month's inclusive UTC bounds. Mutually exclusive with since/until/lastRuns."),
|
|
8535
|
+
groupBy: z3.enum(["provider"]).optional().describe('Set to "provider" for a per-provider breakdown.'),
|
|
8536
|
+
shareOfVoice: z3.boolean().optional().describe("Include pooled project-vs-tracked-competitor brand-mention share across the same window.")
|
|
8532
8537
|
}),
|
|
8533
8538
|
annotations: readAnnotations(),
|
|
8534
8539
|
openApiOperations: ["GET /api/v1/projects/{name}/visibility-stats"],
|
|
@@ -8547,10 +8552,10 @@ var canonryMcpTools = [
|
|
|
8547
8552
|
description: "Statistically honest month-over-month AEO comparison in ONE call \u2014 use this instead of hand-computing deltas from two visibility-stats calls. Share of voice (`mention-share-of-voice`, `driftRobust: true`) is less exposed to broad model-wide naming propensity than absolute rates, but it never overrides model continuity. The response restricts to common query/provider pairs, then includes only providers with exactly one known, identical configured model id in both months. `continuity` surfaces every provider, its model evidence, and whether it was excluded for a changed, mixed mid-month, or unknown model. When no provider remains, metrics return `model-discontinuous` or `model-unknown`, never a directional call. A silent upstream version bump under an unchanged configured id remains undetectable. `from` must be a month strictly before `to`.",
|
|
8548
8553
|
access: "read",
|
|
8549
8554
|
tier: "monitoring",
|
|
8550
|
-
inputSchema:
|
|
8555
|
+
inputSchema: z3.object({
|
|
8551
8556
|
project: projectNameSchema,
|
|
8552
|
-
from:
|
|
8553
|
-
to:
|
|
8557
|
+
from: z3.string().describe('Earlier calendar month (YYYY-MM), the baseline. Must be strictly before "to".'),
|
|
8558
|
+
to: z3.string().describe('Later calendar month (YYYY-MM), compared against "from".')
|
|
8554
8559
|
}),
|
|
8555
8560
|
annotations: readAnnotations(),
|
|
8556
8561
|
openApiOperations: ["GET /api/v1/projects/{name}/visibility-compare"],
|
|
@@ -9602,7 +9607,7 @@ var canonryMcpTools = [
|
|
|
9602
9607
|
inputSchema: measurementDraftActionInputSchema,
|
|
9603
9608
|
annotations: writeAnnotations({ idempotentHint: true, destructiveHint: true, openWorldHint: true }),
|
|
9604
9609
|
openApiOperations: measurementDraftActionOpenApiOperations,
|
|
9605
|
-
handler: runMeasurementDraftAction
|
|
9610
|
+
handler: (client2, input) => runMeasurementDraftAction(client2, input.project, input.operation)
|
|
9606
9611
|
}),
|
|
9607
9612
|
defineTool({
|
|
9608
9613
|
name: "canonry_measurement_plan_deactivate",
|
|
@@ -10390,6 +10395,8 @@ export {
|
|
|
10390
10395
|
createApiClient,
|
|
10391
10396
|
ApiClient,
|
|
10392
10397
|
PACKAGE_VERSION,
|
|
10398
|
+
measurementDraftOperationSchema,
|
|
10399
|
+
runMeasurementDraftAction,
|
|
10393
10400
|
canonryMcpTools,
|
|
10394
10401
|
CanonryMcpToolNames
|
|
10395
10402
|
};
|