route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
65 lines • 2.7 kB
TypeScript
/**
* 统一的 Finish Reason 日志系统
* 项目所有者: Jason Zhang
*
* 消除重复日志记录,提供端到端的finish_reason跟踪
*/
export interface FinishReasonLogEntry {
requestId: string;
stage: 'input' | 'routing' | 'transformation' | 'output' | 'streaming';
sourceFormat: string;
targetFormat?: string;
originalReason?: string;
mappedReason?: string;
provider: string;
model: string;
timestamp: string;
context: string;
metadata?: Record<string, any>;
errorInfo?: {
type: 'mapping_failed' | 'unknown_reason' | 'conversion_error';
message: string;
shouldRetry?: boolean;
};
}
declare class UnifiedFinishReasonLogger {
private logEntries;
/**
* 记录finish reason转换的完整过程
*/
logFinishReasonTransformation(entry: FinishReasonLogEntry): void;
/**
* 生成请求的完整finish reason跟踪报告
*/
generateEndToEndReport(requestId: string): string;
/**
* 检查是否存在静默失败
*/
detectSilentFailures(requestId: string): {
hasSilentFailure: boolean;
issues: string[];
};
/**
* 在请求完成时生成最终报告并检查问题
*/
finalizeRequest(requestId: string): void;
}
export declare const unifiedFinishReasonLogger: UnifiedFinishReasonLogger;
/**
* 便捷方法:记录输入阶段的finish reason
*/
export declare function logInputFinishReason(requestId: string, originalReason: string | undefined, provider: string, model: string, context: string, metadata?: Record<string, any>): void;
/**
* 便捷方法:记录转换阶段的finish reason
*/
export declare function logTransformationFinishReason(requestId: string, originalReason: string | undefined, mappedReason: string | undefined, sourceFormat: string, targetFormat: string, provider: string, model: string, context: string, metadata?: Record<string, any>, errorInfo?: FinishReasonLogEntry['errorInfo']): void;
/**
* 便捷方法:记录输出阶段的finish reason
*/
export declare function logOutputFinishReason(requestId: string, finalReason: string | undefined, provider: string, model: string, context: string, metadata?: Record<string, any>): void;
/**
* 便捷方法:记录流式处理阶段的finish reason
*/
export declare function logStreamingFinishReason(requestId: string, originalReason: string | undefined, mappedReason: string | undefined, sourceFormat: string, targetFormat: string, provider: string, model: string, context: string, metadata?: Record<string, any>, errorInfo?: FinishReasonLogEntry['errorInfo']): void;
export {};
//# sourceMappingURL=unified-finish-reason-logger.d.ts.map