( input: CommitTerminalRunWithRuntimeFactInput, )
| 111 | } |
| 112 | |
| 113 | async function commitTerminalRunProjection( |
| 114 | input: CommitTerminalRunWithRuntimeFactInput, |
| 115 | ): Promise<void> { |
| 116 | const failureClass = input.status === 'failed' ? (input.failureClass ?? 'unknown') : undefined; |
| 117 | const abortSource = input.status === 'cancelled' ? input.abortSource : undefined; |
| 118 | await input.runStore.updateRun( |
| 119 | input.sessionId, |
| 120 | input.runId, |
| 121 | { |
| 122 | status: input.status, |
| 123 | updatedAt: input.ts, |
| 124 | completedAt: input.ts, |
| 125 | ...(failureClass ? { failureClass } : {}), |
| 126 | ...(input.failureMessage ? { failureMessage: input.failureMessage } : {}), |
| 127 | ...(input.traceWriteError ? { traceWriteError: input.traceWriteError } : {}), |
| 128 | ...(abortSource ? { abortSource } : {}), |
| 129 | }, |
| 130 | { durable: true }, |
| 131 | ); |
| 132 | |
| 133 | if (hasTerminalAgentRunEvent(input.existingEvents ?? [])) return; |
| 134 | const data = terminalRunEventData(input.status, failureClass, input.runEventData); |
| 135 | await input.runStore.appendEvent( |
| 136 | input.sessionId, |
| 137 | input.runId, |
| 138 | { |
| 139 | type: terminalAgentRunEventType(input.status), |
| 140 | id: input.newId(), |
| 141 | runId: input.runId, |
| 142 | sessionId: input.sessionId, |
| 143 | turnId: input.turnId, |
| 144 | ts: input.ts, |
| 145 | ...(input.runEventMessage ? { message: input.runEventMessage } : {}), |
| 146 | ...(Object.keys(data).length > 0 ? { data } : {}), |
| 147 | }, |
| 148 | { durable: true }, |
| 149 | ); |
| 150 | } |
| 151 | |
| 152 | export interface CommitOrCreateTerminalRunFactInput |
| 153 | extends Omit<CommitTerminalRunWithRuntimeFactInput, 'status' | 'terminalEvent'> { |
no test coverage detected