@ainyc/canonry 4.104.0 → 4.106.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.
Files changed (24) hide show
  1. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +1 -0
  2. package/assets/assets/{BacklinksPage-CixBvw--.js → BacklinksPage-CBmXc-I8.js} +1 -1
  3. package/assets/assets/{ChartPrimitives-CjX4mQCy.js → ChartPrimitives-Sl2xFVla.js} +1 -1
  4. package/assets/assets/ProjectPage-CwPd7SMA.js +7 -0
  5. package/assets/assets/{RunRow-Bel7mWgu.js → RunRow-StjPY-W-.js} +1 -1
  6. package/assets/assets/{RunsPage-wqKWA2Ei.js → RunsPage-C4z3tX5G.js} +1 -1
  7. package/assets/assets/{SettingsPage-esOqUkW5.js → SettingsPage-DwgWiTFo.js} +1 -1
  8. package/assets/assets/{TrafficPage-V0iCV3l4.js → TrafficPage-CF0sdg6i.js} +1 -1
  9. package/assets/assets/{TrafficSourceDetailPage-DUeuOh2v.js → TrafficSourceDetailPage-9y4px0yp.js} +1 -1
  10. package/assets/assets/{arrow-left-CVZPxpW6.js → arrow-left-Clk2AKwp.js} +1 -1
  11. package/assets/assets/{extract-error-message-BWAlA7ea.js → extract-error-message-Ccitgmu-.js} +1 -1
  12. package/assets/assets/{index-avJiga1P.js → index-wC-7udKS.js} +39 -39
  13. package/assets/assets/{trash-2-CA_L6uGC.js → trash-2-CgxrJFpf.js} +1 -1
  14. package/assets/index.html +1 -1
  15. package/dist/{chunk-GIKNEXFE.js → chunk-2AWATO4I.js} +61 -25
  16. package/dist/{chunk-GNMZTR6Y.js → chunk-F3MKVMS5.js} +62 -13
  17. package/dist/{chunk-23DCY7DL.js → chunk-VGMTLUUM.js} +4 -2
  18. package/dist/{chunk-Q7FFDQU4.js → chunk-VOR5ZTUU.js} +75 -2
  19. package/dist/cli.js +32 -12
  20. package/dist/index.js +4 -4
  21. package/dist/{intelligence-service-GM3RXE2F.js → intelligence-service-JGZU27U3.js} +2 -2
  22. package/dist/mcp.js +2 -2
  23. package/package.json +11 -11
  24. package/assets/assets/ProjectPage-C09hcd6v.js +0 -7
package/dist/cli.js CHANGED
@@ -29,7 +29,7 @@ import {
29
29
  setTelemetrySource,
30
30
  showFirstRunNotice,
31
31
  trackEvent
32
- } from "./chunk-GIKNEXFE.js";
32
+ } from "./chunk-2AWATO4I.js";
33
33
  import {
34
34
  CliError,
35
35
  EXIT_SYSTEM_ERROR,
@@ -46,7 +46,7 @@ import {
46
46
  saveConfig,
47
47
  saveConfigPatch,
48
48
  usageError
49
- } from "./chunk-23DCY7DL.js";
49
+ } from "./chunk-VGMTLUUM.js";
50
50
  import {
51
51
  apiKeys,
52
52
  createClient,
@@ -54,7 +54,7 @@ import {
54
54
  projects,
55
55
  queries,
56
56
  renderReportHtml
57
- } from "./chunk-GNMZTR6Y.js";
57
+ } from "./chunk-F3MKVMS5.js";
58
58
  import {
59
59
  BacklinkSources,
60
60
  CcReleaseSyncStatuses,
@@ -80,7 +80,7 @@ import {
80
80
  providerQuotaPolicySchema,
81
81
  resolveProviderInput,
82
82
  winnabilityClassSchema
83
- } from "./chunk-Q7FFDQU4.js";
83
+ } from "./chunk-VOR5ZTUU.js";
84
84
 
85
85
  // src/cli.ts
86
86
  import { pathToFileURL } from "url";
