@qduc/term2 0.6.1 → 0.7.1

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 (659) hide show
  1. package/dist/agent.d.ts +9 -1
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +158 -69
  4. package/dist/agent.js.map +1 -1
  5. package/dist/agent.test.js +165 -15
  6. package/dist/agent.test.js.map +1 -1
  7. package/dist/app.d.ts +14 -3
  8. package/dist/app.d.ts.map +1 -1
  9. package/dist/app.js +192 -28
  10. package/dist/app.js.map +1 -1
  11. package/dist/app.large-uncached-warning.test.d.ts +2 -0
  12. package/dist/app.large-uncached-warning.test.d.ts.map +1 -0
  13. package/dist/app.large-uncached-warning.test.js +15 -0
  14. package/dist/app.large-uncached-warning.test.js.map +1 -0
  15. package/dist/app.startup-banner.test.js +3 -19
  16. package/dist/app.startup-banner.test.js.map +1 -1
  17. package/dist/cli.integration.test.d.ts +2 -0
  18. package/dist/cli.integration.test.d.ts.map +1 -0
  19. package/dist/cli.integration.test.js +102 -0
  20. package/dist/cli.integration.test.js.map +1 -0
  21. package/dist/cli.js +158 -71
  22. package/dist/cli.js.map +1 -1
  23. package/dist/commands/auto-approve-command.d.ts +10 -0
  24. package/dist/commands/auto-approve-command.d.ts.map +1 -0
  25. package/dist/commands/auto-approve-command.js +40 -0
  26. package/dist/commands/auto-approve-command.js.map +1 -0
  27. package/dist/commands/clear-command.d.ts +3 -0
  28. package/dist/commands/clear-command.d.ts.map +1 -0
  29. package/dist/commands/clear-command.js +12 -0
  30. package/dist/commands/clear-command.js.map +1 -0
  31. package/dist/commands/copy-command.d.ts +10 -0
  32. package/dist/commands/copy-command.d.ts.map +1 -0
  33. package/dist/commands/copy-command.js +25 -0
  34. package/dist/commands/copy-command.js.map +1 -0
  35. package/dist/commands/effort-command.d.ts +11 -0
  36. package/dist/commands/effort-command.d.ts.map +1 -0
  37. package/dist/commands/effort-command.js +34 -0
  38. package/dist/commands/effort-command.js.map +1 -0
  39. package/dist/commands/guarded-settings-command.d.ts +14 -0
  40. package/dist/commands/guarded-settings-command.d.ts.map +1 -0
  41. package/dist/commands/guarded-settings-command.js +23 -0
  42. package/dist/commands/guarded-settings-command.js.map +1 -0
  43. package/dist/commands/handoff-command.d.ts +10 -0
  44. package/dist/commands/handoff-command.d.ts.map +1 -0
  45. package/dist/commands/handoff-command.js +17 -0
  46. package/dist/commands/handoff-command.js.map +1 -0
  47. package/dist/commands/mode-commands.d.ts +32 -0
  48. package/dist/commands/mode-commands.d.ts.map +1 -0
  49. package/dist/commands/mode-commands.js +64 -0
  50. package/dist/commands/mode-commands.js.map +1 -0
  51. package/dist/commands/model-command.d.ts +11 -0
  52. package/dist/commands/model-command.d.ts.map +1 -0
  53. package/dist/commands/model-command.js +35 -0
  54. package/dist/commands/model-command.js.map +1 -0
  55. package/dist/commands/quit-command.d.ts +3 -0
  56. package/dist/commands/quit-command.d.ts.map +1 -0
  57. package/dist/commands/quit-command.js +10 -0
  58. package/dist/commands/quit-command.js.map +1 -0
  59. package/dist/commands/retry-command.d.ts +19 -0
  60. package/dist/commands/retry-command.d.ts.map +1 -0
  61. package/dist/commands/retry-command.js +30 -0
  62. package/dist/commands/retry-command.js.map +1 -0
  63. package/dist/commands/undo-command.d.ts +15 -0
  64. package/dist/commands/undo-command.d.ts.map +1 -0
  65. package/dist/commands/undo-command.js +28 -0
  66. package/dist/commands/undo-command.js.map +1 -0
  67. package/dist/commands/usage-command.d.ts +3 -0
  68. package/dist/commands/usage-command.d.ts.map +1 -0
  69. package/dist/commands/usage-command.js +11 -0
  70. package/dist/commands/usage-command.js.map +1 -0
  71. package/dist/components/Banner.d.ts.map +1 -1
  72. package/dist/components/Banner.js +35 -17
  73. package/dist/components/Banner.js.map +1 -1
  74. package/dist/components/BottomArea.d.ts +10 -1
  75. package/dist/components/BottomArea.d.ts.map +1 -1
  76. package/dist/components/BottomArea.js +8 -6
  77. package/dist/components/BottomArea.js.map +1 -1
  78. package/dist/components/BottomArea.test.js +14 -1
  79. package/dist/components/BottomArea.test.js.map +1 -1
  80. package/dist/components/CommandMessage.d.ts.map +1 -1
  81. package/dist/components/CommandMessage.js +31 -1
  82. package/dist/components/CommandMessage.js.map +1 -1
  83. package/dist/components/CommandMessage.test.js +150 -31
  84. package/dist/components/CommandMessage.test.js.map +1 -1
  85. package/dist/components/Common/MenuContainer.d.ts +20 -0
  86. package/dist/components/Common/MenuContainer.d.ts.map +1 -0
  87. package/dist/components/Common/MenuContainer.js +52 -0
  88. package/dist/components/Common/MenuContainer.js.map +1 -0
  89. package/dist/components/Common/ScrollableTabBar.d.ts +26 -0
  90. package/dist/components/Common/ScrollableTabBar.d.ts.map +1 -0
  91. package/dist/components/Common/ScrollableTabBar.js +26 -0
  92. package/dist/components/Common/ScrollableTabBar.js.map +1 -0
  93. package/dist/components/Common/compute-visible-tabs.d.ts +16 -0
  94. package/dist/components/Common/compute-visible-tabs.d.ts.map +1 -0
  95. package/dist/components/Common/compute-visible-tabs.js +53 -0
  96. package/dist/components/Common/compute-visible-tabs.js.map +1 -0
  97. package/dist/components/Common/compute-visible-tabs.test.d.ts +2 -0
  98. package/dist/components/Common/compute-visible-tabs.test.d.ts.map +1 -0
  99. package/dist/components/Common/compute-visible-tabs.test.js +97 -0
  100. package/dist/components/Common/compute-visible-tabs.test.js.map +1 -0
  101. package/dist/components/HandoffConfirmationPrompt.d.ts +9 -0
  102. package/dist/components/HandoffConfirmationPrompt.d.ts.map +1 -0
  103. package/dist/components/HandoffConfirmationPrompt.js +38 -0
  104. package/dist/components/HandoffConfirmationPrompt.js.map +1 -0
  105. package/dist/components/HandoffConfirmationPrompt.test.d.ts +2 -0
  106. package/dist/components/HandoffConfirmationPrompt.test.d.ts.map +1 -0
  107. package/dist/components/HandoffConfirmationPrompt.test.js +12 -0
  108. package/dist/components/HandoffConfirmationPrompt.test.js.map +1 -0
  109. package/dist/components/Input/PopupManager.d.ts +5 -1
  110. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  111. package/dist/components/Input/PopupManager.js +2 -2
  112. package/dist/components/Input/PopupManager.js.map +1 -1
  113. package/dist/components/Input/popup-key-navigation.js +2 -2
  114. package/dist/components/Input/popup-key-navigation.js.map +1 -1
  115. package/dist/components/Input/popup-key-navigation.test.js +5 -3
  116. package/dist/components/Input/popup-key-navigation.test.js.map +1 -1
  117. package/dist/components/Input/popup-props.d.ts.map +1 -1
  118. package/dist/components/Input/popup-props.js +4 -0
  119. package/dist/components/Input/popup-props.js.map +1 -1
  120. package/dist/components/Input/popup-props.test.d.ts +2 -0
  121. package/dist/components/Input/popup-props.test.d.ts.map +1 -0
  122. package/dist/components/Input/popup-props.test.js +70 -0
  123. package/dist/components/Input/popup-props.test.js.map +1 -0
  124. package/dist/components/InputBox.d.ts +1 -1
  125. package/dist/components/InputBox.d.ts.map +1 -1
  126. package/dist/components/InputBox.js +67 -14
  127. package/dist/components/InputBox.js.map +1 -1
  128. package/dist/components/InputBox.test.js +192 -12
  129. package/dist/components/InputBox.test.js.map +1 -1
  130. package/dist/components/MessageList.d.ts +1 -0
  131. package/dist/components/MessageList.d.ts.map +1 -1
  132. package/dist/components/MessageList.js.map +1 -1
  133. package/dist/components/ModelSelectionMenu.d.ts.map +1 -1
  134. package/dist/components/ModelSelectionMenu.js +29 -125
  135. package/dist/components/ModelSelectionMenu.js.map +1 -1
  136. package/dist/components/ModelSelectionMenu.test.js +9 -5
  137. package/dist/components/ModelSelectionMenu.test.js.map +1 -1
  138. package/dist/components/PathSelectionMenu.d.ts.map +1 -1
  139. package/dist/components/PathSelectionMenu.js +15 -55
  140. package/dist/components/PathSelectionMenu.js.map +1 -1
  141. package/dist/components/SettingsSelectionMenu.d.ts +4 -1
  142. package/dist/components/SettingsSelectionMenu.d.ts.map +1 -1
  143. package/dist/components/SettingsSelectionMenu.js +48 -104
  144. package/dist/components/SettingsSelectionMenu.js.map +1 -1
  145. package/dist/components/SettingsSelectionMenu.scroll.test.js +140 -0
  146. package/dist/components/SettingsSelectionMenu.scroll.test.js.map +1 -1
  147. package/dist/components/SettingsSelectionMenu.test.js +38 -5
  148. package/dist/components/SettingsSelectionMenu.test.js.map +1 -1
  149. package/dist/components/SettingsValueSelectionMenu.d.ts.map +1 -1
  150. package/dist/components/SettingsValueSelectionMenu.js +24 -51
  151. package/dist/components/SettingsValueSelectionMenu.js.map +1 -1
  152. package/dist/components/SlashCommandMenu.d.ts +1 -0
  153. package/dist/components/SlashCommandMenu.d.ts.map +1 -1
  154. package/dist/components/SlashCommandMenu.js +11 -14
  155. package/dist/components/SlashCommandMenu.js.map +1 -1
  156. package/dist/components/StatusBar.d.ts +6 -0
  157. package/dist/components/StatusBar.d.ts.map +1 -1
  158. package/dist/components/StatusBar.js +51 -4
  159. package/dist/components/StatusBar.js.map +1 -1
  160. package/dist/components/StatusBar.test.js +47 -0
  161. package/dist/components/StatusBar.test.js.map +1 -1
  162. package/dist/components/UndoSelectionMenu.d.ts.map +1 -1
  163. package/dist/components/UndoSelectionMenu.js +6 -33
  164. package/dist/components/UndoSelectionMenu.js.map +1 -1
  165. package/dist/context/InputContext.stability.test.js +9 -7
  166. package/dist/context/InputContext.stability.test.js.map +1 -1
  167. package/dist/contracts/conversation.d.ts +3 -0
  168. package/dist/contracts/conversation.d.ts.map +1 -1
  169. package/dist/env-setup.js +1 -0
  170. package/dist/env-setup.js.map +1 -1
  171. package/dist/hooks/use-app-commands.d.ts +20 -21
  172. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  173. package/dist/hooks/use-app-commands.js +65 -330
  174. package/dist/hooks/use-app-commands.js.map +1 -1
  175. package/dist/hooks/use-app-commands.test.js +146 -3
  176. package/dist/hooks/use-app-commands.test.js.map +1 -1
  177. package/dist/hooks/use-conversation.clear.test.js +61 -8
  178. package/dist/hooks/use-conversation.clear.test.js.map +1 -1
  179. package/dist/hooks/use-conversation.d.ts +25 -2
  180. package/dist/hooks/use-conversation.d.ts.map +1 -1
  181. package/dist/hooks/use-conversation.js +91 -30
  182. package/dist/hooks/use-conversation.js.map +1 -1
  183. package/dist/hooks/use-escape-key.d.ts +8 -1
  184. package/dist/hooks/use-escape-key.d.ts.map +1 -1
  185. package/dist/hooks/use-escape-key.js +15 -4
  186. package/dist/hooks/use-escape-key.js.map +1 -1
  187. package/dist/hooks/use-escape-key.test.js +135 -28
  188. package/dist/hooks/use-escape-key.test.js.map +1 -1
  189. package/dist/hooks/use-input-history.test.js +14 -8
  190. package/dist/hooks/use-input-history.test.js.map +1 -1
  191. package/dist/hooks/use-mode-handlers.d.ts +16 -2
  192. package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
  193. package/dist/hooks/use-mode-handlers.js +37 -2
  194. package/dist/hooks/use-mode-handlers.js.map +1 -1
  195. package/dist/hooks/use-model-selection.d.ts +6 -1
  196. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  197. package/dist/hooks/use-model-selection.js +50 -8
  198. package/dist/hooks/use-model-selection.js.map +1 -1
  199. package/dist/hooks/use-model-selection.test.js +306 -50
  200. package/dist/hooks/use-model-selection.test.js.map +1 -1
  201. package/dist/hooks/use-path-completion.d.ts +4 -0
  202. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  203. package/dist/hooks/use-path-completion.js +23 -17
  204. package/dist/hooks/use-path-completion.js.map +1 -1
  205. package/dist/hooks/use-runtime-settings.d.ts.map +1 -1
  206. package/dist/hooks/use-runtime-settings.js +9 -4
  207. package/dist/hooks/use-runtime-settings.js.map +1 -1
  208. package/dist/hooks/use-runtime-settings.test.d.ts +2 -0
  209. package/dist/hooks/use-runtime-settings.test.d.ts.map +1 -0
  210. package/dist/hooks/use-runtime-settings.test.js +44 -0
  211. package/dist/hooks/use-runtime-settings.test.js.map +1 -0
  212. package/dist/hooks/use-selection.d.ts +6 -2
  213. package/dist/hooks/use-selection.d.ts.map +1 -1
  214. package/dist/hooks/use-selection.js +53 -16
  215. package/dist/hooks/use-selection.js.map +1 -1
  216. package/dist/hooks/use-selection.test.d.ts +2 -0
  217. package/dist/hooks/use-selection.test.d.ts.map +1 -0
  218. package/dist/hooks/use-selection.test.js +132 -0
  219. package/dist/hooks/use-selection.test.js.map +1 -0
  220. package/dist/hooks/use-settings-completion.d.ts +19 -0
  221. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  222. package/dist/hooks/use-settings-completion.js +106 -18
  223. package/dist/hooks/use-settings-completion.js.map +1 -1
  224. package/dist/hooks/use-settings-completion.scroll.test.js +68 -29
  225. package/dist/hooks/use-settings-completion.scroll.test.js.map +1 -1
  226. package/dist/hooks/use-settings-completion.test.js +36 -1
  227. package/dist/hooks/use-settings-completion.test.js.map +1 -1
  228. package/dist/hooks/use-settings-value-completion.d.ts +7 -1
  229. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  230. package/dist/hooks/use-settings-value-completion.js +18 -7
  231. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  232. package/dist/hooks/use-slash-commands.d.ts +5 -0
  233. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  234. package/dist/hooks/use-slash-commands.js +32 -2
  235. package/dist/hooks/use-slash-commands.js.map +1 -1
  236. package/dist/hooks/use-slash-commands.test.js +35 -5
  237. package/dist/hooks/use-slash-commands.test.js.map +1 -1
  238. package/dist/hooks/use-trigger-detection.test.js +9 -6
  239. package/dist/hooks/use-trigger-detection.test.js.map +1 -1
  240. package/dist/hooks/use-undo-selection.d.ts +4 -0
  241. package/dist/hooks/use-undo-selection.d.ts.map +1 -1
  242. package/dist/hooks/use-undo-selection.js +20 -1
  243. package/dist/hooks/use-undo-selection.js.map +1 -1
  244. package/dist/lib/openai-agent-client.d.ts +10 -3
  245. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  246. package/dist/lib/openai-agent-client.flex-tier.test.js +8 -3
  247. package/dist/lib/openai-agent-client.flex-tier.test.js.map +1 -1
  248. package/dist/lib/openai-agent-client.js +198 -38
  249. package/dist/lib/openai-agent-client.js.map +1 -1
  250. package/dist/lib/openai-agent-client.public-methods.test.js +193 -0
  251. package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
  252. package/dist/lib/openai-agent-client.test.js +71 -1
  253. package/dist/lib/openai-agent-client.test.js.map +1 -1
  254. package/dist/lib/tool-invoke.d.ts +3 -2
  255. package/dist/lib/tool-invoke.d.ts.map +1 -1
  256. package/dist/lib/tool-invoke.js +213 -10
  257. package/dist/lib/tool-invoke.js.map +1 -1
  258. package/dist/lib/tool-invoke.test.js +103 -0
  259. package/dist/lib/tool-invoke.test.js.map +1 -1
  260. package/dist/lib/tool-selection-policy.d.ts.map +1 -1
  261. package/dist/lib/tool-selection-policy.js +43 -2
  262. package/dist/lib/tool-selection-policy.js.map +1 -1
  263. package/dist/lib/tool-selection-policy.test.js +39 -0
  264. package/dist/lib/tool-selection-policy.test.js.map +1 -1
  265. package/dist/prompts/codex.md +105 -97
  266. package/dist/prompts/fragments/gpt-5.3-codex.md +7 -0
  267. package/dist/prompts/fragments/gpt-5.4-small.md +6 -0
  268. package/dist/prompts/fragments/gpt-5.4.md +7 -0
  269. package/dist/prompts/fragments/gpt-5.5.md +7 -0
  270. package/dist/prompts/gpt-5-modern.md +90 -54
  271. package/dist/prompts/plan-mode-info.md +14 -3
  272. package/dist/prompts/prompt-constructor.d.ts +19 -0
  273. package/dist/prompts/prompt-constructor.d.ts.map +1 -0
  274. package/dist/prompts/prompt-constructor.js +53 -0
  275. package/dist/prompts/prompt-constructor.js.map +1 -0
  276. package/dist/prompts/prompt-constructor.test.d.ts +2 -0
  277. package/dist/prompts/prompt-constructor.test.d.ts.map +1 -0
  278. package/dist/prompts/prompt-constructor.test.js +99 -0
  279. package/dist/prompts/prompt-constructor.test.js.map +1 -0
  280. package/dist/prompts/prompt-constructor.test.ts +112 -0
  281. package/dist/prompts/prompt-constructor.ts +91 -0
  282. package/dist/prompts/prompt-profiles.d.ts +17 -0
  283. package/dist/prompts/prompt-profiles.d.ts.map +1 -0
  284. package/dist/prompts/prompt-profiles.js +61 -0
  285. package/dist/prompts/prompt-profiles.js.map +1 -0
  286. package/dist/prompts/prompt-profiles.ts +77 -0
  287. package/dist/prompts/prompt-selector.d.ts.map +1 -1
  288. package/dist/prompts/prompt-selector.js +3 -21
  289. package/dist/prompts/prompt-selector.js.map +1 -1
  290. package/dist/prompts/prompt-selector.ts +3 -25
  291. package/dist/prompts/reasoning-efficiency.d.ts.map +1 -1
  292. package/dist/prompts/reasoning-efficiency.js +2 -0
  293. package/dist/prompts/reasoning-efficiency.js.map +1 -1
  294. package/dist/prompts/reasoning-efficiency.test.d.ts +2 -0
  295. package/dist/prompts/reasoning-efficiency.test.d.ts.map +1 -0
  296. package/dist/prompts/reasoning-efficiency.test.js +11 -0
  297. package/dist/prompts/reasoning-efficiency.test.js.map +1 -0
  298. package/dist/prompts/reasoning-efficiency.test.ts +12 -0
  299. package/dist/prompts/reasoning-efficiency.ts +2 -0
  300. package/dist/prompts/search-via-shell.d.ts.map +1 -1
  301. package/dist/prompts/search-via-shell.js +0 -1
  302. package/dist/prompts/search-via-shell.js.map +1 -1
  303. package/dist/prompts/search-via-shell.test.js +19 -16
  304. package/dist/prompts/search-via-shell.test.js.map +1 -1
  305. package/dist/prompts/search-via-shell.test.ts +20 -16
  306. package/dist/prompts/search-via-shell.ts +0 -1
  307. package/dist/prompts/shell-auto-approval.d.ts +2 -2
  308. package/dist/prompts/shell-auto-approval.d.ts.map +1 -1
  309. package/dist/prompts/shell-auto-approval.js +6 -6
  310. package/dist/prompts/shell-auto-approval.js.map +1 -1
  311. package/dist/prompts/shell-auto-approval.ts +6 -6
  312. package/dist/prompts/simple-prev.md +55 -0
  313. package/dist/prompts/simple.md +31 -53
  314. package/dist/prompts/subagent-delegation.js +2 -2
  315. package/dist/prompts/subagent-delegation.js.map +1 -1
  316. package/dist/prompts/subagent-delegation.test.js +12 -10
  317. package/dist/prompts/subagent-delegation.test.js.map +1 -1
  318. package/dist/prompts/subagent-delegation.test.ts +13 -10
  319. package/dist/prompts/subagent-delegation.ts +2 -2
  320. package/dist/prompts/worktree-hygiene.md +9 -0
  321. package/dist/providers/ai-sdk-logging-fetch.d.ts.map +1 -1
  322. package/dist/providers/ai-sdk-logging-fetch.js +78 -3
  323. package/dist/providers/ai-sdk-logging-fetch.js.map +1 -1
  324. package/dist/providers/ai-sdk-logging-fetch.test.js +143 -0
  325. package/dist/providers/ai-sdk-logging-fetch.test.js.map +1 -1
  326. package/dist/providers/codex-responses-model.d.ts +21 -0
  327. package/dist/providers/codex-responses-model.d.ts.map +1 -0
  328. package/dist/providers/codex-responses-model.js +180 -0
  329. package/dist/providers/codex-responses-model.js.map +1 -0
  330. package/dist/providers/codex-responses-model.test.d.ts +2 -0
  331. package/dist/providers/codex-responses-model.test.d.ts.map +1 -0
  332. package/dist/providers/codex-responses-model.test.js +354 -0
  333. package/dist/providers/codex-responses-model.test.js.map +1 -0
  334. package/dist/providers/codex.provider.d.ts +27 -0
  335. package/dist/providers/codex.provider.d.ts.map +1 -0
  336. package/dist/providers/codex.provider.js +482 -0
  337. package/dist/providers/codex.provider.js.map +1 -0
  338. package/dist/providers/codex.provider.test.d.ts +2 -0
  339. package/dist/providers/codex.provider.test.d.ts.map +1 -0
  340. package/dist/providers/codex.provider.test.js +607 -0
  341. package/dist/providers/codex.provider.test.js.map +1 -0
  342. package/dist/providers/custom-provider-adapter.test.js +59 -3
  343. package/dist/providers/custom-provider-adapter.test.js.map +1 -1
  344. package/dist/providers/fallback-responses-model.d.ts +20 -0
  345. package/dist/providers/fallback-responses-model.d.ts.map +1 -0
  346. package/dist/providers/fallback-responses-model.js +346 -0
  347. package/dist/providers/fallback-responses-model.js.map +1 -0
  348. package/dist/providers/fallback-responses-model.test.d.ts +2 -0
  349. package/dist/providers/fallback-responses-model.test.d.ts.map +1 -0
  350. package/dist/providers/fallback-responses-model.test.js +568 -0
  351. package/dist/providers/fallback-responses-model.test.js.map +1 -0
  352. package/dist/providers/fetch/compose.d.ts +7 -0
  353. package/dist/providers/fetch/compose.d.ts.map +1 -0
  354. package/dist/providers/fetch/compose.js +20 -0
  355. package/dist/providers/fetch/compose.js.map +1 -0
  356. package/dist/providers/fetch/composer.d.ts +13 -0
  357. package/dist/providers/fetch/composer.d.ts.map +1 -0
  358. package/dist/providers/fetch/composer.js +15 -0
  359. package/dist/providers/fetch/composer.js.map +1 -0
  360. package/dist/providers/fetch/composer.test.d.ts +2 -0
  361. package/dist/providers/fetch/composer.test.d.ts.map +1 -0
  362. package/dist/providers/fetch/composer.test.js +448 -0
  363. package/dist/providers/fetch/composer.test.js.map +1 -0
  364. package/dist/providers/fetch/logging-middleware.d.ts +16 -0
  365. package/dist/providers/fetch/logging-middleware.d.ts.map +1 -0
  366. package/dist/providers/fetch/logging-middleware.js +214 -0
  367. package/dist/providers/fetch/logging-middleware.js.map +1 -0
  368. package/dist/providers/index.d.ts +1 -0
  369. package/dist/providers/index.d.ts.map +1 -1
  370. package/dist/providers/index.js +1 -0
  371. package/dist/providers/index.js.map +1 -1
  372. package/dist/providers/llama-cpp.provider.d.ts +3 -0
  373. package/dist/providers/llama-cpp.provider.d.ts.map +1 -0
  374. package/dist/providers/llama-cpp.provider.js +34 -0
  375. package/dist/providers/llama-cpp.provider.js.map +1 -0
  376. package/dist/providers/openai-compatible-middleware.d.ts +7 -0
  377. package/dist/providers/openai-compatible-middleware.d.ts.map +1 -0
  378. package/dist/providers/openai-compatible-middleware.js +133 -0
  379. package/dist/providers/openai-compatible-middleware.js.map +1 -0
  380. package/dist/providers/openai-compatible-models.d.ts +6 -0
  381. package/dist/providers/openai-compatible-models.d.ts.map +1 -0
  382. package/dist/providers/openai-compatible-models.js +17 -0
  383. package/dist/providers/openai-compatible-models.js.map +1 -0
  384. package/dist/providers/openai-compatible-response-normalizer.d.ts +7 -0
  385. package/dist/providers/openai-compatible-response-normalizer.d.ts.map +1 -0
  386. package/dist/providers/openai-compatible-response-normalizer.js +58 -0
  387. package/dist/providers/openai-compatible-response-normalizer.js.map +1 -0
  388. package/dist/providers/openai-compatible.provider.d.ts +6 -3
  389. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  390. package/dist/providers/openai-compatible.provider.js +71 -327
  391. package/dist/providers/openai-compatible.provider.js.map +1 -1
  392. package/dist/providers/openai-compatible.provider.test.js +106 -1
  393. package/dist/providers/openai-compatible.provider.test.js.map +1 -1
  394. package/dist/providers/openai.provider.js +44 -10
  395. package/dist/providers/openai.provider.js.map +1 -1
  396. package/dist/providers/opencode.provider.d.ts +19 -0
  397. package/dist/providers/opencode.provider.d.ts.map +1 -0
  398. package/dist/providers/opencode.provider.js +45 -0
  399. package/dist/providers/opencode.provider.js.map +1 -0
  400. package/dist/providers/openrouter.provider.d.ts +2 -3
  401. package/dist/providers/openrouter.provider.d.ts.map +1 -1
  402. package/dist/providers/openrouter.provider.js +23 -24
  403. package/dist/providers/openrouter.provider.js.map +1 -1
  404. package/dist/providers/openrouter.provider.request-preprocessing.test.js +12 -9
  405. package/dist/providers/openrouter.provider.request-preprocessing.test.js.map +1 -1
  406. package/dist/providers/protocol-client.d.ts +17 -0
  407. package/dist/providers/protocol-client.d.ts.map +1 -0
  408. package/dist/providers/protocol-client.js +57 -0
  409. package/dist/providers/protocol-client.js.map +1 -0
  410. package/dist/providers/protocol-client.test.d.ts +2 -0
  411. package/dist/providers/protocol-client.test.d.ts.map +1 -0
  412. package/dist/providers/protocol-client.test.js +55 -0
  413. package/dist/providers/protocol-client.test.js.map +1 -0
  414. package/dist/providers/registry.d.ts +1 -0
  415. package/dist/providers/registry.d.ts.map +1 -1
  416. package/dist/providers/registry.js.map +1 -1
  417. package/dist/providers/registry.test.js +6 -22
  418. package/dist/providers/registry.test.js.map +1 -1
  419. package/dist/providers/timed-responses-ws-model.d.ts +20 -0
  420. package/dist/providers/timed-responses-ws-model.d.ts.map +1 -0
  421. package/dist/providers/timed-responses-ws-model.js +381 -0
  422. package/dist/providers/timed-responses-ws-model.js.map +1 -0
  423. package/dist/providers/timed-responses-ws-model.test.d.ts +2 -0
  424. package/dist/providers/timed-responses-ws-model.test.d.ts.map +1 -0
  425. package/dist/providers/timed-responses-ws-model.test.js +441 -0
  426. package/dist/providers/timed-responses-ws-model.test.js.map +1 -0
  427. package/dist/providers/timed-ws-connection.d.ts +26 -0
  428. package/dist/providers/timed-ws-connection.d.ts.map +1 -0
  429. package/dist/providers/timed-ws-connection.js +156 -0
  430. package/dist/providers/timed-ws-connection.js.map +1 -0
  431. package/dist/providers/timed-ws-connection.test.d.ts +2 -0
  432. package/dist/providers/timed-ws-connection.test.d.ts.map +1 -0
  433. package/dist/providers/timed-ws-connection.test.js +223 -0
  434. package/dist/providers/timed-ws-connection.test.js.map +1 -0
  435. package/dist/providers/timed-ws-timeouts.d.ts +6 -0
  436. package/dist/providers/timed-ws-timeouts.d.ts.map +1 -0
  437. package/dist/providers/timed-ws-timeouts.js +6 -0
  438. package/dist/providers/timed-ws-timeouts.js.map +1 -0
  439. package/dist/scripts/eval-auto-approval/dataset.d.ts +2 -2
  440. package/dist/services/approval-flow-coordinator.d.ts.map +1 -1
  441. package/dist/services/approval-flow-coordinator.js +17 -1
  442. package/dist/services/approval-flow-coordinator.js.map +1 -1
  443. package/dist/services/approval-flow-coordinator.test.js +22 -0
  444. package/dist/services/approval-flow-coordinator.test.js.map +1 -1
  445. package/dist/services/command-message-streaming.d.ts.map +1 -1
  446. package/dist/services/command-message-streaming.js +8 -6
  447. package/dist/services/command-message-streaming.js.map +1 -1
  448. package/dist/services/command-message-streaming.test.js +4 -2
  449. package/dist/services/command-message-streaming.test.js.map +1 -1
  450. package/dist/services/conversation-clear-save.test.js +37 -66
  451. package/dist/services/conversation-clear-save.test.js.map +1 -1
  452. package/dist/services/conversation-events.d.ts +48 -1
  453. package/dist/services/conversation-events.d.ts.map +1 -1
  454. package/dist/services/conversation-history-repair.d.ts.map +1 -1
  455. package/dist/services/conversation-history-repair.js +81 -26
  456. package/dist/services/conversation-history-repair.js.map +1 -1
  457. package/dist/services/conversation-integration.test.js +112 -1
  458. package/dist/services/conversation-integration.test.js.map +1 -1
  459. package/dist/services/conversation-log-events.d.ts +113 -0
  460. package/dist/services/conversation-log-events.d.ts.map +1 -0
  461. package/dist/services/conversation-log-events.js +12 -0
  462. package/dist/services/conversation-log-events.js.map +1 -0
  463. package/dist/services/conversation-log-writer.d.ts +40 -0
  464. package/dist/services/conversation-log-writer.d.ts.map +1 -0
  465. package/dist/services/conversation-log-writer.js +264 -0
  466. package/dist/services/conversation-log-writer.js.map +1 -0
  467. package/dist/services/conversation-persistence-types.d.ts +46 -0
  468. package/dist/services/conversation-persistence-types.d.ts.map +1 -0
  469. package/dist/services/conversation-persistence-types.js +2 -0
  470. package/dist/services/conversation-persistence-types.js.map +1 -0
  471. package/dist/services/conversation-persistence.d.ts +44 -39
  472. package/dist/services/conversation-persistence.d.ts.map +1 -1
  473. package/dist/services/conversation-persistence.js +273 -83
  474. package/dist/services/conversation-persistence.js.map +1 -1
  475. package/dist/services/conversation-persistence.test.js +708 -624
  476. package/dist/services/conversation-persistence.test.js.map +1 -1
  477. package/dist/services/conversation-replay.d.ts +26 -0
  478. package/dist/services/conversation-replay.d.ts.map +1 -0
  479. package/dist/services/conversation-replay.js +460 -0
  480. package/dist/services/conversation-replay.js.map +1 -0
  481. package/dist/services/conversation-replay.test.d.ts +2 -0
  482. package/dist/services/conversation-replay.test.d.ts.map +1 -0
  483. package/dist/services/conversation-replay.test.js +492 -0
  484. package/dist/services/conversation-replay.test.js.map +1 -0
  485. package/dist/services/conversation-result-builder.d.ts +2 -0
  486. package/dist/services/conversation-result-builder.d.ts.map +1 -1
  487. package/dist/services/conversation-result-builder.js +12 -2
  488. package/dist/services/conversation-result-builder.js.map +1 -1
  489. package/dist/services/conversation-result-builder.test.js +179 -0
  490. package/dist/services/conversation-result-builder.test.js.map +1 -1
  491. package/dist/services/conversation-retry-policy.d.ts +17 -0
  492. package/dist/services/conversation-retry-policy.d.ts.map +1 -1
  493. package/dist/services/conversation-retry-policy.js +38 -5
  494. package/dist/services/conversation-retry-policy.js.map +1 -1
  495. package/dist/services/conversation-retry-policy.test.js +60 -1
  496. package/dist/services/conversation-retry-policy.test.js.map +1 -1
  497. package/dist/services/conversation-service.d.ts +12 -3
  498. package/dist/services/conversation-service.d.ts.map +1 -1
  499. package/dist/services/conversation-service.js +18 -3
  500. package/dist/services/conversation-service.js.map +1 -1
  501. package/dist/services/conversation-session.d.ts +23 -7
  502. package/dist/services/conversation-session.d.ts.map +1 -1
  503. package/dist/services/conversation-session.js +620 -67
  504. package/dist/services/conversation-session.js.map +1 -1
  505. package/dist/services/conversation-store.d.ts +16 -13
  506. package/dist/services/conversation-store.d.ts.map +1 -1
  507. package/dist/services/conversation-store.js +62 -191
  508. package/dist/services/conversation-store.js.map +1 -1
  509. package/dist/services/conversation-store.merge-modes.removed.d.ts +2 -0
  510. package/dist/services/conversation-store.merge-modes.removed.d.ts.map +1 -0
  511. package/dist/services/conversation-store.merge-modes.removed.js +2 -0
  512. package/dist/services/conversation-store.merge-modes.removed.js.map +1 -0
  513. package/dist/services/conversation-store.merge-modes.test.d.ts +2 -0
  514. package/dist/services/conversation-store.merge-modes.test.d.ts.map +1 -0
  515. package/dist/services/conversation-store.merge-modes.test.js +2 -0
  516. package/dist/services/conversation-store.merge-modes.test.js.map +1 -0
  517. package/dist/services/conversation-store.test.js +157 -294
  518. package/dist/services/conversation-store.test.js.map +1 -1
  519. package/dist/services/conversation-turn-items.d.ts +5 -0
  520. package/dist/services/conversation-turn-items.d.ts.map +1 -0
  521. package/dist/services/conversation-turn-items.js +351 -0
  522. package/dist/services/conversation-turn-items.js.map +1 -0
  523. package/dist/services/conversation-turn-items.test.d.ts +2 -0
  524. package/dist/services/conversation-turn-items.test.d.ts.map +1 -0
  525. package/dist/services/conversation-turn-items.test.js +68 -0
  526. package/dist/services/conversation-turn-items.test.js.map +1 -0
  527. package/dist/services/input-surge-guard.d.ts +4 -0
  528. package/dist/services/input-surge-guard.d.ts.map +1 -1
  529. package/dist/services/input-surge-guard.js +2 -2
  530. package/dist/services/input-surge-guard.js.map +1 -1
  531. package/dist/services/input-surge-guard.test.js +15 -1
  532. package/dist/services/input-surge-guard.test.js.map +1 -1
  533. package/dist/services/large-uncached-input-guard.d.ts +35 -0
  534. package/dist/services/large-uncached-input-guard.d.ts.map +1 -0
  535. package/dist/services/large-uncached-input-guard.js +127 -0
  536. package/dist/services/large-uncached-input-guard.js.map +1 -0
  537. package/dist/services/large-uncached-input-guard.test.d.ts +2 -0
  538. package/dist/services/large-uncached-input-guard.test.d.ts.map +1 -0
  539. package/dist/services/large-uncached-input-guard.test.js +160 -0
  540. package/dist/services/large-uncached-input-guard.test.js.map +1 -0
  541. package/dist/services/model-service.d.ts +2 -0
  542. package/dist/services/model-service.d.ts.map +1 -1
  543. package/dist/services/model-service.js +7 -0
  544. package/dist/services/model-service.js.map +1 -1
  545. package/dist/services/provider-traffic.d.ts.map +1 -1
  546. package/dist/services/provider-traffic.js +82 -24
  547. package/dist/services/provider-traffic.js.map +1 -1
  548. package/dist/services/provider-traffic.test.js +98 -6
  549. package/dist/services/provider-traffic.test.js.map +1 -1
  550. package/dist/services/repro-error.test.d.ts +2 -0
  551. package/dist/services/repro-error.test.d.ts.map +1 -0
  552. package/dist/services/repro-error.test.js +38 -0
  553. package/dist/services/repro-error.test.js.map +1 -0
  554. package/dist/services/rtk-service.d.ts.map +1 -1
  555. package/dist/services/rtk-service.js +1 -2
  556. package/dist/services/rtk-service.js.map +1 -1
  557. package/dist/services/settings-schema.d.ts +36 -28
  558. package/dist/services/settings-schema.d.ts.map +1 -1
  559. package/dist/services/settings-schema.js +7 -2
  560. package/dist/services/settings-schema.js.map +1 -1
  561. package/dist/services/settings-sources.d.ts.map +1 -1
  562. package/dist/services/settings-sources.js +1 -0
  563. package/dist/services/settings-sources.js.map +1 -1
  564. package/dist/services/stream-event-processor.d.ts +4 -0
  565. package/dist/services/stream-event-processor.d.ts.map +1 -1
  566. package/dist/services/stream-event-processor.js +78 -39
  567. package/dist/services/stream-event-processor.js.map +1 -1
  568. package/dist/services/stream-event-processor.test.js +71 -0
  569. package/dist/services/stream-event-processor.test.js.map +1 -1
  570. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  571. package/dist/services/subagents/subagent-manager.js +120 -46
  572. package/dist/services/subagents/subagent-manager.js.map +1 -1
  573. package/dist/services/subagents/subagent-manager.test.js +361 -11
  574. package/dist/services/subagents/subagent-manager.test.js.map +1 -1
  575. package/dist/services/subagents/subagent-session.d.ts +1 -1
  576. package/dist/services/subagents/subagent-session.d.ts.map +1 -1
  577. package/dist/services/subagents/subagent-session.js +2 -2
  578. package/dist/services/subagents/subagent-session.js.map +1 -1
  579. package/dist/services/subagents/subagent-session.test.js +3 -3
  580. package/dist/services/subagents/subagent-session.test.js.map +1 -1
  581. package/dist/services/subagents/types.d.ts +2 -1
  582. package/dist/services/subagents/types.d.ts.map +1 -1
  583. package/dist/services/terminal-result-collector.d.ts.map +1 -1
  584. package/dist/services/terminal-result-collector.js +49 -1
  585. package/dist/services/terminal-result-collector.js.map +1 -1
  586. package/dist/services/terminal-result-collector.test.js +44 -0
  587. package/dist/services/terminal-result-collector.test.js.map +1 -1
  588. package/dist/services/tool-call-arguments.d.ts +20 -0
  589. package/dist/services/tool-call-arguments.d.ts.map +1 -0
  590. package/dist/services/tool-call-arguments.js +49 -0
  591. package/dist/services/tool-call-arguments.js.map +1 -0
  592. package/dist/services/tool-execution-ledger.d.ts +41 -0
  593. package/dist/services/tool-execution-ledger.d.ts.map +1 -0
  594. package/dist/services/tool-execution-ledger.js +269 -0
  595. package/dist/services/tool-execution-ledger.js.map +1 -0
  596. package/dist/services/tool-execution-ledger.test.d.ts +2 -0
  597. package/dist/services/tool-execution-ledger.test.d.ts.map +1 -0
  598. package/dist/services/tool-execution-ledger.test.js +271 -0
  599. package/dist/services/tool-execution-ledger.test.js.map +1 -0
  600. package/dist/tools/apply-patch.d.ts +8 -0
  601. package/dist/tools/apply-patch.d.ts.map +1 -1
  602. package/dist/tools/apply-patch.js +187 -14
  603. package/dist/tools/apply-patch.js.map +1 -1
  604. package/dist/tools/apply-patch.test.js +81 -0
  605. package/dist/tools/apply-patch.test.js.map +1 -1
  606. package/dist/tools/edit-healing.d.ts.map +1 -1
  607. package/dist/tools/edit-healing.js +9 -3
  608. package/dist/tools/edit-healing.js.map +1 -1
  609. package/dist/tools/run-subagent.d.ts +0 -1
  610. package/dist/tools/run-subagent.d.ts.map +1 -1
  611. package/dist/tools/run-subagent.js +1 -8
  612. package/dist/tools/run-subagent.js.map +1 -1
  613. package/dist/tools/run-subagent.test.js +0 -18
  614. package/dist/tools/run-subagent.test.js.map +1 -1
  615. package/dist/tools/search-replace.d.ts.map +1 -1
  616. package/dist/tools/search-replace.js +92 -140
  617. package/dist/tools/search-replace.js.map +1 -1
  618. package/dist/utils/clipboard.d.ts +7 -0
  619. package/dist/utils/clipboard.d.ts.map +1 -1
  620. package/dist/utils/clipboard.js +83 -4
  621. package/dist/utils/clipboard.js.map +1 -1
  622. package/dist/utils/clipboard.test.js +152 -2
  623. package/dist/utils/clipboard.test.js.map +1 -1
  624. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  625. package/dist/utils/conversation-event-handler.js +36 -1
  626. package/dist/utils/conversation-event-handler.js.map +1 -1
  627. package/dist/utils/conversation-event-handler.test.js +116 -0
  628. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  629. package/dist/utils/error-helpers.d.ts +1 -0
  630. package/dist/utils/error-helpers.d.ts.map +1 -1
  631. package/dist/utils/error-helpers.js +61 -0
  632. package/dist/utils/error-helpers.js.map +1 -1
  633. package/dist/utils/error-helpers.test.js +13 -1
  634. package/dist/utils/error-helpers.test.js.map +1 -1
  635. package/dist/utils/extract-command-messages.d.ts.map +1 -1
  636. package/dist/utils/extract-command-messages.js +8 -4
  637. package/dist/utils/extract-command-messages.js.map +1 -1
  638. package/dist/utils/ink-render-options.d.ts +1 -1
  639. package/dist/utils/ink-render-options.d.ts.map +1 -1
  640. package/dist/utils/ink-render-options.js +1 -1
  641. package/dist/utils/ink-render-options.js.map +1 -1
  642. package/dist/utils/message-utils.d.ts +7 -0
  643. package/dist/utils/message-utils.d.ts.map +1 -0
  644. package/dist/utils/message-utils.js +31 -0
  645. package/dist/utils/message-utils.js.map +1 -0
  646. package/dist/utils/resume-list.d.ts +15 -0
  647. package/dist/utils/resume-list.d.ts.map +1 -0
  648. package/dist/utils/resume-list.js +68 -0
  649. package/dist/utils/resume-list.js.map +1 -0
  650. package/dist/utils/resume-list.test.d.ts +2 -0
  651. package/dist/utils/resume-list.test.d.ts.map +1 -0
  652. package/dist/utils/resume-list.test.js +89 -0
  653. package/dist/utils/resume-list.test.js.map +1 -0
  654. package/dist/utils/streaming-session-factory.d.ts +2 -0
  655. package/dist/utils/streaming-session-factory.d.ts.map +1 -1
  656. package/dist/utils/streaming-session-factory.js +4 -0
  657. package/dist/utils/streaming-session-factory.js.map +1 -1
  658. package/package.json +2 -2
  659. package/readme.md +22 -7
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsSelectionMenu.js","sourceRoot":"","sources":["../../source/components/SettingsSelectionMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsSelectionMenu.js","sourceRoot":"","sources":["../../source/components/SettingsSelectionMenu.tsx"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ test('SettingsSelectionMenu uses scrollOffset to control the visible window', (t
13
13
  selectedIndex: 10,
