@qduc/term2 0.25.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/dist/acp-v2/agent.d.ts +37 -0
  2. package/dist/acp-v2/agent.d.ts.map +1 -0
  3. package/dist/acp-v2/agent.js +171 -0
  4. package/dist/acp-v2/agent.js.map +1 -0
  5. package/dist/acp-v2/serve-args.d.ts +26 -0
  6. package/dist/acp-v2/serve-args.d.ts.map +1 -0
  7. package/dist/acp-v2/serve-args.js +29 -0
  8. package/dist/acp-v2/serve-args.js.map +1 -0
  9. package/dist/acp-v2/serve.d.ts +32 -0
  10. package/dist/acp-v2/serve.d.ts.map +1 -0
  11. package/dist/acp-v2/serve.js +232 -0
  12. package/dist/acp-v2/serve.js.map +1 -0
  13. package/dist/acp-v2/session-backend.d.ts +58 -0
  14. package/dist/acp-v2/session-backend.d.ts.map +1 -0
  15. package/dist/acp-v2/session-backend.js +554 -0
  16. package/dist/acp-v2/session-backend.js.map +1 -0
  17. package/dist/agent.d.ts +1 -0
  18. package/dist/agent.d.ts.map +1 -1
  19. package/dist/agent.js +1 -0
  20. package/dist/agent.js.map +1 -1
  21. package/dist/app.d.ts.map +1 -1
  22. package/dist/app.js +12 -6
  23. package/dist/app.js.map +1 -1
  24. package/dist/cli.js +24 -0
  25. package/dist/cli.js.map +1 -1
  26. package/dist/commands/retry-failed-turn-command.d.ts +1 -0
  27. package/dist/commands/retry-failed-turn-command.d.ts.map +1 -1
  28. package/dist/commands/retry-failed-turn-command.js +3 -0
  29. package/dist/commands/retry-failed-turn-command.js.map +1 -1
  30. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  31. package/dist/components/MarkdownRenderer.js +111 -19
  32. package/dist/components/MarkdownRenderer.js.map +1 -1
  33. package/dist/components/input/ModelMenuSession.d.ts.map +1 -1
  34. package/dist/components/input/ModelMenuSession.js +5 -2
  35. package/dist/components/input/ModelMenuSession.js.map +1 -1
  36. package/dist/components/input/SettingsValueMenuSession.d.ts.map +1 -1
  37. package/dist/components/input/SettingsValueMenuSession.js +55 -35
  38. package/dist/components/input/SettingsValueMenuSession.js.map +1 -1
  39. package/dist/components/input/SubagentPoolMenuSession.d.ts.map +1 -1
  40. package/dist/components/input/SubagentPoolMenuSession.js +3 -3
  41. package/dist/components/input/SubagentPoolMenuSession.js.map +1 -1
  42. package/dist/components/input/menu-bindings.d.ts +8 -4
  43. package/dist/components/input/menu-bindings.d.ts.map +1 -1
  44. package/dist/components/input/menu-bindings.js +14 -2
  45. package/dist/components/input/menu-bindings.js.map +1 -1
  46. package/dist/components/input/settings-intent-host.d.ts.map +1 -1
  47. package/dist/components/input/settings-intent-host.js +2 -1
  48. package/dist/components/input/settings-intent-host.js.map +1 -1
  49. package/dist/components/menu/ModelSelectionMenu.d.ts +2 -1
  50. package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
  51. package/dist/components/menu/ModelSelectionMenu.js +19 -19
  52. package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
  53. package/dist/components/menu/SettingsSelectionMenu.d.ts.map +1 -1
  54. package/dist/components/menu/SettingsSelectionMenu.js +32 -10
  55. package/dist/components/menu/SettingsSelectionMenu.js.map +1 -1
  56. package/dist/components/menu/SettingsValueSelectionMenu.d.ts +8 -1
  57. package/dist/components/menu/SettingsValueSelectionMenu.d.ts.map +1 -1
  58. package/dist/components/menu/SettingsValueSelectionMenu.js +52 -34
  59. package/dist/components/menu/SettingsValueSelectionMenu.js.map +1 -1
  60. package/dist/components/menu/StandaloneModelPickerApp.d.ts.map +1 -1
  61. package/dist/components/menu/StandaloneModelPickerApp.js +5 -2
  62. package/dist/components/menu/StandaloneModelPickerApp.js.map +1 -1
  63. package/dist/components/menu/settings-value-formatter.d.ts +11 -0
  64. package/dist/components/menu/settings-value-formatter.d.ts.map +1 -1
  65. package/dist/components/menu/settings-value-formatter.js +37 -2
  66. package/dist/components/menu/settings-value-formatter.js.map +1 -1
  67. package/dist/components/message/ChatMessage.js +2 -2
  68. package/dist/components/message/ChatMessage.js.map +1 -1
  69. package/dist/components/message/command-message-helpers.d.ts +7 -7
  70. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  71. package/dist/gateway/interaction-protocol.d.ts +2 -1
  72. package/dist/gateway/interaction-protocol.d.ts.map +1 -1
  73. package/dist/gateway/interaction-protocol.js +15 -14
  74. package/dist/gateway/interaction-protocol.js.map +1 -1
  75. package/dist/gateway/runtime-factory.d.ts.map +1 -1
  76. package/dist/gateway/runtime-factory.js +6 -2
  77. package/dist/gateway/runtime-factory.js.map +1 -1
  78. package/dist/hooks/settings-completion-config.d.ts +4 -0
  79. package/dist/hooks/settings-completion-config.d.ts.map +1 -1
  80. package/dist/hooks/settings-completion-config.js +1 -1
  81. package/dist/hooks/settings-completion-config.js.map +1 -1
  82. package/dist/hooks/use-app-commands.d.ts +3 -1
  83. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  84. package/dist/hooks/use-app-commands.js +2 -2
  85. package/dist/hooks/use-app-commands.js.map +1 -1
  86. package/dist/hooks/use-conversation-messages.d.ts +1 -0
  87. package/dist/hooks/use-conversation-messages.d.ts.map +1 -1
  88. package/dist/hooks/use-conversation-messages.js +11 -0
  89. package/dist/hooks/use-conversation-messages.js.map +1 -1
  90. package/dist/hooks/use-conversation.d.ts +1 -0
  91. package/dist/hooks/use-conversation.d.ts.map +1 -1
  92. package/dist/hooks/use-conversation.js +2 -1
  93. package/dist/hooks/use-conversation.js.map +1 -1
  94. package/dist/hooks/use-model-selection.d.ts +25 -6
  95. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  96. package/dist/hooks/use-model-selection.js +37 -18
  97. package/dist/hooks/use-model-selection.js.map +1 -1
  98. package/dist/hooks/use-profile-selection.d.ts.map +1 -1
  99. package/dist/hooks/use-profile-selection.js +1 -0
  100. package/dist/hooks/use-profile-selection.js.map +1 -1
  101. package/dist/hooks/use-provider-selection.js +4 -4
  102. package/dist/hooks/use-provider-selection.js.map +1 -1
  103. package/dist/hooks/use-settings-completion.d.ts +7 -1
  104. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  105. package/dist/hooks/use-settings-completion.js +21 -1
  106. package/dist/hooks/use-settings-completion.js.map +1 -1
  107. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  108. package/dist/hooks/use-settings-value-completion.js +7 -2
  109. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  110. package/dist/hooks/use-standalone-model-picker.d.ts +9 -4
  111. package/dist/hooks/use-standalone-model-picker.d.ts.map +1 -1
  112. package/dist/hooks/use-standalone-model-picker.js +44 -18
  113. package/dist/hooks/use-standalone-model-picker.js.map +1 -1
  114. package/dist/hooks/use-subagent-pool-selection.d.ts +3 -2
  115. package/dist/hooks/use-subagent-pool-selection.d.ts.map +1 -1
  116. package/dist/hooks/use-subagent-pool-selection.js +11 -7
  117. package/dist/hooks/use-subagent-pool-selection.js.map +1 -1
  118. package/dist/lib/agent-client.d.ts +1 -0
  119. package/dist/lib/agent-client.d.ts.map +1 -1
  120. package/dist/lib/agent-client.js +17 -0
  121. package/dist/lib/agent-client.js.map +1 -1
  122. package/dist/lib/agent-configuration.d.ts +1 -0
  123. package/dist/lib/agent-configuration.d.ts.map +1 -1
  124. package/dist/lib/agent-configuration.js +3 -0
  125. package/dist/lib/agent-configuration.js.map +1 -1
  126. package/dist/lib/agent-factory.d.ts +1 -0
  127. package/dist/lib/agent-factory.d.ts.map +1 -1
  128. package/dist/lib/agent-factory.js +13 -5
  129. package/dist/lib/agent-factory.js.map +1 -1
  130. package/dist/prompts/fragments/{gpt-6-astra.md → gpt-6.md} +0 -6
  131. package/dist/prompts/fragments/skill-instruction-conflicts.md +5 -0
  132. package/dist/prompts/gpt-5.6.md +1 -1
  133. package/dist/prompts/orchestrator-prompt.test.ts +5 -2
  134. package/dist/prompts/orchestrator.md +1 -1
  135. package/dist/prompts/pair-mode-stub.md +3 -0
  136. package/dist/prompts/pair-mode.md +29 -0
  137. package/dist/prompts/prompt-constructor.d.ts.map +1 -1
  138. package/dist/prompts/prompt-constructor.js +1 -0
  139. package/dist/prompts/prompt-constructor.js.map +1 -1
  140. package/dist/prompts/prompt-constructor.test.ts +28 -18
  141. package/dist/prompts/prompt-constructor.ts +1 -0
  142. package/dist/prompts/prompt-profiles.js +3 -3
  143. package/dist/prompts/prompt-profiles.js.map +1 -1
  144. package/dist/prompts/prompt-profiles.ts +3 -3
  145. package/dist/prompts/steering-notice.d.ts +3 -3
  146. package/dist/prompts/steering-notice.d.ts.map +1 -1
  147. package/dist/prompts/steering-notice.js +13 -5
  148. package/dist/prompts/steering-notice.js.map +1 -1
  149. package/dist/prompts/steering-notice.test.ts +36 -0
  150. package/dist/prompts/steering-notice.ts +17 -4
  151. package/dist/prompts/subagents/base-gpt-5-modern.md +1 -1
  152. package/dist/prompts/subagents/worker-prompt.test.ts +13 -1
  153. package/dist/prompts/subagents/worker.md +4 -2
  154. package/dist/providers/model-catalog/catalog.generated.d.ts +505 -361
  155. package/dist/providers/model-catalog/catalog.generated.d.ts.map +1 -1
  156. package/dist/providers/model-catalog/catalog.generated.js +505 -361
  157. package/dist/providers/model-catalog/catalog.generated.js.map +1 -1
  158. package/dist/providers/openrouter-decisions.d.ts +8 -0
  159. package/dist/providers/openrouter-decisions.d.ts.map +1 -1
  160. package/dist/providers/openrouter-decisions.js +59 -12
  161. package/dist/providers/openrouter-decisions.js.map +1 -1
  162. package/dist/scripts/eval-gpt6-prompts.d.ts +2 -0
  163. package/dist/scripts/eval-gpt6-prompts.d.ts.map +1 -0
  164. package/dist/scripts/eval-gpt6-prompts.js +214 -0
  165. package/dist/scripts/eval-gpt6-prompts.js.map +1 -0
  166. package/dist/services/agent-runtime/application-run-loop.d.ts +3 -0
  167. package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
  168. package/dist/services/agent-runtime/application-run-loop.js +39 -3
  169. package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
  170. package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts.map +1 -1
  171. package/dist/services/agent-runtime/context-compaction/local-context-compactor.js +8 -3
  172. package/dist/services/agent-runtime/context-compaction/local-context-compactor.js.map +1 -1
  173. package/dist/services/approval/decision-shadow.d.ts +14 -3
  174. package/dist/services/approval/decision-shadow.d.ts.map +1 -1
  175. package/dist/services/approval/decision-shadow.js +11 -12
  176. package/dist/services/approval/decision-shadow.js.map +1 -1
  177. package/dist/services/approval/non-interactive-approval-policy.d.ts +0 -2
  178. package/dist/services/approval/non-interactive-approval-policy.d.ts.map +1 -1
  179. package/dist/services/approval/non-interactive-approval-policy.js +0 -2
  180. package/dist/services/approval/non-interactive-approval-policy.js.map +1 -1
  181. package/dist/services/approval/shell-auto-approval-evaluator.d.ts +1 -3
  182. package/dist/services/approval/shell-auto-approval-evaluator.d.ts.map +1 -1
  183. package/dist/services/approval/shell-auto-approval-evaluator.js +99 -77
  184. package/dist/services/approval/shell-auto-approval-evaluator.js.map +1 -1
  185. package/dist/services/conversation/conversation-events.d.ts +6 -1
  186. package/dist/services/conversation/conversation-events.d.ts.map +1 -1
  187. package/dist/services/conversation/conversation-events.js.map +1 -1
  188. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  189. package/dist/services/conversation/conversation-orchestrator.js +10 -0
  190. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  191. package/dist/services/decision-shadow/decision-client.d.ts +42 -0
  192. package/dist/services/decision-shadow/decision-client.d.ts.map +1 -0
  193. package/dist/services/decision-shadow/decision-client.js +94 -0
  194. package/dist/services/decision-shadow/decision-client.js.map +1 -0
  195. package/dist/services/decision-shadow/decision-shadow-observer.d.ts +16 -0
  196. package/dist/services/decision-shadow/decision-shadow-observer.d.ts.map +1 -0
  197. package/dist/services/decision-shadow/decision-shadow-observer.js +2 -0
  198. package/dist/services/decision-shadow/decision-shadow-observer.js.map +1 -0
  199. package/dist/services/decision-shadow/decision-shadow-pilot.d.ts +14 -0
  200. package/dist/services/decision-shadow/decision-shadow-pilot.d.ts.map +1 -0
  201. package/dist/services/decision-shadow/decision-shadow-pilot.js +166 -0
  202. package/dist/services/decision-shadow/decision-shadow-pilot.js.map +1 -0
  203. package/dist/services/decision-shadow/failure-observation.d.ts +10 -0
  204. package/dist/services/decision-shadow/failure-observation.d.ts.map +1 -0
  205. package/dist/services/decision-shadow/failure-observation.js +26 -0
  206. package/dist/services/decision-shadow/failure-observation.js.map +1 -0
  207. package/dist/services/decision-shadow/failure-triage.d.ts +33 -0
  208. package/dist/services/decision-shadow/failure-triage.d.ts.map +1 -0
  209. package/dist/services/decision-shadow/failure-triage.js +60 -0
  210. package/dist/services/decision-shadow/failure-triage.js.map +1 -0
  211. package/dist/services/decision-shadow/replay-evaluator.d.ts +44 -0
  212. package/dist/services/decision-shadow/replay-evaluator.d.ts.map +1 -0
  213. package/dist/services/decision-shadow/replay-evaluator.js +65 -0
  214. package/dist/services/decision-shadow/replay-evaluator.js.map +1 -0
  215. package/dist/services/decision-shadow/replay-fixtures.d.ts +8 -0
  216. package/dist/services/decision-shadow/replay-fixtures.d.ts.map +1 -0
  217. package/dist/services/decision-shadow/replay-fixtures.js +14 -0
  218. package/dist/services/decision-shadow/replay-fixtures.js.map +1 -0
  219. package/dist/services/mode-notices.d.ts.map +1 -1
  220. package/dist/services/mode-notices.js +5 -1
  221. package/dist/services/mode-notices.js.map +1 -1
  222. package/dist/services/models/decision-model-listing.d.ts +3 -3
  223. package/dist/services/models/decision-model-listing.d.ts.map +1 -1
  224. package/dist/services/models/decision-model-listing.js +3 -3
  225. package/dist/services/models/decision-model-listing.js.map +1 -1
  226. package/dist/services/models/model-nicknames.d.ts +38 -2
  227. package/dist/services/models/model-nicknames.d.ts.map +1 -1
  228. package/dist/services/models/model-nicknames.js +64 -8
  229. package/dist/services/models/model-nicknames.js.map +1 -1
  230. package/dist/services/models/model-tabs.d.ts +22 -0
  231. package/dist/services/models/model-tabs.d.ts.map +1 -0
  232. package/dist/services/models/model-tabs.js +38 -0
  233. package/dist/services/models/model-tabs.js.map +1 -0
  234. package/dist/services/profiles/labels.d.ts.map +1 -1
  235. package/dist/services/profiles/labels.js +2 -0
  236. package/dist/services/profiles/labels.js.map +1 -1
  237. package/dist/services/profiles/legacy-adapter.d.ts.map +1 -1
  238. package/dist/services/profiles/legacy-adapter.js +1 -0
  239. package/dist/services/profiles/legacy-adapter.js.map +1 -1
  240. package/dist/services/profiles/profile-transition.d.ts.map +1 -1
  241. package/dist/services/profiles/profile-transition.js +3 -0
  242. package/dist/services/profiles/profile-transition.js.map +1 -1
  243. package/dist/services/profiles/registry.d.ts.map +1 -1
  244. package/dist/services/profiles/registry.js +8 -0
  245. package/dist/services/profiles/registry.js.map +1 -1
  246. package/dist/services/session/continuation-recovery-handler.d.ts +4 -2
  247. package/dist/services/session/continuation-recovery-handler.d.ts.map +1 -1
  248. package/dist/services/session/continuation-recovery-handler.js +1 -1
  249. package/dist/services/session/continuation-recovery-handler.js.map +1 -1
  250. package/dist/services/session/initial-turn-recovery-handler.d.ts +4 -2
  251. package/dist/services/session/initial-turn-recovery-handler.d.ts.map +1 -1
  252. package/dist/services/session/initial-turn-recovery-handler.js +1 -1
  253. package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
  254. package/dist/services/session/pending-interaction-state.d.ts +2 -0
  255. package/dist/services/session/pending-interaction-state.d.ts.map +1 -1
  256. package/dist/services/session/pending-interaction-state.js +12 -0
  257. package/dist/services/session/pending-interaction-state.js.map +1 -1
  258. package/dist/services/session/session-composition.d.ts +18 -2
  259. package/dist/services/session/session-composition.d.ts.map +1 -1
  260. package/dist/services/session/session-composition.js +74 -46
  261. package/dist/services/session/session-composition.js.map +1 -1
  262. package/dist/services/settings/ancillary-settings-migration.d.ts.map +1 -1
  263. package/dist/services/settings/ancillary-settings-migration.js +4 -0
  264. package/dist/services/settings/ancillary-settings-migration.js.map +1 -1
  265. package/dist/services/settings/settings-schema.d.ts +4 -4
  266. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  267. package/dist/services/settings/settings-schema.js +17 -17
  268. package/dist/services/settings/settings-schema.js.map +1 -1
  269. package/dist/services/settings/settings-service.d.ts +4 -1
  270. package/dist/services/settings/settings-service.d.ts.map +1 -1
  271. package/dist/services/settings/settings-service.js +19 -24
  272. package/dist/services/settings/settings-service.js.map +1 -1
  273. package/dist/services/settings/settings-sources.d.ts +1 -1
  274. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  275. package/dist/services/settings/settings-sources.js +1 -1
  276. package/dist/services/settings/settings-sources.js.map +1 -1
  277. package/dist/services/settings/settings-ui-metadata.d.ts +4 -0
  278. package/dist/services/settings/settings-ui-metadata.d.ts.map +1 -1
  279. package/dist/services/settings/settings-ui-metadata.js +22 -13
  280. package/dist/services/settings/settings-ui-metadata.js.map +1 -1
  281. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +2 -1
  282. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
  283. package/dist/services/settings/test-helpers/settings-consumer-inventory.js +1 -1
  284. package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
  285. package/dist/services/subagents/role-loader.d.ts.map +1 -1
  286. package/dist/services/subagents/role-loader.js +1 -0
  287. package/dist/services/subagents/role-loader.js.map +1 -1
  288. package/dist/services/subagents/subagent-async-registry.d.ts.map +1 -1
  289. package/dist/services/subagents/subagent-async-registry.js +1 -0
  290. package/dist/services/subagents/subagent-async-registry.js.map +1 -1
  291. package/dist/tools/system/run-code/run-code.d.ts.map +1 -1
  292. package/dist/tools/system/run-code/run-code.js +1 -0
  293. package/dist/tools/system/run-code/run-code.js.map +1 -1
  294. package/dist/tools/system/shell.d.ts +2 -0
  295. package/dist/tools/system/shell.d.ts.map +1 -1
  296. package/dist/tools/system/shell.js +9 -4
  297. package/dist/tools/system/shell.js.map +1 -1
  298. package/dist/types/message.d.ts +2 -0
  299. package/dist/types/message.d.ts.map +1 -1
  300. package/dist/types/message.js.map +1 -1
  301. package/dist/utils/clear-input-before-reset.d.ts +19 -0
  302. package/dist/utils/clear-input-before-reset.d.ts.map +1 -0
  303. package/dist/utils/clear-input-before-reset.js +20 -0
  304. package/dist/utils/clear-input-before-reset.js.map +1 -0
  305. package/dist/utils/settings-command.d.ts +2 -0
  306. package/dist/utils/settings-command.d.ts.map +1 -1
  307. package/dist/utils/settings-command.js +30 -1
  308. package/dist/utils/settings-command.js.map +1 -1
  309. package/dist/utils/shell/sandbox/denied-read-detector.d.ts.map +1 -1
  310. package/dist/utils/shell/sandbox/denied-read-detector.js +10 -6
  311. package/dist/utils/shell/sandbox/denied-read-detector.js.map +1 -1
  312. package/dist/utils/value-suggestions.js +3 -3
  313. package/dist/utils/value-suggestions.js.map +1 -1
  314. package/package.json +2 -1
