(private readonly deps: SessionManagerDeps)
| 912 | private readonly claimedAgentGraphSessionTails = new Map<string, Promise<void>>(); |
| 913 | |
| 914 | constructor(private readonly deps: SessionManagerDeps) { |
| 915 | if (deps.runStore && !deps.runtimeEventStore) { |
| 916 | throw new Error('RuntimeEventStore is required when AgentRunStore is configured'); |
| 917 | } |
| 918 | if (deps.publishChildWorkspacePatch && !deps.listArtifactsForTurn) { |
| 919 | throw new Error('Child workspace patch publication requires Artifact turn listing'); |
| 920 | } |
| 921 | this.runtimeCommitSink = |
| 922 | deps.runtimeCommitSink ?? runtimeCommitSinkFromEventStore(deps.runtimeEventStore); |
| 923 | if (deps.runStore && deps.runtimeEventStore) { |
| 924 | this.runtimeLedgerRepair = new RuntimeLedgerRepair({ |
| 925 | runStore: deps.runStore, |
| 926 | runtimeEventStore: deps.runtimeEventStore, |
| 927 | readMessages: (sessionId) => deps.store.readMessages(sessionId), |
| 928 | appendMessage: (sessionId, message) => deps.store.appendMessage(sessionId, message), |
| 929 | appendTurnState: (sessionId, turnId, status, lineage, options) => |
| 930 | this.appendTurnState(sessionId, turnId, status, lineage, options), |
| 931 | newId: deps.newId, |
| 932 | now: deps.now, |
| 933 | }); |
| 934 | } |
| 935 | this.runtimeKernel = |
| 936 | deps.runtimeKernel ?? |
| 937 | new RuntimeKernel({ |
| 938 | ...deps, |
| 939 | repairRunRuntimeLedger: (sessionId, runId) => |
| 940 | this.repairMissingTerminalFactOnce(sessionId, runId), |
| 941 | }); |
| 942 | } |
| 943 | |
| 944 | // -------------------------------------------------------------------------- |
| 945 | // Session lifecycle |
nothing calls this directly
no test coverage detected