@indy2kro/agentenv 1.0.0 → 1.0.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.
Files changed (130) hide show
  1. package/dist/adapters/agent-dirs.d.ts +29 -0
  2. package/dist/adapters/agent-dirs.d.ts.map +1 -0
  3. package/dist/adapters/agent-dirs.js +46 -0
  4. package/dist/adapters/agent-dirs.js.map +1 -0
  5. package/dist/adapters/base.d.ts +7 -1
  6. package/dist/adapters/base.d.ts.map +1 -1
  7. package/dist/adapters/base.js.map +1 -1
  8. package/dist/adapters/claude.d.ts.map +1 -1
  9. package/dist/adapters/claude.js +18 -10
  10. package/dist/adapters/claude.js.map +1 -1
  11. package/dist/adapters/cline.d.ts.map +1 -1
  12. package/dist/adapters/cline.js +2 -2
  13. package/dist/adapters/cline.js.map +1 -1
  14. package/dist/adapters/codex.d.ts.map +1 -1
  15. package/dist/adapters/codex.js +3 -2
  16. package/dist/adapters/codex.js.map +1 -1
  17. package/dist/adapters/copilot.d.ts.map +1 -1
  18. package/dist/adapters/copilot.js +3 -4
  19. package/dist/adapters/copilot.js.map +1 -1
  20. package/dist/adapters/cursor.d.ts.map +1 -1
  21. package/dist/adapters/cursor.js +7 -6
  22. package/dist/adapters/cursor.js.map +1 -1
  23. package/dist/adapters/detect.d.ts.map +1 -1
  24. package/dist/adapters/detect.js +1 -0
  25. package/dist/adapters/detect.js.map +1 -1
  26. package/dist/adapters/gemini.d.ts.map +1 -1
  27. package/dist/adapters/gemini.js +2 -2
  28. package/dist/adapters/gemini.js.map +1 -1
  29. package/dist/adapters/index.d.ts +4 -0
  30. package/dist/adapters/index.d.ts.map +1 -1
  31. package/dist/adapters/index.js +21 -0
  32. package/dist/adapters/index.js.map +1 -1
  33. package/dist/adapters/opencode.d.ts.map +1 -1
  34. package/dist/adapters/opencode.js +2 -2
  35. package/dist/adapters/opencode.js.map +1 -1
  36. package/dist/adapters/rtk-delegation.d.ts.map +1 -1
  37. package/dist/adapters/rtk-delegation.js +16 -1
  38. package/dist/adapters/rtk-delegation.js.map +1 -1
  39. package/dist/adapters/vibe.d.ts.map +1 -1
  40. package/dist/adapters/vibe.js +2 -2
  41. package/dist/adapters/vibe.js.map +1 -1
  42. package/dist/adapters/windsurf.d.ts.map +1 -1
  43. package/dist/adapters/windsurf.js +2 -2
  44. package/dist/adapters/windsurf.js.map +1 -1
  45. package/dist/cli/exit.d.ts +17 -6
  46. package/dist/cli/exit.d.ts.map +1 -1
  47. package/dist/cli/exit.js +17 -7
  48. package/dist/cli/exit.js.map +1 -1
  49. package/dist/commands/apply.d.ts +77 -0
  50. package/dist/commands/apply.d.ts.map +1 -1
  51. package/dist/commands/apply.js +202 -27
  52. package/dist/commands/apply.js.map +1 -1
  53. package/dist/commands/config-edit.d.ts +33 -0
  54. package/dist/commands/config-edit.d.ts.map +1 -0
  55. package/dist/commands/config-edit.js +216 -0
  56. package/dist/commands/config-edit.js.map +1 -0
  57. package/dist/commands/doctor.d.ts +41 -0
  58. package/dist/commands/doctor.d.ts.map +1 -1
  59. package/dist/commands/doctor.js +135 -52
  60. package/dist/commands/doctor.js.map +1 -1
  61. package/dist/commands/setup.d.ts +4 -0
  62. package/dist/commands/setup.d.ts.map +1 -1
  63. package/dist/commands/setup.js +58 -5
  64. package/dist/commands/setup.js.map +1 -1
  65. package/dist/commands/status.d.ts.map +1 -1
  66. package/dist/commands/status.js +40 -16
  67. package/dist/commands/status.js.map +1 -1
  68. package/dist/commands/uninstall.d.ts +78 -1
  69. package/dist/commands/uninstall.d.ts.map +1 -1
  70. package/dist/commands/uninstall.js +329 -31
  71. package/dist/commands/uninstall.js.map +1 -1
  72. package/dist/commands/update.d.ts +51 -0
  73. package/dist/commands/update.d.ts.map +1 -1
  74. package/dist/commands/update.js +172 -71
  75. package/dist/commands/update.js.map +1 -1
  76. package/dist/commands/wizard.d.ts +27 -1
  77. package/dist/commands/wizard.d.ts.map +1 -1
  78. package/dist/commands/wizard.js +48 -31
  79. package/dist/commands/wizard.js.map +1 -1
  80. package/dist/config/schema.d.ts +31 -3
  81. package/dist/config/schema.d.ts.map +1 -1
  82. package/dist/config/schema.js +224 -123
  83. package/dist/config/schema.js.map +1 -1
  84. package/dist/config/scopes.d.ts +4 -2
  85. package/dist/config/scopes.d.ts.map +1 -1
  86. package/dist/config/scopes.js +23 -4
  87. package/dist/config/scopes.js.map +1 -1
  88. package/dist/generate/agentsmd.d.ts +54 -0
  89. package/dist/generate/agentsmd.d.ts.map +1 -1
  90. package/dist/generate/agentsmd.js +225 -143
  91. package/dist/generate/agentsmd.js.map +1 -1
  92. package/dist/index.js +9 -2
  93. package/dist/index.js.map +1 -1
  94. package/dist/integrations/render.d.ts.map +1 -1
  95. package/dist/integrations/render.js +25 -10
  96. package/dist/integrations/render.js.map +1 -1
  97. package/dist/integrations/superpowers.d.ts.map +1 -1
  98. package/dist/integrations/superpowers.js +2 -0
  99. package/dist/integrations/superpowers.js.map +1 -1
  100. package/dist/shell/detector.d.ts +22 -2
  101. package/dist/shell/detector.d.ts.map +1 -1
  102. package/dist/shell/detector.js +122 -34
  103. package/dist/shell/detector.js.map +1 -1
  104. package/dist/toolchain/gh.d.ts.map +1 -1
  105. package/dist/toolchain/gh.js +1 -0
  106. package/dist/toolchain/gh.js.map +1 -1
  107. package/dist/toolchain/mise.d.ts +7 -0
  108. package/dist/toolchain/mise.d.ts.map +1 -1
  109. package/dist/toolchain/mise.js +23 -3
  110. package/dist/toolchain/mise.js.map +1 -1
  111. package/dist/toolchain/rtk.d.ts +71 -3
  112. package/dist/toolchain/rtk.d.ts.map +1 -1
  113. package/dist/toolchain/rtk.js +115 -7
  114. package/dist/toolchain/rtk.js.map +1 -1
  115. package/dist/ui/output.d.ts.map +1 -1
  116. package/dist/ui/output.js +10 -2
  117. package/dist/ui/output.js.map +1 -1
  118. package/dist/ui/spinner.d.ts +15 -3
  119. package/dist/ui/spinner.d.ts.map +1 -1
  120. package/dist/ui/spinner.js +52 -4
  121. package/dist/ui/spinner.js.map +1 -1
  122. package/dist/ui/theme.d.ts +27 -1
  123. package/dist/ui/theme.d.ts.map +1 -1
  124. package/dist/ui/theme.js +73 -8
  125. package/dist/ui/theme.js.map +1 -1
  126. package/dist/utils/fs-retry.d.ts +16 -0
  127. package/dist/utils/fs-retry.d.ts.map +1 -1
  128. package/dist/utils/fs-retry.js +28 -0
  129. package/dist/utils/fs-retry.js.map +1 -1
  130. package/package.json +4 -3
