UNPKG

devibe

Version:

Intelligent repository cleanup with auto mode, AI learning, markdown consolidation, auto-consolidate workflow, context-aware classification, and cost optimization

181 lines 5.44 kB
/** * Convention Rules Configuration * * Flexible, opt-in system for pristine repo conventions. * Users can customize which rules to enforce via .deviberc * * Philosophy: * - Analyze ALL conventions (always inform) * - Enforce ONLY what user enables * - Provide presets but allow full customization * - Never be restrictive by default */ export interface ConventionRuleConfig { enabled: boolean; severity: 'error' | 'warning' | 'info'; autofix?: boolean; customConfig?: Record<string, any>; } export interface ConventionRules { buildArtifacts?: { detectOutputFolders: ConventionRuleConfig; requireGitignore: ConventionRuleConfig; autoCleanup: ConventionRuleConfig; customOutputFolders?: string[]; }; environmentFiles?: { detectEnvFiles: ConventionRuleConfig; requireEnvExample: ConventionRuleConfig; requireGitignore: ConventionRuleConfig; scanForSecrets: ConventionRuleConfig; }; dependencies?: { detectNodeModules: ConventionRuleConfig; detectVendor: ConventionRuleConfig; detectVirtualEnv: ConventionRuleConfig; requireGitignore: ConventionRuleConfig; }; cacheFiles?: { detectCacheFolders: ConventionRuleConfig; detectSystemFiles: ConventionRuleConfig; autoCleanup: ConventionRuleConfig; customCacheFolders?: string[]; }; logFiles?: { detectLogFiles: ConventionRuleConfig; requireGitignore: ConventionRuleConfig; autoCleanup: ConventionRuleConfig; keepRecentLogs?: number; }; ideFiles?: { detectVSCode: ConventionRuleConfig; detectIDEA: ConventionRuleConfig; keepSharedConfigs: ConventionRuleConfig; keepPersonalConfigs: ConventionRuleConfig; }; monorepo?: { enforcePackageStructure: ConventionRuleConfig; enforceSharedFolders: ConventionRuleConfig; perPackageDocs: ConventionRuleConfig; }; assets?: { enforceAssetsFolder: ConventionRuleConfig; detectLargeFiles: ConventionRuleConfig; maxFileSize?: number; suggestOptimization: ConventionRuleConfig; }; documentation?: { enforceDocsFolder: ConventionRuleConfig; enforceRootFiles: ConventionRuleConfig; detectGeneratedDocs: ConventionRuleConfig; requireGitignoreGenerated: ConventionRuleConfig; }; cicd?: { detectGithubActions: ConventionRuleConfig; detectGitHooks: ConventionRuleConfig; preserveCIConfig: ConventionRuleConfig; }; } /** * Preset configurations for different strictness levels */ export declare const CONVENTION_PRESETS: Record<string, Partial<ConventionRules>>; /** * Default configuration (balanced approach) */ export declare const DEFAULT_CONVENTION_RULES: Partial<ConventionRules>; /** * Configuration file format (.deviberc.json) */ export interface DevibeConfig { preset?: 'minimal' | 'balanced' | 'strict'; conventions?: Partial<ConventionRules>; autoMode?: { applyConventions: boolean; requireConfirmation: boolean; }; excludePatterns?: string[]; excludeFolders?: string[]; } /** * Example .deviberc.json configurations */ export declare const EXAMPLE_CONFIGS: { strictTeam: { preset: string; conventions: { environmentFiles: { scanForSecrets: { enabled: boolean; severity: string; autofix: boolean; }; }; ideFiles: { keepSharedConfigs: { enabled: boolean; severity: string; autofix: boolean; }; }; }; autoMode: { applyConventions: boolean; requireConfirmation: boolean; }; excludeFolders: string[]; }; soloDev: { preset: string; conventions: { buildArtifacts: { detectOutputFolders: { enabled: boolean; severity: string; autofix: boolean; }; }; environmentFiles: { scanForSecrets: { enabled: boolean; severity: string; autofix: boolean; }; }; }; autoMode: { applyConventions: boolean; requireConfirmation: boolean; }; }; openSource: { preset: string; conventions: { documentation: { enforceRootFiles: { enabled: boolean; severity: string; autofix: boolean; }; enforceDocsFolder: { enabled: boolean; severity: string; autofix: boolean; }; }; cicd: { preserveCIConfig: { enabled: boolean; severity: string; autofix: boolean; }; }; }; autoMode: { applyConventions: boolean; requireConfirmation: boolean; }; excludeFolders: string[]; }; }; //# sourceMappingURL=convention-rules.d.ts.map