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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/dist/index.js +8 -6
  2. package/dist/index.js.map +1 -1
  3. package/dist/package.json +8 -7
  4. package/dist/src/commands/extensions/disable.js +2 -0
  5. package/dist/src/commands/extensions/disable.js.map +1 -1
  6. package/dist/src/commands/extensions/disable.test.d.ts +6 -0
  7. package/dist/src/commands/extensions/disable.test.js +169 -0
  8. package/dist/src/commands/extensions/disable.test.js.map +1 -0
  9. package/dist/src/commands/extensions/enable.js +2 -0
  10. package/dist/src/commands/extensions/enable.js.map +1 -1
  11. package/dist/src/commands/extensions/enable.test.d.ts +6 -0
  12. package/dist/src/commands/extensions/enable.test.js +150 -0
  13. package/dist/src/commands/extensions/enable.test.js.map +1 -0
  14. package/dist/src/commands/extensions/examples/mcp-server/example.test.d.ts +6 -0
  15. package/dist/src/commands/extensions/examples/mcp-server/example.test.js +111 -0
  16. package/dist/src/commands/extensions/examples/mcp-server/example.test.js.map +1 -0
  17. package/dist/src/commands/extensions/examples/mcp-server/example.test.ts +143 -0
  18. package/dist/src/commands/extensions/examples/mcp-server/package.json +1 -1
  19. package/dist/src/commands/extensions/install.js +2 -0
  20. package/dist/src/commands/extensions/install.js.map +1 -1
  21. package/dist/src/commands/extensions/install.test.js +3 -0
  22. package/dist/src/commands/extensions/install.test.js.map +1 -1
  23. package/dist/src/commands/extensions/link.js +2 -0
  24. package/dist/src/commands/extensions/link.js.map +1 -1
  25. package/dist/src/commands/extensions/link.test.d.ts +6 -0
  26. package/dist/src/commands/extensions/link.test.js +131 -0
  27. package/dist/src/commands/extensions/link.test.js.map +1 -0
  28. package/dist/src/commands/extensions/list.js +2 -0
  29. package/dist/src/commands/extensions/list.js.map +1 -1
  30. package/dist/src/commands/extensions/list.test.d.ts +6 -0
  31. package/dist/src/commands/extensions/list.test.js +112 -0
  32. package/dist/src/commands/extensions/list.test.js.map +1 -0
  33. package/dist/src/commands/extensions/new.js +2 -0
  34. package/dist/src/commands/extensions/new.js.map +1 -1
  35. package/dist/src/commands/extensions/new.test.js +3 -0
  36. package/dist/src/commands/extensions/new.test.js.map +1 -1
  37. package/dist/src/commands/extensions/uninstall.d.ts +1 -1
  38. package/dist/src/commands/extensions/uninstall.js +26 -9
  39. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  40. package/dist/src/commands/extensions/uninstall.test.js +190 -9
  41. package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
  42. package/dist/src/commands/extensions/update.js +2 -0
  43. package/dist/src/commands/extensions/update.js.map +1 -1
  44. package/dist/src/commands/extensions/update.test.d.ts +6 -0
  45. package/dist/src/commands/extensions/update.test.js +170 -0
  46. package/dist/src/commands/extensions/update.test.js.map +1 -0
  47. package/dist/src/commands/extensions/validate.js +2 -0
  48. package/dist/src/commands/extensions/validate.js.map +1 -1
  49. package/dist/src/commands/extensions/validate.test.js +3 -0
  50. package/dist/src/commands/extensions/validate.test.js.map +1 -1
  51. package/dist/src/commands/extensions.js +2 -0
  52. package/dist/src/commands/extensions.js.map +1 -1
  53. package/dist/src/commands/mcp/add.js +2 -0
  54. package/dist/src/commands/mcp/add.js.map +1 -1
  55. package/dist/src/commands/mcp/add.test.js +11 -3
  56. package/dist/src/commands/mcp/add.test.js.map +1 -1
  57. package/dist/src/commands/mcp/list.js +2 -0
  58. package/dist/src/commands/mcp/list.js.map +1 -1
  59. package/dist/src/commands/mcp/list.test.js +4 -6
  60. package/dist/src/commands/mcp/list.test.js.map +1 -1
  61. package/dist/src/commands/mcp/remove.js +2 -0
  62. package/dist/src/commands/mcp/remove.js.map +1 -1
  63. package/dist/src/commands/mcp/remove.test.js +26 -12
  64. package/dist/src/commands/mcp/remove.test.js.map +1 -1
  65. package/dist/src/commands/mcp.js +2 -0
  66. package/dist/src/commands/mcp.js.map +1 -1
  67. package/dist/src/commands/mcp.test.js +1 -0
  68. package/dist/src/commands/mcp.test.js.map +1 -1
  69. package/dist/src/commands/utils.d.ts +6 -0
  70. package/dist/src/commands/utils.js +11 -0
  71. package/dist/src/commands/utils.js.map +1 -0
  72. package/dist/src/config/config.d.ts +2 -1
  73. package/dist/src/config/config.js +36 -23
  74. package/dist/src/config/config.js.map +1 -1
  75. package/dist/src/config/config.test.js +69 -12
  76. package/dist/src/config/config.test.js.map +1 -1
  77. package/dist/src/config/extension.test.js +131 -125
  78. package/dist/src/config/extension.test.js.map +1 -1
  79. package/dist/src/config/keyBindings.d.ts +1 -1
  80. package/dist/src/config/keyBindings.js +4 -4
  81. package/dist/src/config/keyBindings.js.map +1 -1
  82. package/dist/src/config/settingsSchema.d.ts +12 -3
  83. package/dist/src/config/settingsSchema.js +13 -4
  84. package/dist/src/config/settingsSchema.js.map +1 -1
  85. package/dist/src/config/settingsSchema.test.js +1 -1
  86. package/dist/src/config/settingsSchema.test.js.map +1 -1
  87. package/dist/src/config/trustedFolders.d.ts +1 -1
  88. package/dist/src/config/trustedFolders.js +24 -17
  89. package/dist/src/config/trustedFolders.js.map +1 -1
  90. package/dist/src/gemini.d.ts +2 -1
  91. package/dist/src/gemini.js +73 -15
  92. package/dist/src/gemini.js.map +1 -1
  93. package/dist/src/gemini.test.js +56 -15
  94. package/dist/src/gemini.test.js.map +1 -1
  95. package/dist/src/generated/git-commit.d.ts +2 -2
  96. package/dist/src/generated/git-commit.js +2 -2
  97. package/dist/src/nonInteractiveCli.js +4 -1
  98. package/dist/src/nonInteractiveCli.js.map +1 -1
  99. package/dist/src/nonInteractiveCli.test.js +2 -2
  100. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  101. package/dist/src/services/CommandService.test.js +3 -2
  102. package/dist/src/services/CommandService.test.js.map +1 -1
  103. package/dist/src/services/McpPromptLoader.js +5 -3
  104. package/dist/src/services/McpPromptLoader.js.map +1 -1
  105. package/dist/src/services/McpPromptLoader.test.js +29 -1
  106. package/dist/src/services/McpPromptLoader.test.js.map +1 -1
  107. package/dist/src/test-utils/render.d.ts +26 -2
  108. package/dist/src/test-utils/render.js +76 -3
  109. package/dist/src/test-utils/render.js.map +1 -1
  110. package/dist/src/ui/AppContainer.js +112 -42
  111. package/dist/src/ui/AppContainer.js.map +1 -1
  112. package/dist/src/ui/AppContainer.test.js +181 -103
  113. package/dist/src/ui/AppContainer.test.js.map +1 -1
  114. package/dist/src/ui/auth/AuthDialog.js +17 -10
  115. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  116. package/dist/src/ui/auth/AuthDialog.test.js +7 -4
  117. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  118. package/dist/src/ui/commands/aboutCommand.js +8 -1
  119. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  120. package/dist/src/ui/commands/aboutCommand.test.js +4 -0
  121. package/dist/src/ui/commands/aboutCommand.test.js.map +1 -1
  122. package/dist/src/ui/commands/clearCommand.js +12 -0
  123. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  124. package/dist/src/ui/commands/clearCommand.test.js +5 -0
  125. package/dist/src/ui/commands/clearCommand.test.js.map +1 -1
  126. package/dist/src/ui/commands/directoryCommand.d.ts +0 -1
  127. package/dist/src/ui/commands/directoryCommand.js +104 -43
  128. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  129. package/dist/src/ui/commands/directoryCommand.test.js +91 -2
  130. package/dist/src/ui/commands/directoryCommand.test.js.map +1 -1
  131. package/dist/src/ui/commands/memoryCommand.js +1 -0
  132. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  133. package/dist/src/ui/commands/memoryCommand.test.js +3 -0
  134. package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
  135. package/dist/src/ui/commands/permissionsCommand.js +62 -5
  136. package/dist/src/ui/commands/permissionsCommand.js.map +1 -1
  137. package/dist/src/ui/commands/permissionsCommand.test.js +60 -4
  138. package/dist/src/ui/commands/permissionsCommand.test.js.map +1 -1
  139. package/dist/src/ui/commands/setupGithubCommand.d.ts +1 -0
  140. package/dist/src/ui/commands/setupGithubCommand.js +82 -45
  141. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  142. package/dist/src/ui/commands/setupGithubCommand.test.js +35 -5
  143. package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
  144. package/dist/src/ui/commands/types.d.ts +7 -1
  145. package/dist/src/ui/commands/types.js.map +1 -1
  146. package/dist/src/ui/components/AboutBox.d.ts +1 -0
  147. package/dist/src/ui/components/AboutBox.js +1 -1
  148. package/dist/src/ui/components/AboutBox.js.map +1 -1
  149. package/dist/src/ui/components/AppHeader.js +3 -22
  150. package/dist/src/ui/components/AppHeader.js.map +1 -1
  151. package/dist/src/ui/components/AppHeader.test.js +10 -4
  152. package/dist/src/ui/components/AppHeader.test.js.map +1 -1
  153. package/dist/src/ui/components/AsciiArt.d.ts +6 -6
  154. package/dist/src/ui/components/AsciiArt.js +6 -6
  155. package/dist/src/ui/components/Banner.d.ts +4 -2
  156. package/dist/src/ui/components/Banner.js +18 -4
  157. package/dist/src/ui/components/Banner.js.map +1 -1
  158. package/dist/src/ui/components/DebugProfiler.d.ts +1 -0
  159. package/dist/src/ui/components/DebugProfiler.js +23 -34
  160. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  161. package/dist/src/ui/components/DebugProfiler.test.js +1 -0
  162. package/dist/src/ui/components/DebugProfiler.test.js.map +1 -1
  163. package/dist/src/ui/components/DialogManager.js +7 -2
  164. package/dist/src/ui/components/DialogManager.js.map +1 -1
  165. package/dist/src/ui/components/GradientRegression.test.js +22 -1
  166. package/dist/src/ui/components/GradientRegression.test.js.map +1 -1
  167. package/dist/src/ui/components/Header.test.js +27 -2
  168. package/dist/src/ui/components/Header.test.js.map +1 -1
  169. package/dist/src/ui/components/HistoryItemDisplay.js +2 -1
  170. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  171. package/dist/src/ui/components/InputPrompt.js +29 -35
  172. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  173. package/dist/src/ui/components/InputPrompt.test.js +104 -24
  174. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  175. package/dist/src/ui/components/LoadingIndicator.js +6 -1
  176. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  177. package/dist/src/ui/components/ModelDialog.js +2 -2
  178. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  179. package/dist/src/ui/components/MultiFolderTrustDialog.d.ts +23 -0
  180. package/dist/src/ui/components/MultiFolderTrustDialog.js +90 -0
  181. package/dist/src/ui/components/MultiFolderTrustDialog.js.map +1 -0
  182. package/dist/src/ui/components/MultiFolderTrustDialog.test.d.ts +6 -0
  183. package/dist/src/ui/components/MultiFolderTrustDialog.test.js +161 -0
  184. package/dist/src/ui/components/MultiFolderTrustDialog.test.js.map +1 -0
  185. package/dist/src/ui/components/PermissionsModifyTrustDialog.d.ts +5 -2
  186. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +12 -7
  187. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -1
  188. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +2 -2
  189. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
  190. package/dist/src/ui/components/ProQuotaDialog.js +2 -2
  191. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
  192. package/dist/src/ui/components/SettingsDialog.d.ts +3 -1
  193. package/dist/src/ui/components/SettingsDialog.js +4 -1
  194. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  195. package/dist/src/ui/components/ThemedGradient.js +2 -1
  196. package/dist/src/ui/components/ThemedGradient.js.map +1 -1
  197. package/dist/src/ui/components/messages/ModelMessage.d.ts +11 -0
  198. package/dist/src/ui/components/messages/ModelMessage.js +5 -0
  199. package/dist/src/ui/components/messages/ModelMessage.js.map +1 -0
  200. package/dist/src/ui/components/messages/ShellToolMessage.d.ts +14 -0
  201. package/dist/src/ui/components/messages/ShellToolMessage.js +76 -0
  202. package/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -0
  203. package/dist/src/ui/components/messages/ShellToolMessage.test.d.ts +6 -0
  204. package/dist/src/ui/components/messages/ShellToolMessage.test.js +123 -0
  205. package/dist/src/ui/components/messages/ShellToolMessage.test.js.map +1 -0
  206. package/dist/src/ui/components/messages/ToolGroupMessage.js +19 -1
  207. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  208. package/dist/src/ui/components/messages/ToolMessage.d.ts +6 -4
  209. package/dist/src/ui/components/messages/ToolMessage.js +15 -102
  210. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  211. package/dist/src/ui/components/messages/ToolMessage.test.js +13 -5
  212. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  213. package/dist/src/ui/components/messages/ToolResultDisplay.d.ts +13 -0
  214. package/dist/src/ui/components/messages/ToolResultDisplay.js +54 -0
  215. package/dist/src/ui/components/messages/ToolResultDisplay.js.map +1 -0
  216. package/dist/src/ui/components/messages/ToolShared.d.ts +23 -0
  217. package/dist/src/ui/components/messages/ToolShared.js +40 -0
  218. package/dist/src/ui/components/messages/ToolShared.js.map +1 -0
  219. package/dist/src/ui/components/shared/text-buffer.d.ts +1 -0
  220. package/dist/src/ui/components/shared/text-buffer.js +7 -1
  221. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  222. package/dist/src/ui/constants/tips.d.ts +6 -0
  223. package/dist/src/ui/constants/tips.js +168 -0
  224. package/dist/src/ui/constants/tips.js.map +1 -0
  225. package/dist/src/ui/constants/wittyPhrases.d.ts +6 -0
  226. package/dist/src/ui/constants/wittyPhrases.js +137 -0
  227. package/dist/src/ui/constants/wittyPhrases.js.map +1 -0
  228. package/dist/src/ui/constants.d.ts +1 -0
  229. package/dist/src/ui/constants.js +1 -0
  230. package/dist/src/ui/constants.js.map +1 -1
  231. package/dist/src/ui/contexts/KeypressContext.js +21 -11
  232. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  233. package/dist/src/ui/contexts/KeypressContext.test.js +29 -10
  234. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  235. package/dist/src/ui/contexts/UIActionsContext.d.ts +3 -0
  236. package/dist/src/ui/contexts/UIActionsContext.js +1 -0
  237. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  238. package/dist/src/ui/contexts/UIStateContext.d.ts +4 -0
  239. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  240. package/dist/src/ui/hooks/shellCommandProcessor.d.ts +1 -0
  241. package/dist/src/ui/hooks/shellCommandProcessor.js +11 -5
  242. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  243. package/dist/src/ui/hooks/shellCommandProcessor.test.js +4 -3
  244. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  245. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +5 -3
  246. package/dist/src/ui/hooks/slashCommandProcessor.js +14 -5
  247. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  248. package/dist/src/ui/hooks/slashCommandProcessor.test.js +1 -0
  249. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  250. package/dist/src/ui/hooks/useAlternateBuffer.js +1 -1
  251. package/dist/src/ui/hooks/useAlternateBuffer.js.map +1 -1
  252. package/dist/src/ui/hooks/useBanner.d.ts +14 -0
  253. package/dist/src/ui/hooks/useBanner.js +48 -0
  254. package/dist/src/ui/hooks/useBanner.js.map +1 -0
  255. package/dist/src/ui/hooks/useBanner.test.d.ts +6 -0
  256. package/dist/src/ui/hooks/useBanner.test.js +92 -0
  257. package/dist/src/ui/hooks/useBanner.test.js.map +1 -0
  258. package/dist/src/ui/hooks/useBracketedPaste.js +3 -2
  259. package/dist/src/ui/hooks/useBracketedPaste.js.map +1 -1
  260. package/dist/src/ui/hooks/useCommandCompletion.test.js +5 -5
  261. package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
  262. package/dist/src/ui/hooks/useConsoleMessages.d.ts +0 -1
  263. package/dist/src/ui/hooks/useConsoleMessages.js +26 -1
  264. package/dist/src/ui/hooks/useConsoleMessages.js.map +1 -1
  265. package/dist/src/ui/hooks/useConsoleMessages.test.js +37 -5
  266. package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -1
  267. package/dist/src/ui/hooks/useEditorSettings.d.ts +2 -2
  268. package/dist/src/ui/hooks/useEditorSettings.js.map +1 -1
  269. package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
  270. package/dist/src/ui/hooks/useFolderTrust.js +11 -1
  271. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  272. package/dist/src/ui/hooks/useFolderTrust.test.js +22 -0
  273. package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
  274. package/dist/src/ui/hooks/useGeminiStream.d.ts +2 -1
  275. package/dist/src/ui/hooks/useGeminiStream.js +69 -12
  276. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  277. package/dist/src/ui/hooks/useGeminiStream.test.js +20 -21
  278. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  279. package/dist/src/ui/hooks/useHistoryManager.d.ts +5 -2
  280. package/dist/src/ui/hooks/useHistoryManager.js +39 -3
  281. package/dist/src/ui/hooks/useHistoryManager.js.map +1 -1
  282. package/dist/src/ui/hooks/useInactivityTimer.d.ts +14 -0
  283. package/dist/src/ui/hooks/useInactivityTimer.js +30 -0
  284. package/dist/src/ui/hooks/useInactivityTimer.js.map +1 -0
  285. package/dist/src/ui/hooks/useIncludeDirsTrust.d.ts +8 -0
  286. package/dist/src/ui/hooks/useIncludeDirsTrust.js +119 -0
  287. package/dist/src/ui/hooks/useIncludeDirsTrust.js.map +1 -0
  288. package/dist/src/ui/hooks/useIncludeDirsTrust.test.d.ts +6 -0
  289. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js +151 -0
  290. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js.map +1 -0
  291. package/dist/src/ui/hooks/useInputHistoryStore.test.js +4 -1
  292. package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -1
  293. package/dist/src/ui/hooks/useKittyKeyboardProtocol.d.ts +0 -1
  294. package/dist/src/ui/hooks/useKittyKeyboardProtocol.js +1 -2
  295. package/dist/src/ui/hooks/useKittyKeyboardProtocol.js.map +1 -1
  296. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +1 -1
  297. package/dist/src/ui/hooks/useLoadingIndicator.js +2 -2
  298. package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
  299. package/dist/src/ui/hooks/useLoadingIndicator.test.js +21 -9
  300. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  301. package/dist/src/ui/hooks/useMouseClick.d.ts +12 -0
  302. package/dist/src/ui/hooks/useMouseClick.js +28 -0
  303. package/dist/src/ui/hooks/useMouseClick.js.map +1 -0
  304. package/dist/src/ui/hooks/useMouseClick.test.d.ts +6 -0
  305. package/dist/src/ui/hooks/useMouseClick.test.js +59 -0
  306. package/dist/src/ui/hooks/useMouseClick.test.js.map +1 -0
  307. package/dist/src/ui/hooks/usePermissionsModifyTrust.d.ts +2 -2
  308. package/dist/src/ui/hooks/usePermissionsModifyTrust.js +44 -7
  309. package/dist/src/ui/hooks/usePermissionsModifyTrust.js.map +1 -1
  310. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +191 -89
  311. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -1
  312. package/dist/src/ui/hooks/usePhraseCycler.d.ts +4 -3
  313. package/dist/src/ui/hooks/usePhraseCycler.js +54 -305
  314. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  315. package/dist/src/ui/hooks/usePhraseCycler.test.js +109 -30
  316. package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
  317. package/dist/src/ui/hooks/useQuotaAndFallback.js +9 -3
  318. package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
  319. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +25 -3
  320. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  321. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +3 -2
  322. package/dist/src/ui/hooks/useReactToolScheduler.js +4 -8
  323. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  324. package/dist/src/ui/hooks/useReactToolScheduler.test.js +1 -8
  325. package/dist/src/ui/hooks/useReactToolScheduler.test.js.map +1 -1
  326. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +18 -12
  327. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +1 -1
  328. package/dist/src/ui/hooks/useSessionBrowser.js +13 -4
  329. package/dist/src/ui/hooks/useSessionBrowser.js.map +1 -1
  330. package/dist/src/ui/hooks/useSessionBrowser.test.js +37 -0
  331. package/dist/src/ui/hooks/useSessionBrowser.test.js.map +1 -1
  332. package/dist/src/ui/hooks/useSessionResume.js +1 -1
  333. package/dist/src/ui/hooks/useSessionResume.js.map +1 -1
  334. package/dist/src/ui/hooks/useSessionResume.test.js +4 -4
  335. package/dist/src/ui/hooks/useSessionResume.test.js.map +1 -1
  336. package/dist/src/ui/hooks/useThemeCommand.d.ts +2 -2
  337. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  338. package/dist/src/ui/hooks/useToolScheduler.test.js +2 -2
  339. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  340. package/dist/src/ui/keyMatchers.test.js +2 -2
  341. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  342. package/dist/src/ui/layouts/DefaultAppLayout.js +1 -1
  343. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -1
  344. package/dist/src/ui/noninteractive/nonInteractiveUi.js +1 -0
  345. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -1
  346. package/dist/src/ui/themes/theme-manager.test.js +2 -1
  347. package/dist/src/ui/themes/theme-manager.test.js.map +1 -1
  348. package/dist/src/ui/types.d.ts +7 -1
  349. package/dist/src/ui/types.js.map +1 -1
  350. package/dist/src/ui/utils/ConsolePatcher.js +6 -9
  351. package/dist/src/ui/utils/ConsolePatcher.js.map +1 -1
  352. package/dist/src/ui/utils/commandUtils.js +3 -86
  353. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  354. package/dist/src/ui/utils/commandUtils.test.js +21 -273
  355. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  356. package/dist/src/ui/utils/directoryUtils.d.ts +6 -0
  357. package/dist/src/ui/utils/directoryUtils.js +21 -0
  358. package/dist/src/ui/utils/directoryUtils.js.map +1 -0
  359. package/dist/src/ui/utils/directoryUtils.test.d.ts +6 -0
  360. package/dist/src/ui/utils/directoryUtils.test.js +52 -0
  361. package/dist/src/ui/utils/directoryUtils.test.js.map +1 -0
  362. package/dist/src/ui/utils/kittyProtocolDetector.d.ts +6 -2
  363. package/dist/src/ui/utils/kittyProtocolDetector.js +47 -43
  364. package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -1
  365. package/dist/src/ui/utils/mouse.d.ts +2 -2
  366. package/dist/src/ui/utils/mouse.js +2 -11
  367. package/dist/src/ui/utils/mouse.js.map +1 -1
  368. package/dist/src/utils/cleanup.d.ts +2 -0
  369. package/dist/src/utils/cleanup.js +16 -0
  370. package/dist/src/utils/cleanup.js.map +1 -1
  371. package/dist/src/utils/errors.js +10 -0
  372. package/dist/src/utils/errors.js.map +1 -1
  373. package/dist/src/utils/events.d.ts +0 -2
  374. package/dist/src/utils/events.js +0 -1
  375. package/dist/src/utils/events.js.map +1 -1
  376. package/dist/src/utils/installationInfo.test.js +8 -9
  377. package/dist/src/utils/installationInfo.test.js.map +1 -1
  378. package/dist/src/utils/persistentState.d.ts +1 -1
  379. package/dist/src/utils/sessionCleanup.test.js +4 -2
  380. package/dist/src/utils/sessionCleanup.test.js.map +1 -1
  381. package/dist/src/utils/sessionUtils.d.ts +5 -0
  382. package/dist/src/utils/sessionUtils.js +6 -1
  383. package/dist/src/utils/sessionUtils.js.map +1 -1
  384. package/dist/src/utils/sessions.test.d.ts +6 -0
  385. package/dist/src/utils/sessions.test.js +516 -0
  386. package/dist/src/utils/sessions.test.js.map +1 -0
  387. package/dist/src/validateNonInterActiveAuth.js +2 -0
  388. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  389. package/dist/src/zed-integration/acp.d.ts +2 -24
  390. package/dist/src/zed-integration/acp.js +2 -156
  391. package/dist/src/zed-integration/acp.js.map +1 -1
  392. package/dist/src/zed-integration/acp.test.d.ts +6 -0
  393. package/dist/src/zed-integration/acp.test.js +227 -0
  394. package/dist/src/zed-integration/acp.test.js.map +1 -0
  395. package/dist/src/zed-integration/connection.d.ts +28 -0
  396. package/dist/src/zed-integration/connection.js +163 -0
  397. package/dist/src/zed-integration/connection.js.map +1 -0
  398. package/dist/src/zed-integration/schema.d.ts +69 -13
  399. package/dist/src/zed-integration/schema.js +6 -5
  400. package/dist/src/zed-integration/schema.js.map +1 -1
  401. package/dist/src/zed-integration/zedIntegration.d.ts +0 -7
  402. package/dist/src/zed-integration/zedIntegration.js +9 -21
  403. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  404. package/dist/tsconfig.tsbuildinfo +1 -1
  405. package/package.json +8 -7