@@ -20,8 +20,8 @@
20
20
  * recorded decision rather than silently reverting it.
21
21
  */
22
22
  /** Every event/command id a menu interaction may advertise a key for. */
23
- export declare const MENU_COMMAND_VOCABULARY: readonly ['move', 'accept', 'escape', 'input', 'tab', 'left', 'right', 'backspace', 'refresh', 'favorite', 'nickname'];
24
- export type MenuCommandId = 'move' | 'accept' | 'escape' | 'input' | 'tab' | 'left' | 'right' | 'backspace' | 'refresh' | 'favorite' | 'nickname';
23
+ export declare const MENU_COMMAND_VOCABULARY: readonly ['move', 'accept', 'escape', 'input', 'tab', 'left', 'right', 'backspace', 'delete', 'refresh', 'favorite', 'nickname'];
24
+ export type MenuCommandId = 'move' | 'accept' | 'escape' | 'input' | 'tab' | 'left' | 'right' | 'backspace' | 'delete' | 'refresh' | 'favorite' | 'nickname';
25
25
  export type MenuBinding = Readonly<{
26
26
  /** Footer key label, e.g. '↑↓' or 'Tab/←→'. */
27
27
  key: string;
@@ -50,6 +50,10 @@ export declare const MODEL_MENU_PROVIDER_TAB_BINDINGS: MenuBindingTable;
50
50
  * bindings are advertised.
51
51
  */
52
52
  export declare const MODEL_MENU_NICKNAME_DRAFT_BINDINGS: MenuBindingTable;
53
+ /** Existing nickname draft: Delete removes it without clearing the text. */
54
+ export declare const MODEL_MENU_NICKNAME_EDIT_BINDINGS: MenuBindingTable;
55
+ /** Same editor once Enter has offered to move a name off another model. */
56
+ export declare const MODEL_MENU_NICKNAME_REPLACE_BINDINGS: MenuBindingTable;
53
57
  /** Model picker error/empty fallback under a legacy per-provider tab. */
54
58
  export declare const MODEL_MENU_PROVIDER_FALLBACK_BINDINGS: MenuBindingTable;
55
59
  /**
@@ -59,11 +63,11 @@ export declare const MODEL_MENU_PROVIDER_FALLBACK_BINDINGS: MenuBindingTable;
59
63
  * MODEL_MENU_NICKNAME_DRAFT_BINDINGS instead and does not call this.
60
64
  */
61
65
  export declare const modelMenuFooterBindings: (dims: {
62
- /** The frame renders the Favorites/All tab switcher (unified mode). */
66
+ /** The frame renders the Favorites/Nicknames/All tab switcher (unified mode). */
63
67
  tabDimension: boolean;
64
68
  /** The frame renders a legacy per-provider tab bar. */
65
69
  providerDimension: boolean;
66
- /** The highlighted row can be nicknamed (Favorites or unified view). */
70
+ /** The highlighted row can be nicknamed (Favorites, Nicknames, or unified view). */
67
71
  nicknameAvailable: boolean;
68
72
  }) => MenuBindingTable;
69
73
  //# sourceMappingURL=menu-bindings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-bindings.d.ts","sourceRoot":"","sources":["../../../source/components/input/menu-bindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,yEAAyE;AACzE,eAAO,MAAM,uBAAuB,YAClC,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,CACF,CAAC;AAEX,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,KAAK,GACL,MAAM,GACN,OAAO,GACP,WAAW,GACX,SAAS,GACT,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IACjC,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACpC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,SAAS,WAAW,EAAE,CAAC;AAEtD,0EAA0E;AAC1E,eAAO,MAAM,YAAY,aAAc,gBAAgB,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,CAAC;AAEnD,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,EAAE,gBAWjC,CAAC;AA8BF,eAAO,MAAM,mBAAmB,EAAE,gBAKjC,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,gCAAgC,EAAE,gBAE9C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,EAAE,gBAGhD,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,qCAAqC,EAAE,gBAGnD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,SAAU;IAC5C,uEAAuE;IACvE,YAAY,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,iBAAiB,EAAE,OAAO,CAAC;CAC5B,KAAG,gBAKH,CAAC"}
1
+ {"version":3,"file":"menu-bindings.d.ts","sourceRoot":"","sources":["../../../source/components/input/menu-bindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,yEAAyE;AACzE,eAAO,MAAM,uBAAuB,YAClC,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,SAAS,EACT,UAAU,EACV,UAAU,CACF,CAAC;AAEX,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,KAAK,GACL,MAAM,GACN,OAAO,GACP,WAAW,GACX,QAAQ,GACR,SAAS,GACT,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IACjC,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACpC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,SAAS,WAAW,EAAE,CAAC;AAEtD,0EAA0E;AAC1E,eAAO,MAAM,YAAY,aAAc,gBAAgB,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,CAAC;AAEnD,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,EAAE,gBAWjC,CAAC;AA8BF,eAAO,MAAM,mBAAmB,EAAE,gBAKjC,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,gCAAgC,EAAE,gBAE9C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,EAAE,gBAGhD,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,iCAAiC,EAAE,gBAI/C,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,oCAAoC,EAAE,gBAGlD,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,qCAAqC,EAAE,gBAGnD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,SAAU;IAC5C,iFAAiF;IACjF,YAAY,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oFAAoF;IACpF,iBAAiB,EAAE,OAAO,CAAC;CAC5B,KAAG,gBAKH,CAAC"}
@@ -29,6 +29,7 @@ export const MENU_COMMAND_VOCABULARY = [
29
29
  'left',
30
30
  'right',
31
31
  'backspace',
32
+ 'delete',
32
33
  'refresh',
33
34
  'favorite',
34
35
  'nickname',
@@ -50,7 +51,7 @@ export const SLASH_MENU_BINDINGS = [
50
51
  /**
51
52
  * Model picker list-footer segments, in advertised order. Owned by
52
53
  * ModelMenuSession's interaction while no nickname draft is open;
53
- * MODEL_MENU_BINDINGS is the unified (Favorites/All) composition.
54
+ * MODEL_MENU_BINDINGS is the unified (Favorites/Nicknames/All) composition.
54
55
  */
55
56
  const MODEL_MENU_CORE_BINDINGS = [
56
57
  { key: '↑↓', action: 'navigate', commands: ['move'] },
@@ -61,7 +62,7 @@ const MODEL_MENU_TAB_BINDINGS = [
61
62
  key: 'Tab/←→',
62
63
  action: 'tab',
63
64
  commands: ['tab', 'left', 'right'],
64
- rationale: 'User decision f106ddd1 (2026-09-11): Tab switches the Favorites/All tab and never completes the highlighted model id into the composer; Enter is the only selection key.',
65
+ rationale: 'User decision f106ddd1 (2026-09-11): Tab switches model-picker tabs and never completes the highlighted model id into the composer; Enter is the only selection key. The tabs are Favorites, Nicknames, and All.',
65
66
  },
66
67
  ];
67
68
  const MODEL_MENU_NICKNAME_BINDINGS = [{ key: 'ctrl+n', action: 'nickname', commands: ['nickname'] }];
@@ -90,6 +91,17 @@ export const MODEL_MENU_NICKNAME_DRAFT_BINDINGS = [
90
91
  { key: '⏎', action: 'save nickname', commands: ['accept'] },
91
92
  { key: 'esc', action: 'cancel nickname', commands: ['escape'] },
92
93
  ];
94
+ /** Existing nickname draft: Delete removes it without clearing the text. */
95
+ export const MODEL_MENU_NICKNAME_EDIT_BINDINGS = [
96
+ { key: '⏎', action: 'save nickname', commands: ['accept'] },
97
+ { key: 'Delete', action: 'remove nickname', commands: ['delete'] },
98
+ { key: 'esc', action: 'cancel nickname', commands: ['escape'] },
99
+ ];
100
+ /** Same editor once Enter has offered to move a name off another model. */
101
+ export const MODEL_MENU_NICKNAME_REPLACE_BINDINGS = [
102
+ { key: '⏎', action: 'replace nickname', commands: ['accept'] },
103
+ { key: 'esc', action: 'cancel nickname', commands: ['escape'] },
104
+ ];
93
105
  /** Model picker error/empty fallback under a legacy per-provider tab. */
94
106
  export const MODEL_MENU_PROVIDER_FALLBACK_BINDINGS = [
95
107
  { key: '←→', action: 'switch provider', commands: ['left', 'right'] },
@@ -1 +1 @@
1
- {"version":3,"file":"menu-bindings.js","sourceRoot":"","sources":["../../../source/components/input/menu-bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu-bindings.js","sourceRoot":"","sources":["../../../source/components/input/menu-bindings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings-intent-host.d.ts","sourceRoot":"","sources":["../../../source/components/input/settings-intent-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EACV,gCAAgC,EAEjC,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,oBAAoB,CAAC,EAAE,gCAAgC,CAAC;CACzD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,sBAAsB,GAAG,YAAY,GAAG,SAAS,CAkDnH"}
1
+ {"version":3,"file":"settings-intent-host.d.ts","sourceRoot":"","sources":["../../../source/components/input/settings-intent-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EACV,gCAAgC,EAEjC,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGnE,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,oBAAoB,CAAC,EAAE,gCAAgC,CAAC;CACzD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,sBAAsB,GAAG,YAAY,GAAG,SAAS,CAwDnH"}
@@ -1,3 +1,4 @@
1
+ import { formatSettingValueDetail } from '../menu/settings-value-formatter.js';
1
2
  /**
2
3
  * Handles the `apply-settings` and `reset-setting` domain intents produced by
3
4
  * the settings / settings-value / model controller graph. Returns `undefined`
@@ -29,7 +30,7 @@ export function handleSettingsIntent(request, deps) {
29
30
  if (change.persistence === 'runtime')
30
31
  onSettingChange?.(change.key, change.value);
31
32
  else
32
- onSystemMessage?.(`Saved ${change.key} = ${change.value}. This setting applies after restart.`);
33
+ onSystemMessage?.(`Saved ${change.key} = ${formatSettingValueDetail(change.key, change.value)}. Restart term2 for it to take effect.`);
33
34
  }
34
35
  }
35
36
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"settings-intent-host.js","sourceRoot":"","sources":["../../../source/components/input/settings-intent-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-intent-host.js","sourceRoot":"","sources":["../../../source/components/input/settings-intent-host.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,14 @@ import { FC } from 'react';
2
2
  import type { ModelInfo } from '../../services/model-service.js';
3
3
  import type { SettingsService } from '../../services/settings/settings-service.js';
4
4
  import type { NicknameDraftState } from '../../hooks/use-model-selection.js';
5
+ import { type ModelTab } from '../../services/models/model-tabs.js';
5
6
  type Props = {
6
7
  items: ModelInfo[];
7
8
  selectedIndex: number;
8
9
  query: string;
9
10
  provider?: string | null;
10
11
  /** Top-level cross-provider view. Omit for legacy provider-tab callers. */
11
- modelTab?: 'favorites' | 'all';
12
+ modelTab?: ModelTab;
12
13
  loading?: boolean;
13
14
  error?: string | null;
14
15
  warning?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"ModelSelectionMenu.d.ts","sourceRoot":"","sources":["../../../source/components/menu/ModelSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAOjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAsB7E,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,eAAe,CAAC;IACjC,4FAA4F;IAC5F,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,4EAA4E;IAC5E,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,6EAA6E;IAC7E,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC3C,CAAC;AAEF,QAAA,MAAM,kBAAkB,EAAE,EAAE,CAAC,KAAK,CA+NjC,CAAC;eAEa,kBAAkB"}
1
+ {"version":3,"file":"ModelSelectionMenu.d.ts","sourceRoot":"","sources":["../../../source/components/menu/ModelSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAOjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAa7E,OAAO,EAAgC,KAAK,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAYlG,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,eAAe,CAAC;IACjC,4FAA4F;IAC5F,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,4EAA4E;IAC5E,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,6EAA6E;IAC7E,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC3C,CAAC;AAEF,QAAA,MAAM,kBAAkB,EAAE,EAAE,CAAC,KAAK,CAsOjC,CAAC;eAEa,kBAAkB"}
@@ -7,22 +7,28 @@ import { MenuContainer, MenuFooter, SelectionMarker } from '../common/MenuContai
7
7
  import { ScrollableTabBar } from '../common/ScrollableTabBar.js';
8
8
  import { COLOR_ACCENT, COLOR_DANGER, COLOR_TEXT, COLOR_TEXT_SUBTLE, COLOR_WARNING, GLYPH_FAVORITE, GLYPH_WARNING, } from '../theme.js';
9
9
  import { FAVORITES_TAB_ID, serializeFavorite } from '../../services/models/model-favorites.js';
10
- import { MODEL_MENU_NICKNAME_DRAFT_BINDINGS, MODEL_MENU_PROVIDER_FALLBACK_BINDINGS, bindingHints, modelMenuFooterBindings, } from '../input/menu-bindings.js';
10
+ import { MODEL_TAB_LABELS, MODEL_TABS } from '../../services/models/model-tabs.js';
11
+ import { MODEL_MENU_NICKNAME_DRAFT_BINDINGS, MODEL_MENU_NICKNAME_EDIT_BINDINGS, MODEL_MENU_NICKNAME_REPLACE_BINDINGS, MODEL_MENU_PROVIDER_FALLBACK_BINDINGS, bindingHints, modelMenuFooterBindings, } from '../input/menu-bindings.js';
11
12
  const EMPTY_FAVORITE_KEYS = new Set();
12
13
  const ModelSelectionMenu = ({ items, selectedIndex, query, provider, modelTab, loading = false, error = null, warning = null, scrollOffset = 0, maxHeight = 10, canSwitchProvider = true, providerSwitchDisabledMessage = 'Provider can only be changed at the start of a new conversation (/clear to reset)', credentialRevision = 0, settingsService, favoriteKeys = EMPTY_FAVORITE_KEYS, nicknameLabels, nicknameDraft = null, }) => {
13
14
  const isFavoritesTab = modelTab === 'favorites' || provider === FAVORITES_TAB_ID;
15
+ const isNicknamesTab = modelTab === 'nicknames';
14
16
  const isUnified = provider == null;
15
17
  // The footer renders from declared binding tables (menu-bindings.ts), so a
16
18
  // hint cannot drift from the behavior the owning session implements. While
17
19
  // a nickname draft is open the draft editor owns the input row and only the
18
20
  // draft bindings are advertised.
19
- const footerBindings = nicknameDraft
20
- ? MODEL_MENU_NICKNAME_DRAFT_BINDINGS
21
- : modelMenuFooterBindings({
22
- tabDimension: modelTab != null,
23
- providerDimension: !isUnified,
24
- nicknameAvailable: isFavoritesTab || isUnified,
25
- });
21
+ const footerBindings = nicknameDraft?.pendingReplace
22
+ ? MODEL_MENU_NICKNAME_REPLACE_BINDINGS
23
+ : nicknameDraft?.existingNickname
24
+ ? MODEL_MENU_NICKNAME_EDIT_BINDINGS
25
+ : nicknameDraft
26
+ ? MODEL_MENU_NICKNAME_DRAFT_BINDINGS
27
+ : modelMenuFooterBindings({
28
+ tabDimension: modelTab != null,
29
+ providerDimension: !isUnified,
30
+ nicknameAvailable: isFavoritesTab || isNicknamesTab || isUnified,
31
+ });
26
32
  const openAIApiKey = useSetting(settingsService, 'agent.openai.apiKey');
27
33
  const openRouterApiKey = useSetting(settingsService, 'agent.openrouter.apiKey');
28
34
  const tabItems = useMemo(() => {
@@ -63,10 +69,7 @@ const ModelSelectionMenu = ({ items, selectedIndex, query, provider, modelTab, l
63
69
  : '',
64
70
  ' '));
65
71
  } }));
66
- const modelTabBar = modelTab && (React.createElement(ScrollableTabBar, { items: [
67
- { id: 'favorites', label: 'Favorites' },
68
- { id: 'all', label: 'All' },
69
- ], activeItemId: modelTab, getItemWidth: (tab) => tab.label.length + 2, renderTab: (tab, isActive) => (React.createElement(Text, { inverse: isActive, color: isActive ? COLOR_ACCENT : COLOR_TEXT_SUBTLE, bold: isActive },
72
+ const modelTabBar = modelTab && (React.createElement(ScrollableTabBar, { items: MODEL_TABS.map((id) => ({ id, label: MODEL_TAB_LABELS[id] })), activeItemId: modelTab, getItemWidth: (tab) => tab.label.length + 2, renderTab: (tab, isActive) => (React.createElement(Text, { inverse: isActive, color: isActive ? COLOR_ACCENT : COLOR_TEXT_SUBTLE, bold: isActive },
70
73
  ' ',
71
74
  tab.label,
72
75
  ' ')) }));
@@ -96,7 +99,7 @@ const ModelSelectionMenu = ({ items, selectedIndex, query, provider, modelTab, l
96
99
  GLYPH_WARNING,
97
100
  " ",
98
101
  providerSwitchDisabledMessage))),
99
- React.createElement(MenuContainer, { items: items, selectedIndex: selectedIndex, scrollOffset: scrollOffset, maxHeight: maxHeight, title: "Select model", loading: loading && items.length === 0, loadingText: loading ? `Loading models${provider ? ` from ${provider}` : ' from all providers'}…` : 'Loading...', error: error ? `Unable to load models: ${error}` : null, fallbackText: isFavoritesTab && !query ? (React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, "No favorites yet \u2014 press ctrl+f on a model to add one.")) : (React.createElement(Text, { color: COLOR_TEXT_SUBTLE },
102
+ React.createElement(MenuContainer, { items: items, selectedIndex: selectedIndex, scrollOffset: scrollOffset, maxHeight: maxHeight, title: "Select model", loading: loading && items.length === 0, loadingText: loading ? `Loading models${provider ? ` from ${provider}` : ' from all providers'}…` : 'Loading...', error: error ? `Unable to load models: ${error}` : null, fallbackText: isNicknamesTab && !query ? (React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, "No nicknames yet \u2014 switch to All and press ctrl+n on a model to name it.")) : isFavoritesTab && !query ? (React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, "No favorites yet \u2014 press ctrl+f on a model to add one.")) : (React.createElement(Text, { color: COLOR_TEXT_SUBTLE },
100
103
  "No models match \"",
101
104
  query || '*',
102
105
  "\"")), footer: React.createElement(MenuFooter, { hints: bindingHints(footerBindings) }), footerOutsideBorder: true, renderItem: (item, _actualIndex, isSelected) => {
@@ -127,12 +130,9 @@ const ModelSelectionMenu = ({ items, selectedIndex, query, provider, modelTab, l
127
130
  ' ',
128
131
  "\u2014 unavailable: Not logged in on this host. Run `term2 --codex-login`.")) : item.unavailableReason === 'missing-grok-login' ? (React.createElement(Text, { color: COLOR_WARNING },
129
132
  ' ',
130
- "\u2014 unavailable: Not logged in on this host. Run `term2 --grok-login`.")) : item.unavailableReason === 'missing-credentials' ? (React.createElement(Text, { color: COLOR_WARNING }, " \u2014 unavailable: API key not configured on this host")) : null,
131
- item.name && React.createElement(Text, { color: isSelected ? COLOR_TEXT : COLOR_TEXT_SUBTLE },
132
- " \u2014 ",
133
- item.name)))));
133
+ "\u2014 unavailable: Not logged in on this host. Run `term2 --grok-login`.")) : item.unavailableReason === 'missing-credentials' ? (React.createElement(Text, { color: COLOR_WARNING }, " \u2014 unavailable: API key not configured on this host")) : null))));
134
134
  } }),
135
- (isFavoritesTab || isUnified) && nicknameDraft && (React.createElement(Box, { flexDirection: "column" },
135
+ nicknameDraft && (React.createElement(Box, { flexDirection: "column" },
136
136
  React.createElement(Box, null,
137
137
  React.createElement(Text, { color: COLOR_ACCENT, bold: true },
138
138
  "Nickname for ",
@@ -142,7 +142,7 @@ const ModelSelectionMenu = ({ items, selectedIndex, query, provider, modelTab, l
142
142
  " ",
143
143
  nicknameDraft.text),
144
144
  React.createElement(Text, { color: COLOR_ACCENT }, "\u258F")),
145
- nicknameDraft.error && React.createElement(Text, { color: COLOR_DANGER }, nicknameDraft.error))),
145
+ nicknameDraft.error && (React.createElement(Text, { color: nicknameDraft.pendingReplace ? COLOR_WARNING : COLOR_DANGER }, nicknameDraft.error)))),
146
146
  !isUnified && (error || (items.length === 0 && !loading)) && (React.createElement(MenuFooter, { hints: bindingHints(MODEL_MENU_PROVIDER_FALLBACK_BINDINGS) }))));
147
147
  };
148
148
  export default ModelSelectionMenu;
@@ -1 +1 @@
1
- {"version":3,"file":"ModelSelectionMenu.js","sourceRoot":"","sources":["../../../source/components/menu/ModelSelectionMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelSelectionMenu.js","sourceRoot":"","sources":["../../../source/components/menu/ModelSelectionMenu.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsSelectionMenu.d.ts","sourceRoot":"","sources":["../../../source/components/menu/SettingsSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,wCAAwC,CAAC;AAMhD,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC,CAAC;AAKF,QAAA,MAAM,qBAAqB,EAAE,EAAE,CAAC,KAAK,CAgGpC,CAAC;eAEa,qBAAqB"}
1
+ {"version":3,"file":"SettingsSelectionMenu.d.ts","sourceRoot":"","sources":["../../../source/components/menu/SettingsSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,wCAAwC,CAAC;AAMhD,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC,CAAC;AAmBF,QAAA,MAAM,qBAAqB,EAAE,EAAE,CAAC,KAAK,CA2GpC,CAAC;eAEa,qBAAqB"}
@@ -3,9 +3,22 @@ import { Box, Text } from 'ink';
3
3
  import { getSettingCategory, } from '../../hooks/use-settings-completion.js';
4
4
  import { MenuContainer } from '../common/MenuContainer.js';
5
5
  import { ScrollableTabBar } from '../common/ScrollableTabBar.js';
6
- import { COLOR_ACCENT, COLOR_DANGER, COLOR_SUCCESS, COLOR_TEXT, COLOR_TEXT_SUBTLE } from '../theme.js';
7
- import { formatSettingDisplayValue, truncate } from './settings-value-formatter.js';
6
+ import { COLOR_ACCENT, COLOR_DANGER, COLOR_SUCCESS, COLOR_TEXT, COLOR_TEXT_SUBTLE, COLOR_WARNING } from '../theme.js';
7
+ import { formatSettingDisplayValue, truncateKeepingTail } from './settings-value-formatter.js';
8
8
  const VISIBLE_COUNT = 10;
9
+ const SOURCE_LABELS = {
10
+ default: 'default value',
11
+ config: 'set in settings file',
12
+ env: 'set by environment variable',
13
+ cli: 'set by command-line flag',
14
+ };
15
+ function describeSettingState(item) {
16
+ const parts = [];
17
+ if (item.source)
18
+ parts.push(SOURCE_LABELS[item.source]);
19
+ parts.push(item.requiresRestart ? 'applies after restart' : 'applies immediately');
20
+ return parts.join(' · ');
21
+ }
9
22
  const KEY_COL_WIDTH = 32;
10
23
  const SettingsSelectionMenu = ({ items, selectedIndex, scrollOffset = 0, query, isSearchingAll = false, activeCategoryId, categories, }) => {
11
24
  const activeCategory = categories.find((category) => category.id === activeCategoryId);
@@ -23,32 +36,41 @@ const SettingsSelectionMenu = ({ items, selectedIndex, scrollOffset = 0, query,
23
36
  "\"",
24
37
  ' ',
25
38
  isSearchingAll ? 'in any section' : `in ${activeCategory?.label ?? 'this section'}`)), footer: React.createElement(Box, { flexDirection: "column" },
39
+ selectedItem && (React.createElement(Text, { color: COLOR_TEXT, bold: true }, selectedItem.key)),
26
40
  selectedItem?.description && (React.createElement(Box, { marginBottom: 0 },
27
41
  React.createElement(Text, { color: COLOR_ACCENT, italic: true }, selectedItem.description))),
42
+ selectedItem && React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, describeSettingState(selectedItem)),
28
43
  React.createElement(Text, { color: COLOR_TEXT_SUBTLE, dimColor: true },
29
- "Use ",
44
+ "Type to search all sections \u00B7 ",
30
45
  React.createElement(Text, { bold: true }, "\u2191\u2193"),
31
- " to navigate, ",
46
+ " move \u00B7 ",
32
47
  React.createElement(Text, { bold: true }, "Enter"),
33
- " to edit, ",
48
+ " edit \u00B7",
49
+ ' ',
34
50
  React.createElement(Text, { bold: true }, "Esc"),
35
- " to close")), footerOutsideBorder: false, renderItem: (item, actualIndex, isSelected) => {
51
+ " close \u00B7 ",
52
+ React.createElement(Text, { color: COLOR_WARNING }, "\u25CF"),
53
+ " changed \u00B7 ",
54
+ React.createElement(Text, { bold: true }, "\u21BB"),
55
+ " needs restart")), footerOutsideBorder: false, renderItem: (item, actualIndex, isSelected) => {
36
56
  const category = getSettingCategory(item.key);
37
57
  const prevCategory = actualIndex > 0 ? getSettingCategory(items[actualIndex - 1].key) : null;
38
58
  // A filter query searches all sections and ranks by relevance, so the
39
59
  // category boundaries carry no meaning there — render a flat list.
40
60
  const showHeader = !isSearchingAll && (actualIndex === scrollOffset || category.id !== prevCategory?.id);
41
61
  const valueObj = formatSettingDisplayValue(item.key, item.currentValue);
42
- const paddedKey = item.key.length > KEY_COL_WIDTH
43
- ? truncate(item.key, KEY_COL_WIDTH).padEnd(KEY_COL_WIDTH, ' ')
44
- : item.key.padEnd(KEY_COL_WIDTH, ' ');
62
+ // Keep the tail of long keys: the leaf name is what tells siblings apart.
63
+ const paddedKey = truncateKeepingTail(item.key, KEY_COL_WIDTH).padEnd(KEY_COL_WIDTH, ' ');
64
+ const isChanged = item.source !== undefined && item.source !== 'default';
45
65
  return (React.createElement(Box, { key: item.key, flexDirection: "column" },
46
66
  showHeader && (React.createElement(Box, { marginTop: actualIndex === scrollOffset ? 0 : 1, marginBottom: 0 },
47
67
  React.createElement(Text, { color: COLOR_ACCENT, bold: true, underline: true }, category.label))),
48
68
  React.createElement(Box, null,
49
69
  React.createElement(Text, { color: isSelected ? COLOR_SUCCESS : COLOR_TEXT_SUBTLE }, isSelected ? '▶ ' : ' '),
50
70
  React.createElement(Text, { color: isSelected ? COLOR_SUCCESS : COLOR_TEXT, bold: isSelected }, paddedKey),
51
- valueObj && (React.createElement(Text, { color: isSelected ? COLOR_TEXT : valueObj.color ?? COLOR_TEXT_SUBTLE }, valueObj.text)))));
71
+ React.createElement(Text, { color: COLOR_WARNING }, isChanged ? '● ' : ' '),
72
+ valueObj && (React.createElement(Text, { color: valueObj.color ?? COLOR_TEXT_SUBTLE, bold: isSelected }, valueObj.text)),
73
+ item.requiresRestart && React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, " \u21BB"))));
52
74
  } })));
