import fs from "node:fs/promises"; const DEFAULT_AGENT_BUNDLE_FILES = { default: ["AGENTS.md"], ceo: ["AGENTS.md", "HEARTBEAT.md", "SOUL.md", "TOOLS.md"], pm: ["AGENTS.md", "HEARTBEAT.md", "SOUL.md", "TOOLS.md"], // [nexus] engineer: ["AGENTS.md", "HEARTBEAT.md", "SOUL.md", "TOOLS.md"], // [nexus] general: ["AGENTS.md", "HEARTBEAT.md", "SOUL.md", "TOOLS.md"], // [nexus] } as const; type DefaultAgentBundleRole = keyof typeof DEFAULT_AGENT_BUNDLE_FILES; function resolveDefaultAgentBundleUrl(role: DefaultAgentBundleRole, fileName: string) { return new URL(`../onboarding-assets/${role}/${fileName}`, import.meta.url); } export async function loadDefaultAgentInstructionsBundle(role: DefaultAgentBundleRole): Promise> { const fileNames = DEFAULT_AGENT_BUNDLE_FILES[role]; const entries = await Promise.all( fileNames.map(async (fileName) => { const content = await fs.readFile(resolveDefaultAgentBundleUrl(role, fileName), "utf8"); return [fileName, content] as const; }), ); return Object.fromEntries(entries); } export function resolveDefaultAgentInstructionsBundleRole(role: string): DefaultAgentBundleRole { if (role === "ceo") return "ceo"; if (role === "pm") return "pm"; // [nexus] if (role === "engineer") return "engineer"; // [nexus] if (role === "general") return "general"; // [nexus] return "default"; }