export type CompactionSafeguardRuntimeValue = { maxHistoryShare?: number; }; // Session-scoped runtime registry keyed by object identity. // Follows the same WeakMap pattern as context-pruning/runtime.ts. const REGISTRY = new WeakMap(); export function setCompactionSafeguardRuntime( sessionManager: unknown, value: CompactionSafeguardRuntimeValue | null, ): void { if (!sessionManager || typeof sessionManager !== "object") { return; } const key = sessionManager as object; if (value === null) { REGISTRY.delete(key); return; } REGISTRY.set(key, value); } export function getCompactionSafeguardRuntime( sessionManager: unknown, ): CompactionSafeguardRuntimeValue | null { if (!sessionManager || typeof sessionManager !== "object") { return null; } return REGISTRY.get(sessionManager as object) ?? null; }