53
75
  };
54
76
  export default SettingsSelectionMenu;
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsSelectionMenu.js","sourceRoot":"","sources":["../../../source/components/menu/SettingsSelectionMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsSelectionMenu.js","sourceRoot":"","sources":["../../../source/components/menu/SettingsSelectionMenu.tsx"],"names":[],"mappings":"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"}
@@ -6,7 +6,14 @@ type Props = {
6
6
  selectedIndex: number;
7
7
  query: string;
8
8
  isNumericSettings?: boolean;
9
- isFreeFormString?: boolean;
9
+ /** Current value, already formatted for display. */
10
+ currentText?: string;
11
+ /** Built-in default, already formatted for display. */
12
+ defaultText?: string;
13
+ /** What Enter would save right now, already formatted; omitted when nothing would be saved. */
14
+ previewText?: string;
15
+ /** Extra input shapes the setting accepts (e.g. `5m`, `$5`). */
16
+ unitHint?: string;
10
17
  };
11
18
  declare const SettingsValueSelectionMenu: FC<Props>;
12
19
  export default SettingsValueSelectionMenu;
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsValueSelectionMenu.d.ts","sourceRoot":"","sources":["../../../source/components/menu/SettingsValueSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,kCAAkC,CAAC;AAI1C,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,QAAA,MAAM,0BAA0B,EAAE,EAAE,CAAC,KAAK,CA0EzC,CAAC;eAEa,0BAA0B"}
1
+ {"version":3,"file":"SettingsValueSelectionMenu.d.ts","sourceRoot":"","sources":["../../../source/components/menu/SettingsValueSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAoC,KAAK,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAIjH,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,QAAA,MAAM,0BAA0B,EAAE,EAAE,CAAC,KAAK,CA6GzC,CAAC;eAEa,0BAA0B"}
@@ -1,46 +1,64 @@
1
1
  import React from 'react';
2
2
  import { Box, Text } from 'ink';
3
- import { buildSettingValueSuggestions, isStringSetting, } from '../../utils/value-suggestions.js';
3
+ import { isSecretSetting, isStringSetting } from '../../utils/value-suggestions.js';
4
4
  import { MenuContainer } from '../common/MenuContainer.js';
5
- import { COLOR_ACCENT, COLOR_DANGER, COLOR_SUCCESS, COLOR_TEXT, COLOR_TEXT_SUBTLE, COLOR_WARNING } from '../theme.js';
6
- const SettingsValueSelectionMenu = ({ settingKey, items, selectedIndex, query, isNumericSettings, isFreeFormString, }) => {
5
+ import { COLOR_ACCENT, COLOR_DANGER, COLOR_SUCCESS, COLOR_TEXT, COLOR_TEXT_SUBTLE } from '../theme.js';
6
+ const SettingsValueSelectionMenu = ({ settingKey, items, selectedIndex, query, isNumericSettings, currentText, defaultText, previewText, unitHint, }) => {
7
7
  const acceptsAnyString = isStringSetting(settingKey);
8
- const isFreeFormStringSetting = isFreeFormString ?? (acceptsAnyString && buildSettingValueSuggestions(settingKey).length === 0);
9
- // A string value is always settable by typing, so an empty list is an
10
- // expected, neutral state — never a red picker error. Choices (enums,
11
- // booleans) keep the red "No matching values" because Enter cannot apply
8
+ // Strings and numbers are settable by typing, so an empty list is a
9
+ // neutral state. Choices (enums, booleans) stay red: Enter cannot apply
12
10
  // text their schema does not accept.
13
- const showNeutralEmpty = items.length === 0 && acceptsAnyString;
11
+ const acceptsTypedValue = acceptsAnyString || Boolean(isNumericSettings);
12
+ const showNeutralEmpty = items.length === 0 && acceptsTypedValue;
14
13
  const selectedItem = items[selectedIndex];
15
- return (React.createElement(MenuContainer, { items: items, selectedIndex: selectedIndex, borderColor: items.length === 0 && !showNeutralEmpty ? COLOR_DANGER : COLOR_ACCENT, fallbackText: React.createElement(Box, { flexDirection: "column" },
16
- showNeutralEmpty ? (React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, "Type a value")) : (React.createElement(Text, { color: COLOR_DANGER, bold: true }, "No matching values")),
17
- React.createElement(Text, { color: COLOR_TEXT_SUBTLE },
18
- settingKey,
19
- " \u00B7",
14
+ const canCopySuggestion = items.length > 0 && !isSecretSetting(settingKey);
15
+ const header = (currentText !== undefined || defaultText !== undefined || unitHint) && (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
16
+ React.createElement(Text, { color: COLOR_TEXT_SUBTLE },
17
+ currentText !== undefined && (React.createElement(React.Fragment, null,
18
+ "Current: ",
19
+ React.createElement(Text, { color: COLOR_TEXT }, currentText))),
20
+ currentText !== undefined && defaultText !== undefined && ' · ',
21
+ defaultText !== undefined && (React.createElement(React.Fragment, null,
22
+ "Default: ",
23
+ React.createElement(Text, { color: COLOR_TEXT }, defaultText)))),
24
+ unitHint && React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, unitHint)));
25
+ const typedHint = query ? 'Enter saves what you typed' : 'Type a value, then press Enter';
26
+ return (React.createElement(Box, { flexDirection: "column" },
27
+ header,
28
+ React.createElement(MenuContainer, { items: items, selectedIndex: selectedIndex, borderColor: items.length === 0 && !showNeutralEmpty ? COLOR_DANGER : COLOR_ACCENT, fallbackText: showNeutralEmpty ? (React.createElement(Box, { flexDirection: "column" },
29
+ React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, isNumericSettings ? 'Type a number' : 'Type a value'),
30
+ React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, query ? `No suggestion matches — ${typedHint}` : typedHint))) : (React.createElement(Box, { flexDirection: "column" },
31
+ React.createElement(Text, { color: COLOR_DANGER, bold: true },
32
+ "No option matches \"",
33
+ query,
34
+ "\""),
35
+ React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, "Backspace to see all options"))), footer: React.createElement(Box, { flexDirection: "column" }, selectedItem?.description && (React.createElement(Box, { marginBottom: 0 },
36
+ React.createElement(Text, { color: COLOR_ACCENT, italic: true }, selectedItem.description)))), footerOutsideBorder: false, renderItem: (item, _index, isSelected) => (React.createElement(Box, { key: item.value },
37
+ React.createElement(Text, { color: isSelected ? COLOR_SUCCESS : COLOR_TEXT_SUBTLE }, isSelected ? '▶ ' : ' '),
38
+ React.createElement(Text, { color: isSelected ? COLOR_SUCCESS : COLOR_TEXT, bold: isSelected }, item.value))) }),
39
+ previewText !== undefined && (React.createElement(Text, { color: COLOR_TEXT_SUBTLE },
40
+ "Enter will set: ",
41
+ React.createElement(Text, { color: COLOR_SUCCESS }, previewText))),
42
+ React.createElement(Text, { color: COLOR_TEXT_SUBTLE, dimColor: true },
43
+ React.createElement(Text, { bold: true }, "Enter"),
44
+ " apply \u00B7 ",
45
+ React.createElement(Text, { bold: true }, "Esc"),
46
+ " back",
47
+ items.length > 0 && (React.createElement(React.Fragment, null,
20
48
  ' ',
21
- showNeutralEmpty
22
- ? isFreeFormStringSetting
23
- ? 'No predefined values — type freely'
24
- : `No value matches "${query || '*'}" — Enter applies the typed value`
25
- : `No values match "${query || '*'}"`),
26
- isNumericSettings && React.createElement(Text, { color: COLOR_WARNING }, "Note: This setting accepts numeric values."),
27
- showNeutralEmpty && React.createElement(Text, { color: COLOR_WARNING }, "Note: This setting accepts any string value."),
28
- React.createElement(Box, { marginTop: 1 },
29
- React.createElement(Text, { color: COLOR_TEXT_SUBTLE }, "Enter \u2192 apply typed value \u00B7 Esc \u2192 cancel"))), footer: React.createElement(Box, { flexDirection: "column" },
30
- selectedItem?.description && (React.createElement(Box, { marginBottom: 0 },
31
- React.createElement(Text, { color: COLOR_ACCENT, italic: true }, selectedItem.description))),
32
- React.createElement(Text, { color: COLOR_TEXT_SUBTLE, dimColor: true },
33
- React.createElement(Text, { bold: true }, "Enter"),
34
- " confirm \u00B7 ",
35
- React.createElement(Text, { bold: true }, "Esc"),
36
- " cancel \u00B7 ",
49
+ "\u00B7 ",
37
50
  React.createElement(Text, { bold: true }, "\u2191\u2193"),
38
- " navigate \u00B7",
51
+ " choose")),
52
+ canCopySuggestion && (React.createElement(React.Fragment, null,
39
53
  ' ',
40
- React.createElement(Text, { bold: true }, "Ctrl+D"),
41
- " reset to default")), footerOutsideBorder: false, renderItem: (item, _index, isSelected) => (React.createElement(Box, { key: item.value },
42
- React.createElement(Text, { color: isSelected ? COLOR_SUCCESS : COLOR_TEXT_SUBTLE }, isSelected ? '▶ ' : ' '),
43
- React.createElement(Text, { color: isSelected ? COLOR_SUCCESS : COLOR_TEXT, bold: isSelected }, item.value))) }));
54
+ "\u00B7 ",
55
+ React.createElement(Text, { bold: true }, "Tab"),
56
+ " copy into field")),
57
+ ' ',
58
+ "\u00B7 ",
59
+ React.createElement(Text, { bold: true }, "Ctrl+D"),
60
+ " reset",
61
+ defaultText !== undefined ? ` to ${defaultText}` : ' to default')));
44
62
  };
