@iloom/cli 0.13.1 → 0.13.2

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-KCAWSZUO.js → chunk-R2EFSRKR.js} +10 -10
  35. package/dist/{chunk-QNRXRSKC.js → chunk-RP6MHV24.js} +9 -9
  36. package/dist/chunk-RP6MHV24.js.map +1 -0
  37. package/dist/{chunk-UXBVDD7U.js → chunk-U2OPXZ6E.js} +282 -44
  38. package/dist/chunk-U2OPXZ6E.js.map +1 -0
  39. package/dist/{chunk-T4NESGYB.js → chunk-UMAOVKQX.js} +3 -3
  40. package/dist/{chunk-E5OM25WK.js → chunk-UQWMPQ2Q.js} +2 -2
  41. package/dist/{chunk-ZEFTWM5Z.js → chunk-VUIPDX3T.js} +2 -2
  42. package/dist/{chunk-GQDVH6FA.js → chunk-XC5JKRSH.js} +2 -2
  43. package/dist/{chunk-G2DGDCDP.js → chunk-Y2JHYPMX.js} +15 -13
  44. package/dist/chunk-Y2JHYPMX.js.map +1 -0
  45. package/dist/{chunk-ERMEYFT6.js → chunk-YVNG35OW.js} +2 -2
  46. package/dist/{chunk-7TN5VW4I.js → chunk-Z32HPRZF.js} +2 -1
  47. package/dist/chunk-Z32HPRZF.js.map +1 -0
  48. package/dist/{chunk-GPBX2BY2.js → chunk-ZWXJ7G2C.js} +2 -2
  49. package/dist/{cleanup-BCVY7PEF.js → cleanup-I62RA5TZ.js} +16 -16
  50. package/dist/cli.js +101 -64
  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-OZ6KKKTR.js} +58 -27
  56. package/dist/dev-server-OZ6KKKTR.js.map +1 -0
  57. package/dist/{feedback-2LWXKLQZ.js → feedback-G63MODT2.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-6PXNIPXS.js} +13 -12
  71. package/dist/open-6PXNIPXS.js.map +1 -0
  72. package/dist/{plan-GC3HF73T.js → plan-NJVQBBT3.js} +18 -18
  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-RHE5NPDT.js} +16 -16
  80. package/dist/run-RHE5NPDT.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-KCAWSZUO.js.map → chunk-R2EFSRKR.js.map} +0 -0
  123. /package/dist/{chunk-T4NESGYB.js.map → chunk-UMAOVKQX.js.map} +0 -0
  124. /package/dist/{chunk-E5OM25WK.js.map → chunk-UQWMPQ2Q.js.map} +0 -0
  125. /package/dist/{chunk-ZEFTWM5Z.js.map → chunk-VUIPDX3T.js.map} +0 -0
  126. /package/dist/{chunk-GQDVH6FA.js.map → chunk-XC5JKRSH.js.map} +0 -0
  127. /package/dist/{chunk-ERMEYFT6.js.map → chunk-YVNG35OW.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-I62RA5TZ.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-G63MODT2.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-NJVQBBT3.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/dist/cli.js CHANGED
@@ -1,49 +1,49 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  SessionSummaryService
4
- } from "./chunk-UXBVDD7U.js";
4
+ } from "./chunk-U2OPXZ6E.js";
5
5
  import "./chunk-NXMDEL3F.js";
6
6
  import {
7
7
  ResourceCleanup
8
- } from "./chunk-T4KFKKEB.js";
9
- import "./chunk-E5OM25WK.js";
8
+ } from "./chunk-H4TSDALC.js";
9
+ import "./chunk-UQWMPQ2Q.js";
10
10
  import {
11
11
  StartCommand,
12
12
  launchFirstRunSetup,
13
13
  needsFirstRunSetup
14
- } from "./chunk-KCAWSZUO.js";
14
+ } from "./chunk-R2EFSRKR.js";
15
15
  import {
16
16
  CLIIsolationManager,
17
17
  DatabaseManager,
18
18
  EnvironmentManager,
19
19
  LoomManager
20
- } from "./chunk-55NTREIU.js";
20
+ } from "./chunk-DYLOITSO.js";
21
21
  import {
22
22
  PRManager,
23
23
  VCSProviderFactory
24
- } from "./chunk-J5JOJPK3.js";
24
+ } from "./chunk-L3P3YJCE.js";
25
25
  import {
26
26
  BuildRunner,
27
27
  MergeManager
28
- } from "./chunk-EHAITKLS.js";
28
+ } from "./chunk-MPHSR6GA.js";
29
29
  import {
30
30
  assembleChildrenData
31
- } from "./chunk-C2BVNJW5.js";
31
+ } from "./chunk-OIJNBFMP.js";
32
32
  import "./chunk-7UBEHQTP.js";
