@caupulican/pi-agent-core 0.93.18 → 0.94.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-ledger.js","sourceRoot":"","sources":["../../src/session/lifecycle-ledger.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SessionEntry, SessionEntryBase, SessionMessageEntry } from \"./session-manager.ts\";\nimport { collectSessionBranch } from \"./session-tree.ts\";\n\n/** Maximum serialized size for one lifecycle payload. Lifecycle records are a ledger, not a payload store. */\nexport const MAX_LIFECYCLE_PAYLOAD_CHARS = 32 * 1024;\nconst MAX_LIFECYCLE_STRING_CHARS = 4 * 1024;\nconst MAX_LIFECYCLE_ARRAY_ITEMS = 256;\nconst MAX_EXTERNAL_ID_CHARS = 512;\n\nexport interface RequestSnapshotEntry extends SessionEntryBase {\n\ttype: \"request_snapshot\";\n\trequestId: string;\n\treason: \"initial\" | \"resume\" | \"change\";\n\tapi: string;\n\tprovider: string;\n\tmodelId: string;\n\teffectiveConfigFingerprint: string;\n\tsystemFingerprint: string;\n\ttoolsFingerprint: string;\n\thistoryFingerprint: string;\n\tmessageEntryIds: string[];\n}\n\nexport type SessionRequestSnapshotInput = Omit<RequestSnapshotEntry, \"type\" | \"id\" | \"parentId\" | \"timestamp\">;\n\nexport interface ForegroundToolStartEntry extends SessionEntryBase {\n\ttype: \"foreground_tool_start\";\n\trequestId: string;\n\tassistantMessageEntryId: string;\n\tcallId: string;\n\ttoolName: string;\n}\n\nexport type ForegroundToolStartInput = Omit<ForegroundToolStartEntry, \"type\" | \"id\" | \"parentId\" | \"timestamp\">;\n\nexport interface ForegroundToolTerminalEntry extends SessionEntryBase {\n\ttype: \"foreground_tool_terminal\";\n\trequestId: string;\n\tassistantMessageEntryId: string;\n\tcallId: string;\n\ttoolName: string;\n\toutcome: \"success\" | \"error\" | \"cancelled\";\n\tresultMessageEntryId: string;\n\terrorKind?: \"tool_failure\" | \"operation_outcome\";\n}\n\nexport interface CompactionStartEntry extends SessionEntryBase {\n\ttype: \"compaction_start\";\n\tcompactionId: string;\n\tfirstKeptEntryId: string;\n\ttokensBefore: number;\n}\n\nexport interface CompactionEndEntry extends SessionEntryBase {\n\ttype: \"compaction_end\";\n\tcompactionId: string;\n\toutcome: \"success\" | \"failure\" | \"cancelled\" | \"interrupted\";\n\tcompactionEntryId?: string;\n\terror?: string;\n}\n\nexport type SessionLifecycleEntry =\n\t| RequestSnapshotEntry\n\t| ForegroundToolStartEntry\n\t| ForegroundToolTerminalEntry\n\t| CompactionStartEntry\n\t| CompactionEndEntry;\n\nexport const TOOL_NOT_STARTED = \"TOOL_NOT_STARTED\";\nexport const TOOL_OUTCOME_UNKNOWN = \"TOOL_OUTCOME_UNKNOWN\";\n\nfunction lifecycleValidationError(path: string, detail: string): TypeError {\n\treturn new TypeError(`Invalid session lifecycle field ${path}: ${detail}`);\n}\n\nfunction assertBoundedString(value: unknown, path: string, max = MAX_LIFECYCLE_STRING_CHARS): asserts value is string {\n\tif (typeof value !== \"string\" || value.length === 0 || value.length > max) {\n\t\tthrow lifecycleValidationError(path, `expected a non-empty string of at most ${max} characters`);\n\t}\n\tif (/[\\u0000-\\u001f\\u007f]/u.test(value) || value.trim() !== value) {\n\t\tthrow lifecycleValidationError(path, \"control characters and surrounding whitespace are not allowed\");\n\t}\n}\n\nfunction assertSessionEntryId(value: unknown, path: string): asserts value is string {\n\tassertBoundedString(value, path);\n\tif (!/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/u.test(value)) {\n\t\tthrow lifecycleValidationError(path, \"expected a session-safe identifier\");\n\t}\n}\n\n/** External provider/tool identifiers may contain ':' and '|'; only bounded text is assumed. */\nfunction assertExternalId(value: unknown, path: string): asserts value is string {\n\tassertBoundedString(value, path, MAX_EXTERNAL_ID_CHARS);\n}\n\nfunction assertCanonicalIsoTimestamp(value: unknown, path: string): asserts value is string {\n\tassertBoundedString(value, path, 128);\n\tconst timestamp = new Date(value);\n\tif (Number.isNaN(timestamp.getTime()) || timestamp.toISOString() !== value) {\n\t\tthrow lifecycleValidationError(path, \"expected a canonical ISO timestamp with milliseconds and Z\");\n\t}\n}\n\nfunction assertNonNegativeSafeInteger(value: unknown, path: string): asserts value is number {\n\tif (typeof value !== \"number\" || Object.is(value, -0) || !Number.isSafeInteger(value) || value < 0) {\n\t\tthrow lifecycleValidationError(path, \"expected a non-negative safe integer other than -0\");\n\t}\n}\n\nfunction assertRecordKeys(value: Record<string, unknown>, expected: readonly string[]): void {\n\tconst allowed = new Set(expected);\n\tfor (const key of Object.keys(value)) {\n\t\tif (!allowed.has(key)) throw lifecycleValidationError(key, \"unknown field\");\n\t}\n}\n\nfunction fieldsForType(type: string): readonly string[] {\n\tswitch (type) {\n\t\tcase \"request_snapshot\":\n\t\t\treturn [\n\t\t\t\t\"requestId\",\n\t\t\t\t\"reason\",\n\t\t\t\t\"api\",\n\t\t\t\t\"provider\",\n\t\t\t\t\"modelId\",\n\t\t\t\t\"effectiveConfigFingerprint\",\n\t\t\t\t\"systemFingerprint\",\n\t\t\t\t\"toolsFingerprint\",\n\t\t\t\t\"historyFingerprint\",\n\t\t\t\t\"messageEntryIds\",\n\t\t\t];\n\t\tcase \"foreground_tool_start\":\n\t\t\treturn [\"requestId\", \"assistantMessageEntryId\", \"callId\", \"toolName\"];\n\t\tcase \"foreground_tool_terminal\":\n\t\t\treturn [\n\t\t\t\t\"requestId\",\n\t\t\t\t\"assistantMessageEntryId\",\n\t\t\t\t\"callId\",\n\t\t\t\t\"toolName\",\n\t\t\t\t\"outcome\",\n\t\t\t\t\"resultMessageEntryId\",\n\t\t\t\t\"errorKind\",\n\t\t\t];\n\t\tcase \"compaction_start\":\n\t\t\treturn [\"compactionId\", \"firstKeptEntryId\", \"tokensBefore\"];\n\t\tcase \"compaction_end\":\n\t\t\treturn [\"compactionId\", \"outcome\", \"compactionEntryId\", \"error\"];\n\t\tdefault:\n\t\t\treturn [];\n\t}\n}\n\nfunction assertStringArray(value: unknown, path: string): asserts value is string[] {\n\tif (!Array.isArray(value) || value.length > MAX_LIFECYCLE_ARRAY_ITEMS) {\n\t\tthrow lifecycleValidationError(path, `expected at most ${MAX_LIFECYCLE_ARRAY_ITEMS} identifiers`);\n\t}\n\tconst seen = new Set<string>();\n\tfor (let index = 0; index < value.length; index += 1) {\n\t\tassertSessionEntryId(value[index], `${path}[${index}]`);\n\t\tif (seen.has(value[index])) throw lifecycleValidationError(`${path}[${index}]`, \"duplicate identifier\");\n\t\tseen.add(value[index]);\n\t}\n}\n\n/** Runtime validation for all persisted lifecycle records. */\nexport function validateSessionLifecycleEntry(value: unknown): asserts value is SessionLifecycleEntry {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) {\n\t\tthrow lifecycleValidationError(\"entry\", \"expected an object\");\n\t}\n\tconst record = value as Record<string, unknown>;\n\tif (typeof record.type !== \"string\" || fieldsForType(record.type).length === 0) {\n\t\tthrow lifecycleValidationError(\"type\", \"unknown lifecycle entry type\");\n\t}\n\tassertRecordKeys(record, [\"type\", \"id\", \"parentId\", \"timestamp\", ...fieldsForType(record.type)]);\n\tassertSessionEntryId(record.id, \"id\");\n\tif (record.parentId !== null) assertSessionEntryId(record.parentId, \"parentId\");\n\tassertCanonicalIsoTimestamp(record.timestamp, \"timestamp\");\n\n\tswitch (record.type) {\n\t\tcase \"request_snapshot\":\n\t\t\tassertExternalId(record.requestId, \"requestId\");\n\t\t\tif (record.reason !== \"initial\" && record.reason !== \"resume\" && record.reason !== \"change\") {\n\t\t\t\tthrow lifecycleValidationError(\"reason\", \"expected initial, resume, or change\");\n\t\t\t}\n\t\t\tassertBoundedString(record.api, \"api\", 256);\n\t\t\tassertBoundedString(record.provider, \"provider\", 256);\n\t\t\tassertBoundedString(record.modelId, \"modelId\", 256);\n\t\t\tassertBoundedString(record.effectiveConfigFingerprint, \"effectiveConfigFingerprint\");\n\t\t\tassertBoundedString(record.systemFingerprint, \"systemFingerprint\");\n\t\t\tassertBoundedString(record.toolsFingerprint, \"toolsFingerprint\");\n\t\t\tassertBoundedString(record.historyFingerprint, \"historyFingerprint\");\n\t\t\tassertStringArray(record.messageEntryIds, \"messageEntryIds\");\n\t\t\tbreak;\n\t\tcase \"foreground_tool_start\":\n\t\t\tassertExternalId(record.requestId, \"requestId\");\n\t\t\tassertSessionEntryId(record.assistantMessageEntryId, \"assistantMessageEntryId\");\n\t\t\tassertExternalId(record.callId, \"callId\");\n\t\t\tassertBoundedString(record.toolName, \"toolName\", 256);\n\t\t\tbreak;\n\t\tcase \"foreground_tool_terminal\":\n\t\t\tassertExternalId(record.requestId, \"requestId\");\n\t\t\tassertSessionEntryId(record.assistantMessageEntryId, \"assistantMessageEntryId\");\n\t\t\tassertExternalId(record.callId, \"callId\");\n\t\t\tassertBoundedString(record.toolName, \"toolName\", 256);\n\t\t\tif (record.outcome !== \"success\" && record.outcome !== \"error\" && record.outcome !== \"cancelled\") {\n\t\t\t\tthrow lifecycleValidationError(\"outcome\", \"expected success, error, or cancelled\");\n\t\t\t}\n\t\t\tassertSessionEntryId(record.resultMessageEntryId, \"resultMessageEntryId\");\n\t\t\tif (\n\t\t\t\trecord.errorKind !== undefined &&\n\t\t\t\trecord.errorKind !== \"tool_failure\" &&\n\t\t\t\trecord.errorKind !== \"operation_outcome\"\n\t\t\t) {\n\t\t\t\tthrow lifecycleValidationError(\"errorKind\", \"expected tool_failure or operation_outcome\");\n\t\t\t}\n\t\t\tif (record.outcome === \"error\" && record.errorKind === undefined) {\n\t\t\t\tthrow lifecycleValidationError(\"errorKind\", \"error outcomes require an error kind\");\n\t\t\t}\n\t\t\tif (record.outcome !== \"error\" && record.errorKind !== undefined) {\n\t\t\t\tthrow lifecycleValidationError(\"errorKind\", \"only error outcomes may carry an error kind\");\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"compaction_start\":\n\t\t\tassertExternalId(record.compactionId, \"compactionId\");\n\t\t\tassertSessionEntryId(record.firstKeptEntryId, \"firstKeptEntryId\");\n\t\t\tassertNonNegativeSafeInteger(record.tokensBefore, \"tokensBefore\");\n\t\t\tbreak;\n\t\tcase \"compaction_end\":\n\t\t\tassertExternalId(record.compactionId, \"compactionId\");\n\t\t\tif (\n\t\t\t\trecord.outcome !== \"success\" &&\n\t\t\t\trecord.outcome !== \"failure\" &&\n\t\t\t\trecord.outcome !== \"cancelled\" &&\n\t\t\t\trecord.outcome !== \"interrupted\"\n\t\t\t) {\n\t\t\t\tthrow lifecycleValidationError(\"outcome\", \"expected success, failure, cancelled, or interrupted\");\n\t\t\t}\n\t\t\tif (record.outcome === \"success\") {\n\t\t\t\tassertSessionEntryId(record.compactionEntryId, \"compactionEntryId\");\n\t\t\t\tif (\"error\" in record)\n\t\t\t\t\tthrow lifecycleValidationError(\"error\", \"successful compactions cannot carry an error\");\n\t\t\t} else {\n\t\t\t\tif (\"compactionEntryId\" in record) {\n\t\t\t\t\tthrow lifecycleValidationError(\"compactionEntryId\", \"only successful compactions may carry an entry id\");\n\t\t\t\t}\n\t\t\t\tif (record.outcome === \"failure\" && !record.error) {\n\t\t\t\t\tthrow lifecycleValidationError(\"error\", \"failure outcomes require a bounded error\");\n\t\t\t\t}\n\t\t\t\tif (\"error\" in record) assertBoundedString(record.error, \"error\", MAX_LIFECYCLE_PAYLOAD_CHARS);\n\t\t\t}\n\t\t\tbreak;\n\t}\n}\n\nfunction assertLifecycleEntries(entries: readonly (SessionEntry | { type: \"session\" })[]): void {\n\tfor (const entry of entries) {\n\t\tif (entry.type !== \"session\" && isSessionLifecycleEntry(entry)) encodeSessionLifecycleEntry(entry);\n\t}\n}\n\nexport function isSessionLifecycleEntry(entry: SessionEntry): entry is SessionLifecycleEntry {\n\treturn fieldsForType(entry.type).length > 0;\n}\n\nexport function validateLoadedLifecycleEntries(entries: readonly (SessionEntry | { type: \"session\" })[]): void {\n\tassertLifecycleEntries(entries);\n}\n\nexport function encodeSessionLifecycleEntry(entry: SessionLifecycleEntry): string {\n\tvalidateSessionLifecycleEntry(entry);\n\tconst encoded = JSON.stringify(entry);\n\tif (encoded.length > MAX_LIFECYCLE_PAYLOAD_CHARS) {\n\t\tthrow lifecycleValidationError(\"entry\", `serialized record exceeds ${MAX_LIFECYCLE_PAYLOAD_CHARS} characters`);\n\t}\n\treturn encoded;\n}\n\nexport function decodeSessionLifecycleEntry(value: unknown): SessionLifecycleEntry {\n\tvalidateSessionLifecycleEntry(value);\n\tencodeSessionLifecycleEntry(value);\n\treturn value;\n}\n\nexport function encodeSessionEntry(entry: SessionEntry): string {\n\treturn isSessionLifecycleEntry(entry) ? encodeSessionLifecycleEntry(entry) : JSON.stringify(entry);\n}\n\nexport interface SessionLifecycleAssistantToolCall {\n\trequestId?: string;\n\tassistantMessageEntryId: string;\n\tcallId: string;\n\tmodelOrder: number;\n\tposition: number;\n\ttoolName: string;\n}\n\nexport interface SessionLifecycleToolResult {\n\trequestId?: string;\n\tassistantMessageEntryId?: string;\n\tcallId: string;\n\tresultMessageEntryId: string;\n\tposition: number;\n\ttoolName: string;\n\tisError: boolean;\n\terrorKind?: \"tool_failure\" | \"operation_outcome\";\n}\n\nexport interface SessionLifecycleToolRecord {\n\tstarts: readonly ForegroundToolStartEntry[];\n\tterminals: readonly ForegroundToolTerminalEntry[];\n\tassistantCalls: readonly SessionLifecycleAssistantToolCall[];\n\tresults: readonly SessionLifecycleToolResult[];\n\tstart?: ForegroundToolStartEntry;\n\tterminal?: ForegroundToolTerminalEntry;\n\tresult?: SessionLifecycleToolResult;\n}\n\nexport interface SessionLifecycleCompactionRecord {\n\tstarts: readonly CompactionStartEntry[];\n\tends: readonly CompactionEndEntry[];\n\tstart?: CompactionStartEntry;\n\tend?: CompactionEndEntry;\n}\n\nfunction createToolRecord(): SessionLifecycleToolRecord {\n\treturn { starts: [], terminals: [], assistantCalls: [], results: [] };\n}\n\nfunction createCompactionRecord(): SessionLifecycleCompactionRecord {\n\treturn { starts: [], ends: [] };\n}\n\nexport interface SessionLifecycleIndex {\n\tbranchEntryIds: readonly string[];\n\tentryPositions: ReadonlyMap<string, number>;\n\tentryTypes: ReadonlyMap<string, string>;\n\tentriesById: ReadonlyMap<string, SessionEntry>;\n\trequestSnapshots: readonly RequestSnapshotEntry[];\n\tassistantToolCalls: readonly SessionLifecycleAssistantToolCall[];\n\ttoolResults: readonly SessionLifecycleToolResult[];\n\ttoolsByIdentity: ReadonlyMap<string, SessionLifecycleToolRecord>;\n\tcompactionsById: ReadonlyMap<string, SessionLifecycleCompactionRecord>;\n\tambiguousResultEntryIds: readonly string[];\n\tunmatchedResultEntryIds: readonly string[];\n}\n\nexport interface SessionLifecycleUnstartedTool {\n\trequestId?: string;\n\tassistantMessageEntryId: string;\n\ttoolName: string;\n\tcallId: string;\n}\n\nexport interface SessionLifecycleUnknownToolOutcome {\n\trequestId: string;\n\tassistantMessageEntryId: string;\n\ttoolName: string;\n\tcallId: string;\n\tstartEntryId: string;\n}\n\nexport interface SessionLifecycleTerminalPromotion {\n\trequestId?: string;\n\tassistantMessageEntryId: string;\n\ttoolName: string;\n\tcallId: string;\n\tresultMessageEntryId: string;\n\toutcome: \"success\" | \"error\";\n\terrorKind?: \"tool_failure\" | \"operation_outcome\";\n}\n\nexport interface SessionLifecycleInspection extends SessionLifecycleIndex {\n\trefusalReasons: readonly string[];\n\tduplicateRequestSnapshots: readonly RequestSnapshotEntry[];\n\tunmatchedToolStarts: readonly ForegroundToolStartEntry[];\n\tunmatchedToolTerminals: readonly ForegroundToolTerminalEntry[];\n\tduplicateToolStarts: readonly ForegroundToolStartEntry[];\n\tduplicateToolTerminals: readonly ForegroundToolTerminalEntry[];\n\tduplicateAssistantToolCalls: readonly SessionLifecycleAssistantToolCall[];\n\tduplicateToolResults: readonly SessionLifecycleToolResult[];\n\tmismatchedToolEntries: readonly string[];\n\toutOfOrderToolEntries: readonly string[];\n\tunstartedTools: readonly SessionLifecycleUnstartedTool[];\n\tunknownToolOutcomes: readonly SessionLifecycleUnknownToolOutcome[];\n\tunmatchedCompactionEnds: readonly CompactionEndEntry[];\n\tduplicateCompactionStarts: readonly CompactionStartEntry[];\n\tduplicateCompactionEnds: readonly CompactionEndEntry[];\n\toutOfOrderCompactionEntries: readonly string[];\n\tinvalidCompactionReferences: readonly string[];\n\torphanedCompactions: readonly CompactionStartEntry[];\n\tterminalPromotions: readonly SessionLifecycleTerminalPromotion[];\n\tbalanced: boolean;\n}\n\nexport interface SessionLifecycleRepairPlan {\n\trefused: boolean;\n\trefusalReasons: readonly string[];\n\ttoolClosers: readonly {\n\t\trequestId?: string;\n\t\tassistantMessageEntryId: string;\n\t\ttoolName: string;\n\t\tcallId: string;\n\t\tcode: typeof TOOL_NOT_STARTED | typeof TOOL_OUTCOME_UNKNOWN;\n\t\tsourceEntryId?: string;\n\t}[];\n\tterminalPromotions: readonly SessionLifecycleTerminalPromotion[];\n\tcompactionClosers: readonly {\n\t\tcompactionId: string;\n\t\tsourceEntryId: string;\n\t\toutcome: \"interrupted\";\n\t}[];\n}\n\nexport function sessionLifecycleToolIdentityKey(\n\trequestId: string | undefined,\n\tassistantMessageEntryId: string,\n\tcallId: string,\n): string {\n\treturn JSON.stringify([requestId ?? null, assistantMessageEntryId, callId]);\n}\n\nfunction assistantToolKey(assistantMessageEntryId: string, callId: string): string {\n\treturn JSON.stringify([assistantMessageEntryId, callId]);\n}\n\nfunction requestCallKey(requestId: string | undefined, callId: string): string {\n\treturn JSON.stringify([requestId ?? null, callId]);\n}\n\nexport function indexSessionLifecycle(entries: readonly SessionEntry[], leafId?: string | null): SessionLifecycleIndex {\n\tconst branch = collectSessionBranch(entries, leafId);\n\tconst entryPositions = new Map<string, number>();\n\tconst entryTypes = new Map<string, string>();\n\tconst entriesById = new Map<string, SessionEntry>();\n\tfor (let position = 0; position < branch.length; position += 1) {\n\t\tentryPositions.set(branch[position]!.id, position);\n\t\tentryTypes.set(branch[position]!.id, branch[position]!.type);\n\t\tentriesById.set(branch[position]!.id, branch[position]!);\n\t}\n\tconst requestSnapshots = branch.filter((entry): entry is RequestSnapshotEntry => entry.type === \"request_snapshot\");\n\tconst requestAtPosition: Array<RequestSnapshotEntry | undefined> = [];\n\tlet currentRequest: RequestSnapshotEntry | undefined;\n\tfor (let position = 0; position < branch.length; position += 1) {\n\t\tconst entry = branch[position]!;\n\t\tif (entry.type === \"request_snapshot\") currentRequest = entry;\n\t\trequestAtPosition[position] = currentRequest;\n\t}\n\tconst assistantToolCalls: SessionLifecycleAssistantToolCall[] = [];\n\tconst assistantCallsByMessageCall = new Map<string, SessionLifecycleAssistantToolCall[]>();\n\tconst pendingCallsByRequestAndCall = new Map<string, SessionLifecycleAssistantToolCall[]>();\n\tconst completedCallsByRequestAndCall = new Map<string, SessionLifecycleAssistantToolCall>();\n\tconst ambiguousResultEntryIds: string[] = [];\n\tconst unmatchedResultEntryIds: string[] = [];\n\tconst toolResults: SessionLifecycleToolResult[] = [];\n\tconst createToolResult = (\n\t\tcall: SessionLifecycleAssistantToolCall,\n\t\tentry: SessionMessageEntry,\n\t\tposition: number,\n\t): SessionLifecycleToolResult => {\n\t\tif (entry.message.role !== \"toolResult\") throw new TypeError(\"Expected a tool result message entry.\");\n\t\treturn {\n\t\t\trequestId: call.requestId,\n\t\t\tassistantMessageEntryId: call.assistantMessageEntryId,\n\t\t\tcallId: entry.message.toolCallId,\n\t\t\tresultMessageEntryId: entry.id,\n\t\t\tposition,\n\t\t\ttoolName: entry.message.toolName,\n\t\t\tisError: entry.message.isError,\n\t\t\t...(entry.message.isError\n\t\t\t\t? { errorKind: entry.message.errorKind ?? \"tool_failure\" }\n\t\t\t\t: entry.message.errorKind === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: { errorKind: entry.message.errorKind }),\n\t\t};\n\t};\n\tfor (let position = 0; position < branch.length; position += 1) {\n\t\tconst entry = branch[position]!;\n\t\tif (entry.type !== \"message\") continue;\n\t\tif (entry.message.role === \"assistant\") {\n\t\t\tconst request = requestAtPosition[position];\n\t\t\tfor (const block of entry.message.content) {\n\t\t\t\tif (block.type !== \"toolCall\") continue;\n\t\t\t\tconst call: SessionLifecycleAssistantToolCall = {\n\t\t\t\t\trequestId: request?.requestId,\n\t\t\t\t\tassistantMessageEntryId: entry.id,\n\t\t\t\t\tcallId: block.id,\n\t\t\t\t\tmodelOrder: assistantToolCalls.length,\n\t\t\t\t\tposition,\n\t\t\t\t\ttoolName: block.name,\n\t\t\t\t};\n\t\t\t\tassistantToolCalls.push(call);\n\t\t\t\tconst messageCallKey = assistantToolKey(call.assistantMessageEntryId, call.callId);\n\t\t\t\tconst messageCalls = assistantCallsByMessageCall.get(messageCallKey) ?? [];\n\t\t\t\tmessageCalls.push(call);\n\t\t\t\tassistantCallsByMessageCall.set(messageCallKey, messageCalls);\n\t\t\t\tconst requestKey = requestCallKey(call.requestId, call.callId);\n\t\t\t\tconst pendingCalls = pendingCallsByRequestAndCall.get(requestKey) ?? [];\n\t\t\t\tpendingCalls.push(call);\n\t\t\t\tpendingCallsByRequestAndCall.set(requestKey, pendingCalls);\n\t\t\t}\n\t\t} else if (entry.message.role === \"toolResult\") {\n\t\t\tconst request = requestAtPosition[position];\n\t\t\tconst requestKey = requestCallKey(request?.requestId, entry.message.toolCallId);\n\t\t\tconst pendingCalls = pendingCallsByRequestAndCall.get(requestKey);\n\t\t\tif (!pendingCalls || pendingCalls.length !== 1) {\n\t\t\t\tif (pendingCalls && pendingCalls.length > 1) ambiguousResultEntryIds.push(entry.id);\n\t\t\t\telse {\n\t\t\t\t\tconst completedCall = completedCallsByRequestAndCall.get(requestKey);\n\t\t\t\t\tif (completedCall) toolResults.push(createToolResult(completedCall, entry, position));\n\t\t\t\t\telse unmatchedResultEntryIds.push(entry.id);\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst call = pendingCalls.pop()!;\n\t\t\tcompletedCallsByRequestAndCall.set(requestKey, call);\n\t\t\ttoolResults.push(createToolResult(call, entry, position));\n\t\t}\n\t}\n\n\tconst toolsByIdentity = new Map<string, SessionLifecycleToolRecord>();\n\tconst resultByIdentity = new Map<string, SessionLifecycleToolResult[]>();\n\tfor (const result of toolResults) {\n\t\tconst key = sessionLifecycleToolIdentityKey(result.requestId, result.assistantMessageEntryId!, result.callId);\n\t\tconst results = resultByIdentity.get(key) ?? [];\n\t\tresults.push(result);\n\t\tresultByIdentity.set(key, results);\n\t}\n\tfor (const call of assistantToolCalls) {\n\t\tconst key = sessionLifecycleToolIdentityKey(call.requestId, call.assistantMessageEntryId, call.callId);\n\t\tconst record = toolsByIdentity.get(key) ?? createToolRecord();\n\t\t(record.assistantCalls as SessionLifecycleAssistantToolCall[]).push(call);\n\t\tconst results = resultByIdentity.get(key);\n\t\tif (results) {\n\t\t\t(record.results as SessionLifecycleToolResult[]).push(...results);\n\t\t\tif (!record.result) record.result = results[0];\n\t\t}\n\t\ttoolsByIdentity.set(key, record);\n\t}\n\n\tconst legacyAliases = new Map<string, string>();\n\tconst lifecycleRecord = (\n\t\trequestId: string,\n\t\tassistantMessageEntryId: string,\n\t\tcallId: string,\n\t): SessionLifecycleToolRecord => {\n\t\tconst key = sessionLifecycleToolIdentityKey(requestId, assistantMessageEntryId, callId);\n\t\tconst direct = toolsByIdentity.get(key);\n\t\tif (direct) return direct;\n\t\tconst messageCallKey = assistantToolKey(assistantMessageEntryId, callId);\n\t\tconst candidates = assistantCallsByMessageCall.get(messageCallKey) ?? [];\n\t\tif (candidates.length === 1 && candidates[0]!.requestId === undefined) {\n\t\t\tconst previousKey = legacyAliases.get(messageCallKey);\n\t\t\tif (previousKey !== undefined && previousKey !== key) {\n\t\t\t\tconst unmatched = createToolRecord();\n\t\t\t\ttoolsByIdentity.set(key, unmatched);\n\t\t\t\treturn unmatched;\n\t\t\t}\n\t\t\tconst legacyKey = sessionLifecycleToolIdentityKey(undefined, assistantMessageEntryId, callId);\n\t\t\tconst legacyRecord = toolsByIdentity.get(legacyKey);\n\t\t\tif (legacyRecord) {\n\t\t\t\ttoolsByIdentity.delete(legacyKey);\n\t\t\t\ttoolsByIdentity.set(key, legacyRecord);\n\t\t\t\tlegacyAliases.set(messageCallKey, key);\n\t\t\t\treturn legacyRecord;\n\t\t\t}\n\t\t}\n\t\tconst record = createToolRecord();\n\t\ttoolsByIdentity.set(key, record);\n\t\treturn record;\n\t};\n\n\tconst compactionsById = new Map<string, SessionLifecycleCompactionRecord>();\n\tfor (const entry of branch) {\n\t\tif (entry.type === \"foreground_tool_start\") {\n\t\t\tconst record = lifecycleRecord(entry.requestId, entry.assistantMessageEntryId, entry.callId);\n\t\t\t(record.starts as ForegroundToolStartEntry[]).push(entry);\n\t\t\tif (!record.start) record.start = entry;\n\t\t} else if (entry.type === \"foreground_tool_terminal\") {\n\t\t\tconst record = lifecycleRecord(entry.requestId, entry.assistantMessageEntryId, entry.callId);\n\t\t\t(record.terminals as ForegroundToolTerminalEntry[]).push(entry);\n\t\t\tif (!record.terminal) record.terminal = entry;\n\t\t} else if (entry.type === \"compaction_start\") {\n\t\t\tconst record = compactionsById.get(entry.compactionId) ?? createCompactionRecord();\n\t\t\t(record.starts as CompactionStartEntry[]).push(entry);\n\t\t\tif (!record.start) record.start = entry;\n\t\t\tcompactionsById.set(entry.compactionId, record);\n\t\t} else if (entry.type === \"compaction_end\") {\n\t\t\tconst record = compactionsById.get(entry.compactionId) ?? createCompactionRecord();\n\t\t\t(record.ends as CompactionEndEntry[]).push(entry);\n\t\t\tif (!record.end) record.end = entry;\n\t\t\tcompactionsById.set(entry.compactionId, record);\n\t\t}\n\t}\n\treturn {\n\t\tbranchEntryIds: branch.map((entry) => entry.id),\n\t\tentryPositions,\n\t\tentryTypes,\n\t\tentriesById,\n\t\trequestSnapshots,\n\t\tassistantToolCalls,\n\t\ttoolResults,\n\t\ttoolsByIdentity,\n\t\tcompactionsById,\n\t\tambiguousResultEntryIds,\n\t\tunmatchedResultEntryIds,\n\t};\n}\n\nfunction resultForRecord(record: SessionLifecycleToolRecord): SessionLifecycleToolResult | undefined {\n\treturn record.result ?? record.results[0];\n}\n\nexport function inspectSessionLifecycle(\n\tentries: readonly SessionEntry[],\n\tleafId?: string | null,\n): SessionLifecycleInspection {\n\tconst index = indexSessionLifecycle(entries, leafId);\n\tconst duplicateRequestSnapshots: RequestSnapshotEntry[] = [];\n\tconst requestIds = new Set<string>();\n\tfor (const request of index.requestSnapshots) {\n\t\tif (requestIds.has(request.requestId)) duplicateRequestSnapshots.push(request);\n\t\trequestIds.add(request.requestId);\n\t}\n\tconst unmatchedToolStarts: ForegroundToolStartEntry[] = [];\n\tconst unmatchedToolTerminals: ForegroundToolTerminalEntry[] = [];\n\tconst duplicateToolStarts: ForegroundToolStartEntry[] = [];\n\tconst duplicateToolTerminals: ForegroundToolTerminalEntry[] = [];\n\tconst duplicateAssistantToolCalls: SessionLifecycleAssistantToolCall[] = [];\n\tconst duplicateToolResults: SessionLifecycleToolResult[] = [];\n\tconst mismatchedToolEntries: string[] = [];\n\tconst outOfOrderToolEntries: string[] = [];\n\tconst unstartedTools: SessionLifecycleUnstartedTool[] = [];\n\tconst unknownToolOutcomes: SessionLifecycleUnknownToolOutcome[] = [];\n\tconst terminalPromotions: SessionLifecycleTerminalPromotion[] = [];\n\tfor (const record of index.toolsByIdentity.values()) {\n\t\tif (record.starts.length > 1) duplicateToolStarts.push(...record.starts.slice(1));\n\t\tif (record.terminals.length > 1) duplicateToolTerminals.push(...record.terminals.slice(1));\n\t\tif (record.assistantCalls.length > 1) duplicateAssistantToolCalls.push(...record.assistantCalls.slice(1));\n\t\tif (record.results.length > 1) duplicateToolResults.push(...record.results.slice(1));\n\t\tif (record.assistantCalls.length === 0) {\n\t\t\tunmatchedToolStarts.push(...record.starts);\n\t\t\tunmatchedToolTerminals.push(...record.terminals);\n\t\t\tcontinue;\n\t\t}\n\t\tconst call = record.assistantCalls[0]!;\n\t\tconst start = record.start;\n\t\tconst terminal = record.terminal;\n\t\tconst result = resultForRecord(record);\n\t\tif (start && start.toolName !== call.toolName) mismatchedToolEntries.push(start.id);\n\t\tif (terminal && terminal.toolName !== call.toolName) mismatchedToolEntries.push(terminal.id);\n\t\tif (result && result.toolName !== call.toolName) mismatchedToolEntries.push(result.resultMessageEntryId);\n\t\tif (start && index.entryPositions.get(start.id)! < call.position) outOfOrderToolEntries.push(start.id);\n\t\tif (terminal && start && index.entryPositions.get(terminal.id)! < index.entryPositions.get(start.id)!)\n\t\t\toutOfOrderToolEntries.push(terminal.id);\n\t\tif (result && result.position < call.position) outOfOrderToolEntries.push(result.resultMessageEntryId);\n\t\tif (terminal && result && (index.entryPositions.get(terminal.id) ?? -1) < result.position) {\n\t\t\toutOfOrderToolEntries.push(terminal.id);\n\t\t}\n\t\tif (terminal?.resultMessageEntryId !== undefined && !result)\n\t\t\toutOfOrderToolEntries.push(terminal.resultMessageEntryId);\n\t\tif (terminal && !start) mismatchedToolEntries.push(terminal.id);\n\t\tif (result) {\n\t\t\tif (!result.isError && result.errorKind !== undefined) {\n\t\t\t\tmismatchedToolEntries.push(result.resultMessageEntryId);\n\t\t\t}\n\t\t\tconst terminalMatches =\n\t\t\t\tterminal?.resultMessageEntryId === result.resultMessageEntryId &&\n\t\t\t\tterminal.outcome === (result.isError ? \"error\" : \"success\") &&\n\t\t\t\tterminal.errorKind === result.errorKind;\n\t\t\tif (terminal && !terminalMatches) {\n\t\t\t\tmismatchedToolEntries.push(terminal.id);\n\t\t\t}\n\t\t\tif (start && !terminal) {\n\t\t\t\tterminalPromotions.push({\n\t\t\t\t\t...(start?.requestId === undefined && call.requestId === undefined\n\t\t\t\t\t\t? {}\n\t\t\t\t\t\t: { requestId: start?.requestId ?? call.requestId }),\n\t\t\t\t\tassistantMessageEntryId: call.assistantMessageEntryId,\n\t\t\t\t\ttoolName: call.toolName,\n\t\t\t\t\tcallId: call.callId,\n\t\t\t\t\tresultMessageEntryId: result.resultMessageEntryId,\n\t\t\t\t\toutcome: result.isError ? \"error\" : \"success\",\n\t\t\t\t\t...(result.errorKind === undefined ? {} : { errorKind: result.errorKind }),\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (!start) {\n\t\t\tunstartedTools.push({\n\t\t\t\trequestId: call.requestId,\n\t\t\t\tassistantMessageEntryId: call.assistantMessageEntryId,\n\t\t\t\ttoolName: call.toolName,\n\t\t\t\tcallId: call.callId,\n\t\t\t});\n\t\t} else {\n\t\t\tif (terminal) mismatchedToolEntries.push(terminal.id);\n\t\t\tunknownToolOutcomes.push({\n\t\t\t\trequestId: call.requestId ?? start.requestId,\n\t\t\t\tassistantMessageEntryId: call.assistantMessageEntryId,\n\t\t\t\ttoolName: call.toolName,\n\t\t\t\tcallId: call.callId,\n\t\t\t\tstartEntryId: start.id,\n\t\t\t});\n\t\t}\n\t}\n\n\tconst unmatchedCompactionEnds: CompactionEndEntry[] = [];\n\tconst duplicateCompactionStarts: CompactionStartEntry[] = [];\n\tconst duplicateCompactionEnds: CompactionEndEntry[] = [];\n\tconst outOfOrderCompactionEntries: string[] = [];\n\tconst invalidCompactionReferences: string[] = [];\n\tconst orphanedCompactions: CompactionStartEntry[] = [];\n\tfor (const [compactionId, record] of index.compactionsById) {\n\t\tif (record.starts.length > 1) duplicateCompactionStarts.push(...record.starts.slice(1));\n\t\tif (record.ends.length > 1) duplicateCompactionEnds.push(...record.ends.slice(1));\n\t\tif (!record.start && record.end) unmatchedCompactionEnds.push(record.end);\n\t\tif (record.start) {\n\t\t\tconst startPosition = index.entryPositions.get(record.start.id);\n\t\t\tconst firstKeptPosition = index.entryPositions.get(record.start.firstKeptEntryId);\n\t\t\tif (firstKeptPosition === undefined || startPosition === undefined || firstKeptPosition >= startPosition) {\n\t\t\t\tinvalidCompactionReferences.push(compactionId);\n\t\t\t}\n\t\t\tif (!record.end) orphanedCompactions.push(record.start);\n\t\t\tif (record.end?.outcome === \"success\") {\n\t\t\t\tconst compactionPosition = record.end.compactionEntryId\n\t\t\t\t\t? index.entryPositions.get(record.end.compactionEntryId)\n\t\t\t\t\t: undefined;\n\t\t\t\tconst compactionEntry = record.end.compactionEntryId\n\t\t\t\t\t? index.entriesById.get(record.end.compactionEntryId)\n\t\t\t\t\t: undefined;\n\t\t\t\tconst finalFirstKeptPosition =\n\t\t\t\t\tcompactionEntry?.type === \"compaction\"\n\t\t\t\t\t\t? index.entryPositions.get(compactionEntry.firstKeptEntryId)\n\t\t\t\t\t\t: undefined;\n\t\t\t\tif (\n\t\t\t\t\t!record.end.compactionEntryId ||\n\t\t\t\t\tindex.entryTypes.get(record.end.compactionEntryId) !== \"compaction\" ||\n\t\t\t\t\tcompactionPosition === undefined ||\n\t\t\t\t\tstartPosition === undefined ||\n\t\t\t\t\tcompactionPosition <= startPosition ||\n\t\t\t\t\t(index.entryPositions.get(record.end.id) ?? -1) <= compactionPosition ||\n\t\t\t\t\tcompactionEntry?.type !== \"compaction\" ||\n\t\t\t\t\tfinalFirstKeptPosition === undefined ||\n\t\t\t\t\tfinalFirstKeptPosition >= compactionPosition\n\t\t\t\t) {\n\t\t\t\t\tinvalidCompactionReferences.push(compactionId);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (\n\t\t\t\trecord.end &&\n\t\t\t\tstartPosition !== undefined &&\n\t\t\t\t(index.entryPositions.get(record.end.id) ?? -1) < startPosition\n\t\t\t) {\n\t\t\t\toutOfOrderCompactionEntries.push(record.end.id);\n\t\t\t}\n\t\t}\n\t}\n\tconst refusalReasons = [\n\t\t...(index.ambiguousResultEntryIds.length > 0 ? [\"ambiguous tool-result association\"] : []),\n\t\t...(index.unmatchedResultEntryIds.length > 0 ? [\"unmatched tool-result association\"] : []),\n\t\t...(duplicateRequestSnapshots.length > 0 ? [\"duplicate request snapshots\"] : []),\n\t\t...(unmatchedToolStarts.length > 0 ? [\"unmatched lifecycle tool starts\"] : []),\n\t\t...(unmatchedToolTerminals.length > 0 ? [\"unmatched lifecycle tool terminals\"] : []),\n\t\t...(duplicateToolStarts.length > 0 ? [\"duplicate lifecycle tool starts\"] : []),\n\t\t...(duplicateToolTerminals.length > 0 ? [\"duplicate lifecycle tool terminals\"] : []),\n\t\t...(duplicateAssistantToolCalls.length > 0 ? [\"duplicate assistant tool calls\"] : []),\n\t\t...(duplicateToolResults.length > 0 ? [\"duplicate tool results\"] : []),\n\t\t...(mismatchedToolEntries.length > 0 ? [\"mismatched tool metadata\"] : []),\n\t\t...(outOfOrderToolEntries.length > 0 ? [\"out-of-order tool lifecycle\"] : []),\n\t\t...(duplicateCompactionStarts.length > 0 ? [\"duplicate compaction starts\"] : []),\n\t\t...(duplicateCompactionEnds.length > 0 ? [\"duplicate compaction ends\"] : []),\n\t\t...(unmatchedCompactionEnds.length > 0 ? [\"unmatched compaction ends\"] : []),\n\t\t...(outOfOrderCompactionEntries.length > 0 ? [\"out-of-order compaction lifecycle\"] : []),\n\t\t...(invalidCompactionReferences.length > 0 ? [\"invalid compaction references\"] : []),\n\t];\n\treturn {\n\t\t...index,\n\t\trefusalReasons,\n\t\tduplicateRequestSnapshots,\n\t\tunmatchedToolStarts,\n\t\tunmatchedToolTerminals,\n\t\tduplicateToolStarts,\n\t\tduplicateToolTerminals,\n\t\tduplicateAssistantToolCalls,\n\t\tduplicateToolResults,\n\t\tmismatchedToolEntries,\n\t\toutOfOrderToolEntries,\n\t\tunstartedTools,\n\t\tunknownToolOutcomes,\n\t\tunmatchedCompactionEnds,\n\t\tduplicateCompactionStarts,\n\t\tduplicateCompactionEnds,\n\t\toutOfOrderCompactionEntries,\n\t\tinvalidCompactionReferences,\n\t\torphanedCompactions,\n\t\tterminalPromotions,\n\t\tbalanced:\n\t\t\trefusalReasons.length === 0 &&\n\t\t\tunstartedTools.length === 0 &&\n\t\t\tunknownToolOutcomes.length === 0 &&\n\t\t\tterminalPromotions.length === 0 &&\n\t\t\torphanedCompactions.length === 0,\n\t};\n}\n\nexport function planSessionLifecycleRepair(\n\tentries: readonly SessionEntry[],\n\tleafId?: string | null,\n): SessionLifecycleRepairPlan {\n\tconst inspection = inspectSessionLifecycle(entries, leafId);\n\tconst refused = inspection.refusalReasons.length > 0;\n\tif (refused) {\n\t\treturn {\n\t\t\trefused: true,\n\t\t\trefusalReasons: inspection.refusalReasons,\n\t\t\ttoolClosers: [],\n\t\t\tterminalPromotions: [],\n\t\t\tcompactionClosers: [],\n\t\t};\n\t}\n\tconst toolClosers: SessionLifecycleRepairPlan[\"toolClosers\"][number][] = [\n\t\t...inspection.unstartedTools.map((tool) => ({\n\t\t\t...tool,\n\t\t\tcode: (tool.requestId === undefined ? TOOL_OUTCOME_UNKNOWN : TOOL_NOT_STARTED) as\n\t\t\t\t| typeof TOOL_NOT_STARTED\n\t\t\t\t| typeof TOOL_OUTCOME_UNKNOWN,\n\t\t})),\n\t\t...inspection.unknownToolOutcomes.map((tool) => ({\n\t\t\trequestId: tool.requestId,\n\t\t\tassistantMessageEntryId: tool.assistantMessageEntryId,\n\t\t\ttoolName: tool.toolName,\n\t\t\tcallId: tool.callId,\n\t\t\tcode: TOOL_OUTCOME_UNKNOWN as typeof TOOL_OUTCOME_UNKNOWN,\n\t\t\tsourceEntryId: tool.startEntryId,\n\t\t})),\n\t];\n\treturn {\n\t\trefused: false,\n\t\trefusalReasons: [],\n\t\ttoolClosers,\n\t\tterminalPromotions: inspection.terminalPromotions,\n\t\tcompactionClosers: inspection.orphanedCompactions.map((start) => ({\n\t\t\tcompactionId: start.compactionId,\n\t\t\tsourceEntryId: start.id,\n\t\t\toutcome: \"interrupted\" as const,\n\t\t})),\n\t};\n}\n"]}
@@ -1,9 +1,13 @@
1
1
  import type { ImageContent, Message, TextContent, Usage } from "@caupulican/pi-ai/types";