45
63
  export default SettingsValueSelectionMenu;
46
64
  //# sourceMappingURL=SettingsValueSelectionMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsValueSelectionMenu.js","sourceRoot":"","sources":["../../../source/components/menu/SettingsValueSelectionMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsValueSelectionMenu.js","sourceRoot":"","sources":["../../../source/components/menu/SettingsValueSelectionMenu.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StandaloneModelPickerApp.d.ts","sourceRoot":"","sources":["../../../source/components/menu/StandaloneModelPickerApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAI3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAGnF,MAAM,MAAM,8BAA8B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,4BAA4B,GACpC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,8BAA8B,CAAA;CAAE,GACjE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAE5B,MAAM,MAAM,6BAA6B,GAAG;IAC1C,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,eAAe,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kFAAkF;IAClF,MAAM,EAAE,CAAC,OAAO,EAAE,4BAA4B,KAAK,IAAI,CAAC;CACzD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,eAAe,EACf,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,WAAW,EACX,MAAM,GACP,EAAE,6BAA6B,qBAqG/B;eAEc,wBAAwB"}
1
+ {"version":3,"file":"StandaloneModelPickerApp.d.ts","sourceRoot":"","sources":["../../../source/components/menu/StandaloneModelPickerApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAI3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAGnF,MAAM,MAAM,8BAA8B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,4BAA4B,GACpC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,8BAA8B,CAAA;CAAE,GACjE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAE5B,MAAM,MAAM,6BAA6B,GAAG;IAC1C,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,eAAe,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kFAAkF;IAClF,MAAM,EAAE,CAAC,OAAO,EAAE,4BAA4B,KAAK,IAAI,CAAC;CACzD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,eAAe,EACf,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,WAAW,EACX,MAAM,GACP,EAAE,6BAA6B,qBAuG/B;eAEc,wBAAwB"}
@@ -37,6 +37,9 @@ export function StandaloneModelPickerApp({ settingsService, loggingService, mode
37
37
  else if (key.backspace) {
38
38
  models.backspaceNicknameDraft();
39
39
  }
40
+ else if (key.delete) {
41
+ models.removeNicknameDraft();
42
+ }
40
43
  else if (key.ctrl && input.toLowerCase() === 'f') {
41
44
  models.toggleFavorite();
42
45
  }
@@ -68,9 +71,9 @@ export function StandaloneModelPickerApp({ settingsService, loggingService, mode
68
71
  models.moveEnd();
69
72
  }
70
73
  else if (key.tab || key.leftArrow || key.rightArrow) {
71
- // Tab and the arrows all switch the Favorites/All tab; Tab never
74
+ // Tab and Right advance; Left moves backward through Favorites/Nicknames/All. Tab never
72
75
  // completes a model id into a buffer here.
73
- models.switchModelTab();
76
+ models.switchModelTab(key.leftArrow ? 'previous' : 'next');
74
77
  }
75
78
  else if (key.ctrl && input === 'r') {
76
79
  models.refresh();