refactor(hooks): consolidate getCcsHooksDir to config-manager

- remove duplicate definitions from 3 locations

- centralize in config-manager.ts for DRY compliance

- update all imports across hook modules
This commit is contained in:
kaitranntt
2026-02-04 08:09:20 -05:00
parent 039b005b14
commit b014c4e872
7 changed files with 17 additions and 28 deletions
+8
View File
@@ -26,6 +26,14 @@ export function getCcsDir(): string {
return path.join(getCcsHome(), '.ccs');
}
/**
* Get CCS hooks directory (respects CCS_HOME for test isolation)
* @returns Path to hooks directory
*/
export function getCcsHooksDir(): string {
return path.join(getCcsDir(), 'hooks');
}
/**
* Get config file path (legacy JSON path)
* @deprecated Use getActiveConfigPath() for mode-aware config path
@@ -8,18 +8,11 @@
import * as path from 'path';
import { getImageAnalysisConfig } from '../../config/unified-config-loader';
import { getCcsDir } from '../config-manager';
import { getCcsHooksDir } from '../config-manager';
// Hook file name
const IMAGE_ANALYZER_HOOK = 'image-analyzer-transformer.cjs';
/**
* Get CCS hooks directory (respects CCS_HOME for test isolation)
*/
export function getCcsHooksDir(): string {
return path.join(getCcsDir(), 'hooks');
}
/**
* Get path to image analyzer hook
*/
@@ -10,7 +10,8 @@
import * as fs from 'fs';
import * as path from 'path';
import { info, warn } from '../ui';
import { getImageAnalyzerHookPath, getCcsHooksDir } from './image-analyzer-hook-configuration';
import { getImageAnalyzerHookPath } from './image-analyzer-hook-configuration';
import { getCcsHooksDir } from '../config-manager';
import { getImageAnalysisConfig } from '../../config/unified-config-loader';
import { removeMigrationMarker } from './image-analyzer-profile-hook-injector';
+2 -9
View File
@@ -9,20 +9,13 @@
import * as fs from 'fs';
import * as path from 'path';
import { info, warn } from '../ui';
import { getCcsDir } from '../config-manager';
/**
* Get CCS hooks directory
*/
export function getCcsHooksDir(): string {
return path.join(getCcsDir(), 'hooks');
}
import { getCcsHooksDir } from '../config-manager';
/**
* Get prompts directory for image analysis
*/
export function getPromptsDir(): string {
return path.join(getCcsDir(), 'prompts', 'image-analysis');
return path.join(getCcsHooksDir(), '..', 'prompts', 'image-analysis');
}
/**
+1 -1
View File
@@ -4,4 +4,4 @@
* Exports hook installer functions for prompt management
*/
export { getCcsHooksDir, getPromptsDir, installImageAnalysisPrompts } from './hook-installer';
export { getPromptsDir, installImageAnalysisPrompts } from './hook-installer';
+1 -8
View File
@@ -11,7 +11,7 @@ import * as path from 'path';
import * as os from 'os';
import { info, warn } from '../ui';
import { getWebSearchConfig } from '../../config/unified-config-loader';
import { getCcsDir } from '../config-manager';
import { getCcsHooksDir } from '../config-manager';
import { isCcsWebSearchHook, deduplicateCcsHooks } from './hook-utils';
// Hook file name
@@ -32,13 +32,6 @@ function getClaudeSettingsPath(): string {
return path.join(os.homedir(), '.claude', 'settings.json');
}
/**
* Get CCS hooks directory (respects CCS_HOME for test isolation)
*/
export function getCcsHooksDir(): string {
return path.join(getCcsDir(), 'hooks');
}
// Buffer time added to max provider timeout for hook timeout (seconds)
const HOOK_TIMEOUT_BUFFER = 30;
+2 -1
View File
@@ -10,7 +10,8 @@ import * as fs from 'fs';
import * as path from 'path';
import { info, warn } from '../ui';
import { getWebSearchConfig } from '../../config/unified-config-loader';
import { getHookPath, getCcsHooksDir } from './hook-config';
import { getCcsHooksDir } from '../config-manager';
import { getHookPath } from './hook-config';
import { removeMigrationMarker } from './profile-hook-injector';
// Re-export from hook-config for backward compatibility