@ainyc/canonry 3.2.7 → 3.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/assets/index.html CHANGED
@@ -12,7 +12,7 @@
12
12
  <link rel="icon" type="image/png" sizes="32x32" href="./favicon-32.png" />
13
13
  <link rel="apple-touch-icon" href="./apple-touch-icon.png" />
14
14
  <title>Canonry</title>
15
- <script type="module" crossorigin src="./assets/index-BJz9S5-O.js"></script>
15
+ <script type="module" crossorigin src="./assets/index-C1kUp1aS.js"></script>
16
16
  <link rel="stylesheet" crossorigin href="./assets/index-JG7aBJrz.css">
17
17
  </head>
18
18
  <body>
@@ -2067,6 +2067,13 @@ function citationStateToCited(state) {
2067
2067
  return state === "cited";
2068
2068
  }
2069
2069
 
2070
+ // ../contracts/src/skills.ts
2071
+ import { z as z19 } from "zod";
2072
+ var codingAgentSchema = z19.enum(["claude", "codex"]);
2073
+ var CodingAgents = codingAgentSchema.enum;
2074
+ var skillsClientSchema = z19.enum(["claude", "codex", "all"]);
2075
+ var SkillsClients = skillsClientSchema.enum;
2076
+
2070
2077
  // src/client.ts
