@iloom/cli 0.13.1 → 0.13.3

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 (148) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/CLAUDE.md +66 -0
  4. package/dist/{ClaudeContextManager-ZH6LEA5I.js → ClaudeContextManager-KJ4VEA2F.js} +5 -5
  5. package/dist/{ClaudeService-YR66WXZN.js → ClaudeService-WTJO4UW6.js} +4 -4
  6. package/dist/{IssueTrackerFactory-O2ZBA666.js → IssueTrackerFactory-UEJALI4X.js} +3 -3
  7. package/dist/{LoomLauncher-V54ENBEF.js → LoomLauncher-KG2VBNQA.js} +5 -5
  8. package/dist/{PromptTemplateManager-4RFELNYY.js → PromptTemplateManager-QIUVJP6S.js} +2 -2
  9. package/dist/README.md +1 -1
  10. package/dist/{SettingsManager-SLSYEYDZ.js → SettingsManager-PVHBSCMI.js} +2 -2
  11. package/dist/agents/CLAUDE.md +68 -0
  12. package/dist/agents/iloom-code-reviewer.md +1 -0
  13. package/dist/agents/iloom-wave-verifier.md +1 -36
  14. package/dist/{build-ZTGWDHWU.js → build-2FXDYEZQ.js} +6 -6
  15. package/dist/{chunk-LNY2Y32V.js → chunk-2WRD6Y5E.js} +2 -2
  16. package/dist/{chunk-WYDLOQYO.js → chunk-32D4CWWH.js} +2 -2
  17. package/dist/{chunk-KGOBNC5A.js → chunk-5W44AI63.js} +3 -3
  18. package/dist/{chunk-PPQ5LV7U.js → chunk-D6FU4DLN.js} +2 -2
  19. package/dist/{chunk-PS6K2AOV.js → chunk-DMNI225H.js} +4 -4
  20. package/dist/{chunk-55NTREIU.js → chunk-DYLOITSO.js} +55 -35
  21. package/dist/chunk-DYLOITSO.js.map +1 -0
  22. package/dist/{chunk-T4KFKKEB.js → chunk-H4TSDALC.js} +6 -6
  23. package/dist/{chunk-J5JOJPK3.js → chunk-L3P3YJCE.js} +2 -2
  24. package/dist/{chunk-MRPIDNZU.js → chunk-LDE6VNG5.js} +1 -1
  25. package/dist/chunk-LDE6VNG5.js.map +1 -0
  26. package/dist/{chunk-F5NKWLMQ.js → chunk-MNPKEWBQ.js} +9 -5
  27. package/dist/chunk-MNPKEWBQ.js.map +1 -0
  28. package/dist/{chunk-EHAITKLS.js → chunk-MPHSR6GA.js} +3 -3
  29. package/dist/{chunk-HWDQRW3O.js → chunk-OHX3PSAY.js} +2 -2
  30. package/dist/{chunk-C2BVNJW5.js → chunk-OIJNBFMP.js} +2 -2
  31. package/dist/{chunk-TJDKGKQV.js → chunk-OMV47LLA.js} +2 -2
  32. package/dist/{chunk-P5MNWBLH.js → chunk-OVW26FHW.js} +19 -7
  33. package/dist/chunk-OVW26FHW.js.map +1 -0
  34. package/dist/{chunk-QNRXRSKC.js → chunk-RP6MHV24.js} +9 -9
  35. package/dist/chunk-RP6MHV24.js.map +1 -0
  36. package/dist/{chunk-UXBVDD7U.js → chunk-U2OPXZ6E.js} +282 -44
  37. package/dist/chunk-U2OPXZ6E.js.map +1 -0
  38. package/dist/{chunk-T4NESGYB.js → chunk-UMAOVKQX.js} +3 -3
  39. package/dist/{chunk-E5OM25WK.js → chunk-UQWMPQ2Q.js} +2 -2
  40. package/dist/{chunk-ZEFTWM5Z.js → chunk-VUIPDX3T.js} +2 -2
  41. package/dist/{chunk-GQDVH6FA.js → chunk-XC5JKRSH.js} +2 -2
  42. package/dist/{chunk-G2DGDCDP.js → chunk-Y2JHYPMX.js} +15 -13
  43. package/dist/chunk-Y2JHYPMX.js.map +1 -0
  44. package/dist/{chunk-ERMEYFT6.js → chunk-YVNG35OW.js} +2 -2
  45. package/dist/{chunk-7TN5VW4I.js → chunk-Z32HPRZF.js} +2 -1
  46. package/dist/chunk-Z32HPRZF.js.map +1 -0
  47. package/dist/{chunk-KCAWSZUO.js → chunk-Z3ZEJN3W.js} +13 -13
  48. package/dist/{chunk-GPBX2BY2.js → chunk-ZWXJ7G2C.js} +2 -2
  49. package/dist/{cleanup-BCVY7PEF.js → cleanup-W5FP3UKK.js} +16 -16
  50. package/dist/cli.js +115 -68
  51. package/dist/cli.js.map +1 -1
  52. package/dist/{commit-L5JNBU4U.js → commit-7RI2JFFW.js} +6 -6
  53. package/dist/{compile-GPJOHXH4.js → compile-NWTMKAGL.js} +6 -6
  54. package/dist/{contribute-QEGCI4PS.js → contribute-QWPOT4QR.js} +3 -3
  55. package/dist/{dev-server-UQKNKU2S.js → dev-server-U2XUN57X.js} +61 -30
  56. package/dist/dev-server-U2XUN57X.js.map +1 -0
  57. package/dist/{feedback-2LWXKLQZ.js → feedback-M43SGGK2.js} +4 -4
  58. package/dist/{git-IS7AV3ED.js → git-ZTMT6OAI.js} +3 -3
  59. package/dist/{ignite-VQDJQ37S.js → ignite-GUYKYC5G.js} +11 -11
  60. package/dist/index.d.ts +30 -3
  61. package/dist/index.js +8 -4
  62. package/dist/index.js.map +1 -1
  63. package/dist/{init-7SDJUAEZ.js → init-AMLCFVXG.js} +9 -7
  64. package/dist/init-AMLCFVXG.js.map +1 -0
  65. package/dist/{install-deps-NGSFDNUW.js → install-deps-XS2UUCUS.js} +6 -6
  66. package/dist/{issues-4HQKEUP7.js → issues-2IT7PSNZ.js} +4 -4
  67. package/dist/{lint-C5FOVRXY.js → lint-DKWJHET3.js} +6 -6
  68. package/dist/mcp/issue-management-server.js +8 -4
  69. package/dist/mcp/issue-management-server.js.map +1 -1
  70. package/dist/{open-2HL6GV5F.js → open-XIUV5JMJ.js} +16 -15
  71. package/dist/open-XIUV5JMJ.js.map +1 -0
  72. package/dist/{plan-GC3HF73T.js → plan-UPYDB34J.js} +20 -20
  73. package/dist/prompts/epic-report-prompt.txt +145 -0
  74. package/dist/prompts/init-prompt.txt +32 -9
  75. package/dist/prompts/issue-prompt.txt +1 -1
  76. package/dist/prompts/swarm-orchestrator-prompt.txt +50 -6
  77. package/dist/{rebase-MLIN572O.js → rebase-6AXN45AE.js} +5 -5
  78. package/dist/{recap-CKGKFDJL.js → recap-XDKI3MTA.js} +6 -6
  79. package/dist/{run-CUNRQNZS.js → run-VOGGJGPO.js} +19 -19
  80. package/dist/run-VOGGJGPO.js.map +1 -0
  81. package/dist/schema/settings.schema.json +14 -0
  82. package/dist/{shell-M2YYPNGV.js → shell-XOILFEZW.js} +5 -5
  83. package/dist/{summary-XR4CBJEG.js → summary-BVYOM63C.js} +10 -8
  84. package/dist/{summary-XR4CBJEG.js.map → summary-BVYOM63C.js.map} +1 -1
  85. package/dist/{test-ESDAHEVE.js → test-6T2UMQ7T.js} +6 -6
  86. package/dist/{test-git-KWPLHYSI.js → test-git-CQ65OL45.js} +3 -3
  87. package/dist/{test-jira-6NK7UHSV.js → test-jira-CQQHGZ3S.js} +3 -3
  88. package/dist/{test-prefix-VVODGHXP.js → test-prefix-HMTZSS67.js} +3 -3
  89. package/dist/{test-webserver-AHXKC6H4.js → test-webserver-ZN73CM2T.js} +5 -5
  90. package/dist/{vscode-OY7HOVRO.js → vscode-ABQ5ZSH7.js} +5 -5
  91. package/package.json +1 -1
  92. package/dist/chunk-55NTREIU.js.map +0 -1
  93. package/dist/chunk-7TN5VW4I.js.map +0 -1
  94. package/dist/chunk-F5NKWLMQ.js.map +0 -1
  95. package/dist/chunk-G2DGDCDP.js.map +0 -1
  96. package/dist/chunk-MRPIDNZU.js.map +0 -1
  97. package/dist/chunk-P5MNWBLH.js.map +0 -1
  98. package/dist/chunk-QNRXRSKC.js.map +0 -1
  99. package/dist/chunk-UXBVDD7U.js.map +0 -1
  100. package/dist/dev-server-UQKNKU2S.js.map +0 -1
  101. package/dist/init-7SDJUAEZ.js.map +0 -1
  102. package/dist/open-2HL6GV5F.js.map +0 -1
  103. package/dist/run-CUNRQNZS.js.map +0 -1
  104. /package/dist/{ClaudeContextManager-ZH6LEA5I.js.map → ClaudeContextManager-KJ4VEA2F.js.map} +0 -0
  105. /package/dist/{ClaudeService-YR66WXZN.js.map → ClaudeService-WTJO4UW6.js.map} +0 -0
  106. /package/dist/{IssueTrackerFactory-O2ZBA666.js.map → IssueTrackerFactory-UEJALI4X.js.map} +0 -0
  107. /package/dist/{LoomLauncher-V54ENBEF.js.map → LoomLauncher-KG2VBNQA.js.map} +0 -0
  108. /package/dist/{PromptTemplateManager-4RFELNYY.js.map → PromptTemplateManager-QIUVJP6S.js.map} +0 -0
  109. /package/dist/{SettingsManager-SLSYEYDZ.js.map → SettingsManager-PVHBSCMI.js.map} +0 -0
  110. /package/dist/{build-ZTGWDHWU.js.map → build-2FXDYEZQ.js.map} +0 -0
  111. /package/dist/{chunk-LNY2Y32V.js.map → chunk-2WRD6Y5E.js.map} +0 -0
  112. /package/dist/{chunk-WYDLOQYO.js.map → chunk-32D4CWWH.js.map} +0 -0
  113. /package/dist/{chunk-KGOBNC5A.js.map → chunk-5W44AI63.js.map} +0 -0
  114. /package/dist/{chunk-PPQ5LV7U.js.map → chunk-D6FU4DLN.js.map} +0 -0
  115. /package/dist/{chunk-PS6K2AOV.js.map → chunk-DMNI225H.js.map} +0 -0
  116. /package/dist/{chunk-T4KFKKEB.js.map → chunk-H4TSDALC.js.map} +0 -0
  117. /package/dist/{chunk-J5JOJPK3.js.map → chunk-L3P3YJCE.js.map} +0 -0
  118. /package/dist/{chunk-EHAITKLS.js.map → chunk-MPHSR6GA.js.map} +0 -0
  119. /package/dist/{chunk-HWDQRW3O.js.map → chunk-OHX3PSAY.js.map} +0 -0
  120. /package/dist/{chunk-C2BVNJW5.js.map → chunk-OIJNBFMP.js.map} +0 -0
  121. /package/dist/{chunk-TJDKGKQV.js.map → chunk-OMV47LLA.js.map} +0 -0
  122. /package/dist/{chunk-T4NESGYB.js.map → chunk-UMAOVKQX.js.map} +0 -0
  123. /package/dist/{chunk-E5OM25WK.js.map → chunk-UQWMPQ2Q.js.map} +0 -0
  124. /package/dist/{chunk-ZEFTWM5Z.js.map → chunk-VUIPDX3T.js.map} +0 -0
  125. /package/dist/{chunk-GQDVH6FA.js.map → chunk-XC5JKRSH.js.map} +0 -0
  126. /package/dist/{chunk-ERMEYFT6.js.map → chunk-YVNG35OW.js.map} +0 -0
  127. /package/dist/{chunk-KCAWSZUO.js.map → chunk-Z3ZEJN3W.js.map} +0 -0
  128. /package/dist/{chunk-GPBX2BY2.js.map → chunk-ZWXJ7G2C.js.map} +0 -0
  129. /package/dist/{cleanup-BCVY7PEF.js.map → cleanup-W5FP3UKK.js.map} +0 -0
  130. /package/dist/{commit-L5JNBU4U.js.map → commit-7RI2JFFW.js.map} +0 -0
  131. /package/dist/{compile-GPJOHXH4.js.map → compile-NWTMKAGL.js.map} +0 -0
  132. /package/dist/{contribute-QEGCI4PS.js.map → contribute-QWPOT4QR.js.map} +0 -0
  133. /package/dist/{feedback-2LWXKLQZ.js.map → feedback-M43SGGK2.js.map} +0 -0
  134. /package/dist/{git-IS7AV3ED.js.map → git-ZTMT6OAI.js.map} +0 -0
  135. /package/dist/{ignite-VQDJQ37S.js.map → ignite-GUYKYC5G.js.map} +0 -0
  136. /package/dist/{install-deps-NGSFDNUW.js.map → install-deps-XS2UUCUS.js.map} +0 -0
  137. /package/dist/{issues-4HQKEUP7.js.map → issues-2IT7PSNZ.js.map} +0 -0
  138. /package/dist/{lint-C5FOVRXY.js.map → lint-DKWJHET3.js.map} +0 -0
  139. /package/dist/{plan-GC3HF73T.js.map → plan-UPYDB34J.js.map} +0 -0
  140. /package/dist/{rebase-MLIN572O.js.map → rebase-6AXN45AE.js.map} +0 -0
  141. /package/dist/{recap-CKGKFDJL.js.map → recap-XDKI3MTA.js.map} +0 -0
  142. /package/dist/{shell-M2YYPNGV.js.map → shell-XOILFEZW.js.map} +0 -0
  143. /package/dist/{test-ESDAHEVE.js.map → test-6T2UMQ7T.js.map} +0 -0
  144. /package/dist/{test-git-KWPLHYSI.js.map → test-git-CQ65OL45.js.map} +0 -0
  145. /package/dist/{test-jira-6NK7UHSV.js.map → test-jira-CQQHGZ3S.js.map} +0 -0
  146. /package/dist/{test-prefix-VVODGHXP.js.map → test-prefix-HMTZSS67.js.map} +0 -0
  147. /package/dist/{test-webserver-AHXKC6H4.js.map → test-webserver-ZN73CM2T.js.map} +0 -0
  148. /package/dist/{vscode-OY7HOVRO.js.map → vscode-ABQ5ZSH7.js.map} +0 -0
