@aaswe/codebase-ai
Version:
AI-Assisted Software Engineering (AASWE) - Rich codebase context for IDE LLMs
95 lines • 2.46 kB
TypeScript
/**
* Git Hooks Manager
*
* Manages Git hooks for TTL file versioning and automatic re-analysis
* when TTL files are modified by developers.
*/
import { EventEmitter } from 'events';
export interface GitHookConfig {
projectRoot: string;
ttlDirectories: string[];
ttlPatterns: string[];
enablePreCommitHook: boolean;
enablePostCommitHook: boolean;
enablePostMergeHook: boolean;
autoReanalyzeOnTTLChange: boolean;
}
export interface TTLFileChange {
filePath: string;
changeType: 'added' | 'modified' | 'deleted';
timestamp: Date;
commitHash?: string;
author?: string;
}
export interface GitHookEvent {
type: 'pre-commit' | 'post-commit' | 'post-merge';
ttlChanges: TTLFileChange[];
timestamp: Date;
commitHash?: string;
}
/**
* Git Hooks Manager for TTL File Versioning
*/
export declare class GitHooksManager extends EventEmitter {
private config;
private git;
private isInitialized;
constructor(config: GitHookConfig);
/**
* Initialize Git hooks for TTL file monitoring
*/
initialize(): Promise<void>;
/**
* Install pre-commit hook to validate TTL files before commit
*/
private installPreCommitHook;
/**
* Install post-commit hook to trigger re-analysis after TTL changes
*/
private installPostCommitHook;
/**
* Install post-merge hook to handle TTL conflicts and re-analysis
*/
private installPostMergeHook;
/**
* Validate staged TTL files before commit
*/
validateStagedTTLFiles(): Promise<boolean>;
/**
* Handle post-commit re-analysis
*/
handlePostCommitReanalysis(): Promise<void>;
/**
* Handle post-merge re-analysis and conflict resolution
*/
handlePostMergeReanalysis(): Promise<void>;
/**
* Get changed TTL files from a commit
*/
private getChangedTTLFiles;
/**
* Validate TTL content
*/
private validateTTLContent;
/**
* Detect TTL conflicts after merge
*/
private detectTTLConflicts;
/**
* Resolve TTL conflicts by triggering re-analysis
*/
private resolveTTLConflicts;
/**
* Trigger re-analysis for changed TTL files
*/
private triggerReanalysis;
/**
* Uninstall Git hooks
*/
uninstall(): Promise<void>;
/**
* Get Git hooks status
*/
getStatus(): Promise<any>;
}
//# sourceMappingURL=GitHooksManager.d.ts.map