Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | /**
* Generic Fallback Stream Parser
*
* For providers without a dedicated parser. Treats each line as text output.
* Accumulates all output and emits a final result event on stream end.
*/
import type { StreamEvent, StreamParser } from '../stream-types.js';
export class GenericStreamParser implements StreamParser {
readonly provider = 'generic';
private accumulated: string[] = [];
parseLine(line: string): StreamEvent[] {
if (!line) return [];
this.accumulated.push(line);
// Emit each line as a text delta
return [{ type: 'text_delta', text: line + '\n' }];
}
end(): StreamEvent[] {
// Emit the accumulated output as the result
const fullText = this.accumulated.join('\n');
this.accumulated = [];
if (!fullText) return [];
return [{ type: 'result', text: fullText }];
}
}
|