2
2
  import { type BashExecutionMessage, type CustomMessage } from "../messages.ts";
3
3
  import type { AgentMessage } from "../types.ts";
4
- export declare const CURRENT_SESSION_VERSION = 3;
4
+ import { type CompactionEndEntry, type ForegroundToolStartInput, type ForegroundToolTerminalEntry, type SessionLifecycleEntry, type SessionLifecycleIndex, type SessionLifecycleInspection, type SessionLifecycleRepairPlan, type SessionRequestSnapshotInput } from "./lifecycle-ledger.ts";
5
+ export * from "./lifecycle-ledger.ts";
6
+ export declare const CURRENT_SESSION_VERSION = 4;
5
7
  /** Maximum borrowed entries one non-copying SessionManager visit may inspect. */
6
8
  export declare const MAX_SESSION_ENTRY_VISIT_COUNT = 1024;
9
+ /** Maximum normal message/custom-message records in one atomic append batch. */
10
+ export declare const MAX_SESSION_MESSAGE_BATCH_ENTRIES = 256;
7
11
  export interface SessionHeader {
8
12
  type: "session";
9
13
  version?: number;
@@ -112,7 +116,7 @@ export interface CustomMessageEntry<T = unknown> extends SessionEntryBase {
112
116
  display: boolean;
113
117
  }
114
118
  /** Session entry - has id/parentId for tree structure (returned by "read" methods in SessionManager) */
115
- export type SessionEntry = SessionMessageEntry | ThinkingLevelChangeEntry | ModelChangeEntry | CompactionEntry | BranchSummaryEntry | CustomEntry | CustomMessageEntry | LabelEntry | SessionInfoEntry;
119
+ export type SessionEntry = SessionMessageEntry | ThinkingLevelChangeEntry | ModelChangeEntry | CompactionEntry | BranchSummaryEntry | CustomEntry | CustomMessageEntry | LabelEntry | SessionInfoEntry | SessionLifecycleEntry;
116
120
  /** Raw file entry (includes header) */
117
121
  export type FileEntry = SessionHeader | SessionEntry;
118
122
  /** Tree node for getTree() - defensive copy of session structure */
@@ -132,6 +136,14 @@ export interface SessionContext {
132
136
  modelId: string;
133
137
  } | null;
134
138
  }
