@vybestack/llxprt-code 0.1.20 → 0.1.21

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 (341) hide show
  1. package/README.md +31 -0
  2. package/dist/package.json +3 -3
  3. package/dist/src/config/auth.test.d.ts +6 -0
  4. package/dist/src/config/auth.test.js +57 -0
  5. package/dist/src/config/auth.test.js.map +1 -0
  6. package/dist/src/config/config.d.ts +1 -1
  7. package/dist/src/config/config.js +27 -14
  8. package/dist/src/config/config.js.map +1 -1
  9. package/dist/src/config/keyBindings.js +2 -2
  10. package/dist/src/config/keyBindings.test.d.ts +6 -0
  11. package/dist/src/config/keyBindings.test.js +51 -0
  12. package/dist/src/config/keyBindings.test.js.map +1 -0
  13. package/dist/src/config/logging/loggingConfig.test.d.ts +6 -0
  14. package/dist/src/config/logging/loggingConfig.test.js +363 -0
  15. package/dist/src/config/logging/loggingConfig.test.js.map +1 -0
  16. package/dist/src/config/settingsSchema.d.ts +0 -9
  17. package/dist/src/config/settingsSchema.js +0 -9
  18. package/dist/src/config/settingsSchema.js.map +1 -1
  19. package/dist/src/config/settingsSchema.test.d.ts +6 -0
  20. package/dist/src/config/settingsSchema.test.js +195 -0
  21. package/dist/src/config/settingsSchema.test.js.map +1 -0
  22. package/dist/src/config/trustedFolders.test.d.ts +6 -0
  23. package/dist/src/config/trustedFolders.test.js +156 -0
  24. package/dist/src/config/trustedFolders.test.js.map +1 -0
  25. package/dist/src/gemini.js +14 -4
  26. package/dist/src/gemini.js.map +1 -1
  27. package/dist/src/gemini.test.d.ts +6 -0
  28. package/dist/src/gemini.test.js +199 -0
  29. package/dist/src/gemini.test.js.map +1 -0
  30. package/dist/src/generated/git-commit.d.ts +1 -1
  31. package/dist/src/generated/git-commit.js +1 -1
  32. package/dist/src/integration-tests/base-url-behavior.integration.test.d.ts +6 -0
  33. package/dist/src/integration-tests/base-url-behavior.integration.test.js +492 -0
  34. package/dist/src/integration-tests/base-url-behavior.integration.test.js.map +1 -0
  35. package/dist/src/integration-tests/cli-args.integration.test.d.ts +6 -0
  36. package/dist/src/integration-tests/cli-args.integration.test.js +398 -0
  37. package/dist/src/integration-tests/cli-args.integration.test.js.map +1 -0
  38. package/dist/src/integration-tests/compression-settings-apply.integration.test.d.ts +6 -0
  39. package/dist/src/integration-tests/compression-settings-apply.integration.test.js +436 -0
  40. package/dist/src/integration-tests/compression-settings-apply.integration.test.js.map +1 -0
  41. package/dist/src/integration-tests/ephemeral-settings.integration.test.d.ts +6 -0
  42. package/dist/src/integration-tests/ephemeral-settings.integration.test.js +290 -0
  43. package/dist/src/integration-tests/ephemeral-settings.integration.test.js.map +1 -0
  44. package/dist/src/integration-tests/model-params-isolation.integration.test.d.ts +6 -0
  45. package/dist/src/integration-tests/model-params-isolation.integration.test.js +564 -0
  46. package/dist/src/integration-tests/model-params-isolation.integration.test.js.map +1 -0
  47. package/dist/src/integration-tests/modelParams.integration.test.d.ts +6 -0
  48. package/dist/src/integration-tests/modelParams.integration.test.js +784 -0
  49. package/dist/src/integration-tests/modelParams.integration.test.js.map +1 -0
  50. package/dist/src/integration-tests/profile-keyfile.integration.test.d.ts +6 -0
  51. package/dist/src/integration-tests/profile-keyfile.integration.test.js +429 -0
  52. package/dist/src/integration-tests/profile-keyfile.integration.test.js.map +1 -0
  53. package/dist/src/integration-tests/profile-system.integration.test.d.ts +6 -0
  54. package/dist/src/integration-tests/profile-system.integration.test.js +364 -0
  55. package/dist/src/integration-tests/profile-system.integration.test.js.map +1 -0
  56. package/dist/src/integration-tests/provider-switching.integration.test.d.ts +6 -0
  57. package/dist/src/integration-tests/provider-switching.integration.test.js +207 -0
  58. package/dist/src/integration-tests/provider-switching.integration.test.js.map +1 -0
  59. package/dist/src/integration-tests/security.integration.test.d.ts +6 -0
  60. package/dist/src/integration-tests/security.integration.test.js +319 -0
  61. package/dist/src/integration-tests/security.integration.test.js.map +1 -0
  62. package/dist/src/integration-tests/test-utils.test.d.ts +6 -0
  63. package/dist/src/integration-tests/test-utils.test.js +221 -0
  64. package/dist/src/integration-tests/test-utils.test.js.map +1 -0
  65. package/dist/src/integration-tests/todo-continuation.integration.test.d.ts +6 -0
  66. package/dist/src/integration-tests/todo-continuation.integration.test.js +559 -0
  67. package/dist/src/integration-tests/todo-continuation.integration.test.js.map +1 -0
  68. package/dist/src/providers/logging/LoggingProviderWrapper.test.d.ts +6 -0
  69. package/dist/src/providers/logging/LoggingProviderWrapper.test.js +305 -0
  70. package/dist/src/providers/logging/LoggingProviderWrapper.test.js.map +1 -0
  71. package/dist/src/providers/logging/git-stats.integration.test.d.ts +6 -0
  72. package/dist/src/providers/logging/git-stats.integration.test.js +245 -0
  73. package/dist/src/providers/logging/git-stats.integration.test.js.map +1 -0
  74. package/dist/src/providers/logging/git-stats.test.d.ts +6 -0
  75. package/dist/src/providers/logging/git-stats.test.js +432 -0
  76. package/dist/src/providers/logging/git-stats.test.js.map +1 -0
  77. package/dist/src/providers/logging/multi-provider-logging.integration.test.d.ts +6 -0
  78. package/dist/src/providers/logging/multi-provider-logging.integration.test.js +531 -0
  79. package/dist/src/providers/logging/multi-provider-logging.integration.test.js.map +1 -0
  80. package/dist/src/providers/logging/performance.test.d.ts +6 -0
  81. package/dist/src/providers/logging/performance.test.js +465 -0
  82. package/dist/src/providers/logging/performance.test.js.map +1 -0
  83. package/dist/src/providers/provider-gemini-switching.test.d.ts +6 -0
  84. package/dist/src/providers/provider-gemini-switching.test.js +129 -0
  85. package/dist/src/providers/provider-gemini-switching.test.js.map +1 -0
  86. package/dist/src/providers/provider-switching.integration.test.d.ts +6 -0
  87. package/dist/src/providers/provider-switching.integration.test.js +113 -0
  88. package/dist/src/providers/provider-switching.integration.test.js.map +1 -0
  89. package/dist/src/providers/providerManagerInstance.test.d.ts +6 -0
  90. package/dist/src/providers/providerManagerInstance.test.js +104 -0
  91. package/dist/src/providers/providerManagerInstance.test.js.map +1 -0
  92. package/dist/src/services/BuiltinCommandLoader.test.d.ts +6 -0
  93. package/dist/src/services/BuiltinCommandLoader.test.js +118 -0
  94. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -0
  95. package/dist/src/services/CommandService.test.d.ts +6 -0
  96. package/dist/src/services/CommandService.test.js +232 -0
  97. package/dist/src/services/CommandService.test.js.map +1 -0
  98. package/dist/src/storage/ConversationStorage.test.d.ts +6 -0
  99. package/dist/src/storage/ConversationStorage.test.js +379 -0
  100. package/dist/src/storage/ConversationStorage.test.js.map +1 -0
  101. package/dist/src/test-utils/customMatchers.d.ts +14 -0
  102. package/dist/src/test-utils/customMatchers.js +46 -0
  103. package/dist/src/test-utils/customMatchers.js.map +1 -0
  104. package/dist/src/test-utils/mockCommandContext.d.ts +18 -0
  105. package/dist/src/test-utils/mockCommandContext.js +86 -0
  106. package/dist/src/test-utils/mockCommandContext.js.map +1 -0
  107. package/dist/src/test-utils/mockCommandContext.test.d.ts +6 -0
  108. package/dist/src/test-utils/mockCommandContext.test.js +51 -0
  109. package/dist/src/test-utils/mockCommandContext.test.js.map +1 -0
  110. package/dist/src/test-utils/responsive-testing.d.ts +14 -0
  111. package/dist/src/test-utils/responsive-testing.js +35 -0
  112. package/dist/src/test-utils/responsive-testing.js.map +1 -0
  113. package/dist/src/test-utils/responsive-testing.test.d.ts +6 -0
  114. package/dist/src/test-utils/responsive-testing.test.js +89 -0
  115. package/dist/src/test-utils/responsive-testing.test.js.map +1 -0
  116. package/dist/src/test-utils/testProviderConfig.d.ts +18 -0
  117. package/dist/src/test-utils/testProviderConfig.js +19 -0
  118. package/dist/src/test-utils/testProviderConfig.js.map +1 -0
  119. package/dist/src/ui/App.js +1 -1
  120. package/dist/src/ui/App.js.map +1 -1
  121. package/dist/src/ui/IdeIntegrationNudge.js +1 -1
  122. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  123. package/dist/src/ui/commands/chatCommand.js +8 -6
  124. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  125. package/dist/src/ui/commands/diagnosticsCommand.js +0 -1
  126. package/dist/src/ui/commands/diagnosticsCommand.js.map +1 -1
  127. package/dist/src/ui/commands/ideCommand.js +5 -5
  128. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  129. package/dist/src/ui/commands/keyCommand.test.d.ts +6 -0
  130. package/dist/src/ui/commands/keyCommand.test.js +128 -0
  131. package/dist/src/ui/commands/keyCommand.test.js.map +1 -0
  132. package/dist/src/ui/commands/profileCommand.test.d.ts +6 -0
  133. package/dist/src/ui/commands/profileCommand.test.js +343 -0
  134. package/dist/src/ui/commands/profileCommand.test.js.map +1 -0
  135. package/dist/src/ui/commands/setCommand.test.d.ts +6 -0
  136. package/dist/src/ui/commands/setCommand.test.js +431 -0
  137. package/dist/src/ui/commands/setCommand.test.js.map +1 -0
  138. package/dist/src/ui/commands/setupGithubCommand.test.d.ts +6 -0
  139. package/dist/src/ui/commands/setupGithubCommand.test.js +69 -0
  140. package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -0
  141. package/dist/src/ui/commands/toolformatCommand.test.d.ts +1 -0
  142. package/dist/src/ui/commands/toolformatCommand.test.js +145 -0
  143. package/dist/src/ui/commands/toolformatCommand.test.js.map +1 -0
  144. package/dist/src/ui/components/AuthDialog.js +1 -1
  145. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  146. package/dist/src/ui/components/AuthDialog.test.d.ts +6 -0
  147. package/dist/src/ui/components/AuthDialog.test.js +252 -0
  148. package/dist/src/ui/components/AuthDialog.test.js.map +1 -0
  149. package/dist/src/ui/components/ContextIndicator.ui.test.d.ts +1 -0
  150. package/dist/src/ui/components/ContextIndicator.ui.test.js +89 -0
  151. package/dist/src/ui/components/ContextIndicator.ui.test.js.map +1 -0
  152. package/dist/src/ui/components/ContextSummaryDisplay.js +1 -1
  153. package/dist/src/ui/components/ContextUsageDisplay.semantic.test.d.ts +6 -0
  154. package/dist/src/ui/components/ContextUsageDisplay.semantic.test.js +75 -0
  155. package/dist/src/ui/components/ContextUsageDisplay.semantic.test.js.map +1 -0
  156. package/dist/src/ui/components/FolderTrustDialog.test.d.ts +6 -0
  157. package/dist/src/ui/components/FolderTrustDialog.test.js +26 -0
  158. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -0
  159. package/dist/src/ui/components/Footer.d.ts +1 -0
  160. package/dist/src/ui/components/Footer.js +2 -2
  161. package/dist/src/ui/components/Footer.js.map +1 -1
  162. package/dist/src/ui/components/Footer.responsive.test.d.ts +6 -0
  163. package/dist/src/ui/components/Footer.responsive.test.js +262 -0
  164. package/dist/src/ui/components/Footer.responsive.test.js.map +1 -0
  165. package/dist/src/ui/components/HistoryItemDisplay.test.d.ts +6 -0
  166. package/dist/src/ui/components/HistoryItemDisplay.test.js +92 -0
  167. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -0
  168. package/dist/src/ui/components/InputPrompt.paste.test.d.ts +6 -0
  169. package/dist/src/ui/components/InputPrompt.paste.test.js +263 -0
  170. package/dist/src/ui/components/InputPrompt.paste.test.js.map +1 -0
  171. package/dist/src/ui/components/LoadingIndicator.test.d.ts +6 -0
  172. package/dist/src/ui/components/LoadingIndicator.test.js +149 -0
  173. package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -0
  174. package/dist/src/ui/components/MemoryUsageDisplay.semantic.test.d.ts +6 -0
  175. package/dist/src/ui/components/MemoryUsageDisplay.semantic.test.js +127 -0
  176. package/dist/src/ui/components/MemoryUsageDisplay.semantic.test.js.map +1 -0
  177. package/dist/src/ui/components/ProviderDialog.responsive.test.d.ts +6 -0
  178. package/dist/src/ui/components/ProviderDialog.responsive.test.js +153 -0
  179. package/dist/src/ui/components/ProviderDialog.responsive.test.js.map +1 -0
  180. package/dist/src/ui/components/ProviderModelDialog.responsive.test.d.ts +6 -0
  181. package/dist/src/ui/components/ProviderModelDialog.responsive.test.js +252 -0
  182. package/dist/src/ui/components/ProviderModelDialog.responsive.test.js.map +1 -0
  183. package/dist/src/ui/components/ProviderModelDialog.test.d.ts +6 -0
  184. package/dist/src/ui/components/ProviderModelDialog.test.js +197 -0
  185. package/dist/src/ui/components/ProviderModelDialog.test.js.map +1 -0
  186. package/dist/src/ui/components/SettingsDialog.test.d.ts +6 -0
  187. package/dist/src/ui/components/SettingsDialog.test.js +555 -0
  188. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -0
  189. package/dist/src/ui/components/ShellConfirmationDialog.test.d.ts +6 -0
  190. package/dist/src/ui/components/ShellConfirmationDialog.test.js +40 -0
  191. package/dist/src/ui/components/ShellConfirmationDialog.test.js.map +1 -0
  192. package/dist/src/ui/components/TodoPanel.responsive.test.d.ts +6 -0
  193. package/dist/src/ui/components/TodoPanel.responsive.test.js +221 -0
  194. package/dist/src/ui/components/TodoPanel.responsive.test.js.map +1 -0
  195. package/dist/src/ui/components/TodoPanel.semantic.test.d.ts +6 -0
  196. package/dist/src/ui/components/TodoPanel.semantic.test.js +137 -0
  197. package/dist/src/ui/components/TodoPanel.semantic.test.js.map +1 -0
  198. package/dist/src/ui/components/__tests__/LayoutManager.test.d.ts +6 -0
  199. package/dist/src/ui/components/__tests__/LayoutManager.test.js +94 -0
  200. package/dist/src/ui/components/__tests__/LayoutManager.test.js.map +1 -0
  201. package/dist/src/ui/components/messages/DiffRenderer.js +9 -7
  202. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
  203. package/dist/src/ui/components/messages/DiffRenderer.test.d.ts +6 -0
  204. package/dist/src/ui/components/messages/DiffRenderer.test.js +239 -0
  205. package/dist/src/ui/components/messages/DiffRenderer.test.js.map +1 -0
  206. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +13 -4
  207. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  208. package/dist/src/ui/components/messages/ToolConfirmationMessage.responsive.test.d.ts +6 -0
  209. package/dist/src/ui/components/messages/ToolConfirmationMessage.responsive.test.js +172 -0
  210. package/dist/src/ui/components/messages/ToolConfirmationMessage.responsive.test.js.map +1 -0
  211. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.d.ts +6 -0
  212. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +37 -0
  213. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -0
  214. package/dist/src/ui/components/messages/ToolMessage.test.d.ts +6 -0
  215. package/dist/src/ui/components/messages/ToolMessage.test.js +118 -0
  216. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -0
  217. package/dist/src/ui/components/shared/MaxSizedBox.test.d.ts +6 -0
  218. package/dist/src/ui/components/shared/MaxSizedBox.test.js +154 -0
  219. package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +1 -0
  220. package/dist/src/ui/components/shared/RadioButtonSelect.js +1 -1
  221. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  222. package/dist/src/ui/components/shared/RadioButtonSelect.test.d.ts +6 -0
  223. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +112 -0
  224. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +1 -0
  225. package/dist/src/ui/containers/SessionController.test.d.ts +6 -0
  226. package/dist/src/ui/containers/SessionController.test.js +440 -0
  227. package/dist/src/ui/containers/SessionController.test.js.map +1 -0
  228. package/dist/src/ui/hooks/atCommandProcessor.test.d.ts +6 -0
  229. package/dist/src/ui/hooks/atCommandProcessor.test.js +830 -0
  230. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -0
  231. package/dist/src/ui/hooks/shellCommandProcessor.test.d.ts +6 -0
  232. package/dist/src/ui/hooks/shellCommandProcessor.test.js +328 -0
  233. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -0
  234. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.d.ts +6 -0
  235. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +191 -0
  236. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -0
  237. package/dist/src/ui/hooks/useEditorSettings.test.d.ts +6 -0
  238. package/dist/src/ui/hooks/useEditorSettings.test.js +221 -0
  239. package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -0
  240. package/dist/src/ui/hooks/useGeminiStream.integration.test.d.ts +6 -0
  241. package/dist/src/ui/hooks/useGeminiStream.integration.test.js +800 -0
  242. package/dist/src/ui/hooks/useGeminiStream.integration.test.js.map +1 -0
  243. package/dist/src/ui/hooks/useGeminiStream.js +12 -47
  244. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  245. package/dist/src/ui/hooks/useGitBranchName.test.d.ts +6 -0
  246. package/dist/src/ui/hooks/useGitBranchName.test.js +170 -0
  247. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -0
  248. package/dist/src/ui/hooks/useHistoryManager.test.d.ts +6 -0
  249. package/dist/src/ui/hooks/useHistoryManager.test.js +171 -0
  250. package/dist/src/ui/hooks/useHistoryManager.test.js.map +1 -0
  251. package/dist/src/ui/hooks/useInputHistory.test.d.ts +6 -0
  252. package/dist/src/ui/hooks/useInputHistory.test.js +207 -0
  253. package/dist/src/ui/hooks/useInputHistory.test.js.map +1 -0
  254. package/dist/src/ui/hooks/useKeypress.test.d.ts +6 -0
  255. package/dist/src/ui/hooks/useKeypress.test.js +171 -0
  256. package/dist/src/ui/hooks/useKeypress.test.js.map +1 -0
  257. package/dist/src/ui/hooks/useResponsive.test.d.ts +6 -0
  258. package/dist/src/ui/hooks/useResponsive.test.js +124 -0
  259. package/dist/src/ui/hooks/useResponsive.test.js.map +1 -0
  260. package/dist/src/ui/hooks/useReverseSearchCompletion.test.d.ts +6 -0
  261. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +163 -0
  262. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +1 -0
  263. package/dist/src/ui/hooks/useShellHistory.test.d.ts +6 -0
  264. package/dist/src/ui/hooks/useShellHistory.test.js +162 -0
  265. package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -0
  266. package/dist/src/ui/hooks/useSlashCompletion.test.d.ts +6 -0
  267. package/dist/src/ui/hooks/useSlashCompletion.test.js +929 -0
  268. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -0
  269. package/dist/src/ui/hooks/useStableCallback.test.d.ts +6 -0
  270. package/dist/src/ui/hooks/useStableCallback.test.js +57 -0
  271. package/dist/src/ui/hooks/useStableCallback.test.js.map +1 -0
  272. package/dist/src/ui/keyMatchers.test.d.ts +6 -0
  273. package/dist/src/ui/keyMatchers.test.js +276 -0
  274. package/dist/src/ui/keyMatchers.test.js.map +1 -0
  275. package/dist/src/ui/reducers/appReducer.test.d.ts +6 -0
  276. package/dist/src/ui/reducers/appReducer.test.js +519 -0
  277. package/dist/src/ui/reducers/appReducer.test.js.map +1 -0
  278. package/dist/src/ui/themes/color-utils.test.d.ts +6 -0
  279. package/dist/src/ui/themes/color-utils.test.js +197 -0
  280. package/dist/src/ui/themes/color-utils.test.js.map +1 -0
  281. package/dist/src/ui/themes/semantic-resolver.test.d.ts +6 -0
  282. package/dist/src/ui/themes/semantic-resolver.test.js +210 -0
  283. package/dist/src/ui/themes/semantic-resolver.test.js.map +1 -0
  284. package/dist/src/ui/themes/semantic-tokens.test.d.ts +6 -0
  285. package/dist/src/ui/themes/semantic-tokens.test.js +272 -0
  286. package/dist/src/ui/themes/semantic-tokens.test.js.map +1 -0
  287. package/dist/src/ui/themes/theme-manager.test.d.ts +6 -0
  288. package/dist/src/ui/themes/theme-manager.test.js +151 -0
  289. package/dist/src/ui/themes/theme-manager.test.js.map +1 -0
  290. package/dist/src/ui/utils/MarkdownDisplay.test.d.ts +6 -0
  291. package/dist/src/ui/utils/MarkdownDisplay.test.js +151 -0
  292. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -0
  293. package/dist/src/ui/utils/clipboardUtils.test.d.ts +6 -0
  294. package/dist/src/ui/utils/clipboardUtils.test.js +65 -0
  295. package/dist/src/ui/utils/clipboardUtils.test.js.map +1 -0
  296. package/dist/src/ui/utils/commandUtils.test.d.ts +6 -0
  297. package/dist/src/ui/utils/commandUtils.test.js +294 -0
  298. package/dist/src/ui/utils/commandUtils.test.js.map +1 -0
  299. package/dist/src/ui/utils/displayUtils.test.d.ts +6 -0
  300. package/dist/src/ui/utils/displayUtils.test.js +42 -0
  301. package/dist/src/ui/utils/displayUtils.test.js.map +1 -0
  302. package/dist/src/ui/utils/formatters.test.d.ts +6 -0
  303. package/dist/src/ui/utils/formatters.test.js +56 -0
  304. package/dist/src/ui/utils/formatters.test.js.map +1 -0
  305. package/dist/src/ui/utils/markdownUtilities.test.d.ts +6 -0
  306. package/dist/src/ui/utils/markdownUtilities.test.js +42 -0
  307. package/dist/src/ui/utils/markdownUtilities.test.js.map +1 -0
  308. package/dist/src/ui/utils/responsive.test.d.ts +6 -0
  309. package/dist/src/ui/utils/responsive.test.js +107 -0
  310. package/dist/src/ui/utils/responsive.test.js.map +1 -0
  311. package/dist/src/ui/utils/secureInputHandler.test.d.ts +6 -0
  312. package/dist/src/ui/utils/secureInputHandler.test.js +274 -0
  313. package/dist/src/ui/utils/secureInputHandler.test.js.map +1 -0
  314. package/dist/src/ui/utils/updateCheck.test.d.ts +6 -0
  315. package/dist/src/ui/utils/updateCheck.test.js +202 -0
  316. package/dist/src/ui/utils/updateCheck.test.js.map +1 -0
  317. package/dist/src/utils/ConversationContext.test.d.ts +6 -0
  318. package/dist/src/utils/ConversationContext.test.js +64 -0
  319. package/dist/src/utils/ConversationContext.test.js.map +1 -0
  320. package/dist/src/utils/gitUtils.test.d.ts +6 -0
  321. package/dist/src/utils/gitUtils.test.js +113 -0
  322. package/dist/src/utils/gitUtils.test.js.map +1 -0
  323. package/dist/src/utils/installationInfo.test.d.ts +6 -0
  324. package/dist/src/utils/installationInfo.test.js +242 -0
  325. package/dist/src/utils/installationInfo.test.js.map +1 -0
  326. package/dist/src/utils/privacy/ConversationDataRedactor.test.d.ts +6 -0
  327. package/dist/src/utils/privacy/ConversationDataRedactor.test.js +463 -0
  328. package/dist/src/utils/privacy/ConversationDataRedactor.test.js.map +1 -0
  329. package/dist/src/utils/readStdin.js +10 -0
  330. package/dist/src/utils/readStdin.js.map +1 -1
  331. package/dist/src/utils/sandbox.js +2 -2
  332. package/dist/src/utils/sandbox.js.map +1 -1
  333. package/dist/src/utils/settingsUtils.test.d.ts +6 -0
  334. package/dist/src/utils/settingsUtils.test.js +514 -0
  335. package/dist/src/utils/settingsUtils.test.js.map +1 -0
  336. package/dist/src/utils/userStartupWarnings.js +2 -2
  337. package/dist/src/utils/userStartupWarnings.test.d.ts +6 -0
  338. package/dist/src/utils/userStartupWarnings.test.js +67 -0
  339. package/dist/src/utils/userStartupWarnings.test.js.map +1 -0
  340. package/dist/tsconfig.tsbuildinfo +1 -1
  341. package/package.json +3 -3
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,514 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect } from 'vitest';
7
+ import {
8
+ // Schema utilities
9
+ getSettingsByCategory, getSettingDefinition, requiresRestart, getDefaultValue, getRestartRequiredSettings, getEffectiveValue, getAllSettingKeys, getSettingsByType, getSettingsRequiringRestart, isValidSettingKey, getSettingCategory, shouldShowInDialog, getDialogSettingsByCategory, getDialogSettingsByType, getDialogSettingKeys,
10
+ // Business logic utilities
11
+ getSettingValue, isSettingModified, settingExistsInScope, setPendingSettingValue, hasRestartRequiredSettings, getRestartRequiredFromModified, getDisplayValue, isDefaultValue, isValueInherited, getEffectiveDisplayValue, } from './settingsUtils.js';
12
+ describe('SettingsUtils', () => {
13
+ describe('Schema Utilities', () => {
14
+ describe('getSettingsByCategory', () => {
15
+ it('should group settings by category', () => {
16
+ const categories = getSettingsByCategory();
17
+ expect(categories).toHaveProperty('General');
18
+ expect(categories).toHaveProperty('Accessibility');
19
+ expect(categories).toHaveProperty('Checkpointing');
20
+ expect(categories).toHaveProperty('File Filtering');
21
+ expect(categories).toHaveProperty('UI');
22
+ expect(categories).toHaveProperty('Mode');
23
+ expect(categories).toHaveProperty('Updates');
24
+ });
25
+ it('should include key property in grouped settings', () => {
26
+ const categories = getSettingsByCategory();
27
+ Object.entries(categories).forEach(([_category, settings]) => {
28
+ settings.forEach((setting) => {
29
+ expect(setting.key).toBeDefined();
30
+ });
31
+ });
32
+ });
33
+ });
34
+ describe('getSettingDefinition', () => {
35
+ it('should return definition for valid setting', () => {
36
+ const definition = getSettingDefinition('showMemoryUsage');
37
+ expect(definition).toBeDefined();
38
+ expect(definition?.label).toBe('Show Memory Usage');
39
+ });
40
+ it('should return undefined for invalid setting', () => {
41
+ const definition = getSettingDefinition('invalidSetting');
42
+ expect(definition).toBeUndefined();
43
+ });
44
+ });
45
+ describe('requiresRestart', () => {
46
+ it('should return true for settings that require restart', () => {
47
+ expect(requiresRestart('autoConfigureMaxOldSpaceSize')).toBe(true);
48
+ expect(requiresRestart('checkpointing.enabled')).toBe(true);
49
+ });
50
+ it('should return false for settings that do not require restart', () => {
51
+ expect(requiresRestart('showMemoryUsage')).toBe(false);
52
+ expect(requiresRestart('hideTips')).toBe(false);
53
+ });
54
+ it('should return false for invalid settings', () => {
55
+ expect(requiresRestart('invalidSetting')).toBe(false);
56
+ });
57
+ });
58
+ describe('getDefaultValue', () => {
59
+ it('should return correct default values', () => {
60
+ expect(getDefaultValue('showMemoryUsage')).toBe(false);
61
+ expect(getDefaultValue('fileFiltering.enableRecursiveFileSearch')).toBe(true);
62
+ });
63
+ it('should return undefined for invalid settings', () => {
64
+ expect(getDefaultValue('invalidSetting')).toBeUndefined();
65
+ });
66
+ });
67
+ describe('getRestartRequiredSettings', () => {
68
+ it('should return all settings that require restart', () => {
69
+ const restartSettings = getRestartRequiredSettings();
70
+ expect(restartSettings).toContain('autoConfigureMaxOldSpaceSize');
71
+ expect(restartSettings).toContain('checkpointing.enabled');
72
+ expect(restartSettings).not.toContain('showMemoryUsage');
73
+ });
74
+ });
75
+ describe('getEffectiveValue', () => {
76
+ it('should return value from settings when set', () => {
77
+ const settings = { showMemoryUsage: true };
78
+ const mergedSettings = { showMemoryUsage: false };
79
+ const value = getEffectiveValue('showMemoryUsage', settings, mergedSettings);
80
+ expect(value).toBe(true);
81
+ });
82
+ it('should return value from merged settings when not set in current scope', () => {
83
+ const settings = {};
84
+ const mergedSettings = { showMemoryUsage: true };
85
+ const value = getEffectiveValue('showMemoryUsage', settings, mergedSettings);
86
+ expect(value).toBe(true);
87
+ });
88
+ it('should return default value when not set anywhere', () => {
89
+ const settings = {};
90
+ const mergedSettings = {};
91
+ const value = getEffectiveValue('showMemoryUsage', settings, mergedSettings);
92
+ expect(value).toBe(false); // default value
93
+ });
94
+ it('should handle nested settings correctly', () => {
95
+ const settings = {
96
+ accessibility: { disableLoadingPhrases: true },
97
+ };
98
+ const mergedSettings = {
99
+ accessibility: { disableLoadingPhrases: false },
100
+ };
101
+ const value = getEffectiveValue('accessibility.disableLoadingPhrases', settings, mergedSettings);
102
+ expect(value).toBe(true);
103
+ });
104
+ it('should return undefined for invalid settings', () => {
105
+ const settings = {};
106
+ const mergedSettings = {};
107
+ const value = getEffectiveValue('invalidSetting', settings, mergedSettings);
108
+ expect(value).toBeUndefined();
109
+ });
110
+ });
111
+ describe('getAllSettingKeys', () => {
112
+ it('should return all setting keys', () => {
113
+ const keys = getAllSettingKeys();
114
+ expect(keys).toContain('showMemoryUsage');
115
+ expect(keys).toContain('accessibility.disableLoadingPhrases');
116
+ expect(keys).toContain('checkpointing.enabled');
117
+ });
118
+ });
119
+ describe('getSettingsByType', () => {
120
+ it('should return only boolean settings', () => {
121
+ const booleanSettings = getSettingsByType('boolean');
122
+ expect(booleanSettings.length).toBeGreaterThan(0);
123
+ booleanSettings.forEach((setting) => {
124
+ expect(setting.type).toBe('boolean');
125
+ });
126
+ });
127
+ });
128
+ describe('getSettingsRequiringRestart', () => {
129
+ it('should return only settings that require restart', () => {
130
+ const restartSettings = getSettingsRequiringRestart();
131
+ expect(restartSettings.length).toBeGreaterThan(0);
132
+ restartSettings.forEach((setting) => {
133
+ expect(setting.requiresRestart).toBe(true);
134
+ });
135
+ });
136
+ });
137
+ describe('isValidSettingKey', () => {
138
+ it('should return true for valid setting keys', () => {
139
+ expect(isValidSettingKey('showMemoryUsage')).toBe(true);
140
+ expect(isValidSettingKey('accessibility.disableLoadingPhrases')).toBe(true);
141
+ });
142
+ it('should return false for invalid setting keys', () => {
143
+ expect(isValidSettingKey('invalidSetting')).toBe(false);
144
+ expect(isValidSettingKey('')).toBe(false);
145
+ });
146
+ });
147
+ describe('getSettingCategory', () => {
148
+ it('should return correct category for valid settings', () => {
149
+ expect(getSettingCategory('showMemoryUsage')).toBe('UI');
150
+ expect(getSettingCategory('accessibility.disableLoadingPhrases')).toBe('Accessibility');
151
+ });
152
+ it('should return undefined for invalid settings', () => {
153
+ expect(getSettingCategory('invalidSetting')).toBeUndefined();
154
+ });
155
+ });
156
+ describe('shouldShowInDialog', () => {
157
+ it('should return true for settings marked to show in dialog', () => {
158
+ expect(shouldShowInDialog('showMemoryUsage')).toBe(true);
159
+ expect(shouldShowInDialog('vimMode')).toBe(true);
160
+ expect(shouldShowInDialog('hideWindowTitle')).toBe(true);
161
+ expect(shouldShowInDialog('usageStatisticsEnabled')).toBe(true);
162
+ });
163
+ it('should return false for settings marked to hide from dialog', () => {
164
+ expect(shouldShowInDialog('selectedAuthType')).toBe(false);
165
+ expect(shouldShowInDialog('coreTools')).toBe(false);
166
+ expect(shouldShowInDialog('customThemes')).toBe(false);
167
+ expect(shouldShowInDialog('theme')).toBe(false); // Changed to false
168
+ expect(shouldShowInDialog('preferredEditor')).toBe(false); // Changed to false
169
+ });
170
+ it('should return true for invalid settings (default behavior)', () => {
171
+ expect(shouldShowInDialog('invalidSetting')).toBe(true);
172
+ });
173
+ });
174
+ describe('getDialogSettingsByCategory', () => {
175
+ it('should only return settings marked for dialog display', async () => {
176
+ const categories = getDialogSettingsByCategory();
177
+ // Should include UI settings that are marked for dialog
178
+ expect(categories['UI']).toBeDefined();
179
+ const uiSettings = categories['UI'];
180
+ const uiKeys = uiSettings.map((s) => s.key);
181
+ expect(uiKeys).toContain('showMemoryUsage');
182
+ expect(uiKeys).toContain('hideWindowTitle');
183
+ expect(uiKeys).not.toContain('customThemes'); // This is marked false
184
+ expect(uiKeys).not.toContain('theme'); // This is now marked false
185
+ });
186
+ it('should not include Advanced category settings', () => {
187
+ const categories = getDialogSettingsByCategory();
188
+ // Advanced settings should be filtered out
189
+ expect(categories['Advanced']).toBeUndefined();
190
+ });
191
+ it('should include settings with showInDialog=true', () => {
192
+ const categories = getDialogSettingsByCategory();
193
+ const allSettings = Object.values(categories).flat();
194
+ const allKeys = allSettings.map((s) => s.key);
195
+ expect(allKeys).toContain('vimMode');
196
+ expect(allKeys).toContain('ideMode');
197
+ expect(allKeys).toContain('disableAutoUpdate');
198
+ expect(allKeys).toContain('showMemoryUsage');
199
+ expect(allKeys).toContain('usageStatisticsEnabled');
200
+ expect(allKeys).not.toContain('selectedAuthType');
201
+ expect(allKeys).not.toContain('coreTools');
202
+ expect(allKeys).not.toContain('theme'); // Now hidden
203
+ expect(allKeys).not.toContain('preferredEditor'); // Now hidden
204
+ });
205
+ });
206
+ describe('getDialogSettingsByType', () => {
207
+ it('should return only boolean dialog settings', () => {
208
+ const booleanSettings = getDialogSettingsByType('boolean');
209
+ const keys = booleanSettings.map((s) => s.key);
210
+ expect(keys).toContain('showMemoryUsage');
211
+ expect(keys).toContain('vimMode');
212
+ expect(keys).toContain('hideWindowTitle');
213
+ expect(keys).toContain('usageStatisticsEnabled');
214
+ expect(keys).not.toContain('selectedAuthType'); // Advanced setting
215
+ expect(keys).not.toContain('useExternalAuth'); // Advanced setting
216
+ });
217
+ it('should return only string dialog settings', () => {
218
+ const stringSettings = getDialogSettingsByType('string');
219
+ const keys = stringSettings.map((s) => s.key);
220
+ // Note: theme and preferredEditor are now hidden from dialog
221
+ expect(keys).not.toContain('theme'); // Now marked false
222
+ expect(keys).not.toContain('preferredEditor'); // Now marked false
223
+ expect(keys).not.toContain('selectedAuthType'); // Advanced setting
224
+ // Most string settings are now hidden, so let's just check they exclude advanced ones
225
+ expect(keys.every((key) => !key.startsWith('tool'))).toBe(true); // No tool-related settings
226
+ });
227
+ });
228
+ describe('getDialogSettingKeys', () => {
229
+ it('should return only settings marked for dialog display', () => {
230
+ const dialogKeys = getDialogSettingKeys();
231
+ // Should include settings marked for dialog
232
+ expect(dialogKeys).toContain('showMemoryUsage');
233
+ expect(dialogKeys).toContain('vimMode');
234
+ expect(dialogKeys).toContain('hideWindowTitle');
235
+ expect(dialogKeys).toContain('usageStatisticsEnabled');
236
+ expect(dialogKeys).toContain('ideMode');
237
+ expect(dialogKeys).toContain('disableAutoUpdate');
238
+ // Should include nested settings marked for dialog
239
+ expect(dialogKeys).toContain('fileFiltering.respectGitIgnore');
240
+ expect(dialogKeys).toContain('fileFiltering.respectLlxprtIgnore');
241
+ expect(dialogKeys).toContain('fileFiltering.enableRecursiveFileSearch');
242
+ // Should NOT include settings marked as hidden
243
+ expect(dialogKeys).not.toContain('theme'); // Hidden
244
+ expect(dialogKeys).not.toContain('customThemes'); // Hidden
245
+ expect(dialogKeys).not.toContain('preferredEditor'); // Hidden
246
+ expect(dialogKeys).not.toContain('selectedAuthType'); // Advanced
247
+ expect(dialogKeys).not.toContain('coreTools'); // Advanced
248
+ expect(dialogKeys).not.toContain('mcpServers'); // Advanced
249
+ expect(dialogKeys).not.toContain('telemetry'); // Advanced
250
+ });
251
+ it('should return fewer keys than getAllSettingKeys', () => {
252
+ const allKeys = getAllSettingKeys();
253
+ const dialogKeys = getDialogSettingKeys();
254
+ expect(dialogKeys.length).toBeLessThan(allKeys.length);
255
+ expect(dialogKeys.length).toBeGreaterThan(0);
256
+ });
257
+ it('should handle nested settings display correctly', () => {
258
+ // Test the specific issue with fileFiltering.respectGitIgnore
259
+ const key = 'fileFiltering.respectGitIgnore';
260
+ const initialSettings = {};
261
+ const pendingSettings = {};
262
+ // Set the nested setting to true
263
+ const updatedPendingSettings = setPendingSettingValue(key, true, pendingSettings);
264
+ // Check if the setting exists in pending settings
265
+ const existsInPending = settingExistsInScope(key, updatedPendingSettings);
266
+ expect(existsInPending).toBe(true);
267
+ // Get the value from pending settings
268
+ const valueFromPending = getSettingValue(key, updatedPendingSettings, {});
269
+ expect(valueFromPending).toBe(true);
270
+ // Test getDisplayValue should show the pending change
271
+ const displayValue = getDisplayValue(key, initialSettings, {}, new Set(), updatedPendingSettings);
272
+ expect(displayValue).toBe('true*'); // Should show true with * indicating change
273
+ // Test that modified settings also show the * indicator
274
+ const modifiedSettings = new Set([key]);
275
+ const displayValueWithModified = getDisplayValue(key, initialSettings, {}, modifiedSettings, {});
276
+ expect(displayValueWithModified).toBe('true*'); // Should show true* because it's in modified settings and default is true
277
+ });
278
+ });
279
+ });
280
+ describe('Business Logic Utilities', () => {
281
+ describe('getSettingValue', () => {
282
+ it('should return value from settings when set', () => {
283
+ const settings = { showMemoryUsage: true };
284
+ const mergedSettings = { showMemoryUsage: false };
285
+ const value = getSettingValue('showMemoryUsage', settings, mergedSettings);
286
+ expect(value).toBe(true);
287
+ });
288
+ it('should return value from merged settings when not set in current scope', () => {
289
+ const settings = {};
290
+ const mergedSettings = { showMemoryUsage: true };
291
+ const value = getSettingValue('showMemoryUsage', settings, mergedSettings);
292
+ expect(value).toBe(true);
293
+ });
294
+ it('should return default value for invalid setting', () => {
295
+ const settings = {};
296
+ const mergedSettings = {};
297
+ const value = getSettingValue('invalidSetting', settings, mergedSettings);
298
+ expect(value).toBe(false); // Default fallback
299
+ });
300
+ });
301
+ describe('isSettingModified', () => {
302
+ it('should return true when value differs from default', () => {
303
+ expect(isSettingModified('showMemoryUsage', true)).toBe(true);
304
+ expect(isSettingModified('fileFiltering.enableRecursiveFileSearch', false)).toBe(true);
305
+ });
306
+ it('should return false when value matches default', () => {
307
+ expect(isSettingModified('showMemoryUsage', false)).toBe(false);
308
+ expect(isSettingModified('fileFiltering.enableRecursiveFileSearch', true)).toBe(false);
309
+ });
310
+ });
311
+ describe('settingExistsInScope', () => {
312
+ it('should return true for top-level settings that exist', () => {
313
+ const settings = { showMemoryUsage: true };
314
+ expect(settingExistsInScope('showMemoryUsage', settings)).toBe(true);
315
+ });
316
+ it('should return false for top-level settings that do not exist', () => {
317
+ const settings = {};
318
+ expect(settingExistsInScope('showMemoryUsage', settings)).toBe(false);
319
+ });
320
+ it('should return true for nested settings that exist', () => {
321
+ const settings = {
322
+ accessibility: { disableLoadingPhrases: true },
323
+ };
324
+ expect(settingExistsInScope('accessibility.disableLoadingPhrases', settings)).toBe(true);
325
+ });
326
+ it('should return false for nested settings that do not exist', () => {
327
+ const settings = {};
328
+ expect(settingExistsInScope('accessibility.disableLoadingPhrases', settings)).toBe(false);
329
+ });
330
+ it('should return false when parent exists but child does not', () => {
331
+ const settings = { accessibility: {} };
332
+ expect(settingExistsInScope('accessibility.disableLoadingPhrases', settings)).toBe(false);
333
+ });
334
+ });
335
+ describe('setPendingSettingValue', () => {
336
+ it('should set top-level setting value', () => {
337
+ const pendingSettings = {};
338
+ const result = setPendingSettingValue('showMemoryUsage', true, pendingSettings);
339
+ expect(result.showMemoryUsage).toBe(true);
340
+ });
341
+ it('should set nested setting value', () => {
342
+ const pendingSettings = {};
343
+ const result = setPendingSettingValue('accessibility.disableLoadingPhrases', true, pendingSettings);
344
+ expect(result.accessibility?.disableLoadingPhrases).toBe(true);
345
+ });
346
+ it('should preserve existing nested settings', () => {
347
+ const pendingSettings = {
348
+ accessibility: { disableLoadingPhrases: false },
349
+ };
350
+ const result = setPendingSettingValue('accessibility.disableLoadingPhrases', true, pendingSettings);
351
+ expect(result.accessibility?.disableLoadingPhrases).toBe(true);
352
+ });
353
+ it('should not mutate original settings', () => {
354
+ const pendingSettings = {};
355
+ setPendingSettingValue('showMemoryUsage', true, pendingSettings);
356
+ expect(pendingSettings).toEqual({});
357
+ });
358
+ });
359
+ describe('hasRestartRequiredSettings', () => {
360
+ it('should return true when modified settings require restart', () => {
361
+ const modifiedSettings = new Set([
362
+ 'autoConfigureMaxOldSpaceSize',
363
+ 'showMemoryUsage',
364
+ ]);
365
+ expect(hasRestartRequiredSettings(modifiedSettings)).toBe(true);
366
+ });
367
+ it('should return false when no modified settings require restart', () => {
368
+ const modifiedSettings = new Set([
369
+ 'showMemoryUsage',
370
+ 'hideTips',
371
+ ]);
372
+ expect(hasRestartRequiredSettings(modifiedSettings)).toBe(false);
373
+ });
374
+ it('should return false for empty set', () => {
375
+ const modifiedSettings = new Set();
376
+ expect(hasRestartRequiredSettings(modifiedSettings)).toBe(false);
377
+ });
378
+ });
379
+ describe('getRestartRequiredFromModified', () => {
380
+ it('should return only settings that require restart', () => {
381
+ const modifiedSettings = new Set([
382
+ 'autoConfigureMaxOldSpaceSize',
383
+ 'showMemoryUsage',
384
+ 'checkpointing.enabled',
385
+ ]);
386
+ const result = getRestartRequiredFromModified(modifiedSettings);
387
+ expect(result).toContain('autoConfigureMaxOldSpaceSize');
388
+ expect(result).toContain('checkpointing.enabled');
389
+ expect(result).not.toContain('showMemoryUsage');
390
+ });
391
+ it('should return empty array when no settings require restart', () => {
392
+ const modifiedSettings = new Set([
393
+ 'showMemoryUsage',
394
+ 'hideTips',
395
+ ]);
396
+ const result = getRestartRequiredFromModified(modifiedSettings);
397
+ expect(result).toEqual([]);
398
+ });
399
+ });
400
+ describe('getDisplayValue', () => {
401
+ it('should show value without * when setting matches default', () => {
402
+ const settings = { showMemoryUsage: false }; // false matches default, so no *
403
+ const mergedSettings = { showMemoryUsage: false };
404
+ const modifiedSettings = new Set();
405
+ const result = getDisplayValue('showMemoryUsage', settings, mergedSettings, modifiedSettings);
406
+ expect(result).toBe('false'); // matches default, no *
407
+ });
408
+ it('should show default value when setting is not in scope', () => {
409
+ const settings = {}; // no setting in scope
410
+ const mergedSettings = { showMemoryUsage: false };
411
+ const modifiedSettings = new Set();
412
+ const result = getDisplayValue('showMemoryUsage', settings, mergedSettings, modifiedSettings);
413
+ expect(result).toBe('false'); // shows default value
414
+ });
415
+ it('should show value with * when changed from default', () => {
416
+ const settings = { showMemoryUsage: true }; // true is different from default (false)
417
+ const mergedSettings = { showMemoryUsage: true };
418
+ const modifiedSettings = new Set();
419
+ const result = getDisplayValue('showMemoryUsage', settings, mergedSettings, modifiedSettings);
420
+ expect(result).toBe('true*');
421
+ });
422
+ it('should show default value without * when setting does not exist in scope', () => {
423
+ const settings = {}; // setting doesn't exist in scope, show default
424
+ const mergedSettings = { showMemoryUsage: false };
425
+ const modifiedSettings = new Set();
426
+ const result = getDisplayValue('showMemoryUsage', settings, mergedSettings, modifiedSettings);
427
+ expect(result).toBe('false'); // default value (false) without *
428
+ });
429
+ it('should show value with * when user changes from default', () => {
430
+ const settings = {}; // setting doesn't exist in scope originally
431
+ const mergedSettings = { showMemoryUsage: false };
432
+ const modifiedSettings = new Set(['showMemoryUsage']);
433
+ const pendingSettings = { showMemoryUsage: true }; // user changed to true
434
+ const result = getDisplayValue('showMemoryUsage', settings, mergedSettings, modifiedSettings, pendingSettings);
435
+ expect(result).toBe('true*'); // changed from default (false) to true
436
+ });
437
+ });
438
+ describe('isDefaultValue', () => {
439
+ it('should return true when setting does not exist in scope', () => {
440
+ const settings = {}; // setting doesn't exist
441
+ const result = isDefaultValue('showMemoryUsage', settings);
442
+ expect(result).toBe(true);
443
+ });
444
+ it('should return false when setting exists in scope', () => {
445
+ const settings = { showMemoryUsage: true }; // setting exists
446
+ const result = isDefaultValue('showMemoryUsage', settings);
447
+ expect(result).toBe(false);
448
+ });
449
+ it('should return true when nested setting does not exist in scope', () => {
450
+ const settings = {}; // nested setting doesn't exist
451
+ const result = isDefaultValue('accessibility.disableLoadingPhrases', settings);
452
+ expect(result).toBe(true);
453
+ });
454
+ it('should return false when nested setting exists in scope', () => {
455
+ const settings = { accessibility: { disableLoadingPhrases: true } }; // nested setting exists
456
+ const result = isDefaultValue('accessibility.disableLoadingPhrases', settings);
457
+ expect(result).toBe(false);
458
+ });
459
+ });
460
+ describe('isValueInherited', () => {
461
+ it('should return false for top-level settings that exist in scope', () => {
462
+ const settings = { showMemoryUsage: true };
463
+ const mergedSettings = { showMemoryUsage: true };
464
+ const result = isValueInherited('showMemoryUsage', settings, mergedSettings);
465
+ expect(result).toBe(false);
466
+ });
467
+ it('should return true for top-level settings that do not exist in scope', () => {
468
+ const settings = {};
469
+ const mergedSettings = { showMemoryUsage: true };
470
+ const result = isValueInherited('showMemoryUsage', settings, mergedSettings);
471
+ expect(result).toBe(true);
472
+ });
473
+ it('should return false for nested settings that exist in scope', () => {
474
+ const settings = {
475
+ accessibility: { disableLoadingPhrases: true },
476
+ };
477
+ const mergedSettings = {
478
+ accessibility: { disableLoadingPhrases: true },
479
+ };
480
+ const result = isValueInherited('accessibility.disableLoadingPhrases', settings, mergedSettings);
481
+ expect(result).toBe(false);
482
+ });
483
+ it('should return true for nested settings that do not exist in scope', () => {
484
+ const settings = {};
485
+ const mergedSettings = {
486
+ accessibility: { disableLoadingPhrases: true },
487
+ };
488
+ const result = isValueInherited('accessibility.disableLoadingPhrases', settings, mergedSettings);
489
+ expect(result).toBe(true);
490
+ });
491
+ });
492
+ describe('getEffectiveDisplayValue', () => {
493
+ it('should return value from settings when available', () => {
494
+ const settings = { showMemoryUsage: true };
495
+ const mergedSettings = { showMemoryUsage: false };
496
+ const result = getEffectiveDisplayValue('showMemoryUsage', settings, mergedSettings);
497
+ expect(result).toBe(true);
498
+ });
499
+ it('should return value from merged settings when not in scope', () => {
500
+ const settings = {};
501
+ const mergedSettings = { showMemoryUsage: true };
502
+ const result = getEffectiveDisplayValue('showMemoryUsage', settings, mergedSettings);
503
+ expect(result).toBe(true);
504
+ });
505
+ it('should return default value for undefined values', () => {
506
+ const settings = {};
507
+ const mergedSettings = {};
508
+ const result = getEffectiveDisplayValue('showMemoryUsage', settings, mergedSettings);
509
+ expect(result).toBe(false); // Default value
510
+ });
511
+ });
512
+ });
513
+ });
514
+ //# sourceMappingURL=settingsUtils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settingsUtils.test.js","sourceRoot":"","sources":["../../../src/utils/settingsUtils.test.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ const homeDirectoryCheck = {
16
16
  fs.realpath(os.homedir()),
17
17
  ]);
18
18
  if (workspaceRealPath === homeRealPath) {
19
- return 'You are running Gemini CLI in your home directory. It is recommended to run in a project-specific directory.';
19
+ return 'You are running LLxprt CLI in your home directory. It is recommended to run in a project-specific directory.';
20
20
  }
21
21
  return null;
22
22
  }
@@ -30,7 +30,7 @@ const rootDirectoryCheck = {
30
30
  check: async (workspaceRoot) => {
31
31
  try {
32
32
  const workspaceRealPath = await fs.realpath(workspaceRoot);
33
- const errorMessage = 'Warning: You are running Gemini CLI in the root directory. Your entire folder structure will be used for context. It is strongly recommended to run in a project-specific directory.';
33
+ const errorMessage = 'Warning: You are running LLxprt CLI in the root directory. Your entire folder structure will be used for context. It is strongly recommended to run in a project-specific directory.';
34
34
  // Check for Unix root directory
35
35
  if (path.dirname(workspaceRealPath) === workspaceRealPath) {
36
36
  return errorMessage;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};