@vybestack/llxprt-code 0.5.0 → 0.6.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 (514) hide show
  1. package/dist/package.json +15 -6
  2. package/dist/src/auth/gemini-oauth-provider.d.ts +18 -0
  3. package/dist/src/auth/gemini-oauth-provider.js +140 -78
  4. package/dist/src/auth/gemini-oauth-provider.js.map +1 -1
  5. package/dist/src/auth/local-oauth-callback.spec.js +29 -2
  6. package/dist/src/auth/local-oauth-callback.spec.js.map +1 -1
  7. package/dist/src/commands/extensions/disable.d.ts +1 -2
  8. package/dist/src/commands/extensions/disable.js +15 -3
  9. package/dist/src/commands/extensions/disable.js.map +1 -1
  10. package/dist/src/commands/extensions/enable.d.ts +1 -2
  11. package/dist/src/commands/extensions/enable.js +17 -6
  12. package/dist/src/commands/extensions/enable.js.map +1 -1
  13. package/dist/src/commands/extensions/install.d.ts +3 -1
  14. package/dist/src/commands/extensions/install.js +63 -12
  15. package/dist/src/commands/extensions/install.js.map +1 -1
  16. package/dist/src/commands/extensions/install.test.js +166 -13
  17. package/dist/src/commands/extensions/install.test.js.map +1 -1
  18. package/dist/src/commands/extensions/link.js +2 -2
  19. package/dist/src/commands/extensions/link.js.map +1 -1
  20. package/dist/src/commands/extensions/list.d.ts +1 -1
  21. package/dist/src/commands/extensions/list.js +3 -2
  22. package/dist/src/commands/extensions/list.js.map +1 -1
  23. package/dist/src/commands/extensions/new.test.js +2 -2
  24. package/dist/src/commands/extensions/new.test.js.map +1 -1
  25. package/dist/src/commands/extensions/uninstall.js +1 -1
  26. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  27. package/dist/src/commands/extensions/uninstall.test.js +4 -1
  28. package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
  29. package/dist/src/commands/extensions/update.d.ts +2 -2
  30. package/dist/src/commands/extensions/update.js +68 -19
  31. package/dist/src/commands/extensions/update.js.map +1 -1
  32. package/dist/src/commands/mcp/add.js +6 -1
  33. package/dist/src/commands/mcp/add.js.map +1 -1
  34. package/dist/src/commands/mcp/list.js +3 -2
  35. package/dist/src/commands/mcp/list.js.map +1 -1
  36. package/dist/src/config/__tests__/profileBootstrap.test.js +1351 -1
  37. package/dist/src/config/__tests__/profileBootstrap.test.js.map +1 -1
  38. package/dist/src/config/config.d.ts +4 -1
  39. package/dist/src/config/config.js +172 -69
  40. package/dist/src/config/config.js.map +1 -1
  41. package/dist/src/config/config.loadMemory.test.js +6 -3
  42. package/dist/src/config/config.loadMemory.test.js.map +1 -1
  43. package/dist/src/config/extension.d.ts +48 -14
  44. package/dist/src/config/extension.js +263 -142
  45. package/dist/src/config/extension.js.map +1 -1
  46. package/dist/src/config/extensions/extensionEnablement.d.ts +47 -0
  47. package/dist/src/config/extensions/extensionEnablement.js +188 -0
  48. package/dist/src/config/extensions/extensionEnablement.js.map +1 -0
  49. package/dist/src/config/extensions/extensionEnablement.test.d.ts +6 -0
  50. package/dist/src/config/extensions/extensionEnablement.test.js +333 -0
  51. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -0
  52. package/dist/src/config/extensions/github.d.ts +37 -0
  53. package/dist/src/config/extensions/github.js +348 -0
  54. package/dist/src/config/extensions/github.js.map +1 -0
  55. package/dist/src/config/extensions/github.test.d.ts +6 -0
  56. package/dist/src/config/extensions/github.test.js +340 -0
  57. package/dist/src/config/extensions/github.test.js.map +1 -0
  58. package/dist/src/config/extensions/update.d.ts +19 -0
  59. package/dist/src/config/extensions/update.js +118 -0
  60. package/dist/src/config/extensions/update.js.map +1 -0
  61. package/dist/src/config/extensions/update.test.d.ts +6 -0
  62. package/dist/src/config/extensions/update.test.js +340 -0
  63. package/dist/src/config/extensions/update.test.js.map +1 -0
  64. package/dist/src/config/extensions/variableSchema.d.ts +8 -0
  65. package/dist/src/config/extensions/variableSchema.js +4 -0
  66. package/dist/src/config/extensions/variableSchema.js.map +1 -1
  67. package/dist/src/config/keyBindings.d.ts +1 -0
  68. package/dist/src/config/keyBindings.js +3 -1
  69. package/dist/src/config/keyBindings.js.map +1 -1
  70. package/dist/src/config/paths.d.ts +8 -0
  71. package/dist/src/config/paths.js +11 -0
  72. package/dist/src/config/paths.js.map +1 -0
  73. package/dist/src/config/profileBootstrap.d.ts +13 -0
  74. package/dist/src/config/profileBootstrap.js +369 -15
  75. package/dist/src/config/profileBootstrap.js.map +1 -1
  76. package/dist/src/config/settings.d.ts +14 -4
  77. package/dist/src/config/settings.js +161 -99
  78. package/dist/src/config/settings.js.map +1 -1
  79. package/dist/src/config/settingsSchema.d.ts +510 -216
  80. package/dist/src/config/settingsSchema.js +468 -214
  81. package/dist/src/config/settingsSchema.js.map +1 -1
  82. package/dist/src/config/settingsSchema.test.js +18 -31
  83. package/dist/src/config/settingsSchema.test.js.map +1 -1
  84. package/dist/src/config/trustedFolders.d.ts +6 -3
  85. package/dist/src/config/trustedFolders.js +35 -13
  86. package/dist/src/config/trustedFolders.js.map +1 -1
  87. package/dist/src/config/trustedFolders.test.js +83 -9
  88. package/dist/src/config/trustedFolders.test.js.map +1 -1
  89. package/dist/src/coreToolToggle.test.d.ts +6 -0
  90. package/dist/src/coreToolToggle.test.js +427 -0
  91. package/dist/src/coreToolToggle.test.js.map +1 -0
  92. package/dist/src/extensions/extensionAutoUpdater.d.ts +76 -0
  93. package/dist/src/extensions/extensionAutoUpdater.js +279 -0
  94. package/dist/src/extensions/extensionAutoUpdater.js.map +1 -0
  95. package/dist/src/extensions/extensionAutoUpdater.test.d.ts +6 -0
  96. package/dist/src/extensions/extensionAutoUpdater.test.js +146 -0
  97. package/dist/src/extensions/extensionAutoUpdater.test.js.map +1 -0
  98. package/dist/src/gemini.js +93 -63
  99. package/dist/src/gemini.js.map +1 -1
  100. package/dist/src/gemini.test.js +121 -1
  101. package/dist/src/gemini.test.js.map +1 -1
  102. package/dist/src/generated/git-commit.d.ts +1 -1
  103. package/dist/src/generated/git-commit.js +1 -1
  104. package/dist/src/generated/git-commit.js.map +1 -1
  105. package/dist/src/integration-tests/cli-args.integration.test.js +299 -0
  106. package/dist/src/integration-tests/cli-args.integration.test.js.map +1 -1
  107. package/dist/src/nonInteractiveCli.d.ts +2 -1
  108. package/dist/src/nonInteractiveCli.js +29 -16
  109. package/dist/src/nonInteractiveCli.js.map +1 -1
  110. package/dist/src/nonInteractiveCliCommands.d.ts +17 -0
  111. package/dist/src/nonInteractiveCliCommands.js +81 -0
  112. package/dist/src/nonInteractiveCliCommands.js.map +1 -0
  113. package/dist/src/runtime/runtimeSettings.test.js +2 -0
  114. package/dist/src/runtime/runtimeSettings.test.js.map +1 -1
  115. package/dist/src/services/BuiltinCommandLoader.d.ts +3 -3
  116. package/dist/src/services/BuiltinCommandLoader.js +7 -0
  117. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  118. package/dist/src/services/BuiltinCommandLoader.test.js +37 -0
  119. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  120. package/dist/src/services/McpPromptLoader.js +39 -34
  121. package/dist/src/services/McpPromptLoader.js.map +1 -1
  122. package/dist/src/settings/ephemeralSettings.js +56 -0
  123. package/dist/src/settings/ephemeralSettings.js.map +1 -1
  124. package/dist/src/test-utils/createExtension.d.ts +15 -0
  125. package/dist/src/test-utils/createExtension.js +24 -0
  126. package/dist/src/test-utils/createExtension.js.map +1 -0
  127. package/dist/src/test-utils/mockCommandContext.js +4 -2
  128. package/dist/src/test-utils/mockCommandContext.js.map +1 -1
  129. package/dist/src/test-utils/render.d.ts +3 -1
  130. package/dist/src/test-utils/render.js +4 -1
  131. package/dist/src/test-utils/render.js.map +1 -1
  132. package/dist/src/ui/App.d.ts +18 -3
  133. package/dist/src/ui/App.js +32 -873
  134. package/dist/src/ui/App.js.map +1 -1
  135. package/dist/src/ui/AppContainer.d.ts +19 -0
  136. package/dist/src/ui/AppContainer.js +1187 -0
  137. package/dist/src/ui/AppContainer.js.map +1 -0
  138. package/dist/src/ui/IdeIntegrationNudge.d.ts +2 -2
  139. package/dist/src/ui/IdeIntegrationNudge.js +4 -7
  140. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  141. package/dist/src/ui/commands/chatCommand.js +214 -58
  142. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  143. package/dist/src/ui/commands/clearCommand.js +1 -2
  144. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  145. package/dist/src/ui/commands/diagnosticsCommand.js +2 -2
  146. package/dist/src/ui/commands/diagnosticsCommand.js.map +1 -1
  147. package/dist/src/ui/commands/directoryCommand.js +3 -2
  148. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  149. package/dist/src/ui/commands/docsCommand.js +1 -1
  150. package/dist/src/ui/commands/docsCommand.js.map +1 -1
  151. package/dist/src/ui/commands/extensionsCommand.d.ts +1 -1
  152. package/dist/src/ui/commands/extensionsCommand.js +92 -17
  153. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  154. package/dist/src/ui/commands/helpCommand.js +6 -5
  155. package/dist/src/ui/commands/helpCommand.js.map +1 -1
  156. package/dist/src/ui/commands/ideCommand.js +7 -7
  157. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  158. package/dist/src/ui/commands/loggingCommand.js +1 -1
  159. package/dist/src/ui/commands/loggingCommand.js.map +1 -1
  160. package/dist/src/ui/commands/mcpCommand.js +11 -3
  161. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  162. package/dist/src/ui/commands/memoryCommand.js +21 -3
  163. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  164. package/dist/src/ui/commands/permissionsCommand.d.ts +7 -0
  165. package/dist/src/ui/commands/permissionsCommand.js +16 -0
  166. package/dist/src/ui/commands/permissionsCommand.js.map +1 -0
  167. package/dist/src/ui/commands/permissionsCommand.test.d.ts +6 -0
  168. package/dist/src/ui/commands/permissionsCommand.test.js +55 -0
  169. package/dist/src/ui/commands/permissionsCommand.test.js.map +1 -0
  170. package/dist/src/ui/commands/policiesCommand.d.ts +10 -0
  171. package/dist/src/ui/commands/policiesCommand.js +112 -0
  172. package/dist/src/ui/commands/policiesCommand.js.map +1 -0
  173. package/dist/src/ui/commands/policiesCommand.test.d.ts +6 -0
  174. package/dist/src/ui/commands/policiesCommand.test.js +224 -0
  175. package/dist/src/ui/commands/policiesCommand.test.js.map +1 -0
  176. package/dist/src/ui/commands/setCommand.js +105 -30
  177. package/dist/src/ui/commands/setCommand.js.map +1 -1
  178. package/dist/src/ui/commands/setCommand.test.js +1 -1
  179. package/dist/src/ui/commands/setCommand.test.js.map +1 -1
  180. package/dist/src/ui/commands/statsCommand.js +11 -1
  181. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  182. package/dist/src/ui/commands/test/subagentCommand.test.js +6 -1
  183. package/dist/src/ui/commands/test/subagentCommand.test.js.map +1 -1
  184. package/dist/src/ui/commands/types.d.ts +19 -23
  185. package/dist/src/ui/commands/types.js +1 -1
  186. package/dist/src/ui/commands/types.js.map +1 -1
  187. package/dist/src/ui/commands/uiprofileCommand.d.ts +7 -0
  188. package/dist/src/ui/commands/uiprofileCommand.js +23 -0
  189. package/dist/src/ui/commands/uiprofileCommand.js.map +1 -0
  190. package/dist/src/ui/components/AuthDialog.js +4 -0
  191. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  192. package/dist/src/ui/components/AuthDialog.test.js +32 -32
  193. package/dist/src/ui/components/AuthDialog.test.js.map +1 -1
  194. package/dist/src/ui/components/CacheStatsDisplay.d.ts +7 -0
  195. package/dist/src/ui/components/CacheStatsDisplay.js +35 -0
  196. package/dist/src/ui/components/CacheStatsDisplay.js.map +1 -0
  197. package/dist/src/ui/components/CacheStatsDisplay.test.d.ts +6 -0
  198. package/dist/src/ui/components/CacheStatsDisplay.test.js +118 -0
  199. package/dist/src/ui/components/CacheStatsDisplay.test.js.map +1 -0
  200. package/dist/src/ui/components/CliSpinner.d.ts +10 -0
  201. package/dist/src/ui/components/CliSpinner.js +20 -0
  202. package/dist/src/ui/components/CliSpinner.js.map +1 -0
  203. package/dist/src/ui/components/Composer.d.ts +17 -0
  204. package/dist/src/ui/components/Composer.js +16 -0
  205. package/dist/src/ui/components/Composer.js.map +1 -0
  206. package/dist/src/ui/components/ConsentPrompt.d.ts +13 -0
  207. package/dist/src/ui/components/ConsentPrompt.js +18 -0
  208. package/dist/src/ui/components/ConsentPrompt.js.map +1 -0
  209. package/dist/src/ui/components/ConsentPrompt.test.d.ts +6 -0
  210. package/dist/src/ui/components/ConsentPrompt.test.js +67 -0
  211. package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -0
  212. package/dist/src/ui/components/DebugProfiler.d.ts +15 -0
  213. package/dist/src/ui/components/DebugProfiler.js +137 -13
  214. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  215. package/dist/src/ui/components/DebugProfiler.test.d.ts +6 -0
  216. package/dist/src/ui/components/DebugProfiler.test.js +131 -0
  217. package/dist/src/ui/components/DebugProfiler.test.js.map +1 -0
  218. package/dist/src/ui/components/DialogManager.d.ts +16 -0
  219. package/dist/src/ui/components/DialogManager.js +131 -0
  220. package/dist/src/ui/components/DialogManager.js.map +1 -0
  221. package/dist/src/ui/components/EditorSettingsDialog.js +18 -8
  222. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  223. package/dist/src/ui/components/FolderTrustDialog.js +4 -0
  224. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  225. package/dist/src/ui/components/FolderTrustDialog.test.js +2 -2
  226. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  227. package/dist/src/ui/components/HistoryItemDisplay.d.ts +6 -2
  228. package/dist/src/ui/components/HistoryItemDisplay.js +10 -2
  229. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  230. package/dist/src/ui/components/HistoryItemDisplay.test.js +90 -10
  231. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  232. package/dist/src/ui/components/InputPrompt.d.ts +6 -0
  233. package/dist/src/ui/components/InputPrompt.js +52 -18
  234. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  235. package/dist/src/ui/components/LoadProfileDialog.js +13 -9
  236. package/dist/src/ui/components/LoadProfileDialog.js.map +1 -1
  237. package/dist/src/ui/components/LoadingIndicator.js +1 -1
  238. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  239. package/dist/src/ui/components/LoadingIndicator.test.js +6 -0
  240. package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
  241. package/dist/src/ui/components/LoggingDialog.js +14 -10
  242. package/dist/src/ui/components/LoggingDialog.js.map +1 -1
  243. package/dist/src/ui/components/Notifications.d.ts +14 -0
  244. package/dist/src/ui/components/Notifications.js +34 -0
  245. package/dist/src/ui/components/Notifications.js.map +1 -0
  246. package/dist/src/ui/components/OAuthCodeDialog.js +2 -1
  247. package/dist/src/ui/components/OAuthCodeDialog.js.map +1 -1
  248. package/dist/src/ui/components/PermissionsModifyTrustDialog.d.ts +14 -0
  249. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +115 -0
  250. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -0
  251. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.d.ts +6 -0
  252. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +98 -0
  253. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -0
  254. package/dist/src/ui/components/ProviderDialog.js +23 -18
  255. package/dist/src/ui/components/ProviderDialog.js.map +1 -1
  256. package/dist/src/ui/components/ProviderModelDialog.js +24 -18
  257. package/dist/src/ui/components/ProviderModelDialog.js.map +1 -1
  258. package/dist/src/ui/components/SettingsDialog.d.ts +12 -2
  259. package/dist/src/ui/components/SettingsDialog.js +253 -23
  260. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  261. package/dist/src/ui/components/SettingsDialog.test.js +90 -8
  262. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  263. package/dist/src/ui/components/ShellConfirmationDialog.js +3 -0
  264. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  265. package/dist/src/ui/components/ThemeDialog.js +6 -4
  266. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  267. package/dist/src/ui/components/ToolsDialog.js +6 -4
  268. package/dist/src/ui/components/ToolsDialog.js.map +1 -1
  269. package/dist/src/ui/components/WorkspaceMigrationDialog.js +5 -3
  270. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -1
  271. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +37 -6
  272. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  273. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +9 -0
  274. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  275. package/dist/src/ui/components/messages/ToolGroupMessage.js +7 -3
  276. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  277. package/dist/src/ui/components/messages/ToolMessage.js +7 -3
  278. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  279. package/dist/src/ui/components/messages/WarningMessage.d.ts +11 -0
  280. package/dist/src/ui/components/messages/WarningMessage.js +10 -0
  281. package/dist/src/ui/components/messages/WarningMessage.js.map +1 -0
  282. package/dist/src/ui/components/messages/WarningMessage.test.d.ts +6 -0
  283. package/dist/src/ui/components/messages/WarningMessage.test.js +15 -0
  284. package/dist/src/ui/components/messages/WarningMessage.test.js.map +1 -0
  285. package/dist/src/ui/components/shared/BaseSelectionList.d.ts +38 -0
  286. package/dist/src/ui/components/shared/BaseSelectionList.js +76 -0
  287. package/dist/src/ui/components/shared/BaseSelectionList.js.map +1 -0
  288. package/dist/src/ui/components/shared/BaseSelectionList.test.d.ts +6 -0
  289. package/dist/src/ui/components/shared/BaseSelectionList.test.js +376 -0
  290. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -0
  291. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +4 -5
  292. package/dist/src/ui/components/shared/RadioButtonSelect.js +11 -117
  293. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  294. package/dist/src/ui/components/shared/RadioButtonSelect.test.d.ts +1 -1
  295. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +116 -95
  296. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +1 -1
  297. package/dist/src/ui/components/shared/text-buffer.d.ts +6 -0
  298. package/dist/src/ui/components/shared/text-buffer.js +71 -4
  299. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  300. package/dist/src/ui/components/views/ChatList.d.ts +12 -0
  301. package/dist/src/ui/components/views/ChatList.js +17 -0
  302. package/dist/src/ui/components/views/ChatList.js.map +1 -0
  303. package/dist/src/ui/components/views/ChatList.test.d.ts +6 -0
  304. package/dist/src/ui/components/views/ChatList.test.js +42 -0
  305. package/dist/src/ui/components/views/ChatList.test.js.map +1 -0
  306. package/dist/src/ui/constants.d.ts +1 -0
  307. package/dist/src/ui/constants.js +1 -0
  308. package/dist/src/ui/constants.js.map +1 -1
  309. package/dist/src/ui/contexts/FocusContext.d.ts +7 -0
  310. package/dist/src/ui/contexts/FocusContext.js +9 -0
  311. package/dist/src/ui/contexts/FocusContext.js.map +1 -0
  312. package/dist/src/ui/contexts/KeypressContext.d.ts +1 -1
  313. package/dist/src/ui/contexts/KeypressContext.js +63 -4
  314. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  315. package/dist/src/ui/contexts/KeypressContext.test.js +156 -0
  316. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  317. package/dist/src/ui/contexts/SessionContext.d.ts +6 -0
  318. package/dist/src/ui/contexts/SessionContext.js +107 -5
  319. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  320. package/dist/src/ui/contexts/UIActionsContext.d.ts +82 -0
  321. package/dist/src/ui/contexts/UIActionsContext.js +20 -0
  322. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -0
  323. package/dist/src/ui/contexts/UIStateContext.d.ts +121 -0
  324. package/dist/src/ui/contexts/UIStateContext.js +20 -0
  325. package/dist/src/ui/contexts/UIStateContext.js.map +1 -0
  326. package/dist/src/ui/contexts/VimModeContext.js +4 -4
  327. package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
  328. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +29 -6
  329. package/dist/src/ui/hooks/slashCommandProcessor.js +150 -155
  330. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  331. package/dist/src/ui/hooks/useBracketedPaste.js +3 -4
  332. package/dist/src/ui/hooks/useBracketedPaste.js.map +1 -1
  333. package/dist/src/ui/hooks/useEditorSettings.js +1 -1
  334. package/dist/src/ui/hooks/useEditorSettings.js.map +1 -1
  335. package/dist/src/ui/hooks/useExtensionAutoUpdate.d.ts +13 -0
  336. package/dist/src/ui/hooks/useExtensionAutoUpdate.js +40 -0
  337. package/dist/src/ui/hooks/useExtensionAutoUpdate.js.map +1 -0
  338. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +21 -0
  339. package/dist/src/ui/hooks/useExtensionUpdates.js +168 -0
  340. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -0
  341. package/dist/src/ui/hooks/useExtensionUpdates.test.d.ts +6 -0
  342. package/dist/src/ui/hooks/useExtensionUpdates.test.js +243 -0
  343. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -0
  344. package/dist/src/ui/hooks/useFlickerDetector.d.ts +22 -0
  345. package/dist/src/ui/hooks/useFlickerDetector.js +38 -0
  346. package/dist/src/ui/hooks/useFlickerDetector.js.map +1 -0
  347. package/dist/src/ui/hooks/useFlickerDetector.test.d.ts +6 -0
  348. package/dist/src/ui/hooks/useFlickerDetector.test.js +142 -0
  349. package/dist/src/ui/hooks/useFlickerDetector.test.js.map +1 -0
  350. package/dist/src/ui/hooks/useGeminiStream.d.ts +1 -1
  351. package/dist/src/ui/hooks/useGeminiStream.integration.test.js +1 -1
  352. package/dist/src/ui/hooks/useGeminiStream.integration.test.js.map +1 -1
  353. package/dist/src/ui/hooks/useGeminiStream.js +41 -18
  354. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  355. package/dist/src/ui/hooks/useMemoryMonitor.d.ts +13 -0
  356. package/dist/src/ui/hooks/useMemoryMonitor.js +28 -0
  357. package/dist/src/ui/hooks/useMemoryMonitor.js.map +1 -0
  358. package/dist/src/ui/hooks/usePermissionsModifyTrust.d.ts +34 -0
  359. package/dist/src/ui/hooks/usePermissionsModifyTrust.js +90 -0
  360. package/dist/src/ui/hooks/usePermissionsModifyTrust.js.map +1 -0
  361. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.d.ts +6 -0
  362. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +60 -0
  363. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -0
  364. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +1 -1
  365. package/dist/src/ui/hooks/useReactToolScheduler.js +5 -1
  366. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  367. package/dist/src/ui/hooks/useSelectionList.d.ts +34 -0
  368. package/dist/src/ui/hooks/useSelectionList.js +292 -0
  369. package/dist/src/ui/hooks/useSelectionList.js.map +1 -0
  370. package/dist/src/ui/hooks/useSelectionList.test.d.ts +6 -0
  371. package/dist/src/ui/hooks/useSelectionList.test.js +726 -0
  372. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -0
  373. package/dist/src/ui/hooks/useShowMemoryCommand.js +1 -1
  374. package/dist/src/ui/hooks/useShowMemoryCommand.js.map +1 -1
  375. package/dist/src/ui/hooks/useStateAndRef.d.ts +1 -1
  376. package/dist/src/ui/hooks/useStateAndRef.js +2 -2
  377. package/dist/src/ui/hooks/useStateAndRef.js.map +1 -1
  378. package/dist/src/ui/hooks/useStaticHistoryRefresh.d.ts +13 -0
  379. package/dist/src/ui/hooks/useStaticHistoryRefresh.js +35 -0
  380. package/dist/src/ui/hooks/useStaticHistoryRefresh.js.map +1 -0
  381. package/dist/src/ui/hooks/useStaticHistoryRefresh.test.d.ts +6 -0
  382. package/dist/src/ui/hooks/useStaticHistoryRefresh.test.js +42 -0
  383. package/dist/src/ui/hooks/useStaticHistoryRefresh.test.js.map +1 -0
  384. package/dist/src/ui/hooks/useThemeCommand.js +7 -7
  385. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  386. package/dist/src/ui/hooks/useToolScheduler.test.js +17 -20
  387. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  388. package/dist/src/ui/keyMatchers.test.js +6 -0
  389. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  390. package/dist/src/ui/layouts/DefaultAppLayout.d.ts +23 -0
  391. package/dist/src/ui/layouts/DefaultAppLayout.js +76 -0
  392. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -0
  393. package/dist/src/ui/noninteractive/nonInteractiveUi.d.ts +12 -0
  394. package/dist/src/ui/noninteractive/nonInteractiveUi.js +31 -0
  395. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -0
  396. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +2 -2
  397. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
  398. package/dist/src/ui/privacy/MultiProviderPrivacyNotice.d.ts +11 -0
  399. package/dist/src/ui/privacy/MultiProviderPrivacyNotice.js +92 -0
  400. package/dist/src/ui/privacy/MultiProviderPrivacyNotice.js.map +1 -0
  401. package/dist/src/ui/privacy/MultiProviderPrivacyNotice.test.d.ts +6 -0
  402. package/dist/src/ui/privacy/MultiProviderPrivacyNotice.test.js +106 -0
  403. package/dist/src/ui/privacy/MultiProviderPrivacyNotice.test.js.map +1 -0
  404. package/dist/src/ui/privacy/PrivacyNotice.js +4 -9
  405. package/dist/src/ui/privacy/PrivacyNotice.js.map +1 -1
  406. package/dist/src/ui/state/extensions.d.ts +61 -0
  407. package/dist/src/ui/state/extensions.js +84 -0
  408. package/dist/src/ui/state/extensions.js.map +1 -0
  409. package/dist/src/ui/themes/theme.js +2 -2
  410. package/dist/src/ui/themes/theme.js.map +1 -1
  411. package/dist/src/ui/types.d.ts +58 -2
  412. package/dist/src/ui/types.js +6 -0
  413. package/dist/src/ui/types.js.map +1 -1
  414. package/dist/src/ui/utils/MarkdownDisplay.js +1 -2
  415. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  416. package/dist/src/ui/utils/MarkdownDisplay.test.d.ts +1 -1
  417. package/dist/src/ui/utils/MarkdownDisplay.test.js +94 -104
  418. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  419. package/dist/src/ui/utils/bracketedPaste.d.ts +9 -0
  420. package/dist/src/ui/utils/bracketedPaste.js +14 -0
  421. package/dist/src/ui/utils/bracketedPaste.js.map +1 -0
  422. package/dist/src/ui/utils/displayUtils.d.ts +1 -0
  423. package/dist/src/ui/utils/displayUtils.js +4 -1
  424. package/dist/src/ui/utils/displayUtils.js.map +1 -1
  425. package/dist/src/ui/utils/displayUtils.test.js +36 -17
  426. package/dist/src/ui/utils/displayUtils.test.js.map +1 -1
  427. package/dist/src/ui/utils/highlight.d.ts +2 -1
  428. package/dist/src/ui/utils/highlight.js +52 -8
  429. package/dist/src/ui/utils/highlight.js.map +1 -1
  430. package/dist/src/ui/utils/highlight.test.js +15 -14
  431. package/dist/src/ui/utils/highlight.test.js.map +1 -1
  432. package/dist/src/ui/utils/kittyProtocolDetector.d.ts +1 -0
  433. package/dist/src/ui/utils/kittyProtocolDetector.js +11 -3
  434. package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -1
  435. package/dist/src/ui/utils/terminalSequences.d.ts +22 -0
  436. package/dist/src/ui/utils/terminalSequences.js +23 -0
  437. package/dist/src/ui/utils/terminalSequences.js.map +1 -0
  438. package/dist/src/ui/utils/textUtils.d.ts +10 -0
  439. package/dist/src/ui/utils/textUtils.js +82 -1
  440. package/dist/src/ui/utils/textUtils.js.map +1 -1
  441. package/dist/src/ui/utils/textUtils.test.d.ts +6 -0
  442. package/dist/src/ui/utils/textUtils.test.js +132 -0
  443. package/dist/src/ui/utils/textUtils.test.js.map +1 -0
  444. package/dist/src/utils/bootstrap.d.ts +24 -0
  445. package/dist/src/utils/bootstrap.js +55 -0
  446. package/dist/src/utils/bootstrap.js.map +1 -0
  447. package/dist/src/utils/bootstrap.test.d.ts +6 -0
  448. package/dist/src/utils/bootstrap.test.js +103 -0
  449. package/dist/src/utils/bootstrap.test.js.map +1 -0
  450. package/dist/src/utils/cleanup.d.ts +6 -0
  451. package/dist/src/utils/cleanup.js +14 -0
  452. package/dist/src/utils/cleanup.js.map +1 -1
  453. package/dist/src/utils/commands.d.ts +17 -0
  454. package/dist/src/utils/commands.js +60 -0
  455. package/dist/src/utils/commands.js.map +1 -0
  456. package/dist/src/utils/dialogScopeUtils.d.ts +3 -0
  457. package/dist/src/utils/dialogScopeUtils.js +11 -2
  458. package/dist/src/utils/dialogScopeUtils.js.map +1 -1
  459. package/dist/src/utils/dynamicSettings.d.ts +20 -0
  460. package/dist/src/utils/dynamicSettings.js +110 -0
  461. package/dist/src/utils/dynamicSettings.js.map +1 -0
  462. package/dist/src/utils/dynamicSettings.test.d.ts +6 -0
  463. package/dist/src/utils/dynamicSettings.test.js +329 -0
  464. package/dist/src/utils/dynamicSettings.test.js.map +1 -0
  465. package/dist/src/utils/events.d.ts +3 -1
  466. package/dist/src/utils/events.js +2 -0
  467. package/dist/src/utils/events.js.map +1 -1
  468. package/dist/src/utils/handleAutoUpdate.js +4 -1
  469. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  470. package/dist/src/utils/installationInfo.d.ts +1 -0
  471. package/dist/src/utils/installationInfo.js +5 -3
  472. package/dist/src/utils/installationInfo.js.map +1 -1
  473. package/dist/src/utils/relaunch.d.ts +16 -0
  474. package/dist/src/utils/relaunch.js +34 -0
  475. package/dist/src/utils/relaunch.js.map +1 -0
  476. package/dist/src/utils/relaunch.test.d.ts +6 -0
  477. package/dist/src/utils/relaunch.test.js +96 -0
  478. package/dist/src/utils/relaunch.test.js.map +1 -0
  479. package/dist/src/utils/sessionCleanup.d.ts +22 -0
  480. package/dist/src/utils/sessionCleanup.integration.test.d.ts +6 -0
  481. package/dist/src/utils/sessionCleanup.integration.test.js +174 -0
  482. package/dist/src/utils/sessionCleanup.integration.test.js.map +1 -0
  483. package/dist/src/utils/sessionCleanup.js +213 -0
  484. package/dist/src/utils/sessionCleanup.js.map +1 -0
  485. package/dist/src/utils/sessionCleanup.test.d.ts +6 -0
  486. package/dist/src/utils/sessionCleanup.test.js +1144 -0
  487. package/dist/src/utils/sessionCleanup.test.js.map +1 -0
  488. package/dist/src/utils/sessionUtils.d.ts +37 -0
  489. package/dist/src/utils/sessionUtils.js +71 -0
  490. package/dist/src/utils/sessionUtils.js.map +1 -0
  491. package/dist/src/utils/settingsUtils.d.ts +6 -3
  492. package/dist/src/utils/settingsUtils.js +39 -11
  493. package/dist/src/utils/settingsUtils.js.map +1 -1
  494. package/dist/src/utils/settingsUtils.test.js +96 -96
  495. package/dist/src/utils/settingsUtils.test.js.map +1 -1
  496. package/dist/src/utils/singleSettingSaver.js +5 -0
  497. package/dist/src/utils/singleSettingSaver.js.map +1 -1
  498. package/dist/src/utils/windowTitle.d.ts +12 -0
  499. package/dist/src/utils/windowTitle.js +19 -0
  500. package/dist/src/utils/windowTitle.js.map +1 -0
  501. package/dist/src/utils/windowTitle.test.d.ts +6 -0
  502. package/dist/src/utils/windowTitle.test.js +49 -0
  503. package/dist/src/utils/windowTitle.test.js.map +1 -0
  504. package/dist/src/zed-integration/acp.js +1 -2
  505. package/dist/src/zed-integration/acp.js.map +1 -1
  506. package/dist/src/zed-integration/fileSystemService.d.ts +1 -0
  507. package/dist/src/zed-integration/fileSystemService.js +3 -0
  508. package/dist/src/zed-integration/fileSystemService.js.map +1 -1
  509. package/dist/src/zed-integration/schema.d.ts +212 -212
  510. package/dist/tsconfig.build.tsbuildinfo +1 -1
  511. package/package.json +15 -6
  512. package/dist/src/ui/App.quittingMessages.test.d.ts +0 -1
  513. package/dist/src/ui/App.quittingMessages.test.js +0 -14
  514. package/dist/src/ui/App.quittingMessages.test.js.map +0 -1
