feat(hooks): Hooks Commands Panel, Enable/Disable, and Migrate (#14225)

This commit is contained in:
Edilmo Palencia
2025-12-03 10:01:57 -08:00
committed by GitHub
parent 08067acc71
commit b8c038f41f
24 changed files with 2568 additions and 16 deletions
+19 -3
View File
@@ -312,9 +312,13 @@ export interface ConfigParameters {
modelConfigServiceConfig?: ModelConfigServiceConfig;
enableHooks?: boolean;
experiments?: Experiments;
hooks?: {
[K in HookEventName]?: HookDefinition[];
};
hooks?:
| {
[K in HookEventName]?: HookDefinition[];
}
| ({
[K in HookEventName]?: HookDefinition[];
} & { disabled?: string[] });
previewFeatures?: boolean;
enableModelAvailabilityService?: boolean;
experimentalJitContext?: boolean;
@@ -429,6 +433,7 @@ export class Config {
private readonly hooks:
| { [K in HookEventName]?: HookDefinition[] }
| undefined;
private readonly disabledHooks: string[];
private experiments: Experiments | undefined;
private experimentsPromise: Promise<void> | undefined;
private hookSystem?: HookSystem;
@@ -541,6 +546,10 @@ export class Config {
this.useSmartEdit = params.useSmartEdit ?? true;
this.useWriteTodos = params.useWriteTodos ?? true;
this.enableHooks = params.enableHooks ?? false;
this.disabledHooks =
(params.hooks && 'disabled' in params.hooks
? params.hooks.disabled
: undefined) ?? [];
// Enable MessageBus integration if:
// 1. Explicitly enabled via setting, OR
@@ -1563,6 +1572,13 @@ export class Config {
return this.hooks;
}
/**
* Get disabled hooks list
*/
getDisabledHooks(): string[] {
return this.disabledHooks;
}
/**
* Get experiments configuration
*/