@@ -1657,6 +1657,7 @@ function buildRunBody(opts, icpDescription) {
1657
1657
  if (icpDescription) body.icpDescription = icpDescription;
1658
1658
  if (opts.dedupThreshold !== void 0) body.dedupThreshold = opts.dedupThreshold;
1659
1659
  if (opts.maxProbes !== void 0) body.maxProbes = opts.maxProbes;
1660
+ if (opts.probeConcurrency !== void 0) body.probeConcurrency = opts.probeConcurrency;
1660
1661
  if (opts.locations && opts.locations.length > 0) body.locations = opts.locations;
1661
1662
  return body;
1662
1663
  }
@@ -2056,17 +2057,18 @@ Usage: ${usage}`,
2056
2057
  var DISCOVER_CLI_COMMANDS = [
2057
2058
  {
2058
2059
  path: ["discover", "run"],
2059
- usage: 'canonry discover run <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--wait] [--format json]',
2060
+ usage: 'canonry discover run <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--probe-concurrency 3] [--wait] [--format json]',
2060
2061
  options: {
2061
2062
  icp: stringOption(),
2062
2063
  "icp-angle": multiStringOption(),
2063
2064
  locations: multiStringOption(),
2064
2065
  "dedup-threshold": stringOption(),
2065
2066
  "max-probes": stringOption(),
2067
+ "probe-concurrency": stringOption(),
2066
2068
  wait: { type: "boolean", default: false }
2067
2069
  },
2068
2070
  run: async (input) => {
2069
- const usage = 'canonry discover run <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--wait] [--format json]';
2071
+ const usage = 'canonry discover run <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--probe-concurrency 3] [--wait] [--format json]';
2070
2072
  const project = requireProject(input, "discover.run", usage);
2071
2073
  await discoverRun(project, {
2072
2074
  icp: getString(input.values, "icp"),
@@ -2078,6 +2080,11 @@ var DISCOVER_CLI_COMMANDS = [
2078
2080
  usage,
2079
2081
  message: "--max-probes must be an integer"
2080
2082
  }),
2083
+ probeConcurrency: parseIntegerOption(input, "probe-concurrency", {
2084
+ command: "discover.run",
2085
+ usage,
2086
+ message: "--probe-concurrency must be an integer"
2087
+ }),
2081
2088
  wait: getBoolean(input.values, "wait"),
2082
2089
  format: input.format
2083
2090
  });
@@ -2085,17 +2092,18 @@ var DISCOVER_CLI_COMMANDS = [
2085
2092
  },
2086
2093
  {
2087
2094
  path: ["discover", "seed"],
2088
- usage: 'canonry discover seed <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--wait] [--format json]',
2095
+ usage: 'canonry discover seed <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--probe-concurrency 3] [--wait] [--format json]',
2089
2096
  options: {
2090
2097
  icp: stringOption(),
2091
2098
  "icp-angle": multiStringOption(),
2092
2099
  locations: multiStringOption(),
2093
2100
  "dedup-threshold": stringOption(),
2094
2101
  "max-probes": stringOption(),
2102
+ "probe-concurrency": stringOption(),
2095
2103
  wait: { type: "boolean", default: false }
2096
2104
  },
2097
2105
  run: async (input) => {
2098
- const usage = 'canonry discover seed <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--wait] [--format json]';
2106
+ const usage = 'canonry discover seed <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.95] [--max-probes 100] [--probe-concurrency 3] [--wait] [--format json]';
2099
2107
  const project = requireProject(input, "discover.seed", usage);
2100
2108
  await discoverSeed(project, {
2101
2109
  icp: getString(input.values, "icp"),
@@ -2107,6 +2115,11 @@ var DISCOVER_CLI_COMMANDS = [
2107
2115
  usage,
2108
2116
  message: "--max-probes must be an integer"
2109
2117
  }),
2118
+ probeConcurrency: parseIntegerOption(input, "probe-concurrency", {
2119
+ command: "discover.seed",
2120
+ usage,
2121
+ message: "--probe-concurrency must be an integer"
2122
+ }),
2110
2123
  wait: getBoolean(input.values, "wait"),
2111
2124
  format: input.format
2112
2125
  });
@@ -10380,6 +10393,7 @@ function buildServeForwardArgs(opts) {
10380
10393
  args.push("--embed");
10381
10394
  for (const origin of opts.embedAllowOrigins ?? []) args.push("--embed-allow-origin", origin);
10382
10395
  for (const view of opts.embedViews ?? []) args.push("--embed-view", view);
10396
+ for (const projectTab of opts.embedProjectTabs ?? []) args.push("--embed-project-tab", projectTab);
10383
10397
  }
10384
10398
  return args;
10385
10399
  }
@@ -11094,9 +11108,12 @@ function applyServerEnv(values) {
11094
11108
  if (basePath) process.env.CANONRY_BASE_PATH = basePath;
11095
11109
  const embedOrigins = getStringArray(values, "embed-allow-origin");
11096
11110
  const embedViews = getStringArray(values, "embed-view");
11111
+ const embedProjectTabs = getStringArray(values, "embed-project-tab");
11097
11112
  if (getBoolean(values, "embed")) process.env.CANONRY_EMBED = "1";
11098
11113
  if (embedOrigins && embedOrigins.length > 0) process.env.CANONRY_EMBED_ORIGINS = embedOrigins.join(",");
11099
11114
  if (embedViews && embedViews.length > 0) process.env.CANONRY_EMBED_VIEWS = embedViews.join(",");
11115
+ if (embedProjectTabs && embedProjectTabs.length > 0)
11116
+ process.env.CANONRY_EMBED_PROJECT_TABS = embedProjectTabs.join(",");
11100
11117
  }
11101
11118
  var SYSTEM_CLI_COMMANDS = [
11102
11119
  {
@@ -11153,14 +11170,15 @@ var SYSTEM_CLI_COMMANDS = [
11153
11170
  },
11154
11171
  {
11155
11172
  path: ["serve"],
11156
- usage: "canonry serve [--port <port>] [--host <host>] [--base-path <path>] [--embed] [--embed-allow-origin <origin>...] [--embed-view <view>...] [--format json]",
11173
+ usage: "canonry serve [--port <port>] [--host <host>] [--base-path <path>] [--embed] [--embed-allow-origin <origin>...] [--embed-view <view>...] [--embed-project-tab <tab>...] [--format json]",
11157
11174
  options: {
11158
11175
  port: stringOption(),
11159
11176
  host: stringOption(),
11160
11177
  "base-path": stringOption(),
11161
11178
  embed: { type: "boolean", default: false },
11162
11179
  "embed-allow-origin": multiStringOption(),
11163
- "embed-view": multiStringOption()
11180
+ "embed-view": multiStringOption(),
11181
+ "embed-project-tab": multiStringOption()
11164
11182
  },
11165
11183
  allowPositionals: false,
11166
11184
  run: async (input) => {
@@ -11170,14 +11188,15 @@ var SYSTEM_CLI_COMMANDS = [
11170
11188
  },
11171
11189
  {
11172
11190
  path: ["start"],
11173
- usage: "canonry start [--port <port>] [--host <host>] [--base-path <path>] [--embed] [--embed-allow-origin <origin>...] [--embed-view <view>...] [--format json]",
11191
+ usage: "canonry start [--port <port>] [--host <host>] [--base-path <path>] [--embed] [--embed-allow-origin <origin>...] [--embed-view <view>...] [--embed-project-tab <tab>...] [--format json]",
11174
11192
  options: {
11175
11193
  port: stringOption(),
11176
11194
  host: stringOption(),
11177
11195
  "base-path": stringOption(),
11178
11196
  embed: { type: "boolean", default: false },
11179
11197
  "embed-allow-origin": multiStringOption(),
11180
- "embed-view": multiStringOption()
11198
+ "embed-view": multiStringOption(),
11199
+ "embed-project-tab": multiStringOption()
11181
11200
  },
11182
11201
  allowPositionals: false,
11183
11202
  run: async (input) => {
@@ -11188,6 +11207,7 @@ var SYSTEM_CLI_COMMANDS = [
11188
11207
  embed: getBoolean(input.values, "embed"),
11189
11208
  embedAllowOrigins: getStringArray(input.values, "embed-allow-origin"),
11190
11209
  embedViews: getStringArray(input.values, "embed-view"),
11210
+ embedProjectTabs: getStringArray(input.values, "embed-project-tab"),
11191
11211
  format: input.format
11192
11212
  });
11193
11213
  }
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  createServer
3
- } from "./chunk-GIKNEXFE.js";
3
+ } from "./chunk-2AWATO4I.js";
4
4
  import {
5
5
  loadConfig
6
- } from "./chunk-23DCY7DL.js";
7
- import "./chunk-GNMZTR6Y.js";
8
- import "./chunk-Q7FFDQU4.js";
6
+ } from "./chunk-VGMTLUUM.js";
7
+ import "./chunk-F3MKVMS5.js";
8
+ import "./chunk-VOR5ZTUU.js";
9
9
  export {
10
10
  createServer,
11
11
  loadConfig
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  IntelligenceService
3
- } from "./chunk-GNMZTR6Y.js";
4
- import "./chunk-Q7FFDQU4.js";
3
+ } from "./chunk-F3MKVMS5.js";
4
+ import "./chunk-VOR5ZTUU.js";
5
5
  export {
6
6
  IntelligenceService
7
7
  };
package/dist/mcp.js CHANGED
@@ -3,10 +3,10 @@ import {
3
3
  PACKAGE_VERSION,
4
4
  canonryMcpTools,
5
5
  createApiClient
6
- } from "./chunk-23DCY7DL.js";
6
+ } from "./chunk-VGMTLUUM.js";
7
7
  import {
8
8
  isReadOnlyKey
9
- } from "./chunk-Q7FFDQU4.js";
9
+ } from "./chunk-VOR5ZTUU.js";
10
10
 
11
11
  // src/mcp/cli.ts
12
12
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ainyc/canonry",
3
- "version": "4.104.0",
3
+ "version": "4.106.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",
@@ -65,27 +65,27 @@
65
65
  "@types/node-cron": "^3.0.11",
66
66
  "tsup": "^8.5.1",
67
67
  "tsx": "^4.19.0",
68
- "@ainyc/canonry-api-routes": "0.0.0",
69
68
  "@ainyc/canonry-api-client": "0.0.0",
70
- "@ainyc/canonry-config": "0.0.0",
71
69
  "@ainyc/canonry-db": "0.0.0",
70
+ "@ainyc/canonry-config": "0.0.0",
72
71
  "@ainyc/canonry-contracts": "0.0.0",
73
- "@ainyc/canonry-integration-cloud-run": "0.0.0",
74
- "@ainyc/canonry-integration-openai-ads": "0.0.0",
72
+ "@ainyc/canonry-api-routes": "0.0.0",
75
73
  "@ainyc/canonry-integration-bing": "0.0.0",
74
+ "@ainyc/canonry-integration-openai-ads": "0.0.0",
76
75
  "@ainyc/canonry-integration-commoncrawl": "0.0.0",
77
76
  "@ainyc/canonry-integration-google-business-profile": "0.0.0",
78
- "@ainyc/canonry-integration-google-places": "0.0.0",
79
77
  "@ainyc/canonry-integration-google": "0.0.0",
80
- "@ainyc/canonry-integration-wordpress": "0.0.0",
81
- "@ainyc/canonry-provider-cdp": "0.0.0",
78
+ "@ainyc/canonry-integration-google-places": "0.0.0",
79
+ "@ainyc/canonry-integration-cloud-run": "0.0.0",
82
80
  "@ainyc/canonry-integration-traffic": "0.0.0",
81
+ "@ainyc/canonry-integration-wordpress": "0.0.0",
83
82
  "@ainyc/canonry-intelligence": "0.0.0",
84
- "@ainyc/canonry-provider-claude": "0.0.0",
83
+ "@ainyc/canonry-provider-gemini": "0.0.0",
85
84
  "@ainyc/canonry-provider-local": "0.0.0",
86
- "@ainyc/canonry-provider-openai": "0.0.0",
85
+ "@ainyc/canonry-provider-cdp": "0.0.0",
86
+ "@ainyc/canonry-provider-claude": "0.0.0",
87
87
  "@ainyc/canonry-provider-perplexity": "0.0.0",
88
- "@ainyc/canonry-provider-gemini": "0.0.0"
88
+ "@ainyc/canonry-provider-openai": "0.0.0"
89
89
  },
90
90
  "scripts": {
91
91
  "build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",