@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.
- package/LICENSE +1 -1
- package/README.md +4 -2
- package/dist/{BranchNamingService-4OP6LOH6.js → BranchNamingService-XBCO747L.js} +4 -4
- package/dist/ClaudeContextManager-SXDCWDJA.js +14 -0
- package/dist/ClaudeService-6E6MCGJE.js +13 -0
- package/dist/GitHubService-2R5GQG4K.js +12 -0
- package/dist/IssueTrackerFactory-XN6MQ4UN.js +14 -0
- package/dist/{LoomLauncher-FRECYMXS.js → LoomLauncher-5AZU2F5I.js} +15 -12
- package/dist/LoomLauncher-5AZU2F5I.js.map +1 -0
- package/dist/MetadataManager-CMQQTFLQ.js +10 -0
- package/dist/ProjectCapabilityDetector-IC6NAFGY.js +11 -0
- package/dist/{PromptTemplateManager-YOE2SIPG.js → PromptTemplateManager-T5VTLJP3.js} +3 -3
- package/dist/README.md +4 -2
- package/dist/{SettingsManager-FNKCOZMQ.js → SettingsManager-WQ5NSGAH.js} +3 -3
- package/dist/SettingsMigrationManager-S6J7OHUH.js +10 -0
- package/dist/agents/iloom-code-reviewer.md +50 -8
- package/dist/agents/iloom-issue-analyze-and-plan.md +10 -0
- package/dist/agents/iloom-issue-analyzer.md +13 -0
- package/dist/agents/iloom-issue-complexity-evaluator.md +8 -1
- package/dist/agents/iloom-issue-enhancer.md +8 -1
- package/dist/agents/iloom-issue-planner.md +5 -0
- package/dist/build-OLS6J5KZ.js +27 -0
- package/dist/{chunk-WWKOVDWC.js → chunk-3GTUXW26.js} +3 -3
- package/dist/{chunk-4FGEGQW4.js → chunk-3RXYOBME.js} +5 -5
- package/dist/{chunk-HEXKPKCK.js → chunk-5LTID2AF.js} +6 -6
- package/dist/{chunk-G5V75JD5.js → chunk-5PNZBH6V.js} +2 -2
- package/dist/{chunk-SKSYYBCU.js → chunk-5UFGO4ZT.js} +24 -3
- package/dist/{chunk-SKSYYBCU.js.map → chunk-5UFGO4ZT.js.map} +1 -1
- package/dist/{chunk-XE4BDRZD.js → chunk-6YVJVUR4.js} +3 -3
- package/dist/{chunk-RJ3VBUFK.js → chunk-7FIXNAUO.js} +36 -7
- package/dist/chunk-7FIXNAUO.js.map +1 -0
- package/dist/{chunk-QFTDZ5E3.js → chunk-7NFCGKZT.js} +3 -3
- package/dist/{chunk-433MOLAU.js → chunk-7OCGBJLR.js} +2 -2
- package/dist/{chunk-2VEWSM34.js → chunk-ABVMUNCD.js} +8 -8
- package/dist/{chunk-7JDMYTFZ.js → chunk-CV47VCMQ.js} +2 -2
- package/dist/{chunk-7VHJNVLF.js → chunk-ET6A2JR4.js} +8 -6
- package/dist/chunk-ET6A2JR4.js.map +1 -0
- package/dist/{chunk-MORRVYPT.js → chunk-G2MNSPA4.js} +2 -2
- package/dist/{chunk-RSYT7MVI.js → chunk-GMDSYLI6.js} +36 -3
- package/dist/chunk-GMDSYLI6.js.map +1 -0
- package/dist/{chunk-VT4PDUYT.js → chunk-H2SSF24U.js} +284 -209
- package/dist/chunk-H2SSF24U.js.map +1 -0
- package/dist/{chunk-LLHXQS3C.js → chunk-HLDY5S4C.js} +3 -3
- package/dist/{chunk-BYUMEDDD.js → chunk-IDCE26KD.js} +3 -3
- package/dist/{chunk-ZGM2FE2R.js → chunk-IR74O2F6.js} +221 -86
- package/dist/chunk-IR74O2F6.js.map +1 -0
- package/dist/{chunk-O7VL5N6S.js → chunk-K7R5QY6C.js} +2 -2
- package/dist/{chunk-BU53XIGY.js → chunk-KQFIGI37.js} +5 -5
- package/dist/{chunk-I5T677EA.js → chunk-LE2NOUTN.js} +3 -3
- package/dist/{chunk-KXDRI47U.js → chunk-LHDD4JHC.js} +6 -6
- package/dist/{chunk-2YZCWAVZ.js → chunk-LL6TOX3G.js} +9 -9
- package/dist/{chunk-YQ57ORTV.js → chunk-NCPZYQ4B.js} +2 -2
- package/dist/{chunk-EWJFUFPT.js → chunk-NDSGJZI2.js} +2 -2
- package/dist/{chunk-VG45TUYK.js → chunk-NH3QZYE5.js} +2 -2
- package/dist/{chunk-BFLMCE2U.js → chunk-NN5RYWXA.js} +7 -7
- package/dist/chunk-NOMQ5RFG.js +118 -0
- package/dist/chunk-NOMQ5RFG.js.map +1 -0
- package/dist/{chunk-KIK2ZFAL.js → chunk-QNHZM5ZV.js} +3 -3
- package/dist/{chunk-V3SVMFDQ.js → chunk-QR4FU53I.js} +8 -8
- package/dist/{chunk-FXDYIV3K.js → chunk-QVAA5KHK.js} +2 -2
- package/dist/{chunk-NGJZ4TOU.js → chunk-RBYTXYGD.js} +2 -2
- package/dist/{chunk-SWSJWA2S.js → chunk-RMLADZRY.js} +12 -9
- package/dist/chunk-RMLADZRY.js.map +1 -0
- package/dist/{chunk-CVCTIDDK.js → chunk-RVI6C2H5.js} +5 -5
- package/dist/{chunk-Q7POFB5Q.js → chunk-SQYHPBFP.js} +2 -2
- package/dist/{chunk-BFHDVFSK.js → chunk-TEJAGQX2.js} +64 -40
- package/dist/chunk-TEJAGQX2.js.map +1 -0
- package/dist/{chunk-QZWEJVWV.js → chunk-TZNNJLGT.js} +6 -6
- package/dist/{chunk-63QWFWH3.js → chunk-UDCI3QTS.js} +2 -2
- package/dist/{chunk-UKBAJ2QQ.js → chunk-UHIBKD73.js} +7 -7
- package/dist/{chunk-WXIM2WS7.js → chunk-V4STTBQD.js} +10 -10
- package/dist/{chunk-P4O6EH46.js → chunk-VMZG66UV.js} +5 -5
- package/dist/{chunk-C6HNNJIV.js → chunk-VNYWBHKR.js} +34 -4
- package/dist/chunk-VNYWBHKR.js.map +1 -0
- package/dist/{chunk-HYGUPUV5.js → chunk-VUUN3KE4.js} +10 -10
- package/dist/chunk-VUUN3KE4.js.map +1 -0
- package/dist/{chunk-UUEW5KWB.js → chunk-WG4MLJ6J.js} +15 -10
- package/dist/chunk-WG4MLJ6J.js.map +1 -0
- package/dist/{chunk-3F27M7ZD.js → chunk-XFQGI2E3.js} +66 -43
- package/dist/chunk-XFQGI2E3.js.map +1 -0
- package/dist/{chunk-LUKXJSRI.js → chunk-XXFSOVL3.js} +4 -4
- package/dist/{chunk-PZ5WSR5Z.js → chunk-Y3RX7LZT.js} +8 -5
- package/dist/chunk-Y3RX7LZT.js.map +1 -0
- package/dist/{chunk-KB64WNBZ.js → chunk-YRCEOQPX.js} +4 -2
- package/dist/chunk-YRCEOQPX.js.map +1 -0
- package/dist/{chunk-6MLEBAYZ.js → chunk-ZAXRQLK3.js} +2 -2
- package/dist/{claude-LN7OWVNI.js → claude-ONQTDWV3.js} +4 -4
- package/dist/{cleanup-4ZM2AJDC.js → cleanup-YOM6PQCN.js} +35 -34
- package/dist/{cleanup-4ZM2AJDC.js.map → cleanup-YOM6PQCN.js.map} +1 -1
- package/dist/cli.js +227 -152
- package/dist/cli.js.map +1 -1
- package/dist/{color-4TJ4P5EY.js → color-VQD52LOI.js} +3 -3
- package/dist/{commit-4CFLXRZ3.js → commit-DC2Q5CDY.js} +15 -15
- package/dist/{compile-7ALJHZ4N.js → compile-4NCQECKE.js} +11 -11
- package/dist/{contribute-5GKLK3BQ.js → contribute-M5UWXCAV.js} +12 -12
- package/dist/darwin-5BHWRJ7D.js +10 -0
- package/dist/{dev-server-7SMIB7OF.js → dev-server-CYRP6M73.js} +19 -19
- package/dist/{feedback-EZWF5CAL.js → feedback-BMAZGKRW.js} +16 -16
- package/dist/{git-GTLKAZRJ.js → git-BXUD6CL5.js} +6 -6
- package/dist/ignite-IO4LXVXJ.js +35 -0
- package/dist/index.d.ts +39 -65
- package/dist/index.js +634 -107
- package/dist/index.js.map +1 -1
- package/dist/{init-ZB2RITW6.js → init-CI43GJHV.js} +17 -17
- package/dist/{init-ZB2RITW6.js.map → init-CI43GJHV.js.map} +1 -1
- package/dist/{install-deps-RLSGSHH7.js → install-deps-SRTM5U7D.js} +11 -11
- package/dist/{installation-detector-MMFWLJYN.js → installation-detector-HF6QN7KP.js} +3 -3
- package/dist/{issues-4UUAQ5K6.js → issues-DMRQJH7E.js} +15 -15
- package/dist/lint-BSWRMGPZ.js +27 -0
- package/dist/linux-RYLOP2LY.js +103 -0
- package/dist/linux-RYLOP2LY.js.map +1 -0
- package/dist/mcp/chunk-PIIRD4LO.js +373 -0
- package/dist/mcp/chunk-PIIRD4LO.js.map +1 -0
- package/dist/mcp/darwin-3JFFE3W2.js +10 -0
- package/dist/mcp/issue-management-server.js +23 -127
- package/dist/mcp/issue-management-server.js.map +1 -1
- package/dist/mcp/linux-JBVS4R3A.js +103 -0
- package/dist/mcp/linux-JBVS4R3A.js.map +1 -0
- package/dist/mcp/tmux-RYBLEHUZ.js +156 -0
- package/dist/mcp/tmux-RYBLEHUZ.js.map +1 -0
- package/dist/mcp/wsl-4QZIQLLE.js +78 -0
- package/dist/mcp/wsl-4QZIQLLE.js.map +1 -0
- package/dist/neon-helpers-HWIYRKOW.js +11 -0
- package/dist/{open-FXWW3VI4.js → open-2Y7GSUTJ.js} +19 -19
- package/dist/{plan-D3KSN5MU.js → plan-SWFPLNJE.js} +47 -46
- package/dist/{plan-D3KSN5MU.js.map → plan-SWFPLNJE.js.map} +1 -1
- package/dist/{projects-2UOXFLNZ.js → projects-IUSUXD5D.js} +6 -6
- package/dist/{prompt-ONNPSNKM.js → prompt-7LZB4PAT.js} +3 -3
- package/dist/prompts/init-prompt.txt +56 -107
- package/dist/prompts/issue-prompt.txt +57 -11
- package/dist/prompts/pr-prompt.txt +154 -4
- package/dist/prompts/regular-prompt.txt +20 -3
- package/dist/prompts/swarm-orchestrator-prompt.txt +114 -8
- package/dist/{rebase-62FDLIH4.js → rebase-S6OHAOOF.js} +12 -12
- package/dist/{recap-OMBOKJST.js → recap-GGVCG5VH.js} +9 -9
- package/dist/{remote-IJAMOEAP.js → remote-MZTFHHTU.js} +3 -3
- package/dist/remote-MZTFHHTU.js.map +1 -0
- package/dist/{run-BBXLRIZB.js → run-ST3FR75O.js} +19 -19
- package/dist/schema/settings.schema.json +8 -49
- package/dist/{shell-RF7LTND5.js → shell-W4SBQPTE.js} +8 -8
- package/dist/{summary-YZI25KW4.js → summary-P2JCIIJO.js} +17 -17
- package/dist/test-6JH4FE2X.js +27 -0
- package/dist/{test-git-XM4TM65W.js → test-git-2KFFAQ6B.js} +6 -6
- package/dist/{test-jira-LDTOYFSD.js → test-jira-FKDKG6CD.js} +8 -8
- package/dist/{test-prefix-GBO37XCN.js → test-prefix-GP2DAX37.js} +11 -11
- package/dist/test-prefix-GP2DAX37.js.map +1 -0
- package/dist/{test-tabs-D3POYOJ5.js → test-tabs-YDWMWTVA.js} +3 -3
- package/dist/{test-webserver-NZ3JTVLL.js → test-webserver-QI3QQFZ3.js} +8 -8
- package/dist/tmux-7ZTA3BDI.js +156 -0
- package/dist/tmux-7ZTA3BDI.js.map +1 -0
- package/dist/{update-HJKDYA3F.js → update-XLW7R7FL.js} +4 -4
- package/dist/{update-notifier-LBAUOOLM.js → update-notifier-EYLAXZAA.js} +3 -3
- package/dist/update-notifier-EYLAXZAA.js.map +1 -0
- package/dist/{vscode-6XUGHJKL.js → vscode-TOGE5N67.js} +13 -13
- package/dist/{vscode-announcement-EQ2SKK3T.js → vscode-announcement-NIX7O2MG.js} +3 -3
- package/dist/wsl-Y4GUTOQ7.js +78 -0
- package/dist/wsl-Y4GUTOQ7.js.map +1 -0
- package/package.json +4 -2
- package/dist/ClaudeContextManager-ZKTUVQB2.js +0 -14
- package/dist/ClaudeService-TRWOYQ6O.js +0 -13
- package/dist/GitHubService-MEHKHUQP.js +0 -12
- package/dist/IssueTrackerFactory-NG53YX5S.js +0 -14
- package/dist/LoomLauncher-FRECYMXS.js.map +0 -1
- package/dist/MetadataManager-5QZSTKNN.js +0 -10
- package/dist/ProjectCapabilityDetector-5KSYUTBJ.js +0 -11
- package/dist/SettingsMigrationManager-LEBMJP3B.js +0 -10
- package/dist/build-VHGEMXBA.js +0 -27
- package/dist/chunk-3F27M7ZD.js.map +0 -1
- package/dist/chunk-7VHJNVLF.js.map +0 -1
- package/dist/chunk-BFHDVFSK.js.map +0 -1
- package/dist/chunk-C6HNNJIV.js.map +0 -1
- package/dist/chunk-HYGUPUV5.js.map +0 -1
- package/dist/chunk-KB64WNBZ.js.map +0 -1
- package/dist/chunk-PZ5WSR5Z.js.map +0 -1
- package/dist/chunk-RJ3VBUFK.js.map +0 -1
- package/dist/chunk-RSYT7MVI.js.map +0 -1
- package/dist/chunk-SWSJWA2S.js.map +0 -1
- package/dist/chunk-UUEW5KWB.js.map +0 -1
- package/dist/chunk-VT4PDUYT.js.map +0 -1
- package/dist/chunk-ZGM2FE2R.js.map +0 -1
- package/dist/ignite-MQETGFNA.js +0 -34
- package/dist/lint-AAN2NZWG.js +0 -27
- package/dist/neon-helpers-CQN2PB4S.js +0 -11
- package/dist/test-SGO6I5Z7.js +0 -27
- package/dist/test-prefix-GBO37XCN.js.map +0 -1
- /package/dist/{BranchNamingService-4OP6LOH6.js.map → BranchNamingService-XBCO747L.js.map} +0 -0
- /package/dist/{ClaudeContextManager-ZKTUVQB2.js.map → ClaudeContextManager-SXDCWDJA.js.map} +0 -0
- /package/dist/{ClaudeService-TRWOYQ6O.js.map → ClaudeService-6E6MCGJE.js.map} +0 -0
- /package/dist/{GitHubService-MEHKHUQP.js.map → GitHubService-2R5GQG4K.js.map} +0 -0
- /package/dist/{IssueTrackerFactory-NG53YX5S.js.map → IssueTrackerFactory-XN6MQ4UN.js.map} +0 -0
- /package/dist/{MetadataManager-5QZSTKNN.js.map → MetadataManager-CMQQTFLQ.js.map} +0 -0
- /package/dist/{ProjectCapabilityDetector-5KSYUTBJ.js.map → ProjectCapabilityDetector-IC6NAFGY.js.map} +0 -0
- /package/dist/{PromptTemplateManager-YOE2SIPG.js.map → PromptTemplateManager-T5VTLJP3.js.map} +0 -0
- /package/dist/{SettingsManager-FNKCOZMQ.js.map → SettingsManager-WQ5NSGAH.js.map} +0 -0
- /package/dist/{SettingsMigrationManager-LEBMJP3B.js.map → SettingsMigrationManager-S6J7OHUH.js.map} +0 -0
- /package/dist/{build-VHGEMXBA.js.map → build-OLS6J5KZ.js.map} +0 -0
- /package/dist/{chunk-WWKOVDWC.js.map → chunk-3GTUXW26.js.map} +0 -0
- /package/dist/{chunk-4FGEGQW4.js.map → chunk-3RXYOBME.js.map} +0 -0
- /package/dist/{chunk-HEXKPKCK.js.map → chunk-5LTID2AF.js.map} +0 -0
- /package/dist/{chunk-G5V75JD5.js.map → chunk-5PNZBH6V.js.map} +0 -0
- /package/dist/{chunk-XE4BDRZD.js.map → chunk-6YVJVUR4.js.map} +0 -0
- /package/dist/{chunk-QFTDZ5E3.js.map → chunk-7NFCGKZT.js.map} +0 -0
- /package/dist/{chunk-433MOLAU.js.map → chunk-7OCGBJLR.js.map} +0 -0
- /package/dist/{chunk-2VEWSM34.js.map → chunk-ABVMUNCD.js.map} +0 -0
- /package/dist/{chunk-7JDMYTFZ.js.map → chunk-CV47VCMQ.js.map} +0 -0
- /package/dist/{chunk-MORRVYPT.js.map → chunk-G2MNSPA4.js.map} +0 -0
- /package/dist/{chunk-LLHXQS3C.js.map → chunk-HLDY5S4C.js.map} +0 -0
- /package/dist/{chunk-BYUMEDDD.js.map → chunk-IDCE26KD.js.map} +0 -0
- /package/dist/{chunk-O7VL5N6S.js.map → chunk-K7R5QY6C.js.map} +0 -0
- /package/dist/{chunk-BU53XIGY.js.map → chunk-KQFIGI37.js.map} +0 -0
- /package/dist/{chunk-I5T677EA.js.map → chunk-LE2NOUTN.js.map} +0 -0
- /package/dist/{chunk-KXDRI47U.js.map → chunk-LHDD4JHC.js.map} +0 -0
- /package/dist/{chunk-2YZCWAVZ.js.map → chunk-LL6TOX3G.js.map} +0 -0
- /package/dist/{chunk-YQ57ORTV.js.map → chunk-NCPZYQ4B.js.map} +0 -0
- /package/dist/{chunk-EWJFUFPT.js.map → chunk-NDSGJZI2.js.map} +0 -0
- /package/dist/{chunk-VG45TUYK.js.map → chunk-NH3QZYE5.js.map} +0 -0
- /package/dist/{chunk-BFLMCE2U.js.map → chunk-NN5RYWXA.js.map} +0 -0
- /package/dist/{chunk-KIK2ZFAL.js.map → chunk-QNHZM5ZV.js.map} +0 -0
- /package/dist/{chunk-V3SVMFDQ.js.map → chunk-QR4FU53I.js.map} +0 -0
- /package/dist/{chunk-FXDYIV3K.js.map → chunk-QVAA5KHK.js.map} +0 -0
- /package/dist/{chunk-NGJZ4TOU.js.map → chunk-RBYTXYGD.js.map} +0 -0
- /package/dist/{chunk-CVCTIDDK.js.map → chunk-RVI6C2H5.js.map} +0 -0
- /package/dist/{chunk-Q7POFB5Q.js.map → chunk-SQYHPBFP.js.map} +0 -0
- /package/dist/{chunk-QZWEJVWV.js.map → chunk-TZNNJLGT.js.map} +0 -0
- /package/dist/{chunk-63QWFWH3.js.map → chunk-UDCI3QTS.js.map} +0 -0
- /package/dist/{chunk-UKBAJ2QQ.js.map → chunk-UHIBKD73.js.map} +0 -0
- /package/dist/{chunk-WXIM2WS7.js.map → chunk-V4STTBQD.js.map} +0 -0
- /package/dist/{chunk-P4O6EH46.js.map → chunk-VMZG66UV.js.map} +0 -0
- /package/dist/{chunk-LUKXJSRI.js.map → chunk-XXFSOVL3.js.map} +0 -0
- /package/dist/{chunk-6MLEBAYZ.js.map → chunk-ZAXRQLK3.js.map} +0 -0
- /package/dist/{claude-LN7OWVNI.js.map → claude-ONQTDWV3.js.map} +0 -0
- /package/dist/{color-4TJ4P5EY.js.map → color-VQD52LOI.js.map} +0 -0
- /package/dist/{commit-4CFLXRZ3.js.map → commit-DC2Q5CDY.js.map} +0 -0
- /package/dist/{compile-7ALJHZ4N.js.map → compile-4NCQECKE.js.map} +0 -0
- /package/dist/{contribute-5GKLK3BQ.js.map → contribute-M5UWXCAV.js.map} +0 -0
- /package/dist/{git-GTLKAZRJ.js.map → darwin-5BHWRJ7D.js.map} +0 -0
- /package/dist/{dev-server-7SMIB7OF.js.map → dev-server-CYRP6M73.js.map} +0 -0
- /package/dist/{feedback-EZWF5CAL.js.map → feedback-BMAZGKRW.js.map} +0 -0
- /package/dist/{ignite-MQETGFNA.js.map → git-BXUD6CL5.js.map} +0 -0
- /package/dist/{installation-detector-MMFWLJYN.js.map → ignite-IO4LXVXJ.js.map} +0 -0
- /package/dist/{install-deps-RLSGSHH7.js.map → install-deps-SRTM5U7D.js.map} +0 -0
- /package/dist/{neon-helpers-CQN2PB4S.js.map → installation-detector-HF6QN7KP.js.map} +0 -0
- /package/dist/{issues-4UUAQ5K6.js.map → issues-DMRQJH7E.js.map} +0 -0
- /package/dist/{lint-AAN2NZWG.js.map → lint-BSWRMGPZ.js.map} +0 -0
- /package/dist/{prompt-ONNPSNKM.js.map → mcp/darwin-3JFFE3W2.js.map} +0 -0
- /package/dist/{remote-IJAMOEAP.js.map → neon-helpers-HWIYRKOW.js.map} +0 -0
- /package/dist/{open-FXWW3VI4.js.map → open-2Y7GSUTJ.js.map} +0 -0
- /package/dist/{projects-2UOXFLNZ.js.map → projects-IUSUXD5D.js.map} +0 -0
- /package/dist/{update-notifier-LBAUOOLM.js.map → prompt-7LZB4PAT.js.map} +0 -0
- /package/dist/{rebase-62FDLIH4.js.map → rebase-S6OHAOOF.js.map} +0 -0
- /package/dist/{recap-OMBOKJST.js.map → recap-GGVCG5VH.js.map} +0 -0
- /package/dist/{run-BBXLRIZB.js.map → run-ST3FR75O.js.map} +0 -0
- /package/dist/{shell-RF7LTND5.js.map → shell-W4SBQPTE.js.map} +0 -0
- /package/dist/{summary-YZI25KW4.js.map → summary-P2JCIIJO.js.map} +0 -0
- /package/dist/{test-SGO6I5Z7.js.map → test-6JH4FE2X.js.map} +0 -0
- /package/dist/{test-git-XM4TM65W.js.map → test-git-2KFFAQ6B.js.map} +0 -0
- /package/dist/{test-jira-LDTOYFSD.js.map → test-jira-FKDKG6CD.js.map} +0 -0
- /package/dist/{test-tabs-D3POYOJ5.js.map → test-tabs-YDWMWTVA.js.map} +0 -0
- /package/dist/{test-webserver-NZ3JTVLL.js.map → test-webserver-QI3QQFZ3.js.map} +0 -0
- /package/dist/{update-HJKDYA3F.js.map → update-XLW7R7FL.js.map} +0 -0
- /package/dist/{vscode-6XUGHJKL.js.map → vscode-TOGE5N67.js.map} +0 -0
- /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-
|
|
4
|
+
} from "./chunk-3RXYOBME.js";
|
|
5
5
|
import {
|
|
6
6
|
extractPort,
|
|
7
7
|
findEnvFileContainingVariable,
|
|
8
8
|
logger,
|
|
9
9
|
parseEnvFile
|
|
10
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
4
|
+
} from "./chunk-CV47VCMQ.js";
|
|
5
5
|
import {
|
|
6
6
|
logger
|
|
7
|
-
} from "./chunk-
|
|
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-
|
|
147
|
+
//# sourceMappingURL=chunk-IDCE26KD.js.map
|
|
@@ -2,71 +2,77 @@
|
|
|
2
2
|
import {
|
|
3
3
|
buildDependencyMap,
|
|
4
4
|
fetchChildIssueDetails
|
|
5
|
-
} from "./chunk-
|
|
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-
|
|
19
|
+
} from "./chunk-RMLADZRY.js";
|
|
9
20
|
import {
|
|
10
21
|
getWorkspacePort
|
|
11
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-HLDY5S4C.js";
|
|
12
23
|
import {
|
|
13
24
|
installDependencies
|
|
14
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-3GTUXW26.js";
|
|
15
26
|
import {
|
|
16
|
-
|
|
17
|
-
} from "./chunk-
|
|
27
|
+
extractSettingsOverrides
|
|
28
|
+
} from "./chunk-GYCR2LOU.js";
|
|
18
29
|
import {
|
|
19
|
-
|
|
20
|
-
} from "./chunk-
|
|
30
|
+
TelemetryService
|
|
31
|
+
} from "./chunk-GMDSYLI6.js";
|
|
21
32
|
import {
|
|
22
33
|
FirstRunManager
|
|
23
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
46
|
+
} from "./chunk-Y3RX7LZT.js";
|
|
35
47
|
import {
|
|
36
48
|
PromptTemplateManager,
|
|
37
49
|
buildReviewTemplateVariables
|
|
38
|
-
} from "./chunk-
|
|
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-
|
|
57
|
+
} from "./chunk-3RXYOBME.js";
|
|
49
58
|
import {
|
|
50
59
|
SettingsManager
|
|
51
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-ET6A2JR4.js";
|
|
52
61
|
import {
|
|
53
62
|
MetadataManager
|
|
54
|
-
} from "./chunk-
|
|
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-
|
|
67
|
+
} from "./chunk-ZAXRQLK3.js";
|
|
62
68
|
import {
|
|
63
69
|
createStderrLogger,
|
|
64
70
|
logger
|
|
65
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-H2SSF24U.js";
|
|
66
72
|
|
|
67
73
|
// src/commands/ignite.ts
|
|
68
|
-
import
|
|
69
|
-
import
|
|
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
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
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
|
|
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:
|
|
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 =
|
|
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 =
|
|
1193
|
-
await
|
|
1194
|
-
await
|
|
1195
|
-
|
|
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
|
-
|
|
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 =
|
|
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 = (
|
|
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 = ((
|
|
1387
|
+
const autoCommitPushEnabled = ((_c = settings.mergeBehavior) == null ? void 0 : _c.autoCommitPush) !== false;
|
|
1263
1388
|
variables.AUTO_COMMIT_PUSH = autoCommitPushEnabled;
|
|
1264
|
-
const remote = ((
|
|
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
|
-
|
|
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
|
|
1314
|
-
|
|
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 =
|
|
1378
|
-
while (currentDir !==
|
|
1379
|
-
const readmePath =
|
|
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 =
|
|
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 =
|
|
1402
|
-
while (currentDir !==
|
|
1403
|
-
const schemaPath =
|
|
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 =
|
|
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-
|
|
1560
|
+
//# sourceMappingURL=chunk-IR74O2F6.js.map
|