@ainyc/canonry 4.46.0 → 4.47.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/dist/cli.js CHANGED
@@ -21,7 +21,7 @@ import {
21
21
  setTelemetrySource,
22
22
  showFirstRunNotice,
23
23
  trackEvent
24
- } from "./chunk-G2HQOLPK.js";
24
+ } from "./chunk-WYBKCDUH.js";
25
25
  import {
26
26
  CliError,
27
27
  EXIT_SYSTEM_ERROR,
@@ -37,14 +37,14 @@ import {
37
37
  saveConfig,
38
38
  saveConfigPatch,
39
39
  usageError
40
- } from "./chunk-GRFMZ7PD.js";
40
+ } from "./chunk-ON545FBK.js";
41
41
  import {
42
42
  apiKeys,
43
43
  createClient,
44
44
  migrate,
45
45
  projects,
46
46
  queries
47
- } from "./chunk-TBADB57G.js";
47
+ } from "./chunk-M7MSNUNQ.js";
48
48
  import {
49
49
  CcReleaseSyncStatuses,
50
50
  CheckScopes,
@@ -63,7 +63,7 @@ import {
63
63
  providerQuotaPolicySchema,
64
64
  resolveProviderInput,
65
65
  skillsClientSchema
66
- } from "./chunk-Q7XFJO2V.js";
66
+ } from "./chunk-4WXY57ET.js";
67
67
 
68
68
  // src/cli.ts
69
69
  import { pathToFileURL } from "url";
