@blackbox_ai/blackbox-cli 0.0.7 → 0.8.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 (422) hide show
  1. package/README.md +11 -183
  2. package/dist/index.js +8 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/package.json +13 -3
  5. package/dist/src/built-in-extensions/conductor/README.md +242 -0
  6. package/dist/src/built-in-extensions/conductor/blackbox-extension.json +5 -0
  7. package/dist/src/built-in-extensions/conductor/commands/conductor/implement.toml +170 -0
  8. package/dist/src/built-in-extensions/conductor/commands/conductor/newTrack.toml +142 -0
  9. package/dist/src/built-in-extensions/conductor/commands/conductor/revert.toml +122 -0
  10. package/dist/src/built-in-extensions/conductor/commands/conductor/setup.toml +424 -0
  11. package/dist/src/built-in-extensions/conductor/commands/conductor/status.toml +57 -0
  12. package/dist/src/built-in-extensions/conductor/templates/code_styleguides/general.md +23 -0
  13. package/dist/src/built-in-extensions/conductor/templates/code_styleguides/go.md +48 -0
  14. package/dist/src/built-in-extensions/conductor/templates/code_styleguides/html-css.md +49 -0
  15. package/dist/src/built-in-extensions/conductor/templates/code_styleguides/javascript.md +51 -0
  16. package/dist/src/built-in-extensions/conductor/templates/code_styleguides/python.md +37 -0
  17. package/dist/src/built-in-extensions/conductor/templates/code_styleguides/typescript.md +43 -0
  18. package/dist/src/built-in-extensions/conductor/templates/workflow.md +333 -0
  19. package/dist/src/built-in-extensions-data.d.ts +15 -0
  20. package/dist/src/built-in-extensions-data.js +61 -0
  21. package/dist/src/built-in-extensions-data.js.map +1 -0
  22. package/dist/src/commands/configure/ConfigureUI.d.ts +14 -0
  23. package/dist/src/commands/configure/ConfigureUI.js +556 -0
  24. package/dist/src/commands/configure/ConfigureUI.js.map +1 -0
  25. package/dist/src/commands/configure/index.d.ts +7 -0
  26. package/dist/src/commands/configure/index.js +62 -0
  27. package/dist/src/commands/configure/index.js.map +1 -0
  28. package/dist/src/commands/configure.d.ts +7 -0
  29. package/dist/src/commands/configure.js +276 -0
  30. package/dist/src/commands/configure.js.map +1 -0
  31. package/dist/src/commands/configure.test.d.ts +6 -0
  32. package/dist/src/commands/configure.test.js +32 -0
  33. package/dist/src/commands/configure.test.js.map +1 -0
  34. package/dist/src/commands/extensions/enable.js +1 -1
  35. package/dist/src/commands/extensions/enable.js.map +1 -1
  36. package/dist/src/commands/extensions/examples/context/CONTEXT.md +16 -0
  37. package/dist/src/commands/extensions/examples/context/blackbox-extension.json +5 -0
  38. package/dist/src/commands/extensions/examples/custom-commands/blackbox-extension.json +4 -0
  39. package/dist/src/commands/extensions/examples/custom-commands/commands/deploy.toml +12 -0
  40. package/dist/src/commands/extensions/examples/exclude-tools/README.md +28 -0
  41. package/dist/src/commands/extensions/examples/exclude-tools/blackbox-extension.json +5 -0
  42. package/dist/src/commands/extensions/install.d.ts +6 -2
  43. package/dist/src/commands/extensions/install.js +109 -15
  44. package/dist/src/commands/extensions/install.js.map +1 -1
  45. package/dist/src/commands/extensions/link.d.ts +12 -0
  46. package/dist/src/commands/extensions/link.js +53 -0
  47. package/dist/src/commands/extensions/link.js.map +1 -0
  48. package/dist/src/commands/extensions/list.js +2 -2
  49. package/dist/src/commands/extensions/list.js.map +1 -1
  50. package/dist/src/commands/extensions/new.d.ts +13 -0
  51. package/dist/src/commands/extensions/new.js +145 -0
  52. package/dist/src/commands/extensions/new.js.map +1 -0
  53. package/dist/src/commands/extensions/settings.d.ts +18 -0
  54. package/dist/src/commands/extensions/settings.js +98 -0
  55. package/dist/src/commands/extensions/settings.js.map +1 -0
  56. package/dist/src/commands/extensions/update.d.ts +2 -1
  57. package/dist/src/commands/extensions/update.js +59 -10
  58. package/dist/src/commands/extensions/update.js.map +1 -1
  59. package/dist/src/commands/extensions/validate.d.ts +12 -0
  60. package/dist/src/commands/extensions/validate.js +72 -0
  61. package/dist/src/commands/extensions/validate.js.map +1 -0
  62. package/dist/src/commands/extensions.js +10 -1
  63. package/dist/src/commands/extensions.js.map +1 -1
  64. package/dist/src/commands/mcp/add.d.ts +11 -0
  65. package/dist/src/commands/mcp/add.js +61 -7
  66. package/dist/src/commands/mcp/add.js.map +1 -1
  67. package/dist/src/commands/update.d.ts +7 -0
  68. package/dist/src/commands/update.js +103 -0
  69. package/dist/src/commands/update.js.map +1 -0
  70. package/dist/src/commands/voice.d.ts +7 -0
  71. package/dist/src/commands/voice.js +510 -0
  72. package/dist/src/commands/voice.js.map +1 -0
  73. package/dist/src/config/auth.d.ts +32 -1
  74. package/dist/src/config/auth.js +317 -2
  75. package/dist/src/config/auth.js.map +1 -1
  76. package/dist/src/config/config.d.ts +7 -1
  77. package/dist/src/config/config.js +71 -10
  78. package/dist/src/config/config.js.map +1 -1
  79. package/dist/src/config/extension.d.ts +6 -1
  80. package/dist/src/config/extension.js +137 -11
  81. package/dist/src/config/extension.js.map +1 -1
  82. package/dist/src/config/extensions/github.d.ts +48 -0
  83. package/dist/src/config/extensions/github.js +308 -0
  84. package/dist/src/config/extensions/github.js.map +1 -0
  85. package/dist/src/config/keyBindings.d.ts +1 -0
  86. package/dist/src/config/keyBindings.js +3 -0
  87. package/dist/src/config/keyBindings.js.map +1 -1
  88. package/dist/src/config/modelFetcher.d.ts +21 -0
  89. package/dist/src/config/modelFetcher.js +226 -0
  90. package/dist/src/config/modelFetcher.js.map +1 -0
  91. package/dist/src/config/settings.js +101 -0
  92. package/dist/src/config/settings.js.map +1 -1
  93. package/dist/src/config/settingsSchema.d.ts +626 -0
  94. package/dist/src/config/settingsSchema.js +626 -0
  95. package/dist/src/config/settingsSchema.js.map +1 -1
  96. package/dist/src/config/voice.d.ts +31 -0
  97. package/dist/src/config/voice.js +82 -0
  98. package/dist/src/config/voice.js.map +1 -0
  99. package/dist/src/encrypt/attestation.d.ts +5 -0
  100. package/dist/src/encrypt/attestation.js +100 -0
  101. package/dist/src/encrypt/attestation.js.map +1 -0
  102. package/dist/src/encrypt/bridge.d.ts +30 -0
  103. package/dist/src/encrypt/bridge.js +32 -0
  104. package/dist/src/encrypt/bridge.js.map +1 -0
  105. package/dist/src/encrypt/client.d.ts +14 -0
  106. package/dist/src/encrypt/client.js +133 -0
  107. package/dist/src/encrypt/client.js.map +1 -0
  108. package/dist/src/encrypt/config.d.ts +26 -0
  109. package/dist/src/encrypt/config.js +51 -0
  110. package/dist/src/encrypt/config.js.map +1 -0
  111. package/dist/src/encrypt/crypto-utils.d.ts +57 -0
  112. package/dist/src/encrypt/crypto-utils.js +257 -0
  113. package/dist/src/encrypt/crypto-utils.js.map +1 -0
  114. package/dist/src/encrypt/index.d.ts +12 -0
  115. package/dist/src/encrypt/index.js +13 -0
  116. package/dist/src/encrypt/index.js.map +1 -0
  117. package/dist/src/encrypt/retry-utils.d.ts +20 -0
  118. package/dist/src/encrypt/retry-utils.js +60 -0
  119. package/dist/src/encrypt/retry-utils.js.map +1 -0
  120. package/dist/src/encrypt/sessions.d.ts +17 -0
  121. package/dist/src/encrypt/sessions.js +221 -0
  122. package/dist/src/encrypt/sessions.js.map +1 -0
  123. package/dist/src/encrypt/streaming-client.d.ts +29 -0
  124. package/dist/src/encrypt/streaming-client.js +226 -0
  125. package/dist/src/encrypt/streaming-client.js.map +1 -0
  126. package/dist/src/encrypt/types.d.ts +81 -0
  127. package/dist/src/encrypt/types.js +2 -0
  128. package/dist/src/encrypt/types.js.map +1 -0
  129. package/dist/src/gemini.d.ts +1 -1
  130. package/dist/src/gemini.js +61 -28
  131. package/dist/src/gemini.js.map +1 -1
  132. package/dist/src/generated/git-commit.d.ts +3 -3
  133. package/dist/src/generated/git-commit.js +3 -3
  134. package/dist/src/nonInteractiveCli.d.ts +4 -0
  135. package/dist/src/nonInteractiveCli.js +563 -6
  136. package/dist/src/nonInteractiveCli.js.map +1 -1
  137. package/dist/src/on-demand-extensions/README.md +266 -0
  138. package/dist/src/on-demand-extensions/git-helper/README.md +16 -0
  139. package/dist/src/on-demand-extensions/git-helper/blackbox-extension.json +5 -0
  140. package/dist/src/on-demand-extensions/git-helper/commands/git/branch-cleanup.toml +18 -0
  141. package/dist/src/on-demand-extensions/git-helper/commands/git/smart-commit.toml +22 -0
  142. package/dist/src/on-demand-extensions/greet/README.md +76 -0
  143. package/dist/src/on-demand-extensions/greet/blackbox-extension.json +5 -0
  144. package/dist/src/on-demand-extensions/greet/commands/greet/hello.toml +9 -0
  145. package/dist/src/on-demand-extensions/registry.json +251 -0
  146. package/dist/src/services/BuiltinCommandLoader.js +20 -2
  147. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  148. package/dist/src/services/EncryptedContentGenerator.d.ts +63 -0
  149. package/dist/src/services/EncryptedContentGenerator.js +426 -0
  150. package/dist/src/services/EncryptedContentGenerator.js.map +1 -0
  151. package/dist/src/services/McpCommandLoader.d.ts +24 -0
  152. package/dist/src/services/McpCommandLoader.js +50 -0
  153. package/dist/src/services/McpCommandLoader.js.map +1 -0
  154. package/dist/src/services/McpPromptLoader.js +17 -2
  155. package/dist/src/services/McpPromptLoader.js.map +1 -1
  156. package/dist/src/services/ReleaseNotesCache.d.ts +57 -0
  157. package/dist/src/services/ReleaseNotesCache.js +186 -0
  158. package/dist/src/services/ReleaseNotesCache.js.map +1 -0
  159. package/dist/src/services/elevenLabsErrors.d.ts +65 -0
  160. package/dist/src/services/elevenLabsErrors.js +233 -0
  161. package/dist/src/services/elevenLabsErrors.js.map +1 -0
  162. package/dist/src/services/elevenLabsService.d.ts +62 -0
  163. package/dist/src/services/elevenLabsService.js +186 -0
  164. package/dist/src/services/elevenLabsService.js.map +1 -0
  165. package/dist/src/services/elevenLabsStreamingService.d.ts +59 -0
  166. package/dist/src/services/elevenLabsStreamingService.js +202 -0
  167. package/dist/src/services/elevenLabsStreamingService.js.map +1 -0
  168. package/dist/src/services/elevenLabsTokenService.d.ts +21 -0
  169. package/dist/src/services/elevenLabsTokenService.js +42 -0
  170. package/dist/src/services/elevenLabsTokenService.js.map +1 -0
  171. package/dist/src/services/voiceInputHandler.d.ts +26 -0
  172. package/dist/src/services/voiceInputHandler.js +209 -0
  173. package/dist/src/services/voiceInputHandler.js.map +1 -0
  174. package/dist/src/services/voiceRecordingService.d.ts +69 -0
  175. package/dist/src/services/voiceRecordingService.js +397 -0
  176. package/dist/src/services/voiceRecordingService.js.map +1 -0
  177. package/dist/src/ui/App.d.ts +1 -0
  178. package/dist/src/ui/App.js +412 -63
  179. package/dist/src/ui/App.js.map +1 -1
  180. package/dist/src/ui/commands/browseExtensionsCommand.d.ts +7 -0
  181. package/dist/src/ui/commands/browseExtensionsCommand.js +16 -0
  182. package/dist/src/ui/commands/browseExtensionsCommand.js.map +1 -0
  183. package/dist/src/ui/commands/chatCommand.js +356 -16
  184. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  185. package/dist/src/ui/commands/dbCommand.d.ts +7 -0
  186. package/dist/src/ui/commands/dbCommand.js +37 -0
  187. package/dist/src/ui/commands/dbCommand.js.map +1 -0
  188. package/dist/src/ui/commands/docsCommand.js +1 -1
  189. package/dist/src/ui/commands/docsCommand.js.map +1 -1
  190. package/dist/src/ui/commands/mcpCommand.js +3 -2
  191. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  192. package/dist/src/ui/commands/mcpInvokeCommand.d.ts +16 -0
  193. package/dist/src/ui/commands/mcpInvokeCommand.js +263 -0
  194. package/dist/src/ui/commands/mcpInvokeCommand.js.map +1 -0
  195. package/dist/src/ui/commands/modelCommand.js +79 -5
  196. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  197. package/dist/src/ui/commands/multiAgentCommand.d.ts +7 -0
  198. package/dist/src/ui/commands/multiAgentCommand.js +833 -0
  199. package/dist/src/ui/commands/multiAgentCommand.js.map +1 -0
  200. package/dist/src/ui/commands/multiAgentConfigureCommand.d.ts +7 -0
  201. package/dist/src/ui/commands/multiAgentConfigureCommand.js +17 -0
  202. package/dist/src/ui/commands/multiAgentConfigureCommand.js.map +1 -0
  203. package/dist/src/ui/commands/quitCommand.js +71 -2
  204. package/dist/src/ui/commands/quitCommand.js.map +1 -1
  205. package/dist/src/ui/commands/releasesCommand.d.ts +7 -0
  206. package/dist/src/ui/commands/releasesCommand.js +16 -0
  207. package/dist/src/ui/commands/releasesCommand.js.map +1 -0
  208. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  209. package/dist/src/ui/commands/shellPermissionsCommand.d.ts +7 -0
  210. package/dist/src/ui/commands/shellPermissionsCommand.js +109 -0
  211. package/dist/src/ui/commands/shellPermissionsCommand.js.map +1 -0
  212. package/dist/src/ui/commands/skillCommand.d.ts +7 -0
  213. package/dist/src/ui/commands/skillCommand.js +240 -0
  214. package/dist/src/ui/commands/skillCommand.js.map +1 -0
  215. package/dist/src/ui/commands/statsCommand.js +243 -1
  216. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  217. package/dist/src/ui/commands/tasksCommand.d.ts +7 -0
  218. package/dist/src/ui/commands/tasksCommand.js +535 -0
  219. package/dist/src/ui/commands/tasksCommand.js.map +1 -0
  220. package/dist/src/ui/commands/toolPermissionsCommand.d.ts +7 -0
  221. package/dist/src/ui/commands/toolPermissionsCommand.js +408 -0
  222. package/dist/src/ui/commands/toolPermissionsCommand.js.map +1 -0
  223. package/dist/src/ui/commands/types.d.ts +10 -2
  224. package/dist/src/ui/commands/types.js.map +1 -1
  225. package/dist/src/ui/commands/voiceCommand.d.ts +7 -0
  226. package/dist/src/ui/commands/voiceCommand.js +525 -0
  227. package/dist/src/ui/commands/voiceCommand.js.map +1 -0
  228. package/dist/src/ui/components/AuthDialog.d.ts +4 -2
  229. package/dist/src/ui/components/AuthDialog.js +349 -64
  230. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  231. package/dist/src/ui/components/AuthInProgress.js +3 -1
  232. package/dist/src/ui/components/AuthInProgress.js.map +1 -1
  233. package/dist/src/ui/components/ExtensionsDialog.d.ts +11 -0
  234. package/dist/src/ui/components/ExtensionsDialog.js +303 -0
  235. package/dist/src/ui/components/ExtensionsDialog.js.map +1 -0
  236. package/dist/src/ui/components/GenericProviderKeyPrompt.d.ts +24 -0
  237. package/dist/src/ui/components/GenericProviderKeyPrompt.js +99 -0
  238. package/dist/src/ui/components/GenericProviderKeyPrompt.js.map +1 -0
  239. package/dist/src/ui/components/Header.js +10 -1
  240. package/dist/src/ui/components/Header.js.map +1 -1
  241. package/dist/src/ui/components/HistoryBrowserDialog.d.ts +15 -0
  242. package/dist/src/ui/components/HistoryBrowserDialog.js +166 -0
  243. package/dist/src/ui/components/HistoryBrowserDialog.js.map +1 -0
  244. package/dist/src/ui/components/HistoryItemDisplay.js +13 -1
  245. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  246. package/dist/src/ui/components/InputPrompt.js +22 -8
  247. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  248. package/dist/src/ui/components/LoadingIndicator.d.ts +4 -0
  249. package/dist/src/ui/components/LoadingIndicator.js +16 -4
  250. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  251. package/dist/src/ui/components/LoadingIndicator.test.js +108 -16
  252. package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
  253. package/dist/src/ui/components/ModelSelectionDialog.d.ts +2 -0
  254. package/dist/src/ui/components/ModelSelectionDialog.js +33 -4
  255. package/dist/src/ui/components/ModelSelectionDialog.js.map +1 -1
  256. package/dist/src/ui/components/ModelSelectionDialog.test.js +41 -4
  257. package/dist/src/ui/components/ModelSelectionDialog.test.js.map +1 -1
  258. package/dist/src/ui/components/ReleaseNotesDialog.d.ts +23 -0
  259. package/dist/src/ui/components/ReleaseNotesDialog.js +150 -0
  260. package/dist/src/ui/components/ReleaseNotesDialog.js.map +1 -0
  261. package/dist/src/ui/components/ReleaseNotesDisplay.d.ts +18 -0
  262. package/dist/src/ui/components/ReleaseNotesDisplay.js +14 -0
  263. package/dist/src/ui/components/ReleaseNotesDisplay.js.map +1 -0
  264. package/dist/src/ui/components/SessionSummaryDisplay.d.ts +2 -0
  265. package/dist/src/ui/components/SessionSummaryDisplay.js +1 -1
  266. package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
  267. package/dist/src/ui/components/SettingsDialog.d.ts +3 -1
  268. package/dist/src/ui/components/SettingsDialog.js +17 -7
  269. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  270. package/dist/src/ui/components/ShellConfirmationDialog.d.ts +2 -0
  271. package/dist/src/ui/components/ShellConfirmationDialog.js +7 -3
  272. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  273. package/dist/src/ui/components/StatsDisplay.d.ts +2 -0
  274. package/dist/src/ui/components/StatsDisplay.js +92 -7
  275. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  276. package/dist/src/ui/components/SuggestionsDisplay.js +6 -1
  277. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  278. package/dist/src/ui/components/ThemeDialog.d.ts +3 -1
  279. package/dist/src/ui/components/ThemeDialog.js +5 -2
  280. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  281. package/dist/src/ui/components/Tips.js +1 -4
  282. package/dist/src/ui/components/Tips.js.map +1 -1
  283. package/dist/src/ui/components/TodoListDialog.d.ts +13 -0
  284. package/dist/src/ui/components/TodoListDialog.js +29 -0
  285. package/dist/src/ui/components/TodoListDialog.js.map +1 -0
  286. package/dist/src/ui/components/TodoListDialog.test.d.ts +6 -0
  287. package/dist/src/ui/components/TodoListDialog.test.js +60 -0
  288. package/dist/src/ui/components/TodoListDialog.test.js.map +1 -0
  289. package/dist/src/ui/components/VoiceConfigDialog.d.ts +17 -0
  290. package/dist/src/ui/components/VoiceConfigDialog.js +47 -0
  291. package/dist/src/ui/components/VoiceConfigDialog.js.map +1 -0
  292. package/dist/src/ui/components/messages/GeminiMessage.js +4 -0
  293. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
  294. package/dist/src/ui/components/messages/GeminiMessageContent.js +4 -0
  295. package/dist/src/ui/components/messages/GeminiMessageContent.js.map +1 -1
  296. package/dist/src/ui/components/messages/ToolConfirmationMessage.d.ts +2 -0
  297. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +96 -9
  298. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  299. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +3 -3
  300. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  301. package/dist/src/ui/components/messages/ToolMessage.js +1 -1
  302. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  303. package/dist/src/ui/components/messages/ToolMessage.test.js +9 -12
  304. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  305. package/dist/src/ui/components/multiagent/MultiAgentConfigDialog.d.ts +25 -0
  306. package/dist/src/ui/components/multiagent/MultiAgentConfigDialog.js +179 -0
  307. package/dist/src/ui/components/multiagent/MultiAgentConfigDialog.js.map +1 -0
  308. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +3 -1
  309. package/dist/src/ui/components/shared/RadioButtonSelect.js +57 -18
  310. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  311. package/dist/src/ui/components/shared/TextInput.d.ts +2 -1
  312. package/dist/src/ui/components/shared/TextInput.js +5 -2
  313. package/dist/src/ui/components/shared/TextInput.js.map +1 -1
  314. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js +3 -3
  315. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js.map +1 -1
  316. package/dist/src/ui/constants.d.ts +3 -3
  317. package/dist/src/ui/constants.js +3 -3
  318. package/dist/src/ui/constants.js.map +1 -1
  319. package/dist/src/ui/contexts/SessionContext.d.ts +6 -0
  320. package/dist/src/ui/contexts/SessionContext.js +24 -2
  321. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  322. package/dist/src/ui/hooks/atCommandProcessor.js +139 -57
  323. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  324. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -1
  325. package/dist/src/ui/hooks/slashCommandProcessor.js +189 -17
  326. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  327. package/dist/src/ui/hooks/useAdaptiveStream.d.ts +42 -0
  328. package/dist/src/ui/hooks/useAdaptiveStream.js +31 -0
  329. package/dist/src/ui/hooks/useAdaptiveStream.js.map +1 -0
  330. package/dist/src/ui/hooks/useAtCompletion.js +20 -4
  331. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  332. package/dist/src/ui/hooks/useAuthCommand.d.ts +2 -2
  333. package/dist/src/ui/hooks/useAuthCommand.js +99 -5
  334. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
  335. package/dist/src/ui/hooks/useCommandCompletion.js +14 -10
  336. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  337. package/dist/src/ui/hooks/useDialogClose.d.ts +10 -0
  338. package/dist/src/ui/hooks/useDialogClose.js +25 -0
  339. package/dist/src/ui/hooks/useDialogClose.js.map +1 -1
  340. package/dist/src/ui/hooks/useDialogCloseAnimation.d.ts +22 -0
  341. package/dist/src/ui/hooks/useDialogCloseAnimation.js +68 -0
  342. package/dist/src/ui/hooks/useDialogCloseAnimation.js.map +1 -0
  343. package/dist/src/ui/hooks/useEncryptedStream.d.ts +22 -0
  344. package/dist/src/ui/hooks/useEncryptedStream.js +378 -0
  345. package/dist/src/ui/hooks/useEncryptedStream.js.map +1 -0
  346. package/dist/src/ui/hooks/useExtensionsDialog.d.ts +10 -0
  347. package/dist/src/ui/hooks/useExtensionsDialog.js +21 -0
  348. package/dist/src/ui/hooks/useExtensionsDialog.js.map +1 -0
  349. package/dist/src/ui/hooks/useGeminiStream.js +6 -2
  350. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  351. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  352. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +1 -1
  353. package/dist/src/ui/hooks/useLoadingIndicator.js +3 -2
  354. package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
  355. package/dist/src/ui/hooks/useLoadingIndicator.test.js +27 -5
  356. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  357. package/dist/src/ui/hooks/useMultiAgentConfigCommand.d.ts +10 -0
  358. package/dist/src/ui/hooks/useMultiAgentConfigCommand.js +21 -0
  359. package/dist/src/ui/hooks/useMultiAgentConfigCommand.js.map +1 -0
  360. package/dist/src/ui/hooks/useReleasesDialog.d.ts +20 -0
  361. package/dist/src/ui/hooks/useReleasesDialog.js +214 -0
  362. package/dist/src/ui/hooks/useReleasesDialog.js.map +1 -0
  363. package/dist/src/ui/hooks/useSlashCompletion.js +10 -8
  364. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  365. package/dist/src/ui/hooks/useTodoList.d.ts +17 -0
  366. package/dist/src/ui/hooks/useTodoList.js +51 -0
  367. package/dist/src/ui/hooks/useTodoList.js.map +1 -0
  368. package/dist/src/ui/keyMatchers.test.js +6 -0
  369. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  370. package/dist/src/ui/themes/blackbox-dark.js +1 -1
  371. package/dist/src/ui/themes/blackbox-dark.js.map +1 -1
  372. package/dist/src/ui/themes/blackbox-light.js +1 -1
  373. package/dist/src/ui/themes/blackbox-light.js.map +1 -1
  374. package/dist/src/ui/types.d.ts +15 -2
  375. package/dist/src/ui/types.js +1 -0
  376. package/dist/src/ui/types.js.map +1 -1
  377. package/dist/src/ui/utils/computeStats.d.ts +25 -1
  378. package/dist/src/ui/utils/computeStats.js +58 -1
  379. package/dist/src/ui/utils/computeStats.js.map +1 -1
  380. package/dist/src/ui/utils/updateCheck.js +37 -54
  381. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  382. package/dist/src/utils/backgroundUpdateCheck.d.ts +15 -0
  383. package/dist/src/utils/backgroundUpdateCheck.js +48 -0
  384. package/dist/src/utils/backgroundUpdateCheck.js.map +1 -0
  385. package/dist/src/utils/gitAutoDetect.d.ts +16 -0
  386. package/dist/src/utils/gitAutoDetect.js +45 -0
  387. package/dist/src/utils/gitAutoDetect.js.map +1 -0
  388. package/dist/src/utils/installationInfo.d.ts +1 -0
  389. package/dist/src/utils/installationInfo.js +24 -4
  390. package/dist/src/utils/installationInfo.js.map +1 -1
  391. package/dist/src/utils/preLaunchUpdateCheck.d.ts +17 -0
  392. package/dist/src/utils/preLaunchUpdateCheck.js +75 -0
  393. package/dist/src/utils/preLaunchUpdateCheck.js.map +1 -0
  394. package/dist/src/utils/version.js +12 -1
  395. package/dist/src/utils/version.js.map +1 -1
  396. package/dist/src/utils/versionStorage.d.ts +50 -0
  397. package/dist/src/utils/versionStorage.js +224 -0
  398. package/dist/src/utils/versionStorage.js.map +1 -0
  399. package/dist/src/validateNonInterActiveAuth.js +10 -3
  400. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  401. package/dist/src/virtual-extensions.d.ts +14 -0
  402. package/dist/src/virtual-extensions.js +56 -0
  403. package/dist/src/virtual-extensions.js.map +1 -0
  404. package/dist/src/zed-integration/fileSystemService.d.ts +3 -3
  405. package/dist/src/zed-integration/fileSystemService.js +5 -7
  406. package/dist/src/zed-integration/fileSystemService.js.map +1 -1
  407. package/dist/src/zed-integration/zedIntegration.js +62 -17
  408. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  409. package/dist/tsconfig.tsbuildinfo +1 -1
  410. package/package.json +13 -3
  411. package/dist/src/utils/handleAutoUpdate.d.ts +0 -11
  412. package/dist/src/utils/handleAutoUpdate.js +0 -102
  413. package/dist/src/utils/handleAutoUpdate.js.map +0 -1
  414. package/dist/src/utils/updateEventEmitter.d.ts +0 -11
  415. package/dist/src/utils/updateEventEmitter.js +0 -12
  416. package/dist/src/utils/updateEventEmitter.js.map +0 -1
  417. package/dist/src/zed-integration/acp.d.ts +0 -63
  418. package/dist/src/zed-integration/acp.js +0 -226
  419. package/dist/src/zed-integration/acp.js.map +0 -1
  420. package/dist/src/zed-integration/schema.d.ts +0 -11782
  421. package/dist/src/zed-integration/schema.js +0 -311
  422. package/dist/src/zed-integration/schema.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingIndicator.test.js","sourceRoot":"","sources":["../../../../src/ui/components/LoadingIndicator.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LoadingIndicator.test.js","sourceRoot":"","sources":["../../../../src/ui/components/LoadingIndicator.test.tsx"],"names":[],"mappings":"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"}