14
14
  scrollOffset: 1,
15
15
  query: '',
16
+ activeCategoryId: 'model',
17
+ categories: [{ id: 'model', label: 'Model & Reasoning' }],
16
18
  }));
17
19
  const output = lastFrame() ?? '';
18
20
  t.false(output.includes('agent.setting0'));
@@ -20,4 +22,142 @@ test('SettingsSelectionMenu uses scrollOffset to control the visible window', (t
20
22
  t.true(output.includes('agent.setting10'));
21
23
  t.false(output.includes('agent.setting11'));
22
24
  });
25
+ test('SettingsSelectionMenu renders task tabs and switch hint', (t) => {
26
+ const { lastFrame } = render(React.createElement(SettingsSelectionMenu, {
27
+ items: [
28
+ {
29
+ key: 'agent.model',
30
+ description: 'Model',
31
+ currentValue: 'gpt-5',
32
+ },
33
+ ],
34
+ selectedIndex: 0,
35
+ scrollOffset: 0,
36
+ query: '',
37
+ activeCategoryId: 'model',
38
+ categories: [
39
+ { id: 'model', label: 'Model & Reasoning' },
40
+ { id: 'shell', label: 'Shell Execution' },
41
+ ],
42
+ }));
43
+ const output = lastFrame() ?? '';
44
+ t.true(output.includes('Model & Reasoning'));
45
+ t.true(output.includes('Shell Execution'));
46
+ t.true(output.includes('Tab/←→ → switch section'));
47
+ });
48
+ test('SettingsSelectionMenu keeps task tabs on one row', (t) => {
49
+ const { lastFrame } = render(React.createElement(SettingsSelectionMenu, {
50
+ items: [
51
+ {
52
+ key: 'app.orchestratorMode',
53
+ description: 'Delegate tool-backed work through subagents (true|false)',
54
+ currentValue: true,
55
+ },
56
+ {
57
+ key: 'app.planMode',
58
+ description: 'Plan mode: read-only research and implementation planning (true|false)',
59
+ currentValue: false,
60
+ },
61
+ ],
62
+ selectedIndex: 0,
63
+ scrollOffset: 0,
64
+ query: '',
65
+ activeCategoryId: 'modes',
66
+ categories: [
67
+ { id: 'model', label: 'Model & Reasoning' },
68
+ { id: 'modes', label: 'Modes' },
69
+ { id: 'approvals', label: 'Safety & Approvals' },
70
+ { id: 'shell', label: 'Shell Execution' },
71
+ { id: 'search', label: 'Search & Web' },
72
+ { id: 'subagents', label: 'Subagents' },
73
+ { id: 'uiLogging', label: 'UI & Logging' },
74
+ { id: 'advanced', label: 'Advanced' },
75
+ ],
76
+ }));
77
+ const lines = (lastFrame() ?? '').split('\n');
78
+ t.true(lines[0]?.includes('Tab/←→ → switch section'));
79
+ t.false(lines[0]?.includes('STab/←→ → switch section'));
80
+ t.true(lines[1]?.startsWith('╭'));
81
+ });
82
+ test('SettingsSelectionMenu shrinks after broad search collapses', (t) => {
83
+ const categories = [
84
+ { id: 'model', label: 'Model & Reasoning' },
85
+ { id: 'modes', label: 'Modes' },
86
+ { id: 'approvals', label: 'Safety & Approvals' },
87
+ { id: 'shell', label: 'Shell Execution' },
88
+ { id: 'search', label: 'Search & Web' },
89
+ { id: 'subagents', label: 'Subagents' },
90
+ { id: 'uiLogging', label: 'UI & Logging' },
91
+ { id: 'advanced', label: 'Advanced' },
92
+ ];
93
+ const searchItems = [
94
+ 'agent.model',
95
+ 'app.planMode',
96
+ 'agent.maxTurns',
97
+ 'agent.temperature',
98
+ 'agent.mentorModel',
99
+ 'app.searchViaShell',
100
+ 'agent.retryAttempts',
101
+ 'app.orchestratorMode',
102
+ 'agent.reasoningEffort',
103
+ 'agent.autoApproveModel',
104
+ ].map((key) => ({
105
+ key,
106
+ description: `Description for ${key}`,
107
+ currentValue: key.startsWith('app.') ? false : 'value',
108
+ }));
109
+ const modeItems = [
110
+ {
111
+ key: 'app.orchestratorMode',
112
+ description: 'Delegate tool-backed work through subagents (true|false)',
113
+ currentValue: true,
114
+ },
115
+ {
116
+ key: 'app.planMode',
117
+ description: 'Plan mode: read-only research and implementation planning (true|false)',
118
+ currentValue: false,
119
+ },
120
+ ];
121
+ const view = render(React.createElement(SettingsSelectionMenu, {
122
+ items: searchItems,
123
+ selectedIndex: 0,
124
+ scrollOffset: 0,
125
+ query: 'a',
126
+ isSearchingAll: true,
127
+ activeCategoryId: 'modes',
128
+ categories,
129
+ }));
130
+ const expandedHeight = (view.lastFrame() ?? '').split('\n').length;
131
+ view.rerender(React.createElement(SettingsSelectionMenu, {
132
+ items: modeItems,
133
+ selectedIndex: 0,
134
+ scrollOffset: 0,
135
+ query: '',
136
+ activeCategoryId: 'modes',
137
+ categories,
138
+ }));
139
+ const collapsedHeight = (view.lastFrame() ?? '').split('\n').length;
140
+ view.rerender(React.createElement(SettingsSelectionMenu, {
141
+ items: [
142
+ {
143
+ key: 'shell.timeout',
144
+ description: 'Shell command timeout in milliseconds',
145
+ currentValue: 120000,
146
+ },
147
+ {
148
+ key: 'shell.maxOutputLines',
149
+ description: 'Maximum lines of shell output to capture',
150
+ currentValue: 1000,
151
+ },
152
+ ],
153
+ selectedIndex: 0,
154
+ scrollOffset: 0,
155
+ query: '',
156
+ activeCategoryId: 'shell',
157
+ categories,
158
+ }));
159
+ const switchedHeight = (view.lastFrame() ?? '').split('\n').length;
160
+ t.true(collapsedHeight < expandedHeight);
161
+ t.true(switchedHeight < expandedHeight);
162
+ });
23
163
  //# sourceMappingURL=SettingsSelectionMenu.scroll.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsSelectionMenu.scroll.test.js","sourceRoot":"","sources":["../../source/components/SettingsSelectionMenu.scroll.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAG/D,MAAM,KAAK,GAA4B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/E,GAAG,EAAE,gBAAgB,KAAK,EAAE;IAC5B,WAAW,EAAE,WAAW,KAAK,EAAE;IAC/B,YAAY,EAAE,KAAK;CACpB,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,uEAAuE,EAAE,CAAC,CAAC,EAAE,EAAE;IAClF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE;QACzC,KAAK;QACL,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,CAAC;QACf,KAAK,EAAE,EAAE;KACV,CAAC,CACH,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IAEjC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"SettingsSelectionMenu.scroll.test.js","sourceRoot":"","sources":["../../source/components/SettingsSelectionMenu.scroll.test.ts"],"names":[],"mappings":"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"}
