@machina.ai/cell-cli 1.16.0-rc2 → 1.19.4-rc1

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 (695) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +8 -7
  3. package/dist/index.js.map +1 -1
  4. package/dist/package.json +10 -9
  5. package/dist/src/commands/extensions/disable.js +2 -0
  6. package/dist/src/commands/extensions/disable.js.map +1 -1
  7. package/dist/src/commands/extensions/disable.test.d.ts +6 -0
  8. package/dist/src/commands/extensions/disable.test.js +169 -0
  9. package/dist/src/commands/extensions/disable.test.js.map +1 -0
  10. package/dist/src/commands/extensions/enable.js +2 -0
  11. package/dist/src/commands/extensions/enable.js.map +1 -1
  12. package/dist/src/commands/extensions/enable.test.d.ts +6 -0
  13. package/dist/src/commands/extensions/enable.test.js +150 -0
  14. package/dist/src/commands/extensions/enable.test.js.map +1 -0
  15. package/dist/src/commands/extensions/examples/mcp-server/example.test.d.ts +6 -0
  16. package/dist/src/commands/extensions/examples/mcp-server/example.test.js +111 -0
  17. package/dist/src/commands/extensions/examples/mcp-server/example.test.js.map +1 -0
  18. package/dist/src/commands/extensions/examples/mcp-server/example.test.ts +143 -0
  19. package/dist/src/commands/extensions/examples/mcp-server/package.json +1 -1
  20. package/dist/src/commands/extensions/install.js +2 -0
  21. package/dist/src/commands/extensions/install.js.map +1 -1
  22. package/dist/src/commands/extensions/install.test.js +3 -0
  23. package/dist/src/commands/extensions/install.test.js.map +1 -1
  24. package/dist/src/commands/extensions/link.js +2 -0
  25. package/dist/src/commands/extensions/link.js.map +1 -1
  26. package/dist/src/commands/extensions/link.test.d.ts +6 -0
  27. package/dist/src/commands/extensions/link.test.js +131 -0
  28. package/dist/src/commands/extensions/link.test.js.map +1 -0
  29. package/dist/src/commands/extensions/list.js +2 -0
  30. package/dist/src/commands/extensions/list.js.map +1 -1
  31. package/dist/src/commands/extensions/list.test.d.ts +6 -0
  32. package/dist/src/commands/extensions/list.test.js +112 -0
  33. package/dist/src/commands/extensions/list.test.js.map +1 -0
  34. package/dist/src/commands/extensions/new.js +2 -0
  35. package/dist/src/commands/extensions/new.js.map +1 -1
  36. package/dist/src/commands/extensions/new.test.js +3 -0
  37. package/dist/src/commands/extensions/new.test.js.map +1 -1
  38. package/dist/src/commands/extensions/uninstall.d.ts +1 -1
  39. package/dist/src/commands/extensions/uninstall.js +26 -9
  40. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  41. package/dist/src/commands/extensions/uninstall.test.js +190 -9
  42. package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
  43. package/dist/src/commands/extensions/update.js +2 -0
  44. package/dist/src/commands/extensions/update.js.map +1 -1
  45. package/dist/src/commands/extensions/update.test.d.ts +6 -0
  46. package/dist/src/commands/extensions/update.test.js +170 -0
  47. package/dist/src/commands/extensions/update.test.js.map +1 -0
  48. package/dist/src/commands/extensions/validate.js +2 -0
  49. package/dist/src/commands/extensions/validate.js.map +1 -1
  50. package/dist/src/commands/extensions/validate.test.js +3 -0
  51. package/dist/src/commands/extensions/validate.test.js.map +1 -1
  52. package/dist/src/commands/extensions.js +2 -0
  53. package/dist/src/commands/extensions.js.map +1 -1
  54. package/dist/src/commands/extensions.test.d.ts +6 -0
  55. package/dist/src/commands/extensions.test.js +67 -0
  56. package/dist/src/commands/extensions.test.js.map +1 -0
  57. package/dist/src/commands/mcp/add.js +2 -0
  58. package/dist/src/commands/mcp/add.js.map +1 -1
  59. package/dist/src/commands/mcp/add.test.js +11 -3
  60. package/dist/src/commands/mcp/add.test.js.map +1 -1
  61. package/dist/src/commands/mcp/list.js +2 -0
  62. package/dist/src/commands/mcp/list.js.map +1 -1
  63. package/dist/src/commands/mcp/list.test.js +4 -6
  64. package/dist/src/commands/mcp/list.test.js.map +1 -1
  65. package/dist/src/commands/mcp/remove.js +2 -0
  66. package/dist/src/commands/mcp/remove.js.map +1 -1
  67. package/dist/src/commands/mcp/remove.test.js +26 -12
  68. package/dist/src/commands/mcp/remove.test.js.map +1 -1
  69. package/dist/src/commands/mcp.js +2 -0
  70. package/dist/src/commands/mcp.js.map +1 -1
  71. package/dist/src/commands/mcp.test.js +1 -0
  72. package/dist/src/commands/mcp.test.js.map +1 -1
  73. package/dist/src/commands/utils.d.ts +6 -0
  74. package/dist/src/commands/utils.js +11 -0
  75. package/dist/src/commands/utils.js.map +1 -0
  76. package/dist/src/commands/utils.test.d.ts +6 -0
  77. package/dist/src/commands/utils.test.js +35 -0
  78. package/dist/src/commands/utils.test.js.map +1 -0
  79. package/dist/src/config/auth.js +4 -0
  80. package/dist/src/config/auth.js.map +1 -1
  81. package/dist/src/config/auth.test.js +1 -2
  82. package/dist/src/config/auth.test.js.map +1 -1
  83. package/dist/src/config/config.d.ts +2 -1
  84. package/dist/src/config/config.integration.test.js +81 -198
  85. package/dist/src/config/config.integration.test.js.map +1 -1
  86. package/dist/src/config/config.js +38 -31
  87. package/dist/src/config/config.js.map +1 -1
  88. package/dist/src/config/config.test.js +235 -294
  89. package/dist/src/config/config.test.js.map +1 -1
  90. package/dist/src/config/extension.test.js +30 -48
  91. package/dist/src/config/extension.test.js.map +1 -1
  92. package/dist/src/config/extensions/consent.test.d.ts +6 -0
  93. package/dist/src/config/extensions/consent.test.js +152 -0
  94. package/dist/src/config/extensions/consent.test.js.map +1 -0
  95. package/dist/src/config/extensions/extensionEnablement.test.js +82 -15
  96. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
  97. package/dist/src/config/extensions/extensionSettings.test.js +105 -1
  98. package/dist/src/config/extensions/extensionSettings.test.js.map +1 -1
  99. package/dist/src/config/extensions/github.d.ts +1 -0
  100. package/dist/src/config/extensions/github.js +21 -5
  101. package/dist/src/config/extensions/github.js.map +1 -1
  102. package/dist/src/config/extensions/github.test.js +201 -318
  103. package/dist/src/config/extensions/github.test.js.map +1 -1
  104. package/dist/src/config/extensions/storage.test.d.ts +6 -0
  105. package/dist/src/config/extensions/storage.test.js +64 -0
  106. package/dist/src/config/extensions/storage.test.js.map +1 -0
  107. package/dist/src/config/extensions/update.test.js +154 -263
  108. package/dist/src/config/extensions/update.test.js.map +1 -1
  109. package/dist/src/config/extensions/variables.test.js +87 -1
  110. package/dist/src/config/extensions/variables.test.js.map +1 -1
  111. package/dist/src/config/keyBindings.d.ts +1 -1
  112. package/dist/src/config/keyBindings.js +4 -4
  113. package/dist/src/config/keyBindings.js.map +1 -1
  114. package/dist/src/config/sandboxConfig.d.ts +1 -1
  115. package/dist/src/config/sandboxConfig.js.map +1 -1
  116. package/dist/src/config/sandboxConfig.test.d.ts +6 -0
  117. package/dist/src/config/sandboxConfig.test.js +178 -0
  118. package/dist/src/config/sandboxConfig.test.js.map +1 -0
  119. package/dist/src/config/settingPaths.test.d.ts +6 -0
  120. package/dist/src/config/settingPaths.test.js +22 -0
  121. package/dist/src/config/settingPaths.test.js.map +1 -0
  122. package/dist/src/config/settings.js +12 -1
  123. package/dist/src/config/settings.js.map +1 -1
  124. package/dist/src/config/settings.test.js +228 -227
  125. package/dist/src/config/settings.test.js.map +1 -1
  126. package/dist/src/config/settingsSchema.d.ts +25 -7
  127. package/dist/src/config/settingsSchema.js +26 -8
  128. package/dist/src/config/settingsSchema.js.map +1 -1
  129. package/dist/src/config/settingsSchema.test.js +11 -6
  130. package/dist/src/config/settingsSchema.test.js.map +1 -1
  131. package/dist/src/config/trustedFolders.d.ts +1 -1
  132. package/dist/src/config/trustedFolders.js +24 -17
  133. package/dist/src/config/trustedFolders.js.map +1 -1
  134. package/dist/src/core/auth.test.d.ts +6 -0
  135. package/dist/src/core/auth.test.js +43 -0
  136. package/dist/src/core/auth.test.js.map +1 -0
  137. package/dist/src/core/initializer.test.d.ts +6 -0
  138. package/dist/src/core/initializer.test.js +101 -0
  139. package/dist/src/core/initializer.test.js.map +1 -0
  140. package/dist/src/core/theme.test.d.ts +6 -0
  141. package/dist/src/core/theme.test.js +46 -0
  142. package/dist/src/core/theme.test.js.map +1 -0
  143. package/dist/src/gemini.d.ts +3 -1
  144. package/dist/src/gemini.js +80 -17
  145. package/dist/src/gemini.js.map +1 -1
  146. package/dist/src/gemini.test.js +681 -16
  147. package/dist/src/gemini.test.js.map +1 -1
  148. package/dist/src/gemini_cleanup.test.d.ts +6 -0
  149. package/dist/src/gemini_cleanup.test.js +201 -0
  150. package/dist/src/gemini_cleanup.test.js.map +1 -0
  151. package/dist/src/generated/git-commit.d.ts +2 -2
  152. package/dist/src/generated/git-commit.js +2 -2
  153. package/dist/src/nonInteractiveCli.js +4 -1
  154. package/dist/src/nonInteractiveCli.js.map +1 -1
  155. package/dist/src/nonInteractiveCli.test.js +338 -2
  156. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  157. package/dist/src/services/BuiltinCommandLoader.js +3 -1
  158. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  159. package/dist/src/services/BuiltinCommandLoader.test.js +1 -22
  160. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  161. package/dist/src/services/CommandService.test.js +3 -2
  162. package/dist/src/services/CommandService.test.js.map +1 -1
  163. package/dist/src/services/McpPromptLoader.js +5 -3
  164. package/dist/src/services/McpPromptLoader.js.map +1 -1
  165. package/dist/src/services/McpPromptLoader.test.js +29 -1
  166. package/dist/src/services/McpPromptLoader.test.js.map +1 -1
  167. package/dist/src/test-utils/mockCommandContext.js +1 -1
  168. package/dist/src/test-utils/render.d.ts +26 -2
  169. package/dist/src/test-utils/render.js +80 -3
  170. package/dist/src/test-utils/render.js.map +1 -1
  171. package/dist/src/ui/App.test.js +28 -14
  172. package/dist/src/ui/App.test.js.map +1 -1
  173. package/dist/src/ui/AppContainer.js +142 -48
  174. package/dist/src/ui/AppContainer.js.map +1 -1
  175. package/dist/src/ui/AppContainer.test.js +181 -103
  176. package/dist/src/ui/AppContainer.test.js.map +1 -1
  177. package/dist/src/ui/IdeIntegrationNudge.test.d.ts +6 -0
  178. package/dist/src/ui/IdeIntegrationNudge.test.js +147 -0
  179. package/dist/src/ui/IdeIntegrationNudge.test.js.map +1 -0
  180. package/dist/src/ui/auth/ApiAuthDialog.test.js +12 -17
  181. package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -1
  182. package/dist/src/ui/auth/AuthDialog.js +17 -10
  183. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  184. package/dist/src/ui/auth/AuthDialog.test.js +55 -21
  185. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  186. package/dist/src/ui/auth/AuthInProgress.test.d.ts +6 -0
  187. package/dist/src/ui/auth/AuthInProgress.test.js +71 -0
  188. package/dist/src/ui/auth/AuthInProgress.test.js.map +1 -0
  189. package/dist/src/ui/auth/useAuth.d.ts +2 -0
  190. package/dist/src/ui/auth/useAuth.js +6 -1
  191. package/dist/src/ui/auth/useAuth.js.map +1 -1
  192. package/dist/src/ui/auth/useAuth.test.d.ts +6 -0
  193. package/dist/src/ui/auth/useAuth.test.js +178 -0
  194. package/dist/src/ui/auth/useAuth.test.js.map +1 -0
  195. package/dist/src/ui/commands/aboutCommand.js +8 -1
  196. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  197. package/dist/src/ui/commands/aboutCommand.test.js +4 -0
  198. package/dist/src/ui/commands/aboutCommand.test.js.map +1 -1
  199. package/dist/src/ui/commands/clearCommand.js +12 -0
  200. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  201. package/dist/src/ui/commands/clearCommand.test.js +5 -0
  202. package/dist/src/ui/commands/clearCommand.test.js.map +1 -1
  203. package/dist/src/ui/commands/directoryCommand.d.ts +0 -1
  204. package/dist/src/ui/commands/directoryCommand.js +104 -43
  205. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  206. package/dist/src/ui/commands/directoryCommand.test.js +91 -2
  207. package/dist/src/ui/commands/directoryCommand.test.js.map +1 -1
  208. package/dist/src/ui/commands/extensionsCommand.js +28 -6
  209. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  210. package/dist/src/ui/commands/extensionsCommand.test.js +32 -0
  211. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
  212. package/dist/src/ui/commands/memoryCommand.js +1 -0
  213. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  214. package/dist/src/ui/commands/memoryCommand.test.js +3 -0
  215. package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
  216. package/dist/src/ui/commands/permissionsCommand.js +62 -5
  217. package/dist/src/ui/commands/permissionsCommand.js.map +1 -1
  218. package/dist/src/ui/commands/permissionsCommand.test.js +60 -4
  219. package/dist/src/ui/commands/permissionsCommand.test.js.map +1 -1
  220. package/dist/src/ui/commands/resumeCommand.d.ts +7 -0
  221. package/dist/src/ui/commands/resumeCommand.js +16 -0
  222. package/dist/src/ui/commands/resumeCommand.js.map +1 -0
  223. package/dist/src/ui/commands/setupGithubCommand.d.ts +1 -0
  224. package/dist/src/ui/commands/setupGithubCommand.js +82 -45
  225. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  226. package/dist/src/ui/commands/setupGithubCommand.test.js +35 -5
  227. package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
  228. package/dist/src/ui/commands/statsCommand.js +27 -16
  229. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  230. package/dist/src/ui/commands/types.d.ts +8 -2
  231. package/dist/src/ui/commands/types.js.map +1 -1
  232. package/dist/src/ui/components/AboutBox.d.ts +1 -0
  233. package/dist/src/ui/components/AboutBox.js +1 -1
  234. package/dist/src/ui/components/AboutBox.js.map +1 -1
  235. package/dist/src/ui/components/AboutBox.test.d.ts +6 -0
  236. package/dist/src/ui/components/AboutBox.test.js +53 -0
  237. package/dist/src/ui/components/AboutBox.test.js.map +1 -0
  238. package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js +62 -11
  239. package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js.map +1 -1
  240. package/dist/src/ui/components/AnsiOutput.test.js +18 -23
  241. package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
  242. package/dist/src/ui/components/AppHeader.js +3 -22
  243. package/dist/src/ui/components/AppHeader.js.map +1 -1
  244. package/dist/src/ui/components/AppHeader.test.js +10 -4
  245. package/dist/src/ui/components/AppHeader.test.js.map +1 -1
  246. package/dist/src/ui/components/AsciiArt.d.ts +6 -6
  247. package/dist/src/ui/components/AsciiArt.js +6 -6
  248. package/dist/src/ui/components/AutoAcceptIndicator.test.d.ts +6 -0
  249. package/dist/src/ui/components/AutoAcceptIndicator.test.js +31 -0
  250. package/dist/src/ui/components/AutoAcceptIndicator.test.js.map +1 -0
  251. package/dist/src/ui/components/Banner.d.ts +4 -2
  252. package/dist/src/ui/components/Banner.js +18 -4
  253. package/dist/src/ui/components/Banner.js.map +1 -1
  254. package/dist/src/ui/components/Banner.test.d.ts +6 -0
  255. package/dist/src/ui/components/Banner.test.js +24 -0
  256. package/dist/src/ui/components/Banner.test.js.map +1 -0
  257. package/dist/src/ui/components/ConfigInitDisplay.test.d.ts +6 -0
  258. package/dist/src/ui/components/ConfigInitDisplay.test.js +103 -0
  259. package/dist/src/ui/components/ConfigInitDisplay.test.js.map +1 -0
  260. package/dist/src/ui/components/ConsoleSummaryDisplay.test.d.ts +6 -0
  261. package/dist/src/ui/components/ConsoleSummaryDisplay.test.js +26 -0
  262. package/dist/src/ui/components/ConsoleSummaryDisplay.test.js.map +1 -0
  263. package/dist/src/ui/components/ContextUsageDisplay.test.d.ts +6 -0
  264. package/dist/src/ui/components/ContextUsageDisplay.test.js +39 -0
  265. package/dist/src/ui/components/ContextUsageDisplay.test.js.map +1 -0
  266. package/dist/src/ui/components/CopyModeWarning.test.d.ts +6 -0
  267. package/dist/src/ui/components/CopyModeWarning.test.js +33 -0
  268. package/dist/src/ui/components/CopyModeWarning.test.js.map +1 -0
  269. package/dist/src/ui/components/DebugProfiler.d.ts +1 -0
  270. package/dist/src/ui/components/DebugProfiler.js +24 -35
  271. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  272. package/dist/src/ui/components/DebugProfiler.test.js +47 -1
  273. package/dist/src/ui/components/DebugProfiler.test.js.map +1 -1
  274. package/dist/src/ui/components/DetailedMessagesDisplay.test.d.ts +6 -0
  275. package/dist/src/ui/components/DetailedMessagesDisplay.test.js +49 -0
  276. package/dist/src/ui/components/DetailedMessagesDisplay.test.js.map +1 -0
  277. package/dist/src/ui/components/DialogManager.js +11 -2
  278. package/dist/src/ui/components/DialogManager.js.map +1 -1
  279. package/dist/src/ui/components/DialogManager.test.d.ts +6 -0
  280. package/dist/src/ui/components/DialogManager.test.js +167 -0
  281. package/dist/src/ui/components/DialogManager.test.js.map +1 -0
  282. package/dist/src/ui/components/EditorSettingsDialog.test.d.ts +6 -0
  283. package/dist/src/ui/components/EditorSettingsDialog.test.js +111 -0
  284. package/dist/src/ui/components/EditorSettingsDialog.test.js.map +1 -0
  285. package/dist/src/ui/components/ExitWarning.test.d.ts +6 -0
  286. package/dist/src/ui/components/ExitWarning.test.js +54 -0
  287. package/dist/src/ui/components/ExitWarning.test.js.map +1 -0
  288. package/dist/src/ui/components/GeminiRespondingSpinner.test.d.ts +6 -0
  289. package/dist/src/ui/components/GeminiRespondingSpinner.test.js +58 -0
  290. package/dist/src/ui/components/GeminiRespondingSpinner.test.js.map +1 -0
  291. package/dist/src/ui/components/GradientRegression.test.js +22 -1
  292. package/dist/src/ui/components/GradientRegression.test.js.map +1 -1
  293. package/dist/src/ui/components/Header.test.js +27 -2
  294. package/dist/src/ui/components/Header.test.js.map +1 -1
  295. package/dist/src/ui/components/HistoryItemDisplay.js +2 -1
  296. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  297. package/dist/src/ui/components/InputPrompt.js +30 -36
  298. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  299. package/dist/src/ui/components/InputPrompt.test.js +110 -24
  300. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  301. package/dist/src/ui/components/LoadingIndicator.js +6 -1
  302. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  303. package/dist/src/ui/components/MainContent.test.d.ts +6 -0
  304. package/dist/src/ui/components/MainContent.test.js +73 -0
  305. package/dist/src/ui/components/MainContent.test.js.map +1 -0
  306. package/dist/src/ui/components/MemoryUsageDisplay.test.d.ts +6 -0
  307. package/dist/src/ui/components/MemoryUsageDisplay.test.js +49 -0
  308. package/dist/src/ui/components/MemoryUsageDisplay.test.js.map +1 -0
  309. package/dist/src/ui/components/ModelDialog.js +2 -2
  310. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  311. package/dist/src/ui/components/ModelDialog.test.js +1 -1
  312. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  313. package/dist/src/ui/components/MultiFolderTrustDialog.d.ts +23 -0
  314. package/dist/src/ui/components/MultiFolderTrustDialog.js +90 -0
  315. package/dist/src/ui/components/MultiFolderTrustDialog.js.map +1 -0
  316. package/dist/src/ui/components/MultiFolderTrustDialog.test.d.ts +6 -0
  317. package/dist/src/ui/components/MultiFolderTrustDialog.test.js +161 -0
  318. package/dist/src/ui/components/MultiFolderTrustDialog.test.js.map +1 -0
  319. package/dist/src/ui/components/Notifications.js +5 -3
  320. package/dist/src/ui/components/Notifications.js.map +1 -1
  321. package/dist/src/ui/components/Notifications.test.d.ts +6 -0
  322. package/dist/src/ui/components/Notifications.test.js +153 -0
  323. package/dist/src/ui/components/Notifications.test.js.map +1 -0
  324. package/dist/src/ui/components/PermissionsModifyTrustDialog.d.ts +5 -2
  325. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +12 -7
  326. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -1
  327. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +2 -2
  328. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
  329. package/dist/src/ui/components/ProQuotaDialog.js +2 -2
  330. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
  331. package/dist/src/ui/components/QuittingDisplay.test.d.ts +6 -0
  332. package/dist/src/ui/components/QuittingDisplay.test.js +49 -0
  333. package/dist/src/ui/components/QuittingDisplay.test.js.map +1 -0
  334. package/dist/src/ui/components/RawMarkdownIndicator.test.d.ts +6 -0
  335. package/dist/src/ui/components/RawMarkdownIndicator.test.js +34 -0
  336. package/dist/src/ui/components/RawMarkdownIndicator.test.js.map +1 -0
  337. package/dist/src/ui/components/SessionBrowser.d.ts +98 -0
  338. package/dist/src/ui/components/SessionBrowser.js +457 -0
  339. package/dist/src/ui/components/SessionBrowser.js.map +1 -0
  340. package/dist/src/ui/components/SessionBrowser.test.d.ts +6 -0
  341. package/dist/src/ui/components/SessionBrowser.test.js +250 -0
  342. package/dist/src/ui/components/SessionBrowser.test.js.map +1 -0
  343. package/dist/src/ui/components/SettingsDialog.d.ts +3 -1
  344. package/dist/src/ui/components/SettingsDialog.js +4 -1
  345. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  346. package/dist/src/ui/components/ShellInputPrompt.test.d.ts +6 -0
  347. package/dist/src/ui/components/ShellInputPrompt.test.js +82 -0
  348. package/dist/src/ui/components/ShellInputPrompt.test.js.map +1 -0
  349. package/dist/src/ui/components/ShellModeIndicator.test.d.ts +6 -0
  350. package/dist/src/ui/components/ShellModeIndicator.test.js +17 -0
  351. package/dist/src/ui/components/ShellModeIndicator.test.js.map +1 -0
  352. package/dist/src/ui/components/ShowMoreLines.test.d.ts +6 -0
  353. package/dist/src/ui/components/ShowMoreLines.test.js +40 -0
  354. package/dist/src/ui/components/ShowMoreLines.test.js.map +1 -0
  355. package/dist/src/ui/components/SuggestionsDisplay.test.d.ts +6 -0
  356. package/dist/src/ui/components/SuggestionsDisplay.test.js +56 -0
  357. package/dist/src/ui/components/SuggestionsDisplay.test.js.map +1 -0
  358. package/dist/src/ui/components/ThemeDialog.js +6 -2
  359. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  360. package/dist/src/ui/components/ThemeDialog.test.js +20 -6
  361. package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
  362. package/dist/src/ui/components/ThemedGradient.js +2 -1
  363. package/dist/src/ui/components/ThemedGradient.js.map +1 -1
  364. package/dist/src/ui/components/ThemedGradient.test.d.ts +6 -0
  365. package/dist/src/ui/components/ThemedGradient.test.js +30 -0
  366. package/dist/src/ui/components/ThemedGradient.test.js.map +1 -0
  367. package/dist/src/ui/components/Tips.test.d.ts +6 -0
  368. package/dist/src/ui/components/Tips.test.js +23 -0
  369. package/dist/src/ui/components/Tips.test.js.map +1 -0
  370. package/dist/src/ui/components/UpdateNotification.test.d.ts +6 -0
  371. package/dist/src/ui/components/UpdateNotification.test.js +16 -0
  372. package/dist/src/ui/components/UpdateNotification.test.js.map +1 -0
  373. package/dist/src/ui/components/messages/ErrorMessage.test.d.ts +6 -0
  374. package/dist/src/ui/components/messages/ErrorMessage.test.js +23 -0
  375. package/dist/src/ui/components/messages/ErrorMessage.test.js.map +1 -0
  376. package/dist/src/ui/components/messages/InfoMessage.test.d.ts +6 -0
  377. package/dist/src/ui/components/messages/InfoMessage.test.js +28 -0
  378. package/dist/src/ui/components/messages/InfoMessage.test.js.map +1 -0
  379. package/dist/src/ui/components/messages/ModelMessage.d.ts +11 -0
  380. package/dist/src/ui/components/messages/ModelMessage.js +5 -0
  381. package/dist/src/ui/components/messages/ModelMessage.js.map +1 -0
  382. package/dist/src/ui/components/messages/ShellToolMessage.d.ts +14 -0
  383. package/dist/src/ui/components/messages/ShellToolMessage.js +76 -0
  384. package/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -0
  385. package/dist/src/ui/components/messages/ShellToolMessage.test.d.ts +6 -0
  386. package/dist/src/ui/components/messages/ShellToolMessage.test.js +123 -0
  387. package/dist/src/ui/components/messages/ShellToolMessage.test.js.map +1 -0
  388. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +5 -6
  389. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  390. package/dist/src/ui/components/messages/ToolGroupMessage.js +19 -1
  391. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  392. package/dist/src/ui/components/messages/ToolMessage.d.ts +6 -4
  393. package/dist/src/ui/components/messages/ToolMessage.js +15 -102
  394. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  395. package/dist/src/ui/components/messages/ToolMessage.test.js +26 -26
  396. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  397. package/dist/src/ui/components/messages/ToolResultDisplay.d.ts +13 -0
  398. package/dist/src/ui/components/messages/ToolResultDisplay.js +54 -0
  399. package/dist/src/ui/components/messages/ToolResultDisplay.js.map +1 -0
  400. package/dist/src/ui/components/messages/ToolResultDisplay.test.d.ts +6 -0
  401. package/dist/src/ui/components/messages/ToolResultDisplay.test.js +96 -0
  402. package/dist/src/ui/components/messages/ToolResultDisplay.test.js.map +1 -0
  403. package/dist/src/ui/components/messages/ToolShared.d.ts +23 -0
  404. package/dist/src/ui/components/messages/ToolShared.js +40 -0
  405. package/dist/src/ui/components/messages/ToolShared.js.map +1 -0
  406. package/dist/src/ui/components/messages/UserMessage.test.d.ts +6 -0
  407. package/dist/src/ui/components/messages/UserMessage.test.js +32 -0
  408. package/dist/src/ui/components/messages/UserMessage.test.js.map +1 -0
  409. package/dist/src/ui/components/messages/WarningMessage.test.d.ts +6 -0
  410. package/dist/src/ui/components/messages/WarningMessage.test.js +23 -0
  411. package/dist/src/ui/components/messages/WarningMessage.test.js.map +1 -0
  412. package/dist/src/ui/components/shared/text-buffer.d.ts +1 -0
  413. package/dist/src/ui/components/shared/text-buffer.js +27 -5
  414. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  415. package/dist/src/ui/components/shared/text-buffer.test.js +20 -0
  416. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  417. package/dist/src/ui/constants/tips.d.ts +6 -0
  418. package/dist/src/ui/constants/tips.js +168 -0
  419. package/dist/src/ui/constants/tips.js.map +1 -0
  420. package/dist/src/ui/constants/wittyPhrases.d.ts +6 -0
  421. package/dist/src/ui/constants/wittyPhrases.js +137 -0
  422. package/dist/src/ui/constants/wittyPhrases.js.map +1 -0
  423. package/dist/src/ui/constants.d.ts +1 -0
  424. package/dist/src/ui/constants.js +1 -0
  425. package/dist/src/ui/constants.js.map +1 -1
  426. package/dist/src/ui/contexts/KeypressContext.js +21 -11
  427. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  428. package/dist/src/ui/contexts/KeypressContext.test.js +29 -10
  429. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  430. package/dist/src/ui/contexts/UIActionsContext.d.ts +8 -0
  431. package/dist/src/ui/contexts/UIActionsContext.js +1 -0
  432. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  433. package/dist/src/ui/contexts/UIStateContext.d.ts +5 -0
  434. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  435. package/dist/src/ui/hooks/shellCommandProcessor.d.ts +1 -0
  436. package/dist/src/ui/hooks/shellCommandProcessor.js +11 -5
  437. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  438. package/dist/src/ui/hooks/shellCommandProcessor.test.js +4 -3
  439. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  440. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +6 -3
  441. package/dist/src/ui/hooks/slashCommandProcessor.js +17 -5
  442. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  443. package/dist/src/ui/hooks/slashCommandProcessor.test.js +2 -0
  444. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  445. package/dist/src/ui/hooks/useAlternateBuffer.js +1 -1
  446. package/dist/src/ui/hooks/useAlternateBuffer.js.map +1 -1
  447. package/dist/src/ui/hooks/useBanner.d.ts +14 -0
  448. package/dist/src/ui/hooks/useBanner.js +48 -0
  449. package/dist/src/ui/hooks/useBanner.js.map +1 -0
  450. package/dist/src/ui/hooks/useBanner.test.d.ts +6 -0
  451. package/dist/src/ui/hooks/useBanner.test.js +92 -0
  452. package/dist/src/ui/hooks/useBanner.test.js.map +1 -0
  453. package/dist/src/ui/hooks/useBracketedPaste.js +3 -4
  454. package/dist/src/ui/hooks/useBracketedPaste.js.map +1 -1
  455. package/dist/src/ui/hooks/useCommandCompletion.test.js +5 -5
  456. package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
  457. package/dist/src/ui/hooks/useConsoleMessages.d.ts +0 -1
  458. package/dist/src/ui/hooks/useConsoleMessages.js +26 -1
  459. package/dist/src/ui/hooks/useConsoleMessages.js.map +1 -1
  460. package/dist/src/ui/hooks/useConsoleMessages.test.js +37 -5
  461. package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -1
  462. package/dist/src/ui/hooks/useEditorSettings.d.ts +2 -2
  463. package/dist/src/ui/hooks/useEditorSettings.js.map +1 -1
  464. package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
  465. package/dist/src/ui/hooks/useFolderTrust.js +11 -1
  466. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  467. package/dist/src/ui/hooks/useFolderTrust.test.js +22 -0
  468. package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
  469. package/dist/src/ui/hooks/useGeminiStream.d.ts +2 -1
  470. package/dist/src/ui/hooks/useGeminiStream.js +69 -12
  471. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  472. package/dist/src/ui/hooks/useGeminiStream.test.js +21 -22
  473. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  474. package/dist/src/ui/hooks/useHistoryManager.d.ts +5 -2
  475. package/dist/src/ui/hooks/useHistoryManager.js +39 -3
  476. package/dist/src/ui/hooks/useHistoryManager.js.map +1 -1
  477. package/dist/src/ui/hooks/useInactivityTimer.d.ts +14 -0
  478. package/dist/src/ui/hooks/useInactivityTimer.js +30 -0
  479. package/dist/src/ui/hooks/useInactivityTimer.js.map +1 -0
  480. package/dist/src/ui/hooks/useIncludeDirsTrust.d.ts +8 -0
  481. package/dist/src/ui/hooks/useIncludeDirsTrust.js +119 -0
  482. package/dist/src/ui/hooks/useIncludeDirsTrust.js.map +1 -0
  483. package/dist/src/ui/hooks/useIncludeDirsTrust.test.d.ts +6 -0
  484. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js +151 -0
  485. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js.map +1 -0
  486. package/dist/src/ui/hooks/useInputHistoryStore.test.js +4 -1
  487. package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -1
  488. package/dist/src/ui/hooks/useKittyKeyboardProtocol.d.ts +0 -1
  489. package/dist/src/ui/hooks/useKittyKeyboardProtocol.js +1 -2
  490. package/dist/src/ui/hooks/useKittyKeyboardProtocol.js.map +1 -1
  491. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +1 -1
  492. package/dist/src/ui/hooks/useLoadingIndicator.js +2 -2
  493. package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
  494. package/dist/src/ui/hooks/useLoadingIndicator.test.js +21 -9
  495. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  496. package/dist/src/ui/hooks/useMouseClick.d.ts +12 -0
  497. package/dist/src/ui/hooks/useMouseClick.js +28 -0
  498. package/dist/src/ui/hooks/useMouseClick.js.map +1 -0
  499. package/dist/src/ui/hooks/useMouseClick.test.d.ts +6 -0
  500. package/dist/src/ui/hooks/useMouseClick.test.js +59 -0
  501. package/dist/src/ui/hooks/useMouseClick.test.js.map +1 -0
  502. package/dist/src/ui/hooks/usePermissionsModifyTrust.d.ts +2 -2
  503. package/dist/src/ui/hooks/usePermissionsModifyTrust.js +44 -7
  504. package/dist/src/ui/hooks/usePermissionsModifyTrust.js.map +1 -1
  505. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +191 -89
  506. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -1
  507. package/dist/src/ui/hooks/usePhraseCycler.d.ts +4 -3
  508. package/dist/src/ui/hooks/usePhraseCycler.js +54 -305
  509. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  510. package/dist/src/ui/hooks/usePhraseCycler.test.js +109 -30
  511. package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
  512. package/dist/src/ui/hooks/useQuotaAndFallback.js +9 -3
  513. package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
  514. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +25 -3
  515. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  516. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +3 -2
  517. package/dist/src/ui/hooks/useReactToolScheduler.js +4 -8
  518. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  519. package/dist/src/ui/hooks/useReactToolScheduler.test.js +1 -8
  520. package/dist/src/ui/hooks/useReactToolScheduler.test.js.map +1 -1
  521. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +18 -12
  522. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +1 -1
  523. package/dist/src/ui/hooks/useSessionBrowser.d.ts +18 -1
  524. package/dist/src/ui/hooks/useSessionBrowser.js +76 -4
  525. package/dist/src/ui/hooks/useSessionBrowser.js.map +1 -1
  526. package/dist/src/ui/hooks/useSessionBrowser.test.js +154 -489
  527. package/dist/src/ui/hooks/useSessionBrowser.test.js.map +1 -1
  528. package/dist/src/ui/hooks/useSessionResume.js +1 -1
  529. package/dist/src/ui/hooks/useSessionResume.js.map +1 -1
  530. package/dist/src/ui/hooks/useSessionResume.test.js +4 -4
  531. package/dist/src/ui/hooks/useSessionResume.test.js.map +1 -1
  532. package/dist/src/ui/hooks/useSlashCompletion.test.js +5 -5
  533. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  534. package/dist/src/ui/hooks/useThemeCommand.d.ts +2 -2
  535. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  536. package/dist/src/ui/hooks/useToolScheduler.test.js +8 -4
  537. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  538. package/dist/src/ui/keyMatchers.test.js +2 -2
  539. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  540. package/dist/src/ui/layouts/DefaultAppLayout.js +1 -1
  541. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -1
  542. package/dist/src/ui/noninteractive/nonInteractiveUi.js +1 -0
  543. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -1
  544. package/dist/src/ui/privacy/CloudFreePrivacyNotice.test.d.ts +6 -0
  545. package/dist/src/ui/privacy/CloudFreePrivacyNotice.test.js +121 -0
  546. package/dist/src/ui/privacy/CloudFreePrivacyNotice.test.js.map +1 -0
  547. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.test.d.ts +6 -0
  548. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.test.js +34 -0
  549. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.test.js.map +1 -0
  550. package/dist/src/ui/privacy/GeminiPrivacyNotice.test.d.ts +6 -0
  551. package/dist/src/ui/privacy/GeminiPrivacyNotice.test.js +34 -0
  552. package/dist/src/ui/privacy/GeminiPrivacyNotice.test.js.map +1 -0
  553. package/dist/src/ui/privacy/PrivacyNotice.test.d.ts +6 -0
  554. package/dist/src/ui/privacy/PrivacyNotice.test.js +62 -0
  555. package/dist/src/ui/privacy/PrivacyNotice.test.js.map +1 -0
  556. package/dist/src/ui/state/extensions.test.js +208 -51
  557. package/dist/src/ui/state/extensions.test.js.map +1 -1
  558. package/dist/src/ui/themes/holiday.d.ts +7 -0
  559. package/dist/src/ui/themes/holiday.js +162 -0
  560. package/dist/src/ui/themes/holiday.js.map +1 -0
  561. package/dist/src/ui/themes/theme-manager.js +2 -0
  562. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  563. package/dist/src/ui/themes/theme-manager.test.js +2 -1
  564. package/dist/src/ui/themes/theme-manager.test.js.map +1 -1
  565. package/dist/src/ui/types.d.ts +7 -1
  566. package/dist/src/ui/types.js +1 -1
  567. package/dist/src/ui/types.js.map +1 -1
  568. package/dist/src/ui/utils/ConsolePatcher.js +6 -9
  569. package/dist/src/ui/utils/ConsolePatcher.js.map +1 -1
  570. package/dist/src/ui/utils/bracketedPaste.d.ts +7 -0
  571. package/dist/src/ui/utils/bracketedPaste.js +15 -0
  572. package/dist/src/ui/utils/bracketedPaste.js.map +1 -0
  573. package/dist/src/ui/utils/commandUtils.js +3 -86
  574. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  575. package/dist/src/ui/utils/commandUtils.test.js +21 -273
  576. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  577. package/dist/src/ui/utils/directoryUtils.d.ts +6 -0
  578. package/dist/src/ui/utils/directoryUtils.js +21 -0
  579. package/dist/src/ui/utils/directoryUtils.js.map +1 -0
  580. package/dist/src/ui/utils/directoryUtils.test.d.ts +6 -0
  581. package/dist/src/ui/utils/directoryUtils.test.js +52 -0
  582. package/dist/src/ui/utils/directoryUtils.test.js.map +1 -0
  583. package/dist/src/ui/utils/kittyProtocolDetector.d.ts +6 -2
  584. package/dist/src/ui/utils/kittyProtocolDetector.js +47 -43
  585. package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -1
  586. package/dist/src/ui/utils/kittyProtocolDetector.test.d.ts +6 -0
  587. package/dist/src/ui/utils/kittyProtocolDetector.test.js +113 -0
  588. package/dist/src/ui/utils/kittyProtocolDetector.test.js.map +1 -0
  589. package/dist/src/ui/utils/mouse.d.ts +2 -2
  590. package/dist/src/ui/utils/mouse.js +2 -11
  591. package/dist/src/ui/utils/mouse.js.map +1 -1
  592. package/dist/src/ui/utils/terminalSetup.js +39 -38
  593. package/dist/src/ui/utils/terminalSetup.js.map +1 -1
  594. package/dist/src/ui/utils/terminalSetup.test.d.ts +6 -0
  595. package/dist/src/ui/utils/terminalSetup.test.js +132 -0
  596. package/dist/src/ui/utils/terminalSetup.test.js.map +1 -0
  597. package/dist/src/ui/utils/ui-sizing.test.d.ts +6 -0
  598. package/dist/src/ui/utils/ui-sizing.test.js +56 -0
  599. package/dist/src/ui/utils/ui-sizing.test.js.map +1 -0
  600. package/dist/src/utils/checks.test.d.ts +6 -0
  601. package/dist/src/utils/checks.test.js +29 -0
  602. package/dist/src/utils/checks.test.js.map +1 -0
  603. package/dist/src/utils/cleanup.d.ts +2 -0
  604. package/dist/src/utils/cleanup.js +16 -0
  605. package/dist/src/utils/cleanup.js.map +1 -1
  606. package/dist/src/utils/cleanup.test.js +69 -16
  607. package/dist/src/utils/cleanup.test.js.map +1 -1
  608. package/dist/src/utils/dialogScopeUtils.test.d.ts +6 -0
  609. package/dist/src/utils/dialogScopeUtils.test.js +81 -0
  610. package/dist/src/utils/dialogScopeUtils.test.js.map +1 -0
  611. package/dist/src/utils/errors.js +10 -0
  612. package/dist/src/utils/errors.js.map +1 -1
  613. package/dist/src/utils/errors.test.js +62 -0
  614. package/dist/src/utils/errors.test.js.map +1 -1
  615. package/dist/src/utils/events.d.ts +0 -2
  616. package/dist/src/utils/events.js +0 -1
  617. package/dist/src/utils/events.js.map +1 -1
  618. package/dist/src/utils/events.test.d.ts +6 -0
  619. package/dist/src/utils/events.test.js +24 -0
  620. package/dist/src/utils/events.test.js.map +1 -0
  621. package/dist/src/utils/handleAutoUpdate.test.js +103 -24
  622. package/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
  623. package/dist/src/utils/installationInfo.test.js +8 -9
  624. package/dist/src/utils/installationInfo.test.js.map +1 -1
  625. package/dist/src/utils/math.test.d.ts +6 -0
  626. package/dist/src/utils/math.test.js +23 -0
  627. package/dist/src/utils/math.test.js.map +1 -0
  628. package/dist/src/utils/persistentState.d.ts +1 -1
  629. package/dist/src/utils/persistentState.test.d.ts +6 -0
  630. package/dist/src/utils/persistentState.test.js +68 -0
  631. package/dist/src/utils/persistentState.test.js.map +1 -0
  632. package/dist/src/utils/readStdin.js +1 -0
  633. package/dist/src/utils/readStdin.js.map +1 -1
  634. package/dist/src/utils/readStdin.test.js +25 -0
  635. package/dist/src/utils/readStdin.test.js.map +1 -1
  636. package/dist/src/utils/resolvePath.test.d.ts +6 -0
  637. package/dist/src/utils/resolvePath.test.js +31 -0
  638. package/dist/src/utils/resolvePath.test.js.map +1 -0
  639. package/dist/src/utils/sandbox.js +6 -137
  640. package/dist/src/utils/sandbox.js.map +1 -1
  641. package/dist/src/utils/sandbox.test.d.ts +6 -0
  642. package/dist/src/utils/sandbox.test.js +302 -0
  643. package/dist/src/utils/sandbox.test.js.map +1 -0
  644. package/dist/src/utils/sandboxUtils.d.ts +14 -0
  645. package/dist/src/utils/sandboxUtils.js +120 -0
  646. package/dist/src/utils/sandboxUtils.js.map +1 -0
  647. package/dist/src/utils/sandboxUtils.test.d.ts +6 -0
  648. package/dist/src/utils/sandboxUtils.test.js +119 -0
  649. package/dist/src/utils/sandboxUtils.test.js.map +1 -0
  650. package/dist/src/utils/sessionCleanup.test.js +42 -2
  651. package/dist/src/utils/sessionCleanup.test.js.map +1 -1
  652. package/dist/src/utils/sessionUtils.d.ts +54 -4
  653. package/dist/src/utils/sessionUtils.js +106 -26
  654. package/dist/src/utils/sessionUtils.js.map +1 -1
  655. package/dist/src/utils/sessionUtils.test.js +46 -3
  656. package/dist/src/utils/sessionUtils.test.js.map +1 -1
  657. package/dist/src/utils/sessions.js +4 -1
  658. package/dist/src/utils/sessions.js.map +1 -1
  659. package/dist/src/utils/sessions.test.d.ts +6 -0
  660. package/dist/src/utils/sessions.test.js +558 -0
  661. package/dist/src/utils/sessions.test.js.map +1 -0
  662. package/dist/src/utils/updateEventEmitter.test.d.ts +6 -0
  663. package/dist/src/utils/updateEventEmitter.test.js +18 -0
  664. package/dist/src/utils/updateEventEmitter.test.js.map +1 -0
  665. package/dist/src/utils/version.test.d.ts +6 -0
  666. package/dist/src/utils/version.test.js +39 -0
  667. package/dist/src/utils/version.test.js.map +1 -0
  668. package/dist/src/validateNonInterActiveAuth.js +2 -0
  669. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  670. package/dist/src/zed-integration/acp.d.ts +2 -24
  671. package/dist/src/zed-integration/acp.js +2 -156
  672. package/dist/src/zed-integration/acp.js.map +1 -1
  673. package/dist/src/zed-integration/acp.test.d.ts +6 -0
  674. package/dist/src/zed-integration/acp.test.js +227 -0
  675. package/dist/src/zed-integration/acp.test.js.map +1 -0
  676. package/dist/src/zed-integration/connection.d.ts +28 -0
  677. package/dist/src/zed-integration/connection.js +163 -0
  678. package/dist/src/zed-integration/connection.js.map +1 -0
  679. package/dist/src/zed-integration/connection.test.d.ts +6 -0
  680. package/dist/src/zed-integration/connection.test.js +175 -0
  681. package/dist/src/zed-integration/connection.test.js.map +1 -0
  682. package/dist/src/zed-integration/fileSystemService.test.d.ts +6 -0
  683. package/dist/src/zed-integration/fileSystemService.test.js +98 -0
  684. package/dist/src/zed-integration/fileSystemService.test.js.map +1 -0
  685. package/dist/src/zed-integration/schema.d.ts +69 -13
  686. package/dist/src/zed-integration/schema.js +6 -5
  687. package/dist/src/zed-integration/schema.js.map +1 -1
  688. package/dist/src/zed-integration/zedIntegration.d.ts +31 -8
  689. package/dist/src/zed-integration/zedIntegration.js +14 -23
  690. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  691. package/dist/src/zed-integration/zedIntegration.test.d.ts +6 -0
  692. package/dist/src/zed-integration/zedIntegration.test.js +619 -0
  693. package/dist/src/zed-integration/zedIntegration.test.js.map +1 -0
  694. package/dist/tsconfig.tsbuildinfo +1 -1
  695. package/package.json +10 -9