2071
2078
  function createApiClient() {
2072
2079
  const config = loadConfig();
@@ -2734,21 +2741,21 @@ var ApiClient = class {
2734
2741
  };
2735
2742
 
2736
2743
  // src/mcp/tool-registry.ts
2737
- import { z as z20 } from "zod";
2744
+ import { z as z21 } from "zod";
2738
2745
 
2739
2746
  // src/mcp/schema.ts
2740
- import { z as z19 } from "zod";
2741
- var projectNameSchema = z19.string().min(1).describe("Canonry project name.");
2742
- var runIdSchema = z19.string().min(1).describe("Canonry run ID.");
2743
- var insightIdSchema = z19.string().min(1).describe("Canonry insight ID.");
2744
- var analyticsWindowSchema = z19.enum(["7d", "30d", "90d", "all"]).describe("Analytics time window.");
2745
- var emptyInputSchema = z19.object({});
2746
- var projectInputSchema = z19.object({
2747
+ import { z as z20 } from "zod";
2748
+ var projectNameSchema = z20.string().min(1).describe("Canonry project name.");
2749
+ var runIdSchema = z20.string().min(1).describe("Canonry run ID.");
2750
+ var insightIdSchema = z20.string().min(1).describe("Canonry insight ID.");
2751
+ var analyticsWindowSchema = z20.enum(["7d", "30d", "90d", "all"]).describe("Analytics time window.");
2752
+ var emptyInputSchema = z20.object({});
2753
+ var projectInputSchema = z20.object({
2747
2754
  project: projectNameSchema
2748
2755
  });
2749
2756
  function toJsonSchema(schema, name) {
2750
2757
  return {
2751
- ...z19.toJSONSchema(schema, { target: "draft-7" }),
2758
+ ...z20.toJSONSchema(schema, { target: "draft-7" }),
2752
2759
  title: name
2753
2760
  };
2754
2761
  }
@@ -2790,119 +2797,119 @@ function defineTool(tool) {
2790
2797
  inputJsonSchema: toJsonSchema(tool.inputSchema, tool.name)
2791
2798
  };
2792
2799
  }
2793
- var runTriggerInputSchema = z20.object({
2800
+ var runTriggerInputSchema = z21.object({
2794
2801
  project: projectNameSchema,
2795
2802
  request: runTriggerRequestSchema.optional()
2796
2803
  });
2797
- var runsListInputSchema = z20.object({
2804
+ var runsListInputSchema = z21.object({
2798
2805
  project: projectNameSchema,
2799
- limit: z20.number().int().positive().max(500).optional()
2806
+ limit: z21.number().int().positive().max(500).optional()
2800
2807
  });
2801
- var runGetInputSchema = z20.object({
2808
+ var runGetInputSchema = z21.object({
2802
2809
  runId: runIdSchema
2803
2810
  });
2804
- var timelineInputSchema = z20.object({
2811
+ var timelineInputSchema = z21.object({
2805
2812
  project: projectNameSchema,
2806
- location: z20.string().optional().describe("Location label. Use an empty string for locationless results.")
2813
+ location: z21.string().optional().describe("Location label. Use an empty string for locationless results.")
2807
2814
  });
2808
- var snapshotsListInputSchema = z20.object({
2815
+ var snapshotsListInputSchema = z21.object({
2809
2816
  project: projectNameSchema,
2810
- limit: z20.number().int().positive().max(500).optional(),
2811
- offset: z20.number().int().nonnegative().optional(),
2812
- location: z20.string().optional().describe("Location label. Use an empty string for locationless results.")
2817
+ limit: z21.number().int().positive().max(500).optional(),
2818
+ offset: z21.number().int().nonnegative().optional(),
2819
+ location: z21.string().optional().describe("Location label. Use an empty string for locationless results.")
2813
2820
  });
2814
- var snapshotsDiffInputSchema = z20.object({
2821
+ var snapshotsDiffInputSchema = z21.object({
2815
2822
  project: projectNameSchema,
2816
2823
  run1: runIdSchema,
2817
2824
  run2: runIdSchema
2818
2825
  });
2819
- var insightsListInputSchema = z20.object({
2826
+ var insightsListInputSchema = z21.object({
2820
2827
  project: projectNameSchema,
2821
- dismissed: z20.boolean().optional(),
2828
+ dismissed: z21.boolean().optional(),
2822
2829
  runId: runIdSchema.optional()
2823
2830
  });
2824
- var insightInputSchema = z20.object({
2831
+ var insightInputSchema = z21.object({
2825
2832
  project: projectNameSchema,
2826
2833
  insightId: insightIdSchema
2827
2834
  });
2828
- var healthHistoryInputSchema = z20.object({
2835
+ var healthHistoryInputSchema = z21.object({
2829
2836
  project: projectNameSchema,
2830
- limit: z20.number().int().positive().max(100).optional()
2837
+ limit: z21.number().int().positive().max(100).optional()
2831
2838
  });
2832
- var gscPerformanceInputSchema = z20.object({
2839
+ var gscPerformanceInputSchema = z21.object({
2833
2840
  project: projectNameSchema,
2834
- startDate: z20.string().optional(),
2835
- endDate: z20.string().optional(),
2836
- query: z20.string().optional(),
2837
- page: z20.string().optional(),
2838
- limit: z20.number().int().positive().max(500).optional(),
2841
+ startDate: z21.string().optional(),
2842
+ endDate: z21.string().optional(),
2843
+ query: z21.string().optional(),
2844
+ page: z21.string().optional(),
2845
+ limit: z21.number().int().positive().max(500).optional(),
2839
2846
  window: analyticsWindowSchema.optional()
2840
2847
  });
2841
- var gscInspectionsInputSchema = z20.object({
2848
+ var gscInspectionsInputSchema = z21.object({
2842
2849
  project: projectNameSchema,
2843
- url: z20.string().optional(),
2844
- limit: z20.number().int().positive().max(500).optional()
2850
+ url: z21.string().optional(),
2851
+ limit: z21.number().int().positive().max(500).optional()
2845
2852
  });
2846
- var gscCoverageHistoryInputSchema = z20.object({
2853
+ var gscCoverageHistoryInputSchema = z21.object({
2847
2854
  project: projectNameSchema,
2848
- limit: z20.number().int().positive().max(500).optional()
2855
+ limit: z21.number().int().positive().max(500).optional()
2849
2856
  });
2850
- var gaWindowInputSchema = z20.object({
2857
+ var gaWindowInputSchema = z21.object({
2851
2858
  project: projectNameSchema,
2852
2859
  window: analyticsWindowSchema.optional()
2853
2860
  });
2854
2861
  var gaTrafficInputSchema = gaWindowInputSchema.extend({
2855
- limit: z20.number().int().positive().max(500).optional()
2862
+ limit: z21.number().int().positive().max(500).optional()
2856
2863
  });
2857
- var keywordsInputSchema = z20.object({
2864
+ var keywordsInputSchema = z21.object({
2858
2865
  project: projectNameSchema,
2859
2866
  request: keywordBatchRequestSchema
2860
2867
  });
2861
- var keywordGenerateInputSchema = z20.object({
2868
+ var keywordGenerateInputSchema = z21.object({
2862
2869
  project: projectNameSchema,
2863
2870
  request: keywordGenerateRequestSchema
2864
2871
  });
2865
- var competitorsInputSchema = z20.object({
2872
+ var competitorsInputSchema = z21.object({
2866
2873
  project: projectNameSchema,
2867
2874
  request: competitorBatchRequestSchema
2868
2875
  });
2869
- var projectUpsertInputSchema = z20.object({
2876
+ var projectUpsertInputSchema = z21.object({
2870
2877
  project: projectNameSchema,
2871
2878
  request: projectUpsertRequestSchema
2872
2879
  });
2873
- var applyConfigInputSchema = z20.object({
2880
+ var applyConfigInputSchema = z21.object({
2874
2881
  config: projectConfigSchema
2875
2882
  });
2876
- var scheduleSetInputSchema = z20.object({
2883
+ var scheduleSetInputSchema = z21.object({
2877
2884
  project: projectNameSchema,
2878
2885
  schedule: scheduleUpsertRequestSchema
2879
2886
  });
2880
- var agentWebhookAttachInputSchema = z20.object({
2887
+ var agentWebhookAttachInputSchema = z21.object({
2881
2888
  project: projectNameSchema,
2882
- url: z20.string().url()
2889
+ url: z21.string().url()
2883
2890
  });
2884
- var doctorInputSchema = z20.object({
2891
+ var doctorInputSchema = z21.object({
2885
2892
  project: projectNameSchema.optional().describe("Project name to scope project-level checks. Omit to run global checks (provider keys, config, etc.)."),
2886
- checks: z20.array(z20.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.')
2893
+ checks: z21.array(z21.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.')
2887
2894
  });
2888
- var contentTargetsInputSchema = z20.object({
2895
+ var contentTargetsInputSchema = z21.object({
2889
2896
  project: projectNameSchema,
2890
- limit: z20.number().int().positive().max(500).optional().describe("Max rows. Defaults to all. Use a small number (3-10) when summarizing for the user."),
2891
- includeInProgress: z20.boolean().optional().describe("Include rows that already have an in-flight tracked action. Default false.")
2897
+ limit: z21.number().int().positive().max(500).optional().describe("Max rows. Defaults to all. Use a small number (3-10) when summarizing for the user."),
2898
+ includeInProgress: z21.boolean().optional().describe("Include rows that already have an in-flight tracked action. Default false.")
2892
2899
  });
2893
- var backlinksDomainsInputSchema = z20.object({
2900
+ var backlinksDomainsInputSchema = z21.object({
2894
2901
  project: projectNameSchema,
2895
- limit: z20.number().int().positive().max(200).optional().describe("Max linking-domain rows. Default 50, max 200."),
2896
- release: z20.string().optional().describe("Common Crawl release id (e.g., cc-main-2026-jan-feb-mar). Omit for the most recent release with data.")
2902
+ limit: z21.number().int().positive().max(200).optional().describe("Max linking-domain rows. Default 50, max 200."),
2903
+ release: z21.string().optional().describe("Common Crawl release id (e.g., cc-main-2026-jan-feb-mar). Omit for the most recent release with data.")
2897
2904
  });
2898
- var memoryUpsertInputSchema = z20.object({
2905
+ var memoryUpsertInputSchema = z21.object({
2899
2906
  project: projectNameSchema,
2900
- key: z20.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.`),
2901
- value: z20.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.`)
2907
+ key: z21.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.`),
2908
+ value: z21.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.`)
2902
2909
  });
2903
- var memoryForgetInputSchema = z20.object({
2910
+ var memoryForgetInputSchema = z21.object({
2904
2911
  project: projectNameSchema,
2905
- key: z20.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.")
2912
+ key: z21.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.")
2906
2913
  });
2907
2914
  var AGENT_WEBHOOK_EVENTS = [
2908
2915
  notificationEventSchema.enum["run.completed"],
@@ -2950,10 +2957,10 @@ var canonryMcpTools = [
2950
2957
  description: "Search query snapshots and intelligence insights for the given text. Looks at snapshot answer text, cited domains, raw provider responses, and insight title/keyword/recommendation/cause. Returns ranked hits with snippets \u2014 use it instead of paginating snapshots when you need to find a competitor mention or term.",
2951
2958
  access: "read",
2952
2959
  tier: "core",
2953
- inputSchema: z20.object({
2960
+ inputSchema: z21.object({
2954
2961
  project: projectNameSchema,
2955
- q: z20.string().min(2).describe("Search term, at least 2 characters."),
2956
- limit: z20.number().int().positive().max(50).optional().describe("Max combined hits (1-50, default 25).")
2962
+ q: z21.string().min(2).describe("Search term, at least 2 characters."),
2963
+ limit: z21.number().int().positive().max(50).optional().describe("Max combined hits (1-50, default 25).")
2957
2964
  }),
2958
2965
  annotations: readAnnotations(),
2959
2966
  openApiOperations: ["GET /api/v1/projects/{name}/search"],
@@ -3717,6 +3724,9 @@ export {
3717
3724
  normalizeUrlPath,
3718
3725
  emptyCitationVisibility,
3719
3726
  citationStateToCited,
3727
+ CodingAgents,
3728
+ skillsClientSchema,
3729
+ SkillsClients,
3720
3730
  createApiClient,
3721
3731
  ApiClient,
3722
3732
  canonryMcpTools
@@ -64,7 +64,7 @@ import {
64
64
  visibilityStateFromAnswerMentioned,
65
65
  windowCutoff,
66
66
  wordpressEnvSchema
67
- } from "./chunk-GY4MNUTI.js";
67
+ } from "./chunk-ALMP3NBQ.js";
68
68
  import {
69
69
  IntelligenceService,
70
70
  agentMemory,