package/LICENSE CHANGED
@@ -20,7 +20,7 @@ it within your organization. What is prohibited is redistributing or offering
20
20
  access to this software (in original or modified form) as part of something
21
21
  you sell or provide to others.
22
22
 
23
- Change Date: 2030-03-16
23
+ Change Date: 2030-03-21
24
24
  Change License: Apache License 2.0
25
25
 
26
26
  For clarity, on or after the Change Date, the Licensed Work will
package/README.md CHANGED
@@ -880,7 +880,7 @@ License & Name
880
880
 
881
881
  * ❌ You cannot resell iloom itself as a product or SaaS.
882
882
 
883
- * Converts to Apache 2.0 on 2030-03-16.
883
+ * Converts to Apache 2.0 on 2030-03-21.
884
884
 
885
885
 
886
886
  See [LICENSE](https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/LICENSE) for complete terms.
package/dist/CLAUDE.md ADDED
@@ -0,0 +1,66 @@
1
+ # templates/
2
+
3
+ > **Maintenance:** Keep this file in sync with the directory contents. If you add, remove, or change the responsibility of a template, update the relevant section below.
4
+
5
+ This directory contains the template system that generates prompts and agent definitions for Claude Code sessions. Templates are rendered by `PromptTemplateManager` using Handlebars and copied to `dist/templates/` at build time.
6
+
7
+ ## Prompt Ownership Table
8
+
9
+ Each prompt template belongs to exactly one execution context. Editing the wrong template is a common mistake — check this table first:
10
+
11
+ | Template | Execution Context | Used By | Purpose |
12
+ |----------|------------------|---------|---------|
13
+ | `prompts/issue-prompt.txt` | Regular + Swarm child | `il spin` (single issue) | Main workflow: phase agents execute analysis → planning → implementation → review |
14
+ | `prompts/swarm-orchestrator-prompt.txt` | Swarm orchestrator only | `il spin` (epic) | 5-phase orchestration: parse children, spawn workers, monitor, merge, finalize |
15
+ | `prompts/plan-prompt.txt` | Plan mode only | `il plan` | Architect agent: decompose work into issues, no implementation |
16
+ | `prompts/pr-prompt.txt` | Regular (PR workflow) | `il spin` (PR) | PR-specific instructions for reviewing and implementing PR feedback |
17
+ | `prompts/regular-prompt.txt` | Regular (branch workflow) | `il spin` (branch) | Ad-hoc branch work without an issue |
18
+ | `prompts/init-prompt.txt` | Setup | `il init` | First-run project configuration |
19
+ | `prompts/session-summary-prompt.txt` | Regular (finish) | `il finish` | Generate session recap on loom completion |
20
+ | `prompts/epic-report-prompt.txt` | Swarm (post-completion) | Orchestrator | Epic completion report after all children finish |
21
+
22
+ ## Handlebars Conventions
23
+
24
+ - **Variables**: `{{VARIABLE_NAME}}` — uppercase with underscores, defined in `TemplateVariables` interface
25
+ - **Conditionals**: `{{#if FLAG_NAME}}...{{/if}}` and `{{#unless FLAG_NAME}}...{{/unless}}`
26
+ - **Raw blocks**: `{{{{raw}}}}{{VARIABLE}}{{{{/raw}}}}` — for JSON content that contains literal braces
27
+ - **Variable source**: `PromptTemplateManager.renderTemplate()` accepts a `TemplateVariables` object with 100+ fields. Check the interface definition before adding new variables.
28
+
29
+ ## Swarm Mode in issue-prompt.txt
30
+
31
+ `issue-prompt.txt` serves double duty — it's used for both regular single-issue work and swarm child workers. The `SWARM_MODE` flag controls the differences:
32
+
33
+ - **`SWARM_MODE=false` (regular)**: Full interactive workflow, optional user checkpoints, recap writes to loom's recap file
34
+ - **`SWARM_MODE=true` (swarm child)**: Fully autonomous, no user interaction, MUST pass `worktreePath` on all recap calls, single comment output at end, reports success/failure back to orchestrator
35
+
36
+ ## Agent Workflow Todo Lists
37
+
38
+ The todo list in `prompts/issue-prompt.txt` is critical for ensuring agents follow the implementation plan correctly.
39
+
40
+ **Why the Todo List Matters:**
41
+ - Agents use the todo list as both a progress tracker and an execution checklist
42
+ - Each numbered item represents a workflow step that must be completed
43
+ - Agents check off items as they complete each step, providing visibility into progress
44
+ - The todo list serves as the source of truth for what steps need to be executed
45
+
46
+ **When Adding New Workflow Steps:**
47
+ - New workflow steps MUST be added to the todo list to ensure they are executed
48
+ - Position the item appropriately based on when it should run in the workflow
49
+ - Use Handlebars conditionals (e.g., `{{#if FLAG_NAME}}`) when steps are conditional
50
+ - Ensure numbering remains sequential within each conditional branch
51
+
52
+ **Example — Adding a Conditional Step:**
53
+ ```handlebars
54
+ {{#if SOME_MODE}}
55
+ {{#if SOME_FLAG}}
56
+ 17. Execute conditional step (STEP X.X)
57
+ 18. Next step...
58
+ {{else}}
59
+ 17. Next step...
60
+ {{/if}}
61
+ {{else}}
62
+ 17. Next step...
63
+ {{/if}}
64
+ ```
65
+
66
+ Without the todo list entry, agents may skip steps even if they are fully documented elsewhere in the prompt.
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ClaudeContextManager
4
- } from "./chunk-WYDLOQYO.js";
5
- import "./chunk-T4NESGYB.js";
6
- import "./chunk-MRPIDNZU.js";
4
+ } from "./chunk-32D4CWWH.js";
5
+ import "./chunk-UMAOVKQX.js";
6
+ import "./chunk-LDE6VNG5.js";
7
7
  import "./chunk-DDHWZNGL.js";
