feat(ipuaro): add display configuration

Add DisplayConfigSchema with theme support (dark/light), stats/tool calls visibility toggles, bell notification on completion, and progress bar control. Includes theme utilities with dynamic color schemes and 46 new tests.
This commit is contained in:
imfozilbek
2025-12-02 01:01:54 +05:00
parent b5ee77d8b8
commit 077d160343
11 changed files with 664 additions and 41 deletions

View File

@@ -86,6 +86,17 @@ export const InputConfigSchema = z.object({
multiline: z.union([z.boolean(), z.literal("auto")]).default(false),
})
/**
* Display configuration schema.
*/
export const DisplayConfigSchema = z.object({
showStats: z.boolean().default(true),
showToolCalls: z.boolean().default(true),
theme: z.enum(["dark", "light"]).default("dark"),
bellOnComplete: z.boolean().default(false),
progressBar: z.boolean().default(true),
})
/**
* Full configuration schema.
*/
@@ -97,6 +108,7 @@ export const ConfigSchema = z.object({
undo: UndoConfigSchema.default({}),
edit: EditConfigSchema.default({}),
input: InputConfigSchema.default({}),
display: DisplayConfigSchema.default({}),
})
/**
@@ -110,6 +122,7 @@ export type WatchdogConfig = z.infer<typeof WatchdogConfigSchema>
export type UndoConfig = z.infer<typeof UndoConfigSchema>
export type EditConfig = z.infer<typeof EditConfigSchema>
export type InputConfig = z.infer<typeof InputConfigSchema>
export type DisplayConfig = z.infer<typeof DisplayConfigSchema>
/**
* Default configuration.