@@ -3,212 +3,40 @@
3
3
  * Copyright 2025 Vybestack LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { DEFAULT_HISTORY_MAX_BYTES, DEFAULT_HISTORY_MAX_ITEMS, } from '../constants/historyLimits.js';
6
+ import { DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD, DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES, } from '@vybestack/llxprt-code-core';
7
+ /**
8
+ * Setting datatypes that "toggle" through a fixed list of options
9
+ * (e.g. an enum or true/false) rather than allowing for free form input
10
+ * (like a number or string).
11
+ */
12
+ export const TOGGLE_TYPES = new Set([
13
+ 'boolean',
14
+ 'enum',
15
+ ]);
16
+ export var MergeStrategy;
17
+ (function (MergeStrategy) {
18
+ // Replace the old value with the new value. This is the default.
19
+ MergeStrategy["REPLACE"] = "replace";
20
+ // Concatenate arrays.
21
+ MergeStrategy["CONCAT"] = "concat";
22
+ // Merge arrays, ensuring unique values.
23
+ MergeStrategy["UNION"] = "union";
24
+ // Shallow merge objects.
25
+ MergeStrategy["SHALLOW_MERGE"] = "shallow_merge";
26
+ })(MergeStrategy || (MergeStrategy = {}));
27
+ const DEFAULT_EXTENSION_AUTO_UPDATE = {
28
+ enabled: true,
29
+ checkIntervalHours: 24,
30
+ installMode: 'immediate',
31
+ notificationLevel: 'toast',
32
+ perExtension: {},
33
+ };
7
34
  /**
8
35
  * The canonical schema for all settings.
9
36
  * The structure of this object defines the structure of the `Settings` type.
10
37
  * `as const` is crucial for TypeScript to infer the most specific types possible.
11
38
  */
