@ponythewhite/base-context 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/base-context-runtime/pyproject.toml +1 -1
- package/dist/base-context-runtime/src/rlm/__init__.py +3 -0
- package/dist/base-context-runtime/src/rlm/harness.py +86 -48
- package/dist/base-context-runtime/test/test_harness.py +215 -140
- package/dist/base-context-runtime/uv.lock +1 -1
- package/dist/build-info.json +1 -1
- package/dist/bundle/amazon-bedrock.js +3 -3
- package/dist/bundle/{anthropic-UV5GZDGU.js → anthropic-5PSCZEER.js} +2 -7
- package/dist/bundle/{azure-openai-responses-WSNPXLYC.js → azure-openai-responses-AYTLJR33.js} +2 -2
- package/dist/bundle/{bundled-modules-PS66L3IT.js → bundled-modules-IGMJH2MU.js} +5 -5
- package/dist/bundle/{chunk-UPVDERMD.js → chunk-2IPDSTDR.js} +11 -9
- package/dist/bundle/chunk-D3KOF57W.js +22040 -0
- package/dist/bundle/{chunk-VCW3YDFF.js → chunk-EXEFSSF4.js} +1475 -562
- package/dist/bundle/{chunk-VSIYFWYI.js → chunk-KT2BNEPE.js} +21 -8
- package/dist/bundle/{chunk-KTNETTHI.js → chunk-Q3MBSBEB.js} +3 -101
- package/dist/bundle/{chunk-LFPWHI42.js → chunk-QKIFBA7N.js} +2 -2
- package/dist/bundle/{chunk-PFROC4EV.js → chunk-RVJVXZCS.js} +12 -9
- package/dist/bundle/{cli-main-MMHTK7EB.js → cli-main-BUK7QTHO.js} +4 -4
- package/dist/bundle/cli.js +1 -1
- package/dist/bundle/{google-T32FMD4G.js → google-HTMCUJ7X.js} +2 -2
- package/dist/bundle/{google-vertex-56KP6I3B.js → google-vertex-ZQO65AXF.js} +2 -2
- package/dist/bundle/{main-XAIVH4Y7.js → main-2FWHT2WZ.js} +5 -5
- package/dist/bundle/{mistral-WGBMYIVU.js → mistral-SB7LU56G.js} +1 -1
- package/dist/bundle/{openai-codex-responses-PIV2RQ3G.js → openai-codex-responses-5CEW4VN3.js} +53 -27
- package/dist/bundle/{openai-completions-64C3JPR4.js → openai-completions-BAZJQSS2.js} +1 -1
- package/dist/bundle/{openai-responses-UI7RSTDV.js → openai-responses-VHOE427P.js} +48 -5
- package/dist/core/agent-session.d.ts +6 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +177 -24
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/canonical-context.d.ts +8 -0
- package/dist/core/canonical-context.d.ts.map +1 -1
- package/dist/core/canonical-context.js +37 -5
- package/dist/core/canonical-context.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +2 -2
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +31 -13
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/context-epoch.d.ts +1 -1
- package/dist/core/context-epoch.d.ts.map +1 -1
- package/dist/core/context-epoch.js +2 -1
- package/dist/core/context-epoch.js.map +1 -1
- package/dist/core/extensions/types.d.ts +2 -2
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/history-index-worker.d.ts.map +1 -1
- package/dist/core/history-index-worker.js +29 -8
- package/dist/core/history-index-worker.js.map +1 -1
- package/dist/core/history-index.d.ts +11 -1
- package/dist/core/history-index.d.ts.map +1 -1
- package/dist/core/history-index.js +2 -1
- package/dist/core/history-index.js.map +1 -1
- package/dist/core/inference-coordinator.d.ts.map +1 -1
- package/dist/core/inference-coordinator.js +108 -13
- package/dist/core/inference-coordinator.js.map +1 -1
- package/dist/core/kernel/bootstrap.d.ts.map +1 -1
- package/dist/core/kernel/bootstrap.js +97 -107
- package/dist/core/kernel/bootstrap.js.map +1 -1
- package/dist/core/kernel/repl-manager.d.ts.map +1 -1
- package/dist/core/kernel/repl-manager.js +11 -0
- package/dist/core/kernel/repl-manager.js.map +1 -1
- package/dist/core/kernel/shared.d.ts +2 -0
- package/dist/core/kernel/shared.d.ts.map +1 -1
- package/dist/core/kernel/shared.js.map +1 -1
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +4 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/prompts/rlm.d.ts.map +1 -1
- package/dist/core/prompts/rlm.js +4 -2
- package/dist/core/prompts/rlm.js.map +1 -1
- package/dist/core/public-context.d.ts.map +1 -1
- package/dist/core/public-context.js +16 -0
- package/dist/core/public-context.js.map +1 -1
- package/dist/core/refinement/refinement.d.ts +19 -5
- package/dist/core/refinement/refinement.d.ts.map +1 -1
- package/dist/core/refinement/refinement.js +90 -35
- package/dist/core/refinement/refinement.js.map +1 -1
- package/dist/core/request-view-selection.d.ts +10 -2
- package/dist/core/request-view-selection.d.ts.map +1 -1
- package/dist/core/request-view-selection.js +235 -100
- package/dist/core/request-view-selection.js.map +1 -1
- package/dist/core/retained-tool-output.d.ts +28 -0
- package/dist/core/retained-tool-output.d.ts.map +1 -0
- package/dist/core/retained-tool-output.js +102 -0
- package/dist/core/retained-tool-output.js.map +1 -0
- package/dist/core/selective-recovery.d.ts +47 -3
- package/dist/core/selective-recovery.d.ts.map +1 -1
- package/dist/core/selective-recovery.js +428 -109
- package/dist/core/selective-recovery.js.map +1 -1
- package/dist/core/session-history-index.d.ts +3 -1
- package/dist/core/session-history-index.d.ts.map +1 -1
- package/dist/core/session-history-index.js +1 -1
- package/dist/core/session-history-index.js.map +1 -1
- package/dist/core/settings-manager.d.ts +5 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +3 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts +3 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +3 -3
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/task-frame.d.ts +1 -1
- package/dist/core/task-frame.d.ts.map +1 -1
- package/dist/core/task-frame.js +21 -1
- package/dist/core/task-frame.js.map +1 -1
- package/dist/core/task-state-reader.d.ts +10 -2
- package/dist/core/task-state-reader.d.ts.map +1 -1
- package/dist/core/task-state-reader.js +75 -9
- package/dist/core/task-state-reader.js.map +1 -1
- package/dist/core/tools/ipython.d.ts +5 -0
- package/dist/core/tools/ipython.d.ts.map +1 -1
- package/dist/core/tools/ipython.js +59 -17
- package/dist/core/tools/ipython.js.map +1 -1
- package/dist/core/tools/prime-context.d.ts.map +1 -1
- package/dist/core/tools/prime-context.js +1 -1
- package/dist/core/tools/prime-context.js.map +1 -1
- package/dist/core/view-units.d.ts +4 -0
- package/dist/core/view-units.d.ts.map +1 -1
- package/dist/core/view-units.js +28 -19
- package/dist/core/view-units.js.map +1 -1
- package/dist/installer.mjs +98 -77
- package/dist/modes/interactive/components/refinement-outcome-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/refinement-outcome-message.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +5 -5
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/skills/skill-creator/SKILL.md +18 -1
- package/docs/settings.md +45 -0
- package/docs/skills.md +77 -2
- package/package.json +4 -4
- package/skills/skill-creator/SKILL.md +18 -1
- package/dist/bundle/chunk-W46VZFI6.js +0 -21681
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-context.js","sourceRoot":"","sources":["../../src/core/canonical-context.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage } from \"@ponythewhite/base-context-agent\";\nimport { stringifyBoundedJson } from \"./bounded-json.js\";\nimport {\n\tCONTEXT_EPOCH_DETAIL,\n\tCONTEXT_EPOCH_RENDERER,\n\tCONTEXT_POLICY_EPOCH_RENDERER,\n\tCONTEXT_SKILL_EPOCH_RENDERER,\n\tCONTEXT_TOOL_EPOCH_RENDERER,\n\tCONTEXT_TOOL_SUMMARY_RENDERER,\n\ttype ContextEpochCheckpoint,\n\ttype ContextMode,\n\ttype ContextReplayContract,\n\tcontextEpochMode,\n\ttype EpochViewReference,\n\treadContextEpoch,\n\tretainedContextRequestContract,\n\tsnapshotContextEpoch,\n\ttype ToolContinuationGroup,\n} from \"./context-epoch.js\";\nimport type {\n\tContextManifestCursor,\n\tContextManifestPage,\n\tContextRef,\n\tContextUpdateRef,\n\tContextUpdateTarget,\n\tIndexedSourceEvent,\n} from \"./history-index.js\";\nimport { createCompactionSummaryMessage, createCustomMessage } from \"./messages.js\";\nimport {\n\tPUBLIC_CONTEXT_RENDERER,\n\tPUBLIC_TOOL_CONTINUATION_RENDERER,\n\trenderPublicHistory,\n\trenderToolContinuation,\n} from \"./public-context.js\";\nimport type { ContextEpochEntryRef, SourceSnapshotRef } from \"./request-events.js\";\nimport { type OwnedResourceCapture, renderResourceView } from \"./resource-view.js\";\nimport { isNativeSkillSelection, type SelectedSkillReference, selectedSkillCapture } from \"./selected-skills.js\";\nimport { orderContextToolResults, sessionEntryMessage } from \"./session-context-messages.js\";\nimport {\n\tappendSentAgentMessageToToolResult,\n\tparsePersistedIpythonSentAgentMessage,\n} from \"./session-context-updates.js\";\nimport { hydrateCapturedHistoryEntry, type SessionHistoryReadView } from \"./session-history-index.js\";\nimport type { SessionEntry } from \"./session-manager.js\";\nimport { type CompiledTaskFrame, compileTaskFrame, type TaskFrameLimits, taskFrameLimits } from \"./task-frame.js\";\nimport { readTaskStateFromView } from \"./task-state-reader.js\";\nimport { cloneUsage } from \"./usage.js\";\nimport { bindMessageReplayUnits, closeViewSelection, type ViewUnit, type ViewUnitLimits } from \"./view-units.js\";\n\nexport interface CanonicalContextLimits {\n\tmaxMessages: number;\n\t/** Canonical frame bytes, not a tokenizer or an estimate of JavaScript heap size. */\n\tmaxSourceBytes: number;\n}\n\ninterface CanonicalMessageSource {\n\treadonly sessionId: string;\n\treadonly sessionFile: string | undefined;\n\treadonly entryId: string;\n}\n\nconst messageSources = new WeakMap<AgentMessage, CanonicalMessageSource>();\nexport interface CanonicalViewSelectionSource {\n\treadonly source: SourceSnapshotRef;\n\treadonly units: readonly ViewUnit[];\n\treadonly limits: ViewUnitLimits;\n\treadonly pendingPublicMessageGroups?: readonly (readonly number[])[];\n}\n\nconst compiledViewUnits = new WeakMap<\n\treadonly AgentMessage[],\n\t{\n\t\tunits: readonly ViewUnit[];\n\t\tselection: CanonicalViewSelectionSource;\n\t}\n>();\n\n/** Detached rendering metadata only; reading it never changes a compiler or epoch. */\nexport function getCanonicalViewUnits(messages: readonly AgentMessage[]): readonly ViewUnit[] | undefined {\n\tconst units = compiledViewUnits.get(messages)?.units;\n\treturn units ? structuredClone(units) : undefined;\n}\n\n/** Intrinsic dependencies for an explicitly supported native epoch boundary, never the default view policy. */\nexport function getCanonicalViewSelectionSource(\n\tmessages: readonly AgentMessage[],\n): CanonicalViewSelectionSource | undefined {\n\tconst selection = compiledViewUnits.get(messages)?.selection;\n\treturn selection ? structuredClone(selection) : undefined;\n}\n\n/** Correlate a detached compiled message with its captured source, without retaining its body. */\nexport function getCanonicalMessageSource(message: AgentMessage): CanonicalMessageSource | undefined {\n\tconst source = messageSources.get(message);\n\treturn source ? { ...source } : undefined;\n}\n\ninterface CompiledEpochContext {\n\t/** A captured observation or summary input never authorizes a MAIN epoch. */\n\treadonly readOnly?: true;\n\treadonly mode: ContextMode;\n\treadonly source: SourceSnapshotRef;\n\treadonly checkpoint?: ContextEpochCheckpoint;\n\treadonly checkpointEntry?: ContextEpochEntryRef;\n\treadonly selectedSkills?: readonly SelectedSkillReference[];\n\treadonly taskFrame?: CompiledTaskFrame;\n\treadonly resourceRevision?: string;\n\treadonly references: readonly (EpochViewReference | null)[];\n\t/** Uncommitted public candidate plan; never a fabricated accepted checkpoint. */\n\treadonly continuation?: ContextEpochCheckpoint[\"continuation\"];\n\treadonly toolContinuations?: readonly ToolContinuationGroup[];\n}\nconst compiledEpochContexts = new WeakMap<readonly AgentMessage[], CompiledEpochContext>();\n\nexport function getCanonicalEpochContext(messages: readonly AgentMessage[]): CompiledEpochContext | undefined {\n\tconst context = compiledEpochContexts.get(messages);\n\treturn context ? structuredClone(context) : undefined;\n}\n\n/** Detach the request view while keeping its existing captured rendering metadata. */\nexport function captureCanonicalRequestMessages(messages: readonly AgentMessage[]): AgentMessage[] {\n\tconst views = compiledViewUnits.get(messages);\n\tconst epoch = compiledEpochContexts.get(messages);\n\tif (!views || !epoch || views.units.length !== messages.length || epoch.references.length !== messages.length)\n\t\tthrow new Error(\"Request view boundary requires compiled canonical messages\");\n\tconst captured = structuredClone([...messages]);\n\tcompiledViewUnits.set(captured, structuredClone(views));\n\tcompiledEpochContexts.set(captured, structuredClone(epoch));\n\tfor (const [index, message] of messages.entries()) {\n\t\tconst source = messageSources.get(message);\n\t\tif (source) messageSources.set(captured[index], { ...source });\n\t}\n\treturn captured;\n}\n\n/** Called only for the actual current adapter's mandatory whole-group public candidate. */\nexport function prepareToolContinuationWindow(messages: readonly AgentMessage[]): {\n\tmessages: AgentMessage[];\n\treplacements: readonly { messageIndex: number; text: string }[];\n} {\n\tif (compiledEpochContexts.get(messages)?.readOnly)\n\t\tthrow new Error(\"Read-only context cannot authorize a provider epoch\");\n\treturn renderToolContinuationWindow(messages);\n}\n\n/** Source-backed public facts shared by observations, summaries, and measured request candidates. */\nfunction renderToolContinuationWindow(messages: readonly AgentMessage[]): {\n\tmessages: AgentMessage[];\n\treplacements: readonly { messageIndex: number; text: string }[];\n} {\n\tconst captured = captureCanonicalRequestMessages(messages);\n\tconst views = compiledViewUnits.get(captured)!;\n\tconst epoch = compiledEpochContexts.get(captured)!;\n\tconst groups = views.selection.pendingPublicMessageGroups;\n\tif (!groups?.length || groups.length !== epoch.toolContinuations?.length)\n\t\tthrow new Error(\"Tool continuation requires its captured native source plan\");\n\tconst maxBytes = views.selection.limits.maxMetadataBytes;\n\tconst references = [...epoch.references];\n\tconst replacements: { messageIndex: number; text: string }[] = [];\n\tconst markers = new Set(groups.map((group) => `public-tool-continuation:${views.units[group[0]].id}`));\n\tconst renderedGroups = new Map<number, ToolContinuationGroup>();\n\tfor (const [groupIndex, members] of groups.entries()) {\n\t\tconst group = epoch.toolContinuations![groupIndex];\n\t\tif (references[members[0]]?.ref.entryId !== group.assistantEntryId)\n\t\t\tthrow new Error(\"Tool continuation original group changed\");\n\t\tfor (const index of members) {\n\t\t\tconst reference = references[index];\n\t\t\tif (!reference) throw new Error(\"Tool continuation source is unavailable\");\n\t\t\tconst original = captured[index];\n\t\t\tconst rendered = renderToolContinuation(original, reference.ref.entryId, epoch.source, group, maxBytes);\n\t\t\tconst source = messageSources.get(original);\n\t\t\tif (source) messageSources.set(rendered, source);\n\t\t\tcaptured[index] = rendered;\n\t\t\treferences[index] = { ...reference, rendering: PUBLIC_TOOL_CONTINUATION_RENDERER };\n\t\t\treplacements.push({ messageIndex: index, text: rendered.content });\n\t\t\trenderedGroups.set(index, group);\n\t\t}\n\t}\n\tstringifyBoundedJson(captured, maxBytes);\n\t// Reads need whole tool groups, not the unadmittable request's whole-context dependency star.\n\tconst units = epoch.readOnly\n\t\t? bindMessageReplayUnits(captured, views.selection.units, views.selection.limits, \"message-groups\", groups)\n\t\t: views.units;\n\tconst publicUnits = units.map(\n\t\t(unit, index): ViewUnit => ({\n\t\t\t...unit,\n\t\t\tsourceRevision: renderedGroups.has(index)\n\t\t\t\t? JSON.stringify([unit.sourceRevision, PUBLIC_TOOL_CONTINUATION_RENDERER, renderedGroups.get(index)])\n\t\t\t\t: unit.sourceRevision,\n\t\t\tunavailableDependencies: unit.unavailableDependencies?.filter((id) => !markers.has(id)),\n\t\t}),\n\t);\n\tcompiledViewUnits.set(captured, {\n\t\tunits: publicUnits,\n\t\tselection: { ...views.selection, units: publicUnits, pendingPublicMessageGroups: undefined },\n\t});\n\tcompiledEpochContexts.set(captured, { ...epoch, references });\n\treturn { messages: captured, replacements };\n}\n\n/** Deterministic public data only. The actual adapter must permit and accept this candidate. */\nexport function preparePublicContextWindow(\n\tmessages: readonly AgentMessage[],\n\tfirstMessageIndex = 0,\n):\n\t| {\n\t\t\tmessages: AgentMessage[];\n\t\t\treplacements: readonly { messageIndex: number; text: string }[];\n\t }\n\t| undefined {\n\tconst captured = captureCanonicalRequestMessages(messages);\n\tconst views = compiledViewUnits.get(captured)!;\n\tconst epoch = compiledEpochContexts.get(captured)!;\n\tconst maxBytes = views.selection.limits.maxMetadataBytes;\n\tconst references = [...epoch.references];\n\tconst replacements: { messageIndex: number; text: string }[] = [];\n\tfor (const [index, message] of captured.entries()) {\n\t\tif (index < firstMessageIndex || (message.role !== \"assistant\" && message.role !== \"toolResult\")) continue;\n\t\t// Public v1 has no media representation. Do not disturb an otherwise valid native request.\n\t\tif (message.content.some((part) => ![\"text\", \"toolCall\", \"thinking\"].includes(part.type))) return;\n\t\tconst reference = references[index];\n\t\tif (!reference) throw new Error(\"Public request view requires its captured source\");\n\t\tconst rendered = renderPublicHistory(message, reference.ref.entryId, maxBytes);\n\t\tif (rendered.role !== \"custom\" || typeof rendered.content !== \"string\")\n\t\t\tthrow new Error(\"Public request view has no standalone text\");\n\t\tconst source = messageSources.get(message);\n\t\tif (source) messageSources.set(rendered, source);\n\t\tcaptured[index] = rendered;\n\t\treferences[index] = { ...reference, rendering: PUBLIC_CONTEXT_RENDERER };\n\t\treplacements.push({ messageIndex: index, text: rendered.content });\n\t}\n\tif (!replacements.length) return;\n\tstringifyBoundedJson(captured, maxBytes);\n\tconst publicIndices = new Set(replacements.map((replacement) => replacement.messageIndex));\n\tconst renderedUnit = (unit: ViewUnit, index: number): ViewUnit =>\n\t\tpublicIndices.has(index)\n\t\t\t? { ...unit, sourceRevision: JSON.stringify([unit.sourceRevision, PUBLIC_CONTEXT_RENDERER]) }\n\t\t\t: unit;\n\tcompiledViewUnits.set(captured, {\n\t\tunits: views.units.map(renderedUnit),\n\t\tselection: { ...views.selection, units: views.selection.units.map(renderedUnit) },\n\t});\n\tcompiledEpochContexts.set(captured, {\n\t\t...epoch,\n\t\treferences,\n\t\tcontinuation: { kind: \"portable-checkpoint\", publicTailThrough: epoch.source },\n\t});\n\treturn { messages: captured, replacements };\n}\n\n/** Read mode only from the same qualified compaction owner used by the compiler. */\nexport async function readCanonicalContextMode(\n\tview: SessionHistoryReadView,\n\tmaxBytes: number,\n\tinitial: ContextMode,\n): Promise<ContextMode> {\n\tconst manifest = await view.contextManifest({ limit: 1 });\n\tif (manifest.selection !== \"known\") throw new Error(\"Context mode source is unavailable\");\n\tif (!manifest.summaryRef) return initial;\n\tconst metadata = await view.get(manifest.summaryRef.entryId);\n\tif (!metadata) throw new Error(\"Context mode checkpoint is unavailable\");\n\tconst hydrated = await hydrateCapturedHistoryEntry(metadata, maxBytes, view.readPayload);\n\tif (!hydrated || hydrated.entry.type !== \"compaction\") throw new Error(\"Context mode checkpoint is unavailable\");\n\tconst details = hydrated.entry.details;\n\tif (!details || typeof details !== \"object\" || !(CONTEXT_EPOCH_DETAIL in details)) return initial;\n\tif (hydrated.source.qualification !== \"native-context-epoch\" || hydrated.source.retention === \"retained-import\")\n\t\tthrow new Error(\"Context mode checkpoint is not qualified on this source\");\n\treturn contextEpochMode(readContextEpoch(details, maxBytes), initial);\n}\n\n/** Literal suffixes follow source append order, not the restored tool-call display order. */\nfunction latestLiteralReference(references: readonly (EpochViewReference | null)[]): EpochViewReference | undefined {\n\tlet latest: EpochViewReference | undefined;\n\tfor (const reference of references) {\n\t\tif (reference && reference.ref.kind !== \"compaction\" && (!latest || reference.ref.sequence > latest.ref.sequence))\n\t\t\tlatest = reference;\n\t}\n\treturn latest;\n}\n\n/** Policy changes retain the current recipe; generated overlays are not archived conversation. */\nexport function prepareContextModeEpoch(\n\tmessages: readonly AgentMessage[],\n\tmode: ContextMode,\n\tmaxBytes: number,\n\tfreshContextContract = false,\n): { checkpoint: ContextEpochCheckpoint; messages: AgentMessage[] } {\n\tconst context = compiledEpochContexts.get(messages);\n\tconst units = getCanonicalViewUnits(messages);\n\tif (!context || !units || units.length !== messages.length)\n\t\tthrow new Error(\"Context mode requires captured canonical views\");\n\tif (context.toolContinuations?.length)\n\t\tthrow new Error(\"Tool continuation cannot enter a policy-only context checkpoint\");\n\tconst chosen = messages.filter(\n\t\t(_, index) => units[index].kind !== \"task-frame\" && units[index].kind !== \"resource-view\",\n\t);\n\tconst tail = latestLiteralReference(context.references);\n\tconst views = context.references.filter(\n\t\t(reference): reference is EpochViewReference => reference !== null && reference !== tail,\n\t);\n\t// A metadata-only fresh branch uses its existing source leaf; no fake user input is appended.\n\tconst literalTailId = tail?.ref.entryId ?? context.source.leafId;\n\tif (!literalTailId) throw new Error(\"Context mode requires a canonical source boundary\");\n\treturn {\n\t\tcheckpoint: snapshotContextEpoch(\n\t\t\t{\n\t\t\t\tversion: 5,\n\t\t\t\trenderer: context.selectedSkills?.length ? CONTEXT_SKILL_EPOCH_RENDERER : CONTEXT_POLICY_EPOCH_RENDERER,\n\t\t\t\t...(context.selectedSkills?.length ? { selectedSkills: context.selectedSkills } : {}),\n\t\t\t\tmode,\n\t\t\t\tpolicyOnly: true,\n\t\t\t\trepresentation: null,\n\t\t\t\tsource: context.source,\n\t\t\t\tviews,\n\t\t\t\tliteralTailId,\n\t\t\t\trequestContract: retainedContextRequestContract(context.checkpoint),\n\t\t\t\t...(mode === \"off\" && !context.checkpoint && freshContextContract\n\t\t\t\t\t? { pendingRequestContract: true as const }\n\t\t\t\t\t: {}),\n\t\t\t\treplayContract: context.checkpoint?.replayContract,\n\t\t\t\tpublicWindow: context.checkpoint?.publicWindow,\n\t\t\t\tcontinuation: context.checkpoint?.continuation,\n\t\t\t\t// Retain the existing bounded anchor recipe for explicit re-enable; off never injects it.\n\t\t\t\ttaskFrame: context.taskFrame ?? context.checkpoint?.taskFrame,\n\t\t\t},\n\t\t\tmaxBytes,\n\t\t),\n\t\tmessages: [...chosen],\n\t};\n}\n\n/** A candidate only. The caller must ACK the canonical checkpoint before adoption or send. */\nexport function prepareCanonicalEpoch(\n\tmessages: readonly AgentMessage[],\n\tselectedUnitIds: readonly string[],\n\trepresentation: string,\n\tmaxBytes: number,\n\treplayContract: ContextReplayContract = \"complete-context\",\n\tpublicWindow = false,\n): {\n\tcheckpoint: ContextEpochCheckpoint & { readonly version: 4 | 6; readonly representation: string };\n\tmessages: AgentMessage[];\n} {\n\tconst context = compiledEpochContexts.get(messages);\n\tconst units = getCanonicalViewUnits(messages);\n\tif (!context || !units || units.length !== messages.length || context.references.length !== messages.length)\n\t\tthrow new Error(\"Context epoch requires its captured compiler output\");\n\tif (context.readOnly) throw new Error(\"Read-only context cannot authorize a provider epoch\");\n\tif (compiledViewUnits.get(messages)?.selection.pendingPublicMessageGroups?.length)\n\t\tthrow new Error(\"Tool continuation requires its accepted public representation\");\n\tif (context.toolContinuations?.length && (!publicWindow || replayContract !== \"message-groups\"))\n\t\tthrow new Error(\"Tool continuation epoch requires its actual public replay contract\");\n\tconst selected = new Set(selectedUnitIds);\n\tif (selected.size !== selectedUnitIds.length || [...selected].some((id) => !units.some((unit) => unit.id === id)))\n\t\tthrow new Error(\"Context epoch selection has an unknown or repeated unit\");\n\tconst chosen: AgentMessage[] = [];\n\tconst views: EpochViewReference[] = [];\n\tfor (const [index, unit] of units.entries()) {\n\t\tif (!selected.has(unit.id)) {\n\t\t\tif (unit.kind === \"task-frame\") throw new Error(\"Context epoch cannot omit its task frame\");\n\t\t\tif (unit.kind === \"resource-view\") throw new Error(\"Context epoch cannot omit its current resource view\");\n\t\t\tif (unit.id === \"native-selected-skill-versions\")\n\t\t\t\tthrow new Error(\"Context epoch cannot omit its selected skill references\");\n\t\t\tcontinue;\n\t\t}\n\t\tchosen.push(messages[index]);\n\t\tconst reference = context.references[index];\n\t\tif (reference) views.push(reference);\n\t}\n\tconst tail = latestLiteralReference(context.references);\n\tif (!tail) throw new Error(\"Context epoch literal tail is unavailable\");\n\tconst tailIndex = views.indexOf(tail);\n\tif (tailIndex < 0) throw new Error(\"Context epoch cannot omit the current literal tail\");\n\tviews.splice(tailIndex, 1);\n\treturn {\n\t\tcheckpoint: snapshotContextEpoch(\n\t\t\t{\n\t\t\t\tversion: context.toolContinuations?.length ? 6 : 4,\n\t\t\t\trenderer: context.selectedSkills?.length\n\t\t\t\t\t? CONTEXT_SKILL_EPOCH_RENDERER\n\t\t\t\t\t: context.toolContinuations?.length\n\t\t\t\t\t\t? CONTEXT_TOOL_EPOCH_RENDERER\n\t\t\t\t\t\t: CONTEXT_EPOCH_RENDERER,\n\t\t\t\t...(context.selectedSkills?.length ? { selectedSkills: context.selectedSkills } : {}),\n\t\t\t\t...(context.toolContinuations?.length ? { toolContinuations: context.toolContinuations } : {}),\n\t\t\t\tsource: context.source,\n\t\t\t\trepresentation,\n\t\t\t\treplayContract,\n\t\t\t\t...(publicWindow ? { publicWindow: true as const } : {}),\n\t\t\t\t...((context.continuation ?? context.checkpoint?.continuation)\n\t\t\t\t\t? { continuation: context.continuation ?? context.checkpoint?.continuation }\n\t\t\t\t\t: {}),\n\t\t\t\tviews,\n\t\t\t\ttaskFrame: context.taskFrame,\n\t\t\t\tresourceRevision: context.resourceRevision,\n\t\t\t\tliteralTailId: tail.ref.entryId,\n\t\t\t},\n\t\t\tmaxBytes,\n\t\t),\n\t\tmessages: chosen,\n\t};\n}\n\n/** Use only a replay contract granted to these recovery results by an actual accepted request. */\nexport function canonicalRecoveryBoundary(messages: readonly AgentMessage[]): string | undefined {\n\tconst context = compiledEpochContexts.get(messages);\n\tconst units = getCanonicalViewUnits(messages);\n\tif (!context || !units) throw new Error(\"Recovery compaction requires captured canonical views\");\n\tif (context.toolContinuations?.length && !context.readOnly)\n\t\tthrow new Error(\"Tool continuation summary requires its captured public read view\");\n\tconst recoveries = units.flatMap((unit, index) => (unit.kind === \"recovery\" ? [context.references[index]] : []));\n\tif (!recoveries.length) return;\n\tconst checkpoint = context.checkpoint;\n\tif (\n\t\t!checkpoint?.representation ||\n\t\tcheckpoint.replayContract !== \"message-groups\" ||\n\t\trecoveries.some((reference) => !reference || reference.ref.sequence > checkpoint.source.sourceSequence)\n\t)\n\t\tthrow new Error(\"Recovery compaction requires an accepted replay contract for its selected results\");\n\treturn checkpoint.literalTailId;\n}\n\n/** Retain exact recovery evidence. An accepted public-window transition replaces whole old protocol groups. */\nexport function prepareRecoveryCompaction(\n\tmessages: readonly AgentMessage[],\n\tfirstKeptEntryId: string,\n\tmaxBytes: number,\n): ContextEpochCheckpoint | undefined {\n\tconst boundary = canonicalRecoveryBoundary(messages);\n\tconst context = compiledEpochContexts.get(messages);\n\tconst publicWindow =\n\t\tcontext?.checkpoint?.publicWindow === true && context.checkpoint.replayContract === \"message-groups\";\n\tif (!boundary && !publicWindow && !context?.selectedSkills?.length && !context?.toolContinuations?.length) return;\n\tif (!context) throw new Error(\"Recovery compaction requires captured canonical views\");\n\tconst selection = getCanonicalViewSelectionSource(messages)!;\n\tconst cut = context.references.findIndex((reference) => reference?.ref.entryId === firstKeptEntryId);\n\tconst lastProved = boundary\n\t\t? context.references.findIndex((reference) => reference?.ref.entryId === boundary)\n\t\t: messages.length - 1;\n\tif (cut < 0 || lastProved < 0 || cut > lastProved)\n\t\tthrow new Error(\"Recovery compaction must retain its unmeasured literal tail\");\n\tconst units = bindMessageReplayUnits(messages, selection.units, selection.limits, \"message-groups\");\n\t// A mode transition cannot strand any outstanding native call, including one in the retained tail.\n\tcloseViewSelection(\n\t\tunits,\n\t\tunits.map((unit) => unit.id),\n\t\tselection.limits,\n\t);\n\tconst toolGroups = new Set(context.toolContinuations?.map((group) => group.assistantEntryId));\n\tconst roots = units\n\t\t.filter((unit, index) => unit.kind === \"recovery\" || toolGroups.has(context.references[index]?.ref.entryId ?? \"\"))\n\t\t.map((unit) => unit.id);\n\tconst closed = new Set(closeViewSelection(units, roots, selection.limits).map((unit) => unit.id));\n\tlet renderedBytes = 0;\n\tconst views = context.references.flatMap((reference, index): EpochViewReference[] => {\n\t\tif (!reference || (index < cut && !closed.has(units[index].id))) return [];\n\t\tconst message = messages[index];\n\t\tconst rendered = publicWindow ? renderPublicHistory(message, reference.ref.entryId, maxBytes) : message;\n\t\tif (publicWindow) {\n\t\t\trenderedBytes += Buffer.byteLength(JSON.stringify(rendered), \"utf8\");\n\t\t\tif (renderedBytes > maxBytes) throw new Error(\"Public summary view byte budget exceeded\");\n\t\t}\n\t\treturn index < cut\n\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\t...reference,\n\t\t\t\t\t\t...(rendered !== message ? { rendering: PUBLIC_CONTEXT_RENDERER } : {}),\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t: [];\n\t});\n\tif (!views.length && !publicWindow && !context.selectedSkills?.length && !toolGroups.size) return;\n\treturn snapshotContextEpoch(\n\t\t{\n\t\t\t...(toolGroups.size ? { version: 8 as const, mode: context.mode } : { version: 4 as const }),\n\t\t\trenderer: toolGroups.size\n\t\t\t\t? CONTEXT_TOOL_SUMMARY_RENDERER\n\t\t\t\t: context.selectedSkills?.length\n\t\t\t\t\t? CONTEXT_SKILL_EPOCH_RENDERER\n\t\t\t\t\t: CONTEXT_EPOCH_RENDERER,\n\t\t\t...(toolGroups.size ? { toolContinuations: context.toolContinuations } : {}),\n\t\t\t...(context.selectedSkills?.length ? { selectedSkills: context.selectedSkills } : {}),\n\t\t\tsource: context.source,\n\t\t\trepresentation: null,\n\t\t\tincludeSummary: true,\n\t\t\t...(toolGroups.size && publicWindow ? { publicWindow: true as const } : {}),\n\t\t\treplayContract:\n\t\t\t\tboundary || publicWindow ? \"message-groups\" : (context.checkpoint?.replayContract ?? \"complete-context\"),\n\t\t\t...(publicWindow\n\t\t\t\t? {\n\t\t\t\t\t\tcontinuation: {\n\t\t\t\t\t\t\tkind: \"harness-summary\" as const,\n\t\t\t\t\t\t\tpublicTailThrough: context.source,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t\tviews,\n\t\t\tresourceRevision: context.resourceRevision,\n\t\t\tliteralTailId: firstKeptEntryId,\n\t\t},\n\t\tmaxBytes,\n\t);\n}\n\ninterface CachedEntry {\n\trevision: string;\n\tentry: SessionEntry;\n}\n\ntype KnownManifest = Extract<ContextManifestPage, { selection: \"known\" }>;\n\n/** Exact active-context reconstruction. It never silently chooses a last-N transcript. */\nexport class CanonicalContextCompiler {\n\tprivate source?: SourceSnapshotRef;\n\tprivate entries = new Map<string, CachedEntry>();\n\tprivate sourceBytes = 0;\n\tprivate messageCount = 0;\n\tprivate taskFrame?: CompiledTaskFrame;\n\tprivate taskBoundary?: string;\n\n\t/** Membership in the last successful active-source cache, including explicitly omitted responses. */\n\thasActiveEntry(entryId: string): boolean {\n\t\treturn this.entries.has(entryId);\n\t}\n\n\tasync compile(\n\t\tview: SessionHistoryReadView,\n\t\tlimits: CanonicalContextLimits,\n\t\tomittedAssistantIds: ReadonlySet<string> = new Set(),\n\t\tframeOptions: Partial<TaskFrameLimits> = {},\n\t\tresourceCapture?: OwnedResourceCapture,\n\t\tinitialContextMode: ContextMode = \"on\",\n\t\tallowPendingToolPublic = false,\n\t\tpurpose: \"request\" | \"read\" = \"request\",\n\t): Promise<AgentMessage[]> {\n\t\tconst frameLimits = taskFrameLimits(frameOptions);\n\t\tconst previousSource = this.source;\n\t\tconst previousFrame = this.taskFrame;\n\t\tconst previousBoundary = this.taskBoundary;\n\t\tconst omitted = new Set(omittedAssistantIds);\n\t\tconst { maxMessages, maxSourceBytes } = limits;\n\t\tif (\n\t\t\t!Number.isSafeInteger(maxMessages) ||\n\t\t\tmaxMessages <= 0 ||\n\t\t\t!Number.isSafeInteger(maxSourceBytes) ||\n\t\t\tmaxSourceBytes <= 0\n\t\t)\n\t\t\tthrow new Error(\"Invalid canonical context limits\");\n\t\tif (\n\t\t\tthis.source?.sessionId !== view.source.sessionId ||\n\t\t\tthis.source?.sessionFile !== view.source.sessionFile ||\n\t\t\tthis.messageCount > maxMessages ||\n\t\t\tthis.sourceBytes > maxSourceBytes\n\t\t) {\n\t\t\tthis.entries.clear();\n\t\t\tthis.sourceBytes = 0;\n\t\t\tthis.messageCount = 0;\n\t\t}\n\t\tlet first: KnownManifest | undefined;\n\t\tlet cursor: ContextManifestCursor | undefined;\n\t\tlet expected = 0;\n\t\tlet sourceBytes = 0;\n\t\tconst refs: ContextRef[] = [];\n\t\tconst sourceOrder = new Map<string, number>();\n\t\tconst countBytes = (ref: Pick<ContextRef, \"locator\">) => {\n\t\t\tsourceBytes += ref.locator.length;\n\t\t\tif (sourceBytes > maxSourceBytes) throw new Error(\"Canonical context source byte budget exceeded\");\n\t\t};\n\t\tfor (;;) {\n\t\t\tconst page = await view.contextManifest({ cursor, limit: 128 });\n\t\t\tif (page.selection !== \"known\") throw new Error(`Canonical context selection is ${page.selection}`);\n\t\t\tif (!first) {\n\t\t\t\tfirst = page;\n\t\t\t\tif (page.activeMessageCount + (page.summaryRef ? 1 : 0) > maxMessages)\n\t\t\t\t\tthrow new Error(\"Canonical context message budget exceeded\");\n\t\t\t\texpected = page.activeBase + 1;\n\t\t\t\tif (page.summaryRef) countBytes(page.summaryRef);\n\t\t\t} else if (\n\t\t\t\tpage.activeBase !== first.activeBase ||\n\t\t\t\tpage.activeMessageCount !== first.activeMessageCount ||\n\t\t\t\tpage.retainedMessageCount !== first.retainedMessageCount ||\n\t\t\t\tpage.summaryRef?.entryId !== first.summaryRef?.entryId ||\n\t\t\t\tpage.summaryRef?.revision !== first.summaryRef?.revision\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Canonical context manifest changed during its captured read\");\n\t\t\t}\n\t\t\tfor (const ref of page.refs) {\n\t\t\t\tif (ref.ordinal !== expected++) throw new Error(\"Canonical context manifest skipped an active message\");\n\t\t\t\tcountBytes(ref);\n\t\t\t\trefs.push(ref);\n\t\t\t\tsourceOrder.set(ref.entryId, ref.sequence);\n\t\t\t}\n\t\t\tif (!page.nextCursor) break;\n\t\t\tif (!page.refs.length || page.nextCursor.nextOrdinal !== expected)\n\t\t\t\tthrow new Error(\"Canonical context manifest did not advance\");\n\t\t\tcursor = page.nextCursor;\n\t\t}\n\t\tif (refs.length !== first.activeMessageCount) throw new Error(\"Canonical context manifest is incomplete\");\n\n\t\tconst next = new Map<string, CachedEntry>();\n\t\tconst hydrate = async (\n\t\t\tref: ContextRef | ContextUpdateRef,\n\t\t\ttarget?: ContextUpdateTarget,\n\t\t\treadView: SessionHistoryReadView = view,\n\t\t): Promise<SessionEntry> => {\n\t\t\tconst cached = this.entries.get(ref.entryId);\n\t\t\tif (cached?.revision === ref.revision) {\n\t\t\t\tnext.set(ref.entryId, cached);\n\t\t\t\treturn cached.entry;\n\t\t\t}\n\t\t\tconst fragments: string[] = [];\n\t\t\tlet offset = 0;\n\t\t\tlet part = target\n\t\t\t\t? await readView.readContextUpdatePayload(ref.entryId, target)\n\t\t\t\t: await readView.readPayload(ref.entryId);\n\t\t\tfor (;;) {\n\t\t\t\tif (!part || part.byteOffset !== offset || part.byteLength <= 0)\n\t\t\t\t\tthrow new Error(\"Canonical context payload is unavailable or incomplete\");\n\t\t\t\toffset += part.byteLength;\n\t\t\t\tif (offset > ref.locator.length) throw new Error(\"Canonical context payload exceeds its source locator\");\n\t\t\t\tfragments.push(part.text);\n\t\t\t\tif (!part.nextCursor) break;\n\t\t\t\tpart = target\n\t\t\t\t\t? await readView.readContextUpdatePayload(ref.entryId, target, { cursor: part.nextCursor })\n\t\t\t\t\t: await readView.readPayload(ref.entryId, { cursor: part.nextCursor });\n\t\t\t}\n\t\t\tconst value: unknown = JSON.parse(fragments.join(\"\"));\n\t\t\tif (\n\t\t\t\t!value ||\n\t\t\t\ttypeof value !== \"object\" ||\n\t\t\t\t!(\"id\" in value) ||\n\t\t\t\tvalue.id !== ref.entryId ||\n\t\t\t\t!(\"type\" in value) ||\n\t\t\t\tvalue.type !== ref.kind\n\t\t\t)\n\t\t\t\tthrow new Error(\"Canonical context payload does not match its source reference\");\n\t\t\tconst entry = value as SessionEntry;\n\t\t\tnext.set(ref.entryId, { revision: ref.revision, entry });\n\t\t\treturn entry;\n\t\t};\n\t\tlet checkpoint: ContextEpochCheckpoint | undefined;\n\t\tlet summaryEntry: SessionEntry | undefined;\n\t\tif (first.summaryRef) {\n\t\t\tsummaryEntry = await hydrate(first.summaryRef);\n\t\t\tif (summaryEntry.type !== \"compaction\") throw new Error(\"Canonical context summary has the wrong source kind\");\n\t\t\tif (\n\t\t\t\tsummaryEntry.details &&\n\t\t\t\ttypeof summaryEntry.details === \"object\" &&\n\t\t\t\tCONTEXT_EPOCH_DETAIL in summaryEntry.details\n\t\t\t) {\n\t\t\t\tconst source = await view.get(first.summaryRef.entryId);\n\t\t\t\tif (source?.qualification !== \"native-context-epoch\" || source.retention === \"retained-import\")\n\t\t\t\t\tthrow new Error(\"Context epoch checkpoint is not qualified on this source\");\n\t\t\t\tcheckpoint = readContextEpoch(summaryEntry.details, maxSourceBytes);\n\t\t\t\tif (\n\t\t\t\t\t!checkpoint ||\n\t\t\t\t\tcheckpoint.literalTailId !== summaryEntry.firstKeptEntryId ||\n\t\t\t\t\tcheckpoint.views.length + first.activeMessageCount > maxMessages\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Context epoch checkpoint does not match its retained boundary\");\n\t\t\t}\n\t\t}\n\t\tconst mode = contextEpochMode(checkpoint, initialContextMode);\n\t\tconst selectedSkills = new Map((checkpoint?.selectedSkills ?? []).map((skill) => [skill.name, skill]));\n\t\tfor (const skill of selectedSkills.values()) {\n\t\t\tif (!view.atSnapshot) throw new Error(\"Selected skill epoch requires its original prefix\");\n\t\t\tconst prefix = await view.atSnapshot(skill.view.source);\n\t\t\tconst actual = await prefix.get(skill.view.ref.entryId);\n\t\t\tif (\n\t\t\t\t!actual ||\n\t\t\t\tactual.kind !== skill.view.ref.kind ||\n\t\t\t\t![\"custom_message\", \"custom\"].includes(actual.kind) ||\n\t\t\t\tactual.qualification !== \"native-recovery\" ||\n\t\t\t\tactual.revision !== skill.view.ref.revision ||\n\t\t\t\tactual.sequence !== skill.view.ref.sequence ||\n\t\t\t\tJSON.stringify(actual.locator) !== JSON.stringify(skill.view.ref.locator) ||\n\t\t\t\tskill.view.sourceRevision !== JSON.stringify([actual.revision])\n\t\t\t)\n\t\t\t\tthrow new Error(\"Selected skill epoch source is unavailable\");\n\t\t}\n\t\tconst toolSourceIds = new Set(\n\t\t\tcheckpoint?.toolContinuations?.flatMap((group) => [\n\t\t\t\tgroup.assistantEntryId,\n\t\t\t\t...group.calls.flatMap((call) => (call.result ? [call.result.id] : [])),\n\t\t\t]),\n\t\t);\n\t\tconst publicTail = checkpoint?.continuation?.publicTailThrough;\n\t\tif (publicTail) {\n\t\t\tif (!view.atSnapshot) throw new Error(\"Public summary transition requires its captured source\");\n\t\t\tawait view.atSnapshot(publicTail);\n\t\t}\n\t\tlet publicBytes = 0;\n\t\tconst boundary = JSON.stringify([first.summaryRef?.entryId ?? null, first.summaryRef?.revision ?? null]);\n\t\tlet resetFrame =\n\t\t\tpreviousSource?.sessionId !== view.source.sessionId ||\n\t\t\tpreviousSource?.sessionFile !== view.source.sessionFile ||\n\t\t\tpreviousBoundary !== boundary ||\n\t\t\t(previousSource !== undefined && previousSource.sourceSequence > view.source.sourceSequence);\n\t\tif (!resetFrame && previousFrame && previousSource?.leafId && previousSource.leafId !== view.source.leafId)\n\t\t\tresetFrame = !(await view.get(previousSource.leafId));\n\t\tconst tasks =\n\t\t\tmode === \"off\"\n\t\t\t\t? undefined\n\t\t\t\t: await readTaskStateFromView(view, {\n\t\t\t\t\t\tmaxItems: maxMessages,\n\t\t\t\t\t\tmaxSourceBytes,\n\t\t\t\t\t\tmaxViewBytes: maxSourceBytes,\n\t\t\t\t\t});\n\t\tlet taskSequence = -1;\n\t\tfor (const { event } of tasks?.items ?? []) {\n\t\t\tif (event.source.sequence === taskSequence) continue;\n\t\t\ttaskSequence = event.source.sequence;\n\t\t\t// The task reader has already required an exact locator for every represented frame.\n\t\t\tcountBytes({ locator: event.source.locator! });\n\t\t}\n\t\tconst referenceFrame = resetFrame ? checkpoint?.taskFrame : previousFrame;\n\t\tlet taskFrame = tasks ? compileTaskFrame(tasks, frameLimits, referenceFrame) : undefined;\n\t\tconst resource =\n\t\t\tmode === \"on\" && resourceCapture && (resourceCapture.enabled || checkpoint)\n\t\t\t\t? renderResourceView(resourceCapture)\n\t\t\t\t: undefined;\n\t\tif (resource) {\n\t\t\tsourceBytes += resource.bytes;\n\t\t\tif (sourceBytes > maxSourceBytes) throw new Error(\"Canonical context source byte budget exceeded\");\n\t\t}\n\t\tconst messageCount =\n\t\t\tfirst.activeMessageCount +\n\t\t\t(checkpoint ? checkpoint.views.length + (checkpoint.includeSummary ? 1 : 0) : first.summaryRef ? 1 : 0) +\n\t\t\t(taskFrame?.messages.length ?? 0) +\n\t\t\t(resource ? 1 : 0);\n\t\tif (messageCount > maxMessages) throw new Error(\"Canonical context message budget exceeded\");\n\n\t\tconst messages: AgentMessage[] = [];\n\t\tconst renderedMessages = new Map<AgentMessage, AgentMessage>();\n\t\tconst literalSources = new Map<AgentMessage, string>();\n\t\tconst unitSources = new Map<AgentMessage, ViewUnit>();\n\t\tconst epochReferences = new Map<AgentMessage, EpochViewReference>();\n\t\tconst sourceUnit = (ref: ContextRef, kind: ViewUnit[\"kind\"]): ViewUnit => ({\n\t\t\tid: JSON.stringify([view.source.sessionId, view.source.sessionFile, ref.entryId]),\n\t\t\tsourceRevision: ref.revision,\n\t\t\tkind,\n\t\t\texactSources: [ref.entryId],\n\t\t\trequiredVisibleDependencies: [],\n\t\t\tauthority:\n\t\t\t\tkind === \"recovery\"\n\t\t\t\t\t? \"tool-data\"\n\t\t\t\t\t: ref.authority === \"user\"\n\t\t\t\t\t\t? \"user\"\n\t\t\t\t\t\t: ref.authority === \"assistant\"\n\t\t\t\t\t\t\t? \"assistant-public\"\n\t\t\t\t\t\t\t: ref.authority === \"runtime\"\n\t\t\t\t\t\t\t\t? \"tool-data\"\n\t\t\t\t\t\t\t\t: \"unrecorded\",\n\t\t\ttokenEstimate: null,\n\t\t\timmutableWithinEpoch: true,\n\t\t});\n\t\tconst addSummary = async (ref: ContextRef, readView: SessionHistoryReadView, retainedMessageCount: number) => {\n\t\t\tconst summary = await hydrate(ref, undefined, readView);\n\t\t\tif (summary.type !== \"compaction\") throw new Error(\"Canonical context summary has the wrong source kind\");\n\t\t\tconst message = createCompactionSummaryMessage(\n\t\t\t\tsummary.summary,\n\t\t\t\tsummary.tokensBefore,\n\t\t\t\tsummary.timestamp,\n\t\t\t\tsummary.customInstructions,\n\t\t\t\tretainedMessageCount,\n\t\t\t);\n\t\t\tmessages.push(message);\n\t\t\tliteralSources.set(message, ref.entryId);\n\t\t\tunitSources.set(message, sourceUnit(ref, \"fixed-view\"));\n\t\t\tepochReferences.set(message, {\n\t\t\t\tsource: readView.source,\n\t\t\t\tref,\n\t\t\t\tsourceRevision: ref.revision,\n\t\t\t\tretainedMessageCount,\n\t\t\t});\n\t\t\tsourceOrder.set(ref.entryId, -1);\n\t\t};\n\t\tif (first.summaryRef && (!checkpoint || checkpoint.includeSummary))\n\t\t\tawait addSummary(first.summaryRef, view, first.retainedMessageCount);\n\t\tconst addLiteral = async (ref: ContextRef, readView: SessionHistoryReadView, pinned?: EpochViewReference) => {\n\t\t\tconst entry = await hydrate(ref, undefined, readView);\n\t\t\t// Internal capture records never interrupt a native assistant/tool-result group.\n\t\t\t// Retained records remain recoverable data, but cannot mint a new selection.\n\t\t\tconst skill = ref.qualification === \"native-recovery\" ? selectedSkillCapture(entry) : undefined;\n\t\t\tif (skill) {\n\t\t\t\tif (\n\t\t\t\t\tskill.producer === \"model\" &&\n\t\t\t\t\tisNativeSkillSelection(ref) &&\n\t\t\t\t\t(!checkpoint || ref.sequence > checkpoint.source.sourceSequence)\n\t\t\t\t) {\n\t\t\t\t\tselectedSkills.set(skill.descriptor.name, {\n\t\t\t\t\t\tname: skill.descriptor.name,\n\t\t\t\t\t\tview: {\n\t\t\t\t\t\t\tsource: view.source,\n\t\t\t\t\t\t\tref: { ...ref, kind: \"custom_message\" },\n\t\t\t\t\t\t\tsourceRevision: JSON.stringify([ref.revision]),\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst origin = entry.type === \"message\" || entry.type === \"custom_message\" ? entry.nativeOrigin : undefined;\n\t\t\tif (\n\t\t\t\tref.qualification === \"native-admission\" &&\n\t\t\t\tref.retention !== \"retained-import\" &&\n\t\t\t\torigin?.kind === \"input\" &&\n\t\t\t\torigin.recordRole === \"primary\" &&\n\t\t\t\torigin.selectedSkillRef &&\n\t\t\t\t(!checkpoint || ref.sequence > checkpoint.source.sourceSequence) &&\n\t\t\t\t![...selectedSkills.values()].some((skill) => skill.view.ref.entryId === origin.selectedSkillRef?.entryId)\n\t\t\t) {\n\t\t\t\tif (\n\t\t\t\t\torigin.selectedSkillRef.sessionId !== view.source.sessionId ||\n\t\t\t\t\torigin.selectedSkillRef.sessionFile !== view.source.sessionFile\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Admitted skill selection belongs to another source\");\n\t\t\t\tconst actual = await view.get(origin.selectedSkillRef.entryId);\n\t\t\t\tif (\n\t\t\t\t\t!actual ||\n\t\t\t\t\t(actual.kind !== \"custom\" && actual.kind !== \"custom_message\") ||\n\t\t\t\t\tactual.qualification !== \"native-recovery\"\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Admitted input selected skill source is unavailable\");\n\t\t\t\tcountBytes(actual);\n\t\t\t\tconst captured = await hydrateCapturedHistoryEntry(actual, actual.locator.length, view.readPayload);\n\t\t\t\tconst selected = captured ? selectedSkillCapture(captured.entry) : undefined;\n\t\t\t\tif (!selected) throw new Error(\"Admitted input has no captured skill version\");\n\t\t\t\tselectedSkills.set(selected.descriptor.name, {\n\t\t\t\t\tname: selected.descriptor.name,\n\t\t\t\t\tview: {\n\t\t\t\t\t\tsource: view.source,\n\t\t\t\t\t\tsourceRevision: JSON.stringify([actual.revision]),\n\t\t\t\t\t\tref: {\n\t\t\t\t\t\t\tentryId: actual.id,\n\t\t\t\t\t\t\tsequence: actual.sequence,\n\t\t\t\t\t\t\tkind: actual.kind,\n\t\t\t\t\t\t\tlocator: actual.locator,\n\t\t\t\t\t\t\trevision: actual.revision,\n\t\t\t\t\t\t\tauthority: actual.authority,\n\t\t\t\t\t\t\tqualification: actual.qualification,\n\t\t\t\t\t\t\tretention: actual.retention,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst original = sessionEntryMessage(entry);\n\t\t\tif (!original) throw new Error(\"Canonical context reference is not a visible context entry\");\n\t\t\t// These IDs come from actual native retry controls, not inferred transcript membership or stop reasons.\n\t\t\tif (original.role === \"assistant\" && omitted.has(ref.entryId)) return;\n\t\t\t// Neither canonical updates nor replaceable transforms may mutate cached source entries.\n\t\t\tconst message = structuredClone(original);\n\t\t\tconst revisions = [ref.revision];\n\t\t\tconst exactSources = [ref.entryId];\n\t\t\tif (message.role === \"assistant\") {\n\t\t\t\tconst target: ContextUpdateTarget = { kind: \"assistant-usage\", targetId: ref.entryId };\n\t\t\t\tfor (const update of (await readView.contextUpdates(target)).refs) {\n\t\t\t\t\tcountBytes(update);\n\t\t\t\t\tconst entry = await hydrate(update, target, readView);\n\t\t\t\t\trevisions.push(update.revision);\n\t\t\t\t\texactSources.push(update.entryId);\n\t\t\t\t\tif (entry.type !== \"child_usage_attributed\") throw new Error(\"Canonical usage update kind mismatch\");\n\t\t\t\t\tmessage.usage = cloneUsage(entry.aggregateUsage);\n\t\t\t\t}\n\t\t\t} else if (message.role === \"toolResult\" && message.toolName === \"ipython\") {\n\t\t\t\tconst target: ContextUpdateTarget = { kind: \"ipython-sent-message\", toolCallId: message.toolCallId };\n\t\t\t\tfor (const update of (await readView.contextUpdates(target)).refs) {\n\t\t\t\t\tcountBytes(update); // Charge each application, even when the source record is cached.\n\t\t\t\t\tconst entry = await hydrate(update, target, readView);\n\t\t\t\t\trevisions.push(update.revision);\n\t\t\t\t\texactSources.push(update.entryId);\n\t\t\t\t\tconst sent = entry.type === \"custom\" ? parsePersistedIpythonSentAgentMessage(entry.data) : undefined;\n\t\t\t\t\tif (!sent || sent.toolCallId !== message.toolCallId)\n\t\t\t\t\t\tthrow new Error(\"Canonical sent-message update mismatch\");\n\t\t\t\t\tappendSentAgentMessageToToolResult(message, message.toolCallId, sent.message);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst publicHistory =\n\t\t\t\t!toolSourceIds.has(ref.entryId) &&\n\t\t\t\t(pinned?.rendering === PUBLIC_CONTEXT_RENDERER ||\n\t\t\t\t\t(!pinned && publicTail !== undefined && ref.sequence <= publicTail.sourceSequence));\n\t\t\tconst rendered = publicHistory ? renderPublicHistory(message, ref.entryId, maxSourceBytes) : message;\n\t\t\tif (publicHistory) {\n\t\t\t\tpublicBytes += Buffer.byteLength(JSON.stringify(rendered), \"utf8\");\n\t\t\t\tif (publicBytes > maxSourceBytes) throw new Error(\"Public summary view byte budget exceeded\");\n\t\t\t}\n\t\t\tif (message.role === \"assistant\")\n\t\t\t\tmessageSources.set(rendered, {\n\t\t\t\t\tsessionId: view.source.sessionId,\n\t\t\t\t\tsessionFile: view.source.sessionFile,\n\t\t\t\t\tentryId: ref.entryId,\n\t\t\t\t});\n\t\t\tmessages.push(message);\n\t\t\trenderedMessages.set(message, rendered);\n\t\t\tliteralSources.set(rendered, ref.entryId);\n\t\t\tunitSources.set(rendered, {\n\t\t\t\t...sourceUnit(\n\t\t\t\t\tref,\n\t\t\t\t\tmessage.role === \"toolResult\" &&\n\t\t\t\t\t\tref.qualification === \"native-recovery\" &&\n\t\t\t\t\t\tref.retention !== \"retained-import\"\n\t\t\t\t\t\t? \"recovery\"\n\t\t\t\t\t\t: message.role === \"toolResult\" ||\n\t\t\t\t\t\t\t\t(message.role === \"assistant\" && message.content.some((part) => part.type === \"toolCall\"))\n\t\t\t\t\t\t\t? \"replay-group\"\n\t\t\t\t\t\t\t: \"literal\",\n\t\t\t\t),\n\t\t\t\tsourceRevision: JSON.stringify(rendered !== message ? [...revisions, PUBLIC_CONTEXT_RENDERER] : revisions),\n\t\t\t\texactSources,\n\t\t\t});\n\t\t\tconst revision = JSON.stringify(revisions);\n\t\t\tif (pinned && pinned.sourceRevision !== revision)\n\t\t\t\tthrow new Error(\"Context epoch view no longer matches its frozen source revisions\");\n\t\t\tif (pinned && unitSources.get(rendered)!.kind !== \"recovery\")\n\t\t\t\tunitSources.set(rendered, { ...unitSources.get(rendered)!, kind: \"fixed-view\" });\n\t\t\tepochReferences.set(rendered, {\n\t\t\t\tsource: readView.source,\n\t\t\t\tref,\n\t\t\t\tsourceRevision: revision,\n\t\t\t\t...(rendered !== message ? { rendering: PUBLIC_CONTEXT_RENDERER } : {}),\n\t\t\t});\n\t\t\tsourceOrder.set(ref.entryId, ref.sequence);\n\t\t};\n\t\tif (checkpoint) {\n\t\t\tif (!view.atSnapshot) throw new Error(\"Context epoch requires a captured native prefix reader\");\n\t\t\tconst prefixViews = new Map<string, SessionHistoryReadView>();\n\t\t\tconst seen = new Set<string>();\n\t\t\tfor (const pinned of checkpoint.views) {\n\t\t\t\tif (\n\t\t\t\t\tpinned.rendering !== undefined &&\n\t\t\t\t\t((pinned.rendering === PUBLIC_TOOL_CONTINUATION_RENDERER\n\t\t\t\t\t\t? checkpoint.version !== 6 && checkpoint.version !== 8\n\t\t\t\t\t\t: pinned.rendering !== PUBLIC_CONTEXT_RENDERER ||\n\t\t\t\t\t\t\t(checkpoint.version !== 3 &&\n\t\t\t\t\t\t\t\tcheckpoint.version !== 4 &&\n\t\t\t\t\t\t\t\tcheckpoint.version !== 5 &&\n\t\t\t\t\t\t\t\tcheckpoint.version !== 6 &&\n\t\t\t\t\t\t\t\tcheckpoint.version !== 8)) ||\n\t\t\t\t\t\tpinned.ref.kind === \"compaction\")\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Unsupported context epoch view rendering\");\n\t\t\t\tif (seen.has(pinned.ref.entryId) || refs.some((ref) => ref.entryId === pinned.ref.entryId))\n\t\t\t\t\tthrow new Error(\"Context epoch view overlaps its literal tail\");\n\t\t\t\tseen.add(pinned.ref.entryId);\n\t\t\t\tcountBytes(pinned.ref);\n\t\t\t\tconst key = JSON.stringify(pinned.source);\n\t\t\t\tlet prefix = prefixViews.get(key);\n\t\t\t\tif (!prefix) {\n\t\t\t\t\tprefix = await view.atSnapshot(pinned.source);\n\t\t\t\t\tprefixViews.set(key, prefix);\n\t\t\t\t}\n\t\t\t\tconst actual = await prefix.get(pinned.ref.entryId);\n\t\t\t\tif (\n\t\t\t\t\t!actual ||\n\t\t\t\t\tactual.revision !== pinned.ref.revision ||\n\t\t\t\t\tactual.kind !== pinned.ref.kind ||\n\t\t\t\t\tactual.sequence !== pinned.ref.sequence ||\n\t\t\t\t\tJSON.stringify(actual.locator) !== JSON.stringify(pinned.ref.locator)\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Context epoch view source is unavailable\");\n\t\t\t\tif (pinned.ref.kind === \"compaction\") {\n\t\t\t\t\tif (pinned.retainedMessageCount === undefined)\n\t\t\t\t\t\tthrow new Error(\"Context epoch summary count is unavailable\");\n\t\t\t\t\tawait addSummary(pinned.ref, prefix, pinned.retainedMessageCount);\n\t\t\t\t} else await addLiteral(pinned.ref, prefix, pinned);\n\t\t\t}\n\t\t}\n\t\tfor (const ref of refs) await addLiteral(ref, view);\n\t\t// Public renderings hide tool roles; restore call order while the source roles are still available.\n\t\torderContextToolResults(messages);\n\t\tfor (const [index, message] of messages.entries()) messages[index] = renderedMessages.get(message) ?? message;\n\t\tif (taskFrame) {\n\t\t\tif (referenceFrame && taskFrame !== referenceFrame) {\n\t\t\t\tconst last = messages.at(-1);\n\t\t\t\tconst anchor = last\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tentryId: literalSources.get(last)!,\n\t\t\t\t\t\t\tside: last.role === \"user\" || last.role === \"custom\" ? (\"before\" as const) : (\"after\" as const),\n\t\t\t\t\t\t}\n\t\t\t\t\t: null;\n\t\t\t\ttaskFrame = { ...taskFrame, anchors: [...taskFrame.anchors.slice(0, -1), anchor] };\n\t\t\t}\n\t\t\tconst [base, ...revisions] = structuredClone(taskFrame.messages);\n\t\t\tconst frames = [base, ...revisions];\n\t\t\tconst frameIds = frames.map((_, index) => JSON.stringify([\"task-frame\", taskFrame!.origins[index], index]));\n\t\t\tfor (const [index, frame] of frames.entries()) {\n\t\t\t\tunitSources.set(frame, {\n\t\t\t\t\tid: frameIds[index],\n\t\t\t\t\tsourceRevision: frameIds[index],\n\t\t\t\t\tkind: \"task-frame\",\n\t\t\t\t\texactSources: [JSON.stringify(taskFrame.origins[index])],\n\t\t\t\t\trequiredVisibleDependencies: index ? [frameIds[index - 1]] : [],\n\t\t\t\t\tauthority: \"tool-data\",\n\t\t\t\t\ttokenEstimate: null,\n\t\t\t\t\timmutableWithinEpoch: true,\n\t\t\t\t});\n\t\t\t}\n\t\t\tfor (const anchor of taskFrame.anchors) {\n\t\t\t\tif (!anchor || sourceOrder.has(anchor.entryId)) continue;\n\t\t\t\tconst origin = await view.get(anchor.entryId);\n\t\t\t\tif (!origin) throw new Error(\"Task frame insertion source is unavailable\");\n\t\t\t\tsourceOrder.set(anchor.entryId, origin.sequence);\n\t\t\t}\n\t\t\tconst positions = new Map(messages.map((message, index) => [literalSources.get(message)!, index]));\n\t\t\tconst slots = new Map<number, AgentMessage[]>();\n\t\t\tfor (const [index, revision] of revisions.entries()) {\n\t\t\t\tconst anchor = taskFrame.anchors[index];\n\t\t\t\tlet at = 0;\n\t\t\t\tif (anchor) {\n\t\t\t\t\tconst position = positions.get(anchor.entryId);\n\t\t\t\t\tif (position !== undefined) at = position + (anchor.side === \"after\" ? 1 : 0);\n\t\t\t\t\telse {\n\t\t\t\t\t\t// A later retry may omit that assistant. Keep its source slot, not the newest input slot.\n\t\t\t\t\t\tconst ordinal = sourceOrder.get(anchor.entryId);\n\t\t\t\t\t\tif (ordinal === undefined) throw new Error(\"Task frame insertion source is unavailable\");\n\t\t\t\t\t\tat = messages.findIndex((message) => sourceOrder.get(literalSources.get(message)!)! > ordinal);\n\t\t\t\t\t\tif (at < 0) at = messages.length;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst group = slots.get(at) ?? [];\n\t\t\t\tgroup.push(revision);\n\t\t\t\tslots.set(at, group);\n\t\t\t}\n\t\t\tconst literal = messages.splice(0);\n\t\t\tmessages.push(base);\n\t\t\tfor (let at = 0; at <= literal.length; at++) {\n\t\t\t\tmessages.push(...(slots.get(at) ?? []));\n\t\t\t\tif (at < literal.length) messages.push(literal[at]);\n\t\t\t}\n\t\t}\n\t\tif (resource) {\n\t\t\t// Current owned display is regenerated; a stored acceptance marker is never a live view.\n\t\t\tconst at = messages[0] && unitSources.get(messages[0])?.kind === \"task-frame\" ? 1 : 0;\n\t\t\tmessages.splice(at, 0, resource.message);\n\t\t\tunitSources.set(resource.message, resource.unit);\n\t\t}\n\t\tif (selectedSkills.size) {\n\t\t\tconst selections = [...selectedSkills.values()];\n\t\t\tconst content = `Selected Skill versions (canonical source references):\\n${JSON.stringify(\n\t\t\t\tselections.map((skill) => ({\n\t\t\t\t\tname: skill.name,\n\t\t\t\t\tref: skill.view.ref.entryId,\n\t\t\t\t\trevision: skill.view.ref.revision,\n\t\t\t\t\tsourceSessionId: skill.view.source.sessionId,\n\t\t\t\t})),\n\t\t\t)}`;\n\t\t\tconst message = createCustomMessage(\n\t\t\t\t\"base-context-selected-skill-versions\",\n\t\t\t\tcontent,\n\t\t\t\tfalse,\n\t\t\t\tundefined,\n\t\t\t\t\"1970-01-01T00:00:00.000Z\",\n\t\t\t);\n\t\t\tmessages.unshift(message);\n\t\t\tunitSources.set(message, {\n\t\t\t\tid: \"native-selected-skill-versions\",\n\t\t\t\tsourceRevision: JSON.stringify(selections),\n\t\t\t\tkind: \"literal\",\n\t\t\t\texactSources: selections.map((skill) => skill.view.ref.entryId),\n\t\t\t\trequiredVisibleDependencies: [],\n\t\t\t\tauthority: \"tool-data\",\n\t\t\t\ttokenEstimate: null,\n\t\t\t\timmutableWithinEpoch: true,\n\t\t\t});\n\t\t}\n\t\tconst unitLimits = {\n\t\t\tmaxUnits: maxMessages,\n\t\t\tmaxDependencies: Math.min(Number.MAX_SAFE_INTEGER, maxMessages * 4),\n\t\t\tmaxMetadataBytes: maxSourceBytes,\n\t\t};\n\t\tconst sourceUnits = messages.map((message) => {\n\t\t\tconst unit = unitSources.get(message);\n\t\t\tif (!unit) throw new Error(\"Compiled view unit has no captured source\");\n\t\t\treturn unit;\n\t\t});\n\t\tif (selectedSkills.size) {\n\t\t\tconst tailIndex = messages\n\t\t\t\t.map((message, index) => (epochReferences.has(message) ? index : -1))\n\t\t\t\t.filter((index) => index >= 0)\n\t\t\t\t.at(-1);\n\t\t\tif (tailIndex !== undefined) {\n\t\t\t\tconst tail = sourceUnits[tailIndex];\n\t\t\t\tsourceUnits[tailIndex] = {\n\t\t\t\t\t...tail,\n\t\t\t\t\trequiredVisibleDependencies: [\n\t\t\t\t\t\t...new Set([...tail.requiredVisibleDependencies, \"native-selected-skill-versions\"]),\n\t\t\t\t\t],\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tconst replayUnits = bindMessageReplayUnits(messages, sourceUnits, unitLimits);\n\t\tconst frozenGroups = checkpoint?.toolContinuations ?? [];\n\t\tconst candidates = messages.flatMap((message, index) => {\n\t\t\tif (message.role !== \"assistant\") return [];\n\t\t\tconst reference = epochReferences.get(message);\n\t\t\tconst prior = frozenGroups.find((group) => group.assistantEntryId === reference?.ref.entryId);\n\t\t\tif (!prior && !replayUnits[index].unavailableDependencies?.some((id) => id.startsWith(\"tool-result:\")))\n\t\t\t\treturn [];\n\t\t\tif (!reference || reference.ref.retention === \"retained-import\")\n\t\t\t\tthrow new Error(\"Tool continuation requires its original assistant source\");\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tmessage,\n\t\t\t\t\tindex,\n\t\t\t\t\treference,\n\t\t\t\t\tprior,\n\t\t\t\t\tintents: new Map<number, Awaited<ReturnType<typeof hydrateCapturedHistoryEntry>>>(),\n\t\t\t\t},\n\t\t\t];\n\t\t});\n\t\tif (frozenGroups.length !== candidates.filter((candidate) => candidate.prior).length)\n\t\t\tthrow new Error(\"Committed tool continuation lost its original group\");\n\t\tif (purpose === \"request\" && candidates.length && (!allowPendingToolPublic || mode === \"off\"))\n\t\t\tthrow new Error(\"Tool continuation requires an enabled native public request boundary\");\n\t\tconst readToolEvidence = async (metadata: IndexedSourceEvent) => {\n\t\t\tconst cached = next.get(metadata.id);\n\t\t\tif (cached?.revision === metadata.revision) return { entry: cached.entry, source: metadata };\n\t\t\tcountBytes(metadata);\n\t\t\treturn hydrateCapturedHistoryEntry(metadata, maxSourceBytes, view.readPayload);\n\t\t};\n\t\tconst acceptIntent = async (metadata: IndexedSourceEvent) => {\n\t\t\tif (\n\t\t\t\tmetadata.kind !== \"tool_intent\" ||\n\t\t\t\tmetadata.qualification !== \"native-tool-execution\" ||\n\t\t\t\tmetadata.retention === \"retained-import\"\n\t\t\t)\n\t\t\t\treturn;\n\t\t\tconst hydrated = await readToolEvidence(metadata);\n\t\t\tconst entry = hydrated.entry;\n\t\t\tif (\n\t\t\t\tentry.type !== \"tool_intent\" ||\n\t\t\t\tentry.assistant?.sessionId !== view.source.sessionId ||\n\t\t\t\tentry.assistant.sessionFile !== view.source.sessionFile\n\t\t\t)\n\t\t\t\treturn;\n\t\t\tconst candidate = candidates.find((item) => item.reference.ref.entryId === entry.assistant?.entryId);\n\t\t\tif (!candidate) return;\n\t\t\tconst invocation = entry.invocation;\n\t\t\tconst call = candidate.message.content.filter((part) => part.type === \"toolCall\")[invocation.sourceOrder];\n\t\t\tif (\n\t\t\t\t!Number.isSafeInteger(invocation.sourceOrder) ||\n\t\t\t\t!call ||\n\t\t\t\tcall.id !== invocation.toolCallId ||\n\t\t\t\tcall.name !== invocation.toolName ||\n\t\t\t\t!invocation.executionId ||\n\t\t\t\tentry.id !== `${invocation.executionId}:intent` ||\n\t\t\t\tmetadata.sequence <= candidate.reference.ref.sequence ||\n\t\t\t\tcandidate.intents.has(invocation.sourceOrder)\n\t\t\t)\n\t\t\t\tthrow new Error(\"Tool continuation has ambiguous original intent\");\n\t\t\tcandidate.intents.set(invocation.sourceOrder, hydrated);\n\t\t};\n\t\tfor (const candidate of candidates) {\n\t\t\tif (!candidate.prior) continue;\n\t\t\tif (!Array.isArray(candidate.prior.calls)) throw new Error(\"Invalid committed tool continuation\");\n\t\t\tfor (const call of candidate.prior.calls) {\n\t\t\t\tconst actual = await view.get(call.intent.id);\n\t\t\t\tif (!actual || actual.revision !== call.intent.revision || actual.sequence !== call.intent.sequence)\n\t\t\t\t\tthrow new Error(\"Committed tool intent is unavailable on this captured branch\");\n\t\t\t\tawait acceptIntent(actual);\n\t\t\t}\n\t\t}\n\t\tconst newGroups = candidates.filter((candidate) => !candidate.prior);\n\t\tif (newGroups.length) {\n\t\t\tlet after = Math.min(...newGroups.map((candidate) => candidate.reference.ref.sequence));\n\t\t\tlet scanned = 0;\n\t\t\tfor (;;) {\n\t\t\t\tconst page = await view.page(after, Math.min(128, maxMessages - scanned + 1));\n\t\t\t\tscanned += page.events.length;\n\t\t\t\tif (scanned > maxMessages) throw new Error(\"Tool continuation source item budget exceeded\");\n\t\t\t\tif (page.coverage !== \"complete\") throw new Error(\"Tool continuation source coverage is incomplete\");\n\t\t\t\tfor (const metadata of page.events) {\n\t\t\t\t\t// Frozen intent refs were already read exactly; do not count them twice as another execution.\n\t\t\t\t\tif (\n\t\t\t\t\t\t!candidates.some((candidate) => candidate.prior?.calls.some((call) => call.intent.id === metadata.id))\n\t\t\t\t\t)\n\t\t\t\t\t\tawait acceptIntent(metadata);\n\t\t\t\t}\n\t\t\t\tif (page.nextAfter === null) break;\n\t\t\t\tif (page.nextAfter <= after) throw new Error(\"Tool continuation source page did not advance\");\n\t\t\t\tafter = page.nextAfter;\n\t\t\t}\n\t\t}\n\t\tconst toolContinuations: ToolContinuationGroup[] = [];\n\t\tconst pendingPublicMessageGroups: number[][] = [];\n\t\tfor (const candidate of candidates) {\n\t\t\tconst toolCalls = candidate.message.content.filter((part) => part.type === \"toolCall\");\n\t\t\tif (\n\t\t\t\t!toolCalls.length ||\n\t\t\t\tcandidate.intents.size !== toolCalls.length ||\n\t\t\t\t(candidate.prior && candidate.prior.calls.length !== toolCalls.length)\n\t\t\t)\n\t\t\t\tthrow new Error(\"View-unit replay group is incomplete: original tool owner is unqualified\");\n\t\t\tconst members = [candidate.index];\n\t\t\tconst calls: ToolContinuationGroup[\"calls\"][number][] = [];\n\t\t\tfor (let order = 0; order < toolCalls.length; order++) {\n\t\t\t\tconst intent = candidate.intents.get(order)!;\n\t\t\t\tif (intent.entry.type !== \"tool_intent\") throw new Error(\"Invalid native tool intent\");\n\t\t\t\tconst invocation = intent.entry.invocation;\n\t\t\t\tconst original = candidate.prior?.calls[order];\n\t\t\t\tif (\n\t\t\t\t\toriginal &&\n\t\t\t\t\t(original.executionId !== invocation.executionId || original.intent.id !== intent.source.id)\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Committed tool execution identity changed\");\n\t\t\t\tconst actual = await view.get(invocation.executionId);\n\t\t\t\tlet outcome: ToolContinuationGroup[\"calls\"][number][\"outcome\"] = \"outcome_unknown\";\n\t\t\t\tif (actual) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tactual.kind !== \"message\" ||\n\t\t\t\t\t\tactual.retention === \"retained-import\" ||\n\t\t\t\t\t\t(actual.qualification !== \"native-tool-execution\" && actual.qualification !== \"native-recovery\") ||\n\t\t\t\t\t\tactual.sequence <= intent.source.sequence\n\t\t\t\t\t)\n\t\t\t\t\t\tthrow new Error(\"Tool outcome lacks its original finalized owner\");\n\t\t\t\t\tconst { entry } = await readToolEvidence(actual);\n\t\t\t\t\tif (\n\t\t\t\t\t\tentry.type !== \"message\" ||\n\t\t\t\t\t\tentry.message.role !== \"toolResult\" ||\n\t\t\t\t\t\tentry.execution?.executionId !== invocation.executionId ||\n\t\t\t\t\t\t!(\"invocationId\" in entry.execution) ||\n\t\t\t\t\t\tentry.execution.invocationId !== intent.source.id ||\n\t\t\t\t\t\tentry.execution.sourceOrder !== order ||\n\t\t\t\t\t\tentry.execution.toolCallId !== invocation.toolCallId ||\n\t\t\t\t\t\tentry.execution.toolName !== invocation.toolName ||\n\t\t\t\t\t\tentry.message.toolCallId !== invocation.toolCallId ||\n\t\t\t\t\t\tentry.message.toolName !== invocation.toolName ||\n\t\t\t\t\t\t![\"not_started\", \"completed\", \"failed\", \"outcome_unknown\"].includes(entry.execution.executionOutcome)\n\t\t\t\t\t)\n\t\t\t\t\t\tthrow new Error(\"Tool outcome does not match its original captured intent\");\n\t\t\t\t\toutcome = entry.execution.executionOutcome;\n\t\t\t\t\tconst index = messages.findIndex((message) => {\n\t\t\t\t\t\tconst ref = epochReferences.get(message)?.ref;\n\t\t\t\t\t\treturn ref?.entryId === actual.id && ref.revision === actual.revision;\n\t\t\t\t\t});\n\t\t\t\t\tif (index <= candidate.index)\n\t\t\t\t\t\tthrow new Error(\"Finalized tool outcome is absent from its whole public group\");\n\t\t\t\t\tmembers.push(index);\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\toriginal?.result &&\n\t\t\t\t\t(!actual ||\n\t\t\t\t\t\toriginal.result.id !== actual.id ||\n\t\t\t\t\t\toriginal.result.sequence !== actual.sequence ||\n\t\t\t\t\t\toriginal.result.revision !== actual.revision)\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Committed finalized tool outcome is unavailable on this captured branch\");\n\t\t\t\tcalls.push({\n\t\t\t\t\texecutionId: invocation.executionId,\n\t\t\t\t\tintent: { id: intent.source.id, sequence: intent.source.sequence, revision: intent.source.revision },\n\t\t\t\t\toutcome,\n\t\t\t\t\t...(actual ? { result: { id: actual.id, sequence: actual.sequence, revision: actual.revision } } : {}),\n\t\t\t\t});\n\t\t\t}\n\t\t\ttoolContinuations.push({ assistantEntryId: candidate.reference.ref.entryId, calls });\n\t\t\tpendingPublicMessageGroups.push(members.sort((left, right) => left - right));\n\t\t}\n\t\tconst publicSourceIds = new Set(\n\t\t\tpendingPublicMessageGroups.flatMap((group) =>\n\t\t\t\tgroup.map((index) => epochReferences.get(messages[index])!.ref.entryId),\n\t\t\t),\n\t\t);\n\t\tif (\n\t\t\tcheckpoint?.views.some(\n\t\t\t\t(pinned) =>\n\t\t\t\t\tpinned.rendering === PUBLIC_TOOL_CONTINUATION_RENDERER && !publicSourceIds.has(pinned.ref.entryId),\n\t\t\t)\n\t\t)\n\t\t\tthrow new Error(\"Committed tool rendering has no matching whole-group recipe\");\n\t\tstringifyBoundedJson(toolContinuations, maxSourceBytes);\n\t\tconst units = pendingPublicMessageGroups.length\n\t\t\t? bindMessageReplayUnits(messages, sourceUnits, unitLimits, \"complete-context\", pendingPublicMessageGroups)\n\t\t\t: replayUnits;\n\t\tconst pendingMarkers = new Set(\n\t\t\tpendingPublicMessageGroups.map((group) => `public-tool-continuation:${units[group[0]].id}`),\n\t\t);\n\t\t// Check every ordinary dependency now. Return the original unadmittable units, not native replay permission.\n\t\tcloseViewSelection(\n\t\t\tunits.map((unit) => ({\n\t\t\t\t...unit,\n\t\t\t\tunavailableDependencies: unit.unavailableDependencies?.filter((id) => !pendingMarkers.has(id)),\n\t\t\t})),\n\t\t\tunits.map((unit) => unit.id),\n\t\t\tunitLimits,\n\t\t);\n\t\tconst closedUnits = units;\n\t\tconst messagesByUnit = new Map(units.map((unit, index) => [unit.id, messages[index]]));\n\t\tconst closedMessages = closedUnits.map((unit) => messagesByUnit.get(unit.id)!);\n\t\t// A frozen literal is immutable inside this epoch, not permanently mandatory at its next ACK boundary.\n\t\tconst selectionUnits = sourceUnits.map((unit, index): ViewUnit => {\n\t\t\tconst message = messages[index];\n\t\t\tif (unit.kind !== \"fixed-view\" || message.role !== \"assistant\") return unit;\n\t\t\treturn {\n\t\t\t\t...unit,\n\t\t\t\tkind: message.content.some((part) => part.type === \"toolCall\") ? \"replay-group\" : \"literal\",\n\t\t\t};\n\t\t});\n\t\tcompiledViewUnits.set(closedMessages, {\n\t\t\tunits: closedUnits,\n\t\t\tselection: {\n\t\t\t\tsource: { ...view.source },\n\t\t\t\tunits: selectionUnits,\n\t\t\t\tlimits: unitLimits,\n\t\t\t\t...(pendingPublicMessageGroups.length ? { pendingPublicMessageGroups } : {}),\n\t\t\t},\n\t\t});\n\t\tcompiledEpochContexts.set(closedMessages, {\n\t\t\t...(purpose === \"read\" ? { readOnly: true as const } : {}),\n\t\t\tmode,\n\t\t\tsource: { ...view.source },\n\t\t\tcheckpoint,\n\t\t\tcheckpointEntry:\n\t\t\t\tcheckpoint && first.summaryRef\n\t\t\t\t\t? { sessionId: view.source.sessionId, entryId: first.summaryRef.entryId }\n\t\t\t\t\t: undefined,\n\t\t\ttaskFrame,\n\t\t\tresourceRevision: resource?.revision,\n\t\t\treferences: closedMessages.map((message) => epochReferences.get(message) ?? null),\n\t\t\t...(selectedSkills.size ? { selectedSkills: [...selectedSkills.values()] } : {}),\n\t\t\t...(toolContinuations.length ? { toolContinuations } : {}),\n\t\t});\n\t\tthis.entries = next;\n\t\tthis.taskFrame = taskFrame;\n\t\tthis.taskBoundary = boundary;\n\t\tthis.source = view.source;\n\t\tthis.sourceBytes = sourceBytes;\n\t\tthis.messageCount = messageCount;\n\t\treturn purpose === \"read\" && pendingPublicMessageGroups.length\n\t\t\t? renderToolContinuationWindow(closedMessages).messages\n\t\t\t: closedMessages;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"canonical-context.js","sourceRoot":"","sources":["../../src/core/canonical-context.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage } from \"@ponythewhite/base-context-agent\";\nimport { stringifyBoundedJson } from \"./bounded-json.js\";\nimport {\n\tCONTEXT_EPOCH_DETAIL,\n\tCONTEXT_EPOCH_RENDERER,\n\tCONTEXT_POLICY_EPOCH_RENDERER,\n\tCONTEXT_SKILL_EPOCH_RENDERER,\n\tCONTEXT_TOOL_EPOCH_RENDERER,\n\tCONTEXT_TOOL_SUMMARY_RENDERER,\n\ttype ContextEpochCheckpoint,\n\ttype ContextMode,\n\ttype ContextReplayContract,\n\tcontextEpochMode,\n\ttype EpochViewReference,\n\treadContextEpoch,\n\tretainedContextRequestContract,\n\tsnapshotContextEpoch,\n\ttype ToolContinuationGroup,\n} from \"./context-epoch.js\";\nimport type {\n\tContextManifestCursor,\n\tContextManifestPage,\n\tContextRef,\n\tContextUpdateRef,\n\tContextUpdateTarget,\n\tIndexedSourceEvent,\n} from \"./history-index.js\";\nimport { createCompactionSummaryMessage, createCustomMessage } from \"./messages.js\";\nimport {\n\tPUBLIC_CONTEXT_RENDERER,\n\tPUBLIC_TOOL_CONTINUATION_RENDERER,\n\trenderPublicHistory,\n\trenderToolContinuation,\n} from \"./public-context.js\";\nimport type { ContextEpochEntryRef, SourceSnapshotRef } from \"./request-events.js\";\nimport { type OwnedResourceCapture, renderResourceView } from \"./resource-view.js\";\nimport { isNativeSkillSelection, type SelectedSkillReference, selectedSkillCapture } from \"./selected-skills.js\";\nimport { orderContextToolResults, sessionEntryMessage } from \"./session-context-messages.js\";\nimport {\n\tappendSentAgentMessageToToolResult,\n\tparsePersistedIpythonSentAgentMessage,\n} from \"./session-context-updates.js\";\nimport { hydrateCapturedHistoryEntry, type SessionHistoryReadView } from \"./session-history-index.js\";\nimport type { SessionEntry } from \"./session-manager.js\";\nimport { type CompiledTaskFrame, compileTaskFrame, type TaskFrameLimits, taskFrameLimits } from \"./task-frame.js\";\nimport { TaskStateReadCache } from \"./task-state-reader.js\";\nimport { cloneUsage } from \"./usage.js\";\nimport { bindMessageReplayUnits, closeViewSelection, type ViewUnit, type ViewUnitLimits } from \"./view-units.js\";\n\nexport interface CanonicalContextLimits {\n\tmaxMessages: number;\n\t/** Canonical frame bytes, not a tokenizer or an estimate of JavaScript heap size. */\n\tmaxSourceBytes: number;\n}\n\ninterface CanonicalMessageSource {\n\treadonly sessionId: string;\n\treadonly sessionFile: string | undefined;\n\treadonly entryId: string;\n}\n\nconst messageSources = new WeakMap<AgentMessage, CanonicalMessageSource>();\nexport interface CanonicalViewSelectionSource {\n\treadonly source: SourceSnapshotRef;\n\treadonly units: readonly ViewUnit[];\n\treadonly limits: ViewUnitLimits;\n\treadonly pendingPublicMessageGroups?: readonly (readonly number[])[];\n\t/** A new base or retained epoch must be ACKed before native transport, even without a token budget. */\n\treadonly requiresEpoch?: true;\n}\n\nconst compiledViewUnits = new WeakMap<\n\treadonly AgentMessage[],\n\t{\n\t\tunits: readonly ViewUnit[];\n\t\tselection: CanonicalViewSelectionSource;\n\t}\n>();\n\n/** Detached rendering metadata only; reading it never changes a compiler or epoch. */\nexport function getCanonicalViewUnits(messages: readonly AgentMessage[]): readonly ViewUnit[] | undefined {\n\tconst units = compiledViewUnits.get(messages)?.units;\n\treturn units ? structuredClone(units) : undefined;\n}\n\n/** Intrinsic dependencies for an explicitly supported native epoch boundary, never the default view policy. */\nexport function getCanonicalViewSelectionSource(\n\tmessages: readonly AgentMessage[],\n): CanonicalViewSelectionSource | undefined {\n\tconst selection = compiledViewUnits.get(messages)?.selection;\n\treturn selection ? structuredClone(selection) : undefined;\n}\n\n/** Correlate a detached compiled message with its captured source, without retaining its body. */\nexport function getCanonicalMessageSource(message: AgentMessage): CanonicalMessageSource | undefined {\n\tconst source = messageSources.get(message);\n\treturn source ? { ...source } : undefined;\n}\n\ninterface CompiledEpochContext {\n\t/** A captured observation or summary input never authorizes a MAIN epoch. */\n\treadonly readOnly?: true;\n\treadonly mode: ContextMode;\n\treadonly source: SourceSnapshotRef;\n\treadonly checkpoint?: ContextEpochCheckpoint;\n\treadonly checkpointEntry?: ContextEpochEntryRef;\n\treadonly selectedSkills?: readonly SelectedSkillReference[];\n\treadonly taskFrame?: CompiledTaskFrame;\n\treadonly taskFrameRebased?: true;\n\treadonly resourceRevision?: string;\n\treadonly references: readonly (EpochViewReference | null)[];\n\t/** Uncommitted public candidate plan; never a fabricated accepted checkpoint. */\n\treadonly continuation?: ContextEpochCheckpoint[\"continuation\"];\n\treadonly toolContinuations?: readonly ToolContinuationGroup[];\n}\nconst compiledEpochContexts = new WeakMap<readonly AgentMessage[], CompiledEpochContext>();\n\nexport function getCanonicalEpochContext(messages: readonly AgentMessage[]): CompiledEpochContext | undefined {\n\tconst context = compiledEpochContexts.get(messages);\n\treturn context ? structuredClone(context) : undefined;\n}\n\n/** Detach the request view while keeping its existing captured rendering metadata. */\nexport function captureCanonicalRequestMessages(messages: readonly AgentMessage[]): AgentMessage[] {\n\tconst views = compiledViewUnits.get(messages);\n\tconst epoch = compiledEpochContexts.get(messages);\n\tif (!views || !epoch || views.units.length !== messages.length || epoch.references.length !== messages.length)\n\t\tthrow new Error(\"Request view boundary requires compiled canonical messages\");\n\tconst captured = structuredClone([...messages]);\n\tcompiledViewUnits.set(captured, structuredClone(views));\n\tcompiledEpochContexts.set(captured, structuredClone(epoch));\n\tfor (const [index, message] of messages.entries()) {\n\t\tconst source = messageSources.get(message);\n\t\tif (source) messageSources.set(captured[index], { ...source });\n\t}\n\treturn captured;\n}\n\n/** Called only for the actual current adapter's mandatory whole-group public candidate. */\nexport function prepareToolContinuationWindow(messages: readonly AgentMessage[]): {\n\tmessages: AgentMessage[];\n\treplacements: readonly { messageIndex: number; text: string }[];\n} {\n\tif (compiledEpochContexts.get(messages)?.readOnly)\n\t\tthrow new Error(\"Read-only context cannot authorize a provider epoch\");\n\treturn renderToolContinuationWindow(messages);\n}\n\n/** Source-backed public facts shared by observations, summaries, and measured request candidates. */\nfunction renderToolContinuationWindow(messages: readonly AgentMessage[]): {\n\tmessages: AgentMessage[];\n\treplacements: readonly { messageIndex: number; text: string }[];\n} {\n\tconst captured = captureCanonicalRequestMessages(messages);\n\tconst views = compiledViewUnits.get(captured)!;\n\tconst epoch = compiledEpochContexts.get(captured)!;\n\tconst groups = views.selection.pendingPublicMessageGroups;\n\tif (!groups?.length || groups.length !== epoch.toolContinuations?.length)\n\t\tthrow new Error(\"Tool continuation requires its captured native source plan\");\n\tconst maxBytes = views.selection.limits.maxMetadataBytes;\n\tconst references = [...epoch.references];\n\tconst replacements: { messageIndex: number; text: string }[] = [];\n\tconst markers = new Set(groups.map((group) => `public-tool-continuation:${views.units[group[0]].id}`));\n\tconst renderedGroups = new Map<number, ToolContinuationGroup>();\n\tfor (const [groupIndex, members] of groups.entries()) {\n\t\tconst group = epoch.toolContinuations![groupIndex];\n\t\tif (references[members[0]]?.ref.entryId !== group.assistantEntryId)\n\t\t\tthrow new Error(\"Tool continuation original group changed\");\n\t\tfor (const index of members) {\n\t\t\tconst reference = references[index];\n\t\t\tif (!reference) throw new Error(\"Tool continuation source is unavailable\");\n\t\t\tconst original = captured[index];\n\t\t\tconst rendered = renderToolContinuation(original, reference.ref.entryId, epoch.source, group, maxBytes);\n\t\t\tconst source = messageSources.get(original);\n\t\t\tif (source) messageSources.set(rendered, source);\n\t\t\tcaptured[index] = rendered;\n\t\t\treferences[index] = { ...reference, rendering: PUBLIC_TOOL_CONTINUATION_RENDERER };\n\t\t\treplacements.push({ messageIndex: index, text: rendered.content });\n\t\t\trenderedGroups.set(index, group);\n\t\t}\n\t}\n\tstringifyBoundedJson(captured, maxBytes);\n\t// Reads need whole tool groups, not the unadmittable request's whole-context dependency star.\n\tconst units = epoch.readOnly\n\t\t? bindMessageReplayUnits(captured, views.selection.units, views.selection.limits, \"message-groups\", groups)\n\t\t: views.units;\n\tconst publicUnits = units.map(\n\t\t(unit, index): ViewUnit => ({\n\t\t\t...unit,\n\t\t\tsourceRevision: renderedGroups.has(index)\n\t\t\t\t? JSON.stringify([unit.sourceRevision, PUBLIC_TOOL_CONTINUATION_RENDERER, renderedGroups.get(index)])\n\t\t\t\t: unit.sourceRevision,\n\t\t\tunavailableDependencies: unit.unavailableDependencies?.filter((id) => !markers.has(id)),\n\t\t}),\n\t);\n\tcompiledViewUnits.set(captured, {\n\t\tunits: publicUnits,\n\t\tselection: { ...views.selection, units: publicUnits, pendingPublicMessageGroups: undefined },\n\t});\n\tcompiledEpochContexts.set(captured, { ...epoch, references });\n\treturn { messages: captured, replacements };\n}\n\n/** Deterministic public data only. The actual adapter must permit and accept this candidate. */\nexport function preparePublicContextWindow(\n\tmessages: readonly AgentMessage[],\n\tfirstMessageIndex = 0,\n):\n\t| {\n\t\t\tmessages: AgentMessage[];\n\t\t\treplacements: readonly { messageIndex: number; text: string }[];\n\t }\n\t| undefined {\n\tconst captured = captureCanonicalRequestMessages(messages);\n\tconst views = compiledViewUnits.get(captured)!;\n\tconst epoch = compiledEpochContexts.get(captured)!;\n\tconst maxBytes = views.selection.limits.maxMetadataBytes;\n\tconst references = [...epoch.references];\n\tconst replacements: { messageIndex: number; text: string }[] = [];\n\tfor (const [index, message] of captured.entries()) {\n\t\tif (index < firstMessageIndex || (message.role !== \"assistant\" && message.role !== \"toolResult\")) continue;\n\t\t// Public v1 has no media representation. Do not disturb an otherwise valid native request.\n\t\tif (message.content.some((part) => ![\"text\", \"toolCall\", \"thinking\"].includes(part.type))) return;\n\t\tconst reference = references[index];\n\t\tif (!reference) throw new Error(\"Public request view requires its captured source\");\n\t\tconst rendered = renderPublicHistory(message, reference.ref.entryId, maxBytes);\n\t\tif (rendered.role !== \"custom\" || typeof rendered.content !== \"string\")\n\t\t\tthrow new Error(\"Public request view has no standalone text\");\n\t\tconst source = messageSources.get(message);\n\t\tif (source) messageSources.set(rendered, source);\n\t\tcaptured[index] = rendered;\n\t\treferences[index] = { ...reference, rendering: PUBLIC_CONTEXT_RENDERER };\n\t\treplacements.push({ messageIndex: index, text: rendered.content });\n\t}\n\tif (!replacements.length) return;\n\tstringifyBoundedJson(captured, maxBytes);\n\tconst publicIndices = new Set(replacements.map((replacement) => replacement.messageIndex));\n\tconst renderedUnit = (unit: ViewUnit, index: number): ViewUnit =>\n\t\tpublicIndices.has(index)\n\t\t\t? { ...unit, sourceRevision: JSON.stringify([unit.sourceRevision, PUBLIC_CONTEXT_RENDERER]) }\n\t\t\t: unit;\n\tcompiledViewUnits.set(captured, {\n\t\tunits: views.units.map(renderedUnit),\n\t\tselection: { ...views.selection, units: views.selection.units.map(renderedUnit) },\n\t});\n\tcompiledEpochContexts.set(captured, {\n\t\t...epoch,\n\t\treferences,\n\t\tcontinuation: { kind: \"portable-checkpoint\", publicTailThrough: epoch.source },\n\t});\n\treturn { messages: captured, replacements };\n}\n\n/** Read mode only from the same qualified compaction owner used by the compiler. */\nexport async function readCanonicalContextMode(\n\tview: SessionHistoryReadView,\n\tmaxBytes: number,\n\tinitial: ContextMode,\n): Promise<ContextMode> {\n\tconst manifest = await view.contextManifest({ limit: 1 });\n\tif (manifest.selection !== \"known\") throw new Error(\"Context mode source is unavailable\");\n\tif (!manifest.summaryRef) return initial;\n\tconst metadata = await view.get(manifest.summaryRef.entryId);\n\tif (!metadata) throw new Error(\"Context mode checkpoint is unavailable\");\n\tconst hydrated = await hydrateCapturedHistoryEntry(metadata, maxBytes, view.readPayload);\n\tif (!hydrated || hydrated.entry.type !== \"compaction\") throw new Error(\"Context mode checkpoint is unavailable\");\n\tconst details = hydrated.entry.details;\n\tif (!details || typeof details !== \"object\" || !(CONTEXT_EPOCH_DETAIL in details)) return initial;\n\tif (hydrated.source.qualification !== \"native-context-epoch\" || hydrated.source.retention === \"retained-import\")\n\t\tthrow new Error(\"Context mode checkpoint is not qualified on this source\");\n\treturn contextEpochMode(readContextEpoch(details, maxBytes), initial);\n}\n\n/** Literal suffixes follow source append order, not the restored tool-call display order. */\nfunction latestLiteralReference(references: readonly (EpochViewReference | null)[]): EpochViewReference | undefined {\n\tlet latest: EpochViewReference | undefined;\n\tfor (const reference of references) {\n\t\tif (reference && reference.ref.kind !== \"compaction\" && (!latest || reference.ref.sequence > latest.ref.sequence))\n\t\t\tlatest = reference;\n\t}\n\treturn latest;\n}\n\n/** Policy changes retain the current recipe; generated overlays are not archived conversation. */\nexport function prepareContextModeEpoch(\n\tmessages: readonly AgentMessage[],\n\tmode: ContextMode,\n\tmaxBytes: number,\n\tfreshContextContract = false,\n): { checkpoint: ContextEpochCheckpoint; messages: AgentMessage[] } {\n\tconst context = compiledEpochContexts.get(messages);\n\tconst units = getCanonicalViewUnits(messages);\n\tif (!context || !units || units.length !== messages.length)\n\t\tthrow new Error(\"Context mode requires captured canonical views\");\n\tif (context.toolContinuations?.length)\n\t\tthrow new Error(\"Tool continuation cannot enter a policy-only context checkpoint\");\n\tconst chosen = messages.filter(\n\t\t(_, index) => units[index].kind !== \"task-frame\" && units[index].kind !== \"resource-view\",\n\t);\n\tconst tail = latestLiteralReference(context.references);\n\tconst views = context.references.filter(\n\t\t(reference): reference is EpochViewReference => reference !== null && reference !== tail,\n\t);\n\t// A metadata-only fresh branch uses its existing source leaf; no fake user input is appended.\n\tconst literalTailId = tail?.ref.entryId ?? context.source.leafId;\n\tif (!literalTailId) throw new Error(\"Context mode requires a canonical source boundary\");\n\treturn {\n\t\tcheckpoint: snapshotContextEpoch(\n\t\t\t{\n\t\t\t\tversion: 5,\n\t\t\t\trenderer: context.selectedSkills?.length ? CONTEXT_SKILL_EPOCH_RENDERER : CONTEXT_POLICY_EPOCH_RENDERER,\n\t\t\t\t...(context.selectedSkills?.length ? { selectedSkills: context.selectedSkills } : {}),\n\t\t\t\tmode,\n\t\t\t\tpolicyOnly: true,\n\t\t\t\trepresentation: null,\n\t\t\t\tsource: context.source,\n\t\t\t\tviews,\n\t\t\t\tliteralTailId,\n\t\t\t\trequestContract: retainedContextRequestContract(context.checkpoint),\n\t\t\t\t...(mode === \"off\" && !context.checkpoint && freshContextContract\n\t\t\t\t\t? { pendingRequestContract: true as const }\n\t\t\t\t\t: {}),\n\t\t\t\treplayContract: context.checkpoint?.replayContract,\n\t\t\t\tpublicWindow: context.checkpoint?.publicWindow,\n\t\t\t\tcontinuation: context.checkpoint?.continuation,\n\t\t\t\t// Retain the existing bounded anchor recipe for explicit re-enable; off never injects it.\n\t\t\t\ttaskFrame: context.taskFrame ?? context.checkpoint?.taskFrame,\n\t\t\t},\n\t\t\tmaxBytes,\n\t\t),\n\t\tmessages: [...chosen],\n\t};\n}\n\n/** A candidate only. The caller must ACK the canonical checkpoint before adoption or send. */\nexport function prepareCanonicalEpoch(\n\tmessages: readonly AgentMessage[],\n\tselectedUnitIds: readonly string[],\n\trepresentation: string,\n\tmaxBytes: number,\n\treplayContract: ContextReplayContract = \"complete-context\",\n\tpublicWindow = false,\n): {\n\tcheckpoint: ContextEpochCheckpoint & { readonly version: 4 | 6; readonly representation: string };\n\tmessages: AgentMessage[];\n} {\n\tconst context = compiledEpochContexts.get(messages);\n\tconst units = getCanonicalViewUnits(messages);\n\tif (!context || !units || units.length !== messages.length || context.references.length !== messages.length)\n\t\tthrow new Error(\"Context epoch requires its captured compiler output\");\n\tif (context.readOnly) throw new Error(\"Read-only context cannot authorize a provider epoch\");\n\tif (compiledViewUnits.get(messages)?.selection.pendingPublicMessageGroups?.length)\n\t\tthrow new Error(\"Tool continuation requires its accepted public representation\");\n\tif (context.toolContinuations?.length && (!publicWindow || replayContract !== \"message-groups\"))\n\t\tthrow new Error(\"Tool continuation epoch requires its actual public replay contract\");\n\tconst selected = new Set(selectedUnitIds);\n\tif (selected.size !== selectedUnitIds.length || [...selected].some((id) => !units.some((unit) => unit.id === id)))\n\t\tthrow new Error(\"Context epoch selection has an unknown or repeated unit\");\n\tconst chosen: AgentMessage[] = [];\n\tconst views: EpochViewReference[] = [];\n\tfor (const [index, unit] of units.entries()) {\n\t\tif (!selected.has(unit.id)) {\n\t\t\tif (unit.kind === \"task-frame\") throw new Error(\"Context epoch cannot omit its task frame\");\n\t\t\tif (unit.kind === \"resource-view\") throw new Error(\"Context epoch cannot omit its current resource view\");\n\t\t\tif (unit.id === \"native-selected-skill-versions\")\n\t\t\t\tthrow new Error(\"Context epoch cannot omit its selected skill references\");\n\t\t\tcontinue;\n\t\t}\n\t\tchosen.push(messages[index]);\n\t\tconst reference = context.references[index];\n\t\tif (reference) views.push(reference);\n\t}\n\tconst tail = latestLiteralReference(context.references);\n\tif (!tail) throw new Error(\"Context epoch literal tail is unavailable\");\n\tconst tailIndex = views.indexOf(tail);\n\tif (tailIndex < 0) throw new Error(\"Context epoch cannot omit the current literal tail\");\n\tviews.splice(tailIndex, 1);\n\treturn {\n\t\tcheckpoint: snapshotContextEpoch(\n\t\t\t{\n\t\t\t\tversion: context.toolContinuations?.length ? 6 : 4,\n\t\t\t\trenderer: context.selectedSkills?.length\n\t\t\t\t\t? CONTEXT_SKILL_EPOCH_RENDERER\n\t\t\t\t\t: context.toolContinuations?.length\n\t\t\t\t\t\t? CONTEXT_TOOL_EPOCH_RENDERER\n\t\t\t\t\t\t: CONTEXT_EPOCH_RENDERER,\n\t\t\t\t...(context.selectedSkills?.length ? { selectedSkills: context.selectedSkills } : {}),\n\t\t\t\t...(context.toolContinuations?.length ? { toolContinuations: context.toolContinuations } : {}),\n\t\t\t\tsource: context.source,\n\t\t\t\trepresentation,\n\t\t\t\treplayContract,\n\t\t\t\t...(publicWindow ? { publicWindow: true as const } : {}),\n\t\t\t\t...((context.continuation ?? context.checkpoint?.continuation)\n\t\t\t\t\t? { continuation: context.continuation ?? context.checkpoint?.continuation }\n\t\t\t\t\t: {}),\n\t\t\t\tviews,\n\t\t\t\ttaskFrame: context.taskFrame,\n\t\t\t\tresourceRevision: context.resourceRevision,\n\t\t\t\tliteralTailId: tail.ref.entryId,\n\t\t\t},\n\t\t\tmaxBytes,\n\t\t),\n\t\tmessages: chosen,\n\t};\n}\n\n/** Use only a replay contract granted to these recovery results by an actual accepted request. */\nexport function canonicalRecoveryBoundary(messages: readonly AgentMessage[]): string | undefined {\n\tconst context = compiledEpochContexts.get(messages);\n\tconst units = getCanonicalViewUnits(messages);\n\tif (!context || !units) throw new Error(\"Recovery compaction requires captured canonical views\");\n\tif (context.toolContinuations?.length && !context.readOnly)\n\t\tthrow new Error(\"Tool continuation summary requires its captured public read view\");\n\tconst recoveries = units.flatMap((unit, index) => (unit.kind === \"recovery\" ? [context.references[index]] : []));\n\tif (!recoveries.length) return;\n\tconst checkpoint = context.checkpoint;\n\tif (\n\t\t!checkpoint?.representation ||\n\t\tcheckpoint.replayContract !== \"message-groups\" ||\n\t\trecoveries.some((reference) => !reference || reference.ref.sequence > checkpoint.source.sourceSequence)\n\t)\n\t\tthrow new Error(\"Recovery compaction requires an accepted replay contract for its selected results\");\n\treturn checkpoint.literalTailId;\n}\n\n/** Retain exact recovery evidence. An accepted public-window transition replaces whole old protocol groups. */\nexport function prepareRecoveryCompaction(\n\tmessages: readonly AgentMessage[],\n\tfirstKeptEntryId: string,\n\tmaxBytes: number,\n): ContextEpochCheckpoint | undefined {\n\tconst boundary = canonicalRecoveryBoundary(messages);\n\tconst context = compiledEpochContexts.get(messages);\n\tconst publicWindow =\n\t\tcontext?.checkpoint?.publicWindow === true && context.checkpoint.replayContract === \"message-groups\";\n\tif (!boundary && !publicWindow && !context?.selectedSkills?.length && !context?.toolContinuations?.length) return;\n\tif (!context) throw new Error(\"Recovery compaction requires captured canonical views\");\n\tconst selection = getCanonicalViewSelectionSource(messages)!;\n\tconst cut = context.references.findIndex((reference) => reference?.ref.entryId === firstKeptEntryId);\n\tconst lastProved = boundary\n\t\t? context.references.findIndex((reference) => reference?.ref.entryId === boundary)\n\t\t: messages.length - 1;\n\tif (cut < 0 || lastProved < 0 || cut > lastProved)\n\t\tthrow new Error(\"Recovery compaction must retain its unmeasured literal tail\");\n\tconst units = bindMessageReplayUnits(messages, selection.units, selection.limits, \"message-groups\");\n\t// A mode transition cannot strand any outstanding native call, including one in the retained tail.\n\tcloseViewSelection(\n\t\tunits,\n\t\tunits.map((unit) => unit.id),\n\t\tselection.limits,\n\t);\n\tconst toolGroups = new Set(context.toolContinuations?.map((group) => group.assistantEntryId));\n\tconst roots = units\n\t\t.filter((unit, index) => unit.kind === \"recovery\" || toolGroups.has(context.references[index]?.ref.entryId ?? \"\"))\n\t\t.map((unit) => unit.id);\n\tconst closed = new Set(closeViewSelection(units, roots, selection.limits).map((unit) => unit.id));\n\tlet renderedBytes = 0;\n\tconst views = context.references.flatMap((reference, index): EpochViewReference[] => {\n\t\tif (!reference || (index < cut && !closed.has(units[index].id))) return [];\n\t\tconst message = messages[index];\n\t\tconst rendered = publicWindow ? renderPublicHistory(message, reference.ref.entryId, maxBytes) : message;\n\t\tif (publicWindow) {\n\t\t\trenderedBytes += Buffer.byteLength(JSON.stringify(rendered), \"utf8\");\n\t\t\tif (renderedBytes > maxBytes) throw new Error(\"Public summary view byte budget exceeded\");\n\t\t}\n\t\treturn index < cut\n\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\t...reference,\n\t\t\t\t\t\t...(rendered !== message ? { rendering: PUBLIC_CONTEXT_RENDERER } : {}),\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t: [];\n\t});\n\tif (!views.length && !publicWindow && !context.selectedSkills?.length && !toolGroups.size) return;\n\treturn snapshotContextEpoch(\n\t\t{\n\t\t\t...(toolGroups.size ? { version: 8 as const, mode: context.mode } : { version: 4 as const }),\n\t\t\trenderer: toolGroups.size\n\t\t\t\t? CONTEXT_TOOL_SUMMARY_RENDERER\n\t\t\t\t: context.selectedSkills?.length\n\t\t\t\t\t? CONTEXT_SKILL_EPOCH_RENDERER\n\t\t\t\t\t: CONTEXT_EPOCH_RENDERER,\n\t\t\t...(toolGroups.size ? { toolContinuations: context.toolContinuations } : {}),\n\t\t\t...(context.selectedSkills?.length ? { selectedSkills: context.selectedSkills } : {}),\n\t\t\tsource: context.source,\n\t\t\trepresentation: null,\n\t\t\tincludeSummary: true,\n\t\t\t...(toolGroups.size && publicWindow ? { publicWindow: true as const } : {}),\n\t\t\treplayContract:\n\t\t\t\tboundary || publicWindow ? \"message-groups\" : (context.checkpoint?.replayContract ?? \"complete-context\"),\n\t\t\t...(publicWindow\n\t\t\t\t? {\n\t\t\t\t\t\tcontinuation: {\n\t\t\t\t\t\t\tkind: \"harness-summary\" as const,\n\t\t\t\t\t\t\tpublicTailThrough: context.source,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t\tviews,\n\t\t\tresourceRevision: context.resourceRevision,\n\t\t\tliteralTailId: firstKeptEntryId,\n\t\t},\n\t\tmaxBytes,\n\t);\n}\n\ninterface CachedEntry {\n\trevision: string;\n\tentry: SessionEntry;\n}\n\ntype KnownManifest = Extract<ContextManifestPage, { selection: \"known\" }>;\n\n/** Exact active-context reconstruction. It never silently chooses a last-N transcript. */\nexport class CanonicalContextCompiler {\n\tprivate source?: SourceSnapshotRef;\n\tprivate entries = new Map<string, CachedEntry>();\n\tprivate sourceBytes = 0;\n\tprivate messageCount = 0;\n\tprivate taskFrame?: CompiledTaskFrame;\n\tprivate taskBoundary?: string;\n\tprivate readonly taskState = new TaskStateReadCache();\n\tprivate generation = 0;\n\tprivate forceTaskFrameRebase = false;\n\n\trequestTaskFrameRebase(): void {\n\t\tthis.forceTaskFrameRebase = true;\n\t}\n\n\tclear(): void {\n\t\tthis.generation++;\n\t\tthis.taskState.clear();\n\t\tthis.forceTaskFrameRebase = false;\n\t\tthis.entries.clear();\n\t\tthis.source = undefined;\n\t\tthis.sourceBytes = 0;\n\t\tthis.messageCount = 0;\n\t\tthis.taskFrame = undefined;\n\t\tthis.taskBoundary = undefined;\n\t}\n\n\t/** Membership in the last successful active-source cache, including explicitly omitted responses. */\n\thasActiveEntry(entryId: string): boolean {\n\t\treturn this.entries.has(entryId);\n\t}\n\n\tasync compile(\n\t\tview: SessionHistoryReadView,\n\t\tlimits: CanonicalContextLimits,\n\t\tomittedAssistantIds: ReadonlySet<string> = new Set(),\n\t\tframeOptions: Partial<TaskFrameLimits> = {},\n\t\tresourceCapture?: OwnedResourceCapture,\n\t\tinitialContextMode: ContextMode = \"on\",\n\t\tallowPendingToolPublic = false,\n\t\tpurpose: \"request\" | \"read\" = \"request\",\n\t): Promise<AgentMessage[]> {\n\t\tconst generation = this.generation;\n\t\tconst frameLimits = taskFrameLimits(frameOptions);\n\t\tconst previousSource = this.source;\n\t\tconst previousFrame = this.taskFrame;\n\t\tconst previousBoundary = this.taskBoundary;\n\t\tconst omitted = new Set(omittedAssistantIds);\n\t\tconst { maxMessages, maxSourceBytes } = limits;\n\t\tif (\n\t\t\t!Number.isSafeInteger(maxMessages) ||\n\t\t\tmaxMessages <= 0 ||\n\t\t\t!Number.isSafeInteger(maxSourceBytes) ||\n\t\t\tmaxSourceBytes <= 0\n\t\t)\n\t\t\tthrow new Error(\"Invalid canonical context limits\");\n\t\tif (\n\t\t\tthis.source?.sessionId !== view.source.sessionId ||\n\t\t\tthis.source?.sessionFile !== view.source.sessionFile ||\n\t\t\tthis.messageCount > maxMessages ||\n\t\t\tthis.sourceBytes > maxSourceBytes\n\t\t) {\n\t\t\tthis.entries.clear();\n\t\t\tthis.sourceBytes = 0;\n\t\t\tthis.messageCount = 0;\n\t\t}\n\t\tlet first: KnownManifest | undefined;\n\t\tlet cursor: ContextManifestCursor | undefined;\n\t\tlet expected = 0;\n\t\tlet sourceBytes = 0;\n\t\tconst refs: ContextRef[] = [];\n\t\tconst sourceOrder = new Map<string, number>();\n\t\tconst countBytes = (ref: Pick<ContextRef, \"locator\">) => {\n\t\t\tsourceBytes += ref.locator.length;\n\t\t\tif (sourceBytes > maxSourceBytes) throw new Error(\"Canonical context source byte budget exceeded\");\n\t\t};\n\t\tfor (;;) {\n\t\t\tconst page = await view.contextManifest({ cursor, limit: 128 });\n\t\t\tif (page.selection !== \"known\") throw new Error(`Canonical context selection is ${page.selection}`);\n\t\t\tif (!first) {\n\t\t\t\tfirst = page;\n\t\t\t\tif (page.activeMessageCount + (page.summaryRef ? 1 : 0) > maxMessages)\n\t\t\t\t\tthrow new Error(\"Canonical context message budget exceeded\");\n\t\t\t\texpected = page.activeBase + 1;\n\t\t\t\tif (page.summaryRef) countBytes(page.summaryRef);\n\t\t\t} else if (\n\t\t\t\tpage.activeBase !== first.activeBase ||\n\t\t\t\tpage.activeMessageCount !== first.activeMessageCount ||\n\t\t\t\tpage.retainedMessageCount !== first.retainedMessageCount ||\n\t\t\t\tpage.summaryRef?.entryId !== first.summaryRef?.entryId ||\n\t\t\t\tpage.summaryRef?.revision !== first.summaryRef?.revision\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Canonical context manifest changed during its captured read\");\n\t\t\t}\n\t\t\tfor (const ref of page.refs) {\n\t\t\t\tif (ref.ordinal !== expected++) throw new Error(\"Canonical context manifest skipped an active message\");\n\t\t\t\tcountBytes(ref);\n\t\t\t\trefs.push(ref);\n\t\t\t\tsourceOrder.set(ref.entryId, ref.sequence);\n\t\t\t}\n\t\t\tif (!page.nextCursor) break;\n\t\t\tif (!page.refs.length || page.nextCursor.nextOrdinal !== expected)\n\t\t\t\tthrow new Error(\"Canonical context manifest did not advance\");\n\t\t\tcursor = page.nextCursor;\n\t\t}\n\t\tif (refs.length !== first.activeMessageCount) throw new Error(\"Canonical context manifest is incomplete\");\n\n\t\tconst next = new Map<string, CachedEntry>();\n\t\tconst hydrate = async (\n\t\t\tref: ContextRef | ContextUpdateRef,\n\t\t\ttarget?: ContextUpdateTarget,\n\t\t\treadView: SessionHistoryReadView = view,\n\t\t): Promise<SessionEntry> => {\n\t\t\tconst cached = this.entries.get(ref.entryId);\n\t\t\tif (cached?.revision === ref.revision) {\n\t\t\t\tnext.set(ref.entryId, cached);\n\t\t\t\treturn cached.entry;\n\t\t\t}\n\t\t\tconst fragments: string[] = [];\n\t\t\tlet offset = 0;\n\t\t\tlet part = target\n\t\t\t\t? await readView.readContextUpdatePayload(ref.entryId, target)\n\t\t\t\t: await readView.readPayload(ref.entryId);\n\t\t\tfor (;;) {\n\t\t\t\tif (!part || part.byteOffset !== offset || part.byteLength <= 0)\n\t\t\t\t\tthrow new Error(\"Canonical context payload is unavailable or incomplete\");\n\t\t\t\toffset += part.byteLength;\n\t\t\t\tif (offset > ref.locator.length) throw new Error(\"Canonical context payload exceeds its source locator\");\n\t\t\t\tfragments.push(part.text);\n\t\t\t\tif (!part.nextCursor) break;\n\t\t\t\tpart = target\n\t\t\t\t\t? await readView.readContextUpdatePayload(ref.entryId, target, { cursor: part.nextCursor })\n\t\t\t\t\t: await readView.readPayload(ref.entryId, { cursor: part.nextCursor });\n\t\t\t}\n\t\t\tconst value: unknown = JSON.parse(fragments.join(\"\"));\n\t\t\tif (\n\t\t\t\t!value ||\n\t\t\t\ttypeof value !== \"object\" ||\n\t\t\t\t!(\"id\" in value) ||\n\t\t\t\tvalue.id !== ref.entryId ||\n\t\t\t\t!(\"type\" in value) ||\n\t\t\t\tvalue.type !== ref.kind\n\t\t\t)\n\t\t\t\tthrow new Error(\"Canonical context payload does not match its source reference\");\n\t\t\tconst entry = value as SessionEntry;\n\t\t\tnext.set(ref.entryId, { revision: ref.revision, entry });\n\t\t\treturn entry;\n\t\t};\n\t\tlet checkpoint: ContextEpochCheckpoint | undefined;\n\t\tlet summaryEntry: SessionEntry | undefined;\n\t\tif (first.summaryRef) {\n\t\t\tsummaryEntry = await hydrate(first.summaryRef);\n\t\t\tif (summaryEntry.type !== \"compaction\") throw new Error(\"Canonical context summary has the wrong source kind\");\n\t\t\tif (\n\t\t\t\tsummaryEntry.details &&\n\t\t\t\ttypeof summaryEntry.details === \"object\" &&\n\t\t\t\tCONTEXT_EPOCH_DETAIL in summaryEntry.details\n\t\t\t) {\n\t\t\t\tconst source = await view.get(first.summaryRef.entryId);\n\t\t\t\tif (source?.qualification !== \"native-context-epoch\" || source.retention === \"retained-import\")\n\t\t\t\t\tthrow new Error(\"Context epoch checkpoint is not qualified on this source\");\n\t\t\t\tcheckpoint = readContextEpoch(summaryEntry.details, maxSourceBytes);\n\t\t\t\tif (\n\t\t\t\t\t!checkpoint ||\n\t\t\t\t\tcheckpoint.literalTailId !== summaryEntry.firstKeptEntryId ||\n\t\t\t\t\tcheckpoint.views.length + first.activeMessageCount > maxMessages\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Context epoch checkpoint does not match its retained boundary\");\n\t\t\t}\n\t\t}\n\t\tconst mode = contextEpochMode(checkpoint, initialContextMode);\n\t\tconst selectedSkills = new Map((checkpoint?.selectedSkills ?? []).map((skill) => [skill.name, skill]));\n\t\tfor (const skill of selectedSkills.values()) {\n\t\t\tif (!view.atSnapshot) throw new Error(\"Selected skill epoch requires its original prefix\");\n\t\t\tconst prefix = await view.atSnapshot(skill.view.source);\n\t\t\tconst actual = await prefix.get(skill.view.ref.entryId);\n\t\t\tif (\n\t\t\t\t!actual ||\n\t\t\t\tactual.kind !== skill.view.ref.kind ||\n\t\t\t\t![\"custom_message\", \"custom\"].includes(actual.kind) ||\n\t\t\t\tactual.qualification !== \"native-recovery\" ||\n\t\t\t\tactual.revision !== skill.view.ref.revision ||\n\t\t\t\tactual.sequence !== skill.view.ref.sequence ||\n\t\t\t\tJSON.stringify(actual.locator) !== JSON.stringify(skill.view.ref.locator) ||\n\t\t\t\tskill.view.sourceRevision !== JSON.stringify([actual.revision])\n\t\t\t)\n\t\t\t\tthrow new Error(\"Selected skill epoch source is unavailable\");\n\t\t}\n\t\tconst toolSourceIds = new Set(\n\t\t\tcheckpoint?.toolContinuations?.flatMap((group) => [\n\t\t\t\tgroup.assistantEntryId,\n\t\t\t\t...group.calls.flatMap((call) => (call.result ? [call.result.id] : [])),\n\t\t\t]),\n\t\t);\n\t\tconst publicTail = checkpoint?.continuation?.publicTailThrough;\n\t\tif (publicTail) {\n\t\t\tif (!view.atSnapshot) throw new Error(\"Public summary transition requires its captured source\");\n\t\t\tawait view.atSnapshot(publicTail);\n\t\t}\n\t\tlet publicBytes = 0;\n\t\tconst boundary = JSON.stringify([first.summaryRef?.entryId ?? null, first.summaryRef?.revision ?? null]);\n\t\tlet resetFrame =\n\t\t\tpreviousSource?.sessionId !== view.source.sessionId ||\n\t\t\tpreviousSource?.sessionFile !== view.source.sessionFile ||\n\t\t\tpreviousBoundary !== boundary ||\n\t\t\t(previousSource !== undefined && previousSource.sourceSequence > view.source.sourceSequence);\n\t\tif (!resetFrame && previousFrame && previousSource?.leafId && previousSource.leafId !== view.source.leafId)\n\t\t\tresetFrame = !(await view.get(previousSource.leafId));\n\t\tconst tasks =\n\t\t\tmode === \"off\"\n\t\t\t\t? undefined\n\t\t\t\t: await this.taskState.read(view, {\n\t\t\t\t\t\tmaxItems: maxMessages,\n\t\t\t\t\t\tmaxSourceBytes,\n\t\t\t\t\t\tmaxViewBytes: maxSourceBytes,\n\t\t\t\t\t});\n\t\tlet taskSequence = -1;\n\t\tfor (const { event } of tasks?.items ?? []) {\n\t\t\tif (event.source.sequence === taskSequence) continue;\n\t\t\ttaskSequence = event.source.sequence;\n\t\t\t// The task reader has already required an exact locator for every represented frame.\n\t\t\tcountBytes({ locator: event.source.locator! });\n\t\t}\n\t\tconst referenceFrame = resetFrame ? checkpoint?.taskFrame : previousFrame;\n\t\tif (resetFrame || (referenceFrame && referenceFrame.messages.length <= 1)) this.forceTaskFrameRebase = false;\n\t\tconst forceRebase = purpose === \"request\" && this.forceTaskFrameRebase;\n\t\tlet taskFrame = tasks\n\t\t\t? compileTaskFrame(tasks, frameLimits, forceRebase ? undefined : referenceFrame)\n\t\t\t: undefined;\n\t\tconst taskFrameRebased = Boolean(\n\t\t\tmode === \"on\" &&\n\t\t\t\treferenceFrame &&\n\t\t\t\ttaskFrame !== referenceFrame &&\n\t\t\t\t(!taskFrame || taskFrame.messages.length === 1),\n\t\t);\n\t\tconst resource =\n\t\t\tmode === \"on\" && resourceCapture && (resourceCapture.enabled || checkpoint)\n\t\t\t\t? renderResourceView(resourceCapture)\n\t\t\t\t: undefined;\n\t\tif (resource) {\n\t\t\tsourceBytes += resource.bytes;\n\t\t\tif (sourceBytes > maxSourceBytes) throw new Error(\"Canonical context source byte budget exceeded\");\n\t\t}\n\t\tconst messageCount =\n\t\t\tfirst.activeMessageCount +\n\t\t\t(checkpoint ? checkpoint.views.length + (checkpoint.includeSummary ? 1 : 0) : first.summaryRef ? 1 : 0) +\n\t\t\t(taskFrame?.messages.length ?? 0) +\n\t\t\t(resource ? 1 : 0);\n\t\tif (messageCount > maxMessages) throw new Error(\"Canonical context message budget exceeded\");\n\n\t\tconst messages: AgentMessage[] = [];\n\t\tconst renderedMessages = new Map<AgentMessage, AgentMessage>();\n\t\tconst literalSources = new Map<AgentMessage, string>();\n\t\tconst unitSources = new Map<AgentMessage, ViewUnit>();\n\t\tconst epochReferences = new Map<AgentMessage, EpochViewReference>();\n\t\tconst sourceUnit = (ref: ContextRef, kind: ViewUnit[\"kind\"]): ViewUnit => ({\n\t\t\tid: JSON.stringify([view.source.sessionId, view.source.sessionFile, ref.entryId]),\n\t\t\tsourceRevision: ref.revision,\n\t\t\tkind,\n\t\t\texactSources: [ref.entryId],\n\t\t\trequiredVisibleDependencies: [],\n\t\t\tauthority:\n\t\t\t\tkind === \"recovery\"\n\t\t\t\t\t? \"tool-data\"\n\t\t\t\t\t: ref.authority === \"user\"\n\t\t\t\t\t\t? \"user\"\n\t\t\t\t\t\t: ref.authority === \"assistant\"\n\t\t\t\t\t\t\t? \"assistant-public\"\n\t\t\t\t\t\t\t: ref.authority === \"runtime\"\n\t\t\t\t\t\t\t\t? \"tool-data\"\n\t\t\t\t\t\t\t\t: \"unrecorded\",\n\t\t\ttokenEstimate: null,\n\t\t\timmutableWithinEpoch: true,\n\t\t});\n\t\tconst addSummary = async (ref: ContextRef, readView: SessionHistoryReadView, retainedMessageCount: number) => {\n\t\t\tconst summary = await hydrate(ref, undefined, readView);\n\t\t\tif (summary.type !== \"compaction\") throw new Error(\"Canonical context summary has the wrong source kind\");\n\t\t\tconst message = createCompactionSummaryMessage(\n\t\t\t\tsummary.summary,\n\t\t\t\tsummary.tokensBefore,\n\t\t\t\tsummary.timestamp,\n\t\t\t\tsummary.customInstructions,\n\t\t\t\tretainedMessageCount,\n\t\t\t);\n\t\t\tmessages.push(message);\n\t\t\tliteralSources.set(message, ref.entryId);\n\t\t\tunitSources.set(message, sourceUnit(ref, \"fixed-view\"));\n\t\t\tepochReferences.set(message, {\n\t\t\t\tsource: readView.source,\n\t\t\t\tref,\n\t\t\t\tsourceRevision: ref.revision,\n\t\t\t\tretainedMessageCount,\n\t\t\t});\n\t\t\tsourceOrder.set(ref.entryId, -1);\n\t\t};\n\t\tif (first.summaryRef && (!checkpoint || checkpoint.includeSummary))\n\t\t\tawait addSummary(first.summaryRef, view, first.retainedMessageCount);\n\t\tconst addLiteral = async (ref: ContextRef, readView: SessionHistoryReadView, pinned?: EpochViewReference) => {\n\t\t\tconst entry = await hydrate(ref, undefined, readView);\n\t\t\t// Internal capture records never interrupt a native assistant/tool-result group.\n\t\t\t// Retained records remain recoverable data, but cannot mint a new selection.\n\t\t\tconst skill = ref.qualification === \"native-recovery\" ? selectedSkillCapture(entry) : undefined;\n\t\t\tif (skill) {\n\t\t\t\tif (\n\t\t\t\t\tskill.producer === \"model\" &&\n\t\t\t\t\tisNativeSkillSelection(ref) &&\n\t\t\t\t\t(!checkpoint || ref.sequence > checkpoint.source.sourceSequence)\n\t\t\t\t) {\n\t\t\t\t\tselectedSkills.set(skill.descriptor.name, {\n\t\t\t\t\t\tname: skill.descriptor.name,\n\t\t\t\t\t\tview: {\n\t\t\t\t\t\t\tsource: view.source,\n\t\t\t\t\t\t\tref: { ...ref, kind: \"custom_message\" },\n\t\t\t\t\t\t\tsourceRevision: JSON.stringify([ref.revision]),\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst origin = entry.type === \"message\" || entry.type === \"custom_message\" ? entry.nativeOrigin : undefined;\n\t\t\tif (\n\t\t\t\tref.qualification === \"native-admission\" &&\n\t\t\t\tref.retention !== \"retained-import\" &&\n\t\t\t\torigin?.kind === \"input\" &&\n\t\t\t\torigin.recordRole === \"primary\" &&\n\t\t\t\torigin.selectedSkillRef &&\n\t\t\t\t(!checkpoint || ref.sequence > checkpoint.source.sourceSequence) &&\n\t\t\t\t![...selectedSkills.values()].some((skill) => skill.view.ref.entryId === origin.selectedSkillRef?.entryId)\n\t\t\t) {\n\t\t\t\tif (\n\t\t\t\t\torigin.selectedSkillRef.sessionId !== view.source.sessionId ||\n\t\t\t\t\torigin.selectedSkillRef.sessionFile !== view.source.sessionFile\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Admitted skill selection belongs to another source\");\n\t\t\t\tconst actual = await view.get(origin.selectedSkillRef.entryId);\n\t\t\t\tif (\n\t\t\t\t\t!actual ||\n\t\t\t\t\t(actual.kind !== \"custom\" && actual.kind !== \"custom_message\") ||\n\t\t\t\t\tactual.qualification !== \"native-recovery\"\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Admitted input selected skill source is unavailable\");\n\t\t\t\tcountBytes(actual);\n\t\t\t\tconst captured = await hydrateCapturedHistoryEntry(actual, actual.locator.length, view.readPayload);\n\t\t\t\tconst selected = captured ? selectedSkillCapture(captured.entry) : undefined;\n\t\t\t\tif (!selected) throw new Error(\"Admitted input has no captured skill version\");\n\t\t\t\tselectedSkills.set(selected.descriptor.name, {\n\t\t\t\t\tname: selected.descriptor.name,\n\t\t\t\t\tview: {\n\t\t\t\t\t\tsource: view.source,\n\t\t\t\t\t\tsourceRevision: JSON.stringify([actual.revision]),\n\t\t\t\t\t\tref: {\n\t\t\t\t\t\t\tentryId: actual.id,\n\t\t\t\t\t\t\tsequence: actual.sequence,\n\t\t\t\t\t\t\tkind: actual.kind,\n\t\t\t\t\t\t\tlocator: actual.locator,\n\t\t\t\t\t\t\trevision: actual.revision,\n\t\t\t\t\t\t\tauthority: actual.authority,\n\t\t\t\t\t\t\tqualification: actual.qualification,\n\t\t\t\t\t\t\tretention: actual.retention,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst original = sessionEntryMessage(entry);\n\t\t\tif (!original) throw new Error(\"Canonical context reference is not a visible context entry\");\n\t\t\t// These IDs come from actual native retry controls, not inferred transcript membership or stop reasons.\n\t\t\tif (original.role === \"assistant\" && omitted.has(ref.entryId)) return;\n\t\t\t// Neither canonical updates nor replaceable transforms may mutate cached source entries.\n\t\t\tconst message = structuredClone(original);\n\t\t\tconst revisions = [ref.revision];\n\t\t\tconst exactSources = [ref.entryId];\n\t\t\tif (message.role === \"assistant\") {\n\t\t\t\tconst target: ContextUpdateTarget = { kind: \"assistant-usage\", targetId: ref.entryId };\n\t\t\t\tfor (const update of (await readView.contextUpdates(target)).refs) {\n\t\t\t\t\tcountBytes(update);\n\t\t\t\t\tconst entry = await hydrate(update, target, readView);\n\t\t\t\t\trevisions.push(update.revision);\n\t\t\t\t\texactSources.push(update.entryId);\n\t\t\t\t\tif (entry.type !== \"child_usage_attributed\") throw new Error(\"Canonical usage update kind mismatch\");\n\t\t\t\t\tmessage.usage = cloneUsage(entry.aggregateUsage);\n\t\t\t\t}\n\t\t\t} else if (message.role === \"toolResult\" && message.toolName === \"ipython\") {\n\t\t\t\tconst target: ContextUpdateTarget = { kind: \"ipython-sent-message\", toolCallId: message.toolCallId };\n\t\t\t\tfor (const update of (await readView.contextUpdates(target)).refs) {\n\t\t\t\t\tcountBytes(update); // Charge each application, even when the source record is cached.\n\t\t\t\t\tconst entry = await hydrate(update, target, readView);\n\t\t\t\t\trevisions.push(update.revision);\n\t\t\t\t\texactSources.push(update.entryId);\n\t\t\t\t\tconst sent = entry.type === \"custom\" ? parsePersistedIpythonSentAgentMessage(entry.data) : undefined;\n\t\t\t\t\tif (!sent || sent.toolCallId !== message.toolCallId)\n\t\t\t\t\t\tthrow new Error(\"Canonical sent-message update mismatch\");\n\t\t\t\t\tappendSentAgentMessageToToolResult(message, message.toolCallId, sent.message);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst publicHistory =\n\t\t\t\t!toolSourceIds.has(ref.entryId) &&\n\t\t\t\t(pinned?.rendering === PUBLIC_CONTEXT_RENDERER ||\n\t\t\t\t\t(!pinned && publicTail !== undefined && ref.sequence <= publicTail.sourceSequence));\n\t\t\tconst rendered = publicHistory ? renderPublicHistory(message, ref.entryId, maxSourceBytes) : message;\n\t\t\tif (publicHistory) {\n\t\t\t\tpublicBytes += Buffer.byteLength(JSON.stringify(rendered), \"utf8\");\n\t\t\t\tif (publicBytes > maxSourceBytes) throw new Error(\"Public summary view byte budget exceeded\");\n\t\t\t}\n\t\t\tif (message.role === \"assistant\")\n\t\t\t\tmessageSources.set(rendered, {\n\t\t\t\t\tsessionId: view.source.sessionId,\n\t\t\t\t\tsessionFile: view.source.sessionFile,\n\t\t\t\t\tentryId: ref.entryId,\n\t\t\t\t});\n\t\t\tmessages.push(message);\n\t\t\trenderedMessages.set(message, rendered);\n\t\t\tliteralSources.set(rendered, ref.entryId);\n\t\t\tunitSources.set(rendered, {\n\t\t\t\t...sourceUnit(\n\t\t\t\t\tref,\n\t\t\t\t\tmessage.role === \"toolResult\" &&\n\t\t\t\t\t\tref.qualification === \"native-recovery\" &&\n\t\t\t\t\t\tref.retention !== \"retained-import\"\n\t\t\t\t\t\t? \"recovery\"\n\t\t\t\t\t\t: message.role === \"toolResult\" ||\n\t\t\t\t\t\t\t\t(message.role === \"assistant\" && message.content.some((part) => part.type === \"toolCall\"))\n\t\t\t\t\t\t\t? \"replay-group\"\n\t\t\t\t\t\t\t: \"literal\",\n\t\t\t\t),\n\t\t\t\tsourceRevision: JSON.stringify(rendered !== message ? [...revisions, PUBLIC_CONTEXT_RENDERER] : revisions),\n\t\t\t\texactSources,\n\t\t\t});\n\t\t\tconst revision = JSON.stringify(revisions);\n\t\t\tif (pinned && pinned.sourceRevision !== revision)\n\t\t\t\tthrow new Error(\"Context epoch view no longer matches its frozen source revisions\");\n\t\t\tif (pinned && unitSources.get(rendered)!.kind !== \"recovery\")\n\t\t\t\tunitSources.set(rendered, { ...unitSources.get(rendered)!, kind: \"fixed-view\" });\n\t\t\tepochReferences.set(rendered, {\n\t\t\t\tsource: readView.source,\n\t\t\t\tref,\n\t\t\t\tsourceRevision: revision,\n\t\t\t\t...(rendered !== message ? { rendering: PUBLIC_CONTEXT_RENDERER } : {}),\n\t\t\t});\n\t\t\tsourceOrder.set(ref.entryId, ref.sequence);\n\t\t};\n\t\tif (checkpoint) {\n\t\t\tif (!view.atSnapshot) throw new Error(\"Context epoch requires a captured native prefix reader\");\n\t\t\tconst prefixViews = new Map<string, SessionHistoryReadView>();\n\t\t\tconst seen = new Set<string>();\n\t\t\tfor (const pinned of checkpoint.views) {\n\t\t\t\tif (\n\t\t\t\t\tpinned.rendering !== undefined &&\n\t\t\t\t\t((pinned.rendering === PUBLIC_TOOL_CONTINUATION_RENDERER\n\t\t\t\t\t\t? checkpoint.version !== 6 && checkpoint.version !== 8\n\t\t\t\t\t\t: pinned.rendering !== PUBLIC_CONTEXT_RENDERER ||\n\t\t\t\t\t\t\t(checkpoint.version !== 3 &&\n\t\t\t\t\t\t\t\tcheckpoint.version !== 4 &&\n\t\t\t\t\t\t\t\tcheckpoint.version !== 5 &&\n\t\t\t\t\t\t\t\tcheckpoint.version !== 6 &&\n\t\t\t\t\t\t\t\tcheckpoint.version !== 8)) ||\n\t\t\t\t\t\tpinned.ref.kind === \"compaction\")\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Unsupported context epoch view rendering\");\n\t\t\t\tif (seen.has(pinned.ref.entryId) || refs.some((ref) => ref.entryId === pinned.ref.entryId))\n\t\t\t\t\tthrow new Error(\"Context epoch view overlaps its literal tail\");\n\t\t\t\tseen.add(pinned.ref.entryId);\n\t\t\t\tcountBytes(pinned.ref);\n\t\t\t\tconst key = JSON.stringify(pinned.source);\n\t\t\t\tlet prefix = prefixViews.get(key);\n\t\t\t\tif (!prefix) {\n\t\t\t\t\tprefix = await view.atSnapshot(pinned.source);\n\t\t\t\t\tprefixViews.set(key, prefix);\n\t\t\t\t}\n\t\t\t\tconst actual = await prefix.get(pinned.ref.entryId);\n\t\t\t\tif (\n\t\t\t\t\t!actual ||\n\t\t\t\t\tactual.revision !== pinned.ref.revision ||\n\t\t\t\t\tactual.kind !== pinned.ref.kind ||\n\t\t\t\t\tactual.sequence !== pinned.ref.sequence ||\n\t\t\t\t\tJSON.stringify(actual.locator) !== JSON.stringify(pinned.ref.locator)\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Context epoch view source is unavailable\");\n\t\t\t\tif (pinned.ref.kind === \"compaction\") {\n\t\t\t\t\tif (pinned.retainedMessageCount === undefined)\n\t\t\t\t\t\tthrow new Error(\"Context epoch summary count is unavailable\");\n\t\t\t\t\tawait addSummary(pinned.ref, prefix, pinned.retainedMessageCount);\n\t\t\t\t} else await addLiteral(pinned.ref, prefix, pinned);\n\t\t\t}\n\t\t}\n\t\tfor (const ref of refs) await addLiteral(ref, view);\n\t\t// Public renderings hide tool roles; restore call order while the source roles are still available.\n\t\torderContextToolResults(messages);\n\t\tfor (const [index, message] of messages.entries()) messages[index] = renderedMessages.get(message) ?? message;\n\t\tif (taskFrame) {\n\t\t\tif (referenceFrame && taskFrame !== referenceFrame && !taskFrameRebased) {\n\t\t\t\tconst last = messages.at(-1);\n\t\t\t\tconst anchor = last\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tentryId: literalSources.get(last)!,\n\t\t\t\t\t\t\tside: last.role === \"user\" || last.role === \"custom\" ? (\"before\" as const) : (\"after\" as const),\n\t\t\t\t\t\t}\n\t\t\t\t\t: null;\n\t\t\t\ttaskFrame = { ...taskFrame, anchors: [...taskFrame.anchors.slice(0, -1), anchor] };\n\t\t\t}\n\t\t\tconst [base, ...revisions] = structuredClone(taskFrame.messages);\n\t\t\tconst frames = [base, ...revisions];\n\t\t\tconst frameIds = frames.map((_, index) => JSON.stringify([\"task-frame\", taskFrame!.origins[index], index]));\n\t\t\tfor (const [index, frame] of frames.entries()) {\n\t\t\t\tunitSources.set(frame, {\n\t\t\t\t\tid: frameIds[index],\n\t\t\t\t\tsourceRevision: frameIds[index],\n\t\t\t\t\tkind: \"task-frame\",\n\t\t\t\t\texactSources: [JSON.stringify(taskFrame.origins[index])],\n\t\t\t\t\trequiredVisibleDependencies: index ? [frameIds[index - 1]] : [],\n\t\t\t\t\tauthority: \"tool-data\",\n\t\t\t\t\ttokenEstimate: null,\n\t\t\t\t\timmutableWithinEpoch: true,\n\t\t\t\t});\n\t\t\t}\n\t\t\tfor (const anchor of taskFrame.anchors) {\n\t\t\t\tif (!anchor || sourceOrder.has(anchor.entryId)) continue;\n\t\t\t\tconst origin = await view.get(anchor.entryId);\n\t\t\t\tif (!origin) throw new Error(\"Task frame insertion source is unavailable\");\n\t\t\t\tsourceOrder.set(anchor.entryId, origin.sequence);\n\t\t\t}\n\t\t\tconst positions = new Map(messages.map((message, index) => [literalSources.get(message)!, index]));\n\t\t\tconst slots = new Map<number, AgentMessage[]>();\n\t\t\tfor (const [index, revision] of revisions.entries()) {\n\t\t\t\tconst anchor = taskFrame.anchors[index];\n\t\t\t\tlet at = 0;\n\t\t\t\tif (anchor) {\n\t\t\t\t\tconst position = positions.get(anchor.entryId);\n\t\t\t\t\tif (position !== undefined) at = position + (anchor.side === \"after\" ? 1 : 0);\n\t\t\t\t\telse {\n\t\t\t\t\t\t// A later retry may omit that assistant. Keep its source slot, not the newest input slot.\n\t\t\t\t\t\tconst ordinal = sourceOrder.get(anchor.entryId);\n\t\t\t\t\t\tif (ordinal === undefined) throw new Error(\"Task frame insertion source is unavailable\");\n\t\t\t\t\t\tat = messages.findIndex((message) => sourceOrder.get(literalSources.get(message)!)! > ordinal);\n\t\t\t\t\t\tif (at < 0) at = messages.length;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst group = slots.get(at) ?? [];\n\t\t\t\tgroup.push(revision);\n\t\t\t\tslots.set(at, group);\n\t\t\t}\n\t\t\tconst literal = messages.splice(0);\n\t\t\tmessages.push(base);\n\t\t\tfor (let at = 0; at <= literal.length; at++) {\n\t\t\t\tmessages.push(...(slots.get(at) ?? []));\n\t\t\t\tif (at < literal.length) messages.push(literal[at]);\n\t\t\t}\n\t\t}\n\t\tif (resource) {\n\t\t\t// Current owned display is regenerated; a stored acceptance marker is never a live view.\n\t\t\tconst at = messages[0] && unitSources.get(messages[0])?.kind === \"task-frame\" ? 1 : 0;\n\t\t\tmessages.splice(at, 0, resource.message);\n\t\t\tunitSources.set(resource.message, resource.unit);\n\t\t}\n\t\tif (selectedSkills.size) {\n\t\t\tconst selections = [...selectedSkills.values()];\n\t\t\tconst content = `Selected Skill versions (canonical source references):\\n${JSON.stringify(\n\t\t\t\tselections.map((skill) => ({\n\t\t\t\t\tname: skill.name,\n\t\t\t\t\tref: skill.view.ref.entryId,\n\t\t\t\t\trevision: skill.view.ref.revision,\n\t\t\t\t\tsourceSessionId: skill.view.source.sessionId,\n\t\t\t\t})),\n\t\t\t)}`;\n\t\t\tconst message = createCustomMessage(\n\t\t\t\t\"base-context-selected-skill-versions\",\n\t\t\t\tcontent,\n\t\t\t\tfalse,\n\t\t\t\tundefined,\n\t\t\t\t\"1970-01-01T00:00:00.000Z\",\n\t\t\t);\n\t\t\tmessages.unshift(message);\n\t\t\tunitSources.set(message, {\n\t\t\t\tid: \"native-selected-skill-versions\",\n\t\t\t\tsourceRevision: JSON.stringify(selections),\n\t\t\t\tkind: \"literal\",\n\t\t\t\texactSources: selections.map((skill) => skill.view.ref.entryId),\n\t\t\t\trequiredVisibleDependencies: [],\n\t\t\t\tauthority: \"tool-data\",\n\t\t\t\ttokenEstimate: null,\n\t\t\t\timmutableWithinEpoch: true,\n\t\t\t});\n\t\t}\n\t\tconst unitLimits = {\n\t\t\tmaxUnits: maxMessages,\n\t\t\tmaxDependencies: Math.min(Number.MAX_SAFE_INTEGER, maxMessages * 4),\n\t\t\tmaxMetadataBytes: maxSourceBytes,\n\t\t};\n\t\tconst sourceUnits = messages.map((message) => {\n\t\t\tconst unit = unitSources.get(message);\n\t\t\tif (!unit) throw new Error(\"Compiled view unit has no captured source\");\n\t\t\treturn unit;\n\t\t});\n\t\tif (selectedSkills.size) {\n\t\t\tconst tailIndex = messages\n\t\t\t\t.map((message, index) => (epochReferences.has(message) ? index : -1))\n\t\t\t\t.filter((index) => index >= 0)\n\t\t\t\t.at(-1);\n\t\t\tif (tailIndex !== undefined) {\n\t\t\t\tconst tail = sourceUnits[tailIndex];\n\t\t\t\tsourceUnits[tailIndex] = {\n\t\t\t\t\t...tail,\n\t\t\t\t\trequiredVisibleDependencies: [\n\t\t\t\t\t\t...new Set([...tail.requiredVisibleDependencies, \"native-selected-skill-versions\"]),\n\t\t\t\t\t],\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tconst replayUnits = bindMessageReplayUnits(messages, sourceUnits, unitLimits);\n\t\tconst frozenGroups = checkpoint?.toolContinuations ?? [];\n\t\tconst candidates = messages.flatMap((message, index) => {\n\t\t\tif (message.role !== \"assistant\") return [];\n\t\t\tconst reference = epochReferences.get(message);\n\t\t\tconst prior = frozenGroups.find((group) => group.assistantEntryId === reference?.ref.entryId);\n\t\t\tif (!prior && !replayUnits[index].unavailableDependencies?.some((id) => id.startsWith(\"tool-result:\")))\n\t\t\t\treturn [];\n\t\t\tif (!reference || reference.ref.retention === \"retained-import\")\n\t\t\t\tthrow new Error(\"Tool continuation requires its original assistant source\");\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tmessage,\n\t\t\t\t\tindex,\n\t\t\t\t\treference,\n\t\t\t\t\tprior,\n\t\t\t\t\tintents: new Map<number, Awaited<ReturnType<typeof hydrateCapturedHistoryEntry>>>(),\n\t\t\t\t},\n\t\t\t];\n\t\t});\n\t\tif (frozenGroups.length !== candidates.filter((candidate) => candidate.prior).length)\n\t\t\tthrow new Error(\"Committed tool continuation lost its original group\");\n\t\tif (purpose === \"request\" && candidates.length && (!allowPendingToolPublic || mode === \"off\"))\n\t\t\tthrow new Error(\"Tool continuation requires an enabled native public request boundary\");\n\t\tconst readToolEvidence = async (metadata: IndexedSourceEvent) => {\n\t\t\tconst cached = next.get(metadata.id);\n\t\t\tif (cached?.revision === metadata.revision) return { entry: cached.entry, source: metadata };\n\t\t\tcountBytes(metadata);\n\t\t\treturn hydrateCapturedHistoryEntry(metadata, maxSourceBytes, view.readPayload);\n\t\t};\n\t\tconst acceptIntent = async (metadata: IndexedSourceEvent) => {\n\t\t\tif (\n\t\t\t\tmetadata.kind !== \"tool_intent\" ||\n\t\t\t\tmetadata.qualification !== \"native-tool-execution\" ||\n\t\t\t\tmetadata.retention === \"retained-import\"\n\t\t\t)\n\t\t\t\treturn;\n\t\t\tconst hydrated = await readToolEvidence(metadata);\n\t\t\tconst entry = hydrated.entry;\n\t\t\tif (\n\t\t\t\tentry.type !== \"tool_intent\" ||\n\t\t\t\tentry.assistant?.sessionId !== view.source.sessionId ||\n\t\t\t\tentry.assistant.sessionFile !== view.source.sessionFile\n\t\t\t)\n\t\t\t\treturn;\n\t\t\tconst candidate = candidates.find((item) => item.reference.ref.entryId === entry.assistant?.entryId);\n\t\t\tif (!candidate) return;\n\t\t\tconst invocation = entry.invocation;\n\t\t\tconst call = candidate.message.content.filter((part) => part.type === \"toolCall\")[invocation.sourceOrder];\n\t\t\tif (\n\t\t\t\t!Number.isSafeInteger(invocation.sourceOrder) ||\n\t\t\t\t!call ||\n\t\t\t\tcall.id !== invocation.toolCallId ||\n\t\t\t\tcall.name !== invocation.toolName ||\n\t\t\t\t!invocation.executionId ||\n\t\t\t\tentry.id !== `${invocation.executionId}:intent` ||\n\t\t\t\tmetadata.sequence <= candidate.reference.ref.sequence ||\n\t\t\t\tcandidate.intents.has(invocation.sourceOrder)\n\t\t\t)\n\t\t\t\tthrow new Error(\"Tool continuation has ambiguous original intent\");\n\t\t\tcandidate.intents.set(invocation.sourceOrder, hydrated);\n\t\t};\n\t\tfor (const candidate of candidates) {\n\t\t\tif (!candidate.prior) continue;\n\t\t\tif (!Array.isArray(candidate.prior.calls)) throw new Error(\"Invalid committed tool continuation\");\n\t\t\tfor (const call of candidate.prior.calls) {\n\t\t\t\tconst actual = await view.get(call.intent.id);\n\t\t\t\tif (!actual || actual.revision !== call.intent.revision || actual.sequence !== call.intent.sequence)\n\t\t\t\t\tthrow new Error(\"Committed tool intent is unavailable on this captured branch\");\n\t\t\t\tawait acceptIntent(actual);\n\t\t\t}\n\t\t}\n\t\tconst newGroups = candidates.filter((candidate) => !candidate.prior);\n\t\tif (newGroups.length) {\n\t\t\tlet after = Math.min(...newGroups.map((candidate) => candidate.reference.ref.sequence));\n\t\t\tlet scanned = 0;\n\t\t\tfor (;;) {\n\t\t\t\tconst page = await view.page(after, Math.min(128, maxMessages - scanned + 1));\n\t\t\t\tscanned += page.events.length;\n\t\t\t\tif (scanned > maxMessages) throw new Error(\"Tool continuation source item budget exceeded\");\n\t\t\t\tif (page.coverage !== \"complete\") throw new Error(\"Tool continuation source coverage is incomplete\");\n\t\t\t\tfor (const metadata of page.events) {\n\t\t\t\t\t// Frozen intent refs were already read exactly; do not count them twice as another execution.\n\t\t\t\t\tif (\n\t\t\t\t\t\t!candidates.some((candidate) => candidate.prior?.calls.some((call) => call.intent.id === metadata.id))\n\t\t\t\t\t)\n\t\t\t\t\t\tawait acceptIntent(metadata);\n\t\t\t\t}\n\t\t\t\tif (page.nextAfter === null) break;\n\t\t\t\tif (page.nextAfter <= after) throw new Error(\"Tool continuation source page did not advance\");\n\t\t\t\tafter = page.nextAfter;\n\t\t\t}\n\t\t}\n\t\tconst toolContinuations: ToolContinuationGroup[] = [];\n\t\tconst pendingPublicMessageGroups: number[][] = [];\n\t\tfor (const candidate of candidates) {\n\t\t\tconst toolCalls = candidate.message.content.filter((part) => part.type === \"toolCall\");\n\t\t\tif (\n\t\t\t\t!toolCalls.length ||\n\t\t\t\tcandidate.intents.size !== toolCalls.length ||\n\t\t\t\t(candidate.prior && candidate.prior.calls.length !== toolCalls.length)\n\t\t\t)\n\t\t\t\tthrow new Error(\"View-unit replay group is incomplete: original tool owner is unqualified\");\n\t\t\tconst members = [candidate.index];\n\t\t\tconst calls: ToolContinuationGroup[\"calls\"][number][] = [];\n\t\t\tfor (let order = 0; order < toolCalls.length; order++) {\n\t\t\t\tconst intent = candidate.intents.get(order)!;\n\t\t\t\tif (intent.entry.type !== \"tool_intent\") throw new Error(\"Invalid native tool intent\");\n\t\t\t\tconst invocation = intent.entry.invocation;\n\t\t\t\tconst original = candidate.prior?.calls[order];\n\t\t\t\tif (\n\t\t\t\t\toriginal &&\n\t\t\t\t\t(original.executionId !== invocation.executionId || original.intent.id !== intent.source.id)\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Committed tool execution identity changed\");\n\t\t\t\tconst actual = await view.get(invocation.executionId);\n\t\t\t\tlet outcome: ToolContinuationGroup[\"calls\"][number][\"outcome\"] = \"outcome_unknown\";\n\t\t\t\tif (actual) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tactual.kind !== \"message\" ||\n\t\t\t\t\t\tactual.retention === \"retained-import\" ||\n\t\t\t\t\t\t(actual.qualification !== \"native-tool-execution\" && actual.qualification !== \"native-recovery\") ||\n\t\t\t\t\t\tactual.sequence <= intent.source.sequence\n\t\t\t\t\t)\n\t\t\t\t\t\tthrow new Error(\"Tool outcome lacks its original finalized owner\");\n\t\t\t\t\tconst { entry } = await readToolEvidence(actual);\n\t\t\t\t\tif (\n\t\t\t\t\t\tentry.type !== \"message\" ||\n\t\t\t\t\t\tentry.message.role !== \"toolResult\" ||\n\t\t\t\t\t\tentry.execution?.executionId !== invocation.executionId ||\n\t\t\t\t\t\t!(\"invocationId\" in entry.execution) ||\n\t\t\t\t\t\tentry.execution.invocationId !== intent.source.id ||\n\t\t\t\t\t\tentry.execution.sourceOrder !== order ||\n\t\t\t\t\t\tentry.execution.toolCallId !== invocation.toolCallId ||\n\t\t\t\t\t\tentry.execution.toolName !== invocation.toolName ||\n\t\t\t\t\t\tentry.message.toolCallId !== invocation.toolCallId ||\n\t\t\t\t\t\tentry.message.toolName !== invocation.toolName ||\n\t\t\t\t\t\t![\"not_started\", \"completed\", \"failed\", \"outcome_unknown\"].includes(entry.execution.executionOutcome)\n\t\t\t\t\t)\n\t\t\t\t\t\tthrow new Error(\"Tool outcome does not match its original captured intent\");\n\t\t\t\t\toutcome = entry.execution.executionOutcome;\n\t\t\t\t\tconst index = messages.findIndex((message) => {\n\t\t\t\t\t\tconst ref = epochReferences.get(message)?.ref;\n\t\t\t\t\t\treturn ref?.entryId === actual.id && ref.revision === actual.revision;\n\t\t\t\t\t});\n\t\t\t\t\tif (index <= candidate.index)\n\t\t\t\t\t\tthrow new Error(\"Finalized tool outcome is absent from its whole public group\");\n\t\t\t\t\tmembers.push(index);\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\toriginal?.result &&\n\t\t\t\t\t(!actual ||\n\t\t\t\t\t\toriginal.result.id !== actual.id ||\n\t\t\t\t\t\toriginal.result.sequence !== actual.sequence ||\n\t\t\t\t\t\toriginal.result.revision !== actual.revision)\n\t\t\t\t)\n\t\t\t\t\tthrow new Error(\"Committed finalized tool outcome is unavailable on this captured branch\");\n\t\t\t\tcalls.push({\n\t\t\t\t\texecutionId: invocation.executionId,\n\t\t\t\t\tintent: { id: intent.source.id, sequence: intent.source.sequence, revision: intent.source.revision },\n\t\t\t\t\toutcome,\n\t\t\t\t\t...(actual ? { result: { id: actual.id, sequence: actual.sequence, revision: actual.revision } } : {}),\n\t\t\t\t});\n\t\t\t}\n\t\t\ttoolContinuations.push({ assistantEntryId: candidate.reference.ref.entryId, calls });\n\t\t\tpendingPublicMessageGroups.push(members.sort((left, right) => left - right));\n\t\t}\n\t\tconst publicSourceIds = new Set(\n\t\t\tpendingPublicMessageGroups.flatMap((group) =>\n\t\t\t\tgroup.map((index) => epochReferences.get(messages[index])!.ref.entryId),\n\t\t\t),\n\t\t);\n\t\tif (\n\t\t\tcheckpoint?.views.some(\n\t\t\t\t(pinned) =>\n\t\t\t\t\tpinned.rendering === PUBLIC_TOOL_CONTINUATION_RENDERER && !publicSourceIds.has(pinned.ref.entryId),\n\t\t\t)\n\t\t)\n\t\t\tthrow new Error(\"Committed tool rendering has no matching whole-group recipe\");\n\t\tstringifyBoundedJson(toolContinuations, maxSourceBytes);\n\t\tconst units = pendingPublicMessageGroups.length\n\t\t\t? bindMessageReplayUnits(messages, sourceUnits, unitLimits, \"complete-context\", pendingPublicMessageGroups)\n\t\t\t: replayUnits;\n\t\tconst pendingMarkers = new Set(\n\t\t\tpendingPublicMessageGroups.map((group) => `public-tool-continuation:${units[group[0]].id}`),\n\t\t);\n\t\t// Check every ordinary dependency now. Return the original unadmittable units, not native replay permission.\n\t\tcloseViewSelection(\n\t\t\tunits.map((unit) => ({\n\t\t\t\t...unit,\n\t\t\t\tunavailableDependencies: unit.unavailableDependencies?.filter((id) => !pendingMarkers.has(id)),\n\t\t\t})),\n\t\t\tunits.map((unit) => unit.id),\n\t\t\tunitLimits,\n\t\t);\n\t\tconst closedUnits = units;\n\t\tconst messagesByUnit = new Map(units.map((unit, index) => [unit.id, messages[index]]));\n\t\tconst closedMessages = closedUnits.map((unit) => messagesByUnit.get(unit.id)!);\n\t\t// A frozen literal is immutable inside this epoch, not permanently mandatory at its next ACK boundary.\n\t\tconst selectionUnits = sourceUnits.map((unit, index): ViewUnit => {\n\t\t\tconst message = messages[index];\n\t\t\tif (unit.kind !== \"fixed-view\" || message.role !== \"assistant\") return unit;\n\t\t\treturn {\n\t\t\t\t...unit,\n\t\t\t\tkind: message.content.some((part) => part.type === \"toolCall\") ? \"replay-group\" : \"literal\",\n\t\t\t};\n\t\t});\n\t\tcompiledViewUnits.set(closedMessages, {\n\t\t\tunits: closedUnits,\n\t\t\tselection: {\n\t\t\t\tsource: { ...view.source },\n\t\t\t\tunits: selectionUnits,\n\t\t\t\tlimits: unitLimits,\n\t\t\t\t...(mode === \"on\" && (taskFrameRebased || checkpoint) ? { requiresEpoch: true as const } : {}),\n\t\t\t\t...(pendingPublicMessageGroups.length ? { pendingPublicMessageGroups } : {}),\n\t\t\t},\n\t\t});\n\t\tcompiledEpochContexts.set(closedMessages, {\n\t\t\t...(purpose === \"read\" ? { readOnly: true as const } : {}),\n\t\t\tmode,\n\t\t\tsource: { ...view.source },\n\t\t\tcheckpoint,\n\t\t\tcheckpointEntry:\n\t\t\t\tcheckpoint && first.summaryRef\n\t\t\t\t\t? { sessionId: view.source.sessionId, entryId: first.summaryRef.entryId }\n\t\t\t\t\t: undefined,\n\t\t\ttaskFrame,\n\t\t\t...(taskFrameRebased ? { taskFrameRebased: true as const } : {}),\n\t\t\tresourceRevision: resource?.revision,\n\t\t\treferences: closedMessages.map((message) => epochReferences.get(message) ?? null),\n\t\t\t...(selectedSkills.size ? { selectedSkills: [...selectedSkills.values()] } : {}),\n\t\t\t...(toolContinuations.length ? { toolContinuations } : {}),\n\t\t});\n\t\tif (generation !== this.generation) throw new Error(\"Canonical context owner changed during compilation\");\n\t\tthis.entries = next;\n\t\t// A rebased candidate is not the committed prefix. Adopt it from the next ACKed checkpoint.\n\t\tthis.taskFrame = taskFrameRebased ? referenceFrame : taskFrame;\n\t\tthis.taskBoundary = boundary;\n\t\tthis.source = view.source;\n\t\tthis.sourceBytes = sourceBytes;\n\t\tthis.messageCount = messageCount;\n\t\treturn purpose === \"read\" && pendingPublicMessageGroups.length\n\t\t\t? renderToolContinuationWindow(closedMessages).messages\n\t\t\t: closedMessages;\n\t}\n}\n"]}
|
|
@@ -108,7 +108,7 @@ export declare function buildSummarizationPrompt(customInstructions?: string, pr
|
|
|
108
108
|
* Generate a summary of the conversation using the LLM.
|
|
109
109
|
* If previousSummary is provided, uses the update prompt to merge.
|
|
110
110
|
*/
|
|
111
|
-
export declare function generateSummary(currentMessages: AgentMessage[], model: Model<any>, reserveTokens: number, apiKey: string, headers?: Record<string, string>, signal?: AbortSignal, customInstructions?: string, previousSummary?: string, thinkingLevel?: ThinkingLevel, requests?: InferenceCoordinator): Promise<SummarySlice>;
|
|
111
|
+
export declare function generateSummary(currentMessages: AgentMessage[], model: Model<any>, reserveTokens: number, apiKey: string, headers?: Record<string, string>, signal?: AbortSignal, customInstructions?: string, previousSummary?: string, thinkingLevel?: ThinkingLevel, requests?: InferenceCoordinator, outputTokenLimit?: number): Promise<SummarySlice>;
|
|
112
112
|
export interface CompactionPreparation {
|
|
113
113
|
/** UUID of first entry to keep */
|
|
114
114
|
firstKeptEntryId: string;
|
|
@@ -138,5 +138,5 @@ export declare function prepareCompaction(pathEntries: SessionEntry[], settings:
|
|
|
138
138
|
*/
|
|
139
139
|
/** Runs one summary wire call; hosts decorate each call with its own request identity. */
|
|
140
140
|
export type SummaryCallRunner = <T>(call: (callHeaders: Record<string, string> | undefined) => Promise<T>) => Promise<T>;
|
|
141
|
-
export declare function compact(preparation: CompactionPreparation, model: Model<any>, apiKey: string, headers?: Record<string, string>, customInstructions?: string, signal?: AbortSignal, thinkingLevel?: ThinkingLevel, summaryCall?: SummaryCallRunner, requests?: InferenceCoordinator): Promise<CompactionResult>;
|
|
141
|
+
export declare function compact(preparation: CompactionPreparation, model: Model<any>, apiKey: string, headers?: Record<string, string>, customInstructions?: string, signal?: AbortSignal, thinkingLevel?: ThinkingLevel, summaryCall?: SummaryCallRunner, requests?: InferenceCoordinator, summaryCapacity?: (wrapper: string) => number | undefined): Promise<CompactionResult>;
|
|
142
142
|
//# sourceMappingURL=compaction.d.ts.map
|