@iloom/cli 0.8.2 → 0.9.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 (160) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +50 -4
  3. package/dist/{BranchNamingService-AO7BPIUJ.js → BranchNamingService-K6XNWQ6C.js} +2 -2
  4. package/dist/ClaudeContextManager-X2Y72GRL.js +14 -0
  5. package/dist/ClaudeService-7P32TTES.js +13 -0
  6. package/dist/{LoomLauncher-NHZMEVTQ.js → LoomLauncher-3I47SUPV.js} +6 -6
  7. package/dist/{ProjectCapabilityDetector-IA56AUE6.js → ProjectCapabilityDetector-N5L7T4IY.js} +3 -3
  8. package/dist/PromptTemplateManager-36YLQRHP.js +11 -0
  9. package/dist/README.md +50 -4
  10. package/dist/{SettingsManager-VCVLL32H.js → SettingsManager-QR7V2IW2.js} +2 -2
  11. package/dist/agents/iloom-artifact-reviewer.md +280 -0
  12. package/dist/agents/iloom-code-reviewer.md +9 -7
  13. package/dist/agents/iloom-issue-analyze-and-plan.md +21 -6
  14. package/dist/agents/iloom-issue-analyzer.md +21 -6
  15. package/dist/agents/iloom-issue-complexity-evaluator.md +21 -6
  16. package/dist/agents/iloom-issue-enhancer.md +21 -6
  17. package/dist/agents/iloom-issue-implementer.md +21 -6
  18. package/dist/agents/iloom-issue-planner.md +21 -6
  19. package/dist/{build-Z3WCIKPD.js → build-IC4CJRMP.js} +8 -8
  20. package/dist/{chunk-TVH67KEO.js → chunk-2HZX6AMR.js} +2 -2
  21. package/dist/{chunk-VZYSM7N7.js → chunk-2JPXGGP4.js} +20 -15
  22. package/dist/chunk-2JPXGGP4.js.map +1 -0
  23. package/dist/{chunk-HSGZW3ID.js → chunk-4GAJJUYS.js} +3 -3
  24. package/dist/chunk-4GAJJUYS.js.map +1 -0
  25. package/dist/{chunk-RD7I2Q2F.js → chunk-4LKGCFGG.js} +2 -2
  26. package/dist/{chunk-SSASIBDJ.js → chunk-5LVVQGB3.js} +5 -5
  27. package/dist/{chunk-GWONJE3X.js → chunk-6Y3FTRJL.js} +189 -48
  28. package/dist/chunk-6Y3FTRJL.js.map +1 -0
  29. package/dist/{chunk-4BSXZ5YZ.js → chunk-B7U6OKUR.js} +5 -24
  30. package/dist/chunk-B7U6OKUR.js.map +1 -0
  31. package/dist/{chunk-IGKPPACU.js → chunk-FO5GGFOV.js} +17 -8
  32. package/dist/chunk-FO5GGFOV.js.map +1 -0
  33. package/dist/{chunk-GDS2HXSW.js → chunk-H6ST2TGP.js} +20 -3
  34. package/dist/chunk-H6ST2TGP.js.map +1 -0
  35. package/dist/{chunk-A7XHHUEV.js → chunk-HZXBHMVM.js} +47 -22
  36. package/dist/chunk-HZXBHMVM.js.map +1 -0
  37. package/dist/{chunk-44Y5IF7P.js → chunk-I23OQB4Y.js} +5 -5
  38. package/dist/chunk-JT5LZRMI.js +302 -0
  39. package/dist/chunk-JT5LZRMI.js.map +1 -0
  40. package/dist/{chunk-Q457PKGH.js → chunk-KAYXR544.js} +2 -2
  41. package/dist/{chunk-XU5A6BWA.js → chunk-MZPRBNYC.js} +4 -4
  42. package/dist/{chunk-XHNACIHO.js → chunk-NTTSUAVM.js} +2 -2
  43. package/dist/{chunk-PLI3JQWT.js → chunk-OAVJR4PM.js} +2 -2
  44. package/dist/{chunk-4KGRPHM6.js → chunk-PL2FDYEK.js} +2 -2
  45. package/dist/chunk-QN47QVBX.js +131 -0
  46. package/dist/chunk-QN47QVBX.js.map +1 -0
  47. package/dist/{chunk-3FC3VNEX.js → chunk-RD7OPXZK.js} +34 -8
  48. package/dist/chunk-RD7OPXZK.js.map +1 -0
  49. package/dist/{chunk-O6LECMT6.js → chunk-TGRK3CHF.js} +8 -8
  50. package/dist/{chunk-7GLZVDPQ.js → chunk-TL72BGP6.js} +2 -2
  51. package/dist/{chunk-52MVUK5V.js → chunk-USSL2X4A.js} +2 -2
  52. package/dist/chunk-USSL2X4A.js.map +1 -0
  53. package/dist/{chunk-XPKN3QWY.js → chunk-VOGGLPG5.js} +1 -2
  54. package/dist/{chunk-IWIIOFEB.js → chunk-XFEK2X2D.js} +16 -6
  55. package/dist/chunk-XFEK2X2D.js.map +1 -0
  56. package/dist/{chunk-PBSHQVCT.js → chunk-Z6F5CUS6.js} +4 -4
  57. package/dist/{claude-V4HRPR4Z.js → claude-TP2QO3BU.js} +2 -2
  58. package/dist/{cleanup-NWNKWPUY.js → cleanup-M6N7KV7E.js} +20 -15
  59. package/dist/{cleanup-NWNKWPUY.js.map → cleanup-M6N7KV7E.js.map} +1 -1
  60. package/dist/cli.js +118 -84
  61. package/dist/cli.js.map +1 -1
  62. package/dist/{commit-534QIRHY.js → commit-ORHR53KW.js} +10 -10
  63. package/dist/{compile-UANHMNTS.js → compile-EOWJORKO.js} +8 -8
  64. package/dist/{contribute-7USRBWRM.js → contribute-4KCEOHSH.js} +3 -3
  65. package/dist/{dev-server-TO7RLYJI.js → dev-server-Q6M62ATG.js} +13 -13
  66. package/dist/{feedback-7ZZI6RC5.js → feedback-XRI7SGYX.js} +11 -11
  67. package/dist/{git-GUNOPP4Q.js → git-W3XUIFTR.js} +5 -3
  68. package/dist/hooks/iloom-hook.js +5 -3
  69. package/dist/{ignite-5SIGOW5V.js → ignite-3FHQY23X.js} +90 -26
  70. package/dist/ignite-3FHQY23X.js.map +1 -0
  71. package/dist/index.d.ts +37 -2
  72. package/dist/index.js +49 -13
  73. package/dist/index.js.map +1 -1
  74. package/dist/{chunk-FPNSFP6K.js → init-ALYWKNWG.js} +42 -329
  75. package/dist/init-ALYWKNWG.js.map +1 -0
  76. package/dist/{lint-XPODLDVA.js → lint-IHUH45OC.js} +8 -8
  77. package/dist/{open-M2SUR74Y.js → open-KWOV2OFO.js} +15 -15
  78. package/dist/{plan-FB4AOJ2Q.js → plan-P6MXL7AU.js} +54 -22
  79. package/dist/plan-P6MXL7AU.js.map +1 -0
  80. package/dist/{projects-325GEEGJ.js → projects-LH362JZQ.js} +3 -3
  81. package/dist/prompts/init-prompt.txt +9 -1
  82. package/dist/prompts/issue-prompt.txt +315 -5
  83. package/dist/prompts/plan-prompt.txt +4 -6
  84. package/dist/prompts/pr-prompt.txt +79 -0
  85. package/dist/prompts/regular-prompt.txt +210 -5
  86. package/dist/{rebase-4FNRBW3H.js → rebase-AJOJOZUG.js} +9 -9
  87. package/dist/{recap-GSXFEOD6.js → recap-GKJXMDXW.js} +5 -5
  88. package/dist/{run-GZNHRJB2.js → run-QEUVZF7J.js} +15 -15
  89. package/dist/schema/settings.schema.json +9 -1
  90. package/dist/{shell-2SPM3Z5O.js → shell-DAAVG4YN.js} +5 -5
  91. package/dist/{summary-Z4F7YFXE.js → summary-WNEYCO4S.js} +11 -11
  92. package/dist/{test-LBSPYIJW.js → test-5GPWWO3P.js} +8 -8
  93. package/dist/{test-git-ZPSPA2TP.js → test-git-EJUKDB7F.js} +3 -3
  94. package/dist/{test-prefix-6DLB2BHE.js → test-prefix-23TOBUXY.js} +3 -3
  95. package/dist/{test-webserver-XLJ2TZFP.js → test-webserver-CKROHFBQ.js} +5 -5
  96. package/dist/{vscode-LH3VSQ2W.js → vscode-6TOLFCI2.js} +5 -5
  97. package/package.json +2 -2
  98. package/dist/ClaudeContextManager-RDP6CLK6.js +0 -14
  99. package/dist/ClaudeService-FKPOQRA4.js +0 -13
  100. package/dist/PRManager-A63LT3NF.js +0 -16
  101. package/dist/PromptTemplateManager-OUYDHOPI.js +0 -9
  102. package/dist/chunk-3FC3VNEX.js.map +0 -1
  103. package/dist/chunk-4BSXZ5YZ.js.map +0 -1
  104. package/dist/chunk-52MVUK5V.js.map +0 -1
  105. package/dist/chunk-66QOCD5N.js +0 -79
  106. package/dist/chunk-66QOCD5N.js.map +0 -1
  107. package/dist/chunk-A7XHHUEV.js.map +0 -1
  108. package/dist/chunk-FPNSFP6K.js.map +0 -1
  109. package/dist/chunk-GDS2HXSW.js.map +0 -1
  110. package/dist/chunk-GWONJE3X.js.map +0 -1
  111. package/dist/chunk-HSGZW3ID.js.map +0 -1
  112. package/dist/chunk-IGKPPACU.js.map +0 -1
  113. package/dist/chunk-IWIIOFEB.js.map +0 -1
  114. package/dist/chunk-VZYSM7N7.js.map +0 -1
  115. package/dist/git-GUNOPP4Q.js.map +0 -1
  116. package/dist/ignite-5SIGOW5V.js.map +0 -1
  117. package/dist/init-XXDIB2UJ.js +0 -21
  118. package/dist/init-XXDIB2UJ.js.map +0 -1
  119. package/dist/plan-FB4AOJ2Q.js.map +0 -1
  120. /package/dist/{BranchNamingService-AO7BPIUJ.js.map → BranchNamingService-K6XNWQ6C.js.map} +0 -0
  121. /package/dist/{ClaudeContextManager-RDP6CLK6.js.map → ClaudeContextManager-X2Y72GRL.js.map} +0 -0
  122. /package/dist/{ClaudeService-FKPOQRA4.js.map → ClaudeService-7P32TTES.js.map} +0 -0
  123. /package/dist/{LoomLauncher-NHZMEVTQ.js.map → LoomLauncher-3I47SUPV.js.map} +0 -0
  124. /package/dist/{PRManager-A63LT3NF.js.map → ProjectCapabilityDetector-N5L7T4IY.js.map} +0 -0
  125. /package/dist/{ProjectCapabilityDetector-IA56AUE6.js.map → PromptTemplateManager-36YLQRHP.js.map} +0 -0
  126. /package/dist/{PromptTemplateManager-OUYDHOPI.js.map → SettingsManager-QR7V2IW2.js.map} +0 -0
  127. /package/dist/{build-Z3WCIKPD.js.map → build-IC4CJRMP.js.map} +0 -0
  128. /package/dist/{chunk-TVH67KEO.js.map → chunk-2HZX6AMR.js.map} +0 -0
  129. /package/dist/{chunk-RD7I2Q2F.js.map → chunk-4LKGCFGG.js.map} +0 -0
  130. /package/dist/{chunk-SSASIBDJ.js.map → chunk-5LVVQGB3.js.map} +0 -0
  131. /package/dist/{chunk-44Y5IF7P.js.map → chunk-I23OQB4Y.js.map} +0 -0
  132. /package/dist/{chunk-Q457PKGH.js.map → chunk-KAYXR544.js.map} +0 -0
  133. /package/dist/{chunk-XU5A6BWA.js.map → chunk-MZPRBNYC.js.map} +0 -0
  134. /package/dist/{chunk-XHNACIHO.js.map → chunk-NTTSUAVM.js.map} +0 -0
  135. /package/dist/{chunk-PLI3JQWT.js.map → chunk-OAVJR4PM.js.map} +0 -0
  136. /package/dist/{chunk-4KGRPHM6.js.map → chunk-PL2FDYEK.js.map} +0 -0
  137. /package/dist/{chunk-O6LECMT6.js.map → chunk-TGRK3CHF.js.map} +0 -0
  138. /package/dist/{chunk-7GLZVDPQ.js.map → chunk-TL72BGP6.js.map} +0 -0
  139. /package/dist/{chunk-XPKN3QWY.js.map → chunk-VOGGLPG5.js.map} +0 -0
  140. /package/dist/{chunk-PBSHQVCT.js.map → chunk-Z6F5CUS6.js.map} +0 -0
  141. /package/dist/{SettingsManager-VCVLL32H.js.map → claude-TP2QO3BU.js.map} +0 -0
  142. /package/dist/{commit-534QIRHY.js.map → commit-ORHR53KW.js.map} +0 -0
  143. /package/dist/{compile-UANHMNTS.js.map → compile-EOWJORKO.js.map} +0 -0
  144. /package/dist/{contribute-7USRBWRM.js.map → contribute-4KCEOHSH.js.map} +0 -0
  145. /package/dist/{dev-server-TO7RLYJI.js.map → dev-server-Q6M62ATG.js.map} +0 -0
  146. /package/dist/{feedback-7ZZI6RC5.js.map → feedback-XRI7SGYX.js.map} +0 -0
  147. /package/dist/{claude-V4HRPR4Z.js.map → git-W3XUIFTR.js.map} +0 -0
  148. /package/dist/{lint-XPODLDVA.js.map → lint-IHUH45OC.js.map} +0 -0
  149. /package/dist/{open-M2SUR74Y.js.map → open-KWOV2OFO.js.map} +0 -0
  150. /package/dist/{projects-325GEEGJ.js.map → projects-LH362JZQ.js.map} +0 -0
  151. /package/dist/{rebase-4FNRBW3H.js.map → rebase-AJOJOZUG.js.map} +0 -0
  152. /package/dist/{recap-GSXFEOD6.js.map → recap-GKJXMDXW.js.map} +0 -0
  153. /package/dist/{run-GZNHRJB2.js.map → run-QEUVZF7J.js.map} +0 -0
  154. /package/dist/{shell-2SPM3Z5O.js.map → shell-DAAVG4YN.js.map} +0 -0
  155. /package/dist/{summary-Z4F7YFXE.js.map → summary-WNEYCO4S.js.map} +0 -0
  156. /package/dist/{test-LBSPYIJW.js.map → test-5GPWWO3P.js.map} +0 -0
  157. /package/dist/{test-git-ZPSPA2TP.js.map → test-git-EJUKDB7F.js.map} +0 -0
  158. /package/dist/{test-prefix-6DLB2BHE.js.map → test-prefix-23TOBUXY.js.map} +0 -0
  159. /package/dist/{test-webserver-XLJ2TZFP.js.map → test-webserver-CKROHFBQ.js.map} +0 -0
  160. /package/dist/{vscode-LH3VSQ2W.js.map → vscode-6TOLFCI2.js.map} +0 -0
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  SessionSummaryService
4
- } from "./chunk-PBSHQVCT.js";
4
+ } from "./chunk-Z6F5CUS6.js";
5
5
  import "./chunk-NXMDEL3F.js";
