mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
feat(coding-agent): publish configuration schemas (#9880)
* feat(coding-agent): publish configuration schemas * fix(coding-agent): preserve config schema metadata * fix(coding-agent): align schemas with public contracts * fix(ai): place compatibility schema with providers * fix(ai,coding-agent): align configuration schema contracts * fix(ai): reuse session affinity schema * docs(coding-agent): document strict theme validation * fix(ai,coding-agent): align runtime and generated schemas * fix(ai,coding-agent): centralize configuration schema contracts * fix(ai,coding-agent): preserve schema validation contracts * fix(coding-agent): validate keybinding schema grammar * fix(ai,coding-agent): refine configuration schemas * fix(ai,tui,coding-agent): align schemas with runtime behavior * fix(tui): normalize shifted symbol keybindings * fix(ai): preserve compatibility auto-detection
This commit is contained in:
parent
21d1dcd4d4
commit
7f9e1198f2
37 changed files with 5177 additions and 1492 deletions
|
|
@ -58,7 +58,7 @@ See [CLI resources](cli.md#resources) for the command-line option.
|
|||
|
||||
## Create a custom theme
|
||||
|
||||
Copy one of the [built-in themes](https://github.com/earendil-works/pi/tree/main/packages/coding-agent/src/modes/interactive/theme) or create a new JSON file conforming to the [schema](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json). The built-in themes use OKHSL colors, with variables for colors that several roles share, so you can adjust a hue, saturation, or lightness directly.
|
||||
Copy one of the [built-in themes](https://github.com/earendil-works/pi/tree/main/packages/coding-agent/src/modes/interactive/theme) or create a new JSON file conforming to the [schema](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/schemas/theme.schema.json). The built-in themes use OKHSL colors, with variables for colors that several roles share, so you can adjust a hue, saturation, or lightness directly.
|
||||
|
||||
1. Save the file as `<agent-dir>/themes/my-theme.json`. The agent directory defaults to `~/.pi/agent`.
|
||||
2. Set its `name` to `my-theme`.
|
||||
|
|
@ -78,6 +78,8 @@ Use the theme name as the filename. Pi hot-reloads the active user theme only fr
|
|||
| `colors` | Yes | Assigns colors to terminal UI roles. The schema identifies required and optional roles. |
|
||||
| `export` | No | Overrides page and panel backgrounds in HTML exports. |
|
||||
|
||||
Theme objects are strict: only documented top-level fields and color tokens are accepted. Define reusable custom colors under `vars`; custom keys under `colors` or `export` and additional top-level metadata are rejected.
|
||||
|
||||
A color can be written in six forms:
|
||||
|
||||
| Form | Example | Meaning |
|
||||
|
|
@ -93,7 +95,7 @@ Terminal default colors render as the terminal's own colors. Where Pi needs a co
|
|||
|
||||
Pi resolves chained variable references. A missing variable or circular reference makes the theme invalid. Pi uses truecolor when available, gamut-maps OKLCH to sRGB, and approximates colors for 256-color terminals. HTML exports convert OKHSL values to hexadecimal because CSS does not support them. If colors differ from their source values, check your terminal's truecolor detection and contrast settings. See [Configure Your Terminal](terminal-setup.md#override-detected-capabilities).
|
||||
|
||||
Use the [theme JSON schema](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json) for the exact properties, required colors, and accepted value types.
|
||||
Use the [theme JSON schema](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/schemas/theme.schema.json) for the exact properties, required colors, and accepted value types.
|
||||
|
||||
Pi reports invalid theme files during startup and `/reload`.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue