@iloom/cli 0.10.2 → 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-4OP6LOH6.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-FRECYMXS.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-XE4BDRZD.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-QFTDZ5E3.js → chunk-7NFCGKZT.js} +3 -3
  33. package/dist/{chunk-433MOLAU.js → chunk-7OCGBJLR.js} +2 -2
  34. package/dist/{chunk-2VEWSM34.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-ZGM2FE2R.js → chunk-IR74O2F6.js} +221 -86
  46. package/dist/chunk-IR74O2F6.js.map +1 -0
  47. package/dist/{chunk-O7VL5N6S.js → chunk-K7R5QY6C.js} +2 -2
  48. package/dist/{chunk-BU53XIGY.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-2YZCWAVZ.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-BFLMCE2U.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-V3SVMFDQ.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-BFHDVFSK.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-HYGUPUV5.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-3F27M7ZD.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-PZ5WSR5Z.js → chunk-Y3RX7LZT.js} +8 -5
  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-LN7OWVNI.js → claude-ONQTDWV3.js} +4 -4
  88. package/dist/{cleanup-4ZM2AJDC.js → cleanup-YOM6PQCN.js} +35 -34
  89. package/dist/{cleanup-4ZM2AJDC.js.map → cleanup-YOM6PQCN.js.map} +1 -1
  90. package/dist/cli.js +227 -152
  91. package/dist/cli.js.map +1 -1
  92. package/dist/{color-4TJ4P5EY.js → color-VQD52LOI.js} +3 -3
  93. package/dist/{commit-4CFLXRZ3.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-EZWF5CAL.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 +634 -107
  103. package/dist/index.js.map +1 -1
  104. package/dist/{init-ZB2RITW6.js → init-CI43GJHV.js} +17 -17
  105. package/dist/{init-ZB2RITW6.js.map → init-CI43GJHV.js.map} +1 -1
  106. package/dist/{install-deps-RLSGSHH7.js → install-deps-SRTM5U7D.js} +11 -11
  107. package/dist/{installation-detector-MMFWLJYN.js → installation-detector-HF6QN7KP.js} +3 -3
  108. package/dist/{issues-4UUAQ5K6.js → issues-DMRQJH7E.js} +15 -15
  109. package/dist/lint-BSWRMGPZ.js +27 -0
  110. package/dist/linux-RYLOP2LY.js +103 -0
  111. package/dist/linux-RYLOP2LY.js.map +1 -0
  112. package/dist/mcp/chunk-PIIRD4LO.js +373 -0
  113. package/dist/mcp/chunk-PIIRD4LO.js.map +1 -0
  114. package/dist/mcp/darwin-3JFFE3W2.js +10 -0
  115. package/dist/mcp/issue-management-server.js +23 -127
  116. package/dist/mcp/issue-management-server.js.map +1 -1
  117. package/dist/mcp/linux-JBVS4R3A.js +103 -0
  118. package/dist/mcp/linux-JBVS4R3A.js.map +1 -0
  119. package/dist/mcp/tmux-RYBLEHUZ.js +156 -0
  120. package/dist/mcp/tmux-RYBLEHUZ.js.map +1 -0
  121. package/dist/mcp/wsl-4QZIQLLE.js +78 -0
  122. package/dist/mcp/wsl-4QZIQLLE.js.map +1 -0
  123. package/dist/neon-helpers-HWIYRKOW.js +11 -0
  124. package/dist/{open-FXWW3VI4.js → open-2Y7GSUTJ.js} +19 -19
  125. package/dist/{plan-D3KSN5MU.js → plan-SWFPLNJE.js} +47 -46
  126. package/dist/{plan-D3KSN5MU.js.map → plan-SWFPLNJE.js.map} +1 -1
  127. package/dist/{projects-2UOXFLNZ.js → projects-IUSUXD5D.js} +6 -6
  128. package/dist/{prompt-ONNPSNKM.js → prompt-7LZB4PAT.js} +3 -3
  129. package/dist/prompts/init-prompt.txt +56 -107
  130. package/dist/prompts/issue-prompt.txt +57 -11
  131. package/dist/prompts/pr-prompt.txt +154 -4
  132. package/dist/prompts/regular-prompt.txt +20 -3
  133. package/dist/prompts/swarm-orchestrator-prompt.txt +114 -8
  134. package/dist/{rebase-62FDLIH4.js → rebase-S6OHAOOF.js} +12 -12
  135. package/dist/{recap-OMBOKJST.js → recap-GGVCG5VH.js} +9 -9
  136. package/dist/{remote-IJAMOEAP.js → remote-MZTFHHTU.js} +3 -3
  137. package/dist/remote-MZTFHHTU.js.map +1 -0
  138. package/dist/{run-BBXLRIZB.js → run-ST3FR75O.js} +19 -19
  139. package/dist/schema/settings.schema.json +8 -49
  140. package/dist/{shell-RF7LTND5.js → shell-W4SBQPTE.js} +8 -8
  141. package/dist/{summary-YZI25KW4.js → summary-P2JCIIJO.js} +17 -17
  142. package/dist/test-6JH4FE2X.js +27 -0
  143. package/dist/{test-git-XM4TM65W.js → test-git-2KFFAQ6B.js} +6 -6
  144. package/dist/{test-jira-LDTOYFSD.js → test-jira-FKDKG6CD.js} +8 -8
  145. package/dist/{test-prefix-GBO37XCN.js → test-prefix-GP2DAX37.js} +11 -11
  146. package/dist/test-prefix-GP2DAX37.js.map +1 -0
  147. package/dist/{test-tabs-D3POYOJ5.js → test-tabs-YDWMWTVA.js} +3 -3
  148. package/dist/{test-webserver-NZ3JTVLL.js → test-webserver-QI3QQFZ3.js} +8 -8
  149. package/dist/tmux-7ZTA3BDI.js +156 -0
  150. package/dist/tmux-7ZTA3BDI.js.map +1 -0
  151. package/dist/{update-HJKDYA3F.js → update-XLW7R7FL.js} +4 -4
  152. package/dist/{update-notifier-LBAUOOLM.js → update-notifier-EYLAXZAA.js} +3 -3
  153. package/dist/update-notifier-EYLAXZAA.js.map +1 -0
  154. package/dist/{vscode-6XUGHJKL.js → vscode-TOGE5N67.js} +13 -13
  155. package/dist/{vscode-announcement-EQ2SKK3T.js → vscode-announcement-NIX7O2MG.js} +3 -3
  156. package/dist/wsl-Y4GUTOQ7.js +78 -0
  157. package/dist/wsl-Y4GUTOQ7.js.map +1 -0
  158. package/package.json +4 -2
  159. package/dist/ClaudeContextManager-ZKTUVQB2.js +0 -14
  160. package/dist/ClaudeService-TRWOYQ6O.js +0 -13
  161. package/dist/GitHubService-MEHKHUQP.js +0 -12
  162. package/dist/IssueTrackerFactory-NG53YX5S.js +0 -14
  163. package/dist/LoomLauncher-FRECYMXS.js.map +0 -1
  164. package/dist/MetadataManager-5QZSTKNN.js +0 -10
  165. package/dist/ProjectCapabilityDetector-5KSYUTBJ.js +0 -11
  166. package/dist/SettingsMigrationManager-LEBMJP3B.js +0 -10
  167. package/dist/build-VHGEMXBA.js +0 -27
  168. package/dist/chunk-3F27M7ZD.js.map +0 -1
  169. package/dist/chunk-7VHJNVLF.js.map +0 -1
  170. package/dist/chunk-BFHDVFSK.js.map +0 -1
  171. package/dist/chunk-C6HNNJIV.js.map +0 -1
  172. package/dist/chunk-HYGUPUV5.js.map +0 -1
  173. package/dist/chunk-KB64WNBZ.js.map +0 -1
  174. package/dist/chunk-PZ5WSR5Z.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-UUEW5KWB.js.map +0 -1
  179. package/dist/chunk-VT4PDUYT.js.map +0 -1
  180. package/dist/chunk-ZGM2FE2R.js.map +0 -1
  181. package/dist/ignite-MQETGFNA.js +0 -34
  182. package/dist/lint-AAN2NZWG.js +0 -27
  183. package/dist/neon-helpers-CQN2PB4S.js +0 -11
  184. package/dist/test-SGO6I5Z7.js +0 -27
  185. package/dist/test-prefix-GBO37XCN.js.map +0 -1
  186. /package/dist/{BranchNamingService-4OP6LOH6.js.map → BranchNamingService-XBCO747L.js.map} +0 -0
  187. /package/dist/{ClaudeContextManager-ZKTUVQB2.js.map → ClaudeContextManager-SXDCWDJA.js.map} +0 -0
  188. /package/dist/{ClaudeService-TRWOYQ6O.js.map → ClaudeService-6E6MCGJE.js.map} +0 -0
  189. /package/dist/{GitHubService-MEHKHUQP.js.map → GitHubService-2R5GQG4K.js.map} +0 -0
  190. /package/dist/{IssueTrackerFactory-NG53YX5S.js.map → IssueTrackerFactory-XN6MQ4UN.js.map} +0 -0
  191. /package/dist/{MetadataManager-5QZSTKNN.js.map → MetadataManager-CMQQTFLQ.js.map} +0 -0
  192. /package/dist/{ProjectCapabilityDetector-5KSYUTBJ.js.map → ProjectCapabilityDetector-IC6NAFGY.js.map} +0 -0
  193. /package/dist/{PromptTemplateManager-YOE2SIPG.js.map → PromptTemplateManager-T5VTLJP3.js.map} +0 -0
  194. /package/dist/{SettingsManager-FNKCOZMQ.js.map → SettingsManager-WQ5NSGAH.js.map} +0 -0
  195. /package/dist/{SettingsMigrationManager-LEBMJP3B.js.map → SettingsMigrationManager-S6J7OHUH.js.map} +0 -0
  196. /package/dist/{build-VHGEMXBA.js.map → build-OLS6J5KZ.js.map} +0 -0
  197. /package/dist/{chunk-WWKOVDWC.js.map → chunk-3GTUXW26.js.map} +0 -0
  198. /package/dist/{chunk-4FGEGQW4.js.map → chunk-3RXYOBME.js.map} +0 -0
  199. /package/dist/{chunk-HEXKPKCK.js.map → chunk-5LTID2AF.js.map} +0 -0
  200. /package/dist/{chunk-G5V75JD5.js.map → chunk-5PNZBH6V.js.map} +0 -0
  201. /package/dist/{chunk-XE4BDRZD.js.map → chunk-6YVJVUR4.js.map} +0 -0
  202. /package/dist/{chunk-QFTDZ5E3.js.map → chunk-7NFCGKZT.js.map} +0 -0
  203. /package/dist/{chunk-433MOLAU.js.map → chunk-7OCGBJLR.js.map} +0 -0
  204. /package/dist/{chunk-2VEWSM34.js.map → chunk-ABVMUNCD.js.map} +0 -0
  205. /package/dist/{chunk-7JDMYTFZ.js.map → chunk-CV47VCMQ.js.map} +0 -0
  206. /package/dist/{chunk-MORRVYPT.js.map → chunk-G2MNSPA4.js.map} +0 -0
  207. /package/dist/{chunk-LLHXQS3C.js.map → chunk-HLDY5S4C.js.map} +0 -0
  208. /package/dist/{chunk-BYUMEDDD.js.map → chunk-IDCE26KD.js.map} +0 -0
  209. /package/dist/{chunk-O7VL5N6S.js.map → chunk-K7R5QY6C.js.map} +0 -0
  210. /package/dist/{chunk-BU53XIGY.js.map → chunk-KQFIGI37.js.map} +0 -0
  211. /package/dist/{chunk-I5T677EA.js.map → chunk-LE2NOUTN.js.map} +0 -0
  212. /package/dist/{chunk-KXDRI47U.js.map → chunk-LHDD4JHC.js.map} +0 -0
  213. /package/dist/{chunk-2YZCWAVZ.js.map → chunk-LL6TOX3G.js.map} +0 -0
  214. /package/dist/{chunk-YQ57ORTV.js.map → chunk-NCPZYQ4B.js.map} +0 -0
  215. /package/dist/{chunk-EWJFUFPT.js.map → chunk-NDSGJZI2.js.map} +0 -0
  216. /package/dist/{chunk-VG45TUYK.js.map → chunk-NH3QZYE5.js.map} +0 -0
  217. /package/dist/{chunk-BFLMCE2U.js.map → chunk-NN5RYWXA.js.map} +0 -0
  218. /package/dist/{chunk-KIK2ZFAL.js.map → chunk-QNHZM5ZV.js.map} +0 -0
  219. /package/dist/{chunk-V3SVMFDQ.js.map → chunk-QR4FU53I.js.map} +0 -0
  220. /package/dist/{chunk-FXDYIV3K.js.map → chunk-QVAA5KHK.js.map} +0 -0
  221. /package/dist/{chunk-NGJZ4TOU.js.map → chunk-RBYTXYGD.js.map} +0 -0
  222. /package/dist/{chunk-CVCTIDDK.js.map → chunk-RVI6C2H5.js.map} +0 -0
  223. /package/dist/{chunk-Q7POFB5Q.js.map → chunk-SQYHPBFP.js.map} +0 -0
  224. /package/dist/{chunk-QZWEJVWV.js.map → chunk-TZNNJLGT.js.map} +0 -0
  225. /package/dist/{chunk-63QWFWH3.js.map → chunk-UDCI3QTS.js.map} +0 -0
  226. /package/dist/{chunk-UKBAJ2QQ.js.map → chunk-UHIBKD73.js.map} +0 -0
  227. /package/dist/{chunk-WXIM2WS7.js.map → chunk-V4STTBQD.js.map} +0 -0
  228. /package/dist/{chunk-P4O6EH46.js.map → chunk-VMZG66UV.js.map} +0 -0
  229. /package/dist/{chunk-LUKXJSRI.js.map → chunk-XXFSOVL3.js.map} +0 -0
  230. /package/dist/{chunk-6MLEBAYZ.js.map → chunk-ZAXRQLK3.js.map} +0 -0
  231. /package/dist/{claude-LN7OWVNI.js.map → claude-ONQTDWV3.js.map} +0 -0
  232. /package/dist/{color-4TJ4P5EY.js.map → color-VQD52LOI.js.map} +0 -0
  233. /package/dist/{commit-4CFLXRZ3.js.map → commit-DC2Q5CDY.js.map} +0 -0
  234. /package/dist/{compile-7ALJHZ4N.js.map → compile-4NCQECKE.js.map} +0 -0
  235. /package/dist/{contribute-5GKLK3BQ.js.map → contribute-M5UWXCAV.js.map} +0 -0
  236. /package/dist/{git-GTLKAZRJ.js.map → darwin-5BHWRJ7D.js.map} +0 -0
  237. /package/dist/{dev-server-7SMIB7OF.js.map → dev-server-CYRP6M73.js.map} +0 -0
  238. /package/dist/{feedback-EZWF5CAL.js.map → feedback-BMAZGKRW.js.map} +0 -0
  239. /package/dist/{ignite-MQETGFNA.js.map → git-BXUD6CL5.js.map} +0 -0
  240. /package/dist/{installation-detector-MMFWLJYN.js.map → ignite-IO4LXVXJ.js.map} +0 -0
  241. /package/dist/{install-deps-RLSGSHH7.js.map → install-deps-SRTM5U7D.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-62FDLIH4.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-YZI25KW4.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-PZ5WSR5Z.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 },
@@ -950,7 +1042,7 @@ var IgniteCommand = class {
950
1042
  /**
951
1043
  * Build template variables from context
952
1044
  */
953
- buildTemplateVariables(context, oneShot, draftPrNumber, draftPrUrl) {
1045
+ buildTemplateVariables(context, oneShot, draftPrNumber, draftPrUrl, complexity) {
954
1046
  var _a, _b, _c, _d, _e;
955
1047
  const variables = {
956
1048
  WORKSPACE_PATH: context.workspacePath
@@ -976,7 +1068,10 @@ var IgniteCommand = class {
976
1068
  } else {
977
1069
  variables.INTERACTIVE_MODE = true;
978
1070
  }
979
- 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
+ }
980
1075
  if (draftPrNumber !== void 0) {
981
1076
  variables.DRAFT_PR_MODE = true;
982
1077
  variables.DRAFT_PR_NUMBER = draftPrNumber;
@@ -1028,7 +1123,7 @@ var IgniteCommand = class {
1028
1123
  */
1029
1124
  async detectWorkspaceContext(workspacePath) {
1030
1125
  const workspacePath_ = workspacePath ?? process.cwd();
1031
- const currentDir = path4.basename(workspacePath_);
1126
+ const currentDir = path5.basename(workspacePath_);
1032
1127
  const prPattern = /_pr_(\d+)$/;
1033
1128
  const prMatch = currentDir.match(prPattern);
1034
1129
  if (prMatch == null ? void 0 : prMatch[1]) {
@@ -1162,7 +1257,7 @@ var IgniteCommand = class {
1162
1257
  * orchestrator prompt, and launches Claude with agent teams enabled.
1163
1258
  */
1164
1259
  async executeSwarmMode(metadata, epicWorktreePath, epicBranch, metadataManager, skipCleanup) {
1165
- var _a, _b, _c;
1260
+ var _a, _b, _c, _d;
1166
1261
  if (!this.settings) {
1167
1262
  throw new Error("Settings not loaded. Cannot enter swarm mode.");
1168
1263
  }
@@ -1189,10 +1284,10 @@ var IgniteCommand = class {
1189
1284
  settings
1190
1285
  );
1191
1286
  await metadataManager.updateMetadata(epicWorktreePath, { mcpConfigPath: epicMcpConfigPath });
1192
- const epicClaudeDir = path4.join(epicWorktreePath, ".claude");
1193
- await fs4.ensureDir(epicClaudeDir);
1194
- await fs4.writeFile(
1195
- 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"),
1196
1291
  epicMcpConfigPath,
1197
1292
  "utf-8"
1198
1293
  );
@@ -1218,18 +1313,46 @@ var IgniteCommand = class {
1218
1313
  } catch (error) {
1219
1314
  logger.warn(`Failed to generate recap MCP config: ${error instanceof Error ? error.message : "Unknown error"}`);
1220
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
+ }
1221
1344
  const swarmResult = await swarmSetup.setupSwarm(
1222
1345
  epicIssueNumber,
1223
1346
  epicBranch,
1224
1347
  epicWorktreePath,
1225
- metadata.childIssues,
1348
+ pendingChildIssues,
1226
1349
  mainWorktreePath,
1227
1350
  providerName,
1228
1351
  settings
1229
1352
  );
1230
1353
  const successfulWorktrees = swarmResult.childWorktrees.filter((c) => c.success);
1231
1354
  const worktreeMap = new Map(successfulWorktrees.map((cw) => [cw.issueId, cw]));
1232
- 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) => {
1233
1356
  const rawId = ci.number.replace(/^#/, "");
1234
1357
  const wt = worktreeMap.get(rawId);
1235
1358
  return {
@@ -1242,6 +1365,7 @@ var IgniteCommand = class {
1242
1365
  });
1243
1366
  const epicMetadataPath = metadataManager.getMetadataFilePath(epicWorktreePath);
1244
1367
  const issuePrefix = providerName === "github" ? "#" : "";
1368
+ const postSwarmReview = ((_a = settings.spin) == null ? void 0 : _a.postSwarmReview) !== false;
1245
1369
  const variables = {
1246
1370
  EPIC_ISSUE_NUMBER: epicIssueNumber,
1247
1371
  EPIC_WORKTREE_PATH: epicWorktreePath,
@@ -1249,19 +1373,20 @@ var IgniteCommand = class {
1249
1373
  CHILD_ISSUES: JSON.stringify(childIssuesData, null, 2),
1250
1374
  DEPENDENCY_MAP: JSON.stringify(metadata.dependencyMap, null, 2),
1251
1375
  ISSUE_PREFIX: issuePrefix,
1252
- ...skipCleanup && { NO_CLEANUP: true }
1376
+ ...skipCleanup && { NO_CLEANUP: true },
1377
+ ...postSwarmReview && { POST_SWARM_REVIEW: true }
1253
1378
  };
1254
1379
  const draftPrNumber = metadata.draftPrNumber ?? void 0;
1255
1380
  if (draftPrNumber !== void 0) {
1256
1381
  variables.DRAFT_PR_MODE = true;
1257
1382
  variables.DRAFT_PR_NUMBER = draftPrNumber;
1258
- const draftPrUrl = (_a = metadata.prUrls) == null ? void 0 : _a[String(draftPrNumber)];
1383
+ const draftPrUrl = (_b = metadata.prUrls) == null ? void 0 : _b[String(draftPrNumber)];
1259
1384
  if (draftPrUrl) {
1260
1385
  variables.DRAFT_PR_URL = draftPrUrl;
1261
1386
  }
1262
- const autoCommitPushEnabled = ((_b = settings.mergeBehavior) == null ? void 0 : _b.autoCommitPush) !== false;
1387
+ const autoCommitPushEnabled = ((_c = settings.mergeBehavior) == null ? void 0 : _c.autoCommitPush) !== false;
1263
1388
  variables.AUTO_COMMIT_PUSH = autoCommitPushEnabled;
1264
- const remote = ((_c = settings.mergeBehavior) == null ? void 0 : _c.remote) ?? "origin";
1389
+ const remote = ((_d = settings.mergeBehavior) == null ? void 0 : _d.remote) ?? "origin";
1265
1390
  if (!/^[a-zA-Z0-9_-]+$/.test(remote)) {
1266
1391
  throw new Error(`Invalid git remote name: "${remote}". Remote names can only contain alphanumeric characters, underscores, and hyphens.`);
1267
1392
  }
@@ -1297,7 +1422,12 @@ var IgniteCommand = class {
1297
1422
  variables,
1298
1423
  ["*.md", "!iloom-framework-detector.md"]
1299
1424
  );
1300
- 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
+ }
1301
1431
  } catch (error) {
1302
1432
  logger.warn(`Failed to load agents: ${error instanceof Error ? error.message : "Unknown error"}`);
1303
1433
  }
@@ -1310,25 +1440,30 @@ var IgniteCommand = class {
1310
1440
  } catch (error) {
1311
1441
  logger.debug(`Telemetry swarm.started tracking failed: ${error instanceof Error ? error.message : error}`);
1312
1442
  }
1313
- await launchClaude(
1314
- `You are the swarm orchestrator for epic #${epicIssueNumber}. Begin by reading your system prompt instructions and executing the workflow.`,
1315
- {
1316
- model,
1317
- permissionMode: "bypassPermissions",
1318
- addDir: epicWorktreePath,
1319
- headless: false,
1320
- ...metadata.sessionId && { sessionId: metadata.sessionId },
1321
- appendSystemPrompt: orchestratorPrompt,
1322
- mcpConfig: mcpConfigs,
1323
- allowedTools,
1324
- ...agents && { agents },
1325
- env: {
1326
- CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS: "1",
1327
- ILOOM_SWARM: "1",
1328
- ENABLE_TOOL_SEARCH: "auto:30"
1329
- }
1330
- }
1443
+ const orchestratorPromptConfig = await prepareSystemPromptForPlatform(
1444
+ orchestratorPrompt,
1445
+ epicWorktreePath
1331
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
+ });
1332
1467
  try {
1333
1468
  const swarmEndTime = Date.now();
1334
1469
  let succeeded = 0;
@@ -1374,15 +1509,15 @@ var IgniteCommand = class {
1374
1509
  */
1375
1510
  async loadReadmeContent() {
1376
1511
  try {
1377
- let currentDir = path4.dirname(new URL(import.meta.url).pathname);
1378
- while (currentDir !== path4.dirname(currentDir)) {
1379
- 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");
1380
1515
  try {
1381
1516
  const content = await readFile(readmePath, "utf-8");
1382
1517
  logger.debug("Loaded README.md for first-time user", { readmePath });
1383
1518
  return content;
1384
1519
  } catch {
1385
- currentDir = path4.dirname(currentDir);
1520
+ currentDir = path5.dirname(currentDir);
1386
1521
  }
1387
1522
  }
1388
1523
  logger.debug("README.md not found, returning empty string");
@@ -1398,15 +1533,15 @@ var IgniteCommand = class {
1398
1533
  */
1399
1534
  async loadSettingsSchemaContent() {
1400
1535
  try {
1401
- let currentDir = path4.dirname(new URL(import.meta.url).pathname);
1402
- while (currentDir !== path4.dirname(currentDir)) {
1403
- 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");
1404
1539
  try {
1405
1540
  const content = await readFile(schemaPath, "utf-8");
1406
1541
  logger.debug("Loaded .iloom/README.md for first-time user", { schemaPath });
1407
1542
  return content;
1408
1543
  } catch {
1409
- currentDir = path4.dirname(currentDir);
1544
+ currentDir = path5.dirname(currentDir);
1410
1545
  }
1411
1546
  }
1412
1547
  logger.debug(".iloom/README.md not found, returning empty string");
@@ -1422,4 +1557,4 @@ export {
1422
1557
  WorktreeValidationError,
1423
1558
  IgniteCommand
1424
1559
  };
1425
- //# sourceMappingURL=chunk-ZGM2FE2R.js.map
1560
+ //# sourceMappingURL=chunk-IR74O2F6.js.map