@@ -14,24 +14,57 @@ const items = [
14
14
  currentValue: 120000,
15
15
  },
16
16
  ];
17
+ const defaultTabs = {
18
+ activeCategoryId: 'model',
19
+ categories: [
20
+ { id: 'model', label: 'Model & Reasoning' },
21
+ { id: 'shell', label: 'Shell Execution' },
22
+ ],
23
+ };
17
24
  test('SettingsSelectionMenu renders empty state (does not disappear)', (t) => {
18
- const { lastFrame } = render(React.createElement(SettingsSelectionMenu, { items: [], selectedIndex: 0, query: "abc" }));
25
+ const { lastFrame } = render(React.createElement(SettingsSelectionMenu, {
26
+ items: [],
27
+ selectedIndex: 0,
28
+ query: 'abc',
29
+ activeCategoryId: defaultTabs.activeCategoryId,
30
+ categories: defaultTabs.categories,
31
+ }));
19
32
  t.true(lastFrame()?.includes('No settings match'));
20
33
  t.true(lastFrame()?.includes('abc'));
21
34
  });
22
35
  test('SettingsSelectionMenu shows query and suggestion count', (t) => {
23
- const { lastFrame } = render(React.createElement(SettingsSelectionMenu, { items: items, selectedIndex: 0, query: "ag" }));
36
+ const { lastFrame } = render(React.createElement(SettingsSelectionMenu, {
37
+ items,
38
+ selectedIndex: 0,
39
+ query: 'ag',
40
+ isSearchingAll: true,
41
+ activeCategoryId: defaultTabs.activeCategoryId,
42
+ categories: defaultTabs.categories,
43
+ }));
24
44
  const output = lastFrame() ?? '';
25
45
  t.true(output.includes('ag'));
46
+ t.true(output.includes('Searching all sections'));
26
47
  t.true(output.includes('2 items'));
27
48
  });
