import { mkdirSync, writeFileSync, renameSync } from "node:fs"; import { join } from "node:path"; import { randomUUID } from "node:crypto"; /** * Write a read-only `.effective-prompt.md` snapshot for debugging. * Best-effort: logs warning on failure, never throws. */ export function writeEffectivePrompt( agentDir: string, composed: { text: string; hash: string }, meta: { mode: string; version: string }, ): void { try { mkdirSync(agentDir, { recursive: true }); const dest = join(agentDir, ".effective-prompt.md"); const header = `\n` + `\n\n`; const tmp = dest + "." + randomUUID() + ".tmp"; writeFileSync(tmp, header + composed.text); renameSync(tmp, dest); } catch (err) { console.warn( `[effective-prompt] Failed to write snapshot for ${agentDir}:`, err, ); } }