@machina.ai/cell-cli 1.41.1-rc2 → 1.45.1-rc2

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 (560) hide show
  1. package/dist/index.js +17 -17
  2. package/dist/index.js.map +1 -1
  3. package/dist/package.json +4 -4
  4. package/dist/src/acp/README.md +81 -0
  5. package/dist/src/acp/{commandHandler.d.ts → acpCommandHandler.d.ts} +1 -1
  6. package/dist/src/acp/{commandHandler.js → acpCommandHandler.js} +2 -2
  7. package/dist/src/acp/acpCommandHandler.js.map +1 -0
  8. package/dist/src/acp/{commandHandler.test.js → acpCommandHandler.test.js} +4 -5
  9. package/dist/src/acp/acpCommandHandler.test.js.map +1 -0
  10. package/dist/src/acp/acpErrors.d.ts +1 -1
  11. package/dist/src/acp/acpErrors.js +1 -1
  12. package/dist/src/acp/acpErrors.test.d.ts +1 -1
  13. package/dist/src/acp/acpErrors.test.js +1 -1
  14. package/dist/src/acp/{fileSystemService.d.ts → acpFileSystemService.d.ts} +1 -1
  15. package/dist/src/acp/{fileSystemService.js → acpFileSystemService.js} +7 -4
  16. package/dist/src/acp/acpFileSystemService.js.map +1 -0
  17. package/dist/src/acp/{fileSystemService.test.js → acpFileSystemService.test.js} +3 -3
  18. package/dist/src/acp/acpFileSystemService.test.js.map +1 -0
  19. package/dist/src/acp/acpResume.test.d.ts +1 -1
  20. package/dist/src/acp/acpResume.test.js +12 -7
  21. package/dist/src/acp/acpResume.test.js.map +1 -1
  22. package/dist/src/acp/acpRpcDispatcher.d.ts +28 -0
  23. package/dist/src/acp/acpRpcDispatcher.js +177 -0
  24. package/dist/src/acp/acpRpcDispatcher.js.map +1 -0
  25. package/dist/src/acp/acpRpcDispatcher.test.d.ts +6 -0
  26. package/dist/src/acp/acpRpcDispatcher.test.js +238 -0
  27. package/dist/src/acp/acpRpcDispatcher.test.js.map +1 -0
  28. package/dist/src/acp/acpSession.d.ts +36 -0
  29. package/dist/src/acp/{acpClient.js → acpSession.js} +333 -781
  30. package/dist/src/acp/acpSession.js.map +1 -0
  31. package/dist/src/acp/acpSession.test.d.ts +6 -0
  32. package/dist/src/acp/acpSession.test.js +739 -0
  33. package/dist/src/acp/acpSession.test.js.map +1 -0
  34. package/dist/src/acp/acpSessionManager.d.ts +30 -0
  35. package/dist/src/acp/acpSessionManager.js +206 -0
  36. package/dist/src/acp/acpSessionManager.js.map +1 -0
  37. package/dist/src/acp/acpSessionManager.test.d.ts +6 -0
  38. package/dist/src/acp/acpSessionManager.test.js +283 -0
  39. package/dist/src/acp/acpSessionManager.test.js.map +1 -0
  40. package/dist/src/acp/acpStdioTransport.d.ts +9 -0
  41. package/dist/src/acp/acpStdioTransport.js +23 -0
  42. package/dist/src/acp/acpStdioTransport.js.map +1 -0
  43. package/dist/src/acp/acpUtils.d.ts +56 -0
  44. package/dist/src/acp/acpUtils.js +288 -0
  45. package/dist/src/acp/acpUtils.js.map +1 -0
  46. package/dist/src/acp/commands/commandRegistry.d.ts +1 -1
  47. package/dist/src/acp/commands/commandRegistry.js +1 -1
  48. package/dist/src/acp/commands/extensions.d.ts +1 -1
  49. package/dist/src/acp/commands/extensions.js +1 -1
  50. package/dist/src/acp/commands/extensions.test.d.ts +6 -0
  51. package/dist/src/acp/commands/extensions.test.js +70 -0
  52. package/dist/src/acp/commands/extensions.test.js.map +1 -0
  53. package/dist/src/acp/commands/init.d.ts +1 -1
  54. package/dist/src/acp/commands/init.js +1 -1
  55. package/dist/src/acp/commands/memory.d.ts +3 -8
  56. package/dist/src/acp/commands/memory.js +18 -47
  57. package/dist/src/acp/commands/memory.js.map +1 -1
  58. package/dist/src/acp/commands/restore.d.ts +1 -1
  59. package/dist/src/acp/commands/restore.js +1 -1
  60. package/dist/src/acp/commands/restore.test.js +7 -13
  61. package/dist/src/acp/commands/restore.test.js.map +1 -1
  62. package/dist/src/acp/commands/types.d.ts +1 -1
  63. package/dist/src/acp/commands/types.js +1 -1
  64. package/dist/src/commands/extensions/configure.test.js +6 -2
  65. package/dist/src/commands/extensions/configure.test.js.map +1 -1
  66. package/dist/src/commands/extensions/utils.d.ts +1 -1
  67. package/dist/src/commands/extensions/utils.js +1 -2
  68. package/dist/src/commands/extensions/utils.js.map +1 -1
  69. package/dist/src/commands/mcp/list.js +19 -5
  70. package/dist/src/commands/mcp/list.js.map +1 -1
  71. package/dist/src/commands/mcp/list.test.js +285 -100
  72. package/dist/src/commands/mcp/list.test.js.map +1 -1
  73. package/dist/src/config/auth.d.ts +1 -1
  74. package/dist/src/config/auth.js +4 -3
  75. package/dist/src/config/auth.js.map +1 -1
  76. package/dist/src/config/auth.test.js +11 -4
  77. package/dist/src/config/auth.test.js.map +1 -1
  78. package/dist/src/config/config.d.ts +4 -0
  79. package/dist/src/config/config.js +65 -47
  80. package/dist/src/config/config.js.map +1 -1
  81. package/dist/src/config/config.test.js +25 -106
  82. package/dist/src/config/config.test.js.map +1 -1
  83. package/dist/src/config/extension-manager-agents.test.js +2 -0
  84. package/dist/src/config/extension-manager-agents.test.js.map +1 -1
  85. package/dist/src/config/extension-manager-hydration.test.js +2 -0
  86. package/dist/src/config/extension-manager-hydration.test.js.map +1 -1
  87. package/dist/src/config/extension-manager-scope.test.js +4 -2
  88. package/dist/src/config/extension-manager-scope.test.js.map +1 -1
  89. package/dist/src/config/extension-manager-themes.spec.js +2 -0
  90. package/dist/src/config/extension-manager-themes.spec.js.map +1 -1
  91. package/dist/src/config/extension-manager.d.ts +2 -2
  92. package/dist/src/config/extension-manager.js +2 -1
  93. package/dist/src/config/extension-manager.js.map +1 -1
  94. package/dist/src/config/extensionRegistryClient.js +0 -1
  95. package/dist/src/config/extensionRegistryClient.js.map +1 -1
  96. package/dist/src/config/extensions/consent.d.ts +1 -1
  97. package/dist/src/config/extensions/consent.js +5 -4
  98. package/dist/src/config/extensions/consent.js.map +1 -1
  99. package/dist/src/config/extensions/consent.test.js +22 -0
  100. package/dist/src/config/extensions/consent.test.js.map +1 -1
  101. package/dist/src/config/extensions/extensionEnablement.js +4 -2
  102. package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
  103. package/dist/src/config/extensions/extensionSettings.d.ts +3 -3
  104. package/dist/src/config/extensions/extensionSettings.js +7 -3
  105. package/dist/src/config/extensions/extensionSettings.js.map +1 -1
  106. package/dist/src/config/extensions/variables.js +1 -3
  107. package/dist/src/config/extensions/variables.js.map +1 -1
  108. package/dist/src/config/footerItems.d.ts +4 -0
  109. package/dist/src/config/footerItems.js +6 -0
  110. package/dist/src/config/footerItems.js.map +1 -1
  111. package/dist/src/config/footerItems.test.js +1 -0
  112. package/dist/src/config/footerItems.test.js.map +1 -1
  113. package/dist/src/config/mcp/mcpServerEnablement.js +1 -1
  114. package/dist/src/config/mcp/mcpServerEnablement.js.map +1 -1
  115. package/dist/src/config/mutual-exclusivity.test.js +33 -0
  116. package/dist/src/config/mutual-exclusivity.test.js.map +1 -0
  117. package/dist/src/config/settings-env-isolation.test.d.ts +6 -0
  118. package/dist/src/config/settings-env-isolation.test.js +188 -0
  119. package/dist/src/config/settings-env-isolation.test.js.map +1 -0
  120. package/dist/src/config/settings.d.ts +15 -1
  121. package/dist/src/config/settings.js +85 -10
  122. package/dist/src/config/settings.js.map +1 -1
  123. package/dist/src/config/settings.test.js +167 -0
  124. package/dist/src/config/settings.test.js.map +1 -1
  125. package/dist/src/config/settingsSchema.d.ts +56 -25
  126. package/dist/src/config/settingsSchema.js +66 -27
  127. package/dist/src/config/settingsSchema.js.map +1 -1
  128. package/dist/src/config/settingsSchema.test.js +8 -0
  129. package/dist/src/config/settingsSchema.test.js.map +1 -1
  130. package/dist/src/config/skipExtensions.test.d.ts +6 -0
  131. package/dist/src/config/skipExtensions.test.js +49 -0
  132. package/dist/src/config/skipExtensions.test.js.map +1 -0
  133. package/dist/src/config/workspace-policy-cli.test.js +0 -5
  134. package/dist/src/config/workspace-policy-cli.test.js.map +1 -1
  135. package/dist/src/gemini.d.ts +2 -2
  136. package/dist/src/gemini.js +108 -30
  137. package/dist/src/gemini.js.map +1 -1
  138. package/dist/src/gemini.test.js +147 -16
  139. package/dist/src/gemini.test.js.map +1 -1
  140. package/dist/src/gemini_cleanup.test.js +1 -1
  141. package/dist/src/gemini_cleanup.test.js.map +1 -1
  142. package/dist/src/generated/git-commit.d.ts +2 -2
  143. package/dist/src/generated/git-commit.js +2 -2
  144. package/dist/src/interactiveCli.js +1 -1
  145. package/dist/src/interactiveCli.js.map +1 -1
  146. package/dist/src/nonInteractiveCli.d.ts +7 -0
  147. package/dist/src/nonInteractiveCli.js +56 -6
  148. package/dist/src/nonInteractiveCli.js.map +1 -1
  149. package/dist/src/nonInteractiveCli.test.js +253 -18
  150. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  151. package/dist/src/nonInteractiveCliAgentSession.d.ts +7 -0
  152. package/dist/src/nonInteractiveCliAgentSession.js +22 -3
  153. package/dist/src/nonInteractiveCliAgentSession.js.map +1 -1
  154. package/dist/src/nonInteractiveCliAgentSession.test.js +200 -20
  155. package/dist/src/nonInteractiveCliAgentSession.test.js.map +1 -1
  156. package/dist/src/output-redirection.test.d.ts +6 -0
  157. package/dist/src/output-redirection.test.js +77 -0
  158. package/dist/src/output-redirection.test.js.map +1 -0
  159. package/dist/src/patches/http-proxy-agent.d.ts +6 -0
  160. package/dist/src/patches/http-proxy-agent.js +8 -0
  161. package/dist/src/patches/http-proxy-agent.js.map +1 -0
  162. package/dist/src/patches/https-proxy-agent.d.ts +6 -0
  163. package/dist/src/patches/https-proxy-agent.js +8 -0
  164. package/dist/src/patches/https-proxy-agent.js.map +1 -0
  165. package/dist/src/services/BuiltinCommandLoader.js +5 -1
  166. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  167. package/dist/src/services/BuiltinCommandLoader.test.js +6 -1
  168. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  169. package/dist/src/services/FileCommandLoader.d.ts +21 -0
  170. package/dist/src/services/FileCommandLoader.js +58 -6
  171. package/dist/src/services/FileCommandLoader.js.map +1 -1
  172. package/dist/src/services/FileCommandLoader.test.js +27 -1
  173. package/dist/src/services/FileCommandLoader.test.js.map +1 -1
  174. package/dist/src/test-utils/mockCommandContext.js +6 -1
  175. package/dist/src/test-utils/mockCommandContext.js.map +1 -1
  176. package/dist/src/test-utils/mockConfig.js +0 -3
  177. package/dist/src/test-utils/mockConfig.js.map +1 -1
  178. package/dist/src/test-utils/render.js +1 -0
  179. package/dist/src/test-utils/render.js.map +1 -1
  180. package/dist/src/test-utils/settings.d.ts +1 -0
  181. package/dist/src/test-utils/settings.js.map +1 -1
  182. package/dist/src/ui/AppContainer.js +60 -73
  183. package/dist/src/ui/AppContainer.js.map +1 -1
  184. package/dist/src/ui/AppContainer.test.js +101 -1
  185. package/dist/src/ui/AppContainer.test.js.map +1 -1
  186. package/dist/src/ui/auth/AuthDialog.js +6 -3
  187. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  188. package/dist/src/ui/auth/AuthDialog.test.js +33 -10
  189. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  190. package/dist/src/ui/auth/LoginRestartDialog.d.ts +13 -0
  191. package/dist/src/ui/auth/{LoginWithGoogleRestartDialog.js → LoginRestartDialog.js} +7 -6
  192. package/dist/src/ui/auth/LoginRestartDialog.js.map +1 -0
  193. package/dist/src/ui/auth/LoginRestartDialog.test.d.ts +6 -0
  194. package/dist/src/ui/auth/{LoginWithGoogleRestartDialog.test.js → LoginRestartDialog.test.js} +13 -8
  195. package/dist/src/ui/auth/LoginRestartDialog.test.js.map +1 -0
  196. package/dist/src/ui/auth/useAuth.d.ts +1 -1
  197. package/dist/src/ui/auth/useAuth.js +2 -2
  198. package/dist/src/ui/auth/useAuth.js.map +1 -1
  199. package/dist/src/ui/auth/useAuth.test.js +10 -10
  200. package/dist/src/ui/auth/useAuth.test.js.map +1 -1
  201. package/dist/src/ui/commands/agentsCommand.js +19 -2
  202. package/dist/src/ui/commands/agentsCommand.js.map +1 -1
  203. package/dist/src/ui/commands/agentsCommand.test.js +34 -3
  204. package/dist/src/ui/commands/agentsCommand.test.js.map +1 -1
  205. package/dist/src/ui/commands/bugCommand.js +36 -0
  206. package/dist/src/ui/commands/bugCommand.js.map +1 -1
  207. package/dist/src/ui/commands/bugCommand.test.js +106 -1
  208. package/dist/src/ui/commands/bugCommand.test.js.map +1 -1
  209. package/dist/src/ui/commands/bugMemoryCommand.d.ts +7 -0
  210. package/dist/src/ui/commands/bugMemoryCommand.js +62 -0
  211. package/dist/src/ui/commands/bugMemoryCommand.js.map +1 -0
  212. package/dist/src/ui/commands/bugMemoryCommand.test.js +100 -0
  213. package/dist/src/ui/commands/bugMemoryCommand.test.js.map +1 -0
  214. package/dist/src/ui/commands/commandsCommand.js +52 -4
  215. package/dist/src/ui/commands/commandsCommand.js.map +1 -1
  216. package/dist/src/ui/commands/commandsCommand.test.js +75 -2
  217. package/dist/src/ui/commands/commandsCommand.test.js.map +1 -1
  218. package/dist/src/ui/commands/compressCommand.js +28 -26
  219. package/dist/src/ui/commands/compressCommand.js.map +1 -1
  220. package/dist/src/ui/commands/compressCommand.test.js +5 -0
  221. package/dist/src/ui/commands/compressCommand.test.js.map +1 -1
  222. package/dist/src/ui/commands/directoryCommand.js +2 -2
  223. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  224. package/dist/src/ui/commands/directoryCommand.test.js +1 -0
  225. package/dist/src/ui/commands/directoryCommand.test.js.map +1 -1
  226. package/dist/src/ui/commands/exportSessionCommand.d.ts +7 -0
  227. package/dist/src/ui/commands/exportSessionCommand.js +74 -0
  228. package/dist/src/ui/commands/exportSessionCommand.js.map +1 -0
  229. package/dist/src/ui/commands/exportSessionCommand.test.js +100 -0
  230. package/dist/src/ui/commands/exportSessionCommand.test.js.map +1 -0
  231. package/dist/src/ui/commands/extensionsCommand.js +1 -0
  232. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  233. package/dist/src/ui/commands/extensionsCommand.test.js +4 -0
  234. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
  235. package/dist/src/ui/commands/memoryCommand.d.ts +2 -1
  236. package/dist/src/ui/commands/memoryCommand.js +110 -117
  237. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  238. package/dist/src/ui/commands/memoryCommand.test.js +18 -71
  239. package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
  240. package/dist/src/ui/commands/quitCommand.js +3 -1
  241. package/dist/src/ui/commands/quitCommand.js.map +1 -1
  242. package/dist/src/ui/commands/quitCommand.test.js +46 -1
  243. package/dist/src/ui/commands/quitCommand.test.js.map +1 -1
  244. package/dist/src/ui/commands/rewindCommand.js.map +1 -1
  245. package/dist/src/ui/commands/skillsCommand.js +1 -1
  246. package/dist/src/ui/commands/skillsCommand.js.map +1 -1
  247. package/dist/src/ui/commands/skillsCommand.test.js +19 -0
  248. package/dist/src/ui/commands/skillsCommand.test.js.map +1 -1
  249. package/dist/src/ui/commands/types.d.ts +3 -1
  250. package/dist/src/ui/commands/types.js.map +1 -1
  251. package/dist/src/ui/components/AsciiArt.d.ts +6 -6
  252. package/dist/src/ui/components/AsciiArt.js +6 -6
  253. package/dist/src/ui/components/AskUserDialog.js +3 -1
  254. package/dist/src/ui/components/AskUserDialog.js.map +1 -1
  255. package/dist/src/ui/components/AskUserDialog.test.js +43 -0
  256. package/dist/src/ui/components/AskUserDialog.test.js.map +1 -1
  257. package/dist/src/ui/components/Composer.js +1 -1
  258. package/dist/src/ui/components/Composer.js.map +1 -1
  259. package/dist/src/ui/components/DialogManager.js +4 -0
  260. package/dist/src/ui/components/DialogManager.js.map +1 -1
  261. package/dist/src/ui/components/EditorSettingsDialog.js +3 -6
  262. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  263. package/dist/src/ui/components/Footer.js +6 -0
  264. package/dist/src/ui/components/Footer.js.map +1 -1
  265. package/dist/src/ui/components/FooterConfigDialog.js +1 -0
  266. package/dist/src/ui/components/FooterConfigDialog.js.map +1 -1
  267. package/dist/src/ui/components/FooterConfigDialog.test.js +1 -1
  268. package/dist/src/ui/components/FooterConfigDialog.test.js.map +1 -1
  269. package/dist/src/ui/components/HistoryItemDisplay.js +3 -1
  270. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  271. package/dist/src/ui/components/HistoryItemDisplay.test.js +15 -0
  272. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  273. package/dist/src/ui/components/{SkillInboxDialog.d.ts → InboxDialog.d.ts} +3 -2
  274. package/dist/src/ui/components/InboxDialog.js +756 -0
  275. package/dist/src/ui/components/InboxDialog.js.map +1 -0
  276. package/dist/src/ui/components/InboxDialog.test.d.ts +6 -0
  277. package/dist/src/ui/components/InboxDialog.test.js +824 -0
  278. package/dist/src/ui/components/InboxDialog.test.js.map +1 -0
  279. package/dist/src/ui/components/InputPrompt.d.ts +3 -0
  280. package/dist/src/ui/components/InputPrompt.js +35 -17
  281. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  282. package/dist/src/ui/components/InputPrompt.test.js +95 -46
  283. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  284. package/dist/src/ui/components/ListeningIndicator.d.ts +10 -0
  285. package/dist/src/ui/components/ListeningIndicator.js +30 -0
  286. package/dist/src/ui/components/ListeningIndicator.js.map +1 -0
  287. package/dist/src/ui/components/MainContent.test.js +23 -3
  288. package/dist/src/ui/components/MainContent.test.js.map +1 -1
  289. package/dist/src/ui/components/ModelDialog.js +32 -37
  290. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  291. package/dist/src/ui/components/ModelDialog.test.js +30 -27
  292. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  293. package/dist/src/ui/components/ModelStatsDisplay.js +1 -1
  294. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  295. package/dist/src/ui/components/ModelStatsDisplay.test.js +41 -0
  296. package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
  297. package/dist/src/ui/components/SessionBrowser.js +7 -0
  298. package/dist/src/ui/components/SessionBrowser.js.map +1 -1
  299. package/dist/src/ui/components/SessionSummaryDisplay.js +9 -4
  300. package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
  301. package/dist/src/ui/components/SessionSummaryDisplay.test.js +12 -23
  302. package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
  303. package/dist/src/ui/components/SettingsDialog.js +37 -17
  304. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  305. package/dist/src/ui/components/SettingsDialog.test.js +83 -1
  306. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  307. package/dist/src/ui/components/StatsDisplay.js +2 -2
  308. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  309. package/dist/src/ui/components/StatsDisplay.test.js +24 -0
  310. package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
  311. package/dist/src/ui/components/ThemeDialog.constants.d.ts +26 -0
  312. package/dist/src/ui/components/ThemeDialog.constants.js +27 -0
  313. package/dist/src/ui/components/ThemeDialog.constants.js.map +1 -0
  314. package/dist/src/ui/components/ThemeDialog.js +5 -15
  315. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  316. package/dist/src/ui/components/ToolConfirmationQueue.test.js +1 -1
  317. package/dist/src/ui/components/ToolConfirmationQueue.test.js.map +1 -1
  318. package/dist/src/ui/components/VoiceModelDialog.js +7 -2
  319. package/dist/src/ui/components/VoiceModelDialog.js.map +1 -1
  320. package/dist/src/ui/components/VoiceModelDialog.test.d.ts +6 -0
  321. package/dist/src/ui/components/VoiceModelDialog.test.js +68 -0
  322. package/dist/src/ui/components/VoiceModelDialog.test.js.map +1 -0
  323. package/dist/src/ui/components/messages/ExportSessionMessage.d.ts +11 -0
  324. package/dist/src/ui/components/messages/ExportSessionMessage.js +15 -0
  325. package/dist/src/ui/components/messages/ExportSessionMessage.js.map +1 -0
  326. package/dist/src/ui/components/messages/ExportSessionMessage.test.d.ts +6 -0
  327. package/dist/src/ui/components/messages/ExportSessionMessage.test.js +31 -0
  328. package/dist/src/ui/components/messages/ExportSessionMessage.test.js.map +1 -0
  329. package/dist/src/ui/components/messages/ShellToolMessage.js +6 -2
  330. package/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -1
  331. package/dist/src/ui/components/messages/ShellToolMessage.test.js +33 -0
  332. package/dist/src/ui/components/messages/ShellToolMessage.test.js.map +1 -1
  333. package/dist/src/ui/components/messages/SubagentGroupDisplay.js +13 -13
  334. package/dist/src/ui/components/messages/SubagentGroupDisplay.js.map +1 -1
  335. package/dist/src/ui/components/messages/SubagentGroupDisplay.test.js +5 -5
  336. package/dist/src/ui/components/messages/SubagentGroupDisplay.test.js.map +1 -1
  337. package/dist/src/ui/components/messages/SubagentHistoryMessage.test.js +4 -3
  338. package/dist/src/ui/components/messages/SubagentHistoryMessage.test.js.map +1 -1
  339. package/dist/src/ui/components/messages/SubagentProgressDisplay.d.ts +1 -1
  340. package/dist/src/ui/components/messages/SubagentProgressDisplay.js +7 -6
  341. package/dist/src/ui/components/messages/SubagentProgressDisplay.js.map +1 -1
  342. package/dist/src/ui/components/messages/SubagentProgressDisplay.test.js +10 -9
  343. package/dist/src/ui/components/messages/SubagentProgressDisplay.test.js.map +1 -1
  344. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +3 -9
  345. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  346. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +60 -0
  347. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  348. package/dist/src/ui/components/messages/ToolGroupDisplay.d.ts +13 -0
  349. package/dist/src/ui/components/messages/ToolGroupDisplay.js +78 -0
  350. package/dist/src/ui/components/messages/ToolGroupDisplay.js.map +1 -0
  351. package/dist/src/ui/components/messages/ToolGroupDisplay.test.d.ts +6 -0
  352. package/dist/src/ui/components/messages/ToolGroupDisplay.test.js +210 -0
  353. package/dist/src/ui/components/messages/ToolGroupDisplay.test.js.map +1 -0
  354. package/dist/src/ui/components/messages/ToolGroupMessage.js +4 -2
  355. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  356. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +28 -0
  357. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  358. package/dist/src/ui/components/messages/ToolGroupMessageRegression.test.js +3 -3
  359. package/dist/src/ui/components/messages/ToolGroupMessageRegression.test.js.map +1 -1
  360. package/dist/src/ui/components/messages/ToolMessage.js +6 -2
  361. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  362. package/dist/src/ui/components/messages/ToolShared.d.ts +1 -0
  363. package/dist/src/ui/components/messages/ToolShared.js +5 -3
  364. package/dist/src/ui/components/messages/ToolShared.js.map +1 -1
  365. package/dist/src/ui/components/messages/ToolShared.test.js +18 -1
  366. package/dist/src/ui/components/messages/ToolShared.test.js.map +1 -1
  367. package/dist/src/ui/components/shared/BaseSettingsDialog.d.ts +6 -1
  368. package/dist/src/ui/components/shared/BaseSettingsDialog.js +8 -8
  369. package/dist/src/ui/components/shared/BaseSettingsDialog.js.map +1 -1
  370. package/dist/src/ui/components/shared/performance.test.js +9 -0
  371. package/dist/src/ui/components/shared/performance.test.js.map +1 -1
  372. package/dist/src/ui/components/shared/text-buffer.js +22 -5
  373. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  374. package/dist/src/ui/components/shared/text-buffer.test.js +211 -0
  375. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  376. package/dist/src/ui/constants/tips.js +0 -1
  377. package/dist/src/ui/constants/tips.js.map +1 -1
  378. package/dist/src/ui/contexts/UIActionsContext.d.ts +1 -0
  379. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  380. package/dist/src/ui/contexts/UIStateContext.d.ts +2 -0
  381. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  382. package/dist/src/ui/hooks/atCommandProcessor.js +78 -69
  383. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  384. package/dist/src/ui/hooks/atCommandProcessor.test.js +128 -18
  385. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  386. package/dist/src/ui/hooks/slashCommandProcessor.js +13 -0
  387. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  388. package/dist/src/ui/hooks/slashCommandProcessor.test.js +85 -0
  389. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  390. package/dist/src/ui/hooks/useAgentStream.d.ts +2 -2
  391. package/dist/src/ui/hooks/useAgentStream.js +63 -30
  392. package/dist/src/ui/hooks/useAgentStream.js.map +1 -1
  393. package/dist/src/ui/hooks/useAgentStream.test.js +1 -1
  394. package/dist/src/ui/hooks/useAgentStream.test.js.map +1 -1
  395. package/dist/src/ui/hooks/useAtCompletion.js +0 -2
  396. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  397. package/dist/src/ui/hooks/useGeminiStream.d.ts +2 -2
  398. package/dist/src/ui/hooks/useGeminiStream.js +48 -29
  399. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  400. package/dist/src/ui/hooks/useGeminiStream.test.js +44 -82
  401. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  402. package/dist/src/ui/hooks/useGitBranchName.js +29 -16
  403. package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
  404. package/dist/src/ui/hooks/useGitBranchName.test.js +102 -51
  405. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  406. package/dist/src/ui/hooks/useIncludeDirsTrust.js +2 -2
  407. package/dist/src/ui/hooks/useIncludeDirsTrust.js.map +1 -1
  408. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js +2 -0
  409. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js.map +1 -1
  410. package/dist/src/ui/hooks/useMessageQueue.d.ts +2 -1
  411. package/dist/src/ui/hooks/useMessageQueue.js +3 -1
  412. package/dist/src/ui/hooks/useMessageQueue.js.map +1 -1
  413. package/dist/src/ui/hooks/useMessageQueue.test.js +38 -0
  414. package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
  415. package/dist/src/ui/hooks/useSessionBrowser.d.ts +3 -3
  416. package/dist/src/ui/hooks/useSessionBrowser.js.map +1 -1
  417. package/dist/src/ui/hooks/useSessionBrowser.test.js +44 -38
  418. package/dist/src/ui/hooks/useSessionBrowser.test.js.map +1 -1
  419. package/dist/src/ui/hooks/useSessionResume.d.ts +3 -3
  420. package/dist/src/ui/hooks/useSessionResume.js.map +1 -1
  421. package/dist/src/ui/hooks/useSessionResume.test.js +6 -4
  422. package/dist/src/ui/hooks/useSessionResume.test.js.map +1 -1
  423. package/dist/src/ui/hooks/useSuspend.d.ts +1 -3
  424. package/dist/src/ui/hooks/useSuspend.js +3 -17
  425. package/dist/src/ui/hooks/useSuspend.js.map +1 -1
  426. package/dist/src/ui/hooks/useSuspend.test.js +0 -14
  427. package/dist/src/ui/hooks/useSuspend.test.js.map +1 -1
  428. package/dist/src/ui/hooks/useToolScheduler.test.js +6 -6
  429. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  430. package/dist/src/ui/hooks/useVoiceMode.js +25 -19
  431. package/dist/src/ui/hooks/useVoiceMode.js.map +1 -1
  432. package/dist/src/ui/hooks/vim-passthrough.test.js +10 -0
  433. package/dist/src/ui/hooks/vim-passthrough.test.js.map +1 -1
  434. package/dist/src/ui/hooks/vim.js +8 -0
  435. package/dist/src/ui/hooks/vim.js.map +1 -1
  436. package/dist/src/ui/hooks/vim.test.js +61 -0
  437. package/dist/src/ui/hooks/vim.test.js.map +1 -1
  438. package/dist/src/ui/key/keyBindings.d.ts +2 -0
  439. package/dist/src/ui/key/keyBindings.js +26 -9
  440. package/dist/src/ui/key/keyBindings.js.map +1 -1
  441. package/dist/src/ui/key/keyBindings.test.js +24 -0
  442. package/dist/src/ui/key/keyBindings.test.js.map +1 -1
  443. package/dist/src/ui/key/keyMatchers.test.js +26 -5
  444. package/dist/src/ui/key/keyMatchers.test.js.map +1 -1
  445. package/dist/src/ui/themes/theme-manager.js +0 -2
  446. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  447. package/dist/src/ui/types.d.ts +23 -2
  448. package/dist/src/ui/types.js +3 -2
  449. package/dist/src/ui/types.js.map +1 -1
  450. package/dist/src/ui/utils/TableRenderer.js +6 -6
  451. package/dist/src/ui/utils/TableRenderer.js.map +1 -1
  452. package/dist/src/ui/utils/TableRenderer.test.js +10 -0
  453. package/dist/src/ui/utils/TableRenderer.test.js.map +1 -1
  454. package/dist/src/ui/utils/directoryUtils.test.js +0 -5
  455. package/dist/src/ui/utils/directoryUtils.test.js.map +1 -1
  456. package/dist/src/ui/utils/editorUtils.d.ts +2 -1
  457. package/dist/src/ui/utils/editorUtils.js +75 -28
  458. package/dist/src/ui/utils/editorUtils.js.map +1 -1
  459. package/dist/src/ui/utils/latexToUnicode.d.ts +21 -0
  460. package/dist/src/ui/utils/latexToUnicode.js +538 -0
  461. package/dist/src/ui/utils/latexToUnicode.js.map +1 -0
  462. package/dist/src/ui/utils/latexToUnicode.test.d.ts +6 -0
  463. package/dist/src/ui/utils/latexToUnicode.test.js +222 -0
  464. package/dist/src/ui/utils/latexToUnicode.test.js.map +1 -0
  465. package/dist/src/ui/utils/markdownParsingUtils.d.ts +1 -5
  466. package/dist/src/ui/utils/markdownParsingUtils.js +36 -1
  467. package/dist/src/ui/utils/markdownParsingUtils.js.map +1 -1
  468. package/dist/src/ui/utils/markdownParsingUtils.test.js +35 -0
  469. package/dist/src/ui/utils/markdownParsingUtils.test.js.map +1 -1
  470. package/dist/src/ui/utils/memorySnapshot.d.ts +19 -0
  471. package/dist/src/ui/utils/memorySnapshot.js +28 -0
  472. package/dist/src/ui/utils/memorySnapshot.js.map +1 -0
  473. package/dist/src/ui/utils/memorySnapshot.test.d.ts +6 -0
  474. package/dist/src/ui/utils/memorySnapshot.test.js +62 -0
  475. package/dist/src/ui/utils/memorySnapshot.test.js.map +1 -0
  476. package/dist/src/ui/utils/updateCheck.js +11 -2
  477. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  478. package/dist/src/ui/utils/updateCheck.test.js +73 -0
  479. package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
  480. package/dist/src/utils/commands.d.ts +1 -1
  481. package/dist/src/utils/commands.js +1 -1
  482. package/dist/src/utils/commands.test.js +14 -14
  483. package/dist/src/utils/commands.test.js.map +1 -1
  484. package/dist/src/utils/envVarResolver.js +10 -7
  485. package/dist/src/utils/envVarResolver.js.map +1 -1
  486. package/dist/src/utils/gitUtils.js +1 -2
  487. package/dist/src/utils/gitUtils.js.map +1 -1
  488. package/dist/src/utils/handleAutoUpdate.d.ts +1 -1
  489. package/dist/src/utils/handleAutoUpdate.js +15 -3
  490. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  491. package/dist/src/utils/handleAutoUpdate.test.js +45 -16
  492. package/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
  493. package/dist/src/utils/installationInfo.d.ts +1 -0
  494. package/dist/src/utils/installationInfo.js +16 -1
  495. package/dist/src/utils/installationInfo.js.map +1 -1
  496. package/dist/src/utils/installationInfo.test.js +16 -0
  497. package/dist/src/utils/installationInfo.test.js.map +1 -1
  498. package/dist/src/utils/jsonoutput.js +0 -2
  499. package/dist/src/utils/jsonoutput.js.map +1 -1
  500. package/dist/src/utils/processUtils.d.ts +28 -0
  501. package/dist/src/utils/processUtils.js +71 -0
  502. package/dist/src/utils/processUtils.js.map +1 -1
  503. package/dist/src/utils/processUtils.test.js +122 -1
  504. package/dist/src/utils/processUtils.test.js.map +1 -1
  505. package/dist/src/utils/readStdin.js +22 -4
  506. package/dist/src/utils/readStdin.js.map +1 -1
  507. package/dist/src/utils/readStdin.test.js +32 -0
  508. package/dist/src/utils/readStdin.test.js.map +1 -1
  509. package/dist/src/utils/relaunch.js +6 -13
  510. package/dist/src/utils/relaunch.js.map +1 -1
  511. package/dist/src/utils/relaunch.test.js +82 -86
  512. package/dist/src/utils/relaunch.test.js.map +1 -1
  513. package/dist/src/utils/sandbox.js +34 -24
  514. package/dist/src/utils/sandbox.js.map +1 -1
  515. package/dist/src/utils/sandbox.test.js +108 -9
  516. package/dist/src/utils/sandbox.test.js.map +1 -1
  517. package/dist/src/utils/sandboxUtils.js +12 -7
  518. package/dist/src/utils/sandboxUtils.js.map +1 -1
  519. package/dist/src/utils/sandboxUtils.test.js +68 -0
  520. package/dist/src/utils/sandboxUtils.test.js.map +1 -1
  521. package/dist/src/utils/sessionCleanup.js +49 -14
  522. package/dist/src/utils/sessionCleanup.js.map +1 -1
  523. package/dist/src/utils/sessionCleanup.test.js +63 -0
  524. package/dist/src/utils/sessionCleanup.test.js.map +1 -1
  525. package/dist/src/utils/sessionUtils.js +22 -7
  526. package/dist/src/utils/sessionUtils.js.map +1 -1
  527. package/dist/src/utils/sessionUtils.test.js +99 -0
  528. package/dist/src/utils/sessionUtils.test.js.map +1 -1
  529. package/dist/src/utils/sessions.js +2 -4
  530. package/dist/src/utils/sessions.js.map +1 -1
  531. package/dist/src/utils/sessions.test.js +9 -12
  532. package/dist/src/utils/sessions.test.js.map +1 -1
  533. package/dist/src/utils/userStartupWarnings.js +4 -3
  534. package/dist/src/utils/userStartupWarnings.js.map +1 -1
  535. package/dist/src/utils/userStartupWarnings.test.js +40 -3
  536. package/dist/src/utils/userStartupWarnings.test.js.map +1 -1
  537. package/dist/src/validateNonInterActiveAuth.js +1 -1
  538. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  539. package/dist/tsconfig.tsbuildinfo +1 -1
  540. package/package.json +4 -4
  541. package/dist/src/acp/acpClient.d.ts +0 -56
  542. package/dist/src/acp/acpClient.js.map +0 -1
  543. package/dist/src/acp/acpClient.test.js +0 -1816
  544. package/dist/src/acp/acpClient.test.js.map +0 -1
  545. package/dist/src/acp/commandHandler.js.map +0 -1
  546. package/dist/src/acp/commandHandler.test.js.map +0 -1
  547. package/dist/src/acp/fileSystemService.js.map +0 -1
  548. package/dist/src/acp/fileSystemService.test.js.map +0 -1
  549. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.d.ts +0 -12
  550. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.js.map +0 -1
  551. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js.map +0 -1
  552. package/dist/src/ui/components/SkillInboxDialog.js +0 -420
  553. package/dist/src/ui/components/SkillInboxDialog.js.map +0 -1
  554. package/dist/src/ui/components/SkillInboxDialog.test.js +0 -467
  555. package/dist/src/ui/components/SkillInboxDialog.test.js.map +0 -1
  556. /package/dist/src/acp/{commandHandler.test.d.ts → acpCommandHandler.test.d.ts} +0 -0
  557. /package/dist/src/{ui/components/SkillInboxDialog.test.d.ts → acp/acpFileSystemService.test.d.ts} +0 -0
  558. /package/dist/src/{acp/acpClient.test.d.ts → config/mutual-exclusivity.test.d.ts} +0 -0
  559. /package/dist/src/{acp/fileSystemService.test.d.ts → ui/commands/bugMemoryCommand.test.d.ts} +0 -0
  560. /package/dist/src/ui/{auth/LoginWithGoogleRestartDialog.test.d.ts → commands/exportSessionCommand.test.d.ts} +0 -0
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { WarningPriority, createSessionId, logUserPrompt, AuthType, UserPromptEvent, coreEvents, CoreEvent, getOauthClient, patchStdio, writeToStdout, writeToStderr, shouldEnterAlternateScreen, startupProfiler, ExitCodes, SessionStartSource, SessionEndReason, ValidationCancelledError, ValidationRequiredError, debugLogger, isHeadlessMode, Storage, } from '@google/gemini-cli-core';
6
+ import { WarningPriority, createSessionId, logUserPrompt, AuthType, UserPromptEvent, coreEvents, CoreEvent, getOauthClient, patchStdio, writeToStdout, writeToStderr, shouldEnterAlternateScreen, startupProfiler, ExitCodes, SessionStartSource, SessionEndReason, ValidationCancelledError, ValidationRequiredError, debugLogger, isHeadlessMode, Storage, getProjectHash, loadConversationRecord, } from '@google/gemini-cli-core';
7
7
  import { loadCliConfig, parseArguments } from './config/config.js';
