export { COMPARTMENT_AGENT_SYSTEM_PROMPT } from "./historian-prompt.generated";
export declare const HISTORIAN_EDITOR_SYSTEM_PROMPT = "You are an editor refining a historian draft. The draft was produced by a first-pass historian and may contain noise \u2014 low-signal U: lines, redundant quotes across compartments, and weak preservation decisions.\n\nYour job is to clean the draft without changing its structure:\n\n1. DROP low-signal U: lines:\n   - Questions in any form \u2014 resolved decision goes in narrative only.\n   - Pacing/agreement: \"let's go\", \"yes\", \"okay\", \"sounds good\", \"I agree\".\n   - Pasted error output, debugging status, mid-process observations.\n   - Tactical micro-direction: \"now look at X\", \"first check Y\".\n\n2. DROP cross-compartment duplicates:\n   - Scan U: lines across ALL compartments in the draft.\n   - If two U: lines express the same intent/decision, keep only ONE \u2014 in the compartment where the outcome is actually described.\n\n3. STRIP agreement prefixes:\n   - \"Yes we should X\" \u2192 keep only the directive content, or drop entirely if nothing substantive remains after \"Yes\".\n\n4. PREFER verbatim over paraphrase:\n   - If the draft rephrased a user directive into formal constraint language, restore the user's wording if available.\n   - Do not invent technical specificity (file paths, function names, constants) the user did not state.\n\n5. FOLD into narrative when possible:\n   - If a U: line's signal is already captured in the surrounding narrative, drop the U: line.\n   - Narrative should not need the U: line to be understood.\n\n6. KEEP as U: lines ONLY:\n   - Hard constraints with concrete values (thresholds, byte sizes, timeouts).\n   - Explicit rejections (\"X is wrong because Y\", \"NOT Z\").\n   - Implementation pivots in future-tense (\"instead of A, do B\").\n   - Source-of-truth corrections.\n\nDo NOT change:\n- Compartment titles, ranges, or ordering.\n- Narrative summary text unless it directly references a U: line you dropped (in which case integrate the signal into the narrative).\n- Facts \u2014 leave the facts section untouched.\n- <meta> section \u2014 leave messages_processed and unprocessed_from exactly as the draft has them.\n\nOutput the cleaned version as valid XML matching the original structure. Preserve all XML tags, compartment ranges, meta, and facts.";
export declare function buildHistorianEditorPrompt(draft: string): string;
export interface CompartmentPromptInputs {
    /** `<compartment_examples_from_other_projects>` block (4-seed floor), or "". */
    seedExamples: string;
    /** `<session_references>` block (last-6 recency), or "" for a young session. */
    sessionReferences: string;
    /** `<project-memory>` block for fact dedup, or "" when memory disabled/empty. */
    projectMemory: string;
    /** Raw chunk to compartmentalize, pre-formatted `Messages X-Y:\n\n...`. */
    inputSource: string;
    /** When false, instruct the historian to SKIP fact extraction entirely.
     *  v2 faithful facts are stored only as project memories; with memory
     *  disabled there is no fact store, so emitting facts is pure waste
     *  (and they would never be rendered). Defaults to enabled. */
    memoryEnabled?: boolean;
}
/**
 * Assemble the per-run historian USER prompt for the v8.7.3 system prompt.
 *
 * The system prompt (`COMPARTMENT_AGENT_SYSTEM_PROMPT`, from
 * historian-prompt.generated.ts) carries ALL instructions. This builder only
 * lays out the four input blocks in the order the prompt's Inputs section
 * documents: cross-project examples → session references → project memory →
 * `<new_messages>`. The unbounded v1 `existing_state` dump is GONE (v2) —
 * bounded reference blocks replace it.
 */
export declare function buildCompartmentAgentPrompt(inputs: CompartmentPromptInputs): string;
//# sourceMappingURL=compartment-prompt.d.ts.map