@iloom/cli 0.7.0 → 0.7.1

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 (49) 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-S7YMZQUD.js → chunk-QQFBMCAH.js} +26 -3
  9. package/dist/chunk-QQFBMCAH.js.map +1 -0
  10. package/dist/{chunk-LLWX3PCW.js → chunk-RD7I2Q2F.js} +2 -2
  11. package/dist/{chunk-ITN64ENQ.js → chunk-XPKN3QWY.js} +24 -6
  12. package/dist/chunk-XPKN3QWY.js.map +1 -0
  13. package/dist/{chunk-NTIZLX42.js → chunk-YQNSZKKT.js} +3 -3
  14. package/dist/{cleanup-ZPOMRSNN.js → cleanup-77U5ATYI.js} +5 -5
  15. package/dist/cli.js +38 -18
  16. package/dist/cli.js.map +1 -1
  17. package/dist/{commit-6S2RIA2K.js → commit-ONRXU67O.js} +4 -4
  18. package/dist/{compile-LRMAADUT.js → compile-CT7IR7O2.js} +4 -4
  19. package/dist/{dev-server-GREJUEKW.js → dev-server-UKAPBGUR.js} +5 -5
  20. package/dist/{feedback-G7G5QCY4.js → feedback-K3A4QUSG.js} +3 -3
  21. package/dist/{lint-OFVN7FT6.js → lint-HAVU4U34.js} +4 -4
  22. package/dist/{open-MCWQAPSZ.js → open-QI63XQ4F.js} +5 -5
  23. package/dist/{projects-PQOTWUII.js → projects-TWY4RT2Z.js} +3 -3
  24. package/dist/prompts/init-prompt.txt +57 -0
  25. package/dist/{rebase-RKQED567.js → rebase-QYCRF7JG.js} +5 -5
  26. package/dist/{run-CCG24PBC.js → run-YDVYORT2.js} +5 -5
  27. package/dist/{test-QZDOEUIO.js → test-75WAA6DU.js} +4 -4
  28. package/package.json +1 -1
  29. package/dist/chunk-ITN64ENQ.js.map +0 -1
  30. package/dist/chunk-S7YMZQUD.js.map +0 -1
  31. /package/dist/{ProjectCapabilityDetector-UZYW32SY.js.map → ProjectCapabilityDetector-IA56AUE6.js.map} +0 -0
  32. /package/dist/{build-O2EJHDEW.js.map → build-HQ5HGA3T.js.map} +0 -0
  33. /package/dist/{chunk-3CDWFEGL.js.map → chunk-7GLZVDPQ.js.map} +0 -0
  34. /package/dist/{chunk-GV5X6XUE.js.map → chunk-AFRICMSW.js.map} +0 -0
  35. /package/dist/{chunk-LQBLDI47.js.map → chunk-DAOS6EC3.js.map} +0 -0
  36. /package/dist/{chunk-Z6BO53V7.js.map → chunk-ELJKYFSH.js.map} +0 -0
  37. /package/dist/{chunk-LLWX3PCW.js.map → chunk-RD7I2Q2F.js.map} +0 -0
  38. /package/dist/{chunk-NTIZLX42.js.map → chunk-YQNSZKKT.js.map} +0 -0
  39. /package/dist/{cleanup-ZPOMRSNN.js.map → cleanup-77U5ATYI.js.map} +0 -0
  40. /package/dist/{commit-6S2RIA2K.js.map → commit-ONRXU67O.js.map} +0 -0
  41. /package/dist/{compile-LRMAADUT.js.map → compile-CT7IR7O2.js.map} +0 -0
  42. /package/dist/{dev-server-GREJUEKW.js.map → dev-server-UKAPBGUR.js.map} +0 -0
  43. /package/dist/{feedback-G7G5QCY4.js.map → feedback-K3A4QUSG.js.map} +0 -0
  44. /package/dist/{lint-OFVN7FT6.js.map → lint-HAVU4U34.js.map} +0 -0
  45. /package/dist/{open-MCWQAPSZ.js.map → open-QI63XQ4F.js.map} +0 -0
  46. /package/dist/{projects-PQOTWUII.js.map → projects-TWY4RT2Z.js.map} +0 -0
  47. /package/dist/{rebase-RKQED567.js.map → rebase-QYCRF7JG.js.map} +0 -0
  48. /package/dist/{run-CCG24PBC.js.map → run-YDVYORT2.js.map} +0 -0
  49. /package/dist/{test-QZDOEUIO.js.map → test-75WAA6DU.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
 
@@ -2469,7 +2489,7 @@ program.command("add-issue").alias("a").description("Create and enhance GitHub i
2469
2489
  });
2470
2490
  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
