@iloom/cli 0.13.0-beta.0 → 0.13.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 (173) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -18
  3. package/dist/{ClaudeContextManager-RRGREEZQ.js → ClaudeContextManager-ZH6LEA5I.js} +5 -5
  4. package/dist/{ClaudeService-LEPW6QAC.js → ClaudeService-YR66WXZN.js} +4 -4
  5. package/dist/{IssueTrackerFactory-KE2BDCLC.js → IssueTrackerFactory-O2ZBA666.js} +3 -3
  6. package/dist/{LoomLauncher-GKQMR5E6.js → LoomLauncher-V54ENBEF.js} +5 -5
  7. package/dist/{MetadataManager-V4LSJ2PB.js → MetadataManager-HHE6LQF2.js} +2 -2
  8. package/dist/{PromptTemplateManager-I75WKXM4.js → PromptTemplateManager-4RFELNYY.js} +2 -2
  9. package/dist/README.md +3 -18
  10. package/dist/{SettingsManager-KQU7OX7G.js → SettingsManager-SLSYEYDZ.js} +4 -4
  11. package/dist/agents/iloom-artifact-reviewer.md +1 -0
  12. package/dist/agents/iloom-code-reviewer.md +21 -0
  13. package/dist/agents/iloom-issue-analyze-and-plan.md +30 -12
  14. package/dist/agents/iloom-issue-analyzer.md +32 -7
  15. package/dist/agents/iloom-issue-complexity-evaluator.md +32 -12
  16. package/dist/agents/iloom-issue-implementer.md +31 -12
  17. package/dist/agents/iloom-issue-planner.md +30 -12
  18. package/dist/agents/iloom-wave-verifier.md +177 -4
  19. package/dist/{build-V3KADFMO.js → build-ZTGWDHWU.js} +8 -8
  20. package/dist/{chunk-VVQQIG64.js → chunk-55NTREIU.js} +33 -30
  21. package/dist/chunk-55NTREIU.js.map +1 -0
  22. package/dist/{chunk-AYLC633W.js → chunk-7TN5VW4I.js} +65 -7
  23. package/dist/chunk-7TN5VW4I.js.map +1 -0
  24. package/dist/{chunk-RFCAPHL5.js → chunk-C2BVNJW5.js} +2 -2
  25. package/dist/{chunk-3XEXT35Z.js → chunk-E5OM25WK.js} +3 -3
  26. package/dist/{chunk-ZUIFO7B4.js → chunk-ERMEYFT6.js} +7 -2
  27. package/dist/chunk-ERMEYFT6.js.map +1 -0
  28. package/dist/{chunk-WGUGB54H.js → chunk-F5NKWLMQ.js} +21 -24
  29. package/dist/chunk-F5NKWLMQ.js.map +1 -0
  30. package/dist/{chunk-TN2D2RX7.js → chunk-G2DGDCDP.js} +33 -224
  31. package/dist/chunk-G2DGDCDP.js.map +1 -0
  32. package/dist/{chunk-NUUFP53X.js → chunk-GPBX2BY2.js} +2 -2
  33. package/dist/{chunk-SN4S5CWL.js → chunk-GQDVH6FA.js} +2 -2
  34. package/dist/{chunk-YUOVWWJX.js → chunk-HKEXRZMU.js} +5 -310
  35. package/dist/chunk-HKEXRZMU.js.map +1 -0
  36. package/dist/{chunk-TAEVA4QR.js → chunk-HWDQRW3O.js} +3 -3
  37. package/dist/chunk-HWDQRW3O.js.map +1 -0
  38. package/dist/{chunk-KQSV7FOG.js → chunk-J5JOJPK3.js} +2 -2
  39. package/dist/{chunk-PD75ZCFT.js → chunk-KCAWSZUO.js} +18 -17
  40. package/dist/chunk-KCAWSZUO.js.map +1 -0
  41. package/dist/{chunk-QNPJXO53.js → chunk-KGOBNC5A.js} +4 -4
  42. package/dist/{chunk-H3T3EPF3.js → chunk-LNY2Y32V.js} +2 -2
  43. package/dist/{chunk-7RCUWU3I.js → chunk-MRPIDNZU.js} +1 -1
  44. package/dist/chunk-MRPIDNZU.js.map +1 -0
  45. package/dist/{chunk-QQULYI2S.js → chunk-N6DY47YN.js} +80 -45
  46. package/dist/chunk-N6DY47YN.js.map +1 -0
  47. package/dist/{chunk-VIQOQ463.js → chunk-OLJ54WGW.js} +15 -10
  48. package/dist/chunk-OLJ54WGW.js.map +1 -0
  49. package/dist/{chunk-4VQXMEEP.js → chunk-PPQ5LV7U.js} +3 -3
  50. package/dist/{chunk-4VQXMEEP.js.map → chunk-PPQ5LV7U.js.map} +1 -1
  51. package/dist/{chunk-QED2WB2D.js → chunk-PS6K2AOV.js} +5 -5
  52. package/dist/{chunk-JD3K2344.js → chunk-QNRXRSKC.js} +36 -3
  53. package/dist/chunk-QNRXRSKC.js.map +1 -0
  54. package/dist/{chunk-Q7VXHJP6.js → chunk-SM3BCHYB.js} +5 -5
  55. package/dist/{chunk-SA446KA2.js → chunk-T4KFKKEB.js} +7 -7
  56. package/dist/{chunk-XCP2WDYA.js → chunk-T4NESGYB.js} +3 -3
  57. package/dist/{chunk-QXGM32TO.js → chunk-TJDKGKQV.js} +2 -2
  58. package/dist/{chunk-X5DRLONY.js → chunk-UXBVDD7U.js} +6 -6
  59. package/dist/{chunk-JDN4SPV3.js → chunk-WYDLOQYO.js} +2 -2
  60. package/dist/{chunk-4JZEQBWV.js → chunk-XIVLGWUX.js} +3 -1
  61. package/dist/chunk-XIVLGWUX.js.map +1 -0
  62. package/dist/{chunk-NTDY5AMO.js → chunk-ZEFTWM5Z.js} +2 -2
  63. package/dist/{cleanup-RJKLI47I.js → cleanup-BCVY7PEF.js} +22 -22
  64. package/dist/cleanup-BCVY7PEF.js.map +1 -0
  65. package/dist/cli.js +126 -105
  66. package/dist/cli.js.map +1 -1
  67. package/dist/{commit-SUHRUMDE.js → commit-L5JNBU4U.js} +8 -8
  68. package/dist/{compile-2MD346PO.js → compile-GPJOHXH4.js} +8 -8
  69. package/dist/{contribute-P4BMRY7C.js → contribute-QEGCI4PS.js} +4 -4
  70. package/dist/{dev-server-ZNTLWOL5.js → dev-server-67NPVWUN.js} +247 -31
  71. package/dist/dev-server-67NPVWUN.js.map +1 -0
  72. package/dist/{feedback-Q6WG2WX4.js → feedback-2LWXKLQZ.js} +4 -4
  73. package/dist/{git-TX2IEMB3.js → git-IS7AV3ED.js} +4 -4
  74. package/dist/hooks/iloom-hook.js +40 -2
  75. package/dist/{ignite-P644W2PK.js → ignite-VQDJQ37S.js} +12 -14
  76. package/dist/index.d.ts +73 -75
  77. package/dist/index.js +32 -32
  78. package/dist/index.js.map +1 -1
  79. package/dist/{init-5HFY7JG6.js → init-7SDJUAEZ.js} +8 -8
  80. package/dist/{install-deps-J4ALTM27.js → install-deps-NGSFDNUW.js} +8 -8
  81. package/dist/{issues-LZMIF22U.js → issues-4HQKEUP7.js} +5 -5
  82. package/dist/{lint-XIXKU22H.js → lint-C5FOVRXY.js} +8 -8
  83. package/dist/mcp/issue-management-server.js +19 -22
  84. package/dist/mcp/issue-management-server.js.map +1 -1
  85. package/dist/neon-helpers-LCZAN4U4.js +11 -0
  86. package/dist/{open-KUO35JIJ.js → open-WUTLRI6S.js} +19 -15
  87. package/dist/open-WUTLRI6S.js.map +1 -0
  88. package/dist/{plan-7CF56OIR.js → plan-GC3HF73T.js} +86 -66
  89. package/dist/plan-GC3HF73T.js.map +1 -0
  90. package/dist/{projects-L5AHUBGA.js → projects-3F6T3KZL.js} +2 -2
  91. package/dist/prompts/init-prompt.txt +40 -36
  92. package/dist/prompts/issue-prompt.txt +4 -1
  93. package/dist/prompts/plan-prompt.txt +97 -16
  94. package/dist/prompts/regular-prompt.txt +1 -1
  95. package/dist/prompts/swarm-orchestrator-prompt.txt +25 -12
  96. package/dist/{rebase-MAMWPA2L.js → rebase-CSGQICAP.js} +7 -7
  97. package/dist/{recap-IDBO3KM5.js → recap-CKGKFDJL.js} +7 -7
  98. package/dist/{run-RGZHCQ6M.js → run-3YL2IXXI.js} +19 -15
  99. package/dist/run-3YL2IXXI.js.map +1 -0
  100. package/dist/schema/settings.schema.json +35 -31
  101. package/dist/{shell-7ADCDFIV.js → shell-M2YYPNGV.js} +6 -6
  102. package/dist/{summary-7J2HORFD.js → summary-XR4CBJEG.js} +9 -9
  103. package/dist/{test-SRB7EWU6.js → test-ESDAHEVE.js} +8 -8
  104. package/dist/{test-git-G7ATVIXG.js → test-git-KWPLHYSI.js} +4 -4
  105. package/dist/{test-jira-Q2HPA522.js → test-jira-6NK7UHSV.js} +3 -3
  106. package/dist/{test-prefix-JMDGXR5A.js → test-prefix-VVODGHXP.js} +4 -4
  107. package/dist/{test-webserver-GZFVXBGD.js → test-webserver-AHXKC6H4.js} +6 -6
  108. package/dist/{vscode-3I7ISHUU.js → vscode-OY7HOVRO.js} +6 -6
  109. package/package.json +1 -1
  110. package/dist/chunk-4JZEQBWV.js.map +0 -1
  111. package/dist/chunk-7RCUWU3I.js.map +0 -1
  112. package/dist/chunk-AYLC633W.js.map +0 -1
  113. package/dist/chunk-JD3K2344.js.map +0 -1
  114. package/dist/chunk-PD75ZCFT.js.map +0 -1
  115. package/dist/chunk-QQULYI2S.js.map +0 -1
  116. package/dist/chunk-TAEVA4QR.js.map +0 -1
  117. package/dist/chunk-TN2D2RX7.js.map +0 -1
  118. package/dist/chunk-VIQOQ463.js.map +0 -1
  119. package/dist/chunk-VVQQIG64.js.map +0 -1
  120. package/dist/chunk-WGUGB54H.js.map +0 -1
  121. package/dist/chunk-YUOVWWJX.js.map +0 -1
  122. package/dist/chunk-ZUIFO7B4.js.map +0 -1
  123. package/dist/cleanup-RJKLI47I.js.map +0 -1
  124. package/dist/database-helpers-PRDFNDRO.js +0 -11
  125. package/dist/dev-server-ZNTLWOL5.js.map +0 -1
  126. package/dist/open-KUO35JIJ.js.map +0 -1
  127. package/dist/plan-7CF56OIR.js.map +0 -1
  128. package/dist/run-RGZHCQ6M.js.map +0 -1
  129. /package/dist/{ClaudeContextManager-RRGREEZQ.js.map → ClaudeContextManager-ZH6LEA5I.js.map} +0 -0
  130. /package/dist/{ClaudeService-LEPW6QAC.js.map → ClaudeService-YR66WXZN.js.map} +0 -0
  131. /package/dist/{IssueTrackerFactory-KE2BDCLC.js.map → IssueTrackerFactory-O2ZBA666.js.map} +0 -0
  132. /package/dist/{LoomLauncher-GKQMR5E6.js.map → LoomLauncher-V54ENBEF.js.map} +0 -0
  133. /package/dist/{MetadataManager-V4LSJ2PB.js.map → MetadataManager-HHE6LQF2.js.map} +0 -0
  134. /package/dist/{PromptTemplateManager-I75WKXM4.js.map → PromptTemplateManager-4RFELNYY.js.map} +0 -0
  135. /package/dist/{SettingsManager-KQU7OX7G.js.map → SettingsManager-SLSYEYDZ.js.map} +0 -0
  136. /package/dist/{build-V3KADFMO.js.map → build-ZTGWDHWU.js.map} +0 -0
  137. /package/dist/{chunk-RFCAPHL5.js.map → chunk-C2BVNJW5.js.map} +0 -0
  138. /package/dist/{chunk-3XEXT35Z.js.map → chunk-E5OM25WK.js.map} +0 -0
  139. /package/dist/{chunk-NUUFP53X.js.map → chunk-GPBX2BY2.js.map} +0 -0
  140. /package/dist/{chunk-SN4S5CWL.js.map → chunk-GQDVH6FA.js.map} +0 -0
  141. /package/dist/{chunk-KQSV7FOG.js.map → chunk-J5JOJPK3.js.map} +0 -0
  142. /package/dist/{chunk-QNPJXO53.js.map → chunk-KGOBNC5A.js.map} +0 -0
  143. /package/dist/{chunk-H3T3EPF3.js.map → chunk-LNY2Y32V.js.map} +0 -0
  144. /package/dist/{chunk-QED2WB2D.js.map → chunk-PS6K2AOV.js.map} +0 -0
  145. /package/dist/{chunk-Q7VXHJP6.js.map → chunk-SM3BCHYB.js.map} +0 -0
  146. /package/dist/{chunk-SA446KA2.js.map → chunk-T4KFKKEB.js.map} +0 -0
  147. /package/dist/{chunk-XCP2WDYA.js.map → chunk-T4NESGYB.js.map} +0 -0
  148. /package/dist/{chunk-QXGM32TO.js.map → chunk-TJDKGKQV.js.map} +0 -0
  149. /package/dist/{chunk-X5DRLONY.js.map → chunk-UXBVDD7U.js.map} +0 -0
  150. /package/dist/{chunk-JDN4SPV3.js.map → chunk-WYDLOQYO.js.map} +0 -0
  151. /package/dist/{chunk-NTDY5AMO.js.map → chunk-ZEFTWM5Z.js.map} +0 -0
  152. /package/dist/{commit-SUHRUMDE.js.map → commit-L5JNBU4U.js.map} +0 -0
  153. /package/dist/{compile-2MD346PO.js.map → compile-GPJOHXH4.js.map} +0 -0
  154. /package/dist/{contribute-P4BMRY7C.js.map → contribute-QEGCI4PS.js.map} +0 -0
  155. /package/dist/{feedback-Q6WG2WX4.js.map → feedback-2LWXKLQZ.js.map} +0 -0
  156. /package/dist/{database-helpers-PRDFNDRO.js.map → git-IS7AV3ED.js.map} +0 -0
  157. /package/dist/{git-TX2IEMB3.js.map → ignite-VQDJQ37S.js.map} +0 -0
  158. /package/dist/{init-5HFY7JG6.js.map → init-7SDJUAEZ.js.map} +0 -0
  159. /package/dist/{install-deps-J4ALTM27.js.map → install-deps-NGSFDNUW.js.map} +0 -0
  160. /package/dist/{issues-LZMIF22U.js.map → issues-4HQKEUP7.js.map} +0 -0
  161. /package/dist/{lint-XIXKU22H.js.map → lint-C5FOVRXY.js.map} +0 -0
  162. /package/dist/{ignite-P644W2PK.js.map → neon-helpers-LCZAN4U4.js.map} +0 -0
  163. /package/dist/{projects-L5AHUBGA.js.map → projects-3F6T3KZL.js.map} +0 -0
  164. /package/dist/{rebase-MAMWPA2L.js.map → rebase-CSGQICAP.js.map} +0 -0
  165. /package/dist/{recap-IDBO3KM5.js.map → recap-CKGKFDJL.js.map} +0 -0
  166. /package/dist/{shell-7ADCDFIV.js.map → shell-M2YYPNGV.js.map} +0 -0
  167. /package/dist/{summary-7J2HORFD.js.map → summary-XR4CBJEG.js.map} +0 -0
  168. /package/dist/{test-SRB7EWU6.js.map → test-ESDAHEVE.js.map} +0 -0
  169. /package/dist/{test-git-G7ATVIXG.js.map → test-git-KWPLHYSI.js.map} +0 -0
  170. /package/dist/{test-jira-Q2HPA522.js.map → test-jira-6NK7UHSV.js.map} +0 -0
  171. /package/dist/{test-prefix-JMDGXR5A.js.map → test-prefix-VVODGHXP.js.map} +0 -0
  172. /package/dist/{test-webserver-GZFVXBGD.js.map → test-webserver-AHXKC6H4.js.map} +0 -0
  173. /package/dist/{vscode-3I7ISHUU.js.map → vscode-OY7HOVRO.js.map} +0 -0
