(task: LegacyPersistedTask)
| 184 | } |
| 185 | |
| 186 | function legacyPersistedTaskToInfo(task: LegacyPersistedTask): BackgroundTaskInfo { |
| 187 | const status = legacyStatusToCurrent(task); |
| 188 | const base = { |
| 189 | taskId: task.task_id, |
| 190 | description: task.description, |
| 191 | status, |
| 192 | detached: true, |
| 193 | startedAt: task.started_at, |
| 194 | endedAt: task.ended_at, |
| 195 | stopReason: optionalNonEmptyString(task.stop_reason), |
| 196 | timeoutMs: typeof task.timeout_ms === 'number' ? task.timeout_ms : undefined, |
| 197 | }; |
| 198 | if (task.task_id.startsWith('agent-')) { |
| 199 | return { |
| 200 | ...base, |
| 201 | kind: 'agent', |
| 202 | agentId: optionalNonEmptyString(task.agent_id), |
| 203 | subagentType: optionalNonEmptyString(task.subagent_type), |
| 204 | }; |
| 205 | } |
| 206 | return { |
| 207 | ...base, |
| 208 | kind: 'process', |
| 209 | command: task.command, |
| 210 | pid: task.pid, |
| 211 | exitCode: task.exit_code, |
| 212 | }; |
| 213 | } |
| 214 | |
| 215 | function legacyStatusToCurrent(task: LegacyPersistedTask): BackgroundTaskStatus { |
| 216 | if (task.status === 'awaiting_approval') return 'running'; |
no test coverage detected