2491
  try {
2472
- const { FeedbackCommand } = await import("./feedback-G7G5QCY4.js");
2492
+ const { FeedbackCommand } = await import("./feedback-K3A4QUSG.js");
2473
2493
  const command = new FeedbackCommand();
2474
2494
  const feedbackOptions = {};
2475
2495
  if (options.body !== void 0) {
@@ -2553,7 +2573,7 @@ program.command("finish").alias("dn").description("Merge work and cleanup worksp
2553
2573
  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
2574
  const executeAction = async () => {
2555
2575
  try {
2556
- const { CommitCommand } = await import("./commit-6S2RIA2K.js");
2576
+ const { CommitCommand } = await import("./commit-ONRXU67O.js");
2557
2577
  const command = new CommitCommand();
2558
2578
  const noReview = options.review === false || options.json === true;
2559
2579
  const result = await command.execute({
@@ -2588,7 +2608,7 @@ program.command("commit").alias("c").description("Commit all uncommitted files w
2588
2608
  });
2589
2609
  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
2610
  try {
2591
- const { RebaseCommand } = await import("./rebase-RKQED567.js");
2611
+ const { RebaseCommand } = await import("./rebase-QYCRF7JG.js");
2592
2612
  const command = new RebaseCommand();
2593
2613
  await command.execute(options);
2594
2614
  } catch (error) {
@@ -2611,7 +2631,7 @@ program.command("spin").alias("ignite").description("Launch Claude with auto-det
2611
2631
  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
2632
  try {
2613
2633
  const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
2614
- const { OpenCommand } = await import("./open-MCWQAPSZ.js");
2634
+ const { OpenCommand } = await import("./open-QI63XQ4F.js");
2615
2635
  const cmd = new OpenCommand();
2616
2636
  const input = identifier ? { identifier, args } : { args };
2617
2637
  await cmd.execute(input);
@@ -2623,7 +2643,7 @@ program.command("open").description("Open workspace in browser or run CLI tool")
2623
2643
  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
2644
  try {
2625
2645
  const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
2626
- const { RunCommand } = await import("./run-CCG24PBC.js");
2646
+ const { RunCommand } = await import("./run-YDVYORT2.js");
2627
2647
  const cmd = new RunCommand();
2628
2648
  const input = identifier ? { identifier, args } : { args };
2629
2649
  await cmd.execute(input);
@@ -2634,7 +2654,7 @@ program.command("run").description("Run CLI tool or open workspace in browser").
2634
2654
  });
2635
2655
  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
2656
  try {
2637
- const { DevServerCommand } = await import("./dev-server-GREJUEKW.js");
2657
+ const { DevServerCommand } = await import("./dev-server-UKAPBGUR.js");
2638
2658
  const cmd = new DevServerCommand();
2639
2659
  await cmd.execute({ identifier, json: options == null ? void 0 : options.json });
2640
2660
  } catch (error) {
@@ -2654,7 +2674,7 @@ program.command("shell").alias("terminal").description("Open interactive shell w
2654
2674
  });
2655
2675
  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
2676
  try {
2657
- const { BuildCommand } = await import("./build-O2EJHDEW.js");
2677
+ const { BuildCommand } = await import("./build-HQ5HGA3T.js");
2658
2678
  const cmd = new BuildCommand();
2659
2679
  await cmd.execute(identifier ? { identifier } : {});
2660
2680
  } catch (error) {
@@ -2664,7 +2684,7 @@ program.command("build").description("Run the build script").argument("[identifi
2664
2684
  });
2665
2685
  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
2686
  try {
2667
- const { LintCommand } = await import("./lint-OFVN7FT6.js");
2687
+ const { LintCommand } = await import("./lint-HAVU4U34.js");
2668
2688
  const cmd = new LintCommand();
2669
2689
  await cmd.execute(identifier ? { identifier } : {});
2670
2690
  } catch (error) {
@@ -2674,7 +2694,7 @@ program.command("lint").description("Run the lint script").argument("[identifier
2674
2694
  });
2675
2695
  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
2696
  try {
2677
- const { TestCommand } = await import("./test-QZDOEUIO.js");
2697
+ const { TestCommand } = await import("./test-75WAA6DU.js");
2678
2698
  const cmd = new TestCommand();
2679
2699
  await cmd.execute(identifier ? { identifier } : {});
2680
2700
  } catch (error) {
@@ -2684,7 +2704,7 @@ program.command("test").description("Run the test script").argument("[identifier
2684
2704
  });
2685
2705
  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
2706
  try {
2687
- const { CompileCommand } = await import("./compile-LRMAADUT.js");
2707
+ const { CompileCommand } = await import("./compile-CT7IR7O2.js");
2688
2708
  const cmd = new CompileCommand();
2689
2709
  await cmd.execute(identifier ? { identifier } : {});
2690
2710
  } catch (error) {
@@ -2695,7 +2715,7 @@ program.command("compile").alias("typecheck").description("Run the compile or ty
2695
2715
  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
2716
  const executeAction = async () => {
2697
2717
  try {
2698
- const { CleanupCommand } = await import("./cleanup-ZPOMRSNN.js");
2718
+ const { CleanupCommand } = await import("./cleanup-77U5ATYI.js");
2699
2719
  const command = new CleanupCommand();
2700
2720
  const input = {
2701
2721
  options: options ?? {}
@@ -2918,7 +2938,7 @@ program.command("list").description("Show active workspaces").option("--json", "
2918
2938
  });
2919
2939
  program.command("projects").description("List configured iloom projects").option("--json", "Output as JSON (default behavior)").action(async (options) => {
2920
2940
  try {
2921
- const { ProjectsCommand } = await import("./projects-PQOTWUII.js");
2941
+ const { ProjectsCommand } = await import("./projects-TWY4RT2Z.js");
2922
2942
  const command = new ProjectsCommand();
2923
2943
  const result = await command.execute(options);
2924
2944
  console.log(JSON.stringify(result, null, 2));