@iloom/cli 0.10.1 → 0.11.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 (262) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -2
  3. package/dist/{BranchNamingService-25KSZAEM.js → BranchNamingService-XBCO747L.js} +4 -4
  4. package/dist/ClaudeContextManager-SXDCWDJA.js +14 -0
  5. package/dist/ClaudeService-6E6MCGJE.js +13 -0
  6. package/dist/GitHubService-2R5GQG4K.js +12 -0
  7. package/dist/IssueTrackerFactory-XN6MQ4UN.js +14 -0
  8. package/dist/{LoomLauncher-TDLZSYG2.js → LoomLauncher-5AZU2F5I.js} +15 -12
  9. package/dist/LoomLauncher-5AZU2F5I.js.map +1 -0
  10. package/dist/MetadataManager-CMQQTFLQ.js +10 -0
  11. package/dist/ProjectCapabilityDetector-IC6NAFGY.js +11 -0
  12. package/dist/{PromptTemplateManager-YOE2SIPG.js → PromptTemplateManager-T5VTLJP3.js} +3 -3
  13. package/dist/README.md +4 -2
  14. package/dist/{SettingsManager-FNKCOZMQ.js → SettingsManager-WQ5NSGAH.js} +3 -3
  15. package/dist/SettingsMigrationManager-S6J7OHUH.js +10 -0
  16. package/dist/agents/iloom-code-reviewer.md +50 -8
  17. package/dist/agents/iloom-issue-analyze-and-plan.md +10 -0
  18. package/dist/agents/iloom-issue-analyzer.md +13 -0
  19. package/dist/agents/iloom-issue-complexity-evaluator.md +8 -1
  20. package/dist/agents/iloom-issue-enhancer.md +8 -1
  21. package/dist/agents/iloom-issue-planner.md +5 -0
  22. package/dist/build-OLS6J5KZ.js +27 -0
  23. package/dist/{chunk-WWKOVDWC.js → chunk-3GTUXW26.js} +3 -3
  24. package/dist/{chunk-4FGEGQW4.js → chunk-3RXYOBME.js} +5 -5
  25. package/dist/{chunk-HEXKPKCK.js → chunk-5LTID2AF.js} +6 -6
  26. package/dist/{chunk-G5V75JD5.js → chunk-5PNZBH6V.js} +2 -2
  27. package/dist/{chunk-SKSYYBCU.js → chunk-5UFGO4ZT.js} +24 -3
  28. package/dist/{chunk-SKSYYBCU.js.map → chunk-5UFGO4ZT.js.map} +1 -1
  29. package/dist/{chunk-E6KOWMKA.js → chunk-6YVJVUR4.js} +3 -3
  30. package/dist/{chunk-RJ3VBUFK.js → chunk-7FIXNAUO.js} +36 -7
  31. package/dist/chunk-7FIXNAUO.js.map +1 -0
  32. package/dist/{chunk-QVLPWNE3.js → chunk-7NFCGKZT.js} +3 -3
  33. package/dist/{chunk-433MOLAU.js → chunk-7OCGBJLR.js} +2 -2
  34. package/dist/{chunk-KVHIAWVT.js → chunk-ABVMUNCD.js} +8 -8
  35. package/dist/{chunk-7JDMYTFZ.js → chunk-CV47VCMQ.js} +2 -2
  36. package/dist/{chunk-7VHJNVLF.js → chunk-ET6A2JR4.js} +8 -6
  37. package/dist/chunk-ET6A2JR4.js.map +1 -0
  38. package/dist/{chunk-MORRVYPT.js → chunk-G2MNSPA4.js} +2 -2
  39. package/dist/{chunk-RSYT7MVI.js → chunk-GMDSYLI6.js} +36 -3
  40. package/dist/chunk-GMDSYLI6.js.map +1 -0
  41. package/dist/{chunk-VT4PDUYT.js → chunk-H2SSF24U.js} +284 -209
  42. package/dist/chunk-H2SSF24U.js.map +1 -0
  43. package/dist/{chunk-LLHXQS3C.js → chunk-HLDY5S4C.js} +3 -3
  44. package/dist/{chunk-BYUMEDDD.js → chunk-IDCE26KD.js} +3 -3
  45. package/dist/{chunk-OTGH2HRS.js → chunk-IR74O2F6.js} +221 -88
  46. package/dist/chunk-IR74O2F6.js.map +1 -0
  47. package/dist/{chunk-O7VL5N6S.js → chunk-K7R5QY6C.js} +2 -2
  48. package/dist/{chunk-S7PZA6IV.js → chunk-KQFIGI37.js} +5 -5
  49. package/dist/{chunk-I5T677EA.js → chunk-LE2NOUTN.js} +3 -3
  50. package/dist/{chunk-KXDRI47U.js → chunk-LHDD4JHC.js} +6 -6
  51. package/dist/{chunk-5FJWO4IT.js → chunk-LL6TOX3G.js} +9 -9
  52. package/dist/{chunk-YQ57ORTV.js → chunk-NCPZYQ4B.js} +2 -2
  53. package/dist/{chunk-EWJFUFPT.js → chunk-NDSGJZI2.js} +2 -2
  54. package/dist/{chunk-VG45TUYK.js → chunk-NH3QZYE5.js} +2 -2
  55. package/dist/{chunk-KKV5WH5M.js → chunk-NN5RYWXA.js} +7 -7
  56. package/dist/chunk-NOMQ5RFG.js +118 -0
  57. package/dist/chunk-NOMQ5RFG.js.map +1 -0
  58. package/dist/{chunk-KIK2ZFAL.js → chunk-QNHZM5ZV.js} +3 -3
  59. package/dist/{chunk-EVPZFV3K.js → chunk-QR4FU53I.js} +8 -8
  60. package/dist/{chunk-FXDYIV3K.js → chunk-QVAA5KHK.js} +2 -2
  61. package/dist/{chunk-NGJZ4TOU.js → chunk-RBYTXYGD.js} +2 -2
  62. package/dist/{chunk-SWSJWA2S.js → chunk-RMLADZRY.js} +12 -9
  63. package/dist/chunk-RMLADZRY.js.map +1 -0
  64. package/dist/{chunk-CVCTIDDK.js → chunk-RVI6C2H5.js} +5 -5
  65. package/dist/{chunk-Q7POFB5Q.js → chunk-SQYHPBFP.js} +2 -2
  66. package/dist/{chunk-GRISNU6G.js → chunk-TEJAGQX2.js} +64 -40
  67. package/dist/chunk-TEJAGQX2.js.map +1 -0
  68. package/dist/{chunk-QZWEJVWV.js → chunk-TZNNJLGT.js} +6 -6
  69. package/dist/{chunk-63QWFWH3.js → chunk-UDCI3QTS.js} +2 -2
  70. package/dist/{chunk-UKBAJ2QQ.js → chunk-UHIBKD73.js} +7 -7
  71. package/dist/{chunk-WXIM2WS7.js → chunk-V4STTBQD.js} +10 -10
  72. package/dist/{chunk-P4O6EH46.js → chunk-VMZG66UV.js} +5 -5
  73. package/dist/{chunk-C6HNNJIV.js → chunk-VNYWBHKR.js} +34 -4
  74. package/dist/chunk-VNYWBHKR.js.map +1 -0
  75. package/dist/{chunk-5RPBYK5Q.js → chunk-VUUN3KE4.js} +10 -10
  76. package/dist/chunk-VUUN3KE4.js.map +1 -0
  77. package/dist/{chunk-UUEW5KWB.js → chunk-WG4MLJ6J.js} +15 -10
  78. package/dist/chunk-WG4MLJ6J.js.map +1 -0
  79. package/dist/{chunk-ZNMPGMHY.js → chunk-XFQGI2E3.js} +66 -43
  80. package/dist/chunk-XFQGI2E3.js.map +1 -0
  81. package/dist/{chunk-LUKXJSRI.js → chunk-XXFSOVL3.js} +4 -4
  82. package/dist/{chunk-UR5DGNUO.js → chunk-Y3RX7LZT.js} +11 -8
  83. package/dist/chunk-Y3RX7LZT.js.map +1 -0
  84. package/dist/{chunk-KB64WNBZ.js → chunk-YRCEOQPX.js} +4 -2
  85. package/dist/chunk-YRCEOQPX.js.map +1 -0
  86. package/dist/{chunk-6MLEBAYZ.js → chunk-ZAXRQLK3.js} +2 -2
  87. package/dist/{claude-7GGEWVEM.js → claude-ONQTDWV3.js} +4 -4
  88. package/dist/{cleanup-6PVAC4NI.js → cleanup-YOM6PQCN.js} +35 -34
  89. package/dist/{cleanup-6PVAC4NI.js.map → cleanup-YOM6PQCN.js.map} +1 -1
  90. package/dist/cli.js +235 -147
  91. package/dist/cli.js.map +1 -1
  92. package/dist/{color-4TJ4P5EY.js → color-VQD52LOI.js} +3 -3
  93. package/dist/{commit-FZR5XDQG.js → commit-DC2Q5CDY.js} +15 -15
  94. package/dist/{compile-7ALJHZ4N.js → compile-4NCQECKE.js} +11 -11
  95. package/dist/{contribute-5GKLK3BQ.js → contribute-M5UWXCAV.js} +12 -12
  96. package/dist/darwin-5BHWRJ7D.js +10 -0
  97. package/dist/{dev-server-7SMIB7OF.js → dev-server-CYRP6M73.js} +19 -19
  98. package/dist/{feedback-G2GJFN2F.js → feedback-BMAZGKRW.js} +16 -16
  99. package/dist/{git-GTLKAZRJ.js → git-BXUD6CL5.js} +6 -6
  100. package/dist/ignite-IO4LXVXJ.js +35 -0
  101. package/dist/index.d.ts +39 -65
  102. package/dist/index.js +637 -110
  103. package/dist/index.js.map +1 -1
  104. package/dist/{init-32YOKXRL.js → init-CI43GJHV.js} +17 -17
  105. package/dist/{init-32YOKXRL.js.map → init-CI43GJHV.js.map} +1 -1
  106. package/dist/install-deps-SRTM5U7D.js +43 -0
  107. package/dist/install-deps-SRTM5U7D.js.map +1 -0
  108. package/dist/{installation-detector-MMFWLJYN.js → installation-detector-HF6QN7KP.js} +3 -3
  109. package/dist/{issues-4UUAQ5K6.js → issues-DMRQJH7E.js} +15 -15
  110. package/dist/lint-BSWRMGPZ.js +27 -0
  111. package/dist/linux-RYLOP2LY.js +103 -0
  112. package/dist/linux-RYLOP2LY.js.map +1 -0
  113. package/dist/mcp/chunk-PIIRD4LO.js +373 -0
  114. package/dist/mcp/chunk-PIIRD4LO.js.map +1 -0
  115. package/dist/mcp/darwin-3JFFE3W2.js +10 -0
  116. package/dist/mcp/issue-management-server.js +23 -127
  117. package/dist/mcp/issue-management-server.js.map +1 -1
  118. package/dist/mcp/linux-JBVS4R3A.js +103 -0
  119. package/dist/mcp/linux-JBVS4R3A.js.map +1 -0
  120. package/dist/mcp/tmux-RYBLEHUZ.js +156 -0
  121. package/dist/mcp/tmux-RYBLEHUZ.js.map +1 -0
  122. package/dist/mcp/wsl-4QZIQLLE.js +78 -0
  123. package/dist/mcp/wsl-4QZIQLLE.js.map +1 -0
  124. package/dist/neon-helpers-HWIYRKOW.js +11 -0
  125. package/dist/{open-FXWW3VI4.js → open-2Y7GSUTJ.js} +19 -19
  126. package/dist/{plan-RQ5FPIGF.js → plan-SWFPLNJE.js} +47 -46
  127. package/dist/{plan-RQ5FPIGF.js.map → plan-SWFPLNJE.js.map} +1 -1
  128. package/dist/{projects-2UOXFLNZ.js → projects-IUSUXD5D.js} +6 -6
  129. package/dist/{prompt-ONNPSNKM.js → prompt-7LZB4PAT.js} +3 -3
  130. package/dist/prompts/init-prompt.txt +56 -107
  131. package/dist/prompts/issue-prompt.txt +57 -11
  132. package/dist/prompts/pr-prompt.txt +154 -4
  133. package/dist/prompts/regular-prompt.txt +20 -3
  134. package/dist/prompts/swarm-orchestrator-prompt.txt +134 -14
  135. package/dist/{rebase-6NVLX5V7.js → rebase-S6OHAOOF.js} +12 -12
  136. package/dist/{recap-OMBOKJST.js → recap-GGVCG5VH.js} +9 -9
  137. package/dist/{remote-IJAMOEAP.js → remote-MZTFHHTU.js} +3 -3
  138. package/dist/remote-MZTFHHTU.js.map +1 -0
  139. package/dist/{run-BBXLRIZB.js → run-ST3FR75O.js} +19 -19
  140. package/dist/schema/settings.schema.json +8 -49
  141. package/dist/{shell-RF7LTND5.js → shell-W4SBQPTE.js} +8 -8
  142. package/dist/{summary-WTQZ7XG2.js → summary-P2JCIIJO.js} +17 -17
  143. package/dist/test-6JH4FE2X.js +27 -0
  144. package/dist/{test-git-XM4TM65W.js → test-git-2KFFAQ6B.js} +6 -6
  145. package/dist/{test-jira-LDTOYFSD.js → test-jira-FKDKG6CD.js} +8 -8
  146. package/dist/{test-prefix-GBO37XCN.js → test-prefix-GP2DAX37.js} +11 -11
  147. package/dist/test-prefix-GP2DAX37.js.map +1 -0
  148. package/dist/{test-tabs-D3POYOJ5.js → test-tabs-YDWMWTVA.js} +3 -3
  149. package/dist/{test-webserver-NZ3JTVLL.js → test-webserver-QI3QQFZ3.js} +8 -8
  150. package/dist/tmux-7ZTA3BDI.js +156 -0
  151. package/dist/tmux-7ZTA3BDI.js.map +1 -0
  152. package/dist/{update-HJKDYA3F.js → update-XLW7R7FL.js} +4 -4
  153. package/dist/{update-notifier-LBAUOOLM.js → update-notifier-EYLAXZAA.js} +3 -3
  154. package/dist/update-notifier-EYLAXZAA.js.map +1 -0
  155. package/dist/{vscode-6XUGHJKL.js → vscode-TOGE5N67.js} +13 -13
  156. package/dist/{vscode-announcement-EQ2SKK3T.js → vscode-announcement-NIX7O2MG.js} +3 -3
  157. package/dist/wsl-Y4GUTOQ7.js +78 -0
  158. package/dist/wsl-Y4GUTOQ7.js.map +1 -0
  159. package/package.json +4 -2
  160. package/dist/ClaudeContextManager-66GR4BGM.js +0 -14
  161. package/dist/ClaudeService-7KM5NA5Z.js +0 -13
  162. package/dist/GitHubService-MEHKHUQP.js +0 -12
  163. package/dist/IssueTrackerFactory-NG53YX5S.js +0 -14
  164. package/dist/LoomLauncher-TDLZSYG2.js.map +0 -1
  165. package/dist/MetadataManager-5QZSTKNN.js +0 -10
  166. package/dist/ProjectCapabilityDetector-5KSYUTBJ.js +0 -11
  167. package/dist/SettingsMigrationManager-LEBMJP3B.js +0 -10
  168. package/dist/build-VHGEMXBA.js +0 -27
  169. package/dist/chunk-5RPBYK5Q.js.map +0 -1
  170. package/dist/chunk-7VHJNVLF.js.map +0 -1
  171. package/dist/chunk-C6HNNJIV.js.map +0 -1
  172. package/dist/chunk-GRISNU6G.js.map +0 -1
  173. package/dist/chunk-KB64WNBZ.js.map +0 -1
  174. package/dist/chunk-OTGH2HRS.js.map +0 -1
  175. package/dist/chunk-RJ3VBUFK.js.map +0 -1
  176. package/dist/chunk-RSYT7MVI.js.map +0 -1
  177. package/dist/chunk-SWSJWA2S.js.map +0 -1
  178. package/dist/chunk-UR5DGNUO.js.map +0 -1
  179. package/dist/chunk-UUEW5KWB.js.map +0 -1
  180. package/dist/chunk-VT4PDUYT.js.map +0 -1
  181. package/dist/chunk-ZNMPGMHY.js.map +0 -1
  182. package/dist/ignite-H2O5Y5A2.js +0 -34
  183. package/dist/lint-AAN2NZWG.js +0 -27
  184. package/dist/neon-helpers-CQN2PB4S.js +0 -11
  185. package/dist/test-SGO6I5Z7.js +0 -27
  186. package/dist/test-prefix-GBO37XCN.js.map +0 -1
  187. /package/dist/{BranchNamingService-25KSZAEM.js.map → BranchNamingService-XBCO747L.js.map} +0 -0
  188. /package/dist/{ClaudeContextManager-66GR4BGM.js.map → ClaudeContextManager-SXDCWDJA.js.map} +0 -0
  189. /package/dist/{ClaudeService-7KM5NA5Z.js.map → ClaudeService-6E6MCGJE.js.map} +0 -0
  190. /package/dist/{GitHubService-MEHKHUQP.js.map → GitHubService-2R5GQG4K.js.map} +0 -0
  191. /package/dist/{IssueTrackerFactory-NG53YX5S.js.map → IssueTrackerFactory-XN6MQ4UN.js.map} +0 -0
  192. /package/dist/{MetadataManager-5QZSTKNN.js.map → MetadataManager-CMQQTFLQ.js.map} +0 -0
  193. /package/dist/{ProjectCapabilityDetector-5KSYUTBJ.js.map → ProjectCapabilityDetector-IC6NAFGY.js.map} +0 -0
  194. /package/dist/{PromptTemplateManager-YOE2SIPG.js.map → PromptTemplateManager-T5VTLJP3.js.map} +0 -0
  195. /package/dist/{SettingsManager-FNKCOZMQ.js.map → SettingsManager-WQ5NSGAH.js.map} +0 -0
  196. /package/dist/{SettingsMigrationManager-LEBMJP3B.js.map → SettingsMigrationManager-S6J7OHUH.js.map} +0 -0
  197. /package/dist/{build-VHGEMXBA.js.map → build-OLS6J5KZ.js.map} +0 -0
  198. /package/dist/{chunk-WWKOVDWC.js.map → chunk-3GTUXW26.js.map} +0 -0
  199. /package/dist/{chunk-4FGEGQW4.js.map → chunk-3RXYOBME.js.map} +0 -0
  200. /package/dist/{chunk-HEXKPKCK.js.map → chunk-5LTID2AF.js.map} +0 -0
  201. /package/dist/{chunk-G5V75JD5.js.map → chunk-5PNZBH6V.js.map} +0 -0
  202. /package/dist/{chunk-E6KOWMKA.js.map → chunk-6YVJVUR4.js.map} +0 -0
  203. /package/dist/{chunk-QVLPWNE3.js.map → chunk-7NFCGKZT.js.map} +0 -0
  204. /package/dist/{chunk-433MOLAU.js.map → chunk-7OCGBJLR.js.map} +0 -0
  205. /package/dist/{chunk-KVHIAWVT.js.map → chunk-ABVMUNCD.js.map} +0 -0
  206. /package/dist/{chunk-7JDMYTFZ.js.map → chunk-CV47VCMQ.js.map} +0 -0
  207. /package/dist/{chunk-MORRVYPT.js.map → chunk-G2MNSPA4.js.map} +0 -0
  208. /package/dist/{chunk-LLHXQS3C.js.map → chunk-HLDY5S4C.js.map} +0 -0
  209. /package/dist/{chunk-BYUMEDDD.js.map → chunk-IDCE26KD.js.map} +0 -0
  210. /package/dist/{chunk-O7VL5N6S.js.map → chunk-K7R5QY6C.js.map} +0 -0
  211. /package/dist/{chunk-S7PZA6IV.js.map → chunk-KQFIGI37.js.map} +0 -0
  212. /package/dist/{chunk-I5T677EA.js.map → chunk-LE2NOUTN.js.map} +0 -0
  213. /package/dist/{chunk-KXDRI47U.js.map → chunk-LHDD4JHC.js.map} +0 -0
  214. /package/dist/{chunk-5FJWO4IT.js.map → chunk-LL6TOX3G.js.map} +0 -0
  215. /package/dist/{chunk-YQ57ORTV.js.map → chunk-NCPZYQ4B.js.map} +0 -0
  216. /package/dist/{chunk-EWJFUFPT.js.map → chunk-NDSGJZI2.js.map} +0 -0
  217. /package/dist/{chunk-VG45TUYK.js.map → chunk-NH3QZYE5.js.map} +0 -0
  218. /package/dist/{chunk-KKV5WH5M.js.map → chunk-NN5RYWXA.js.map} +0 -0
  219. /package/dist/{chunk-KIK2ZFAL.js.map → chunk-QNHZM5ZV.js.map} +0 -0
  220. /package/dist/{chunk-EVPZFV3K.js.map → chunk-QR4FU53I.js.map} +0 -0
  221. /package/dist/{chunk-FXDYIV3K.js.map → chunk-QVAA5KHK.js.map} +0 -0
  222. /package/dist/{chunk-NGJZ4TOU.js.map → chunk-RBYTXYGD.js.map} +0 -0
  223. /package/dist/{chunk-CVCTIDDK.js.map → chunk-RVI6C2H5.js.map} +0 -0
  224. /package/dist/{chunk-Q7POFB5Q.js.map → chunk-SQYHPBFP.js.map} +0 -0
  225. /package/dist/{chunk-QZWEJVWV.js.map → chunk-TZNNJLGT.js.map} +0 -0
  226. /package/dist/{chunk-63QWFWH3.js.map → chunk-UDCI3QTS.js.map} +0 -0
  227. /package/dist/{chunk-UKBAJ2QQ.js.map → chunk-UHIBKD73.js.map} +0 -0
  228. /package/dist/{chunk-WXIM2WS7.js.map → chunk-V4STTBQD.js.map} +0 -0
  229. /package/dist/{chunk-P4O6EH46.js.map → chunk-VMZG66UV.js.map} +0 -0
  230. /package/dist/{chunk-LUKXJSRI.js.map → chunk-XXFSOVL3.js.map} +0 -0
  231. /package/dist/{chunk-6MLEBAYZ.js.map → chunk-ZAXRQLK3.js.map} +0 -0
  232. /package/dist/{claude-7GGEWVEM.js.map → claude-ONQTDWV3.js.map} +0 -0
  233. /package/dist/{color-4TJ4P5EY.js.map → color-VQD52LOI.js.map} +0 -0
  234. /package/dist/{commit-FZR5XDQG.js.map → commit-DC2Q5CDY.js.map} +0 -0
  235. /package/dist/{compile-7ALJHZ4N.js.map → compile-4NCQECKE.js.map} +0 -0
  236. /package/dist/{contribute-5GKLK3BQ.js.map → contribute-M5UWXCAV.js.map} +0 -0
  237. /package/dist/{git-GTLKAZRJ.js.map → darwin-5BHWRJ7D.js.map} +0 -0
  238. /package/dist/{dev-server-7SMIB7OF.js.map → dev-server-CYRP6M73.js.map} +0 -0
  239. /package/dist/{feedback-G2GJFN2F.js.map → feedback-BMAZGKRW.js.map} +0 -0
  240. /package/dist/{ignite-H2O5Y5A2.js.map → git-BXUD6CL5.js.map} +0 -0
  241. /package/dist/{installation-detector-MMFWLJYN.js.map → ignite-IO4LXVXJ.js.map} +0 -0
  242. /package/dist/{neon-helpers-CQN2PB4S.js.map → installation-detector-HF6QN7KP.js.map} +0 -0
  243. /package/dist/{issues-4UUAQ5K6.js.map → issues-DMRQJH7E.js.map} +0 -0
  244. /package/dist/{lint-AAN2NZWG.js.map → lint-BSWRMGPZ.js.map} +0 -0
  245. /package/dist/{prompt-ONNPSNKM.js.map → mcp/darwin-3JFFE3W2.js.map} +0 -0
  246. /package/dist/{remote-IJAMOEAP.js.map → neon-helpers-HWIYRKOW.js.map} +0 -0
  247. /package/dist/{open-FXWW3VI4.js.map → open-2Y7GSUTJ.js.map} +0 -0
  248. /package/dist/{projects-2UOXFLNZ.js.map → projects-IUSUXD5D.js.map} +0 -0
  249. /package/dist/{update-notifier-LBAUOOLM.js.map → prompt-7LZB4PAT.js.map} +0 -0
  250. /package/dist/{rebase-6NVLX5V7.js.map → rebase-S6OHAOOF.js.map} +0 -0
  251. /package/dist/{recap-OMBOKJST.js.map → recap-GGVCG5VH.js.map} +0 -0
  252. /package/dist/{run-BBXLRIZB.js.map → run-ST3FR75O.js.map} +0 -0
  253. /package/dist/{shell-RF7LTND5.js.map → shell-W4SBQPTE.js.map} +0 -0
  254. /package/dist/{summary-WTQZ7XG2.js.map → summary-P2JCIIJO.js.map} +0 -0
  255. /package/dist/{test-SGO6I5Z7.js.map → test-6JH4FE2X.js.map} +0 -0
  256. /package/dist/{test-git-XM4TM65W.js.map → test-git-2KFFAQ6B.js.map} +0 -0
  257. /package/dist/{test-jira-LDTOYFSD.js.map → test-jira-FKDKG6CD.js.map} +0 -0
  258. /package/dist/{test-tabs-D3POYOJ5.js.map → test-tabs-YDWMWTVA.js.map} +0 -0
  259. /package/dist/{test-webserver-NZ3JTVLL.js.map → test-webserver-QI3QQFZ3.js.map} +0 -0
  260. /package/dist/{update-HJKDYA3F.js.map → update-XLW7R7FL.js.map} +0 -0
  261. /package/dist/{vscode-6XUGHJKL.js.map → vscode-TOGE5N67.js.map} +0 -0
  262. /package/dist/{vscode-announcement-EQ2SKK3T.js.map → vscode-announcement-NIX7O2MG.js.map} +0 -0
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  extractIssueNumber
4
- } from "./chunk-4FGEGQW4.js";
4
+ } from "./chunk-3RXYOBME.js";
5
5
  import {
6
6
  extractPort,
7
7
  findEnvFileContainingVariable,
8
8
  logger,
9
9
  parseEnvFile
10
- } from "./chunk-VT4PDUYT.js";
10
+ } from "./chunk-H2SSF24U.js";
11
11
 
