import { C as ChatMemory } from './memory-D7JP0glx.js'; import { M as Message } from './message-CyXbT7Zj.js'; import { T as TokenCounter } from './token-counter-CV4VaR06.js'; import 'json-schema'; interface AutoSummarizeOptions { /** Hard cap on stored tokens. Once exceeded, the oldest messages are summarized. */ maxTokens: number; /** * Called with the messages selected for compaction. Returns a * single summary message that replaces them. */ summarizer: (messages: Message[]) => Message | Promise; /** Messages to always keep verbatim at the tail. Default 4. */ keepRecent?: number; /** Token counter. Defaults to `approximateCounter`. */ counter?: TokenCounter; /** Fires after every compaction. */ onCompact?: (info: { droppedCount: number; beforeTokens: number; afterTokens: number; summary: Message; }) => void; } /** * Wrap any `ChatMemory` so that on every `save`, messages over * `maxTokens` are folded into a single summary message via * `summarizer`. Summaries are idempotent: they're tagged with * `metadata.agentskitSummary = true` and are never re-summarized. * * Pair this with a runtime-level `maxTokens` equal to the model's * context window minus a reserve for the response, and your agent's * history auto-compacts forever. */ declare function createAutoSummarizingMemory(backing: ChatMemory, options: AutoSummarizeOptions): ChatMemory; export { type AutoSummarizeOptions, createAutoSummarizingMemory };