@machina.ai/cell-cli 1.8.2-rc1 → 1.11.0-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 (637) hide show
  1. package/dist/index.js +5 -5
  2. package/dist/index.js.map +1 -1
  3. package/dist/package.json +8 -7
  4. package/dist/src/commands/extensions/disable.js +8 -5
  5. package/dist/src/commands/extensions/disable.js.map +1 -1
  6. package/dist/src/commands/extensions/enable.js +8 -6
  7. package/dist/src/commands/extensions/enable.js.map +1 -1
  8. package/dist/src/commands/extensions/examples/context/GEMINI.md +9 -3
  9. package/dist/src/commands/extensions/examples/mcp-server/example.d.ts +6 -0
  10. package/dist/src/commands/extensions/examples/mcp-server/example.js +46 -0
  11. package/dist/src/commands/extensions/examples/mcp-server/example.js.map +1 -0
  12. package/dist/src/commands/extensions/install.d.ts +2 -0
  13. package/dist/src/commands/extensions/install.js +25 -5
  14. package/dist/src/commands/extensions/install.js.map +1 -1
  15. package/dist/src/commands/extensions/install.test.js +9 -9
  16. package/dist/src/commands/extensions/install.test.js.map +1 -1
  17. package/dist/src/commands/extensions/link.js +5 -4
  18. package/dist/src/commands/extensions/link.js.map +1 -1
  19. package/dist/src/commands/extensions/list.js +7 -5
  20. package/dist/src/commands/extensions/list.js.map +1 -1
  21. package/dist/src/commands/extensions/new.js +14 -20
  22. package/dist/src/commands/extensions/new.js.map +1 -1
  23. package/dist/src/commands/extensions/uninstall.js +4 -3
  24. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  25. package/dist/src/commands/extensions/update.js +18 -22
  26. package/dist/src/commands/extensions/update.js.map +1 -1
  27. package/dist/src/commands/mcp/add.js +7 -4
  28. package/dist/src/commands/mcp/add.js.map +1 -1
  29. package/dist/src/commands/mcp/add.test.d.ts +6 -0
  30. package/dist/src/commands/mcp/add.test.js +244 -0
  31. package/dist/src/commands/mcp/add.test.js.map +1 -0
  32. package/dist/src/commands/mcp/list.js +11 -9
  33. package/dist/src/commands/mcp/list.js.map +1 -1
  34. package/dist/src/commands/mcp/list.test.d.ts +6 -0
  35. package/dist/src/commands/mcp/list.test.js +118 -0
  36. package/dist/src/commands/mcp/list.test.js.map +1 -0
  37. package/dist/src/commands/mcp/remove.js +3 -2
  38. package/dist/src/commands/mcp/remove.js.map +1 -1
  39. package/dist/src/commands/mcp/remove.test.d.ts +6 -0
  40. package/dist/src/commands/mcp/remove.test.js +175 -0
  41. package/dist/src/commands/mcp/remove.test.js.map +1 -0
  42. package/dist/src/commands/mcp.test.d.ts +6 -0
  43. package/dist/src/commands/mcp.test.js +62 -0
  44. package/dist/src/commands/mcp.test.js.map +1 -0
  45. package/dist/src/config/auth.js +3 -1
  46. package/dist/src/config/auth.js.map +1 -1
  47. package/dist/src/config/config.d.ts +4 -16
  48. package/dist/src/config/config.integration.test.d.ts +6 -0
  49. package/dist/src/config/config.integration.test.js +321 -0
  50. package/dist/src/config/config.integration.test.js.map +1 -0
  51. package/dist/src/config/config.js +80 -105
  52. package/dist/src/config/config.js.map +1 -1
  53. package/dist/src/config/config.test.d.ts +6 -0
  54. package/dist/src/config/config.test.js +1949 -0
  55. package/dist/src/config/config.test.js.map +1 -0
  56. package/dist/src/config/extension.d.ts +19 -27
  57. package/dist/src/config/extension.js +159 -139
  58. package/dist/src/config/extension.js.map +1 -1
  59. package/dist/src/config/extension.test.d.ts +6 -0
  60. package/dist/src/config/extension.test.js +1088 -0
  61. package/dist/src/config/extension.test.js.map +1 -0
  62. package/dist/src/config/extensions/extensionEnablement.d.ts +3 -3
  63. package/dist/src/config/extensions/extensionEnablement.js +5 -5
  64. package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
  65. package/dist/src/config/extensions/extensionEnablement.test.js +26 -22
  66. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
  67. package/dist/src/config/extensions/github.d.ts +23 -7
  68. package/dist/src/config/extensions/github.js +139 -88
  69. package/dist/src/config/extensions/github.js.map +1 -1
  70. package/dist/src/config/extensions/github.test.js +74 -22
  71. package/dist/src/config/extensions/github.test.js.map +1 -1
  72. package/dist/src/config/extensions/github_fetch.d.ts +7 -0
  73. package/dist/src/config/extensions/github_fetch.js +34 -0
  74. package/dist/src/config/extensions/github_fetch.js.map +1 -0
  75. package/dist/src/config/extensions/update.d.ts +5 -4
  76. package/dist/src/config/extensions/update.js +23 -16
  77. package/dist/src/config/extensions/update.js.map +1 -1
  78. package/dist/src/config/extensions/update.test.js +57 -57
  79. package/dist/src/config/extensions/update.test.js.map +1 -1
  80. package/dist/src/config/extensions/variableSchema.d.ts +2 -0
  81. package/dist/src/config/extensions/variableSchema.js.map +1 -1
  82. package/dist/src/config/keyBindings.d.ts +2 -1
  83. package/dist/src/config/keyBindings.js +5 -3
  84. package/dist/src/config/keyBindings.js.map +1 -1
  85. package/dist/src/config/policy.d.ts +3 -2
  86. package/dist/src/config/policy.js +33 -24
  87. package/dist/src/config/policy.js.map +1 -1
  88. package/dist/src/config/policy.test.js +60 -36
  89. package/dist/src/config/policy.test.js.map +1 -1
  90. package/dist/src/config/sandboxConfig.d.ts +0 -1
  91. package/dist/src/config/sandboxConfig.js +1 -3
  92. package/dist/src/config/sandboxConfig.js.map +1 -1
  93. package/dist/src/config/settings.d.ts +10 -1
  94. package/dist/src/config/settings.js +24 -9
  95. package/dist/src/config/settings.js.map +1 -1
  96. package/dist/src/config/settings.test.d.ts +6 -0
  97. package/dist/src/config/settings.test.js +1941 -0
  98. package/dist/src/config/settings.test.js.map +1 -0
  99. package/dist/src/config/settingsSchema.d.ts +124 -3
  100. package/dist/src/config/settingsSchema.js +125 -4
  101. package/dist/src/config/settingsSchema.js.map +1 -1
  102. package/dist/src/config/trustedFolders.d.ts +0 -1
  103. package/dist/src/config/trustedFolders.js +2 -3
  104. package/dist/src/config/trustedFolders.js.map +1 -1
  105. package/dist/src/gemini.js +46 -33
  106. package/dist/src/gemini.js.map +1 -1
  107. package/dist/src/gemini.test.js +62 -19
  108. package/dist/src/gemini.test.js.map +1 -1
  109. package/dist/src/generated/git-commit.d.ts +2 -2
  110. package/dist/src/generated/git-commit.js +2 -2
  111. package/dist/src/generated/git-commit.js.map +1 -1
  112. package/dist/src/nonInteractiveCli.js +105 -4
  113. package/dist/src/nonInteractiveCli.js.map +1 -1
  114. package/dist/src/nonInteractiveCli.test.d.ts +6 -0
  115. package/dist/src/nonInteractiveCli.test.js +741 -0
  116. package/dist/src/nonInteractiveCli.test.js.map +1 -0
  117. package/dist/src/nonInteractiveCliCommands.js +2 -3
  118. package/dist/src/nonInteractiveCliCommands.js.map +1 -1
  119. package/dist/src/services/BuiltinCommandLoader.js +3 -0
  120. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  121. package/dist/src/services/BuiltinCommandLoader.test.js +37 -0
  122. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  123. package/dist/src/services/CommandService.js +2 -1
  124. package/dist/src/services/CommandService.js.map +1 -1
  125. package/dist/src/services/FileCommandLoader.d.ts +1 -1
  126. package/dist/src/services/FileCommandLoader.js +4 -4
  127. package/dist/src/services/FileCommandLoader.js.map +1 -1
  128. package/dist/src/services/FileCommandLoader.test.d.ts +6 -0
  129. package/dist/src/services/FileCommandLoader.test.js +971 -0
  130. package/dist/src/services/FileCommandLoader.test.js.map +1 -0
  131. package/dist/src/services/prompt-processors/argumentProcessor.test.d.ts +6 -0
  132. package/dist/src/services/prompt-processors/argumentProcessor.test.js +40 -0
  133. package/dist/src/services/prompt-processors/argumentProcessor.test.js.map +1 -0
  134. package/dist/src/services/prompt-processors/atFileProcessor.js +3 -2
  135. package/dist/src/services/prompt-processors/atFileProcessor.js.map +1 -1
  136. package/dist/src/services/prompt-processors/shellProcessor.js +1 -1
  137. package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
  138. package/dist/src/services/prompt-processors/shellProcessor.test.d.ts +6 -0
  139. package/dist/src/services/prompt-processors/shellProcessor.test.js +482 -0
  140. package/dist/src/services/prompt-processors/shellProcessor.test.js.map +1 -0
  141. package/dist/src/test-utils/render.d.ts +12 -4
  142. package/dist/src/test-utils/render.js +56 -2
  143. package/dist/src/test-utils/render.js.map +1 -1
  144. package/dist/src/ui/App.js +1 -17
  145. package/dist/src/ui/App.js.map +1 -1
  146. package/dist/src/ui/App.test.d.ts +6 -0
  147. package/dist/src/ui/App.test.js +110 -0
  148. package/dist/src/ui/App.test.js.map +1 -0
  149. package/dist/src/ui/AppContainer.js +69 -39
  150. package/dist/src/ui/AppContainer.js.map +1 -1
  151. package/dist/src/ui/AppContainer.test.js +35 -9
  152. package/dist/src/ui/AppContainer.test.js.map +1 -1
  153. package/dist/src/ui/auth/AuthDialog.d.ts +1 -1
  154. package/dist/src/ui/auth/AuthDialog.js +5 -3
  155. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  156. package/dist/src/ui/auth/AuthInProgress.js +2 -2
  157. package/dist/src/ui/auth/AuthInProgress.js.map +1 -1
  158. package/dist/src/ui/auth/useAuth.d.ts +1 -1
  159. package/dist/src/ui/auth/useAuth.js +5 -3
  160. package/dist/src/ui/auth/useAuth.js.map +1 -1
  161. package/dist/src/ui/commands/aboutCommand.js +1 -1
  162. package/dist/src/ui/commands/aboutCommand.test.d.ts +6 -0
  163. package/dist/src/ui/commands/aboutCommand.test.js +130 -0
  164. package/dist/src/ui/commands/aboutCommand.test.js.map +1 -0
  165. package/dist/src/ui/commands/authCommand.js +1 -1
  166. package/dist/src/ui/commands/authCommand.test.d.ts +6 -0
  167. package/dist/src/ui/commands/authCommand.test.js +30 -0
  168. package/dist/src/ui/commands/authCommand.test.js.map +1 -0
  169. package/dist/src/ui/commands/bugCommand.js +1 -1
  170. package/dist/src/ui/commands/bugCommand.test.d.ts +6 -0
  171. package/dist/src/ui/commands/bugCommand.test.js +105 -0
  172. package/dist/src/ui/commands/bugCommand.test.js.map +1 -0
  173. package/dist/src/ui/commands/chatCommand.js +8 -25
  174. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  175. package/dist/src/ui/commands/chatCommand.test.d.ts +6 -0
  176. package/dist/src/ui/commands/chatCommand.test.js +555 -0
  177. package/dist/src/ui/commands/chatCommand.test.js.map +1 -0
  178. package/dist/src/ui/commands/clearCommand.js +1 -1
  179. package/dist/src/ui/commands/clearCommand.test.d.ts +6 -0
  180. package/dist/src/ui/commands/clearCommand.test.js +76 -0
  181. package/dist/src/ui/commands/clearCommand.test.js.map +1 -0
  182. package/dist/src/ui/commands/compressCommand.js +1 -1
  183. package/dist/src/ui/commands/compressCommand.js.map +1 -1
  184. package/dist/src/ui/commands/compressCommand.test.d.ts +6 -0
  185. package/dist/src/ui/commands/compressCommand.test.js +98 -0
  186. package/dist/src/ui/commands/compressCommand.test.js.map +1 -0
  187. package/dist/src/ui/commands/copyCommand.js +2 -1
  188. package/dist/src/ui/commands/copyCommand.js.map +1 -1
  189. package/dist/src/ui/commands/copyCommand.test.d.ts +6 -0
  190. package/dist/src/ui/commands/copyCommand.test.js +242 -0
  191. package/dist/src/ui/commands/copyCommand.test.js.map +1 -0
  192. package/dist/src/ui/commands/corgiCommand.js +1 -1
  193. package/dist/src/ui/commands/corgiCommand.js.map +1 -1
  194. package/dist/src/ui/commands/corgiCommand.test.d.ts +6 -0
  195. package/dist/src/ui/commands/corgiCommand.test.js +28 -0
  196. package/dist/src/ui/commands/corgiCommand.test.js.map +1 -0
  197. package/dist/src/ui/commands/directoryCommand.js +1 -1
  198. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  199. package/dist/src/ui/commands/directoryCommand.test.d.ts +6 -0
  200. package/dist/src/ui/commands/directoryCommand.test.js +144 -0
  201. package/dist/src/ui/commands/directoryCommand.test.js.map +1 -0
  202. package/dist/src/ui/commands/docsCommand.js +1 -1
  203. package/dist/src/ui/commands/docsCommand.test.d.ts +6 -0
  204. package/dist/src/ui/commands/docsCommand.test.js +72 -0
  205. package/dist/src/ui/commands/docsCommand.test.js.map +1 -0
  206. package/dist/src/ui/commands/editorCommand.js +1 -1
  207. package/dist/src/ui/commands/editorCommand.test.d.ts +6 -0
  208. package/dist/src/ui/commands/editorCommand.test.js +27 -0
  209. package/dist/src/ui/commands/editorCommand.test.js.map +1 -0
  210. package/dist/src/ui/commands/extensionsCommand.js +30 -32
  211. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  212. package/dist/src/ui/commands/extensionsCommand.test.d.ts +6 -0
  213. package/dist/src/ui/commands/extensionsCommand.test.js +244 -0
  214. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -0
  215. package/dist/src/ui/commands/helpCommand.js +1 -1
  216. package/dist/src/ui/commands/helpCommand.test.d.ts +6 -0
  217. package/dist/src/ui/commands/helpCommand.test.js +42 -0
  218. package/dist/src/ui/commands/helpCommand.test.js.map +1 -0
  219. package/dist/src/ui/commands/ideCommand.js +6 -6
  220. package/dist/src/ui/commands/ideCommand.test.d.ts +6 -0
  221. package/dist/src/ui/commands/ideCommand.test.js +205 -0
  222. package/dist/src/ui/commands/ideCommand.test.js.map +1 -0
  223. package/dist/src/ui/commands/initCommand.js +1 -1
  224. package/dist/src/ui/commands/initCommand.js.map +1 -1
  225. package/dist/src/ui/commands/initCommand.test.d.ts +6 -0
  226. package/dist/src/ui/commands/initCommand.test.js +80 -0
  227. package/dist/src/ui/commands/initCommand.test.js.map +1 -0
  228. package/dist/src/ui/commands/mcpCommand.js +98 -88
  229. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  230. package/dist/src/ui/commands/mcpCommand.test.d.ts +6 -0
  231. package/dist/src/ui/commands/mcpCommand.test.js +148 -0
  232. package/dist/src/ui/commands/mcpCommand.test.js.map +1 -0
  233. package/dist/src/ui/commands/memoryCommand.js +27 -9
  234. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  235. package/dist/src/ui/commands/memoryCommand.test.d.ts +6 -0
  236. package/dist/src/ui/commands/memoryCommand.test.js +266 -0
  237. package/dist/src/ui/commands/memoryCommand.test.js.map +1 -0
  238. package/dist/src/ui/commands/privacyCommand.js +1 -1
  239. package/dist/src/ui/commands/privacyCommand.test.d.ts +6 -0
  240. package/dist/src/ui/commands/privacyCommand.test.js +32 -0
  241. package/dist/src/ui/commands/privacyCommand.test.js.map +1 -0
  242. package/dist/src/ui/commands/profileCommand.d.ts +7 -0
  243. package/dist/src/ui/commands/profileCommand.js +23 -0
  244. package/dist/src/ui/commands/profileCommand.js.map +1 -0
  245. package/dist/src/ui/commands/quitCommand.js +1 -1
  246. package/dist/src/ui/commands/quitCommand.test.d.ts +6 -0
  247. package/dist/src/ui/commands/quitCommand.test.js +50 -0
  248. package/dist/src/ui/commands/quitCommand.test.js.map +1 -0
  249. package/dist/src/ui/commands/restoreCommand.test.d.ts +6 -0
  250. package/dist/src/ui/commands/restoreCommand.test.js +190 -0
  251. package/dist/src/ui/commands/restoreCommand.test.js.map +1 -0
  252. package/dist/src/ui/commands/settingsCommand.test.d.ts +6 -0
  253. package/dist/src/ui/commands/settingsCommand.test.js +30 -0
  254. package/dist/src/ui/commands/settingsCommand.test.js.map +1 -0
  255. package/dist/src/ui/commands/setupGithubCommand.js +4 -3
  256. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  257. package/dist/src/ui/commands/statsCommand.js +3 -3
  258. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  259. package/dist/src/ui/commands/statsCommand.test.d.ts +6 -0
  260. package/dist/src/ui/commands/statsCommand.test.js +53 -0
  261. package/dist/src/ui/commands/statsCommand.test.js.map +1 -0
  262. package/dist/src/ui/commands/terminalSetupCommand.test.d.ts +6 -0
  263. package/dist/src/ui/commands/terminalSetupCommand.test.js +66 -0
  264. package/dist/src/ui/commands/terminalSetupCommand.test.js.map +1 -0
  265. package/dist/src/ui/commands/themeCommand.js +1 -1
  266. package/dist/src/ui/commands/themeCommand.test.d.ts +6 -0
  267. package/dist/src/ui/commands/themeCommand.test.js +32 -0
  268. package/dist/src/ui/commands/themeCommand.test.js.map +1 -0
  269. package/dist/src/ui/commands/toolsCommand.js +1 -1
  270. package/dist/src/ui/commands/toolsCommand.test.d.ts +6 -0
  271. package/dist/src/ui/commands/toolsCommand.test.js +100 -0
  272. package/dist/src/ui/commands/toolsCommand.test.js.map +1 -0
  273. package/dist/src/ui/commands/types.d.ts +2 -0
  274. package/dist/src/ui/commands/types.js.map +1 -1
  275. package/dist/src/ui/commands/vimCommand.js +1 -1
  276. package/dist/src/ui/components/AnsiOutput.d.ts +1 -0
  277. package/dist/src/ui/components/AnsiOutput.js +5 -5
  278. package/dist/src/ui/components/AnsiOutput.js.map +1 -1
  279. package/dist/src/ui/components/AnsiOutput.test.js +6 -6
  280. package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
  281. package/dist/src/ui/components/AsciiArt.d.ts +3 -3
  282. package/dist/src/ui/components/AsciiArt.js +3 -3
  283. package/dist/src/ui/components/CliSpinner.d.ts +10 -0
  284. package/dist/src/ui/components/CliSpinner.js +20 -0
  285. package/dist/src/ui/components/CliSpinner.js.map +1 -0
  286. package/dist/src/ui/components/Composer.js +8 -9
  287. package/dist/src/ui/components/Composer.js.map +1 -1
  288. package/dist/src/ui/components/Composer.test.js +16 -1
  289. package/dist/src/ui/components/Composer.test.js.map +1 -1
  290. package/dist/src/ui/components/ContextSummaryDisplay.d.ts +0 -1
  291. package/dist/src/ui/components/ContextSummaryDisplay.js +4 -14
  292. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  293. package/dist/src/ui/components/ContextSummaryDisplay.test.d.ts +6 -0
  294. package/dist/src/ui/components/ContextSummaryDisplay.test.js +66 -0
  295. package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -0
  296. package/dist/src/ui/components/DebugProfiler.d.ts +18 -0
  297. package/dist/src/ui/components/DebugProfiler.js +158 -12
  298. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  299. package/dist/src/ui/components/DebugProfiler.test.d.ts +6 -0
  300. package/dist/src/ui/components/DebugProfiler.test.js +140 -0
  301. package/dist/src/ui/components/DebugProfiler.test.js.map +1 -0
  302. package/dist/src/ui/components/DialogManager.js +1 -5
  303. package/dist/src/ui/components/DialogManager.js.map +1 -1
  304. package/dist/src/ui/components/EditorSettingsDialog.js +1 -1
  305. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  306. package/dist/src/ui/components/FolderTrustDialog.js +9 -5
  307. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  308. package/dist/src/ui/components/FolderTrustDialog.test.js +14 -14
  309. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  310. package/dist/src/ui/components/Footer.js +7 -6
  311. package/dist/src/ui/components/Footer.js.map +1 -1
  312. package/dist/src/ui/components/Footer.test.d.ts +6 -0
  313. package/dist/src/ui/components/Footer.test.js +231 -0
  314. package/dist/src/ui/components/Footer.test.js.map +1 -0
  315. package/dist/src/ui/components/GeminiRespondingSpinner.js +2 -2
  316. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
  317. package/dist/src/ui/components/Help.js +1 -1
  318. package/dist/src/ui/components/Help.js.map +1 -1
  319. package/dist/src/ui/components/HistoryItemDisplay.js +2 -1
  320. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  321. package/dist/src/ui/components/InputPrompt.d.ts +11 -1
  322. package/dist/src/ui/components/InputPrompt.js +103 -29
  323. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  324. package/dist/src/ui/components/InputPrompt.test.d.ts +6 -0
  325. package/dist/src/ui/components/InputPrompt.test.js +1737 -0
  326. package/dist/src/ui/components/InputPrompt.test.js.map +1 -0
  327. package/dist/src/ui/components/MainContent.js +1 -1
  328. package/dist/src/ui/components/MainContent.js.map +1 -1
  329. package/dist/src/ui/components/ModelStatsDisplay.test.d.ts +6 -0
  330. package/dist/src/ui/components/ModelStatsDisplay.test.js +285 -0
  331. package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -0
  332. package/dist/src/ui/components/Notifications.js +12 -4
  333. package/dist/src/ui/components/Notifications.js.map +1 -1
  334. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +22 -18
  335. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -1
  336. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +10 -2
  337. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
  338. package/dist/src/ui/components/QueuedMessageDisplay.js +3 -3
  339. package/dist/src/ui/components/QueuedMessageDisplay.js.map +1 -1
  340. package/dist/src/ui/components/QueuedMessageDisplay.test.js +4 -0
  341. package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -1
  342. package/dist/src/ui/components/RawMarkdownIndicator.d.ts +7 -0
  343. package/dist/src/ui/components/RawMarkdownIndicator.js +8 -0
  344. package/dist/src/ui/components/RawMarkdownIndicator.js.map +1 -0
  345. package/dist/src/ui/components/SessionSummaryDisplay.test.d.ts +6 -0
  346. package/dist/src/ui/components/SessionSummaryDisplay.test.js +74 -0
  347. package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -0
  348. package/dist/src/ui/components/SettingsDialog.js +12 -11
  349. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  350. package/dist/src/ui/components/SettingsDialog.test.js +190 -77
  351. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  352. package/dist/src/ui/components/StatsDisplay.test.d.ts +6 -0
  353. package/dist/src/ui/components/StatsDisplay.test.js +351 -0
  354. package/dist/src/ui/components/StatsDisplay.test.js.map +1 -0
  355. package/dist/src/ui/components/ThemeDialog.d.ts +4 -2
  356. package/dist/src/ui/components/ThemeDialog.js +3 -3
  357. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  358. package/dist/src/ui/components/ThemeDialog.test.js +13 -0
  359. package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
  360. package/dist/src/ui/components/ToolStatsDisplay.test.d.ts +6 -0
  361. package/dist/src/ui/components/ToolStatsDisplay.test.js +227 -0
  362. package/dist/src/ui/components/ToolStatsDisplay.test.js.map +1 -0
  363. package/dist/src/ui/components/messages/CompressionMessage.js +3 -3
  364. package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
  365. package/dist/src/ui/components/messages/GeminiMessage.js +3 -1
  366. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
  367. package/dist/src/ui/components/messages/GeminiMessage.test.d.ts +6 -0
  368. package/dist/src/ui/components/messages/GeminiMessage.test.js +35 -0
  369. package/dist/src/ui/components/messages/GeminiMessage.test.js.map +1 -0
  370. package/dist/src/ui/components/messages/GeminiMessageContent.js +3 -1
  371. package/dist/src/ui/components/messages/GeminiMessageContent.js.map +1 -1
  372. package/dist/src/ui/components/messages/Todo.d.ts +7 -0
  373. package/dist/src/ui/components/messages/Todo.js +69 -0
  374. package/dist/src/ui/components/messages/Todo.js.map +1 -0
  375. package/dist/src/ui/components/messages/Todo.test.d.ts +6 -0
  376. package/dist/src/ui/components/messages/Todo.test.js +102 -0
  377. package/dist/src/ui/components/messages/Todo.test.js.map +1 -0
  378. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +1 -1
  379. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  380. package/dist/src/ui/components/messages/ToolGroupMessage.js +2 -2
  381. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  382. package/dist/src/ui/components/messages/ToolMessage.js +9 -4
  383. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  384. package/dist/src/ui/components/messages/ToolMessage.test.js +2 -2
  385. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  386. package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.d.ts +6 -0
  387. package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js +30 -0
  388. package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js.map +1 -0
  389. package/dist/src/ui/components/messages/UserShellMessage.js +1 -1
  390. package/dist/src/ui/components/messages/UserShellMessage.js.map +1 -1
  391. package/dist/src/ui/components/shared/BaseSelectionList.test.js +33 -24
  392. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  393. package/dist/src/ui/components/shared/text-buffer.js +1 -1
  394. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  395. package/dist/src/ui/components/shared/text-buffer.test.d.ts +6 -0
  396. package/dist/src/ui/components/shared/text-buffer.test.js +1578 -0
  397. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -0
  398. package/dist/src/ui/components/shared/vim-buffer-actions.test.d.ts +6 -0
  399. package/dist/src/ui/components/shared/vim-buffer-actions.test.js +951 -0
  400. package/dist/src/ui/components/shared/vim-buffer-actions.test.js.map +1 -0
  401. package/dist/src/ui/components/views/ChatList.d.ts +12 -0
  402. package/dist/src/ui/components/views/ChatList.js +17 -0
  403. package/dist/src/ui/components/views/ChatList.js.map +1 -0
  404. package/dist/src/ui/components/views/ChatList.test.d.ts +6 -0
  405. package/dist/src/ui/components/views/ChatList.test.js +42 -0
  406. package/dist/src/ui/components/views/ChatList.test.js.map +1 -0
  407. package/dist/src/ui/components/views/ExtensionsList.js +3 -4
  408. package/dist/src/ui/components/views/ExtensionsList.js.map +1 -1
  409. package/dist/src/ui/components/views/ExtensionsList.test.js +2 -9
  410. package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
  411. package/dist/src/ui/components/views/McpStatus.d.ts +0 -1
  412. package/dist/src/ui/components/views/McpStatus.js +4 -4
  413. package/dist/src/ui/components/views/McpStatus.js.map +1 -1
  414. package/dist/src/ui/components/views/McpStatus.test.js +0 -5
  415. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
  416. package/dist/src/ui/components/views/ToolsList.test.js +4 -4
  417. package/dist/src/ui/components/views/ToolsList.test.js.map +1 -1
  418. package/dist/src/ui/contexts/KeypressContext.d.ts +1 -0
  419. package/dist/src/ui/contexts/KeypressContext.js +219 -53
  420. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  421. package/dist/src/ui/contexts/KeypressContext.test.js +536 -10
  422. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  423. package/dist/src/ui/contexts/SessionContext.test.d.ts +6 -0
  424. package/dist/src/ui/contexts/SessionContext.test.js +177 -0
  425. package/dist/src/ui/contexts/SessionContext.test.js.map +1 -0
  426. package/dist/src/ui/contexts/UIActionsContext.d.ts +5 -4
  427. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  428. package/dist/src/ui/contexts/UIStateContext.d.ts +6 -4
  429. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  430. package/dist/src/ui/hooks/atCommandProcessor.js +2 -2
  431. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  432. package/dist/src/ui/hooks/shellCommandProcessor.js +5 -7
  433. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  434. package/dist/src/ui/hooks/shellCommandProcessor.test.js +19 -32
  435. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  436. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -1
  437. package/dist/src/ui/hooks/slashCommandProcessor.js +11 -7
  438. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  439. package/dist/src/ui/hooks/slashCommandProcessor.test.d.ts +6 -0
  440. package/dist/src/ui/hooks/slashCommandProcessor.test.js +779 -0
  441. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -0
  442. package/dist/src/ui/hooks/useAtCompletion.js +2 -2
  443. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  444. package/dist/src/ui/hooks/useAtCompletion.test.d.ts +6 -0
  445. package/dist/src/ui/hooks/useAtCompletion.test.js +385 -0
  446. package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -0
  447. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +0 -1
  448. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
  449. package/dist/src/ui/hooks/useCommandCompletion.d.ts +1 -1
  450. package/dist/src/ui/hooks/useCommandCompletion.js +5 -3
  451. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  452. package/dist/src/ui/hooks/useCommandCompletion.test.d.ts +6 -0
  453. package/dist/src/ui/hooks/useCommandCompletion.test.js +375 -0
  454. package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -0
  455. package/dist/src/ui/hooks/useConsoleMessages.test.d.ts +6 -0
  456. package/dist/src/ui/hooks/useConsoleMessages.test.js +110 -0
  457. package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -0
  458. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +2 -1
  459. package/dist/src/ui/hooks/useExtensionUpdates.js +71 -19
  460. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  461. package/dist/src/ui/hooks/useExtensionUpdates.test.js +28 -13
  462. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  463. package/dist/src/ui/hooks/useFlickerDetector.d.ts +14 -0
  464. package/dist/src/ui/hooks/useFlickerDetector.js +37 -0
  465. package/dist/src/ui/hooks/useFlickerDetector.js.map +1 -0
  466. package/dist/src/ui/hooks/useFlickerDetector.test.d.ts +6 -0
  467. package/dist/src/ui/hooks/useFlickerDetector.test.js +102 -0
  468. package/dist/src/ui/hooks/useFlickerDetector.test.js.map +1 -0
  469. package/dist/src/ui/hooks/useFocus.test.d.ts +6 -0
  470. package/dist/src/ui/hooks/useFocus.test.js +115 -0
  471. package/dist/src/ui/hooks/useFocus.test.js.map +1 -0
  472. package/dist/src/ui/hooks/useFolderTrust.d.ts +2 -1
  473. package/dist/src/ui/hooks/useFolderTrust.js +12 -3
  474. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  475. package/dist/src/ui/hooks/useFolderTrust.test.d.ts +6 -0
  476. package/dist/src/ui/hooks/useFolderTrust.test.js +164 -0
  477. package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -0
  478. package/dist/src/ui/hooks/useGeminiStream.js +95 -56
  479. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  480. package/dist/src/ui/hooks/useGeminiStream.test.d.ts +6 -0
  481. package/dist/src/ui/hooks/useGeminiStream.test.js +1971 -0
  482. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -0
  483. package/dist/src/ui/hooks/useHistoryManager.js +3 -3
  484. package/dist/src/ui/hooks/useHistoryManager.js.map +1 -1
  485. package/dist/src/ui/hooks/useInputHistoryStore.js +2 -1
  486. package/dist/src/ui/hooks/useInputHistoryStore.js.map +1 -1
  487. package/dist/src/ui/hooks/useKeypress.test.d.ts +6 -0
  488. package/dist/src/ui/hooks/useKeypress.test.js +234 -0
  489. package/dist/src/ui/hooks/useKeypress.test.js.map +1 -0
  490. package/dist/src/ui/hooks/useLoadingIndicator.test.js +5 -0
  491. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  492. package/dist/src/ui/hooks/useMessageQueue.d.ts +1 -0
  493. package/dist/src/ui/hooks/useMessageQueue.js +14 -0
  494. package/dist/src/ui/hooks/useMessageQueue.js.map +1 -1
  495. package/dist/src/ui/hooks/useMessageQueue.test.js +121 -0
  496. package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
  497. package/dist/src/ui/hooks/usePhraseCycler.d.ts +1 -0
  498. package/dist/src/ui/hooks/usePhraseCycler.js +157 -5
  499. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  500. package/dist/src/ui/hooks/usePhraseCycler.test.d.ts +6 -0
  501. package/dist/src/ui/hooks/usePhraseCycler.test.js +155 -0
  502. package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -0
  503. package/dist/src/ui/hooks/useReactToolScheduler.js +2 -2
  504. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  505. package/dist/src/ui/hooks/useSelectionList.js +50 -23
  506. package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
  507. package/dist/src/ui/hooks/useSelectionList.test.js +24 -0
  508. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
  509. package/dist/src/ui/hooks/useShellHistory.test.js +16 -10
  510. package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
  511. package/dist/src/ui/hooks/useShowMemoryCommand.d.ts +1 -1
  512. package/dist/src/ui/hooks/useShowMemoryCommand.js +4 -3
  513. package/dist/src/ui/hooks/useShowMemoryCommand.js.map +1 -1
  514. package/dist/src/ui/hooks/useSlashCompletion.js +2 -1
  515. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  516. package/dist/src/ui/hooks/useTerminalSize.js +2 -3
  517. package/dist/src/ui/hooks/useTerminalSize.js.map +1 -1
  518. package/dist/src/ui/hooks/useThemeCommand.d.ts +2 -1
  519. package/dist/src/ui/hooks/useThemeCommand.js +6 -0
  520. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  521. package/dist/src/ui/hooks/useToolScheduler.test.js +3 -0
  522. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  523. package/dist/src/ui/hooks/vim.js +2 -1
  524. package/dist/src/ui/hooks/vim.js.map +1 -1
  525. package/dist/src/ui/hooks/vim.test.d.ts +6 -0
  526. package/dist/src/ui/hooks/vim.test.js +1389 -0
  527. package/dist/src/ui/hooks/vim.test.js.map +1 -0
  528. package/dist/src/ui/keyMatchers.test.js +9 -3
  529. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  530. package/dist/src/ui/layouts/DefaultAppLayout.d.ts +1 -3
  531. package/dist/src/ui/layouts/DefaultAppLayout.js +5 -2
  532. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -1
  533. package/dist/src/ui/layouts/ScreenReaderAppLayout.js +4 -1
  534. package/dist/src/ui/layouts/ScreenReaderAppLayout.js.map +1 -1
  535. package/dist/src/ui/noninteractive/nonInteractiveUi.js +1 -0
  536. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -1
  537. package/dist/src/ui/state/extensions.d.ts +22 -3
  538. package/dist/src/ui/state/extensions.js +26 -4
  539. package/dist/src/ui/state/extensions.js.map +1 -1
  540. package/dist/src/ui/themes/color-utils.js +2 -1
  541. package/dist/src/ui/themes/color-utils.js.map +1 -1
  542. package/dist/src/ui/themes/theme-manager.js +8 -7
  543. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  544. package/dist/src/ui/themes/theme.test.d.ts +6 -0
  545. package/dist/src/ui/themes/theme.test.js +85 -0
  546. package/dist/src/ui/themes/theme.test.js.map +1 -0
  547. package/dist/src/ui/types.d.ts +11 -3
  548. package/dist/src/ui/types.js +1 -0
  549. package/dist/src/ui/types.js.map +1 -1
  550. package/dist/src/ui/utils/CodeColorizer.d.ts +1 -1
  551. package/dist/src/ui/utils/CodeColorizer.js +4 -2
  552. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  553. package/dist/src/ui/utils/MarkdownDisplay.d.ts +1 -0
  554. package/dist/src/ui/utils/MarkdownDisplay.js +8 -1
  555. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  556. package/dist/src/ui/utils/commandUtils.js +20 -3
  557. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  558. package/dist/src/ui/utils/commandUtils.test.js +61 -6
  559. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  560. package/dist/src/ui/utils/computeStats.js +5 -2
  561. package/dist/src/ui/utils/computeStats.js.map +1 -1
  562. package/dist/src/ui/utils/computeStats.test.d.ts +6 -0
  563. package/dist/src/ui/utils/computeStats.test.js +262 -0
  564. package/dist/src/ui/utils/computeStats.test.js.map +1 -0
  565. package/dist/src/ui/utils/terminalSetup.js +3 -2
  566. package/dist/src/ui/utils/terminalSetup.js.map +1 -1
  567. package/dist/src/ui/utils/ui-sizing.d.ts +7 -0
  568. package/dist/src/ui/utils/ui-sizing.js +23 -0
  569. package/dist/src/ui/utils/ui-sizing.js.map +1 -0
  570. package/dist/src/ui/utils/updateCheck.d.ts +2 -1
  571. package/dist/src/ui/utils/updateCheck.js +6 -2
  572. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  573. package/dist/src/ui/utils/updateCheck.test.js +25 -10
  574. package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
  575. package/dist/src/utils/cleanup.test.d.ts +6 -0
  576. package/dist/src/utils/cleanup.test.js +49 -0
  577. package/dist/src/utils/cleanup.test.js.map +1 -0
  578. package/dist/src/utils/commentJson.js +95 -13
  579. package/dist/src/utils/commentJson.js.map +1 -1
  580. package/dist/src/utils/commentJson.test.js +161 -0
  581. package/dist/src/utils/commentJson.test.js.map +1 -1
  582. package/dist/src/utils/errors.d.ts +9 -3
  583. package/dist/src/utils/errors.js +87 -16
  584. package/dist/src/utils/errors.js.map +1 -1
  585. package/dist/src/utils/errors.test.js +40 -46
  586. package/dist/src/utils/errors.test.js.map +1 -1
  587. package/dist/src/utils/events.d.ts +2 -1
  588. package/dist/src/utils/events.js +1 -0
  589. package/dist/src/utils/events.js.map +1 -1
  590. package/dist/src/utils/gitUtils.js +3 -2
  591. package/dist/src/utils/gitUtils.js.map +1 -1
  592. package/dist/src/utils/handleAutoUpdate.js +4 -1
  593. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  594. package/dist/src/utils/handleAutoUpdate.test.d.ts +6 -0
  595. package/dist/src/utils/handleAutoUpdate.test.js +225 -0
  596. package/dist/src/utils/handleAutoUpdate.test.js.map +1 -0
  597. package/dist/src/utils/installationInfo.d.ts +1 -0
  598. package/dist/src/utils/installationInfo.js +4 -2
  599. package/dist/src/utils/installationInfo.js.map +1 -1
  600. package/dist/src/utils/installationInfo.test.js +8 -4
  601. package/dist/src/utils/installationInfo.test.js.map +1 -1
  602. package/dist/src/utils/readStdin.js +2 -1
  603. package/dist/src/utils/readStdin.js.map +1 -1
  604. package/dist/src/utils/sandbox-macos-permissive-open.sb +2 -0
  605. package/dist/src/utils/sandbox.js +20 -20
  606. package/dist/src/utils/sandbox.js.map +1 -1
  607. package/dist/src/utils/sessionCleanup.d.ts +22 -0
  608. package/dist/src/utils/sessionCleanup.integration.test.d.ts +6 -0
  609. package/dist/src/utils/sessionCleanup.integration.test.js +182 -0
  610. package/dist/src/utils/sessionCleanup.integration.test.js.map +1 -0
  611. package/dist/src/utils/sessionCleanup.js +214 -0
  612. package/dist/src/utils/sessionCleanup.js.map +1 -0
  613. package/dist/src/utils/sessionCleanup.test.d.ts +6 -0
  614. package/dist/src/utils/sessionCleanup.test.js +1232 -0
  615. package/dist/src/utils/sessionCleanup.test.js.map +1 -0
  616. package/dist/src/utils/sessionUtils.d.ts +37 -0
  617. package/dist/src/utils/sessionUtils.js +71 -0
  618. package/dist/src/utils/sessionUtils.js.map +1 -0
  619. package/dist/src/utils/startupWarnings.test.d.ts +6 -0
  620. package/dist/src/utils/startupWarnings.test.js +61 -0
  621. package/dist/src/utils/startupWarnings.test.js.map +1 -0
  622. package/dist/src/validateNonInterActiveAuth.js +8 -9
  623. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  624. package/dist/src/zed-integration/acp.js +1 -2
  625. package/dist/src/zed-integration/acp.js.map +1 -1
  626. package/dist/src/zed-integration/schema.d.ts +176 -176
  627. package/dist/src/zed-integration/zedIntegration.d.ts +2 -3
  628. package/dist/src/zed-integration/zedIntegration.js +12 -33
  629. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  630. package/dist/tsconfig.tsbuildinfo +1 -1
  631. package/package.json +7 -6
  632. package/dist/src/ui/components/WorkspaceMigrationDialog.d.ts +0 -11
  633. package/dist/src/ui/components/WorkspaceMigrationDialog.js +0 -44
  634. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +0 -1
  635. package/dist/src/ui/hooks/useWorkspaceMigration.d.ts +0 -13
  636. package/dist/src/ui/hooks/useWorkspaceMigration.js +0 -54
  637. package/dist/src/ui/hooks/useWorkspaceMigration.js.map +0 -1
