@mariozechner/pi-coding-agent 0.57.0 → 0.57.1
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 +21 -1
- package/README.md +1 -1
- package/dist/core/export-html/index.d.ts +5 -2
- package/dist/core/export-html/index.d.ts.map +1 -1
- package/dist/core/export-html/index.js +4 -3
- package/dist/core/export-html/index.js.map +1 -1
- package/dist/core/export-html/template.js +11 -14
- package/dist/core/export-html/tool-renderer.d.ts +5 -2
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js +12 -5
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/types.d.ts +13 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +1 -1
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +41 -11
- 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 +1 -0
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts +17 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +111 -6
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +45 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/extensions.md +25 -2
- package/docs/keybindings.md +9 -1
- package/docs/terminal-setup.md +18 -1
- package/docs/tmux.md +30 -8
- package/docs/tree.md +9 -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/custom-provider-qwen-cli/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 +4 -4
|
@@ -360,6 +360,12 @@ export class InteractiveMode {
|
|
|
360
360
|
this.showNewVersionNotification(newVersion);
|
|
361
361
|
}
|
|
362
362
|
});
|
|
363
|
+
// Check tmux keyboard setup asynchronously
|
|
364
|
+
this.checkTmuxKeyboardSetup().then((warning) => {
|
|
365
|
+
if (warning) {
|
|
366
|
+
this.showWarning(warning);
|
|
367
|
+
}
|
|
368
|
+
});
|
|
363
369
|
// Show startup warnings
|
|
364
370
|
const { migratedProviders, modelFallbackMessage, initialMessage, initialImages, initialMessages } = this.options;
|
|
365
371
|
if (migratedProviders && migratedProviders.length > 0) {
|
|
@@ -428,6 +434,44 @@ export class InteractiveMode {
|
|
|
428
434
|
return undefined;
|
|
429
435
|
}
|
|
430
436
|
}
|
|
437
|
+
async checkTmuxKeyboardSetup() {
|
|
438
|
+
if (!process.env.TMUX)
|
|
439
|
+
return undefined;
|
|
440
|
+
const runTmuxShow = (option) => {
|
|
441
|
+
return new Promise((resolve) => {
|
|
442
|
+
const proc = spawn("tmux", ["show", "-gv", option], {
|
|
443
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
444
|
+
});
|
|
445
|
+
let stdout = "";
|
|
446
|
+
const timer = setTimeout(() => {
|
|
447
|
+
proc.kill();
|
|
448
|
+
resolve(undefined);
|
|
449
|
+
}, 2000);
|
|
450
|
+
proc.stdout?.on("data", (data) => {
|
|
451
|
+
stdout += data.toString();
|
|
452
|
+
});
|
|
453
|
+
proc.on("error", () => {
|
|
454
|
+
clearTimeout(timer);
|
|
455
|
+
resolve(undefined);
|
|
456
|
+
});
|
|
457
|
+
proc.on("close", (code) => {
|
|
458
|
+
clearTimeout(timer);
|
|
459
|
+
resolve(code === 0 ? stdout.trim() : undefined);
|
|
460
|
+
});
|
|
461
|
+
});
|
|
462
|
+
};
|
|
463
|
+
const [extendedKeys, extendedKeysFormat] = await Promise.all([
|
|
464
|
+
runTmuxShow("extended-keys"),
|
|
465
|
+
runTmuxShow("extended-keys-format"),
|
|
466
|
+
]);
|
|
467
|
+
if (extendedKeys !== "on" && extendedKeys !== "always") {
|
|
468
|
+
return "tmux extended-keys is off. Modified Enter keys may not work. Add `set -g extended-keys on` to ~/.tmux.conf and restart tmux.";
|
|
469
|
+
}
|
|
470
|
+
if (extendedKeysFormat === "xterm") {
|
|
471
|
+
return "tmux extended-keys-format is xterm. Pi works best with csi-u. Add `set -g extended-keys-format csi-u` to ~/.tmux.conf and restart tmux.";
|
|
472
|
+
}
|
|
473
|
+
return undefined;
|
|
474
|
+
}
|
|
431
475
|
/**
|
|
432
476
|
* Get changelog entries to display on startup.
|
|
433
477
|
* Only shows new entries since last seen version, skips for resumed sessions.
|
|
@@ -2302,6 +2346,7 @@ export class InteractiveMode {
|
|
|
2302
2346
|
// Spawn editor synchronously with inherited stdio for interactive editing
|
|
2303
2347
|
const result = spawnSync(editor, [...editorArgs, tmpFile], {
|
|
2304
2348
|
stdio: "inherit",
|
|
2349
|
+
shell: process.platform === "win32",
|
|
2305
2350
|
});
|
|
2306
2351
|
// On successful exit (status 0), replace editor content
|
|
2307
2352
|
if (result.status === 0) {
|