@@ -2,11 +2,13 @@ import { Command } from 'commander';
2
2
  import * as fs from 'fs';
3
3
  import * as path from 'path';
4
4
  import { confirm } from '@inquirer/prompts';
5
- import { BINARY_MAP, loadConfig, validateConfig } from '../config/schema.js';
5
+ import { AGENT_KEYS, BINARY_MAP, getEnabledAgents, loadConfig, validateConfig, } from '../config/schema.js';
6
6
  import { configFilePath, findConfigPath, parseScopeFlag, resolveScopeDir, } from '../config/scopes.js';
7
+ import { ADAPTER_CLASSES } from '../adapters/index.js';
8
+ import { generateInstructionFiles, planMarkerRemoval, removeMarkerBlock, } from '../generate/agentsmd.js';
7
9
  import { getToolsToInstall, isMiseInstalled, miseInstallInstructions, parseInstalledToolState, runMiseCaptured, runMiseUninstall, } from '../toolchain/mise.js';
8
10
  import { normalizeOutput } from '../utils/output.js';
9
- import { renderLogo } from '../ui/output.js';
11
+ import { renderLogo, setQuietEnabled } from '../ui/output.js';
10
12
  import { printConfigPath, printResult, reportValidation } from '../ui/report.js';
11
13
  /**
12
14
  * The uninstall parity set for apply: enabled non-fallback `[tools]` entries
@@ -105,6 +107,218 @@ export function renderUninstallSummary(targets, plan, mode = 'result', stateUnkn
105
107
  ...plan.alreadyGone.map((name) => ` ${label(name)} — already gone`),
106
108
  ];
107
109
  }
110
+ /**
111
+ * Parse a comma-separated `--unwire-agents` value into valid AgentKeys.
112
+ * Unlike wizard/build.ts's parseAgentsInput(), unknown names are reported
113
+ * back for the caller's own usage-error path instead of throwing, matching
114
+ * resolveToolArgs()'s style elsewhere in this file.
115
+ */
116
+ export function parseAgentList(raw) {
117
+ const agents = [];
118
+ const unknown = [];
119
+ const seen = new Set();
120
+ for (const part of raw.split(',')) {
121
+ const name = part.trim();
122
+ if (!name)
123
+ continue;
124
+ const key = AGENT_KEYS.find((candidate) => candidate === name);
125
+ if (!key) {
126
+ unknown.push(name);
127
+ continue;
128
+ }
129
+ if (!seen.has(key)) {
130
+ seen.add(key);
131
+ agents.push(key);
132
+ }
133
+ }
134
+ return { agents, unknown };
135
+ }
136
+ function classifyRemoval(filePath, plan) {
137
+ return plan.status === 'error'
138
+ ? { path: filePath, status: 'error', message: plan.message }
139
+ : { path: filePath, status: plan.status };
140
+ }
141
+ /**
142
+ * Plan what `--unwire-agents` would do, without changing anything: which
143
+ * per-agent user-scope instruction files and (on a full unwire) shared
144
+ * instruction files hold a removable managed block, and whether mise.toml
145
+ * would be deleted. Shared, agent-independent files (AGENTS.md/CLAUDE.md,
146
+ * mise.toml) are only ever touched on a full unwire — a partial unwire of
147
+ * one agent must not strip content the remaining agents still need.
148
+ */
149
+ export function buildUnwirePlan(config, baseDir, scope, agents, fullUnwire, deleteMiseToml) {
150
+ const markerStart = config.generate?.marker_start ?? '<!-- agentenv-managed-start -->';
151
+ const markerEnd = config.generate?.marker_end ?? '<!-- agentenv-managed-end -->';
152
+ const agentFiles = scope === 'user'
153
+ ? agents.map((agent) => {
154
+ const adapter = new ADAPTER_CLASSES[agent]({ enabled: true, baseDir });
155
+ const filePath = adapter.getUserInstructionFile();
156
+ return classifyRemoval(filePath, planMarkerRemoval(filePath, markerStart, markerEnd));
157
+ })
158
+ : [];
159
+ const sharedFiles = fullUnwire
160
+ ? generateInstructionFiles(config, baseDir).map((file) => classifyRemoval(file.path, planMarkerRemoval(file.path, markerStart, markerEnd)))
161
+ : [];
162
+ const miseTomlPath = path.join(baseDir, 'mise.toml');
163
+ const miseToml = fullUnwire && deleteMiseToml
164
+ ? { path: miseTomlPath, exists: fs.existsSync(miseTomlPath) }
165
+ : null;
166
+ return { agents, fullUnwire, markerStart, markerEnd, agentFiles, sharedFiles, miseToml };
167
+ }
168
+ /**
169
+ * Execute an unwire plan: adapter cleanup() per targeted agent, then remove
170
+ * the managed block from each planned file, then delete mise.toml if
171
+ * planned. Files are re-read fresh via removeMarkerBlock() rather than
172
+ * trusting the plan's precomputed status, matching apply's dry-run/execute
173
+ * split (FEAT-06) — the plan is a preview, never a cached write.
174
+ */
175
+ export async function executeUnwire(baseDir, plan) {
176
+ const messages = [];
177
+ const errors = [];
178
+ for (const agent of plan.agents) {
179
+ const adapter = new ADAPTER_CLASSES[agent]({ enabled: true, baseDir });
180
+ const result = await adapter.cleanup();
181
+ messages.push(`${adapter.getName()}: ${result.message}`);
182
+ errors.push(...result.errors);
183
+ }
184
+ for (const file of [...plan.agentFiles, ...plan.sharedFiles]) {
185
+ const result = removeMarkerBlock(file.path, plan.markerStart, plan.markerEnd);
186
+ (result.success ? messages : errors).push(result.message);
187
+ }
188
+ if (plan.miseToml) {
189
+ if (fs.existsSync(plan.miseToml.path)) {
190
+ try {
191
+ fs.unlinkSync(plan.miseToml.path);
192
+ messages.push(`Deleted ${plan.miseToml.path}`);
193
+ }
194
+ catch (err) {
195
+ errors.push(`Failed to delete ${plan.miseToml.path}: ${err instanceof Error ? err.message : String(err)}`);
196
+ }
197
+ }
198
+ else {
199
+ messages.push(`${plan.miseToml.path} does not exist; nothing to delete`);
200
+ }
201
+ }
202
+ return { success: errors.length === 0, messages, errors };
203
+ }
204
+ function printUninstallJson(payload) {
205
+ console.log(JSON.stringify(payload, null, 2));
206
+ }
207
+ const filesChangedFrom = (plan) => [...plan.agentFiles, ...plan.sharedFiles]
208
+ .filter((f) => f.status === 'delete' || f.status === 'strip')
209
+ .map((f) => f.path);
210
+ /**
211
+ * The `--unwire-agents` path (FEAT-03): calls each targeted agent's
212
+ * `cleanup()`, removes the agentenv-managed block from its user-scope
213
+ * instruction file, and — on a full unwire (no specific agents named) —
214
+ * also strips the shared project/user AGENTS.md/CLAUDE.md and, with
215
+ * `--delete-mise-toml`, deletes the generated mise.toml. Mutually exclusive
216
+ * with the tool-uninstall positional args.
217
+ */
218
+ async function doUnwireAgents(options, configPath, config, json, fail, startedAt) {
219
+ const usageError = (message) => {
220
+ if (options.command && !json)
221
+ options.command.error(message);
222
+ else
223
+ fail(message, 2);
224
+ };
225
+ if (options.tools && options.tools.length > 0) {
226
+ usageError('--unwire-agents cannot be combined with specific tool arguments; run them separately.');
227
+ return;
228
+ }
229
+ const value = options.unwireAgents;
230
+ const fullUnwire = value === true;
231
+ let agents;
232
+ if (fullUnwire) {
233
+ agents = getEnabledAgents(config);
234
+ }
235
+ else {
236
+ const parsed = parseAgentList(value);
237
+ if (parsed.unknown.length > 0) {
238
+ usageError(`Unknown agent(s) to unwire: ${parsed.unknown.join(', ')}`);
239
+ return;
240
+ }
241
+ agents = parsed.agents;
242
+ }
243
+ if (options.deleteMiseToml && !fullUnwire) {
244
+ usageError('--delete-mise-toml requires --unwire-agents with no specific agent list (mise.toml is shared, not agent-specific).');
245
+ return;
246
+ }
247
+ if (agents.length === 0 && !(fullUnwire && options.deleteMiseToml)) {
248
+ if (json)
249
+ printUninstallJson({ success: true, message: 'Nothing to unwire.', configPath });
250
+ else
251
+ printResult('warn', 'Nothing to unwire.');
252
+ return;
253
+ }
254
+ const scope = config.scope ?? 'project';
255
+ const baseDir = resolveScopeDir(scope);
256
+ const plan = buildUnwirePlan(config, baseDir, scope, agents, fullUnwire, options.deleteMiseToml === true);
257
+ if (options.dryRun) {
258
+ if (json) {
259
+ printUninstallJson({
260
+ success: true,
261
+ message: 'no changes were made',
262
+ configPath,
263
+ dryRun: true,
264
+ unwiredAgents: agents,
265
+ filesChanged: filesChangedFrom(plan),
266
+ deletedMiseToml: plan.miseToml?.exists ?? false,
267
+ });
268
+ }
269
+ else {
270
+ const lines = agents.map((agent) => ` ${agent} — would run cleanup()`);
271
+ for (const file of [...plan.agentFiles, ...plan.sharedFiles]) {
272
+ lines.push(` ${file.path} — ${file.status}${file.message ? ` (${file.message})` : ''}`);
273
+ }
274
+ if (plan.miseToml) {
275
+ lines.push(` ${plan.miseToml.path} — ${plan.miseToml.exists ? 'would delete' : 'already absent'}`);
276
+ }
277
+ console.log(lines.join('\n'));
278
+ printResult('warn', 'Dry run complete', 'no changes were made', Date.now() - startedAt);
279
+ }
280
+ return;
281
+ }
282
+ if (!options.yes) {
283
+ if (process.stdin.isTTY && process.stdout.isTTY) {
284
+ const proceed = await confirm({
285
+ message: fullUnwire
286
+ ? `Unwire ${agents.length} agent(s) and remove agentenv-managed instruction blocks?`
287
+ : `Unwire ${agents.length} agent(s)?`,
288
+ default: false,
289
+ });
290
+ if (!proceed) {
291
+ if (json)
292
+ printUninstallJson({ success: true, message: 'Aborted', configPath });
293
+ else
294
+ printResult('warn', 'Aborted', 'no changes were made');
295
+ return;
296
+ }
297
+ }
298
+ else {
299
+ fail('Interactive confirmation requires a TTY; pass `--yes` (or `--dry-run` to preview) to run non-interactively.');
300
+ return;
301
+ }
302
+ }
303
+ const result = await executeUnwire(baseDir, plan);
304
+ if (!result.success) {
305
+ fail(`Unwire failed: ${result.errors.join('; ')}`);
306
+ return;
307
+ }
308
+ if (json) {
309
+ printUninstallJson({
310
+ success: true,
311
+ message: `Unwired ${agents.length} agent(s)`,
312
+ configPath,
313
+ unwiredAgents: agents,
314
+ filesChanged: filesChangedFrom(plan),
315
+ deletedMiseToml: plan.miseToml?.exists ?? false,
316
+ });
317
+ return;
318
+ }
319
+ console.log(result.messages.join('\n'));
320
+ printResult('ok', `Unwired ${agents.length} agent(s)`, undefined, Date.now() - startedAt);
321
+ }
108
322
  /**
109
323
  * Cleanup: remove the config-declared, mise-managed tools from the mise store.
110
324
  * Does not modify agentenv.toml or the generated mise.toml — `agentenv apply`
@@ -112,53 +326,89 @@ export function renderUninstallSummary(targets, plan, mode = 'result', stateUnkn
112
326
  */
