fix(lmc): handle interrupt signal gracefully

This commit is contained in:
mitchell 2026-07-13 19:30:20 -04:00
parent a8cbfb3665
commit 159547e799
2 changed files with 9 additions and 4 deletions

View file

@ -38,9 +38,6 @@ async function main() {
allowPositionals: true, allowPositionals: true,
}); });
const plainOut = args["plain-out"] ?? args.plain ?? !process.stdout.isTTY;
const plainErr = args["plain-err"] ?? args.plain ?? !process.stderr.isTTY;
if (args.version) { if (args.version) {
console.log("0.0.0"); console.log("0.0.0");
return; return;
@ -55,6 +52,8 @@ async function main() {
const model = args.model ?? config.model; const model = args.model ?? config.model;
const plainOut = args["plain-out"] ?? args.plain ?? !process.stdout.isTTY;
const plainErr = args["plain-err"] ?? args.plain ?? !process.stderr.isTTY;
const renderer = new Renderer(plainOut, plainErr); const renderer = new Renderer(plainOut, plainErr);
const provider = createOpenAICompatible({ const provider = createOpenAICompatible({

View file

@ -84,7 +84,13 @@ export default class Renderer {
async renderStream(stream: AsyncIterableStream<TextStreamPart<ToolSet>>) { async renderStream(stream: AsyncIterableStream<TextStreamPart<ToolSet>>) {
this.resetCounts(); this.resetCounts();
const spin = spinner({ withGuide: false, indicator: "timer" }); const spin = spinner({
withGuide: false,
indicator: "timer",
onCancel: () => {
process.exit(130);
},
});
if (!this.isPlain) { if (!this.isPlain) {
spin.start("Waiting for response"); spin.start("Waiting for response");
} }