feat: 添加 compact 缓存与上下文压缩增强

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
unraid
2026-04-22 22:38:09 +08:00
parent be97a0b010
commit 6c5df395c3
4 changed files with 240 additions and 41 deletions

View File

@@ -27,7 +27,7 @@ export interface DrainResult {
messages: Message[]
}
export const getStats: () => ContextCollapseStats = (() => ({
export const getStats: () => ContextCollapseStats = () => ({
collapsedSpans: 0,
collapsedMessages: 0,
stagedSpans: 0,
@@ -38,29 +38,38 @@ export const getStats: () => ContextCollapseStats = (() => ({
emptySpawnWarningEmitted: false,
totalEmptySpawns: 0,
},
}));
})
export const isContextCollapseEnabled: () => boolean = (() => false);
let _contextCollapseEnabled = false
export const subscribe: (callback: () => void) => () => void = ((_callback: () => void) => () => {});
export function isContextCollapseEnabled(): boolean {
return _contextCollapseEnabled
}
export const subscribe: (callback: () => void) => () => void =
(_callback: () => void) => () => {}
export const applyCollapsesIfNeeded: (
messages: Message[],
toolUseContext: ToolUseContext,
querySource: QuerySource,
) => Promise<CollapseResult> = (async (messages: Message[]) => ({ messages }));
) => Promise<CollapseResult> = async (messages: Message[]) => ({ messages })
export const isWithheldPromptTooLong: (
message: Message,
isPromptTooLongMessage: (msg: Message) => boolean,
querySource: QuerySource,
) => boolean = (() => false);
) => boolean = () => false
export const recoverFromOverflow: (
messages: Message[],
querySource: QuerySource,
) => DrainResult = ((messages: Message[]) => ({ committed: 0, messages }));
) => DrainResult = (messages: Message[]) => ({ committed: 0, messages })
export const resetContextCollapse: () => void = (() => {});
export function resetContextCollapse(): void {
_contextCollapseEnabled = false
}
export const initContextCollapse: () => void = (() => {});
export function initContextCollapse(): void {
_contextCollapseEnabled = true
}