@@ -10,5 +10,7 @@ export interface ModelSelectionDialogProps {
10
10
  currentModel: string;
11
11
  onSelect: (modelId: string) => void;
12
12
  onCancel: () => void;
13
+ /** Whether the dialog is in closing animation state */
14
+ isClosing?: boolean;
13
15
  }
14
16
  export declare const ModelSelectionDialog: React.FC<ModelSelectionDialogProps>;
@@ -1,15 +1,27 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect } from 'react';
2
3
  import { Box, Text } from 'ink';
3
4
  import { Colors } from '../colors.js';
4
5
  import { RadioButtonSelect, } from './shared/RadioButtonSelect.js';
6
+ import { TextInput } from './shared/TextInput.js';
5
7
  import { useKeypress } from '../hooks/useKeypress.js';
6
- export const ModelSelectionDialog = ({ availableModels, currentModel, onSelect, onCancel, }) => {
8
+ export const ModelSelectionDialog = ({ availableModels, currentModel, onSelect, onCancel, isClosing = false, }) => {
9
+ const [modelSearch, setModelSearch] = useState('');
10
+ // Reset search when dialog is opened (when availableModels changes from empty to populated)
11
+ useEffect(() => {
12
+ if (availableModels.length > 0) {
13
+ setModelSearch('');
14
+ }
15
+ }, [availableModels.length]);
7
16
  useKeypress((key) => {
8
17
  if (key.name === 'escape') {
9
18
  onCancel();
10
19
  }
11
20
  }, { isActive: true });
12
- const options = availableModels.map((model) => {
21
+ // Filter models based on search
22
+ const filteredModels = availableModels.filter((model) => model.label.toLowerCase().includes(modelSearch.toLowerCase()) ||
23
+ model.id.toLowerCase().includes(modelSearch.toLowerCase()));
24
+ const options = filteredModels.map((model) => {
13
25
  const visionIndicator = model.isVision ? ' [Vision]' : '';
14
26
  const currentIndicator = model.id === currentModel ? ' (current)' : '';
15
27
  return {
@@ -17,10 +29,27 @@ export const ModelSelectionDialog = ({ availableModels, currentModel, onSelect,
17
29
  value: model.id,
18
30
  };
19
31
  });
20
- const initialIndex = Math.max(0, availableModels.findIndex((model) => model.id === currentModel));
32
+ const initialIndex = Math.max(0, filteredModels.findIndex((model) => model.id === currentModel));
21
33
  const handleSelect = (modelId) => {
22
34
  onSelect(modelId);
23
35
  };
24
- return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: Colors.AccentBlue, padding: 1, width: "100%", marginLeft: 1, children: [_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { bold: true, children: "Select Model" }), _jsx(Text, { children: "Choose a model for this session:" })] }), _jsx(Box, { marginBottom: 1, children: _jsx(RadioButtonSelect, { items: options, initialIndex: initialIndex, onSelect: handleSelect, isFocused: true }) }), _jsx(Box, { children: _jsx(Text, { color: Colors.Gray, children: "Press Enter to select, Esc to cancel" }) })] }));
36
+ const handleModelSearchSubmit = () => {
37
+ // Only submit if there are no filtered results (custom model entry)
38
+ // If there are filtered results, the RadioButtonSelect should handle selection
39
+ if (filteredModels.length > 0) {
40
+ return; // Don't submit, let RadioButtonSelect handle it
41
+ }
42
+ if (!modelSearch.trim()) {
43
+ return; // Don't submit empty search
44
+ }
45
+ // Allow custom model entry
46
+ onSelect(modelSearch.trim());
47
+ };
48
+ // Use dimmed colors when closing
49
+ const borderColor = isClosing ? Colors.Gray : Colors.AccentBlue;
50
+ const textColor = isClosing ? Colors.Gray : Colors.Foreground;
51
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: borderColor, padding: 1, width: "100%", marginLeft: 1, children: [_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { bold: !isClosing, color: textColor, children: "Select Model" }), _jsx(Text, { color: textColor, children: "Search for a model or enter a custom model name:" })] }), _jsx(Box, { marginBottom: 1, children: _jsx(TextInput, { value: modelSearch, onChange: setModelSearch, onSubmit: handleModelSearchSubmit, placeholder: "Search models or enter custom model name...", isActive: true }) }), filteredModels.length > 0 && (_jsx(Box, { marginBottom: 1, children: _jsx(RadioButtonSelect, { items: options, initialIndex: initialIndex, onSelect: handleSelect, isFocused: true, maxItemsToShow: 8, showScrollArrows: true, showNumbers: false }) })), modelSearch && filteredModels.length === 0 && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: Colors.Gray, children: ["No matching models. Press Enter to use ", modelSearch, " as custom model."] }) })), _jsx(Box, { children: _jsx(Text, { color: Colors.Gray, children: filteredModels.length > 0
52
+ ? 'Type to filter, use ↑↓ to navigate, Enter to select, Esc to cancel'
53
+ : 'Type model name and press Enter to use custom model, Esc to cancel' }) })] }));
25
54
  };
