@machina.ai/cell-cli 1.38.1-rc1 → 1.40.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 (350) hide show
  1. package/dist/index.js +124 -29
  2. package/dist/index.js.map +1 -1
  3. package/dist/package.json +93 -68
  4. package/dist/src/acp/acpClient.js +8 -3
  5. package/dist/src/acp/acpClient.js.map +1 -1
  6. package/dist/src/acp/acpClient.test.js +27 -0
  7. package/dist/src/acp/acpClient.test.js.map +1 -1
  8. package/dist/src/acp/acpResume.test.js +1 -0
  9. package/dist/src/acp/acpResume.test.js.map +1 -1
  10. package/dist/src/acp/commands/memory.d.ts +6 -1
  11. package/dist/src/acp/commands/memory.js +40 -1
  12. package/dist/src/acp/commands/memory.js.map +1 -1
  13. package/dist/src/commands/extensions/examples/custom-commands/gemini-extension.json +2 -2
  14. package/dist/src/commands/extensions/examples/exclude-tools/gemini-extension.json +3 -3
  15. package/dist/src/commands/extensions/examples/hooks/gemini-extension.json +2 -2
  16. package/dist/src/commands/extensions/examples/hooks/hooks/hooks.json +11 -11
  17. package/dist/src/commands/extensions/examples/mcp-server/gemini-extension.json +8 -8
  18. package/dist/src/commands/extensions/examples/mcp-server/package.json +9 -9
  19. package/dist/src/commands/extensions/examples/policies/gemini-extension.json +3 -3
  20. package/dist/src/commands/extensions/examples/skills/gemini-extension.json +2 -2
  21. package/dist/src/commands/extensions/examples/themes-example/gemini-extension.json +27 -27
  22. package/dist/src/commands/gemma/constants.d.ts +17 -0
  23. package/dist/src/commands/gemma/constants.js +35 -0
  24. package/dist/src/commands/gemma/constants.js.map +1 -0
  25. package/dist/src/commands/gemma/logs.d.ts +13 -0
  26. package/dist/src/commands/gemma/logs.js +154 -0
  27. package/dist/src/commands/gemma/logs.js.map +1 -0
  28. package/dist/src/commands/gemma/logs.test.d.ts +6 -0
  29. package/dist/src/commands/gemma/logs.test.js +122 -0
  30. package/dist/src/commands/gemma/logs.test.js.map +1 -0
  31. package/dist/src/commands/gemma/platform.d.ts +38 -0
  32. package/dist/src/commands/gemma/platform.js +220 -0
  33. package/dist/src/commands/gemma/platform.js.map +1 -0
  34. package/dist/src/commands/gemma/platform.test.d.ts +6 -0
  35. package/dist/src/commands/gemma/platform.test.js +108 -0
  36. package/dist/src/commands/gemma/platform.test.js.map +1 -0
  37. package/dist/src/commands/gemma/setup.d.ts +9 -0
  38. package/dist/src/commands/gemma/setup.js +392 -0
  39. package/dist/src/commands/gemma/setup.js.map +1 -0
  40. package/dist/src/commands/gemma/setup.test.d.ts +6 -0
  41. package/dist/src/commands/gemma/setup.test.js +36 -0
  42. package/dist/src/commands/gemma/setup.test.js.map +1 -0
  43. package/dist/src/commands/gemma/start.d.ts +8 -0
  44. package/dist/src/commands/gemma/start.js +87 -0
  45. package/dist/src/commands/gemma/start.js.map +1 -0
  46. package/dist/src/commands/gemma/status.d.ts +19 -0
  47. package/dist/src/commands/gemma/status.js +110 -0
  48. package/dist/src/commands/gemma/status.js.map +1 -0
  49. package/dist/src/commands/gemma/stop.d.ts +9 -0
  50. package/dist/src/commands/gemma/stop.js +110 -0
  51. package/dist/src/commands/gemma/stop.js.map +1 -0
  52. package/dist/src/commands/gemma/stop.test.d.ts +6 -0
  53. package/dist/src/commands/gemma/stop.test.js +89 -0
  54. package/dist/src/commands/gemma/stop.test.js.map +1 -0
  55. package/dist/src/commands/gemma.d.ts +7 -0
  56. package/dist/src/commands/gemma.js +30 -0
  57. package/dist/src/commands/gemma.js.map +1 -0
  58. package/dist/src/config/config.d.ts +1 -0
  59. package/dist/src/config/config.js +37 -15
  60. package/dist/src/config/config.js.map +1 -1
  61. package/dist/src/config/config.test.js +12 -0
  62. package/dist/src/config/config.test.js.map +1 -1
  63. package/dist/src/config/extension.test.js +3 -2
  64. package/dist/src/config/extension.test.js.map +1 -1
  65. package/dist/src/config/extensions/github_fetch.js +2 -1
  66. package/dist/src/config/extensions/github_fetch.js.map +1 -1
  67. package/dist/src/config/extensions/github_fetch.test.js +2 -0
  68. package/dist/src/config/extensions/github_fetch.test.js.map +1 -1
  69. package/dist/src/config/footerItems.d.ts +2 -2
  70. package/dist/src/config/footerItems.js +2 -2
  71. package/dist/src/config/footerItems.js.map +1 -1
  72. package/dist/src/config/footerItems.test.js +38 -0
  73. package/dist/src/config/footerItems.test.js.map +1 -1
  74. package/dist/src/config/policy-engine.integration.test.js +14 -5
  75. package/dist/src/config/policy-engine.integration.test.js.map +1 -1
  76. package/dist/src/config/settings.js +20 -11
  77. package/dist/src/config/settings.js.map +1 -1
  78. package/dist/src/config/settings.test.js +10 -4
  79. package/dist/src/config/settings.test.js.map +1 -1
  80. package/dist/src/config/settingsSchema.d.ts +142 -11
  81. package/dist/src/config/settingsSchema.js +135 -10
  82. package/dist/src/config/settingsSchema.js.map +1 -1
  83. package/dist/src/config/settingsSchema.test.js +28 -1
  84. package/dist/src/config/settingsSchema.test.js.map +1 -1
  85. package/dist/src/config/trustedFolders.d.ts +11 -54
  86. package/dist/src/config/trustedFolders.js +13 -267
  87. package/dist/src/config/trustedFolders.js.map +1 -1
  88. package/dist/src/config/trustedFolders.test.js +35 -31
  89. package/dist/src/config/trustedFolders.test.js.map +1 -1
  90. package/dist/src/gemini.d.ts +4 -0
  91. package/dist/src/gemini.js +61 -37
  92. package/dist/src/gemini.js.map +1 -1
  93. package/dist/src/gemini.test.js +15 -0
  94. package/dist/src/gemini.test.js.map +1 -1
  95. package/dist/src/gemini_cleanup.test.js +6 -0
  96. package/dist/src/gemini_cleanup.test.js.map +1 -1
  97. package/dist/src/generated/git-commit.d.ts +2 -2
  98. package/dist/src/generated/git-commit.js +2 -2
  99. package/dist/src/interactiveCli.js +48 -9
  100. package/dist/src/interactiveCli.js.map +1 -1
  101. package/dist/src/nonInteractiveCli.js +1 -1
  102. package/dist/src/nonInteractiveCli.js.map +1 -1
  103. package/dist/src/nonInteractiveCliAgentSession.js +6 -4
  104. package/dist/src/nonInteractiveCliAgentSession.js.map +1 -1
  105. package/dist/src/services/BuiltinCommandLoader.js +4 -0
  106. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  107. package/dist/src/services/SkillCommandLoader.js +3 -1
  108. package/dist/src/services/SkillCommandLoader.js.map +1 -1
  109. package/dist/src/services/SkillCommandLoader.test.js +1 -1
  110. package/dist/src/services/SkillCommandLoader.test.js.map +1 -1
  111. package/dist/src/services/liteRtServerManager.d.ts +9 -0
  112. package/dist/src/services/liteRtServerManager.js +43 -0
  113. package/dist/src/services/liteRtServerManager.js.map +1 -0
  114. package/dist/src/services/liteRtServerManager.test.d.ts +6 -0
  115. package/dist/src/services/liteRtServerManager.test.js +54 -0
  116. package/dist/src/services/liteRtServerManager.test.js.map +1 -0
  117. package/dist/src/test-utils/mockConfig.js +4 -1
  118. package/dist/src/test-utils/mockConfig.js.map +1 -1
  119. package/dist/src/test-utils/render.d.ts +3 -1
  120. package/dist/src/test-utils/render.js +13 -3
  121. package/dist/src/test-utils/render.js.map +1 -1
  122. package/dist/src/ui/AppContainer.js +55 -33
  123. package/dist/src/ui/AppContainer.js.map +1 -1
  124. package/dist/src/ui/AppContainer.test.js +9 -4
  125. package/dist/src/ui/AppContainer.test.js.map +1 -1
  126. package/dist/src/ui/ToolConfirmationFullFrame.test.js +7 -9
  127. package/dist/src/ui/ToolConfirmationFullFrame.test.js.map +1 -1
  128. package/dist/src/ui/auth/ApiAuthDialog.js +1 -1
  129. package/dist/src/ui/auth/ApiAuthDialog.js.map +1 -1
  130. package/dist/src/ui/auth/ApiAuthDialog.test.js +15 -11
  131. package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -1
  132. package/dist/src/ui/commands/bugCommand.js +2 -2
  133. package/dist/src/ui/commands/bugCommand.js.map +1 -1
  134. package/dist/src/ui/commands/bugCommand.test.js +3 -0
  135. package/dist/src/ui/commands/bugCommand.test.js.map +1 -1
  136. package/dist/src/ui/commands/clearCommand.js +3 -2
  137. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  138. package/dist/src/ui/commands/clearCommand.test.js +2 -1
  139. package/dist/src/ui/commands/clearCommand.test.js.map +1 -1
  140. package/dist/src/ui/commands/gemmaStatusCommand.d.ts +7 -0
  141. package/dist/src/ui/commands/gemmaStatusCommand.js +34 -0
  142. package/dist/src/ui/commands/gemmaStatusCommand.js.map +1 -0
  143. package/dist/src/ui/commands/marketplaceCommand.d.ts +7 -0
  144. package/dist/src/ui/commands/marketplaceCommand.js +135 -0
  145. package/dist/src/ui/commands/marketplaceCommand.js.map +1 -0
  146. package/dist/src/ui/commands/memoryCommand.js +36 -0
  147. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  148. package/dist/src/ui/commands/memoryCommand.test.js +60 -0
  149. package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
  150. package/dist/src/ui/commands/settingsCommand.js +0 -1
  151. package/dist/src/ui/commands/settingsCommand.js.map +1 -1
  152. package/dist/src/ui/components/AppHeader.js +2 -19
  153. package/dist/src/ui/components/AppHeader.js.map +1 -1
  154. package/dist/src/ui/components/AppHeader.test.js +1 -1
  155. package/dist/src/ui/components/AppHeader.test.js.map +1 -1
  156. package/dist/src/ui/components/AsciiArt.d.ts +6 -6
  157. package/dist/src/ui/components/AsciiArt.js +6 -6
  158. package/dist/src/ui/components/AskUserDialog.js +19 -3
  159. package/dist/src/ui/components/AskUserDialog.js.map +1 -1
  160. package/dist/src/ui/components/CodiMascot.d.ts +6 -0
  161. package/dist/src/ui/components/CodiMascot.js +41 -0
  162. package/dist/src/ui/components/CodiMascot.js.map +1 -0
  163. package/dist/src/ui/components/Composer.test.js +12 -8
  164. package/dist/src/ui/components/Composer.test.js.map +1 -1
  165. package/dist/src/ui/components/DialogManager.js +10 -8
  166. package/dist/src/ui/components/DialogManager.js.map +1 -1
  167. package/dist/src/ui/components/DialogManager.test.js +11 -23
  168. package/dist/src/ui/components/DialogManager.test.js.map +1 -1
  169. package/dist/src/ui/components/ExitPlanModeDialog.js +1 -1
  170. package/dist/src/ui/components/ExitPlanModeDialog.js.map +1 -1
  171. package/dist/src/ui/components/ExitPlanModeDialog.test.js +4 -0
  172. package/dist/src/ui/components/ExitPlanModeDialog.test.js.map +1 -1
  173. package/dist/src/ui/components/Footer.js +5 -3
  174. package/dist/src/ui/components/Footer.js.map +1 -1
  175. package/dist/src/ui/components/Footer.test.js +21 -35
  176. package/dist/src/ui/components/Footer.test.js.map +1 -1
  177. package/dist/src/ui/components/FooterConfigDialog.js +8 -10
  178. package/dist/src/ui/components/FooterConfigDialog.js.map +1 -1
  179. package/dist/src/ui/components/FooterConfigDialog.test.js +1 -1
  180. package/dist/src/ui/components/FooterConfigDialog.test.js.map +1 -1
  181. package/dist/src/ui/components/HistoryItemDisplay.d.ts +0 -1
  182. package/dist/src/ui/components/HistoryItemDisplay.js +3 -10
  183. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  184. package/dist/src/ui/components/HistoryItemDisplay.test.js +4 -4
  185. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  186. package/dist/src/ui/components/InputPrompt.js +6 -19
  187. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  188. package/dist/src/ui/components/InputPrompt.test.js +2 -119
  189. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  190. package/dist/src/ui/components/MainContent.js +4 -34
  191. package/dist/src/ui/components/MainContent.js.map +1 -1
  192. package/dist/src/ui/components/ModelDialog.test.js +1 -0
  193. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  194. package/dist/src/ui/components/SkillInboxDialog.d.ts +14 -0
  195. package/dist/src/ui/components/SkillInboxDialog.js +420 -0
  196. package/dist/src/ui/components/SkillInboxDialog.js.map +1 -0
  197. package/dist/src/ui/components/SkillInboxDialog.test.d.ts +6 -0
  198. package/dist/src/ui/components/SkillInboxDialog.test.js +467 -0
  199. package/dist/src/ui/components/SkillInboxDialog.test.js.map +1 -0
  200. package/dist/src/ui/components/ThemeDialog.js +4 -4
  201. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  202. package/dist/src/ui/components/ThemeDialog.test.js +1 -1
  203. package/dist/src/ui/components/ToolConfirmationQueue.js +1 -1
  204. package/dist/src/ui/components/ToolConfirmationQueue.js.map +1 -1
  205. package/dist/src/ui/components/ToolConfirmationQueue.test.js +32 -0
  206. package/dist/src/ui/components/ToolConfirmationQueue.test.js.map +1 -1
  207. package/dist/src/ui/components/messages/DenseToolMessage.js +4 -17
  208. package/dist/src/ui/components/messages/DenseToolMessage.js.map +1 -1
  209. package/dist/src/ui/components/messages/DenseToolMessage.test.js +29 -6
  210. package/dist/src/ui/components/messages/DenseToolMessage.test.js.map +1 -1
  211. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +0 -1
  212. package/dist/src/ui/components/messages/ToolGroupMessage.js +12 -51
  213. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  214. package/dist/src/ui/components/shared/BaseSelectionList.js +44 -27
  215. package/dist/src/ui/components/shared/BaseSelectionList.js.map +1 -1
  216. package/dist/src/ui/components/shared/BaseSelectionList.test.js +57 -1
  217. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  218. package/dist/src/ui/components/shared/HalfLinePaddedBox.js +7 -12
  219. package/dist/src/ui/components/shared/HalfLinePaddedBox.js.map +1 -1
  220. package/dist/src/ui/components/shared/HalfLinePaddedBox.test.d.ts +0 -5
  221. package/dist/src/ui/components/shared/HalfLinePaddedBox.test.js +13 -5
  222. package/dist/src/ui/components/shared/HalfLinePaddedBox.test.js.map +1 -1
  223. package/dist/src/ui/components/shared/TextInput.js +11 -3
  224. package/dist/src/ui/components/shared/TextInput.js.map +1 -1
  225. package/dist/src/ui/components/shared/TextInput.test.js +17 -0
  226. package/dist/src/ui/components/shared/TextInput.test.js.map +1 -1
  227. package/dist/src/ui/components/views/GemmaStatus.d.ts +10 -0
  228. package/dist/src/ui/components/views/GemmaStatus.js +11 -0
  229. package/dist/src/ui/components/views/GemmaStatus.js.map +1 -0
  230. package/dist/src/ui/contexts/QuotaContext.d.ts +18 -0
  231. package/dist/src/ui/contexts/QuotaContext.js +15 -0
  232. package/dist/src/ui/contexts/QuotaContext.js.map +1 -0
  233. package/dist/src/ui/contexts/ScrollProvider.js +59 -18
  234. package/dist/src/ui/contexts/ScrollProvider.js.map +1 -1
  235. package/dist/src/ui/contexts/SessionContext.d.ts +1 -0
  236. package/dist/src/ui/contexts/SessionContext.js +2 -2
  237. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  238. package/dist/src/ui/contexts/SessionContext.test.js +4 -4
  239. package/dist/src/ui/contexts/SessionContext.test.js.map +1 -1
  240. package/dist/src/ui/contexts/UIStateContext.d.ts +2 -11
  241. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  242. package/dist/src/ui/hooks/atCommandProcessor.js +1 -1
  243. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  244. package/dist/src/ui/hooks/slashCommandProcessor.js +8 -5
  245. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  246. package/dist/src/ui/hooks/slashCommandProcessor.test.js +40 -0
  247. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  248. package/dist/src/ui/hooks/useAgentStream.d.ts +44 -0
  249. package/dist/src/ui/hooks/useAgentStream.js +377 -0
  250. package/dist/src/ui/hooks/useAgentStream.js.map +1 -0
  251. package/dist/src/ui/hooks/useAgentStream.test.d.ts +6 -0
  252. package/dist/src/ui/hooks/useAgentStream.test.js +161 -0
  253. package/dist/src/ui/hooks/useAgentStream.test.js.map +1 -0
  254. package/dist/src/ui/hooks/useAtCompletion.js +24 -5
  255. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  256. package/dist/src/ui/hooks/useAtCompletion.test.js +25 -0
  257. package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
  258. package/dist/src/ui/hooks/useComposerStatus.js +4 -2
  259. package/dist/src/ui/hooks/useComposerStatus.js.map +1 -1
  260. package/dist/src/ui/hooks/useExecutionLifecycle.js +27 -16
  261. package/dist/src/ui/hooks/useExecutionLifecycle.js.map +1 -1
  262. package/dist/src/ui/hooks/useExecutionLifecycle.test.js +38 -9
  263. package/dist/src/ui/hooks/useExecutionLifecycle.test.js.map +1 -1
  264. package/dist/src/ui/hooks/useGeminiStream.js +10 -33
  265. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  266. package/dist/src/ui/hooks/useLogger.d.ts +2 -2
  267. package/dist/src/ui/hooks/useLogger.js +6 -11
  268. package/dist/src/ui/hooks/useLogger.js.map +1 -1
  269. package/dist/src/ui/hooks/useLogger.test.js +4 -17
  270. package/dist/src/ui/hooks/useLogger.test.js.map +1 -1
  271. package/dist/src/ui/hooks/useRunEventNotifications.d.ts +3 -1
  272. package/dist/src/ui/hooks/useRunEventNotifications.js +5 -3
  273. package/dist/src/ui/hooks/useRunEventNotifications.js.map +1 -1
  274. package/dist/src/ui/hooks/useSessionBrowser.js +5 -4
  275. package/dist/src/ui/hooks/useSessionBrowser.js.map +1 -1
  276. package/dist/src/ui/hooks/useSessionBrowser.test.js +6 -7
  277. package/dist/src/ui/hooks/useSessionBrowser.test.js.map +1 -1
  278. package/dist/src/ui/hooks/useShellInactivityStatus.d.ts +2 -2
  279. package/dist/src/ui/hooks/useShellInactivityStatus.js +1 -2
  280. package/dist/src/ui/hooks/useShellInactivityStatus.js.map +1 -1
  281. package/dist/src/ui/hooks/useToolScheduler.d.ts +3 -2
  282. package/dist/src/ui/hooks/useToolScheduler.js +4 -3
  283. package/dist/src/ui/hooks/useToolScheduler.js.map +1 -1
  284. package/dist/src/ui/hooks/useTurnActivityMonitor.d.ts +6 -2
  285. package/dist/src/ui/hooks/useTurnActivityMonitor.js +1 -2
  286. package/dist/src/ui/hooks/useTurnActivityMonitor.js.map +1 -1
  287. package/dist/src/ui/key/keyBindings.js +5 -2
  288. package/dist/src/ui/key/keyBindings.js.map +1 -1
  289. package/dist/src/ui/themes/builtin/dark/github-dark-colorblind.d.ts +7 -0
  290. package/dist/src/ui/themes/builtin/dark/github-dark-colorblind.js +140 -0
  291. package/dist/src/ui/themes/builtin/dark/github-dark-colorblind.js.map +1 -0
  292. package/dist/src/ui/themes/builtin/light/github-light-colorblind.d.ts +7 -0
  293. package/dist/src/ui/themes/builtin/light/github-light-colorblind.js +140 -0
  294. package/dist/src/ui/themes/builtin/light/github-light-colorblind.js.map +1 -0
  295. package/dist/src/ui/themes/theme-manager.js +4 -0
  296. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  297. package/dist/src/ui/types.d.ts +16 -2
  298. package/dist/src/ui/types.js +1 -0
  299. package/dist/src/ui/types.js.map +1 -1
  300. package/dist/src/ui/utils/borderStyles.d.ts +2 -2
  301. package/dist/src/ui/utils/borderStyles.js.map +1 -1
  302. package/dist/src/ui/utils/confirmingTool.js +5 -4
  303. package/dist/src/ui/utils/confirmingTool.js.map +1 -1
  304. package/dist/src/ui/utils/historyUtils.d.ts +5 -0
  305. package/dist/src/ui/utils/historyUtils.js +15 -0
  306. package/dist/src/ui/utils/historyUtils.js.map +1 -1
  307. package/dist/src/ui/utils/terminalCapabilityManager.d.ts +7 -2
  308. package/dist/src/ui/utils/terminalCapabilityManager.js +23 -16
  309. package/dist/src/ui/utils/terminalCapabilityManager.js.map +1 -1
  310. package/dist/src/ui/utils/terminalCapabilityManager.test.js +86 -65
  311. package/dist/src/ui/utils/terminalCapabilityManager.test.js.map +1 -1
  312. package/dist/src/ui/utils/textUtils.d.ts +10 -2
  313. package/dist/src/ui/utils/textUtils.js +18 -9
  314. package/dist/src/ui/utils/textUtils.js.map +1 -1
  315. package/dist/src/ui/utils/textUtils.test.js +14 -0
  316. package/dist/src/ui/utils/textUtils.test.js.map +1 -1
  317. package/dist/src/utils/autoMemory.d.ts +7 -0
  318. package/dist/src/utils/autoMemory.js +15 -0
  319. package/dist/src/utils/autoMemory.js.map +1 -0
  320. package/dist/src/utils/cleanup.d.ts +2 -0
  321. package/dist/src/utils/cleanup.js +12 -0
  322. package/dist/src/utils/cleanup.js.map +1 -1
  323. package/dist/src/utils/devtoolsService.d.ts +2 -2
  324. package/dist/src/utils/devtoolsService.js +3 -17
  325. package/dist/src/utils/devtoolsService.js.map +1 -1
  326. package/dist/src/utils/devtoolsService.test.js +8 -37
  327. package/dist/src/utils/devtoolsService.test.js.map +1 -1
  328. package/dist/src/utils/handleAutoUpdate.test.js +2 -2
  329. package/dist/src/utils/sandbox.js +10 -2
  330. package/dist/src/utils/sandbox.js.map +1 -1
  331. package/dist/src/utils/sandbox.test.js +54 -1
  332. package/dist/src/utils/sandbox.test.js.map +1 -1
  333. package/dist/src/utils/sessionUtils.d.ts +3 -3
  334. package/dist/src/utils/sessionUtils.js +26 -19
  335. package/dist/src/utils/sessionUtils.js.map +1 -1
  336. package/dist/src/utils/sessionUtils.test.js +16 -22
  337. package/dist/src/utils/sessionUtils.test.js.map +1 -1
  338. package/dist/src/utils/sessions.js +2 -2
  339. package/dist/src/utils/sessions.js.map +1 -1
  340. package/dist/src/utils/terminalNotifications.d.ts +8 -1
  341. package/dist/src/utils/terminalNotifications.js +73 -17
  342. package/dist/src/utils/terminalNotifications.js.map +1 -1
  343. package/dist/src/utils/terminalNotifications.test.js +125 -31
  344. package/dist/src/utils/terminalNotifications.test.js.map +1 -1
  345. package/dist/src/utils/userStartupWarnings.js +21 -1
  346. package/dist/src/utils/userStartupWarnings.js.map +1 -1
  347. package/dist/src/utils/userStartupWarnings.test.js +34 -0
  348. package/dist/src/utils/userStartupWarnings.test.js.map +1 -1
  349. package/dist/tsconfig.tsbuildinfo +1 -1
  350. package/package.json +4 -4
