/** * Pure retention-eligibility helpers for ContextItem. * * These functions only classify what a runtime policy is *allowed* to do with an item; * they do not mutate, evict, or summarize anything themselves, and they never touch the * transcript or artifact stores. Per contracts-and-retention.md, dropping from model * context must never mean deleting from storage: these helpers only ever describe prompt * inclusion, not deletion. */ import { type ContextItem } from "./context-item.ts"; export type RetentionAction = "keep_raw" | "summarize" | "pack_to_artifact" | "drop_from_prompt"; export interface RetentionEligibility { /** Actions a runtime policy may choose between for this item, most-preserving first. */ allowedActions: RetentionAction[]; /** True if the item's semantics must stay present verbatim; only "keep_raw" is allowed. */ hardRetained: boolean; reasonCodes: string[]; } /** * True if `kind`/`retentionClass` combination must never be dropped or summarized away, * regardless of budget pressure. Mirrors the "Hard retention rules" in * contracts-and-retention.md: pinned items and the explicitly hard-retained kinds * (user instructions, approvals, denials, safety constraints). */ export declare function isHardRetained(item: ContextItem): boolean; /** * Determine which prompt-retention actions are permitted for an item. This is the pure * policy helper referenced by implementation-phases.md Phase 1: it must never allow * dropping pinned/open/latest-failure items, and it must never allow summarizing * decision-bearing content that has no evidence/retrieval path. */ export declare function evaluateRetentionEligibility(item: ContextItem): RetentionEligibility; export declare function canDropFromPrompt(item: ContextItem): boolean; export declare function canSummarize(item: ContextItem): boolean; export declare function canPackToArtifact(item: ContextItem): boolean; //# sourceMappingURL=context-retention.d.ts.map