26
55
  //# sourceMappingURL=ModelSelectionDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelSelectionDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/ModelSelectionDialog.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,iBAAiB,GAElB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAUtD,MAAM,CAAC,MAAM,oBAAoB,GAAwC,CAAC,EACxE,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,QAAQ,GACT,EAAE,EAAE;IACH,WAAW,CACT,CAAC,GAAG,EAAE,EAAE;QACN,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB,CAAC;IAEF,MAAM,OAAO,GAAmC,eAAe,CAAC,GAAG,CACjE,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,gBAAgB,GAAG,KAAK,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO;YACL,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,eAAe,GAAG,gBAAgB,EAAE;YAC5D,KAAK,EAAE,KAAK,CAAC,EAAE;SAChB,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,CAAC,EACD,eAAe,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,CAAC,CAChE,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE;QACvC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,MAAM,CAAC,UAAU,EAC9B,OAAO,EAAE,CAAC,EACV,KAAK,EAAC,MAAM,EACZ,UAAU,EAAE,CAAC,aAEb,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,KAAC,IAAI,IAAC,IAAI,mCAAoB,EAC9B,KAAC,IAAI,mDAAwC,IACzC,EAEN,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,iBAAiB,IAChB,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,YAAY,EACtB,SAAS,SACT,GACE,EAEN,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,qDAA6C,GACjE,IACF,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ModelSelectionDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/ModelSelectionDialog.tsx"],"names":[],"mappings":"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"}
