@ainyc/canonry 4.32.0 → 4.33.1

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
@@ -20,7 +20,7 @@ import {
20
20
  setTelemetrySource,
21
21
  showFirstRunNotice,
22
22
  trackEvent
23
- } from "./chunk-7I65IXVU.js";
23
+ } from "./chunk-DZENHID5.js";
24
24
  import {
25
25
  CliError,
26
26
  EXIT_SYSTEM_ERROR,
@@ -36,7 +36,7 @@ import {
36
36
  saveConfig,
37
37
  saveConfigPatch,
38
38
  usageError
39
- } from "./chunk-LVX5TOYA.js";
39
+ } from "./chunk-5EBN7736.js";
40
40
  import {
41
41
  apiKeys,
42
42
  competitors,
@@ -49,7 +49,7 @@ import {
49
49
  queries,
50
50
  querySnapshots,
51
51
  runs
52
- } from "./chunk-LUAJVZVZ.js";
52
+ } from "./chunk-BJXHETQW.js";
53
53
  import {
54
54
  CcReleaseSyncStatuses,
55
55
  CheckScopes,
@@ -71,7 +71,7 @@ import {
71
71
  providerQuotaPolicySchema,
72
72
  resolveProviderInput,
73
73
  skillsClientSchema
74
- } from "./chunk-5M4PP6P4.js";
74
+ } from "./chunk-XW3F5EEW.js";
75
75
 
76
76
  // src/cli.ts
77
77
  import { pathToFileURL } from "url";
@@ -623,7 +623,7 @@ function readStoredGroundingSources(rawResponse) {
623
623
  return result;
624
624
  }
