UNPKG

route-claudecode

Version:

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

75 lines 2.38 kB
/** * 安全的Max Tokens处理器 - 避免无限重试风险 * Project Owner: Jason Zhang * * 改进方案: * 1. 预处理检查:发送前估算token,超限时主动截断 * 2. 渐进式截断:多级截断策略,确保成功 * 3. 用户控制:返回选项让用户决定是否重试 * 4. 透明化:清晰告知用户发生了什么 */ import { BaseRequest } from '@/types'; import { TruncationResult } from './max-tokens-error-handling-module'; export interface SafeHandlingResult { action: 'proceed' | 'truncate' | 'user_choice' | 'abort'; truncatedRequest?: BaseRequest; warning?: { type: 'token_limit_approaching' | 'truncation_required' | 'context_loss_risk'; message: string; estimatedTokens: number; maxTokens: number; truncationDetails?: TruncationResult; }; userChoices?: { autoTruncate: boolean; manualEdit: boolean; useSimplified: boolean; }; } export interface SafeHandlingOptions { enablePreemptiveCheck: boolean; maxRetryAttempts: number; tokenSafetyMargin: number; userChoiceTimeout: number; enableProgressiveReduction: boolean; } export declare class SafeMaxTokensHandler { private handlingModule; private options; private retryCounters; constructor(options?: Partial<SafeHandlingOptions>); /** * 预发送检查 - 在发送请求前检查token使用 */ preflightCheck(request: BaseRequest, maxTokens: number, requestId: string): Promise<SafeHandlingResult>; /** * 响应时错误处理 - 收到max_tokens错误后的处理 */ handleMaxTokensError(originalRequest: BaseRequest, errorResponse: any, requestId: string): Promise<SafeHandlingResult>; /** * 渐进式截断 - 多级截断策略 */ private performProgressiveTruncation; /** * 估算token数量 */ private estimateTokens; /** * 从错误响应估算最大token数 */ private estimateMaxTokensFromError; /** * 清理请求的重试计数器 */ clearRetryCounter(requestId: string): void; /** * 获取统计信息 */ getStats(): { activeRetries: number; totalRequestsHandled: number; averageRetryRate: number; }; } export default SafeMaxTokensHandler; //# sourceMappingURL=safe-max-tokens-handler.d.ts.map