@canonry/canonry 4.133.1 → 4.133.3

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.
Files changed (28) hide show
  1. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +7 -0
  2. package/assets/assets/{AuditHistoryPanel-BKJ_bJO3.js → AuditHistoryPanel-DTHQGvkW.js} +1 -1
  3. package/assets/assets/{BacklinksPage-Dlp78T7O.js → BacklinksPage-DuPI3wt9.js} +1 -1
  4. package/assets/assets/{ChartPrimitives-BnqLVaHC.js → ChartPrimitives-T8mxOObc.js} +1 -1
  5. package/assets/assets/{HistoryPage-dEjboZIm.js → HistoryPage-T1W40xKG.js} +1 -1
  6. package/assets/assets/ProjectPage-DYwM8-Rp.js +8 -0
  7. package/assets/assets/{RunRow-C0PeLbDh.js → RunRow-nHr4wW9B.js} +1 -1
  8. package/assets/assets/{RunsPage-8cmHsMEV.js → RunsPage-Cbusy_84.js} +1 -1
  9. package/assets/assets/{SettingsPage-FzWCV54A.js → SettingsPage-BVcbl4gn.js} +1 -1
  10. package/assets/assets/{TrafficPage-BrEuU4K9.js → TrafficPage-CZ4NTWI6.js} +1 -1
  11. package/assets/assets/{TrafficSourceDetailPage-yqyQGzqQ.js → TrafficSourceDetailPage-xW-KvZY1.js} +1 -1
  12. package/assets/assets/{arrow-left-DJbzrqwz.js → arrow-left-flskyFPK.js} +1 -1
  13. package/assets/assets/{extract-error-message-7lcxZroQ.js → extract-error-message-BHfCTm0H.js} +1 -1
  14. package/assets/assets/{index-DtOyJ_1v.js → index-CQzGDGMB.js} +64 -64
  15. package/assets/assets/index-JhX-wfQO.css +1 -0
  16. package/assets/assets/{trash-2-DFJYR1Fq.js → trash-2-LGfqtSzZ.js} +1 -1
  17. package/assets/index.html +2 -2
  18. package/dist/{chunk-42P7POVS.js → chunk-6ON6GUAL.js} +9 -5
  19. package/dist/{chunk-P4MIG7V5.js → chunk-A6BYMSZL.js} +30 -2
  20. package/dist/{chunk-VPY3PZXV.js → chunk-HENMGNLT.js} +344 -59
  21. package/dist/{chunk-ZPQX5ZQ2.js → chunk-YRRQFOAH.js} +92 -0
  22. package/dist/cli.js +45 -4
  23. package/dist/index.js +4 -4
  24. package/dist/{intelligence-service-2K7GVEQM.js → intelligence-service-OSLFG5S2.js} +2 -2
  25. package/dist/mcp.js +2 -2
  26. package/package.json +8 -8
  27. package/assets/assets/ProjectPage-CV1zK5No.js +0 -8
  28. package/assets/assets/index-BKoAGOtU.css +0 -1
@@ -10,7 +10,7 @@ import {
10
10
  loadConfig,
11
11
  loadConfigRaw,
12
12
  saveConfigPatch
13
- } from "./chunk-P4MIG7V5.js";
13
+ } from "./chunk-A6BYMSZL.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-VPY3PZXV.js";
121
+ } from "./chunk-HENMGNLT.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-ZPQX5ZQ2.js";
194
+ } from "./chunk-YRRQFOAH.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-2K7GVEQM.js");
7003
+ const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-OSLFG5S2.js");
7004
7004
  const config = loadConfig();
7005
7005
  const db = createClient(config.database);
7006
7006
  migrate(db);
