context-forge
Version:
AI orchestration platform with autonomous teams, enhancement planning, migration tools, 25+ slash commands, checkpoints & hooks. Multi-IDE: Claude, Cursor, Windsurf, Cline, Copilot
98 lines • 2.44 kB
TypeScript
import { EventEmitter } from 'events';
import { GitDisciplineConfig } from '../types/orchestration';
export interface GitStats {
totalCommits: number;
commitsByAgent: Record<string, number>;
averageCommitInterval: number;
branchesCreated: number;
tagsCreated: number;
lastCommitTime?: Date;
complianceRate: number;
}
export interface CommitInfo {
agentId: string;
agentRole: string;
sessionId: string;
changes: string[];
tests?: string[];
blockers?: string[];
nextSteps?: string[];
}
export declare class GitDisciplineService extends EventEmitter {
private config;
private projectPath;
private stats;
private lastCommitTimes;
private autoCommitIntervals;
private commitTemplate;
constructor(config: GitDisciplineConfig, projectPath: string);
/**
* Initialize git discipline for the project
*/
initialize(): Promise<void>;
/**
* Ensure project is a git repository
*/
private ensureGitRepo;
/**
* Configure git settings
*/
private configureGit;
/**
* Set up git hooks
*/
private setupGitHooks;
/**
* Start auto-commit for an agent
*/
startAutoCommit(agentId: string, agentRole: string, sessionId: string): void;
/**
* Stop auto-commit for an agent
*/
stopAutoCommit(agentId: string): void;
/**
* Perform auto-commit
*/
private performAutoCommit;
/**
* Generate commit message from template
*/
private generateCommitMessage;
/**
* Create feature branch
*/
createFeatureBranch(branchName: string, agentId: string): Promise<string>;
/**
* Tag stable version
*/
tagStableVersion(tagName: string, message: string, agentId: string): Promise<void>;
/**
* Check compliance with commit interval
*/
checkCompliance(agentId: string): boolean;
/**
* Update commit statistics
*/
private updateCommitStats;
/**
* Update average commit interval
*/
private updateAverageInterval;
/**
* Get git statistics
*/
getStats(): GitStats;
/**
* Get recent commits
*/
getRecentCommits(limit?: number): Promise<any[]>;
/**
* Get current branch
*/
getCurrentBranch(): Promise<string>;
/**
* Clean up resources
*/
cleanup(): void;
}
//# sourceMappingURL=gitDiscipline.d.ts.map