mr4's picture
Upload 136 files
fd8cdf5 verified
import type { DashboardJSON } from '../../types/dashboard.js';
import type { FileEntry } from './scanner.js';
/**
* Options for the analyze command.
*/
export interface AnalyzeOptions {
/** Force full rebuild, skipping incremental mode */
full: boolean;
}
/**
* Result of a successful analysis run.
*/
export interface AnalyzeResult {
/** The generated dashboard JSON conforming to the DashboardJSON schema */
dashboard: DashboardJSON;
/** Summary statistics of the analysis */
stats: AnalyzeStats;
/** The scanned file entries (used for domain context generation) */
files: FileEntry[];
}
/**
* Summary statistics from the analysis.
*/
export interface AnalyzeStats {
/** Total number of files analyzed */
filesAnalyzed: number;
/** Number of nodes created, broken down by type */
nodesByType: Record<string, number>;
/** Total number of edges created */
edgesCreated: number;
/** Number of layers identified */
layersIdentified: number;
}
/**
* Main entry point for the static analysis engine.
*
* Scans the target directory, parses source files, builds a knowledge graph,
* detects architectural layers, and generates a guided tour — all without
* requiring an AI agent.
*
* Supports incremental mode: when an existing meta.json is found and --full
* is not specified, only re-analyzes files changed since the last commit hash.
*
* @param targetPath - Absolute path to the directory to analyze
* @param options - Analysis options (e.g., full rebuild vs incremental)
* @returns AnalyzeResult with the generated dashboard and statistics
*/
export declare function analyze(targetPath: string, options: AnalyzeOptions): Promise<AnalyzeResult>;
export type { ScanResult, FileEntry } from './scanner.js';
export type { ParseResult, FunctionInfo, ClassInfo, ImportInfo } from './parser.js';
export type { GraphOutput } from './graph-builder.js';
export { scanProject } from './scanner.js';
export { parseFile } from './parser.js';
export { buildGraph } from './graph-builder.js';
export { detectLayers } from './layer-detector.js';
export { buildTour } from './tour-builder.js';
export { generateDomainContext } from './domain-context.js';
export type { DomainContext, EntryPoint, FileSignature } from './domain-context.js';