package/dist/index.js CHANGED
@@ -4,9 +4,9 @@
4
4
  * Copyright 2025 Google LLC
5
5
  * SPDX-License-Identifier: Apache-2.0
6
6
  */
7
- import { main } from './src/gemini.js';
8
- import { FatalError, writeToStderr } from '@google/gemini-cli-core';
9
- import { runExitCleanup } from './src/utils/cleanup.js';
7
+ import { spawn } from 'node:child_process';
8
+ import os from 'node:os';
9
+ import v8 from 'node:v8';
10
10
  // --- Global Entry Point ---
11
11
  // Suppress known race condition error in node-pty on Windows
12
12
  // Tracking bug: https://github.com/microsoft/node-pty/issues/827
@@ -21,43 +21,138 @@ process.on('uncaughtException', (error) => {
21
21
  // For other errors, we rely on the default behavior, but since we attached a listener,
22
22
  // we must manually replicate it.
23
23
  if (error instanceof Error) {
24
- writeToStderr(error.stack + '\n');
24
+ process.stderr.write(error.stack + '\n');
25
25
  }
26
26
  else {
27
- writeToStderr(String(error) + '\n');
27
+ process.stderr.write(String(error) + '\n');
28
28
  }
29
29
  process.exit(1);
30
30
  });