33
- import "./chunk-7TN5VW4I.js";
33
+ import "./chunk-Z32HPRZF.js";
34
34
  import {
35
35
  ProcessManager
36
- } from "./chunk-LNY2Y32V.js";
37
- import "./chunk-ERMEYFT6.js";
36
+ } from "./chunk-2WRD6Y5E.js";
37
+ import "./chunk-YVNG35OW.js";
38
38
  import {
39
39
  IdentifierParser
40
- } from "./chunk-GQDVH6FA.js";
40
+ } from "./chunk-XC5JKRSH.js";
41
41
  import {
42
42
  createNeonProviderFromSettings
43
43
  } from "./chunk-HKEXRZMU.js";
44
44
  import {
45
45
  ShellCompletion
46
- } from "./chunk-TJDKGKQV.js";
46
+ } from "./chunk-OMV47LLA.js";
47
47
  import {
48
48
  TelemetryManager,
49
49
  TelemetryService
@@ -58,22 +58,22 @@ import {
58
58
  import "./chunk-CQHHEW2M.js";
59
59
  import {
60
60
  AgentManager
61
- } from "./chunk-QNRXRSKC.js";
61
+ } from "./chunk-RP6MHV24.js";
62
62
  import {
63
63
  CommitManager,
64
64
  UserAbortedCommitError,
65
65
  ValidationRunner
66
- } from "./chunk-HWDQRW3O.js";
66
+ } from "./chunk-OHX3PSAY.js";
67
67
  import {
68
68
  IssueManagementProviderFactory
69
- } from "./chunk-ZEFTWM5Z.js";
69
+ } from "./chunk-VUIPDX3T.js";
70
70
  import "./chunk-4232AHNQ.js";
71
71
  import {
72
72
  installDependencies
73
73
  } from "./chunk-OLJ54WGW.js";
74
74
  import {
75
75
  GitWorktreeManager
76
- } from "./chunk-PPQ5LV7U.js";
76
+ } from "./chunk-D6FU4DLN.js";
77
77
  import {
78
78
  openBrowser
79
79
  } from "./chunk-WEBMMJKL.js";
@@ -84,9 +84,9 @@ import {
84
84
  } from "./chunk-CE676WCN.js";
85
85
  import {
86
86
  ClaudeContextManager
87
- } from "./chunk-WYDLOQYO.js";
88
- import "./chunk-T4NESGYB.js";
89
- import "./chunk-MRPIDNZU.js";
87
+ } from "./chunk-32D4CWWH.js";
88
+ import "./chunk-UMAOVKQX.js";
89
+ import "./chunk-LDE6VNG5.js";
90
90
  import "./chunk-GYCR2LOU.js";
91
91
  import "./chunk-AQUSMNBF.js";
92
92
  import {
@@ -95,7 +95,7 @@ import {
95
95
  import "./chunk-K3QGG4O2.js";
96
96
  import {
97
97
  IssueTrackerFactory
98
- } from "./chunk-GPBX2BY2.js";
98
+ } from "./chunk-ZWXJ7G2C.js";
99
99
  import "./chunk-DMSL5BAP.js";
100
100
  import {
101
101
  GitHubService
@@ -125,10 +125,10 @@ import {
125
125
  pushBranchToRemote,
126
126
  removePlaceholderCommitFromHead,
127
127
  removePlaceholderCommitFromHistory
128
- } from "./chunk-KGOBNC5A.js";
128
+ } from "./chunk-5W44AI63.js";
129
129
  import {
130
130
  SettingsManager
131
- } from "./chunk-F5NKWLMQ.js";
131
+ } from "./chunk-MNPKEWBQ.js";
132
132
  import {
133
133
  MetadataManager
134
134
  } from "./chunk-XIVLGWUX.js";
@@ -1376,6 +1376,28 @@ var FinishCommand = class {
1376
1376
  // Use default MetadataManager
1377
1377
  this.settingsManager
1378
1378
  );
