openskynet / src /skynet /continuity-tracker.test.ts
Darochin's picture
Mirror OpenSkyNet workspace snapshot from Git HEAD
fc93158 verified
import fs from "node:fs/promises";
import os from "node:os";
import path from "node:path";
import { afterEach, beforeEach, describe, expect, it } from "vitest";
import { syncSkynetContinuityState } from "./continuity-tracker.js";
import { deriveSkynetNucleusState } from "./nucleus.js";
import { deriveSkynetStudyProgram } from "./study-program.js";
describe("skynet continuity tracker", () => {
let workspaceRoot = "";
beforeEach(async () => {
workspaceRoot = await fs.mkdtemp(path.join(os.tmpdir(), "skynet-continuity-"));
});
afterEach(async () => {
await fs.rm(workspaceRoot, { recursive: true, force: true });
});
it("increases focus streak across stable cycles and persists the score", async () => {
const focus = {
key: "endogenous_science_agenda" as const,
title: "Agenda científica endógena",
thesis: "Persist a study agenda across cycles.",
whyNow: "No persistent agenda exists yet.",
nextExperiment: "Define a persistent study queue.",
successCriteria: "A concrete queue is produced.",
priority: 0.62,
supportingAgendaClassKeys: ["initiative:autonomy_improvement"],
};
const supervisor = {
sessionKey: "agent:openskynet:main",
updatedAt: 1,
focus,
tracks: [
{
...focus,
evidence: ["Agenda still open."],
lastUpdatedAt: 1,
},
],
};
const nucleus1 = deriveSkynetNucleusState({
sessionKey: "agent:openskynet:main",
studyFocus: focus,
operationalSignals: [],
learnedConstraints: [],
});
const program1 = deriveSkynetStudyProgram({
sessionKey: "agent:openskynet:main",
supervisor,
nucleus: nucleus1,
});
const state1 = await syncSkynetContinuityState({
workspaceRoot,
sessionKey: "agent:openskynet:main",
nucleus: nucleus1,
program: program1,
});
const nucleus2 = deriveSkynetNucleusState({
sessionKey: "agent:openskynet:main",
studyFocus: focus,
operationalSignals: [],
learnedConstraints: [],
});
const program2 = deriveSkynetStudyProgram({
sessionKey: "agent:openskynet:main",
supervisor,
nucleus: nucleus2,
});
const state2 = await syncSkynetContinuityState({
workspaceRoot,
sessionKey: "agent:openskynet:main",
nucleus: nucleus2,
program: program2,
});
expect(state1.focusStreak).toBe(1);
expect(state2.focusStreak).toBe(2);
expect(state2.continuityScore).toBeGreaterThan(state1.continuityScore);
expect(
JSON.parse(
await fs.readFile(
path.join(
workspaceRoot,
".openskynet",
"skynet-continuity",
"agent_openskynet_main.json",
),
"utf-8",
),
).focusStreak,
).toBe(2);
});
});