8
- import "./chunk-F5NKWLMQ.js";
8
+ import "./chunk-MNPKEWBQ.js";
9
9
  import "./chunk-FTYWGQFM.js";
10
10
  import "./chunk-VRPPI6GU.js";
11
11
  export {
12
12
  ClaudeContextManager
13
13
  };
14
- //# sourceMappingURL=ClaudeContextManager-ZH6LEA5I.js.map
14
+ //# sourceMappingURL=ClaudeContextManager-KJ4VEA2F.js.map
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ClaudeService
4
- } from "./chunk-T4NESGYB.js";
5
- import "./chunk-MRPIDNZU.js";
4
+ } from "./chunk-UMAOVKQX.js";
5
+ import "./chunk-LDE6VNG5.js";
6
6
  import "./chunk-DDHWZNGL.js";
7
- import "./chunk-F5NKWLMQ.js";
7
+ import "./chunk-MNPKEWBQ.js";
8
8
  import "./chunk-FTYWGQFM.js";
9
9
  import "./chunk-VRPPI6GU.js";
10
10
  export {
11
11
  ClaudeService
12
12
  };
13
- //# sourceMappingURL=ClaudeService-YR66WXZN.js.map
13
+ //# sourceMappingURL=ClaudeService-WTJO4UW6.js.map
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  IssueTrackerFactory
4
- } from "./chunk-GPBX2BY2.js";
4
+ } from "./chunk-ZWXJ7G2C.js";
5
5
  import "./chunk-DMSL5BAP.js";
