botanary 0.2.1 → 0.3.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 (37) hide show
  1. package/README.md +7 -1
  2. package/dist/package.json +15 -8
  3. package/dist/src/cli.js +25 -4
  4. package/dist/src/cli.js.map +1 -1
  5. package/dist/src/commands/agent.js +9 -41
  6. package/dist/src/commands/agent.js.map +1 -1
  7. package/dist/src/commands/mcp.js +17 -4
  8. package/dist/src/commands/mcp.js.map +1 -1
  9. package/dist/src/commands/tokens.js +36 -0
  10. package/dist/src/commands/tokens.js.map +1 -0
  11. package/dist/src/commands/utilities.js +76 -1
  12. package/dist/src/commands/utilities.js.map +1 -1
  13. package/dist/src/commands/wallet.js +53 -25
  14. package/dist/src/commands/wallet.js.map +1 -1
  15. package/dist/src/help/examples.js +33 -14
  16. package/dist/src/help/examples.js.map +1 -1
  17. package/dist/src/install-method.js +50 -0
  18. package/dist/src/install-method.js.map +1 -0
  19. package/dist/src/progress.js +19 -0
  20. package/dist/src/progress.js.map +1 -1
  21. package/dist/src/render/balance.js +19 -2
  22. package/dist/src/render/balance.js.map +1 -1
  23. package/dist/src/render/chains.js +1 -1
  24. package/dist/src/render/chains.js.map +1 -1
  25. package/dist/src/review.js +2 -5
  26. package/dist/src/review.js.map +1 -1
  27. package/dist/src/run-installer.js +30 -0
  28. package/dist/src/run-installer.js.map +1 -0
  29. package/dist/src/update-check.js +8 -2
  30. package/dist/src/update-check.js.map +1 -1
  31. package/dist/src/validate.js +55 -9
  32. package/dist/src/validate.js.map +1 -1
  33. package/package.json +15 -8
  34. package/dist/src/render/apis.js +0 -44
  35. package/dist/src/render/apis.js.map +0 -1
  36. package/dist/src/render/json-mode.js +0 -10
  37. package/dist/src/render/json-mode.js.map +0 -1
package/README.md CHANGED
@@ -20,7 +20,7 @@ Run `botanary` with no arguments for a guided REPL, or run any command directly:
20
20
  ```bash
21
21
  botanary login
22
22
  botanary balance
23
- botanary send --amount 25 --token USDC --recipient 0xAb12...9F3 --chain-id 8453
23
+ botanary send --amount 25 --token 0x833589fCD6eDb6E08f4c7C32D4f71b54bda02913 --recipient 0xAb12...9F3 --chain-id 8453
24
24
  botanary agent whoami
25
25
  botanary mcp config claude
26
26
  ```
@@ -39,6 +39,7 @@ Every command works both ways: answer prompts interactively, or pass flags and a
39
39
  | `chains` | Every chain this backend serves, and what each can do |
40
40
  | `gas [options]` | Gas methods available for this account on a chain |
41
41
  | `balance` | What this account holds, across every chain |
42
+ | `tokens [options] [query]` | Every token held on a chain, with the address `send` needs |
42
43
  | `send [options]` | Send tokens from an account you own |
43
44
  | `activity` | Recent sends, swaps and yield transactions |
44
45
  | `markets` | Public market data: prices and symbols |
@@ -85,6 +86,7 @@ Every command works both ways: answer prompts interactively, or pass flags and a
85
86
  | `completion <shell>` | Print a shell completion script (bash, zsh, fish, powershell) |
86
87
  | `prompt` | Print the full operating manual for an automation driving this CLI |
87
88
  | `update-check` | Check whether a newer botanary is published |
89
+ | `update` | Update botanary to the latest published version |
88
90
 
89
91
  ## Non-interactive use
90
92
 
@@ -197,6 +199,10 @@ pnpm test
197
199
  pnpm dev # run bin/botanary.ts directly, watching for changes