@@ -4,10 +4,10 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  /* ACP defines a schema for a simple (experimental) JSON-RPC protocol that allows GUI applications to interact with agents. */
7
- import { z } from 'zod';
8
7
  import * as schema from './schema.js';
9
8
  export * from './schema.js';
10
- import { coreEvents } from '@google/gemini-cli-core';
9
+ import { Connection, RequestError } from './connection.js';
10
+ export { RequestError };
11
11
  export class AgentSideConnection {
12
12
  #connection;
13
13
  constructor(toAgent, input, output) {
@@ -69,158 +69,4 @@ export class AgentSideConnection {
69
69
  return await this.#connection.sendRequest(schema.CLIENT_METHODS.fs_write_text_file, params);
70
70
  }
71
71
  }
72
- class Connection {
73
- #pendingResponses = new Map();
74
- #nextRequestId = 0;
75
- #handler;
76
- #peerInput;
77
- #writeQueue = Promise.resolve();
78
- #textEncoder;
79
- constructor(handler, peerInput, peerOutput) {
80
- this.#handler = handler;
81
- this.#peerInput = peerInput;
82
- this.#textEncoder = new TextEncoder();
83
- this.#receive(peerOutput);
84
- }
85
- async #receive(output) {
86
- let content = '';
87
- const decoder = new TextDecoder();
88
- for await (const chunk of output) {
89
- content += decoder.decode(chunk, { stream: true });
90
- const lines = content.split('\n');
91
- content = lines.pop() || '';
92
- for (const line of lines) {
93
- const trimmedLine = line.trim();
94
- if (trimmedLine) {
95
- const message = JSON.parse(trimmedLine);
96
- this.#processMessage(message);
97
- }
98
- }
99
- }
100
- }
101
- async #processMessage(message) {
102
- if ('method' in message && 'id' in message) {
103
- // It's a request
104
- const response = await this.#tryCallHandler(message.method, message.params);
105
- await this.#sendMessage({
106
- jsonrpc: '2.0',
107
- id: message.id,
108
- ...response,
109
- });
110
- }
111
- else if ('method' in message) {
112
- // It's a notification
113
- await this.#tryCallHandler(message.method, message.params);
114
- }
115
- else if ('id' in message) {
116
- // It's a response
117
- this.#handleResponse(message);
118
- }
119
- }
120
- async #tryCallHandler(method, params) {
121
- try {
122
- const result = await this.#handler(method, params);
123
- return { result: result ?? null };
124
- }
125
- catch (error) {
126
- if (error instanceof RequestError) {
127
- return error.toResult();
128
- }
129
- if (error instanceof z.ZodError) {
130
- return RequestError.invalidParams(JSON.stringify(error.format(), undefined, 2)).toResult();
131
- }
132
- let details;
133
- if (error instanceof Error) {
134
- details = error.message;
135
- }
136
- else if (typeof error === 'object' &&
137
- error != null &&
138
- 'message' in error &&
139
- typeof error.message === 'string') {
140
- details = error.message;
141
- }
142
- return RequestError.internalError(details).toResult();
143
- }
144
- }
145
- #handleResponse(response) {
146
- const pendingResponse = this.#pendingResponses.get(response.id);
147
- if (pendingResponse) {
148
- if ('result' in response) {
149
- pendingResponse.resolve(response.result);
150
- }
151
- else if ('error' in response) {
152
- pendingResponse.reject(response.error);
153
- }
154
- this.#pendingResponses.delete(response.id);
155
- }
156
- }
157
- async sendRequest(method, params) {
158
- const id = this.#nextRequestId++;
159
- const responsePromise = new Promise((resolve, reject) => {
160
- this.#pendingResponses.set(id, { resolve, reject });
161
- });
162
- await this.#sendMessage({ jsonrpc: '2.0', id, method, params });
163
- return responsePromise;
164
- }
165
- async sendNotification(method, params) {
166
- await this.#sendMessage({ jsonrpc: '2.0', method, params });
167
- }
168
- async #sendMessage(json) {
169
- const content = JSON.stringify(json) + '\n';
170
- this.#writeQueue = this.#writeQueue
171
- .then(async () => {
172
- const writer = this.#peerInput.getWriter();
173
- try {
174
- await writer.write(this.#textEncoder.encode(content));
175
- }
176
- finally {
177
- writer.releaseLock();
178
- }
179
- })
180
- .catch((error) => {
181
- // Continue processing writes on error
182
- coreEvents.emitFeedback('error', 'ACP write error.', error);
183
- });
184
- return this.#writeQueue;
185
- }
186
- }
187
- export class RequestError extends Error {
188
- code;
189
- data;
190
- constructor(code, message, details) {
191
- super(message);
192
- this.code = code;
193
- this.name = 'RequestError';
194
- if (details) {
195
- this.data = { details };
196
- }
197
- }
198
- static parseError(details) {
199
- return new RequestError(-32700, 'Parse error', details);
200
- }
201
- static invalidRequest(details) {
202
- return new RequestError(-32600, 'Invalid request', details);
203
- }
204
- static methodNotFound(details) {
205
- return new RequestError(-32601, 'Method not found', details);
206
- }
207
- static invalidParams(details) {
208
- return new RequestError(-32602, 'Invalid params', details);
209
- }
210
- static internalError(details) {
211
- return new RequestError(-32603, 'Internal error', details);
212
- }
213
- static authRequired(details) {
214
- return new RequestError(-32000, 'Authentication required', details);
215
- }
216
- toResult() {
217
- return {
218
- error: {
219
- code: this.code,
220
- message: this.message,
221
- data: this.data,
222
- },
223
- };
224
- }
225
- }
226
72
  //# sourceMappingURL=acp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"acp.js","sourceRoot":"","sources":["../../../src/zed-integration/acp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acp.js","sourceRoot":"","sources":["../../../src/zed-integration/acp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8HAA8H;AAE9H,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,MAAM,OAAO,mBAAmB;IAC9B,WAAW,CAAa;IAExB,YACE,OAAgC,EAChC,KAAiC,EACjC,MAAkC;QAElC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAE5B,MAAM,OAAO,GAAG,KAAK,EACnB,MAAc,EACd,MAAe,EACG,EAAE;YACpB,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;oBACrC,MAAM,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACrE,OAAO,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBAC3C,CAAC;gBACD,KAAK,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;oBACtC,MAAM,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACrE,OAAO,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBAC3C,CAAC;gBACD,KAAK,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;wBACvB,MAAM,YAAY,CAAC,cAAc,EAAE,CAAC;oBACtC,CAAC;oBACD,MAAM,eAAe,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACtE,OAAO,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBAC5C,CAAC;gBACD,KAAK,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvC,MAAM,eAAe,GACnB,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACjD,OAAO,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;gBAC7C,CAAC;gBACD,KAAK,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;oBACzC,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACjE,OAAO,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBACvC,CAAC;gBACD,KAAK,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;oBACzC,MAAM,eAAe,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACtE,OAAO,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBACvC,CAAC;gBACD;oBACE,MAAM,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,MAAkC;QACpD,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAC5C,MAAM,CAAC,cAAc,CAAC,cAAc,EACpC,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CACrB,MAAuC;QAEvC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CACvC,MAAM,CAAC,cAAc,CAAC,0BAA0B,EAChD,MAAM,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAAkC;QAElC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CACvC,MAAM,CAAC,cAAc,CAAC,iBAAiB,EACvC,MAAM,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAmC;QAEnC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CACvC,MAAM,CAAC,cAAc,CAAC,kBAAkB,EACxC,MAAM,CACP,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,227 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { vi, describe, it, expect, beforeEach } from 'vitest';