6
6
  import {
7
7
  CLIIsolationManager,
@@ -9,60 +9,52 @@ import {
9
9
  EnvironmentManager,
10
10
  LoomManager,
11
11
  ResourceCleanup
12
- } from "./chunk-GWONJE3X.js";
12
+ } from "./chunk-6Y3FTRJL.js";
13
+ import {
14
+ PRManager
15
+ } from "./chunk-I23OQB4Y.js";
13
16
  import {
14
17
  launchFirstRunSetup,
15
18
  needsFirstRunSetup
16
- } from "./chunk-3FC3VNEX.js";
17
- import {
18
- CommitManager,
19
- UserAbortedCommitError,
20
- ValidationRunner
21
- } from "./chunk-SSASIBDJ.js";
19
+ } from "./chunk-RD7OPXZK.js";
22
20
  import {
23
21
  BuildRunner,
24
22
  MergeManager
25
- } from "./chunk-A7XHHUEV.js";
23
+ } from "./chunk-HZXBHMVM.js";
26
24
  import {
27
25
  IssueTrackerFactory
28
26
  } from "./chunk-SC6X5EBG.js";
29
27
  import {
30
28
  ProcessManager
31
- } from "./chunk-XHNACIHO.js";
32
- import {
33
- installDependencies
34
- } from "./chunk-RD7I2Q2F.js";
35
- import "./chunk-52MVUK5V.js";
29
+ } from "./chunk-NTTSUAVM.js";
30
+ import "./chunk-USSL2X4A.js";
36
31
  import {
37
32
  IdentifierParser,
38
33
  matchIssueIdentifier
39
- } from "./chunk-TVH67KEO.js";
34
+ } from "./chunk-2HZX6AMR.js";
40
35
  import {
41
36
  createNeonProviderFromSettings
42
37
  } from "./chunk-7ZEHSSUP.js";