113
327
  export async function doUninstall(options) {
114
328
  const startedAt = Date.now();
329
+ const json = options.json === true;
330
+ if (json)
331
+ setQuietEnabled(true);
115
332
  renderLogo();
333
+ const fail = (message, exitCode = 1) => {
334
+ if (json)
335
+ printUninstallJson({ success: false, message });
336
+ else
337
+ console.error(message);
338
+ process.exitCode = exitCode;
339
+ };
116
340
  // 1. Config resolution (mirrors update.ts).
117
341
  let configPath;
118
342
  if (options.scope) {
119
343
  configPath = configFilePath(options.scope);
120
344
  if (!fs.existsSync(configPath)) {
121
- console.error(`No agentenv.toml found at ${configPath} (scope ${options.scope}).`);
122
- process.exitCode = 1;
345
+ fail(`No agentenv.toml found at ${configPath} (scope ${options.scope}).`);
123
346
  return;
124
347
  }
125
348
  }
126
349
  else {
127
350
  configPath = findConfigPath() ?? null;
128
351
  if (!configPath) {
129
- console.error('No agentenv.toml found. Run `agentenv setup` first.');
130
- process.exitCode = 1;
352
+ fail('No agentenv.toml found. Run `agentenv setup` first.');
131
353
  return;
132
354
  }
133
355
  }
134
- printConfigPath(configPath);
356
+ if (!json)
357
+ printConfigPath(configPath);
135
358
  let config;
136
359
  try {
137
- config = loadConfig(configPath);
360
+ config = loadConfig(configPath, { layerUserConfig: true });
138
361
  }
139
362
  catch (error) {
140
- console.error(error instanceof Error ? error.message : String(error));
141
- process.exitCode = 1;
363
+ fail(error instanceof Error ? error.message : String(error));
142
364
  return;
143
365
  }
144
366
  const report = validateConfig(config);
145
- if (!reportValidation(report, 'Configuration invalid — not applying.')) {
367
+ if (report.errors.length > 0) {
368
+ if (json)
369
+ printUninstallJson({ success: false, message: report.errors.join('; ') });
370
+ else
371
+ reportValidation(report, 'Configuration invalid — not applying.');
146
372
  process.exitCode = 1;
147
373
  return;
148
374
  }
375
+ if (!json)
376
+ reportValidation(report, 'Configuration invalid — not applying.');
377
+ if (options.unwireAgents !== undefined) {
378
+ await doUnwireAgents(options, configPath, config, json, fail, startedAt);
379
+ return;
380
+ }
381
+ if (options.deleteMiseToml) {
382
+ const message = '--delete-mise-toml requires --unwire-agents.';
383
+ if (options.command && !json)
384
+ options.command.error(message);
385
+ else
386
+ fail(message, 2);
387
+ return;
388
+ }
149
389
  // 2. Argument validation runs immediately after config resolution, before
150
390
  // confirmation, the mise gate, or any uninstall.
151
391
  const targets = calculateUninstallTargets(config);
152
392
  const { matched, unknown } = resolveToolArgs(options.tools ?? [], targets);
153
393
  if (unknown.length > 0) {
154
- console.error(`Unknown tool(s) to uninstall: ${unknown.join(', ')}`);
155
- process.exitCode = 1;
394
+ const message = `Unknown tool(s) to uninstall: ${unknown.join(', ')}`;
395
+ if (options.command && !json) {
396
+ // Usage error, not an operational failure — exit 2, matching
397
+ // docs/guides/exit-codes.md.
398
+ options.command.error(message);
399
+ }
400
+ else {
401
+ fail(message, 2);
402
+ }
156
403
  return;
157
404
  }
158
405
  const requested = options.tools && options.tools.length > 0 ? matched : targets;
159
406
  // 3. No-op path needs no mise.
160
407
  if (requested.length === 0) {
161
- printResult('warn', 'Nothing to uninstall.');
408
+ if (json)
409
+ printUninstallJson({ success: true, message: 'Nothing to uninstall.', configPath });
410
+ else
411
+ printResult('warn', 'Nothing to uninstall.');
162
412
  return;
163
413
  }
164
414
  const scopeDir = resolveScopeDir(config.scope ?? 'project');
@@ -168,36 +418,70 @@ export async function doUninstall(options) {
168
418
  if (options.dryRun) {
169
419
  if (!isMiseInstalled()) {
170
420
  const plan = { toUninstall: [], alreadyGone: [] };
171
- console.log(renderUninstallSummary(requested, plan, 'preview', true).join('\n'));
172
- printResult('warn', 'Dry run complete', 'nothing was uninstalled (mise not installed)');
421
+ if (json) {
422
+ printUninstallJson({
423
+ success: true,
424
+ message: 'nothing was uninstalled (mise not installed)',
425
+ configPath,
426
+ dryRun: true,
427
+ toUninstall: [],
428
+ alreadyGone: [],
429
+ });
430
+ }
431
+ else {
432
+ console.log(renderUninstallSummary(requested, plan, 'preview', true).join('\n'));
433
+ printResult('warn', 'Dry run complete', 'nothing was uninstalled (mise not installed)');
434
+ }
173
435
  return;
174
436
  }
175
437
  const state = readInstalledState();
176
438
  if (!state) {
177
- process.exitCode = 1;
439
+ fail('mise ls --json failed or returned unrecognized output.');
178
440
  return;
179
441
  }
180
- console.log(renderUninstallSummary(requested, uninstallPlan(requested, state), 'preview', false).join('\n'));
181
- printResult('warn', 'Dry run complete', 'no changes were made', Date.now() - startedAt);
442
+ const plan = uninstallPlan(requested, state);
443
+ if (json) {
444
+ printUninstallJson({
445
+ success: true,
446
+ message: 'no changes were made',
447
+ configPath,
448
+ dryRun: true,
449
+ toUninstall: plan.toUninstall,
450
+ alreadyGone: plan.alreadyGone,
451
+ });
452
+ }
453
+ else {
454
+ console.log(renderUninstallSummary(requested, plan, 'preview', false).join('\n'));
455
+ printResult('warn', 'Dry run complete', 'no changes were made', Date.now() - startedAt);
456
+ }
182
457
  return;
183
458
  }
184
459
  // 5. Fail-closed mise gate: unknown installed state is not "already gone".
185
460
  if (!isMiseInstalled()) {
186
- console.error('agentenv uninstall requires mise, but mise was not found.');
187
- for (const line of miseInstallInstructions())
188
- console.error(` ${line}`);
189
- process.exitCode = 1;
461
+ if (json) {
462
+ printUninstallJson({ success: false, message: 'agentenv uninstall requires mise' });
463
+ process.exitCode = 1;
464
+ }
465
+ else {
466
+ console.error('agentenv uninstall requires mise, but mise was not found.');
467
+ for (const line of miseInstallInstructions())
468
+ console.error(` ${line}`);
469
+ process.exitCode = 1;
470
+ }
190
471
  return;
191
472
  }
192
473
  // 6. Plan from live state.
193
474
  const state = readInstalledState();
194
475
  if (!state) {
195
- process.exitCode = 1;
476
+ fail('mise ls --json failed or returned unrecognized output.');
196
477
  return;
197
478
  }
198
479
  const plan = uninstallPlan(requested, state);
199
480
  if (plan.toUninstall.length === 0) {
200
- printResult('warn', 'Nothing to uninstall.');
481
+ if (json)
482
+ printUninstallJson({ success: true, message: 'Nothing to uninstall.', configPath });
483
+ else
484
+ printResult('warn', 'Nothing to uninstall.');
201
485
  return;
202
486
  }
203
487
  // 7. Confirmation, only when there is actually something to remove.
@@ -208,21 +492,32 @@ export async function doUninstall(options) {
208
492
  default: false,
209
493
  });
210
494
  if (!proceed) {
211
- printResult('warn', 'Aborted', 'no changes were made');
495
+ if (json)
496
+ printUninstallJson({ success: true, message: 'Aborted', configPath });
497
+ else
498
+ printResult('warn', 'Aborted', 'no changes were made');
212
499
  return;
213
500
  }
214
501
  }
215
502
  else {
216
- console.error('Interactive confirmation requires a TTY; pass `--yes` (or `--dry-run` to preview) to run non-interactively.');
217
- process.exitCode = 1;
503
+ fail('Interactive confirmation requires a TTY; pass `--yes` (or `--dry-run` to preview) to run non-interactively.');
218
504
  return;
219
505
  }
220
506
  }