28
49
  test('SettingsSelectionMenu shows category headers', (t) => {
29
- const { lastFrame } = render(React.createElement(SettingsSelectionMenu, { items: items, selectedIndex: 0, query: "" }));
50
+ const { lastFrame } = render(React.createElement(SettingsSelectionMenu, {
51
+ items,
52
+ selectedIndex: 0,
53
+ query: '',
54
+ activeCategoryId: defaultTabs.activeCategoryId,
55
+ categories: defaultTabs.categories,
56
+ }));
30
57
  const output = lastFrame() ?? '';
31
- t.true(output.includes('Common Settings'));
58
+ t.true(output.includes('Model & Reasoning'));
32
59
  });
33
60
  test('SettingsSelectionMenu marks the selected item', (t) => {
34
- const { lastFrame } = render(React.createElement(SettingsSelectionMenu, { items: items, selectedIndex: 1, query: "" }));
61
+ const { lastFrame } = render(React.createElement(SettingsSelectionMenu, {
62
+ items,
63
+ selectedIndex: 1,
64
+ query: '',
65
+ activeCategoryId: defaultTabs.activeCategoryId,
66
+ categories: defaultTabs.categories,
67
+ }));
35
68
  const output = lastFrame() ?? '';
36
69
  // We mark selected rows with a leading arrow
37
70
  t.true(output.includes('▶'));
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsSelectionMenu.test.js","sourceRoot":"","sources":["../../source/components/SettingsSelectionMenu.test.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAG/D,MAAM,KAAK,GAA4B;IACrC;QACE,GAAG,EAAE,aAAa;QAClB,WAAW,EAAE,qBAAqB;QAClC,YAAY,EAAE,OAAO;KACtB;IACD;QACE,GAAG,EAAE,eAAe;QACpB,WAAW,EAAE,uCAAuC;QACpD,YAAY,EAAE,MAAM;KACrB;CACF,CAAC;AAEF,IAAI,CAAC,gEAAgE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3E,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,qBAAqB,IAAC,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAC,KAAK,GAAG,CAAC,CAAC;IACjG,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wDAAwD,EAAE,CAAC,CAAC,EAAE,EAAE;IACnE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,qBAAqB,IAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAC,IAAI,GAAG,CAAC,CAAC;IACnG,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8CAA8C,EAAE,CAAC,CAAC,EAAE,EAAE;IACzD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,qBAAqB,IAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAC,EAAE,GAAG,CAAC,CAAC;IACjG,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+CAA+C,EAAE,CAAC,CAAC,EAAE,EAAE;IAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,qBAAqB,IAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAC,EAAE,GAAG,CAAC,CAAC;IACjG,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACjC,6CAA6C;IAC7C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"SettingsSelectionMenu.test.js","sourceRoot":"","sources":["../../source/components/SettingsSelectionMenu.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsValueSelectionMenu.d.ts","sourceRoot":"","sources":["../../source/components/SettingsValueSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAExF,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;CAC7B,CAAC;AAIF,QAAA,MAAM,0BAA0B,EAAE,EAAE,CAAC,KAAK,CA4FzC,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"SettingsValueSelectionMenu.d.ts","sourceRoot":"","sources":["../../source/components/SettingsValueSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAGxF,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;CAC7B,CAAC;AAEF,QAAA,MAAM,0BAA0B,EAAE,EAAE,CAAC,KAAK,CA0DzC,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
@@ -1,9 +1,15 @@
1
1
  import React from 'react';
2
2
  import { Box, Text } from 'ink';
3
- const VISIBLE_COUNT = 10;
3
+ import { MenuContainer } from './Common/MenuContainer.js';
4
4
  const SettingsValueSelectionMenu = ({ settingKey, items, selectedIndex, query, isNumericSettings }) => {
5
- if (items.length === 0) {
6
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "red", paddingX: 1 },
5
+ return (React.createElement(MenuContainer, { items: items, selectedIndex: selectedIndex, borderColor: items.length === 0 ? 'red' : 'cyan', title: React.createElement(Box, null,
6
+ React.createElement(Text, { color: "gray" }, "Value for "),
7
+ React.createElement(Text, { color: "cyan", bold: true }, settingKey),
8
+ React.createElement(Text, { color: "gray" }, " \u00B7 "),
9
+ query ? (React.createElement(Text, null,
10
+ "Filter: \"",
11
+ React.createElement(Text, { color: "white", bold: true }, query),
12
+ "\"")) : (React.createElement(Text, { color: "gray" }, isNumericSettings ? 'Select or type custom value' : 'Select a value'))), fallbackText: React.createElement(Box, { flexDirection: "column" },
7
13
  React.createElement(Text, { color: "red", bold: true }, "No matching values"),
8
14
  React.createElement(Text, { color: "gray" },
9
15
  settingKey,
@@ -12,54 +18,21 @@ const SettingsValueSelectionMenu = ({ settingKey, items, selectedIndex, query, i
12
18
  "\""),
13
19
  isNumericSettings && React.createElement(Text, { color: "yellow" }, "Note: This setting accepts numeric values."),
14
20
  React.createElement(Box, { marginTop: 1 },
15
- React.createElement(Text, { color: "gray" }, "Enter \u2192 apply typed value \u00B7 Esc \u2192 cancel"))));
16
- }
17
- // Calculate viewport
18
- let viewportStart = 0;
19
- if (items.length > VISIBLE_COUNT) {
20
- const half = Math.floor(VISIBLE_COUNT / 2);
21
- if (selectedIndex <= half) {
22
- viewportStart = 0;
23
- }
24
- else if (selectedIndex >= items.length - half) {
25
- viewportStart = items.length - VISIBLE_COUNT;
26
- }
27
- else {
28
- viewportStart = selectedIndex - half;
29
- }
30
- }
31
- viewportStart = Math.max(0, Math.min(viewportStart, items.length - VISIBLE_COUNT));
32
- const visibleItems = items.slice(viewportStart, viewportStart + VISIBLE_COUNT);
33
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 1 },
34
- React.createElement(Box, { marginBottom: 1, borderStyle: "single", borderBottom: false, borderLeft: false, borderRight: false, borderTop: false },
35
- React.createElement(Text, { color: "gray" }, "Value for "),
36
- React.createElement(Text, { color: "cyan", bold: true }, settingKey),
37
- React.createElement(Text, { color: "gray" }, " \u00B7 "),
38
- query ? (React.createElement(Text, null,
39
- "Filter: \"",
40
- React.createElement(Text, { color: "white", bold: true }, query),
41
- "\"")) : (React.createElement(Text, { color: "gray" }, isNumericSettings ? 'Select or type custom value' : 'Select a value'))),
42
- visibleItems.map((item, index) => {
43
- const realIndex = viewportStart + index;
44
- const isSelected = realIndex === selectedIndex;
45
- return (React.createElement(Box, { key: item.value },
46
- React.createElement(Text, { color: isSelected ? 'green' : 'gray' }, isSelected ? '▶ ' : ' '),
47
- React.createElement(Text, { color: isSelected ? 'green' : 'white', bold: isSelected }, item.value),
48
- item.description && React.createElement(Text, { color: "gray" },
49
- " \u2014 ",
50
- item.description)));
51
- }),
52
- React.createElement(Box, { marginTop: 1, borderStyle: "single", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, borderColor: "gray" },
53
- React.createElement(Text, { color: "gray", dimColor: true },
54
- React.createElement(Text, { bold: true }, "Enter"),
55
- " confirm \u00B7 ",
56
- React.createElement(Text, { bold: true }, "Esc"),
57
- " cancel \u00B7 ",
58
- React.createElement(Text, { bold: true }, "\u2191\u2193"),
59
- " navigate \u00B7",
60
- ' ',
61
- React.createElement(Text, { bold: true }, "Ctrl+D"),
62
- " reset to default"))));
21
+ React.createElement(Text, { color: "gray" }, "Enter \u2192 apply typed value \u00B7 Esc \u2192 cancel"))), footer: React.createElement(Text, { color: "gray", dimColor: true },
22
+ React.createElement(Text, { bold: true }, "Enter"),
23
+ " confirm \u00B7 ",
24
+ React.createElement(Text, { bold: true }, "Esc"),
25
+ " cancel \u00B7 ",
26
+ React.createElement(Text, { bold: true }, "\u2191\u2193"),
27
+ " navigate \u00B7",
28
+ ' ',
29
+ React.createElement(Text, { bold: true }, "Ctrl+D"),
30
+ " reset to default"), footerOutsideBorder: false, renderItem: (item, _index, isSelected) => (React.createElement(Box, { key: item.value },
31
+ React.createElement(Text, { color: isSelected ? 'green' : 'gray' }, isSelected ? '▶ ' : ' '),
32
+ React.createElement(Text, { color: isSelected ? 'green' : 'white', bold: isSelected }, item.value),
33
+ item.description && React.createElement(Text, { color: "gray" },
34
+ " \u2014 ",
35
+ item.description))) }));
63
36
  };
