UNPKG

route-claudecode

Version:

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

65 lines 1.9 kB
/** * 基础格式解析器接口 * 遵循零硬编码、零Fallback、零沉默失败原则 */ export interface ParseResult { hasTools: boolean; toolCount: number; toolCalls: ToolCall[]; finishReason?: string; confidence: number; } export interface ToolCall { id: string; name: string; input: any; type: 'tool_use' | 'function_call'; } export interface ParsingContext { provider: string; requestId: string; stage: 'request' | 'response'; format: 'anthropic' | 'openai' | 'gemini'; } /** * 基础格式解析器抽象类 * 所有格式解析器必须继承此类 */ export declare abstract class BaseFormatParser { protected readonly parserName: string; constructor(parserName: string); /** * 检测数据是否符合此解析器的格式 * 必须实现,不允许fallback */ abstract canParse(data: any, context: ParsingContext): boolean; /** * 解析工具调用 * 必须实现,不允许静默失败 */ abstract parseToolCalls(data: any, context: ParsingContext): ParseResult; /** * 获取finish reason * 必须实现,不允许fallback */ abstract getFinishReason(data: any, context: ParsingContext): string | undefined; /** * 修复finish reason * 必须实现,不允许静默失败 */ abstract fixFinishReason(data: any, targetReason: string, context: ParsingContext): any; /** * 验证解析结果 * 防止静默失败 */ protected validateParseResult(result: ParseResult, context: ParsingContext): void; /** * 验证工具调用对象 */ protected validateToolCall(toolCall: ToolCall, context: ParsingContext): void; /** * 记录解析日志 */ protected logParseResult(result: ParseResult, context: ParsingContext): void; } //# sourceMappingURL=base-parser.d.ts.map