/** * Read a vision document and hand back plain text. * * The check order is load-bearing, not stylistic: **parse → bounds → existence → * size → decompress**. Checking existence before bounds turns an out-of-bounds * path into a "file not found" and makes the command an existence oracle for * files outside the project — this repo has shipped that exact defect once * (`cost-capture-noise`, 2026-08-22). * * Requirements: project-constitution/AC-1, project-constitution/AC-4, * project-constitution/AC-5, project-constitution/AC-6 * * @module */ import type { ExtractResult } from './types.js'; /** Largest vision document accepted, before anything is read (AC-5). */ export declare const MAX_SOURCE_BYTES: number; /** Largest single archive entry accepted, declared or actual (AC-5). */ export declare const MAX_INFLATED_BYTES: number; /** Every extension `import` accepts, for the AC-4 message. */ export declare const SUPPORTED_EXTENSIONS: readonly [".docx", ".md", ".markdown", ".txt"]; /** * Extract the text of a vision document. * * @param projectRoot - Absolute project root; the source must live inside it. * @param rawPath - The path as the user typed it, absolute or relative to cwd. */ export declare function extractVision(projectRoot: string, rawPath: string): ExtractResult; /** * The message an unsupported format gets. Says what is accepted and what to do * about a PDF, because "unsupported" on its own leaves the user stuck (AC-4). */ export declare function unsupportedFormatHelp(detail: string): string; //# sourceMappingURL=extract.d.ts.map