feat(ui): implement refreshed UX for Composer layout (#21212)

Co-authored-by: Keith Guerin <keithguerin@gmail.com>
This commit is contained in:
Jarrod Whelan
2026-03-23 19:30:48 -07:00
committed by GitHub
parent 1560131f94
commit 271908dc94
50 changed files with 1578 additions and 1362 deletions

View File

@@ -166,7 +166,7 @@ import { ConsecaSafetyChecker } from '../safety/conseca/conseca.js';
import type { AgentLoopContext } from './agent-loop-context.js';
export interface AccessibilitySettings {
/** @deprecated Use ui.loadingPhrases instead. */
/** @deprecated Use ui.statusHints instead. */
enableLoadingPhrases?: boolean;
screenReader?: boolean;
}

View File

@@ -303,6 +303,7 @@ export class HookEventHandler {
coreEvents.emitHookStart({
hookName: this.getHookName(config),
eventName,
source: config.source,
hookIndex: index + 1,
totalHooks: plan.hookConfigs.length,
});

View File

@@ -28,6 +28,15 @@ export enum ConfigSource {
Extensions = 'extensions',
}
/**
* Returns true if a hook source implies it is a user-visible hook.
* Only System hooks are hidden by default to reduce noise.
*/
export function isUserVisibleHook(source?: string | ConfigSource): boolean {
if (!source) return true; // Treat unknown/legacy hooks as user-visible
return source !== ConfigSource.System;
}
/**
* Event names for the hook system
*/

View File

@@ -88,9 +88,12 @@ export interface HookPayload {
* Payload for the 'hook-start' event.
*/
export interface HookStartPayload extends HookPayload {
/**
* The source of the hook configuration.
*/
source?: string;
/**
* The 1-based index of the current hook in the execution sequence.
* Used for progress indication (e.g. "Hook 1/3").
*/
hookIndex?: number;
/**