/** * @fileoverview Output Parser - parses Claude Code stdout into structured events * @module mobile/output-parser * @version 1.5.0 * * Parses raw stdout from Claude Code CLI, identifying message types * such as stream content, tool usage, completion, and errors. * * @example * import { OutputParser } from './output-parser'; * const parser = new OutputParser(); * const events = parser.parse(chunk); * // events: [{ type: 'stream', text: '...' }, { type: 'tool_use', tool: 'Read' }] */ /** * Message types returned by the parser */ export type MessageType = 'stream' | 'tool_use' | 'tool_complete' | 'complete' | 'error'; /** * Parsed output event */ export interface ParsedEvent { type: MessageType; text?: string; tool?: string; status?: string; message?: string; args?: string | null; } /** * Tool detection result */ interface ToolDetectResult { tool: string; args: string | null; } /** * Tool detection patterns */ export declare const TOOL_PATTERNS: RegExp[]; /** * Error patterns */ export declare const ERROR_PATTERNS: RegExp[]; /** * Completion/prompt patterns */ export declare const COMPLETE_PATTERNS: RegExp[]; /** * ANSI escape code regex pattern */ export declare const ANSI_REGEX: RegExp; /** * OutputParser class - parses Claude Code stdout */ export declare class OutputParser { private buffer; private lastToolDetected; /** * Create a new OutputParser instance */ constructor(); /** * Parse a stdout chunk into events * @param chunk - Raw stdout data * @returns Array of parsed events */ parse(chunk: string | Buffer): ParsedEvent[]; /** * Remove ANSI escape codes from text * @param text - Text with potential ANSI codes * @returns Clean text */ stripAnsi(text: string): string; /** * Detect tool usage pattern in text * @param text - Text to analyze * @returns Tool info or null */ detectToolUse(text: string): ToolDetectResult | null; /** * Detect tool completion pattern in text * @param text - Text to analyze * @returns Tool name or null */ detectToolComplete(text: string): string | null; /** * Detect completion pattern in text * @param text - Text to analyze * @returns True if completion detected */ detectComplete(text: string): boolean; /** * Detect error pattern in text * @param text - Text to analyze * @returns Error message or null */ detectError(text: string): string | null; /** * Flush any remaining buffer content * @returns Remaining events */ flush(): ParsedEvent[]; /** * Reset the parser state */ reset(): void; /** * Get current buffer content * @returns Buffer content */ getBuffer(): string; } export {}; //# sourceMappingURL=output-parser.d.ts.map