/** * Bounded serialization helpers for the trace toolpack. * * Pattern: pure functions — no state, no events. * Role: The token-economics layer. EVERY value the toolpack serves goes * through these: previews are capped, truncation is EXPLICIT * (never silent), and nested-path keys round-trip between the * engine's DELIM encoding and LLM-friendly dot notation. */ /** * footprintjs's canonical nested-path delimiter (ASCII unit separator, * `src/lib/memory/utils.ts`). Internal to the engine — the toolpack * translates it to/from dot notation so the LLM never sees a control char. */ export declare const FP_PATH_DELIM = "\u001F"; /** Engine path → LLM-friendly dotted display form. */ export declare function displayKey(path: string): string; /** * LLM-supplied key → engine path. Exact keys pass through; a dotted key * that doesn't exist verbatim but matches a known DELIM-joined path is * translated back. `knownPaths` is the set of every path seen in the * commit log's trace entries. */ export declare function normalizeKey(key: string, knownPaths: ReadonlySet): string; /** Replace every DELIM in an already-formatted text block with '.' for display. */ export declare function displayText(text: string): string; /** * Serialize a value to compact JSON, total-function style: cycles, BigInt * and other non-JSON values degrade to a tagged placeholder instead of * throwing — a debugger tool must never crash on the evidence it serves. */ export declare function safeStringify(value: unknown): string; /** A bounded preview of a value: capped text + the TRUE total size, never silent. */ export interface BoundedPreview { /** The (possibly truncated) serialized text. */ readonly text: string; /** Full serialized length in chars — so the consumer knows what it's NOT seeing. */ readonly totalChars: number; /** True when `text` is shorter than the full serialization. */ readonly truncated: boolean; } /** Serialize + cap at `maxChars`. Truncation is reported, never silent. */ export declare function boundedPreview(value: unknown, maxChars: number): BoundedPreview; /** Render a preview with its honesty suffix when truncated. */ export declare function renderPreview(preview: BoundedPreview, fetchHint?: string): string; /** Clamp an LLM-supplied numeric param into [min, hardCap], with a default. */ export declare function clampParam(requested: number | undefined, fallback: number, min: number, hardCap: number): number; //# sourceMappingURL=bounded.d.ts.map