@iloom/cli 0.13.0 → 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.
- package/LICENSE +1 -1
- package/README.md +1 -1
- package/dist/CLAUDE.md +66 -0
- package/dist/{ClaudeContextManager-ZH6LEA5I.js → ClaudeContextManager-KJ4VEA2F.js} +5 -5
- package/dist/{ClaudeService-YR66WXZN.js → ClaudeService-WTJO4UW6.js} +4 -4
- package/dist/{IssueTrackerFactory-O2ZBA666.js → IssueTrackerFactory-UEJALI4X.js} +3 -3
- package/dist/{LoomLauncher-V54ENBEF.js → LoomLauncher-KG2VBNQA.js} +5 -5
- package/dist/{PromptTemplateManager-4RFELNYY.js → PromptTemplateManager-QIUVJP6S.js} +2 -2
- package/dist/README.md +1 -1
- package/dist/{SettingsManager-SLSYEYDZ.js → SettingsManager-PVHBSCMI.js} +2 -2
- package/dist/agents/CLAUDE.md +68 -0
- package/dist/agents/iloom-code-reviewer.md +1 -0
- package/dist/agents/iloom-wave-verifier.md +1 -36
- package/dist/{build-ZTGWDHWU.js → build-2FXDYEZQ.js} +6 -6
- package/dist/{chunk-LNY2Y32V.js → chunk-2WRD6Y5E.js} +2 -2
- package/dist/{chunk-WYDLOQYO.js → chunk-32D4CWWH.js} +2 -2
- package/dist/{chunk-KGOBNC5A.js → chunk-5W44AI63.js} +3 -3
- package/dist/{chunk-PPQ5LV7U.js → chunk-D6FU4DLN.js} +2 -2
- package/dist/{chunk-PS6K2AOV.js → chunk-DMNI225H.js} +4 -4
- package/dist/{chunk-55NTREIU.js → chunk-DYLOITSO.js} +55 -35
- package/dist/chunk-DYLOITSO.js.map +1 -0
- package/dist/{chunk-T4KFKKEB.js → chunk-H4TSDALC.js} +6 -6
- package/dist/{chunk-J5JOJPK3.js → chunk-L3P3YJCE.js} +2 -2
- package/dist/{chunk-MRPIDNZU.js → chunk-LDE6VNG5.js} +1 -1
- package/dist/chunk-LDE6VNG5.js.map +1 -0
- package/dist/{chunk-F5NKWLMQ.js → chunk-MNPKEWBQ.js} +9 -5
- package/dist/chunk-MNPKEWBQ.js.map +1 -0
- package/dist/{chunk-SM3BCHYB.js → chunk-MPHSR6GA.js} +8 -4
- package/dist/{chunk-SM3BCHYB.js.map → chunk-MPHSR6GA.js.map} +1 -1
- package/dist/{chunk-HWDQRW3O.js → chunk-OHX3PSAY.js} +2 -2
- package/dist/{chunk-C2BVNJW5.js → chunk-OIJNBFMP.js} +2 -2
- package/dist/{chunk-TJDKGKQV.js → chunk-OMV47LLA.js} +2 -2
- package/dist/{chunk-N6DY47YN.js → chunk-OVW26FHW.js} +47 -9
- package/dist/chunk-OVW26FHW.js.map +1 -0
- package/dist/{chunk-KCAWSZUO.js → chunk-R2EFSRKR.js} +10 -10
- package/dist/{chunk-QNRXRSKC.js → chunk-RP6MHV24.js} +9 -9
- package/dist/chunk-RP6MHV24.js.map +1 -0
- package/dist/{chunk-UXBVDD7U.js → chunk-U2OPXZ6E.js} +282 -44
- package/dist/chunk-U2OPXZ6E.js.map +1 -0
- package/dist/{chunk-T4NESGYB.js → chunk-UMAOVKQX.js} +3 -3
- package/dist/{chunk-E5OM25WK.js → chunk-UQWMPQ2Q.js} +2 -2
- package/dist/{chunk-ZEFTWM5Z.js → chunk-VUIPDX3T.js} +2 -2
- package/dist/{chunk-GQDVH6FA.js → chunk-XC5JKRSH.js} +2 -2
- package/dist/{chunk-G2DGDCDP.js → chunk-Y2JHYPMX.js} +15 -13
- package/dist/chunk-Y2JHYPMX.js.map +1 -0
- package/dist/{chunk-ERMEYFT6.js → chunk-YVNG35OW.js} +2 -2
- package/dist/{chunk-7TN5VW4I.js → chunk-Z32HPRZF.js} +2 -1
- package/dist/chunk-Z32HPRZF.js.map +1 -0
- package/dist/{chunk-GPBX2BY2.js → chunk-ZWXJ7G2C.js} +2 -2
- package/dist/{cleanup-BCVY7PEF.js → cleanup-I62RA5TZ.js} +16 -16
- package/dist/cli.js +111 -64
- package/dist/cli.js.map +1 -1
- package/dist/{commit-L5JNBU4U.js → commit-7RI2JFFW.js} +6 -6
- package/dist/{compile-GPJOHXH4.js → compile-NWTMKAGL.js} +6 -6
- package/dist/{contribute-QEGCI4PS.js → contribute-QWPOT4QR.js} +3 -3
- package/dist/{dev-server-67NPVWUN.js → dev-server-OZ6KKKTR.js} +60 -27
- package/dist/dev-server-OZ6KKKTR.js.map +1 -0
- package/dist/{feedback-2LWXKLQZ.js → feedback-G63MODT2.js} +4 -4
- package/dist/{git-IS7AV3ED.js → git-ZTMT6OAI.js} +3 -3
- package/dist/{ignite-VQDJQ37S.js → ignite-GUYKYC5G.js} +11 -11
- package/dist/index.d.ts +30 -3
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/{init-7SDJUAEZ.js → init-AMLCFVXG.js} +9 -7
- package/dist/init-AMLCFVXG.js.map +1 -0
- package/dist/{install-deps-NGSFDNUW.js → install-deps-XS2UUCUS.js} +6 -6
- package/dist/{issues-4HQKEUP7.js → issues-2IT7PSNZ.js} +4 -4
- package/dist/{lint-C5FOVRXY.js → lint-DKWJHET3.js} +6 -6
- package/dist/mcp/issue-management-server.js +8 -4
- package/dist/mcp/issue-management-server.js.map +1 -1
- package/dist/{open-WUTLRI6S.js → open-6PXNIPXS.js} +13 -12
- package/dist/open-6PXNIPXS.js.map +1 -0
- package/dist/{plan-GC3HF73T.js → plan-NJVQBBT3.js} +18 -18
- package/dist/prompts/epic-report-prompt.txt +145 -0
- package/dist/prompts/init-prompt.txt +32 -9
- package/dist/prompts/issue-prompt.txt +1 -1
- package/dist/prompts/swarm-orchestrator-prompt.txt +50 -6
- package/dist/{rebase-CSGQICAP.js → rebase-6AXN45AE.js} +5 -5
- package/dist/{recap-CKGKFDJL.js → recap-XDKI3MTA.js} +6 -6
- package/dist/{run-3YL2IXXI.js → run-RHE5NPDT.js} +16 -16
- package/dist/run-RHE5NPDT.js.map +1 -0
- package/dist/schema/settings.schema.json +14 -0
- package/dist/{shell-M2YYPNGV.js → shell-XOILFEZW.js} +5 -5
- package/dist/{summary-XR4CBJEG.js → summary-BVYOM63C.js} +10 -8
- package/dist/{summary-XR4CBJEG.js.map → summary-BVYOM63C.js.map} +1 -1
- package/dist/{test-ESDAHEVE.js → test-6T2UMQ7T.js} +6 -6
- package/dist/{test-git-KWPLHYSI.js → test-git-CQ65OL45.js} +3 -3
- package/dist/{test-jira-6NK7UHSV.js → test-jira-CQQHGZ3S.js} +3 -3
- package/dist/{test-prefix-VVODGHXP.js → test-prefix-HMTZSS67.js} +3 -3
- package/dist/{test-webserver-AHXKC6H4.js → test-webserver-ZN73CM2T.js} +5 -5
- package/dist/{vscode-OY7HOVRO.js → vscode-ABQ5ZSH7.js} +5 -5
- package/package.json +1 -1
- package/dist/chunk-55NTREIU.js.map +0 -1
- package/dist/chunk-7TN5VW4I.js.map +0 -1
- package/dist/chunk-F5NKWLMQ.js.map +0 -1
- package/dist/chunk-G2DGDCDP.js.map +0 -1
- package/dist/chunk-MRPIDNZU.js.map +0 -1
- package/dist/chunk-N6DY47YN.js.map +0 -1
- package/dist/chunk-QNRXRSKC.js.map +0 -1
- package/dist/chunk-UXBVDD7U.js.map +0 -1
- package/dist/dev-server-67NPVWUN.js.map +0 -1
- package/dist/init-7SDJUAEZ.js.map +0 -1
- package/dist/open-WUTLRI6S.js.map +0 -1
- package/dist/run-3YL2IXXI.js.map +0 -1
- /package/dist/{ClaudeContextManager-ZH6LEA5I.js.map → ClaudeContextManager-KJ4VEA2F.js.map} +0 -0
- /package/dist/{ClaudeService-YR66WXZN.js.map → ClaudeService-WTJO4UW6.js.map} +0 -0
- /package/dist/{IssueTrackerFactory-O2ZBA666.js.map → IssueTrackerFactory-UEJALI4X.js.map} +0 -0
- /package/dist/{LoomLauncher-V54ENBEF.js.map → LoomLauncher-KG2VBNQA.js.map} +0 -0
- /package/dist/{PromptTemplateManager-4RFELNYY.js.map → PromptTemplateManager-QIUVJP6S.js.map} +0 -0
- /package/dist/{SettingsManager-SLSYEYDZ.js.map → SettingsManager-PVHBSCMI.js.map} +0 -0
- /package/dist/{build-ZTGWDHWU.js.map → build-2FXDYEZQ.js.map} +0 -0
- /package/dist/{chunk-LNY2Y32V.js.map → chunk-2WRD6Y5E.js.map} +0 -0
- /package/dist/{chunk-WYDLOQYO.js.map → chunk-32D4CWWH.js.map} +0 -0
- /package/dist/{chunk-KGOBNC5A.js.map → chunk-5W44AI63.js.map} +0 -0
- /package/dist/{chunk-PPQ5LV7U.js.map → chunk-D6FU4DLN.js.map} +0 -0
- /package/dist/{chunk-PS6K2AOV.js.map → chunk-DMNI225H.js.map} +0 -0
- /package/dist/{chunk-T4KFKKEB.js.map → chunk-H4TSDALC.js.map} +0 -0
- /package/dist/{chunk-J5JOJPK3.js.map → chunk-L3P3YJCE.js.map} +0 -0
- /package/dist/{chunk-HWDQRW3O.js.map → chunk-OHX3PSAY.js.map} +0 -0
- /package/dist/{chunk-C2BVNJW5.js.map → chunk-OIJNBFMP.js.map} +0 -0
- /package/dist/{chunk-TJDKGKQV.js.map → chunk-OMV47LLA.js.map} +0 -0
- /package/dist/{chunk-KCAWSZUO.js.map → chunk-R2EFSRKR.js.map} +0 -0
- /package/dist/{chunk-T4NESGYB.js.map → chunk-UMAOVKQX.js.map} +0 -0
- /package/dist/{chunk-E5OM25WK.js.map → chunk-UQWMPQ2Q.js.map} +0 -0
- /package/dist/{chunk-ZEFTWM5Z.js.map → chunk-VUIPDX3T.js.map} +0 -0
- /package/dist/{chunk-GQDVH6FA.js.map → chunk-XC5JKRSH.js.map} +0 -0
- /package/dist/{chunk-ERMEYFT6.js.map → chunk-YVNG35OW.js.map} +0 -0
- /package/dist/{chunk-GPBX2BY2.js.map → chunk-ZWXJ7G2C.js.map} +0 -0
- /package/dist/{cleanup-BCVY7PEF.js.map → cleanup-I62RA5TZ.js.map} +0 -0
- /package/dist/{commit-L5JNBU4U.js.map → commit-7RI2JFFW.js.map} +0 -0
- /package/dist/{compile-GPJOHXH4.js.map → compile-NWTMKAGL.js.map} +0 -0
- /package/dist/{contribute-QEGCI4PS.js.map → contribute-QWPOT4QR.js.map} +0 -0
- /package/dist/{feedback-2LWXKLQZ.js.map → feedback-G63MODT2.js.map} +0 -0
- /package/dist/{git-IS7AV3ED.js.map → git-ZTMT6OAI.js.map} +0 -0
- /package/dist/{ignite-VQDJQ37S.js.map → ignite-GUYKYC5G.js.map} +0 -0
- /package/dist/{install-deps-NGSFDNUW.js.map → install-deps-XS2UUCUS.js.map} +0 -0
- /package/dist/{issues-4HQKEUP7.js.map → issues-2IT7PSNZ.js.map} +0 -0
- /package/dist/{lint-C5FOVRXY.js.map → lint-DKWJHET3.js.map} +0 -0
- /package/dist/{plan-GC3HF73T.js.map → plan-NJVQBBT3.js.map} +0 -0
- /package/dist/{rebase-CSGQICAP.js.map → rebase-6AXN45AE.js.map} +0 -0
- /package/dist/{recap-CKGKFDJL.js.map → recap-XDKI3MTA.js.map} +0 -0
- /package/dist/{shell-M2YYPNGV.js.map → shell-XOILFEZW.js.map} +0 -0
- /package/dist/{test-ESDAHEVE.js.map → test-6T2UMQ7T.js.map} +0 -0
- /package/dist/{test-git-KWPLHYSI.js.map → test-git-CQ65OL45.js.map} +0 -0
- /package/dist/{test-jira-6NK7UHSV.js.map → test-jira-CQQHGZ3S.js.map} +0 -0
- /package/dist/{test-prefix-VVODGHXP.js.map → test-prefix-HMTZSS67.js.map} +0 -0
- /package/dist/{test-webserver-AHXKC6H4.js.map → test-webserver-ZN73CM2T.js.map} +0 -0
- /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-
|
|
4
|
+
} from "./chunk-U2OPXZ6E.js";
|
|
5
5
|
import "./chunk-NXMDEL3F.js";
|
|
6
6
|
import {
|
|
7
7
|
ResourceCleanup
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
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-
|
|
14
|
+
} from "./chunk-R2EFSRKR.js";
|
|
15
15
|
import {
|
|
16
16
|
CLIIsolationManager,
|
|
17
17
|
DatabaseManager,
|
|
18
18
|
EnvironmentManager,
|
|
19
19
|
LoomManager
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-DYLOITSO.js";
|
|
21
21
|
import {
|
|
22
22
|
PRManager,
|
|
23
23
|
VCSProviderFactory
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-L3P3YJCE.js";
|
|
25
25
|
import {
|
|
26
26
|
BuildRunner,
|
|
27
27
|
MergeManager
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-MPHSR6GA.js";
|
|
29
29
|
import {
|
|
30
30
|
assembleChildrenData
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-OIJNBFMP.js";
|
|
32
32
|
import "./chunk-7UBEHQTP.js";
|
|
33
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-Z32HPRZF.js";
|
|
34
34
|
import {
|
|
35
35
|
ProcessManager
|
|
36
|
-
} from "./chunk-
|
|
37
|
-
import "./chunk-
|
|
36
|
+
} from "./chunk-2WRD6Y5E.js";
|
|
37
|
+
import "./chunk-YVNG35OW.js";
|
|
38
38
|
import {
|
|
39
39
|
IdentifierParser
|
|
40
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
61
|
+
} from "./chunk-RP6MHV24.js";
|
|
62
62
|
import {
|
|
63
63
|
CommitManager,
|
|
64
64
|
UserAbortedCommitError,
|
|
65
65
|
ValidationRunner
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-OHX3PSAY.js";
|
|
67
67
|
import {
|
|
68
68
|
IssueManagementProviderFactory
|
|
69
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
88
|
-
import "./chunk-
|
|
89
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
128
|
+
} from "./chunk-5W44AI63.js";
|
|
129
129
|
import {
|
|
130
130
|
SettingsManager
|
|
131
|
-
} from "./chunk-
|
|
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(
|
|
@@ -1863,6 +1885,16 @@ var migrations = [
|
|
|
1863
1885
|
];
|
|
1864
1886
|
await ensureGlobalGitignorePatterns(allIloomPatterns);
|
|
1865
1887
|
}
|
|
1888
|
+
},
|
|
1889
|
+
{
|
|
1890
|
+
version: "0.13.1",
|
|
1891
|
+
description: "Add global gitignore for .env.local and .env.*.local files",
|
|
1892
|
+
migrate: async () => {
|
|
1893
|
+
await ensureGlobalGitignorePatterns([
|
|
1894
|
+
"**/.env.local",
|
|
1895
|
+
"**/.env.*.local"
|
|
1896
|
+
]);
|
|
1897
|
+
}
|
|
1866
1898
|
}
|
|
1867
1899
|
];
|
|
1868
1900
|
|
|
@@ -2028,6 +2060,18 @@ function parseIssueIdentifier(value) {
|
|
|
2028
2060
|
const parsed = parseInt(value, 10);
|
|
2029
2061
|
return !isNaN(parsed) && String(parsed) === value ? parsed : value;
|
|
2030
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
|
+
}
|
|
2031
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) => {
|
|
2032
2076
|
const options = thisCommand.opts();
|
|
2033
2077
|
const envDebug = process.env.ILOOM_DEBUG === "true";
|
|
@@ -2206,14 +2250,14 @@ async function autoLaunchInitForMultipleRemotes() {
|
|
|
2206
2250
|
await waitForKeypress2("Press any key to start configuration...");
|
|
2207
2251
|
logger.info("");
|
|
2208
2252
|
try {
|
|
2209
|
-
const { InitCommand } = await import("./init-
|
|
2253
|
+
const { InitCommand } = await import("./init-AMLCFVXG.js");
|
|
2210
2254
|
const initCommand = new InitCommand();
|
|
2211
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.";
|
|
2212
2256
|
await initCommand.execute(customInitialMessage);
|
|
2213
2257
|
logger.info("");
|
|
2214
2258
|
logger.info("Configuration complete! Continuing with your original command...");
|
|
2215
2259
|
logger.info("");
|
|
2216
|
-
const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-
|
|
2260
|
+
const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-PVHBSCMI.js");
|
|
2217
2261
|
const settingsManager = new SettingsManager2();
|
|
2218
2262
|
const settings = await settingsManager.loadSettings();
|
|
2219
2263
|
const { hasMultipleRemotes: hasMultipleRemotes2 } = await import("./remote-RO4LZKT2.js");
|
|
@@ -2314,7 +2358,7 @@ program.command("add-issue").alias("a").description("Create and enhance GitHub i
|
|
|
2314
2358
|
});
|
|
2315
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) => {
|
|
2316
2360
|
try {
|
|
2317
|
-
const { FeedbackCommand } = await import("./feedback-
|
|
2361
|
+
const { FeedbackCommand } = await import("./feedback-G63MODT2.js");
|
|
2318
2362
|
const command = new FeedbackCommand();
|
|
2319
2363
|
const feedbackOptions = {};
|
|
2320
2364
|
if (options.body !== void 0) {
|
|
@@ -2416,7 +2460,7 @@ program.command("commit").alias("c").description("Commit all uncommitted files w
|
|
|
2416
2460
|
const isAnyJsonMode = options.json ?? options.jsonStream;
|
|
2417
2461
|
const executeAction = async () => {
|
|
2418
2462
|
try {
|
|
2419
|
-
const { CommitCommand } = await import("./commit-
|
|
2463
|
+
const { CommitCommand } = await import("./commit-7RI2JFFW.js");
|
|
2420
2464
|
const command = new CommitCommand();
|
|
2421
2465
|
const noReview = options.review === false || options.json === true || options.jsonStream === true;
|
|
2422
2466
|
const result = await command.execute({
|
|
@@ -2455,7 +2499,7 @@ program.command("commit").alias("c").description("Commit all uncommitted files w
|
|
|
2455
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) => {
|
|
2456
2500
|
const executeAction = async () => {
|
|
2457
2501
|
try {
|
|
2458
|
-
const { RebaseCommand } = await import("./rebase-
|
|
2502
|
+
const { RebaseCommand } = await import("./rebase-6AXN45AE.js");
|
|
2459
2503
|
const command = new RebaseCommand();
|
|
2460
2504
|
const result = await command.execute(options);
|
|
2461
2505
|
if (options.jsonStream && result) {
|
|
@@ -2495,7 +2539,7 @@ program.command("spin").alias("ignite").description("Launch Claude with auto-det
|
|
|
2495
2539
|
options.oneShot = "bypassPermissions";
|
|
2496
2540
|
}
|
|
2497
2541
|
try {
|
|
2498
|
-
const { IgniteCommand } = await import("./ignite-
|
|
2542
|
+
const { IgniteCommand } = await import("./ignite-GUYKYC5G.js");
|
|
2499
2543
|
const command = new IgniteCommand();
|
|
2500
2544
|
if (options.json && options.jsonStream) {
|
|
2501
2545
|
logger.error("--json and --json-stream are mutually exclusive");
|
|
@@ -2520,24 +2564,26 @@ program.command("spin").alias("ignite").description("Launch Claude with auto-det
|
|
|
2520
2564
|
process.exit(1);
|
|
2521
2565
|
}
|
|
2522
2566
|
});
|
|
2523
|
-
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,
|
|
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) => {
|
|
2524
2568
|
try {
|
|
2525
2569
|
const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
|
|
2526
|
-
const
|
|
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");
|
|
2527
2572
|
const cmd = new OpenCommand();
|
|
2528
|
-
const input = identifier ? { identifier, args } : { args };
|
|
2573
|
+
const input = identifier ? { identifier, args, env } : { args, env };
|
|
2529
2574
|
await cmd.execute(input);
|
|
2530
2575
|
} catch (error) {
|
|
2531
2576
|
logger.error(`Failed to open: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
2532
2577
|
process.exit(1);
|
|
2533
2578
|
}
|
|
2534
2579
|
});
|
|
2535
|
-
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,
|
|
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) => {
|
|
2536
2581
|
try {
|
|
2537
2582
|
const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
|
|
2538
|
-
const
|
|
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");
|
|
2539
2585
|
const cmd = new RunCommand();
|
|
2540
|
-
const input = identifier ? { identifier, args } : { args };
|
|
2586
|
+
const input = identifier ? { identifier, args, env } : { args, env };
|
|
2541
2587
|
await cmd.execute(input);
|
|
2542
2588
|
} catch (error) {
|
|
2543
2589
|
logger.error(`Failed to run: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
@@ -2546,18 +2592,19 @@ program.command("run").description("Run CLI tool or open workspace in browser").
|
|
|
2546
2592
|
});
|
|
2547
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) => {
|
|
2548
2594
|
try {
|
|
2549
|
-
const { VSCodeCommand } = await import("./vscode-
|
|
2595
|
+
const { VSCodeCommand } = await import("./vscode-ABQ5ZSH7.js");
|
|
2550
2596
|
const cmd = new VSCodeCommand();
|
|
2551
2597
|
await cmd.execute({ identifier, wait: options == null ? void 0 : options.wait });
|
|
2552
2598
|
} catch (error) {
|
|
2553
2599
|
throw new Error(`Failed to open VS Code: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
2554
2600
|
}
|
|
2555
2601
|
});
|
|
2556
|
-
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) => {
|
|
2557
2603
|
try {
|
|
2558
|
-
const { DevServerCommand } = await import("./dev-server-
|
|
2604
|
+
const { DevServerCommand } = await import("./dev-server-OZ6KKKTR.js");
|
|
2559
2605
|
const cmd = new DevServerCommand();
|
|
2560
|
-
|
|
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 });
|
|
2561
2608
|
} catch (error) {
|
|
2562
2609
|
logger.error(`Failed to start dev server: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
2563
2610
|
process.exit(1);
|
|
@@ -2565,7 +2612,7 @@ program.command("dev-server").alias("dev").description("Start dev server for wor
|
|
|
2565
2612
|
});
|
|
2566
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) => {
|
|
2567
2614
|
try {
|
|
2568
|
-
const { ShellCommand } = await import("./shell-
|
|
2615
|
+
const { ShellCommand } = await import("./shell-XOILFEZW.js");
|
|
2569
2616
|
const cmd = new ShellCommand();
|
|
2570
2617
|
await cmd.execute({ identifier });
|
|
2571
2618
|
} catch (error) {
|
|
@@ -2575,7 +2622,7 @@ program.command("shell").alias("terminal").description("Open interactive shell w
|
|
|
2575
2622
|
});
|
|
2576
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) => {
|
|
2577
2624
|
try {
|
|
2578
|
-
const { BuildCommand } = await import("./build-
|
|
2625
|
+
const { BuildCommand } = await import("./build-2FXDYEZQ.js");
|
|
2579
2626
|
const cmd = new BuildCommand();
|
|
2580
2627
|
await cmd.execute(identifier ? { identifier } : {});
|
|
2581
2628
|
} catch (error) {
|
|
@@ -2585,7 +2632,7 @@ program.command("build").description("Run the build script").argument("[identifi
|
|
|
2585
2632
|
});
|
|
2586
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) => {
|
|
2587
2634
|
try {
|
|
2588
|
-
const { LintCommand } = await import("./lint-
|
|
2635
|
+
const { LintCommand } = await import("./lint-DKWJHET3.js");
|
|
2589
2636
|
const cmd = new LintCommand();
|
|
2590
2637
|
await cmd.execute(identifier ? { identifier } : {});
|
|
2591
2638
|
} catch (error) {
|
|
@@ -2595,7 +2642,7 @@ program.command("lint").description("Run the lint script").argument("[identifier
|
|
|
2595
2642
|
});
|
|
2596
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) => {
|
|
2597
2644
|
try {
|
|
2598
|
-
const { TestCommand } = await import("./test-
|
|
2645
|
+
const { TestCommand } = await import("./test-6T2UMQ7T.js");
|
|
2599
2646
|
const cmd = new TestCommand();
|
|
2600
2647
|
await cmd.execute(identifier ? { identifier } : {});
|
|
2601
2648
|
} catch (error) {
|
|
@@ -2605,7 +2652,7 @@ program.command("test").description("Run the test script").argument("[identifier
|
|
|
2605
2652
|
});
|
|
2606
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) => {
|
|
2607
2654
|
try {
|
|
2608
|
-
const { CompileCommand } = await import("./compile-
|
|
2655
|
+
const { CompileCommand } = await import("./compile-NWTMKAGL.js");
|
|
2609
2656
|
const cmd = new CompileCommand();
|
|
2610
2657
|
await cmd.execute(identifier ? { identifier } : {});
|
|
2611
2658
|
} catch (error) {
|
|
@@ -2615,7 +2662,7 @@ program.command("compile").alias("typecheck").description("Run the compile or ty
|
|
|
2615
2662
|
});
|
|
2616
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) => {
|
|
2617
2664
|
try {
|
|
2618
|
-
const { InstallDepsCommand } = await import("./install-deps-
|
|
2665
|
+
const { InstallDepsCommand } = await import("./install-deps-XS2UUCUS.js");
|
|
2619
2666
|
const cmd = new InstallDepsCommand();
|
|
2620
2667
|
const input = {};
|
|
2621
2668
|
if (identifier) input.identifier = identifier;
|
|
@@ -2629,7 +2676,7 @@ program.command("install-deps").description("Install dependencies for a workspac
|
|
|
2629
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) => {
|
|
2630
2677
|
const executeAction = async () => {
|
|
2631
2678
|
try {
|
|
2632
|
-
const { CleanupCommand } = await import("./cleanup-
|
|
2679
|
+
const { CleanupCommand } = await import("./cleanup-I62RA5TZ.js");
|
|
2633
2680
|
const command = new CleanupCommand();
|
|
2634
2681
|
const input = {
|
|
2635
2682
|
options: options ?? {}
|
|
@@ -2993,7 +3040,7 @@ program.command("projects").description("List configured iloom projects").option
|
|
|
2993
3040
|
});
|
|
2994
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) => {
|
|
2995
3042
|
try {
|
|
2996
|
-
const { IssuesCommand } = await import("./issues-
|
|
3043
|
+
const { IssuesCommand } = await import("./issues-2IT7PSNZ.js");
|
|
2997
3044
|
const command = new IssuesCommand();
|
|
2998
3045
|
const parsedLimit = parseInt((options == null ? void 0 : options.limit) ?? "100", 10);
|
|
2999
3046
|
const limit = Number.isNaN(parsedLimit) || parsedLimit <= 0 ? 100 : parsedLimit;
|
|
@@ -3011,7 +3058,7 @@ program.command("issues").description("List project issues from configured issue
|
|
|
3011
3058
|
});
|
|
3012
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) => {
|
|
3013
3060
|
try {
|
|
3014
|
-
const { InitCommand } = await import("./init-
|
|
3061
|
+
const { InitCommand } = await import("./init-AMLCFVXG.js");
|
|
3015
3062
|
const command = new InitCommand();
|
|
3016
3063
|
const trimmedPrompt = prompt == null ? void 0 : prompt.trim();
|
|
3017
3064
|
const customPrompt = trimmedPrompt && trimmedPrompt.length > 0 ? trimmedPrompt : void 0;
|
|
@@ -3027,7 +3074,7 @@ program.command("plan").description("Launch interactive planning session with Ar
|
|
|
3027
3074
|
new Option("--output-format <format>", "Output format for Claude CLI (requires --print)").choices(["json", "stream-json", "text"])
|
|
3028
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) => {
|
|
3029
3076
|
try {
|
|
3030
|
-
const { PlanCommand } = await import("./plan-
|
|
3077
|
+
const { PlanCommand } = await import("./plan-NJVQBBT3.js");
|
|
3031
3078
|
const command = new PlanCommand();
|
|
3032
3079
|
if ((options == null ? void 0 : options.json) && (options == null ? void 0 : options.jsonStream)) {
|
|
3033
3080
|
logger.error("--json and --json-stream are mutually exclusive");
|
|
@@ -3074,7 +3121,7 @@ program.command("plan").description("Launch interactive planning session with Ar
|
|
|
3074
3121
|
});
|
|
3075
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) => {
|
|
3076
3123
|
try {
|
|
3077
|
-
const { ContributeCommand } = await import("./contribute-
|
|
3124
|
+
const { ContributeCommand } = await import("./contribute-QWPOT4QR.js");
|
|
3078
3125
|
const command = new ContributeCommand();
|
|
3079
3126
|
await command.execute(repository);
|
|
3080
3127
|
} catch (error) {
|
|
@@ -3154,9 +3201,9 @@ program.command("test-github").description("Test GitHub integration (Issue #3)")
|
|
|
3154
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) => {
|
|
3155
3202
|
try {
|
|
3156
3203
|
const { detectClaudeCli, getClaudeVersion, generateBranchName, launchClaude } = await import("./claude-ACL7G4CF.js");
|
|
3157
|
-
const { PromptTemplateManager } = await import("./PromptTemplateManager-
|
|
3158
|
-
const { ClaudeService } = await import("./ClaudeService-
|
|
3159
|
-
const { ClaudeContextManager: ClaudeContextManager2 } = await import("./ClaudeContextManager-
|
|
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");
|
|
3160
3207
|
logger.info("Testing Claude Integration\n");
|
|
3161
3208
|
if (options.detect) {
|
|
3162
3209
|
logger.info("Detecting Claude CLI...");
|
|
@@ -3291,7 +3338,7 @@ program.command("test-claude").description("Test Claude integration (Issue #10)"
|
|
|
3291
3338
|
});
|
|
3292
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) => {
|
|
3293
3340
|
try {
|
|
3294
|
-
const { TestWebserverCommand } = await import("./test-webserver-
|
|
3341
|
+
const { TestWebserverCommand } = await import("./test-webserver-ZN73CM2T.js");
|
|
3295
3342
|
const command = new TestWebserverCommand();
|
|
3296
3343
|
await command.execute({ issueNumber, options });
|
|
3297
3344
|
} catch (error) {
|
|
@@ -3304,7 +3351,7 @@ program.command("test-webserver").description("Test if a web server is running o
|
|
|
3304
3351
|
});
|
|
3305
3352
|
program.command("test-git").description("Test Git integration - findMainWorktreePath() function (reads .iloom/settings.json)").action(async () => {
|
|
3306
3353
|
try {
|
|
3307
|
-
const { TestGitCommand } = await import("./test-git-
|
|
3354
|
+
const { TestGitCommand } = await import("./test-git-CQ65OL45.js");
|
|
3308
3355
|
const command = new TestGitCommand();
|
|
3309
3356
|
await command.execute();
|
|
3310
3357
|
} catch (error) {
|
|
@@ -3330,7 +3377,7 @@ program.command("test-tabs").description("Test iTerm2 dual tab functionality - o
|
|
|
3330
3377
|
});
|
|
3331
3378
|
program.command("test-prefix").description("[DEPRECATED] Test worktree prefix configuration - preview worktree paths").action(async () => {
|
|
3332
3379
|
try {
|
|
3333
|
-
const { TestPrefixCommand } = await import("./test-prefix-
|
|
3380
|
+
const { TestPrefixCommand } = await import("./test-prefix-HMTZSS67.js");
|
|
3334
3381
|
const command = new TestPrefixCommand();
|
|
3335
3382
|
await command.execute();
|
|
3336
3383
|
} catch (error) {
|
|
@@ -3344,7 +3391,7 @@ program.command("test-prefix").description("[DEPRECATED] Test worktree prefix co
|
|
|
3344
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) => {
|
|
3345
3392
|
const executeAction = async () => {
|
|
3346
3393
|
try {
|
|
3347
|
-
const { SummaryCommand } = await import("./summary-
|
|
3394
|
+
const { SummaryCommand } = await import("./summary-BVYOM63C.js");
|
|
3348
3395
|
const command = new SummaryCommand();
|
|
3349
3396
|
const result = await command.execute({ identifier, options });
|
|
3350
3397
|
if (options.json && result) {
|
|
@@ -3374,7 +3421,7 @@ program.command("summary").description("Generate Claude session summary for a lo
|
|
|
3374
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) => {
|
|
3375
3422
|
const executeAction = async () => {
|
|
3376
3423
|
try {
|
|
3377
|
-
const { RecapCommand } = await import("./recap-
|
|
3424
|
+
const { RecapCommand } = await import("./recap-XDKI3MTA.js");
|
|
3378
3425
|
const command = new RecapCommand();
|
|
3379
3426
|
const result = await command.execute({ identifier, json: options.json });
|
|
3380
3427
|
if (options.json && result) {
|
|
@@ -3404,7 +3451,7 @@ program.command("recap").description("Get recap for a loom (defaults to current
|
|
|
3404
3451
|
var testJiraCommand = program.command("test-jira").description("Test Jira integration methods against a real Jira instance");
|
|
3405
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) => {
|
|
3406
3453
|
try {
|
|
3407
|
-
const { TestJiraCommand } = await import("./test-jira-
|
|
3454
|
+
const { TestJiraCommand } = await import("./test-jira-CQQHGZ3S.js");
|
|
3408
3455
|
await new TestJiraCommand().createChildIssue(parentKey);
|
|
3409
3456
|
} catch (error) {
|
|
3410
3457
|
logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
@@ -3413,7 +3460,7 @@ testJiraCommand.command("child-issue").description("Create a test child issue un
|
|
|
3413
3460
|
});
|
|
3414
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) => {
|
|
3415
3462
|
try {
|
|
3416
|
-
const { TestJiraCommand } = await import("./test-jira-
|
|
3463
|
+
const { TestJiraCommand } = await import("./test-jira-CQQHGZ3S.js");
|
|
3417
3464
|
await new TestJiraCommand().createDependency(blockingKey, blockedKey);
|
|
3418
3465
|
} catch (error) {
|
|
3419
3466
|
logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
@@ -3422,7 +3469,7 @@ testJiraCommand.command("create-dep").description('Create a "Blocks" dependency
|
|
|
3422
3469
|
});
|
|
3423
3470
|
testJiraCommand.command("get-deps").description("Fetch and print dependencies for an issue").argument("<issueKey>", "Issue key (e.g., PROJ-123)").action(async (issueKey) => {
|
|
3424
3471
|
try {
|
|
3425
|
-
const { TestJiraCommand } = await import("./test-jira-
|
|
3472
|
+
const { TestJiraCommand } = await import("./test-jira-CQQHGZ3S.js");
|
|
3426
3473
|
await new TestJiraCommand().getDependencies(issueKey);
|
|
3427
3474
|
} catch (error) {
|
|
3428
3475
|
logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
@@ -3431,7 +3478,7 @@ testJiraCommand.command("get-deps").description("Fetch and print dependencies fo
|
|
|
3431
3478
|
});
|
|
3432
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) => {
|
|
3433
3480
|
try {
|
|
3434
|
-
const { TestJiraCommand } = await import("./test-jira-
|
|
3481
|
+
const { TestJiraCommand } = await import("./test-jira-CQQHGZ3S.js");
|
|
3435
3482
|
await new TestJiraCommand().removeDependency(blockingKey, blockedKey);
|
|
3436
3483
|
} catch (error) {
|
|
3437
3484
|
logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
@@ -3440,7 +3487,7 @@ testJiraCommand.command("remove-dep").description('Remove a "Blocks" dependency
|
|
|
3440
3487
|
});
|
|
3441
3488
|
testJiraCommand.command("get-children").description("List child issues of a parent").argument("<issueKey>", "Parent issue key (e.g., PROJ-123)").action(async (issueKey) => {
|
|
3442
3489
|
try {
|
|
3443
|
-
const { TestJiraCommand } = await import("./test-jira-
|
|
3490
|
+
const { TestJiraCommand } = await import("./test-jira-CQQHGZ3S.js");
|
|
3444
3491
|
await new TestJiraCommand().getChildIssues(issueKey);
|
|
3445
3492
|
} catch (error) {
|
|
3446
3493
|
logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
@@ -3450,7 +3497,7 @@ testJiraCommand.command("get-children").description("List child issues of a pare
|
|
|
3450
3497
|
program.command("test-neon").description("Test Neon integration and debug configuration").action(async () => {
|
|
3451
3498
|
var _a2;
|
|
3452
3499
|
try {
|
|
3453
|
-
const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-
|
|
3500
|
+
const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-PVHBSCMI.js");
|
|
3454
3501
|
const { createNeonProviderFromSettings: createNeonProviderFromSettings2 } = await import("./neon-helpers-LCZAN4U4.js");
|
|
3455
3502
|
logger.info("Testing Neon Integration\n");
|
|
3456
3503
|
logger.info("1. Settings Configuration:");
|