163 lines
3.6 KiB
TypeScript
163 lines
3.6 KiB
TypeScript
import { Systeminformation } from 'systeminformation'
|
|
|
|
export type GpuHealthStatus = {
|
|
status: 'ok' | 'passthrough_failed' | 'no_gpu' | 'ollama_not_installed'
|
|
hasNvidiaRuntime: boolean
|
|
hasRocmRuntime: boolean
|
|
ollamaGpuAccessible: boolean
|
|
gpuVendor?: 'nvidia' | 'amd'
|
|
}
|
|
|
|
export type SystemInformationResponse = {
|
|
cpu: Systeminformation.CpuData
|
|
mem: Systeminformation.MemData
|
|
os: Systeminformation.OsData
|
|
disk: NomadDiskInfo[]
|
|
currentLoad: Systeminformation.CurrentLoadData
|
|
fsSize: Systeminformation.FsSizeData[]
|
|
uptime: Systeminformation.TimeData
|
|
graphics: Systeminformation.GraphicsData
|
|
gpuHealth?: GpuHealthStatus
|
|
}
|
|
|
|
// Type inferrence is not working properly with usePage and shared props, so we define this type manually
|
|
export type UsePageProps = {
|
|
appVersion: string
|
|
environment: string
|
|
}
|
|
|
|
export type LSBlockDevice = {
|
|
name: string
|
|
size: string
|
|
type: string
|
|
model: string | null
|
|
serial: string | null
|
|
vendor: string | null
|
|
rota: boolean | null
|
|
tran: string | null
|
|
children?: LSBlockDevice[]
|
|
}
|
|
|
|
export type NomadDiskInfoRaw = {
|
|
diskLayout: {
|
|
blockdevices: LSBlockDevice[]
|
|
}
|
|
fsSize: {
|
|
fs: string
|
|
size: number
|
|
used: number
|
|
available: number
|
|
use: number
|
|
mount: string
|
|
}[]
|
|
}
|
|
|
|
export type NomadDiskInfo = {
|
|
name: string
|
|
model: string
|
|
vendor: string
|
|
rota: boolean
|
|
tran: string
|
|
size: string
|
|
totalUsed: number
|
|
totalSize: number
|
|
percentUsed: number
|
|
filesystems: {
|
|
fs: string
|
|
mount: string
|
|
used: number
|
|
size: number
|
|
percentUsed: number
|
|
}[]
|
|
}
|
|
|
|
export type SystemUpdateStatus = {
|
|
stage: 'idle' | 'starting' | 'pulling' | 'pulled' | 'recreating' | 'complete' | 'error'
|
|
progress: number
|
|
message: string
|
|
timestamp: string
|
|
}
|
|
|
|
|
|
export type CheckLatestVersionResult = {
|
|
success: boolean,
|
|
updateAvailable: boolean,
|
|
currentVersion: string,
|
|
latestVersion: string,
|
|
message?: string
|
|
}
|
|
|
|
export type AutoUpdateEligibleTarget = {
|
|
version: string
|
|
tag: string
|
|
publishedAt: string
|
|
}
|
|
|
|
export type AutoUpdateStatus = {
|
|
enabled: boolean
|
|
windowStart: string
|
|
windowEnd: string
|
|
cooloffHours: number
|
|
currentVersion: string
|
|
withinWindow: boolean
|
|
eligibleTarget: AutoUpdateEligibleTarget | null
|
|
lastAttemptAt: string | null
|
|
lastResult: string | null
|
|
lastError: string | null
|
|
consecutiveFailures: number
|
|
autoDisabledReason: string | null
|
|
}
|
|
|
|
export type AppAutoUpdateAppStatus = {
|
|
service_name: string
|
|
friendly_name: string | null
|
|
auto_update_enabled: boolean
|
|
current_version: string
|
|
available_update_version: string | null
|
|
first_seen_at: string | null
|
|
eligible: boolean
|
|
reason: string
|
|
cooloff_remaining_hours: number | null
|
|
consecutive_failures: number
|
|
auto_disabled_reason: string | null
|
|
}
|
|
|
|
export type AppAutoUpdateStatus = {
|
|
enabled: boolean
|
|
windowStart: string
|
|
windowEnd: string
|
|
cooloffHours: number
|
|
withinWindow: boolean
|
|
lastAttemptAt: string | null
|
|
lastResult: string | null
|
|
apps: AppAutoUpdateAppStatus[]
|
|
}
|
|
|
|
export type ContentAutoUpdateResourceStatus = {
|
|
resource_id: string
|
|
resource_type: 'zim' | 'map'
|
|
current_version: string
|
|
available_update_version: string | null
|
|
size_bytes: number | null
|
|
eligible: boolean
|
|
reason: string
|
|
cooloff_remaining_hours: number | null
|
|
exceeds_cap: boolean
|
|
consecutive_failures: number
|
|
auto_disabled_reason: string | null
|
|
}
|
|
|
|
export type ContentAutoUpdateStatus = {
|
|
enabled: boolean
|
|
windowStart: string
|
|
windowEnd: string
|
|
cooloffHours: number
|
|
maxBytesPerWindow: number
|
|
withinWindow: boolean
|
|
windowBytesUsed: number
|
|
lastAttemptAt: string | null
|
|
lastResult: string | null
|
|
lastError: string | null
|
|
autoDisabledReason: string | null
|
|
resources: ContentAutoUpdateResourceStatus[]
|
|
} |