openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
93 lines • 2.92 kB
TypeScript
import { wr as AgentMessage } from "../index-DleKJdko.js";
//#region src/agents/compaction-planning.d.ts
/** Decision for whether a summarization stage should run as one chunk or multiple chunks. */
type StageSplitPlan = {
mode: "single";
} | {
mode: "split";
chunks: AgentMessage[][];
};
/** Messages safe to summarize plus notes for messages too large to fit in a summary request. */
type OversizedFallbackPlan = {
smallMessages: AgentMessage[];
oversizedNotes: string[];
};
/** Token accounting and optional prune result for preserving context-window headroom. */
type HistoryPrunePlan = {
summarizableTokens: number;
newContentTokens: number;
maxHistoryTokens: number;
pruned?: ReturnType<typeof pruneHistoryForContextShare>;
};
/** Drops oldest token-share chunks until history fits the requested context share. */
declare function pruneHistoryForContextShare(params: {
messages: AgentMessage[];
maxContextTokens: number;
maxHistoryShare?: number;
parts?: number;
mode?: "share" | "handoff";
}): {
messages: AgentMessage[];
droppedMessagesList: AgentMessage[];
droppedChunks: number;
droppedMessages: number;
droppedTokens: number;
keptTokens: number;
budgetTokens: number;
};
//#endregion
//#region src/agents/compaction-planning.worker.d.ts
/** Serializable request accepted by the compaction planning worker. */
type CompactionPlanningWorkerInput = {
kind: "summaryChunks";
messages: AgentMessage[];
maxChunkTokens: number;
} | {
kind: "oversizedFallback";
messages: AgentMessage[];
contextWindow: number;
} | {
kind: "stageSplit";
messages: AgentMessage[];
maxChunkTokens: number;
parts?: number;
minMessagesForSplit?: number;
} | {
kind: "historyPrune";
messagesToSummarize: AgentMessage[];
turnPrefixMessages: AgentMessage[];
tokensBefore: number;
contextWindowTokens: number;
maxHistoryShare: number;
parts?: number;
} | {
kind: "adaptiveChunkRatio";
messages: AgentMessage[];
contextWindow: number;
};
/** Serializable successful value returned by the compaction planning worker. */
type CompactionPlanningWorkerValue = {
kind: "summaryChunks";
chunks: AgentMessage[][];
} | ({
kind: "oversizedFallback";
} & OversizedFallbackPlan) | ({
kind: "stageSplit";
} & StageSplitPlan) | ({
kind: "historyPrune";
} & HistoryPrunePlan) | {
kind: "adaptiveChunkRatio";
ratio: number;
};
/** Serializable success/failure envelope posted by the worker. */
type CompactionPlanningWorkerResult = {
status: "ok";
value: CompactionPlanningWorkerValue;
} | {
status: "failed";
error: string;
};
/** Run one compaction planning request and return a serializable result. */
declare function runCompactionPlanningWorkerInput(input: unknown): CompactionPlanningWorkerResult;
//#endregion
export { CompactionPlanningWorkerInput, CompactionPlanningWorkerResult, CompactionPlanningWorkerValue, runCompactionPlanningWorkerInput };