Spaces:
Paused
Paused
| import fs from "node:fs/promises"; | |
| const DEFAULT_AGENT_BUNDLE_FILES = { | |
| default: ["AGENTS.md"], | |
| ceo: ["AGENTS.md", "HEARTBEAT.md", "SOUL.md", "TOOLS.md"], | |
| } 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<Record<string, string>> { | |
| 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 { | |
| return role === "ceo" ? "ceo" : "default"; | |
| } | |