ccmanager 3.4.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +11 -5
  2. package/dist/components/App.js +17 -3
  3. package/dist/components/App.test.js +5 -5
  4. package/dist/components/Configuration.d.ts +2 -0
  5. package/dist/components/Configuration.js +6 -2
  6. package/dist/components/ConfigureCommand.js +34 -11
  7. package/dist/components/ConfigureOther.js +18 -4
  8. package/dist/components/ConfigureOther.test.js +48 -12
  9. package/dist/components/ConfigureShortcuts.js +27 -85
  10. package/dist/components/ConfigureStatusHooks.js +19 -4
  11. package/dist/components/ConfigureStatusHooks.test.js +46 -12
  12. package/dist/components/ConfigureWorktree.js +18 -4
  13. package/dist/components/ConfigureWorktreeHooks.js +19 -4
  14. package/dist/components/ConfigureWorktreeHooks.test.js +49 -14
  15. package/dist/components/Menu.js +72 -14
  16. package/dist/components/NewWorktree.js +2 -2
  17. package/dist/components/NewWorktree.test.js +6 -6
  18. package/dist/components/PresetSelector.js +2 -2
  19. package/dist/contexts/ConfigEditorContext.d.ts +21 -0
  20. package/dist/contexts/ConfigEditorContext.js +25 -0
  21. package/dist/services/autoApprovalVerifier.js +3 -3
  22. package/dist/services/autoApprovalVerifier.test.js +2 -2
  23. package/dist/services/config/configEditor.d.ts +46 -0
  24. package/dist/services/{configurationManager.effect.test.js → config/configEditor.effect.test.js} +46 -49
  25. package/dist/services/config/configEditor.js +101 -0
  26. package/dist/services/{configurationManager.selectPresetOnStart.test.js → config/configEditor.selectPresetOnStart.test.js} +27 -19
  27. package/dist/services/{configurationManager.test.js → config/configEditor.test.js} +60 -132
  28. package/dist/services/config/configReader.d.ts +28 -0
  29. package/dist/services/config/configReader.js +95 -0
  30. package/dist/services/config/configReader.multiProject.test.d.ts +1 -0
  31. package/dist/services/config/configReader.multiProject.test.js +136 -0
  32. package/dist/services/config/globalConfigManager.d.ts +30 -0
  33. package/dist/services/config/globalConfigManager.js +216 -0
  34. package/dist/services/config/index.d.ts +13 -0
  35. package/dist/services/config/index.js +13 -0
  36. package/dist/services/config/projectConfigManager.d.ts +41 -0
  37. package/dist/services/config/projectConfigManager.js +181 -0
  38. package/dist/services/config/projectConfigManager.test.d.ts +1 -0
  39. package/dist/services/config/projectConfigManager.test.js +105 -0
  40. package/dist/services/config/testUtils.d.ts +81 -0
  41. package/dist/services/config/testUtils.js +351 -0
  42. package/dist/services/sessionManager.autoApproval.test.js +5 -5
  43. package/dist/services/sessionManager.effect.test.js +27 -18
  44. package/dist/services/sessionManager.js +17 -34
  45. package/dist/services/sessionManager.statePersistence.test.js +5 -4
  46. package/dist/services/sessionManager.test.js +52 -47
  47. package/dist/services/shortcutManager.d.ts +0 -1
  48. package/dist/services/shortcutManager.js +5 -16
  49. package/dist/services/shortcutManager.test.js +2 -2
  50. package/dist/services/worktreeService.d.ts +12 -0
  51. package/dist/services/worktreeService.js +24 -4
  52. package/dist/services/worktreeService.sort.test.js +105 -109
  53. package/dist/services/worktreeService.test.js +5 -5
  54. package/dist/types/index.d.ts +41 -7
  55. package/dist/utils/gitUtils.d.ts +8 -0
  56. package/dist/utils/gitUtils.js +32 -0
  57. package/dist/utils/hookExecutor.js +2 -2
  58. package/dist/utils/hookExecutor.test.js +8 -12
  59. package/dist/utils/worktreeUtils.test.js +0 -1
  60. package/package.json +7 -7
  61. package/dist/services/configurationManager.d.ts +0 -121
  62. package/dist/services/configurationManager.js +0 -597
  63. /package/dist/services/{configurationManager.effect.test.d.ts → config/configEditor.effect.test.d.ts} +0 -0
  64. /package/dist/services/{configurationManager.selectPresetOnStart.test.d.ts → config/configEditor.selectPresetOnStart.test.d.ts} +0 -0
  65. /package/dist/services/{configurationManager.test.d.ts → config/configEditor.test.d.ts} +0 -0