64
37
  export default SettingsValueSelectionMenu;
65
38
  //# sourceMappingURL=SettingsValueSelectionMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsValueSelectionMenu.js","sourceRoot":"","sources":["../../source/components/SettingsValueSelectionMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsValueSelectionMenu.js","sourceRoot":"","sources":["../../source/components/SettingsValueSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAU1D,MAAM,0BAA0B,GAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE;IAC/G,OAAO,CACL,oBAAC,aAAa,IACZ,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAChD,KAAK,EACH,oBAAC,GAAG;YACF,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,iBAAkB;YACpC,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,UACpB,UAAU,CACN;YACP,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,eAAW;YAC5B,KAAK,CAAC,CAAC,CAAC,CACP,oBAAC,IAAI;;gBAEH,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,UACrB,KAAK,CACD;qBAEF,CACR,CAAC,CAAC,CAAC,CACF,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,IAAE,iBAAiB,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,gBAAgB,CAAQ,CACjG,CACG,EAER,YAAY,EACV,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;YACzB,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK,EAAC,IAAI,+BAEf;YACP,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;gBACf,UAAU;;gBAAsB,KAAK,IAAI,GAAG;qBACxC;YACN,iBAAiB,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,iDAAkD;YAC5F,oBAAC,GAAG,IAAC,SAAS,EAAE,CAAC;gBACf,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,8DAAgD,CAC9D,CACF,EAER,MAAM,EACJ,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ;YACzB,oBAAC,IAAI,IAAC,IAAI,kBAAa;;YAAW,oBAAC,IAAI,IAAC,IAAI,gBAAW;;YAAU,oBAAC,IAAI,IAAC,IAAI,yBAAU;;YAAY,GAAG;YACpG,oBAAC,IAAI,IAAC,IAAI,mBAAc;gCACnB,EAET,mBAAmB,EAAE,KAAK,EAC1B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CACxC,oBAAC,GAAG,IAAC,GAAG,EAAE,IAAI,CAAC,KAAK;YAClB,oBAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAQ;YAC7E,oBAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,IAC1D,IAAI,CAAC,KAAK,CACN;YACN,IAAI,CAAC,WAAW,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;;gBAAK,IAAI,CAAC,WAAW,CAAQ,CAChE,CACP,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
