2026-02-13 17:40:29 +09:00
import type { BackgroundManager } from "../../features/background-agent"
2026-02-08 13:57:26 +09:00
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.
2026-02-13 17:40:29 +09:00
## 8. Delegated Agent Sessions
- List ALL background agent tasks spawned during this session
- For each: agent name, category, status, description, and **session_id**
- **RESUME, DON'T RESTART.** Each listed session retains full context. After compaction, use \` session_id \` to continue existing agent sessions instead of spawning new ones. This saves tokens, preserves learned context, and prevents duplicate work.
2026-02-08 13:57:26 +09:00
This context is critical for maintaining continuity after compaction.
`
2026-02-13 17:40:29 +09:00
export function createCompactionContextInjector ( backgroundManager? : BackgroundManager ) {
return ( sessionID? : string ) : string = > {
let prompt = COMPACTION_CONTEXT_PROMPT
if ( backgroundManager && sessionID ) {
const history = backgroundManager . taskHistory . formatForCompaction ( sessionID )
if ( history ) {
prompt += ` \ n### Active/Recent Delegated Sessions \ n ${ history } \ n `
}
}
return prompt
}
2026-02-08 13:57:26 +09:00
}