7
+ import { AgentSideConnection, RequestError, } from './acp.js';
8
+ import {} from './schema.js';
9
+ import {} from './connection.js';
10
+ import { ReadableStream, WritableStream } from 'node:stream/web';
11
+ const mockConnectionConstructor = vi.hoisted(() => vi.fn(() => ({
12
+ sendRequest: vi.fn(),
13
+ sendNotification: vi.fn(),
14
+ })));
15
+ vi.mock('./connection.js', async (importOriginal) => {
16
+ const actual = await importOriginal();
17
+ return {
18
+ ...actual,
19
+ Connection: mockConnectionConstructor,
20
+ };
21
+ });
22
+ describe('acp', () => {
23
+ describe('RequestError', () => {
24
+ it('should create a parse error', () => {
25
+ const error = RequestError.parseError('details');
26
+ expect(error.code).toBe(-32700);
27
+ expect(error.message).toBe('Parse error');
28
+ expect(error.data?.details).toBe('details');
29
+ });
30
+ it('should create a method not found error', () => {
31
+ const error = RequestError.methodNotFound('details');
32
+ expect(error.code).toBe(-32601);
33
+ expect(error.message).toBe('Method not found');
34
+ expect(error.data?.details).toBe('details');
35
+ });
36
+ it('should convert to a result', () => {
37
+ const error = RequestError.internalError('details');
38
+ const result = error.toResult();
39
+ expect(result.error.code).toBe(-32603);
40
+ expect(result.error.message).toBe('Internal error');
41
+ expect(result.error.data).toEqual({ details: 'details' });
42
+ });
43
+ });
44
+ describe('AgentSideConnection', () => {
45
+ let mockAgent;
46
+ let toAgent;
47
+ let fromAgent;
48
+ let agentSideConnection;
49
+ let connectionInstance;
50
+ beforeEach(() => {
51
+ vi.clearAllMocks();
52
+ const initializeResponse = {
53
+ agentCapabilities: { loadSession: true },
54
+ authMethods: [],
55
+ protocolVersion: 1,
56
+ };
57
+ const newSessionResponse = { sessionId: 'session-1' };
58
+ const loadSessionResponse = { sessionId: 'session-1' };
59
+ mockAgent = {
60
+ initialize: vi.fn().mockResolvedValue(initializeResponse),
61
+ newSession: vi.fn().mockResolvedValue(newSessionResponse),
62
+ loadSession: vi.fn().mockResolvedValue(loadSessionResponse),
63
+ authenticate: vi.fn(),
64
+ prompt: vi.fn(),
65
+ cancel: vi.fn(),
66
+ };
67
+ toAgent = new WritableStream();
68
+ fromAgent = new ReadableStream();
69
+ agentSideConnection = new AgentSideConnection((_client) => mockAgent, toAgent, fromAgent);
70
+ // Get the mocked Connection instance
71
+ connectionInstance = mockConnectionConstructor.mock.results[0].value;
72
+ });
73
+ it('should initialize Connection with the correct handler and streams', () => {
74
+ expect(mockConnectionConstructor).toHaveBeenCalledTimes(1);
75
+ expect(mockConnectionConstructor).toHaveBeenCalledWith(expect.any(Function), toAgent, fromAgent);
76
+ });
77
+ it('should call agent.initialize when Connection handler receives initialize method', async () => {
78
+ const initializeParams = {
79
+ clientCapabilities: { fs: { readTextFile: true, writeTextFile: true } },
80
+ protocolVersion: 1,
81
+ };
82
+ const initializeResponse = {
83
+ agentCapabilities: { loadSession: true },
84
+ authMethods: [],
85
+ protocolVersion: 1,
86
+ };
87
+ const handler = mockConnectionConstructor.mock
88
+ .calls[0][0];
89
+ const result = await handler('initialize', initializeParams);
90
+ expect(mockAgent.initialize).toHaveBeenCalledWith(initializeParams);
91
+ expect(result).toEqual(initializeResponse);
92
+ });
93
+ it('should call agent.newSession when Connection handler receives session_new method', async () => {
94
+ const newSessionParams = { cwd: '/tmp', mcpServers: [] };
95
+ const newSessionResponse = { sessionId: 'session-1' };
96
+ const handler = mockConnectionConstructor.mock
97
+ .calls[0][0];
98
+ const result = await handler('session/new', newSessionParams);
99
+ expect(mockAgent.newSession).toHaveBeenCalledWith(newSessionParams);
100
+ expect(result).toEqual(newSessionResponse);
101
+ });
102
+ it('should call agent.loadSession when Connection handler receives session_load method', async () => {
103
+ const loadSessionParams = {
104
+ cwd: '/tmp',
105
+ mcpServers: [],
106
+ sessionId: 'session-1',
107
+ };
108
+ const loadSessionResponse = { sessionId: 'session-1' };
109
+ const handler = mockConnectionConstructor.mock
110
+ .calls[0][0];
111
+ const result = await handler('session/load', loadSessionParams);
112
+ expect(mockAgent.loadSession).toHaveBeenCalledWith(loadSessionParams);
113
+ expect(result).toEqual(loadSessionResponse);
114
+ });
115
+ it('should throw methodNotFound if agent.loadSession is not implemented', async () => {
116
+ mockAgent.loadSession = undefined; // Simulate not implemented
117
+ const loadSessionParams = {
118
+ cwd: '/tmp',
119
+ mcpServers: [],
120
+ sessionId: 'session-1',
121
+ };
122
+ const handler = mockConnectionConstructor.mock
123
+ .calls[0][0];
124
+ await expect(handler('session/load', loadSessionParams)).rejects.toThrow(RequestError.methodNotFound().message);
125
+ });
126
+ it('should call agent.authenticate when Connection handler receives authenticate method', async () => {
127
+ const authenticateParams = {
128
+ methodId: 'test-auth-method',
129
+ authMethod: {
130
+ id: 'test-auth',
131
+ name: 'Test Auth Method',
132
+ description: 'A test authentication method',
133
+ },
134
+ };
135
+ const handler = mockConnectionConstructor.mock
136
+ .calls[0][0];
137
+ const result = await handler('authenticate', authenticateParams);
138
+ expect(mockAgent.authenticate).toHaveBeenCalledWith(authenticateParams);
139
+ expect(result).toBeUndefined();
140
+ });
141
+ it('should call agent.prompt when Connection handler receives session_prompt method', async () => {
142
+ const promptParams = {
143
+ prompt: [{ type: 'text', text: 'hi' }],
144
+ sessionId: 'session-1',
145
+ };
146
+ const promptResponse = {
147
+ response: [{ type: 'text', text: 'hello' }],
148
+ traceId: 'trace-1',
149
+ };
150
+ mockAgent.prompt.mockResolvedValue(promptResponse);
151
+ const handler = mockConnectionConstructor.mock
152
+ .calls[0][0];
153
+ const result = await handler('session/prompt', promptParams);
154
+ expect(mockAgent.prompt).toHaveBeenCalledWith(promptParams);
155
+ expect(result).toEqual(promptResponse);
156
+ });
157
+ it('should call agent.cancel when Connection handler receives session_cancel method', async () => {
158
+ const cancelParams = { sessionId: 'session-1' };
159
+ const handler = mockConnectionConstructor.mock
160
+ .calls[0][0];
161
+ const result = await handler('session/cancel', cancelParams);
162
+ expect(mockAgent.cancel).toHaveBeenCalledWith(cancelParams);
163
+ expect(result).toBeUndefined();
164
+ });
165
+ it('should throw methodNotFound for unknown methods', async () => {
166
+ const handler = mockConnectionConstructor.mock
167
+ .calls[0][0];
168
+ await expect(handler('unknown_method', {})).rejects.toThrow(RequestError.methodNotFound().message);
169
+ });
170
+ it('should send sessionUpdate notification via connection', async () => {
171
+ const params = {
172
+ sessionId: '123',
173
+ update: {
174
+ sessionUpdate: 'user_message_chunk',
175
+ content: { type: 'text', text: 'hello' },
176
+ },
177
+ };
178
+ await agentSideConnection.sessionUpdate(params);
179
+ });
180
+ it('should send requestPermission request via connection', async () => {
181
+ const params = {
182
+ sessionId: '123',
183
+ toolCall: {
184
+ toolCallId: 'tool-1',
185
+ title: 'Test Tool',
186
+ kind: 'other',
187
+ status: 'pending',
188
+ },
189
+ options: [
190
+ {
191
+ optionId: 'option-1',
192
+ name: 'Allow',
193
+ kind: 'allow_once',
194
+ },
195
+ ],
196
+ };
197
+ const response = {
198
+ outcome: { outcome: 'selected', optionId: 'option-1' },
199
+ };
200
+ connectionInstance.sendRequest.mockResolvedValue(response);
201
+ const result = await agentSideConnection.requestPermission(params);
202
+ expect(connectionInstance.sendRequest).toHaveBeenCalledWith('session/request_permission', params);
203
+ expect(result).toEqual(response);
204
+ });
205
+ it('should send readTextFile request via connection', async () => {
206
+ const params = { path: '/a/b.txt', sessionId: 'session-1' };
207
+ const response = { content: 'file content' };
208
+ connectionInstance.sendRequest.mockResolvedValue(response);
209
+ const result = await agentSideConnection.readTextFile(params);
210
+ expect(connectionInstance.sendRequest).toHaveBeenCalledWith('fs/read_text_file', params);
211
+ expect(result).toEqual(response);
212
+ });
213
+ it('should send writeTextFile request via connection', async () => {
214
+ const params = {
215
+ path: '/a/b.txt',
216
+ content: 'new content',
217
+ sessionId: 'session-1',
218
+ };
219
+ const response = { success: true };
220
+ connectionInstance.sendRequest.mockResolvedValue(response);
221
+ const result = await agentSideConnection.writeTextFile(params);
222
+ expect(connectionInstance.sendRequest).toHaveBeenCalledWith('fs/write_text_file', params);
223
+ expect(result).toEqual(response);
224
+ });
225
+ });
226
+ });
227
+ //# sourceMappingURL=acp.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp.test.js","sourceRoot":"","sources":["../../../src/zed-integration/acp.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { type Result } from './schema.js';
7
+ import type { WritableStream, ReadableStream } from 'node:stream/web';
8
+ export declare class RequestError extends Error {
9
+ code: number;
10
+ data?: {
11
+ details?: string;
12
+ };
13
+ constructor(code: number, message: string, details?: string);
14
+ static parseError(details?: string): RequestError;
15
+ static invalidRequest(details?: string): RequestError;
16
+ static methodNotFound(details?: string): RequestError;
17
+ static invalidParams(details?: string): RequestError;
18
+ static internalError(details?: string): RequestError;
19
+ static authRequired(details?: string): RequestError;
20
+ toResult<T>(): Result<T>;
21
+ }
22
+ export type MethodHandler = (method: string, params: unknown) => Promise<unknown>;
23
+ export declare class Connection {
24
+ #private;
25
+ constructor(handler: MethodHandler, peerInput: WritableStream<Uint8Array>, peerOutput: ReadableStream<Uint8Array>);
26
+ sendRequest<Req, Resp>(method: string, params?: Req): Promise<Resp>;
27
+ sendNotification<N>(method: string, params?: N): Promise<void>;
28
+ }
@@ -0,0 +1,163 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { z } from 'zod';
7
+ import { coreEvents } from '@google/gemini-cli-core';
8
+ import {} from './schema.js';
9
+ export class RequestError extends Error {
10
+ code;
11
+ data;
12
+ constructor(code, message, details) {
13
+ super(message);
14
+ this.code = code;
15
+ this.name = 'RequestError';
16
+ if (details) {
17
+ this.data = { details };
18
+ }
19
+ }
20
+ static parseError(details) {
21
+ return new RequestError(-32700, 'Parse error', details);
22
+ }
23
+ static invalidRequest(details) {
24
+ return new RequestError(-32600, 'Invalid request', details);
25
+ }
26
+ static methodNotFound(details) {
27
+ return new RequestError(-32601, 'Method not found', details);
28
+ }
29
+ static invalidParams(details) {
30
+ return new RequestError(-32602, 'Invalid params', details);
31
+ }
32
+ static internalError(details) {
33
+ return new RequestError(-32603, 'Internal error', details);
34
+ }
35
+ static authRequired(details) {
36
+ return new RequestError(-32000, 'Authentication required', details);
37
+ }
38
+ toResult() {
39
+ return {
40
+ error: {
41
+ code: this.code,
42
+ message: this.message,
43
+ data: this.data,
44
+ },
45
+ };
46
+ }
47
+ }
48
+ export class Connection {
49
+ #pendingResponses = new Map();
50
+ #nextRequestId = 0;
51
+ #handler;
52
+ #peerInput;
53
+ #writeQueue = Promise.resolve();
54
+ #textEncoder;
55
+ constructor(handler, peerInput, peerOutput) {
56
+ this.#handler = handler;
57
+ this.#peerInput = peerInput;
58
+ this.#textEncoder = new TextEncoder();
59
+ this.#receive(peerOutput);
60
+ }
61
+ async #receive(output) {
62
+ let content = '';
63
+ const decoder = new TextDecoder();
64
+ for await (const chunk of output) {
65
+ content += decoder.decode(chunk, { stream: true });
66
+ const lines = content.split('\n');
67
+ content = lines.pop() || '';
68
+ for (const line of lines) {
69
+ const trimmedLine = line.trim();
70
+ if (trimmedLine) {
71
+ const message = JSON.parse(trimmedLine);
72
+ this.#processMessage(message);
73
+ }
74
+ }
75
+ }
76
+ }
77
+ async #processMessage(message) {
78
+ if ('method' in message && 'id' in message) {
79
+ // It's a request
80
+ const response = await this.#tryCallHandler(message.method, message.params);
81
+ await this.#sendMessage({
82
+ jsonrpc: '2.0',
83
+ id: message.id,
84
+ ...response,
85
+ });
86
+ }
87
+ else if ('method' in message) {
88
+ // It's a notification
89
+ await this.#tryCallHandler(message.method, message.params);
90
+ }
91
+ else if ('id' in message) {
92
+ // It's a response
93
+ this.#handleResponse(message);
94
+ }
95
+ }
96
+ async #tryCallHandler(method, params) {
97
+ try {
98
+ const result = await this.#handler(method, params);
99
+ return { result: result ?? null };
100
+ }
101
+ catch (error) {
102
+ if (error instanceof RequestError) {
103
+ return error.toResult();
104
+ }
105
+ if (error instanceof z.ZodError) {
106
+ return RequestError.invalidParams(JSON.stringify(error.format(), undefined, 2)).toResult();
107
+ }
108
+ let details;
109
+ if (error instanceof Error) {
110
+ details = error.message;
111
+ }
112
+ else if (typeof error === 'object' &&
113
+ error != null &&
114
+ 'message' in error &&
115
+ typeof error.message === 'string') {
116
+ details = error.message;
117
+ }
118
+ return RequestError.internalError(details).toResult();
119
+ }
120
+ }
121
+ #handleResponse(response) {
122
+ const pendingResponse = this.#pendingResponses.get(response.id);
123
+ if (pendingResponse) {
124
+ if ('result' in response) {
125
+ pendingResponse.resolve(response.result);
126
+ }
127
+ else if ('error' in response) {
128
+ pendingResponse.reject(response.error);
129
+ }
130
+ this.#pendingResponses.delete(response.id);
131
+ }
132
+ }
133
+ async sendRequest(method, params) {
134
+ const id = this.#nextRequestId++;
135
+ const responsePromise = new Promise((resolve, reject) => {
136
+ this.#pendingResponses.set(id, { resolve, reject });
137
+ });
138
+ await this.#sendMessage({ jsonrpc: '2.0', id, method, params });
139
+ return responsePromise;
140
+ }
141
+ async sendNotification(method, params) {
142
+ await this.#sendMessage({ jsonrpc: '2.0', method, params });
143
+ }
144
+ async #sendMessage(json) {
145
+ const content = JSON.stringify(json) + '\n';
146
+ this.#writeQueue = this.#writeQueue
147
+ .then(async () => {
148
+ const writer = this.#peerInput.getWriter();
149
+ try {
150
+ await writer.write(this.#textEncoder.encode(content));
151
+ }
152
+ finally {
153
+ writer.releaseLock();
154
+ }
155
+ })
156
+ .catch((error) => {
157
+ // Continue processing writes on error
158
+ coreEvents.emitFeedback('error', 'ACP write error.', error);
159
+ });
160
+ return this.#writeQueue;
161
+ }
162
+ }
163
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/zed-integration/connection.ts"],"names":[],"mappings":"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"}