Skip to content

Commit f3cccb3

Browse files
committed
docs(tui): document thinking effort parity
1 parent febd583 commit f3cccb3

2 files changed

Lines changed: 8 additions & 7 deletions

File tree

.agents/skills/write-tui/DESIGN.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ Each hint segment is **key + description**, separated by ` · ` (space-middle-do
107107

108108
- **Character comparisons must go through `printableChar()`** (Kitty protocol), enforced by `printable-key-guard`; function keys use `matchesKey(data, Key.*)`.
109109
- **Two-stage `Esc`**: when query is non-empty, clear query first (`list.clearQuery()`); only call `onCancel()` when query is empty.
110-
- `` / `` are context-dependent: in components without paging they toggle values (e.g. `/model` thinking on/off); in lists like `choice-picker` they page. **Do not** use `←→` for paging in components that already use it for thinking toggles.
110+
- `` / `` are context-dependent: in components without paging they switch values (e.g. `/model` thinking effort); in lists like `choice-picker` they page. **Do not** use `←→` for paging in components that already use it for thinking effort.
111111
- **Delete is always letter `D`** (`/provider`, `/plugins`). Letter keys require the list **not** be type-to-search (otherwise input goes into search). Current delete lists are not searchable; if a list needs both search and delete, delete must use a non-printable key.
112112

113113
## 7. Toggle lists and multi-select
@@ -135,13 +135,13 @@ Rules:
135135

136136
## 8. Thinking control (`/model` only)
137137

138-
Below the list, show the selected model's thinking tri-state as fixed `[ On ] Off` segments:
138+
Below the list, show the selected model's thinking effort levels as segments:
139139

140-
- Title: `Thinking (←→ to switch)` (parenthetical only in `toggle` state); other states show `Thinking` only.
141-
- `toggle`: `[ On ] Off` / `On [ Off ]`, active segment `primary+bold`.
142-
- `always-on`: `[ Always on ]`.
143-
- `unsupported`: `[ Off ]` + `unsupported` (textMuted).
144-
- `` / `` flip the draft; commit via `effectiveThinking()` (always-on→true, unsupported→false).
140+
- Title: `Thinking (←→ to switch)` when the model offers more than one level; `Thinking` only otherwise.
141+
- `toggle`: one segment per selectable level — `off` plus the model's `supportEfforts` (fallback `low / med / high`), e.g. `off low [ med ] high`; active segment `primary+bold`, labels via `shortEffortLabel` (`medium``med`).
142+
- `always-on`: the supported levels without an `off` segment.
143+
- `unsupported`: a single muted `Off (Unsupported)` (textMuted).
144+
- `` / `` move the draft one level within the list (no wraparound); the draft commits on `Enter`. Availability/level helpers live in `utils/thinking-levels.ts` (`effortLevelsForModel`, `coerceEffortForModel`).
145145

146146
## 9. Multi-field inputs
147147

tasks/tui-feature-parity.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Legend: ✅ verified, ◻ required evidence, — not applicable, ☐ OpenTUI evi
2323
| command-plan | `/plan` | `legacy.command.plan` | message flow ||||||||
2424
| command-swarm | `/swarm` | `legacy.command.swarm` | message flow ||||||||
2525
| command-model | `/model` | `legacy.command.model` | message flow ||||||||
26+
| command-effort | `/effort` | `legacy.command.effort` | message flow ||||||||
2627
| command-provider | `/provider` | `legacy.command.provider` | message flow ||||||||
2728
| command-btw | `/btw` | `legacy.command.btw` | message flow ||||||||
2829
| command-help | `/help` | `legacy.command.help` | message flow ||||||||

0 commit comments

Comments
 (0)