package/dist/cli.js CHANGED
@@ -1,49 +1,49 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  SessionSummaryService
4
- } from "./chunk-X5DRLONY.js";
4
+ } from "./chunk-UXBVDD7U.js";
5
5
  import "./chunk-NXMDEL3F.js";
6
6
  import {
7
7
  ResourceCleanup
8
- } from "./chunk-SA446KA2.js";
9
- import "./chunk-3XEXT35Z.js";
8
+ } from "./chunk-T4KFKKEB.js";
9
+ import "./chunk-E5OM25WK.js";
10
10
  import {
11
11
  StartCommand,
12
12
  launchFirstRunSetup,
13
13
  needsFirstRunSetup
14
- } from "./chunk-PD75ZCFT.js";
14
+ } from "./chunk-KCAWSZUO.js";
15
15
  import {
16
16
  CLIIsolationManager,
17
17
  DatabaseManager,
18
18
  EnvironmentManager,
19
19
  LoomManager
20
- } from "./chunk-VVQQIG64.js";
20
+ } from "./chunk-55NTREIU.js";
21
21
  import {
22
22
  PRManager,
23
23
  VCSProviderFactory
24
- } from "./chunk-KQSV7FOG.js";
24
+ } from "./chunk-J5JOJPK3.js";
25
25
  import {
26
26
  BuildRunner,
27
27
  MergeManager
28
- } from "./chunk-Q7VXHJP6.js";
28
+ } from "./chunk-SM3BCHYB.js";
29
29
  import {
30
30
  assembleChildrenData
31
- } from "./chunk-RFCAPHL5.js";
31
+ } from "./chunk-C2BVNJW5.js";
32
32
  import "./chunk-7UBEHQTP.js";
