@iloom/cli 0.12.0 → 0.12.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 (68) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/README.md +1 -1
  4. package/dist/agents/iloom-wave-verifier.md +54 -2
  5. package/dist/{build-DMWSIME6.js → build-PKHPE34Y.js} +3 -3
  6. package/dist/{chunk-FV4KXBGO.js → chunk-6RINI7OL.js} +2 -2
  7. package/dist/{chunk-FV4KXBGO.js.map → chunk-6RINI7OL.js.map} +1 -1
  8. package/dist/{chunk-IHSA7VGI.js → chunk-CTHB7345.js} +2 -2
  9. package/dist/{chunk-XVCGPTEQ.js → chunk-GDDRANOZ.js} +1 -1
  10. package/dist/chunk-GDDRANOZ.js.map +1 -0
  11. package/dist/{chunk-PDG74IJT.js → chunk-H2M62IKR.js} +9 -28
  12. package/dist/chunk-H2M62IKR.js.map +1 -0
  13. package/dist/{chunk-IS46GQRA.js → chunk-UMZ2CIDW.js} +6 -6
  14. package/dist/chunk-UMZ2CIDW.js.map +1 -0
  15. package/dist/{chunk-HIGWKLQR.js → chunk-VZ55H5X6.js} +2 -2
  16. package/dist/{chunk-JD3K2344.js → chunk-Y2MVSEJK.js} +31 -1
  17. package/dist/chunk-Y2MVSEJK.js.map +1 -0
  18. package/dist/{cleanup-RLBLNQZN.js → cleanup-QTZU46OP.js} +2 -2
  19. package/dist/cli.js +26 -26
  20. package/dist/cli.js.map +1 -1
  21. package/dist/{commit-RILBXFWO.js → commit-P3OOQ3JN.js} +3 -3
  22. package/dist/{compile-QEL5724K.js → compile-IOXQTCP3.js} +3 -3
  23. package/dist/{dev-server-2WSWZXJG.js → dev-server-BLJ7NPKG.js} +2 -2
  24. package/dist/{feedback-I6ZEHEUB.js → feedback-RFWGB4I5.js} +2 -2
  25. package/dist/{ignite-XZFYRVRJ.js → ignite-6XT5BKSF.js} +4 -4
  26. package/dist/index.d.ts +2 -2
  27. package/dist/index.js +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/{init-A6WRP77L.js → init-6FUPISD7.js} +4 -4
  30. package/dist/{install-deps-HXP2TM7G.js → install-deps-BMRONT2L.js} +3 -3
  31. package/dist/{lint-FDZC77GL.js → lint-PRD2DO5K.js} +3 -3
  32. package/dist/{open-US4XACLW.js → open-NVFYA5IM.js} +2 -2
  33. package/dist/{plan-PL3ZB32J.js → plan-7M5WB7VT.js} +28 -39
  34. package/dist/plan-7M5WB7VT.js.map +1 -0
  35. package/dist/prompts/plan-prompt.txt +31 -6
  36. package/dist/{rebase-JA3RW2XO.js → rebase-5B7WQQAY.js} +2 -2
  37. package/dist/{recap-5TO42HN2.js → recap-7PSTJ3MF.js} +2 -2
  38. package/dist/{run-KKCRBRLW.js → run-6ZCDG7MX.js} +2 -2
  39. package/dist/{shell-GAB2FCXH.js → shell-MX3WRDQN.js} +2 -2
  40. package/dist/{summary-P7QE3TNW.js → summary-WQ7QOAIQ.js} +2 -2
  41. package/dist/{test-6LFB5WOO.js → test-LAIG62XM.js} +3 -3
  42. package/dist/{vscode-HXIXRZ3A.js → vscode-VZCCFQRY.js} +2 -2
  43. package/package.json +1 -1
  44. package/dist/chunk-IS46GQRA.js.map +0 -1
  45. package/dist/chunk-JD3K2344.js.map +0 -1
  46. package/dist/chunk-PDG74IJT.js.map +0 -1
  47. package/dist/chunk-XVCGPTEQ.js.map +0 -1
  48. package/dist/plan-PL3ZB32J.js.map +0 -1
  49. /package/dist/{build-DMWSIME6.js.map → build-PKHPE34Y.js.map} +0 -0
  50. /package/dist/{chunk-IHSA7VGI.js.map → chunk-CTHB7345.js.map} +0 -0
  51. /package/dist/{chunk-HIGWKLQR.js.map → chunk-VZ55H5X6.js.map} +0 -0
  52. /package/dist/{cleanup-RLBLNQZN.js.map → cleanup-QTZU46OP.js.map} +0 -0
  53. /package/dist/{commit-RILBXFWO.js.map → commit-P3OOQ3JN.js.map} +0 -0
  54. /package/dist/{compile-QEL5724K.js.map → compile-IOXQTCP3.js.map} +0 -0
  55. /package/dist/{dev-server-2WSWZXJG.js.map → dev-server-BLJ7NPKG.js.map} +0 -0
  56. /package/dist/{feedback-I6ZEHEUB.js.map → feedback-RFWGB4I5.js.map} +0 -0
  57. /package/dist/{ignite-XZFYRVRJ.js.map → ignite-6XT5BKSF.js.map} +0 -0
  58. /package/dist/{init-A6WRP77L.js.map → init-6FUPISD7.js.map} +0 -0
  59. /package/dist/{install-deps-HXP2TM7G.js.map → install-deps-BMRONT2L.js.map} +0 -0
  60. /package/dist/{lint-FDZC77GL.js.map → lint-PRD2DO5K.js.map} +0 -0
  61. /package/dist/{open-US4XACLW.js.map → open-NVFYA5IM.js.map} +0 -0
  62. /package/dist/{rebase-JA3RW2XO.js.map → rebase-5B7WQQAY.js.map} +0 -0
  63. /package/dist/{recap-5TO42HN2.js.map → recap-7PSTJ3MF.js.map} +0 -0
  64. /package/dist/{run-KKCRBRLW.js.map → run-6ZCDG7MX.js.map} +0 -0
  65. /package/dist/{shell-GAB2FCXH.js.map → shell-MX3WRDQN.js.map} +0 -0
  66. /package/dist/{summary-P7QE3TNW.js.map → summary-WQ7QOAIQ.js.map} +0 -0
  67. /package/dist/{test-6LFB5WOO.js.map → test-LAIG62XM.js.map} +0 -0
  68. /package/dist/{vscode-HXIXRZ3A.js.map → vscode-VZCCFQRY.js.map} +0 -0
