import type { LoopAttempt, LoopTask } from "../contracts/index.js"; /** * The subset of MartinAdapterRequest fields needed by the prompt packet * compiler. Defined here (not in index.ts) to avoid circular imports: * index.ts → ./persistence/index.js → ./persistence/compiler.js → ./compiler.js (no cycle) */ export interface CompilerAdapterRequest { loopId: string; attemptId: string; context: { taskTitle: string; objective: string; verificationPlan: string[]; verificationStack?: LoopTask["verificationStack"]; mutationMode?: LoopTask["mutationMode"]; repoRoot?: string; allowedPaths?: string[]; deniedPaths?: string[]; acceptanceCriteria?: string[]; focus: string; remainingBudgetUsd: number; remainingIterations: number; remainingTokens?: number; }; previousAttempts: LoopAttempt[]; } export interface PromptPacket { loopId: string; attemptNumber: number; contract: { objective: string; verificationPlan: string[]; mutationMode?: LoopTask["mutationMode"]; allowedPaths?: string[]; deniedPaths?: string[]; acceptanceCriteria?: string[]; }; /** Prior failure/intervention pairs as "failureClass:intervention" strings. */ priorFailurePatterns: string[]; guidance: string; budgetEnvelope: { remainingBudgetUsd: number; remainingIterations: number; remainingTokens?: number; }; } /** * Compiles a deterministic PromptPacket from a MartinAdapterRequest. * This is the context compiler — takes structured request state and produces * a reconstructable packet (no chat history required). */ export declare function compilePromptPacket(request: CompilerAdapterRequest): PromptPacket;