/** * PrincipleCompiler — Orchestrator (Task 5) * * Orchestrates the full compilation flow: * ReflectionContextCollector.collect() → extract patterns → generateFromTemplate() * → validateGeneratedCode() → [replay validation] → registerCompiledRule() * * DESIGN DECISIONS: * - extractPatterns infers toolName from pain event reasons and session tool calls * - Groups by toolName into PainPattern objects * - If no patterns can be extracted, returns a 'no patterns' failure * - PRI-115: Replay validation gate runs after code validation, before registration */ import type { TrajectoryDatabase } from '../trajectory.js'; import type { CompileResult } from '@principles/core/runtime-v2'; export type { CompileResult } from '@principles/core/runtime-v2'; export declare class PrincipleCompiler { private readonly stateDir; private readonly collector; constructor(stateDir: string, trajectory: TrajectoryDatabase); /** * Compile a single principle into an auto-generated rule. * * Flow: * 1. Collect reflection context * 2. Extract pain patterns * 3. Generate code from template * 4. Validate generated code * 4.5. Replay validation against GoldenTrace (PRI-115) * 5. Register in ledger */ compileOne(principleId: string): CompileResult; /** * Build GoldenTrace test cases from extracted pain patterns. * * Generates synthetic negative/positive parameter pairs based on whether * the pattern targets commands (commandRegex) or paths (pathRegex). * Returns an empty array when no patterns are available. */ private buildGoldenTraceCases; /** * Compile all eligible principles (those with derivedFromPainIds). */ compileAll(): CompileResult[]; }