package/dist/cli.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  StartCommand,
12
12
  launchFirstRunSetup,
13
13
  needsFirstRunSetup
14
- } from "./chunk-IS46GQRA.js";
14
+ } from "./chunk-UMZ2CIDW.js";
15
15
  import {
16
16
  CLIIsolationManager,
17
17
  DatabaseManager,
@@ -43,7 +43,7 @@ import {
43
43
  } from "./chunk-HKEXRZMU.js";
44
44
  import {
45
45
  ShellCompletion
46
- } from "./chunk-HIGWKLQR.js";
46
+ } from "./chunk-VZ55H5X6.js";
47
47
  import {
48
48
  TelemetryManager,
49
49
  TelemetryService
@@ -58,12 +58,12 @@ import {
58
58
  import "./chunk-CQHHEW2M.js";
59
59
  import {
60
60
  AgentManager
61
- } from "./chunk-JD3K2344.js";
61
+ } from "./chunk-Y2MVSEJK.js";
62
62
  import {
63
63
  CommitManager,
64
64
  UserAbortedCommitError,
65
65
  ValidationRunner
66
- } from "./chunk-XVCGPTEQ.js";
66
+ } from "./chunk-GDDRANOZ.js";
67
67
  import {
68
68
  IssueManagementProviderFactory
69
69
  } from "./chunk-R7DGN73N.js";
