/*
RFC-1065: lagebild.status command — read lagebild block from system-state.yaml, return connected boolean, no network calls.
- Do not spawn wrangler or fetch — state-only read.
- Do not modify system-state.yaml.
- RFC-1065: initial lagebild.status command handler.
- RFC-1097: step 6 — compass.migrate codemod run
Mechanical v1 to v2 header migration across the workspace: 942 files rewritten — CHANGE_SUMMARY windows collapsed into history, forbidden v1 blocks stripped, KEY_DECISIONS seeded from @ai-invariant comments (5 files) or TODO placeholders (103 files), blocks reordered to canonical order.
- RFC-1097: sweep — werkstatt-engine clean
Sweep batch 4: 73 Compass headers on headerless engine files (certification, component-runtime, isolation, evolution, testing), real KEY_DECISIONS on 75 files (kernel, cache, dht, swim, gitmesh, runtime), ~80 purpose expansions (CONTRACT-02/PURPOSE-02), non-goals on 13 CONTRACT-03 files, CS-07 history literal fix repo-wide (253 files). Policy: .template.ts/.template.astro excludedPaths. werkstatt-engine now 0 diagnostics.
*/
import type {
KernelCommandInput,
KernelCommandResult,
KernelRuntimeContext,
} from "@warpgogol/werkstatt-engine/kernel";
import { readSystemStateSmart } from "../sternsystem/registry-io.ts";
function flagString(input: KernelCommandInput, name: string): string | undefined {
const v = input.flags[name];
return typeof v === "string" ? v : undefined;
}
export async function runLagebildStatus(
input: KernelCommandInput,
context: KernelRuntimeContext,
): Promise<
KernelCommandResult<{
site: string;
connected: boolean;
apiUrl?: string;
tenantId?: string;
sourceSystemId?: string;
connectedAt?: string;
channel?: string;
}>
> {
const systemId = flagString(input, "site");
if (!systemId) throw new Error("[lagebild.status] --site is required");
const workspaceRoot = context.workspaceRoot;
const state = await readSystemStateSmart(workspaceRoot, systemId);
const lagebild = state.lagebild;
return {
data: {
site: systemId,
connected: lagebild?.connected ?? false,
apiUrl: lagebild?.apiUrl,
tenantId: lagebild?.tenantId,
sourceSystemId: lagebild?.sourceSystemId,
connectedAt: lagebild?.connectedAt,
channel: lagebild?.channel,
},
};
}