/** * AgentGraphPrompts — ADR-5. * * Per-role system-prompt fragments that teach agents when to prefer graph_* tools. * All fragments are static top-level const strings (no interpolation, no I/O). * * Invariants (ADR-5): * - RESEARCHER-PHASE2 fragment is a literal const with ZERO template interpolation. * The snapshot test in tests/researcher-phase2-prompt-isolation.test.ts pins * the exact bytes. Any edit forces an explicit snapshot update + reviewer ack. * - All fragments are <100 words and contain no feature/task/sprint references. * - 'disabled' mode returns "" for every role. * - decorate() is pure and synchronous — no I/O, no async. */ import type { BoberAgentRole } from "./preflight-injector.js"; export type AgentPromptMode = "gated" | "dual" | "disabled"; export declare class AgentGraphPrompts { /** * Return the prompt fragment for a (role, mode) pair. Returns "" when no * fragment exists (e.g. planner, or 'disabled' mode). Callers MUST treat * the empty string as "no decoration". */ static fragmentFor(role: BoberAgentRole, mode: AgentPromptMode): string; /** * Append the role's graph-prompt fragment to baseSystemPrompt. * * Returns baseSystemPrompt UNCHANGED when: * - graph is not enabled, OR * - engine health is not 'ready', OR * - the fragment for (role, modeForRole(role)) is empty. * * Otherwise returns `baseSystemPrompt + "\n\n---\n\n" + fragment`. * * Gating predicate mirrors src/orchestrator/tools/index.ts:204-211 exactly * so the prompt surface and tool surface flip atomically. */ static decorate(role: BoberAgentRole, baseSystemPrompt: string, ctx: { graphEnabled: boolean; engineHealth: string; }): string; } //# sourceMappingURL=prompts.d.ts.map