openskynet / src /omega /autonomous-executor.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 { executeAutonomousAction } from "./autonomous-executor.js";
import { syncOpenSkynetLivingMemory } from "./living-memory.js";
import { loadOmegaWorldModelSnapshot } from "./world-model.js";
describe("autonomous executor", () => {
let workspaceRoot = "";
const sessionKey = "agent:openskynet:main";
beforeEach(async () => {
workspaceRoot = await fs.mkdtemp(path.join(os.tmpdir(), "omega-autonomous-executor-"));
});
afterEach(async () => {
await fs.rm(workspaceRoot, { recursive: true, force: true });
});
it("proposes experiments from structured living memory instead of MEMORY.md", async () => {
await fs.writeFile(
path.join(workspaceRoot, "INTERNAL_PROJECT.json"),
JSON.stringify(
{
key: "protein-lab",
name: "Protein Lab",
role: "Protein discovery project.",
mission: "Find useful protein structures.",
benchmarkPurpose: "Measure autonomous scientific progress.",
successCriteria: ["produces a measurable artifact"],
},
null,
2,
),
"utf-8",
);
const snapshot = await loadOmegaWorldModelSnapshot({
workspaceRoot,
sessionKey,
});
await syncOpenSkynetLivingMemory({
workspaceRoot,
sessionKey,
snapshot,
recommendedAction: "Design one measurable protein artifact.",
commitment: {
sessionKey,
updatedAt: Date.now(),
projectName: "Protein Lab",
kind: "artifact",
artifactKind: "module",
targetFocusKey: "protein_structures",
rationale: "Need one measurable artifact.",
executableTask: "Generate one runnable protein search artifact.",
confidence: 0.82,
},
});
const result = await executeAutonomousAction({
workspaceRoot,
sessionKey,
signal: {
kind: "entropy_alert",
silentMs: 90_000,
reason: "test_entropy_alert",
urgency: 0.9,
},
kernel: {
identity: { continuityId: "c1" },
turnCount: 1,
tension: {
openGoalCount: 0,
failureStreak: 0,
repeatedFailureKinds: [],
},
world: {
lastOutcomeStatus: "nominal",
lastErrorKind: undefined,
lastObservedChangedFiles: [],
},
goals: [],
} as never,
});
expect(result.kind).toBe("experiment_proposed");
if (result.kind === "experiment_proposed") {
expect(result.hypothesis).toContain("Protein Lab");
expect(result.hypothesis).toContain("Generate one runnable protein search artifact");
}
});
it("prefers revalidating continuity when living operational memory is stale", async () => {
await fs.mkdir(path.join(workspaceRoot, "memory"), { recursive: true });
await fs.writeFile(
path.join(workspaceRoot, "memory", "omega-research-20990101-000000.prose"),
"# existing research\n",
"utf-8",
);
const snapshot = await loadOmegaWorldModelSnapshot({
workspaceRoot,
sessionKey,
});
await syncOpenSkynetLivingMemory({
workspaceRoot,
sessionKey,
snapshot,
recommendedAction: "Expand the active research scope.",
operationalSummary: {
recentTurnCount: 2,
recentStalledTurns: 1,
recentResolvedTurns: 1,
latestTurnHealth: "resolved",
latestRecordedAt: 1000,
ageMs: 3 * 60 * 60 * 1000,
freshness: "stale",
averageCausalImpact: 0.4,
latestCausalImpact: 0.2,
},
});
const result = await executeAutonomousAction({
workspaceRoot,
sessionKey,
signal: {
kind: "entropy_alert",
silentMs: 90_000,
reason: "test_entropy_alert",
urgency: 0.9,
},
kernel: {
identity: { continuityId: "c1" },
turnCount: 1,
tension: {
openGoalCount: 0,
failureStreak: 0,
repeatedFailureKinds: [],
},
world: {
lastOutcomeStatus: "nominal",
lastErrorKind: undefined,
lastObservedChangedFiles: [],
},
goals: [],
} as never,
});
expect(result.kind).toBe("experiment_proposed");
if (result.kind === "experiment_proposed") {
expect(result.hypothesis).toContain("Revalidate stale operational continuity");
}
});
});