6
6
  import "./chunk-D4Q7T5KD.js";
7
7
  import "./chunk-KV4NU3RP.js";
8
8
  import "./chunk-NPVA65KS.js";
9
- import "./chunk-F5NKWLMQ.js";
9
+ import "./chunk-MNPKEWBQ.js";
10
10
  import "./chunk-FTYWGQFM.js";
11
11
  import "./chunk-VRPPI6GU.js";
12
12
  export {
13
13
  IssueTrackerFactory
14
14
  };
15
- //# sourceMappingURL=IssueTrackerFactory-O2ZBA666.js.map
15
+ //# sourceMappingURL=IssueTrackerFactory-UEJALI4X.js.map
@@ -4,9 +4,9 @@ import {
4
4
  } from "./chunk-CE676WCN.js";
5
5
  import {
6
6
  ClaudeContextManager
7
- } from "./chunk-WYDLOQYO.js";
8
- import "./chunk-T4NESGYB.js";
9
- import "./chunk-MRPIDNZU.js";
7
+ } from "./chunk-32D4CWWH.js";
8
+ import "./chunk-UMAOVKQX.js";
9
+ import "./chunk-LDE6VNG5.js";
10
10
  import {
11
11
  getExecutablePath
12
12
  } from "./chunk-GYCR2LOU.js";
@@ -15,7 +15,7 @@ import {
15
15
  hexToRgb
16
16
  } from "./chunk-OIVFHJOA.js";
17
17
  import "./chunk-DDHWZNGL.js";
18
- import "./chunk-F5NKWLMQ.js";
18
+ import "./chunk-MNPKEWBQ.js";
19
19
  import {
20
20
  getLogger
21
21
  } from "./chunk-FTYWGQFM.js";
@@ -255,4 +255,4 @@ var LoomLauncher = class {
255
255
  export {
256
256
  LoomLauncher
257
257
  };
258
- //# sourceMappingURL=LoomLauncher-V54ENBEF.js.map
258
+ //# sourceMappingURL=LoomLauncher-KG2VBNQA.js.map
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  PromptTemplateManager,
4
4
  buildReviewTemplateVariables
5
- } from "./chunk-MRPIDNZU.js";
5
+ } from "./chunk-LDE6VNG5.js";
6
6
  import "./chunk-VRPPI6GU.js";
7
7
  export {
8
8
  PromptTemplateManager,
9
9
  buildReviewTemplateVariables
10
10
  };
11
- //# sourceMappingURL=PromptTemplateManager-4RFELNYY.js.map
11
+ //# sourceMappingURL=PromptTemplateManager-QIUVJP6S.js.map
package/dist/README.md CHANGED
@@ -880,7 +880,7 @@ License & Name
880
880
 
881
881
  * ❌ You cannot resell iloom itself as a product or SaaS.
882
882
 
883
- * Converts to Apache 2.0 on 2030-03-16.
883
+ * Converts to Apache 2.0 on 2030-03-21.
884
884
 
