/** * F5 Strict Mode * Enforces strict implementation protocol * * @module @f5/cli/core/strict-mode * @version 1.0.0 */ import { type ImplementationChecklist } from './requirement-tracker.js'; import { type ValidationReport } from './implementation-validator.js'; export interface StrictModeConfig { enabled: boolean; requirePreflightApproval: boolean; requireTraceabilityComments: boolean; blockOnAmbiguity: boolean; allowExtraFeatures: boolean; validationThreshold: number; } export interface QuickCheck { canImplement: boolean; blockers: string[]; nextRequirement: string | null; coverage: number; } export interface StrictSession { id: string; startedAt: string; lastUpdated: string; config: StrictModeConfig; requirementsPath: string; checklistPath: string; codeDirectory: string; preflightApproved: boolean; status: 'active' | 'paused' | 'completed' | 'failed'; validationHistory: ValidationReport[]; quickCheck: QuickCheck; } export interface SessionSummary { session: StrictSession; checklist: ImplementationChecklist; finalValidation?: ValidationReport; completionStatus: 'success' | 'partial' | 'failed'; recommendations: string[]; } export declare const DEFAULT_STRICT_CONFIG: StrictModeConfig; export declare class StrictMode { private config; private tracker; private validator; private session; private projectRoot; constructor(projectRoot?: string, config?: Partial); /** * Get session file path */ private getSessionPath; /** * Get checklist file path */ private getChecklistPath; /** * Generate unique session ID */ private generateSessionId; /** * Check if session exists */ hasActiveSession(): Promise; /** * Load existing session */ loadSession(): Promise; /** * Generate quickCheck object for Claude Code */ private generateQuickCheck; /** * Save current session */ saveSession(): Promise; /** * Start strict implementation session */ startSession(requirementsPath: string, codeDirectory?: string, config?: Partial): Promise; /** * Generate pre-flight checklist and wait for approval */ preflight(): string; /** * Approve pre-flight checklist */ approvePreflight(): Promise; /** * Check if implementation can proceed */ canProceed(): { allowed: boolean; blockers: string[]; }; /** * Mark requirement status */ markRequirement(reqId: string, status: 'done' | 'blocked' | 'pending' | 'in_progress', detail?: string): Promise; /** * Validate current implementation */ validateCurrent(): Promise; /** * Get current checklist */ getChecklist(): ImplementationChecklist; /** * Get current session */ getSession(): StrictSession | null; /** * Get progress report */ getProgressReport(): string; /** * Pause session */ pauseSession(): Promise; /** * Resume session */ resumeSession(): Promise; /** * End session and generate final report */ endSession(): Promise; /** * Clear session (force close) */ clearSession(): Promise; /** * Generate session summary report */ generateSummary(summary: SessionSummary): string; } /** * Get project root by looking for .f5 directory or package.json */ export declare function findProjectRoot(startDir?: string): Promise;