@@ -0,0 +1,262 @@
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 { calculateAverageLatency, calculateCacheHitRate, calculateErrorRate, computeSessionStats, } from './computeStats.js';
8
+ describe('calculateErrorRate', () => {
9
+ it('should return 0 if totalRequests is 0', () => {
10
+ const metrics = {
11
+ api: { totalRequests: 0, totalErrors: 0, totalLatencyMs: 0 },
12
+ tokens: {
13
+ prompt: 0,
14
+ candidates: 0,
15
+ total: 0,
16
+ cached: 0,
17
+ thoughts: 0,
18
+ tool: 0,
19
+ },
20
+ };
21
+ expect(calculateErrorRate(metrics)).toBe(0);
22
+ });
23
+ it('should calculate the error rate correctly', () => {
24
+ const metrics = {
25
+ api: { totalRequests: 10, totalErrors: 2, totalLatencyMs: 0 },
26
+ tokens: {
27
+ prompt: 0,
28
+ candidates: 0,
29
+ total: 0,
30
+ cached: 0,
31
+ thoughts: 0,
32
+ tool: 0,
33
+ },
34
+ };
35
+ expect(calculateErrorRate(metrics)).toBe(20);
36
+ });
37
+ });
38
+ describe('calculateAverageLatency', () => {
39
+ it('should return 0 if totalRequests is 0', () => {
40
+ const metrics = {
41
+ api: { totalRequests: 0, totalErrors: 0, totalLatencyMs: 1000 },
42
+ tokens: {
43
+ prompt: 0,
44
+ candidates: 0,
45
+ total: 0,
46
+ cached: 0,
47
+ thoughts: 0,
48
+ tool: 0,
49
+ },
50
+ };
51
+ expect(calculateAverageLatency(metrics)).toBe(0);
52
+ });
53
+ it('should calculate the average latency correctly', () => {
54
+ const metrics = {
55
+ api: { totalRequests: 10, totalErrors: 0, totalLatencyMs: 1500 },
56
+ tokens: {
57
+ prompt: 0,
58
+ candidates: 0,
59
+ total: 0,
60
+ cached: 0,
61
+ thoughts: 0,
62
+ tool: 0,
63
+ },
64
+ };
65
+ expect(calculateAverageLatency(metrics)).toBe(150);
66
+ });
67
+ });
68
+ describe('calculateCacheHitRate', () => {
69
+ it('should return 0 if prompt tokens is 0', () => {
70
+ const metrics = {
71
+ api: { totalRequests: 0, totalErrors: 0, totalLatencyMs: 0 },
72
+ tokens: {
73
+ prompt: 0,
74
+ candidates: 0,
75
+ total: 0,
76
+ cached: 100,
77
+ thoughts: 0,
78
+ tool: 0,
79
+ },
80
+ };
81
+ expect(calculateCacheHitRate(metrics)).toBe(0);
82
+ });
83
+ it('should calculate the cache hit rate correctly', () => {
84
+ const metrics = {
85
+ api: { totalRequests: 0, totalErrors: 0, totalLatencyMs: 0 },
86
+ tokens: {
87
+ prompt: 200,
88
+ candidates: 0,
89
+ total: 0,
90
+ cached: 50,
91
+ thoughts: 0,
92
+ tool: 0,
93
+ },
94
+ };
95
+ expect(calculateCacheHitRate(metrics)).toBe(25);
96
+ });
97
+ });
98
+ describe('computeSessionStats', () => {
99
+ it('should return all zeros for initial empty metrics', () => {
100
+ const metrics = {
101
+ models: {},
102
+ tools: {
103
+ totalCalls: 0,
104
+ totalSuccess: 0,
105
+ totalFail: 0,
106
+ totalDurationMs: 0,
107
+ totalDecisions: { accept: 0, reject: 0, modify: 0, auto_accept: 0 },
108
+ byName: {},
109
+ },
110
+ files: {
111
+ totalLinesAdded: 0,
112
+ totalLinesRemoved: 0,
113
+ },
114
+ };
115
+ const result = computeSessionStats(metrics);
116
+ expect(result).toEqual({
117
+ totalApiTime: 0,
118
+ totalToolTime: 0,
119
+ agentActiveTime: 0,
120
+ apiTimePercent: 0,
121
+ toolTimePercent: 0,
122
+ cacheEfficiency: 0,
123
+ totalDecisions: 0,
124
+ successRate: 0,
125
+ agreementRate: 0,
126
+ totalPromptTokens: 0,
127
+ totalCachedTokens: 0,
128
+ totalLinesAdded: 0,
129
+ totalLinesRemoved: 0,
130
+ });
131
+ });
132
+ it('should correctly calculate API and tool time percentages', () => {
133
+ const metrics = {
134
+ models: {
135
+ 'gemini-pro': {
136
+ api: { totalRequests: 1, totalErrors: 0, totalLatencyMs: 750 },
137
+ tokens: {
138
+ prompt: 10,
139
+ candidates: 10,
140
+ total: 20,
141
+ cached: 0,
142
+ thoughts: 0,
143
+ tool: 0,
144
+ },
145
+ },
146
+ },
147
+ tools: {
148
+ totalCalls: 1,
149
+ totalSuccess: 1,
150
+ totalFail: 0,
151
+ totalDurationMs: 250,
152
+ totalDecisions: { accept: 0, reject: 0, modify: 0, auto_accept: 0 },
153
+ byName: {},
154
+ },
155
+ files: {
156
+ totalLinesAdded: 0,
157
+ totalLinesRemoved: 0,
158
+ },
159
+ };
160
+ const result = computeSessionStats(metrics);
161
+ expect(result.totalApiTime).toBe(750);
162
+ expect(result.totalToolTime).toBe(250);
163
+ expect(result.agentActiveTime).toBe(1000);
164
+ expect(result.apiTimePercent).toBe(75);
165
+ expect(result.toolTimePercent).toBe(25);
166
+ });
167
+ it('should correctly calculate cache efficiency', () => {
168
+ const metrics = {
169
+ models: {
170
+ 'gemini-pro': {
171
+ api: { totalRequests: 2, totalErrors: 0, totalLatencyMs: 1000 },
172
+ tokens: {
173
+ prompt: 150,
174
+ candidates: 10,
175
+ total: 160,
176
+ cached: 50,
177
+ thoughts: 0,
178
+ tool: 0,
179
+ },
180
+ },
181
+ },
182
+ tools: {
183
+ totalCalls: 0,
184
+ totalSuccess: 0,
185
+ totalFail: 0,
186
+ totalDurationMs: 0,
187
+ totalDecisions: { accept: 0, reject: 0, modify: 0, auto_accept: 0 },
188
+ byName: {},
189
+ },
190
+ files: {
191
+ totalLinesAdded: 0,
192
+ totalLinesRemoved: 0,
193
+ },
194
+ };
195
+ const result = computeSessionStats(metrics);
196
+ expect(result.cacheEfficiency).toBeCloseTo(33.33); // 50 / 150
197
+ });
198
+ it('should correctly calculate success and agreement rates', () => {
199
+ const metrics = {
200
+ models: {},
201
+ tools: {
202
+ totalCalls: 10,
203
+ totalSuccess: 8,
204
+ totalFail: 2,
205
+ totalDurationMs: 1000,
206
+ totalDecisions: { accept: 6, reject: 2, modify: 2, auto_accept: 0 },
207
+ byName: {},
208
+ },
209
+ files: {
210
+ totalLinesAdded: 0,
211
+ totalLinesRemoved: 0,
212
+ },
213
+ };
214
+ const result = computeSessionStats(metrics);
215
+ expect(result.successRate).toBe(80); // 8 / 10
216
+ expect(result.agreementRate).toBe(60); // 6 / 10
217
+ });
218
+ it('should handle division by zero gracefully', () => {
219
+ const metrics = {
220
+ models: {},
221
+ tools: {
222
+ totalCalls: 0,
223
+ totalSuccess: 0,
224
+ totalFail: 0,
225
+ totalDurationMs: 0,
226
+ totalDecisions: { accept: 0, reject: 0, modify: 0, auto_accept: 0 },
227
+ byName: {},
228
+ },
229
+ files: {
230
+ totalLinesAdded: 0,
231
+ totalLinesRemoved: 0,
232
+ },
233
+ };
234
+ const result = computeSessionStats(metrics);
235
+ expect(result.apiTimePercent).toBe(0);
236
+ expect(result.toolTimePercent).toBe(0);
237
+ expect(result.cacheEfficiency).toBe(0);
238
+ expect(result.successRate).toBe(0);
239
+ expect(result.agreementRate).toBe(0);
240
+ });
241
+ it('should correctly include line counts', () => {
242
+ const metrics = {
243
+ models: {},
244
+ tools: {
245
+ totalCalls: 0,
246
+ totalSuccess: 0,
247
+ totalFail: 0,
248
+ totalDurationMs: 0,
249
+ totalDecisions: { accept: 0, reject: 0, modify: 0, auto_accept: 0 },
250
+ byName: {},
251
+ },
252
+ files: {
253
+ totalLinesAdded: 42,
254
+ totalLinesRemoved: 18,
255
+ },
256
+ };
257
+ const result = computeSessionStats(metrics);
258
+ expect(result.totalLinesAdded).toBe(42);
259
+ expect(result.totalLinesRemoved).toBe(18);
260
+ });
261
+ });
262
+ //# sourceMappingURL=computeStats.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeStats.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/computeStats.test.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ import { exec } from 'node:child_process';
28
28
  import { promisify } from 'node:util';