@@ -73,7 +73,7 @@ import {
73
73
  } from "./chunk-VIQOQ463.js";
74
74
  import {
75
75
  GitWorktreeManager
76
- } from "./chunk-FV4KXBGO.js";
76
+ } from "./chunk-6RINI7OL.js";
77
77
  import {
78
78
  openBrowser
79
79
  } from "./chunk-WEBMMJKL.js";
@@ -2206,7 +2206,7 @@ async function autoLaunchInitForMultipleRemotes() {
2206
2206
  await waitForKeypress2("Press any key to start configuration...");
2207
2207
  logger.info("");
2208
2208
  try {
2209
- const { InitCommand } = await import("./init-A6WRP77L.js");
2209
+ const { InitCommand } = await import("./init-6FUPISD7.js");
2210
2210
  const initCommand = new InitCommand();
2211
2211
  const customInitialMessage = "Help me configure which git remote iloom should use for GitHub operations. I have multiple remotes and need to select the correct one.";
2212
2212
  await initCommand.execute(customInitialMessage);
@@ -2314,7 +2314,7 @@ program.command("add-issue").alias("a").description("Create and enhance GitHub i
2314
2314
  });
2315
2315
  program.command("feedback").alias("f").description("Submit feedback/bug report to iloom-cli repository").argument("<description>", "Feedback title (>30 chars, >2 spaces; or any non-empty text when --body provided)").option("--body <text>", "Body text for feedback (added after diagnostics)").action(async (description, options) => {
2316
2316
  try {
2317
- const { FeedbackCommand } = await import("./feedback-I6ZEHEUB.js");
2317
+ const { FeedbackCommand } = await import("./feedback-RFWGB4I5.js");
2318
2318
  const command = new FeedbackCommand();
2319
2319
  const feedbackOptions = {};
2320
2320
  if (options.body !== void 0) {
@@ -2416,7 +2416,7 @@ program.command("commit").alias("c").description("Commit all uncommitted files w
2416
2416
  const isAnyJsonMode = options.json ?? options.jsonStream;
2417
2417
  const executeAction = async () => {
2418
2418
  try {
2419
- const { CommitCommand } = await import("./commit-RILBXFWO.js");
2419
+ const { CommitCommand } = await import("./commit-P3OOQ3JN.js");
2420
2420
  const command = new CommitCommand();
2421
2421
  const noReview = options.review === false || options.json === true || options.jsonStream === true;
2422
2422
  const result = await command.execute({
@@ -2455,7 +2455,7 @@ program.command("commit").alias("c").description("Commit all uncommitted files w
2455
2455
  program.command("rebase").description("Rebase current branch on main with Claude-assisted conflict resolution").option("-f, --force", "Skip confirmation prompts").option("-n, --dry-run", "Preview actions without executing").option("--json-stream", "Stream JSONL output; runs Claude headless for conflict resolution").action(async (options) => {
2456
2456
  const executeAction = async () => {
2457
2457
  try {
2458
- const { RebaseCommand } = await import("./rebase-JA3RW2XO.js");
2458
+ const { RebaseCommand } = await import("./rebase-5B7WQQAY.js");
2459
2459
  const command = new RebaseCommand();
2460
2460
  const result = await command.execute(options);
2461
2461
  if (options.jsonStream && result) {
@@ -2495,7 +2495,7 @@ program.command("spin").alias("ignite").description("Launch Claude with auto-det
2495
2495
  options.oneShot = "bypassPermissions";
2496
2496
  }
2497
2497
  try {
2498
- const { IgniteCommand } = await import("./ignite-XZFYRVRJ.js");
2498
+ const { IgniteCommand } = await import("./ignite-6XT5BKSF.js");
2499
2499
  const command = new IgniteCommand();
2500
2500
  if (options.json && options.jsonStream) {
2501
2501
  logger.error("--json and --json-stream are mutually exclusive");
@@ -2523,7 +2523,7 @@ program.command("spin").alias("ignite").description("Launch Claude with auto-det
2523
2523
  program.command("open").description("Open workspace in browser or run CLI tool").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").allowUnknownOption().action(async (identifier, _options, command) => {
2524
2524
  try {
2525
2525
  const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
2526
- const { OpenCommand } = await import("./open-US4XACLW.js");
2526
+ const { OpenCommand } = await import("./open-NVFYA5IM.js");
2527
2527
  const cmd = new OpenCommand();
2528
2528
  const input = identifier ? { identifier, args } : { args };
2529
2529
  await cmd.execute(input);
@@ -2535,7 +2535,7 @@ program.command("open").description("Open workspace in browser or run CLI tool")
2535
2535
  program.command("run").description("Run CLI tool or open workspace in browser").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").allowUnknownOption().action(async (identifier, _options, command) => {
2536
2536
  try {
2537
2537
  const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
2538
- const { RunCommand } = await import("./run-KKCRBRLW.js");
2538
+ const { RunCommand } = await import("./run-6ZCDG7MX.js");
2539
2539
  const cmd = new RunCommand();
2540
2540
  const input = identifier ? { identifier, args } : { args };
2541
2541
  await cmd.execute(input);
@@ -2546,7 +2546,7 @@ program.command("run").description("Run CLI tool or open workspace in browser").
2546
2546
  });
2547
2547
  program.command("vscode").description("Install iloom VS Code extension and open workspace in VS Code").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").option("--no-wait", "Skip keypress prompt and open immediately").action(async (identifier, options) => {
2548
2548
  try {
2549
- const { VSCodeCommand } = await import("./vscode-HXIXRZ3A.js");
2549
+ const { VSCodeCommand } = await import("./vscode-VZCCFQRY.js");
2550
2550
  const cmd = new VSCodeCommand();
2551
2551
  await cmd.execute({ identifier, wait: options == null ? void 0 : options.wait });
2552
2552
  } catch (error) {
@@ -2555,7 +2555,7 @@ program.command("vscode").description("Install iloom VS Code extension and open
2555
2555
  });
2556
2556
  program.command("dev-server").alias("dev").description("Start dev server for workspace (foreground)").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").option("--json", "Output as JSON").action(async (identifier, options) => {
2557
2557
  try {
2558
- const { DevServerCommand } = await import("./dev-server-2WSWZXJG.js");
2558
+ const { DevServerCommand } = await import("./dev-server-BLJ7NPKG.js");
2559
2559
  const cmd = new DevServerCommand();
2560
2560
  await cmd.execute({ identifier, json: options == null ? void 0 : options.json });
2561
2561
  } catch (error) {
@@ -2565,7 +2565,7 @@ program.command("dev-server").alias("dev").description("Start dev server for wor
2565
2565
  });
2566
2566
  program.command("shell").alias("terminal").description("Open interactive shell with workspace environment").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2567
2567
  try {
2568
- const { ShellCommand } = await import("./shell-GAB2FCXH.js");
2568
+ const { ShellCommand } = await import("./shell-MX3WRDQN.js");
2569
2569
  const cmd = new ShellCommand();
2570
2570
  await cmd.execute({ identifier });
2571
2571
  } catch (error) {
@@ -2575,7 +2575,7 @@ program.command("shell").alias("terminal").description("Open interactive shell w
2575
2575
  });
2576
2576
  program.command("build").description("Run the build script").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2577
2577
  try {
2578
- const { BuildCommand } = await import("./build-DMWSIME6.js");
2578
+ const { BuildCommand } = await import("./build-PKHPE34Y.js");
2579
2579
  const cmd = new BuildCommand();
2580
2580
  await cmd.execute(identifier ? { identifier } : {});
2581
2581
  } catch (error) {
@@ -2585,7 +2585,7 @@ program.command("build").description("Run the build script").argument("[identifi
2585
2585
  });
2586
2586
  program.command("lint").description("Run the lint script").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2587
2587
  try {
2588
- const { LintCommand } = await import("./lint-FDZC77GL.js");
2588
+ const { LintCommand } = await import("./lint-PRD2DO5K.js");
2589
2589
  const cmd = new LintCommand();
2590
2590
  await cmd.execute(identifier ? { identifier } : {});
2591
2591
  } catch (error) {
@@ -2595,7 +2595,7 @@ program.command("lint").description("Run the lint script").argument("[identifier
2595
2595
  });
2596
2596
  program.command("test").description("Run the test script").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2597
2597
  try {
2598
- const { TestCommand } = await import("./test-6LFB5WOO.js");
2598
+ const { TestCommand } = await import("./test-LAIG62XM.js");
2599
2599
  const cmd = new TestCommand();
2600
2600
  await cmd.execute(identifier ? { identifier } : {});
2601
2601
  } catch (error) {
@@ -2605,7 +2605,7 @@ program.command("test").description("Run the test script").argument("[identifier
2605
2605
  });
2606
2606
  program.command("compile").alias("typecheck").description("Run the compile or typecheck script (prefers compile if both exist)").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2607
2607
  try {
2608
- const { CompileCommand } = await import("./compile-QEL5724K.js");
2608
+ const { CompileCommand } = await import("./compile-IOXQTCP3.js");
2609
2609
  const cmd = new CompileCommand();
2610
2610
  await cmd.execute(identifier ? { identifier } : {});
2611
2611
  } catch (error) {
@@ -2615,7 +2615,7 @@ program.command("compile").alias("typecheck").description("Run the compile or ty
2615
2615
  });
2616
2616
  program.command("install-deps").description("Install dependencies for a workspace").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").option("--no-frozen", "Allow lockfile updates (default: frozen/locked)").action(async (identifier, options) => {
2617
2617
  try {
2618
- const { InstallDepsCommand } = await import("./install-deps-HXP2TM7G.js");
2618
+ const { InstallDepsCommand } = await import("./install-deps-BMRONT2L.js");
2619
2619
  const cmd = new InstallDepsCommand();
2620
2620
  const input = {};
2621
2621
  if (identifier) input.identifier = identifier;
@@ -2626,10 +2626,10 @@ program.command("install-deps").description("Install dependencies for a workspac
2626
2626
  process.exit(1);
2627
2627
  }
2628
2628
  });
2629
- program.command("cleanup").alias("remove").alias("clean").description("Remove workspaces").argument("[identifier]", "Branch name or issue number to cleanup (auto-detected)").option("-l, --list", "List all worktrees").option("-a, --all", "Remove all worktrees (interactive confirmation)").option("-i, --issue <number>", "Cleanup by issue number", parseInt).option("-f, --force", "Skip confirmations and force removal").option("--dry-run", "Show what would be done without doing it").option("--json", "Output result as JSON").option("--archive", "Archive metadata instead of deleting (preserves loom in il list --finished)").option("--defer <ms>", "Wait specified milliseconds before cleanup", parseInt).action(async (identifier, options) => {
2629
+ program.command("cleanup").alias("remove").alias("clean").description("Remove workspaces").argument("[identifier]", "Branch name or issue number to cleanup (auto-detected)").option("-l, --list", "List all worktrees").option("-a, --all", "Remove all worktrees (interactive confirmation)").option("-i, --issue <number>", "Cleanup by issue number", parseIssueIdentifier).option("-f, --force", "Skip confirmations and force removal").option("--dry-run", "Show what would be done without doing it").option("--json", "Output result as JSON").option("--archive", "Archive metadata instead of deleting (preserves loom in il list --finished)").option("--defer <ms>", "Wait specified milliseconds before cleanup", parseInt).action(async (identifier, options) => {
2630
2630
  const executeAction = async () => {
2631
2631
  try {
2632
- const { CleanupCommand } = await import("./cleanup-RLBLNQZN.js");
2632
+ const { CleanupCommand } = await import("./cleanup-QTZU46OP.js");
2633
2633
  const command = new CleanupCommand();
2634
2634
  const input = {
2635
2635
  options: options ?? {}
@@ -3008,7 +3008,7 @@ program.command("issues").description("List project issues from configured issue
3008
3008
  });
3009
3009
  program.command("init").alias("config").description("Initialize iloom configuration").argument("[prompt]", 'Custom initial message to send to Claude (defaults to "Help me configure iloom settings.")').addOption(new Option("--accept-defaults").hideHelp()).action(async (prompt, options) => {
3010
3010
  try {
3011
- const { InitCommand } = await import("./init-A6WRP77L.js");
3011
+ const { InitCommand } = await import("./init-6FUPISD7.js");
3012
3012
  const command = new InitCommand();
3013
3013
  const trimmedPrompt = prompt == null ? void 0 : prompt.trim();
3014
3014
  const customPrompt = trimmedPrompt && trimmedPrompt.length > 0 ? trimmedPrompt : void 0;
@@ -3022,7 +3022,7 @@ program.command("plan").description("Launch interactive planning session with Ar
3022
3022
  new Option("--output-format <format>", "Output format for Claude CLI (requires --print)").choices(["json", "stream-json", "text"])
3023
3023
  ).option("--verbose", "Enable verbose output (requires --print)").option("--json", "Output final result as JSON object (requires --print)").option("--json-stream", "Stream JSONL output to stdout in real-time (requires --print)").option("--auto-swarm", "Enable auto-swarm: plan, start epic, and spin automatically").action(async (prompt, options) => {
3024
3024
  try {
3025
- const { PlanCommand } = await import("./plan-PL3ZB32J.js");
3025
+ const { PlanCommand } = await import("./plan-7M5WB7VT.js");
3026
3026
  const command = new PlanCommand();
3027
3027
  if ((options == null ? void 0 : options.json) && (options == null ? void 0 : options.jsonStream)) {
3028
3028
  logger.error("--json and --json-stream are mutually exclusive");
@@ -3319,7 +3319,7 @@ program.command("test-prefix").description("[DEPRECATED] Test worktree prefix co
3319
3319
  program.command("summary").description("Generate Claude session summary for a loom").argument("[identifier]", "Issue number, PR number (pr/123), or branch name (auto-detected if omitted)").option("--with-comment", "Post summary as a comment to the issue/PR").option("--json", "Output result as JSON").action(async (identifier, options) => {
3320
3320
  const executeAction = async () => {
3321
3321
  try {
3322
- const { SummaryCommand } = await import("./summary-P7QE3TNW.js");
3322
+ const { SummaryCommand } = await import("./summary-WQ7QOAIQ.js");
3323
3323
  const command = new SummaryCommand();
3324
3324
  const result = await command.execute({ identifier, options });
3325
3325
  if (options.json && result) {
@@ -3349,7 +3349,7 @@ program.command("summary").description("Generate Claude session summary for a lo
3349
3349
  program.command("recap").description("Get recap for a loom (defaults to current directory)").argument("[identifier]", "Issue number, PR number (pr/123), or branch name (auto-detected if omitted)").option("--json", "Output as JSON with filePath for file watching").action(async (identifier, options) => {
3350
3350
  const executeAction = async () => {
3351
3351
  try {
3352
- const { RecapCommand } = await import("./recap-5TO42HN2.js");
3352
+ const { RecapCommand } = await import("./recap-7PSTJ3MF.js");
3353
3353
  const command = new RecapCommand();
3354
3354
  const result = await command.execute({ identifier, json: options.json });
3355
3355
  if (options.json && result) {