8
8
  import * as cliConfig from './config/config.js';
9
9
  import { readStdin } from './utils/readStdin.js';
@@ -11,6 +11,8 @@ import { createHash } from 'node:crypto';
11
11
  import v8 from 'node:v8';
12
12
  import os from 'node:os';
13
13
  import dns from 'node:dns';
14
+ import * as path from 'node:path';
15
+ import * as fsPromises from 'node:fs/promises';
14
16
  import { start_sandbox } from './utils/sandbox.js';
15
17
  import { loadSettings, SettingScope, } from './config/settings.js';
16
18
  import { loadTrustedFolders, } from './config/trustedFolders.js';
@@ -24,10 +26,10 @@ import { setupWorktree } from './utils/worktreeSetup.js';
24
26
  import { cleanupToolOutputFiles, cleanupExpiredSessions, } from './utils/sessionCleanup.js';
25
27
  import { initializeApp, } from './core/initializer.js';
26
28
  import { validateAuthMethod } from './config/auth.js';
27
- import { runAcpClient } from './acp/acpClient.js';
29
+ import { runAcpClient } from './acp/acpStdioTransport.js';
28
30
  import { validateNonInteractiveAuth } from './validateNonInterActiveAuth.js';
29
31
  import { appEvents, AppEvent } from './utils/events.js';