12
12
  // src/utils/port.ts
13
13
  import { createHash } from "crypto";
@@ -108,4 +108,4 @@ export {
108
108
  calculatePortFromIdentifier,
109
109
  getWorkspacePort
110
110
  };
111
- //# sourceMappingURL=chunk-LLHXQS3C.js.map
111
+ //# sourceMappingURL=chunk-HLDY5S4C.js.map
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  promptConfirmation
4
- } from "./chunk-7JDMYTFZ.js";
4
+ } from "./chunk-CV47VCMQ.js";
5
5
  import {
6
6
  logger
7
- } from "./chunk-VT4PDUYT.js";
7
+ } from "./chunk-H2SSF24U.js";
8
8
 
9
9
  // src/lib/SettingsMigrationManager.ts
10
10
  import fs from "fs-extra";
@@ -144,4 +144,4 @@ var SettingsMigrationManager = class {
144
144
  export {
145
145
  SettingsMigrationManager
146
146
  };
147
- //# sourceMappingURL=chunk-BYUMEDDD.js.map
147
+ //# sourceMappingURL=chunk-IDCE26KD.js.map
@@ -2,71 +2,77 @@
2
2
  import {
3
3
  buildDependencyMap,
4
4
  fetchChildIssueDetails
5
- } from "./chunk-QZWEJVWV.js";
5
+ } from "./chunk-TZNNJLGT.js";
6
+ import {
7
+ preAcceptClaudeTrust
8
+ } from "./chunk-NOMQ5RFG.js";
9
+ import {
10
+ generateAndWriteMcpConfigFile,
11
+ generateIssueManagementMcpConfig,
12
+ generateRecapMcpConfig,
13
+ readRecapFile,
14
+ resolveRecapFilePath,
15
+ writeRecapFile
16
+ } from "./chunk-5UFGO4ZT.js";
6
17
  import {
7
18
  IssueManagementProviderFactory
8
- } from "./chunk-SWSJWA2S.js";
19
+ } from "./chunk-RMLADZRY.js";
9
20
  import {
10
21
  getWorkspacePort
11
- } from "./chunk-LLHXQS3C.js";
22
+ } from "./chunk-HLDY5S4C.js";
12
23
  import {
13
24
  installDependencies
14
- } from "./chunk-WWKOVDWC.js";
25
+ } from "./chunk-3GTUXW26.js";
15
26
  import {
16
- TelemetryService
17
- } from "./chunk-RSYT7MVI.js";
27
+ extractSettingsOverrides
28
+ } from "./chunk-GYCR2LOU.js";
18
29
  import {
19
- GitWorktreeManager
20
- } from "./chunk-I5T677EA.js";
30
+ TelemetryService
31
+ } from "./chunk-GMDSYLI6.js";
21
32
  import {
22
33
  FirstRunManager
23
- } from "./chunk-Q7POFB5Q.js";
24
- import {
25
- generateAndWriteMcpConfigFile,
26
- generateIssueManagementMcpConfig,
27
- generateRecapMcpConfig
28
- } from "./chunk-SKSYYBCU.js";
34
+ } from "./chunk-SQYHPBFP.js";
29
35
  import {
30
36
  AgentManager
31
- } from "./chunk-C6HNNJIV.js";
37
+ } from "./chunk-VNYWBHKR.js";
38
+ import {
39
+ GitWorktreeManager
40
+ } from "./chunk-LE2NOUTN.js";
41
+ import {
42
+ IssueTrackerFactory
43
+ } from "./chunk-UHIBKD73.js";
32
44
  import {
33
45
  launchClaude
34
- } from "./chunk-UR5DGNUO.js";
46
+ } from "./chunk-Y3RX7LZT.js";
35
47
  import {
36
48
  PromptTemplateManager,
37
49
  buildReviewTemplateVariables
38
- } from "./chunk-UUEW5KWB.js";
39
- import {
40
- extractSettingsOverrides
41
- } from "./chunk-GYCR2LOU.js";
50
+ } from "./chunk-WG4MLJ6J.js";
42
51
  import {
43
52
  extractIssueNumber,
44
53
  findMainWorktreePathWithSettings,
45
54
  generateWorktreePath,
46
55
  getWorktreeRoot,
47
56
  isValidGitRepo
48
- } from "./chunk-4FGEGQW4.js";
57
+ } from "./chunk-3RXYOBME.js";
49
58
  import {
50
59
  SettingsManager
51
- } from "./chunk-7VHJNVLF.js";
60
+ } from "./chunk-ET6A2JR4.js";
52
61
  import {
53
62
  MetadataManager
54
- } from "./chunk-KB64WNBZ.js";
55
- import {
56
- IssueTrackerFactory
57
- } from "./chunk-UKBAJ2QQ.js";
63
+ } from "./chunk-YRCEOQPX.js";
58
64
  import {
59
65
  getLogger,
60
66
  withLogger
61
- } from "./chunk-6MLEBAYZ.js";
67
+ } from "./chunk-ZAXRQLK3.js";
62
68
  import {
63
69
  createStderrLogger,
64
70
  logger
65
- } from "./chunk-VT4PDUYT.js";
71
+ } from "./chunk-H2SSF24U.js";
66
72
 