43
38
  import {
44
39
  ShellCompletion
45
- } from "./chunk-FPNSFP6K.js";
46
- import {
47
- GitWorktreeManager
48
- } from "./chunk-HSGZW3ID.js";
49
- import "./chunk-BYUMEDDD.js";
40
+ } from "./chunk-JT5LZRMI.js";
50
41
  import "./chunk-Q7POFB5Q.js";
51
42
  import {
52
43
  IssueEnhancementService,
53
44
  capitalizeFirstLetter
54
- } from "./chunk-4KGRPHM6.js";
45
+ } from "./chunk-PL2FDYEK.js";
55
46
  import "./chunk-XJHQVOT6.js";
56
47
  import {
57
- ProjectCapabilityDetector
58
- } from "./chunk-7GLZVDPQ.js";
59
- import "./chunk-XPKN3QWY.js";
48
+ openBrowser
49
+ } from "./chunk-YETJNRQM.js";
60
50
  import {
61
51
  AgentManager
62
- } from "./chunk-4BSXZ5YZ.js";
52
+ } from "./chunk-B7U6OKUR.js";
63
53
  import {
64
- PRManager
65
- } from "./chunk-44Y5IF7P.js";
54
+ CommitManager,
55
+ UserAbortedCommitError,
56
+ ValidationRunner
57
+ } from "./chunk-5LVVQGB3.js";
66
58
  import {
67
59
  IssueManagementProviderFactory
68
60
  } from "./chunk-UDZCTLD6.js";