33
- import "./chunk-AYLC633W.js";
33
+ import "./chunk-7TN5VW4I.js";
34
34
  import {
35
35
  ProcessManager
36
- } from "./chunk-H3T3EPF3.js";
37
- import "./chunk-ZUIFO7B4.js";
36
+ } from "./chunk-LNY2Y32V.js";
37
+ import "./chunk-ERMEYFT6.js";
38
38
  import {
39
39
  IdentifierParser
40
- } from "./chunk-SN4S5CWL.js";
40
+ } from "./chunk-GQDVH6FA.js";
41
41
  import {
42
- createDatabaseProviderFromSettings
43
- } from "./chunk-YUOVWWJX.js";
42
+ createNeonProviderFromSettings
43
+ } from "./chunk-HKEXRZMU.js";
44
44
  import {
45
45
  ShellCompletion
46
- } from "./chunk-QXGM32TO.js";
46
+ } from "./chunk-TJDKGKQV.js";
47
47
  import {
48
48
  TelemetryManager,
49
49
  TelemetryService
@@ -58,22 +58,22 @@ import {
58
58
  import "./chunk-CQHHEW2M.js";
59
59
  import {
60
60
  AgentManager
61
- } from "./chunk-JD3K2344.js";
61
+ } from "./chunk-QNRXRSKC.js";
62
62
  import {
63
63
  CommitManager,
64
64
  UserAbortedCommitError,
65
65
  ValidationRunner
66
- } from "./chunk-TAEVA4QR.js";
66
+ } from "./chunk-HWDQRW3O.js";
67
67
  import {
68
68
  IssueManagementProviderFactory
69
- } from "./chunk-NTDY5AMO.js";
69
+ } from "./chunk-ZEFTWM5Z.js";
70
70
  import "./chunk-4232AHNQ.js";