67
73
  // src/commands/ignite.ts
68
- import path4 from "path";
69
- import fs4 from "fs-extra";
74
+ import path5 from "path";
75
+ import fs5 from "fs-extra";
70
76
  import { readFile } from "fs/promises";
71
77
 
72
78
  // src/lib/ClaudeHookManager.ts
@@ -318,6 +324,11 @@ var SwarmSetupService = class {
318
324
  createBranch: true,
319
325
  baseBranch: epicBranch
320
326
  });
327
+ try {
328
+ await preAcceptClaudeTrust(childWorktreePath);
329
+ } catch (error) {
330
+ getLogger().warn(`Failed to pre-accept Claude trust for child worktree: ${error instanceof Error ? error.message : String(error)}`);
331
+ }
321
332
  const metadataInput = {
322
333
  description: child.title,
323
334
  branchName: childBranch,
@@ -484,11 +495,12 @@ var SwarmSetupService = class {
484
495
  const variables = {
485
496
  SWARM_MODE: true,
486
497
  ONE_SHOT_MODE: true,
498
+ COMPLEXITY_OVERRIDE: "simple",
487
499
  EPIC_WORKTREE_PATH: epicWorktreePath,
488
500
  ISSUE_PREFIX: issuePrefix,
489
501
  SWARM_SUB_AGENT_TIMEOUT_MS: subAgentTimeoutMs,
490
502
  ...agentMetadata && { SWARM_AGENT_METADATA: JSON.stringify(agentMetadata) },
491
- ...buildReviewTemplateVariables(settings == null ? void 0 : settings.agents)
503
+ ...buildReviewTemplateVariables(true, settings == null ? void 0 : settings.agents)
492
504
  };
493
505
  const agentBody = await this.templateManager.getPrompt("issue", variables);
494
506
  const workerModel = ((_e = (_d = settings == null ? void 0 : settings.agents) == null ? void 0 : _d["iloom-swarm-worker"]) == null ? void 0 : _e.model) ?? "opus";
@@ -621,6 +633,51 @@ async function detectProjectLanguage(projectPath) {
621
633
  }
622
634
  }
623
635
 
636
+ // src/utils/system-prompt-writer.ts
637
+ import path4 from "path";
638
+ import fs4 from "fs-extra";
639
+ async function prepareSystemPromptForPlatform(systemPrompt, workspacePath, platform = process.platform) {
640
+ if (platform === "darwin" || platform === "linux") {
641
+ return { appendSystemPrompt: systemPrompt };
642
+ }
643
+ const claudeDir = path4.join(workspacePath, ".claude");
644
+ const promptFilePath = path4.join(claudeDir, "iloom-system-prompt.md");
645
+ const pluginDir = path4.join(claudeDir, "iloom-plugin");
646
+ await fs4.ensureDir(claudeDir);
647
+ await fs4.writeFile(promptFilePath, systemPrompt, "utf-8");
648
+ await createSessionStartPlugin(pluginDir, promptFilePath);
649
+ return {
650
+ pluginDir,
651
+ initialPromptOverride: "/clear"
652
+ };
653
+ }
654
+ async function createSessionStartPlugin(pluginDir, promptFilePath) {
655
+ await fs4.ensureDir(pluginDir);
656
+ const runnerScript = `process.stdout.write(require('fs').readFileSync(${JSON.stringify(promptFilePath)}, 'utf-8'));`;
657
+ await fs4.writeFile(path4.join(pluginDir, "runner.js"), runnerScript, "utf-8");
658
+ const portableRunnerPath = path4.join(pluginDir, "runner.js").replace(/\\/g, "/");
659
+ const hooksConfig = {
660
+ hooks: {
661
+ SessionStart: [
662
+ {
663
+ matcher: "*",
664
+ hooks: [
665
+ {
666
+ type: "command",
667
+ command: `node "${portableRunnerPath}"`
668
+ }
669
+ ]
670
+ }
671
+ ]
672
+ }
673
+ };
674
+ await fs4.writeFile(
675
+ path4.join(pluginDir, "hooks.json"),
676
+ JSON.stringify(hooksConfig, null, 2),
677
+ "utf-8"
678
+ );
679
+ }
680
+
624
681
  // src/commands/ignite.ts
625
682
  var WorktreeValidationError = class extends Error {
626
683
  constructor(message, suggestion) {
@@ -672,21 +729,22 @@ var IgniteCommand = class {
672
729
  * @param printOptions - Print mode options for headless/CI execution
673
730
  * @param skipCleanup - Skip cleanup after execution
674
731
  * @param workspacePath - Optional explicit workspace path for programmatic invocation (avoids process.chdir())
732
+ * @param complexity - Override complexity evaluation (session-only, takes priority over metadata)
675
733
  */
676
- async execute(oneShot, printOptions, skipCleanup, workspacePath) {
734
+ async execute(oneShot, printOptions, skipCleanup, workspacePath, complexity) {
677
735
  var _a, _b;
678
736
  this.printOptions = printOptions;
679
737
  const isJsonMode = (((_a = this.printOptions) == null ? void 0 : _a.json) ?? false) || (((_b = this.printOptions) == null ? void 0 : _b.jsonStream) ?? false);
680
738
  if (isJsonMode) {
681
739
  const jsonLogger = createStderrLogger();
682
- return withLogger(jsonLogger, () => this.executeInternal(oneShot, skipCleanup, workspacePath));
740
+ return withLogger(jsonLogger, () => this.executeInternal(oneShot, skipCleanup, workspacePath, complexity));
683
741
  }
684
- return this.executeInternal(oneShot, skipCleanup, workspacePath);
742
+ return this.executeInternal(oneShot, skipCleanup, workspacePath, complexity);
685
743
  }
686
744
  /**
687
745
  * Internal execution method (separated for withLogger wrapping)
688
746
  */
689
- async executeInternal(oneShot, skipCleanup, workspacePath) {
747
+ async executeInternal(oneShot, skipCleanup, workspacePath, complexity) {
690
748
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
691
749
  process.env.ILOOM = "1";
692
750
  try {
@@ -723,6 +781,19 @@ var IgniteCommand = class {
723
781
  const storedOneShot = (metadata == null ? void 0 : metadata.oneShot) ?? "default";
724
782
  const isHeadlessForOneShot = ((_c = this.printOptions) == null ? void 0 : _c.print) ?? false;
725
783
  const effectiveOneShot = isHeadlessForOneShot ? "noReview" : oneShot ?? storedOneShot;
784
+ const effectiveComplexity = complexity ?? (metadata == null ? void 0 : metadata.complexity) ?? void 0;
785
+ if (effectiveComplexity) {
786
+ try {
787
+ const recapFilePath = resolveRecapFilePath(context.workspacePath);
788
+ const recap = await readRecapFile(recapFilePath);
789
+ if (!recap.complexity) {
790
+ recap.complexity = { level: effectiveComplexity, reason: "Overridden via CLI flag", timestamp: (/* @__PURE__ */ new Date()).toISOString() };
791
+ await writeRecapFile(recapFilePath, recap);
792
+ }
793
+ } catch (error) {
794
+ logger.debug(`Failed to set recap complexity: ${error instanceof Error ? error.message : error}`);
795
+ }
796
+ }
726
797
  if (!this.settings) {
727
798
  const cliOverrides = extractSettingsOverrides();
728
799
  this.settings = await this.settingsManager.loadSettings(void 0, cliOverrides);
@@ -763,7 +834,7 @@ var IgniteCommand = class {
763
834
  return;
764
835
  }
765
836
  }
766
- const variables = this.buildTemplateVariables(context, effectiveOneShot, draftPrNumber, draftPrUrl);
837
+ const variables = this.buildTemplateVariables(context, effectiveOneShot, draftPrNumber, draftPrUrl, effectiveComplexity);
767
838
  if (isFirstRun) {
768
839
  variables.FIRST_TIME_USER = true;
769
840
  variables.README_CONTENT = await this.loadReadmeContent();
@@ -843,7 +914,7 @@ var IgniteCommand = class {
843
914
  "mcp__recap__get_loom_state"
844
915
  ];
845
916
  allowedTools = context.type === "pr" ? [...baseTools, "mcp__issue_management__get_pr", "mcp__issue_management__get_review_comments", "mcp__recap__set_goal"] : baseTools;
846
- disallowedTools = ["Bash(gh api:*), Bash(gh issue comment:*)"];
917
+ disallowedTools = context.type === "pr" ? ["Bash(gh issue comment:*)"] : ["Bash(gh api:*)", "Bash(gh issue comment:*)"];
847
918
  logger.debug("Configured tool filtering for issue/PR workflow", { allowedTools, disallowedTools });
848
919
  } catch (error) {
849
920
  logger.warn(`Failed to generate MCP config: ${error instanceof Error ? error.message : "Unknown error"}`);
@@ -885,11 +956,21 @@ var IgniteCommand = class {
885
956
  variables,
886
957
  ["*.md", "!iloom-framework-detector.md"]
887
958
  );
888
- agents = this.agentManager.formatForCli(loadedAgents);
889
- logger.debug("Loaded agent configurations", {
890
- agentCount: Object.keys(agents).length,
891
- agentNames: Object.keys(agents)
892
- });
959
+ if (process.platform === "darwin") {
960
+ agents = this.agentManager.formatForCli(loadedAgents);
961
+ logger.debug("Loaded agent configurations for CLI", {
962
+ agentCount: Object.keys(agents).length,
963
+ agentNames: Object.keys(agents)
964
+ });
965
+ } else {
966
+ const agentsDir = path5.join(context.workspacePath, ".claude", "agents");
967
+ const rendered = await this.agentManager.renderAgentsToDisk(loadedAgents, agentsDir);
968
+ logger.debug("Rendered agent files to disk for auto-discovery", {
969
+ agentCount: rendered.length,
970
+ agentNames: rendered,
971
+ targetDir: agentsDir
972
+ });
973
+ }
893
974
  } catch (error) {
894
975
  logger.warn(`Failed to load agents: ${error instanceof Error ? error.message : "Unknown error"}`);
895
976
  }
@@ -900,10 +981,21 @@ var IgniteCommand = class {
900
981
  workspacePath: context.workspacePath,
901
982
  hasMcpConfig: !!mcpConfig
902
983
  });
984
+ try {
985
+ await preAcceptClaudeTrust(context.workspacePath);
986
+ } catch (error) {
987
+ logger.warn(`Failed to pre-accept Claude trust: ${error instanceof Error ? error.message : String(error)}`);
988
+ }
903
989
  logger.info(isHeadless ? "\u2728 Launching Claude in headless mode..." : "\u2728 Launching Claude in current terminal...");
904
- const claudeResult = await launchClaude(userPrompt, {
990
+ const systemPromptConfig = await prepareSystemPromptForPlatform(
991
+ systemInstructions,
992
+ context.workspacePath
993
+ );
994
+ const effectiveUserPrompt = systemPromptConfig.initialPromptOverride ?? userPrompt;
995
+ const claudeResult = await launchClaude(effectiveUserPrompt, {
905
996
  ...claudeOptions,
906
- appendSystemPrompt: systemInstructions,
997
+ ...systemPromptConfig.appendSystemPrompt && { appendSystemPrompt: systemPromptConfig.appendSystemPrompt },
998
+ ...systemPromptConfig.pluginDir && { pluginDir: systemPromptConfig.pluginDir },
907
999
  ...mcpConfig && { mcpConfig },
908
1000
  ...allowedTools && { allowedTools },
909
1001
  ...disallowedTools && { disallowedTools },
@@ -925,8 +1017,6 @@ var IgniteCommand = class {
925
1017
  success: false,
926
1018
  error: errorMessage
927
1019
  }));
928
- } else {
929
- logger.error(`Failed to launch Claude: ${errorMessage}`);
930
1020
  }
931
1021
  throw error;
932
1022
  }
@@ -952,7 +1042,7 @@ var IgniteCommand = class {
952
1042
  /**
953
1043
  * Build template variables from context
954
1044
  */
955
- buildTemplateVariables(context, oneShot, draftPrNumber, draftPrUrl) {
1045
+ buildTemplateVariables(context, oneShot, draftPrNumber, draftPrUrl, complexity) {
956
1046
  var _a, _b, _c, _d, _e;
957
1047
  const variables = {
958
1048
  WORKSPACE_PATH: context.workspacePath
@@ -978,7 +1068,10 @@ var IgniteCommand = class {
978
1068
  } else {
979
1069
  variables.INTERACTIVE_MODE = true;
980
1070
  }
981
- Object.assign(variables, buildReviewTemplateVariables((_a = this.settings) == null ? void 0 : _a.agents));
1071
+ Object.assign(variables, buildReviewTemplateVariables(false, (_a = this.settings) == null ? void 0 : _a.agents));
1072
+ if (complexity) {
1073
+ variables.COMPLEXITY_OVERRIDE = complexity;
1074
+ }
982
1075
  if (draftPrNumber !== void 0) {
983
1076
  variables.DRAFT_PR_MODE = true;
984
1077
  variables.DRAFT_PR_NUMBER = draftPrNumber;
@@ -1030,7 +1123,7 @@ var IgniteCommand = class {
1030
1123
  */
1031
1124
  async detectWorkspaceContext(workspacePath) {
1032
1125
  const workspacePath_ = workspacePath ?? process.cwd();
1033
- const currentDir = path4.basename(workspacePath_);
1126
+ const currentDir = path5.basename(workspacePath_);
1034
1127
  const prPattern = /_pr_(\d+)$/;
1035
1128
  const prMatch = currentDir.match(prPattern);
1036
1129
  if (prMatch == null ? void 0 : prMatch[1]) {
@@ -1164,7 +1257,7 @@ var IgniteCommand = class {
1164
1257
  * orchestrator prompt, and launches Claude with agent teams enabled.
1165
1258
  */
1166
1259
  async executeSwarmMode(metadata, epicWorktreePath, epicBranch, metadataManager, skipCleanup) {
1167
- var _a, _b, _c;
1260
+ var _a, _b, _c, _d;
1168
1261
  if (!this.settings) {
1169
1262
  throw new Error("Settings not loaded. Cannot enter swarm mode.");
1170
1263
  }
@@ -1191,10 +1284,10 @@ var IgniteCommand = class {
1191
1284
  settings
1192
1285
  );
1193
1286
  await metadataManager.updateMetadata(epicWorktreePath, { mcpConfigPath: epicMcpConfigPath });
1194
- const epicClaudeDir = path4.join(epicWorktreePath, ".claude");
1195
- await fs4.ensureDir(epicClaudeDir);
1196
- await fs4.writeFile(
1197
- path4.join(epicClaudeDir, "iloom-swarm-mcp-config-path"),
1287
+ const epicClaudeDir = path5.join(epicWorktreePath, ".claude");
1288
+ await fs5.ensureDir(epicClaudeDir);
1289
+ await fs5.writeFile(
1290
+ path5.join(epicClaudeDir, "iloom-swarm-mcp-config-path"),
1198
1291
  epicMcpConfigPath,
1199
1292
  "utf-8"
1200
1293
  );
@@ -1220,18 +1313,46 @@ var IgniteCommand = class {
1220
1313
  } catch (error) {
1221
1314
  logger.warn(`Failed to generate recap MCP config: ${error instanceof Error ? error.message : "Unknown error"}`);
1222
1315
  }
1316
+ const finishedMetadata = await metadataManager.listFinishedMetadata();
1317
+ const finishedByIssueNumber = /* @__PURE__ */ new Map();
1318
+ for (const meta of finishedMetadata) {
1319
+ for (const issueNum of meta.issue_numbers) {
1320
+ if (!finishedByIssueNumber.has(issueNum)) {
1321
+ finishedByIssueNumber.set(issueNum, meta);
1322
+ }
1323
+ }
1324
+ }
1325
+ const pendingChildIssues = [];
1326
+ const skippedChildren = [];
1327
+ for (const child of metadata.childIssues) {
1328
+ const rawId = child.number.replace(/^#/, "");
1329
+ const safeId = rawId.replace(/[^a-zA-Z0-9-_]/g, "-");
1330
+ const childBranch = `issue/${safeId}`;
1331
+ const childWorktreePath = generateWorktreePath(childBranch, mainWorktreePath);
1332
+ const childMeta = await metadataManager.readMetadata(childWorktreePath) ?? finishedByIssueNumber.get(rawId) ?? null;
1333
+ if ((childMeta == null ? void 0 : childMeta.state) === "done") {
1334
+ skippedChildren.push({ number: child.number, state: childMeta.state });
1335
+ } else {
1336
+ pendingChildIssues.push(child);
1337
+ }
1338
+ }
1339
+ if (skippedChildren.length > 0) {
1340
+ for (const skipped of skippedChildren) {
1341
+ logger.info(`Skipping child ${skipped.number} (state: ${skipped.state})`);
1342
+ }
1343
+ }
1223
1344
  const swarmResult = await swarmSetup.setupSwarm(
1224
1345
  epicIssueNumber,
1225
1346
  epicBranch,
1226
1347
  epicWorktreePath,
1227
- metadata.childIssues,
1348
+ pendingChildIssues,
1228
1349
  mainWorktreePath,
1229
1350
  providerName,
1230
1351
  settings
1231
1352
  );
1232
1353
  const successfulWorktrees = swarmResult.childWorktrees.filter((c) => c.success);
1233
1354
  const worktreeMap = new Map(successfulWorktrees.map((cw) => [cw.issueId, cw]));
1234
- const childIssuesData = metadata.childIssues.filter((ci) => worktreeMap.has(ci.number.replace(/^#/, ""))).map((ci) => {
1355
+ const childIssuesData = pendingChildIssues.filter((ci) => worktreeMap.has(ci.number.replace(/^#/, ""))).map((ci) => {
1235
1356
  const rawId = ci.number.replace(/^#/, "");
1236
1357
  const wt = worktreeMap.get(rawId);
1237
1358
  return {
@@ -1244,6 +1365,7 @@ var IgniteCommand = class {
1244
1365
  });
1245
1366
  const epicMetadataPath = metadataManager.getMetadataFilePath(epicWorktreePath);
1246
1367
  const issuePrefix = providerName === "github" ? "#" : "";
1368
+ const postSwarmReview = ((_a = settings.spin) == null ? void 0 : _a.postSwarmReview) !== false;
1247
1369
  const variables = {
1248
1370
  EPIC_ISSUE_NUMBER: epicIssueNumber,
1249
1371
  EPIC_WORKTREE_PATH: epicWorktreePath,
@@ -1251,19 +1373,20 @@ var IgniteCommand = class {
1251
1373
  CHILD_ISSUES: JSON.stringify(childIssuesData, null, 2),
1252
1374
  DEPENDENCY_MAP: JSON.stringify(metadata.dependencyMap, null, 2),
1253
1375
  ISSUE_PREFIX: issuePrefix,
1254
- ...skipCleanup && { NO_CLEANUP: true }
1376
+ ...skipCleanup && { NO_CLEANUP: true },
1377
+ ...postSwarmReview && { POST_SWARM_REVIEW: true }
1255
1378
  };
1256
1379
  const draftPrNumber = metadata.draftPrNumber ?? void 0;
1257
1380
  if (draftPrNumber !== void 0) {
1258
1381
  variables.DRAFT_PR_MODE = true;
1259
1382
  variables.DRAFT_PR_NUMBER = draftPrNumber;
1260
- const draftPrUrl = (_a = metadata.prUrls) == null ? void 0 : _a[String(draftPrNumber)];
1383
+ const draftPrUrl = (_b = metadata.prUrls) == null ? void 0 : _b[String(draftPrNumber)];
1261
1384
  if (draftPrUrl) {
1262
1385
  variables.DRAFT_PR_URL = draftPrUrl;
1263
1386
  }
1264
- const autoCommitPushEnabled = ((_b = settings.mergeBehavior) == null ? void 0 : _b.autoCommitPush) !== false;
1387
+ const autoCommitPushEnabled = ((_c = settings.mergeBehavior) == null ? void 0 : _c.autoCommitPush) !== false;
1265
1388
  variables.AUTO_COMMIT_PUSH = autoCommitPushEnabled;
1266
- const remote = ((_c = settings.mergeBehavior) == null ? void 0 : _c.remote) ?? "origin";
1389
+ const remote = ((_d = settings.mergeBehavior) == null ? void 0 : _d.remote) ?? "origin";
1267
1390
  if (!/^[a-zA-Z0-9_-]+$/.test(remote)) {
1268
1391
  throw new Error(`Invalid git remote name: "${remote}". Remote names can only contain alphanumeric characters, underscores, and hyphens.`);
1269
1392
  }
@@ -1299,7 +1422,12 @@ var IgniteCommand = class {
1299
1422
  variables,
1300
1423
  ["*.md", "!iloom-framework-detector.md"]
1301
1424
  );
1302
- agents = this.agentManager.formatForCli(loadedAgents);
1425
+ if (process.platform === "darwin") {
1426
+ agents = this.agentManager.formatForCli(loadedAgents);
1427
+ } else {
1428
+ const agentsDir = path5.join(epicWorktreePath, ".claude", "agents");
1429
+ await this.agentManager.renderAgentsToDisk(loadedAgents, agentsDir);
1430
+ }
1303
1431
  } catch (error) {
1304
1432
  logger.warn(`Failed to load agents: ${error instanceof Error ? error.message : "Unknown error"}`);
1305
1433
  }
@@ -1312,25 +1440,30 @@ var IgniteCommand = class {
1312
1440
  } catch (error) {
1313
1441
  logger.debug(`Telemetry swarm.started tracking failed: ${error instanceof Error ? error.message : error}`);
1314
1442
  }
1315
- await launchClaude(
1316
- `You are the swarm orchestrator for epic #${epicIssueNumber}. Begin by reading your system prompt instructions and executing the workflow.`,
1317
- {
1318
- model,
1319
- permissionMode: "bypassPermissions",
1320
- addDir: epicWorktreePath,
1321
- headless: false,
1322
- ...metadata.sessionId && { sessionId: metadata.sessionId },
1323
- appendSystemPrompt: orchestratorPrompt,
1324
- mcpConfig: mcpConfigs,
1325
- allowedTools,
1326
- ...agents && { agents },
1327
- env: {
1328
- CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS: "1",
1329
- ILOOM_SWARM: "1",
1330
- ENABLE_TOOL_SEARCH: "auto:30"
1331
- }
1332
- }
1443
+ const orchestratorPromptConfig = await prepareSystemPromptForPlatform(
1444
+ orchestratorPrompt,
1445
+ epicWorktreePath
1333
1446
  );
1447
+ const effectiveSwarmPrompt = orchestratorPromptConfig.initialPromptOverride ?? `You are the swarm orchestrator for epic #${epicIssueNumber}. Begin by reading your system prompt instructions and executing the workflow.`;
1448
+ process.env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS = "1";
1449
+ process.env.ILOOM_SWARM = "1";
1450
+ process.env.ENABLE_TOOL_SEARCH = "auto:30";
1451
+ process.env.CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING = "1";
1452
+ process.env.CLAUDE_CODE_DISABLE_AUTO_MEMORY = "1";
1453
+ process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1";
1454
+ process.env.CLAUDE_CODE_EFFORT_LEVEL = "medium";
1455
+ await launchClaude(effectiveSwarmPrompt, {
1456
+ model,
1457
+ permissionMode: "bypassPermissions",
1458
+ addDir: epicWorktreePath,
1459
+ headless: false,
1460
+ ...metadata.sessionId && { sessionId: metadata.sessionId },
1461
+ ...orchestratorPromptConfig.appendSystemPrompt && { appendSystemPrompt: orchestratorPromptConfig.appendSystemPrompt },
1462
+ ...orchestratorPromptConfig.pluginDir && { pluginDir: orchestratorPromptConfig.pluginDir },
1463
+ mcpConfig: mcpConfigs,
1464
+ allowedTools,
1465
+ ...agents && { agents }
1466
+ });
1334
1467
  try {
1335
1468
  const swarmEndTime = Date.now();
1336
1469
  let succeeded = 0;
@@ -1376,15 +1509,15 @@ var IgniteCommand = class {
1376
1509
  */
1377
1510
  async loadReadmeContent() {
1378
1511
  try {
1379
- let currentDir = path4.dirname(new URL(import.meta.url).pathname);
1380
- while (currentDir !== path4.dirname(currentDir)) {
1381
- const readmePath = path4.join(currentDir, "README.md");
1512
+ let currentDir = path5.dirname(new URL(import.meta.url).pathname);
1513
+ while (currentDir !== path5.dirname(currentDir)) {
1514
+ const readmePath = path5.join(currentDir, "README.md");
1382
1515
  try {
1383
1516
  const content = await readFile(readmePath, "utf-8");
1384
1517
  logger.debug("Loaded README.md for first-time user", { readmePath });
1385
1518
  return content;
1386
1519
  } catch {
1387
- currentDir = path4.dirname(currentDir);
1520
+ currentDir = path5.dirname(currentDir);
1388
1521
  }
1389
1522
  }
1390
1523
  logger.debug("README.md not found, returning empty string");
@@ -1400,15 +1533,15 @@ var IgniteCommand = class {
1400
1533
  */
1401
1534
  async loadSettingsSchemaContent() {
1402
1535
  try {
1403
- let currentDir = path4.dirname(new URL(import.meta.url).pathname);
1404
- while (currentDir !== path4.dirname(currentDir)) {
1405
- const schemaPath = path4.join(currentDir, ".iloom", "README.md");
1536
+ let currentDir = path5.dirname(new URL(import.meta.url).pathname);
1537
+ while (currentDir !== path5.dirname(currentDir)) {
1538
+ const schemaPath = path5.join(currentDir, ".iloom", "README.md");
1406
1539
  try {
1407
1540
  const content = await readFile(schemaPath, "utf-8");
1408
1541
  logger.debug("Loaded .iloom/README.md for first-time user", { schemaPath });
1409
1542
  return content;
1410
1543
  } catch {
1411
- currentDir = path4.dirname(currentDir);
1544
+ currentDir = path5.dirname(currentDir);
1412
1545
  }
1413
1546
  }
1414
1547
  logger.debug(".iloom/README.md not found, returning empty string");
@@ -1424,4 +1557,4 @@ export {
1424
1557
  WorktreeValidationError,
1425
1558
  IgniteCommand
1426
1559
  };
1427
- //# sourceMappingURL=chunk-OTGH2HRS.js.map
1560
+ //# sourceMappingURL=chunk-IR74O2F6.js.map