@@ -4,6 +4,7 @@ type Props = {
4
4
  commands: SlashCommand[];
5
5
  selectedIndex: number;
6
6
  filter: string;
7
+ scrollOffset?: number;
7
8
  };
8
9
  declare const SlashCommandMenu: FC<Props>;
9
10
  export default SlashCommandMenu;
@@ -1 +1 @@
1
- {"version":3,"file":"SlashCommandMenu.d.ts","sourceRoot":"","sources":["../../source/components/SlashCommandMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,QAAA,MAAM,gBAAgB,EAAE,EAAE,CAAC,KAAK,CA4B/B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"SlashCommandMenu.d.ts","sourceRoot":"","sources":["../../source/components/SlashCommandMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,QAAA,MAAM,gBAAgB,EAAE,EAAE,CAAC,KAAK,CAqB/B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1,20 +1,17 @@
1
1
  import React from 'react';
2
2
  import { Box, Text } from 'ink';
3
- const SlashCommandMenu = ({ commands, selectedIndex, filter }) => {
3
+ import { MenuContainer } from './Common/MenuContainer.js';
4
+ const SlashCommandMenu = ({ commands, selectedIndex, filter, scrollOffset = 0 }) => {
4
5
  const filteredCommands = commands.filter((cmd) => cmd.name.toLowerCase().includes(filter.toLowerCase()));
5
- if (filteredCommands.length === 0) {
6
- return (React.createElement(Box, { flexDirection: "column", marginLeft: 2 },
7
- React.createElement(Text, { color: "#64748b" }, "No matching commands")));
8
- }
9
- return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "#22d3ee", paddingX: 1 }, filteredCommands.map((cmd, index) => (React.createElement(Box, { key: cmd.name },
10
- React.createElement(Text, { color: index === selectedIndex ? '#22d3ee' : undefined, bold: index === selectedIndex, inverse: index === selectedIndex },
11
- ' ',
12
- "/",
13
- cmd.name,
14
- ' '),
15
- React.createElement(Text, { color: "#64748b" },
16
- " - ",
17
- cmd.description))))));
6
+ return (React.createElement(MenuContainer, { items: filteredCommands, selectedIndex: selectedIndex, scrollOffset: scrollOffset, borderColor: "#22d3ee", fallbackText: "No matching commands", renderItem: (cmd, _index, isSelected) => (React.createElement(Box, { key: cmd.name },
7
+ React.createElement(Text, { color: isSelected ? '#22d3ee' : undefined, bold: isSelected, inverse: isSelected },
8
+ ' ',
9
+ "/",
10
+ cmd.name,
11
+ ' '),
12
+ React.createElement(Text, { color: "#64748b" },
13
+ " - ",
14
+ cmd.description))) }));
18
15
  };
