openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
76 lines • 2.9 kB
TypeScript
import { ki as OpenClawConfig, ui as RuntimeEnv } from "./install-security-scan.types-CwuFCGpV.js";
//#region src/flows/health-checks.d.ts
type HealthFindingSeverity = "info" | "warning" | "error";
/** Structured finding emitted by doctor health checks. */
interface HealthFinding {
readonly checkId: string;
readonly severity: HealthFindingSeverity;
readonly message: string;
readonly source?: string;
readonly path?: string;
readonly line?: number;
readonly column?: number;
readonly ocPath?: string;
readonly target?: string;
readonly requirement?: string;
readonly fixHint?: string;
}
type HealthCheckMode = "doctor" | "lint" | "fix";
/** Immutable runtime/config context passed to health check detection. */
interface HealthCheckContext {
readonly mode: HealthCheckMode;
readonly runtime: RuntimeEnv;
readonly cfg: OpenClawConfig;
readonly env?: NodeJS.ProcessEnv;
readonly cwd?: string;
readonly configPath?: string;
readonly allowExecSecretRefs?: boolean;
}
/** Repair-capable health-check context; fixes may emit diffs or dry-run previews. */
interface HealthRepairContext extends Omit<HealthCheckContext, "mode"> {
readonly mode: "fix";
readonly dryRun?: boolean;
readonly diff?: boolean;
}
/** Optional before/after detail for config or file repair output. */
interface HealthRepairDiff {
readonly kind: "config" | "file";
readonly path: string;
readonly before?: string;
readonly after?: string;
readonly unifiedDiff?: string;
}
/** Side effect descriptor for repairs that touch services, processes, packages, or state. */
interface HealthRepairEffect {
readonly kind: "config" | "file" | "service" | "process" | "package" | "state" | "other";
readonly action: string;
readonly target?: string;
readonly dryRunSafe?: boolean;
}
/** Repair result returned by split health-check repair functions. */
interface HealthRepairResult {
readonly status?: "repaired" | "skipped" | "failed";
readonly reason?: string;
readonly config?: OpenClawConfig;
readonly changes: readonly string[];
readonly warnings?: readonly string[];
readonly diffs?: readonly HealthRepairDiff[];
readonly effects?: readonly HealthRepairEffect[];
}
/** Narrow validation scope built from previous findings after a repair runs. */
interface HealthCheckScope {
readonly findings?: readonly HealthFinding[];
readonly paths?: readonly string[];
readonly ocPaths?: readonly string[];
}
/** Split detect/repair health-check contract registered by core or plugins. */
interface HealthCheck {
readonly id: string;
readonly kind: "core" | "plugin";
readonly description: string;
readonly source?: string;
detect(ctx: HealthCheckContext, scope?: HealthCheckScope): Promise<readonly HealthFinding[]>;
repair?(ctx: HealthRepairContext, findings: readonly HealthFinding[]): Promise<HealthRepairResult>;
}
//#endregion
export { HealthCheck as t };