@@ -9113,6 +9113,7 @@ var AERO_ADS_OPERATOR_MCP_TOOL_NAMES = /* @__PURE__ */ new Set([
9113
9113
  CanonryMcpToolNames.canonry_ads_campaigns,
9114
9114
  CanonryMcpToolNames.canonry_ads_insights,
9115
9115
  CanonryMcpToolNames.canonry_ads_summary,
9116
+ CanonryMcpToolNames.canonry_ads_delivery_diagnostics,
9116
9117
  CanonryMcpToolNames.canonry_ads_operations_unresolved,
9117
9118
  CanonryMcpToolNames.canonry_ads_operation_get,
9118
9119
  CanonryMcpToolNames.canonry_ads_operation_reconcile,
@@ -9234,7 +9235,7 @@ function buildAdsOperatorContextTool(ctx) {
9234
9235
  return {
9235
9236
  name: AERO_ADS_OPERATOR_CONTEXT_TOOL_NAME,
9236
9237
  label: "Get ads operator context",
9237
- description: "One-call Aero context pack for ads operations. Reads the project overview, ads connection, paid summary, bounded campaign snapshots, recent paid rollups, ads doctor checks, and recent Aero memory. Use before diagnosing ChatGPT ads performance or planning the next operator action.",
9238
+ description: "One-call Aero context pack for ads operations. Reads the project overview, stored ads delivery diagnostics, ads connection, paid summary, bounded campaign snapshots, recent paid rollups, ads doctor checks, and recent Aero memory. Use before diagnosing ChatGPT ads performance or planning the next operator action.",
9238
9239
  parameters: Type3.Object({
9239
9240
  windowDays: Type3.Optional(Type3.Integer({
9240
9241
  minimum: 1,
@@ -9262,6 +9263,7 @@ function buildAdsOperatorContextTool(ctx) {
9262
9263
  const [
9263
9264
  overview,
9264
9265
  adsStatus,
9266
+ deliveryDiagnostics,
9265
9267
  adsSummary,
9266
9268
  campaigns,
9267
9269
  campaignInsights,
@@ -9271,6 +9273,7 @@ function buildAdsOperatorContextTool(ctx) {
9271
9273
  ] = await Promise.all([
9272
9274
  readSection(() => ctx.client.getProjectOverview(ctx.projectName)),
9273
9275
  readSection(() => ctx.client.getAdsStatus(ctx.projectName)),
9276
+ readSection(() => ctx.client.getAdsDeliveryDiagnostics(ctx.projectName)),
9274
9277
  readSection(() => ctx.client.getAdsSummary(ctx.projectName)),
9275
9278
  readSection(async () => compactCampaigns(await ctx.client.getAdsCampaigns(ctx.projectName), campaignLimit)),
9276
9279
  readSection(
@@ -9298,6 +9301,7 @@ function buildAdsOperatorContextTool(ctx) {
9298
9301
  overview: overview.status === "ok" && overview.data ? { status: "ok", data: compactOverview(overview.data) } : overview,
9299
9302
  ads: {
9300
9303
  status: adsStatus,
9304
+ deliveryDiagnostics,
9301
9305
  summary: adsSummary,
9302
9306
  campaigns,
9303
9307
  insights: {
@@ -42,7 +42,7 @@ import {
42
42
  trafficConnectWordpressRequestSchema,
43
43
  trafficEventKindSchema,
44
44
  trafficSeriesGranularitySchema
45
- } from "./chunk-ZPQX5ZQ2.js";
45
+ } from "./chunk-YRRQFOAH.js";
46
46
 
47
47
  // src/config.ts
48
48
  import fs from "fs";
@@ -2727,6 +2727,18 @@ var getApiV1ProjectsByNameAdsSummary = (options) => {
2727
2727
  ...options
2728
2728
  });
2729
2729
  };
2730
+ var getApiV1ProjectsByNameAdsDeliveryDiagnostics = (options) => {
2731
+ return (options.client ?? client).get({
2732
+ security: [
2733
+ {
2734
+ scheme: "bearer",
2735
+ type: "http"
2736
+ }
2737
+ ],
2738
+ url: "/api/v1/projects/{name}/ads/delivery-diagnostics",
2739
+ ...options
2740
+ });
2741
+ };
2730
2742
  var postApiV1ProjectsByNameBingConnect = (options) => {
2731
2743
  return (options.client ?? client).post({
2732
2744
  security: [
@@ -4854,6 +4866,11 @@ var ApiClient = class {
4854
4866
  () => getApiV1ProjectsByNameAdsSummary({ client: this.heyClient, path: { name: project } })
4855
4867
  );
4856
4868
  }
4869
+ async getAdsDeliveryDiagnostics(project) {
4870
+ return this.invoke(
4871
+ () => getApiV1ProjectsByNameAdsDeliveryDiagnostics({ client: this.heyClient, path: { name: project } })
4872
+ );
4873
+ }
4857
4874
  async getAdsOperation(project, operationKey) {
4858
4875
  return this.invoke(
4859
4876
  () => getApiV1ProjectsByNameAdsOperationsByOperationKey({
@@ -6470,7 +6487,7 @@ var canonryMcpTools = [
6470
6487
  defineTool({
6471
6488
  name: "canonry_organic_evidence",
6472
6489
  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.",
6490
+ 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.",
6474
6491
  access: "read",
6475
6492
  tier: "monitoring",
6476
6493
  inputSchema: z2.object({
@@ -7912,6 +7929,17 @@ var canonryMcpTools = [
7912
7929
  openApiOperations: ["GET /api/v1/projects/{name}/ads/summary"],
7913
7930
  handler: (client2, input) => client2.getAdsSummary(input.project)
7914
7931
  }),
7932
+ defineTool({
7933
+ name: "canonry_ads_delivery_diagnostics",
7934
+ title: "Stored ads delivery diagnostics",
7935
+ description: "Read stored ads snapshot provenance, account/campaign/ad-group/ad configuration facts, and historical campaign activity in one call. This is not a live OpenAI eligibility or serving verdict.",
7936
+ access: "read",
7937
+ tier: "ads",
7938
+ inputSchema: projectInputSchema,
7939
+ annotations: readAnnotations(),
7940
+ openApiOperations: ["GET /api/v1/projects/{name}/ads/delivery-diagnostics"],
7941
+ handler: (client2, input) => client2.getAdsDeliveryDiagnostics(input.project)
7942
+ }),
7915
7943
  defineTool({
7916
7944
  name: "canonry_ads_operations_unresolved",
7917
7945
  title: "List unresolved ads mutation receipts",