@code-yeongyu/senpi 2026.5.18 → 2026.5.19
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/CHANGELOG.md +31 -44
- package/dist/cli/args.d.ts +6 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +4 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -3
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +35 -27
- package/dist/config.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +4 -8
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +3 -2
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +1 -0
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +19 -1
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +14 -6
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +13 -6
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts +21 -2
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +82 -40
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/neo-mode.d.ts +24 -0
- package/dist/modes/neo-mode.d.ts.map +1 -0
- package/dist/modes/neo-mode.js +114 -0
- package/dist/modes/neo-mode.js.map +1 -0
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +22 -5
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/senpi +3 -3
- package/dist/utils/child-process.d.ts +5 -8
- package/dist/utils/child-process.d.ts.map +1 -1
- package/dist/utils/child-process.js +8 -59
- package/dist/utils/child-process.js.map +1 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +6 -1
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/windows-self-update.d.ts +3 -0
- package/dist/utils/windows-self-update.d.ts.map +1 -0
- package/dist/utils/windows-self-update.js +77 -0
- package/dist/utils/windows-self-update.js.map +1 -0
- package/docs/index.md +8 -0
- package/docs/packages.md +2 -0
- package/docs/quickstart.md +20 -0
- package/docs/usage.md +2 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/package.json +7 -5
|
@@ -2989,7 +2989,7 @@ export class InteractiveMode {
|
|
|
2989
2989
|
}
|
|
2990
2990
|
this.showStatus(`Thinking blocks: ${this.hideThinkingBlock ? "hidden" : "visible"}`);
|
|
2991
2991
|
}
|
|
2992
|
-
openExternalEditor() {
|
|
2992
|
+
async openExternalEditor() {
|
|
2993
2993
|
// Determine editor (respect $VISUAL, then $EDITOR)
|
|
2994
2994
|
const editorCmd = process.env.VISUAL || process.env.EDITOR;
|
|
2995
2995
|
if (!editorCmd) {
|
|
@@ -3005,13 +3005,20 @@ export class InteractiveMode {
|
|
|
3005
3005
|
this.ui.stop();
|
|
3006
3006
|
// Split by space to support editor arguments (e.g., "code --wait")
|
|
3007
3007
|
const [editor, ...editorArgs] = editorCmd.split(" ");
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3008
|
+
process.stdout.write(`Launching external editor: ${editorCmd}\nPi will resume when the editor exits.\n`);
|
|
3009
|
+
// Do not use spawnSync here. On Windows, synchronous child_process calls can keep
|
|
3010
|
+
// Node/libuv's console input read active after ui.stop() pauses stdin, racing
|
|
3011
|
+
// vim/nvim for the console input buffer until Ctrl+C cancels the pending read.
|
|
3012
|
+
const status = await new Promise((resolve) => {
|
|
3013
|
+
const child = spawn(editor, [...editorArgs, tmpFile], {
|
|
3014
|
+
stdio: "inherit",
|
|
3015
|
+
shell: process.platform === "win32",
|
|
3016
|
+
});
|
|
3017
|
+
child.on("error", () => resolve(null));
|
|
3018
|
+
child.on("close", (code) => resolve(code));
|
|
3012
3019
|
});
|
|
3013
3020
|
// On successful exit (status 0), replace editor content
|
|
3014
|
-
if (
|
|
3021
|
+
if (status === 0) {
|
|
3015
3022
|
const newContent = fs.readFileSync(tmpFile, "utf-8").replace(/\n$/, "");
|
|
3016
3023
|
this.editor.setText(newContent);
|
|
3017
3024
|
}
|