route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
65 lines • 1.9 kB
TypeScript
/**
* 基础格式解析器接口
* 遵循零硬编码、零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