@@ -18,6 +18,11 @@ const mockRadioButtonSelect = vi.hoisted(() => vi.fn());
18
18
  vi.mock('./shared/RadioButtonSelect.js', () => ({
19
19
  RadioButtonSelect: mockRadioButtonSelect,
20
20
  }));
21
+ // Mock the TextInput component
22
+ const mockTextInput = vi.hoisted(() => vi.fn());
23
+ vi.mock('./shared/TextInput.js', () => ({
24
+ TextInput: mockTextInput,
25
+ }));
21
26
  describe('ModelSelectionDialog', () => {
22
27
  const mockAvailableModels = [
23
28
  { id: 'blackbox3-coder-plus', label: 'blackbox3-coder-plus' },
@@ -30,6 +35,8 @@ describe('ModelSelectionDialog', () => {
30
35
  vi.clearAllMocks();
31
36
  // Mock RadioButtonSelect to return a simple div
32
37
  mockRadioButtonSelect.mockReturnValue(React.createElement('div', { 'data-testid': 'radio-select' }));
38
+ // Mock TextInput to return a simple div
39
+ mockTextInput.mockReturnValue(React.createElement('div', { 'data-testid': 'text-input' }));
33
40
  });
34
41
  it('should setup escape key handler to call onCancel', () => {
35
42
  render(_jsx(ModelSelectionDialog, { availableModels: mockAvailableModels, currentModel: "blackbox3-coder-plus", onSelect: mockOnSelect, onCancel: mockOnCancel }));
@@ -47,6 +54,13 @@ describe('ModelSelectionDialog', () => {
47
54
  keypressHandler({ name: 'enter' });
48
55
  expect(mockOnCancel).not.toHaveBeenCalled();
49
56
  });
57
+ it('should render TextInput component for search', () => {
58
+ render(_jsx(ModelSelectionDialog, { availableModels: mockAvailableModels, currentModel: "blackbox3-coder-plus", onSelect: mockOnSelect, onCancel: mockOnCancel }));
59
+ expect(mockTextInput).toHaveBeenCalled();
60
+ const textInputProps = mockTextInput.mock.calls[0][0];
61
+ expect(textInputProps.placeholder).toBe('Search models or enter custom model name...');
62
+ expect(textInputProps.isActive).toBe(true);
63
+ });
50
64
  it('should set correct initial index for current model', () => {
51
65
  render(_jsx(ModelSelectionDialog, { availableModels: mockAvailableModels, currentModel: "blackbox-vl-max-latest", onSelect: mockOnSelect, onCancel: mockOnCancel }));
52
66
  const callArgs = mockRadioButtonSelect.mock.calls[0][0];
@@ -68,9 +82,8 @@ describe('ModelSelectionDialog', () => {
68
82
  });
69
83
  it('should handle empty models array', () => {
70
84
  render(_jsx(ModelSelectionDialog, { availableModels: [], currentModel: "", onSelect: mockOnSelect, onCancel: mockOnCancel }));
71
- const callArgs = mockRadioButtonSelect.mock.calls[0][0];
72
- expect(callArgs.items).toEqual([]);
73
- expect(callArgs.initialIndex).toBe(0);
85
+ // RadioButtonSelect should not be rendered when there are no models
86
+ expect(mockRadioButtonSelect).not.toHaveBeenCalled();
74
87
  });
75
88
  it('should create correct option items with proper labels', () => {
76
89
  render(_jsx(ModelSelectionDialog, { availableModels: mockAvailableModels, currentModel: "blackbox3-coder-plus", onSelect: mockOnSelect, onCancel: mockOnCancel }));
@@ -103,10 +116,12 @@ describe('ModelSelectionDialog', () => {
103
116
  const currentModelItem = callArgs.items.find((item) => item.value === 'blackbox-vl-max-latest');
104
117
  expect(currentModelItem?.label).toContain('(current)');
105
118
  });
106
- it('should pass isFocused prop to RadioButtonSelect', () => {
119
+ it('should pass isFocused, maxItemsToShow, and showScrollArrows props to RadioButtonSelect', () => {
107
120
  render(_jsx(ModelSelectionDialog, { availableModels: mockAvailableModels, currentModel: "blackbox3-coder-plus", onSelect: mockOnSelect, onCancel: mockOnCancel }));
108
121
  const callArgs = mockRadioButtonSelect.mock.calls[0][0];
109
122
  expect(callArgs.isFocused).toBe(true);
123
+ expect(callArgs.maxItemsToShow).toBe(8);
124
+ expect(callArgs.showScrollArrows).toBe(true);
110
125
  });
111
126
  it('should handle multiple onSelect calls correctly', () => {
112
127
  render(_jsx(ModelSelectionDialog, { availableModels: mockAvailableModels, currentModel: "blackbox3-coder-plus", onSelect: mockOnSelect, onCancel: mockOnCancel }));
@@ -120,5 +135,27 @@ describe('ModelSelectionDialog', () => {
120
135
  expect(mockOnSelect).toHaveBeenNthCalledWith(2, 'blackbox-vl-max-latest');
121
136
  expect(mockOnSelect).toHaveBeenNthCalledWith(3, 'gpt-4');
122
137
  });
138
+ it('should filter models based on search input', () => {
139
+ const { rerender } = render(_jsx(ModelSelectionDialog, { availableModels: mockAvailableModels, currentModel: "blackbox3-coder-plus", onSelect: mockOnSelect, onCancel: mockOnCancel }));
140
+ // Get the onChange handler from TextInput
141
+ const textInputProps = mockTextInput.mock.calls[0][0];
142
+ const onChangeHandler = textInputProps.onChange;
143
+ // Simulate typing "gpt" in the search box
144
+ onChangeHandler('gpt');
145
+ // Re-render to trigger the filter
146
+ rerender(_jsx(ModelSelectionDialog, { availableModels: mockAvailableModels, currentModel: "blackbox3-coder-plus", onSelect: mockOnSelect, onCancel: mockOnCancel }));
147
+ // The RadioButtonSelect should now only show filtered items
148
+ // Note: In the actual implementation, the filter happens in the component
149
+ // This test verifies the structure is correct
150
+ expect(mockRadioButtonSelect).toHaveBeenCalled();
151
+ });
152
+ it('should allow custom model entry when search has no results', () => {
153
+ render(_jsx(ModelSelectionDialog, { availableModels: mockAvailableModels, currentModel: "blackbox3-coder-plus", onSelect: mockOnSelect, onCancel: mockOnCancel }));
154
+ // Get the onSubmit handler from TextInput
155
+ const textInputProps = mockTextInput.mock.calls[0][0];
156
+ const onSubmitHandler = textInputProps.onSubmit;
157
+ // The onSubmit handler should be defined
158
+ expect(typeof onSubmitHandler).toBe('function');
159
+ });
123
160
  });
124
161
  //# sourceMappingURL=ModelSelectionDialog.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelSelectionDialog.test.js","sourceRoot":"","sources":["../../../../src/ui/components/ModelSelectionDialog.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelSelectionDialog.test.js","sourceRoot":"","sources":["../../../../src/ui/components/ModelSelectionDialog.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type React from 'react';
7
+ interface ReleaseVersion {
8
+ version: string;
9
+ publishedAt: string;
10
+ isLatest: boolean;
11
+ briefNotes: string;
12
+ detailedChanges: string[];
13
+ }
14
+ interface ReleaseNotesDialogProps {
15
+ versions: ReleaseVersion[];
16
+ onClose: () => void;
17
+ availableTerminalHeight?: number;
18
+ terminalWidth?: number;
19
+ isClosing?: boolean;
20
+ isLoading?: boolean;
21
+ }
22
+ export declare function ReleaseNotesDialog({ versions, onClose, availableTerminalHeight: rawAvailableTerminalHeight, terminalWidth: _terminalWidth, isClosing, isLoading, }: ReleaseNotesDialogProps): React.JSX.Element;
23
+ export {};
@@ -0,0 +1,150 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useState, useMemo } from 'react';
3
+ import { Box, Text } from 'ink';
4
+ import Spinner from 'ink-spinner';
5
+ import { Colors } from '../colors.js';
6
+ import { RadioButtonSelect } from './shared/RadioButtonSelect.js';
7
+ import { useKeypress } from '../hooks/useKeypress.js';
8
+ export function ReleaseNotesDialog({ versions, onClose, availableTerminalHeight: rawAvailableTerminalHeight, terminalWidth: _terminalWidth, isClosing = false, isLoading = false, }) {
9
+ // Track the currently highlighted version
10
+ const [highlightedVersionIndex, setHighlightedVersionIndex] = useState(0);
11
+ // Track which pane has focus: 'versions' or 'details'
12
+ const [focusedPane, setFocusedPane] = useState('versions');
13
+ // Track scroll position in details pane
14
+ const [detailsScrollOffset, setDetailsScrollOffset] = useState(0);
15
+ // Get the currently highlighted version - MUST be defined before useKeypress
16
+ const highlightedVersion = versions[highlightedVersionIndex];
17
+ // Generate version items for the selector
18
+ const versionItems = versions.map((version) => ({
19
+ label: `${version.isLatest ? '● ' : '○ '}${version.version}${version.isLatest ? ' (Latest)' : ''}`,
20
+ value: version.version,
21
+ }));
22
+ const handleVersionHighlight = (versionValue) => {
23
+ const index = versions.findIndex((v) => v.version === versionValue);
24
+ if (index >= 0) {
25
+ setHighlightedVersionIndex(index);
26
+ // Reset scroll when changing versions
27
+ setDetailsScrollOffset(0);
28
+ }
29
+ };
30
+ const handleVersionSelect = useCallback(() => {
31
+ // Just close the dialog on selection
32
+ onClose();
33
+ }, [onClose]);
34
+ // Constants for layout calculations
35
+ const TAB_TO_SELECT_HEIGHT = 2;
36
+ const PREVIEW_PANE_FIXED_VERTICAL_SPACE = 6; // Title, borders, margins
37
+ const SCROLL_INDICATOR_LINES = 2; // Space for up/down scroll indicators
38
+ // Calculate available height consistently
39
+ const availableTerminalHeight = useMemo(() => ((rawAvailableTerminalHeight ?? Number.MAX_SAFE_INTEGER) - 2 - TAB_TO_SELECT_HEIGHT), [rawAvailableTerminalHeight]);
40
+ const includePadding = availableTerminalHeight > 20;
41
+ const isCompactMode = availableTerminalHeight < 20;
42
+ // Calculate available height for the details pane content
43
+ const availableHeightForDetails = useMemo(() => Math.max(5, // Minimum height to show at least some content
44
+ availableTerminalHeight -
45
+ PREVIEW_PANE_FIXED_VERTICAL_SPACE -
46
+ (includePadding ? 2 : 0) * 2), [availableTerminalHeight, includePadding]);
47
+ // Calculate max visible lines (accounting for scroll indicators)
48
+ const maxVisibleLines = useMemo(() => Math.max(3, availableHeightForDetails - SCROLL_INDICATOR_LINES), [availableHeightForDetails]);
49
+ // Build the details content as an array of lines
50
+ const detailsLines = useMemo(() => {
51
+ if (!highlightedVersion)
52
+ return [];
53
+ const lines = [];
54
+ // Version header
55
+ lines.push(`Version ${highlightedVersion.version}${highlightedVersion.isLatest ? ' (Latest)' : ''}`);
56
+ lines.push(''); // Empty line
57
+ // Publication date
58
+ lines.push(`Released: ${new Date(highlightedVersion.publishedAt).toLocaleDateString('en-US', {
59
+ year: 'numeric',
60
+ month: 'long',
61
+ day: 'numeric',
62
+ })}`);
63
+ lines.push(''); // Empty line
64
+ // Brief notes - split long lines
65
+ if (highlightedVersion.briefNotes) {
66
+ const briefLines = highlightedVersion.briefNotes.split('\n');
67
+ lines.push(...briefLines);
68
+ lines.push(''); // Empty line
69
+ }
70
+ // Detailed changes - split long lines
71
+ if (highlightedVersion.detailedChanges.length > 0) {
72
+ lines.push('Changes:');
73
+ for (const change of highlightedVersion.detailedChanges) {
74
+ // Split long change descriptions into multiple lines if needed
75
+ const changeLines = change.split('\n');
76
+ for (const changeLine of changeLines) {
77
+ lines.push(` • ${changeLine}`);
78
+ }
79
+ }
80
+ }
81
+ else {
82
+ lines.push('No detailed changelog available for this version.');
83
+ }
84
+ return lines;
85
+ }, [highlightedVersion]);
86
+ // Calculate max scroll offset based on actual content
87
+ const maxScrollOffset = useMemo(() => Math.max(0, detailsLines.length - maxVisibleLines), [detailsLines.length, maxVisibleLines]);
88
+ // Clamp scroll offset to valid range
89
+ const clampedScrollOffset = useMemo(() => Math.min(detailsScrollOffset, maxScrollOffset), [detailsScrollOffset, maxScrollOffset]);
90
+ // Calculate if we can scroll
91
+ const canScrollUp = clampedScrollOffset > 0;
92
+ const canScrollDown = clampedScrollOffset < maxScrollOffset;
93
+ // Handle keypress for scrolling - uses detailsLines.length for accurate bounds
94
+ useKeypress(useCallback((key) => {
95
+ if (key.name === 'escape' || key.name === 'q') {
96
+ onClose();
97
+ }
98
+ else if (key.name === 'tab') {
99
+ // Toggle focus between panes
100
+ setFocusedPane(prev => prev === 'versions' ? 'details' : 'versions');
101
+ }
102
+ else if (focusedPane === 'details') {
103
+ // Handle scrolling in details pane using actual content length
104
+ if (key.name === 'up' || key.name === 'k') {
105
+ setDetailsScrollOffset(prev => Math.max(0, prev - 1));
106
+ }
107
+ else if (key.name === 'down' || key.name === 'j') {
108
+ setDetailsScrollOffset(prev => Math.min(maxScrollOffset, prev + 1));
109
+ }
110
+ else if (key.name === 'pageup') {
111
+ setDetailsScrollOffset(prev => Math.max(0, prev - 10));
112
+ }
113
+ else if (key.name === 'pagedown') {
114
+ setDetailsScrollOffset(prev => Math.min(maxScrollOffset, prev + 10));
115
+ }
116
+ }
117
+ }, [onClose, focusedPane, maxScrollOffset]), { isActive: true });
118
+ // Calculate visible lines based on scroll offset
119
+ const visibleDetailsLines = useMemo(() => detailsLines.slice(clampedScrollOffset, clampedScrollOffset + maxVisibleLines), [detailsLines, clampedScrollOffset, maxVisibleLines]);
120
+ // Use dimmed colors when closing
121
+ const borderColor = isClosing ? Colors.Gray : Colors.Gray;
122
+ const textColor = isClosing ? Colors.Gray : Colors.Foreground;
123
+ return (_jsxs(Box, { borderStyle: "round", borderColor: borderColor, flexDirection: "column", paddingTop: includePadding ? 1 : 0, paddingBottom: includePadding ? 1 : 0, paddingLeft: 1, paddingRight: 1, width: "100%", children: [isLoading ? (_jsxs(Box, { flexDirection: "column", alignItems: "center", justifyContent: "center", paddingY: 2, children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: Colors.AccentCyan, children: [_jsx(Spinner, { type: "dots" }), ' ', "Loading release notes..."] }) }), _jsx(Text, { color: Colors.Gray, children: "Fetching data from API and parsing CHANGELOG" })] })) : (_jsxs(Box, { flexDirection: "row", children: [_jsxs(Box, { flexDirection: "column", width: isCompactMode ? "35%" : "40%", paddingRight: isCompactMode ? 1 : 2, children: [_jsxs(Text, { bold: !isClosing, wrap: "truncate", color: textColor, children: [focusedPane === 'versions' ? '> ' : ' ', "Select Version"] }), _jsx(RadioButtonSelect, { items: versionItems, initialIndex: 0, onSelect: handleVersionSelect, onHighlight: handleVersionHighlight, isFocused: focusedPane === 'versions', maxItemsToShow: Math.min(versions.length, 15), showScrollArrows: versions.length > 15, showNumbers: true, isDimmed: focusedPane !== 'versions' })] }), _jsxs(Box, { flexDirection: "column", width: isCompactMode ? "65%" : "60%", paddingLeft: isCompactMode ? 1 : 2, children: [_jsxs(Text, { bold: !isClosing, color: textColor, wrap: "truncate", children: [focusedPane === 'details' ? '> ' : ' ', "Release Details"] }), _jsx(Box, { borderStyle: "single", borderColor: focusedPane === 'details' ? Colors.AccentCyan : Colors.Gray, paddingTop: includePadding ? 1 : 0, paddingBottom: includePadding ? 1 : 0, paddingLeft: 1, paddingRight: 1, flexDirection: "column", height: availableHeightForDetails, overflow: "hidden", children: highlightedVersion && (_jsxs(Box, { flexDirection: "column", height: "100%", children: [_jsx(Box, { height: 1, flexShrink: 0, children: canScrollUp ? (_jsxs(Text, { color: focusedPane === 'details' ? Colors.AccentCyan : Colors.Gray, wrap: "truncate", children: ["\u25B2 More above ", focusedPane === 'details' ? '(↑/k to scroll)' : '(Tab to scroll)'] })) : (_jsx(Text, { children: " " })) }), _jsx(Box, { flexDirection: "column", flexGrow: 1, overflow: "hidden", children: visibleDetailsLines.map((line, idx) => {
124
+ let color = Colors.Foreground;
125
+ let bold = false;
126
+ // Style based on content
127
+ if (line.startsWith('Version ')) {
128
+ color = highlightedVersion.isLatest ? Colors.AccentGreen : Colors.AccentCyan;
129
+ bold = true;
130
+ }
131
+ else if (line.startsWith('Released:')) {
132
+ color = Colors.Gray;
133
+ }
134
+ else if (line === 'Changes:') {
135
+ color = Colors.AccentBlue;
136
+ bold = true;
137
+ }
138
+ else if (line.startsWith(' •')) {
139
+ color = Colors.Foreground;
140
+ }
141
+ else if (line.includes('No detailed changelog')) {
142
+ color = Colors.Gray;
143
+ }
144
+ else if (line.trim() !== '') {
145
+ color = Colors.LightBlue;
146
+ }
147
+ return (_jsx(Box, { height: 1, flexShrink: 0, children: _jsx(Text, { color: color, bold: bold, wrap: "truncate", children: line || ' ' }) }, idx));
148
+ }) }), _jsx(Box, { height: 1, flexShrink: 0, children: canScrollDown ? (_jsxs(Text, { color: focusedPane === 'details' ? Colors.AccentCyan : Colors.Gray, wrap: "truncate", children: ["\u25BC More below ", focusedPane === 'details' ? '(↓/j to scroll)' : '(Tab to scroll)'] })) : (_jsx(Text, { children: " " })) })] })) })] })] })), !isLoading && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: Colors.Gray, wrap: "wrap", children: "(Tab to switch panes, \u2191\u2193/j/k to navigate/scroll, Enter to close, Esc/Q to exit)" }) }))] }));
149
+ }
150
+ //# sourceMappingURL=ReleaseNotesDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReleaseNotesDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/ReleaseNotesDialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type React from 'react';
7
+ interface ReleaseVersion {
8
+ version: string;
9
+ publishedAt: string;
10
+ isLatest: boolean;
11
+ briefNotes: string;
12
+ detailedChanges: string[];
13
+ }
14
+ interface ReleaseNotesDisplayProps {
15
+ versions: ReleaseVersion[];
16
+ }
17
+ export declare const ReleaseNotesDisplay: React.FC<ReleaseNotesDisplayProps>;
18
+ export {};
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { Colors } from '../colors.js';
4
+ export const ReleaseNotesDisplay = ({ versions, }) => {
5
+ if (versions.length === 0) {
6
+ return (_jsx(Box, { flexDirection: "column", paddingY: 1, children: _jsx(Text, { color: Colors.AccentYellow, children: "No release information available at this time." }) }));
7
+ }
8
+ return (_jsxs(Box, { flexDirection: "column", paddingY: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: Colors.AccentBlue, children: "\u2501\u2501\u2501 Blackbox CLI v2 Release Notes \u2501\u2501\u2501" }) }), versions.map((version, index) => (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { marginBottom: 0, children: [_jsxs(Text, { bold: true, color: version.isLatest ? Colors.AccentGreen : Colors.AccentCyan, children: [version.isLatest ? '● ' : '○ ', "Version ", version.version, version.isLatest ? ' (Latest)' : ''] }), _jsx(Text, { dimColor: true, children: " - " }), _jsx(Text, { dimColor: true, children: new Date(version.publishedAt).toLocaleDateString('en-US', {
9
+ year: 'numeric',
10
+ month: 'short',
11
+ day: 'numeric',
12
+ }) })] }), version.briefNotes && (_jsx(Box, { marginLeft: 2, children: _jsx(Text, { color: Colors.LightBlue, children: version.briefNotes }) })), version.detailedChanges.length > 0 && (_jsxs(Box, { flexDirection: "column", marginLeft: 2, marginTop: 0, children: [version.detailedChanges.slice(0, 5).map((change, idx) => (_jsx(Box, { children: _jsxs(Text, { color: Colors.Foreground, children: [" \u2022 ", change] }) }, idx))), version.detailedChanges.length > 5 && (_jsx(Box, { marginTop: 0, children: _jsxs(Text, { dimColor: true, children: ["... and ", version.detailedChanges.length - 5, " more changes"] }) }))] })), index < versions.length - 1 && (_jsx(Box, { marginTop: 0, children: _jsx(Text, { dimColor: true, children: '─'.repeat(60) }) }))] }, version.version))), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "For complete release history, visit: https://github.com/blackbox-ai/blackbox-cli" }) })] }));
13
+ };
14
+ //# sourceMappingURL=ReleaseNotesDisplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReleaseNotesDisplay.js","sourceRoot":"","sources":["../../../../src/ui/components/ReleaseNotesDisplay.tsx"],"names":[],"mappings":"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"}
@@ -4,8 +4,10 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import type React from 'react';
7
+ import type { Config } from '@blackbox_ai/blackbox-cli-core';
7
8
  interface SessionSummaryDisplayProps {
8
9
  duration: string;
10
+ config?: Config;
9
11
  }
