UNPKG

route-claudecode

Version:

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

81 lines 2.3 kB
/** * Max Tokens中间件 - 集成到请求处理流程 * Project Owner: Jason Zhang * * 职责: * 1. 预处理检查:发送前验证token使用 * 2. 错误拦截:捕获max_tokens错误并智能处理 * 3. 用户反馈:提供清晰的处理状态和选择 * 4. 安全控制:防止无限重试和上下文丢失 */ import { BaseRequest } from '@/types'; export interface MaxTokensMiddlewareOptions { enablePreflightCheck: boolean; enableAutoRetry: boolean; maxRetryAttempts: number; userInteractionMode: 'auto' | 'prompt' | 'disabled'; tokenSafetyMargin: number; } export interface MiddlewareResult { action: 'proceed' | 'modified' | 'error' | 'user_required'; request?: BaseRequest; error?: any; userPrompt?: { message: string; options: string[]; defaultAction: string; }; metadata?: { tokensEstimated: number; tokensReduced?: number; truncationApplied: boolean; retryAttempt: number; }; } export declare class MaxTokensMiddleware { private safeHandler; private options; private processingRequests; constructor(options?: Partial<MaxTokensMiddlewareOptions>); /** * 预处理请求 - 在发送到Provider前检查 */ preprocessRequest(request: BaseRequest, maxTokens: number, requestId: string): Promise<MiddlewareResult>; /** * 后处理响应 - 处理max_tokens错误 */ postprocessResponse(originalRequest: BaseRequest, response: any, error: any, requestId: string): Promise<MiddlewareResult>; /** * 处理SafeHandler的结果 */ private processHandlingResult; /** * 检查是否是max_tokens错误 */ private isMaxTokensError; /** * 创建用户友好的错误 */ private createUserFriendlyError; /** * 估算token数量 */ private estimateTokens; /** * 清理处理状态 */ cleanup(): void; /** * 获取统计信息 */ getStats(): { activeRequests: number; safeHandlerStats: { activeRetries: number; totalRequestsHandled: number; averageRetryRate: number; }; }; } export default MaxTokensMiddleware; //# sourceMappingURL=max-tokens-middleware.d.ts.map