@@ -38,7 +38,7 @@ import { isWorkspaceTrusted } from './trustedFolders.js';
38
38
  // These imports will get the versions from the vi.mock('./settings.js', ...) factory.
39
39
  import { loadSettings, USER_SETTINGS_PATH, // This IS the mocked path.
40
40
  getSystemSettingsPath, getSystemDefaultsPath, migrateSettingsToV1, needsMigration, loadEnvironment, migrateDeprecatedSettings, SettingScope, saveSettings, } from './settings.js';
41
- import { FatalConfigError, CELL_DIR } from '@google/gemini-cli-core';
41
+ import { FatalConfigError, CELL_DIR, AuthType } from '@google/gemini-cli-core';
42
42
  import { ExtensionManager } from './extension-manager.js';
43
43
  import { updateSettingsFilePreservingFormat } from '../utils/commentJson.js';
44
44
  const MOCK_WORKSPACE_DIR = '/mock/workspace';
@@ -108,78 +108,66 @@ describe('Settings Loading and Merging', () => {
108
108
  expect(settings.system.settings).toEqual({});
109
109
  expect(settings.user.settings).toEqual({});
110
110
  expect(settings.workspace.settings).toEqual({});
111
- expect(settings.merged).toEqual({});
112
- });
113
- it('should load system settings if only system file exists', () => {
114
- mockFsExistsSync.mockImplementation((p) => p === getSystemSettingsPath());
115
- const systemSettingsContent = {
116
- ui: {
117
- theme: 'system-default',
118
- },
119
- tools: {
120
- sandbox: false,
121
- },
122
- };
123
- fs.readFileSync.mockImplementation((p) => {
124
- if (p === getSystemSettingsPath())
125
- return JSON.stringify(systemSettingsContent);
126
- return '{}';
127
- });
128
- const settings = loadSettings(MOCK_WORKSPACE_DIR);
129
- expect(fs.readFileSync).toHaveBeenCalledWith(getSystemSettingsPath(), 'utf-8');
130
- expect(settings.system.settings).toEqual(systemSettingsContent);
131
- expect(settings.user.settings).toEqual({});
132
- expect(settings.workspace.settings).toEqual({});
133
111
  expect(settings.merged).toEqual({
134
- ...systemSettingsContent,
112
+ security: {
113
+ auth: {
114
+ selectedType: AuthType.KEYCLOAK,
115
+ },
116
+ },
135
117
  });
136
118
  });
