@iloom/cli 0.1.18 → 0.2.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 +53 -6
- package/dist/ClaudeContextManager-LVCYRM6Q.js +13 -0
- package/dist/ClaudeService-WVTWB3DK.js +12 -0
- package/dist/{GitHubService-SH4H6VS5.js → GitHubService-7E2S5NNZ.js} +3 -3
- package/dist/{LoomLauncher-FB2MV2ZI.js → LoomLauncher-CTSWJL35.js} +7 -7
- package/dist/{PromptTemplateManager-WM5GIPEF.js → PromptTemplateManager-WII75TKH.js} +2 -2
- package/dist/README.md +771 -0
- package/dist/{SettingsManager-SKLUVE3K.js → SettingsManager-XOYCLH3D.js} +2 -2
- package/dist/{add-issue-L5HX6LEV.js → add-issue-OBI325W7.js} +7 -7
- package/dist/{chunk-SLIMABFA.js → chunk-2PLUQT6J.js} +2 -2
- package/dist/{chunk-VVH3ANF2.js → chunk-4IV6W4U5.js} +4 -4
- package/dist/{chunk-PV3GAXQO.js → chunk-6LEQW46Y.js} +2 -2
- package/dist/{chunk-6OTVPRXH.js → chunk-CVLAZRNB.js} +2 -2
- package/dist/{chunk-FXV24OYZ.js → chunk-DJUGYNQE.js} +9 -2
- package/dist/{chunk-FXV24OYZ.js.map → chunk-DJUGYNQE.js.map} +1 -1
- package/dist/{chunk-KOCQAD2E.js → chunk-HBVFXN7R.js} +3 -3
- package/dist/{chunk-HURVAQRK.js → chunk-LHP6ROUM.js} +4 -4
- package/dist/{chunk-PXZBAC2M.js → chunk-MFU53H6J.js} +2 -2
- package/dist/{chunk-L4QGC27H.js → chunk-PVAVNJKS.js} +13 -1
- package/dist/chunk-PVAVNJKS.js.map +1 -0
- package/dist/{chunk-PR7FKQBG.js → chunk-RF2YI2XJ.js} +2 -2
- package/dist/{chunk-DGEKUT7Q.js → chunk-SWCRXDZC.js} +34 -6
- package/dist/chunk-SWCRXDZC.js.map +1 -0
- package/dist/{chunk-Q2KYPAH2.js → chunk-SYOSCMIT.js} +6 -6
- package/dist/{chunk-VYQLLHZ7.js → chunk-T3KEIB4D.js} +6 -2
- package/dist/{chunk-VYQLLHZ7.js.map → chunk-T3KEIB4D.js.map} +1 -1
- package/dist/{chunk-IIPTBZQW.js → chunk-TS6DL67T.js} +2 -2
- package/dist/{chunk-IO4WFTL2.js → chunk-VETG35MF.js} +2 -2
- package/dist/{chunk-RSRO7564.js → chunk-ZE74H5BR.js} +28 -3
- package/dist/chunk-ZE74H5BR.js.map +1 -0
- package/dist/{claude-7LUVDZZ4.js → claude-ZIWDG4XG.js} +2 -2
- package/dist/{cleanup-ZHROIBSQ.js → cleanup-FEIVZSIV.js} +5 -5
- package/dist/cli.js +41 -31
- package/dist/cli.js.map +1 -1
- package/dist/contribute-EMZKCAC6.js +259 -0
- package/dist/contribute-EMZKCAC6.js.map +1 -0
- package/dist/{enhance-VVMAKMVZ.js → enhance-MNA4ZGXW.js} +7 -7
- package/dist/{feedback-AKHD7QIM.js → feedback-LFNMQBAZ.js} +6 -6
- package/dist/{finish-WGPISUEH.js → finish-TX5CJICB.js} +411 -17
- package/dist/finish-TX5CJICB.js.map +1 -0
- package/dist/{git-OUYMVYJX.js → git-WC6HZLOT.js} +2 -2
- package/dist/{ignite-JEN3K3OT.js → ignite-MQWVJEAB.js} +125 -10
- package/dist/ignite-MQWVJEAB.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +75 -7
- package/dist/index.js.map +1 -1
- package/dist/{init-EVUT4ZQJ.js → init-GJDYN2IK.js} +7 -7
- package/dist/mcp/{claude-YHHHLSXH.js → claude-NDFOCQQQ.js} +2 -2
- package/dist/mcp/github-comment-server.js.map +1 -1
- package/dist/mcp/{terminal-SDCMDVD7.js → terminal-OMNRFWB3.js} +28 -3
- package/dist/mcp/terminal-OMNRFWB3.js.map +1 -0
- package/dist/{open-ETZUFSE4.js → open-NXSN7XOC.js} +4 -4
- package/dist/prompts/init-prompt.txt +32 -1
- package/dist/prompts/issue-prompt.txt +141 -9
- package/dist/{rebase-KBWFDZCN.js → rebase-DUNFOJVS.js} +6 -6
- package/dist/{remote-GJEZWRCC.js → remote-ZCXJVVNW.js} +4 -2
- package/dist/{run-4SVQ3WEU.js → run-O7ZK7CKA.js} +4 -4
- package/dist/schema/settings.schema.json +18 -0
- package/dist/{start-2NEZU7SE.js → start-73I5W7WW.js} +16 -16
- package/dist/{terminal-3D6TUAKJ.js → terminal-BIRBZ4AZ.js} +2 -2
- package/dist/{test-git-MKZATGZN.js → test-git-T76HOTIA.js} +3 -3
- package/dist/{test-prefix-ZNLWDI3K.js → test-prefix-6HJUVQMH.js} +3 -3
- package/dist/{test-tabs-JRKY3QMM.js → test-tabs-RXDBZ6J7.js} +2 -2
- package/package.json +3 -2
- package/dist/ClaudeContextManager-LD3VB6EM.js +0 -13
- package/dist/ClaudeService-CFFI7DD5.js +0 -12
- package/dist/chunk-DGEKUT7Q.js.map +0 -1
- package/dist/chunk-L4QGC27H.js.map +0 -1
- package/dist/chunk-RSRO7564.js.map +0 -1
- package/dist/finish-WGPISUEH.js.map +0 -1
- package/dist/ignite-JEN3K3OT.js.map +0 -1
- package/dist/mcp/terminal-SDCMDVD7.js.map +0 -1
- /package/dist/{ClaudeContextManager-LD3VB6EM.js.map → ClaudeContextManager-LVCYRM6Q.js.map} +0 -0
- /package/dist/{ClaudeService-CFFI7DD5.js.map → ClaudeService-WVTWB3DK.js.map} +0 -0
- /package/dist/{GitHubService-SH4H6VS5.js.map → GitHubService-7E2S5NNZ.js.map} +0 -0
- /package/dist/{LoomLauncher-FB2MV2ZI.js.map → LoomLauncher-CTSWJL35.js.map} +0 -0
- /package/dist/{PromptTemplateManager-WM5GIPEF.js.map → PromptTemplateManager-WII75TKH.js.map} +0 -0
- /package/dist/{SettingsManager-SKLUVE3K.js.map → SettingsManager-XOYCLH3D.js.map} +0 -0
- /package/dist/{add-issue-L5HX6LEV.js.map → add-issue-OBI325W7.js.map} +0 -0
- /package/dist/{chunk-SLIMABFA.js.map → chunk-2PLUQT6J.js.map} +0 -0
- /package/dist/{chunk-VVH3ANF2.js.map → chunk-4IV6W4U5.js.map} +0 -0
- /package/dist/{chunk-PV3GAXQO.js.map → chunk-6LEQW46Y.js.map} +0 -0
- /package/dist/{chunk-6OTVPRXH.js.map → chunk-CVLAZRNB.js.map} +0 -0
- /package/dist/{chunk-KOCQAD2E.js.map → chunk-HBVFXN7R.js.map} +0 -0
- /package/dist/{chunk-HURVAQRK.js.map → chunk-LHP6ROUM.js.map} +0 -0
- /package/dist/{chunk-PXZBAC2M.js.map → chunk-MFU53H6J.js.map} +0 -0
- /package/dist/{chunk-PR7FKQBG.js.map → chunk-RF2YI2XJ.js.map} +0 -0
- /package/dist/{chunk-Q2KYPAH2.js.map → chunk-SYOSCMIT.js.map} +0 -0
- /package/dist/{chunk-IIPTBZQW.js.map → chunk-TS6DL67T.js.map} +0 -0
- /package/dist/{chunk-IO4WFTL2.js.map → chunk-VETG35MF.js.map} +0 -0
- /package/dist/{claude-7LUVDZZ4.js.map → claude-ZIWDG4XG.js.map} +0 -0
- /package/dist/{cleanup-ZHROIBSQ.js.map → cleanup-FEIVZSIV.js.map} +0 -0
- /package/dist/{enhance-VVMAKMVZ.js.map → enhance-MNA4ZGXW.js.map} +0 -0
- /package/dist/{feedback-AKHD7QIM.js.map → feedback-LFNMQBAZ.js.map} +0 -0
- /package/dist/{git-OUYMVYJX.js.map → git-WC6HZLOT.js.map} +0 -0
- /package/dist/{init-EVUT4ZQJ.js.map → init-GJDYN2IK.js.map} +0 -0
- /package/dist/mcp/{claude-YHHHLSXH.js.map → claude-NDFOCQQQ.js.map} +0 -0
- /package/dist/{open-ETZUFSE4.js.map → open-NXSN7XOC.js.map} +0 -0
- /package/dist/{rebase-KBWFDZCN.js.map → rebase-DUNFOJVS.js.map} +0 -0
- /package/dist/{remote-GJEZWRCC.js.map → remote-ZCXJVVNW.js.map} +0 -0
- /package/dist/{run-4SVQ3WEU.js.map → run-O7ZK7CKA.js.map} +0 -0
- /package/dist/{start-2NEZU7SE.js.map → start-73I5W7WW.js.map} +0 -0
- /package/dist/{terminal-3D6TUAKJ.js.map → terminal-BIRBZ4AZ.js.map} +0 -0
- /package/dist/{test-git-MKZATGZN.js.map → test-git-T76HOTIA.js.map} +0 -0
- /package/dist/{test-prefix-ZNLWDI3K.js.map → test-prefix-6HJUVQMH.js.map} +0 -0
- /package/dist/{test-tabs-JRKY3QMM.js.map → test-tabs-RXDBZ6J7.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -231,7 +231,11 @@ var init_SettingsManager = __esm({
|
|
|
231
231
|
github: z.object({
|
|
232
232
|
remote: z.string().min(1, "Remote name cannot be empty").describe("Git remote name to use for GitHub operations")
|
|
233
233
|
}).optional()
|
|
234
|
-
}).optional().describe("Issue management configuration")
|
|
234
|
+
}).optional().describe("Issue management configuration"),
|
|
235
|
+
mergeBehavior: z.object({
|
|
236
|
+
mode: z.enum(["local", "github-pr"]).default("local"),
|
|
237
|
+
remote: z.string().optional()
|
|
238
|
+
}).optional().describe("Merge behavior configuration: local (merge locally) or github-pr (create PR)")
|
|
235
239
|
});
|
|
236
240
|
SettingsManager = class {
|
|
237
241
|
/**
|
|
@@ -413,10 +417,13 @@ async function openTerminalWindow(options) {
|
|
|
413
417
|
`Terminal window launching not yet supported on ${platform}. Currently only macOS is supported.`
|
|
414
418
|
);
|
|
415
419
|
}
|
|
416
|
-
const
|
|
420
|
+
const hasITerm2 = await detectITerm2();
|
|
421
|
+
const applescript = hasITerm2 ? buildITerm2SingleTabScript(options) : buildAppleScript(options);
|
|
417
422
|
try {
|
|
418
423
|
await execa2("osascript", ["-e", applescript]);
|
|
419
|
-
|
|
424
|
+
if (!hasITerm2) {
|
|
425
|
+
await execa2("osascript", ["-e", 'tell application "Terminal" to activate']);
|
|
426
|
+
}
|
|
420
427
|
} catch (error) {
|
|
421
428
|
throw new Error(
|
|
422
429
|
`Failed to open terminal window: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
@@ -465,6 +472,28 @@ function escapePathForAppleScript(path5) {
|
|
|
465
472
|
function escapeForAppleScript(command) {
|
|
466
473
|
return command.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
467
474
|
}
|
|
475
|
+
function buildITerm2SingleTabScript(options) {
|
|
476
|
+
const command = buildCommandSequence(options);
|
|
477
|
+
let script = 'tell application id "com.googlecode.iterm2"\n';
|
|
478
|
+
script += " create window with default profile\n";
|
|
479
|
+
script += " set s1 to current session of current window\n\n";
|
|
480
|
+
if (options.backgroundColor) {
|
|
481
|
+
const { r, g, b } = options.backgroundColor;
|
|
482
|
+
script += ` set background color of s1 to {${Math.round(r * 257)}, ${Math.round(g * 257)}, ${Math.round(b * 257)}}
|
|
483
|
+
`;
|
|
484
|
+
}
|
|
485
|
+
script += ` tell s1 to write text "${escapeForAppleScript(command)}"
|
|
486
|
+
|
|
487
|
+
`;
|
|
488
|
+
if (options.title) {
|
|
489
|
+
script += ` set name of s1 to "${escapeForAppleScript(options.title)}"
|
|
490
|
+
|
|
491
|
+
`;
|
|
492
|
+
}
|
|
493
|
+
script += " activate\n";
|
|
494
|
+
script += "end tell";
|
|
495
|
+
return script;
|
|
496
|
+
}
|
|
468
497
|
function buildCommandSequence(options) {
|
|
469
498
|
const {
|
|
470
499
|
workspacePath,
|
|
@@ -1826,12 +1855,39 @@ async function checkGhAuth() {
|
|
|
1826
1855
|
var _a, _b;
|
|
1827
1856
|
try {
|
|
1828
1857
|
const output = await executeGhCommand(["auth", "status"]);
|
|
1829
|
-
const
|
|
1830
|
-
|
|
1831
|
-
|
|
1858
|
+
const lines = output.split("\n");
|
|
1859
|
+
let username;
|
|
1860
|
+
let scopes = [];
|
|
1861
|
+
for (let i = 0; i < lines.length; i++) {
|
|
1862
|
+
const line = lines[i];
|
|
1863
|
+
const newFormatMatch = line == null ? void 0 : line.match(/Logged in to github\.com account ([^\s(]+)/);
|
|
1864
|
+
if (newFormatMatch) {
|
|
1865
|
+
const accountName = newFormatMatch[1];
|
|
1866
|
+
const nextFewLines = lines.slice(i + 1, i + 5).join("\n");
|
|
1867
|
+
const isActive = nextFewLines.includes("Active account: true");
|
|
1868
|
+
if (isActive || !username && !output.includes("Active account:")) {
|
|
1869
|
+
username = accountName;
|
|
1870
|
+
const scopeMatch = nextFewLines.match(/Token scopes: (.+)/);
|
|
1871
|
+
if (scopeMatch == null ? void 0 : scopeMatch[1]) {
|
|
1872
|
+
scopes = scopeMatch[1].split(", ").map((scope) => scope.replace(/^'|'$/g, ""));
|
|
1873
|
+
}
|
|
1874
|
+
if (isActive) break;
|
|
1875
|
+
}
|
|
1876
|
+
}
|
|
1877
|
+
if (!username) {
|
|
1878
|
+
const oldFormatMatch = line == null ? void 0 : line.match(/Logged in to github\.com as ([^\s]+)/);
|
|
1879
|
+
if (oldFormatMatch) {
|
|
1880
|
+
username = oldFormatMatch[1];
|
|
1881
|
+
}
|
|
1882
|
+
}
|
|
1883
|
+
}
|
|
1884
|
+
if (scopes.length === 0) {
|
|
1885
|
+
const scopeMatch = output.match(/Token scopes: (.+)/);
|
|
1886
|
+
scopes = ((_a = scopeMatch == null ? void 0 : scopeMatch[1]) == null ? void 0 : _a.split(", ").map((scope) => scope.replace(/^'|'$/g, ""))) ?? [];
|
|
1887
|
+
}
|
|
1832
1888
|
return {
|
|
1833
1889
|
hasAuth: true,
|
|
1834
|
-
scopes
|
|
1890
|
+
scopes,
|
|
1835
1891
|
...username && { username }
|
|
1836
1892
|
};
|
|
1837
1893
|
} catch (error) {
|
|
@@ -2875,6 +2931,12 @@ var PromptTemplateManager = class {
|
|
|
2875
2931
|
if (variables.NO_REMOTES !== void 0) {
|
|
2876
2932
|
result = result.replace(/NO_REMOTES/g, variables.NO_REMOTES);
|
|
2877
2933
|
}
|
|
2934
|
+
if (variables.README_CONTENT !== void 0) {
|
|
2935
|
+
result = result.replace(/README_CONTENT/g, variables.README_CONTENT);
|
|
2936
|
+
}
|
|
2937
|
+
if (variables.SETTINGS_SCHEMA_CONTENT !== void 0) {
|
|
2938
|
+
result = result.replace(/SETTINGS_SCHEMA_CONTENT/g, variables.SETTINGS_SCHEMA_CONTENT);
|
|
2939
|
+
}
|
|
2878
2940
|
return result;
|
|
2879
2941
|
}
|
|
2880
2942
|
/**
|
|
@@ -2921,6 +2983,12 @@ var PromptTemplateManager = class {
|
|
|
2921
2983
|
} else {
|
|
2922
2984
|
result = result.replace(noRemotesRegex, "");
|
|
2923
2985
|
}
|
|
2986
|
+
const firstTimeUserRegex = /\{\{#IF FIRST_TIME_USER\}\}(.*?)\{\{\/IF FIRST_TIME_USER\}\}/gs;
|
|
2987
|
+
if (variables.FIRST_TIME_USER === true) {
|
|
2988
|
+
result = result.replace(firstTimeUserRegex, "$1");
|
|
2989
|
+
} else {
|
|
2990
|
+
result = result.replace(firstTimeUserRegex, "");
|
|
2991
|
+
}
|
|
2924
2992
|
return result;
|
|
2925
2993
|
}
|
|
2926
2994
|
/**
|