31
- main().catch(async (error) => {
32
- // Set a timeout to force exit if cleanup hangs
33
- const cleanupTimeout = setTimeout(() => {
34
- writeToStderr('Cleanup timed out, forcing exit...\n');
35
- process.exit(1);
36
- }, 5000);
31
+ async function getMemoryNodeArgs() {
32
+ let autoConfigureMemory = true;
37
33
  try {
38
- await runExitCleanup();
39
- }
40
- catch (cleanupError) {
41
- writeToStderr(`Error during final cleanup: ${cleanupError instanceof Error ? cleanupError.message : String(cleanupError)}\n`);
34
+ const { readFileSync } = await import('node:fs');
35
+ const { join } = await import('node:path');
36
+ // Respect CELL_CLI_HOME environment variable, falling back to os.homedir()
37
+ const baseDir = process.env['CELL_CLI_HOME'] || join(os.homedir(), '.cell-cli');
38
+ const settingsPath = join(baseDir, 'settings.json');
39
+ const rawSettings = readFileSync(settingsPath, 'utf8');
40
+ const settings = JSON.parse(rawSettings);
41
+ if (settings?.advanced?.autoConfigureMemory === false) {
42
+ autoConfigureMemory = false;
43
+ }
42
44
  }
43
- finally {
44
- clearTimeout(cleanupTimeout);
45
+ catch {
46
+ // ignore
45
47
  }
46
- if (error instanceof FatalError) {
47
- let errorMessage = error.message;
48
- if (!process.env['NO_COLOR']) {
49
- errorMessage = `\x1b[31m${errorMessage}\x1b[0m`;
48
+ if (autoConfigureMemory) {
49
+ const totalMemoryMB = os.totalmem() / (1024 * 1024);
50
+ const heapStats = v8.getHeapStatistics();
51
+ const currentMaxOldSpaceSizeMb = Math.floor(heapStats.heap_size_limit / 1024 / 1024);
52
+ const targetMaxOldSpaceSizeInMB = Math.floor(totalMemoryMB * 0.5);
53
+ if (targetMaxOldSpaceSizeInMB > currentMaxOldSpaceSizeMb) {
54
+ return [`--max-old-space-size=${targetMaxOldSpaceSizeInMB}`];
50
55
  }
51
- writeToStderr(errorMessage + '\n');
52
- process.exit(error.exitCode);
53
56
  }
54
- writeToStderr('An unexpected critical error occurred:');
55
- if (error instanceof Error) {
56
- writeToStderr(error.stack + '\n');
57
+ return [];
58
+ }
59
+ async function run() {
60
+ if (!process.env['CELL_CLI_NO_RELAUNCH'] && !process.env['SANDBOX']) {
61
+ // --- Lightweight Parent Process / Daemon ---
62
+ // We avoid importing heavy dependencies here to save ~1.5s of startup time.
63
+ const nodeArgs = [...process.execArgv];
64
+ const scriptArgs = process.argv.slice(2);
65
+ const memoryArgs = await getMemoryNodeArgs();
66
+ nodeArgs.push(...memoryArgs);
67
+ const script = process.argv[1];
68
+ nodeArgs.push(script);
69
+ nodeArgs.push(...scriptArgs);
70
+ const newEnv = { ...process.env, CELL_CLI_NO_RELAUNCH: 'true' };
71
+ const RELAUNCH_EXIT_CODE = 199;
72
+ let latestAdminSettings = undefined;
73
+ // Prevent the parent process from exiting prematurely on signals.
74
+ // The child process will receive the same signals and handle its own cleanup.
75
+ for (const sig of ['SIGINT', 'SIGTERM', 'SIGHUP']) {
76
+ process.on(sig, () => { });
77
+ }
78
+ const runner = () => {
79
+ process.stdin.pause();
80
+ const child = spawn(process.execPath, nodeArgs, {
81
+ stdio: ['inherit', 'inherit', 'inherit', 'ipc'],
82
+ env: newEnv,
83
+ });
84
+ if (latestAdminSettings) {
85
+ child.send({ type: 'admin-settings', settings: latestAdminSettings });
86
+ }
87
+ child.on('message', (msg) => {
88
+ if (msg.type === 'admin-settings-update' && msg.settings) {
89
+ latestAdminSettings = msg.settings;
90
+ }
91
+ });
92
+ return new Promise((resolve) => {
93
+ child.on('error', (err) => {
94
+ process.stderr.write('Error: Failed to start child process: ' + err.message + '\n');
95
+ resolve(1);
96
+ });
97
+ child.on('close', (code) => {
98
+ process.stdin.resume();
99
+ resolve(code ?? 1);
100
+ });
101
+ });
102
+ };
103
+ while (true) {
104
+ try {
105
+ const exitCode = await runner();
106
+ if (exitCode !== RELAUNCH_EXIT_CODE) {
107
+ process.exit(exitCode);
108
+ }
109
+ }
110
+ catch (error) {
111
+ process.stdin.resume();
112
+ process.stderr.write(`Fatal error: Failed to relaunch the CLI process.\n${error instanceof Error ? (error.stack ?? error.message) : String(error)}\n`);
113
+ process.exit(1);
114
+ }
115
+ }
57
116
  }
58
117
  else {
59
- writeToStderr(String(error) + '\n');
118
+ // --- Heavy Child Process ---
119
+ // Now we can safely import everything.
120
+ const { main } = await import('./src/gemini.js');
121
+ const { FatalError, writeToStderr } = await import('@google/gemini-cli-core');
122
+ const { runExitCleanup } = await import('./src/utils/cleanup.js');
123
+ main().catch(async (error) => {
124
+ // Set a timeout to force exit if cleanup hangs
125
+ const cleanupTimeout = setTimeout(() => {
126
+ writeToStderr('Cleanup timed out, forcing exit...\n');
127
+ process.exit(1);
128
+ }, 5000);
129
+ try {
130
+ await runExitCleanup();
131
+ }
132
+ catch (cleanupError) {
133
+ writeToStderr(`Error during final cleanup: ${cleanupError instanceof Error ? cleanupError.message : String(cleanupError)}\n`);
134
+ }
135
+ finally {
136
+ clearTimeout(cleanupTimeout);
137
+ }
138
+ if (error instanceof FatalError) {
139
+ let errorMessage = error.message;
140
+ if (!process.env['NO_COLOR']) {
141
+ errorMessage = `\x1b[31m${errorMessage}\x1b[0m`;
142
+ }
143
+ writeToStderr(errorMessage + '\n');
144
+ process.exit(error.exitCode);
145
+ }
146
+ writeToStderr('An unexpected critical error occurred:');
147
+ if (error instanceof Error) {
148
+ writeToStderr(error.stack + '\n');
149
+ }
150
+ else {
151
+ writeToStderr(String(error) + '\n');
152
+ }
153
+ process.exit(1);
154
+ });
60
155
  }
61
- process.exit(1);
62
- });
156
+ }
157
+ run();
63
158
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,6BAA6B;AAE7B,6DAA6D;AAC7D,iEAAiE;AACjE,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;IACxC,IACE,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC5B,KAAK,YAAY,KAAK;QACtB,KAAK,CAAC,OAAO,KAAK,6CAA6C,EAC/D,CAAC;QACD,wFAAwF;QACxF,+EAA+E;QAC/E,OAAO;IACT,CAAC;IAED,uFAAuF;IACvF,iCAAiC;IACjC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IAC3B,+CAA+C;IAC/C,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;QACrC,aAAa,CAAC,sCAAsC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,IAAI,CAAC;QACH,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,YAAY,EAAE,CAAC;QACtB,aAAa,CACX,+BAA+B,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAC/G,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,YAAY,GAAG,WAAW,YAAY,SAAS,CAAC;QAClD,CAAC;QACD,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,wCAAwC,CAAC,CAAC;IACxD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,69 +1,94 @@
1
1
  {
2
- "name": "@machina.ai/cell-cli",
3
- "version": "1.38.1-rc1",
4
- "description": "Cell CLI",
5
- "repository": {
6
- "type": "git",
7
- "url": "git+https://github.com/machina-ai/cell-cli.git"
8
- },
9
- "type": "module",
10
- "main": "index.js",
11
- "bin": {
12
- "cell-cli": "index.js"
13
- },
14
- "files": [
15
- ""
16
- ],
17
- "config": {
18
- "sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.38.1"
19
- },
20
- "dependencies": {
21
- "@agentclientprotocol/sdk": "^0.16.1",
22
- "@google/gemini-cli-core": "npm:@machina.ai/cell-cli-core@1.38.1-rc1",
23
- "@google/genai": "1.30.0",
24
- "@iarna/toml": "^2.2.5",
25
- "@machina.ai/api-proxy": "1.18.4-rc0",
26
- "@machina.ai/auth-keycloak": "1.19.4-rc0",
27
- "@machina.ai/config-yaml": "1.11.0-rc0",
28
- "@modelcontextprotocol/sdk": "^1.23.0",
29
- "ansi-escapes": "^7.3.0",
30
- "ansi-regex": "^6.2.2",
31
- "chalk": "^4.1.2",
32
- "cli-spinners": "^2.9.2",
33
- "clipboardy": "~5.2.0",
34
- "color-convert": "^2.0.1",
35
- "command-exists": "^1.2.9",
36
- "comment-json": "^4.2.5",
37
- "diff": "^8.0.3",
38
- "dotenv": "^17.1.0",
39
- "extract-zip": "^2.0.1",
40
- "fzf": "^0.5.2",
41
- "glob": "^12.0.0",
42
- "highlight.js": "^11.11.1",
43
- "ink": "npm:@jrichman/ink@6.6.7",
44
- "ink-gradient": "^3.0.0",
45
- "ink-spinner": "^5.0.0",
46
- "ink-text-input": "^6.0.0",
47
- "latest-version": "^9.0.0",
48
- "lowlight": "^3.3.0",
49
- "mnemonist": "^0.40.3",
50
- "open": "^10.1.2",
51
- "prompts": "^2.4.2",
52
- "proper-lockfile": "^4.1.2",
53
- "react": "^19.2.0",
54
- "shell-quote": "^1.8.3",
55
- "simple-git": "^3.28.0",
56
- "string-width": "^8.1.0",
57
- "strip-ansi": "^7.1.0",
58
- "strip-json-comments": "^3.1.1",
59
- "tar": "^7.5.8",
60
- "tinygradient": "^1.1.5",
61
- "undici": "^7.10.0",
62
- "ws": "^8.16.0",
63
- "yargs": "^17.7.2",
64
- "zod": "^3.23.8"
65
- },
66
- "engines": {
67
- "node": ">=20"
68
- }
69
- }
2
+ "name": "@machina.ai/cell-cli",
3
+ "version": "1.40.1-rc1",
4
+ "description": "Cell CLI",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/machina-ai/cell-cli.git"
8
+ },
9
+ "type": "module",
10
+ "main": "dist/index.js",
11
+ "bin": {
12
+ "cell-cli": "dist/index.js"
13
+ },
14
+ "scripts": {
15
+ "build": "node ../../scripts/build_package.js",
16
+ "start": "node dist/index.js",
17
+ "debug": "node --inspect-brk dist/index.js",
18
+ "lint": "eslint . --ext .ts,.tsx",
19
+ "format": "prettier --write .",
20
+ "test": "vitest run",
21
+ "test:ci": "vitest run",
22
+ "posttest": "npm run build",
23
+ "typecheck": "tsc --noEmit"
24
+ },
25
+ "files": [
26
+ "dist/"
27
+ ],
28
+ "config": {
29
+ "sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.40.1"
30
+ },
31
+ "dependencies": {
32
+ "@agentclientprotocol/sdk": "^0.16.1",
33
+ "@google/gemini-cli-core": "npm:@machina.ai/cell-cli-core@1.40.1-rc1",
34
+ "@google/genai": "1.30.0",
35
+ "@iarna/toml": "^2.2.5",
36
+ "@machina.ai/api-proxy": "1.18.4-rc0",
37
+ "@machina.ai/auth-keycloak": "1.19.4-rc0",
38
+ "@machina.ai/config-yaml": "1.11.0-rc0",
39
+ "@modelcontextprotocol/sdk": "^1.23.0",
40
+ "ansi-escapes": "^7.3.0",
41
+ "ansi-regex": "^6.2.2",
42
+ "chalk": "^4.1.2",
43
+ "cli-spinners": "^2.9.2",
44
+ "clipboardy": "~5.2.0",
45
+ "color-convert": "^2.0.1",
46
+ "command-exists": "^1.2.9",
47
+ "comment-json": "^4.2.5",
48
+ "diff": "^8.0.3",
49
+ "dotenv": "^17.1.0",
50
+ "extract-zip": "^2.0.1",
51
+ "fzf": "^0.5.2",
52
+ "glob": "^12.0.0",
53
+ "highlight.js": "^11.11.1",
54
+ "ink": "npm:@jrichman/ink@6.6.9",
55
+ "ink-gradient": "^3.0.0",
56
+ "ink-spinner": "^5.0.0",
57
+ "ink-text-input": "^6.0.0",
58
+ "latest-version": "^9.0.0",
59
+ "lowlight": "^3.3.0",
60
+ "mnemonist": "^0.40.3",
61
+ "open": "^10.1.2",
62
+ "prompts": "^2.4.2",
63
+ "proper-lockfile": "^4.1.2",
64
+ "react": "^19.2.0",
65
+ "shell-quote": "^1.8.3",
66
+ "simple-git": "^3.28.0",
67
+ "string-width": "^8.1.0",
68
+ "strip-ansi": "^7.1.0",
69
+ "strip-json-comments": "^3.1.1",
70
+ "tar": "^7.5.8",
71
+ "tinygradient": "^1.1.5",
72
+ "undici": "^7.10.0",
73
+ "ws": "^8.16.0",
74
+ "yargs": "^17.7.2",
75
+ "zod": "^3.23.8"
76
+ },
77
+ "devDependencies": {
78
+ "@google/gemini-cli-test-utils": "file:../test-utils",
79
+ "@types/command-exists": "^1.2.3",
80
+ "@types/hast": "^3.0.4",
81
+ "@types/node": "^20.11.24",
82
+ "@types/react": "^19.2.0",
83
+ "@types/semver": "^7.7.0",
84
+ "@types/shell-quote": "^1.7.5",
85
+ "@types/ws": "^8.5.10",
86
+ "@types/yargs": "^17.0.32",
87
+ "@xterm/headless": "^5.5.0",
88
+ "typescript": "^5.3.3",
89
+ "vitest": "^3.1.1"
90
+ },
91
+ "engines": {
92
+ "node": ">=20"
93
+ }
94
+ }
@@ -20,6 +20,7 @@ import { randomUUID } from 'node:crypto';
20
20
  import { loadCliConfig } from '../config/config.js';
21
21
  import { runExitCleanup } from '../utils/cleanup.js';
22
22
  import { SessionSelector } from '../utils/sessionUtils.js';
23
+ import { startAutoMemoryIfEnabled } from '../utils/autoMemory.js';
23
24
  import { CommandHandler } from './commandHandler.js';
24
25
  const RequestPermissionResponseSchema = z.object({
25
26
  outcome: z.discriminatedUnion('outcome', [
@@ -198,6 +199,7 @@ export class GeminiAgent {
198
199
  }
199
200
  await config.initialize();
200
201
  startupProfiler.flush(config);
202
+ startAutoMemoryIfEnabled(config);
201
203
  const geminiClient = config.getGeminiClient();
202
204
  const chat = await geminiClient.startChat();
203
205
  const session = new Session(sessionId, chat, config, this.connection, this.settings);
@@ -222,7 +224,7 @@ export class GeminiAgent {
222
224
  }
223
225
  async loadSession({ sessionId, cwd, mcpServers, }) {
224
226
  const config = await this.initializeSessionConfig(sessionId, cwd, mcpServers);
225
- const sessionSelector = new SessionSelector(config);
227
+ const sessionSelector = new SessionSelector(config.storage);
226
228
  const { sessionData, sessionPath } = await sessionSelector.resolveSession(sessionId);
227
229
  const clientHistory = convertSessionToClientHistory(sessionData.messages);
228
230
  const geminiClient = config.getGeminiClient();
@@ -279,6 +281,7 @@ export class GeminiAgent {
279
281
  // which starts the MCP servers and other heavy resources.
280
282
  await config.initialize();
281
283
  startupProfiler.flush(config);
284
+ startAutoMemoryIfEnabled(config);
282
285
  return config;
283
286
  }
284
287
  async newSessionConfig(sessionId, cwd, mcpServers, loadedSettings) {
@@ -781,7 +784,9 @@ export class Session {
781
784
  kind: toAcpToolKind(tool.kind),
782
785
  });
783
786
  }
784
- const toolResult = await invocation.execute(abortSignal);
787
+ const toolResult = await invocation.execute({
788
+ abortSignal,
789
+ });
785
790
  const content = toToolCallContent(toolResult);
786
791
  const updateContent = content ? [content] : [];
787
792
  await this.sendUpdate({
@@ -1202,7 +1207,7 @@ export class Session {
1202
1207
  locations: invocation.toolLocations(),
1203
1208
  kind: toAcpToolKind(readManyFilesTool.kind),
1204
1209
  });
1205
- const result = await invocation.execute(abortSignal);
1210
+ const result = await invocation.execute({ abortSignal });
1206
1211
  const content = toToolCallContent(result) || {
1207
1212
  type: 'content',
1208
1213
  content: {