221
507
  // 8. Uninstall.
222
508
  const result = runMiseUninstall(plan.toUninstall, scopeDir, miseTomlPath);
223
509
  if (!result.success) {
224
- console.error(`mise uninstall failed (exit ${result.exitCode ?? 'null'}): ${normalizeOutput(result.stderr || result.stdout).trim()}`);
225
- process.exitCode = 1;
510
+ fail(`mise uninstall failed (exit ${result.exitCode ?? 'null'}): ${normalizeOutput(result.stderr || result.stdout).trim()}`);
511
+ return;
512
+ }
513
+ if (json) {
514
+ printUninstallJson({
515
+ success: true,
516
+ message: `Removed ${plan.toUninstall.length} tool(s)`,
517
+ configPath,
518
+ toUninstall: plan.toUninstall,
519
+ alreadyGone: plan.alreadyGone,
520
+ });
226
521
  return;
227
522
  }
228
523
  console.log(renderUninstallSummary(requested, plan, 'result', false).join('\n'));
@@ -235,12 +530,15 @@ export const uninstallCommand = new Command()
235
530
  .option('--yes', 'skip the confirmation prompt (required when non-interactive)')
236
531
  .option('--dry-run', 'print what would be uninstalled without changing anything')
237
532
  .option('--scope <scope>', 'config scope to use: project|user (default: nearest config)')
