@iloom/cli 0.7.0 → 0.7.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 (60) hide show
  1. package/dist/{ProjectCapabilityDetector-UZYW32SY.js → ProjectCapabilityDetector-IA56AUE6.js} +3 -3
  2. package/dist/agents/iloom-framework-detector.md +78 -9
  3. package/dist/{build-O2EJHDEW.js → build-HQ5HGA3T.js} +4 -4
  4. package/dist/{chunk-3CDWFEGL.js → chunk-7GLZVDPQ.js} +2 -2
  5. package/dist/{chunk-GV5X6XUE.js → chunk-AFRICMSW.js} +3 -3
  6. package/dist/{chunk-LQBLDI47.js → chunk-DAOS6EC3.js} +4 -4
  7. package/dist/{chunk-Z6BO53V7.js → chunk-ELJKYFSH.js} +3 -3
  8. package/dist/{chunk-5F6IWWRS.js → chunk-EWJFUFPT.js} +2 -2
  9. package/dist/chunk-EWJFUFPT.js.map +1 -0
  10. package/dist/{chunk-B2UO6EYE.js → chunk-NGJZ4TOU.js} +21 -3
  11. package/dist/{chunk-B2UO6EYE.js.map → chunk-NGJZ4TOU.js.map} +1 -1
  12. package/dist/{chunk-S7YMZQUD.js → chunk-QQFBMCAH.js} +26 -3
  13. package/dist/chunk-QQFBMCAH.js.map +1 -0
  14. package/dist/{chunk-LLWX3PCW.js → chunk-RD7I2Q2F.js} +2 -2
  15. package/dist/{chunk-ITN64ENQ.js → chunk-XPKN3QWY.js} +24 -6
  16. package/dist/chunk-XPKN3QWY.js.map +1 -0
  17. package/dist/{chunk-NTIZLX42.js → chunk-YQNSZKKT.js} +3 -3
  18. package/dist/{cleanup-ZPOMRSNN.js → cleanup-77U5ATYI.js} +5 -5
  19. package/dist/cli.js +43 -22
  20. package/dist/cli.js.map +1 -1
  21. package/dist/{commit-6S2RIA2K.js → commit-ONRXU67O.js} +4 -4
  22. package/dist/{compile-LRMAADUT.js → compile-CT7IR7O2.js} +4 -4
  23. package/dist/{dev-server-GREJUEKW.js → dev-server-UKAPBGUR.js} +5 -5
  24. package/dist/{feedback-G7G5QCY4.js → feedback-K3A4QUSG.js} +3 -3
  25. package/dist/{installation-detector-VXZOCL6P.js → installation-detector-MMFWLJYN.js} +2 -2
  26. package/dist/{lint-OFVN7FT6.js → lint-HAVU4U34.js} +4 -4
  27. package/dist/{open-MCWQAPSZ.js → open-QI63XQ4F.js} +5 -5
  28. package/dist/{projects-PQOTWUII.js → projects-TWY4RT2Z.js} +3 -3
  29. package/dist/prompts/init-prompt.txt +57 -0
  30. package/dist/{rebase-RKQED567.js → rebase-QYCRF7JG.js} +5 -5
  31. package/dist/{run-CCG24PBC.js → run-YDVYORT2.js} +5 -5
  32. package/dist/{test-QZDOEUIO.js → test-75WAA6DU.js} +4 -4
  33. package/dist/{update-5NOHT4SG.js → update-HJKDYA3F.js} +3 -3
  34. package/dist/{update-notifier-ARA5SPUW.js → update-notifier-LBAUOOLM.js} +2 -2
  35. package/package.json +1 -1
  36. package/dist/chunk-5F6IWWRS.js.map +0 -1
  37. package/dist/chunk-ITN64ENQ.js.map +0 -1
  38. package/dist/chunk-S7YMZQUD.js.map +0 -1
  39. /package/dist/{ProjectCapabilityDetector-UZYW32SY.js.map → ProjectCapabilityDetector-IA56AUE6.js.map} +0 -0
  40. /package/dist/{build-O2EJHDEW.js.map → build-HQ5HGA3T.js.map} +0 -0
  41. /package/dist/{chunk-3CDWFEGL.js.map → chunk-7GLZVDPQ.js.map} +0 -0
  42. /package/dist/{chunk-GV5X6XUE.js.map → chunk-AFRICMSW.js.map} +0 -0
  43. /package/dist/{chunk-LQBLDI47.js.map → chunk-DAOS6EC3.js.map} +0 -0
  44. /package/dist/{chunk-Z6BO53V7.js.map → chunk-ELJKYFSH.js.map} +0 -0
  45. /package/dist/{chunk-LLWX3PCW.js.map → chunk-RD7I2Q2F.js.map} +0 -0
  46. /package/dist/{chunk-NTIZLX42.js.map → chunk-YQNSZKKT.js.map} +0 -0
  47. /package/dist/{cleanup-ZPOMRSNN.js.map → cleanup-77U5ATYI.js.map} +0 -0
  48. /package/dist/{commit-6S2RIA2K.js.map → commit-ONRXU67O.js.map} +0 -0
  49. /package/dist/{compile-LRMAADUT.js.map → compile-CT7IR7O2.js.map} +0 -0
  50. /package/dist/{dev-server-GREJUEKW.js.map → dev-server-UKAPBGUR.js.map} +0 -0
  51. /package/dist/{feedback-G7G5QCY4.js.map → feedback-K3A4QUSG.js.map} +0 -0
  52. /package/dist/{installation-detector-VXZOCL6P.js.map → installation-detector-MMFWLJYN.js.map} +0 -0
  53. /package/dist/{lint-OFVN7FT6.js.map → lint-HAVU4U34.js.map} +0 -0
  54. /package/dist/{open-MCWQAPSZ.js.map → open-QI63XQ4F.js.map} +0 -0
  55. /package/dist/{projects-PQOTWUII.js.map → projects-TWY4RT2Z.js.map} +0 -0
  56. /package/dist/{rebase-RKQED567.js.map → rebase-QYCRF7JG.js.map} +0 -0
  57. /package/dist/{run-CCG24PBC.js.map → run-YDVYORT2.js.map} +0 -0
  58. /package/dist/{test-QZDOEUIO.js.map → test-75WAA6DU.js.map} +0 -0
  59. /package/dist/{update-5NOHT4SG.js.map → update-HJKDYA3F.js.map} +0 -0
  60. /package/dist/{update-notifier-ARA5SPUW.js.map → update-notifier-LBAUOOLM.js.map} +0 -0
