/** * @fileoverview 进程日志捕获器 * @description 拦截 console 方法并存储日志到内存缓冲区,供 agent 通过工具获取 */ export interface ProcessLogEntry { /** 日志级别 */ level: "log" | "info" | "warn" | "error" | "debug"; /** 日志内容(已序列化为字符串) */ message: string; /** 时间戳(ISO 格式) */ timestamp: string; /** 来源标识 */ source?: "console" | "opencode-stdout" | "opencode-stderr" | "vite"; } export interface ProcessLogBufferOptions { /** 最大日志条数,默认 500 */ maxSize?: number; /** 是否启用捕获,默认 true */ enabled?: boolean; } /** * 进程日志缓冲区 */ declare class ProcessLogBuffer { private buffer; private maxSize; private enabled; private originalConsole; constructor(options?: ProcessLogBufferOptions); /** * 启动 console 拦截 */ intercept(): void; /** * 停止拦截,恢复原始 console */ restore(): void; /** * 创建拦截器函数 */ private createInterceptor; /** * 序列化参数为字符串 */ private serializeArgs; /** * 添加日志条目 */ addEntry(entry: ProcessLogEntry): void; /** * 添加 OpenCode stdout 日志 */ addOpenCodeStdout(message: string): void; /** * 添加 OpenCode stderr 日志 */ addOpenCodeStderr(message: string): void; /** * 获取日志 * @param options 过滤选项 */ getLogs(options?: { level?: ProcessLogEntry["level"] | ProcessLogEntry["level"][]; limit?: number; source?: ProcessLogEntry["source"]; since?: string; }): ProcessLogEntry[]; /** * 清空缓冲区 */ clear(): void; /** * 获取缓冲区大小 */ size(): number; /** * 启用/禁用捕获 */ setEnabled(enabled: boolean): void; /** * 获取是否启用 */ isEnabled(): boolean; } /** * 获取全局日志缓冲区 */ export declare function getProcessLogBuffer(options?: ProcessLogBufferOptions): ProcessLogBuffer; /** * 初始化进程日志捕获 */ export declare function initProcessLogCapture(options?: ProcessLogBufferOptions): ProcessLogBuffer; /** * 停止进程日志捕获 */ export declare function stopProcessLogCapture(): void; export {};