erosolar-cli
Version:
Unified AI agent framework for the command line - Multi-provider support with schema-driven tools, code intelligence, and transparent reasoning
86 lines • 2.19 kB
TypeScript
/**
* Automated Documentation Generator
*
* Analyzes code structure and generates comprehensive documentation
* including API docs, README sections, and architecture diagrams.
*
* Principal Investigator: Bo Shang
* Framework: erosolar-cli
*/
export interface DocumentedItem {
type: 'function' | 'class' | 'interface' | 'type' | 'variable' | 'module';
name: string;
file: string;
line: number;
signature?: string;
description?: string;
params?: ParameterDoc[];
returns?: ReturnDoc;
examples?: string[];
tags?: string[];
exported: boolean;
}
export interface ParameterDoc {
name: string;
type: string;
description?: string;
optional: boolean;
defaultValue?: string;
}
export interface ReturnDoc {
type: string;
description?: string;
}
export interface ModuleDoc {
path: string;
name: string;
description?: string;
exports: DocumentedItem[];
dependencies: string[];
}
export interface ProjectDoc {
name: string;
version: string;
description: string;
modules: ModuleDoc[];
architecture: ArchitectureDoc;
apiSummary: APISummary;
}
export interface ArchitectureDoc {
layers: ArchitectureLayer[];
dependencies: DependencyLink[];
}
export interface ArchitectureLayer {
name: string;
modules: string[];
description: string;
}
export interface DependencyLink {
from: string;
to: string;
type: 'imports' | 'extends' | 'implements';
}
export interface APISummary {
totalExports: number;
publicFunctions: number;
publicClasses: number;
publicInterfaces: number;
documentedPercent: number;
}
export declare class DocGenerator {
private workingDir;
private parser;
private fileExtensions;
private excludeDirs;
constructor(workingDir: string);
generateProjectDoc(): ProjectDoc;
private analyzeModules;
private collectFiles;
private extractDependencies;
private analyzeArchitecture;
private generateAPISummary;
generateMarkdown(project: ProjectDoc): string;
generateAPIReference(project: ProjectDoc): string;
}
export default DocGenerator;
//# sourceMappingURL=docGenerator.d.ts.map