30
- import { SessionError, SessionSelector } from './utils/sessionUtils.js';
32
+ import { RESUME_LATEST, SessionError, SessionSelector, } from './utils/sessionUtils.js';
31
33
  import { relaunchOnExitCode } from './utils/relaunch.js';
32
34
  import { loadSandboxConfig } from './config/sandboxConfig.js';
33
35
  import { deleteSession, listSessions } from './utils/sessions.js';
@@ -108,13 +110,65 @@ ${reason.stack}`
108
110
  }
109
111
  });
110
112
  }
111
- export async function resolveSessionId(resumeArg, sessionIdArg) {
112
- if (!resumeArg && !sessionIdArg) {
113
+ export async function resolveSessionId(resumeArg, sessionIdArg, sessionFileArg) {
114
+ if (!resumeArg && !sessionIdArg && !sessionFileArg) {
113
115
  return { sessionId: createSessionId() };
114
116
  }
115
117
  const storage = new Storage(process.cwd());
116
118
  await storage.initialize();
117
119
  const sessionSelector = new SessionSelector(storage);
120
+ if (sessionFileArg) {
121
+ try {
122
+ const sessionData = await loadConversationRecord(sessionFileArg);
123
+ if (!sessionData) {
124
+ throw new Error(`File not found or invalid format: ${sessionFileArg}`);
125
+ }
126
+ const now = Date.now();
127
+ const isoNow = new Date(now).toISOString();
128
+ // Filter out old system/info messages that are specific to the previous run
129
+ // and only keep actual conversation messages (user/gemini).
130
+ // Best effort parse: ensure message is an object and has required fields.
131
+ sessionData.messages = (sessionData.messages || []).filter((m) => typeof m === 'object' &&
132
+ m !== null &&
133
+ (m.type === 'user' || m.type === 'gemini') &&
134
+ m.content !== undefined);
135
+ // Add a single info message to the history to confirm the import
136
+ sessionData.messages.unshift({
137
+ id: `import-${now}`,
138
+ type: 'info',
139
+ content: `Imported session from ${sessionFileArg}`,
140
+ timestamp: isoNow,
141
+ });
142
+ const newSessionId = createSessionId();
143
+ sessionData.sessionId = newSessionId;
144
+ sessionData.projectHash = getProjectHash(storage.getProjectRoot());
145
+ sessionData.startTime = isoNow;
146
+ sessionData.lastUpdated = isoNow;
147
+ const chatsDir = path.join(storage.getProjectTempDir(), 'chats');
148
+ const newSessionPath = path.join(chatsDir, `session-${now}-${newSessionId.slice(0, 8)}.jsonl`);
149
+ const { messages: _messages, ...initialMetadata } = sessionData;
150
+ const lines = [JSON.stringify(initialMetadata)];
151
+ if (sessionData.messages) {
152
+ for (const msg of sessionData.messages) {
153
+ lines.push(JSON.stringify(msg));
154
+ }
155
+ }
156
+ await fsPromises.mkdir(chatsDir, { recursive: true });
157
+ await fsPromises.writeFile(newSessionPath, lines.join('\n') + '\n', 'utf-8');
158
+ return {
159
+ sessionId: newSessionId,
160
+ resumedSessionData: {
161
+ conversation: sessionData,
162
+ filePath: newSessionPath,
163
+ },
164
+ };
165
+ }
166
+ catch (error) {
167
+ coreEvents.emitFeedback('error', `Error importing session from file: ${error instanceof Error ? error.message : 'Unknown error'}`);
168
+ await runExitCleanup();
169
+ process.exit(ExitCodes.FATAL_INPUT_ERROR);
170
+ }
171
+ }
118
172
  if (sessionIdArg) {
119
173
  if (await sessionSelector.sessionExists(sessionIdArg)) {
120
174
  coreEvents.emitFeedback('error', `Error starting session: Session ID "${sessionIdArg}" already exists. Use --resume to resume it, or provide a different ID.`);
@@ -132,8 +186,10 @@ export async function resolveSessionId(resumeArg, sessionIdArg) {
132
186
  }
133
187
  catch (error) {
134
188
  if (error instanceof SessionError && error.code === 'NO_SESSIONS_FOUND') {
135
- coreEvents.emitFeedback('warning', error.message);
136
- return { sessionId: createSessionId() };
189
+ if (resumeArg === RESUME_LATEST) {
190
+ coreEvents.emitFeedback('warning', error.message);
191
+ return { sessionId: createSessionId() };
192
+ }
137
193
  }
138
194
  coreEvents.emitFeedback('error', `Error resuming session: ${error instanceof Error ? error.message : 'Unknown error'}`);
139
195
  await runExitCleanup();
@@ -167,6 +223,7 @@ export async function main() {
167
223
  // Log error but proceed; let the app fail naturally if auth is strictly required later.
168
224
  debugLogger.error('Early authentication check failed:', e);
169
225
  }
226
+ let config;
170
227
  const cliStartupHandle = startupProfiler.start('cli_startup');
171
228
  // Listen for admin controls from parent process (IPC) in non-sandbox mode. In
172
229
  // sandbox mode, we re-fetch the admin controls from the server once we enter
@@ -177,7 +234,7 @@ export async function main() {
177
234
  const cleanupStdio = patchStdio();
178
235
  registerSyncCleanup(() => {
179
236
  // This is needed to ensure we don't lose any buffered output.
180
- initializeOutputListenersAndFlush();
237
+ initializeOutputListenersAndFlush(config);
181
238
  cleanupStdio();
182
239
  });
183
240
  setupUnhandledRejectionHandler();
@@ -224,7 +281,7 @@ export async function main() {
224
281
  coreEvents.emitFeedback('warning', `Error in ${error.path}: ${error.message}`);
225
282
  });
226
283
  const argv = await argvPromise;
227
- const { sessionId, resumedSessionData } = await resolveSessionId(argv.resume, argv.sessionId);
284
+ const { sessionId, resumedSessionData } = await resolveSessionId(argv.resume, argv.sessionId, argv.sessionFile);
228
285
  if ((argv.allowedTools && argv.allowedTools.length > 0) ||
229
286
  (settings.merged.tools?.allowed && settings.merged.tools.allowed.length > 0)) {
230
287
  coreEvents.emitFeedback('warning', 'Warning: --allowed-tools cli argument and tools.allowed in settings.json are deprecated and will be removed in 1.0: Migrate to Policy Engine: https://geminicli.com/docs/core/policy-engine/');
@@ -265,6 +322,8 @@ export async function main() {
265
322
  }
266
323
  const partialConfig = await loadCliConfig(settings.merged, sessionId, argv, {
267
324
  projectHooks: settings.workspace.settings.hooks,
325
+ skipExtensions: true,
326
+ loadedSettings: settings,
268
327
  });
269
328
  adminControlsListner.setConfig(partialConfig);
270
329
  // Refresh auth to fetch remote admin settings from CCPA and before entering
@@ -275,7 +334,7 @@ export async function main() {
275
334
  try {
276
335
  if (partialConfig.isInteractive() &&
277
336
  settings.merged.security.auth.selectedType) {
278
- const err = validateAuthMethod(settings.merged.security.auth.selectedType);
337
+ const err = await validateAuthMethod(settings.merged.security.auth.selectedType);
279
338
  if (err) {
280
339
  throw new Error(err);
281
340
  }
@@ -363,9 +422,10 @@ export async function main() {
363
422
  // may have side effects.
364
423
  {
365
424
  const loadConfigHandle = startupProfiler.start('load_cli_config');
366
- const config = await loadCliConfig(settings.merged, sessionId, argv, {
425
+ config = await loadCliConfig(settings.merged, sessionId, argv, {
367
426
  projectHooks: settings.workspace.settings.hooks,
368
427
  worktreeSettings: worktreeInfo,
428
+ loadedSettings: settings,
369
429
  });
370
430
  loadConfigHandle?.end();
371
431
  // Initialize storage immediately after loading config to ensure that
@@ -472,7 +532,10 @@ export async function main() {
472
532
  return runAcpClient(config, settings, argv);
473
533
  }
474
534
  try {
475
- startProxy(sessionId);
535
+ const proxyController = startProxy(sessionId);
536
+ if (proxyController) {
537
+ registerCleanup(() => proxyController.stop());
538
+ }
476
539
  }
477
540
  catch (err) {
478
541
  debugLogger.error('Error starting api-proxy:', err);
@@ -551,7 +614,7 @@ export async function main() {
551
614
  if (config.getDebugMode()) {
552
615
  debugLogger.log('Session ID: %s', sessionId);
553
616
  }
554
- initializeOutputListenersAndFlush();
617
+ initializeOutputListenersAndFlush(config);
555
618
  await runNonInteractive({
556
619
  config,
557
620
  settings,
@@ -564,7 +627,7 @@ export async function main() {
564
627
  process.exit(ExitCodes.SUCCESS);
565
628
  }
566
629
  }
567
- export function initializeOutputListenersAndFlush() {
630
+ export function initializeOutputListenersAndFlush(config) {
568
631
  // If there are no listeners for output, make sure we flush so output is not
569
632
  // lost.
570
633
  if (coreEvents.listenerCount(CoreEvent.Output) === 0) {
@@ -577,23 +640,38 @@ export function initializeOutputListenersAndFlush() {
577
640
  writeToStdout(payload.chunk, payload.encoding);
578
641
  }
579
642
  });
580
- if (coreEvents.listenerCount(CoreEvent.ConsoleLog) === 0) {
581
- coreEvents.on(CoreEvent.ConsoleLog, (payload) => {
582
- if (payload.type === 'error' || payload.type === 'warn') {
583
- writeToStderr(payload.content + '\n');
584
- }
585
- else {
586
- writeToStderr(payload.content + '\n');
587
- }
588
- });
589
- }
590
- if (coreEvents.listenerCount(CoreEvent.UserFeedback) === 0) {
591
- coreEvents.on(CoreEvent.UserFeedback, (payload) => {
592
- writeToStderr(payload.message + '\n');
593
- });
594
- }
595
643
  }
596
- coreEvents.drainBacklogs();
644
+ if (coreEvents.listenerCount(CoreEvent.ConsoleLog) === 0) {
645
+ coreEvents.on(CoreEvent.ConsoleLog, (payload) => {
646
+ if (payload.type === 'error' || payload.type === 'warn') {
647
+ writeToStderr(payload.content + '\n');
648
+ }
649
+ else {
650
+ writeToStderr(payload.content + '\n');
651
+ }
652
+ });
653
+ }
654
+ if (coreEvents.listenerCount(CoreEvent.UserFeedback) === 0) {
655
+ coreEvents.on(CoreEvent.UserFeedback, (payload) => {
656
+ writeToStderr(payload.message + '\n');
657
+ });
658
+ }
659
+ const outputFormat = config?.getOutputFormat();
660
+ const forceToStderr = outputFormat === 'json';
661
+ coreEvents.drainBacklogs((event, args) => {
662
+ if (forceToStderr && event === CoreEvent.Output) {
663
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
664
+ const payload = args[0];
665
+ if (!payload.isStderr) {
666
+ return {
667
+ event,
668
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
669
+ args: [{ ...payload, isStderr: true }],
670
+ };
671
+ }
672
+ }
673
+ return { event, args };
674
+ });
597
675
  }
598
676
  function setupAdminControlsListener() {
599
677
  let pendingSettings;
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/gemini.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/gemini.tsx"],"names":[],"mappings":"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"}
@@ -222,6 +222,9 @@ vi.mock('./ui/utils/mouse.js', () => ({
222
222
  vi.mock('./validateNonInterActiveAuth.js', () => ({
223
223
  validateNonInteractiveAuth: vi.fn().mockResolvedValue('google'),
224
224
  }));
225
+ vi.mock('./config/auth.js', () => ({
226
+ validateAuthMethod: vi.fn().mockResolvedValue(null),
227
+ }));
225
228
  describe('gemini.tsx main function', () => {
226
229
  let originalIsTTY;
227
230
  let initialUnhandledRejectionListeners = [];
@@ -694,11 +697,14 @@ describe('gemini.tsx main function kitty protocol', () => {
694
697
  processExitSpy.mockRestore();
695
698
  });
696
699
  it('should handle session selector error', async () => {
697
- vi.mocked(SessionSelector).mockImplementation(() => ({
698
- resolveSession: vi
699
- .fn()
700
- .mockRejectedValue(new Error('Session not found')),
701
- }));
700
+ // eslint-disable-next-line prefer-arrow-callback
701
+ vi.mocked(SessionSelector).mockImplementation(function () {
702
+ return {
703
+ resolveSession: vi
704
+ .fn()
705
+ .mockRejectedValue(new Error('Session not found')),
706
+ };
707
+ });
702
708
  const processExitSpy = vi
703
709
  .spyOn(process, 'exit')
704
710
  .mockImplementation((code) => {
@@ -736,11 +742,14 @@ describe('gemini.tsx main function kitty protocol', () => {
736
742
  emitFeedbackSpy.mockRestore();
737
743
  });
738
744
  it('should start normally with a warning when no sessions found for resume', async () => {
739
- vi.mocked(SessionSelector).mockImplementation(() => ({
740
- resolveSession: vi
741
- .fn()
742
- .mockRejectedValue(SessionError.noSessionsFound()),
743
- }));
745
+ // eslint-disable-next-line prefer-arrow-callback
746
+ vi.mocked(SessionSelector).mockImplementation(function () {
747
+ return {
748
+ resolveSession: vi
749
+ .fn()
750
+ .mockRejectedValue(SessionError.noSessionsFound()),
751
+ };
752
+ });
744
753
  const processExitSpy = vi
745
754
  .spyOn(process, 'exit')
746
755
  .mockImplementation((code) => {
@@ -874,10 +883,77 @@ describe('resolveSessionId', () => {
874
883
  expect(sessionId).toBeDefined();
875
884
  expect(resumedSessionData).toBeUndefined();
876
885
  });
886
+ it('should import from session file when sessionFile is provided', async () => {
887
+ // eslint-disable-next-line prefer-arrow-callback
888
+ vi.mocked(SessionSelector).mockImplementation(function () {
889
+ return {
890
+ sessionExists: vi.fn().mockResolvedValue(false),
891
+ };
892
+ });
893
+ const coreModule = await import('@google/gemini-cli-core');
894
+ vi.spyOn(coreModule, 'loadConversationRecord').mockResolvedValueOnce({
895
+ sessionId: 'old-session-id',
896
+ projectHash: 'hash',
897
+ startTime: 'time',
898
+ lastUpdated: 'time',
899
+ messages: [
900
+ { type: 'info', content: 'Old info', id: '1' },
901
+ { type: 'user', content: 'Hello', id: '2' },
902
+ { type: 'gemini', content: 'Hi', id: '3' },
903
+ { type: 'error', content: 'Old error', id: '4' },
904
+ { type: 'user', id: '5' }, // Missing content
905
+ null, // Null object
906
+ { type: 'unknown', content: 'Something', id: '6' }, // Unknown type
907
+ ],
908
+ });
909
+ const emitFeedbackSpy = vi.spyOn(coreEvents, 'emitFeedback');
910
+ const processExitSpy = vi
911
+ .spyOn(process, 'exit')
912
+ .mockImplementation((code) => {
913
+ throw new MockProcessExitError(code);
914
+ });
915
+ try {
916
+ const { sessionId, resumedSessionData } = await resolveSessionId(undefined, undefined, 'dummy-session.json');
917
+ expect(sessionId).toBeDefined();
918
+ expect(sessionId).not.toBe('old-session-id'); // A new session ID should be created
919
+ expect(resumedSessionData).toBeDefined();
920
+ expect(resumedSessionData?.conversation.sessionId).toBe(sessionId); // Overwritten
921
+ // Verify messages: should have 1 info (the new import confirmation) + 2 valid conversation messages
922
+ // Invalid messages (missing content, null, unknown type) and transient messages should be filtered out.
923
+ expect(resumedSessionData?.conversation.messages).toHaveLength(3);
924
+ expect(resumedSessionData?.conversation.messages[0]).toMatchObject({
925
+ type: 'info',
926
+ content: expect.stringContaining('Imported session from'),
927
+ });
928
+ expect(resumedSessionData?.conversation.messages[1]).toMatchObject({
929
+ type: 'user',
930
+ content: 'Hello',
931
+ });
932
+ expect(resumedSessionData?.conversation.messages[2]).toMatchObject({
933
+ type: 'gemini',
934
+ content: 'Hi',
935
+ });
936
+ expect(resumedSessionData?.filePath).toContain(sessionId.slice(0, 8)); // New path
937
+ }
938
+ catch (e) {
939
+ if (e instanceof MockProcessExitError) {
940
+ throw new Error('process.exit called with: ' +
941
+ JSON.stringify(emitFeedbackSpy.mock.calls));
942
+ }
943
+ throw e;
944
+ }
945
+ finally {
946
+ emitFeedbackSpy.mockRestore();
947
+ processExitSpy.mockRestore();
948
+ }
949
+ });
877
950
  it('should exit with FATAL_INPUT_ERROR when sessionId already exists', async () => {
878
- vi.mocked(SessionSelector).mockImplementation(() => ({
879
- sessionExists: vi.fn().mockResolvedValue(true),
880
- }));
951
+ // eslint-disable-next-line prefer-arrow-callback
952
+ vi.mocked(SessionSelector).mockImplementation(function () {
953
+ return {
954
+ sessionExists: vi.fn().mockResolvedValue(true),
955
+ };
956
+ });
881
957
  const emitFeedbackSpy = vi.spyOn(coreEvents, 'emitFeedback');
882
958
  const processExitSpy = vi
883
959
  .spyOn(process, 'exit')
@@ -897,13 +973,40 @@ describe('resolveSessionId', () => {
897
973
  processExitSpy.mockRestore();
898
974
  });
899
975
  it('should return provided sessionId when it does not exist', async () => {
900
- vi.mocked(SessionSelector).mockImplementation(() => ({
901
- sessionExists: vi.fn().mockResolvedValue(false),
902
- }));
976
+ // eslint-disable-next-line prefer-arrow-callback
977
+ vi.mocked(SessionSelector).mockImplementation(function () {
978
+ return {
979
+ sessionExists: vi.fn().mockResolvedValue(false),
980
+ };
981
+ });
903
982
  const { sessionId, resumedSessionData } = await resolveSessionId(undefined, 'new-id');
904
983
  expect(sessionId).toBe('new-id');
905
984
  expect(resumedSessionData).toBeUndefined();
906
985
  });
986
+ it('should exit with FATAL_INPUT_ERROR when explicit resume session is missing', async () => {
987
+ vi.mocked(SessionSelector).mockImplementation(() => ({
988
+ resolveSession: vi
989
+ .fn()
990
+ .mockRejectedValue(SessionError.noSessionsFound()),
991
+ }));
992
+ const emitFeedbackSpy = vi.spyOn(coreEvents, 'emitFeedback');
993
+ const processExitSpy = vi
994
+ .spyOn(process, 'exit')
995
+ .mockImplementation((code) => {
996
+ throw new MockProcessExitError(code);
997
+ });
998
+ try {
999
+ await resolveSessionId('explicit-session-id');
1000
+ }
1001
+ catch (e) {
1002
+ if (!(e instanceof MockProcessExitError))
1003
+ throw e;
1004
+ }
1005
+ expect(emitFeedbackSpy).toHaveBeenCalledWith('error', expect.stringContaining('Error resuming session:'));
1006
+ expect(processExitSpy).toHaveBeenCalledWith(ExitCodes.FATAL_INPUT_ERROR);
1007
+ emitFeedbackSpy.mockRestore();
1008
+ processExitSpy.mockRestore();
1009
+ });
907
1010
  });
908
1011
  describe('gemini.tsx main function exit codes', () => {
909
1012
  let originalEnvNoRelaunch;
@@ -951,6 +1054,34 @@ describe('gemini.tsx main function exit codes', () => {
951
1054
  expect(e.code).toBe(42);
952
1055
  }
953
1056
  });
1057
+ it('should exit with 41 for validateAuthMethod failure during sandbox setup', async () => {
1058
+ vi.stubEnv('SANDBOX', '');
1059
+ vi.mocked(loadSandboxConfig).mockResolvedValue(createMockSandboxConfig({
1060
+ command: 'docker',
1061
+ image: 'test-image',
1062
+ }));
1063
+ vi.mocked(loadCliConfig).mockResolvedValue(createMockConfig({
1064
+ refreshAuth: vi.fn().mockResolvedValue(undefined),
1065
+ getRemoteAdminSettings: vi.fn().mockReturnValue(undefined),
1066
+ isInteractive: vi.fn().mockReturnValue(true),
1067
+ }));
1068
+ vi.mocked(loadSettings).mockReturnValue(createMockSettings({
1069
+ merged: {
1070
+ security: { auth: { selectedType: 'google', useExternal: false } },
1071
+ },
1072
+ }));
1073
+ vi.mocked(parseArguments).mockResolvedValue({});
1074
+ const authModule = await import('./config/auth.js');
1075
+ vi.mocked(authModule.validateAuthMethod).mockResolvedValueOnce('Auth method invalid');
1076
+ try {
1077
+ await main();
1078
+ expect.fail('Should have thrown MockProcessExitError');
1079
+ }
1080
+ catch (e) {
1081
+ expect(e).toBeInstanceOf(MockProcessExitError);
1082
+ expect(e.code).toBe(41);
1083
+ }
1084
+ });
954
1085
  it('should exit with 41 for auth failure during sandbox setup', async () => {
955
1086
  vi.stubEnv('SANDBOX', '');
956
1087
  vi.mocked(loadSandboxConfig).mockResolvedValue(createMockSandboxConfig({