@@ -70,8 +62,11 @@ import {
70
62
  getLinearChildIssues
71
63
  } from "./chunk-RNBIISBZ.js";
72
64
  import {
73
- openBrowser
74
- } from "./chunk-YETJNRQM.js";
65
+ installDependencies
66
+ } from "./chunk-4LKGCFGG.js";
67
+ import {
68
+ GitWorktreeManager
69
+ } from "./chunk-4GAJJUYS.js";
75
70
  import {
76
71
  getConfiguredRepoFromSettings,
77
72
  hasMultipleRemotes
@@ -83,15 +78,19 @@ import {
83
78
  } from "./chunk-O7VL5N6S.js";
84
79
  import {
85
80
  ClaudeContextManager
86
- } from "./chunk-PLI3JQWT.js";
87
- import "./chunk-XU5A6BWA.js";
88
- import "./chunk-66QOCD5N.js";
81
+ } from "./chunk-OAVJR4PM.js";
82
+ import "./chunk-MZPRBNYC.js";
83
+ import "./chunk-QN47QVBX.js";
89
84
  import {
90
85
  extractSettingsOverrides
91
86
  } from "./chunk-GYCR2LOU.js";
92
87
  import {
93
88
  DefaultBranchNamingService
94
- } from "./chunk-Q457PKGH.js";
89
+ } from "./chunk-KAYXR544.js";
90
+ import {
91
+ ProjectCapabilityDetector
92
+ } from "./chunk-TL72BGP6.js";
93
+ import "./chunk-VOGGLPG5.js";
95
94
  import {
96
95
  GitCommandError,
97
96
  executeGitCommand,
@@ -104,10 +103,10 @@ import {
104
103
  pushBranchToRemote,
105
104
  removePlaceholderCommitFromHead,
106
105
  removePlaceholderCommitFromHistory
107
- } from "./chunk-GDS2HXSW.js";
106
+ } from "./chunk-H6ST2TGP.js";
108
107
  import {
109
108
  SettingsManager
110
- } from "./chunk-IWIIOFEB.js";
109
+ } from "./chunk-XFEK2X2D.js";
111
110
  import {
112
111
  MetadataManager
113
112
  } from "./chunk-KBEIQP4G.js";
@@ -122,7 +121,7 @@ import {
122
121
  waitForKeypress
123
122
  } from "./chunk-7JDMYTFZ.js";
124
123
  import "./chunk-433MOLAU.js";
