@iloom/cli 0.12.0 → 0.13.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -2
- package/dist/{ClaudeContextManager-IENAE2CP.js → ClaudeContextManager-RRGREEZQ.js} +4 -4
- package/dist/{ClaudeService-YIJCZUUB.js → ClaudeService-LEPW6QAC.js} +3 -3
- package/dist/{IssueTrackerFactory-2OI7YIN6.js → IssueTrackerFactory-KE2BDCLC.js} +3 -3
- package/dist/{LoomLauncher-3TSFW7QP.js → LoomLauncher-GKQMR5E6.js} +4 -4
- package/dist/README.md +17 -2
- package/dist/{SettingsManager-BMQCAXPP.js → SettingsManager-KQU7OX7G.js} +4 -2
- package/dist/{build-DMWSIME6.js → build-V3KADFMO.js} +6 -6
- package/dist/{chunk-QFDM23CO.js → chunk-3XEXT35Z.js} +2 -2
- package/dist/{chunk-FV4KXBGO.js → chunk-4VQXMEEP.js} +2 -2
- package/dist/{chunk-V5IYLWRA.js → chunk-H3T3EPF3.js} +2 -2
- package/dist/{chunk-QF2DROQR.js → chunk-JDN4SPV3.js} +2 -2
- package/dist/{chunk-M3FBM4T3.js → chunk-KQSV7FOG.js} +2 -2
- package/dist/{chunk-R7DGN73N.js → chunk-NTDY5AMO.js} +2 -2
- package/dist/{chunk-35CBWAJL.js → chunk-NUUFP53X.js} +2 -2
- package/dist/{chunk-IS46GQRA.js → chunk-PD75ZCFT.js} +14 -14
- package/dist/chunk-PD75ZCFT.js.map +1 -0
- package/dist/{chunk-EQIII6GI.js → chunk-Q7VXHJP6.js} +3 -3
- package/dist/{chunk-IHSA7VGI.js → chunk-QED2WB2D.js} +4 -4
- package/dist/{chunk-OPQC4OWM.js → chunk-QNPJXO53.js} +3 -3
- package/dist/{chunk-YWNF5755.js → chunk-QQULYI2S.js} +2 -2
- package/dist/{chunk-HIGWKLQR.js → chunk-QXGM32TO.js} +2 -2
- package/dist/{chunk-PMB6TYV4.js → chunk-RFCAPHL5.js} +2 -2
- package/dist/{chunk-OKB2NEDQ.js → chunk-SA446KA2.js} +5 -5
- package/dist/{chunk-ZM2AYHMO.js → chunk-SN4S5CWL.js} +2 -2
- package/dist/{chunk-XVCGPTEQ.js → chunk-TAEVA4QR.js} +2 -2
- package/dist/chunk-TAEVA4QR.js.map +1 -0
- package/dist/{chunk-PDG74IJT.js → chunk-TN2D2RX7.js} +22 -20
- package/dist/chunk-TN2D2RX7.js.map +1 -0
- package/dist/{chunk-GWJWECZB.js → chunk-VVQQIG64.js} +16 -17
- package/dist/{chunk-GWJWECZB.js.map → chunk-VVQQIG64.js.map} +1 -1
- package/dist/{chunk-653XBU3L.js → chunk-WGUGB54H.js} +10 -1
- package/dist/chunk-WGUGB54H.js.map +1 -0
- package/dist/{chunk-KCZSUJUR.js → chunk-X5DRLONY.js} +4 -4
- package/dist/{chunk-VA6CWUAE.js → chunk-XCP2WDYA.js} +2 -2
- package/dist/{chunk-HKEXRZMU.js → chunk-YUOVWWJX.js} +310 -5
- package/dist/chunk-YUOVWWJX.js.map +1 -0
- package/dist/{chunk-BFF27W3S.js → chunk-ZUIFO7B4.js} +2 -2
- package/dist/{cleanup-RLBLNQZN.js → cleanup-RJKLI47I.js} +19 -19
- package/dist/cleanup-RJKLI47I.js.map +1 -0
- package/dist/cli.js +89 -85
- package/dist/cli.js.map +1 -1
- package/dist/{commit-RILBXFWO.js → commit-SUHRUMDE.js} +6 -6
- package/dist/{compile-QEL5724K.js → compile-2MD346PO.js} +6 -6
- package/dist/{contribute-EHWLYOMZ.js → contribute-P4BMRY7C.js} +3 -3
- package/dist/database-helpers-PRDFNDRO.js +11 -0
- package/dist/{dev-server-2WSWZXJG.js → dev-server-ZNTLWOL5.js} +8 -8
- package/dist/{feedback-I6ZEHEUB.js → feedback-Q6WG2WX4.js} +2 -2
- package/dist/{git-I3PO6FY7.js → git-TX2IEMB3.js} +3 -3
- package/dist/{ignite-XZFYRVRJ.js → ignite-P644W2PK.js} +9 -9
- package/dist/index.d.ts +36 -2
- package/dist/index.js +17 -9
- package/dist/index.js.map +1 -1
- package/dist/{init-A6WRP77L.js → init-5HFY7JG6.js} +5 -5
- package/dist/{install-deps-HXP2TM7G.js → install-deps-J4ALTM27.js} +6 -6
- package/dist/{issues-SUFQJY6O.js → issues-LZMIF22U.js} +4 -4
- package/dist/{lint-FDZC77GL.js → lint-XIXKU22H.js} +6 -6
- package/dist/mcp/issue-management-server.js +8 -0
- package/dist/mcp/issue-management-server.js.map +1 -1
- package/dist/{open-US4XACLW.js → open-KUO35JIJ.js} +8 -8
- package/dist/{plan-PL3ZB32J.js → plan-7CF56OIR.js} +17 -17
- package/dist/prompts/init-prompt.txt +24 -0
- package/dist/prompts/issue-prompt.txt +1 -1
- package/dist/prompts/regular-prompt.txt +1 -1
- package/dist/{rebase-JA3RW2XO.js → rebase-MAMWPA2L.js} +5 -5
- package/dist/{recap-5TO42HN2.js → recap-IDBO3KM5.js} +6 -6
- package/dist/{run-KKCRBRLW.js → run-RGZHCQ6M.js} +8 -8
- package/dist/schema/settings.schema.json +24 -0
- package/dist/{shell-GAB2FCXH.js → shell-7ADCDFIV.js} +5 -5
- package/dist/{summary-P7QE3TNW.js → summary-7J2HORFD.js} +7 -7
- package/dist/{test-6LFB5WOO.js → test-SRB7EWU6.js} +6 -6
- package/dist/{test-git-PYJOYSED.js → test-git-G7ATVIXG.js} +3 -3
- package/dist/{test-jira-SM7IU5HW.js → test-jira-Q2HPA522.js} +3 -3
- package/dist/{test-prefix-HIRZBXTM.js → test-prefix-JMDGXR5A.js} +3 -3
- package/dist/{test-webserver-43PVP2JL.js → test-webserver-GZFVXBGD.js} +5 -5
- package/dist/{vscode-HXIXRZ3A.js → vscode-3I7ISHUU.js} +5 -5
- package/package.json +1 -1
- package/dist/chunk-653XBU3L.js.map +0 -1
- package/dist/chunk-HKEXRZMU.js.map +0 -1
- package/dist/chunk-IS46GQRA.js.map +0 -1
- package/dist/chunk-PDG74IJT.js.map +0 -1
- package/dist/chunk-XVCGPTEQ.js.map +0 -1
- package/dist/cleanup-RLBLNQZN.js.map +0 -1
- package/dist/neon-helpers-LCZAN4U4.js +0 -11
- /package/dist/{ClaudeContextManager-IENAE2CP.js.map → ClaudeContextManager-RRGREEZQ.js.map} +0 -0
- /package/dist/{ClaudeService-YIJCZUUB.js.map → ClaudeService-LEPW6QAC.js.map} +0 -0
- /package/dist/{IssueTrackerFactory-2OI7YIN6.js.map → IssueTrackerFactory-KE2BDCLC.js.map} +0 -0
- /package/dist/{LoomLauncher-3TSFW7QP.js.map → LoomLauncher-GKQMR5E6.js.map} +0 -0
- /package/dist/{SettingsManager-BMQCAXPP.js.map → SettingsManager-KQU7OX7G.js.map} +0 -0
- /package/dist/{build-DMWSIME6.js.map → build-V3KADFMO.js.map} +0 -0
- /package/dist/{chunk-QFDM23CO.js.map → chunk-3XEXT35Z.js.map} +0 -0
- /package/dist/{chunk-FV4KXBGO.js.map → chunk-4VQXMEEP.js.map} +0 -0
- /package/dist/{chunk-V5IYLWRA.js.map → chunk-H3T3EPF3.js.map} +0 -0
- /package/dist/{chunk-QF2DROQR.js.map → chunk-JDN4SPV3.js.map} +0 -0
- /package/dist/{chunk-M3FBM4T3.js.map → chunk-KQSV7FOG.js.map} +0 -0
- /package/dist/{chunk-R7DGN73N.js.map → chunk-NTDY5AMO.js.map} +0 -0
- /package/dist/{chunk-35CBWAJL.js.map → chunk-NUUFP53X.js.map} +0 -0
- /package/dist/{chunk-EQIII6GI.js.map → chunk-Q7VXHJP6.js.map} +0 -0
- /package/dist/{chunk-IHSA7VGI.js.map → chunk-QED2WB2D.js.map} +0 -0
- /package/dist/{chunk-OPQC4OWM.js.map → chunk-QNPJXO53.js.map} +0 -0
- /package/dist/{chunk-YWNF5755.js.map → chunk-QQULYI2S.js.map} +0 -0
- /package/dist/{chunk-HIGWKLQR.js.map → chunk-QXGM32TO.js.map} +0 -0
- /package/dist/{chunk-PMB6TYV4.js.map → chunk-RFCAPHL5.js.map} +0 -0
- /package/dist/{chunk-OKB2NEDQ.js.map → chunk-SA446KA2.js.map} +0 -0
- /package/dist/{chunk-ZM2AYHMO.js.map → chunk-SN4S5CWL.js.map} +0 -0
- /package/dist/{chunk-KCZSUJUR.js.map → chunk-X5DRLONY.js.map} +0 -0
- /package/dist/{chunk-VA6CWUAE.js.map → chunk-XCP2WDYA.js.map} +0 -0
- /package/dist/{chunk-BFF27W3S.js.map → chunk-ZUIFO7B4.js.map} +0 -0
- /package/dist/{commit-RILBXFWO.js.map → commit-SUHRUMDE.js.map} +0 -0
- /package/dist/{compile-QEL5724K.js.map → compile-2MD346PO.js.map} +0 -0
- /package/dist/{contribute-EHWLYOMZ.js.map → contribute-P4BMRY7C.js.map} +0 -0
- /package/dist/{git-I3PO6FY7.js.map → database-helpers-PRDFNDRO.js.map} +0 -0
- /package/dist/{dev-server-2WSWZXJG.js.map → dev-server-ZNTLWOL5.js.map} +0 -0
- /package/dist/{feedback-I6ZEHEUB.js.map → feedback-Q6WG2WX4.js.map} +0 -0
- /package/dist/{ignite-XZFYRVRJ.js.map → git-TX2IEMB3.js.map} +0 -0
- /package/dist/{neon-helpers-LCZAN4U4.js.map → ignite-P644W2PK.js.map} +0 -0
- /package/dist/{init-A6WRP77L.js.map → init-5HFY7JG6.js.map} +0 -0
- /package/dist/{install-deps-HXP2TM7G.js.map → install-deps-J4ALTM27.js.map} +0 -0
- /package/dist/{issues-SUFQJY6O.js.map → issues-LZMIF22U.js.map} +0 -0
- /package/dist/{lint-FDZC77GL.js.map → lint-XIXKU22H.js.map} +0 -0
- /package/dist/{open-US4XACLW.js.map → open-KUO35JIJ.js.map} +0 -0
- /package/dist/{plan-PL3ZB32J.js.map → plan-7CF56OIR.js.map} +0 -0
- /package/dist/{rebase-JA3RW2XO.js.map → rebase-MAMWPA2L.js.map} +0 -0
- /package/dist/{recap-5TO42HN2.js.map → recap-IDBO3KM5.js.map} +0 -0
- /package/dist/{run-KKCRBRLW.js.map → run-RGZHCQ6M.js.map} +0 -0
- /package/dist/{shell-GAB2FCXH.js.map → shell-7ADCDFIV.js.map} +0 -0
- /package/dist/{summary-P7QE3TNW.js.map → summary-7J2HORFD.js.map} +0 -0
- /package/dist/{test-6LFB5WOO.js.map → test-SRB7EWU6.js.map} +0 -0
- /package/dist/{test-git-PYJOYSED.js.map → test-git-G7ATVIXG.js.map} +0 -0
- /package/dist/{test-jira-SM7IU5HW.js.map → test-jira-Q2HPA522.js.map} +0 -0
- /package/dist/{test-prefix-HIRZBXTM.js.map → test-prefix-JMDGXR5A.js.map} +0 -0
- /package/dist/{test-webserver-43PVP2JL.js.map → test-webserver-GZFVXBGD.js.map} +0 -0
- /package/dist/{vscode-HXIXRZ3A.js.map → vscode-3I7ISHUU.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-X5DRLONY.js";
|
|
5
5
|
import "./chunk-NXMDEL3F.js";
|
|
6
6
|
import {
|
|
7
7
|
ResourceCleanup
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-SA446KA2.js";
|
|
9
|
+
import "./chunk-3XEXT35Z.js";
|
|
10
10
|
import {
|
|
11
11
|
StartCommand,
|
|
12
12
|
launchFirstRunSetup,
|
|
13
13
|
needsFirstRunSetup
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-PD75ZCFT.js";
|
|
15
15
|
import {
|
|
16
16
|
CLIIsolationManager,
|
|
17
17
|
DatabaseManager,
|
|
18
18
|
EnvironmentManager,
|
|
19
19
|
LoomManager
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-VVQQIG64.js";
|
|
21
21
|
import {
|
|
22
22
|
PRManager,
|
|
23
23
|
VCSProviderFactory
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-KQSV7FOG.js";
|
|
25
25
|
import {
|
|
26
26
|
BuildRunner,
|
|
27
27
|
MergeManager
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-Q7VXHJP6.js";
|
|
29
29
|
import {
|
|
30
30
|
assembleChildrenData
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-RFCAPHL5.js";
|
|
32
32
|
import "./chunk-7UBEHQTP.js";
|
|
33
33
|
import "./chunk-AYLC633W.js";
|
|
34
34
|
import {
|
|
35
35
|
ProcessManager
|
|
36
|
-
} from "./chunk-
|
|
37
|
-
import "./chunk-
|
|
36
|
+
} from "./chunk-H3T3EPF3.js";
|
|
37
|
+
import "./chunk-ZUIFO7B4.js";
|
|
38
38
|
import {
|
|
39
39
|
IdentifierParser
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-SN4S5CWL.js";
|
|
41
41
|
import {
|
|
42
|
-
|
|
43
|
-
} from "./chunk-
|
|
42
|
+
createDatabaseProviderFromSettings
|
|
43
|
+
} from "./chunk-YUOVWWJX.js";
|
|
44
44
|
import {
|
|
45
45
|
ShellCompletion
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-QXGM32TO.js";
|
|
47
47
|
import {
|
|
48
48
|
TelemetryManager,
|
|
49
49
|
TelemetryService
|
|
@@ -63,17 +63,17 @@ import {
|
|
|
63
63
|
CommitManager,
|
|
64
64
|
UserAbortedCommitError,
|
|
65
65
|
ValidationRunner
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-TAEVA4QR.js";
|
|
67
67
|
import {
|
|
68
68
|
IssueManagementProviderFactory
|
|
69
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-NTDY5AMO.js";
|
|
70
70
|
import "./chunk-4232AHNQ.js";
|
|
71
71
|
import {
|
|
72
72
|
installDependencies
|
|
73
73
|
} from "./chunk-VIQOQ463.js";
|
|
74
74
|
import {
|
|
75
75
|
GitWorktreeManager
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-4VQXMEEP.js";
|
|
77
77
|
import {
|
|
78
78
|
openBrowser
|
|
79
79
|
} from "./chunk-WEBMMJKL.js";
|
|
@@ -84,8 +84,8 @@ import {
|
|
|
84
84
|
} from "./chunk-CE676WCN.js";
|
|
85
85
|
import {
|
|
86
86
|
ClaudeContextManager
|
|
87
|
-
} from "./chunk-
|
|
88
|
-
import "./chunk-
|
|
87
|
+
} from "./chunk-JDN4SPV3.js";
|
|
88
|
+
import "./chunk-XCP2WDYA.js";
|
|
89
89
|
import "./chunk-7RCUWU3I.js";
|
|
90
90
|
import "./chunk-GYCR2LOU.js";
|
|
91
91
|
import "./chunk-AQUSMNBF.js";
|
|
@@ -95,7 +95,7 @@ import {
|
|
|
95
95
|
import "./chunk-K3QGG4O2.js";
|
|
96
96
|
import {
|
|
97
97
|
IssueTrackerFactory
|
|
98
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-NUUFP53X.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-QNPJXO53.js";
|
|
129
129
|
import {
|
|
130
130
|
SettingsManager
|
|
131
|
-
} from "./chunk-
|
|
131
|
+
} from "./chunk-WGUGB54H.js";
|
|
132
132
|
import {
|
|
133
133
|
MetadataManager
|
|
134
134
|
} from "./chunk-4JZEQBWV.js";
|
|
@@ -350,8 +350,8 @@ var FinishCommand = class {
|
|
|
350
350
|
const settings = await this.settingsManager.loadSettings();
|
|
351
351
|
const databaseUrlEnvVarName = ((_b = (_a2 = settings.capabilities) == null ? void 0 : _a2.database) == null ? void 0 : _b.databaseUrlEnvVarName) ?? "DATABASE_URL";
|
|
352
352
|
const environmentManager = new EnvironmentManager();
|
|
353
|
-
const
|
|
354
|
-
const databaseManager = new DatabaseManager(
|
|
353
|
+
const databaseProvider = createDatabaseProviderFromSettings(settings);
|
|
354
|
+
const databaseManager = new DatabaseManager(databaseProvider, environmentManager, databaseUrlEnvVarName);
|
|
355
355
|
const cliIsolationManager = new CLIIsolationManager();
|
|
356
356
|
const { DefaultBranchNamingService } = await import("./BranchNamingService-MEK2WZUD.js");
|
|
357
357
|
this.loomManager ??= new LoomManager(
|
|
@@ -2206,14 +2206,14 @@ async function autoLaunchInitForMultipleRemotes() {
|
|
|
2206
2206
|
await waitForKeypress2("Press any key to start configuration...");
|
|
2207
2207
|
logger.info("");
|
|
2208
2208
|
try {
|
|
2209
|
-
const { InitCommand } = await import("./init-
|
|
2209
|
+
const { InitCommand } = await import("./init-5HFY7JG6.js");
|
|
2210
2210
|
const initCommand = new InitCommand();
|
|
2211
2211
|
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
2212
|
await initCommand.execute(customInitialMessage);
|
|
2213
2213
|
logger.info("");
|
|
2214
2214
|
logger.info("Configuration complete! Continuing with your original command...");
|
|
2215
2215
|
logger.info("");
|
|
2216
|
-
const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-
|
|
2216
|
+
const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-KQU7OX7G.js");
|
|
2217
2217
|
const settingsManager = new SettingsManager2();
|
|
2218
2218
|
const settings = await settingsManager.loadSettings();
|
|
2219
2219
|
const { hasMultipleRemotes: hasMultipleRemotes2 } = await import("./remote-RO4LZKT2.js");
|
|
@@ -2314,7 +2314,7 @@ program.command("add-issue").alias("a").description("Create and enhance GitHub i
|
|
|
2314
2314
|
});
|
|
2315
2315
|
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
2316
|
try {
|
|
2317
|
-
const { FeedbackCommand } = await import("./feedback-
|
|
2317
|
+
const { FeedbackCommand } = await import("./feedback-Q6WG2WX4.js");
|
|
2318
2318
|
const command = new FeedbackCommand();
|
|
2319
2319
|
const feedbackOptions = {};
|
|
2320
2320
|
if (options.body !== void 0) {
|
|
@@ -2416,7 +2416,7 @@ program.command("commit").alias("c").description("Commit all uncommitted files w
|
|
|
2416
2416
|
const isAnyJsonMode = options.json ?? options.jsonStream;
|
|
2417
2417
|
const executeAction = async () => {
|
|
2418
2418
|
try {
|
|
2419
|
-
const { CommitCommand } = await import("./commit-
|
|
2419
|
+
const { CommitCommand } = await import("./commit-SUHRUMDE.js");
|
|
2420
2420
|
const command = new CommitCommand();
|
|
2421
2421
|
const noReview = options.review === false || options.json === true || options.jsonStream === true;
|
|
2422
2422
|
const result = await command.execute({
|
|
@@ -2455,7 +2455,7 @@ program.command("commit").alias("c").description("Commit all uncommitted files w
|
|
|
2455
2455
|
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
2456
|
const executeAction = async () => {
|
|
2457
2457
|
try {
|
|
2458
|
-
const { RebaseCommand } = await import("./rebase-
|
|
2458
|
+
const { RebaseCommand } = await import("./rebase-MAMWPA2L.js");
|
|
2459
2459
|
const command = new RebaseCommand();
|
|
2460
2460
|
const result = await command.execute(options);
|
|
2461
2461
|
if (options.jsonStream && result) {
|
|
@@ -2495,7 +2495,7 @@ program.command("spin").alias("ignite").description("Launch Claude with auto-det
|
|
|
2495
2495
|
options.oneShot = "bypassPermissions";
|
|
2496
2496
|
}
|
|
2497
2497
|
try {
|
|
2498
|
-
const { IgniteCommand } = await import("./ignite-
|
|
2498
|
+
const { IgniteCommand } = await import("./ignite-P644W2PK.js");
|
|
2499
2499
|
const command = new IgniteCommand();
|
|
2500
2500
|
if (options.json && options.jsonStream) {
|
|
2501
2501
|
logger.error("--json and --json-stream are mutually exclusive");
|
|
@@ -2523,7 +2523,7 @@ program.command("spin").alias("ignite").description("Launch Claude with auto-det
|
|
|
2523
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, _options, command) => {
|
|
2524
2524
|
try {
|
|
2525
2525
|
const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
|
|
2526
|
-
const { OpenCommand } = await import("./open-
|
|
2526
|
+
const { OpenCommand } = await import("./open-KUO35JIJ.js");
|
|
2527
2527
|
const cmd = new OpenCommand();
|
|
2528
2528
|
const input = identifier ? { identifier, args } : { args };
|
|
2529
2529
|
await cmd.execute(input);
|
|
@@ -2535,7 +2535,7 @@ program.command("open").description("Open workspace in browser or run CLI tool")
|
|
|
2535
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, _options, command) => {
|
|
2536
2536
|
try {
|
|
2537
2537
|
const args = (command == null ? void 0 : command.args) ? command.args.slice(identifier ? 1 : 0) : [];
|
|
2538
|
-
const { RunCommand } = await import("./run-
|
|
2538
|
+
const { RunCommand } = await import("./run-RGZHCQ6M.js");
|
|
2539
2539
|
const cmd = new RunCommand();
|
|
2540
2540
|
const input = identifier ? { identifier, args } : { args };
|
|
2541
2541
|
await cmd.execute(input);
|
|
@@ -2546,7 +2546,7 @@ program.command("run").description("Run CLI tool or open workspace in browser").
|
|
|
2546
2546
|
});
|
|
2547
2547
|
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
2548
|
try {
|
|
2549
|
-
const { VSCodeCommand } = await import("./vscode-
|
|
2549
|
+
const { VSCodeCommand } = await import("./vscode-3I7ISHUU.js");
|
|
2550
2550
|
const cmd = new VSCodeCommand();
|
|
2551
2551
|
await cmd.execute({ identifier, wait: options == null ? void 0 : options.wait });
|
|
2552
2552
|
} catch (error) {
|
|
@@ -2555,7 +2555,7 @@ program.command("vscode").description("Install iloom VS Code extension and open
|
|
|
2555
2555
|
});
|
|
2556
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) => {
|
|
2557
2557
|
try {
|
|
2558
|
-
const { DevServerCommand } = await import("./dev-server-
|
|
2558
|
+
const { DevServerCommand } = await import("./dev-server-ZNTLWOL5.js");
|
|
2559
2559
|
const cmd = new DevServerCommand();
|
|
2560
2560
|
await cmd.execute({ identifier, json: options == null ? void 0 : options.json });
|
|
2561
2561
|
} catch (error) {
|
|
@@ -2565,7 +2565,7 @@ program.command("dev-server").alias("dev").description("Start dev server for wor
|
|
|
2565
2565
|
});
|
|
2566
2566
|
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
2567
|
try {
|
|
2568
|
-
const { ShellCommand } = await import("./shell-
|
|
2568
|
+
const { ShellCommand } = await import("./shell-7ADCDFIV.js");
|
|
2569
2569
|
const cmd = new ShellCommand();
|
|
2570
2570
|
await cmd.execute({ identifier });
|
|
2571
2571
|
} catch (error) {
|
|
@@ -2575,7 +2575,7 @@ program.command("shell").alias("terminal").description("Open interactive shell w
|
|
|
2575
2575
|
});
|
|
2576
2576
|
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
2577
|
try {
|
|
2578
|
-
const { BuildCommand } = await import("./build-
|
|
2578
|
+
const { BuildCommand } = await import("./build-V3KADFMO.js");
|
|
2579
2579
|
const cmd = new BuildCommand();
|
|
2580
2580
|
await cmd.execute(identifier ? { identifier } : {});
|
|
2581
2581
|
} catch (error) {
|
|
@@ -2585,7 +2585,7 @@ program.command("build").description("Run the build script").argument("[identifi
|
|
|
2585
2585
|
});
|
|
2586
2586
|
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
2587
|
try {
|
|
2588
|
-
const { LintCommand } = await import("./lint-
|
|
2588
|
+
const { LintCommand } = await import("./lint-XIXKU22H.js");
|
|
2589
2589
|
const cmd = new LintCommand();
|
|
2590
2590
|
await cmd.execute(identifier ? { identifier } : {});
|
|
2591
2591
|
} catch (error) {
|
|
@@ -2595,7 +2595,7 @@ program.command("lint").description("Run the lint script").argument("[identifier
|
|
|
2595
2595
|
});
|
|
2596
2596
|
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
2597
|
try {
|
|
2598
|
-
const { TestCommand } = await import("./test-
|
|
2598
|
+
const { TestCommand } = await import("./test-SRB7EWU6.js");
|
|
2599
2599
|
const cmd = new TestCommand();
|
|
2600
2600
|
await cmd.execute(identifier ? { identifier } : {});
|
|
2601
2601
|
} catch (error) {
|
|
@@ -2605,7 +2605,7 @@ program.command("test").description("Run the test script").argument("[identifier
|
|
|
2605
2605
|
});
|
|
2606
2606
|
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
2607
|
try {
|
|
2608
|
-
const { CompileCommand } = await import("./compile-
|
|
2608
|
+
const { CompileCommand } = await import("./compile-2MD346PO.js");
|
|
2609
2609
|
const cmd = new CompileCommand();
|
|
2610
2610
|
await cmd.execute(identifier ? { identifier } : {});
|
|
2611
2611
|
} catch (error) {
|
|
@@ -2615,7 +2615,7 @@ program.command("compile").alias("typecheck").description("Run the compile or ty
|
|
|
2615
2615
|
});
|
|
2616
2616
|
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
2617
|
try {
|
|
2618
|
-
const { InstallDepsCommand } = await import("./install-deps-
|
|
2618
|
+
const { InstallDepsCommand } = await import("./install-deps-J4ALTM27.js");
|
|
2619
2619
|
const cmd = new InstallDepsCommand();
|
|
2620
2620
|
const input = {};
|
|
2621
2621
|
if (identifier) input.identifier = identifier;
|
|
@@ -2629,7 +2629,7 @@ program.command("install-deps").description("Install dependencies for a workspac
|
|
|
2629
2629
|
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", parseInt).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
2630
|
const executeAction = async () => {
|
|
2631
2631
|
try {
|
|
2632
|
-
const { CleanupCommand } = await import("./cleanup-
|
|
2632
|
+
const { CleanupCommand } = await import("./cleanup-RJKLI47I.js");
|
|
2633
2633
|
const command = new CleanupCommand();
|
|
2634
2634
|
const input = {
|
|
2635
2635
|
options: options ?? {}
|
|
@@ -2990,7 +2990,7 @@ program.command("projects").description("List configured iloom projects").option
|
|
|
2990
2990
|
});
|
|
2991
2991
|
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) => {
|
|
2992
2992
|
try {
|
|
2993
|
-
const { IssuesCommand } = await import("./issues-
|
|
2993
|
+
const { IssuesCommand } = await import("./issues-LZMIF22U.js");
|
|
2994
2994
|
const command = new IssuesCommand();
|
|
2995
2995
|
const parsedLimit = parseInt((options == null ? void 0 : options.limit) ?? "100", 10);
|
|
2996
2996
|
const limit = Number.isNaN(parsedLimit) || parsedLimit <= 0 ? 100 : parsedLimit;
|
|
@@ -3008,7 +3008,7 @@ program.command("issues").description("List project issues from configured issue
|
|
|
3008
3008
|
});
|
|
3009
3009
|
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) => {
|
|
3010
3010
|
try {
|
|
3011
|
-
const { InitCommand } = await import("./init-
|
|
3011
|
+
const { InitCommand } = await import("./init-5HFY7JG6.js");
|
|
3012
3012
|
const command = new InitCommand();
|
|
3013
3013
|
const trimmedPrompt = prompt == null ? void 0 : prompt.trim();
|
|
3014
3014
|
const customPrompt = trimmedPrompt && trimmedPrompt.length > 0 ? trimmedPrompt : void 0;
|
|
@@ -3022,7 +3022,7 @@ program.command("plan").description("Launch interactive planning session with Ar
|
|
|
3022
3022
|
new Option("--output-format <format>", "Output format for Claude CLI (requires --print)").choices(["json", "stream-json", "text"])
|
|
3023
3023
|
).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) => {
|
|
3024
3024
|
try {
|
|
3025
|
-
const { PlanCommand } = await import("./plan-
|
|
3025
|
+
const { PlanCommand } = await import("./plan-7CF56OIR.js");
|
|
3026
3026
|
const command = new PlanCommand();
|
|
3027
3027
|
if ((options == null ? void 0 : options.json) && (options == null ? void 0 : options.jsonStream)) {
|
|
3028
3028
|
logger.error("--json and --json-stream are mutually exclusive");
|
|
@@ -3049,7 +3049,7 @@ program.command("plan").description("Launch interactive planning session with Ar
|
|
|
3049
3049
|
});
|
|
3050
3050
|
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) => {
|
|
3051
3051
|
try {
|
|
3052
|
-
const { ContributeCommand } = await import("./contribute-
|
|
3052
|
+
const { ContributeCommand } = await import("./contribute-P4BMRY7C.js");
|
|
3053
3053
|
const command = new ContributeCommand();
|
|
3054
3054
|
await command.execute(repository);
|
|
3055
3055
|
} catch (error) {
|
|
@@ -3130,8 +3130,8 @@ program.command("test-claude").description("Test Claude integration (Issue #10)"
|
|
|
3130
3130
|
try {
|
|
3131
3131
|
const { detectClaudeCli, getClaudeVersion, generateBranchName, launchClaude } = await import("./claude-ACL7G4CF.js");
|
|
3132
3132
|
const { PromptTemplateManager } = await import("./PromptTemplateManager-I75WKXM4.js");
|
|
3133
|
-
const { ClaudeService } = await import("./ClaudeService-
|
|
3134
|
-
const { ClaudeContextManager: ClaudeContextManager2 } = await import("./ClaudeContextManager-
|
|
3133
|
+
const { ClaudeService } = await import("./ClaudeService-LEPW6QAC.js");
|
|
3134
|
+
const { ClaudeContextManager: ClaudeContextManager2 } = await import("./ClaudeContextManager-RRGREEZQ.js");
|
|
3135
3135
|
logger.info("Testing Claude Integration\n");
|
|
3136
3136
|
if (options.detect) {
|
|
3137
3137
|
logger.info("Detecting Claude CLI...");
|
|
@@ -3266,7 +3266,7 @@ program.command("test-claude").description("Test Claude integration (Issue #10)"
|
|
|
3266
3266
|
});
|
|
3267
3267
|
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) => {
|
|
3268
3268
|
try {
|
|
3269
|
-
const { TestWebserverCommand } = await import("./test-webserver-
|
|
3269
|
+
const { TestWebserverCommand } = await import("./test-webserver-GZFVXBGD.js");
|
|
3270
3270
|
const command = new TestWebserverCommand();
|
|
3271
3271
|
await command.execute({ issueNumber, options });
|
|
3272
3272
|
} catch (error) {
|
|
@@ -3279,7 +3279,7 @@ program.command("test-webserver").description("Test if a web server is running o
|
|
|
3279
3279
|
});
|
|
3280
3280
|
program.command("test-git").description("Test Git integration - findMainWorktreePath() function (reads .iloom/settings.json)").action(async () => {
|
|
3281
3281
|
try {
|
|
3282
|
-
const { TestGitCommand } = await import("./test-git-
|
|
3282
|
+
const { TestGitCommand } = await import("./test-git-G7ATVIXG.js");
|
|
3283
3283
|
const command = new TestGitCommand();
|
|
3284
3284
|
await command.execute();
|
|
3285
3285
|
} catch (error) {
|
|
@@ -3305,7 +3305,7 @@ program.command("test-tabs").description("Test iTerm2 dual tab functionality - o
|
|
|
3305
3305
|
});
|
|
3306
3306
|
program.command("test-prefix").description("[DEPRECATED] Test worktree prefix configuration - preview worktree paths").action(async () => {
|
|
3307
3307
|
try {
|
|
3308
|
-
const { TestPrefixCommand } = await import("./test-prefix-
|
|
3308
|
+
const { TestPrefixCommand } = await import("./test-prefix-JMDGXR5A.js");
|
|
3309
3309
|
const command = new TestPrefixCommand();
|
|
3310
3310
|
await command.execute();
|
|
3311
3311
|
} catch (error) {
|
|
@@ -3319,7 +3319,7 @@ program.command("test-prefix").description("[DEPRECATED] Test worktree prefix co
|
|
|
3319
3319
|
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) => {
|
|
3320
3320
|
const executeAction = async () => {
|
|
3321
3321
|
try {
|
|
3322
|
-
const { SummaryCommand } = await import("./summary-
|
|
3322
|
+
const { SummaryCommand } = await import("./summary-7J2HORFD.js");
|
|
3323
3323
|
const command = new SummaryCommand();
|
|
3324
3324
|
const result = await command.execute({ identifier, options });
|
|
3325
3325
|
if (options.json && result) {
|
|
@@ -3349,7 +3349,7 @@ program.command("summary").description("Generate Claude session summary for a lo
|
|
|
3349
3349
|
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) => {
|
|
3350
3350
|
const executeAction = async () => {
|
|
3351
3351
|
try {
|
|
3352
|
-
const { RecapCommand } = await import("./recap-
|
|
3352
|
+
const { RecapCommand } = await import("./recap-IDBO3KM5.js");
|
|
3353
3353
|
const command = new RecapCommand();
|
|
3354
3354
|
const result = await command.execute({ identifier, json: options.json });
|
|
3355
3355
|
if (options.json && result) {
|
|
@@ -3379,7 +3379,7 @@ program.command("recap").description("Get recap for a loom (defaults to current
|
|
|
3379
3379
|
var testJiraCommand = program.command("test-jira").description("Test Jira integration methods against a real Jira instance");
|
|
3380
3380
|
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) => {
|
|
3381
3381
|
try {
|
|
3382
|
-
const { TestJiraCommand } = await import("./test-jira-
|
|
3382
|
+
const { TestJiraCommand } = await import("./test-jira-Q2HPA522.js");
|
|
3383
3383
|
await new TestJiraCommand().createChildIssue(parentKey);
|
|
3384
3384
|
} catch (error) {
|
|
3385
3385
|
logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
@@ -3388,7 +3388,7 @@ testJiraCommand.command("child-issue").description("Create a test child issue un
|
|
|
3388
3388
|
});
|
|
3389
3389
|
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) => {
|
|
3390
3390
|
try {
|
|
3391
|
-
const { TestJiraCommand } = await import("./test-jira-
|
|
3391
|
+
const { TestJiraCommand } = await import("./test-jira-Q2HPA522.js");
|
|
3392
3392
|
await new TestJiraCommand().createDependency(blockingKey, blockedKey);
|
|
3393
3393
|
} catch (error) {
|
|
3394
3394
|
logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
@@ -3397,7 +3397,7 @@ testJiraCommand.command("create-dep").description('Create a "Blocks" dependency
|
|
|
3397
3397
|
});
|
|
3398
3398
|
testJiraCommand.command("get-deps").description("Fetch and print dependencies for an issue").argument("<issueKey>", "Issue key (e.g., PROJ-123)").action(async (issueKey) => {
|
|
3399
3399
|
try {
|
|
3400
|
-
const { TestJiraCommand } = await import("./test-jira-
|
|
3400
|
+
const { TestJiraCommand } = await import("./test-jira-Q2HPA522.js");
|
|
3401
3401
|
await new TestJiraCommand().getDependencies(issueKey);
|
|
3402
3402
|
} catch (error) {
|
|
3403
3403
|
logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
@@ -3406,7 +3406,7 @@ testJiraCommand.command("get-deps").description("Fetch and print dependencies fo
|
|
|
3406
3406
|
});
|
|
3407
3407
|
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) => {
|
|
3408
3408
|
try {
|
|
3409
|
-
const { TestJiraCommand } = await import("./test-jira-
|
|
3409
|
+
const { TestJiraCommand } = await import("./test-jira-Q2HPA522.js");
|
|
3410
3410
|
await new TestJiraCommand().removeDependency(blockingKey, blockedKey);
|
|
3411
3411
|
} catch (error) {
|
|
3412
3412
|
logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
@@ -3415,51 +3415,54 @@ testJiraCommand.command("remove-dep").description('Remove a "Blocks" dependency
|
|
|
3415
3415
|
});
|
|
3416
3416
|
testJiraCommand.command("get-children").description("List child issues of a parent").argument("<issueKey>", "Parent issue key (e.g., PROJ-123)").action(async (issueKey) => {
|
|
3417
3417
|
try {
|
|
3418
|
-
const { TestJiraCommand } = await import("./test-jira-
|
|
3418
|
+
const { TestJiraCommand } = await import("./test-jira-Q2HPA522.js");
|
|
3419
3419
|
await new TestJiraCommand().getChildIssues(issueKey);
|
|
3420
3420
|
} catch (error) {
|
|
3421
3421
|
logger.error(`Failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
3422
3422
|
process.exit(1);
|
|
3423
3423
|
}
|
|
3424
3424
|
});
|
|
3425
|
-
program.command("test-
|
|
3426
|
-
var _a2;
|
|
3425
|
+
program.command("test-db").description("Test database provider integration and debug configuration").action(async () => {
|
|
3427
3426
|
try {
|
|
3428
|
-
const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-
|
|
3429
|
-
const {
|
|
3430
|
-
logger.info("Testing
|
|
3427
|
+
const { SettingsManager: SettingsManager2 } = await import("./SettingsManager-KQU7OX7G.js");
|
|
3428
|
+
const { createDatabaseProviderFromSettings: createDatabaseProviderFromSettings2 } = await import("./database-helpers-PRDFNDRO.js");
|
|
3429
|
+
logger.info("Testing Database Provider Integration\n");
|
|
3431
3430
|
logger.info("1. Settings Configuration:");
|
|
3432
3431
|
const settingsManager = new SettingsManager2();
|
|
3433
3432
|
const settings = await settingsManager.loadSettings();
|
|
3434
|
-
|
|
3435
|
-
logger.info(` projectId: ${(neonConfig == null ? void 0 : neonConfig.projectId) ?? "(not configured)"}`);
|
|
3436
|
-
logger.info(` parentBranch: ${(neonConfig == null ? void 0 : neonConfig.parentBranch) ?? "(not configured)"}`);
|
|
3437
|
-
logger.info("\n2. Creating NeonProvider...");
|
|
3433
|
+
logger.info("\n2. Creating database provider...");
|
|
3438
3434
|
try {
|
|
3439
|
-
const
|
|
3440
|
-
logger.
|
|
3441
|
-
|
|
3442
|
-
|
|
3435
|
+
const provider = createDatabaseProviderFromSettings2(settings);
|
|
3436
|
+
logger.info(` Provider: ${provider.displayName}`);
|
|
3437
|
+
const isConfigured = provider.isConfigured();
|
|
3438
|
+
if (isConfigured) {
|
|
3439
|
+
logger.success(` ${provider.displayName} is configured`);
|
|
3440
|
+
} else {
|
|
3441
|
+
logger.warn(` ${provider.displayName} is not configured`);
|
|
3442
|
+
}
|
|
3443
|
+
logger.info(`
|
|
3444
|
+
3. Testing ${provider.displayName} CLI availability...`);
|
|
3445
|
+
const isAvailable = await provider.isCliAvailable();
|
|
3443
3446
|
if (isAvailable) {
|
|
3444
|
-
logger.success(
|
|
3447
|
+
logger.success(` ${provider.displayName} CLI is available`);
|
|
3445
3448
|
} else {
|
|
3446
|
-
logger.error(
|
|
3447
|
-
logger.info(
|
|
3449
|
+
logger.error(` ${provider.displayName} CLI not found`);
|
|
3450
|
+
logger.info(` Install with: ${provider.installHint}`);
|
|
3448
3451
|
return;
|
|
3449
3452
|
}
|
|
3450
|
-
logger.info(
|
|
3451
|
-
|
|
3453
|
+
logger.info(`
|
|
3454
|
+
4. Testing ${provider.displayName} CLI authentication...`);
|
|
3455
|
+
const isAuthenticated = await provider.isAuthenticated();
|
|
3452
3456
|
if (isAuthenticated) {
|
|
3453
|
-
logger.success(
|
|
3457
|
+
logger.success(` ${provider.displayName} CLI is authenticated`);
|
|
3454
3458
|
} else {
|
|
3455
|
-
logger.error(
|
|
3456
|
-
logger.info(" Run: neon auth");
|
|
3459
|
+
logger.error(` ${provider.displayName} CLI not authenticated`);
|
|
3457
3460
|
return;
|
|
3458
3461
|
}
|
|
3459
|
-
if (
|
|
3462
|
+
if (isConfigured) {
|
|
3460
3463
|
logger.info("\n5. Testing branch listing...");
|
|
3461
3464
|
try {
|
|
3462
|
-
const branches = await
|
|
3465
|
+
const branches = await provider.listBranches();
|
|
3463
3466
|
logger.success(` Found ${branches.length} branches:`);
|
|
3464
3467
|
for (const branch of branches.slice(0, 5)) {
|
|
3465
3468
|
logger.info(` - ${branch}`);
|
|
@@ -3471,17 +3474,18 @@ program.command("test-neon").description("Test Neon integration and debug config
|
|
|
3471
3474
|
logger.error(` Failed to list branches: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
3472
3475
|
}
|
|
3473
3476
|
} else {
|
|
3474
|
-
logger.warn(
|
|
3477
|
+
logger.warn(`
|
|
3478
|
+
5. Skipping branch listing (${provider.displayName} not configured in settings)`);
|
|
3475
3479
|
}
|
|
3476
3480
|
} catch (error) {
|
|
3477
|
-
logger.error(` Failed to create
|
|
3481
|
+
logger.error(` Failed to create database provider: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
3478
3482
|
if (error instanceof Error && error.message.includes("not configured")) {
|
|
3479
|
-
logger.info("\n This is expected if
|
|
3480
|
-
logger.info(" Configure databaseProviders
|
|
3483
|
+
logger.info("\n This is expected if no database provider is configured.");
|
|
3484
|
+
logger.info(" Configure databaseProviders in .iloom/settings.json to test fully.");
|
|
3481
3485
|
}
|
|
3482
3486
|
}
|
|
3483
3487
|
logger.info("\n" + "=".repeat(50));
|
|
3484
|
-
logger.success("
|
|
3488
|
+
logger.success("Database provider integration test complete!");
|
|
3485
3489
|
} catch (error) {
|
|
3486
3490
|
logger.error(`Test failed: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
3487
3491
|
if (error instanceof Error && error.stack) {
|