import { resolveNodeService } from "../daemon/node-service.js" ;
import { resolveGatewayService } from "../daemon/service.js" ;
import { formatDaemonRuntimeShort } from "./status.format.js" ;
import { readServiceStatusSummary } from "./status.service-summary.js" ;
type DaemonStatusSummary = {
label: string;
installed: boolean | null ;
loaded: boolean ;
managedByOpenClaw: boolean ;
externallyManaged: boolean ;
loadedText: string;
runtime: Awaited<ReturnType<typeof readServiceStatusSummary>>["runtime" ];
runtimeShort: string | null ;
};
async function buildDaemonStatusSummary(
serviceLabel: "gateway" | "node" ,
): Promise<DaemonStatusSummary> {
const service = serviceLabel === "gateway" ? resolveGatewayService() : resolveNodeService();
const fallbackLabel = serviceLabel === "gateway" ? "Daemon" : "Node" ;
const summary = await readServiceStatusSummary(service, fallbackLabel);
return {
label: summary.label,
installed: summary.installed,
loaded: summary.loaded,
managedByOpenClaw: summary.managedByOpenClaw,
externallyManaged: summary.externallyManaged,
loadedText: summary.loadedText,
runtime: summary.runtime,
runtimeShort: formatDaemonRuntimeShort(summary.runtime),
};
}
export async function getDaemonStatusSummary(): Promise<DaemonStatusSummary> {
return await buildDaemonStatusSummary("gateway" );
}
export async function getNodeDaemonStatusSummary(): Promise<DaemonStatusSummary> {
return await buildDaemonStatusSummary("node" );
}
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-09)
¤
*© Formatika GbR, Deutschland