devibe
Version:
Intelligent repository cleanup with auto mode, AI learning, markdown consolidation, auto-consolidate workflow, context-aware classification, and cost optimization
85 lines • 2.25 kB
TypeScript
/**
* Markdown Consolidation Types
*
* TypeScript interfaces for the markdown consolidation feature.
*/
export interface MarkdownFile {
path: string;
relativePath: string;
name: string;
size: number;
lastModified: Date;
content: string;
metadata: MarkdownMetadata;
}
export interface MarkdownMetadata {
title: string;
headers: string[];
wordCount: number;
linkCount: number;
codeBlockCount: number;
imageCount: number;
frontMatter?: Record<string, any>;
}
export interface ScanOptions {
targetDirectory: string;
recursive: boolean;
excludePatterns: string[];
includeHidden: boolean;
}
export interface RelevanceAnalysis {
file: MarkdownFile;
score: number;
factors: RelevanceFactors;
status: 'highly-relevant' | 'relevant' | 'marginal' | 'stale';
reasoning: string;
}
export interface RelevanceFactors {
recency: number;
contentQuality: number;
connectivity: number;
uniqueness: number;
}
export interface TopicCluster {
name: string;
description: string;
files: MarkdownFile[];
suggestedFilename: string;
consolidationStrategy: 'merge' | 'summarize' | 'link-only';
}
export interface ConsolidationPlan {
strategy: 'merge-by-topic' | 'merge-by-folder' | 'summarize-cluster' | 'create-super-readme' | 'archive-stale';
inputFiles: MarkdownFile[];
outputFile: string;
preserveOriginals: boolean;
confidence: number;
reasoning: string;
}
export interface ConsolidationResult {
success: boolean;
outputFile: string;
inputFiles: number;
action: string;
backupPath: string;
}
export interface ValidationResult {
valid: boolean;
errors: string[];
warnings: string[];
}
export interface ConsolidationOptions {
maxOutputFiles: number;
preserveOriginals: boolean;
createSuperReadme: boolean;
}
export type AutoConsolidateMode = 'compress' | 'document-archive';
export interface AutoConsolidateOptions {
targetDirectory: string;
mode?: AutoConsolidateMode;
maxOutputFiles?: number;
suppressToC?: boolean;
respectGitBoundaries?: boolean;
recursiveCompress?: boolean;
includeRelated?: boolean;
}
//# sourceMappingURL=types.d.ts.map