10
12
  export declare const SessionSummaryDisplay: React.FC<SessionSummaryDisplayProps>;
11
13
  export {};
@@ -1,4 +1,4 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { StatsDisplay } from './StatsDisplay.js';
3
- export const SessionSummaryDisplay = ({ duration, }) => (_jsx(StatsDisplay, { title: "Agent powering down. Goodbye!", duration: duration }));
3
+ export const SessionSummaryDisplay = ({ duration, config, }) => (_jsx(StatsDisplay, { title: "Agent powering down. Goodbye!", duration: duration, config: config }));
4
4
  //# sourceMappingURL=SessionSummaryDisplay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SessionSummaryDisplay.js","sourceRoot":"","sources":["../../../../src/ui/components/SessionSummaryDisplay.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMjD,MAAM,CAAC,MAAM,qBAAqB,GAAyC,CAAC,EAC1E,QAAQ,GACT,EAAE,EAAE,CAAC,CACJ,KAAC,YAAY,IAAC,KAAK,EAAC,+BAA+B,EAAC,QAAQ,EAAE,QAAQ,GAAI,CAC3E,CAAC"}
1
+ {"version":3,"file":"SessionSummaryDisplay.js","sourceRoot":"","sources":["../../../../src/ui/components/SessionSummaryDisplay.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQjD,MAAM,CAAC,MAAM,qBAAqB,GAAyC,CAAC,EAC1E,QAAQ,EACR,MAAM,GACP,EAAE,EAAE,CAAC,CACJ,KAAC,YAAY,IACX,KAAK,EAAC,+BAA+B,EACrC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,GACd,CACH,CAAC"}
@@ -10,6 +10,8 @@ interface SettingsDialogProps {
10
10
  settings: LoadedSettings;
11
11
  onSelect: (settingName: string | undefined, scope: SettingScope) => void;
12
12
  onRestartRequest?: () => void;
13
+ /** Whether the dialog is in closing animation state */
14
+ isClosing?: boolean;
13
15
  }
14
- export declare function SettingsDialog({ settings, onSelect, onRestartRequest, }: SettingsDialogProps): React.JSX.Element;
16
+ export declare function SettingsDialog({ settings, onSelect, onRestartRequest, isClosing, }: SettingsDialogProps): React.JSX.Element;
15
17
  export {};
@@ -16,7 +16,7 @@ import { useKeypress } from '../hooks/useKeypress.js';
16
16
  import chalk from 'chalk';
17
17
  import { cpSlice, cpLen, stripUnsafeCharacters } from '../utils/textUtils.js';
18
18
  const maxItemsToShow = 8;
19
- export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
19
+ export function SettingsDialog({ settings, onSelect, onRestartRequest, isClosing = false, }) {
20
20
  // Get vim mode context to sync vim mode changes
21
21
  const { vimEnabled, toggleVimEnabled } = useVimMode();
22
22
  // Focus state: 'settings' or 'scope'
@@ -484,7 +484,11 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
484
484
  }
485
485
  }
