| 38 | | { readonly kind: "crash" }; |
| 39 | |
| 40 | export const classifySidecarExit = (input: SidecarExitInput): SidecarExitClassification => { |
| 41 | if (input.stoppedByUs) return { kind: "managed-stop", reason: "stopped-by-app" }; |
| 42 | if (input.appQuitting) return { kind: "managed-stop", reason: "app-quitting" }; |
| 43 | if (input.signal !== null && SHUTDOWN_SIGNALS.has(input.signal)) { |
| 44 | return { kind: "external-shutdown", reason: input.signal }; |
| 45 | } |
| 46 | if (input.code !== null && SHUTDOWN_EXIT_CODES.has(input.code)) { |
| 47 | return { kind: "external-shutdown", reason: `code ${input.code}` }; |
| 48 | } |
| 49 | return { kind: "crash" }; |
| 50 | }; |