import fs from "node:fs/promises"; import path from "node:path"; import { resolveOmegaStateDir } from "./paths.js"; export type OmegaCognitiveKernelSignal = { updatedAt: number; freshness: "fresh" | "stale"; accuracy: number; majorityBaseline: number; improvementOverBaseline: number; trajectorySamples: number; harvestedEpisodes: number; evaluatedSamples: number; warmupSamples: number; dominantLabel: string | null; active: boolean; activationReason: "enabled_by_default" | "deactivated_accuracy" | "deactivated_stale"; targetAccuracy: number; deactivationThreshold: number; }; type CognitiveKernelArtifact = { updatedAt?: number; status?: string; accuracy?: number; majorityBaseline?: number; improvementOverBaseline?: number; trajectorySamples?: number; harvestedEpisodes?: number; evaluatedSamples?: number; warmupSamples?: number; labelCoverage?: Record; }; const MIN_SAMPLES = 48; const MAX_AGE_MS = 12 * 60 * 60 * 1000; const TARGET_ACCURACY = 0.9; const DEACTIVATE_ACCURACY = 0.8; export function resolveOmegaCognitiveKernelArtifactPath(workspaceRoot: string): string { return path.join( resolveOmegaStateDir(workspaceRoot), "skynet-experiments", "agent_openskynet_main-cognitive-kernel-01.json", ); } function deriveDominantLabel(labelCoverage: Record | undefined): string | null { if (!labelCoverage) { return null; } return ( Object.entries(labelCoverage) .sort((left, right) => right[1] - left[1]) .map(([label]) => label) .at(0) ?? null ); } export async function loadOmegaCognitiveKernelSignal( workspaceRoot: string, ): Promise { try { const raw = await fs.readFile(resolveOmegaCognitiveKernelArtifactPath(workspaceRoot), "utf-8"); const parsed = JSON.parse(raw) as CognitiveKernelArtifact; const updatedAt = typeof parsed.updatedAt === "number" ? parsed.updatedAt : 0; const accuracy = typeof parsed.accuracy === "number" ? parsed.accuracy : 0; const majorityBaseline = typeof parsed.majorityBaseline === "number" ? parsed.majorityBaseline : 0; const improvementOverBaseline = typeof parsed.improvementOverBaseline === "number" ? parsed.improvementOverBaseline : 0; const trajectorySamples = typeof parsed.trajectorySamples === "number" ? parsed.trajectorySamples : 0; const harvestedEpisodes = typeof parsed.harvestedEpisodes === "number" ? parsed.harvestedEpisodes : 0; const evaluatedSamples = typeof parsed.evaluatedSamples === "number" ? parsed.evaluatedSamples : 0; const warmupSamples = typeof parsed.warmupSamples === "number" ? parsed.warmupSamples : 0; if (parsed.status !== "pass" || updatedAt <= 0 || trajectorySamples < MIN_SAMPLES) { return undefined; } const freshness = Date.now() - updatedAt <= MAX_AGE_MS ? "fresh" : "stale"; const active = freshness === "fresh" && Number.isFinite(accuracy) && accuracy >= DEACTIVATE_ACCURACY; return { updatedAt, freshness, accuracy, majorityBaseline, improvementOverBaseline, trajectorySamples, harvestedEpisodes, evaluatedSamples, warmupSamples, dominantLabel: deriveDominantLabel(parsed.labelCoverage), active, activationReason: freshness !== "fresh" ? "deactivated_stale" : active ? "enabled_by_default" : "deactivated_accuracy", targetAccuracy: TARGET_ACCURACY, deactivationThreshold: DEACTIVATE_ACCURACY, }; } catch { return undefined; } }