UNPKG

@gguf/claw

Version:

Multi-channel AI gateway with extensible messaging integrations

62 lines (61 loc) 2.46 kB
import type { AgentMessage } from "@mariozechner/pi-agent-core"; import type { ExtensionContext } from "@mariozechner/pi-coding-agent"; export declare const BASE_CHUNK_RATIO = 0.4; export declare const MIN_CHUNK_RATIO = 0.15; export declare const SAFETY_MARGIN = 1.2; export declare function estimateMessagesTokens(messages: AgentMessage[]): number; export declare function splitMessagesByTokenShare(messages: AgentMessage[], parts?: number): AgentMessage[][]; export declare function chunkMessagesByMaxTokens(messages: AgentMessage[], maxTokens: number): AgentMessage[][]; /** * Compute adaptive chunk ratio based on average message size. * When messages are large, we use smaller chunks to avoid exceeding model limits. */ export declare function computeAdaptiveChunkRatio(messages: AgentMessage[], contextWindow: number): number; /** * Check if a single message is too large to summarize. * If single message > 50% of context, it can't be summarized safely. */ export declare function isOversizedForSummary(msg: AgentMessage, contextWindow: number): boolean; /** * Summarize with progressive fallback for handling oversized messages. * If full summarization fails, tries partial summarization excluding oversized messages. */ export declare function summarizeWithFallback(params: { messages: AgentMessage[]; model: NonNullable<ExtensionContext["model"]>; apiKey: string; signal: AbortSignal; reserveTokens: number; maxChunkTokens: number; contextWindow: number; customInstructions?: string; previousSummary?: string; }): Promise<string>; export declare function summarizeInStages(params: { messages: AgentMessage[]; model: NonNullable<ExtensionContext["model"]>; apiKey: string; signal: AbortSignal; reserveTokens: number; maxChunkTokens: number; contextWindow: number; customInstructions?: string; previousSummary?: string; parts?: number; minMessagesForSplit?: number; }): Promise<string>; export declare function pruneHistoryForContextShare(params: { messages: AgentMessage[]; maxContextTokens: number; maxHistoryShare?: number; parts?: number; }): { messages: AgentMessage[]; droppedMessagesList: AgentMessage[]; droppedChunks: number; droppedMessages: number; droppedTokens: number; keptTokens: number; budgetTokens: number; }; export declare function resolveContextWindowTokens(model?: ExtensionContext["model"]): number;