feat: separate plain output flags for stdout and stderr

This commit is contained in:
mitchell 2026-04-17 16:49:45 -04:00
parent 9d599d98bf
commit cdfafc9d5f
2 changed files with 23 additions and 9 deletions

View file

@ -18,7 +18,10 @@ export default class Renderer {
private charsSinceNL = 0;
private memOk = true;
constructor(private isPlain = false) {
constructor(
private isPlain = false,
private isPlainErr = false,
) {
process.stdout.addListener("drain", () => {
this.memOk = true;
});
@ -73,25 +76,33 @@ export default class Renderer {
`${styles.dim.open}${styles.italic.open}`,
process.stderr,
);
this.write("\n", process.stderr);
reasoningFile.write("");
break;
}
case "reasoning-delta": {
this.write(part.text, process.stderr);
this.checkContainment(part.text, process.stderr);
if (!this.isPlainErr)
this.checkContainment(part.text, process.stderr);
reasoningWriter.write(part.text);
break;
}
case "reasoning-end": {
if (!this.isPlainErr) {
this.moveCursor(-this.lineCount - 1, process.stderr);
this.clearScreenDown(process.stderr);
this.resetCounts();
} else {
this.write("\n--- Done Thinking ---\n", process.stderr);
}
if (supportsColorStderr)
this.write(
`${styles.italic.close}${styles.dim.close}`,
process.stderr,
);
this.moveCursor(-this.lineCount - 1, process.stderr);
this.clearScreenDown(process.stderr);
this.resetCounts();
reasoningWriter.end();
break;
}