125
- import "./chunk-IGKPPACU.js";
124
+ import "./chunk-FO5GGFOV.js";
126
125
  import {
127
126
  getLogger,
128
127
  withLogger
@@ -761,7 +760,7 @@ var FinishCommand = class {
761
760
  const neonProvider = createNeonProviderFromSettings(settings);
762
761
  const databaseManager = new DatabaseManager(neonProvider, environmentManager, databaseUrlEnvVarName);
763
762
  const cliIsolationManager = new CLIIsolationManager();
764
- const { DefaultBranchNamingService: DefaultBranchNamingService2 } = await import("./BranchNamingService-AO7BPIUJ.js");
763
+ const { DefaultBranchNamingService: DefaultBranchNamingService2 } = await import("./BranchNamingService-K6XNWQ6C.js");
765
764
  this.loomManager ??= new LoomManager(
766
765
  this.gitWorktreeManager,
767
766
  this.issueTracker,
@@ -1233,20 +1232,11 @@ var FinishCommand = class {
1233
1232
  getLogger().info("[DRY RUN] Would remove placeholder commit from history");
1234
1233
  }
1235
1234
  }
1236
- const needsForceWithLease = isHeadPlaceholder || placeholderSha;
1237
1235
  if (!options.dryRun) {
1238
1236
  getLogger().info("Pushing final commits to remote...");
1239
- if (needsForceWithLease) {
1240
- await executeGitCommand(["push", "--force-with-lease", "origin", worktree.branch], { cwd: worktree.path });
1241
- } else {
1242
- await pushBranchToRemote(worktree.branch, worktree.path, { dryRun: false });
1243
- }
1237
+ await executeGitCommand(["push", "--force-with-lease", "origin", worktree.branch], { cwd: worktree.path });
1244
1238
  } else {
1245
- if (needsForceWithLease) {
1246
- getLogger().info("[DRY RUN] Would force push final commits to remote (history rewritten)");
1247
- } else {
1248
- getLogger().info("[DRY RUN] Would push final commits to remote");
1249
- }
1239
+ getLogger().info("[DRY RUN] Would force push final commits to remote (rebased history)");
1250
1240
  }
1251
1241
  const prManager = new PRManager(settings);
1252
1242
  if (!options.dryRun) {
@@ -2395,14 +2385,14 @@ async function autoLaunchInitForMultipleRemotes() {
2395
2385
  await waitForKeypress2("Press any key to start configuration...");
2396
2386
  logger.info("");
2397
2387
  try {
2398
- const { InitCommand } = await import("./init-XXDIB2UJ.js");
2388
+ const { InitCommand } = await import("./init-ALYWKNWG.js");
2399
2389
  const initCommand = new InitCommand();
2400
2390
  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.";
2401
2391
  await initCommand.execute(customInitialMessage);
2402
2392
  logger.info("");
2403
2393
  logger.info("Configuration complete! Continuing with your original command...");
2404
2394
  logger.info("");
2405
- const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-VCVLL32H.js");
2395
+ const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-QR7V2IW2.js");
2406
2396
  const settingsManager = new SettingsManager2();
2407
2397
  const settings = await settingsManager.loadSettings();
2408
2398
  const { hasMultipleRemotes: hasMultipleRemotes2 } = await import("./remote-IJAMOEAP.js");
@@ -2423,7 +2413,10 @@ var shellCompletion = new ShellCompletion();
2423
2413
  shellCompletion.init();
2424
2414
  program.command("start").alias("new").alias("create").alias("up").description("Create isolated workspace for an issue/PR").argument("[identifier]", "Issue number, PR number, or branch name (optional - will prompt if not provided)").option("--claude", "Enable Claude integration (default: true)").option("--no-claude", "Disable Claude integration").option("--code", "Enable VSCode (default: true)").option("--no-code", "Disable VSCode").option("--dev-server", "Enable dev server in terminal (default: true)").option("--no-dev-server", "Disable dev server").option("--terminal", "Enable terminal without dev server (default: false)").option("--no-terminal", "Disable terminal").option("--child-loom", "Force create as child loom (skip prompt)").option("--no-child-loom", "Force create as independent loom (skip prompt)").option("--body <text>", "Body text for issue (skips AI enhancement)").option("--json", "Output result as JSON").addOption(
2425
2415
  new Option("--one-shot <mode>", "One-shot automation mode").choices(["default", "noReview", "bypassPermissions"]).default("default")
2426
- ).action(async (identifier, options) => {
2416
+ ).option("--yolo", "Enable autonomous mode (shorthand for --one-shot=bypassPermissions)").action(async (identifier, options) => {
2417
+ if (options.yolo) {
2418
+ options.oneShot = "bypassPermissions";
2419
+ }
2427
2420
  const executeAction = async () => {
2428
2421
  try {
2429
2422
  let finalIdentifier = identifier;
@@ -2496,7 +2489,7 @@ program.command("add-issue").alias("a").description("Create and enhance GitHub i
2496
2489
  });
2497
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) => {
2498
2491
  try {
2499
- const { FeedbackCommand } = await import("./feedback-7ZZI6RC5.js");
2492
+ const { FeedbackCommand } = await import("./feedback-XRI7SGYX.js");
2500
2493
  const command = new FeedbackCommand();
2501
2494
  const feedbackOptions = {};
2502
2495
  if (options.body !== void 0) {
@@ -2581,7 +2574,7 @@ program.command("finish").alias("dn").description("Merge work and cleanup worksp
2581
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) => {
2582
2575
  const executeAction = async () => {
2583
2576
  try {
2584
- const { CommitCommand } = await import("./commit-534QIRHY.js");
2577
+ const { CommitCommand } = await import("./commit-ORHR53KW.js");
2585
2578
  const command = new CommitCommand();
2586
2579
  const noReview = options.review === false || options.json === true;
2587
2580
  const result = await command.execute({
@@ -2616,7 +2609,7 @@ program.command("commit").alias("c").description("Commit all uncommitted files w
2616
2609
  });
2617
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) => {
2618
2611
  try {
2619
- const { RebaseCommand } = await import("./rebase-4FNRBW3H.js");
2612
+ const { RebaseCommand } = await import("./rebase-AJOJOZUG.js");
2620
2613
  const command = new RebaseCommand();
2621
2614
  await command.execute(options);
2622
2615
  } catch (error) {
@@ -2626,11 +2619,33 @@ program.command("rebase").description("Rebase current branch on main with Claude
2626
2619
  });
2627
2620
  program.command("spin").alias("ignite").description("Launch Claude with auto-detected workspace context").addOption(
2628
2621
  new Option("--one-shot <mode>", "One-shot automation mode").choices(["default", "noReview", "bypassPermissions"])
2629
- ).action(async (options) => {
2622
+ ).option("--yolo", "Enable autonomous mode (shorthand for --one-shot=bypassPermissions)").option("-p, --print", "Enable print/headless mode for CI/CD (uses bypassPermissions)").addOption(
2623
+ new Option("--output-format <format>", "Output format for Claude CLI (requires --print)").choices(["json", "stream-json", "text"])
2624
+ ).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)").action(async (options) => {
2625
+ if (options.yolo) {
2626
+ options.oneShot = "bypassPermissions";
2627
+ }
2630
2628
  try {
2631
- const { IgniteCommand } = await import("./ignite-5SIGOW5V.js");
2629
+ const { IgniteCommand } = await import("./ignite-3FHQY23X.js");
2632
2630
  const command = new IgniteCommand();
2633
- await command.execute(options.oneShot);
2631
+ if (options.json && options.jsonStream) {
2632
+ logger.error("--json and --json-stream are mutually exclusive");
2633
+ process.exit(1);
2634
+ }
2635
+ if (!options.print && (options.outputFormat !== void 0 || options.verbose !== void 0)) {
2636
+ logger.warn("--output-format and --verbose flags are ignored without --print");
2637
+ }
2638
+ if (!options.print && (options.json || options.jsonStream)) {
2639
+ logger.warn("--json and --json-stream flags are ignored without --print");
2640
+ }
2641
+ const printOptions = options.print ? {
2642
+ print: true,
2643
+ ...options.outputFormat !== void 0 && { outputFormat: options.outputFormat },
2644
+ ...options.verbose !== void 0 && { verbose: options.verbose },
2645
+ ...options.json && { json: true },
2646
+ ...options.jsonStream && { jsonStream: true }
2647
+ } : void 0;
2648
+ await command.execute(options.oneShot, printOptions);
2634
2649
  } catch (error) {
2635
2650
  logger.error(`Failed to spin up loom: ${error instanceof Error ? error.message : "Unknown error"}`);
2636
2651
  process.exit(1);
@@ -2639,7 +2654,7 @@ program.command("spin").alias("ignite").description("Launch Claude with auto-det
2639
2654
  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) => {
2640
2655
  try {
2641
2656
  const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
2642
- const { OpenCommand } = await import("./open-M2SUR74Y.js");
2657
+ const { OpenCommand } = await import("./open-KWOV2OFO.js");
2643
2658
  const cmd = new OpenCommand();
2644
2659
  const input = identifier ? { identifier, args } : { args };
2645
2660
  await cmd.execute(input);
@@ -2651,7 +2666,7 @@ program.command("open").description("Open workspace in browser or run CLI tool")
2651
2666
  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) => {
2652
2667
  try {
2653
2668
  const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
2654
- const { RunCommand } = await import("./run-GZNHRJB2.js");
2669
+ const { RunCommand } = await import("./run-QEUVZF7J.js");
2655
2670
  const cmd = new RunCommand();
2656
2671
  const input = identifier ? { identifier, args } : { args };
2657
2672
  await cmd.execute(input);
@@ -2662,7 +2677,7 @@ program.command("run").description("Run CLI tool or open workspace in browser").
2662
2677
  });
2663
2678
  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) => {
2664
2679
  try {
2665
- const { VSCodeCommand } = await import("./vscode-LH3VSQ2W.js");
2680
+ const { VSCodeCommand } = await import("./vscode-6TOLFCI2.js");
2666
2681
  const cmd = new VSCodeCommand();
2667
2682
  await cmd.execute({ identifier, wait: options == null ? void 0 : options.wait });
2668
2683
  } catch (error) {
@@ -2671,7 +2686,7 @@ program.command("vscode").description("Install iloom VS Code extension and open
2671
2686
  });
2672
2687
  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) => {
2673
2688
  try {
2674
- const { DevServerCommand } = await import("./dev-server-TO7RLYJI.js");
2689
+ const { DevServerCommand } = await import("./dev-server-Q6M62ATG.js");
2675
2690
  const cmd = new DevServerCommand();
2676
2691
  await cmd.execute({ identifier, json: options == null ? void 0 : options.json });
2677
2692
  } catch (error) {
@@ -2681,7 +2696,7 @@ program.command("dev-server").alias("dev").description("Start dev server for wor
2681
2696
  });
2682
2697
  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) => {
2683
2698
  try {
2684
- const { ShellCommand } = await import("./shell-2SPM3Z5O.js");
2699
+ const { ShellCommand } = await import("./shell-DAAVG4YN.js");
2685
2700
  const cmd = new ShellCommand();
2686
2701
  await cmd.execute({ identifier });
2687
2702
  } catch (error) {
@@ -2691,7 +2706,7 @@ program.command("shell").alias("terminal").description("Open interactive shell w
2691
2706
  });
2692
2707
  program.command("build").description("Run the build script").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2693
2708
  try {
2694
- const { BuildCommand } = await import("./build-Z3WCIKPD.js");
2709
+ const { BuildCommand } = await import("./build-IC4CJRMP.js");
2695
2710
  const cmd = new BuildCommand();
2696
2711
  await cmd.execute(identifier ? { identifier } : {});
2697
2712
  } catch (error) {
@@ -2701,7 +2716,7 @@ program.command("build").description("Run the build script").argument("[identifi
2701
2716
  });
2702
2717
  program.command("lint").description("Run the lint script").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2703
2718
  try {
2704
- const { LintCommand } = await import("./lint-XPODLDVA.js");
2719
+ const { LintCommand } = await import("./lint-IHUH45OC.js");
2705
2720
  const cmd = new LintCommand();
2706
2721
  await cmd.execute(identifier ? { identifier } : {});
2707
2722
  } catch (error) {
@@ -2711,7 +2726,7 @@ program.command("lint").description("Run the lint script").argument("[identifier
2711
2726
  });
2712
2727
  program.command("test").description("Run the test script").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2713
2728
  try {
2714
- const { TestCommand } = await import("./test-LBSPYIJW.js");
2729
+ const { TestCommand } = await import("./test-5GPWWO3P.js");
2715
2730
  const cmd = new TestCommand();
2716
2731
  await cmd.execute(identifier ? { identifier } : {});
2717
2732
  } catch (error) {
@@ -2721,7 +2736,7 @@ program.command("test").description("Run the test script").argument("[identifier
2721
2736
  });
2722
2737
  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) => {
2723
2738
  try {
2724
- const { CompileCommand } = await import("./compile-UANHMNTS.js");
2739
+ const { CompileCommand } = await import("./compile-EOWJORKO.js");
2725
2740
  const cmd = new CompileCommand();
2726
2741
  await cmd.execute(identifier ? { identifier } : {});
2727
2742
  } catch (error) {
@@ -2732,7 +2747,7 @@ program.command("compile").alias("typecheck").description("Run the compile or ty
2732
2747
  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) => {
2733
2748
  const executeAction = async () => {
2734
2749
  try {
2735
- const { CleanupCommand } = await import("./cleanup-NWNKWPUY.js");
2750
+ const { CleanupCommand } = await import("./cleanup-M6N7KV7E.js");
2736
2751
  const command = new CleanupCommand();
2737
2752
  const input = {
2738
2753
  options: options ?? {}
@@ -3048,7 +3063,7 @@ program.command("list").description("Show active workspaces").option("--json", "
3048
3063
  });
3049
3064
  program.command("projects").description("List configured iloom projects").option("--json", "Output as JSON (default behavior)").action(async (options) => {
3050
3065
  try {
3051
- const { ProjectsCommand } = await import("./projects-325GEEGJ.js");
3066
+ const { ProjectsCommand } = await import("./projects-LH362JZQ.js");
3052
3067
  const command = new ProjectsCommand();
3053
3068
  const result = await command.execute(options);
3054
3069
  console.log(JSON.stringify(result, null, 2));
@@ -3059,7 +3074,7 @@ program.command("projects").description("List configured iloom projects").option
3059
3074
  });
3060
3075
  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.")').action(async (prompt) => {
3061
3076
  try {
3062
- const { InitCommand } = await import("./init-XXDIB2UJ.js");
3077
+ const { InitCommand } = await import("./init-ALYWKNWG.js");
3063
3078
  const command = new InitCommand();
3064
3079
  const trimmedPrompt = prompt == null ? void 0 : prompt.trim();
3065
3080
  const customPrompt = trimmedPrompt && trimmedPrompt.length > 0 ? trimmedPrompt : void 0;
@@ -3069,11 +3084,30 @@ program.command("init").alias("config").description("Initialize iloom configurat
3069
3084
  process.exit(1);
3070
3085
  }
3071
3086
  });
3072
- program.command("plan").description("Launch interactive planning session with Architect persona").argument("[prompt]", "Initial planning prompt or topic").option("--model <model>", "Model to use (default: opus)").option("--yolo", "Enable autonomous mode - Claude proceeds without user interaction").option("--planner <provider>", "AI provider for planning: claude, gemini, codex (default: claude)").option("--reviewer <provider>", "AI provider for review: claude, gemini, codex, none (default: none)").action(async (prompt, options) => {
3087
+ program.command("plan").description("Launch interactive planning session with Architect persona").argument("[prompt]", "Initial planning prompt or topic").option("--model <model>", "Model to use (default: opus)").option("--yolo", "Enable autonomous mode - Claude proceeds without user interaction").option("--planner <provider>", "AI provider for planning: claude, gemini, codex (default: claude)").option("--reviewer <provider>", "AI provider for review: claude, gemini, codex, none (default: none)").option("-p, --print", "Enable print/headless mode for CI/CD (uses bypassPermissions)").addOption(
3088
+ new Option("--output-format <format>", "Output format for Claude CLI (requires --print)").choices(["json", "stream-json", "text"])
3089
+ ).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)").action(async (prompt, options) => {
3073
3090
  try {
3074
- const { PlanCommand } = await import("./plan-FB4AOJ2Q.js");
3091
+ const { PlanCommand } = await import("./plan-P6MXL7AU.js");
3075
3092
  const command = new PlanCommand();
3076
- await command.execute(prompt, options == null ? void 0 : options.model, options == null ? void 0 : options.yolo, options == null ? void 0 : options.planner, options == null ? void 0 : options.reviewer);
3093
+ if ((options == null ? void 0 : options.json) && (options == null ? void 0 : options.jsonStream)) {
3094
+ logger.error("--json and --json-stream are mutually exclusive");
3095
+ process.exit(1);
3096
+ }
3097
+ if (!(options == null ? void 0 : options.print) && ((options == null ? void 0 : options.outputFormat) !== void 0 || (options == null ? void 0 : options.verbose) !== void 0)) {
3098
+ logger.warn("--output-format and --verbose flags are ignored without --print");
3099
+ }
3100
+ if (!(options == null ? void 0 : options.print) && ((options == null ? void 0 : options.json) || (options == null ? void 0 : options.jsonStream))) {
3101
+ logger.warn("--json and --json-stream flags are ignored without --print");
3102
+ }
3103
+ const printOptions = (options == null ? void 0 : options.print) ? {
3104
+ print: true,
3105
+ ...(options == null ? void 0 : options.outputFormat) !== void 0 && { outputFormat: options.outputFormat },
3106
+ ...(options == null ? void 0 : options.verbose) !== void 0 && { verbose: options.verbose },
3107
+ ...(options == null ? void 0 : options.json) && { json: true },
3108
+ ...(options == null ? void 0 : options.jsonStream) && { jsonStream: true }
3109
+ } : void 0;
3110
+ await command.execute(prompt, options == null ? void 0 : options.model, options == null ? void 0 : options.yolo, options == null ? void 0 : options.planner, options == null ? void 0 : options.reviewer, printOptions);
3077
3111
  } catch (error) {
3078
3112
  logger.error(`Planning session failed: ${error instanceof Error ? error.message : "Unknown error"}`);
3079
3113
  process.exit(1);
@@ -3081,7 +3115,7 @@ program.command("plan").description("Launch interactive planning session with Ar
3081
3115
  });
3082
3116
  program.command("contribute").description("Set up local development environment for contributing to a GitHub project").argument("[repository]", "GitHub repository (owner/repo, github.com/owner/repo, or full URL). Defaults to iloom-ai/iloom-cli").action(async (repository) => {
3083
3117
  try {
3084
- const { ContributeCommand } = await import("./contribute-7USRBWRM.js");
3118
+ const { ContributeCommand } = await import("./contribute-4KCEOHSH.js");
3085
3119
  const command = new ContributeCommand();
3086
3120
  await command.execute(repository);
3087
3121
  } catch (error) {
@@ -3102,7 +3136,7 @@ program.command("update").description("Update iloom-cli to the latest version").
3102
3136
  program.command("test-github").description("Test GitHub integration (Issue #3)").argument("<identifier>", "Issue number or PR number").option("--no-claude", "Skip Claude for branch name generation").action(async (identifier, options) => {
3103
3137
  try {
3104
3138
  const { GitHubService: GitHubService2 } = await import("./GitHubService-ACZVNTJE.js");
3105
- const { DefaultBranchNamingService: DefaultBranchNamingService2 } = await import("./BranchNamingService-AO7BPIUJ.js");
3139
+ const { DefaultBranchNamingService: DefaultBranchNamingService2 } = await import("./BranchNamingService-K6XNWQ6C.js");
3106
3140
  logger.info("Testing GitHub Integration\n");
3107
3141
  const service = new GitHubService2();
3108
3142
  const branchNaming = new DefaultBranchNamingService2({ useClaude: options.claude !== false });
@@ -3160,10 +3194,10 @@ program.command("test-github").description("Test GitHub integration (Issue #3)")
3160
3194
  });
3161
3195
  program.command("test-claude").description("Test Claude integration (Issue #10)").option("--detect", "Test Claude CLI detection").option("--version", "Get Claude CLI version").option("--branch <title>", "Test branch name generation with given title").option("--issue <number>", "Issue number for branch generation", "123").option("--launch <prompt>", "Launch Claude with a prompt (headless)").option("--interactive", "Launch Claude interactively (requires --launch)").option("--template <name>", "Test template loading").action(async (options) => {
3162
3196
  try {
3163
- const { detectClaudeCli, getClaudeVersion, generateBranchName, launchClaude } = await import("./claude-V4HRPR4Z.js");
3164
- const { PromptTemplateManager } = await import("./PromptTemplateManager-OUYDHOPI.js");
3165
- const { ClaudeService } = await import("./ClaudeService-FKPOQRA4.js");
3166
- const { ClaudeContextManager: ClaudeContextManager2 } = await import("./ClaudeContextManager-RDP6CLK6.js");
3197
+ const { detectClaudeCli, getClaudeVersion, generateBranchName, launchClaude } = await import("./claude-TP2QO3BU.js");
3198
+ const { PromptTemplateManager } = await import("./PromptTemplateManager-36YLQRHP.js");
3199
+ const { ClaudeService } = await import("./ClaudeService-7P32TTES.js");
3200
+ const { ClaudeContextManager: ClaudeContextManager2 } = await import("./ClaudeContextManager-X2Y72GRL.js");
3167
3201
  logger.info("Testing Claude Integration\n");
3168
3202
  if (options.detect) {
3169
3203
  logger.info("Detecting Claude CLI...");
@@ -3298,7 +3332,7 @@ program.command("test-claude").description("Test Claude integration (Issue #10)"
3298
3332
  });
3299
3333
  program.command("test-webserver").description("Test if a web server is running on a workspace port").argument("<issue-number>", "Issue number (port will be calculated as 3000 + issue number)", parseInt).option("--kill", "Kill the web server if detected").action(async (issueNumber, options) => {
3300
3334
  try {
3301
- const { TestWebserverCommand } = await import("./test-webserver-XLJ2TZFP.js");
3335
+ const { TestWebserverCommand } = await import("./test-webserver-CKROHFBQ.js");
3302
3336
  const command = new TestWebserverCommand();
3303
3337
  await command.execute({ issueNumber, options });
3304
3338
  } catch (error) {
@@ -3311,7 +3345,7 @@ program.command("test-webserver").description("Test if a web server is running o
3311
3345
  });
3312
3346
  program.command("test-git").description("Test Git integration - findMainWorktreePath() function (reads .iloom/settings.json)").action(async () => {
3313
3347
  try {
3314
- const { TestGitCommand } = await import("./test-git-ZPSPA2TP.js");
3348
+ const { TestGitCommand } = await import("./test-git-EJUKDB7F.js");
3315
3349
  const command = new TestGitCommand();
3316
3350
  await command.execute();
3317
3351
  } catch (error) {
@@ -3337,7 +3371,7 @@ program.command("test-tabs").description("Test iTerm2 dual tab functionality - o
3337
3371
  });
3338
3372
  program.command("test-prefix").description("Test worktree prefix configuration - preview worktree paths (reads .iloom/settings.json)").action(async () => {
3339
3373
  try {
3340
- const { TestPrefixCommand } = await import("./test-prefix-6DLB2BHE.js");
3374
+ const { TestPrefixCommand } = await import("./test-prefix-23TOBUXY.js");
3341
3375
  const command = new TestPrefixCommand();
3342
3376
  await command.execute();
3343
3377
  } catch (error) {
@@ -3351,7 +3385,7 @@ program.command("test-prefix").description("Test worktree prefix configuration -
3351
3385
  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) => {
3352
3386
  const executeAction = async () => {
3353
3387
  try {
3354
- const { SummaryCommand } = await import("./summary-Z4F7YFXE.js");
3388
+ const { SummaryCommand } = await import("./summary-WNEYCO4S.js");
3355
3389
  const command = new SummaryCommand();
3356
3390
  const result = await command.execute({ identifier, options });
3357
3391
  if (options.json && result) {
@@ -3380,7 +3414,7 @@ program.command("summary").description("Generate Claude session summary for a lo
3380
3414
  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) => {
3381
3415
  const executeAction = async () => {
3382
3416
  try {
3383
- const { RecapCommand } = await import("./recap-GSXFEOD6.js");
3417
+ const { RecapCommand } = await import("./recap-GKJXMDXW.js");
3384
3418
  const command = new RecapCommand();
3385
3419
  const result = await command.execute({ identifier, json: options.json });
3386
3420
  if (options.json && result) {
@@ -3409,7 +3443,7 @@ program.command("recap").description("Get recap for a loom (defaults to current
3409
3443
  program.command("test-neon").description("Test Neon integration and debug configuration").action(async () => {
3410
3444
  var _a;
3411
3445
  try {
3412
- const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-VCVLL32H.js");
3446
+ const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-QR7V2IW2.js");
3413
3447
  const { createNeonProviderFromSettings: createNeonProviderFromSettings2 } = await import("./neon-helpers-VVFFTLXE.js");
3414
3448
  logger.info("Testing Neon Integration\n");
3415
3449
  logger.info("1. Settings Configuration:");