doctool
Version:
AI-powered documentation validation and management system
66 lines (65 loc) • 2.12 kB
TypeScript
export interface FileReference {
path: string;
type: 'file' | 'directory' | 'unknown';
mentioned_in: DocumentationLocation;
exists: boolean;
resolved_path?: string;
}
export interface DocumentationLocation {
file: string;
line: number;
column?: number;
context: string;
}
export interface ValidationIssue {
type: 'missing_file' | 'missing_directory' | 'invalid_path' | 'directory_mismatch';
severity: 'error' | 'warning' | 'info';
message: string;
location: DocumentationLocation;
suggestion?: string;
file_reference: FileReference;
}
export interface DirectoryStructureClaim {
claimed_structure: string[];
actual_structure: string[];
location: DocumentationLocation;
directory_path: string;
}
/**
* Validates file system references in documentation files
*/
export declare class FileSystemValidator {
private basePath;
constructor(basePath?: string);
/**
* Validates all file references in a documentation file
*/
validateDocumentationFile(docFilePath: string): ValidationIssue[];
/**
* Extracts file and directory references from markdown content
*/
extractFileReferences(content: string, sourceFile: string): FileReference[];
/**
* Extracts directory structure claims from documentation
*/
extractDirectoryStructureClaims(content: string, sourceFile: string): DirectoryStructureClaim[];
/**
* Validates a single file reference
*/
validateFileReference(fileRef: FileReference, docFilePath: string): ValidationIssue[];
/**
* Validates directory structure claims against actual file system
*/
validateDirectoryStructure(claim: DirectoryStructureClaim): ValidationIssue[];
private isUrl;
private isMailto;
private guessPathType;
private looksLikeFilePath;
private looksLikeDirectoryPath;
private deduplicateReferences;
private suggestFileAlternatives;
private suggestDirectoryAlternatives;
private inferDirectoryFromTree;
private getActualDirectoryStructure;
private extractFilesFromTreeStructure;
}