UNPKG

route-claudecode

Version:

Advanced routing and transformation system for Claude Code outputs to multiple AI providers

83 lines 2.7 kB
/** * Pipeline Coordinator - Clean Architecture * 统一流水线协调器,确保清晰的层次分离 * Project owner: Jason Zhang * * Architecture Principles: * Input → Preprocessing → Transformer → Provider → Third-party API * * 职责: * 1. 协调各层之间的数据流 * 2. 确保单向依赖 * 3. 集中化转换和修复逻辑 */ import { BaseRequest, BaseResponse } from '../types'; export interface PipelineContext { requestId: string; provider: string; model: string; stage: 'input' | 'transform' | 'provider' | 'response'; timestamp: number; } /** * 流水线协调器 * 管理Input → Preprocessing → Transformer → Provider的数据流 */ export declare class PipelineCoordinator { private geminiTransformer; private patchPreprocessor; constructor(port?: number); /** * 输入阶段处理 - Input Layer * 统一的请求预处理入口 */ processInput(request: BaseRequest, provider: string, model: string): Promise<BaseRequest>; /** * 转换阶段处理 - Transformer Layer * 格式转换,不包含服务特定逻辑 */ processTransform(request: BaseRequest, targetFormat: 'gemini' | 'openai' | 'anthropic'): Promise<{ transformedData: any; metadata: any; }>; /** * Provider准备阶段 - Provider Layer Input * 将转换后的数据打包成Provider可以直接使用的格式 */ prepareForProvider(transformedData: any, metadata: any, originalModel: string): Promise<BaseRequest>; /** * 响应处理阶段 - Response Layer * 处理Provider返回的原始响应,转换回统一格式 */ processResponse(providerResponse: BaseResponse, originalFormat: 'gemini' | 'openai' | 'anthropic', originalModel: string): Promise<BaseResponse>; /** * 生成唯一请求ID */ private generateRequestId; /** * 获取性能统计 */ getStats(): { patchPreprocessorStats: { totalProcessed: number; totalDuration: number; byStage: { input: { count: number; duration: number; }; response: { count: number; duration: number; }; streaming: { count: number; duration: number; }; }; }; }; } export declare function getPipelineCoordinator(port?: number): PipelineCoordinator; export declare function createPipelineCoordinator(port?: number): PipelineCoordinator; //# sourceMappingURL=pipeline-coordinator.d.ts.map