import { createSystemDirective, SystemDirectiveTypes } from "../../shared/system-directive" const COMPACTION_CONTEXT_PROMPT = `${createSystemDirective(SystemDirectiveTypes.COMPACTION_CONTEXT)} When summarizing this session, you MUST include the following sections in your summary: ## 1. User Requests (As-Is) - List all original user requests exactly as they were stated - Preserve the user's exact wording and intent ## 2. Final Goal - What the user ultimately wanted to achieve - The end result or deliverable expected ## 3. Work Completed - What has been done so far - Files created/modified - Features implemented - Problems solved ## 4. Remaining Tasks - What still needs to be done - Pending items from the original request - Follow-up tasks identified during the work ## 5. Active Working Context (For Seamless Continuation) - **Files**: Paths of files currently being edited or frequently referenced - **Code in Progress**: Key code snippets, function signatures, or data structures under active development - **External References**: Documentation URLs, library APIs, or external resources being consulted - **State & Variables**: Important variable names, configuration values, or runtime state relevant to ongoing work ## 6. Explicit Constraints (Verbatim Only) - Include ONLY constraints explicitly stated by the user or in existing AGENTS.md context - Quote constraints verbatim (do not paraphrase) - Do NOT invent, add, or modify constraints - If no explicit constraints exist, write "None" ## 7. Agent Verification State (Critical for Reviewers) - **Current Agent**: What agent is running (momus, oracle, etc.) - **Verification Progress**: Files already verified/validated - **Pending Verifications**: Files still needing verification - **Previous Rejections**: If reviewer agent, what was rejected and why - **Acceptance Status**: Current state of review process This section is CRITICAL for reviewer agents (momus, oracle) to maintain continuity. This context is critical for maintaining continuity after compaction. ` export function createCompactionContextInjector() { return (): string => COMPACTION_CONTEXT_PROMPT }