198
200
  ```
199
201
 
202
+ ## Why send requires a token address, not a symbol
203
+
204
+ The `send` command requires a contract address or CAIP-19 asset ref, never a symbol. This is by design: a symbol is a label a contract picks for itself, and two contracts on one chain can legally share the same symbol. The product will not guess which one you meant. Use `botanary tokens --chain-id <id> [query]` to list every token this account holds on a chain, each with the contract address `--token` needs.
205
+
200
206
  `BOTANARY_MCP_HOME` and `BOTANARY_API_URL` behave exactly as documented in `botanary-mcp`'s own README - this package depends on that one as its engine and adds no storage or network logic of its own.
201
207
 
202
208
  ## Release note
package/dist/package.json CHANGED
@@ -1,15 +1,22 @@
1
1
  {
2
2
  "name": "botanary",
3
3
  "type": "module",
4
- "version": "0.2.1",
4
+ "version": "0.3.0",
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",
8
- "keywords": ["botanary", "cli", "wallet"],
8
+ "keywords": [
9
+ "botanary",
10
+ "cli",
11
+ "wallet"
12
+ ],
9
13
  "bin": {
10
14
  "botanary": "dist/bin/botanary.js"
11
15
  },
12
- "files": ["dist", "README.md"],
16
+ "files": [
17
+ "dist",
18
+ "README.md"
19
+ ],
13
20
  "engines": {
14
21
  "node": ">=22.0.0"
15
22
  },
@@ -23,13 +30,13 @@
23
30
  "test:watch": "vitest"
24
31
  },
25
32
  "dependencies": {
26
- "botanary-mcp": "^0.6.1",
27
- "commander": "^13.1.0",
28
33
  "@clack/prompts": "^0.9.1",
29
- "picocolors": "^1.1.1",
30
- "gradient-string": "^3.0.0",
34
+ "botanary-mcp": "^0.7.0",
35
+ "cli-table3": "^0.6.5",
36
+ "commander": "^13.1.0",
31
37
  "figlet": "^1.7.0",
32
- "cli-table3": "^0.6.5"
38
+ "gradient-string": "^3.0.0",
39
+ "picocolors": "^1.1.1"
33
40
  },
34
41
  "devDependencies": {
35
42
  "@swc-node/register": "^1.10.9",
package/dist/src/cli.js CHANGED
@@ -3,6 +3,7 @@ import { CommanderError } from 'commander';
3
3
  import { createContext } from './context.js';
4
4
  import { createProgram } from './parser.js';
5
5
  import { registerWalletCommands } from './commands/wallet.js';
6
+ import { registerTokenCommands } from './commands/tokens.js';
6
7
  import { registerAgentCommands } from './commands/agent.js';
7
8
  import { registerMcpCommands } from './commands/mcp.js';
8
9
  import { registerSystemCommands } from './commands/system.js';
@@ -13,6 +14,7 @@ import { readConfig } from './config-store.js';
13
14
  import { resolveSettings } from './settings.js';
14
15
  import { EXIT, CliError, errorEnvelope, errorLines, toCliError } from './errors.js';
15
16
  import { checkForUpdate, nagSuppressed, nagLine } from './update-check.js';
17
+ import { detectInstall } from './install-method.js';
16
18
  /**
17
19
  * Wrap fetch when, and only when, a global flag asks for it. `--timeout` needs an AbortController per
18
20
  * request; `--debug` needs a line per request. Returns undefined otherwise so the ordinary path keeps
@@ -42,18 +44,29 @@ function wrapFetch(settings, stderr) {
42
44
  }
43
45
  });
44
46
  }
47
+ /** Commands that already answer "is there an update" in more detail, on stdout. A nag right after either
48
+ * one is either an immediate contradiction (`update` just ran the install) or pure noise (`update-check`
49
+ * just printed the same fact). */
50
+ const NAG_EXEMPT_COMMANDS = new Set(['update', 'update-check']);
45
51
  /**
46
52
  * A courtesy line, on stderr so it can never corrupt piped output, and only where a human can act on it.
47
53
  * The refresh is capped at 1.5s and runs at most once a day; every failure is silent. This must never be
48
54
  * able to slow down or break a command.
55
+ *
56
+ * `commandName` comes from the `preAction` hook rather than argv[0], so it stays correct no matter where a
57
+ * global flag lands (`botanary --json update --yes`, `botanary update --yes`) and cannot be defeated by
58
+ * one.
49
59
  */
50
- async function maybeNag(ctx, cliVersion, stderr) {
60
+ async function maybeNag(ctx, cliVersion, stderr, commandName) {
51
61
  if (ctx.json || ctx.quiet || !ctx.interactive || nagSuppressed(process.env))
52
62
  return;
63
+ if (commandName !== null && NAG_EXEMPT_COMMANDS.has(commandName))
64
+ return;
53
65
  try {
54
66
  const result = await checkForUpdate(cliVersion, { fetchImpl: fetch, now: () => Date.now() });
55
- if (result.newer && result.latest)
56
- stderr(colors.dim(nagLine(result.latest, cliVersion)));
67
+ if (result.newer && result.latest) {
68
+ stderr(colors.dim(nagLine(result.latest, cliVersion, detectInstall(process.env))));
69
+ }
57
70
  }
58
71
  catch {
59
72
  // Never let a courtesy check affect the command's outcome.
@@ -69,11 +82,19 @@ export async function runCli(argv, deps) {
69
82
  const program = createProgram();
70
83
  program.version(deps.cliVersion, '-v, --version', 'Print the installed botanary CLI version');
71
84
  registerWalletCommands(program);
85
+ registerTokenCommands(program);
72
86
  registerAgentCommands(program);
73
87
  registerMcpCommands(program);
74
88
  registerSystemCommands(program, deps.cliVersion);
75
89
  registerUtilityCommands(program, deps.cliVersion);
76
90
  program.exitOverride();
91
+ // Recorded here, rather than sniffed from argv, because a global flag (`--json`, `--yes`, ...) can sit
92
+ // before OR after the command name - `preAction` fires with the actual leaf command about to run,
93
+ // regardless of where those flags landed.
94
+ let invokedCommand = null;
95
+ program.hook('preAction', (_rootCommand, actionCommand) => {
96
+ invokedCommand = actionCommand.name();
97
+ });
77
98
  let ctx = null;
78
99
  try {
79
100
  program.parseOptions(argv);
@@ -114,7 +135,7 @@ export async function runCli(argv, deps) {
114
135
  return EXIT.ok;
115
136
  }
116
137
  await program.parseAsync(argv, { from: 'user' });
117
- await maybeNag(ctx, deps.cliVersion, stderr);
138
+ await maybeNag(ctx, deps.cliVersion, stderr, invokedCommand);
118
139
  return ctx.outcome.exit;
119
140
  }
120
141
  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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"}
@@ -11,7 +11,7 @@ import { step } from '../progress.js';
11
11
  import { confirmOrThrow, dryRunPayload, renderReview } from '../review.js';
12
12
  import { classifyAgentAction } from '../outcome.js';
13
13
  import { assertAddress, assertTierAllows, familyOf, findChain, parseAmount } from '../validate.js';
14
- import { CliError, EXIT, invalidArgs } from '../errors.js';
14
+ import { invalidArgs } from '../errors.js';
15
15
  export function registerAgentCommands(program) {
16
16
  const agent = group(program.command('agent').description('This machine\'s own agent identity, grant, and spend under it'), 'Agent');
17
17
  agent
@@ -115,7 +115,7 @@ export function registerAgentCommands(program) {
115
115
  .description('Spend under this agent\'s own grant, unattended (propose_payment)')
116
116
  .option('--recipient <address>', 'Destination address (0x... on EVM)')
117
117
  .option('--amount <amount>', 'Amount in display units, e.g. 5')
118
- .option('--token <symbol>', 'Token symbol the grant budgets, e.g. USDC')
118
+ .option('--token <addressOrAssetRef>', 'Token the grant budgets - contract address or CAIP-19 asset ref, never a symbol')
119
119
  .option('--chain-id <chainId>', 'Chain the grant is on - see `botanary agent grant`')
120
120
  .action(async (opts) => {
121
121
  const ctx = program.opts().__ctx;
@@ -142,12 +142,7 @@ export function registerAgentCommands(program) {
142
142
  }),
143
143
  token: () => clack.text({ message: 'Token?', initialValue: tokenSymbol }),
144
144
  recipient: () => clack.text({ message: 'To?', initialValue: recipient }),
145
- }, {
146
- onCancel: () => {
147
- clack.cancel('Cancelled.');
148
- throw new CliError('Cancelled - nothing was signed and nothing was sent.', 'cancelled', EXIT.error);
149
- },
150
- });
145
+ }, { onCancel: () => { clack.cancel('Cancelled.'); process.exit(0); } });
151
146
  ({ amount: amountRaw, token: tokenSymbol, recipient } = answers);
152
147
  }
153
148
  const amount = parseAmount(amountRaw);
@@ -166,7 +161,7 @@ export function registerAgentCommands(program) {
166
161
  return;
167
162
  }
168
163
  await confirmOrThrow(ctx, 'Review this spend', rows, warnings);
169
- const result = await step(ctx, 'Spending under the grant', () => proposePayment(ctx.runtime, { recipient: to, amount, tokenSymbol, chainId: chain.chainId ?? Number.NaN }));
164
+ const result = await step(ctx, 'Spending under the grant', () => proposePayment(ctx.runtime, { recipient: to, amount, token: tokenSymbol, chainId: chain.chainId ?? Number.NaN }));
170
165
  const outcome = classifyAgentAction(result);
171
166
  ctx.outcome.exit = outcome.exit;
172
167
  printResult(ctx, result);
@@ -174,8 +169,8 @@ export function registerAgentCommands(program) {
174
169
  agent
175
170
  .command('swap')
176
171
  .description('Swap under this agent\'s own grant, unattended (propose_swap)')
177
- .option('--token-in <symbol>', 'Token to sell')
178
- .option('--token-out <symbol>', 'Token to buy')
172
+ .option('--token-in <addressOrAssetRef>', 'Token to sell - contract address or CAIP-19 asset ref, never a symbol')
173
+ .option('--token-out <addressOrAssetRef>', 'Token to buy - contract address or CAIP-19 asset ref, never a symbol')
179
174
  .option('--amount-in <amount>', 'Amount of --token-in to sell, in display units')
180
175
  .option('--chain-id <chainId>', 'Chain the grant is on - see `botanary agent grant`')
181
176
  .option('--max-slippage-bps <bps>', 'Maximum acceptable slippage, in basis points')
@@ -208,8 +203,8 @@ export function registerAgentCommands(program) {
208
203
  }
209
204
  await confirmOrThrow(ctx, 'Review this swap', rows, warnings);
210
205
  const result = await step(ctx, 'Swapping under the grant', () => proposeSwap(ctx.runtime, {
211
- tokenIn,
212
- tokenOut,
206
+ assetIn: tokenIn,
207
+ assetOut: tokenOut,
213
208
  amountIn: amount,
214
209
  chainId: chain.chainId ?? Number.NaN,
215
210
  ...(maxSlippageBps ? { maxSlippageBps: Number(maxSlippageBps) } : {}),
@@ -231,9 +226,7 @@ export function registerAgentCommands(program) {
231
226
  .requiredOption('--chain-id <chainId>', 'Chain the grant is on - see `botanary agent grant`')
232
227
  .action(async (opts) => {
233
228
  const ctx = program.opts().__ctx;
234
- const { renderApis } = await import('../render/apis.js');
235
- const result = await step(ctx, 'Reading APIs', () => ctx.runtime.listApis(Number(opts.chainId)));
236
- printResult(ctx, result, () => renderApis(result));
229
+ printResult(ctx, await step(ctx, 'Reading APIs', () => ctx.runtime.listApis(Number(opts.chainId))));
237
230
  });
238
231
  agent
239
232
  .command('pay <endpointId>')
@@ -249,36 +242,11 @@ export function registerAgentCommands(program) {
249
242
  const chains = await step(ctx, 'Reading chains', () => ctx.runtime.listChains());
250
243
  const chain = findChain(chains, chainId);
251
244
  assertTierAllows(chain, 'authority');
252
- // Fetch the provider detail to get the endpoint's price
253
- let priceDisplay = 'unknown';
254
- let payable;
255
- try {
256
- const providerDetail = await step(ctx, 'Reading endpoint details', () => ctx.runtime.getApiProvider(providerId, chainId));
257
- const endpoints = providerDetail.endpoints;
258
- if (endpoints && Array.isArray(endpoints)) {
259
- const endpoint = endpoints.find((ep) => ep.id === endpointId);
260
- if (endpoint) {
261
- const priceUnits = endpoint.priceUnits;
262
- if (priceUnits === null || priceUnits === undefined) {
263
- priceDisplay = '-';
264
- }
265
- else {
266
- priceDisplay = String(priceUnits);
267
- }
268
- payable = endpoint.payable;
269
- }
270
- }
271
- }
272
- catch {
273
- // If the lookup fails, priceDisplay stays "unknown"
274
- }
275
245
  const rows = [
276
246
  { label: 'endpoint', value: endpointId },
277
247
  { label: 'provider', value: providerId },
278
248
  { label: 'url', value: url },
279
249
  { label: 'chain', value: `${chain.name} (${chain.key}, ${chain.tier})` },
280
- { label: 'price (atomic units)', value: priceDisplay },
281
- { label: 'payable', value: payable === undefined ? 'unknown' : payable ? 'yes' : 'no' },
282
250
  { label: 'signed by', value: "this agent's own budget, unattended" },
283
251
  ];
284
252
  const warnings = ['This calls an API and deducts from the on-chain budget without asking the owner.'];
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/commands/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/commands/agent.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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"}
@@ -0,0 +1,36 @@
1
+ import { group } from '../help/groups.js';
2
+ import { step } from '../progress.js';
3
+ import { printResult } from '../render/print.js';
4
+ import { columns, dash } from '../render/kv.js';
5
+ import { colors } from '../render/colors.js';
6
+ import { findChain, tokenChoicesFor } from '../validate.js';
7
+ import { notLoggedIn } from '../errors.js';
8
+ /**
9
+ * The discovery surface an address-only `--token` requires. Without this command, "pass the contract
10
+ * address" is an instruction to go and find one somewhere else - a usage error, not a usable CLI. This is
11
+ * the thing `send`'s symbol refusal points at, and the thing a person runs first when they only know a
12
+ * token by its ticker.
13
+ */
14
+ export function registerTokenCommands(program) {
15
+ group(program
16
+ .command('tokens')
17
+ .description('Every token this account holds on a chain, with the address you need to send it')
18
+ .option('--chain-id <chainId>', 'Chain to list - see `botanary chains`')
19
+ .argument('[query]', 'Optional filter on symbol or name')
20
+ .action(async (query, opts) => {
21
+ const ctx = program.opts().__ctx;
22
+ const session = await ctx.runtime.walletSession();
23
+ if (!session)
24
+ throw notLoggedIn();
25
+ const token = session.sessionToken;
26
+ const chains = await step(ctx, 'Reading chains', () => ctx.runtime.api.get('/v1/chains', token));
27
+ const chain = findChain(chains, opts.chainId ?? ctx.chain);
28
+ const balance = await step(ctx, 'Reading balances', () => ctx.runtime.api.get('/v1/balance', token));
29
+ const q = query?.toLowerCase();
30
+ const rows = tokenChoicesFor(balance, chain.chainId ?? Number.NaN).filter((t) => !q || t.symbol.toLowerCase().includes(q) || (t.name ?? '').toLowerCase().includes(q));
31
+ printResult(ctx, { chainId: chain.chainId, chainKey: chain.key, tokens: rows }, () => rows.length === 0
32
+ ? colors.muted(`This account holds nothing on ${chain.name}.`)
33
+ : columns(['SYMBOL', 'ADDRESS', 'DP', 'AMOUNT', 'SOURCE'], rows.map((t) => [t.symbol, t.address, String(t.decimals), dash(t.amount), t.source ?? '-'])));
34
+ }), 'Wallet');
35
+ }
36
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/commands/tokens.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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"}