/** * Execution Flywheel PoC (Gen 2 - Production Tooling) * * This script proves the physical constraints of a 3-step feedback loop * (Analyst -> Gatekeeper -> Reset) using actual file I/O to pass * state between agents instead of purely in-memory objects. */ import { join, dirname, fromFileUrl } from "https://deno.land/std@0.224.0/path/mod.ts"; const currentDir = dirname(fromFileUrl(import.meta.url)); const STATE_FILE = join(currentDir, "flywheel_state.json"); async function writeState(state: any) { await Deno.writeTextFile(STATE_FILE, JSON.stringify(state, null, 2)); } async function readState(): Promise { const content = await Deno.readTextFile(STATE_FILE); return JSON.parse(content); } async function runFlywheel() { console.log("Starting Execution Flywheel (Gen 2 - File I/O)\n"); // Initial State await writeState({ constraintLevel: "low", iteration: 0, status: "INIT" }); console.log(`[Flywheel] Initialized state file: ${STATE_FILE}`); for (let i = 1; i <= 3; i++) { console.log(`\n=== Iteration ${i} ===`); // Step 1: Analyst reads telemetry (simulated) and writes new protocol to disk console.log("[Analyst] Reading state from disk..."); const analystState = await readState(); console.log("[Analyst] Updating protocol constraints..."); const newConstraintLevel = i === 1 ? "medium" : i === 2 ? "high" : "strict"; analystState.constraintLevel = newConstraintLevel; analystState.iteration = i; analystState.status = "ANALYST_UPDATED"; await writeState(analystState); console.log(`[Analyst] State written to disk with constraint: ${newConstraintLevel}`); // Step 2: Gatekeeper reads constraints from disk console.log("[Gatekeeper] Reading updated constraints from disk..."); const gatekeeperState = await readState(); console.log(`[Gatekeeper] Enforcing constraint level: ${gatekeeperState.constraintLevel}`); gatekeeperState.status = "GATEKEEPER_APPROVED"; await writeState(gatekeeperState); // Step 3: Cycle executes console.log("[Coder] Generating code under physical disk constraints..."); console.log("Cycle complete."); } console.log("\n[Flywheel] Cleaning up state file..."); await Deno.remove(STATE_FILE); console.log("Gen 2 Flywheel execution completed successfully."); } if (import.meta.main) { runFlywheel().catch(console.error); }