UNPKG

route-claudecode

Version:

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

76 lines 2.42 kB
/** * Streaming Response Transformer * Handles real-time conversion of streaming responses between formats */ import { MessageTransformer } from './types'; export interface StreamTransformOptions { sourceFormat: 'openai' | 'anthropic'; targetFormat: 'openai' | 'anthropic'; model?: string; requestId?: string; port?: number; } export declare class StreamingTransformer { private sourceTransformer; private targetTransformer; private options; private messageId; private model; private requestId; private toolCallMap; private contentBlockIndex; private hasStarted; private isCompleted; private pipelineDebugger; private needsReprocessing; private reprocessBuffer; private toolCallDetectionAttempts; private maxDetectionAttempts; constructor(sourceTransformer: MessageTransformer, targetTransformer: MessageTransformer, options: StreamTransformOptions); /** * Transform streaming response from OpenAI to Anthropic format */ transformOpenAIToAnthropic(stream: ReadableStream): AsyncIterable<string>; /** * Transform streaming response from Anthropic to OpenAI format */ transformAnthropicToOpenAI(stream: ReadableStream): AsyncIterable<string>; /** * Create Anthropic SSE event - with defensive programming */ private createAnthropicEvent; /** * Create OpenAI streaming chunk */ private createOpenAIChunk; /** * Check if raw data contains tool call signatures * Made more strict to avoid false positives from normal text */ private isLikelyToolCallError; /** * 🔄 检查是否需要二次处理 - 错误判断工具调用的情况 */ private checkForReprocessing; /** * 🔄 执行二次工具调用处理 */ private reprocessForToolCalls; /** * 检测buffer内容中的工具调用模式 */ private detectToolCallPatterns; /** * 从buffer中提取工具调用 */ private extractToolCallsFromBuffer; /** * Save raw stream data for analysis */ private saveRawStreamDataForAnalysis; } /** * Create streaming transformer */ export declare function createStreamingTransformer(sourceTransformer: MessageTransformer, targetTransformer: MessageTransformer, options: StreamTransformOptions): StreamingTransformer; //# sourceMappingURL=streaming.d.ts.map