UNPKG

openai-cli-unofficial

Version:

A powerful OpenAI CLI Coding Agent built with TypeScript

57 lines 1.8 kB
import { ChatMessage } from '../services/openai'; export interface Message { type: 'user' | 'ai' | 'system' | 'tool'; content: any; displayContent?: string; timestamp: Date; tool_calls?: any[]; tool_call_id?: string; name?: string; } export interface TokenCalculationResult { totalTokens: number; maxAllowedTokens: number; allowedMessages: Message[]; droppedCount: number; summary?: string; } export declare class TokenCalculator { private static encoding; /** * 初始化编码器,优先使用模型特定的编码器,回退到通用编码器 */ private static getEncoding; /** * 计算文本的Token数量 */ static calculateTokens(text: string): number; /** * 计算ChatMessage的Token数量(包括角色信息的开销) */ static calculateChatMessageTokens(message: ChatMessage): number; /** * 计算多个ChatMessage的总Token数量 */ static calculateChatMessagesTokens(messages: ChatMessage[]): number; /** * 智能选择历史记录,确保不超过上下文Token限制 * 现在是一个异步函数,以支持智能压缩 */ static selectHistoryMessages(messages: Message[], systemMessage: string, targetUsageRatio?: number): Promise<TokenCalculationResult>; /** * 获取当前配置的上下文使用统计信息 */ static getContextUsageStats(messages: Message[], systemMessage: string, targetUsageRatio?: number): Promise<{ maxContext: number; maxAllowed: number; used: number; percentage: number; remaining: number; isNearLimit: boolean; }>; /** * 释放编码器资源 */ static cleanup(): void; } //# sourceMappingURL=token-calculator.d.ts.map