/** * Slot Affinity Manager for llama-server * * Pins sessions to specific llama-server slots to maximize KV cache reuse. * Without affinity, requests may land on different slots, causing expensive * cache rebuilds (37k tokens = 2+ minutes). */ export type SlotAffinityConfig = { enabled?: boolean; numSlots?: number; }; declare class SlotAffinityManager { private sessionSlots; private numSlots; private enabled; configure(config: SlotAffinityConfig | undefined): void; isEnabled(): boolean; /** * Get the assigned slot for a session, or assign one if new. */ getSlotForSession(sessionKey: string): number | undefined; /** * Release a session's slot assignment (e.g., on session end). */ releaseSession(sessionKey: string): void; /** * Get current slot assignments for debugging. */ getStats(): { sessions: number; bySlot: number[]; }; /** * Prune stale sessions (not used in last N minutes). */ pruneStale(maxAgeMs?: number): number; } export declare const slotAffinity: SlotAffinityManager; export {};