1379
+ const metadata = await this.sessionSummaryService.metadataManager.readMetadata(worktree.path);
1380
+ const isEpicLoom = (metadata == null ? void 0 : metadata.childIssueNumbers) != null && metadata.childIssueNumbers.length > 0;
1381
+ if (isEpicLoom && metadata != null) {
1382
+ if (parsed.number == null) {
1383
+ getLogger().warn("Epic loom has no issue number, skipping epic report generation");
1384
+ return;
1385
+ }
1386
+ const epicTitle = metadata.description ?? `Epic #${String(parsed.number)}`;
1387
+ if (options.dryRun) {
1388
+ getLogger().info(`[DRY RUN] Would post epic implementation report for issue #${parsed.number}`);
1389
+ return;
1390
+ }
1391
+ const epicInput = {
1392
+ worktreePath: worktree.path,
1393
+ epicIssueNumber: parsed.number,
1394
+ childIssueNumbers: metadata.childIssueNumbers,
1395
+ epicTitle,
1396
+ ...prNumber !== void 0 && { prNumber }
1397
+ };
1398
+ await this.sessionSummaryService.generateAndPostEpicReport(epicInput);
1399
+ return;
1400
+ }
1379
1401
  if (options.dryRun) {
1380
1402
  try {
1381
1403
  const result = await this.sessionSummaryService.generateSummary(
@@ -2038,6 +2060,18 @@ function parseIssueIdentifier(value) {
2038
2060
  const parsed = parseInt(value, 10);
2039
2061
  return !isNaN(parsed) && String(parsed) === value ? parsed : value;
2040
2062
  }
2063
+ function collectKeyValue(value, previous) {
2064
+ const equalsIndex = value.indexOf("=");
2065
+ if (equalsIndex === -1) {
2066
+ throw new Error(`Invalid format: "${value}". Expected KEY=VALUE`);
2067
+ }
2068
+ const key = value.substring(0, equalsIndex);
2069
+ const val = value.substring(equalsIndex + 1);
2070
+ if (!key) {
2071
+ throw new Error(`Invalid format: "${value}". Key cannot be empty`);
2072
+ }
2073
+ return { ...previous, [key]: val };
2074
+ }
2041
2075
  program.name("iloom").description(packageJson.description).version(packageJson.version).option("--debug", "Enable debug output (default: based on ILOOM_DEBUG env var)").option("--completion", "Output shell completion script for current shell").option("--set <key=value>", "Override any setting using dot notation (repeatable, e.g., --set workflows.issue.startIde=false)").allowUnknownOption().addHelpText("afterAll", "\nBy using iloom, you agree to our Terms of Service: https://iloom.ai/terms").hook("preAction", async (thisCommand, actionCommand) => {
2042
2076
  const options = thisCommand.opts();
2043
2077
  const envDebug = process.env.ILOOM_DEBUG === "true";
@@ -2216,14 +2250,14 @@ async function autoLaunchInitForMultipleRemotes() {
2216
2250
  await waitForKeypress2("Press any key to start configuration...");
2217
2251
  logger.info("");
2218
2252
  try {
2219
- const { InitCommand } = await import("./init-7SDJUAEZ.js");
2253
+ const { InitCommand } = await import("./init-AMLCFVXG.js");
2220
2254
  const initCommand = new InitCommand();
2221
2255
  const customInitialMessage = "Help me configure which git remote iloom should use for GitHub operations. I have multiple remotes and need to select the correct one.";
2222
2256
  await initCommand.execute(customInitialMessage);
2223
2257
  logger.info("");
2224
2258
  logger.info("Configuration complete! Continuing with your original command...");
2225
2259
  logger.info("");
2226
- const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-SLSYEYDZ.js");
2260
+ const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-PVHBSCMI.js");
2227
2261
  const settingsManager = new SettingsManager2();
2228
2262
  const settings = await settingsManager.loadSettings();
2229
2263
  const { hasMultipleRemotes: hasMultipleRemotes2 } = await import("./remote-RO4LZKT2.js");
@@ -2324,7 +2358,7 @@ program.command("add-issue").alias("a").description("Create and enhance GitHub i
2324
2358
  });
2325
2359
  program.command("feedback").alias("f").description("Submit feedback/bug report to iloom-cli repository").argument("<description>", "Feedback title (>30 chars, >2 spaces; or any non-empty text when --body provided)").option("--body <text>", "Body text for feedback (added after diagnostics)").action(async (description, options) => {
2326
2360
  try {
2327
- const { FeedbackCommand } = await import("./feedback-2LWXKLQZ.js");
2361
+ const { FeedbackCommand } = await import("./feedback-G63MODT2.js");
2328
2362
  const command = new FeedbackCommand();
2329
2363
  const feedbackOptions = {};
2330
2364
  if (options.body !== void 0) {
@@ -2426,7 +2460,7 @@ program.command("commit").alias("c").description("Commit all uncommitted files w
2426
2460
  const isAnyJsonMode = options.json ?? options.jsonStream;
2427
2461
  const executeAction = async () => {
2428
2462
  try {
2429
- const { CommitCommand } = await import("./commit-L5JNBU4U.js");
2463
+ const { CommitCommand } = await import("./commit-7RI2JFFW.js");
2430
2464
  const command = new CommitCommand();
2431
2465
  const noReview = options.review === false || options.json === true || options.jsonStream === true;
2432
2466
  const result = await command.execute({
@@ -2465,7 +2499,7 @@ program.command("commit").alias("c").description("Commit all uncommitted files w
2465
2499
  program.command("rebase").description("Rebase current branch on main with Claude-assisted conflict resolution").option("-f, --force", "Skip confirmation prompts").option("-n, --dry-run", "Preview actions without executing").option("--json-stream", "Stream JSONL output; runs Claude headless for conflict resolution").action(async (options) => {
2466
2500
  const executeAction = async () => {
2467
2501
  try {
2468
- const { RebaseCommand } = await import("./rebase-MLIN572O.js");
2502
+ const { RebaseCommand } = await import("./rebase-6AXN45AE.js");
2469
2503
  const command = new RebaseCommand();
2470
2504
  const result = await command.execute(options);
2471
2505
  if (options.jsonStream && result) {
@@ -2505,7 +2539,7 @@ program.command("spin").alias("ignite").description("Launch Claude with auto-det
2505
2539
  options.oneShot = "bypassPermissions";
2506
2540
  }
2507
2541
  try {
2508
- const { IgniteCommand } = await import("./ignite-VQDJQ37S.js");
2542
+ const { IgniteCommand } = await import("./ignite-GUYKYC5G.js");
2509
2543
  const command = new IgniteCommand();
2510
2544
  if (options.json && options.jsonStream) {
2511
2545
  logger.error("--json and --json-stream are mutually exclusive");
@@ -2530,24 +2564,26 @@ program.command("spin").alias("ignite").description("Launch Claude with auto-det
2530
2564
  process.exit(1);
2531
2565
  }
2532
2566
  });
2533
- program.command("open").description("Open workspace in browser or run CLI tool").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").allowUnknownOption().action(async (identifier, _options, command) => {
2567
+ program.command("open").description("Open workspace in browser or run CLI tool").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").option("-e, --env <KEY=VALUE>", "Environment variable for the dev server (repeatable)", collectKeyValue, {}).allowUnknownOption().action(async (identifier, options, command) => {
2534
2568
  try {
2535
2569
  const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
2536
- const { OpenCommand } = await import("./open-2HL6GV5F.js");
2570
+ const env = (options == null ? void 0 : options.env) && Object.keys(options.env).length > 0 ? options.env : void 0;
2571
+ const { OpenCommand } = await import("./open-6PXNIPXS.js");
2537
2572
  const cmd = new OpenCommand();
2538
- const input = identifier ? { identifier, args } : { args };
2573
+ const input = identifier ? { identifier, args, env } : { args, env };
2539
2574
  await cmd.execute(input);
2540
2575
  } catch (error) {
2541
2576
  logger.error(`Failed to open: ${error instanceof Error ? error.message : "Unknown error"}`);
2542
2577
  process.exit(1);
2543
2578
  }
2544
2579
  });
2545
- program.command("run").description("Run CLI tool or open workspace in browser").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").allowUnknownOption().action(async (identifier, _options, command) => {
2580
+ program.command("run").description("Run CLI tool or open workspace in browser").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").option("-e, --env <KEY=VALUE>", "Environment variable for the dev server (repeatable)", collectKeyValue, {}).allowUnknownOption().action(async (identifier, options, command) => {
2546
2581
  try {
2547
2582
  const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
2548
- const { RunCommand } = await import("./run-CUNRQNZS.js");
2583
+ const env = (options == null ? void 0 : options.env) && Object.keys(options.env).length > 0 ? options.env : void 0;
2584
+ const { RunCommand } = await import("./run-RHE5NPDT.js");
2549
2585
  const cmd = new RunCommand();
2550
- const input = identifier ? { identifier, args } : { args };
2586
+ const input = identifier ? { identifier, args, env } : { args, env };
2551
2587
  await cmd.execute(input);
2552
2588
  } catch (error) {
2553
2589
  logger.error(`Failed to run: ${error instanceof Error ? error.message : "Unknown error"}`);
@@ -2556,18 +2592,19 @@ program.command("run").description("Run CLI tool or open workspace in browser").
2556
2592
  });
2557
2593
  program.command("vscode").description("Install iloom VS Code extension and open workspace in VS Code").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").option("--no-wait", "Skip keypress prompt and open immediately").action(async (identifier, options) => {
2558
2594
  try {
2559
- const { VSCodeCommand } = await import("./vscode-OY7HOVRO.js");
2595
+ const { VSCodeCommand } = await import("./vscode-ABQ5ZSH7.js");
2560
2596
  const cmd = new VSCodeCommand();
2561
2597
  await cmd.execute({ identifier, wait: options == null ? void 0 : options.wait });
2562
2598
  } catch (error) {
2563
2599
  throw new Error(`Failed to open VS Code: ${error instanceof Error ? error.message : "Unknown error"}`);
2564
2600
  }
2565
2601
  });
2566
- program.command("dev-server").alias("dev").description("Start dev server for workspace (foreground)").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").option("--json", "Output as JSON").action(async (identifier, options) => {
2602
+ program.command("dev-server").alias("dev").description("Start dev server for workspace (foreground)").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").option("--json", "Output as JSON").option("-e, --env <KEY=VALUE>", "Environment variable for the dev server (repeatable)", collectKeyValue, {}).action(async (identifier, options) => {
2567
2603
  try {
2568
- const { DevServerCommand } = await import("./dev-server-UQKNKU2S.js");
2604
+ const { DevServerCommand } = await import("./dev-server-OZ6KKKTR.js");
2569
2605
  const cmd = new DevServerCommand();
2570
- await cmd.execute({ identifier, json: options == null ? void 0 : options.json });
2606
+ const env = (options == null ? void 0 : options.env) && Object.keys(options.env).length > 0 ? options.env : void 0;
2607
+ await cmd.execute({ identifier, json: options == null ? void 0 : options.json, env });
2571
2608
  } catch (error) {
2572
2609
  logger.error(`Failed to start dev server: ${error instanceof Error ? error.message : "Unknown error"}`);
2573
2610
  process.exit(1);
@@ -2575,7 +2612,7 @@ program.command("dev-server").alias("dev").description("Start dev server for wor
2575
2612
  });
2576
2613
  program.command("shell").alias("terminal").description("Open interactive shell with workspace environment").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2577
2614
  try {
2578
- const { ShellCommand } = await import("./shell-M2YYPNGV.js");
2615
+ const { ShellCommand } = await import("./shell-XOILFEZW.js");
2579
2616
  const cmd = new ShellCommand();
2580
2617
  await cmd.execute({ identifier });
2581
2618
  } catch (error) {
@@ -2585,7 +2622,7 @@ program.command("shell").alias("terminal").description("Open interactive shell w
2585
2622
  });
2586
2623
  program.command("build").description("Run the build script").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2587
2624
  try {
2588
- const { BuildCommand } = await import("./build-ZTGWDHWU.js");
2625
+ const { BuildCommand } = await import("./build-2FXDYEZQ.js");
2589
2626
  const cmd = new BuildCommand();
2590
2627
  await cmd.execute(identifier ? { identifier } : {});
2591
2628
  } catch (error) {
@@ -2595,7 +2632,7 @@ program.command("build").description("Run the build script").argument("[identifi
2595
2632
  });
2596
2633
  program.command("lint").description("Run the lint script").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2597
2634
  try {
2598
- const { LintCommand } = await import("./lint-C5FOVRXY.js");
2635
+ const { LintCommand } = await import("./lint-DKWJHET3.js");
2599
2636
  const cmd = new LintCommand();
2600
2637
  await cmd.execute(identifier ? { identifier } : {});
2601
2638
  } catch (error) {
@@ -2605,7 +2642,7 @@ program.command("lint").description("Run the lint script").argument("[identifier
2605
2642
  });
2606
2643
  program.command("test").description("Run the test script").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2607
2644
  try {
2608
- const { TestCommand } = await import("./test-ESDAHEVE.js");
2645
+ const { TestCommand } = await import("./test-6T2UMQ7T.js");
2609
2646
  const cmd = new TestCommand();
2610
2647
  await cmd.execute(identifier ? { identifier } : {});
2611
2648
  } catch (error) {
@@ -2615,7 +2652,7 @@ program.command("test").description("Run the test script").argument("[identifier
2615
2652
  });
2616
2653
  program.command("compile").alias("typecheck").description("Run the compile or typecheck script (prefers compile if both exist)").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").action(async (identifier) => {
2617
2654
  try {
2618
- const { CompileCommand } = await import("./compile-GPJOHXH4.js");
2655
+ const { CompileCommand } = await import("./compile-NWTMKAGL.js");
2619
2656
  const cmd = new CompileCommand();
2620
2657
  await cmd.execute(identifier ? { identifier } : {});
2621
2658
  } catch (error) {
@@ -2625,7 +2662,7 @@ program.command("compile").alias("typecheck").description("Run the compile or ty
2625
2662
  });
2626
2663
  program.command("install-deps").description("Install dependencies for a workspace").argument("[identifier]", "Issue number, PR number, or branch name (auto-detected if omitted)").option("--no-frozen", "Allow lockfile updates (default: frozen/locked)").action(async (identifier, options) => {
2627
2664
  try {
2628
- const { InstallDepsCommand } = await import("./install-deps-NGSFDNUW.js");
2665
+ const { InstallDepsCommand } = await import("./install-deps-XS2UUCUS.js");
2629
2666
  const cmd = new InstallDepsCommand();
2630
2667
  const input = {};
2631
2668
  if (identifier) input.identifier = identifier;
@@ -2639,7 +2676,7 @@ program.command("install-deps").description("Install dependencies for a workspac
2639
2676
  program.command("cleanup").alias("remove").alias("clean").description("Remove workspaces").argument("[identifier]", "Branch name or issue number to cleanup (auto-detected)").option("-l, --list", "List all worktrees").option("-a, --all", "Remove all worktrees (interactive confirmation)").option("-i, --issue <number>", "Cleanup by issue number", parseIssueIdentifier).option("-f, --force", "Skip confirmations and force removal").option("--dry-run", "Show what would be done without doing it").option("--json", "Output result as JSON").option("--archive", "Archive metadata instead of deleting (preserves loom in il list --finished)").option("--defer <ms>", "Wait specified milliseconds before cleanup", parseInt).action(async (identifier, options) => {
2640
2677
  const executeAction = async () => {
2641
2678
  try {
2642
- const { CleanupCommand } = await import("./cleanup-BCVY7PEF.js");
2679
+ const { CleanupCommand } = await import("./cleanup-I62RA5TZ.js");
2643
2680
  const command = new CleanupCommand();
2644
2681
  const input = {
2645
2682
  options: options ?? {}
@@ -3003,7 +3040,7 @@ program.command("projects").description("List configured iloom projects").option
3003
3040
  });
3004
3041
  program.command("issues").description("List project issues from configured issue tracker").argument("[project-path]", "Path to project root (auto-detected if omitted)").option("--json", "Output as JSON (default behavior)").option("--limit <n>", "Max issues to return", "100").option("--sprint <name>", 'Jira only: filter by sprint name (e.g., "Sprint 17") or "current" for active sprint').option("--mine", "Show only issues and PRs assigned to me").action(async (projectPath, options) => {
3005
3042
  try {
3006
- const { IssuesCommand } = await import("./issues-4HQKEUP7.js");
3043
+ const { IssuesCommand } = await import("./issues-2IT7PSNZ.js");
3007
3044
  const command = new IssuesCommand();
3008
3045
  const parsedLimit = parseInt((options == null ? void 0 : options.limit) ?? "100", 10);
3009
3046
  const limit = Number.isNaN(parsedLimit) || parsedLimit <= 0 ? 100 : parsedLimit;
@@ -3021,7 +3058,7 @@ program.command("issues").description("List project issues from configured issue
3021
3058
  });
3022
3059
  program.command("init").alias("config").description("Initialize iloom configuration").argument("[prompt]", 'Custom initial message to send to Claude (defaults to "Help me configure iloom settings.")').addOption(new Option("--accept-defaults").hideHelp()).action(async (prompt, options) => {
3023
3060
  try {
3024
- const { InitCommand } = await import("./init-7SDJUAEZ.js");
3061
+ const { InitCommand } = await import("./init-AMLCFVXG.js");
3025
3062
  const command = new InitCommand();
3026
3063
  const trimmedPrompt = prompt == null ? void 0 : prompt.trim();
3027
3064
  const customPrompt = trimmedPrompt && trimmedPrompt.length > 0 ? trimmedPrompt : void 0;
@@ -3037,7 +3074,7 @@ program.command("plan").description("Launch interactive planning session with Ar
3037
3074
  new Option("--output-format <format>", "Output format for Claude CLI (requires --print)").choices(["json", "stream-json", "text"])
3038
3075
  ).option("--verbose", "Enable verbose output (requires --print)").option("--json", "Output final result as JSON object (requires --print)").option("--json-stream", "Stream JSONL output to stdout in real-time (requires --print)").option("--auto-swarm", "Enable auto-swarm: plan, start epic, and spin automatically").action(async (prompt, options) => {
3039
3076
  try {
3040
- const { PlanCommand } = await import("./plan-GC3HF73T.js");
3077
+ const { PlanCommand } = await import("./plan-NJVQBBT3.js");
3041
3078
  const command = new PlanCommand();
3042
3079
  if ((options == null ? void 0 : options.json) && (options == null ? void 0 : options.jsonStream)) {
3043
3080
  logger.error("--json and --json-stream are mutually exclusive");
@@ -3084,7 +3121,7 @@ program.command("plan").description("Launch interactive planning session with Ar
3084
3121
  });
3085
3122
  program.command("contribute").description("Set up local development environment for contributing to a GitHub project").argument("[repository]", "GitHub repository (owner/repo, github.com/owner/repo, or full URL). Defaults to iloom-ai/iloom-cli").action(async (repository) => {
3086
3123
  try {
3087
- const { ContributeCommand } = await import("./contribute-QEGCI4PS.js");
3124
+ const { ContributeCommand } = await import("./contribute-QWPOT4QR.js");
3088
3125
  const command = new ContributeCommand();
3089
3126
  await command.execute(repository);
3090
3127
  } catch (error) {
@@ -3164,9 +3201,9 @@ program.command("test-github").description("Test GitHub integration (Issue #3)")
3164
3201
  program.command("test-claude").description("Test Claude integration (Issue #10)").option("--detect", "Test Claude CLI detection").option("--version", "Get Claude CLI version").option("--branch <title>", "Test branch name generation with given title").option("--issue <number>", "Issue number for branch generation", "123").option("--launch <prompt>", "Launch Claude with a prompt (headless)").option("--interactive", "Launch Claude interactively (requires --launch)").option("--template <name>", "Test template loading").action(async (options) => {
3165
3202
  try {
3166
3203
  const { detectClaudeCli, getClaudeVersion, generateBranchName, launchClaude } = await import("./claude-ACL7G4CF.js");
3167
- const { PromptTemplateManager } = await import("./PromptTemplateManager-4RFELNYY.js");
3168
- const { ClaudeService } = await import("./ClaudeService-YR66WXZN.js");
3169
- const { ClaudeContextManager: ClaudeContextManager2 } = await import("./ClaudeContextManager-ZH6LEA5I.js");
3204
+ const { PromptTemplateManager } = await import("./PromptTemplateManager-QIUVJP6S.js");
3205
+ const { ClaudeService } = await import("./ClaudeService-WTJO4UW6.js");
3206
+ const { ClaudeContextManager: ClaudeContextManager2 } = await import("./ClaudeContextManager-KJ4VEA2F.js");
3170
3207
  logger.info("Testing Claude Integration\n");
3171
3208
  if (options.detect) {
3172
3209
  logger.info("Detecting Claude CLI...");
@@ -3301,7 +3338,7 @@ program.command("test-claude").description("Test Claude integration (Issue #10)"
3301
3338
  });
3302
3339
  program.command("test-webserver").description("Test if a web server is running on a workspace port").argument("<issue-number>", "Issue number (port will be calculated as 3000 + issue number)", parseInt).option("--kill", "Kill the web server if detected").action(async (issueNumber, options) => {
3303
3340
  try {
3304
- const { TestWebserverCommand } = await import("./test-webserver-AHXKC6H4.js");
3341
+ const { TestWebserverCommand } = await import("./test-webserver-ZN73CM2T.js");
3305
3342
  const command = new TestWebserverCommand();
3306
3343
  await command.execute({ issueNumber, options });
3307
3344
  } catch (error) {
@@ -3314,7 +3351,7 @@ program.command("test-webserver").description("Test if a web server is running o
3314
3351
  });
3315
3352
  program.command("test-git").description("Test Git integration - findMainWorktreePath() function (reads .iloom/settings.json)").action(async () => {
3316
3353
  try {
3317
- const { TestGitCommand } = await import("./test-git-KWPLHYSI.js");
3354
+ const { TestGitCommand } = await import("./test-git-CQ65OL45.js");
3318
3355
  const command = new TestGitCommand();
3319
3356
  await command.execute();
3320
3357
  } catch (error) {
@@ -3340,7 +3377,7 @@ program.command("test-tabs").description("Test iTerm2 dual tab functionality - o
3340
3377
  });
3341
3378
  program.command("test-prefix").description("[DEPRECATED] Test worktree prefix configuration - preview worktree paths").action(async () => {
3342
3379
  try {
3343
- const { TestPrefixCommand } = await import("./test-prefix-VVODGHXP.js");
3380
+ const { TestPrefixCommand } = await import("./test-prefix-HMTZSS67.js");
3344
3381
  const command = new TestPrefixCommand();
3345
3382
  await command.execute();
3346
3383
  } catch (error) {
@@ -3354,7 +3391,7 @@ program.command("test-prefix").description("[DEPRECATED] Test worktree prefix co
3354
3391
  program.command("summary").description("Generate Claude session summary for a loom").argument("[identifier]", "Issue number, PR number (pr/123), or branch name (auto-detected if omitted)").option("--with-comment", "Post summary as a comment to the issue/PR").option("--json", "Output result as JSON").action(async (identifier, options) => {
3355
3392
  const executeAction = async () => {
3356
3393
  try {
3357
- const { SummaryCommand } = await import("./summary-XR4CBJEG.js");
3394
+ const { SummaryCommand } = await import("./summary-BVYOM63C.js");
3358
3395
  const command = new SummaryCommand();
3359
3396
  const result = await command.execute({ identifier, options });
3360
3397
  if (options.json && result) {
@@ -3384,7 +3421,7 @@ program.command("summary").description("Generate Claude session summary for a lo
3384
3421
  program.command("recap").description("Get recap for a loom (defaults to current directory)").argument("[identifier]", "Issue number, PR number (pr/123), or branch name (auto-detected if omitted)").option("--json", "Output as JSON with filePath for file watching").action(async (identifier, options) => {
3385
3422
  const executeAction = async () => {
3386
3423
  try {
3387
- const { RecapCommand } = await import("./recap-CKGKFDJL.js");
3424
+ const { RecapCommand } = await import("./recap-XDKI3MTA.js");
3388
3425
  const command = new RecapCommand();
3389
3426
  const result = await command.execute({ identifier, json: options.json });
3390
3427
  if (options.json && result) {
@@ -3414,7 +3451,7 @@ program.command("recap").description("Get recap for a loom (defaults to current
3414
3451
  var testJiraCommand = program.command("test-jira").description("Test Jira integration methods against a real Jira instance");
3415
3452
  testJiraCommand.command("child-issue").description("Create a test child issue under a parent").argument("<parentKey>", "Parent issue key (e.g., PROJ-123)").action(async (parentKey) => {
3416
3453
  try {
3417
- const { TestJiraCommand } = await import("./test-jira-6NK7UHSV.js");
3454
+ const { TestJiraCommand } = await import("./test-jira-CQQHGZ3S.js");
3418
3455
  await new TestJiraCommand().createChildIssue(parentKey);
3419
3456
  } catch (error) {
3420
3457
  logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
@@ -3423,7 +3460,7 @@ testJiraCommand.command("child-issue").description("Create a test child issue un
3423
3460
  });
3424
3461
  testJiraCommand.command("create-dep").description('Create a "Blocks" dependency between two issues').argument("<blockingKey>", "Issue key that blocks (e.g., PROJ-100)").argument("<blockedKey>", "Issue key being blocked (e.g., PROJ-200)").action(async (blockingKey, blockedKey) => {
3425
3462
  try {
3426
- const { TestJiraCommand } = await import("./test-jira-6NK7UHSV.js");
3463
+ const { TestJiraCommand } = await import("./test-jira-CQQHGZ3S.js");
3427
3464
  await new TestJiraCommand().createDependency(blockingKey, blockedKey);
3428
3465
  } catch (error) {
3429
3466
  logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
@@ -3432,7 +3469,7 @@ testJiraCommand.command("create-dep").description('Create a "Blocks" dependency
3432
3469
  });
3433
3470
  testJiraCommand.command("get-deps").description("Fetch and print dependencies for an issue").argument("<issueKey>", "Issue key (e.g., PROJ-123)").action(async (issueKey) => {
3434
3471
  try {
3435
- const { TestJiraCommand } = await import("./test-jira-6NK7UHSV.js");
3472
+ const { TestJiraCommand } = await import("./test-jira-CQQHGZ3S.js");
3436
3473
  await new TestJiraCommand().getDependencies(issueKey);
3437
3474
  } catch (error) {
3438
3475
  logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
@@ -3441,7 +3478,7 @@ testJiraCommand.command("get-deps").description("Fetch and print dependencies fo
3441
3478
  });
3442
3479
  testJiraCommand.command("remove-dep").description('Remove a "Blocks" dependency between two issues').argument("<blockingKey>", "Issue key that blocks (e.g., PROJ-100)").argument("<blockedKey>", "Issue key being blocked (e.g., PROJ-200)").action(async (blockingKey, blockedKey) => {
3443
3480
  try {
3444
- const { TestJiraCommand } = await import("./test-jira-6NK7UHSV.js");
3481
+ const { TestJiraCommand } = await import("./test-jira-CQQHGZ3S.js");
3445
3482
  await new TestJiraCommand().removeDependency(blockingKey, blockedKey);
3446
3483
  } catch (error) {
3447
3484
  logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
@@ -3450,7 +3487,7 @@ testJiraCommand.command("remove-dep").description('Remove a "Blocks" dependency
3450
3487
  });
3451
3488
  testJiraCommand.command("get-children").description("List child issues of a parent").argument("<issueKey>", "Parent issue key (e.g., PROJ-123)").action(async (issueKey) => {
3452
3489
  try {
3453
- const { TestJiraCommand } = await import("./test-jira-6NK7UHSV.js");
3490
+ const { TestJiraCommand } = await import("./test-jira-CQQHGZ3S.js");
3454
3491
  await new TestJiraCommand().getChildIssues(issueKey);
3455
3492
  } catch (error) {
3456
3493
  logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
@@ -3460,7 +3497,7 @@ testJiraCommand.command("get-children").description("List child issues of a pare
3460
3497
  program.command("test-neon").description("Test Neon integration and debug configuration").action(async () => {
3461
3498
  var _a2;
3462
3499
  try {
3463
- const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-SLSYEYDZ.js");
3500
+ const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-PVHBSCMI.js");
3464
3501
  const { createNeonProviderFromSettings: createNeonProviderFromSettings2 } = await import("./neon-helpers-LCZAN4U4.js");
3465
3502
  logger.info("Testing Neon Integration\n");
3466
3503
  logger.info("1. Settings Configuration:");