worktree-launcher 1.5.2 → 1.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +49 -21
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -798,12 +798,14 @@ function showNewWorktreeForm() {
|
|
|
798
798
|
input.readInput();
|
|
799
799
|
}
|
|
800
800
|
function showAIToolSelector(branchName) {
|
|
801
|
+
const options = ["Claude Code", "Codex", "Skip"];
|
|
802
|
+
let selectedIdx = 0;
|
|
801
803
|
const form = blessed.box({
|
|
802
804
|
parent: screen,
|
|
803
805
|
top: "center",
|
|
804
806
|
left: "center",
|
|
805
807
|
width: 40,
|
|
806
|
-
height:
|
|
808
|
+
height: 10,
|
|
807
809
|
border: { type: "line" },
|
|
808
810
|
style: { fg: "default", border: { fg: "cyan" } },
|
|
809
811
|
label: " Launch AI Tool "
|
|
@@ -815,26 +817,44 @@ function showAIToolSelector(branchName) {
|
|
|
815
817
|
content: "Which AI assistant to launch?",
|
|
816
818
|
style: { fg: "default" }
|
|
817
819
|
});
|
|
818
|
-
const
|
|
820
|
+
const optionBoxes = [];
|
|
821
|
+
options.forEach((opt, i) => {
|
|
822
|
+
const box = blessed.box({
|
|
823
|
+
parent: form,
|
|
824
|
+
top: 3 + i,
|
|
825
|
+
left: 2,
|
|
826
|
+
width: 34,
|
|
827
|
+
height: 1,
|
|
828
|
+
content: ` ${opt}`,
|
|
829
|
+
style: { fg: "default" }
|
|
830
|
+
});
|
|
831
|
+
optionBoxes.push(box);
|
|
832
|
+
});
|
|
833
|
+
blessed.text({
|
|
819
834
|
parent: form,
|
|
820
|
-
top:
|
|
835
|
+
top: 7,
|
|
821
836
|
left: 2,
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
keys: true,
|
|
825
|
-
vi: true,
|
|
826
|
-
style: {
|
|
827
|
-
selected: { bg: "cyan", fg: "black" },
|
|
828
|
-
item: { fg: "default" }
|
|
829
|
-
},
|
|
830
|
-
items: [" Claude Code", " Codex", " Skip"]
|
|
837
|
+
content: "[\u2191/\u2193] select [Enter] confirm [Esc] cancel",
|
|
838
|
+
style: { fg: "cyan" }
|
|
831
839
|
});
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
840
|
+
function updateSelection() {
|
|
841
|
+
optionBoxes.forEach((box, i) => {
|
|
842
|
+
if (i === selectedIdx) {
|
|
843
|
+
box.style.bg = "cyan";
|
|
844
|
+
box.style.fg = "black";
|
|
845
|
+
} else {
|
|
846
|
+
box.style.bg = "default";
|
|
847
|
+
box.style.fg = "default";
|
|
848
|
+
}
|
|
849
|
+
});
|
|
850
|
+
screen.render();
|
|
851
|
+
}
|
|
852
|
+
updateSelection();
|
|
853
|
+
form.focus();
|
|
854
|
+
const confirmSelection = async () => {
|
|
855
|
+
const tool = selectedIdx === 0 ? "claude" : selectedIdx === 1 ? "codex" : null;
|
|
836
856
|
form.destroy();
|
|
837
|
-
setStatus(`
|
|
857
|
+
setStatus(`Creating worktree...`);
|
|
838
858
|
screen.render();
|
|
839
859
|
try {
|
|
840
860
|
await createNewWorktree(branchName, tool);
|
|
@@ -843,11 +863,19 @@ function showAIToolSelector(branchName) {
|
|
|
843
863
|
worktreeList.focus();
|
|
844
864
|
screen.render();
|
|
845
865
|
}
|
|
866
|
+
};
|
|
867
|
+
form.key(["up", "k"], () => {
|
|
868
|
+
selectedIdx = (selectedIdx - 1 + options.length) % options.length;
|
|
869
|
+
updateSelection();
|
|
870
|
+
});
|
|
871
|
+
form.key(["down", "j"], () => {
|
|
872
|
+
selectedIdx = (selectedIdx + 1) % options.length;
|
|
873
|
+
updateSelection();
|
|
846
874
|
});
|
|
847
|
-
|
|
848
|
-
|
|
875
|
+
form.key(["enter"], () => {
|
|
876
|
+
confirmSelection();
|
|
849
877
|
});
|
|
850
|
-
|
|
878
|
+
form.key(["escape"], () => {
|
|
851
879
|
form.destroy();
|
|
852
880
|
screen.render();
|
|
853
881
|
worktreeList.focus();
|
|
@@ -964,7 +992,7 @@ async function deleteSelected() {
|
|
|
964
992
|
|
|
965
993
|
// src/index.ts
|
|
966
994
|
var program = new Command();
|
|
967
|
-
program.name("wt").description("CLI tool to streamline git worktrees with AI coding assistants").version("1.5.
|
|
995
|
+
program.name("wt").description("CLI tool to streamline git worktrees with AI coding assistants").version("1.5.3").action(async () => {
|
|
968
996
|
await interactiveCommand();
|
|
969
997
|
});
|
|
970
998
|
program.command("new <branch-name>").description("Create a new worktree and launch AI assistant").option("-i, --install", "Run package manager install after creating worktree").option("-s, --skip-launch", "Create worktree without launching AI assistant").option("-p, --push", "Push branch to remote (visible on GitHub)").action(async (branchName, options) => {
|