12
39
  export const SETTINGS_SCHEMA = {
13
- // UI Settings
14
- theme: {
15
- type: 'string',
16
- label: 'Theme',
17
- category: 'UI',
18
- requiresRestart: false,
19
- default: undefined,
20
- description: 'The color theme for the UI.',
21
- showInDialog: false,
22
- },
23
- customThemes: {
24
- type: 'object',
25
- label: 'Custom Themes',
26
- category: 'UI',
27
- requiresRestart: false,
28
- default: {},
29
- description: 'Custom theme definitions.',
30
- showInDialog: false,
31
- },
32
- hideWindowTitle: {
33
- type: 'boolean',
34
- label: 'Hide Window Title',
35
- category: 'UI',
36
- requiresRestart: true,
37
- default: false,
38
- description: 'Hide the window title bar',
39
- showInDialog: true,
40
- },
41
- hideTips: {
42
- type: 'boolean',
43
- label: 'Hide Tips',
44
- category: 'UI',
45
- requiresRestart: false,
46
- default: false,
47
- description: 'Hide helpful tips in the UI',
48
- showInDialog: true,
49
- },
50
- hideBanner: {
51
- type: 'boolean',
52
- label: 'Hide Banner',
53
- category: 'UI',
54
- requiresRestart: false,
55
- default: false,
56
- description: 'Hide the application banner',
57
- showInDialog: true,
58
- },
59
- hideFooter: {
60
- type: 'boolean',
61
- label: 'Hide Footer',
62
- category: 'UI',
63
- requiresRestart: false,
64
- default: false,
65
- description: 'Hide the footer from the UI',
66
- showInDialog: true,
67
- },
68
- hideContextSummary: {
69
- type: 'boolean',
70
- label: 'Hide Context Summary',
71
- category: 'UI',
72
- requiresRestart: false,
73
- default: false,
74
- description: 'Hide the context summary (LLXPRT.md, MCP servers) above the input.',
75
- showInDialog: true,
76
- },
77
- showTodoPanel: {
78
- type: 'boolean',
79
- label: 'Show Todo Panel',
80
- category: 'UI',
81
- requiresRestart: false,
82
- default: true,
83
- description: 'Display the interactive Todo panel. Disable to keep todos in the scrollback view instead.',
84
- showInDialog: true,
85
- },
86
- showMemoryUsage: {
87
- type: 'boolean',
88
- label: 'Show Memory Usage',
89
- category: 'UI',
90
- requiresRestart: false,
91
- default: false,
92
- description: 'Display memory usage information in the UI',
93
- showInDialog: true,
94
- },
95
- historyMaxItems: {
96
- type: 'number',
97
- label: 'History Max Items',
98
- category: 'UI',
99
- requiresRestart: false,
100
- default: DEFAULT_HISTORY_MAX_ITEMS,
101
- description: 'Maximum number of history entries to keep in the scrollback before trimming the oldest ones. Set to -1 for unlimited.',
102
- showInDialog: true,
103
- },
104
- historyMaxBytes: {
105
- type: 'number',
106
- label: 'History Max Bytes',
107
- category: 'UI',
108
- requiresRestart: false,
109
- default: DEFAULT_HISTORY_MAX_BYTES,
110
- description: 'Approximate maximum number of bytes to keep in history. Older entries are removed once this budget is exceeded. Set to -1 for unlimited.',
111
- showInDialog: true,
112
- },
113
- customWittyPhrases: {
114
- type: 'array',
115
- label: 'Custom Witty Phrases',
116
- category: 'UI',
117
- requiresRestart: false,
118
- default: [],
119
- description: 'Custom witty phrases to display during loading.',
120
- showInDialog: false,
121
- },
122
- usageStatisticsEnabled: {
123
- type: 'boolean',
124
- label: 'Enable Usage Statistics',
125
- category: 'General',
126
- requiresRestart: true,
127
- default: true,
128
- description: 'Enable collection of usage statistics',
129
- showInDialog: false, // All details are shown in /privacy and dependent on auth type
130
- },
131
- autoConfigureMaxOldSpaceSize: {
132
- type: 'boolean',
133
- label: 'Auto Configure Max Old Space Size',
134
- category: 'General',
135
- requiresRestart: true,
136
- default: false,
137
- description: 'Automatically configure Node.js memory limits',
138
- showInDialog: true,
139
- },
140
- preferredEditor: {
141
- type: 'string',
142
- label: 'Preferred Editor',
143
- category: 'General',
144
- requiresRestart: false,
145
- default: undefined,
146
- description: 'The preferred editor to open files in.',
147
- showInDialog: false,
148
- },
149
- maxSessionTurns: {
150
- type: 'number',
151
- label: 'Max Session Turns',
152
- category: 'General',
153
- requiresRestart: false,
154
- default: -1,
155
- description: 'Maximum number of user/model/tool turns to keep in a session. -1 means unlimited.',
156
- showInDialog: true,
157
- },
158
- maxTurnsPerPrompt: {
159
- type: 'number',
160
- label: 'Max Turns Per Prompt',
161
- category: 'General',
162
- requiresRestart: false,
163
- default: 200,
164
- description: 'Maximum number of turns allowed per prompt before stopping to prevent loops. Set to -1 for unlimited (default: 200).',
165
- showInDialog: true,
166
- },
167
- memoryImportFormat: {
168
- type: 'string',
169
- label: 'Memory Import Format',
170
- category: 'General',
171
- requiresRestart: false,
172
- default: undefined,
173
- description: 'The format to use when importing memory.',
174
- showInDialog: false,
175
- },
176
- memoryDiscoveryMaxDirs: {
177
- type: 'number',
178
- label: 'Memory Discovery Max Dirs',
179
- category: 'General',
180
- requiresRestart: false,
181
- default: 200,
182
- description: 'Maximum number of directories to search for memory.',
183
- showInDialog: true,
184
- },
185
- contextFileName: {
186
- type: 'object',
187
- label: 'Context File Name',
188
- category: 'General',
189
- requiresRestart: false,
190
- default: undefined,
191
- description: 'The name of the context file.',
192
- showInDialog: false,
193
- },
194
- vimMode: {
195
- type: 'boolean',
196
- label: 'Vim Mode',
197
- category: 'Mode',
198
- requiresRestart: false,
199
- default: false,
200
- description: 'Enable Vim keybindings',
201
- showInDialog: true,
202
- },
203
- ideMode: {
204
- type: 'boolean',
205
- label: 'IDE Mode',
206
- category: 'Mode',
207
- requiresRestart: true,
208
- default: false,
209
- description: 'Enable IDE integration mode',
210
- showInDialog: true,
211
- },
212
40
  accessibility: {
213
41
  type: 'object',
214
42
  label: 'Accessibility',
@@ -232,7 +60,7 @@ export const SETTINGS_SCHEMA = {
232
60
  label: 'Screen Reader Mode',
233
61
  category: 'Accessibility',
234
62
  requiresRestart: true,
235
- default: undefined,
63
+ default: false,
236
64
  description: 'Render output in plain-text to be more screen reader accessible',
237
65
  showInDialog: true,
238
66
  },
@@ -325,11 +153,11 @@ export const SETTINGS_SCHEMA = {
325
153
  },
326
154
  shouldUseNodePtyShell: {
327
155
  type: 'boolean',
328
- label: 'Use node-pty for Shell Execution',
156
+ label: 'Enable Interactive Shell (node-pty)',
329
157
  category: 'Shell',
330
158
  requiresRestart: true,
331
159
  default: false,
332
- description: 'Use node-pty for shell command execution. Fallback to child_process still applies.',
160
+ description: 'Allow fully interactive shell commands (vim, git rebase -i, etc.) by running tools through node-pty. Falls back to child_process when disabled.',
333
161
  showInDialog: true,
334
162
  },
335
163
  selectedAuthType: {
@@ -386,6 +214,16 @@ export const SETTINGS_SCHEMA = {
386
214
  description: 'Tool names to exclude from discovery.',
387
215
  showInDialog: false,
388
216
  },
217
+ coreToolSettings: {
218
+ type: 'object',
219
+ label: 'Tool Management',
220
+ category: 'Advanced',
221
+ requiresRestart: true,
222
+ default: {},
223
+ description: 'Manage core tool availability',
224
+ showInDialog: true,
225
+ subSettings: {}, // Will be populated dynamically based on loaded tools
226
+ },
389
227
  toolDiscoveryCommand: {
390
228
  type: 'string',
391
229
  label: 'Tool Discovery Command',
@@ -412,7 +250,10 @@ export const SETTINGS_SCHEMA = {
412
250
  default: 'legacy',
413
251
  description: 'Mode for processing tool calls. Pipeline mode is optimized, legacy mode uses older implementation.',
414
252
  showInDialog: true,
415
- options: ['legacy', 'pipeline'],
253
+ options: [
254
+ { value: 'legacy', label: 'Legacy' },
255
+ { value: 'pipeline', label: 'Pipeline' },
256
+ ],
416
257
  },
417
258
  mcpServerCommand: {
418
259
  type: 'string',
@@ -432,6 +273,322 @@ export const SETTINGS_SCHEMA = {
432
273
  description: 'Configuration for MCP servers.',
433
274
  showInDialog: false,
434
275
  },
276
+ sessionRetention: {
277
+ type: 'object',
278
+ label: 'Session Retention',
279
+ category: 'General',
280
+ requiresRestart: false,
281
+ default: undefined,
282
+ description: 'Settings for automatic session cleanup.',
283
+ },
284
+ output: {
285
+ type: 'object',
286
+ label: 'Output',
287
+ category: 'General',
288
+ requiresRestart: false,
289
+ default: {},
290
+ description: 'Settings for the CLI output.',
291
+ showInDialog: false,
292
+ properties: {
293
+ format: {
294
+ type: 'enum',
295
+ label: 'Output Format',
296
+ category: 'General',
297
+ requiresRestart: false,
298
+ default: 'text',
299
+ description: 'The format of the CLI output.',
300
+ showInDialog: true,
301
+ options: [
302
+ { value: 'text', label: 'Text' },
303
+ { value: 'json', label: 'JSON' },
304
+ ],
305
+ },
306
+ },
307
+ },
308
+ ui: {
309
+ type: 'object',
310
+ label: 'UI',
311
+ category: 'UI',
312
+ requiresRestart: false,
313
+ default: {},
314
+ description: 'User interface settings.',
315
+ showInDialog: false,
316
+ properties: {
317
+ theme: {
318
+ type: 'string',
319
+ label: 'Theme',
320
+ category: 'UI',
321
+ requiresRestart: false,
322
+ default: undefined,
323
+ description: 'The color theme for the UI.',
324
+ showInDialog: false,
325
+ },
326
+ customThemes: {
327
+ type: 'object',
328
+ label: 'Custom Themes',
329
+ category: 'UI',
330
+ requiresRestart: false,
331
+ default: {},
332
+ description: 'Custom theme definitions.',
333
+ showInDialog: false,
334
+ },
335
+ hideWindowTitle: {
336
+ type: 'boolean',
337
+ label: 'Hide Window Title',
338
+ category: 'UI',
339
+ requiresRestart: true,
340
+ default: false,
341
+ description: 'Hide the window title bar',
342
+ showInDialog: true,
343
+ },
344
+ showStatusInTitle: {
345
+ type: 'boolean',
346
+ label: 'Show Status in Title',
347
+ category: 'UI',
348
+ requiresRestart: false,
349
+ default: false,
350
+ description: 'Show Gemini CLI status and thoughts in the terminal window title',
351
+ showInDialog: true,
352
+ },
353
+ hideTips: {
354
+ type: 'boolean',
355
+ label: 'Hide Tips',
356
+ category: 'UI',
357
+ requiresRestart: false,
358
+ default: false,
359
+ description: 'Hide helpful tips in the UI',
360
+ showInDialog: true,
361
+ },
362
+ hideBanner: {
363
+ type: 'boolean',
364
+ label: 'Hide Banner',
365
+ category: 'UI',
366
+ requiresRestart: false,
367
+ default: false,
368
+ description: 'Hide the application banner',
369
+ showInDialog: true,
370
+ },
371
+ hideContextSummary: {
372
+ type: 'boolean',
373
+ label: 'Hide Context Summary',
374
+ category: 'UI',
375
+ requiresRestart: false,
376
+ default: false,
377
+ description: 'Hide the context summary (LLXPRT.md, MCP servers) above the input.',
378
+ showInDialog: true,
379
+ },
380
+ footer: {
381
+ type: 'object',
382
+ label: 'Footer',
383
+ category: 'UI',
384
+ requiresRestart: false,
385
+ default: {},
386
+ description: 'Settings for the footer.',
387
+ showInDialog: false,
388
+ properties: {
389
+ hideCWD: {
390
+ type: 'boolean',
391
+ label: 'Hide CWD',
392
+ category: 'UI',
393
+ requiresRestart: false,
394
+ default: false,
395
+ description: 'Hide the current working directory path in the footer.',
396
+ showInDialog: true,
397
+ },
398
+ hideSandboxStatus: {
399
+ type: 'boolean',
400
+ label: 'Hide Sandbox Status',
401
+ category: 'UI',
402
+ requiresRestart: false,
403
+ default: false,
404
+ description: 'Hide the sandbox status indicator in the footer.',
405
+ showInDialog: true,
406
+ },
407
+ hideModelInfo: {
408
+ type: 'boolean',
409
+ label: 'Hide Model Info',
410
+ category: 'UI',
411
+ requiresRestart: false,
412
+ default: false,
413
+ description: 'Hide the model name and context usage in the footer.',
414
+ showInDialog: true,
415
+ },
416
+ },
417
+ },
418
+ hideFooter: {
419
+ type: 'boolean',
420
+ label: 'Hide Footer',
421
+ category: 'UI',
422
+ requiresRestart: false,
423
+ default: false,
424
+ description: 'Hide the footer from the UI',
425
+ showInDialog: true,
426
+ },
427
+ showMemoryUsage: {
428
+ type: 'boolean',
429
+ label: 'Show Memory Usage',
430
+ category: 'UI',
431
+ requiresRestart: false,
432
+ default: false,
433
+ description: 'Display memory usage information in the UI',
434
+ showInDialog: true,
435
+ },
436
+ showLineNumbers: {
437
+ type: 'boolean',
438
+ label: 'Show Line Numbers',
439
+ category: 'UI',
440
+ requiresRestart: false,
441
+ default: false,
442
+ description: 'Show line numbers in the chat.',
443
+ showInDialog: true,
444
+ },
445
+ showCitations: {
446
+ type: 'boolean',
447
+ label: 'Show Citations',
448
+ category: 'UI',
449
+ requiresRestart: false,
450
+ default: false,
451
+ description: 'Show citations for generated text in the chat.',
452
+ showInDialog: true,
453
+ },
454
+ customWittyPhrases: {
455
+ type: 'array',
456
+ label: 'Custom Witty Phrases',
457
+ category: 'UI',
458
+ requiresRestart: false,
459
+ default: [],
460
+ description: 'Custom witty phrases to display during loading.',
461
+ showInDialog: false,
462
+ },
463
+ vimMode: {
464
+ type: 'boolean',
465
+ label: 'Vim Mode',
466
+ category: 'UI',
467
+ requiresRestart: false,
468
+ default: false,
469
+ description: 'Enable Vim keybindings in the input field.',
470
+ showInDialog: true,
471
+ },
472
+ ideMode: {
473
+ type: 'boolean',
474
+ label: 'IDE Mode',
475
+ category: 'UI',
476
+ requiresRestart: false,
477
+ default: false,
478
+ description: 'Enable IDE integration mode.',
479
+ showInDialog: true,
480
+ },
481
+ preferredEditor: {
482
+ type: 'string',
483
+ label: 'Preferred Editor',
484
+ category: 'UI',
485
+ requiresRestart: false,
486
+ default: undefined,
487
+ description: 'The preferred code editor for opening files.',
488
+ showInDialog: false,
489
+ },
490
+ autoConfigureMaxOldSpaceSize: {
491
+ type: 'boolean',
492
+ label: 'Auto Configure Max Old Space Size',
493
+ category: 'UI',
494
+ requiresRestart: true,
495
+ default: true,
496
+ description: 'Automatically configure Node.js max old space size based on system memory.',
497
+ showInDialog: true,
498
+ },
499
+ historyMaxItems: {
500
+ type: 'number',
501
+ label: 'History Max Items',
502
+ category: 'UI',
503
+ requiresRestart: false,
504
+ default: 100,
505
+ description: 'Maximum number of history items to keep.',
506
+ showInDialog: false,
507
+ },
508
+ historyMaxBytes: {
509
+ type: 'number',
510
+ label: 'History Max Bytes',
511
+ category: 'UI',
512
+ requiresRestart: false,
513
+ default: 1048576,
514
+ description: 'Maximum size of history in bytes.',
515
+ showInDialog: false,
516
+ },
517
+ memoryImportFormat: {
518
+ type: 'string',
519
+ label: 'Memory Import Format',
520
+ category: 'UI',
521
+ requiresRestart: false,
522
+ default: 'tree',
523
+ description: 'Format for importing memory files (tree or flat).',
524
+ showInDialog: false,
525
+ },
526
+ memoryDiscoveryMaxDirs: {
527
+ type: 'number',
528
+ label: 'Memory Discovery Max Dirs',
529
+ category: 'UI',
530
+ requiresRestart: false,
531
+ default: undefined,
532
+ description: 'Maximum number of directories to scan for memory files.',
533
+ showInDialog: false,
534
+ },
535
+ contextFileName: {
536
+ type: 'string',
537
+ label: 'Context File Name',
538
+ category: 'UI',
539
+ requiresRestart: false,
540
+ default: undefined,
541
+ description: 'The name of the context file to use.',
542
+ showInDialog: false,
543
+ },
544
+ usageStatisticsEnabled: {
545
+ type: 'boolean',
546
+ label: 'Usage Statistics Enabled',
547
+ category: 'UI',
548
+ requiresRestart: false,
549
+ default: true,
550
+ description: 'Enable anonymous usage statistics collection.',
551
+ showInDialog: false,
552
+ },
553
+ maxSessionTurns: {
554
+ type: 'number',
555
+ label: 'Max Session Turns',
556
+ category: 'UI',
557
+ requiresRestart: false,
558
+ default: -1,
559
+ description: 'Maximum number of turns in a session (-1 for unlimited).',
560
+ showInDialog: false,
561
+ },
562
+ showTodoPanel: {
563
+ type: 'boolean',
564
+ label: 'Show Todo Panel',
565
+ category: 'UI',
566
+ requiresRestart: false,
567
+ default: true,
568
+ description: 'Show the todo panel in the UI.',
569
+ showInDialog: true,
570
+ },
571
+ },
572
+ },
573
+ ide: {
574
+ type: 'object',
575
+ label: 'IDE',
576
+ category: 'IDE',
577
+ requiresRestart: true,
578
+ default: {},
579
+ description: 'IDE integration settings.',
580
+ showInDialog: false,
581
+ properties: {},
582
+ },
583
+ showStatusInTitle: {
584
+ type: 'boolean',
585
+ label: 'Show Status in Title',
586
+ category: 'UI',
587
+ requiresRestart: false,
588
+ default: false,
589
+ description: 'Show LLxprt status and thoughts in the terminal window title',
590
+ showInDialog: true,
591
+ },
435
592
  // Footer configuration settings - adapted to llxprt's flat structure
436
593
  hideCWD: {
437
594
  type: 'boolean',
@@ -532,15 +689,6 @@ export const SETTINGS_SCHEMA = {
532
689
  description: 'Sandbox execution environment (can be a boolean or a path string).',
533
690
  showInDialog: false,
534
691
  },
535
- usePty: {
536
- type: 'boolean',
537
- label: 'Use node-pty for Shell Execution',
538
- category: 'Tools',
539
- requiresRestart: true,
540
- default: false,
541
- description: 'Use node-pty for shell command execution. Fallback to child_process still applies.',
542
- showInDialog: true,
543
- },
544
692
  autoAccept: {
545
693
  type: 'boolean',
546
694
  label: 'Auto Accept',
@@ -604,6 +752,42 @@ export const SETTINGS_SCHEMA = {
604
752
  description: 'Use ripgrep for file content search instead of the fallback implementation. Provides faster search performance.',
605
753
  showInDialog: true,
606
754
  },
755
+ enableToolOutputTruncation: {
756
+ type: 'boolean',
757
+ label: 'Enable Tool Output Truncation',
758
+ category: 'Tools',
759
+ requiresRestart: true,
760
+ default: true,
761
+ description: 'Enable truncation of large tool outputs.',
762
+ showInDialog: true,
763
+ },
764
+ truncateToolOutputThreshold: {
765
+ type: 'number',
766
+ label: 'Tool Output Truncation Threshold',
767
+ category: 'Tools',
768
+ requiresRestart: true,
769
+ default: DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
770
+ description: 'Truncate tool output if it is larger than this many characters. Set to -1 to disable.',
771
+ showInDialog: true,
772
+ },
773
+ truncateToolOutputLines: {
774
+ type: 'number',
775
+ label: 'Tool Output Truncation Lines',
776
+ category: 'Tools',
777
+ requiresRestart: true,
778
+ default: DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
779
+ description: 'The number of lines to keep when truncating tool output.',
780
+ showInDialog: true,
781
+ },
782
+ policyPath: {
783
+ type: 'string',
784
+ label: 'Policy File Path',
785
+ category: 'Tools',
786
+ requiresRestart: false,
787
+ default: undefined,
788
+ description: 'Absolute path to a TOML policy file that augments the built-in policy rules.',
789
+ showInDialog: false,
790
+ },
607
791
  },
608
792
  },
609
793
  mcp: {
@@ -863,7 +1047,11 @@ export const SETTINGS_SCHEMA = {
863
1047
  label: 'Extensions',
864
1048
  category: 'Extensions',
865
1049
  requiresRestart: true,
866
- default: {},
1050
+ default: {
1051
+ disabled: [],
1052
+ workspacesWithMigrationNudge: [],
1053
+ autoUpdate: DEFAULT_EXTENSION_AUTO_UPDATE,
1054
+ },
867
1055
  description: 'Settings for extensions.',
868
1056
  showInDialog: false,
869
1057
  properties: {
@@ -885,6 +1073,72 @@ export const SETTINGS_SCHEMA = {
885
1073
  description: 'List of workspaces for which the migration nudge has been shown.',
886
1074
  showInDialog: false,
887
1075
  },
1076
+ autoUpdate: {
1077
+ type: 'object',
1078
+ label: 'Extension Auto-Update',
1079
+ category: 'Extensions',
1080
+ requiresRestart: false,
1081
+ default: DEFAULT_EXTENSION_AUTO_UPDATE,
1082
+ description: 'Configure how llxprt-code checks for and applies extension updates.',
1083
+ showInDialog: false,
1084
+ properties: {
1085
+ enabled: {
1086
+ type: 'boolean',
1087
+ label: 'Enable Auto-Update',
1088
+ category: 'Extensions',
1089
+ requiresRestart: false,
1090
+ default: true,
1091
+ description: 'Automatically check for updates to globally installed extensions.',
1092
+ showInDialog: false,
1093
+ },
1094
+ checkIntervalHours: {
1095
+ type: 'number',
1096
+ label: 'Auto-Update Interval (hours)',
1097
+ category: 'Extensions',
1098
+ requiresRestart: false,
1099
+ default: 24,
1100
+ description: 'How often llxprt-code should check for extension updates.',
1101
+ showInDialog: false,
1102
+ },
1103
+ installMode: {
1104
+ type: 'enum',
1105
+ label: 'Install Mode',
1106
+ category: 'Extensions',
1107
+ requiresRestart: false,
1108
+ default: 'immediate',
1109
+ description: 'Choose whether updates apply immediately, on restart, or manually.',
1110
+ showInDialog: false,
1111
+ options: [
1112
+ { value: 'immediate', label: 'Immediate' },
1113
+ { value: 'on-restart', label: 'On Restart' },
1114
+ { value: 'manual', label: 'Manual' },
1115
+ ],
1116
+ },
1117
+ notificationLevel: {
1118
+ type: 'enum',
1119
+ label: 'Notification Level',
1120
+ category: 'Extensions',
1121
+ requiresRestart: false,
1122
+ default: 'toast',
1123
+ description: 'Controls how aggressively update notifications are surfaced.',
1124
+ showInDialog: false,
1125
+ options: [
1126
+ { value: 'toast', label: 'Toast' },
1127
+ { value: 'dialog', label: 'Dialog' },
1128
+ { value: 'silent', label: 'Silent' },
1129
+ ],
1130
+ },
1131
+ perExtension: {
1132
+ type: 'object',
1133
+ label: 'Per Extension Overrides',
1134
+ category: 'Extensions',
1135
+ requiresRestart: false,
1136
+ default: DEFAULT_EXTENSION_AUTO_UPDATE.perExtension,
1137
+ description: 'Override auto-update behavior for individual extensions (by extension name).',
1138
+ showInDialog: false,
1139
+ },
1140
+ },
1141
+ },
888
1142
  },
889
1143
  },
890
1144
  // Text-based tool call parsing settings