885
885
 
886
886
  See [LICENSE](https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/LICENSE) for complete terms.
@@ -21,7 +21,7 @@ import {
21
21
  WorkflowsSettingsSchemaNoDefaults,
22
22
  mergeModeValues,
23
23
  redactSensitiveFields
24
- } from "./chunk-F5NKWLMQ.js";
24
+ } from "./chunk-MNPKEWBQ.js";
25
25
  import "./chunk-VRPPI6GU.js";
26
26
  export {
27
27
  AgentSettingsSchema,
@@ -46,4 +46,4 @@ export {
46
46
  mergeModeValues,
47
47
  redactSensitiveFields
48
48
  };
49
- //# sourceMappingURL=SettingsManager-SLSYEYDZ.js.map
49
+ //# sourceMappingURL=SettingsManager-PVHBSCMI.js.map
@@ -0,0 +1,68 @@
1
+ # templates/agents/
2
+
3
+ > **Maintenance:** Keep this file in sync with the directory contents. If you add, remove, or change an agent's role, update the relevant section below.
4
+
5
+ This directory contains phase agent definitions as Markdown files with YAML frontmatter. They are loaded by `AgentManager`, rendered to `.claude/agents/` in worktrees, and invoked as skills during workflows.
6
+
7
+ ## Phase Agent Lifecycle
8
+
9
+ Agents execute in a fixed sequence during issue workflows. Each phase has a single responsibility:
10
+
11
+ ```
12
+ complexity-evaluator → analyzer (or analyze-and-plan for SIMPLE) → planner → implementer → code-reviewer
13
+ ```
14
+
15
+ - **SIMPLE tasks** (< 5 files, < 200 LOC): Use `analyze-and-plan` which combines analysis + planning into one step, then `implementer`
16
+ - **COMPLEX tasks**: Full pipeline: `analyzer` → `planner` → `implementer`
17
+ - **Code review**: `code-reviewer` runs after implementation (swarm mode only; in regular mode, review is optional)
18
+ - **Wave verification**: `wave-verifier` is an epic-level agent that verifies a wave of completed children
19
+
20
+ ## Agent Files
21
+
22
+ | Agent | Phase | Model | Used In | Responsibility |
23
+ |-------|-------|-------|---------|---------------|
24
+ | `iloom-issue-complexity-evaluator.md` | Triage | haiku | Regular + Swarm | Classify task as SIMPLE or COMPLEX |
25
+ | `iloom-issue-analyzer.md` | Analysis | opus | Regular + Swarm | Deep research for COMPLEX tasks |
26
+ | `iloom-issue-analyze-and-plan.md` | Analysis + Planning | opus | Regular + Swarm | Combined phase for SIMPLE tasks |
27
+ | `iloom-issue-planner.md` | Planning | opus | Regular + Swarm | Detailed implementation plan (COMPLEX only) |
28
+ | `iloom-issue-implementer.md` | Implementation | opus | Regular + Swarm | Execute the plan, run typecheck/lint/tests |
29
+ | `iloom-code-reviewer.md` | Review | opus | Swarm | Autonomous code review, no human gates |
30
+ | `iloom-issue-enhancer.md` | Enhancement | — | Regular | Enhance issue descriptions with context |
31
+ | `iloom-wave-verifier.md` | Verification | — | Swarm (epic) | Verify a wave of completed children |
32
+ | `iloom-framework-detector.md` | Setup | — | Regular | Detect project frameworks/capabilities |
33
+ | `iloom-artifact-reviewer.md` | Review | — | Regular | Review generated artifacts |
34
+
35
+ ## YAML Frontmatter Format
36
+
37
+ ```yaml
38
+ ---
39
+ name: iloom-issue-implementer
40
+ description: One-line description of this agent's role
41
+ model: opus # Default model (can be overridden by settings)
42
+ color: green # Optional: terminal color for status display
43
+ tools: # Optional: restrict available tools
44
+ - Read
45
+ - Edit
46
+ - Bash
47
+ ---
48
+
49
+ Agent prompt content in Markdown...
50
+ ```
51
+
52
+ ## Model Override Rules
53
+
54
+ Agent models resolve in this order (highest priority first):
55
+ 1. **CLI flag**: `--set agents.iloom-issue-implementer.model=sonnet`
56
+ 2. **Settings**: `settings.agents["iloom-issue-implementer"].model`
57
+ 3. **Swarm model defaults**: `SwarmSetupService` applies swarm-specific defaults (e.g., haiku for complexity evaluator)
58
+ 4. **Frontmatter**: The `model` field in the YAML above
59
+
60
+ Do NOT hardcode model choices in agent templates to work around performance issues — use the settings system instead.
61
+
62
+ ## Swarm Agent Rendering
63
+
64
+ In swarm mode, `SwarmSetupService.renderSwarmAgents()` copies these templates to the epic worktree as:
65
+ - `.claude/agents/iloom-swarm-<phase>.md` (agent definitions)
66
+ - `.claude/skills/iloom-swarm-<phase>/SKILL.md` (skill wrappers that invoke agents)
67
+
68
+ The swarm worker agent (`iloom-swarm-worker.md`) is rendered separately and invokes these skills in sequence.
@@ -17,6 +17,7 @@ You are an expert code reviewer. Your task is to analyze code changes and provid
17
17
  - **Concise output**: Return structured review results suitable for the orchestrator to process.
18
18
  - **Autonomous handling**: If critical issues are found, report them but do NOT wait for user confirmation.
19
19
  - **IMPORTANT recap routing**: You are running inline in a swarm worker's context. You MUST pass `worktreePath` on ALL recap calls (`set_loom_state`, `add_entry`, `get_recap`). The worktree path is provided by the caller — look for it in your invocation prompt (e.g., "Your worktree path is ..."). Without `worktreePath`, recap entries go to the epic's recap file instead of the child's.
20
+ - **Recap from findings**: After completing the review, log key findings as recap entries using `recap.add_entry`. For each critical finding (95-100 confidence), add a `risk` entry. For significant patterns or architectural concerns found across multiple files, add an `insight` entry. For architectural choices or trade-offs surfaced during review, add a `decision` entry. Always include `worktreePath` on these calls.
20
21
  {{/if}}
21
22
 
22
23
  ## Do NOT Review Temporal Information
@@ -197,34 +197,11 @@ After ALL fix skill invocations have completed:
197
197
 
198
198
  ### Step 6: Run Code Review on Wave Changes
199
199
 
200
- {{#if HAS_REVIEW_GEMINI}}{{else}}{{#if HAS_REVIEW_CODEX}}{{else}}
201
- *No review providers configured — skipping code review. Configure providers in `.iloom/settings.json` under `agents.iloom-code-reviewer.providers` to enable.*
202
- {{/if}}{{/if}}
203
-
204
- {{#if HAS_REVIEW_GEMINI}}
205
200
  Invoke the code reviewer skill with the pre-gathered diff:
206
201
 
207
202
  /iloom-swarm-code-reviewer "
208
- ## Pre-gathered Diff
209
-
210
- The following diff contains all changes made in this wave (from pre-wave commit to current epic branch HEAD). Use this diff directly — do NOT run git commands to gather your own diff.
203
+ Your worktree path is <your-worktree-path>.
211
204
 
212
- \`\`\`diff
213
- <insert full diff from Step 5 here>
214
- \`\`\`
215
-
216
- ## CLAUDE.md Guidelines
217
-
218
- <insert CLAUDE.md content from Step 5 here>
219
-
220
- Run a full code review of these wave changes. You are in swarm mode — do NOT ask the user about findings, return all results directly."
221
-
222
- Collect the skill output as the code review findings.
223
- {{else}}
224
- {{#if HAS_REVIEW_CODEX}}
225
- Invoke the code reviewer skill with the pre-gathered diff:
226
-
227
- /iloom-swarm-code-reviewer "
228
205
  ## Pre-gathered Diff
229
206
 
230
207
  The following diff contains all changes made in this wave (from pre-wave commit to current epic branch HEAD). Use this diff directly — do NOT run git commands to gather your own diff.
@@ -240,8 +217,6 @@ The following diff contains all changes made in this wave (from pre-wave commit
240
217
  Run a full code review of these wave changes. You are in swarm mode — do NOT ask the user about findings, return all results directly."
241
218
 
242
219
  Collect the skill output as the code review findings.
243
- {{/if}}
244
- {{/if}}
245
220
 
246
221
  ### Step 7: Fix Critical Code Review Issues
247
222
 
@@ -326,19 +301,9 @@ Return the verification report in this exact format:
326
301
 
327
302
  ### Code Review
328
303
 
329
- {{#if HAS_REVIEW_GEMINI}}
330
- - **Findings**: X critical, Y warnings
331
- - **Auto-fixed**: N critical issues
332
- - **Remaining**: Z issues require manual attention
333
- {{else}}
334
- {{#if HAS_REVIEW_CODEX}}
335
304
  - **Findings**: X critical, Y warnings
336
305
  - **Auto-fixed**: N critical issues
337
306
  - **Remaining**: Z issues require manual attention
338
- {{else}}
339
- - **Status**: Skipped (no review providers configured)
340
- {{/if}}
341
- {{/if}}
342
307
 
343
308
  ### Overall Status: [ALL_PASSED | ALL_FIXED | PARTIALLY_FIXED | FAILURES_REMAIN]
344
309
 
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ScriptCommandBase
4
- } from "./chunk-PS6K2AOV.js";
5
- import "./chunk-GQDVH6FA.js";
4
+ } from "./chunk-DMNI225H.js";
5
+ import "./chunk-XC5JKRSH.js";
6
6
  import "./chunk-OLJ54WGW.js";
7
- import "./chunk-PPQ5LV7U.js";
7
+ import "./chunk-D6FU4DLN.js";
8
8
  import "./chunk-K3QGG4O2.js";
9
- import "./chunk-KGOBNC5A.js";
10
- import "./chunk-F5NKWLMQ.js";
9
+ import "./chunk-5W44AI63.js";
10
+ import "./chunk-MNPKEWBQ.js";
11
11
  import "./chunk-XIVLGWUX.js";
12
12
  import "./chunk-FTYWGQFM.js";
13
13
  import "./chunk-VRPPI6GU.js";
@@ -24,4 +24,4 @@ var BuildCommand = class extends ScriptCommandBase {
24
24
  export {
25
25
  BuildCommand
26
26
  };
27
- //# sourceMappingURL=build-ZTGWDHWU.js.map
27
+ //# sourceMappingURL=build-2FXDYEZQ.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  calculatePortFromIdentifier
4
- } from "./chunk-ERMEYFT6.js";
4
+ } from "./chunk-YVNG35OW.js";
5
5
 
6
6
  // src/lib/process/ProcessManager.ts
7
7
  import { execa } from "execa";
@@ -179,4 +179,4 @@ var ProcessManager = class {
179
179
  export {
180
180
  ProcessManager
181
181
  };
182
- //# sourceMappingURL=chunk-LNY2Y32V.js.map
182
+ //# sourceMappingURL=chunk-2WRD6Y5E.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ClaudeService
4
- } from "./chunk-T4NESGYB.js";
4
+ } from "./chunk-UMAOVKQX.js";
5
5
  import {
6
6
  logger
7
7
  } from "./chunk-VRPPI6GU.js";
@@ -63,4 +63,4 @@ var ClaudeContextManager = class {
63
63
  export {
64
64
  ClaudeContextManager
65
65
  };
66
- //# sourceMappingURL=chunk-WYDLOQYO.js.map
66
+ //# sourceMappingURL=chunk-32D4CWWH.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  SettingsManager
4
- } from "./chunk-F5NKWLMQ.js";
4
+ } from "./chunk-MNPKEWBQ.js";
5
5
  import {
6
6
  MetadataManager
7
7
  } from "./chunk-XIVLGWUX.js";
@@ -375,7 +375,7 @@ async function getDefaultBranch(path2 = process.cwd()) {
375
375
  }
376
376
  async function findAllBranchesForIssue(issueNumber, path2 = process.cwd(), settingsManager) {
377
377
  if (!settingsManager) {
378
- const { SettingsManager: SM } = await import("./SettingsManager-SLSYEYDZ.js");
378
+ const { SettingsManager: SM } = await import("./SettingsManager-PVHBSCMI.js");
379
379
  settingsManager = new SM();
380
380
  }
381
381
  const protectedBranches = await settingsManager.getProtectedBranches(path2);
@@ -738,4 +738,4 @@ export {
738
738
  removePlaceholderCommitFromHead,
739
739
  removePlaceholderCommitFromHistory
740
740
  };
741
- //# sourceMappingURL=chunk-KGOBNC5A.js.map
741
+ //# sourceMappingURL=chunk-5W44AI63.js.map
@@ -11,7 +11,7 @@ import {
11
11
  isPRBranch,
12
12
  isValidGitRepo,
13
13
  parseWorktreeList
14
- } from "./chunk-KGOBNC5A.js";
14
+ } from "./chunk-5W44AI63.js";
15
15
  import {
16
16
  getLogger
17
17
  } from "./chunk-FTYWGQFM.js";
@@ -388,4 +388,4 @@ var GitWorktreeManager = class {
388
388
  export {
389
389
  GitWorktreeManager
390
390
  };
391
- //# sourceMappingURL=chunk-PPQ5LV7U.js.map
391
+ //# sourceMappingURL=chunk-D6FU4DLN.js.map
@@ -1,19 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  IdentifierParser
4
- } from "./chunk-GQDVH6FA.js";
4
+ } from "./chunk-XC5JKRSH.js";
5
5
  import {
6
6
  runScript
7
7
  } from "./chunk-OLJ54WGW.js";
8
8
  import {
9
9
  GitWorktreeManager
10
- } from "./chunk-PPQ5LV7U.js";
10
+ } from "./chunk-D6FU4DLN.js";
11
11
  import {
12
12
  getPackageScripts
13
13
  } from "./chunk-K3QGG4O2.js";
14
14
  import {
15
15
  extractIssueNumber
16
- } from "./chunk-KGOBNC5A.js";
16
+ } from "./chunk-5W44AI63.js";
17
17
  import {
18
18
  logger
19
19
  } from "./chunk-VRPPI6GU.js";
@@ -156,4 +156,4 @@ var ScriptCommandBase = class {
156
156
  export {
157
157
  ScriptCommandBase
158
158
  };
159
- //# sourceMappingURL=chunk-PS6K2AOV.js.map
159
+ //# sourceMappingURL=chunk-DMNI225H.js.map
@@ -2,14 +2,14 @@
2
2
  import {
3
3
  PRManager,
4
4
  VCSProviderFactory
5
- } from "./chunk-J5JOJPK3.js";
5
+ } from "./chunk-L3P3YJCE.js";
6
6
  import {
7
7
  preAcceptClaudeTrust
8
8
  } from "./chunk-7UBEHQTP.js";
9
9
  import {
10
10
  calculatePortForBranch,
11
11
  calculatePortFromIdentifier
12
- } from "./chunk-ERMEYFT6.js";
12
+ } from "./chunk-YVNG35OW.js";
13
13
  import {
14
14
  installDependencies,
15
15
  runScript
@@ -43,7 +43,7 @@ import {
43
43
  fetchOrigin,
44
44
  isFileTrackedByGit,
45
45
  pushBranchToRemote
46
- } from "./chunk-KGOBNC5A.js";
46
+ } from "./chunk-5W44AI63.js";
47
47
  import {
48
48
  MetadataManager
49
49
  } from "./chunk-XIVLGWUX.js";
@@ -239,7 +239,7 @@ var LoomManager = class {
239
239
  * NEW: Checks for existing worktrees and reuses them if found
240
240
  */
241
241
  async createIloom(input) {
242
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;
242
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v;
243
243
  getLogger().info("Fetching issue data...");
244
244
  const issueData = await this.fetchIssueData(input);
245
245
  if (input.type === "issue" || input.type === "epic" || input.type === "pr" || input.type === "branch") {
@@ -378,22 +378,42 @@ var LoomManager = class {
378
378
  const prTitle = (issueData == null ? void 0 : issueData.title) ?? `Work on ${branchName}`;
379
379
  let prBody;
380
380
  if (input.type === "issue" || input.type === "epic") {
381
- const issueBody = (issueData == null ? void 0 : issueData.body) ? `
382
-
383
- ## ${issueData.title}
384
-
385
- ${issueData.body}` : "";
386
- prBody = `Fixes ${prManager.issuePrefix}${input.identifier}${issueBody}
387
-
388
- ---
389
- *This PR was created automatically by iloom.*`;
381
+ const issueRef = `Fixes ${prManager.issuePrefix}${input.identifier}`;
382
+ const issueBodyContent = (_e = issueData == null ? void 0 : issueData.body) == null ? void 0 : _e.trim();
383
+ const issueTitle = (issueData == null ? void 0 : issueData.title) ?? `Issue ${input.identifier}`;
384
+ if (issueBodyContent) {
385
+ prBody = [
386
+ issueRef,
387
+ "",
388
+ `## ${issueTitle}`,
389
+ "",
390
+ "<details>",
391
+ "<summary>Issue details</summary>",
392
+ "",
393
+ issueBodyContent,
394
+ "",
395
+ "</details>",
396
+ "",
397
+ "---",
398
+ "*This PR was created automatically by iloom.*"
399
+ ].join("\n");
400
+ } else {
401
+ prBody = [
402
+ issueRef,
403
+ "",
404
+ `## ${issueTitle}`,
405
+ "",
406
+ "---",
407
+ "*This PR was created automatically by iloom.*"
408
+ ].join("\n");
409
+ }
390
410
  } else {
391
411
  prBody = `Branch: ${branchName}
392
412
 
393
413
  ---
394
414
  *This PR was created automatically by iloom.*`;
395
415
  }
396
- const draftBaseBranch = ((_e = input.parentLoom) == null ? void 0 : _e.branchName) ?? settingsData.mainBranch ?? "main";
416
+ const draftBaseBranch = ((_f = input.parentLoom) == null ? void 0 : _f.branchName) ?? settingsData.mainBranch ?? "main";
397
417
  getLogger().info("Creating draft PR...");
398
418
  const prResult = await prManager.createDraftPR(
399
419
  branchName,
@@ -434,17 +454,17 @@ ${issueData.body}` : "";
434
454
  );
435
455
  }
436
456
  }
437
- const enableClaude = ((_f = input.options) == null ? void 0 : _f.enableClaude) !== false;
438
- const enableCode = ((_g = input.options) == null ? void 0 : _g.enableCode) !== false;
439
- const enableDevServer = ((_h = input.options) == null ? void 0 : _h.enableDevServer) !== false;
440
- const enableTerminal = ((_i = input.options) == null ? void 0 : _i.enableTerminal) ?? false;
441
- const oneShot = ((_j = input.options) == null ? void 0 : _j.oneShot) ?? "default";
442
- const complexity = (_k = input.options) == null ? void 0 : _k.complexity;
443
- const setArguments = (_l = input.options) == null ? void 0 : _l.setArguments;
444
- const executablePath = (_m = input.options) == null ? void 0 : _m.executablePath;
457
+ const enableClaude = ((_g = input.options) == null ? void 0 : _g.enableClaude) !== false;
458
+ const enableCode = ((_h = input.options) == null ? void 0 : _h.enableCode) !== false;
459
+ const enableDevServer = ((_i = input.options) == null ? void 0 : _i.enableDevServer) !== false;
460
+ const enableTerminal = ((_j = input.options) == null ? void 0 : _j.enableTerminal) ?? false;
461
+ const oneShot = ((_k = input.options) == null ? void 0 : _k.oneShot) ?? "default";
462
+ const complexity = (_l = input.options) == null ? void 0 : _l.complexity;
463
+ const setArguments = (_m = input.options) == null ? void 0 : _m.setArguments;
464
+ const executablePath = (_n = input.options) == null ? void 0 : _n.executablePath;
445
465
  if (enableClaude || enableCode || enableDevServer || enableTerminal) {
446
- const { LoomLauncher } = await import("./LoomLauncher-V54ENBEF.js");
447
- const { ClaudeContextManager } = await import("./ClaudeContextManager-ZH6LEA5I.js");
466
+ const { LoomLauncher } = await import("./LoomLauncher-KG2VBNQA.js");
467
+ const { ClaudeContextManager } = await import("./ClaudeContextManager-KJ4VEA2F.js");
448
468
  const claudeContext = new ClaudeContextManager(void 0, void 0, this.settings);
449
469
  const launcher = new LoomLauncher(claudeContext, this.settings);
450
470
  await launcher.launchLoom({
@@ -464,7 +484,7 @@ ${issueData.body}` : "";
464
484
  ...setArguments && { setArguments },
465
485
  ...executablePath && { executablePath },
466
486
  sourceEnvOnStart: settingsData.sourceEnvOnStart ?? false,
467
- colorTerminal: ((_n = input.options) == null ? void 0 : _n.colorTerminal) ?? ((_o = settingsData.colors) == null ? void 0 : _o.terminal) ?? true,
487
+ colorTerminal: ((_o = input.options) == null ? void 0 : _o.colorTerminal) ?? ((_p = settingsData.colors) == null ? void 0 : _p.terminal) ?? true,
468
488
  colorHex: colorData.hex
469
489
  });
470
490
  }
