/** * CoreEngine 模型上下文压缩。 * * 关键点(中文) * - 触发条件只读取 Provider 返回的真实 usage,不做调用前 token 预估。 * - 压缩只作用于本次运行的 ModelMessage,不修改 Session canonical Message。 * - reasoning、tool call、tool result 与 approval 按 AI SDK 关联关系清理。 * - 首级保留文本历史,后续深度把历史前缀折叠为 checkpoint;最后 user 与最新工具事务始终原子保留。 * - 字符上限只用于约束已经决定压缩后的单个 part,不参与是否触发压缩的判断。 */ import { type ModelMessage } from "ai"; /** usage 达到模型上下文窗口 95% 时安排下一 step 压缩。 */ export declare const MODEL_CONTEXT_COMPACTION_TRIGGER_RATIO = 0.95; /** 压缩后的真实 usage 需要回落到模型上下文窗口 50% 以内。 */ export declare const MODEL_CONTEXT_COMPACTION_TARGET_RATIO = 0.5; /** * 读取 Provider usage 中的实际总 token。 * * 优先使用 `totalTokens`;Provider 未返回时才回退为 input 与 output 之和。 */ export declare function resolve_model_usage_tokens(usage: unknown): number | null; /** 计算真实 usage 占当前模型上下文窗口的比例。 */ export declare function resolve_model_usage_ratio(usage: unknown, context_window: number | undefined): number | null; /** * 判断一次真实 usage 是否要求下一 step 继续压缩。 * * 普通调用使用 95% 触发水位;刚执行过压缩的调用使用 50% 目标水位验收。 */ export declare function should_compact_after_usage(usage_ratio: number | null, validating_compaction: boolean): boolean; /** * 对当前 ModelMessage 做一次 part 级深度压缩。 * * `compact_depth` 每增加一级都会把保留预算减半,用于真实 usage 未达到目标水位时继续收紧。 */ export declare function deep_compact_model_messages(messages: ModelMessage[], compact_depth?: number): ModelMessage[]; /** 对文本做确定性的 head/tail 折叠。 */ export declare function fold_compacted_text(text: string, max_chars: number): string; //# sourceMappingURL=CoreEngineContextCompaction.d.ts.map