package/dist/cli.js CHANGED
@@ -9,11 +9,11 @@ import {
9
9
  EnvironmentManager,
10
10
  LoomManager,
11
11
  ResourceCleanup
12
- } from "./chunk-S7YMZQUD.js";
12
+ } from "./chunk-QQFBMCAH.js";
13
13
  import {
14
14
  BuildRunner,
15
15
  MergeManager
16
- } from "./chunk-LQBLDI47.js";
16
+ } from "./chunk-DAOS6EC3.js";
17
17
  import {
18
18
  IssueTrackerFactory,
19
19
  generateIssueManagementMcpConfig
@@ -41,7 +41,7 @@ import {
41
41
  } from "./chunk-HVQNVRAF.js";
42
42
  import {
43
43
  ProjectCapabilityDetector
44
- } from "./chunk-3CDWFEGL.js";
44
+ } from "./chunk-7GLZVDPQ.js";
45
45
  import {
46
46
  AgentManager
47
47
  } from "./chunk-N7FVXZNI.js";
@@ -49,14 +49,14 @@ import {
49
49
  CommitManager,
50
50
  UserAbortedCommitError,
51
51
  ValidationRunner
52
- } from "./chunk-NTIZLX42.js";
52
+ } from "./chunk-YQNSZKKT.js";
53
53
  import {
54
54
  installDependencies
55
- } from "./chunk-LLWX3PCW.js";
55
+ } from "./chunk-RD7I2Q2F.js";
56
56
  import {
57
57
  GitWorktreeManager
58
58
  } from "./chunk-UDRZY65Y.js";
59
- import "./chunk-ITN64ENQ.js";
59
+ import "./chunk-XPKN3QWY.js";
60
60
  import {
61
61
  PRManager
62
62
  } from "./chunk-EPPPDVHD.js";
@@ -2073,6 +2073,26 @@ var migrations = [
2073
2073
  const newContent = content + separator + "\n# Added by iloom CLI\n" + pattern + "\n";
2074
2074
  await fs.writeFile(globalIgnorePath, newContent, "utf-8");
2075
2075
  }
