You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .agents/skills/write-tui/DESIGN.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -107,7 +107,7 @@ Each hint segment is **key + description**, separated by ` · ` (space-middle-do
107
107
108
108
-**Character comparisons must go through `printableChar()`** (Kitty protocol), enforced by `printable-key-guard`; function keys use `matchesKey(data, Key.*)`.
109
109
-**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.
111
111
-**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.
112
112
113
113
## 7. Toggle lists and multi-select
@@ -135,13 +135,13 @@ Rules:
135
135
136
136
## 8. Thinking control (`/model` only)
137
137
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:
139
139
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`).
0 commit comments