add integration test and --experimental-hooks

This commit is contained in:
DennisYu07 2026-03-02 19:05:28 -08:00
parent 981d1aed3e
commit 7b0929d00c
22 changed files with 1105 additions and 1614 deletions

View file

@ -125,6 +125,7 @@ export interface CliArgs {
acp: boolean | undefined;
experimentalAcp: boolean | undefined;
experimentalLsp: boolean | undefined;
experimentalHooks: boolean | undefined;
extensions: string[] | undefined;
listExtensions: boolean | undefined;
openaiLogging: boolean | undefined;
@ -338,6 +339,12 @@ export async function parseArguments(): Promise<CliArgs> {
'Enable experimental LSP (Language Server Protocol) feature for code intelligence',
default: false,
})
.option('experimental-hooks', {
type: 'boolean',
description:
'Enable experimental hooks feature for lifecycle event customization',
default: false,
})
.option('channel', {
type: 'string',
choices: ['VSCode', 'ACP', 'SDK', 'CI'],
@ -1027,6 +1034,8 @@ export async function loadCliConfig(
format: outputSettingsFormat,
},
hooks: settings.hooks,
enableHooks:
argv.experimentalHooks === true || settings.hooks?.enabled === true,
channel: argv.channel,
// Precedence: explicit CLI flag > settings file > default(true).
// NOTE: do NOT set a yargs default for `chat-recording`, otherwise argv will