19
16
  export default SlashCommandMenu;
20
17
  //# sourceMappingURL=SlashCommandMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SlashCommandMenu.js","sourceRoot":"","sources":["../../source/components/SlashCommandMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAShC,MAAM,gBAAgB,GAAc,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE;IAC1E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEzG,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC;YACvC,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,2BAA4B,CAC7C,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,QAAQ,EAAE,CAAC,IAC9E,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACpC,oBAAC,GAAG,IAAC,GAAG,EAAE,GAAG,CAAC,IAAI;QAChB,oBAAC,IAAI,IACH,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACtD,IAAI,EAAE,KAAK,KAAK,aAAa,EAC7B,OAAO,EAAE,KAAK,KAAK,aAAa;YAE/B,GAAG;;YACF,GAAG,CAAC,IAAI;YAAE,GAAG,CACV;QACP,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;;YAAK,GAAG,CAAC,WAAW,CAAQ,CAC7C,CACP,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"SlashCommandMenu.js","sourceRoot":"","sources":["../../source/components/SlashCommandMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAS1D,MAAM,gBAAgB,GAAc,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,CAAC,EAAE,EAAE,EAAE;IAC5F,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEzG,OAAO,CACL,oBAAC,aAAa,IACZ,KAAK,EAAE,gBAAgB,EACvB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAC,SAAS,EACrB,YAAY,EAAC,sBAAsB,EACnC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CACvC,oBAAC,GAAG,IAAC,GAAG,EAAE,GAAG,CAAC,IAAI;YAChB,oBAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU;gBACnF,GAAG;;gBACF,GAAG,CAAC,IAAI;gBAAE,GAAG,CACV;YACP,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;;gBAAK,GAAG,CAAC,WAAW,CAAQ,CAC7C,CACP,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -2,11 +2,17 @@ import { FC } from 'react';
