返回 DeepSeek-Reasonix
remoteErrors.ts
根目录 / desktop / frontend / src / lib / remoteErrors.ts
1 import type { RemoteConnectionStatus } from "./types";
2
3 export type RemoteConnectionErrorKind =
4 | "connection_failed"
5 | "auth_failed"
6 | "host_key_rejected"
7 | "host_key_mismatch"
8 | "degraded";
9
10 export type RemoteConnectionErrorSummaryKey = `remote.error.summary.${RemoteConnectionErrorKind}`;
11
12 export function remoteConnectionErrorKind(status?: RemoteConnectionStatus): RemoteConnectionErrorKind {
13 if (status?.state === "degraded") return "degraded";
14 return status?.errorDetails?.code ?? "connection_failed";
15 }
16
17 export function remoteConnectionErrorSummaryKey(status?: RemoteConnectionStatus): RemoteConnectionErrorSummaryKey {
18 return `remote.error.summary.${remoteConnectionErrorKind(status)}`;
19 }
20
21 export function isRemoteHostKeyMismatch(status?: RemoteConnectionStatus): boolean {
22 return remoteConnectionErrorKind(status) === "host_key_mismatch";
23 }
24
25 export function isRemoteTerminalFailure(status?: RemoteConnectionStatus): boolean {
26 return status?.state === "stopped" && Boolean(status.error);
27 }
28
29 export function isRemoteDegradedWarning(status?: RemoteConnectionStatus): boolean {
30 return status?.state === "degraded" && Boolean(status.error);
31 }
32
32 lines TYPESCRIPT