/** * Turbo-Cat™ (= Format-finder) — fills .faf slots from file-format evidence * across ~200 formats (the KNOWLEDGE_BASE). Restores the multi-ecosystem * manifest interrogation the v6.0 rewrite narrowed to README+Cargo+package.json. * * v6-native sync port (the v5 engine was async; sync integrates cleanly with * `auto`). Two-layer: (1A) config files in the project directory itself, * (1B) source extensions below it; priority-wins slot recommendations. * * Boundary: detection never looks above the project directory. A parent's * tsconfig.json, Cargo.toml or vercel.json is another project's evidence — * a monorepo package, a subfolder or a new folder under ~ must not inherit it. * * Used as the LOWEST-precedence filler in `auto`: v6's specific detection wins; * Turbo-Cat fills only the slots still empty (esp. non-npm stacks). */ /** A format actually discovered on disk (config-file layer; real files only). */ export interface DiscoveredFormat { fileName: string; /** Derived from the entry's primary slot family (deterministic — real * knowledge surfaced, not invented): package-manager, language, framework, * backend, database, ci-cd, hosting, build, … */ category: string; priority: number; } export interface TurboCatResult { slotFills: Record; frameworks: string[]; confirmedCount: number; /** Option B (compose spec 2026-06-12): the per-format breakdown consumers * display — surfaced so MCPs can DELETE their local format maps entirely. */ discoveredFormats: DiscoveredFormat[]; /** Deterministic lowercase signature, e.g. "typescript-react" ('unknown-stack' when bare). */ stackSignature: string; } /** Scan formats → priority-wins slot recommendations. */ export declare function turboCatScan(projectDir: string): TurboCatResult; /** Turbo-Cat slot fills shaped as a v6 .faf partial ({ project, stack }) for fillEmpties. */ export declare function turboCatSlots(projectDir: string): { project?: Record; stack?: Record; };