import type { BoberAgentRole } from "../graph/preflight-injector.js"; export interface AgentDefinition { /** Agent name from frontmatter. */ name: string; /** One-line description from frontmatter. */ description: string; /** Tool names listed in frontmatter (e.g. ["Read", "Write", "Bash"]). */ tools: string[]; /** Preferred model from frontmatter (e.g. "opus", "sonnet"). */ model: string; /** The full markdown body after frontmatter — used as system prompt. */ systemPrompt: string; } /** * Load an agent definition from its .md file. * * @param agentName The agent name (e.g. "bober-planner", "bober-generator"). * @param projectRoot Optional project root for local overrides. * @returns The parsed AgentDefinition. * @throws If the agent file cannot be found. */ export declare function loadAgentDefinition(agentName: string, projectRoot?: string): Promise; /** * Clear the agent definition cache. Useful for testing. */ export declare function clearAgentCache(): void; /** * Load an agent definition AND apply graph-prompt decoration. * * This is the preferred entry point for all orchestrator runners * (research-agent, architect-agent, curator-agent, generator-agent, * evaluator-agent, planner-agent). It chains `loadAgentDefinition` with * `AgentGraphPrompts.decorate` using the provided graph-state context. * * When `ctx.graphEnabled === false` OR `ctx.engineHealth !== 'ready'` OR * the role has no fragment, returns `definition.systemPrompt` unchanged. */ export declare function assembleSystemPrompt(role: BoberAgentRole, agentName: string, projectRoot: string, ctx: { graphEnabled: boolean; engineHealth: string; }): Promise; //# sourceMappingURL=agent-loader.d.ts.map