diff --git a/docs/web-ui/agent.md b/docs/web-ui/agent.md index c8271f67..bc2413fa 100644 --- a/docs/web-ui/agent.md +++ b/docs/web-ui/agent.md @@ -73,14 +73,20 @@ through. Three flex columns: preserved). All destructive actions require one extra click to acknowledge — rare ops shouldn't live in the primary state strip. Below a separator, a **model quick-picker** section labelled - `model` renders three one-click shortcuts: `haiku (fast)`, - `sonnet (balanced)`, `opus (powerful)`. Clicking a button POSTs - `/api/model` with the alias (same path as the `/model ` - slash command). The button for the currently-active model is - highlighted via the `active` class; `renderModelChip` keeps the - picker state in sync with live `model_changed` events so it stays - accurate when the model is changed from another session. Clicking - the already-active model closes the menu without an extra POST. + `model` renders one button per model in the operator-configured + list. The list is driven by `state.available_models` (sourced from + the `HIVE_AVAILABLE_MODELS` env var, injected by the + `services.hyperhive.availableModels` NixOS option; defaults to + `["haiku", "sonnet", "opus"]` when unset). Well-known aliases get + a parenthetical description (`haiku (fast)`, `sonnet (balanced)`, + `opus (powerful)`); operator-declared custom names show as-is. + Clicking a button POSTs `/api/model` with the alias (same path as + the `/model ` slash command). The button for the + currently-active model is highlighted via the `active` class; + `renderModelChip` keeps the picker state in sync with live + `model_changed` events so it stays accurate when the model is + changed from another session. Clicking the already-active model + closes the menu without an extra POST. The popover's display rules are scoped to `:not([hidden])` so the `[hidden]` HTML attribute's UA `display: none` isn't overridden by the author CSS's `display: flex` — the popover stays hidden until