compaction: the pure core — cut walk, marker, and the model-facing projection (round 14 slice 1)
- core/compaction.ts: compactionCutIndex (backwards ~20k-token walk, NEVER separates a tool result from its call — the cut extends to the call's assistant message; a pending pose always survives), estimateTokens (chars/4, pi's method), newCompactionMarker (header + summary; details carry firstKeptMessageId/tokensBefore/model/at), serializeForSummary (labeled text, tool results truncated ~2k), planTreeToText (verbatim tree with transcript-derived statuses), buildCompactionPrompt (the four ruled sections: learner understanding + evolution, teaching arc, plan tree verbatim, current moment) - toLlmMessages honors the cut: the ACTIVE (newest) marker renders ONCE as the head; everything before firstKeptMessageId drops; corrupt cut degrades honestly (everything renders, never throw) - constants: KEEP_RECENT 20k, RESERVE 16k, DEFAULT_THRESHOLD 150k - 16 test pins
This commit is contained in:
@@ -40,6 +40,7 @@ export * from "./math-delims.ts";
|
||||
// and the input-events contract — all
|
||||
// pure logic, browser-safe.
|
||||
export * from "./native-messages.ts";
|
||||
export * from "./compaction.ts";
|
||||
export * from "./input-events.ts";
|
||||
// Wave D (owner-approved 2026-09-26): the client view model — the grouping
|
||||
// canon (one continuous assistant document, step separators) ported from
|
||||
|
||||
Reference in New Issue
Block a user