import { describe, expect, it } from "vitest"; import { observeOmegaExecutiveState } from "./executive-arbitration.js"; import type { OmegaMemoryOrchestratorSummary } from "./memory-orchestrator.js"; import type { OmegaSessionAuthority } from "./session-context.js"; import type { OmegaWorldModelSnapshot } from "./world-model.js"; function makeSnapshot(overrides: Partial = {}): OmegaWorldModelSnapshot { return { sessionKey: "agent:test:main", sessionAuthority: { timeline: [], transactions: [], } satisfies OmegaSessionAuthority, timelineLength: 0, relevantMemories: [], operationalSignals: [], problemAgenda: [], degradedComponents: [], ...overrides, }; } function makeMemory( overrides: Partial = {}, ): OmegaMemoryOrchestratorSummary { return { health: "stable", promotionCandidates: 0, revalidationCandidates: 0, repeatedFailurePatterns: [], recentUsefulSuccesses: 0, ...overrides, }; } describe("observeOmegaExecutiveState", () => { it("prioritizes recovery when failure streak is high", () => { const result = observeOmegaExecutiveState({ snapshot: makeSnapshot({ kernel: { revision: 2, sessionKey: "agent:test:main", turnCount: 2, identity: { continuityId: "c1", firstSeenAt: 1, lastSeenAt: 2 }, world: { lastObservedChangedFiles: [] }, goals: [ { id: "goal-1", task: "repair app", targets: ["src/app.ts"], requiredKeys: [], status: "active", createdAt: 1, updatedAt: 2, createdTurn: 1, updatedTurn: 2, failureCount: 2, successCount: 0, observedChangedFiles: [], }, ], tension: { openGoalCount: 1, staleGoalCount: 0, failureStreak: 2, repeatedFailureKinds: ["target_not_touched"], pendingCorrection: true, }, causalGraph: { files: [], edges: [] }, updatedAt: 2, }, }), memory: makeMemory(), }); expect(result.mode).toBe("recovering"); expect(result.decision.selectedAction).toBe("recover"); expect(result.decision.selectedGoalId).toBe("goal-1"); expect(result.decision.selectedWorkItemId).toBe("anomaly:repeated_failure"); expect(result.decision.selectedQueueKind).toBe("anomaly"); }); it("promotes a proactive failure probe when repeated failures hit a causal limit", () => { const result = observeOmegaExecutiveState({ snapshot: makeSnapshot({ kernel: { revision: 2, sessionKey: "agent:test:main", turnCount: 2, identity: { continuityId: "c1", firstSeenAt: 1, lastSeenAt: 2 }, world: { lastObservedChangedFiles: [] }, goals: [ { id: "goal-1", task: "repair app", targets: ["src/app.ts"], requiredKeys: [], status: "active", createdAt: 1, updatedAt: 2, createdTurn: 1, updatedTurn: 2, failureCount: 2, successCount: 0, observedChangedFiles: [], }, ], tension: { openGoalCount: 1, staleGoalCount: 0, failureStreak: 2, repeatedFailureKinds: ["target_not_touched"], pendingCorrection: true, }, causalGraph: { files: [], edges: [] }, updatedAt: 2, }, problemAgenda: [ { id: "agenda-failure", classKey: "failure:target_not_touched", label: "Explore a reusable strategy for target_not_touched", source: "failure_pattern", status: "open", priority: 0.8, evidenceCount: 2, activationCount: 0, successCount: 0, failureCount: 0, realizedUtility: 0, firstSeenAt: 1, lastSeenAt: 2, }, ], }), memory: makeMemory(), }); expect(result.mode).toBe("active"); expect(result.decision.selectedAction).toBe("maintain"); expect(result.decision.selectedGoalId).toBe("agenda:failure:target_not_touched"); expect(result.decision.selectedWorkItemId).toBe( "maintenance:agenda:failure:target_not_touched", ); expect(result.decision.selectedQueueKind).toBe("maintenance"); expect(result.decision.rationale.join(" ")).toContain("probe experiment"); }); it("switches into self-repair maintenance when recent turns are stalled", () => { const result = observeOmegaExecutiveState({ snapshot: makeSnapshot({ kernel: { revision: 2, sessionKey: "agent:test:main", turnCount: 4, identity: { continuityId: "c1", firstSeenAt: 1, lastSeenAt: 4 }, world: { lastObservedChangedFiles: [] }, goals: [ { id: "goal-1", task: "repair app", targets: ["src/app.ts"], requiredKeys: [], status: "active", createdAt: 1, updatedAt: 4, createdTurn: 1, updatedTurn: 4, failureCount: 0, successCount: 0, observedChangedFiles: [], }, ], tension: { openGoalCount: 1, staleGoalCount: 0, failureStreak: 0, repeatedFailureKinds: [], pendingCorrection: true, }, causalGraph: { files: [], edges: [] }, updatedAt: 4, }, operationalSignals: [ { id: "turn-1", recordedAt: 1, iteration: 1, terminationReason: "continue", turnHealth: "stalled", progressObserved: false, timelineDelta: 0, kernelUpdated: false, latencyBreakdown: { sendAgentTurnMs: 10, loadSnapshotMs: 10, readLatestReplyMs: 0, totalMs: 20, }, }, { id: "turn-2", recordedAt: 2, iteration: 2, terminationReason: "continue", turnHealth: "stalled", progressObserved: false, timelineDelta: 0, kernelUpdated: false, latencyBreakdown: { sendAgentTurnMs: 10, loadSnapshotMs: 10, readLatestReplyMs: 0, totalMs: 20, }, }, ], }), memory: makeMemory({ health: "stalled" }), }); expect(result.mode).toBe("active"); expect(result.decision.selectedAction).toBe("maintain"); expect(result.decision.selectedGoalId).toBe("self_repair:stalled_progress"); expect(result.decision.selectedWorkItemId).toBe("maintenance:self_repair:stalled_progress"); expect(result.decision.selectedQueueKind).toBe("maintenance"); expect(result.maintenanceQueue[0]?.kind).toBe("self_repair"); expect(result.decision.rationale.join(" ")).toContain("stalled"); }); it("penalizes direct execution value after a learned reframe-before-retry constraint", () => { const baseline = observeOmegaExecutiveState({ snapshot: makeSnapshot({ kernel: { revision: 2, sessionKey: "agent:test:main", turnCount: 3, identity: { continuityId: "c1", firstSeenAt: 1, lastSeenAt: 3 }, world: { lastObservedChangedFiles: [] }, goals: [ { id: "goal-1", task: "repair app", targets: ["src/a.ts", "src/b.ts"], requiredKeys: [], status: "active", createdAt: 1, updatedAt: 3, createdTurn: 1, updatedTurn: 3, failureCount: 1, successCount: 0, observedChangedFiles: [], }, ], tension: { openGoalCount: 1, staleGoalCount: 0, failureStreak: 0, repeatedFailureKinds: [], pendingCorrection: true, }, causalGraph: { files: [], edges: [] }, updatedAt: 3, }, selfState: { activeGoal: "repair app", activeTargets: ["src/a.ts", "src/b.ts"], requiredKeys: [], learnedConstraints: [], updatedAt: 3, }, }), memory: makeMemory(), }); const reframed = observeOmegaExecutiveState({ snapshot: makeSnapshot({ kernel: { revision: 2, sessionKey: "agent:test:main", turnCount: 3, identity: { continuityId: "c1", firstSeenAt: 1, lastSeenAt: 3 }, world: { lastObservedChangedFiles: [] }, goals: [ { id: "goal-1", task: "repair app", targets: ["src/a.ts", "src/b.ts"], requiredKeys: [], status: "active", createdAt: 1, updatedAt: 3, createdTurn: 1, updatedTurn: 3, failureCount: 1, successCount: 0, observedChangedFiles: [], }, ], tension: { openGoalCount: 1, staleGoalCount: 0, failureStreak: 0, repeatedFailureKinds: [], pendingCorrection: true, }, causalGraph: { files: [], edges: [] }, updatedAt: 3, }, selfState: { activeGoal: "repair app", activeTargets: ["src/b.ts"], requiredKeys: [], learnedConstraints: ["reframe_before_retry", "narrow_to_unresolved_targets"], updatedAt: 3, }, }), memory: makeMemory(), }); expect(reframed.queue[0]?.expectedUtility).toBeLessThan( baseline.queue[0]?.expectedUtility ?? 1, ); expect(reframed.queue[0]?.failureRisk).toBeGreaterThan(baseline.queue[0]?.failureRisk ?? 0); expect(reframed.queue[0]?.estimatedCost).toBeLessThan(baseline.queue[0]?.estimatedCost ?? 1); }); it("devalues direct execution when empirical recovery preference favors isolation", () => { const baseline = observeOmegaExecutiveState({ snapshot: makeSnapshot({ kernel: { revision: 2, sessionKey: "agent:test:main", turnCount: 3, identity: { continuityId: "c1", firstSeenAt: 1, lastSeenAt: 3 }, world: { lastObservedChangedFiles: [] }, goals: [ { id: "goal-1", task: "repair app", targets: ["src/a.ts"], requiredKeys: [], status: "active", createdAt: 1, updatedAt: 3, createdTurn: 1, updatedTurn: 3, failureCount: 1, successCount: 0, observedChangedFiles: [], }, ], tension: { openGoalCount: 1, staleGoalCount: 0, failureStreak: 0, repeatedFailureKinds: [], pendingCorrection: true, }, causalGraph: { files: [], edges: [] }, updatedAt: 3, }, selfState: { activeGoal: "repair app", activeTargets: ["src/a.ts"], requiredKeys: [], learnedConstraints: [], updatedAt: 3, }, }), memory: makeMemory(), }); const isolationBiased = observeOmegaExecutiveState({ snapshot: makeSnapshot({ kernel: { revision: 2, sessionKey: "agent:test:main", turnCount: 3, identity: { continuityId: "c1", firstSeenAt: 1, lastSeenAt: 3 }, world: { lastObservedChangedFiles: [] }, goals: [ { id: "goal-1", task: "repair app", targets: ["src/a.ts"], requiredKeys: [], status: "active", createdAt: 1, updatedAt: 3, createdTurn: 1, updatedTurn: 3, failureCount: 1, successCount: 0, observedChangedFiles: [], }, ], tension: { openGoalCount: 1, staleGoalCount: 0, failureStreak: 0, repeatedFailureKinds: [], pendingCorrection: true, }, causalGraph: { files: [], edges: [] }, updatedAt: 3, }, selfState: { activeGoal: "repair app", activeTargets: ["src/a.ts"], requiredKeys: [], learnedConstraints: [], updatedAt: 3, }, activeRecoveryPreference: { preferredRoute: "sessions_spawn", confidence: 0.8, delegateSuccesses: 1, isolatedSuccesses: 4, }, }), memory: makeMemory(), }); expect(isolationBiased.queue[0]?.expectedUtility).toBeLessThan( baseline.queue[0]?.expectedUtility ?? 1, ); expect(isolationBiased.queue[0]?.failureRisk).toBeGreaterThan( baseline.queue[0]?.failureRisk ?? 0, ); }); it("falls back to generalized recovery preference when active preference is absent", () => { const baseline = observeOmegaExecutiveState({ snapshot: makeSnapshot({ kernel: { revision: 2, sessionKey: "agent:test:main", turnCount: 3, identity: { continuityId: "c1", firstSeenAt: 1, lastSeenAt: 3 }, world: { lastObservedChangedFiles: [] }, goals: [ { id: "goal-1", task: "repair app", targets: ["src/a.ts"], requiredKeys: [], status: "active", createdAt: 1, updatedAt: 3, createdTurn: 1, updatedTurn: 3, failureCount: 1, successCount: 0, observedChangedFiles: [], }, ], tension: { openGoalCount: 1, staleGoalCount: 0, failureStreak: 0, repeatedFailureKinds: [], pendingCorrection: true, }, causalGraph: { files: [], edges: [] }, updatedAt: 3, }, selfState: { activeGoal: "repair app", activeTargets: ["src/a.ts"], requiredKeys: [], learnedConstraints: [], updatedAt: 3, }, }), memory: makeMemory(), }); const generalized = observeOmegaExecutiveState({ snapshot: makeSnapshot({ kernel: { revision: 2, sessionKey: "agent:test:main", turnCount: 3, identity: { continuityId: "c1", firstSeenAt: 1, lastSeenAt: 3 }, world: { lastObservedChangedFiles: [] }, goals: [ { id: "goal-1", task: "repair app", targets: ["src/a.ts"], requiredKeys: [], status: "active", createdAt: 1, updatedAt: 3, createdTurn: 1, updatedTurn: 3, failureCount: 1, successCount: 0, observedChangedFiles: [], }, ], tension: { openGoalCount: 1, staleGoalCount: 0, failureStreak: 0, repeatedFailureKinds: [], pendingCorrection: true, }, causalGraph: { files: [], edges: [] }, updatedAt: 3, }, selfState: { activeGoal: "repair app", activeTargets: ["src/a.ts"], requiredKeys: [], learnedConstraints: [], updatedAt: 3, }, generalizedRecoveryPreference: { preferredRoute: "sessions_spawn", confidence: 0.75, delegateSuccesses: 1, isolatedSuccesses: 3, mechanismKey: "target_not_touched|single_target", }, }), memory: makeMemory(), }); expect(generalized.queue[0]?.expectedUtility).toBeLessThan( baseline.queue[0]?.expectedUtility ?? 1, ); expect(generalized.queue[0]?.failureRisk).toBeGreaterThan(baseline.queue[0]?.failureRisk ?? 0); }); it("prefers the higher-yield agenda line when reopening proactive work", () => { const result = observeOmegaExecutiveState({ snapshot: makeSnapshot({ problemAgenda: [ { id: "agenda-low", classKey: "initiative:stalled_progress", label: "Investigate stalled progress patterns and open a better line of attack", source: "stalled_progress", status: "open", priority: 0.6, evidenceCount: 2, activationCount: 2, successCount: 0, failureCount: 2, realizedUtility: -0.45, firstSeenAt: 1, lastSeenAt: 3, }, { id: "agenda-high", classKey: "initiative:autonomy_improvement", label: "Open a small autonomy-improvement experiment with measurable value", source: "initiative", status: "open", priority: 0.38, evidenceCount: 1, activationCount: 1, successCount: 2, failureCount: 0, realizedUtility: 0.42, firstSeenAt: 1, lastSeenAt: 4, }, ], kernel: { revision: 2, sessionKey: "agent:test:main", turnCount: 3, identity: { continuityId: "c1", firstSeenAt: 1, lastSeenAt: 3 }, world: { lastObservedChangedFiles: [] }, goals: [], tension: { openGoalCount: 0, staleGoalCount: 0, failureStreak: 0, repeatedFailureKinds: [], pendingCorrection: false, }, causalGraph: { files: [], edges: [] }, updatedAt: 3, }, }), memory: makeMemory(), }); expect(result.decision.selectedAction).toBe("maintain"); expect(result.decision.selectedGoalId).toBe("agenda:initiative:autonomy_improvement"); }); it("reopens a proactive agenda line when no active goals are pending", () => { const result = observeOmegaExecutiveState({ snapshot: makeSnapshot({ problemAgenda: [ { id: "agenda-1", classKey: "initiative:autonomy_improvement", label: "Open a small autonomy-improvement experiment with measurable value", source: "initiative", status: "open", priority: 0.42, evidenceCount: 1, activationCount: 0, successCount: 0, failureCount: 0, realizedUtility: 0, firstSeenAt: 1, lastSeenAt: 1, }, ], kernel: { revision: 2, sessionKey: "agent:test:main", turnCount: 3, identity: { continuityId: "c1", firstSeenAt: 1, lastSeenAt: 3 }, world: { lastObservedChangedFiles: [] }, goals: [], tension: { openGoalCount: 0, staleGoalCount: 0, failureStreak: 0, repeatedFailureKinds: [], pendingCorrection: false, }, causalGraph: { files: [], edges: [] }, updatedAt: 3, }, }), memory: makeMemory(), }); expect(result.mode).toBe("active"); expect(result.decision.selectedAction).toBe("maintain"); expect(result.decision.selectedGoalId).toBe("agenda:initiative:autonomy_improvement"); expect(result.decision.rationale.join(" ")).toContain("proactive"); }); it("stays idle when no goals or anomalies justify work", () => { const result = observeOmegaExecutiveState({ snapshot: makeSnapshot(), memory: makeMemory(), }); expect(result.mode).toBe("idle"); expect(result.decision.selectedAction).toBe("idle"); }); });