route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
67 lines • 1.97 kB
TypeScript
/**
* CodeWhisperer 实时流式解析器
* 基于demo2的Go实现移植,实现零延迟二进制流解析
* 项目所有者: Jason Zhang
*/
import { SSEEvent } from './client-interface';
import { Readable } from 'stream';
export interface BinaryFrame {
totalLength: number;
headerLength: number;
payloadLength: number;
payload: Buffer;
offset: number;
}
export declare class CodeWhispererRealtimeParser {
private readonly maxFrameSize;
private readonly enableCompression;
constructor(options?: {
maxFrameSize?: number;
enableCompression?: boolean;
});
/**
* 实时解析二进制流 - 基于demo2的ParseEvents函数
* 返回AsyncIterable以支持真正的流式处理
*/
parseRealtimeStream(stream: Readable, onProgress?: (progress: {
parsedBytes: number;
totalBytes: number;
eventsCount: number;
}) => void): AsyncIterable<SSEEvent>;
/**
* 解析完整的缓冲区(向后兼容)
*/
parseEvents(responseBuffer: Buffer): SSEEvent[];
/**
* 读取二进制帧 - 基于demo2的帧读取逻辑
*/
private readBinaryFrame;
/**
* 解析帧payload - 基于demo2的payload处理逻辑
*/
private parseFramePayload;
/**
* 将AssistantResponseEvent转换为SSEEvent(完全基于demo2的convertAssistantEventToSSE函数)
*/
private convertAssistantEventToSSE;
/**
* 将流转换为Buffer(用于向后兼容)
*/
private streamToBuffer;
/**
* 实时工具调用解析 - 立即处理而不缓冲
*/
parseToolCallsRealtime(events: SSEEvent[]): {
textContent: string;
toolCalls: Array<{
id: string;
name: string;
input: any;
}>;
};
/**
* 构建非流式响应
*/
buildNonStreamResponse(events: any[], model: string): any;
}
//# sourceMappingURL=parser-realtime.d.ts.map