135 lines
3.7 KiB
Swift
135 lines
3.7 KiB
Swift
import Foundation
|
|
|
|
public enum OpenClawDeviceCommand: String, Codable, Sendable {
|
|
case status = "device.status"
|
|
case info = "device.info"
|
|
}
|
|
|
|
public enum OpenClawBatteryState: String, Codable, Sendable {
|
|
case unknown
|
|
case unplugged
|
|
case charging
|
|
case full
|
|
}
|
|
|
|
public enum OpenClawThermalState: String, Codable, Sendable {
|
|
case nominal
|
|
case fair
|
|
case serious
|
|
case critical
|
|
}
|
|
|
|
public enum OpenClawNetworkPathStatus: String, Codable, Sendable {
|
|
case satisfied
|
|
case unsatisfied
|
|
case requiresConnection
|
|
}
|
|
|
|
public enum OpenClawNetworkInterfaceType: String, Codable, Sendable {
|
|
case wifi
|
|
case cellular
|
|
case wired
|
|
case other
|
|
}
|
|
|
|
public struct OpenClawBatteryStatusPayload: Codable, Sendable, Equatable {
|
|
public var level: Double?
|
|
public var state: OpenClawBatteryState
|
|
public var lowPowerModeEnabled: Bool
|
|
|
|
public init(level: Double?, state: OpenClawBatteryState, lowPowerModeEnabled: Bool) {
|
|
self.level = level
|
|
self.state = state
|
|
self.lowPowerModeEnabled = lowPowerModeEnabled
|
|
}
|
|
}
|
|
|
|
public struct OpenClawThermalStatusPayload: Codable, Sendable, Equatable {
|
|
public var state: OpenClawThermalState
|
|
|
|
public init(state: OpenClawThermalState) {
|
|
self.state = state
|
|
}
|
|
}
|
|
|
|
public struct OpenClawStorageStatusPayload: Codable, Sendable, Equatable {
|
|
public var totalBytes: Int64
|
|
public var freeBytes: Int64
|
|
public var usedBytes: Int64
|
|
|
|
public init(totalBytes: Int64, freeBytes: Int64, usedBytes: Int64) {
|
|
self.totalBytes = totalBytes
|
|
self.freeBytes = freeBytes
|
|
self.usedBytes = usedBytes
|
|
}
|
|
}
|
|
|
|
public struct OpenClawNetworkStatusPayload: Codable, Sendable, Equatable {
|
|
public var status: OpenClawNetworkPathStatus
|
|
public var isExpensive: Bool
|
|
public var isConstrained: Bool
|
|
public var interfaces: [OpenClawNetworkInterfaceType]
|
|
|
|
public init(
|
|
status: OpenClawNetworkPathStatus,
|
|
isExpensive: Bool,
|
|
isConstrained: Bool,
|
|
interfaces: [OpenClawNetworkInterfaceType])
|
|
{
|
|
self.status = status
|
|
self.isExpensive = isExpensive
|
|
self.isConstrained = isConstrained
|
|
self.interfaces = interfaces
|
|
}
|
|
}
|
|
|
|
public struct OpenClawDeviceStatusPayload: Codable, Sendable, Equatable {
|
|
public var battery: OpenClawBatteryStatusPayload
|
|
public var thermal: OpenClawThermalStatusPayload
|
|
public var storage: OpenClawStorageStatusPayload
|
|
public var network: OpenClawNetworkStatusPayload
|
|
public var uptimeSeconds: Double
|
|
|
|
public init(
|
|
battery: OpenClawBatteryStatusPayload,
|
|
thermal: OpenClawThermalStatusPayload,
|
|
storage: OpenClawStorageStatusPayload,
|
|
network: OpenClawNetworkStatusPayload,
|
|
uptimeSeconds: Double)
|
|
{
|
|
self.battery = battery
|
|
self.thermal = thermal
|
|
self.storage = storage
|
|
self.network = network
|
|
self.uptimeSeconds = uptimeSeconds
|
|
}
|
|
}
|
|
|
|
public struct OpenClawDeviceInfoPayload: Codable, Sendable, Equatable {
|
|
public var deviceName: String
|
|
public var modelIdentifier: String
|
|
public var systemName: String
|
|
public var systemVersion: String
|
|
public var appVersion: String
|
|
public var appBuild: String
|
|
public var locale: String
|
|
|
|
public init(
|
|
deviceName: String,
|
|
modelIdentifier: String,
|
|
systemName: String,
|
|
systemVersion: String,
|
|
appVersion: String,
|
|
appBuild: String,
|
|
locale: String)
|
|
{
|
|
self.deviceName = deviceName
|
|
self.modelIdentifier = modelIdentifier
|
|
self.systemName = systemName
|
|
self.systemVersion = systemVersion
|
|
self.appVersion = appVersion
|
|
self.appBuild = appBuild
|
|
self.locale = locale
|
|
}
|
|
}
|