botanary 0.2.0 → 0.2.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/README.md CHANGED
@@ -85,6 +85,7 @@ Every command works both ways: answer prompts interactively, or pass flags and a
85
85
  | `completion <shell>` | Print a shell completion script (bash, zsh, fish, powershell) |
86
86
  | `prompt` | Print the full operating manual for an automation driving this CLI |
87
87
  | `update-check` | Check whether a newer botanary is published |
88
+ | `update` | Update botanary to the latest published version |
88
89
 
89
90
  ## Non-interactive use
90
91
 
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "botanary",
3
3
  "type": "module",
4
- "version": "0.2.0",
4
+ "version": "0.2.2",
5
5
  "description": "Botanary from your terminal - a guided CLI over the same wallet and agent lanes botanary-mcp exposes to a coding agent.",
6
6
  "license": "UNLICENSED",
7
7
  "homepage": "https://docs.botanary.xyz",
@@ -23,7 +23,7 @@
23
23
  "test:watch": "vitest"
24
24
  },
25
25
  "dependencies": {
26
- "botanary-mcp": "^0.6.0",
26
+ "botanary-mcp": "^0.6.1",
27
27
  "commander": "^13.1.0",
28
28
  "@clack/prompts": "^0.9.1",
29
29
  "picocolors": "^1.1.1",
package/dist/src/cli.js CHANGED
@@ -13,6 +13,7 @@ import { readConfig } from './config-store.js';
13
13
  import { resolveSettings } from './settings.js';
14
14
  import { EXIT, CliError, errorEnvelope, errorLines, toCliError } from './errors.js';
15
15
  import { checkForUpdate, nagSuppressed, nagLine } from './update-check.js';
16
+ import { detectInstall } from './install-method.js';
16
17
  /**
17
18
  * Wrap fetch when, and only when, a global flag asks for it. `--timeout` needs an AbortController per
18
19
  * request; `--debug` needs a line per request. Returns undefined otherwise so the ordinary path keeps
@@ -42,18 +43,29 @@ function wrapFetch(settings, stderr) {
42
43
  }
43
44
  });
44
45
  }
46
+ /** Commands that already answer "is there an update" in more detail, on stdout. A nag right after either
47
+ * one is either an immediate contradiction (`update` just ran the install) or pure noise (`update-check`
48
+ * just printed the same fact). */
49
+ const NAG_EXEMPT_COMMANDS = new Set(['update', 'update-check']);
45
50
  /**
46
51
  * A courtesy line, on stderr so it can never corrupt piped output, and only where a human can act on it.
47
52
  * The refresh is capped at 1.5s and runs at most once a day; every failure is silent. This must never be
48
53
  * able to slow down or break a command.
54
+ *
55
+ * `commandName` comes from the `preAction` hook rather than argv[0], so it stays correct no matter where a
56
+ * global flag lands (`botanary --json update --yes`, `botanary update --yes`) and cannot be defeated by
57
+ * one.
49
58
  */
50
- async function maybeNag(ctx, cliVersion, stderr) {
59
+ async function maybeNag(ctx, cliVersion, stderr, commandName) {
51
60
  if (ctx.json || ctx.quiet || !ctx.interactive || nagSuppressed(process.env))
52
61
  return;
62
+ if (commandName !== null && NAG_EXEMPT_COMMANDS.has(commandName))
63
+ return;
53
64
  try {
54
65
  const result = await checkForUpdate(cliVersion, { fetchImpl: fetch, now: () => Date.now() });
55
- if (result.newer && result.latest)
56
- stderr(colors.dim(nagLine(result.latest, cliVersion)));
66
+ if (result.newer && result.latest) {
67
+ stderr(colors.dim(nagLine(result.latest, cliVersion, detectInstall(process.env))));
68
+ }
57
69
  }
58
70
  catch {
59
71
  // Never let a courtesy check affect the command's outcome.
@@ -74,6 +86,13 @@ export async function runCli(argv, deps) {
74
86
  registerSystemCommands(program, deps.cliVersion);
75
87
  registerUtilityCommands(program, deps.cliVersion);
76
88
  program.exitOverride();
89
+ // Recorded here, rather than sniffed from argv, because a global flag (`--json`, `--yes`, ...) can sit
90
+ // before OR after the command name - `preAction` fires with the actual leaf command about to run,
91
+ // regardless of where those flags landed.
92
+ let invokedCommand = null;
93
+ program.hook('preAction', (_rootCommand, actionCommand) => {
94
+ invokedCommand = actionCommand.name();
95
+ });
77
96
  let ctx = null;
78
97
  try {
79
98
  program.parseOptions(argv);
@@ -114,7 +133,7 @@ export async function runCli(argv, deps) {
114
133
  return EXIT.ok;
115
134
  }
116
135
  await program.parseAsync(argv, { from: 'user' });
117
- await maybeNag(ctx, deps.cliVersion, stderr);
136
+ await maybeNag(ctx, deps.cliVersion, stderr, invokedCommand);
118
137
  return ctx.outcome.exit;
119
138
  }
120
139
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -40,10 +40,20 @@ export function resolveMcpBin() {
40
40
  /**
41
41
  * Helper to spawn a child process and wait for it to exit. The onError callback is invoked when
42
42
  * the child emits an 'error' event (e.g. when the command is not found).
43
+ *
44
+ * `useShell` is per call site, not a blanket default, because a shell is not free of hazards: when
45
+ * `shell: true`, Node does not quote `command`/`args` for you - it joins them with a plain space and
46
+ * hands the whole string to the platform shell (`cmd /d /s /c "..."` on Windows), so any path containing
47
+ * a space silently splits into separate tokens. `mcp install`'s argv is client-CLI names from the constant
48
+ * `MCP_SNIPPETS` table - no spaces, but those CLIs are `.cmd` shims on Windows that `spawn` refuses to run
49
+ * without a shell since the fix for CVE-2024-27980 (same reasoning as src/run-installer.ts). `mcp serve`'s
50
+ * argv is `process.execPath` plus a resolved `botanary-mcp` bin path - both routinely contain spaces (the
51
+ * default Windows Node install is under `C:\Program Files\nodejs\`), and it spawns an `.exe` directly, so
52
+ * it never needed a shell in the first place. Even on win32, `useShell` must stay off there.
43
53
  */
44
- async function spawnAndWait(command, args, onError) {
54
+ async function spawnAndWait(command, args, onError, useShell) {
45
55
  return new Promise((resolve) => {
46
- const child = spawn(command, args, { stdio: 'inherit' });
56
+ const child = spawn(command, args, { stdio: 'inherit', shell: useShell && process.platform === 'win32' });
47
57
  child.on('error', (error) => resolve(onError(error)));
48
58
  child.on('close', (code) => resolve(code ?? 1));
49
59
  });
@@ -121,7 +131,8 @@ export function registerMcpCommands(program) {
121
131
  because: `This runs \`${printable}\` and needs a confirmation it cannot ask for here.`,
122
132
  });
123
133
  const [command, ...args] = entry.installCommand;
124
- const exitCode = await spawnAndWait(command, args, () => -1);
134
+ // Client CLIs are `.cmd` shims on Windows - shell needed there to resolve them at all.
135
+ const exitCode = await spawnAndWait(command, args, () => -1, true);
125
136
  if (exitCode === -1) {
126
137
  throw new CliError(`Could not run \`${command}\` - it does not appear to be installed.`, 'client_cli_missing', EXIT.error, `Install ${entry.label} first, or use \`botanary mcp config ${client}\` and add it yourself.`);
127
138
  }
@@ -142,7 +153,9 @@ export function registerMcpCommands(program) {
142
153
  // Spawned with NO arguments deliberately: botanary-mcp's own bin treats a bare invocation as "serve
143
154
  // and stay alive", and exits immediately after connecting when it is given any argument at all.
144
155
  const bin = resolveMcpBin();
145
- const exitCode = await spawnAndWait(process.execPath, [bin], () => 1);
156
+ // process.execPath is an .exe spawned directly - never needs a shell, and a shell would break on
157
+ // its own default Windows install path (see spawnAndWait's doc comment).
158
+ const exitCode = await spawnAndWait(process.execPath, [bin], () => 1, false);
146
159
  if (exitCode !== 0)
147
160
  throw new CliError(`botanary-mcp exited ${exitCode}.`, 'mcp_exited', EXIT.error);
148
161
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ import * as clack from '@clack/prompts';
2
+ import { CliError, EXIT, invalidArgs } from '../errors.js';
3
+ import { detectInstall } from '../install-method.js';
4
+ import { runInstaller } from '../run-installer.js';
1
5
  import { group } from '../help/groups.js';
2
6
  import { SHELLS, completionScript } from '../completion.js';
3
7
  import { promptDoc } from '../prompt-doc.js';
@@ -38,7 +42,78 @@ export function registerUtilityCommands(program, cliVersion) {
38
42
  console.log(glyphs.info('Could not reach the npm registry. Nothing changed.'));
39
43
  return;
40
44
  }
41
- console.log(result.newer ? glyphs.warning(nagLine(result.latest, cliVersion)) : glyphs.success(`Up to date (${cliVersion}).`));
45
+ console.log(result.newer
46
+ ? glyphs.warning(nagLine(result.latest, cliVersion, detectInstall(process.env)))
47
+ : glyphs.success(`Up to date (${cliVersion}).`));
48
+ }), 'Utilities');
49
+ group(program
50
+ .command('update')
51
+ .description('Update botanary to the latest published version')
52
+ .action(async () => {
53
+ const ctx = program.opts().__ctx;
54
+ const result = await step(ctx, 'Asking npm', () => checkForUpdate(cliVersion, { fetchImpl: fetch, now: () => Date.now(), force: true }));
55
+ const method = detectInstall(process.env);
56
+ if (result.latest === null) {
57
+ throw new CliError('Could not reach the npm registry. Nothing changed.', 'upstream_unavailable', EXIT.upstream, 'Check your connection and try again.');
58
+ }
59
+ if (!result.newer) {
60
+ if (ctx.json) {
61
+ console.log(JSON.stringify({ ...result, manager: method.manager, command: method.command, updated: false }));
62
+ return;
63
+ }
64
+ console.log(glyphs.success(`Up to date (${cliVersion}).`));
65
+ return;
66
+ }
67
+ if (!method.updatable || method.command === null) {
68
+ if (ctx.json) {
69
+ console.log(JSON.stringify({ ...result, manager: method.manager, command: null, updated: false }));
70
+ return;
71
+ }
72
+ console.log(glyphs.info(`${cliVersion} is behind ${result.latest}. ${method.reason}`));
73
+ return;
74
+ }
75
+ const printable = method.command.join(' ');
76
+ // Before the consent gate: `--dry-run` is the escape hatch README.md promises stays available
77
+ // even when `confirm: never` is configured, so it must win before anything asks for --yes or
78
+ // installs anything. Same JSON shape the rest of this command already uses, just `updated: false`.
79
+ if (ctx.dryRun) {
80
+ if (ctx.json) {
81
+ // `dryRun: true` is what makes this payload honest. Without it a caller cannot tell a dry
82
+ // run from "nothing needed doing" - both carry `updated: false`. Every other dry-run in this
83
+ // CLI marks itself the same way, via review.ts's dryRunPayload.
84
+ console.log(JSON.stringify({ ...result, dryRun: true, manager: method.manager, command: method.command, updated: false }));
85
+ return;
86
+ }
87
+ console.log(glyphs.info(`Would run \`${printable}\` (${method.manager}). Dry run - nothing was changed.`));
88
+ return;
89
+ }
90
+ if (!ctx.yes) {
91
+ if (ctx.json || !ctx.interactive) {
92
+ throw invalidArgs(`botanary ${cliVersion} is behind ${result.latest}, and updating runs \`${printable}\`. Pass --yes to confirm non-interactively.`);
93
+ }
94
+ console.log(`${cliVersion} to ${result.latest}, installed with ${method.manager}.`);
95
+ const answer = await clack.confirm({ message: `Run \`${printable}\`?`, initialValue: false });
96
+ if (answer !== true) {
97
+ console.log(glyphs.info('Cancelled - nothing was changed.'));
98
+ return;
99
+ }
100
+ }
101
+ // Build every line BEFORE spawning. The installer rewrites this package's dist/ while this very
102
+ // process is still running, and Node resolves modules lazily, so anything first imported after
103
+ // the swap could be read from a half-written tree. Past this point: no imports, no helpers that
104
+ // might not already be resident, nothing but writing strings that already exist.
105
+ const successLine = ctx.json
106
+ ? JSON.stringify({ ...result, manager: method.manager, command: method.command, updated: true })
107
+ : glyphs.success(`Updated ${cliVersion} to ${result.latest}.`);
108
+ const failureMessage = `\`${printable}\` failed. Nothing was changed.`;
109
+ // Under --json, stdout IS the response payload - silence the child's own stdout so npm's
110
+ // `added 1 package in 2s` cannot land ahead of the JSON line and break a `| jq` pipe. The human
111
+ // path keeps npm's progress inherited as before.
112
+ const code = await runInstaller(method.command, { silent: ctx.json });
113
+ if (code !== 0) {
114
+ throw new CliError(failureMessage, 'update_failed', EXIT.error, 'Run it yourself to see the installer output.');
115
+ }
116
+ console.log(successLine);
42
117
  }), 'Utilities');
43
118
  }
44
119
  //# sourceMappingURL=utilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../../src/commands/utilities.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,UAAkB;IAC1E,KAAK,CACH,OAAO;SACJ,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,oCAAoC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;SACrE,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QACxB,sFAAsF;QACtF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,EACJ,WAAW,CACZ,CAAC;IAEF,KAAK,CACH,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oEAAoE,CAAC;SACjF,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,GAAG,GAAe,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAC7C,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3C,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,EACJ,WAAW,CACZ,CAAC;IAEF,KAAK,CACH,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,6CAA6C,CAAC;SAC1D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAe,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAChD,cAAc,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CACrF,CAAC;QACF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,UAAU,IAAI,CAAC,CAAC,CAAC;IACjI,CAAC,CAAC,EACJ,WAAW,CACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../../src/commands/utilities.ts"],"names":[],"mappings":"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"}
@@ -312,14 +312,23 @@ export const COMMAND_HELP = {
312
312
  version: {
313
313
  body: 'The installed botanary CLI version.',
314
314
  examples: ['botanary version', 'botanary --version'],
315
- seeAlso: 'botanary update-check',
315
+ seeAlso: 'botanary update',
316
316
  },
317
317
  'update-check': {
318
- body: 'Ask npm whether a newer botanary is published. Cached for a day, silent when offline, and never\n' +
319
- 'self-updating - it prints the upgrade command and leaves the decision to you.',
318
+ body: 'Ask npm whether a newer botanary is published. Cached for a day and silent when offline. It only\n' +
319
+ 'reports - `botanary update` is the one that changes anything.',
320
320
  examples: ['botanary update-check', 'botanary update-check --json'],
321
321
  notes: 'Set BOTANARY_NO_UPDATE_NOTIFIER=1 to suppress the one-line nag other commands print.',
322
- seeAlso: 'botanary version',
322
+ seeAlso: 'botanary update',
323
+ },
324
+ update: {
325
+ body: 'Update botanary to the latest published version. It works out how this copy was installed - npm,\n' +
326
+ 'pnpm, yarn or bun - and runs that manager, after showing you the exact command and asking. Under a\n' +
327
+ 'one-off runner - `npx`, `pnpm dlx` or `bunx` - there is nothing to update, because those already\n' +
328
+ 'fetch the latest botanary every run.',
329
+ examples: ['botanary update', 'botanary update --yes', 'botanary update --json --yes', 'botanary update --dry-run'],
330
+ notes: 'Needs --yes when it cannot ask, and it never uses sudo: a permission error is yours to resolve.',
331
+ seeAlso: 'botanary update-check',
323
332
  },
324
333
  docs: {
325
334
  body: 'Open the Botanary documentation in your browser, optionally at one topic.',
@@ -1 +1 @@
1
- {"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../src/help/examples.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../src/help/examples.ts"],"names":[],"mappings":"AAqBA,4GAA4G;AAC5G,MAAM,CAAC,MAAM,YAAY,GAAgC;IACvD,KAAK,EAAE;QACL,IAAI,EACF,oGAAoG;YACpG,uGAAuG;YACvG,gGAAgG;QAClG,QAAQ,EAAE,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;QACrD,KAAK,EAAE,mGAAmG;QAC1G,OAAO,EAAE,uDAAuD;KACjE;IACD,MAAM,EAAE;QACN,IAAI,EAAE,gFAAgF;QACtF,QAAQ,EAAE,CAAC,iBAAiB,CAAC;QAC7B,OAAO,EAAE,sCAAsC;KAChD;IACD,MAAM,EAAE;QACN,IAAI,EAAE,mHAAmH;QACzH,QAAQ,EAAE,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;QACvD,OAAO,EAAE,0DAA0D;KACpE;IACD,MAAM,EAAE;QACN,IAAI,EACF,mGAAmG;YACnG,oEAAoE;QACtE,QAAQ,EAAE,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;QACvD,OAAO,EAAE,uEAAuE;KACjF;IACD,OAAO,EAAE;QACP,IAAI,EACF,uGAAuG;YACvG,kGAAkG;YAClG,qEAAqE;QACvE,QAAQ,EAAE,CAAC,kBAAkB,EAAE,iDAAiD,EAAE,wBAAwB,CAAC;QAC3G,OAAO,EAAE,6DAA6D;KACvE;IACD,IAAI,EAAE;QACJ,IAAI,EACF,kGAAkG;YAClG,wFAAwF;YACxF,IAAI;YACJ,wCAAwC;YACxC,wEAAwE;YACxE,oEAAoE;QACtE,QAAQ,EAAE;YACR,yEAAyE;YACzE,6EAA6E;YAC7E,uFAAuF;YACvF,0GAA0G;SAC3G;QACD,KAAK,EACH,gFAAgF;YAChF,8HAA8H;QAChI,OAAO,EAAE,sEAAsE;KAChF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,4EAA4E;QAClF,QAAQ,EAAE,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;QAC3D,OAAO,EAAE,0CAA0C;KACpD;IACD,OAAO,EAAE;QACP,IAAI,EAAE,yFAAyF;QAC/F,QAAQ,EAAE,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;QACzD,OAAO,EAAE,uCAAuC;KACjD;IACD,KAAK,EAAE;QACL,IAAI,EACF,kGAAkG;YAClG,sEAAsE;QACxE,QAAQ,EAAE,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;QACrD,OAAO,EAAE,uCAAuC;KACjD;IACD,QAAQ,EAAE;QACR,IAAI,EACF,wGAAwG;YACxG,kCAAkC;QACpC,QAAQ,EAAE,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,0BAA0B,CAAC;QACxF,KAAK,EAAE,qFAAqF;QAC5F,OAAO,EAAE,+DAA+D;KACzE;IACD,kBAAkB,EAAE;QAClB,IAAI,EACF,wGAAwG;YACxG,+FAA+F;QACjG,QAAQ,EAAE,CAAC,2BAA2B,EAAE,kCAAkC,CAAC;QAC3E,OAAO,EAAE,mEAAmE;KAC7E;IACD,MAAM,EAAE;QACN,IAAI,EAAE,sFAAsF;QAC5F,QAAQ,EAAE,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;QACvD,OAAO,EAAE,kEAAkE;KAC5E;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,iDAAiD;QACvD,QAAQ,EAAE,CAAC,wBAAwB,EAAE,8BAA8B,CAAC;QACpE,OAAO,EAAE,4CAA4C;KACtD;IACD,eAAe,EAAE;QACf,IAAI,EAAE,+DAA+D;QACrE,QAAQ,EAAE,CAAC,wBAAwB,EAAE,+BAA+B,CAAC;QACrE,OAAO,EAAE,uBAAuB;KACjC;IACD,cAAc,EAAE;QACd,IAAI,EACF,qGAAqG;YACrG,yEAAyE;QAC3E,QAAQ,EAAE,CAAC,8BAA8B,CAAC;QAC1C,OAAO,EAAE,mDAAmD;KAC7D;IACD,MAAM,EAAE;QACN,IAAI,EACF,uEAAuE;YACvE,oDAAoD;YACpD,mGAAmG;YACnG,4DAA4D;YAC5D,IAAI;YACJ,uDAAuD;QACzD,QAAQ,EAAE,CAAC,iBAAiB,EAAE,6EAA6E,CAAC;QAC5G,OAAO,EAAE,iDAAiD;KAC3D;IACD,GAAG,EAAE;QACH,IAAI,EACF,oGAAoG;YACpG,uGAAuG;YACvG,iBAAiB;QACnB,QAAQ,EAAE,CAAC,8BAA8B,EAAE,qCAAqC,CAAC;QACjF,OAAO,EAAE,wDAAwD;KAClE;IACD,GAAG,EAAE;QACH,IAAI,EACF,sGAAsG;YACtG,6FAA6F;YAC7F,6FAA6F;QAC/F,QAAQ,EAAE;YACR,sBAAsB;YACtB,mDAAmD;YACnD,qBAAqB;YACrB,2BAA2B;SAC5B;QACD,OAAO,EAAE,4DAA4D;KACtE;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,oEAAoE;QAC1E,QAAQ,EAAE,CAAC,eAAe,EAAE,wBAAwB,EAAE,sBAAsB,CAAC;QAC7E,OAAO,EAAE,eAAe;KACzB;IACD,KAAK,EAAE;QACL,IAAI,EACF,oGAAoG;YACpG,yFAAyF;QAC3F,QAAQ,EAAE,CAAC,uBAAuB,EAAE,sBAAsB,EAAE,qBAAqB,CAAC;QAClF,OAAO,EAAE,oCAAoC;KAC9C;IACD,cAAc,EAAE;QACd,IAAI,EACF,yGAAyG;YACzG,uGAAuG;YACvG,0CAA0C;QAC5C,QAAQ,EAAE,CAAC,uBAAuB,EAAE,8BAA8B,CAAC;QACnE,OAAO,EAAE,iFAAiF;KAC3F;IACD,gBAAgB,EAAE;QAChB,IAAI,EACF,wGAAwG;YACxG,uGAAuG;YACvG,4EAA4E;QAC9E,QAAQ,EAAE,CAAC,yBAAyB,EAAE,gCAAgC,CAAC;QACvE,OAAO,EAAE,iEAAiE;KAC3E;IACD,YAAY,EAAE;QACZ,IAAI,EACF,qGAAqG;YACrG,uGAAuG;YACvG,qBAAqB;QACvB,QAAQ,EAAE,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;QACrE,KAAK,EAAE,yIAAyI;QAChJ,OAAO,EAAE,gDAAgD;KAC1D;IACD,aAAa,EAAE;QACb,IAAI,EAAE,0FAA0F;QAChG,QAAQ,EAAE,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;QACjE,OAAO,EAAE,gEAAgE;KAC1E;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qGAAqG;QAC3G,QAAQ,EAAE,CAAC,wBAAwB,EAAE,yCAAyC,CAAC;QAC/E,OAAO,EAAE,2CAA2C;KACrD;IACD,eAAe,EAAE;QACf,IAAI,EAAE,6FAA6F;QACnG,QAAQ,EAAE,CAAC,wBAAwB,EAAE,+BAA+B,CAAC;QACrE,OAAO,EAAE,sCAAsC;KAChD;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,gFAAgF;QACtF,QAAQ,EAAE,CAAC,yBAAyB,EAAE,gCAAgC,CAAC;QACvE,OAAO,EAAE,8CAA8C;KACxD;IACD,eAAe,EAAE;QACf,IAAI,EACF,yGAAyG;YACzG,oGAAoG;YACpG,qDAAqD;QACvD,QAAQ,EAAE;YACR,uFAAuF;YACvF,+EAA+E;SAChF;QACD,KAAK,EAAE,mHAAmH;QAC1H,OAAO,EAAE,wEAAwE;KAClF;IACD,aAAa,EAAE;QACb,IAAI,EACF,sGAAsG;YACtG,uGAAuG;YACvG,4DAA4D;QAC9D,QAAQ,EAAE;YACR,oFAAoF;YACpF,8FAA8F;SAC/F;QACD,KAAK,EAAE,oFAAoF;QAC3F,OAAO,EAAE,qEAAqE;KAC/E;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,uFAAuF;QAC7F,QAAQ,EAAE;YACR,qFAAqF;YACrF,4GAA4G;SAC7G;QACD,OAAO,EAAE,2CAA2C;KACrD;IACD,cAAc,EAAE;QACd,IAAI,EACF,yGAAyG;YACzG,oGAAoG;QACtG,QAAQ,EAAE,CAAC,8BAA8B,EAAE,qCAAqC,CAAC;QACjF,OAAO,EAAE,gDAAgD;KAC1D;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,kGAAkG;QACxG,QAAQ,EAAE,CAAC,sCAAsC,EAAE,6CAA6C,CAAC;QACjG,OAAO,EAAE,6DAA6D;KACvE;IACD,WAAW,EAAE;QACX,IAAI,EAAE,yFAAyF;QAC/F,QAAQ,EAAE,CAAC,kGAAkG,CAAC;QAC9G,OAAO,EAAE,6DAA6D;KACvE;IACD,cAAc,EAAE;QACd,IAAI,EAAE,yFAAyF;QAC/F,QAAQ,EAAE,CAAC,wCAAwC,EAAE,+CAA+C,CAAC;QACrG,OAAO,EAAE,4CAA4C;KACtD;IACD,cAAc,EAAE;QACd,IAAI,EACF,iGAAiG;YACjG,gFAAgF;QAClF,QAAQ,EAAE,CAAC,uBAAuB,CAAC;QACnC,OAAO,EAAE,8CAA8C;KACxD;IACD,sBAAsB,EAAE;QACtB,IAAI,EACF,yGAAyG;YACzG,4FAA4F;QAC9F,QAAQ,EAAE,CAAC,sCAAsC,CAAC;QAClD,OAAO,EAAE,8CAA8C;KACxD;IACD,GAAG,EAAE;QACH,IAAI,EAAE,mGAAmG;QACzG,QAAQ,EAAE,CAAC,4BAA4B,EAAE,6BAA6B,EAAE,oBAAoB,CAAC;QAC7F,OAAO,EAAE,qBAAqB;KAC/B;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,0DAA0D;QAChE,QAAQ,EAAE,CAAC,4BAA4B,EAAE,4BAA4B,CAAC;QACtE,OAAO,EAAE,sBAAsB;KAChC;IACD,aAAa,EAAE;QACb,IAAI,EACF,mGAAmG;YACnG,0FAA0F;YAC1F,IAAI;YACJ,wGAAwG;YACxG,kDAAkD;QACpD,QAAQ,EAAE,CAAC,6BAA6B,EAAE,kCAAkC,CAAC;QAC7E,OAAO,EAAE,qBAAqB;KAC/B;IACD,WAAW,EAAE;QACX,IAAI,EACF,iGAAiG;YACjG,mEAAmE;QACrE,QAAQ,EAAE,CAAC,oBAAoB,CAAC;QAChC,OAAO,EAAE,qBAAqB;KAC/B;IACD,QAAQ,EAAE;QACR,IAAI,EACF,yGAAyG;YACzG,sGAAsG;YACtG,uFAAuF;QACzF,QAAQ,EAAE,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;QAC3D,OAAO,EAAE,yDAAyD;KACnE;IACD,MAAM,EAAE;QACN,IAAI,EAAE,uFAAuF;QAC7F,QAAQ,EAAE,CAAC,iBAAiB,CAAC;QAC7B,OAAO,EAAE,mBAAmB;KAC7B;IACD,MAAM,EAAE;QACN,IAAI,EACF,wGAAwG;YACxG,4DAA4D;QAC9D,QAAQ,EAAE,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,kCAAkC,CAAC;QACzF,OAAO,EAAE,mBAAmB;KAC7B;IACD,aAAa,EAAE;QACb,IAAI,EACF,uGAAuG;YACvG,qGAAqG;YACrG,6FAA6F;QAC/F,QAAQ,EAAE,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;QACjE,OAAO,EAAE,qBAAqB;KAC/B;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,6DAA6D;QACnE,QAAQ,EAAE,CAAC,6BAA6B,CAAC;QACzC,OAAO,EAAE,sBAAsB;KAChC;IACD,YAAY,EAAE;QACZ,IAAI,EACF,kGAAkG;YAClG,4GAA4G;QAC9G,QAAQ,EAAE,CAAC,kCAAkC,EAAE,iCAAiC,CAAC;QACjF,OAAO,EAAE,6CAA6C;KACvD;IACD,cAAc,EAAE;QACd,IAAI,EAAE,qFAAqF;QAC3F,QAAQ,EAAE,CAAC,+BAA+B,CAAC;QAC3C,OAAO,EAAE,sBAAsB;KAChC;IACD,OAAO,EAAE;QACP,IAAI,EAAE,qCAAqC;QAC3C,QAAQ,EAAE,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;QACpD,OAAO,EAAE,iBAAiB;KAC3B;IACD,cAAc,EAAE;QACd,IAAI,EACF,oGAAoG;YACpG,+DAA+D;QACjE,QAAQ,EAAE,CAAC,uBAAuB,EAAE,8BAA8B,CAAC;QACnE,KAAK,EAAE,sFAAsF;QAC7F,OAAO,EAAE,iBAAiB;KAC3B;IACD,MAAM,EAAE;QACN,IAAI,EACF,oGAAoG;YACpG,sGAAsG;YACtG,oGAAoG;YACpG,sCAAsC;QACxC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,2BAA2B,CAAC;QACnH,KAAK,EAAE,iGAAiG;QACxG,OAAO,EAAE,uBAAuB;KACjC;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,2EAA2E;QACjF,QAAQ,EAAE,CAAC,eAAe,EAAE,wBAAwB,CAAC;QACrD,OAAO,EAAE,eAAe;KACzB;IACD,UAAU,EAAE;QACV,IAAI,EACF,mGAAmG;YACnG,qCAAqC;QACvC,QAAQ,EAAE;YACR,sDAAsD;YACtD,uCAAuC;SACxC;QACD,OAAO,EAAE,eAAe;KACzB;IACD,MAAM,EAAE;QACN,IAAI,EACF,qGAAqG;YACrG,wGAAwG;YACxG,+DAA+D;QACjE,QAAQ,EAAE,CAAC,iBAAiB,EAAE,+BAA+B,CAAC;QAC9D,OAAO,EAAE,0CAA0C;KACpD;CACF,CAAC;AAEF,yFAAyF;AACzF,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAmB,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QAC9D,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAY;IAClC,OAAO,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ const TARGET = 'botanary@latest';
3
+ function runnable(manager, command) {
4
+ return { manager, command, updatable: true, reason: null };
5
+ }
6
+ function nothingToDo(manager, reason) {
7
+ return { manager, command: null, updatable: false, reason };
8
+ }
9
+ export function classifyInstall(modulePath, env) {
10
+ const path = modulePath.replace(/\\/g, '/');
11
+ // This guard must run first: a source checkout sits outside node_modules entirely, and every check
12
+ // below it assumes it is looking at an installed package. Skip it and a source checkout falls through
13
+ // to the unconditional npm fallback at the bottom of this function instead of being reported as source.
14
+ // The manager-specific checks that follow, though, are NOT order-dependent among themselves - each
15
+ // tests a disjoint path substring (e.g. `/.bun/install/cache/` and `/.bun/install/global/` can never
16
+ // both match the same path), so swapping any two of them leaves classification unchanged. Verified by
17
+ // swapping the bun cache and bun global checks; tests stayed green.
18
+ if (!path.includes('/node_modules/')) {
19
+ return nothingToDo('source', 'This is a source checkout, not an installed package. Update it with git.');
20
+ }
21
+ const ONE_OFF_REASON = 'A one-off runner (npx, pnpm dlx, bunx) fetches the latest botanary every run, so there is nothing to update.';
22
+ if (path.includes('/_npx/') || path.includes('/pnpm/dlx/') || path.includes('/dlx-') || path.includes('/.bun/install/cache/')) {
23
+ return nothingToDo('npx', ONE_OFF_REASON);
24
+ }
25
+ if (path.includes('/.bun/install/global/')) {
26
+ return runnable('bun', ['bun', 'add', '-g', TARGET]);
27
+ }
28
+ const pnpmHome = env.PNPM_HOME?.replace(/\\/g, '/');
29
+ if ((pnpmHome && path.startsWith(pnpmHome)) || path.includes('/pnpm/global/')) {
30
+ return runnable('pnpm', ['pnpm', 'add', '-g', TARGET]);
31
+ }
32
+ if (path.includes('/.yarn/') || path.includes('/yarn/global/')) {
33
+ return runnable('yarn', ['yarn', 'global', 'add', TARGET]);
34
+ }
35
+ // Everything else under node_modules is npm, including a global install under a Homebrew node prefix -
36
+ // there is no `botanary` brew formula, so /opt/homebrew/lib/node_modules is just npm's own layout.
37
+ return runnable('npm', ['npm', 'install', '-g', TARGET]);
38
+ }
39
+ /**
40
+ * The same answer for the copy of the CLI that is running right now.
41
+ *
42
+ * Kept separate from `classifyInstall` so the table above stays pure and testable, and so a command's own
43
+ * tests can stub just this one function. That matters more than it looks: under vitest the CLI runs from
44
+ * `src/`, which is not inside any `node_modules`, so anything that resolved its own path here would
45
+ * classify as `source` and correctly refuse to act - in every single test.
46
+ */
47
+ export function detectInstall(env = process.env) {
48
+ return classifyInstall(fileURLToPath(import.meta.url), env);
49
+ }
50
+ //# sourceMappingURL=install-method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-method.js","sourceRoot":"","sources":["../../src/install-method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAoBzC,MAAM,MAAM,GAAG,iBAAiB,CAAC;AAEjC,SAAS,QAAQ,CAAC,OAAgB,EAAE,OAAiB;IACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,WAAW,CAAC,OAAgB,EAAE,MAAc;IACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,GAAsB;IACxE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE5C,mGAAmG;IACnG,sGAAsG;IACtG,wGAAwG;IACxG,mGAAmG;IACnG,qGAAqG;IACrG,sGAAsG;IACtG,oEAAoE;IACpE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,OAAO,WAAW,CAAC,QAAQ,EAAE,0EAA0E,CAAC,CAAC;IAC3G,CAAC;IACD,MAAM,cAAc,GAAG,8GAA8G,CAAC;IACtI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC9H,OAAO,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC3C,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9E,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/D,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,uGAAuG;IACvG,mGAAmG;IACnG,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,MAAyB,OAAO,CAAC,GAAG;IAChE,OAAO,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { spawn } from 'node:child_process';
2
+ /**
3
+ * Run a package manager and report its exit code.
4
+ *
5
+ * stdio is inherited (or partly silenced - see `RunInstallerOptions`) so npm's own progress, prompts and
6
+ * errors reach the user unfiltered - an installer failure explains itself far better than anything this
7
+ * CLI could re-author, and an EACCES on a global directory is exactly the kind of message that must not be
8
+ * swallowed.
9
+ *
10
+ * Never throws. A binary that is missing resolves non-zero like any other failure, because the caller
11
+ * does the same thing either way: report that nothing changed.
12
+ */
13
+ export function runInstaller(command, options = {}) {
14
+ const [bin, ...args] = command;
15
+ if (!bin)
16
+ return Promise.resolve(1);
17
+ return new Promise((resolve) => {
18
+ const child = spawn(bin, args, {
19
+ stdio: options.silent ? ['ignore', 'ignore', 'inherit'] : 'inherit',
20
+ // npm, pnpm and yarn are `.cmd` shims on Windows. `spawn` does not apply PATHEXT, and since the fix
21
+ // for CVE-2024-27980 Node refuses to run a `.cmd` at all without `shell: true`. There is no
22
+ // injection surface here: `command` is always one of classifyInstall's constant-literal argv
23
+ // arrays, never user input.
24
+ shell: process.platform === 'win32',
25
+ });
26
+ child.on('error', () => resolve(1));
27
+ child.on('close', (code) => resolve(code ?? 1));
28
+ });
29
+ }
30
+ //# sourceMappingURL=run-installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-installer.js","sourceRoot":"","sources":["../../src/run-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAY3C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,OAAiB,EAAE,UAA+B,EAAE;IAC/E,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;IAC/B,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;YAC7B,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;YACnE,oGAAoG;YACpG,4FAA4F;YAC5F,6FAA6F;YAC7F,4BAA4B;YAC5B,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;SACpC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -75,8 +75,14 @@ export async function checkForUpdate(current, deps) {
75
75
  await writeCache({ checkedAt: deps.now(), latest });
76
76
  return { current, latest, newer: latest ? isNewer(latest, current) : false, fromCache: false };
77
77
  }
78
- export function nagLine(latest, current) {
79
- return `Update available: ${current} to ${latest}. Run \`npm i -g botanary\` (or use \`npx botanary\`).`;
78
+ /**
79
+ * The courtesy line. It leads with `botanary update`, which knows how to do the work, and names the
80
+ * manager-specific command only as the fallback for someone who would rather run it themselves. A copy
81
+ * with nothing to run - npx - gets no parenthetical, because there is no command to offer.
82
+ */
83
+ export function nagLine(latest, current, method) {
84
+ const fallback = method.command ? ` (or \`${method.command.join(' ')}\`)` : '';
85
+ return `Update available: ${current} to ${latest}. Run \`botanary update\`${fallback}.`;
80
86
  }
81
87
  /** CI is included because a nag in a build log is noise nobody can act on from there. */
82
88
  export function nagSuppressed(env) {
@@ -1 +1 @@
1
- {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/update-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/update-check.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "botanary",
3
3
  "type": "module",
4
- "version": "0.2.0",
4
+ "version": "0.2.2",
5
5
  "description": "Botanary from your terminal - a guided CLI over the same wallet and agent lanes botanary-mcp exposes to a coding agent.",
6
6
  "license": "UNLICENSED",
7
7
  "homepage": "https://docs.botanary.xyz",
@@ -23,7 +23,7 @@
23
23
  "test:watch": "vitest"
24
24
  },
25
25
  "dependencies": {
26
- "botanary-mcp": "^0.6.0",
26
+ "botanary-mcp": "^0.6.1",
27
27
  "commander": "^13.1.0",
28
28
  "@clack/prompts": "^0.9.1",
29
29
  "picocolors": "^1.1.1",
@@ -1,10 +0,0 @@
1
- /** --json forces it on. Otherwise: a non-TTY stdout (piped, redirected, or run from another program)
2
- * auto-enables it, matching the Alchemy CLI reference exactly. --no-interactive alone does NOT force
3
- * JSON - it only disables prompts; a human running --no-interactive in a real terminal still wants
4
- * human-readable output unless they also asked for --json or piped it. */
5
- export function isJsonMode(opts, stdout = process.stdout) {
6
- if (opts.json)
7
- return true;
8
- return !stdout.isTTY;
9
- }
10
- //# sourceMappingURL=json-mode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json-mode.js","sourceRoot":"","sources":["../../../src/render/json-mode.ts"],"names":[],"mappings":"AAKA;;;2EAG2E;AAC3E,MAAM,UAAU,UAAU,CAAC,IAAkB,EAAE,SAA8B,OAAO,CAAC,MAAM;IACzF,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACvB,CAAC"}