@@ -2918,6 +2918,9 @@ var GET_CLI_COMMANDS = [
2918
2918
  function getClient6() {
2919
2919
  return createApiClient();
2920
2920
  }
2921
+ function configString(value, fallback = "(unset)") {
2922
+ return typeof value === "string" ? value : fallback;
2923
+ }
2921
2924
  async function trafficConnectWordpress(project, opts) {
2922
2925
  if (!opts.url) {
2923
2926
  throw new CliError({
@@ -2981,8 +2984,8 @@ async function trafficConnectWordpress(project, opts) {
2981
2984
  console.log(` Source ID: ${result.id}`);
2982
2985
  console.log(` Display name: ${result.displayName}`);
2983
2986
  console.log(` Status: ${result.status}`);
2984
- console.log(` Site URL: ${result.config.baseUrl ?? "(unset)"}`);
2985
- console.log(` Username: ${result.config.username ?? "(unset)"}`);
2987
+ console.log(` Site URL: ${configString(result.config.baseUrl)}`);
2988
+ console.log(` Username: ${configString(result.config.username)}`);
2986
2989
  console.log("");
2987
2990
  console.log(`Next: canonry traffic sync ${project} --source ${result.id}`);
2988
2991
  }
@@ -3033,9 +3036,9 @@ async function trafficConnectCloudRun(project, opts) {
3033
3036
  console.log(` Source ID: ${result.id}`);
3034
3037
  console.log(` Display name: ${result.displayName}`);
3035
3038
  console.log(` Status: ${result.status}`);
3036
- console.log(` GCP project: ${result.config.gcpProjectId ?? "(unset)"}`);
3037
- if (result.config.serviceName) console.log(` Service: ${result.config.serviceName}`);
3038
- if (result.config.location) console.log(` Location: ${result.config.location}`);
3039
+ console.log(` GCP project: ${configString(result.config.gcpProjectId)}`);
3040
+ if (result.config.serviceName) console.log(` Service: ${configString(result.config.serviceName)}`);
3041
+ if (result.config.location) console.log(` Location: ${configString(result.config.location)}`);
3039
3042
  console.log("");
3040
3043
  console.log(`Next: canonry traffic sync ${project} --source ${result.id}`);
3041
3044
  }
@@ -3111,9 +3114,9 @@ async function trafficConnectVercel(project, opts) {
3111
3114
  console.log(` Source ID: ${result.id}`);
3112
3115
  console.log(` Display name: ${result.displayName}`);
3113
3116
  console.log(` Status: ${result.status}`);
3114
- console.log(` Project ID: ${result.config.projectId ?? "(unset)"}`);
3115
- console.log(` Team ID: ${result.config.teamId ?? "(unset)"}`);
3116
- console.log(` Environment: ${result.config.environment ?? "(unset)"}`);
3117
+ console.log(` Project ID: ${configString(result.config.projectId)}`);
3118
+ console.log(` Team ID: ${configString(result.config.teamId)}`);
3119
+ console.log(` Environment: ${configString(result.config.environment)}`);
3117
3120
  console.log("");
3118
3121
  console.log(`Next: canonry traffic sync ${project} --source ${result.id}`);
3119
3122
  }
@@ -5604,8 +5607,8 @@ var NOTIFY_CLI_COMMANDS = [
5604
5607
  {
5605
5608
  path: ["notify", "events"],
5606
5609
  usage: "canonry notify events [--format json]",
5607
- run: async (input) => {
5608
- await listEvents(input.format);
5610
+ run: (input) => {
5611
+ listEvents(input.format);
5609
5612
  }
5610
5613
  },
5611
5614
  {
@@ -7295,7 +7298,7 @@ function resolveBundledSkillsRoot(pkgDir) {
7295
7298
  function parseDescription(content) {
7296
7299
  const fmMatch = /^---\n([\s\S]*?)\n---/.exec(content);
7297
7300
  if (!fmMatch) return "";
7298
- const descMatch = /^description:\s*(.+?)$/m.exec(fmMatch[1]);
7301
+ const descMatch = /^description:\s*(\S.*)$/m.exec(fmMatch[1]);
7299
7302
  if (!descMatch) return "";
7300
7303
  return descMatch[1].replace(/^["']|["']$/g, "").trim();
7301
7304
  }
@@ -9808,39 +9811,39 @@ var SYSTEM_CLI_COMMANDS = [
9808
9811
  path: ["stop"],
9809
9812
  usage: "canonry stop [--format json]",
9810
9813
  allowPositionals: false,
9811
- run: async (input) => {
9812
- await stopDaemon(input.format);
9814
+ run: (input) => {
9815
+ stopDaemon(input.format);
9813
9816
  }
9814
9817
  },
9815
9818
  {
9816
9819
  path: ["telemetry", "status"],
9817
9820
  usage: "canonry telemetry status [--format json]",
9818
9821
  allowPositionals: false,
9819
- run: async (input) => {
9820
- await telemetryCommand("status", input.format);
9822
+ run: (input) => {
9823
+ telemetryCommand("status", input.format);
9821
9824
  }
9822
9825
  },
9823
9826
  {
9824
9827
  path: ["telemetry", "enable"],
9825
9828
  usage: "canonry telemetry enable [--format json]",
9826
9829
  allowPositionals: false,
9827
- run: async (input) => {
9828
- await telemetryCommand("enable", input.format);
9830
+ run: (input) => {
9831
+ telemetryCommand("enable", input.format);
9829
9832
  }
9830
9833
  },
9831
9834
  {
9832
9835
  path: ["telemetry", "disable"],
9833
9836
  usage: "canonry telemetry disable [--format json]",
9834
9837
  allowPositionals: false,
9835
- run: async (input) => {
9836
- await telemetryCommand("disable", input.format);
9838
+ run: (input) => {
9839
+ telemetryCommand("disable", input.format);
9837
9840
  }
9838
9841
  },
9839
9842
  {
9840
9843
  path: ["telemetry"],
9841
9844
  usage: "canonry telemetry <status|enable|disable> [--format json]",
9842
- run: async (input) => {
9843
- await unknownSubcommand(input.positionals[0], {
9845
+ run: (input) => {
9846
+ unknownSubcommand(input.positionals[0], {
9844
9847
  command: "telemetry",
9845
9848
  usage: "canonry telemetry <status|enable|disable> [--format json]",
9846
9849
  available: ["status", "enable", "disable"]
@@ -9856,6 +9859,9 @@ import fs12 from "fs";
9856
9859
  function getClient21() {
9857
9860
  return createApiClient();
9858
9861
  }
9862
+ async function loadYamlModule() {
9863
+ return await import("yaml").catch(() => null);
9864
+ }
9859
9865
  function printJson2(value) {
9860
9866
  console.log(JSON.stringify(value, null, 2));
9861
9867
  }
@@ -10190,7 +10196,7 @@ async function wordpressSetSchema(project, body) {
10190
10196
  async function wordpressSchemaDeploy(project, opts) {
10191
10197
  const fs13 = await import("fs/promises");
10192
10198
  const path10 = await import("path");
10193
- const yaml = await import("yaml").catch(() => null);
10199
+ const yaml = await loadYamlModule();
10194
10200
  const filePath = path10.resolve(opts.profile);
10195
10201
  let raw;
10196
10202
  try {
@@ -10205,7 +10211,7 @@ async function wordpressSchemaDeploy(project, opts) {
10205
10211
  }
10206
10212
  let parsed;
10207
10213
  try {
10208
- if (yaml?.parse) {
10214
+ if (yaml) {
10209
10215
  parsed = yaml.parse(raw);
10210
10216
  } else {
10211
10217
  parsed = JSON.parse(raw);
@@ -10301,7 +10307,7 @@ async function wordpressOnboard(project, opts) {
10301
10307
  if (opts.profile) {
10302
10308
  const fs13 = await import("fs/promises");
10303
10309
  const path10 = await import("path");
10304
- const yaml = await import("yaml").catch(() => null);
10310
+ const yaml = await loadYamlModule();
10305
10311
  const filePath = path10.resolve(opts.profile);
10306
10312
  let raw;
10307
10313
  try {
@@ -10315,7 +10321,7 @@ async function wordpressOnboard(project, opts) {
10315
10321
  });
10316
10322
  }
10317
10323
  try {
10318
- profileData = yaml?.parse ? yaml.parse(raw) : JSON.parse(raw);
10324
+ profileData = yaml ? yaml.parse(raw) : JSON.parse(raw);
10319
10325
  } catch {
10320
10326
  throw new CliError({
10321
10327
  code: "INVALID_PROFILE",
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  createServer
3
- } from "./chunk-G2HQOLPK.js";
3
+ } from "./chunk-WYBKCDUH.js";
4
4
  import {
5
5
  loadConfig
6
- } from "./chunk-GRFMZ7PD.js";
7
- import "./chunk-TBADB57G.js";
8
- import "./chunk-Q7XFJO2V.js";
6
+ } from "./chunk-ON545FBK.js";
7
+ import "./chunk-M7MSNUNQ.js";
8
+ import "./chunk-4WXY57ET.js";
9
9
  export {
10
10
  createServer,
11
11
  loadConfig
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  IntelligenceService
3
- } from "./chunk-TBADB57G.js";
4
- import "./chunk-Q7XFJO2V.js";
3
+ } from "./chunk-M7MSNUNQ.js";
4
+ import "./chunk-4WXY57ET.js";
5
5
  export {
6
6
  IntelligenceService
7
7
  };
package/dist/mcp.js CHANGED
@@ -2,8 +2,8 @@ import {
2
2
  CliError,
3
3
  canonryMcpTools,
4
4
  createApiClient
5
- } from "./chunk-GRFMZ7PD.js";
6
- import "./chunk-Q7XFJO2V.js";
5
+ } from "./chunk-ON545FBK.js";
6
+ import "./chunk-4WXY57ET.js";
7
7
 
8
8
  // src/mcp/cli.ts
9
9
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
@@ -68,11 +68,12 @@ function toCanonryErrorEnvelope(error) {
68
68
  };
69
69
  }
70
70
  if (hasErrorEnvelope(error)) {
71
+ const { code, message, details } = error.error;
71
72
  return {
72
73
  error: {
73
- code: String(error.error.code ?? "API_ERROR"),
74
- message: String(error.error.message ?? "Canonry API error"),
75
- ...error.error.details !== void 0 ? { details: error.error.details } : {}
74
+ code: typeof code === "string" ? code : "API_ERROR",
75
+ message: typeof message === "string" ? message : "Canonry API error",
76
+ ...details !== void 0 ? { details } : {}
76
77
  }
77
78
  };
78
79
  }
@@ -237,7 +238,7 @@ var DynamicToolCatalog = class {
237
238
  // the SDK's sender for the duration of the batch.
238
239
  batchListChanged(fn) {
239
240
  const host = this.server;
240
- const original = host.sendToolListChanged;
241
+ const original = host.sendToolListChanged.bind(host);
241
242
  let suppressed = false;
242
243
  host.sendToolListChanged = () => {
243
244
  suppressed = true;
@@ -247,7 +248,7 @@ var DynamicToolCatalog = class {
247
248
  } finally {
248
249
  host.sendToolListChanged = original;
249
250
  }
250
- if (suppressed) original.call(host);
251
+ if (suppressed) original();
251
252
  }
252
253
  };
253
254
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ainyc/canonry",
3
- "version": "4.46.0",
3
+ "version": "4.47.0",
4
4
  "type": "module",
5
5
  "description": "Agent-first open-source AEO operating platform - track how answer engines cite your domain",
6
6
  "license": "FSL-1.1-ALv2",
@@ -60,23 +60,23 @@
60
60
  "@types/node-cron": "^3.0.11",
61
61
  "tsup": "^8.5.1",
62
62
  "tsx": "^4.19.0",
63
- "@ainyc/canonry-config": "0.0.0",
64
63
  "@ainyc/canonry-api-routes": "0.0.0",
64
+ "@ainyc/canonry-config": "0.0.0",
65
65
  "@ainyc/canonry-contracts": "0.0.0",
66
- "@ainyc/canonry-integration-bing": "0.0.0",
67
66
  "@ainyc/canonry-db": "0.0.0",
67
+ "@ainyc/canonry-integration-bing": "0.0.0",
68
+ "@ainyc/canonry-integration-commoncrawl": "0.0.0",
68
69
  "@ainyc/canonry-integration-cloud-run": "0.0.0",
69
70
  "@ainyc/canonry-intelligence": "0.0.0",
70
- "@ainyc/canonry-integration-commoncrawl": "0.0.0",
71
+ "@ainyc/canonry-integration-wordpress": "0.0.0",
71
72
  "@ainyc/canonry-integration-google": "0.0.0",
72
73
  "@ainyc/canonry-integration-traffic": "0.0.0",
73
- "@ainyc/canonry-integration-wordpress": "0.0.0",
74
74
  "@ainyc/canonry-provider-claude": "0.0.0",
75
75
  "@ainyc/canonry-provider-cdp": "0.0.0",
76
- "@ainyc/canonry-provider-gemini": "0.0.0",
77
76
  "@ainyc/canonry-provider-local": "0.0.0",
78
- "@ainyc/canonry-provider-perplexity": "0.0.0",
79
- "@ainyc/canonry-provider-openai": "0.0.0"
77
+ "@ainyc/canonry-provider-gemini": "0.0.0",
78
+ "@ainyc/canonry-provider-openai": "0.0.0",
79
+ "@ainyc/canonry-provider-perplexity": "0.0.0"
80
80
  },
81
81
  "scripts": {
82
82
  "build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",