82 lines
1.4 KiB
TypeScript
82 lines
1.4 KiB
TypeScript
/**
|
|
* Status interfaces - API contracts for system status data
|
|
*/
|
|
|
|
export type TServiceState = 'stopped' | 'starting' | 'running' | 'failed';
|
|
|
|
export interface IServiceStatus {
|
|
state: TServiceState;
|
|
error?: string;
|
|
lastAttempt?: string;
|
|
}
|
|
|
|
export interface ICpuInfo {
|
|
model: string;
|
|
cores: number;
|
|
usage: number;
|
|
}
|
|
|
|
export interface IMemoryInfo {
|
|
total: number;
|
|
used: number;
|
|
free: number;
|
|
usagePercent: number;
|
|
}
|
|
|
|
export interface IDiskInfo {
|
|
device: string;
|
|
mountpoint: string;
|
|
total: number;
|
|
used: number;
|
|
free: number;
|
|
usagePercent: number;
|
|
}
|
|
|
|
export interface INetworkInterface {
|
|
name: string;
|
|
ip: string;
|
|
mac: string;
|
|
state: 'up' | 'down';
|
|
}
|
|
|
|
export interface IGpuInfo {
|
|
name: string;
|
|
driver: string;
|
|
}
|
|
|
|
export interface IInputDevice {
|
|
name: string;
|
|
type: 'keyboard' | 'mouse' | 'touchpad' | 'other';
|
|
path: string;
|
|
}
|
|
|
|
export interface IAudioDevice {
|
|
name: string;
|
|
description: string;
|
|
isDefault: boolean;
|
|
}
|
|
|
|
export interface ISystemInfo {
|
|
hostname: string;
|
|
cpu: ICpuInfo;
|
|
memory: IMemoryInfo;
|
|
disks: IDiskInfo[];
|
|
network: INetworkInterface[];
|
|
gpu: IGpuInfo[];
|
|
uptime: number;
|
|
inputDevices: IInputDevice[];
|
|
speakers: IAudioDevice[];
|
|
microphones: IAudioDevice[];
|
|
}
|
|
|
|
export interface IStatus {
|
|
version: string;
|
|
sway: boolean;
|
|
swayStatus: IServiceStatus;
|
|
chromium: boolean;
|
|
chromiumStatus: IServiceStatus;
|
|
systemInfo: ISystemInfo;
|
|
logs: string[];
|
|
systemLogs: string[];
|
|
}
|