@machina.ai/cell-cli 1.41.1-rc1 → 1.45.1-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 (562) hide show
  1. package/dist/index.js +17 -17
  2. package/dist/index.js.map +1 -1
  3. package/dist/package.json +5 -5
  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 -774
  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 +89 -17
  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 +120 -31
  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/marketplaceCommand.js +13 -1
  236. package/dist/src/ui/commands/marketplaceCommand.js.map +1 -1
  237. package/dist/src/ui/commands/memoryCommand.d.ts +2 -1
  238. package/dist/src/ui/commands/memoryCommand.js +110 -117
  239. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  240. package/dist/src/ui/commands/memoryCommand.test.js +18 -71
  241. package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
  242. package/dist/src/ui/commands/quitCommand.js +3 -1
  243. package/dist/src/ui/commands/quitCommand.js.map +1 -1
  244. package/dist/src/ui/commands/quitCommand.test.js +46 -1
  245. package/dist/src/ui/commands/quitCommand.test.js.map +1 -1
  246. package/dist/src/ui/commands/rewindCommand.js.map +1 -1
  247. package/dist/src/ui/commands/skillsCommand.js +1 -1
  248. package/dist/src/ui/commands/skillsCommand.js.map +1 -1
  249. package/dist/src/ui/commands/skillsCommand.test.js +19 -0
  250. package/dist/src/ui/commands/skillsCommand.test.js.map +1 -1
  251. package/dist/src/ui/commands/types.d.ts +3 -1
  252. package/dist/src/ui/commands/types.js.map +1 -1
  253. package/dist/src/ui/components/AsciiArt.d.ts +6 -6
  254. package/dist/src/ui/components/AsciiArt.js +6 -6
  255. package/dist/src/ui/components/AskUserDialog.js +3 -1
  256. package/dist/src/ui/components/AskUserDialog.js.map +1 -1
  257. package/dist/src/ui/components/AskUserDialog.test.js +43 -0
  258. package/dist/src/ui/components/AskUserDialog.test.js.map +1 -1
  259. package/dist/src/ui/components/Composer.js +1 -1
  260. package/dist/src/ui/components/Composer.js.map +1 -1
  261. package/dist/src/ui/components/DialogManager.js +4 -0
  262. package/dist/src/ui/components/DialogManager.js.map +1 -1
  263. package/dist/src/ui/components/EditorSettingsDialog.js +3 -6
  264. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  265. package/dist/src/ui/components/Footer.js +6 -0
  266. package/dist/src/ui/components/Footer.js.map +1 -1
  267. package/dist/src/ui/components/FooterConfigDialog.js +1 -0
  268. package/dist/src/ui/components/FooterConfigDialog.js.map +1 -1
  269. package/dist/src/ui/components/FooterConfigDialog.test.js +1 -1
  270. package/dist/src/ui/components/FooterConfigDialog.test.js.map +1 -1
  271. package/dist/src/ui/components/HistoryItemDisplay.js +3 -1
  272. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  273. package/dist/src/ui/components/HistoryItemDisplay.test.js +15 -0
  274. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  275. package/dist/src/ui/components/{SkillInboxDialog.d.ts → InboxDialog.d.ts} +3 -2
  276. package/dist/src/ui/components/InboxDialog.js +756 -0
  277. package/dist/src/ui/components/InboxDialog.js.map +1 -0
  278. package/dist/src/ui/components/InboxDialog.test.d.ts +6 -0
  279. package/dist/src/ui/components/InboxDialog.test.js +824 -0
  280. package/dist/src/ui/components/InboxDialog.test.js.map +1 -0
  281. package/dist/src/ui/components/InputPrompt.d.ts +3 -0
  282. package/dist/src/ui/components/InputPrompt.js +35 -17
  283. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  284. package/dist/src/ui/components/InputPrompt.test.js +95 -46
  285. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  286. package/dist/src/ui/components/ListeningIndicator.d.ts +10 -0
  287. package/dist/src/ui/components/ListeningIndicator.js +30 -0
  288. package/dist/src/ui/components/ListeningIndicator.js.map +1 -0
  289. package/dist/src/ui/components/MainContent.test.js +23 -3
  290. package/dist/src/ui/components/MainContent.test.js.map +1 -1
  291. package/dist/src/ui/components/ModelDialog.js +40 -34
  292. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  293. package/dist/src/ui/components/ModelDialog.test.js +30 -27
  294. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  295. package/dist/src/ui/components/ModelStatsDisplay.js +1 -1
  296. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  297. package/dist/src/ui/components/ModelStatsDisplay.test.js +41 -0
  298. package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
  299. package/dist/src/ui/components/SessionBrowser.js +7 -0
  300. package/dist/src/ui/components/SessionBrowser.js.map +1 -1
  301. package/dist/src/ui/components/SessionSummaryDisplay.js +9 -4
  302. package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
  303. package/dist/src/ui/components/SessionSummaryDisplay.test.js +12 -23
  304. package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
  305. package/dist/src/ui/components/SettingsDialog.js +37 -17
  306. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  307. package/dist/src/ui/components/SettingsDialog.test.js +83 -1
  308. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  309. package/dist/src/ui/components/StatsDisplay.js +2 -2
  310. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  311. package/dist/src/ui/components/StatsDisplay.test.js +24 -0
  312. package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
  313. package/dist/src/ui/components/ThemeDialog.constants.d.ts +26 -0
  314. package/dist/src/ui/components/ThemeDialog.constants.js +27 -0
  315. package/dist/src/ui/components/ThemeDialog.constants.js.map +1 -0
  316. package/dist/src/ui/components/ThemeDialog.js +5 -15
  317. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  318. package/dist/src/ui/components/ToolConfirmationQueue.test.js +1 -1
  319. package/dist/src/ui/components/ToolConfirmationQueue.test.js.map +1 -1
  320. package/dist/src/ui/components/VoiceModelDialog.js +7 -2
  321. package/dist/src/ui/components/VoiceModelDialog.js.map +1 -1
  322. package/dist/src/ui/components/VoiceModelDialog.test.d.ts +6 -0
  323. package/dist/src/ui/components/VoiceModelDialog.test.js +68 -0
  324. package/dist/src/ui/components/VoiceModelDialog.test.js.map +1 -0
  325. package/dist/src/ui/components/messages/ExportSessionMessage.d.ts +11 -0
  326. package/dist/src/ui/components/messages/ExportSessionMessage.js +15 -0
  327. package/dist/src/ui/components/messages/ExportSessionMessage.js.map +1 -0
  328. package/dist/src/ui/components/messages/ExportSessionMessage.test.d.ts +6 -0
  329. package/dist/src/ui/components/messages/ExportSessionMessage.test.js +31 -0
  330. package/dist/src/ui/components/messages/ExportSessionMessage.test.js.map +1 -0
  331. package/dist/src/ui/components/messages/ShellToolMessage.js +6 -2
  332. package/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -1
  333. package/dist/src/ui/components/messages/ShellToolMessage.test.js +33 -0
  334. package/dist/src/ui/components/messages/ShellToolMessage.test.js.map +1 -1
  335. package/dist/src/ui/components/messages/SubagentGroupDisplay.js +13 -13
  336. package/dist/src/ui/components/messages/SubagentGroupDisplay.js.map +1 -1
  337. package/dist/src/ui/components/messages/SubagentGroupDisplay.test.js +5 -5
  338. package/dist/src/ui/components/messages/SubagentGroupDisplay.test.js.map +1 -1
  339. package/dist/src/ui/components/messages/SubagentHistoryMessage.test.js +4 -3
  340. package/dist/src/ui/components/messages/SubagentHistoryMessage.test.js.map +1 -1
  341. package/dist/src/ui/components/messages/SubagentProgressDisplay.d.ts +1 -1
  342. package/dist/src/ui/components/messages/SubagentProgressDisplay.js +7 -6
  343. package/dist/src/ui/components/messages/SubagentProgressDisplay.js.map +1 -1
  344. package/dist/src/ui/components/messages/SubagentProgressDisplay.test.js +10 -9
  345. package/dist/src/ui/components/messages/SubagentProgressDisplay.test.js.map +1 -1
  346. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +3 -9
  347. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  348. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +60 -0
  349. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  350. package/dist/src/ui/components/messages/ToolGroupDisplay.d.ts +13 -0
  351. package/dist/src/ui/components/messages/ToolGroupDisplay.js +78 -0
  352. package/dist/src/ui/components/messages/ToolGroupDisplay.js.map +1 -0
  353. package/dist/src/ui/components/messages/ToolGroupDisplay.test.d.ts +6 -0
  354. package/dist/src/ui/components/messages/ToolGroupDisplay.test.js +210 -0
  355. package/dist/src/ui/components/messages/ToolGroupDisplay.test.js.map +1 -0
  356. package/dist/src/ui/components/messages/ToolGroupMessage.js +4 -2
  357. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  358. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +28 -0
  359. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  360. package/dist/src/ui/components/messages/ToolGroupMessageRegression.test.js +3 -3
  361. package/dist/src/ui/components/messages/ToolGroupMessageRegression.test.js.map +1 -1
  362. package/dist/src/ui/components/messages/ToolMessage.js +6 -2
  363. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  364. package/dist/src/ui/components/messages/ToolShared.d.ts +1 -0
  365. package/dist/src/ui/components/messages/ToolShared.js +5 -3
  366. package/dist/src/ui/components/messages/ToolShared.js.map +1 -1
  367. package/dist/src/ui/components/messages/ToolShared.test.js +18 -1
  368. package/dist/src/ui/components/messages/ToolShared.test.js.map +1 -1
  369. package/dist/src/ui/components/shared/BaseSettingsDialog.d.ts +6 -1
  370. package/dist/src/ui/components/shared/BaseSettingsDialog.js +8 -8
  371. package/dist/src/ui/components/shared/BaseSettingsDialog.js.map +1 -1
  372. package/dist/src/ui/components/shared/performance.test.js +9 -0
  373. package/dist/src/ui/components/shared/performance.test.js.map +1 -1
  374. package/dist/src/ui/components/shared/text-buffer.js +22 -5
  375. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  376. package/dist/src/ui/components/shared/text-buffer.test.js +211 -0
  377. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  378. package/dist/src/ui/constants/tips.js +0 -1
  379. package/dist/src/ui/constants/tips.js.map +1 -1
  380. package/dist/src/ui/contexts/UIActionsContext.d.ts +1 -0
  381. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  382. package/dist/src/ui/contexts/UIStateContext.d.ts +2 -0
  383. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  384. package/dist/src/ui/hooks/atCommandProcessor.js +83 -73
  385. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  386. package/dist/src/ui/hooks/atCommandProcessor.test.js +134 -42
  387. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  388. package/dist/src/ui/hooks/slashCommandProcessor.js +13 -0
  389. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  390. package/dist/src/ui/hooks/slashCommandProcessor.test.js +85 -0
  391. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  392. package/dist/src/ui/hooks/useAgentStream.d.ts +2 -2
  393. package/dist/src/ui/hooks/useAgentStream.js +63 -30
  394. package/dist/src/ui/hooks/useAgentStream.js.map +1 -1
  395. package/dist/src/ui/hooks/useAgentStream.test.js +1 -1
  396. package/dist/src/ui/hooks/useAgentStream.test.js.map +1 -1
  397. package/dist/src/ui/hooks/useAtCompletion.js +0 -2
  398. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  399. package/dist/src/ui/hooks/useGeminiStream.d.ts +2 -2
  400. package/dist/src/ui/hooks/useGeminiStream.js +48 -29
  401. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  402. package/dist/src/ui/hooks/useGeminiStream.test.js +44 -82
  403. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  404. package/dist/src/ui/hooks/useGitBranchName.js +29 -16
  405. package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
  406. package/dist/src/ui/hooks/useGitBranchName.test.js +102 -51
  407. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  408. package/dist/src/ui/hooks/useIncludeDirsTrust.js +2 -2
  409. package/dist/src/ui/hooks/useIncludeDirsTrust.js.map +1 -1
  410. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js +2 -0
  411. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js.map +1 -1
  412. package/dist/src/ui/hooks/useMessageQueue.d.ts +2 -1
  413. package/dist/src/ui/hooks/useMessageQueue.js +3 -1
  414. package/dist/src/ui/hooks/useMessageQueue.js.map +1 -1
  415. package/dist/src/ui/hooks/useMessageQueue.test.js +38 -0
  416. package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
  417. package/dist/src/ui/hooks/useSessionBrowser.d.ts +3 -3
  418. package/dist/src/ui/hooks/useSessionBrowser.js.map +1 -1
  419. package/dist/src/ui/hooks/useSessionBrowser.test.js +44 -38
  420. package/dist/src/ui/hooks/useSessionBrowser.test.js.map +1 -1
  421. package/dist/src/ui/hooks/useSessionResume.d.ts +3 -3
  422. package/dist/src/ui/hooks/useSessionResume.js.map +1 -1
  423. package/dist/src/ui/hooks/useSessionResume.test.js +6 -4
  424. package/dist/src/ui/hooks/useSessionResume.test.js.map +1 -1
  425. package/dist/src/ui/hooks/useSuspend.d.ts +1 -3
  426. package/dist/src/ui/hooks/useSuspend.js +3 -17
  427. package/dist/src/ui/hooks/useSuspend.js.map +1 -1
  428. package/dist/src/ui/hooks/useSuspend.test.js +0 -14
  429. package/dist/src/ui/hooks/useSuspend.test.js.map +1 -1
  430. package/dist/src/ui/hooks/useToolScheduler.test.js +6 -6
  431. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  432. package/dist/src/ui/hooks/useVoiceMode.js +25 -19
  433. package/dist/src/ui/hooks/useVoiceMode.js.map +1 -1
  434. package/dist/src/ui/hooks/vim-passthrough.test.js +10 -0
  435. package/dist/src/ui/hooks/vim-passthrough.test.js.map +1 -1
  436. package/dist/src/ui/hooks/vim.js +8 -0
  437. package/dist/src/ui/hooks/vim.js.map +1 -1
  438. package/dist/src/ui/hooks/vim.test.js +61 -0
  439. package/dist/src/ui/hooks/vim.test.js.map +1 -1
  440. package/dist/src/ui/key/keyBindings.d.ts +2 -0
  441. package/dist/src/ui/key/keyBindings.js +26 -9
  442. package/dist/src/ui/key/keyBindings.js.map +1 -1
  443. package/dist/src/ui/key/keyBindings.test.js +24 -0
  444. package/dist/src/ui/key/keyBindings.test.js.map +1 -1
  445. package/dist/src/ui/key/keyMatchers.test.js +26 -5
  446. package/dist/src/ui/key/keyMatchers.test.js.map +1 -1
  447. package/dist/src/ui/themes/theme-manager.js +0 -2
  448. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  449. package/dist/src/ui/types.d.ts +23 -2
  450. package/dist/src/ui/types.js +3 -2
  451. package/dist/src/ui/types.js.map +1 -1
  452. package/dist/src/ui/utils/TableRenderer.js +6 -6
  453. package/dist/src/ui/utils/TableRenderer.js.map +1 -1
  454. package/dist/src/ui/utils/TableRenderer.test.js +10 -0
  455. package/dist/src/ui/utils/TableRenderer.test.js.map +1 -1
  456. package/dist/src/ui/utils/directoryUtils.test.js +0 -5
  457. package/dist/src/ui/utils/directoryUtils.test.js.map +1 -1
  458. package/dist/src/ui/utils/editorUtils.d.ts +2 -1
  459. package/dist/src/ui/utils/editorUtils.js +75 -28
  460. package/dist/src/ui/utils/editorUtils.js.map +1 -1
  461. package/dist/src/ui/utils/latexToUnicode.d.ts +21 -0
  462. package/dist/src/ui/utils/latexToUnicode.js +538 -0
  463. package/dist/src/ui/utils/latexToUnicode.js.map +1 -0
  464. package/dist/src/ui/utils/latexToUnicode.test.d.ts +6 -0
  465. package/dist/src/ui/utils/latexToUnicode.test.js +222 -0
  466. package/dist/src/ui/utils/latexToUnicode.test.js.map +1 -0
  467. package/dist/src/ui/utils/markdownParsingUtils.d.ts +1 -5
  468. package/dist/src/ui/utils/markdownParsingUtils.js +36 -1
  469. package/dist/src/ui/utils/markdownParsingUtils.js.map +1 -1
  470. package/dist/src/ui/utils/markdownParsingUtils.test.js +35 -0
  471. package/dist/src/ui/utils/markdownParsingUtils.test.js.map +1 -1
  472. package/dist/src/ui/utils/memorySnapshot.d.ts +19 -0
  473. package/dist/src/ui/utils/memorySnapshot.js +28 -0
  474. package/dist/src/ui/utils/memorySnapshot.js.map +1 -0
  475. package/dist/src/ui/utils/memorySnapshot.test.d.ts +6 -0
  476. package/dist/src/ui/utils/memorySnapshot.test.js +62 -0
  477. package/dist/src/ui/utils/memorySnapshot.test.js.map +1 -0
  478. package/dist/src/ui/utils/updateCheck.js +11 -2
  479. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  480. package/dist/src/ui/utils/updateCheck.test.js +73 -0
  481. package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
  482. package/dist/src/utils/commands.d.ts +1 -1
  483. package/dist/src/utils/commands.js +1 -1
  484. package/dist/src/utils/commands.test.js +14 -14
  485. package/dist/src/utils/commands.test.js.map +1 -1
  486. package/dist/src/utils/envVarResolver.js +10 -7
  487. package/dist/src/utils/envVarResolver.js.map +1 -1
  488. package/dist/src/utils/gitUtils.js +1 -2
  489. package/dist/src/utils/gitUtils.js.map +1 -1
  490. package/dist/src/utils/handleAutoUpdate.d.ts +1 -1
  491. package/dist/src/utils/handleAutoUpdate.js +15 -3
  492. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  493. package/dist/src/utils/handleAutoUpdate.test.js +45 -16
  494. package/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
  495. package/dist/src/utils/installationInfo.d.ts +1 -0
  496. package/dist/src/utils/installationInfo.js +16 -1
  497. package/dist/src/utils/installationInfo.js.map +1 -1
  498. package/dist/src/utils/installationInfo.test.js +16 -0
  499. package/dist/src/utils/installationInfo.test.js.map +1 -1
  500. package/dist/src/utils/jsonoutput.js +0 -2
  501. package/dist/src/utils/jsonoutput.js.map +1 -1
  502. package/dist/src/utils/processUtils.d.ts +28 -0
  503. package/dist/src/utils/processUtils.js +71 -0
  504. package/dist/src/utils/processUtils.js.map +1 -1
  505. package/dist/src/utils/processUtils.test.js +122 -1
  506. package/dist/src/utils/processUtils.test.js.map +1 -1
  507. package/dist/src/utils/readStdin.js +22 -4
  508. package/dist/src/utils/readStdin.js.map +1 -1
  509. package/dist/src/utils/readStdin.test.js +32 -0
  510. package/dist/src/utils/readStdin.test.js.map +1 -1
  511. package/dist/src/utils/relaunch.js +6 -13
  512. package/dist/src/utils/relaunch.js.map +1 -1
  513. package/dist/src/utils/relaunch.test.js +82 -86
  514. package/dist/src/utils/relaunch.test.js.map +1 -1
  515. package/dist/src/utils/sandbox.js +34 -24
  516. package/dist/src/utils/sandbox.js.map +1 -1
  517. package/dist/src/utils/sandbox.test.js +108 -9
  518. package/dist/src/utils/sandbox.test.js.map +1 -1
  519. package/dist/src/utils/sandboxUtils.js +12 -7
  520. package/dist/src/utils/sandboxUtils.js.map +1 -1
  521. package/dist/src/utils/sandboxUtils.test.js +68 -0
  522. package/dist/src/utils/sandboxUtils.test.js.map +1 -1
  523. package/dist/src/utils/sessionCleanup.js +49 -14
  524. package/dist/src/utils/sessionCleanup.js.map +1 -1
  525. package/dist/src/utils/sessionCleanup.test.js +63 -0
  526. package/dist/src/utils/sessionCleanup.test.js.map +1 -1
  527. package/dist/src/utils/sessionUtils.js +22 -7
  528. package/dist/src/utils/sessionUtils.js.map +1 -1
  529. package/dist/src/utils/sessionUtils.test.js +99 -0
  530. package/dist/src/utils/sessionUtils.test.js.map +1 -1
  531. package/dist/src/utils/sessions.js +2 -4
  532. package/dist/src/utils/sessions.js.map +1 -1
  533. package/dist/src/utils/sessions.test.js +9 -12
  534. package/dist/src/utils/sessions.test.js.map +1 -1
  535. package/dist/src/utils/userStartupWarnings.js +4 -3
  536. package/dist/src/utils/userStartupWarnings.js.map +1 -1
  537. package/dist/src/utils/userStartupWarnings.test.js +40 -3
  538. package/dist/src/utils/userStartupWarnings.test.js.map +1 -1
  539. package/dist/src/validateNonInterActiveAuth.js +1 -1
  540. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  541. package/dist/tsconfig.tsbuildinfo +1 -1
  542. package/package.json +5 -5
  543. package/dist/src/acp/acpClient.d.ts +0 -56
  544. package/dist/src/acp/acpClient.js.map +0 -1
  545. package/dist/src/acp/acpClient.test.js +0 -1814
  546. package/dist/src/acp/acpClient.test.js.map +0 -1
  547. package/dist/src/acp/commandHandler.js.map +0 -1
  548. package/dist/src/acp/commandHandler.test.js.map +0 -1
  549. package/dist/src/acp/fileSystemService.js.map +0 -1
  550. package/dist/src/acp/fileSystemService.test.js.map +0 -1
  551. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.d.ts +0 -12
  552. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.js.map +0 -1
  553. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js.map +0 -1
  554. package/dist/src/ui/components/SkillInboxDialog.js +0 -420
  555. package/dist/src/ui/components/SkillInboxDialog.js.map +0 -1
  556. package/dist/src/ui/components/SkillInboxDialog.test.js +0 -467
  557. package/dist/src/ui/components/SkillInboxDialog.test.js.map +0 -1
  558. /package/dist/src/acp/{commandHandler.test.d.ts → acpCommandHandler.test.d.ts} +0 -0
  559. /package/dist/src/{ui/components/SkillInboxDialog.test.d.ts → acp/acpFileSystemService.test.d.ts} +0 -0
  560. /package/dist/src/{acp/acpClient.test.d.ts → config/mutual-exclusivity.test.d.ts} +0 -0
  561. /package/dist/src/{acp/fileSystemService.test.d.ts → ui/commands/bugMemoryCommand.test.d.ts} +0 -0
  562. /package/dist/src/ui/{auth/LoginWithGoogleRestartDialog.test.d.ts → commands/exportSessionCommand.test.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acpSession.test.js","sourceRoot":"","sources":["../../../src/acp/acpSession.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { type Config } from '@google/gemini-cli-core';
7
+ import * as acp from '@agentclientprotocol/sdk';
8
+ import { type LoadedSettings } from '../config/settings.js';
9
+ import { Session } from './acpSession.js';
10
+ import { type CliArgs } from '../config/config.js';
11
+ export interface AuthDetails {
12
+ apiKey?: string;
13
+ baseUrl?: string;
14
+ customHeaders?: Record<string, string>;
15
+ }
16
+ export declare class AcpSessionManager {
17
+ private settings;
18
+ private argv;
19
+ private connection;
20
+ private sessions;
21
+ private clientCapabilities;
22
+ constructor(settings: LoadedSettings, argv: CliArgs, connection: acp.AgentSideConnection);
23
+ setClientCapabilities(capabilities: acp.ClientCapabilities): void;
24
+ getSession(sessionId: string): Session | undefined;
25
+ dispose(): void;
26
+ newSession({ cwd, mcpServers }: acp.NewSessionRequest, authDetails: AuthDetails): Promise<acp.NewSessionResponse>;
27
+ loadSession({ sessionId, cwd, mcpServers }: acp.LoadSessionRequest, authDetails: AuthDetails): Promise<acp.LoadSessionResponse>;
28
+ private initializeSessionConfig;
29
+ newSessionConfig(sessionId: string, cwd: string, mcpServers: acp.McpServer[], loadedSettings?: LoadedSettings): Promise<Config>;
30
+ }
@@ -0,0 +1,206 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { AuthType, MCPServerConfig, debugLogger, startupProfiler, convertSessionToClientHistory, createPolicyUpdater, } from '@google/gemini-cli-core';
7
+ import * as acp from '@agentclientprotocol/sdk';
8
+ import { randomUUID } from 'node:crypto';
9
+ import { loadSettings } from '../config/settings.js';
10
+ import { SessionSelector } from '../utils/sessionUtils.js';
11
+ import { Session } from './acpSession.js';
12
+ import { AcpFileSystemService } from './acpFileSystemService.js';
13
+ import { getAcpErrorMessage } from './acpErrors.js';
14
+ import { buildAvailableModels, buildAvailableModes } from './acpUtils.js';
15
+ import { loadCliConfig } from '../config/config.js';
16
+ import { startAutoMemoryIfEnabled } from '../utils/autoMemory.js';
17
+ export class AcpSessionManager {
18
+ settings;
19
+ argv;
20
+ connection;
21
+ sessions = new Map();
22
+ clientCapabilities;
23
+ constructor(settings, argv, connection) {
24
+ this.settings = settings;
25
+ this.argv = argv;
26
+ this.connection = connection;
27
+ }
28
+ setClientCapabilities(capabilities) {
29
+ this.clientCapabilities = capabilities;
30
+ }
31
+ getSession(sessionId) {
32
+ return this.sessions.get(sessionId);
33
+ }
34
+ dispose() {
35
+ for (const session of this.sessions.values()) {
36
+ session.dispose();
37
+ }
38
+ this.sessions.clear();
39
+ }
40
+ async newSession({ cwd, mcpServers }, authDetails) {
41
+ const sessionId = randomUUID();
42
+ const loadedSettings = loadSettings(cwd);
43
+ const config = await this.newSessionConfig(sessionId, cwd, mcpServers, loadedSettings);
44
+ const authType = loadedSettings.merged.security.auth.selectedType ||
45
+ (authDetails.baseUrl || process.env['GOOGLE_GEMINI_BASE_URL']
46
+ ? AuthType.GATEWAY
47
+ : AuthType.USE_GEMINI);
48
+ let isAuthenticated = false;
49
+ let authErrorMessage = '';
50
+ try {
51
+ await config.refreshAuth(authType, (message) => {
52
+ process.stderr.write(`${message}\n`);
53
+ }, authDetails.apiKey, authDetails.baseUrl, authDetails.customHeaders);
54
+ isAuthenticated = true;
55
+ // Extra validation for Gemini API key
56
+ const contentGeneratorConfig = config.getContentGeneratorConfig();
57
+ if (authType === AuthType.USE_GEMINI &&
58
+ (!contentGeneratorConfig || !contentGeneratorConfig.apiKey)) {
59
+ isAuthenticated = false;
60
+ authErrorMessage = 'Gemini API key is missing or not configured.';
61
+ }
62
+ }
63
+ catch (e) {
64
+ isAuthenticated = false;
65
+ authErrorMessage = getAcpErrorMessage(e);
66
+ debugLogger.error(`Authentication failed: ${e instanceof Error ? e.stack : e}`);
67
+ }
68
+ if (!isAuthenticated) {
69
+ throw new acp.RequestError(-32000, authErrorMessage || 'Authentication required.');
70
+ }
71
+ if (this.clientCapabilities?.fs) {
72
+ const acpFileSystemService = new AcpFileSystemService(this.connection, sessionId, this.clientCapabilities.fs, config.getFileSystemService(), cwd);
73
+ config.setFileSystemService(acpFileSystemService);
74
+ }
75
+ await config.initialize();
76
+ startupProfiler.flush(config);
77
+ startAutoMemoryIfEnabled(config);
78
+ const geminiClient = config.getGeminiClient();
79
+ const chat = await geminiClient.startChat();
80
+ const session = new Session(sessionId, chat, config, this.connection, this.settings);
81
+ this.sessions.set(sessionId, session);
82
+ setTimeout(() => {
83
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
84
+ session.sendAvailableCommands();
85
+ }, 0);
86
+ const { availableModels, currentModelId } = buildAvailableModels(config, loadedSettings);
87
+ const response = {
88
+ sessionId,
89
+ modes: {
90
+ availableModes: buildAvailableModes(config.isPlanEnabled()),
91
+ currentModeId: config.getApprovalMode(),
92
+ },
93
+ models: {
94
+ availableModels,
95
+ currentModelId,
96
+ },
97
+ };
98
+ return response;
99
+ }
100
+ async loadSession({ sessionId, cwd, mcpServers }, authDetails) {
101
+ const config = await this.initializeSessionConfig(sessionId, cwd, mcpServers, authDetails);
102
+ const sessionSelector = new SessionSelector(config.storage);
103
+ const { sessionData, sessionPath } = await sessionSelector.resolveSession(sessionId);
104
+ const clientHistory = convertSessionToClientHistory(sessionData.messages);
105
+ const geminiClient = config.getGeminiClient();
106
+ await geminiClient.initialize();
107
+ await geminiClient.resumeChat(clientHistory, {
108
+ conversation: sessionData,
109
+ filePath: sessionPath,
110
+ });
111
+ const session = new Session(sessionId, geminiClient.getChat(), config, this.connection, this.settings);
112
+ const existingSession = this.sessions.get(sessionId);
113
+ if (existingSession) {
114
+ existingSession.dispose();
115
+ }
116
+ this.sessions.set(sessionId, session);
117
+ // Stream history back to client
118
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
119
+ session.streamHistory(sessionData.messages);
120
+ setTimeout(() => {
121
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
122
+ session.sendAvailableCommands();
123
+ }, 0);
124
+ const { availableModels, currentModelId } = buildAvailableModels(config, this.settings);
125
+ const response = {
126
+ modes: {
127
+ availableModes: buildAvailableModes(config.isPlanEnabled()),
128
+ currentModeId: config.getApprovalMode(),
129
+ },
130
+ models: {
131
+ availableModels,
132
+ currentModelId,
133
+ },
134
+ };
135
+ return response;
136
+ }
137
+ async initializeSessionConfig(sessionId, cwd, mcpServers, authDetails) {
138
+ const selectedAuthType = this.settings.merged.security.auth.selectedType ||
139
+ (authDetails.baseUrl || process.env['GOOGLE_GEMINI_BASE_URL']
140
+ ? AuthType.GATEWAY
141
+ : undefined);
142
+ if (!selectedAuthType) {
143
+ throw acp.RequestError.authRequired();
144
+ }
145
+ // 1. Create config WITHOUT initializing it (no MCP servers started yet)
146
+ const config = await this.newSessionConfig(sessionId, cwd, mcpServers);
147
+ // 2. Authenticate BEFORE initializing configuration or starting MCP servers.
148
+ // This satisfies the security requirement to verify the user before executing
149
+ // potentially unsafe server definitions.
150
+ try {
151
+ await config.refreshAuth(selectedAuthType, (message) => {
152
+ process.stderr.write(`${message}\n`);
153
+ }, authDetails.apiKey, authDetails.baseUrl, authDetails.customHeaders);
154
+ }
155
+ catch (e) {
156
+ debugLogger.error(`Authentication failed: ${e}`);
157
+ throw acp.RequestError.authRequired();
158
+ }
159
+ // 3. Set the ACP FileSystemService (if supported) before config initialization
160
+ if (this.clientCapabilities?.fs) {
161
+ const acpFileSystemService = new AcpFileSystemService(this.connection, sessionId, this.clientCapabilities.fs, config.getFileSystemService(), cwd);
162
+ config.setFileSystemService(acpFileSystemService);
163
+ }
164
+ // 4. Now that we are authenticated, it is safe to initialize the config
165
+ // which starts the MCP servers and other heavy resources.
166
+ await config.initialize();
167
+ startupProfiler.flush(config);
168
+ startAutoMemoryIfEnabled(config);
169
+ return config;
170
+ }
171
+ async newSessionConfig(sessionId, cwd, mcpServers, loadedSettings) {
172
+ const currentSettings = loadedSettings || this.settings;
173
+ const mergedMcpServers = { ...currentSettings.merged.mcpServers };
174
+ for (const server of mcpServers) {
175
+ if ('type' in server &&
176
+ (server.type === 'sse' || server.type === 'http')) {
177
+ // HTTP or SSE MCP server
178
+ const headers = Object.fromEntries(server.headers.map(({ name, value }) => [name, value]));
179
+ mergedMcpServers[server.name] = new MCPServerConfig(undefined, // command
180
+ undefined, // args
181
+ undefined, // env
182
+ undefined, // cwd
183
+ undefined, // stdio
184
+ server.type === 'sse' ? server.url : undefined, // url (sse)
185
+ server.type === 'http' ? server.url : undefined, // httpUrl
186
+ headers);
187
+ }
188
+ else if ('command' in server) {
189
+ // Stdio MCP server
190
+ const env = {};
191
+ for (const { name: envName, value } of server.env) {
192
+ env[envName] = value;
193
+ }
194
+ mergedMcpServers[server.name] = new MCPServerConfig(server.command, server.args, env, cwd);
195
+ }
196
+ }
197
+ const settings = {
198
+ ...currentSettings.merged,
199
+ mcpServers: mergedMcpServers,
200
+ };
201
+ const config = await loadCliConfig(settings, sessionId, this.argv, { cwd });
202
+ createPolicyUpdater(config.getPolicyEngine(), config.messageBus, config.storage);
203
+ return config;
204
+ }
205
+ }
206
+ //# sourceMappingURL=acpSessionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acpSessionManager.js","sourceRoot":"","sources":["../../../src/acp/acpSessionManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,283 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect, vi, beforeEach, afterEach, } from 'vitest';
7
+ import { AcpSessionManager } from './acpSessionManager.js';
8
+ import { AuthType, GEMINI_MODEL_ALIAS_AUTO, } from '@google/gemini-cli-core';
9
+ import { loadCliConfig } from '../config/config.js';
10
+ import { loadSettings } from '../config/settings.js';
11
+ vi.mock('../config/config.js', () => ({
12
+ loadCliConfig: vi.fn(),
13
+ }));
14
+ vi.mock('../config/settings.js', async (importOriginal) => {
15
+ const actual = await importOriginal();
16
+ return {
17
+ ...actual,
18
+ loadSettings: vi.fn(),
19
+ };
20
+ });
21
+ const startAutoMemoryIfEnabledMock = vi.fn();
22
+ vi.mock('../utils/autoMemory.js', () => ({
23
+ startAutoMemoryIfEnabled: (config) => startAutoMemoryIfEnabledMock(config),
24
+ }));
25
+ describe('AcpSessionManager', () => {
26
+ let mockConfig;
27
+ let mockSettings;
28
+ let mockArgv;
29
+ let mockConnection;
30
+ let manager;
31
+ beforeEach(() => {
32
+ mockConfig = {
33
+ refreshAuth: vi.fn(),
34
+ initialize: vi.fn(),
35
+ waitForMcpInit: vi.fn(),
36
+ getFileSystemService: vi.fn(),
37
+ setFileSystemService: vi.fn(),
38
+ getContentGeneratorConfig: vi.fn(),
39
+ getActiveModel: vi.fn().mockReturnValue('gemini-pro'),
40
+ getModel: vi.fn().mockReturnValue('gemini-pro'),
41
+ getGeminiClient: vi.fn().mockReturnValue({
42
+ startChat: vi.fn().mockResolvedValue({}),
43
+ }),
44
+ getMessageBus: vi.fn().mockReturnValue({
45
+ publish: vi.fn(),
46
+ subscribe: vi.fn(),
47
+ unsubscribe: vi.fn(),
48
+ }),
49
+ getApprovalMode: vi.fn().mockReturnValue('default'),
50
+ isPlanEnabled: vi.fn().mockReturnValue(true),
51
+ getGemini31LaunchedSync: vi.fn().mockReturnValue(false),
52
+ getHasAccessToPreviewModel: vi.fn().mockReturnValue(false),
53
+ getCheckpointingEnabled: vi.fn().mockReturnValue(false),
54
+ getDisableAlwaysAllow: vi.fn().mockReturnValue(false),
55
+ validatePathAccess: vi.fn().mockReturnValue(null),
56
+ getWorkspaceContext: vi.fn().mockReturnValue({
57
+ addReadOnlyPath: vi.fn(),
58
+ getDirectories: vi.fn().mockReturnValue(['/tmp']),
59
+ }),
60
+ getPolicyEngine: vi.fn().mockReturnValue({
61
+ addRule: vi.fn(),
62
+ }),
63
+ messageBus: {
64
+ publish: vi.fn(),
65
+ subscribe: vi.fn(),
66
+ unsubscribe: vi.fn(),
67
+ },
68
+ storage: {
69
+ getWorkspaceAutoSavedPolicyPath: vi.fn(),
70
+ getAutoSavedPolicyPath: vi.fn(),
71
+ },
72
+ get config() {
73
+ return this;
74
+ },
75
+ };
76
+ mockSettings = {
77
+ merged: {
78
+ security: { auth: { selectedType: 'login_with_google' } },
79
+ mcpServers: {},
80
+ },
81
+ setValue: vi.fn(),
82
+ };
83
+ mockArgv = {};
84
+ mockConnection = {
85
+ sessionUpdate: vi.fn(),
86
+ requestPermission: vi.fn(),
87
+ };
88
+ loadCliConfig.mockResolvedValue(mockConfig);
89
+ loadSettings.mockImplementation(() => ({
90
+ merged: {
91
+ security: {
92
+ auth: { selectedType: AuthType.LOGIN_WITH_GOOGLE },
93
+ enablePermanentToolApproval: true,
94
+ },
95
+ mcpServers: {},
96
+ },
97
+ setValue: vi.fn(),
98
+ }));
99
+ manager = new AcpSessionManager(mockSettings, mockArgv, mockConnection);
100
+ vi.mock('node:crypto', () => ({
101
+ randomUUID: () => 'test-session-id',
102
+ }));
103
+ });
104
+ afterEach(() => {
105
+ vi.restoreAllMocks();
106
+ });
107
+ it('should create a new session', async () => {
108
+ vi.useFakeTimers();
109
+ mockConfig.getContentGeneratorConfig = vi.fn().mockReturnValue({
110
+ apiKey: 'test-key',
111
+ });
112
+ const response = await manager.newSession({
113
+ cwd: '/tmp',
114
+ mcpServers: [],
115
+ }, {});
116
+ expect(response.sessionId).toBe('test-session-id');
117
+ expect(loadCliConfig).toHaveBeenCalled();
118
+ expect(mockConfig.initialize).toHaveBeenCalled();
119
+ expect(mockConfig.getGeminiClient).toHaveBeenCalled();
120
+ // Verify deferred call (sendAvailableCommands)
121
+ await vi.runAllTimersAsync();
122
+ expect(mockConnection.sessionUpdate).toHaveBeenCalledWith(expect.objectContaining({
123
+ update: expect.objectContaining({
124
+ sessionUpdate: 'available_commands_update',
125
+ }),
126
+ }));
127
+ vi.useRealTimers();
128
+ });
129
+ it('should return modes without plan mode when plan is disabled', async () => {
130
+ mockConfig.getContentGeneratorConfig = vi.fn().mockReturnValue({
131
+ apiKey: 'test-key',
132
+ });
133
+ mockConfig.isPlanEnabled = vi.fn().mockReturnValue(false);
134
+ mockConfig.getApprovalMode = vi.fn().mockReturnValue('default');
135
+ const response = await manager.newSession({
136
+ cwd: '/tmp',
137
+ mcpServers: [],
138
+ }, {});
139
+ expect(response.modes).toEqual({
140
+ availableModes: [
141
+ { id: 'default', name: 'Default', description: 'Prompts for approval' },
142
+ {
143
+ id: 'autoEdit',
144
+ name: 'Auto Edit',
145
+ description: 'Auto-approves edit tools',
146
+ },
147
+ { id: 'yolo', name: 'YOLO', description: 'Auto-approves all tools' },
148
+ ],
149
+ currentModeId: 'default',
150
+ });
151
+ });
152
+ it('should include preview models when user has access', async () => {
153
+ mockConfig.getContentGeneratorConfig = vi.fn().mockReturnValue({
154
+ apiKey: 'test-key',
155
+ });
156
+ mockConfig.getHasAccessToPreviewModel = vi.fn().mockReturnValue(true);
157
+ mockConfig.getGemini31LaunchedSync = vi.fn().mockReturnValue(true);
158
+ const response = await manager.newSession({
159
+ cwd: '/tmp',
160
+ mcpServers: [],
161
+ }, {});
162
+ expect(response.models?.availableModels).toEqual(expect.arrayContaining([
163
+ expect.objectContaining({
164
+ modelId: GEMINI_MODEL_ALIAS_AUTO,
165
+ name: expect.stringContaining('Auto'),
166
+ }),
167
+ ]));
168
+ });
169
+ it('should NOT include retired preview models (none) in available models', async () => {
170
+ mockConfig.getContentGeneratorConfig = vi.fn().mockReturnValue({
171
+ apiKey: 'test-key',
172
+ });
173
+ mockConfig.getHasAccessToPreviewModel = vi.fn().mockReturnValue(true);
174
+ mockConfig.getGemini31LaunchedSync = vi.fn().mockReturnValue(true);
175
+ const response = await manager.newSession({
176
+ cwd: '/tmp',
177
+ mcpServers: [],
178
+ }, {});
179
+ const modelIds = response.models?.availableModels?.map((m) => m.modelId) ?? [];
180
+ expect(modelIds).not.toContain('none');
181
+ });
182
+ it('should return modes with plan mode when plan is enabled', async () => {
183
+ mockConfig.getContentGeneratorConfig = vi.fn().mockReturnValue({
184
+ apiKey: 'test-key',
185
+ });
186
+ mockConfig.isPlanEnabled = vi.fn().mockReturnValue(true);
187
+ mockConfig.getApprovalMode = vi.fn().mockReturnValue('plan');
188
+ const response = await manager.newSession({
189
+ cwd: '/tmp',
190
+ mcpServers: [],
191
+ }, {});
192
+ expect(response.modes).toEqual({
193
+ availableModes: [
194
+ { id: 'default', name: 'Default', description: 'Prompts for approval' },
195
+ {
196
+ id: 'autoEdit',
197
+ name: 'Auto Edit',
198
+ description: 'Auto-approves edit tools',
199
+ },
200
+ { id: 'yolo', name: 'YOLO', description: 'Auto-approves all tools' },
201
+ { id: 'plan', name: 'Plan', description: 'Read-only mode' },
202
+ ],
203
+ currentModeId: 'plan',
204
+ });
205
+ });
206
+ it('should fail session creation if Gemini API key is missing', async () => {
207
+ loadSettings.mockImplementation(() => ({
208
+ merged: {
209
+ security: { auth: { selectedType: AuthType.USE_GEMINI } },
210
+ mcpServers: {},
211
+ },
212
+ setValue: vi.fn(),
213
+ }));
214
+ mockConfig.getContentGeneratorConfig = vi.fn().mockReturnValue({
215
+ apiKey: undefined,
216
+ });
217
+ await expect(manager.newSession({
218
+ cwd: '/tmp',
219
+ mcpServers: [],
220
+ }, {})).rejects.toMatchObject({
221
+ message: 'Gemini API key is missing or not configured.',
222
+ });
223
+ });
224
+ it('should create a new session with mcp servers', async () => {
225
+ mockConfig.getContentGeneratorConfig = vi.fn().mockReturnValue({
226
+ apiKey: 'test-key',
227
+ });
228
+ const mcpServers = [
229
+ {
230
+ name: 'test-server',
231
+ command: 'node',
232
+ args: ['server.js'],
233
+ env: [{ name: 'KEY', value: 'VALUE' }],
234
+ },
235
+ ];
236
+ await manager.newSession({
237
+ cwd: '/tmp',
238
+ mcpServers,
239
+ }, {});
240
+ expect(loadCliConfig).toHaveBeenCalledWith(expect.objectContaining({
241
+ mcpServers: expect.objectContaining({
242
+ 'test-server': expect.objectContaining({
243
+ command: 'node',
244
+ args: ['server.js'],
245
+ env: { KEY: 'VALUE' },
246
+ }),
247
+ }),
248
+ }), 'test-session-id', mockArgv, { cwd: '/tmp' });
249
+ });
250
+ it('should handle authentication failure gracefully', async () => {
251
+ mockConfig.refreshAuth.mockRejectedValue(new Error('Auth failed'));
252
+ await expect(manager.newSession({
253
+ cwd: '/tmp',
254
+ mcpServers: [],
255
+ }, {})).rejects.toMatchObject({
256
+ message: 'Auth failed',
257
+ });
258
+ });
259
+ it('should initialize file system service if client supports it', async () => {
260
+ mockConfig.getContentGeneratorConfig = vi.fn().mockReturnValue({
261
+ apiKey: 'test-key',
262
+ });
263
+ manager.setClientCapabilities({
264
+ fs: { readTextFile: true, writeTextFile: true },
265
+ });
266
+ await manager.newSession({
267
+ cwd: '/tmp',
268
+ mcpServers: [],
269
+ }, {});
270
+ expect(mockConfig.setFileSystemService).toHaveBeenCalled();
271
+ });
272
+ it('should start auto memory for new ACP sessions', async () => {
273
+ mockConfig.getContentGeneratorConfig = vi.fn().mockReturnValue({
274
+ apiKey: 'test-key',
275
+ });
276
+ await manager.newSession({
277
+ cwd: '/tmp',
278
+ mcpServers: [],
279
+ }, {});
280
+ expect(startAutoMemoryIfEnabledMock).toHaveBeenCalledWith(mockConfig);
281
+ });
282
+ });
283
+ //# sourceMappingURL=acpSessionManager.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acpSessionManager.test.js","sourceRoot":"","sources":["../../../src/acp/acpSessionManager.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { type Config } from '@google/gemini-cli-core';
7
+ import type { LoadedSettings } from '../config/settings.js';
8
+ import type { CliArgs } from '../config/config.js';
9
+ export declare function runAcpClient(config: Config, settings: LoadedSettings, argv: CliArgs): Promise<void>;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { createWorkingStdio } from '@google/gemini-cli-core';
7
+ import { runExitCleanup } from '../utils/cleanup.js';
8
+ import * as acp from '@agentclientprotocol/sdk';
9
+ import { Readable, Writable } from 'node:stream';
10
+ import { GeminiAgent } from './acpRpcDispatcher.js';
11
+ export async function runAcpClient(config, settings, argv) {
12
+ const { stdout: workingStdout } = createWorkingStdio();
13
+ const stdout = Writable.toWeb(workingStdout);
14
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
15
+ const stdin = Readable.toWeb(process.stdin);
16
+ const stream = acp.ndJsonStream(stdout, stdin);
17
+ const connection = new acp.AgentSideConnection((connection) => new GeminiAgent(config, settings, argv, connection), stream);
18
+ // SIGTERM/SIGINT handlers (in sdk.ts) don't fire when stdin closes.
19
+ // We must explicitly await the connection close to flush telemetry.
20
+ // Use finally() to ensure cleanup runs even on stream errors.
21
+ await connection.closed.finally(runExitCleanup);
22
+ }
23
+ //# sourceMappingURL=acpStdioTransport.js.map