137
- it('should load user settings if only user file exists', () => {
138
- const expectedUserSettingsPath = USER_SETTINGS_PATH; // Use the path actually resolved by the (mocked) module
139
- mockFsExistsSync.mockImplementation((p) => p === expectedUserSettingsPath);
140
- const userSettingsContent = {
141
- ui: {
142
- theme: 'dark',
143
- },
144
- context: {
145
- fileName: 'USER_CONTEXT.md',
119
+ it.each([
120
+ {
121
+ scope: 'system',
122
+ path: getSystemSettingsPath(),
123
+ content: {
124
+ ui: { theme: 'system-default' },
125
+ tools: { sandbox: false },
126
+ },
127
+ },
128
+ {
129
+ scope: 'user',
130
+ path: USER_SETTINGS_PATH,
131
+ content: {
132
+ ui: { theme: 'dark' },
133
+ context: { fileName: 'USER_CONTEXT.md' },
134
+ },
135
+ },
136
+ {
137
+ scope: 'workspace',
138
+ path: MOCK_WORKSPACE_SETTINGS_PATH,
139
+ content: {
140
+ tools: { sandbox: true },
141
+ context: { fileName: 'WORKSPACE_CONTEXT.md' },
146
142
  },
147
- };
143
+ },
144
+ ])('should load $scope settings if only $scope file exists', ({ scope, path, content }) => {
145
+ mockFsExistsSync.mockImplementation((p) => p === path);
148
146
  fs.readFileSync.mockImplementation((p) => {
149
- if (p === expectedUserSettingsPath)
150
- return JSON.stringify(userSettingsContent);
147
+ if (p === path)
148
+ return JSON.stringify(content);
151
149
  return '{}';
152
150
  });
153
151
  const settings = loadSettings(MOCK_WORKSPACE_DIR);
154
- expect(fs.readFileSync).toHaveBeenCalledWith(expectedUserSettingsPath, 'utf-8');
155
- expect(settings.user.settings).toEqual(userSettingsContent);
156
- expect(settings.workspace.settings).toEqual({});
157
- expect(settings.merged).toEqual({
158
- ...userSettingsContent,
159
- });
160
- });
161
- it('should load workspace settings if only workspace file exists', () => {
162
- mockFsExistsSync.mockImplementation((p) => p === MOCK_WORKSPACE_SETTINGS_PATH);
163
- const workspaceSettingsContent = {
164
- tools: {
165
- sandbox: true,
166
- },
167
- context: {
168
- fileName: 'WORKSPACE_CONTEXT.md',
152
+ expect(fs.readFileSync).toHaveBeenCalledWith(path, 'utf-8');
153
+ // Prepare expected object with default auth
154
+ const expectedWithAuth = {
155
+ ...content,
156
+ security: {
157
+ ...(content.security || {}),
158
+ auth: {
159
+ ...(content.security?.auth || {}),
160
+ selectedType: AuthType.KEYCLOAK,
161
+ },
169
162
  },
170
163
  };
171
- fs.readFileSync.mockImplementation((p) => {
172
- if (p === MOCK_WORKSPACE_SETTINGS_PATH)
173
- return JSON.stringify(workspaceSettingsContent);
174
- return '';
175
- });
176
- const settings = loadSettings(MOCK_WORKSPACE_DIR);
177
- expect(fs.readFileSync).toHaveBeenCalledWith(MOCK_WORKSPACE_SETTINGS_PATH, 'utf-8');
178
- expect(settings.user.settings).toEqual({});
179
- expect(settings.workspace.settings).toEqual(workspaceSettingsContent);
180
- expect(settings.merged).toEqual({
181
- ...workspaceSettingsContent,
182
- });
164
+ if (scope === 'user') {
165
+ expect(settings.user.settings).toEqual(expectedWithAuth);
166
+ }
167
+ else {
168
+ expect(settings[scope].settings).toEqual(content);
169
+ }
170
+ expect(settings.merged).toEqual(expectedWithAuth);
183
171
  });
184
172
  it('should merge system, user and workspace settings, with system taking precedence over workspace, and workspace over user', () => {
185
173
  mockFsExistsSync.mockImplementation((p) => p === getSystemSettingsPath() ||
@@ -231,7 +219,14 @@ describe('Settings Loading and Merging', () => {
231
219
  });
232
220
  const settings = loadSettings(MOCK_WORKSPACE_DIR);
233
221
  expect(settings.system.settings).toEqual(systemSettingsContent);
234
- expect(settings.user.settings).toEqual(userSettingsContent);
222
+ expect(settings.user.settings).toEqual({
223
+ ...userSettingsContent,
224
+ security: {
225
+ auth: {
226
+ selectedType: AuthType.KEYCLOAK,
227
+ },
228
+ },
229
+ });
235
230
  expect(settings.workspace.settings).toEqual(workspaceSettingsContent);
236
231
  expect(settings.merged).toEqual({
237
232
  ui: {
@@ -248,6 +243,11 @@ describe('Settings Loading and Merging', () => {
248
243
  mcp: {
249
244
  allowed: ['server1', 'server2'],
250
245
  },
246
+ security: {
247
+ auth: {
248
+ selectedType: AuthType.KEYCLOAK,
249
+ },
250
+ },
251
251
  });
252
252
  });
253
253
  it('should correctly migrate a complex legacy (v1) settings file', () => {
@@ -307,6 +307,11 @@ describe('Settings Loading and Merging', () => {
307
307
  allowed: ['legacy-server-1'],
308
308
  },
309
309
  someUnrecognizedSetting: 'should-be-preserved',
310
+ security: {
311
+ auth: {
312
+ selectedType: AuthType.KEYCLOAK,
313
+ },
314
+ },
310
315
  });
311
316
  });
312
317
  it('should rewrite allowedTools to tools.allowed during migration', () => {
@@ -412,7 +417,14 @@ describe('Settings Loading and Merging', () => {
412
417
  const settings = loadSettings(MOCK_WORKSPACE_DIR);
413
418
  expect(settings.systemDefaults.settings).toEqual(systemDefaultsContent);
414
419
  expect(settings.system.settings).toEqual(systemSettingsContent);
415
- expect(settings.user.settings).toEqual(userSettingsContent);
420
+ expect(settings.user.settings).toEqual({
421
+ ...userSettingsContent,
422
+ security: {
423
+ auth: {
424
+ selectedType: AuthType.KEYCLOAK,
425
+ },
426
+ },
427
+ });
416
428
  expect(settings.workspace.settings).toEqual(workspaceSettingsContent);
417
429
  expect(settings.merged).toEqual({
418
430
  context: {
@@ -432,6 +444,11 @@ describe('Settings Loading and Merging', () => {
432
444
  ui: {
433
445
  theme: 'system-theme',
434
446
  },
447
+ security: {
448
+ auth: {
449
+ selectedType: AuthType.KEYCLOAK,
450
+ },
451
+ },
435
452
  });
436
453
  });
437
454
  it('should use folderTrust from workspace settings when trusted', () => {
@@ -529,64 +546,55 @@ describe('Settings Loading and Merging', () => {
529
546
  const settings = loadSettings(MOCK_WORKSPACE_DIR);
530
547
  expect(settings.merged.security?.disableYoloMode).toBe(true); // System setting should be used
531
548
  });
532
- it('should handle contextFileName correctly when only in user settings', () => {
533
- mockFsExistsSync.mockImplementation((p) => p === USER_SETTINGS_PATH);
534
- const userSettingsContent = { context: { fileName: 'CUSTOM.md' } };
535
- fs.readFileSync.mockImplementation((p) => {
536
- if (p === USER_SETTINGS_PATH)
537
- return JSON.stringify(userSettingsContent);
538
- return '';
539
- });
540
- const settings = loadSettings(MOCK_WORKSPACE_DIR);
541
- expect(settings.merged.context?.fileName).toBe('CUSTOM.md');
542
- });
543
- it('should handle contextFileName correctly when only in workspace settings', () => {
544
- mockFsExistsSync.mockImplementation((p) => p === MOCK_WORKSPACE_SETTINGS_PATH);
545
- const workspaceSettingsContent = {
546
- context: { fileName: 'PROJECT_SPECIFIC.md' },
547
- };
548
- fs.readFileSync.mockImplementation((p) => {
549
- if (p === MOCK_WORKSPACE_SETTINGS_PATH)
550
- return JSON.stringify(workspaceSettingsContent);
551
- return '';
552
- });
553
- const settings = loadSettings(MOCK_WORKSPACE_DIR);
554
- expect(settings.merged.context?.fileName).toBe('PROJECT_SPECIFIC.md');
555
- });
556
- it('should handle excludedProjectEnvVars correctly when only in user settings', () => {
557
- mockFsExistsSync.mockImplementation((p) => p === USER_SETTINGS_PATH);
558
- const userSettingsContent = {
559
- general: {},
560
- advanced: { excludedEnvVars: ['DEBUG', 'NODE_ENV', 'CUSTOM_VAR'] },
561
- };
562
- fs.readFileSync.mockImplementation((p) => {
563
- if (p === USER_SETTINGS_PATH)
564
- return JSON.stringify(userSettingsContent);
565
- return '';
566
- });
567
- const settings = loadSettings(MOCK_WORKSPACE_DIR);
568
- expect(settings.merged.advanced?.excludedEnvVars).toEqual([
569
- 'DEBUG',
570
- 'NODE_ENV',
571
- 'CUSTOM_VAR',
572
- ]);
573
- });
574
- it('should handle excludedProjectEnvVars correctly when only in workspace settings', () => {
575
- mockFsExistsSync.mockImplementation((p) => p === MOCK_WORKSPACE_SETTINGS_PATH);
576
- const workspaceSettingsContent = {
577
- general: {},
578
- advanced: { excludedEnvVars: ['WORKSPACE_DEBUG', 'WORKSPACE_VAR'] },
579
- };
549
+ it.each([
550
+ {
551
+ description: 'contextFileName in user settings',
552
+ path: USER_SETTINGS_PATH,
553
+ content: { context: { fileName: 'CUSTOM.md' } },
554
+ expected: { key: 'context.fileName', value: 'CUSTOM.md' },
555
+ },
556
+ {
557
+ description: 'contextFileName in workspace settings',
558
+ path: MOCK_WORKSPACE_SETTINGS_PATH,
559
+ content: { context: { fileName: 'PROJECT_SPECIFIC.md' } },
560
+ expected: { key: 'context.fileName', value: 'PROJECT_SPECIFIC.md' },
561
+ },
562
+ {
563
+ description: 'excludedProjectEnvVars in user settings',
564
+ path: USER_SETTINGS_PATH,
565
+ content: {
566
+ advanced: { excludedEnvVars: ['DEBUG', 'NODE_ENV', 'CUSTOM_VAR'] },
567
+ },
568
+ expected: {
569
+ key: 'advanced.excludedEnvVars',
570
+ value: ['DEBUG', 'NODE_ENV', 'CUSTOM_VAR'],
571
+ },
572
+ },
573
+ {
574
+ description: 'excludedProjectEnvVars in workspace settings',
575
+ path: MOCK_WORKSPACE_SETTINGS_PATH,
576
+ content: {
577
+ advanced: { excludedEnvVars: ['WORKSPACE_DEBUG', 'WORKSPACE_VAR'] },
578
+ },
579
+ expected: {
580
+ key: 'advanced.excludedEnvVars',
581
+ value: ['WORKSPACE_DEBUG', 'WORKSPACE_VAR'],
582
+ },
583
+ },
584
+ ])('should handle $description correctly', ({ path, content, expected }) => {
585
+ mockFsExistsSync.mockImplementation((p) => p === path);
580
586
  fs.readFileSync.mockImplementation((p) => {
581
- if (p === MOCK_WORKSPACE_SETTINGS_PATH)
582
- return JSON.stringify(workspaceSettingsContent);
583
- return '';
587
+ if (p === path)
588
+ return JSON.stringify(content);
589
+ return '{}';
584
590
  });
585
591
  const settings = loadSettings(MOCK_WORKSPACE_DIR);
586
- expect(settings.merged.advanced?.excludedEnvVars).toEqual([
587
- 'WORKSPACE_DEBUG',
588
- 'WORKSPACE_VAR',
589
- ]);
592
+ const keys = expected.key.split('.');
593
+ let result = settings.merged;
594
+ for (const key of keys) {
595
+ result = result[key];
596
+ }
597
+ expect(result).toEqual(expected.value);
590
598
  });
591
599
  it('should merge excludedProjectEnvVars with workspace taking precedence over user', () => {
592
600
  mockFsExistsSync.mockImplementation((p) => p === USER_SETTINGS_PATH || p === MOCK_WORKSPACE_SETTINGS_PATH);
@@ -637,27 +645,28 @@ describe('Settings Loading and Merging', () => {
637
645
  const settings = loadSettings(MOCK_WORKSPACE_DIR);
638
646
  expect(settings.merged.context?.fileName).toBeUndefined();
639
647
  });
640
- it('should load telemetry setting from user settings', () => {
641
- mockFsExistsSync.mockImplementation((p) => p === USER_SETTINGS_PATH);
642
- const userSettingsContent = { telemetry: { enabled: true } };
643
- fs.readFileSync.mockImplementation((p) => {
644
- if (p === USER_SETTINGS_PATH)
645
- return JSON.stringify(userSettingsContent);
646
- return '{}';
647
- });
648
- const settings = loadSettings(MOCK_WORKSPACE_DIR);
649
- expect(settings.merged.telemetry?.enabled).toBe(true);
650
- });
651
- it('should load telemetry setting from workspace settings', () => {
652
- mockFsExistsSync.mockImplementation((p) => p === MOCK_WORKSPACE_SETTINGS_PATH);
653
- const workspaceSettingsContent = { telemetry: { enabled: false } };
648
+ it.each([
649
+ {
650
+ scope: 'user',
651
+ path: USER_SETTINGS_PATH,
652
+ content: { telemetry: { enabled: true } },
653
+ expected: true,
654
+ },
655
+ {
656
+ scope: 'workspace',
657
+ path: MOCK_WORKSPACE_SETTINGS_PATH,
658
+ content: { telemetry: { enabled: false } },
659
+ expected: false,
660
+ },
661
+ ])('should load telemetry setting from $scope settings', ({ path, content, expected }) => {
662
+ mockFsExistsSync.mockImplementation((p) => p === path);
654
663
  fs.readFileSync.mockImplementation((p) => {
655
- if (p === MOCK_WORKSPACE_SETTINGS_PATH)
656
- return JSON.stringify(workspaceSettingsContent);
664
+ if (p === path)
665
+ return JSON.stringify(content);
657
666
  return '{}';
658
667
  });
659
668
  const settings = loadSettings(MOCK_WORKSPACE_DIR);
660
- expect(settings.merged.telemetry?.enabled).toBe(false);
669
+ expect(settings.merged.telemetry?.enabled).toBe(expected);
661
670
  });
662
671
  it('should prioritize workspace telemetry setting over user setting', () => {
663
672
  mockFsExistsSync.mockReturnValue(true);
@@ -717,7 +726,14 @@ describe('Settings Loading and Merging', () => {
717
726
  return '';
718
727
  });
719
728
  const settings = loadSettings(MOCK_WORKSPACE_DIR);
720
- expect(settings.user.settings).toEqual(userSettingsContent);
729
+ expect(settings.user.settings).toEqual({
730
+ ...userSettingsContent,
731
+ security: {
732
+ auth: {
733
+ selectedType: AuthType.KEYCLOAK,
734
+ },
735
+ },
736
+ });
721
737
  expect(settings.workspace.settings).toEqual(workspaceSettingsContent);
722
738
  expect(settings.merged.mcpServers).toEqual({
723
739
  'user-server': {
@@ -736,51 +752,52 @@ describe('Settings Loading and Merging', () => {
736
752
  },
737
753
  });
738
754
  });
739
- it('should handle MCP servers when only in user settings', () => {
740
- mockFsExistsSync.mockImplementation((p) => p === USER_SETTINGS_PATH);
741
- const userSettingsContent = {
742
- mcpServers: {
755
+ it.each([
756
+ {
757
+ scope: 'user',
758
+ path: USER_SETTINGS_PATH,
759
+ content: {
760
+ mcpServers: {
761
+ 'user-only-server': {
762
+ command: 'user-only-command',
763
+ description: 'User only server',
764
+ },
765
+ },
766
+ },
767
+ expected: {
743
768
  'user-only-server': {
744
769
  command: 'user-only-command',
745
770
  description: 'User only server',
746
771
  },
747
772
  },
748
- };
749
- fs.readFileSync.mockImplementation((p) => {
750
- if (p === USER_SETTINGS_PATH)
751
- return JSON.stringify(userSettingsContent);
752
- return '';
753
- });
754
- const settings = loadSettings(MOCK_WORKSPACE_DIR);
755
- expect(settings.merged.mcpServers).toEqual({
756
- 'user-only-server': {
757
- command: 'user-only-command',
758
- description: 'User only server',
773
+ },
774
+ {
775
+ scope: 'workspace',
776
+ path: MOCK_WORKSPACE_SETTINGS_PATH,
777
+ content: {
778
+ mcpServers: {
779
+ 'workspace-only-server': {
780
+ command: 'workspace-only-command',
781
+ description: 'Workspace only server',
782
+ },
783
+ },
759
784
  },
760
- });
761
- });
762
- it('should handle MCP servers when only in workspace settings', () => {
763
- mockFsExistsSync.mockImplementation((p) => p === MOCK_WORKSPACE_SETTINGS_PATH);
764
- const workspaceSettingsContent = {
765
- mcpServers: {
785
+ expected: {
766
786
  'workspace-only-server': {
767
787
  command: 'workspace-only-command',
768
788
  description: 'Workspace only server',
769
789
  },
770
790
  },
771
- };
791
+ },
792
+ ])('should handle MCP servers when only in $scope settings', ({ path, content, expected }) => {
793
+ mockFsExistsSync.mockImplementation((p) => p === path);
772
794
  fs.readFileSync.mockImplementation((p) => {
773
- if (p === MOCK_WORKSPACE_SETTINGS_PATH)
774
- return JSON.stringify(workspaceSettingsContent);
775
- return '';
795
+ if (p === path)
796
+ return JSON.stringify(content);
797
+ return '{}';
776
798
  });
777
799
  const settings = loadSettings(MOCK_WORKSPACE_DIR);
778
- expect(settings.merged.mcpServers).toEqual({
779
- 'workspace-only-server': {
780
- command: 'workspace-only-command',
781
- description: 'Workspace only server',
782
- },
783
- });
800
+ expect(settings.merged.mcpServers).toEqual(expected);
784
801
  });
785
802
  it('should have mcpServers as undefined if not in any settings file', () => {
786
803
  mockFsExistsSync.mockReturnValue(false); // No settings files exist
@@ -883,65 +900,44 @@ describe('Settings Loading and Merging', () => {
883
900
  excluded: ['workspace-excluded'],
884
901
  });
885
902
  });
886
- it('should merge compressionThreshold settings, with workspace taking precedence', () => {
887
- mockFsExistsSync.mockReturnValue(true);
888
- const userSettingsContent = {
889
- general: {},
890
- model: { compressionThreshold: 0.5 },
891
- };
892
- const workspaceSettingsContent = {
893
- general: {},
894
- model: { compressionThreshold: 0.8 },
895
- };
896
- fs.readFileSync.mockImplementation((p) => {
897
- if (p === USER_SETTINGS_PATH)
898
- return JSON.stringify(userSettingsContent);
899
- if (p === MOCK_WORKSPACE_SETTINGS_PATH)
900
- return JSON.stringify(workspaceSettingsContent);
901
- return '{}';
902
- });
903
- const settings = loadSettings(MOCK_WORKSPACE_DIR);
904
- expect(settings.user.settings.model?.compressionThreshold).toEqual(0.5);
905
- expect(settings.workspace.settings.model?.compressionThreshold).toEqual(0.8);
906
- expect(settings.merged.model?.compressionThreshold).toEqual(0.8);
907
- });
908
- it('should merge output format settings, with workspace taking precedence', () => {
909
- mockFsExistsSync.mockReturnValue(true);
910
- const userSettingsContent = {
911
- output: { format: 'text' },
912
- };
913
- const workspaceSettingsContent = {
914
- output: { format: 'json' },
915
- };
916
- fs.readFileSync.mockImplementation((p) => {
917
- if (p === USER_SETTINGS_PATH)
918
- return JSON.stringify(userSettingsContent);
919
- if (p === MOCK_WORKSPACE_SETTINGS_PATH)
920
- return JSON.stringify(workspaceSettingsContent);
921
- return '{}';
922
- });
923
- const settings = loadSettings(MOCK_WORKSPACE_DIR);
924
- expect(settings.merged.output?.format).toBe('json');
925
- });
926
- it('should handle compressionThreshold when only in user settings', () => {
927
- mockFsExistsSync.mockImplementation((p) => p === USER_SETTINGS_PATH);
928
- const userSettingsContent = {
929
- general: {},
930
- model: { compressionThreshold: 0.5 },
931
- };
932
- fs.readFileSync.mockImplementation((p) => {
933
- if (p === USER_SETTINGS_PATH)
934
- return JSON.stringify(userSettingsContent);
935
- return '{}';
903
+ describe('compressionThreshold settings', () => {
904
+ it.each([
905
+ {
906
+ description: 'should be taken from user settings if only present there',
907
+ userContent: { model: { compressionThreshold: 0.5 } },
908
+ workspaceContent: {},
909
+ expected: 0.5,
910
+ },
911
+ {
912
+ description: 'should be taken from workspace settings if only present there',
913
+ userContent: {},
914
+ workspaceContent: { model: { compressionThreshold: 0.8 } },
915
+ expected: 0.8,
916
+ },
917
+ {
918
+ description: 'should prioritize workspace settings over user settings',
919
+ userContent: { model: { compressionThreshold: 0.5 } },
920
+ workspaceContent: { model: { compressionThreshold: 0.8 } },
921
+ expected: 0.8,
922
+ },
923
+ {
924
+ description: 'should be undefined if not in any settings file',
925
+ userContent: {},
926
+ workspaceContent: {},
927
+ expected: undefined,
928
+ },
929
+ ])('$description', ({ userContent, workspaceContent, expected }) => {
930
+ mockFsExistsSync.mockReturnValue(true);
931
+ fs.readFileSync.mockImplementation((p) => {
932
+ if (p === USER_SETTINGS_PATH)
933
+ return JSON.stringify(userContent);
934
+ if (p === MOCK_WORKSPACE_SETTINGS_PATH)
935
+ return JSON.stringify(workspaceContent);
936
+ return '{}';
937
+ });
938
+ const settings = loadSettings(MOCK_WORKSPACE_DIR);
939
+ expect(settings.merged.model?.compressionThreshold).toEqual(expected);
936
940
  });
937
- const settings = loadSettings(MOCK_WORKSPACE_DIR);
938
- expect(settings.merged.model?.compressionThreshold).toEqual(0.5);
939
- });
940
- it('should have model as undefined if not in any settings file', () => {
941
- mockFsExistsSync.mockReturnValue(false); // No settings files exist
942
- fs.readFileSync.mockReturnValue('{}');
943
- const settings = loadSettings(MOCK_WORKSPACE_DIR);
944
- expect(settings.merged.model).toBeUndefined();
945
941
  });
946
942
  it('should use user compressionThreshold if workspace does not define it', () => {
947
943
  mockFsExistsSync.mockReturnValue(true);
@@ -1288,6 +1284,11 @@ describe('Settings Loading and Merging', () => {
1288
1284
  expect(settings.system.settings).toEqual(systemSettingsContent);
1289
1285
  expect(settings.merged).toEqual({
1290
1286
  ...systemSettingsContent,
1287
+ security: {
1288
+ auth: {
1289
+ selectedType: AuthType.KEYCLOAK,
1290
+ },
1291
+ },
1291
1292
  });
1292
1293
  });
1293
1294
  });