route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
94 lines • 3.15 kB
TypeScript
/**
* 通用高效流式解析器框架
* 适用于所有Provider的响应优化
* Owner: Jason Zhang
*/
/**
* 通用流式数据分析器
*/
export interface StreamDataAnalyzer {
analyzeResponseStructure(buffer: Buffer | string): StreamAnalysisResult;
detectToolCalls(buffer: Buffer | string): boolean;
estimateEventCount(buffer: Buffer | string): number;
}
/**
* 流式数据分析结果
*/
export interface StreamAnalysisResult {
totalSize: number;
estimatedEventCount: number;
hasToolCalls: boolean;
recommendedStrategy: 'buffered' | 'batch-streaming' | 'direct-streaming';
eventSize: 'small' | 'medium' | 'large';
confidence: number;
}
/**
* 通用流式优化策略
*/
export interface StreamOptimizationStrategy {
name: string;
shouldUse(analysis: StreamAnalysisResult): boolean;
process(data: Buffer | string, requestId: string, metadata?: any): Promise<any[]>;
}
/**
* CodeWhisperer数据分析器
*/
export declare class CodeWhispererAnalyzer implements StreamDataAnalyzer {
analyzeResponseStructure(buffer: Buffer | string): StreamAnalysisResult;
detectToolCalls(data: string): boolean;
estimateEventCount(data: string): number;
}
/**
* OpenAI数据分析器
*/
export declare class OpenAIAnalyzer implements StreamDataAnalyzer {
analyzeResponseStructure(buffer: Buffer | string): StreamAnalysisResult;
detectToolCalls(data: string): boolean;
estimateEventCount(data: string): number;
}
/**
* 批量流式优化策略
*/
export declare class BatchStreamingStrategy implements StreamOptimizationStrategy {
name: string;
shouldUse(analysis: StreamAnalysisResult): boolean;
process(data: Buffer | string, requestId: string, metadata?: any): Promise<any[]>;
}
/**
* 完全缓冲优化策略
*/
export declare class BufferedProcessingStrategy implements StreamOptimizationStrategy {
name: string;
shouldUse(analysis: StreamAnalysisResult): boolean;
process(data: Buffer | string, requestId: string, metadata?: any): Promise<any[]>;
}
/**
* 直接流式策略
*/
export declare class DirectStreamingStrategy implements StreamOptimizationStrategy {
name: string;
shouldUse(analysis: StreamAnalysisResult): boolean;
process(data: Buffer | string, requestId: string, metadata?: any): Promise<any[]>;
}
/**
* 通用流式解析器
*/
export declare class UniversalStreamingParser {
private analyzer;
private strategies;
constructor(analyzer: StreamDataAnalyzer, strategies: StreamOptimizationStrategy[]);
processResponse(data: Buffer | string, requestId: string, metadata?: any): Promise<any[]>;
}
/**
* Provider工厂方法
*/
export declare class UniversalParserFactory {
static createCodeWhispererParser(): UniversalStreamingParser;
static createOpenAIParser(): UniversalStreamingParser;
static createGeminiParser(): UniversalStreamingParser;
/**
* 通用工厂方法 - 根据provider类型创建对应解析器
*/
static createParser(providerType: 'codewhisperer' | 'openai' | 'gemini'): UniversalStreamingParser;
}
//# sourceMappingURL=universal-streaming-parser.d.ts.map