context-crystallizer
Version:
AI Crystallization Engineering for Large Repositories - Transform massive repositories into crystallized, AI-consumable knowledge through systematic analysis and optimization. Crystallization extracts meaningful context from any readable files.
200 lines • 6.62 kB
TypeScript
export interface CrystallizerContext {
purpose: string;
keyTerms: string[];
dependencies?: string[];
patterns?: string[];
relatedContexts?: string[];
aiGuidance?: string;
errorHandling?: string[];
integrationPoints?: string[];
}
export interface FileMetadata {
complexity: 'low' | 'medium' | 'high';
category: 'config' | 'source' | 'test' | 'docs' | 'other';
estimatedTokens: number;
}
export declare class CrystallizerCore {
private fileScanner?;
private contextStorage?;
private queueManager?;
private contextSearch?;
private contextValidator?;
private changeDetector?;
private contextUpdater?;
initializeCrystallization(repoPath: string, exclude?: string[]): Promise<{
filesQueued: number;
reinitialized?: boolean;
}>;
private isAlreadyInitialized;
private ensureInfrastructure;
private initializeComponents;
private performFreshInitialization;
private createTemplateFiles;
private createDefaultTemplate;
private createTimeoutConfigFile;
getNextFileForCrystallization(): Promise<{
path: string;
relativePath: string;
content: string;
metadata: {
size: number;
priority: number;
fileType: string;
estimatedTokens: number;
category: "config" | "source" | "test" | "docs" | "other";
lastModified: Date;
};
} | null>;
storeCrystallizedContext(filePath: string, context: CrystallizerContext, fileContent?: string, fileMetadata?: Partial<FileMetadata>): Promise<{
filePath: string;
totalContexts: number;
totalTokens: number;
}>;
getCrystallizationProgress(): Promise<{
contextStats: {
totalContexts: number;
byCategory: Record<string, number>;
byTemplate: Record<string, number>;
totalTokens: number;
avgTokensPerContext: number;
};
session: {
sessionId: string;
startTime: Date | null;
repoPath: string | null;
};
completionPercentage: number;
estimatedCompletionTime: string | null;
totalFiles: number;
processedFiles: number;
currentFile?: string;
startTime: Date;
estimatedTimeRemaining?: number;
sessionId: string;
totalEstimatedTokens: number;
processedTokens: number;
avgTokensPerFile: number;
filesByCategory: Record<string, number>;
processedByCategory: Record<string, number>;
}>;
searchCrystallizedContexts(query: string, maxTokens?: number, category?: string): Promise<{
query: string;
results: number;
totalTokens: number;
matches: {
file: string;
relevance: number;
category: "config" | "source" | "test" | "docs" | "other";
complexity: "low" | "medium" | "high";
tokens: number | undefined;
highlights: string[];
purpose: string;
keyTerms: string[];
}[];
}>;
getCrystallizedBundle(files: string[], maxTokens?: number): Promise<{
requestedFiles: number;
includedFiles: number;
totalTokens: number;
contexts: {
file: string;
purpose: string;
keyTerms: string[];
dependencies: string[];
patterns: string[];
crossReferences: import("../types/index.js").CrossReference[];
complexity: "low" | "medium" | "high";
category: "config" | "source" | "test" | "docs" | "other";
tokenCount: number | undefined;
}[];
}>;
findRelatedCrystallizedContexts(filePath: string, maxResults?: number): Promise<{
sourceFile: string;
relatedContexts: number;
matches: {
file: string;
relevance: number;
category: "config" | "source" | "test" | "docs" | "other";
purpose: string;
keyTerms: string[];
relationship: string;
}[];
}>;
searchByComplexity(complexity: 'low' | 'medium' | 'high', maxResults?: number): Promise<{
complexity: "low" | "medium" | "high";
totalFound: number;
contexts: {
file: string;
category: "config" | "source" | "test" | "docs" | "other";
purpose: string;
keyTerms: string[];
tokenCount: number | undefined;
}[];
}>;
validateCrystallizationQuality(filePath?: string, generateReport?: boolean): Promise<{
overallScore: number;
totalContexts: number;
categoryScores: Record<string, number>;
commonIssues: {
issue: string;
count: number;
}[];
recommendations: string[];
metrics: {
avgTokensPerContext: number;
tokenEfficiencyRating: "excellent" | "good" | "fair" | "poor";
coverageCompleteness: number;
crossReferenceRatio: number;
};
type: string;
} | {
isValid: boolean;
score: number;
issues: import("../types/index.js").ValidationIssue[];
suggestions: string[];
metrics: import("../types/index.js").QualityMetrics;
type: string;
file: string;
}>;
updateCrystallizedContexts(options?: {
forceUpdate?: boolean;
includeUnchanged?: boolean;
cleanupDeleted?: boolean;
checkOnly?: boolean;
generateReport?: boolean;
}): Promise<{
type: string;
report: string;
} | {
needsUpdate: boolean;
summary: {
lastScan: Date | null;
totalFiles: number;
filesWithContext: number;
contextCoverage: number;
estimatedOutdated: number;
};
type: string;
report?: undefined;
} | {
summary: {
filesScanned: number;
changesDetected: number;
contextsUpdated: number;
contextsAdded: number;
contextsRemoved: number;
errors: number;
};
changes: import("../core/change-detector.js").FileChange[];
updatedContexts: string[];
errors: Array<{
file: string;
error: string;
}>;
type: string;
report?: undefined;
}>;
getCrystallizationGuidance(repoPath?: string): Promise<any>;
private loadTemplatesFromFiles;
}
//# sourceMappingURL=crystallizer-core.d.ts.map