533
+ .option('--json', 'emit a machine-readable JSON document on stdout')
534
+ .option('--unwire-agents [agents]', 'unwire agent hook config and managed instruction blocks; comma-separated agent keys, or every enabled agent if no value is given. Cannot be combined with [tools...].')
535
+ .option('--delete-mise-toml', 'also delete the generated mise.toml (requires --unwire-agents with no specific agents)')
238
536
  .action((tools, options, command) => {
239
537
  const scope = parseScopeFlag(options.scope);
240
538
  if (scope.error) {
241
539
  command.error(scope.error);
242
540
  return;
243
541
  }
244
- return doUninstall({ ...options, scope: scope.scope, tools });
542
+ return doUninstall({ ...options, scope: scope.scope, tools, command });
245
543
  });
246
544
  //# sourceMappingURL=uninstall.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,54 @@
1
1
  import { Command } from 'commander';
2
+ import * as fs from 'fs';
3
+ import { loadConfig } from '../config/schema.js';
4
+ import type { ScopeValue } from '../config/scopes.js';
5
+ import { ensureGlobalShimsDir, getMiseVersion, isMiseInstalled, runMiseSelfUpdate, runMiseUpgrade, trustMiseToml, verifyToolAvailability } from '../toolchain/mise.js';
6
+ interface UpdateCommandOptions {
7
+ self?: boolean;
8
+ tools?: boolean;
9
+ scope?: ScopeValue;
10
+ watch?: boolean;
11
+ dryRun?: boolean;
12
+ check?: boolean;
13
+ json?: boolean;
14
+ }
15
+ /**
16
+ * Every mise-touching call `doUpdate` makes, injectable so tests can stub
17
+ * them the same way `apply.test.ts` stubs `rtkInit`/`superpowersDeps` —
18
+ * without this, exercising update.ts meant actually installing/upgrading
19
+ * mise tools, which is why it sat at 13% line coverage.
20
+ */
21
+ export interface UpdateDeps {
22
+ isMiseInstalled?: typeof isMiseInstalled;
23
+ getMiseVersion?: typeof getMiseVersion;
24
+ ensureGlobalShimsDir?: typeof ensureGlobalShimsDir;
25
+ runMiseSelfUpdate?: typeof runMiseSelfUpdate;
26
+ trustMiseToml?: typeof trustMiseToml;
27
+ runMiseUpgrade?: typeof runMiseUpgrade;
28
+ verifyToolAvailability?: typeof verifyToolAvailability;
29
+ loadConfig?: typeof loadConfig;
30
+ /** Skips the real `watchMiseToml` call entirely (tests never want a live fs.watch). */
31
+ watchMiseToml?: typeof watchMiseToml;
32
+ }
33
+ export declare function doUpdate(options: UpdateCommandOptions, deps?: UpdateDeps): Promise<void>;
34
+ /**
35
+ * Watch mise.toml's directory for changes and trigger mise up when it
36
+ * changes, re-reading agentenv.toml fresh each time so a `[tools]` edit
37
+ * made since watch started (via `agentenv apply`, which regenerates
38
+ * mise.toml) is picked up instead of upgrading whatever was enabled when
39
+ * `--watch` started.
40
+ *
41
+ * Watches the *directory*, not the file itself: most editors save via an
42
+ * atomic rename (write a temp file, rename over the original), which
43
+ * replaces the file's inode. A watch on the specific path stops firing
44
+ * after that rename on several platforms/filesystems — a directory watch
45
+ * keeps working, since the directory itself is never replaced.
46
+ *
47
+ * Returns the underlying watcher so callers (and tests) can close it;
48
+ * `debounceMs` is overridable so tests don't have to wait out the real
49
+ * 1000ms debounce.
50
+ */
51
+ export declare function watchMiseToml(miseTomlPath: string, scopeDir: string, configPath: string, debounceMs?: number): fs.FSWatcher | undefined;
2
52
  export declare const updateCommand: Command;
53
+ export {};
3
54
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6QpC,eAAO,MAAM,aAAa,SAgBtB,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAkB,MAAM,qBAAqB,CAAC;AAQjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EACL,oBAAoB,EACpB,cAAc,EAEd,eAAe,EAGf,iBAAiB,EACjB,cAAc,EAId,aAAa,EAGb,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAK9B,UAAU,oBAAoB;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,EAAE,OAAO,eAAe,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,oBAAoB,CAAC,EAAE,OAAO,oBAAoB,CAAC;IACnD,iBAAiB,CAAC,EAAE,OAAO,iBAAiB,CAAC;IAC7C,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;IACrC,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,sBAAsB,CAAC,EAAE,OAAO,sBAAsB,CAAC;IACvD,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IAC/B,uFAAuF;IACvF,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;CACtC;AAED,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,oBAAoB,EAC7B,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CAoNf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,SAAO,GAChB,EAAE,CAAC,SAAS,GAAG,SAAS,CA8E1B;AAED,eAAO,MAAM,aAAa,SAqBtB,CAAC"}