71
71
  import {
72
72
  installDependencies
73
- } from "./chunk-VIQOQ463.js";
73
+ } from "./chunk-OLJ54WGW.js";
74
74
  import {
75
75
  GitWorktreeManager
76
- } from "./chunk-4VQXMEEP.js";
76
+ } from "./chunk-PPQ5LV7U.js";
77
77
  import {
78
78
  openBrowser
79
79
  } from "./chunk-WEBMMJKL.js";
@@ -84,9 +84,9 @@ import {
84
84
  } from "./chunk-CE676WCN.js";
85
85
  import {
86
86
  ClaudeContextManager
87
- } from "./chunk-JDN4SPV3.js";
88
- import "./chunk-XCP2WDYA.js";
89
- import "./chunk-7RCUWU3I.js";
87
+ } from "./chunk-WYDLOQYO.js";
88
+ import "./chunk-T4NESGYB.js";
89
+ import "./chunk-MRPIDNZU.js";
90
90
  import "./chunk-GYCR2LOU.js";
91
91
  import "./chunk-AQUSMNBF.js";
92
92
  import {
@@ -95,7 +95,7 @@ import {
95
95
  import "./chunk-K3QGG4O2.js";
96
96
  import {
97
97
  IssueTrackerFactory
98
- } from "./chunk-NUUFP53X.js";
98
+ } from "./chunk-GPBX2BY2.js";
99
99
  import "./chunk-DMSL5BAP.js";
100
100
  import {
101
101
  GitHubService
@@ -125,13 +125,13 @@ import {
125
125
  pushBranchToRemote,
126
126
  removePlaceholderCommitFromHead,
127
127
  removePlaceholderCommitFromHistory
128
- } from "./chunk-QNPJXO53.js";
128
+ } from "./chunk-KGOBNC5A.js";
129
129
  import {
130
130
  SettingsManager
131
- } from "./chunk-WGUGB54H.js";
131
+ } from "./chunk-F5NKWLMQ.js";
132
132
  import {
133
133
  MetadataManager
134
- } from "./chunk-4JZEQBWV.js";
134
+ } from "./chunk-XIVLGWUX.js";
135
135
  import {
136
136
  getLogger,
137
137
  withLogger
@@ -350,8 +350,8 @@ var FinishCommand = class {
350
350
  const settings = await this.settingsManager.loadSettings();
351
351
  const databaseUrlEnvVarName = ((_b = (_a2 = settings.capabilities) == null ? void 0 : _a2.database) == null ? void 0 : _b.databaseUrlEnvVarName) ?? "DATABASE_URL";
352
352
  const environmentManager = new EnvironmentManager();
353
- const databaseProvider = createDatabaseProviderFromSettings(settings);
354
- const databaseManager = new DatabaseManager(databaseProvider, environmentManager, databaseUrlEnvVarName);
353
+ const neonProvider = createNeonProviderFromSettings(settings);
354
+ const databaseManager = new DatabaseManager(neonProvider, environmentManager, databaseUrlEnvVarName);
355
355
  const cliIsolationManager = new CLIIsolationManager();
356
356
  const { DefaultBranchNamingService } = await import("./BranchNamingService-MEK2WZUD.js");
357
357
  this.loomManager ??= new LoomManager(
@@ -541,7 +541,7 @@ var FinishCommand = class {
541
541
  if (result.type === "issue" && result.number !== void 0) {
542
542
  const worktree = await this.gitWorktreeManager.findWorktreeForIssue(result.number);
543
543
  if (worktree) {
544
- const { MetadataManager: MetadataManager2 } = await import("./MetadataManager-V4LSJ2PB.js");
544
+ const { MetadataManager: MetadataManager2 } = await import("./MetadataManager-HHE6LQF2.js");
545
545
  const metadataManager = new MetadataManager2();
546
546
  const metadata = await metadataManager.readMetadata(worktree.path);
547
547
  const canonicalKey = (metadata == null ? void 0 : metadata.issueKey) ?? ((_a2 = metadata == null ? void 0 : metadata.issue_numbers) == null ? void 0 : _a2[0]);
@@ -571,7 +571,7 @@ var FinishCommand = class {
571
571
  autoDetected: true
572
572
  };
573
573
  }
574
- const { MetadataManager: MetadataManager2 } = await import("./MetadataManager-V4LSJ2PB.js");
574
+ const { MetadataManager: MetadataManager2 } = await import("./MetadataManager-HHE6LQF2.js");
575
575
  const metadataManager = new MetadataManager2();
576
576
  const metadata = await metadataManager.readMetadata(process.cwd());
577
577
  const issueNumber = extractIssueNumber(currentDir);
@@ -978,7 +978,7 @@ var FinishCommand = class {
978
978
  "Cannot cleanup PR with uncommitted changes. Commit or stash changes, then run again with --force to cleanup anyway."
979
979
  );
980
980
  }
981
- const { MetadataManager: MetadataManager2 } = await import("./MetadataManager-V4LSJ2PB.js");
981
+ const { MetadataManager: MetadataManager2 } = await import("./MetadataManager-HHE6LQF2.js");
982
982
  const metadataManager = new MetadataManager2();
983
983
  if (!options.dryRun) {
984
984
  await metadataManager.archiveMetadata(worktree.path);
@@ -1188,7 +1188,7 @@ var FinishCommand = class {
1188
1188
  }
1189
1189
  finishResult.prUrl = prResult.url;
1190
1190
  await this.generateSessionSummaryIfConfigured(parsed, worktree, options, prResult.number);
1191
- const { MetadataManager: MetadataManager2 } = await import("./MetadataManager-V4LSJ2PB.js");
1191
+ const { MetadataManager: MetadataManager2 } = await import("./MetadataManager-HHE6LQF2.js");
1192
1192
  const metadataManager = new MetadataManager2();
1193
1193
  if (!options.dryRun) {
1194
1194
  await metadataManager.archiveMetadata(worktree.path);
@@ -2206,14 +2206,14 @@ 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-5HFY7JG6.js");
2209
+ const { InitCommand } = await import("./init-7SDJUAEZ.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);
2213
2213
  logger.info("");
2214
2214
  logger.info("Configuration complete! Continuing with your original command...");
2215
2215
  logger.info("");
2216
- const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-KQU7OX7G.js");
2216
+ const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-SLSYEYDZ.js");
2217
2217
  const settingsManager = new SettingsManager2();
2218
2218
  const settings = await settingsManager.loadSettings();
2219
2219
  const { hasMultipleRemotes: hasMultipleRemotes2 } = await import("./remote-RO4LZKT2.js");
@@ -2234,7 +2234,7 @@ var shellCompletion = new ShellCompletion();
2234
2234
  shellCompletion.init();
2235
2235
  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("--epic", "Create as epic loom with child issues (skip prompt; ignored if no children)").option("--no-epic", "Skip epic loom creation even if issue has children (ignored if no children)").option("--body <text>", "Body text for issue (skips AI enhancement)").option("--json", "Output result as JSON").addOption(
2236
2236
  new Option("--one-shot <mode>", "One-shot automation mode").choices(["default", "noReview", "bypassPermissions"]).default("default")
2237
- ).option("--yolo", "Enable autonomous mode (shorthand for --one-shot=bypassPermissions)").addOption(
2237
+ ).option("--yolo", "Enable autonomous mode (shorthand for --one-shot=bypassPermissions)").option("--dangerously-skip-permissions", "Skip Claude permission prompts without skipping workflow gates").addOption(
2238
2238
  new Option("--complexity <level>", "Override complexity evaluation (persists in loom metadata)").choices(["trivial", "simple", "complex"])
2239
2239
  ).option("--create-only", "Create workspace only (skip Claude, IDE, terminal, dev server)").action(async (identifier, options) => {
2240
2240
  if (options.yolo) {
@@ -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-Q6WG2WX4.js");
2317
+ const { FeedbackCommand } = await import("./feedback-2LWXKLQZ.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-SUHRUMDE.js");
2419
+ const { CommitCommand } = await import("./commit-L5JNBU4U.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-MAMWPA2L.js");
2458
+ const { RebaseCommand } = await import("./rebase-CSGQICAP.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-P644W2PK.js");
2498
+ const { IgniteCommand } = await import("./ignite-VQDJQ37S.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-KUO35JIJ.js");
2526
+ const { OpenCommand } = await import("./open-WUTLRI6S.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-RGZHCQ6M.js");
2538
+ const { RunCommand } = await import("./run-3YL2IXXI.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-3I7ISHUU.js");
2549
+ const { VSCodeCommand } = await import("./vscode-OY7HOVRO.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-ZNTLWOL5.js");
2558
+ const { DevServerCommand } = await import("./dev-server-67NPVWUN.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-7ADCDFIV.js");
2568
+ const { ShellCommand } = await import("./shell-M2YYPNGV.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-V3KADFMO.js");
2578
+ const { BuildCommand } = await import("./build-ZTGWDHWU.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-XIXKU22H.js");
2588
+ const { LintCommand } = await import("./lint-C5FOVRXY.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-SRB7EWU6.js");
2598
+ const { TestCommand } = await import("./test-ESDAHEVE.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-2MD346PO.js");
2608
+ const { CompileCommand } = await import("./compile-GPJOHXH4.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-J4ALTM27.js");
2618
+ const { InstallDepsCommand } = await import("./install-deps-NGSFDNUW.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-RJKLI47I.js");
2632
+ const { CleanupCommand } = await import("./cleanup-BCVY7PEF.js");
2633
2633
  const command = new CleanupCommand();
2634
2634
  const input = {
2635
2635
  options: options ?? {}
@@ -2676,13 +2676,16 @@ function colorizeState(state) {
2676
2676
  }
2677
2677
  }
2678
2678
  program.command("list").description("Show active workspaces").option("--json", "Output as JSON").option("--finished", "Show only finished looms (sorted by finish time, latest first)").option("--all", "Show both active and finished looms").option("--global", "Show looms from all projects (default: current project only)").option("--children", "Fetch and display child issues and child looms for each parent loom").action(async (options) => {
2679
+ var _a2;
2679
2680
  try {
2680
2681
  const manager = new GitWorktreeManager();
2681
2682
  const metadataManager = new MetadataManager();
2682
2683
  let currentProjectPath = null;
2683
2684
  if (!options.global) {
2684
2685
  try {
2685
- currentProjectPath = await findMainWorktreePathWithSettings();
2686
+ const primaryWorktrees = await manager.listWorktrees({ porcelain: true });
2687
+ const primaryPath = (_a2 = primaryWorktrees[0]) == null ? void 0 : _a2.path;
2688
+ currentProjectPath = await findMainWorktreePathWithSettings(primaryPath);
2686
2689
  } catch (error) {
2687
2690
  if (error instanceof GitCommandError && (error.exitCode === 128 || /fatal: not a git repository/i.test(error.stderr))) {
2688
2691
  currentProjectPath = null;
@@ -2979,7 +2982,7 @@ program.command("list").description("Show active workspaces").option("--json", "
2979
2982
  });
2980
2983
  program.command("projects").description("List configured iloom projects").option("--json", "Output as JSON (default behavior)").action(async (options) => {
2981
2984
  try {
2982
- const { ProjectsCommand } = await import("./projects-L5AHUBGA.js");
2985
+ const { ProjectsCommand } = await import("./projects-3F6T3KZL.js");
2983
2986
  const command = new ProjectsCommand();
2984
2987
  const result = await command.execute(options);
2985
2988
  console.log(JSON.stringify(result, null, 2));
@@ -2990,7 +2993,7 @@ program.command("projects").description("List configured iloom projects").option
2990
2993
  });
2991
2994
  program.command("issues").description("List project issues from configured issue tracker").argument("[project-path]", "Path to project root (auto-detected if omitted)").option("--json", "Output as JSON (default behavior)").option("--limit <n>", "Max issues to return", "100").option("--sprint <name>", 'Jira only: filter by sprint name (e.g., "Sprint 17") or "current" for active sprint').option("--mine", "Show only issues and PRs assigned to me").action(async (projectPath, options) => {
2992
2995
  try {
2993
- const { IssuesCommand } = await import("./issues-LZMIF22U.js");
2996
+ const { IssuesCommand } = await import("./issues-4HQKEUP7.js");
2994
2997
  const command = new IssuesCommand();
2995
2998
  const parsedLimit = parseInt((options == null ? void 0 : options.limit) ?? "100", 10);
2996
2999
  const limit = Number.isNaN(parsedLimit) || parsedLimit <= 0 ? 100 : parsedLimit;
@@ -3008,7 +3011,7 @@ program.command("issues").description("List project issues from configured issue
3008
3011
  });
3009
3012
  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
3013
  try {
3011
- const { InitCommand } = await import("./init-5HFY7JG6.js");
3014
+ const { InitCommand } = await import("./init-7SDJUAEZ.js");
3012
3015
  const command = new InitCommand();
3013
3016
  const trimmedPrompt = prompt == null ? void 0 : prompt.trim();
3014
3017
  const customPrompt = trimmedPrompt && trimmedPrompt.length > 0 ? trimmedPrompt : void 0;
@@ -3018,11 +3021,13 @@ program.command("init").alias("config").description("Initialize iloom configurat
3018
3021
  process.exit(1);
3019
3022
  }
3020
3023
  });
3021
- 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(
3024
+ program.command("plan").description("Launch interactive planning session with Architect persona").argument("[prompt]", "Initial planning prompt or topic").option("--model <model>", "Model to use: opus, sonnet, haiku, opus[1m], sonnet[1m] (default: opus)").addOption(
3025
+ new Option("--one-shot <mode>", "One-shot automation mode").choices(["default", "noReview", "bypassPermissions"])
3026
+ ).option("--dangerously-skip-permissions", "Skip Claude permission prompts without skipping confirmation gates").option("--autonomous", "Alias for --one-shot=bypassPermissions (backwards compat)").option("--yolo", "Full autonomy shorthand (--one-shot=bypassPermissions + --auto-swarm)").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(
3022
3027
  new Option("--output-format <format>", "Output format for Claude CLI (requires --print)").choices(["json", "stream-json", "text"])
3023
3028
  ).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
3029
  try {
3025
- const { PlanCommand } = await import("./plan-7CF56OIR.js");
3030
+ const { PlanCommand } = await import("./plan-GC3HF73T.js");
3026
3031
  const command = new PlanCommand();
3027
3032
  if ((options == null ? void 0 : options.json) && (options == null ? void 0 : options.jsonStream)) {
3028
3033
  logger.error("--json and --json-stream are mutually exclusive");
@@ -3034,6 +3039,22 @@ program.command("plan").description("Launch interactive planning session with Ar
3034
3039
  if (!(options == null ? void 0 : options.print) && ((options == null ? void 0 : options.json) || (options == null ? void 0 : options.jsonStream))) {
3035
3040
  logger.warn("--json and --json-stream flags are ignored without --print");
3036
3041
  }
3042
+ let resolvedOneShot = options == null ? void 0 : options.oneShot;
3043
+ let resolvedAutoSwarm = (options == null ? void 0 : options.autoSwarm) ?? false;
3044
+ const resolvedDangerouslySkipPermissions = (options == null ? void 0 : options.dangerouslySkipPermissions) ?? false;
3045
+ if (options == null ? void 0 : options.yolo) {
3046
+ if (resolvedOneShot !== void 0 && resolvedOneShot !== "bypassPermissions") {
3047
+ logger.debug(`--yolo overrides --one-shot value to bypassPermissions`);
3048
+ }
3049
+ resolvedOneShot = "bypassPermissions";
3050
+ resolvedAutoSwarm = true;
3051
+ }
3052
+ if (options == null ? void 0 : options.autonomous) {
3053
+ if (resolvedOneShot !== void 0 && resolvedOneShot !== "bypassPermissions") {
3054
+ logger.debug(`--autonomous overrides --one-shot value to bypassPermissions`);
3055
+ }
3056
+ resolvedOneShot = "bypassPermissions";
3057
+ }
3037
3058
  const printOptions = (options == null ? void 0 : options.print) ? {
3038
3059
  print: true,
3039
3060
  ...(options == null ? void 0 : options.outputFormat) !== void 0 && { outputFormat: options.outputFormat },
@@ -3041,7 +3062,11 @@ program.command("plan").description("Launch interactive planning session with Ar
3041
3062
  ...(options == null ? void 0 : options.json) && { json: true },
3042
3063
  ...(options == null ? void 0 : options.jsonStream) && { jsonStream: true }
3043
3064
  } : void 0;
3044
- 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, options == null ? void 0 : options.autoSwarm);
3065
+ await command.execute(prompt, options == null ? void 0 : options.model, {
3066
+ ...resolvedOneShot !== void 0 && { oneShot: resolvedOneShot },
3067
+ ...resolvedDangerouslySkipPermissions && { dangerouslySkipPermissions: true },
3068
+ autoSwarm: resolvedAutoSwarm
3069
+ }, options == null ? void 0 : options.planner, options == null ? void 0 : options.reviewer, printOptions);
3045
3070
  } catch (error) {
3046
3071
  logger.error(`Planning session failed: ${error instanceof Error ? error.message : "Unknown error"}`);
3047
3072
  process.exit(1);
@@ -3049,7 +3074,7 @@ program.command("plan").description("Launch interactive planning session with Ar
3049
3074
  });
3050
3075
  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) => {
3051
3076
  try {
3052
- const { ContributeCommand } = await import("./contribute-P4BMRY7C.js");
3077
+ const { ContributeCommand } = await import("./contribute-QEGCI4PS.js");
3053
3078
  const command = new ContributeCommand();
3054
3079
  await command.execute(repository);
3055
3080
  } catch (error) {
@@ -3129,9 +3154,9 @@ program.command("test-github").description("Test GitHub integration (Issue #3)")
3129
3154
  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) => {
3130
3155
  try {
3131
3156
  const { detectClaudeCli, getClaudeVersion, generateBranchName, launchClaude } = await import("./claude-ACL7G4CF.js");
3132
- const { PromptTemplateManager } = await import("./PromptTemplateManager-I75WKXM4.js");
3133
- const { ClaudeService } = await import("./ClaudeService-LEPW6QAC.js");
3134
- const { ClaudeContextManager: ClaudeContextManager2 } = await import("./ClaudeContextManager-RRGREEZQ.js");
3157
+ const { PromptTemplateManager } = await import("./PromptTemplateManager-4RFELNYY.js");
3158
+ const { ClaudeService } = await import("./ClaudeService-YR66WXZN.js");
3159
+ const { ClaudeContextManager: ClaudeContextManager2 } = await import("./ClaudeContextManager-ZH6LEA5I.js");
3135
3160
  logger.info("Testing Claude Integration\n");
3136
3161
  if (options.detect) {
3137
3162
  logger.info("Detecting Claude CLI...");
@@ -3266,7 +3291,7 @@ program.command("test-claude").description("Test Claude integration (Issue #10)"
3266
3291
  });
3267
3292
  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) => {
3268
3293
  try {
3269
- const { TestWebserverCommand } = await import("./test-webserver-GZFVXBGD.js");
3294
+ const { TestWebserverCommand } = await import("./test-webserver-AHXKC6H4.js");
3270
3295
  const command = new TestWebserverCommand();
3271
3296
  await command.execute({ issueNumber, options });
3272
3297
  } catch (error) {
@@ -3279,7 +3304,7 @@ program.command("test-webserver").description("Test if a web server is running o
3279
3304
  });
3280
3305
  program.command("test-git").description("Test Git integration - findMainWorktreePath() function (reads .iloom/settings.json)").action(async () => {
3281
3306
  try {
3282
- const { TestGitCommand } = await import("./test-git-G7ATVIXG.js");
3307
+ const { TestGitCommand } = await import("./test-git-KWPLHYSI.js");
3283
3308
  const command = new TestGitCommand();
3284
3309
  await command.execute();
3285
3310
  } catch (error) {
@@ -3305,7 +3330,7 @@ program.command("test-tabs").description("Test iTerm2 dual tab functionality - o
3305
3330
  });
3306
3331
  program.command("test-prefix").description("[DEPRECATED] Test worktree prefix configuration - preview worktree paths").action(async () => {
3307
3332
  try {
3308
- const { TestPrefixCommand } = await import("./test-prefix-JMDGXR5A.js");
3333
+ const { TestPrefixCommand } = await import("./test-prefix-VVODGHXP.js");
3309
3334
  const command = new TestPrefixCommand();
3310
3335
  await command.execute();
3311
3336
  } catch (error) {
@@ -3319,7 +3344,7 @@ program.command("test-prefix").description("[DEPRECATED] Test worktree prefix co
3319
3344
  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
3345
  const executeAction = async () => {
3321
3346
  try {
3322
- const { SummaryCommand } = await import("./summary-7J2HORFD.js");
3347
+ const { SummaryCommand } = await import("./summary-XR4CBJEG.js");
3323
3348
  const command = new SummaryCommand();
3324
3349
  const result = await command.execute({ identifier, options });
3325
3350
  if (options.json && result) {
@@ -3349,7 +3374,7 @@ program.command("summary").description("Generate Claude session summary for a lo
3349
3374
  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
3375
  const executeAction = async () => {
3351
3376
  try {
3352
- const { RecapCommand } = await import("./recap-IDBO3KM5.js");
3377
+ const { RecapCommand } = await import("./recap-CKGKFDJL.js");
3353
3378
  const command = new RecapCommand();
3354
3379
  const result = await command.execute({ identifier, json: options.json });
3355
3380
  if (options.json && result) {
@@ -3379,7 +3404,7 @@ program.command("recap").description("Get recap for a loom (defaults to current
3379
3404
  var testJiraCommand = program.command("test-jira").description("Test Jira integration methods against a real Jira instance");
3380
3405
  testJiraCommand.command("child-issue").description("Create a test child issue under a parent").argument("<parentKey>", "Parent issue key (e.g., PROJ-123)").action(async (parentKey) => {
3381
3406
  try {
3382
- const { TestJiraCommand } = await import("./test-jira-Q2HPA522.js");
3407
+ const { TestJiraCommand } = await import("./test-jira-6NK7UHSV.js");
3383
3408
  await new TestJiraCommand().createChildIssue(parentKey);
3384
3409
  } catch (error) {
3385
3410
  logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
@@ -3388,7 +3413,7 @@ testJiraCommand.command("child-issue").description("Create a test child issue un
3388
3413
  });
3389
3414
  testJiraCommand.command("create-dep").description('Create a "Blocks" dependency between two issues').argument("<blockingKey>", "Issue key that blocks (e.g., PROJ-100)").argument("<blockedKey>", "Issue key being blocked (e.g., PROJ-200)").action(async (blockingKey, blockedKey) => {
3390
3415
  try {
3391
- const { TestJiraCommand } = await import("./test-jira-Q2HPA522.js");
3416
+ const { TestJiraCommand } = await import("./test-jira-6NK7UHSV.js");
3392
3417
  await new TestJiraCommand().createDependency(blockingKey, blockedKey);
3393
3418
  } catch (error) {
3394
3419
  logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
@@ -3397,7 +3422,7 @@ testJiraCommand.command("create-dep").description('Create a "Blocks" dependency
3397
3422
  });
3398
3423
  testJiraCommand.command("get-deps").description("Fetch and print dependencies for an issue").argument("<issueKey>", "Issue key (e.g., PROJ-123)").action(async (issueKey) => {
3399
3424
  try {
3400
- const { TestJiraCommand } = await import("./test-jira-Q2HPA522.js");
3425
+ const { TestJiraCommand } = await import("./test-jira-6NK7UHSV.js");
3401
3426
  await new TestJiraCommand().getDependencies(issueKey);
3402
3427
  } catch (error) {
3403
3428
  logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
@@ -3406,7 +3431,7 @@ testJiraCommand.command("get-deps").description("Fetch and print dependencies fo
3406
3431
  });
3407
3432
  testJiraCommand.command("remove-dep").description('Remove a "Blocks" dependency between two issues').argument("<blockingKey>", "Issue key that blocks (e.g., PROJ-100)").argument("<blockedKey>", "Issue key being blocked (e.g., PROJ-200)").action(async (blockingKey, blockedKey) => {
3408
3433
  try {
3409
- const { TestJiraCommand } = await import("./test-jira-Q2HPA522.js");
3434
+ const { TestJiraCommand } = await import("./test-jira-6NK7UHSV.js");
3410
3435
  await new TestJiraCommand().removeDependency(blockingKey, blockedKey);
3411
3436
  } catch (error) {
3412
3437
  logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
@@ -3415,54 +3440,51 @@ testJiraCommand.command("remove-dep").description('Remove a "Blocks" dependency
3415
3440
  });
3416
3441
  testJiraCommand.command("get-children").description("List child issues of a parent").argument("<issueKey>", "Parent issue key (e.g., PROJ-123)").action(async (issueKey) => {
3417
3442
  try {
3418
- const { TestJiraCommand } = await import("./test-jira-Q2HPA522.js");
3443
+ const { TestJiraCommand } = await import("./test-jira-6NK7UHSV.js");
3419
3444
  await new TestJiraCommand().getChildIssues(issueKey);
3420
3445
  } catch (error) {
3421
3446
  logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
3422
3447
  process.exit(1);
3423
3448
  }
3424
3449
  });
3425
- program.command("test-db").description("Test database provider integration and debug configuration").action(async () => {
3450
+ program.command("test-neon").description("Test Neon integration and debug configuration").action(async () => {
3451
+ var _a2;
3426
3452
  try {
3427
- const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-KQU7OX7G.js");
3428
- const { createDatabaseProviderFromSettings: createDatabaseProviderFromSettings2 } = await import("./database-helpers-PRDFNDRO.js");
3429
- logger.info("Testing Database Provider Integration\n");
3453
+ const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-SLSYEYDZ.js");
3454
+ const { createNeonProviderFromSettings: createNeonProviderFromSettings2 } = await import("./neon-helpers-LCZAN4U4.js");
3455
+ logger.info("Testing Neon Integration\n");
3430
3456
  logger.info("1. Settings Configuration:");
3431
3457
  const settingsManager = new SettingsManager2();
3432
3458
  const settings = await settingsManager.loadSettings();
3433
- logger.info("\n2. Creating database provider...");
3459
+ const neonConfig = (_a2 = settings.databaseProviders) == null ? void 0 : _a2.neon;
3460
+ logger.info(` projectId: ${(neonConfig == null ? void 0 : neonConfig.projectId) ?? "(not configured)"}`);
3461
+ logger.info(` parentBranch: ${(neonConfig == null ? void 0 : neonConfig.parentBranch) ?? "(not configured)"}`);
3462
+ logger.info("\n2. Creating NeonProvider...");
3434
3463
  try {
3435
- const provider = createDatabaseProviderFromSettings2(settings);
3436
- logger.info(` Provider: ${provider.displayName}`);
3437
- const isConfigured = provider.isConfigured();
3438
- if (isConfigured) {
3439
- logger.success(` ${provider.displayName} is configured`);
3440
- } else {
3441
- logger.warn(` ${provider.displayName} is not configured`);
3442
- }
3443
- logger.info(`
3444
- 3. Testing ${provider.displayName} CLI availability...`);
3445
- const isAvailable = await provider.isCliAvailable();
3464
+ const neonProvider = createNeonProviderFromSettings2(settings);
3465
+ logger.success(" NeonProvider created successfully");
3466
+ logger.info("\n3. Testing Neon CLI availability...");
3467
+ const isAvailable = await neonProvider.isCliAvailable();
3446
3468
  if (isAvailable) {
3447
- logger.success(` ${provider.displayName} CLI is available`);
3469
+ logger.success(" Neon CLI is available");
3448
3470
  } else {
3449
- logger.error(` ${provider.displayName} CLI not found`);
3450
- logger.info(` Install with: ${provider.installHint}`);
3471
+ logger.error(" Neon CLI not found");
3472
+ logger.info(" Install with: npm install -g @neon/cli");
3451
3473
  return;
3452
3474
  }
3453
- logger.info(`
3454
- 4. Testing ${provider.displayName} CLI authentication...`);
3455
- const isAuthenticated = await provider.isAuthenticated();
3475
+ logger.info("\n4. Testing Neon CLI authentication...");
3476
+ const isAuthenticated = await neonProvider.isAuthenticated();
3456
3477
  if (isAuthenticated) {
3457
- logger.success(` ${provider.displayName} CLI is authenticated`);
3478
+ logger.success(" Neon CLI is authenticated");
3458
3479
  } else {
3459
- logger.error(` ${provider.displayName} CLI not authenticated`);
3480
+ logger.error(" Neon CLI not authenticated");
3481
+ logger.info(" Run: neon auth");
3460
3482
  return;
3461
3483
  }
3462
- if (isConfigured) {
3484
+ if (neonConfig == null ? void 0 : neonConfig.projectId) {
3463
3485
  logger.info("\n5. Testing branch listing...");
3464
3486
  try {
3465
- const branches = await provider.listBranches();
3487
+ const branches = await neonProvider.listBranches();
3466
3488
  logger.success(` Found ${branches.length} branches:`);
3467
3489
  for (const branch of branches.slice(0, 5)) {
3468
3490
  logger.info(` - ${branch}`);
@@ -3474,18 +3496,17 @@ program.command("test-db").description("Test database provider integration and d
3474
3496
  logger.error(` Failed to list branches: ${error instanceof Error ? error.message : "Unknown error"}`);
3475
3497
  }
3476
3498
  } else {
3477
- logger.warn(`
3478
- 5. Skipping branch listing (${provider.displayName} not configured in settings)`);
3499
+ logger.warn("\n5. Skipping branch listing (Neon not configured in settings)");
3479
3500
  }
3480
3501
  } catch (error) {
3481
- logger.error(` Failed to create database provider: ${error instanceof Error ? error.message : "Unknown error"}`);
3502
+ logger.error(` Failed to create NeonProvider: ${error instanceof Error ? error.message : "Unknown error"}`);
3482
3503
  if (error instanceof Error && error.message.includes("not configured")) {
3483
- logger.info("\n This is expected if no database provider is configured.");
3484
- logger.info(" Configure databaseProviders in .iloom/settings.json to test fully.");
3504
+ logger.info("\n This is expected if Neon is not configured.");
3505
+ logger.info(" Configure databaseProviders.neon in .iloom/settings.json to test fully.");
3485
3506
  }
3486
3507
  }
3487
3508
  logger.info("\n" + "=".repeat(50));
3488
- logger.success("Database provider integration test complete!");
3509
+ logger.success("Neon integration test complete!");
3489
3510
  } catch (error) {
3490
3511
  logger.error(`Test failed: ${error instanceof Error ? error.message : "Unknown error"}`);
3491
3512
  if (error instanceof Error && error.stack) {