organ-ai-zer
Version:
AI-powered file organizer CLI tool
107 lines • 2.99 kB
TypeScript
import { FileInfo } from '../types';
/**
* Pattern matching result for a file
*/
export interface PatternMatch {
/** Type of pattern matched */
type: string;
/** Confidence level (0-1) */
confidence: number;
/** Extracted metadata from the pattern */
metadata: Record<string, any>;
/** Description of what was matched */
description: string;
}
/**
* Grouped pattern analysis result
*/
export interface PatternGroup {
/** Group identifier */
groupId: string;
/** Group type/category */
type: string;
/** Files in this group */
files: FileInfo[];
/** Common pattern description */
pattern: string;
/** Confidence this is a valid group */
confidence: number;
/** Extracted group metadata */
metadata: Record<string, any>;
}
/**
* Pattern analysis summary
*/
export interface PatternAnalysis {
/** Individual file pattern matches */
fileMatches: Map<string, PatternMatch[]>;
/** Detected pattern groups */
groups: PatternGroup[];
/** Overall analysis hints for AI */
hints: string[];
/** Directory structure suggestions */
structureSuggestions: string[];
}
/**
* Pattern Matching Service
* Optional utility to supplement AI analysis with pattern recognition
* Focuses on common patterns that can help guide AI understanding
*/
export declare class PatternMatchingService {
private patterns;
private cache;
constructor();
/**
* Analyze files for patterns and return insights for AI
*/
analyzePatterns(files: FileInfo[], directory?: string): Promise<PatternAnalysis>;
/**
* Perform the actual pattern analysis (non-cached)
*/
private performPatternAnalysis;
/**
* Get pattern hints that can be provided to AI for better analysis
*/
getPatternHints(files: FileInfo[], directory?: string): Promise<string[]>;
/**
* Check if files appear to be part of a series or collection
*/
findSeries(files: FileInfo[], directory?: string): Promise<PatternGroup[]>;
/**
* Check if files appear to be project-related
*/
findProjects(files: FileInfo[], directory?: string): Promise<PatternGroup[]>;
/**
* Find pattern groups from individual matches
*/
private findPatternGroups;
/**
* Group files by series patterns
*/
private groupBySeries;
/**
* Group files by project patterns
*/
private groupByProject;
/**
* Group files by date patterns
*/
private groupByDate;
/**
* Group files by name similarity
*/
private groupByNameSimilarity;
/**
* Extract common prefix from filename
*/
private extractCommonPrefix;
/**
* Generate hints for AI based on pattern analysis
*/
private generateHints;
/**
* Generate structure suggestions based on groups
*/
private generateStructureSuggestions;
}
//# sourceMappingURL=pattern-matching-service.d.ts.map