@@ -1,121 +0,0 @@
1
- import { Effect, Either } from 'effect';
2
- import { ConfigurationData, StatusHookConfig, WorktreeHookConfig, ShortcutConfig, WorktreeConfig, CommandConfig, CommandPreset, CommandPresetsConfig } from '../types/index.js';
3
- import { FileSystemError, ConfigError, ValidationError } from '../types/errors.js';
4
- export declare class ConfigurationManager {
5
- private configPath;
6
- private legacyShortcutsPath;
7
- private configDir;
8
- private config;
9
- private worktreeLastOpened;
10
- constructor();
11
- private loadConfig;
12
- private migrateLegacyShortcuts;
13
- private saveConfig;
14
- getShortcuts(): ShortcutConfig;
15
- setShortcuts(shortcuts: ShortcutConfig): void;
16
- getStatusHooks(): StatusHookConfig;
17
- setStatusHooks(hooks: StatusHookConfig): void;
18
- getWorktreeHooks(): WorktreeHookConfig;
19
- setWorktreeHooks(hooks: WorktreeHookConfig): void;
20
- getConfiguration(): ConfigurationData;
21
- setConfiguration(config: ConfigurationData): void;
22
- getWorktreeConfig(): WorktreeConfig;
23
- setWorktreeConfig(worktreeConfig: WorktreeConfig): void;
24
- getAutoApprovalConfig(): NonNullable<ConfigurationData['autoApproval']>;
25
- setAutoApprovalConfig(autoApproval: NonNullable<ConfigurationData['autoApproval']>): void;
26
- setAutoApprovalEnabled(enabled: boolean): void;
27
- setAutoApprovalTimeout(timeout: number): void;
28
- getCommandConfig(): CommandConfig;
29
- setCommandConfig(commandConfig: CommandConfig): void;
30
- private migrateLegacyCommandToPresets;
31
- getCommandPresets(): CommandPresetsConfig;
32
- setCommandPresets(presets: CommandPresetsConfig): void;
33
- getDefaultPreset(): CommandPreset;
34
- getPresetById(id: string): CommandPreset | undefined;
35
- addPreset(preset: CommandPreset): void;
36
- deletePreset(id: string): void;
37
- setDefaultPreset(id: string): void;
38
- getSelectPresetOnStart(): boolean;
39
- setSelectPresetOnStart(enabled: boolean): void;
40
- getWorktreeLastOpened(): Record<string, number>;
41
- setWorktreeLastOpened(worktreePath: string, timestamp: number): void;
42
- getWorktreeLastOpenedTime(worktreePath: string): number | undefined;
43
- /**
44
- * Load configuration from file with Effect-based error handling
45
- *
46
- * @returns {Effect.Effect<ConfigurationData, FileSystemError | ConfigError, never>} Configuration data on success, errors on failure
47
- *
48
- * @example
49
- * ```typescript
50
- * const result = await Effect.runPromise(
51
- * configManager.loadConfigEffect()
52
- * );
53
- * ```
54
- */
55
- loadConfigEffect(): Effect.Effect<ConfigurationData, FileSystemError | ConfigError, never>;
56
- /**
57
- * Save configuration to file with Effect-based error handling
58
- *
59
- * @returns {Effect.Effect<void, FileSystemError, never>} Void on success, FileSystemError on write failure
60
- *
61
- * @example
62
- * ```typescript
63
- * await Effect.runPromise(
64
- * configManager.saveConfigEffect(config)
65
- * );
66
- * ```
67
- */
68
- saveConfigEffect(config: ConfigurationData): Effect.Effect<void, FileSystemError, never>;
69
- /**
70
- * Validate configuration structure
71
- * Synchronous validation using Either
72
- */
73
- validateConfig(config: unknown): Either.Either<ValidationError, ConfigurationData>;
74
- /**
75
- * Get preset by ID with Either-based error handling
76
- * Synchronous lookup using Either
77
- */
78
- getPresetByIdEffect(id: string): Either.Either<ValidationError, CommandPreset>;
79
- /**
80
- * Set shortcuts with Effect-based error handling
81
- *
82
- * @returns {Effect.Effect<void, FileSystemError, never>} Void on success, FileSystemError on save failure
83
- *
84
- * @example
85
- * ```typescript
86
- * await Effect.runPromise(
87
- * configManager.setShortcutsEffect(shortcuts)
88
- * );
89
- * ```
90
- */
91
- setShortcutsEffect(shortcuts: ShortcutConfig): Effect.Effect<void, FileSystemError, never>;
92
- /**
93
- * Set command presets with Effect-based error handling
94
- */
95
- setCommandPresetsEffect(presets: CommandPresetsConfig): Effect.Effect<void, FileSystemError, never>;
96
- /**
97
- * Add or update preset with Effect-based error handling
98
- */
99
- addPresetEffect(preset: CommandPreset): Effect.Effect<void, FileSystemError, never>;
100
- /**
101
- * Delete preset with Effect-based error handling
102
- */
103
- deletePresetEffect(id: string): Effect.Effect<void, ValidationError | FileSystemError, never>;
104
- /**
105
- * Set default preset with Effect-based error handling
106
- */
107
- setDefaultPresetEffect(id: string): Effect.Effect<void, ValidationError | FileSystemError, never>;
108
- /**
109
- * Apply default values to configuration
110
- */
111
- private applyDefaults;
112
- /**
113
- * Synchronous legacy shortcuts migration helper
114
- */
115
- private migrateLegacyShortcutsSync;
116
- /**
117
- * Get whether auto-approval is enabled
118
- */
119
- isAutoApprovalEnabled(): boolean;
120
- }
121
- export declare const configurationManager: ConfigurationManager;