# All files / src/agent/providers/parsers generic.ts

0% Statements 0/11
0% Branches 0/4
0% Functions 0/2
0% Lines 0/9

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 }];
      }
    }