export type ValidationSeverity = 'error' | 'warning'; export type ValidationIssueType = 'package' | 'env' | 'file' | 'pattern'; export interface ValidationIssue { type: ValidationIssueType; severity: ValidationSeverity; message: string; hint?: string; } export interface ValidationResult { passed: boolean; framework: string; issues: ValidationIssue[]; durationMs: number; } export interface PackageRule { name: string; location?: 'dependencies' | 'devDependencies' | 'any'; } export interface EnvVarRule { name: string; required?: boolean; alternates?: string[]; } export interface FileRule { path: string; mustContain?: string[]; mustContainAny?: string[]; } export interface VariantRules { files?: FileRule[]; packages?: PackageRule[]; envVars?: EnvVarRule[]; } export interface ValidationRules { framework: string; packages: PackageRule[]; envVars: EnvVarRule[]; files: FileRule[]; variants?: Record; } export interface QuickCheckResult { passed: boolean; phase: 'typecheck' | 'build'; issues: ValidationIssue[]; /** Formatted for agent consumption — actionable, not just error messages */ agentPrompt: string | null; durationMs: number; } export interface QuickChecksOutput { passed: boolean; results: QuickCheckResult[]; /** Combined agent-ready prompt summarizing all failures */ agentRetryPrompt: string | null; totalDurationMs: number; } export type { BuildResult } from './build-validator.js';