route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
256 lines • 6.61 kB
TypeScript
/**
* 统一兼容性预处理器
* 将所有AI服务的兼容性处理逻辑整合到预处理阶段
* 替代原有的补丁系统,提供更清晰的架构
*/
export interface UnifiedCompatibilityConfig {
enabled: boolean;
debugMode: boolean;
forceAllInputs: boolean;
performanceTracking: boolean;
cacheResults: boolean;
validateFinishReason: boolean;
strictFinishReasonValidation: boolean;
}
export declare class UnifiedCompatibilityPreprocessor {
private logger;
private config;
private processedCache;
private performanceMetrics;
constructor(port?: number, config?: Partial<UnifiedCompatibilityConfig>);
/**
* 统一预处理入口:处理输入阶段数据
*/
preprocessInput(inputData: any, provider: string, model: string, requestId: string): Promise<any>;
/**
* 统一预处理入口:处理响应阶段数据
*/
preprocessResponse(responseData: any, provider: string, model: string, requestId: string): Promise<any>;
/**
* 统一预处理入口:处理流式数据块
*/
preprocessStreaming(chunkData: any, provider: string, model: string, requestId: string): Promise<any>;
/**
* 统一处理管道
*/
private processWithUnifiedPipeline;
/**
* 处理响应数据
*/
private processResponse;
/**
* 处理输入数据
*/
private processInput;
/**
* 处理流式数据
*/
private processStreaming;
/**
* 处理OpenAI兼容服务的响应格式问题
*/
private processOpenAICompatibleResponse;
/**
* LMStudio响应处理
*/
private processLMStudioResponse;
/**
* ModelScope请求格式处理
*/
private processModelScopeRequest;
/**
* Gemini响应格式修复
*/
private processGeminiResponse;
/**
* Gemini请求格式处理
*/
private processGeminiRequest;
/**
* Anthropic工具调用文本修复
*/
private processAnthropicToolTextFix;
/**
* 强制工具调用检测
*/
private forceToolCallDetection;
/**
* 强制finish reason覆盖
*/
private forceFinishReasonOverride;
/**
* 检查是否为OpenAI兼容Provider
*/
private isOpenAICompatibleProvider;
/**
* 检查是否为LMStudio Provider
*/
private isLMStudioProvider;
/**
* 检查是否为Gemini Provider
*/
private isGeminiProvider;
/**
* 检查是否需要Anthropic工具文本修复
*/
private needsAnthropicToolTextFix;
/**
* 检查是否为ModelScope兼容的provider/model组合
*/
private isModelScopeCompatible;
/**
* 检查是否为GLM模型
*/
private isGLMModel;
/**
* 检查是否为Qwen3-Coder模型
*/
private isQwen3CoderModel;
/**
* 解析LMStudio工具调用格式
*/
private parseLMStudioToolCalls;
/**
* 从文本中提取工具调用
*/
private extractToolCallsFromText;
/**
* 简化的文本工具调用检测
*/
private hasTextToolCallsSimplified;
/**
* 验证是否为有效的工具调用
*/
private isValidToolCall;
/**
* 标准化工具定义
*/
private standardizeToolDefinitions;
/**
* 转换input_schema为OpenAI parameters格式
*/
private convertInputSchemaToParameters;
/**
* 验证工具定义是否有效
*/
private isValidToolDefinition;
/**
* 检查流式数据中是否有工具调用
*/
private hasStreamingToolCalls;
/**
* 处理流式工具调用
*/
private processStreamingToolCalls;
/**
* 从非标准响应中提取内容
*/
private extractContent;
/**
* 从非标准响应中提取工具调用
*/
private extractToolCalls;
/**
* 从非标准响应中提取finish_reason
*/
private extractFinishReason;
/**
* 映射Gemini finish reason
*/
private mapGeminiFinishReason;
/**
* 确保ModelScope内容为字符串格式
*/
private ensureStringContentForModelScope;
/**
* 转换工具调用为ModelScope格式
*/
private convertToolUseToModelScopeFormat;
/**
* 🚨 Critical Fix: 通用OpenAI兼容格式验证和修复
* 适用于所有OpenAI兼容Provider (GLM, ShuaiHong, LMStudio等)
*/
private applyUniversalOpenAICompatibilityFixes;
/**
* 修复单个工具的格式
*/
private fixToolFormat;
/**
* 应用GLM特定的补丁 (现在调用通用修复)
*/
private applyGLMSpecificPatches;
/**
* 验证GLM工具格式是否正确
*/
private isValidGLMToolFormat;
/**
* 应用Qwen3-Coder特定的补丁
*/
private applyQwen3CoderSpecificPatches;
/**
* 从消息构建prompt字符串
*/
private buildPromptFromMessages;
/**
* 验证finish reason
*/
private validateFinishReason;
/**
* 检测异常API响应
*/
private detectAbnormalResponse;
/**
* 生成错误消息
*/
private generateErrorMessage;
/**
* 验证正常响应的finish_reason
*/
private validateNormalResponseFinishReason;
/**
* 生成缓存键
*/
private generateCacheKey;
/**
* 简单的对象哈希
*/
private hashObject;
/**
* 清理资源
*/
cleanup(): void;
/**
* 获取性能指标
*/
getPerformanceMetrics(): {
totalProcessed: number;
totalDuration: number;
byStage: {
input: {
count: number;
duration: number;
};
response: {
count: number;
duration: number;
};
streaming: {
count: number;
duration: number;
};
};
};
}
/**
* 获取或创建统一兼容性预处理器实例
*/
export declare function getUnifiedCompatibilityPreprocessor(port?: number, config?: Partial<UnifiedCompatibilityConfig>): UnifiedCompatibilityPreprocessor;
/**
* 创建新的统一兼容性预处理器实例
*/
export declare function createUnifiedCompatibilityPreprocessor(port?: number, config?: Partial<UnifiedCompatibilityConfig>): UnifiedCompatibilityPreprocessor;
/**
* 重置统一兼容性预处理器实例
*/
export declare function resetUnifiedCompatibilityPreprocessor(port?: number): void;
//# sourceMappingURL=unified-compatibility-preprocessor.d.ts.map