/** Share of the context window that skill bodies may occupy. */ export declare const SKILL_BUDGET_RATIO = 0.8; /** * Reduce `## Process` to its headings and the first line of each step. * * Everything outside `## Process` is kept verbatim: Overview, When to Use, * Red Flags, Rationalizations and Verification are what tell the model whether * the member applies and when to stop. `## Process` holds 60-84% of these * members' lines and is the part the model can re-read from disk. * * Inside Process the step skeleton survives — subsection headings, numbered and * bulleted steps, bold labels — and the prose wrapped around them does not. */ export declare function compressSkillBody(body: string): string; /** * Second degradation step: drop `## Process` outright. * * Slicing a compressed body to a byte budget cuts the tail, and the tail is * where Red Flags, Rationalizations and Verification live. Dropping Process * whole is what keeps the invariant that everything outside it survives. */ export declare function stripProcess(body: string): string; /** * Running token budget across the skill bodies injected into one run. * * A body already in the transcript cannot be shrunk afterwards, so the decision * has to happen at injection time: given what is already loaded, decide how much * of this body fits. * * ponytail: the total is per tool instance (per process), not per conversation. * Several agents sharing one process will under-use the window. Key it on a * conversation id if that ever matters. */ export declare class SkillBudget { private readonly contextWindow; private readonly ratio; private used; constructor(contextWindow?: number, ratio?: number); get limit(): number; get consumed(): number; /** Squeeze `body` until it fits what is left of the budget. */ fit(body: string): { body: string; compressed: boolean; savedTokens: number; }; private clamp; } //# sourceMappingURL=SkillBudget.d.ts.map