File size: 2,865 Bytes
fc93158 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | 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);
});
});
|