29
29
  import { isKittyProtocolEnabled } from './kittyProtocolDetector.js';
30
30
  import { VSCODE_SHIFT_ENTER_SEQUENCE } from './platformConstants.js';
31
+ import { debugLogger } from '@google/gemini-cli-core';
31
32
  const execAsync = promisify(exec);
32
33
  /**
33
34
  * Removes single-line JSON comments (// ...) from a string to allow parsing
@@ -69,7 +70,7 @@ async function detectTerminal() {
69
70
  }
70
71
  catch (error) {
71
72
  // Continue detection even if process check fails
72
- console.debug('Parent process detection failed:', error);
73
+ debugLogger.debug('Parent process detection failed:', error);
73
74
  }
74
75
  }
75
76
  return null;
@@ -83,7 +84,7 @@ async function backupFile(filePath) {
83
84
  }
84
85
  catch (error) {
85
86
  // Log backup errors but continue with operation
86
- console.warn(`Failed to create backup of ${filePath}:`, error);
87
+ debugLogger.warn(`Failed to create backup of ${filePath}:`, error);
87
88
  }
88
89
  }
89
90
  // Helper function to get VS Code-style config directory
@@ -1 +1 @@
1
- {"version":3,"file":"terminalSetup.js","sourceRoot":"","sources":["../../../../src/ui/utils/terminalSetup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminalSetup.js","sourceRoot":"","sources":["../../../../src/ui/utils/terminalSetup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { type LoadedSettings } from '../../config/settings.js';
7
+ export declare const calculateMainAreaWidth: (terminalWidth: number, settings: LoadedSettings) => number;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { lerp } from '../../utils/math.js';
7
+ import {} from '../../config/settings.js';
8
+ const getMainAreaWidthInternal = (terminalWidth) => {
9
+ if (terminalWidth <= 80) {
10
+ return Math.round(0.98 * terminalWidth);
11
+ }
12
+ if (terminalWidth >= 132) {
13
+ return Math.round(0.9 * terminalWidth);
14
+ }
15
+ // Linearly interpolate between 80 columns (98%) and 132 columns (90%).
16
+ const t = (terminalWidth - 80) / (132 - 80);
17
+ const percentage = lerp(98, 90, t);
18
+ return Math.round(percentage * terminalWidth * 0.01);
19
+ };
20
+ export const calculateMainAreaWidth = (terminalWidth, settings) => settings.merged.ui?.useFullWidth
21
+ ? terminalWidth
22
+ : getMainAreaWidthInternal(terminalWidth);
23
+ //# sourceMappingURL=ui-sizing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-sizing.js","sourceRoot":"","sources":["../../../../src/ui/utils/ui-sizing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAuB,MAAM,0BAA0B,CAAC;AAE/D,MAAM,wBAAwB,GAAG,CAAC,aAAqB,EAAU,EAAE;IACjE,IAAI,aAAa,IAAI,EAAE,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,aAAa,IAAI,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC;IACzC,CAAC;IAED,uEAAuE;IACvE,MAAM,CAAC,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAEnC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,aAAqB,EACrB,QAAwB,EAChB,EAAE,CACV,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY;IAC9B,CAAC,CAAC,aAAa;IACf,CAAC,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC"}
@@ -4,9 +4,10 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import type { UpdateInfo } from 'update-notifier';
7
+ import type { LoadedSettings } from '../../config/settings.js';
7
8
  export declare const FETCH_TIMEOUT_MS = 2000;
8
9
  export interface UpdateObject {
9
10
  message: string;
10
11
  update: UpdateInfo;
11
12
  }
12
- export declare function checkForUpdates(): Promise<UpdateObject | null>;
13
+ export declare function checkForUpdates(settings: LoadedSettings): Promise<UpdateObject | null>;
@@ -6,6 +6,7 @@
6
6
  import updateNotifier from 'update-notifier';
7
7
  import semver from 'semver';
8
8
  import { getPackageJson } from '../../utils/package.js';
9
+ import { debugLogger } from '@google/gemini-cli-core';
9
10
  export const FETCH_TIMEOUT_MS = 2000;
10
11
  /**
11
12
  * From a nightly and stable update, determines which is the "best" one to offer.
@@ -23,8 +24,11 @@ function getBestAvailableUpdate(nightly, stable) {
23
24
  }
24
25
  return semver.gt(stableVer, nightlyVer) ? stable : nightly;
25
26
  }
26
- export async function checkForUpdates() {
27
+ export async function checkForUpdates(settings) {
27
28
  try {
29
+ if (settings.merged.general?.disableUpdateNag) {
30
+ return null;
31
+ }
28
32
  // Skip update check when running from source (development mode)
29
33
  if (process.env['DEV'] === 'true') {
30
34
  return null;
@@ -71,7 +75,7 @@ export async function checkForUpdates() {
71
75
  return null;
72
76
  }
73
77
  catch (e) {
74
- console.warn('Failed to check for updates: ' + e);
78
+ debugLogger.warn('Failed to check for updates: ' + e);
75
79
  return null;
76
80
  }
77
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"updateCheck.js","sourceRoot":"","sources":["../../../../src/ui/utils/updateCheck.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updateCheck.js","sourceRoot":"","sources":["../../../../src/ui/utils/updateCheck.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { vi, describe, it, expect, beforeEach } from 'vitest';
6
+ import { vi, describe, it, expect, beforeEach, afterEach } from 'vitest';
7
7
  import { checkForUpdates } from './updateCheck.js';
8
8
  const getPackageJson = vi.hoisted(() => vi.fn());
9
9
  vi.mock('../../utils/package.js', () => ({
@@ -14,16 +14,31 @@ vi.mock('update-notifier', () => ({
14
14
  default: updateNotifier,
15
15
  }));
16
16
  describe('checkForUpdates', () => {
17
+ let mockSettings;
17
18
  beforeEach(() => {
18
19
  vi.useFakeTimers();
19
20
  vi.resetAllMocks();
20
21
  // Clear DEV environment variable before each test
21
22
  delete process.env['DEV'];
23
+ mockSettings = {
24
+ merged: {
25
+ general: {
26
+ disableUpdateNag: false,
27
+ },
28
+ },
29
+ };
22
30
  });
23
31
  afterEach(() => {
24
32
  vi.useRealTimers();
25
33
  vi.restoreAllMocks();
26
34
  });
35
+ it('should return null if disableUpdateNag is true', async () => {
36
+ mockSettings.merged.general.disableUpdateNag = true;
37
+ const result = await checkForUpdates(mockSettings);
38
+ expect(result).toBeNull();
39
+ expect(getPackageJson).not.toHaveBeenCalled();
40
+ expect(updateNotifier).not.toHaveBeenCalled();
41
+ });
27
42
  it('should return null when running from source (DEV=true)', async () => {
28
43
  process.env['DEV'] = 'true';
29
44
  getPackageJson.mockResolvedValue({
@@ -35,14 +50,14 @@ describe('checkForUpdates', () => {
35
50
  .fn()
36
51
  .mockResolvedValue({ current: '1.0.0', latest: '1.1.0' }),
37
52
  });
38
- const result = await checkForUpdates();
53
+ const result = await checkForUpdates(mockSettings);
39
54
  expect(result).toBeNull();
40
55
  expect(getPackageJson).not.toHaveBeenCalled();
41
56
  expect(updateNotifier).not.toHaveBeenCalled();
42
57
  });
43
58
  it('should return null if package.json is missing', async () => {
44
59
  getPackageJson.mockResolvedValue(null);
45
- const result = await checkForUpdates();
60
+ const result = await checkForUpdates(mockSettings);
46
61
  expect(result).toBeNull();
47
62
  });
48
63
  it('should return null if there is no update', async () => {
@@ -53,7 +68,7 @@ describe('checkForUpdates', () => {
53
68
  updateNotifier.mockReturnValue({
54
69
  fetchInfo: vi.fn().mockResolvedValue(null),
55
70
  });
56
- const result = await checkForUpdates();
71
+ const result = await checkForUpdates(mockSettings);
57
72
  expect(result).toBeNull();
58
73
  });
59
74
  it('should return a message if a newer version is available', async () => {
@@ -66,7 +81,7 @@ describe('checkForUpdates', () => {
66
81
  .fn()
67
82
  .mockResolvedValue({ current: '1.0.0', latest: '1.1.0' }),
68
83
  });
69
- const result = await checkForUpdates();
84
+ const result = await checkForUpdates(mockSettings);
70
85
  expect(result?.message).toContain('1.0.0 → 1.1.0');
71
86
  expect(result?.update).toEqual({ current: '1.0.0', latest: '1.1.0' });
72
87
  });
@@ -80,7 +95,7 @@ describe('checkForUpdates', () => {
80
95
  .fn()
81
96
  .mockResolvedValue({ current: '1.0.0', latest: '1.0.0' }),
82
97
  });
83
- const result = await checkForUpdates();
98
+ const result = await checkForUpdates(mockSettings);
84
99
  expect(result).toBeNull();
85
100
  });
86
101
  it('should return null if the latest version is older than the current version', async () => {
@@ -93,7 +108,7 @@ describe('checkForUpdates', () => {
93
108
  .fn()
94
109
  .mockResolvedValue({ current: '1.1.0', latest: '1.0.0' }),
95
110
  });
96
- const result = await checkForUpdates();
111
+ const result = await checkForUpdates(mockSettings);
97
112
  expect(result).toBeNull();
98
113
  });
99
114
  it('should return null if fetchInfo rejects', async () => {
@@ -104,12 +119,12 @@ describe('checkForUpdates', () => {
104
119
  updateNotifier.mockReturnValue({
105
120
  fetchInfo: vi.fn().mockRejectedValue(new Error('Timeout')),
106
121
  });
107
- const result = await checkForUpdates();
122
+ const result = await checkForUpdates(mockSettings);
108
123
  expect(result).toBeNull();
109
124
  });
110
125
  it('should handle errors gracefully', async () => {
111
126
  getPackageJson.mockRejectedValue(new Error('test error'));
112
- const result = await checkForUpdates();
127
+ const result = await checkForUpdates(mockSettings);
113
128
  expect(result).toBeNull();
114
129
  });
115
130
  describe('nightly updates', () => {
@@ -136,7 +151,7 @@ describe('checkForUpdates', () => {
136
151
  updateNotifier.mockImplementation(({ pkg, distTag }) => ({
137
152
  fetchInfo: () => fetchInfoMock({ pkg, distTag }),
138
153
  }));
139
- const result = await checkForUpdates();
154
+ const result = await checkForUpdates(mockSettings);
140
155
  expect(result?.message).toContain('1.2.3-nightly.1 → 1.2.3-nightly.2');
141
156
  expect(result?.update.latest).toBe('1.2.3-nightly.2');
142
157
  });
@@ -1 +1 @@
1
- {"version":3,"file":"updateCheck.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/updateCheck.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updateCheck.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/updateCheck.test.ts"],"names":[],"mappings":"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"}
@@ -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,49 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { vi, describe, it, expect, beforeEach } from 'vitest';
7
+ describe('cleanup', () => {
8
+ let register;
9
+ let runExit;
10
+ beforeEach(async () => {
11
+ vi.resetModules();
12
+ const cleanupModule = await import('./cleanup.js');
13
+ register = cleanupModule.registerCleanup;
14
+ runExit = cleanupModule.runExitCleanup;
15
+ });
16
+ it('should run a registered synchronous function', async () => {
17
+ const cleanupFn = vi.fn();
18
+ register(cleanupFn);
19
+ await runExit();
20
+ expect(cleanupFn).toHaveBeenCalledTimes(1);
21
+ });
22
+ it('should run a registered asynchronous function', async () => {
23
+ const cleanupFn = vi.fn().mockResolvedValue(undefined);
24
+ register(cleanupFn);
25
+ await runExit();
26
+ expect(cleanupFn).toHaveBeenCalledTimes(1);
27
+ });
28
+ it('should run multiple registered functions', async () => {
29
+ const syncFn = vi.fn();
30
+ const asyncFn = vi.fn().mockResolvedValue(undefined);
31
+ register(syncFn);
32
+ register(asyncFn);
33
+ await runExit();
34
+ expect(syncFn).toHaveBeenCalledTimes(1);
35
+ expect(asyncFn).toHaveBeenCalledTimes(1);
36
+ });
37
+ it('should continue running cleanup functions even if one throws an error', async () => {
38
+ const errorFn = vi.fn().mockImplementation(() => {
39
+ throw new Error('test error');
40
+ });
41
+ const successFn = vi.fn();
42
+ register(errorFn);
43
+ register(successFn);
44
+ await expect(runExit()).resolves.not.toThrow();
45
+ expect(errorFn).toHaveBeenCalledTimes(1);
46
+ expect(successFn).toHaveBeenCalledTimes(1);
47
+ });
48
+ });
49
+ //# sourceMappingURL=cleanup.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.test.js","sourceRoot":"","sources":["../../../src/utils/cleanup.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG9D,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAI,QAAgC,CAAC;IACrC,IAAI,OAA8B,CAAC;IAEnC,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACnD,QAAQ,GAAG,aAAa,CAAC,eAAe,CAAC;QACzC,OAAO,GAAG,aAAa,CAAC,cAAc,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1B,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEpB,MAAM,OAAO,EAAE,CAAC;QAEhB,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACvD,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEpB,MAAM,OAAO,EAAE,CAAC;QAEhB,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAErD,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjB,QAAQ,CAAC,OAAO,CAAC,CAAC;QAElB,MAAM,OAAO,EAAE,CAAC;QAEhB,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;YAC9C,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1B,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClB,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEpB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAE/C,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}