139
+ /** One source-order item accepted by the atomic model-router/session append boundary. */
140
+ export type SessionMessageBatchEntry = {
141
+ kind: "message";
142
+ message: Message;
143
+ } | {
144
+ kind: "custom";
145
+ message: CustomMessage;
146
+ };
135
147
  export interface SessionInfo {
136
148
  path: string;
137
149
  id: string;
@@ -147,7 +159,7 @@ export interface SessionInfo {
147
159
  firstMessage: string;
148
160
  allMessagesText: string;
149
161
  }
150
- export type ReadonlySessionManager = Pick<SessionManager, "getCwd" | "getSessionDir" | "getSessionId" | "getSessionLineageIds" | "getSessionFile" | "getLeafId" | "getLeafEntry" | "getEntry" | "getLabel" | "getBranch" | "getLatestCustomEntryOnBranch" | "getHeader" | "getEntries" | "getEntryCount" | "visitEntries" | "readEntryJsonPrefix" | "getTree" | "getSessionName">;
162
+ export type ReadonlySessionManager = Pick<SessionManager, "getCwd" | "getSessionDir" | "getSessionId" | "getSessionLineageIds" | "getSessionFile" | "getLeafId" | "getLeafEntry" | "getEntry" | "getLabel" | "getBranch" | "getLatestCustomEntryOnBranch" | "getHeader" | "getEntries" | "getEntryCount" | "visitEntries" | "readEntryJsonPrefix" | "getTree" | "getSessionName" | "getSessionLifecycleIndex" | "inspectSessionLifecycle" | "planSessionLifecycleRepair">;
151
163
  export declare function assertValidSessionId(id: string): void;
152
164
  export declare function isAutoLearnSessionId(id: string): boolean;
153
165
  /** Exported for testing */
@@ -203,6 +215,7 @@ export declare class SessionManager {
203
215
  private readonly coldPayloadEntryIds;
204
216
  private indexedSessionFileBytes;
205
217
  private sessionContextCache;
218
+ private lifecycleActiveCache;
206
219
  private persistenceStateUncertain;
207
220
  private inheritedSessionIds;
208
221
  private constructor();
@@ -229,8 +242,14 @@ export declare class SessionManager {
229
242
  private _releasableMessageProperties;
230
243
  private _releaseExistingCompactedMessagePayloads;
231
244
  private _releaseCompactedMessagePayloads;
245
+ private _persistEntries;
232
246
  _persist(entry: SessionEntry): void;
247
+ private _appendEntries;
233
248
  private _appendEntry;
249
+ private _getLifecycleActiveCache;
250
+ /** Apply one canonical branch entry to both rebuilt and incrementally advanced lifecycle caches. */
251
+ private _applyLifecycleCacheEntry;
252
+ private _advanceLifecycleActiveCache;
234
253
  private _invalidateSessionContextCache;
235
254
  /** Advance a materialized linear projection without walking its immutable ancestry again. */
236
255
  private _advanceSessionContextCache;
@@ -241,18 +260,47 @@ export declare class SessionManager {
241
260
  * These need to be appended via appendCompaction() and appendBranchSummary() methods.
242
261
  */
243
262
  appendMessage(message: Message | CustomMessage | BashExecutionMessage): string;
263
+ /**
264
+ * Append a bounded mixed message/custom-message batch as one durable publication.
265
+ * Every item is encoded before the session tree or persistence state is mutated.
266
+ */
267
+ appendMessageBatch(batch: readonly SessionMessageBatchEntry[]): string[];
244
268
  /** Append a thinking level change as child of current leaf, then advance leaf. Returns entry id. */
245
269
  appendThinkingLevelChange(thinkingLevel: string): string;
246
270
  /** Append a model change as child of current leaf, then advance leaf. Returns entry id. */
247
271
  appendModelChange(provider: string, modelId: string): string;
248
272
  /** Append a compaction summary as child of current leaf, then advance leaf. Returns entry id. */
249
273
  appendCompaction<T = unknown>(summary: string, firstKeptEntryId: string, tokensBefore: number, details?: T, fromHook?: boolean, usage?: Usage, retention?: CompactionRetention): string;
250
- /** Append a custom entry (for extensions) as child of current leaf, then advance leaf. Returns entry id. */
274
+ private _findAssistantToolCall;
275
+ private _validateRequestSnapshot;
276
+ private _validateForegroundToolStartBatch;
277
+ private _validateForegroundToolTerminal;
278
+ private _validateCompactionStart;
279
+ private _validateCompactionEnd;
280
+ /** Append a bounded provider request snapshot before its transport starts. */
281
+ appendRequestSnapshot(snapshot: SessionRequestSnapshotInput): string;
282
+ /** Append a bounded batch of foreground tool execution start markers in one durable publication. */
283
+ appendForegroundToolStarts(starts: readonly ForegroundToolStartInput[]): string[];
284
+ /** Append one bounded foreground tool execution start marker. */
285
+ appendForegroundToolStart(requestId: string, assistantMessageEntryId: string, callId: string, toolName: string): string;
286
+ /** Append a bounded foreground tool terminal marker. */
287
+ appendForegroundToolTerminal(requestId: string, assistantMessageEntryId: string, callId: string, toolName: string, outcome: ForegroundToolTerminalEntry["outcome"], metadata: Pick<ForegroundToolTerminalEntry, "resultMessageEntryId" | "errorKind">): string;
288
+ /** Append a bounded compaction transaction start marker. */
289
+ appendCompactionStart(compactionId: string, firstKeptEntryId: string, tokensBefore: number): string;
290
+ /** Append a bounded compaction transaction end marker. */
291
+ appendCompactionEnd(compactionId: string, outcome: CompactionEndEntry["outcome"], metadata?: Pick<CompactionEndEntry, "compactionEntryId" | "error">): string;
292
+ /** Append a custom entry (for extensions) as child of current leaf, then advance leaf. */
251
293
  appendCustomEntry(customType: string, data?: unknown): string;
252
294
  /** Append a session info entry (e.g., display name). Returns entry id. */
253
295
  appendSessionInfo(name: string): string;
254
296
  /** Get the current session name from the latest session_info entry, if any. */
255
297
  getSessionName(): string | undefined;
298
+ /** Return lifecycle records on one branch without exposing lifecycle data to model context. */
299
+ getSessionLifecycleIndex(fromId?: string | null): SessionLifecycleIndex;
300
+ /** Inspect lifecycle balance on one branch without mutating or appending repair records. */
301
+ inspectSessionLifecycle(fromId?: string | null): SessionLifecycleInspection;
302
+ /** Plan deterministic lifecycle repair for one branch without mutating the session. */
303
+ planSessionLifecycleRepair(fromId?: string | null): SessionLifecycleRepairPlan;
256
304
  /**
257
305
  * Append a custom message entry (for extensions) that participates in LLM context.
258
306
  * @param customType Extension identifier for filtering on reload
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"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"}