625
625
  async function backfillInsightsCommand(project, opts) {
626
- const { IntelligenceService } = await import("./intelligence-service-RSRWDBHS.js");
626
+ const { IntelligenceService } = await import("./intelligence-service-XKOUBRCE.js");
627
627
  const config = loadConfig();
628
628
  const db = createClient(config.database);
629
629
  migrate(db);
@@ -1971,6 +1971,7 @@ function buildRunBody(opts, icpDescription) {
1971
1971
  if (icpDescription) body.icpDescription = icpDescription;
1972
1972
  if (opts.dedupThreshold !== void 0) body.dedupThreshold = opts.dedupThreshold;
1973
1973
  if (opts.maxProbes !== void 0) body.maxProbes = opts.maxProbes;
1974
+ if (opts.locations && opts.locations.length > 0) body.locations = opts.locations;
1974
1975
  return body;
1975
1976
  }
1976
1977
  function resolveIcpAngles(opts) {
@@ -2019,10 +2020,17 @@ Sessions already started (recover with \`canonry discover show ${project} <id>\`
2019
2020
  }
2020
2021
  for (const { angle, start } of runs2) {
2021
2022
  if (angle) console.log(`[${angle}]`);
2022
- console.log(`Discovery run started: ${start.runId}`);
2023
- console.log(` Session: ${start.sessionId}`);
2024
- console.log(` Status: ${start.status}`);
2025
- console.log(` Tail: canonry discover show ${project} ${start.sessionId}`);
2023
+ if (start.consolidated) {
2024
+ console.log(`Reusing in-flight discovery session: ${start.sessionId}`);
2025
+ console.log(` Run: ${start.runId}`);
2026
+ console.log(` Status: ${start.status}`);
2027
+ console.log(` Tail: canonry discover show ${project} ${start.sessionId}`);
2028
+ } else {
2029
+ console.log(`Discovery run started: ${start.runId}`);
2030
+ console.log(` Session: ${start.sessionId}`);
2031
+ console.log(` Status: ${start.status}`);
2032
+ console.log(` Tail: canonry discover show ${project} ${start.sessionId}`);
2033
+ }
2026
2034
  if (runs2.length > 1) console.log();
2027
2035
  }
2028
2036
  return;
@@ -2241,6 +2249,12 @@ Usage: ${usage}`, {
2241
2249
  }
2242
2250
  return parsed;
2243
2251
  }
2252
+ function parseLocationsOption(values) {
2253
+ const raw = getStringArray(values, "locations");
2254
+ if (!raw || raw.length === 0) return void 0;
2255
+ const expanded = raw.flatMap((v) => v.split(",")).map((v) => v.trim()).filter(Boolean);
2256
+ return expanded.length > 0 ? expanded : void 0;
2257
+ }
2244
2258
  function parseBucketsOption(values, usage) {
2245
2259
  const raw = getStringArray(values, "bucket");
2246
2260
  if (!raw || raw.length === 0) return void 0;
@@ -2307,20 +2321,22 @@ Usage: ${usage}`,
2307
2321
  var DISCOVER_CLI_COMMANDS = [
2308
2322
  {
2309
2323
  path: ["discover", "run"],
2310
- usage: 'canonry discover run <project> [--icp "..."] [--icp-angle "..."] [--dedup-threshold 0.85] [--max-probes 100] [--wait] [--format json]',
2324
+ usage: 'canonry discover run <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.85] [--max-probes 100] [--wait] [--format json]',
2311
2325
  options: {
2312
2326
  icp: stringOption(),
2313
2327
  "icp-angle": multiStringOption(),
2328
+ locations: multiStringOption(),
2314
2329
  "dedup-threshold": stringOption(),
2315
2330
  "max-probes": stringOption(),
2316
2331
  wait: { type: "boolean", default: false }
2317
2332
  },
2318
2333
  run: async (input) => {
2319
- const usage = 'canonry discover run <project> [--icp "..."] [--icp-angle "..."] [--dedup-threshold 0.85] [--max-probes 100] [--wait] [--format json]';
2334
+ const usage = 'canonry discover run <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.85] [--max-probes 100] [--wait] [--format json]';
2320
2335
  const project = requireProject(input, "discover.run", usage);
2321
2336
  await discoverRun(project, {
2322
2337
  icp: getString(input.values, "icp"),
2323
2338
  icpAngles: getStringArray(input.values, "icp-angle"),
2339
+ locations: parseLocationsOption(input.values),
2324
2340
  dedupThreshold: parseFloatOption(input.values, "dedup-threshold", usage),
2325
2341
  maxProbes: parseIntegerOption(input, "max-probes", {
2326
2342
  command: "discover.run",
@@ -2334,20 +2350,22 @@ var DISCOVER_CLI_COMMANDS = [
2334
2350
  },
2335
2351
  {
2336
2352
  path: ["discover", "seed"],
2337
- usage: 'canonry discover seed <project> [--icp "..."] [--icp-angle "..."] [--dedup-threshold 0.85] [--max-probes 100] [--wait] [--format json]',
2353
+ usage: 'canonry discover seed <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.85] [--max-probes 100] [--wait] [--format json]',
2338
2354
  options: {
2339
2355
  icp: stringOption(),
2340
2356
  "icp-angle": multiStringOption(),
2357
+ locations: multiStringOption(),
2341
2358
  "dedup-threshold": stringOption(),
2342
2359
  "max-probes": stringOption(),
2343
2360
  wait: { type: "boolean", default: false }
2344
2361
  },
2345
2362
  run: async (input) => {
2346
- const usage = 'canonry discover seed <project> [--icp "..."] [--icp-angle "..."] [--dedup-threshold 0.85] [--max-probes 100] [--wait] [--format json]';
2363
+ const usage = 'canonry discover seed <project> [--icp "..."] [--icp-angle "..."] [--locations michigan,florida] [--dedup-threshold 0.85] [--max-probes 100] [--wait] [--format json]';
2347
2364
  const project = requireProject(input, "discover.seed", usage);
2348
2365
  await discoverSeed(project, {
2349
2366
  icp: getString(input.values, "icp"),
2350
2367
  icpAngles: getStringArray(input.values, "icp-angle"),
2368
+ locations: parseLocationsOption(input.values),
2351
2369
  dedupThreshold: parseFloatOption(input.values, "dedup-threshold", usage),
2352
2370
  maxProbes: parseIntegerOption(input, "max-probes", {
2353
2371
  command: "discover.seed",
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  createServer
3
- } from "./chunk-7I65IXVU.js";
3
+ } from "./chunk-DZENHID5.js";
4
4
  import {
5
5
  loadConfig
6
- } from "./chunk-LVX5TOYA.js";
7
- import "./chunk-LUAJVZVZ.js";
8
- import "./chunk-5M4PP6P4.js";
6
+ } from "./chunk-5EBN7736.js";
7
+ import "./chunk-BJXHETQW.js";
8
+ import "./chunk-XW3F5EEW.js";
9
9
  export {
10
10
  createServer,
11
11
  loadConfig
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  IntelligenceService
3
- } from "./chunk-LUAJVZVZ.js";
4
- import "./chunk-5M4PP6P4.js";
3
+ } from "./chunk-BJXHETQW.js";
4
+ import "./chunk-XW3F5EEW.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-LVX5TOYA.js";
6
- import "./chunk-5M4PP6P4.js";
5
+ } from "./chunk-5EBN7736.js";
6
+ import "./chunk-XW3F5EEW.js";
7
7
 
8
8
  // src/mcp/cli.ts
9
9
  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.32.0",
3
+ "version": "4.33.1",
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",
65
- "@ainyc/canonry-db": "0.0.0",
64
+ "@ainyc/canonry-config": "0.0.0",
65
+ "@ainyc/canonry-contracts": "0.0.0",
66
66
  "@ainyc/canonry-integration-bing": "0.0.0",
67
+ "@ainyc/canonry-db": "0.0.0",
67
68
  "@ainyc/canonry-intelligence": "0.0.0",
68
69
  "@ainyc/canonry-integration-cloud-run": "0.0.0",
70
+ "@ainyc/canonry-integration-traffic": "0.0.0",
71
+ "@ainyc/canonry-provider-cdp": "0.0.0",
69
72
  "@ainyc/canonry-integration-commoncrawl": "0.0.0",
70
73
  "@ainyc/canonry-integration-google": "0.0.0",
71
- "@ainyc/canonry-integration-traffic": "0.0.0",
72
74
  "@ainyc/canonry-integration-wordpress": "0.0.0",
73
- "@ainyc/canonry-contracts": "0.0.0",
74
- "@ainyc/canonry-provider-cdp": "0.0.0",
75
75
  "@ainyc/canonry-provider-gemini": "0.0.0",
76
- "@ainyc/canonry-provider-local": "0.0.0",
77
- "@ainyc/canonry-provider-claude": "0.0.0",
78
76
  "@ainyc/canonry-provider-openai": "0.0.0",
79
- "@ainyc/canonry-provider-perplexity": "0.0.0"
77
+ "@ainyc/canonry-provider-claude": "0.0.0",
78
+ "@ainyc/canonry-provider-perplexity": "0.0.0",
79
+ "@ainyc/canonry-provider-local": "0.0.0"
80
80
  },
81
81
  "scripts": {
82
82
  "build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",