2
2
  import type { SettingsService } from '../services/settings-service.js';
3
3
  import type { SSHInfo } from '../hooks/use-shell-mode.js';
4
4
  import { type NormalizedUsage } from '../utils/token-usage.js';
5
+ import type { CodexRateLimitInfo } from '../services/conversation-events.js';
5
6
  interface StatusBarProps {
6
7
  settingsService: SettingsService;
7
8
  isShellMode?: boolean;
8
9
  sshInfo?: SSHInfo;
9
10
  lastUsage?: NormalizedUsage | null;
11
+ lastCodexRateLimit?: CodexRateLimitInfo | null;
12
+ largeUncachedWarning?: {
13
+ estimatedTokens: number;
14
+ } | null;
15
+ hasPendingConfirmation?: boolean;
10
16
  }
11
17
  declare const StatusBar: FC<StatusBarProps>;
12
18
  export default StatusBar;
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../source/components/StatusBar.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIlC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAElF,UAAU,cAAc;IACtB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CACpC;AAED,QAAA,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAuHjC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../source/components/StatusBar.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIlC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,UAAU,cAAc;IACtB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC/C,oBAAoB,CAAC,EAAE;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,QAAA,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA8LjC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -3,7 +3,7 @@ import { Box, Text } from 'ink';
3
3
  import { useSetting } from '../hooks/use-setting.js';
4
4
  import { getProvider } from '../providers/index.js';
5
5
  import { formatFooterUsage } from '../utils/token-usage.js';
6
- const StatusBar = ({ settingsService, isShellMode = false, sshInfo, lastUsage }) => {
6
+ const StatusBar = ({ settingsService, isShellMode = false, sshInfo, lastUsage, lastCodexRateLimit, largeUncachedWarning, hasPendingConfirmation = false, }) => {
7
7
  const mentorMode = useSetting(settingsService, 'app.mentorMode') ?? false;
8
8
  const liteMode = useSetting(settingsService, 'app.liteMode') ?? false;
9
9
  const planMode = useSetting(settingsService, 'app.planMode') ?? false;
@@ -19,7 +19,48 @@ const StatusBar = ({ settingsService, isShellMode = false, sshInfo, lastUsage })
19
19
  const slate = '#64748b';
20
20
  const glow = '#fbbf24';
21
21
  const accent = '#0ed7b5';
22
+ const warnRed = '#ef4444';
22
23
  const usageText = formatFooterUsage(lastUsage);
24
+ const warningText = (() => {
25
+ if (hasPendingConfirmation && largeUncachedWarning) {
26
+ return `⚠️ Confirm Cache Miss: ~${Math.round(largeUncachedWarning.estimatedTokens / 1000)}k`;
27
+ }
28
+ if (largeUncachedWarning) {
29
+ return `⚠️ Cache Miss Risk: ~${Math.round(largeUncachedWarning.estimatedTokens / 1000)}k`;
30
+ }
31
+ return '';
32
+ })();
33
+ const codexRateLimitText = (() => {
34
+ if (!lastCodexRateLimit)
35
+ return '';
36
+ const { primary, secondary } = lastCodexRateLimit;
37
+ const parts = [];
38
+ if (primary &&
39
+ typeof primary.window_minutes === 'number' &&
40
+ !isNaN(primary.window_minutes) &&
41
+ typeof primary.used_percent === 'number' &&
42
+ !isNaN(primary.used_percent) &&
43
+ typeof primary.reset_at === 'number' &&
44
+ !isNaN(primary.reset_at)) {
45
+ const hours = Math.round(primary.window_minutes / 60);
46
+ const resetDate = new Date(primary.reset_at * 1000);
47
+ const timeStr = resetDate.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
48
+ parts.push(`${hours}H: ${primary.used_percent}% (${timeStr})`);
49
+ }
50
+ if (secondary &&
51
+ typeof secondary.window_minutes === 'number' &&
52
+ !isNaN(secondary.window_minutes) &&
53
+ typeof secondary.used_percent === 'number' &&
54
+ !isNaN(secondary.used_percent) &&
55
+ typeof secondary.reset_at === 'number' &&
56
+ !isNaN(secondary.reset_at)) {
57
+ const days = Math.round(secondary.window_minutes / (60 * 24));
58
+ const resetDate = new Date(secondary.reset_at * 1000);
59
+ const dateStr = resetDate.toLocaleDateString([], { month: '2-digit', day: '2-digit' });
60
+ parts.push(`${days}D: ${secondary.used_percent}% (${dateStr})`);
61
+ }
62
+ return parts.join(' / ');
63
+ })();
23
64
  return (React.createElement(Box, { marginTop: 1, flexDirection: "column", width: "100%" },
24
65
  React.createElement(Box, { justifyContent: "space-between", width: "100%" },
25
66
  React.createElement(Box, null,
@@ -60,7 +101,9 @@ const StatusBar = ({ settingsService, isShellMode = false, sshInfo, lastUsage })
60
101
  React.createElement(Text, { color: slate }, "\u2502"),
61
102
  React.createElement(Box, { marginX: 1 },
62
103
  React.createElement(Text, { color: slate }, "Mentor: "),
63
- React.createElement(Text, { color: "#a78bfa" }, mentorModel)))))),
104
+ React.createElement(Text, { color: "#a78bfa" }, mentorModel))))),
105
+ codexRateLimitText && (React.createElement(Box, null,
106
+ React.createElement(Text, { color: slate }, codexRateLimitText)))),
64
107
  React.createElement(Box, { width: "100%" },
65
108
  React.createElement(Box, { flexGrow: 1 }, autoApproveMode !== 'off' && (React.createElement(Box, { marginRight: 1 },
66
109
  React.createElement(Text, { color: slate }, "Auto: "),
@@ -69,8 +112,12 @@ const StatusBar = ({ settingsService, isShellMode = false, sshInfo, lastUsage })
69
112
  " (",
70
113
  autoApproveModel,
71
114
  ")")))),
72
- usageText && (React.createElement(Box, null,
73
- React.createElement(Text, { color: slate }, usageText))))));
115
+ warningText ? (React.createElement(Box, null,
116
+ React.createElement(Text, { color: hasPendingConfirmation ? warnRed : glow, bold: true }, warningText),
117
+ usageText && React.createElement(Text, { color: slate },
118
+ " \u2502 ",
119
+ usageText))) : (usageText && (React.createElement(Box, null,
120
+ React.createElement(Text, { color: slate }, usageText)))))));
74
121
  };
75
122
  export default StatusBar;
76
123
  //# sourceMappingURL=StatusBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../source/components/StatusBar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../source/components/StatusBar.tsx"],"names":[],"mappings":"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"}