486
486
  }, { isActive: true });
487
- return (_jsx(Box, { borderStyle: "round", borderColor: Colors.Gray, flexDirection: "row", padding: 1, width: "100%", height: "100%", children: _jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsx(Text, { bold: true, color: Colors.AccentBlue, children: "Settings" }), _jsx(Box, { height: 1 }), showScrollUp && _jsx(Text, { color: Colors.Gray, children: "\u25B2" }), visibleItems.map((item, idx) => {
487
+ // Use dimmed colors when closing
488
+ const borderColor = isClosing ? Colors.Gray : Colors.Gray;
489
+ const textColor = isClosing ? Colors.Gray : Colors.Foreground;
490
+ const accentTextColor = isClosing ? Colors.Gray : Colors.AccentBlue;
491
+ return (_jsx(Box, { borderStyle: "round", borderColor: borderColor, flexDirection: "row", padding: 1, width: "100%", height: "100%", children: _jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsx(Text, { bold: !isClosing, color: accentTextColor, children: "Settings" }), _jsx(Box, { height: 1 }), showScrollUp && _jsx(Text, { color: Colors.Gray, children: "\u25B2" }), visibleItems.map((item, idx) => {
488
492
  const isActive = focusSection === 'settings' &&
489
493
  activeSettingIndex === idx + scrollOffset;
490
494
  const scopeSettings = settings.forScope(selectedScope).settings;
@@ -540,11 +544,17 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
540
544
  const shouldBeGreyedOut = isDefaultValue(item.value, scopeSettings);
541
545
  // Generate scope message for this setting
542
546
  const scopeMessage = getScopeMessageForSetting(item.value, selectedScope, settings);
543
- return (_jsxs(React.Fragment, { children: [_jsxs(Box, { flexDirection: "row", alignItems: "center", children: [_jsx(Box, { minWidth: 2, flexShrink: 0, children: _jsx(Text, { color: isActive ? Colors.AccentGreen : Colors.Gray, children: isActive ? '●' : '' }) }), _jsx(Box, { minWidth: 50, children: _jsxs(Text, { color: isActive ? Colors.AccentGreen : Colors.Foreground, children: [item.label, scopeMessage && (_jsxs(Text, { color: Colors.Gray, children: [" ", scopeMessage] }))] }) }), _jsx(Box, { minWidth: 3 }), _jsx(Text, { color: isActive
544
- ? Colors.AccentGreen
545
- : shouldBeGreyedOut
547
+ return (_jsxs(React.Fragment, { children: [_jsxs(Box, { flexDirection: "row", alignItems: "center", children: [_jsx(Box, { minWidth: 2, flexShrink: 0, children: _jsx(Text, { color: isActive ? Colors.AccentGreen : Colors.Gray, children: isActive ? '●' : '' }) }), _jsx(Box, { minWidth: 50, children: _jsxs(Text, { color: isClosing
546
548
  ? Colors.Gray
547
- : Colors.Foreground, children: displayValue })] }), _jsx(Box, { height: 1 })] }, item.value));
548
- }), showScrollDown && _jsx(Text, { color: Colors.Gray, children: "\u25BC" }), _jsx(Box, { height: 1 }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { bold: focusSection === 'scope', wrap: "truncate", children: [focusSection === 'scope' ? '> ' : ' ', "Apply To"] }), _jsx(RadioButtonSelect, { items: scopeItems, initialIndex: 0, onSelect: handleScopeSelect, onHighlight: handleScopeHighlight, isFocused: focusSection === 'scope', showNumbers: focusSection === 'scope' })] }), _jsx(Box, { height: 1 }), _jsx(Text, { color: Colors.Gray, children: "(Use Enter to select, Tab to change focus)" }), showRestartPrompt && (_jsx(Text, { color: Colors.AccentYellow, children: "To see changes, Blackbox Code must be restarted. Press r to exit and apply changes now." }))] }) }));
549
+ : isActive
550
+ ? Colors.AccentGreen
551
+ : Colors.Foreground, children: [item.label, scopeMessage && (_jsxs(Text, { color: Colors.Gray, children: [" ", scopeMessage] }))] }) }), _jsx(Box, { minWidth: 3 }), _jsx(Text, { color: isClosing
552
+ ? Colors.Gray
553
+ : isActive
554
+ ? Colors.AccentGreen
555
+ : shouldBeGreyedOut
556
+ ? Colors.Gray
557
+ : Colors.Foreground, children: displayValue })] }), _jsx(Box, { height: 1 })] }, item.value));
558
+ }), showScrollDown && _jsx(Text, { color: Colors.Gray, children: "\u25BC" }), _jsx(Box, { height: 1 }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { bold: focusSection === 'scope' && !isClosing, wrap: "truncate", color: textColor, children: [focusSection === 'scope' ? '> ' : ' ', "Apply To"] }), _jsx(RadioButtonSelect, { items: scopeItems, initialIndex: 0, onSelect: handleScopeSelect, onHighlight: handleScopeHighlight, isFocused: focusSection === 'scope', showNumbers: focusSection === 'scope' })] }), _jsx(Box, { height: 1 }), _jsx(Text, { color: Colors.Gray, children: "(Use Enter to select, Tab to change focus)" }), showRestartPrompt && (_jsx(Text, { color: isClosing ? Colors.Gray : Colors.AccentYellow, children: "To see changes, Blackbox Code must be restarted. Press r to exit and apply changes now." }))] }) }));
549
559
  }
550
560
  //# sourceMappingURL=SettingsDialog.js.map