2076
+ },
2077
+ {
2078
+ version: "0.7.1",
2079
+ description: "Add global gitignore for .iloom/package.iloom.local.json",
2080
+ migrate: async () => {
2081
+ const globalIgnorePath = path4.join(os.homedir(), ".config", "git", "ignore");
2082
+ const pattern = "**/.iloom/package.iloom.local.json";
2083
+ await fs.ensureDir(path4.dirname(globalIgnorePath));
2084
+ let content = "";
2085
+ try {
2086
+ content = await fs.readFile(globalIgnorePath, "utf-8");
2087
+ } catch {
2088
+ }
2089
+ if (content.includes(pattern)) {
2090
+ return;
2091
+ }
2092
+ const separator = content.endsWith("\n") || content === "" ? "" : "\n";
2093
+ const newContent = content + separator + "\n# Added by iloom CLI\n" + pattern + "\n";
2094
+ await fs.writeFile(globalIgnorePath, newContent, "utf-8");
2095
+ }
2076
2096
  }
2077
2097
  ];
2078
2098
 
@@ -2220,10 +2240,11 @@ program.name("iloom").description(packageJson.description).version(packageJson.v
2220
2240
  process.exit(0);
2221
2241
  }
2222
2242
  try {
2223
- const { checkAndNotifyUpdate } = await import("./update-notifier-ARA5SPUW.js");
2224
- const { detectInstallationMethod } = await import("./installation-detector-VXZOCL6P.js");
2243
+ const { checkAndNotifyUpdate } = await import("./update-notifier-LBAUOOLM.js");
2244
+ const { detectInstallationMethod } = await import("./installation-detector-MMFWLJYN.js");
2225
2245
  const installMethod = detectInstallationMethod(__filename);
2226
- await checkAndNotifyUpdate(packageJson.version, packageJson.name, installMethod);
2246
+ const jsonMode = actionCommand.opts().json === true;
2247
+ await checkAndNotifyUpdate(packageJson.version, packageJson.name, installMethod, { suppressOutput: jsonMode });
2227
2248
  } catch {
2228
2249
  }
2229
2250
  try {
@@ -2469,7 +2490,7 @@ program.command("add-issue").alias("a").description("Create and enhance GitHub i
2469
2490
  });