@@ -508,12 +528,12 @@ ${issueData.body}` : "";
508
528
  prUrls,
509
529
  capabilities,
510
530
  ...draftPrNumber && { draftPrNumber },
511
- ...((_p = input.options) == null ? void 0 : _p.oneShot) && { oneShot: input.options.oneShot },
512
- ...((_q = input.options) == null ? void 0 : _q.dangerouslySkipPermissions) && { dangerouslySkipPermissions: true },
513
- ...((_r = input.options) == null ? void 0 : _r.complexity) && { complexity: input.options.complexity },
514
- ...((_s = input.options) == null ? void 0 : _s.childIssueNumbers) && input.options.childIssueNumbers.length > 0 && { childIssueNumbers: input.options.childIssueNumbers },
515
- ...((_t = input.options) == null ? void 0 : _t.childIssues) && input.options.childIssues.length > 0 && { childIssues: input.options.childIssues },
516
- ...((_u = input.options) == null ? void 0 : _u.dependencyMap) && Object.keys(input.options.dependencyMap).length > 0 && { dependencyMap: input.options.dependencyMap },
531
+ ...((_q = input.options) == null ? void 0 : _q.oneShot) && { oneShot: input.options.oneShot },
532
+ ...((_r = input.options) == null ? void 0 : _r.dangerouslySkipPermissions) && { dangerouslySkipPermissions: true },
533
+ ...((_s = input.options) == null ? void 0 : _s.complexity) && { complexity: input.options.complexity },
534
+ ...((_t = input.options) == null ? void 0 : _t.childIssueNumbers) && input.options.childIssueNumbers.length > 0 && { childIssueNumbers: input.options.childIssueNumbers },
535
+ ...((_u = input.options) == null ? void 0 : _u.childIssues) && input.options.childIssues.length > 0 && { childIssues: input.options.childIssues },
536
+ ...((_v = input.options) == null ? void 0 : _v.dependencyMap) && Object.keys(input.options.dependencyMap).length > 0 && { dependencyMap: input.options.dependencyMap },
517
537
  ...input.parentLoom && { parentLoom: input.parentLoom }
518
538
  };
519
539
  await this.metadataManager.writeMetadata(worktreePath, metadataInput);
@@ -607,7 +627,7 @@ ${issueData.body}` : "";
607
627
  async checkAndWarnChildLooms(branchName) {
608
628
  let targetBranch = branchName;
609
629
  if (!targetBranch) {
610
- const { getCurrentBranch } = await import("./git-IS7AV3ED.js");
630
+ const { getCurrentBranch } = await import("./git-ZTMT6OAI.js");
611
631
  targetBranch = await getCurrentBranch();
612
632
  }
613
633
  if (!targetBranch) {
@@ -1161,8 +1181,8 @@ ${issueData.body}` : "";
1161
1181
  const executablePath = (_j = input.options) == null ? void 0 : _j.executablePath;
1162
1182
  if (enableClaude || enableCode || enableDevServer || enableTerminal) {
1163
1183
  getLogger().info("Launching workspace components...");
1164
- const { LoomLauncher } = await import("./LoomLauncher-V54ENBEF.js");
1165
- const { ClaudeContextManager } = await import("./ClaudeContextManager-ZH6LEA5I.js");
1184
+ const { LoomLauncher } = await import("./LoomLauncher-KG2VBNQA.js");
1185
+ const { ClaudeContextManager } = await import("./ClaudeContextManager-KJ4VEA2F.js");
1166
1186
  const claudeContext = new ClaudeContextManager(void 0, void 0, this.settings);
1167
1187
  const launcher = new LoomLauncher(claudeContext, this.settings);
1168
1188
  await launcher.launchLoom({
@@ -1911,4 +1931,4 @@ export {
1911
1931
  CLIIsolationManager,
1912
1932
  DatabaseManager
1913
1933
  };
1914
- //# sourceMappingURL=chunk-55NTREIU.js.map
1934
+ //# sourceMappingURL=chunk-DYLOITSO.js.map