blob: 78b824e85f248f9a5c1fb93cff69c6beee17774c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import Foundation
/// Full daemon record. Matches `src/db/models.rs::Daemon` (camelCase).
struct Daemon: Decodable, Identifiable, Hashable {
let id: String
let ownerId: String?
let connectionId: String?
let hostname: String?
let machineId: String?
let maxConcurrentTasks: Int?
let currentTaskCount: Int?
let status: String
let lastHeartbeatAt: Date?
let connectedAt: Date?
let disconnectedAt: Date?
var isOnline: Bool {
status.lowercased() == "online" || status.lowercased() == "connected" || status.lowercased() == "active"
}
var displayHost: String {
hostname ?? machineId ?? connectionId ?? String(id.prefix(8))
}
}
/// Compatibility shim: a handful of M2 call sites still type `DaemonBrief`.
/// Resolve to the same shape.
typealias DaemonBrief = Daemon
|