2470
2491
  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) => {
2471
2492
  try {
2472
- const { FeedbackCommand } = await import("./feedback-G7G5QCY4.js");
2493
+ const { FeedbackCommand } = await import("./feedback-K3A4QUSG.js");
2473
2494
  const command = new FeedbackCommand();
2474
2495
  const feedbackOptions = {};
2475
2496
  if (options.body !== void 0) {
@@ -2553,7 +2574,7 @@ program.command("finish").alias("dn").description("Merge work and cleanup worksp
2553
2574
  program.command("commit").alias("c").description("Commit all uncommitted files with issue reference").option("-m, --message <text>", "Custom commit message (skip Claude generation)").option("--fixes", 'Use "Fixes #N" trailer instead of "Refs #N" (closes issue)').option("--no-review", "Skip commit message review prompt").option("--json", "Output result as JSON (implies --no-review)").option("--wip-commit", "Quick WIP commit: skip validations and pre-commit hooks").action(async (options) => {
2554
2575
  const executeAction = async () => {
2555
2576
  try {
2556
- const { CommitCommand } = await import("./commit-6S2RIA2K.js");
2577
+ const { CommitCommand } = await import("./commit-ONRXU67O.js");
2557
2578
  const command = new CommitCommand();
2558
2579
  const noReview = options.review === false || options.json === true;
2559
2580
  const result = await command.execute({
@@ -2588,7 +2609,7 @@ program.command("commit").alias("c").description("Commit all uncommitted files w
2588
2609
  });
2589
2610
  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").action(async (options) => {
2590
2611
  try {
2591
- const { RebaseCommand } = await import("./rebase-RKQED567.js");
2612
+ const { RebaseCommand } = await import("./rebase-QYCRF7JG.js");
2592
2613
  const command = new RebaseCommand();
2593
2614
  await command.execute(options);
2594
2615
  } catch (error) {
@@ -2611,7 +2632,7 @@ program.command("spin").alias("ignite").description("Launch Claude with auto-det
2611
2632
  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) => {
2612
2633
  try {
2613
2634
  const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
2614
- const { OpenCommand } = await import("./open-MCWQAPSZ.js");
2635
+ const { OpenCommand } = await import("./open-QI63XQ4F.js");
2615
2636
  const cmd = new OpenCommand();
2616
2637
  const input = identifier ? { identifier, args } : { args };
2617
2638
  await cmd.execute(input);
@@ -2623,7 +2644,7 @@ program.command("open").description("Open workspace in browser or run CLI tool")
2623
2644
  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) => {
2624
2645
  try {
2625
2646
  const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
2626
- const { RunCommand } = await import("./run-CCG24PBC.js");
2647
+ const { RunCommand } = await import("./run-YDVYORT2.js");
2627
2648
  const cmd = new RunCommand();
2628
2649
  const input = identifier ? { identifier, args } : { args };
2629
2650
  await cmd.execute(input);
@@ -2634,7 +2655,7 @@ program.command("run").description("Run CLI tool or open workspace in browser").
2634
2655
  });
2635
2656
  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) => {
2636
2657
  try {
2637
- const { DevServerCommand } = await import("./dev-server-GREJUEKW.js");
2658
+ const { DevServerCommand } = await import("./dev-server-UKAPBGUR.js");
2638
2659
  const cmd = new DevServerCommand();
2639
2660
  await cmd.execute({ identifier, json: options == null ? void 0 : options.json });
2640
2661
  } catch (error) {
@@ -2654,7 +2675,7 @@ program.command("shell").alias("terminal").description("Open interactive shell w
2654
2675
  });
2655
2676
  program.command("build").description("Run the build script").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2656
2677
  try {
2657
- const { BuildCommand } = await import("./build-O2EJHDEW.js");
2678
+ const { BuildCommand } = await import("./build-HQ5HGA3T.js");
2658
2679
  const cmd = new BuildCommand();
2659
2680
  await cmd.execute(identifier ? { identifier } : {});
2660
2681
  } catch (error) {
@@ -2664,7 +2685,7 @@ program.command("build").description("Run the build script").argument("[identifi
2664
2685
  });
2665
2686
  program.command("lint").description("Run the lint script").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2666
2687
  try {
2667
- const { LintCommand } = await import("./lint-OFVN7FT6.js");
2688
+ const { LintCommand } = await import("./lint-HAVU4U34.js");
2668
2689
  const cmd = new LintCommand();
2669
2690
  await cmd.execute(identifier ? { identifier } : {});
2670
2691
  } catch (error) {
@@ -2674,7 +2695,7 @@ program.command("lint").description("Run the lint script").argument("[identifier
2674
2695
  });
2675
2696
  program.command("test").description("Run the test script").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2676
2697
  try {
2677
- const { TestCommand } = await import("./test-QZDOEUIO.js");
2698
+ const { TestCommand } = await import("./test-75WAA6DU.js");
2678
2699
  const cmd = new TestCommand();
2679
2700
  await cmd.execute(identifier ? { identifier } : {});
2680
2701
  } catch (error) {
@@ -2684,7 +2705,7 @@ program.command("test").description("Run the test script").argument("[identifier
2684
2705
  });
2685
2706
  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) => {
2686
2707
  try {
2687
- const { CompileCommand } = await import("./compile-LRMAADUT.js");
2708
+ const { CompileCommand } = await import("./compile-CT7IR7O2.js");
2688
2709
  const cmd = new CompileCommand();
2689
2710
  await cmd.execute(identifier ? { identifier } : {});
2690
2711
  } catch (error) {
@@ -2695,7 +2716,7 @@ program.command("compile").alias("typecheck").description("Run the compile or ty
2695
2716
  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("--defer <ms>", "Wait specified milliseconds before cleanup", parseInt).action(async (identifier, options) => {
2696
2717
  const executeAction = async () => {
2697
2718
  try {
2698
- const { CleanupCommand } = await import("./cleanup-ZPOMRSNN.js");
2719
+ const { CleanupCommand } = await import("./cleanup-77U5ATYI.js");
2699
2720
  const command = new CleanupCommand();
2700
2721
  const input = {
2701
2722
  options: options ?? {}
@@ -2918,7 +2939,7 @@ program.command("list").description("Show active workspaces").option("--json", "
2918
2939
  });
2919
2940
  program.command("projects").description("List configured iloom projects").option("--json", "Output as JSON (default behavior)").action(async (options) => {
2920
2941
  try {
2921
- const { ProjectsCommand } = await import("./projects-PQOTWUII.js");
2942
+ const { ProjectsCommand } = await import("./projects-TWY4RT2Z.js");
2922
2943
  const command = new ProjectsCommand();
2923
2944
  const result = await command.execute(options);
2924
2945
  console.log(JSON.stringify(result, null, 2));
@@ -2951,7 +2972,7 @@ program.command("contribute").description("Set up local development environment
2951
2972
  });
2952
2973
  program.command("update").description("Update iloom-cli to the latest version").option("--dry-run", "Show what would be done without actually updating").action(async (options) => {
2953
2974
  try {
2954
- const { UpdateCommand } = await import("./update-5NOHT4SG.js");
2975
+ const { UpdateCommand } = await import("./update-HJKDYA3F.js");
2955
2976
  const command = new UpdateCommand();
2956
2977
  await command.execute(options);
2957
2978
  } catch (error) {