@machina.ai/cell-cli 1.33.0-rc1 → 1.38.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 (2022) hide show
  1. package/dist/index.js +14 -1
  2. package/dist/index.js.map +1 -1
  3. package/dist/package.json +7 -7
  4. package/dist/src/acp/acpClient.d.ts +56 -0
  5. package/dist/src/{zed-integration/zedIntegration.js → acp/acpClient.js} +765 -121
  6. package/dist/src/acp/acpClient.js.map +1 -0
  7. package/dist/src/acp/acpClient.test.js +1787 -0
  8. package/dist/src/acp/acpClient.test.js.map +1 -0
  9. package/dist/src/{zed-integration → acp}/acpErrors.js +2 -0
  10. package/dist/src/acp/acpErrors.js.map +1 -0
  11. package/dist/src/acp/acpErrors.test.js.map +1 -0
  12. package/dist/src/{zed-integration → acp}/acpResume.test.js +83 -8
  13. package/dist/src/acp/acpResume.test.js.map +1 -0
  14. package/dist/src/acp/commandHandler.d.ts +26 -0
  15. package/dist/src/acp/commandHandler.js +106 -0
  16. package/dist/src/acp/commandHandler.js.map +1 -0
  17. package/dist/src/acp/commandHandler.test.js +29 -0
  18. package/dist/src/acp/commandHandler.test.js.map +1 -0
  19. package/dist/src/acp/commands/about.d.ts +11 -0
  20. package/dist/src/acp/commands/about.js +53 -0
  21. package/dist/src/acp/commands/about.js.map +1 -0
  22. package/dist/src/acp/commands/commandRegistry.d.ts +12 -0
  23. package/dist/src/acp/commands/commandRegistry.js +26 -0
  24. package/dist/src/acp/commands/commandRegistry.js.map +1 -0
  25. package/dist/src/acp/commands/extensions.d.ts +57 -0
  26. package/dist/src/acp/commands/extensions.js +331 -0
  27. package/dist/src/acp/commands/extensions.js.map +1 -0
  28. package/dist/src/acp/commands/help.d.ts +14 -0
  29. package/dist/src/acp/commands/help.js +35 -0
  30. package/dist/src/acp/commands/help.js.map +1 -0
  31. package/dist/src/acp/commands/help.test.js +40 -0
  32. package/dist/src/acp/commands/help.test.js.map +1 -0
  33. package/dist/src/acp/commands/init.d.ts +12 -0
  34. package/dist/src/acp/commands/init.js +47 -0
  35. package/dist/src/acp/commands/init.js.map +1 -0
  36. package/dist/src/acp/commands/memory.d.ts +34 -0
  37. package/dist/src/acp/commands/memory.js +86 -0
  38. package/dist/src/acp/commands/memory.js.map +1 -0
  39. package/dist/src/acp/commands/restore.d.ts +18 -0
  40. package/dist/src/acp/commands/restore.js +141 -0
  41. package/dist/src/acp/commands/restore.js.map +1 -0
  42. package/dist/src/acp/commands/types.d.ts +31 -0
  43. package/dist/src/acp/commands/types.js +7 -0
  44. package/dist/src/acp/commands/types.js.map +1 -0
  45. package/dist/src/{zed-integration → acp}/fileSystemService.d.ts +6 -2
  46. package/dist/src/acp/fileSystemService.js +78 -0
  47. package/dist/src/acp/fileSystemService.js.map +1 -0
  48. package/dist/src/acp/fileSystemService.test.js +162 -0
  49. package/dist/src/acp/fileSystemService.test.js.map +1 -0
  50. package/dist/src/commands/extensions/disable.js +1 -2
  51. package/dist/src/commands/extensions/disable.js.map +1 -1
  52. package/dist/src/commands/extensions/disable.test.js +2 -2
  53. package/dist/src/commands/extensions/disable.test.js.map +1 -1
  54. package/dist/src/commands/extensions/examples/policies/README.md +41 -0
  55. package/dist/src/commands/extensions/examples/policies/gemini-extension.json +5 -0
  56. package/dist/src/commands/extensions/examples/policies/policies/policies.toml +28 -0
  57. package/dist/src/commands/extensions/examples/themes-example/README.md +8 -5
  58. package/dist/src/commands/extensions/examples/themes-example/gemini-extension.json +1 -1
  59. package/dist/src/commands/extensions/install.d.ts +1 -0
  60. package/dist/src/commands/extensions/install.js +86 -6
  61. package/dist/src/commands/extensions/install.js.map +1 -1
  62. package/dist/src/commands/extensions/install.test.js +199 -28
  63. package/dist/src/commands/extensions/install.test.js.map +1 -1
  64. package/dist/src/commands/extensions/link.js +1 -2
  65. package/dist/src/commands/extensions/link.js.map +1 -1
  66. package/dist/src/commands/extensions/link.test.js +6 -22
  67. package/dist/src/commands/extensions/link.test.js.map +1 -1
  68. package/dist/src/commands/extensions/list.js +1 -2
  69. package/dist/src/commands/extensions/list.js.map +1 -1
  70. package/dist/src/commands/extensions/list.test.js +9 -25
  71. package/dist/src/commands/extensions/list.test.js.map +1 -1
  72. package/dist/src/commands/extensions/new.js +1 -1
  73. package/dist/src/commands/extensions/new.js.map +1 -1
  74. package/dist/src/commands/extensions/uninstall.d.ts +2 -1
  75. package/dist/src/commands/extensions/uninstall.js +27 -6
  76. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  77. package/dist/src/commands/extensions/uninstall.test.js +48 -7
  78. package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
  79. package/dist/src/commands/extensions/update.js +1 -2
  80. package/dist/src/commands/extensions/update.js.map +1 -1
  81. package/dist/src/commands/extensions/utils.js +1 -0
  82. package/dist/src/commands/extensions/utils.js.map +1 -1
  83. package/dist/src/commands/extensions/validate.js +1 -2
  84. package/dist/src/commands/extensions/validate.js.map +1 -1
  85. package/dist/src/commands/hooks/migrate.js +3 -0
  86. package/dist/src/commands/hooks/migrate.js.map +1 -1
  87. package/dist/src/commands/mcp/list.d.ts +3 -3
  88. package/dist/src/commands/mcp/list.js +68 -24
  89. package/dist/src/commands/mcp/list.js.map +1 -1
  90. package/dist/src/commands/mcp/list.test.js +69 -3
  91. package/dist/src/commands/mcp/list.test.js.map +1 -1
  92. package/dist/src/commands/mcp.test.js +2 -3
  93. package/dist/src/commands/mcp.test.js.map +1 -1
  94. package/dist/src/commands/skills/disable.test.js +4 -7
  95. package/dist/src/commands/skills/disable.test.js.map +1 -1
  96. package/dist/src/commands/skills/enable.test.js +4 -7
  97. package/dist/src/commands/skills/enable.test.js.map +1 -1
  98. package/dist/src/commands/skills/install.js +1 -2
  99. package/dist/src/commands/skills/install.js.map +1 -1
  100. package/dist/src/commands/skills/install.test.js +13 -9
  101. package/dist/src/commands/skills/install.test.js.map +1 -1
  102. package/dist/src/commands/skills/link.js +1 -2
  103. package/dist/src/commands/skills/link.js.map +1 -1
  104. package/dist/src/commands/skills/link.test.js +6 -2
  105. package/dist/src/commands/skills/link.test.js.map +1 -1
  106. package/dist/src/commands/skills/list.js +5 -8
  107. package/dist/src/commands/skills/list.js.map +1 -1
  108. package/dist/src/commands/skills/list.test.js +21 -30
  109. package/dist/src/commands/skills/list.test.js.map +1 -1
  110. package/dist/src/commands/skills/uninstall.js +1 -2
  111. package/dist/src/commands/skills/uninstall.js.map +1 -1
  112. package/dist/src/commands/skills/uninstall.test.js +10 -6
  113. package/dist/src/commands/skills/uninstall.test.js.map +1 -1
  114. package/dist/src/config/config.d.ts +18 -3
  115. package/dist/src/config/config.js +334 -136
  116. package/dist/src/config/config.js.map +1 -1
  117. package/dist/src/config/config.test.js +513 -61
  118. package/dist/src/config/config.test.js.map +1 -1
  119. package/dist/src/config/extension-manager-hydration.test.js +2 -2
  120. package/dist/src/config/extension-manager-hydration.test.js.map +1 -1
  121. package/dist/src/config/extension-manager-permissions.test.d.ts +6 -0
  122. package/dist/src/config/extension-manager-permissions.test.js +107 -0
  123. package/dist/src/config/extension-manager-permissions.test.js.map +1 -0
  124. package/dist/src/config/extension-manager-scope.test.js +1 -1
  125. package/dist/src/config/extension-manager-scope.test.js.map +1 -1
  126. package/dist/src/config/extension-manager-skills.test.js +9 -0
  127. package/dist/src/config/extension-manager-skills.test.js.map +1 -1
  128. package/dist/src/config/extension-manager-themes.spec.js +3 -1
  129. package/dist/src/config/extension-manager-themes.spec.js.map +1 -1
  130. package/dist/src/config/extension-manager.d.ts +16 -3
  131. package/dist/src/config/extension-manager.js +202 -54
  132. package/dist/src/config/extension-manager.js.map +1 -1
  133. package/dist/src/config/extension-manager.test.js +430 -0
  134. package/dist/src/config/extension-manager.test.js.map +1 -0
  135. package/dist/src/config/extension.d.ts +13 -0
  136. package/dist/src/config/extension.js +1 -1
  137. package/dist/src/config/extension.js.map +1 -1
  138. package/dist/src/config/extension.test.js +139 -30
  139. package/dist/src/config/extension.test.js.map +1 -1
  140. package/dist/src/config/extensionRegistryClient.d.ts +3 -1
  141. package/dist/src/config/extensionRegistryClient.js +29 -9
  142. package/dist/src/config/extensionRegistryClient.js.map +1 -1
  143. package/dist/src/config/extensionRegistryClient.test.js +81 -3
  144. package/dist/src/config/extensionRegistryClient.test.js.map +1 -1
  145. package/dist/src/config/extensions/consent.d.ts +11 -1
  146. package/dist/src/config/extensions/consent.js +27 -7
  147. package/dist/src/config/extensions/consent.js.map +1 -1
  148. package/dist/src/config/extensions/consent.test.js +43 -44
  149. package/dist/src/config/extensions/consent.test.js.map +1 -1
  150. package/dist/src/config/extensions/extensionEnablement.js +1 -0
  151. package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
  152. package/dist/src/config/extensions/extensionSettings.js +20 -3
  153. package/dist/src/config/extensions/extensionSettings.js.map +1 -1
  154. package/dist/src/config/extensions/extensionSettings.test.js +17 -1
  155. package/dist/src/config/extensions/extensionSettings.test.js.map +1 -1
  156. package/dist/src/config/extensions/extensionUpdates.test.js +74 -13
  157. package/dist/src/config/extensions/extensionUpdates.test.js.map +1 -1
  158. package/dist/src/config/extensions/github.js +13 -3
  159. package/dist/src/config/extensions/github.js.map +1 -1
  160. package/dist/src/config/extensions/github.test.js +14 -1
  161. package/dist/src/config/extensions/github.test.js.map +1 -1
  162. package/dist/src/config/extensions/update.js +25 -2
  163. package/dist/src/config/extensions/update.js.map +1 -1
  164. package/dist/src/config/extensions/update.test.js +68 -3
  165. package/dist/src/config/extensions/update.test.js.map +1 -1
  166. package/dist/src/config/extensions/variables.js +14 -2
  167. package/dist/src/config/extensions/variables.js.map +1 -1
  168. package/dist/src/config/extensions/variables.test.js +16 -0
  169. package/dist/src/config/extensions/variables.test.js.map +1 -1
  170. package/dist/src/config/footerItems.d.ts +62 -0
  171. package/dist/src/config/footerItems.js +128 -0
  172. package/dist/src/config/footerItems.js.map +1 -0
  173. package/dist/src/config/footerItems.test.d.ts +6 -0
  174. package/dist/src/config/footerItems.test.js +141 -0
  175. package/dist/src/config/footerItems.test.js.map +1 -0
  176. package/dist/src/config/mcp/mcpServerEnablement.test.js +1 -0
  177. package/dist/src/config/mcp/mcpServerEnablement.test.js.map +1 -1
  178. package/dist/src/config/policy-engine.integration.test.js +90 -51
  179. package/dist/src/config/policy-engine.integration.test.js.map +1 -1
  180. package/dist/src/config/policy.d.ts +35 -3
  181. package/dist/src/config/policy.js +82 -5
  182. package/dist/src/config/policy.js.map +1 -1
  183. package/dist/src/config/policy.test.js +199 -0
  184. package/dist/src/config/policy.test.js.map +1 -0
  185. package/dist/src/config/sandboxConfig.js +50 -7
  186. package/dist/src/config/sandboxConfig.js.map +1 -1
  187. package/dist/src/config/sandboxConfig.test.js +227 -10
  188. package/dist/src/config/sandboxConfig.test.js.map +1 -1
  189. package/dist/src/config/settings-validation.js +1 -1
  190. package/dist/src/config/settings-validation.js.map +1 -1
  191. package/dist/src/config/settings-validation.test.js +2 -3
  192. package/dist/src/config/settings-validation.test.js.map +1 -1
  193. package/dist/src/config/settings.d.ts +26 -2
  194. package/dist/src/config/settings.js +102 -31
  195. package/dist/src/config/settings.js.map +1 -1
  196. package/dist/src/config/settings.test.js +374 -146
  197. package/dist/src/config/settings.test.js.map +1 -1
  198. package/dist/src/config/settingsSchema.d.ts +838 -67
  199. package/dist/src/config/settingsSchema.js +988 -81
  200. package/dist/src/config/settingsSchema.js.map +1 -1
  201. package/dist/src/config/settingsSchema.test.js +128 -7
  202. package/dist/src/config/settingsSchema.test.js.map +1 -1
  203. package/dist/src/config/settings_repro.test.js +0 -1
  204. package/dist/src/config/settings_repro.test.js.map +1 -1
  205. package/dist/src/config/settings_validation_warning.test.js +2 -1
  206. package/dist/src/config/settings_validation_warning.test.js.map +1 -1
  207. package/dist/src/config/trustedFolders.test.js +4 -2
  208. package/dist/src/config/trustedFolders.test.js.map +1 -1
  209. package/dist/src/config/workspace-policy-cli.test.js +209 -0
  210. package/dist/src/config/workspace-policy-cli.test.js.map +1 -0
  211. package/dist/src/core/auth.d.ts +7 -2
  212. package/dist/src/core/auth.js +28 -6
  213. package/dist/src/core/auth.js.map +1 -1
  214. package/dist/src/core/auth.test.js +53 -7
  215. package/dist/src/core/auth.test.js.map +1 -1
  216. package/dist/src/core/initializer.d.ts +2 -0
  217. package/dist/src/core/initializer.js +12 -5
  218. package/dist/src/core/initializer.js.map +1 -1
  219. package/dist/src/core/initializer.test.js +12 -2
  220. package/dist/src/core/initializer.test.js.map +1 -1
  221. package/dist/src/deferred.test.js +1 -1
  222. package/dist/src/deferred.test.js.map +1 -1
  223. package/dist/src/gemini.d.ts +3 -3
  224. package/dist/src/gemini.js +120 -146
  225. package/dist/src/gemini.js.map +1 -1
  226. package/dist/src/gemini.test.js +220 -44
  227. package/dist/src/gemini.test.js.map +1 -1
  228. package/dist/src/gemini_cleanup.test.js +99 -30
  229. package/dist/src/gemini_cleanup.test.js.map +1 -1
  230. package/dist/src/generated/git-commit.d.ts +2 -2
  231. package/dist/src/generated/git-commit.js +2 -2
  232. package/dist/src/integration-tests/modelSteering.test.d.ts +6 -0
  233. package/dist/src/integration-tests/modelSteering.test.js +62 -0
  234. package/dist/src/integration-tests/modelSteering.test.js.map +1 -0
  235. package/dist/src/interactiveCli.d.ts +9 -0
  236. package/dist/src/interactiveCli.js +128 -0
  237. package/dist/src/interactiveCli.js.map +1 -0
  238. package/dist/src/nonInteractiveCli.d.ts +1 -1
  239. package/dist/src/nonInteractiveCli.js +15 -6
  240. package/dist/src/nonInteractiveCli.js.map +1 -1
  241. package/dist/src/nonInteractiveCli.test.js +20 -16
  242. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  243. package/dist/src/nonInteractiveCliAgentSession.d.ts +16 -0
  244. package/dist/src/nonInteractiveCliAgentSession.js +484 -0
  245. package/dist/src/nonInteractiveCliAgentSession.js.map +1 -0
  246. package/dist/src/nonInteractiveCliAgentSession.test.js +1837 -0
  247. package/dist/src/nonInteractiveCliAgentSession.test.js.map +1 -0
  248. package/dist/src/nonInteractiveCliCommands.js +3 -3
  249. package/dist/src/nonInteractiveCliCommands.js.map +1 -1
  250. package/dist/src/services/BuiltinCommandLoader.js +41 -7
  251. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  252. package/dist/src/services/BuiltinCommandLoader.test.js +83 -6
  253. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  254. package/dist/src/services/CommandService.d.ts +25 -18
  255. package/dist/src/services/CommandService.js +51 -42
  256. package/dist/src/services/CommandService.js.map +1 -1
  257. package/dist/src/services/CommandService.test.js +44 -204
  258. package/dist/src/services/CommandService.test.js.map +1 -1
  259. package/dist/src/services/FileCommandLoader.d.ts +2 -1
  260. package/dist/src/services/FileCommandLoader.js +14 -6
  261. package/dist/src/services/FileCommandLoader.js.map +1 -1
  262. package/dist/src/services/FileCommandLoader.test.js.map +1 -1
  263. package/dist/src/services/McpPromptLoader.d.ts +2 -2
  264. package/dist/src/services/McpPromptLoader.js +3 -2
  265. package/dist/src/services/McpPromptLoader.js.map +1 -1
  266. package/dist/src/services/SkillCommandLoader.d.ts +23 -0
  267. package/dist/src/services/SkillCommandLoader.js +52 -0
  268. package/dist/src/services/SkillCommandLoader.js.map +1 -0
  269. package/dist/src/services/SkillCommandLoader.test.d.ts +6 -0
  270. package/dist/src/services/SkillCommandLoader.test.js +113 -0
  271. package/dist/src/services/SkillCommandLoader.test.js.map +1 -0
  272. package/dist/src/services/SlashCommandConflictHandler.d.ts +35 -0
  273. package/dist/src/services/SlashCommandConflictHandler.js +128 -0
  274. package/dist/src/services/SlashCommandConflictHandler.js.map +1 -0
  275. package/dist/src/services/SlashCommandConflictHandler.test.d.ts +6 -0
  276. package/dist/src/services/SlashCommandConflictHandler.test.js +144 -0
  277. package/dist/src/services/SlashCommandConflictHandler.test.js.map +1 -0
  278. package/dist/src/services/SlashCommandResolver.d.ts +53 -0
  279. package/dist/src/services/SlashCommandResolver.js +156 -0
  280. package/dist/src/services/SlashCommandResolver.js.map +1 -0
  281. package/dist/src/services/SlashCommandResolver.test.d.ts +6 -0
  282. package/dist/src/services/SlashCommandResolver.test.js +186 -0
  283. package/dist/src/services/SlashCommandResolver.test.js.map +1 -0
  284. package/dist/src/services/prompt-processors/atFileProcessor.js +1 -1
  285. package/dist/src/services/prompt-processors/atFileProcessor.js.map +1 -1
  286. package/dist/src/services/prompt-processors/atFileProcessor.test.js +6 -3
  287. package/dist/src/services/prompt-processors/atFileProcessor.test.js.map +1 -1
  288. package/dist/src/services/prompt-processors/shellProcessor.js +1 -1
  289. package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
  290. package/dist/src/services/prompt-processors/shellProcessor.test.js +14 -4
  291. package/dist/src/services/prompt-processors/shellProcessor.test.js.map +1 -1
  292. package/dist/src/services/types.d.ts +8 -0
  293. package/dist/src/test-utils/AppRig.d.ts +83 -0
  294. package/dist/src/test-utils/AppRig.js +583 -0
  295. package/dist/src/test-utils/AppRig.js.map +1 -0
  296. package/dist/src/test-utils/AppRig.test.d.ts +6 -0
  297. package/dist/src/test-utils/AppRig.test.js +60 -0
  298. package/dist/src/test-utils/AppRig.test.js.map +1 -0
  299. package/dist/src/test-utils/MockShellExecutionService.d.ts +37 -0
  300. package/dist/src/test-utils/MockShellExecutionService.js +88 -0
  301. package/dist/src/test-utils/MockShellExecutionService.js.map +1 -0
  302. package/dist/src/test-utils/async.d.ts +1 -1
  303. package/dist/src/test-utils/async.js +1 -1
  304. package/dist/src/test-utils/async.js.map +1 -1
  305. package/dist/src/test-utils/customMatchers.d.ts +25 -5
  306. package/dist/src/test-utils/customMatchers.js +47 -2
  307. package/dist/src/test-utils/customMatchers.js.map +1 -1
  308. package/dist/src/test-utils/mockCommandContext.js +2 -5
  309. package/dist/src/test-utils/mockCommandContext.js.map +1 -1
  310. package/dist/src/test-utils/mockCommandContext.test.js +4 -4
  311. package/dist/src/test-utils/mockCommandContext.test.js.map +1 -1
  312. package/dist/src/test-utils/mockConfig.d.ts +1 -1
  313. package/dist/src/test-utils/mockConfig.js +41 -12
  314. package/dist/src/test-utils/mockConfig.js.map +1 -1
  315. package/dist/src/test-utils/mockDebugLogger.d.ts +35 -0
  316. package/dist/src/test-utils/mockDebugLogger.js +68 -0
  317. package/dist/src/test-utils/mockDebugLogger.js.map +1 -0
  318. package/dist/src/test-utils/mockSpinner.d.ts +6 -0
  319. package/dist/src/test-utils/mockSpinner.js +21 -0
  320. package/dist/src/test-utils/mockSpinner.js.map +1 -0
  321. package/dist/src/test-utils/render.d.ts +109 -14
  322. package/dist/src/test-utils/render.js +393 -95
  323. package/dist/src/test-utils/render.js.map +1 -1
  324. package/dist/src/test-utils/render.test.js +34 -30
  325. package/dist/src/test-utils/render.test.js.map +1 -1
  326. package/dist/src/test-utils/settings.js +2 -11
  327. package/dist/src/test-utils/settings.js.map +1 -1
  328. package/dist/src/test-utils/svg.d.ts +7 -0
  329. package/dist/src/test-utils/svg.js +182 -0
  330. package/dist/src/test-utils/svg.js.map +1 -0
  331. package/dist/src/ui/App.test.js +64 -36
  332. package/dist/src/ui/App.test.js.map +1 -1
  333. package/dist/src/ui/AppContainer.d.ts +2 -2
  334. package/dist/src/ui/AppContainer.js +696 -301
  335. package/dist/src/ui/AppContainer.js.map +1 -1
  336. package/dist/src/ui/AppContainer.test.js +1155 -707
  337. package/dist/src/ui/AppContainer.test.js.map +1 -1
  338. package/dist/src/ui/IdeIntegrationNudge.js +1 -1
  339. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  340. package/dist/src/ui/IdeIntegrationNudge.test.js +27 -36
  341. package/dist/src/ui/IdeIntegrationNudge.test.js.map +1 -1
  342. package/dist/src/ui/ToolConfirmationFullFrame.test.d.ts +1 -0
  343. package/dist/src/ui/ToolConfirmationFullFrame.test.js +158 -0
  344. package/dist/src/ui/ToolConfirmationFullFrame.test.js.map +1 -0
  345. package/dist/src/ui/auth/ApiAuthDialog.js +4 -2
  346. package/dist/src/ui/auth/ApiAuthDialog.js.map +1 -1
  347. package/dist/src/ui/auth/ApiAuthDialog.test.js +23 -13
  348. package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -1
  349. package/dist/src/ui/auth/AuthDialog.d.ts +1 -1
  350. package/dist/src/ui/auth/AuthDialog.js +10 -17
  351. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  352. package/dist/src/ui/auth/AuthDialog.test.js +69 -34
  353. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  354. package/dist/src/ui/auth/AuthInProgress.test.js +33 -15
  355. package/dist/src/ui/auth/AuthInProgress.test.js.map +1 -1
  356. package/dist/src/ui/auth/BannedAccountDialog.d.ts +14 -0
  357. package/dist/src/ui/auth/BannedAccountDialog.js +66 -0
  358. package/dist/src/ui/auth/BannedAccountDialog.js.map +1 -0
  359. package/dist/src/ui/auth/BannedAccountDialog.test.d.ts +6 -0
  360. package/dist/src/ui/auth/BannedAccountDialog.test.js +140 -0
  361. package/dist/src/ui/auth/BannedAccountDialog.test.js.map +1 -0
  362. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.js +4 -6
  363. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.js.map +1 -1
  364. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js +10 -6
  365. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js.map +1 -1
  366. package/dist/src/ui/auth/useAuth.d.ts +4 -1
  367. package/dist/src/ui/auth/useAuth.js +22 -4
  368. package/dist/src/ui/auth/useAuth.js.map +1 -1
  369. package/dist/src/ui/auth/useAuth.test.js +83 -58
  370. package/dist/src/ui/auth/useAuth.test.js.map +1 -1
  371. package/dist/src/ui/colors.js +8 -2
  372. package/dist/src/ui/colors.js.map +1 -1
  373. package/dist/src/ui/commands/aboutCommand.d.ts +1 -1
  374. package/dist/src/ui/commands/aboutCommand.js +5 -4
  375. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  376. package/dist/src/ui/commands/aboutCommand.test.js +8 -6
  377. package/dist/src/ui/commands/aboutCommand.test.js.map +1 -1
  378. package/dist/src/ui/commands/agentsCommand.js +17 -13
  379. package/dist/src/ui/commands/agentsCommand.js.map +1 -1
  380. package/dist/src/ui/commands/agentsCommand.test.js +20 -13
  381. package/dist/src/ui/commands/agentsCommand.test.js.map +1 -1
  382. package/dist/src/ui/commands/authCommand.js +7 -5
  383. package/dist/src/ui/commands/authCommand.js.map +1 -1
  384. package/dist/src/ui/commands/authCommand.test.js +18 -13
  385. package/dist/src/ui/commands/authCommand.test.js.map +1 -1
  386. package/dist/src/ui/commands/bugCommand.js +4 -3
  387. package/dist/src/ui/commands/bugCommand.js.map +1 -1
  388. package/dist/src/ui/commands/bugCommand.test.js +29 -23
  389. package/dist/src/ui/commands/bugCommand.test.js.map +1 -1
  390. package/dist/src/ui/commands/chatCommand.d.ts +2 -0
  391. package/dist/src/ui/commands/chatCommand.js +60 -26
  392. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  393. package/dist/src/ui/commands/chatCommand.test.js +22 -15
  394. package/dist/src/ui/commands/chatCommand.test.js.map +1 -1
  395. package/dist/src/ui/commands/clearCommand.d.ts +1 -1
  396. package/dist/src/ui/commands/clearCommand.js +16 -14
  397. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  398. package/dist/src/ui/commands/clearCommand.test.js +27 -17
  399. package/dist/src/ui/commands/clearCommand.test.js.map +1 -1
  400. package/dist/src/ui/commands/commandsCommand.d.ts +7 -0
  401. package/dist/src/ui/commands/commandsCommand.js +56 -0
  402. package/dist/src/ui/commands/commandsCommand.js.map +1 -0
  403. package/dist/src/ui/commands/commandsCommand.test.d.ts +6 -0
  404. package/dist/src/ui/commands/commandsCommand.test.js +42 -0
  405. package/dist/src/ui/commands/commandsCommand.test.js.map +1 -0
  406. package/dist/src/ui/commands/compressCommand.d.ts +1 -1
  407. package/dist/src/ui/commands/compressCommand.js +2 -4
  408. package/dist/src/ui/commands/compressCommand.js.map +1 -1
  409. package/dist/src/ui/commands/compressCommand.test.js +10 -3
  410. package/dist/src/ui/commands/compressCommand.test.js.map +1 -1
  411. package/dist/src/ui/commands/copyCommand.d.ts +1 -1
  412. package/dist/src/ui/commands/copyCommand.js +4 -3
  413. package/dist/src/ui/commands/copyCommand.js.map +1 -1
  414. package/dist/src/ui/commands/copyCommand.test.js +10 -8
  415. package/dist/src/ui/commands/copyCommand.test.js.map +1 -1
  416. package/dist/src/ui/commands/directoryCommand.d.ts +1 -1
  417. package/dist/src/ui/commands/directoryCommand.js +15 -15
  418. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  419. package/dist/src/ui/commands/directoryCommand.test.js +5 -2
  420. package/dist/src/ui/commands/directoryCommand.test.js.map +1 -1
  421. package/dist/src/ui/commands/extensionsCommand.js +110 -55
  422. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  423. package/dist/src/ui/commands/extensionsCommand.test.js +80 -33
  424. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
  425. package/dist/src/ui/commands/footerCommand.d.ts +7 -0
  426. package/dist/src/ui/commands/footerCommand.js +20 -0
  427. package/dist/src/ui/commands/footerCommand.js.map +1 -0
  428. package/dist/src/ui/commands/helpCommand.d.ts +1 -1
  429. package/dist/src/ui/commands/helpCommand.js.map +1 -1
  430. package/dist/src/ui/commands/helpCommand.test.js +1 -2
  431. package/dist/src/ui/commands/helpCommand.test.js.map +1 -1
  432. package/dist/src/ui/commands/hooksCommand.js +26 -15
  433. package/dist/src/ui/commands/hooksCommand.js.map +1 -1
  434. package/dist/src/ui/commands/hooksCommand.test.js +23 -31
  435. package/dist/src/ui/commands/hooksCommand.test.js.map +1 -1
  436. package/dist/src/ui/commands/ideCommand.js +3 -3
  437. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  438. package/dist/src/ui/commands/ideCommand.test.js +7 -5
  439. package/dist/src/ui/commands/ideCommand.test.js.map +1 -1
  440. package/dist/src/ui/commands/initCommand.js +2 -2
  441. package/dist/src/ui/commands/initCommand.js.map +1 -1
  442. package/dist/src/ui/commands/initCommand.test.js +5 -3
  443. package/dist/src/ui/commands/initCommand.test.js.map +1 -1
  444. package/dist/src/ui/commands/mcpCommand.js +68 -28
  445. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  446. package/dist/src/ui/commands/mcpCommand.test.js +49 -8
  447. package/dist/src/ui/commands/mcpCommand.test.js.map +1 -1
  448. package/dist/src/ui/commands/memoryCommand.d.ts +1 -1
  449. package/dist/src/ui/commands/memoryCommand.js +9 -8
  450. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  451. package/dist/src/ui/commands/memoryCommand.test.js +39 -35
  452. package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
  453. package/dist/src/ui/commands/modelCommand.js +41 -4
  454. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  455. package/dist/src/ui/commands/modelCommand.test.js +98 -4
  456. package/dist/src/ui/commands/modelCommand.test.js.map +1 -1
  457. package/dist/src/ui/commands/oncallCommand.js +4 -2
  458. package/dist/src/ui/commands/oncallCommand.js.map +1 -1
  459. package/dist/src/ui/commands/planCommand.js +44 -5
  460. package/dist/src/ui/commands/planCommand.js.map +1 -1
  461. package/dist/src/ui/commands/planCommand.test.js +73 -14
  462. package/dist/src/ui/commands/planCommand.test.js.map +1 -1
  463. package/dist/src/ui/commands/policiesCommand.js +7 -1
  464. package/dist/src/ui/commands/policiesCommand.js.map +1 -1
  465. package/dist/src/ui/commands/policiesCommand.test.js +50 -4
  466. package/dist/src/ui/commands/policiesCommand.test.js.map +1 -1
  467. package/dist/src/ui/commands/privacyCommand.d.ts +1 -1
  468. package/dist/src/ui/commands/privacyCommand.js +1 -1
  469. package/dist/src/ui/commands/privacyCommand.js.map +1 -1
  470. package/dist/src/ui/commands/restoreCommand.js +6 -6
  471. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  472. package/dist/src/ui/commands/restoreCommand.test.js +6 -3
  473. package/dist/src/ui/commands/restoreCommand.test.js.map +1 -1
  474. package/dist/src/ui/commands/resumeCommand.js +3 -1
  475. package/dist/src/ui/commands/resumeCommand.js.map +1 -1
  476. package/dist/src/ui/commands/resumeCommand.test.js +28 -0
  477. package/dist/src/ui/commands/resumeCommand.test.js.map +1 -0
  478. package/dist/src/ui/commands/rewindCommand.js +9 -5
  479. package/dist/src/ui/commands/rewindCommand.js.map +1 -1
  480. package/dist/src/ui/commands/rewindCommand.test.js +20 -9
  481. package/dist/src/ui/commands/rewindCommand.test.js.map +1 -1
  482. package/dist/src/ui/commands/settingsCommand.d.ts +1 -1
  483. package/dist/src/ui/commands/settingsCommand.js +2 -1
  484. package/dist/src/ui/commands/settingsCommand.js.map +1 -1
  485. package/dist/src/ui/commands/setupGithubCommand.d.ts +1 -1
  486. package/dist/src/ui/commands/setupGithubCommand.js +9 -7
  487. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  488. package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
  489. package/dist/src/ui/commands/shortcutsCommand.d.ts +1 -1
  490. package/dist/src/ui/commands/shortcutsCommand.js.map +1 -1
  491. package/dist/src/ui/commands/skillsCommand.js +23 -13
  492. package/dist/src/ui/commands/skillsCommand.js.map +1 -1
  493. package/dist/src/ui/commands/skillsCommand.test.js +19 -20
  494. package/dist/src/ui/commands/skillsCommand.test.js.map +1 -1
  495. package/dist/src/ui/commands/statsCommand.js +27 -14
  496. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  497. package/dist/src/ui/commands/statsCommand.test.js +20 -4
  498. package/dist/src/ui/commands/statsCommand.test.js.map +1 -1
  499. package/dist/src/ui/commands/{shellsCommand.d.ts → tasksCommand.d.ts} +1 -1
  500. package/dist/src/ui/commands/{shellsCommand.js → tasksCommand.js} +6 -6
  501. package/dist/src/ui/commands/tasksCommand.js.map +1 -0
  502. package/dist/src/ui/commands/tasksCommand.test.js +30 -0
  503. package/dist/src/ui/commands/tasksCommand.test.js.map +1 -0
  504. package/dist/src/ui/commands/terminalSetupCommand.d.ts +1 -1
  505. package/dist/src/ui/commands/terminalSetupCommand.js.map +1 -1
  506. package/dist/src/ui/commands/themeCommand.d.ts +1 -1
  507. package/dist/src/ui/commands/themeCommand.js +1 -1
  508. package/dist/src/ui/commands/themeCommand.js.map +1 -1
  509. package/dist/src/ui/commands/toolsCommand.js +43 -27
  510. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  511. package/dist/src/ui/commands/toolsCommand.test.js +97 -10
  512. package/dist/src/ui/commands/toolsCommand.test.js.map +1 -1
  513. package/dist/src/ui/commands/types.d.ts +26 -5
  514. package/dist/src/ui/commands/types.js +4 -1
  515. package/dist/src/ui/commands/types.js.map +1 -1
  516. package/dist/src/ui/commands/upgradeCommand.d.ts +11 -0
  517. package/dist/src/ui/commands/upgradeCommand.js +58 -0
  518. package/dist/src/ui/commands/upgradeCommand.js.map +1 -0
  519. package/dist/src/ui/commands/upgradeCommand.test.d.ts +6 -0
  520. package/dist/src/ui/commands/upgradeCommand.test.js +102 -0
  521. package/dist/src/ui/commands/upgradeCommand.test.js.map +1 -0
  522. package/dist/src/ui/commands/vimCommand.d.ts +1 -1
  523. package/dist/src/ui/commands/vimCommand.js +1 -0
  524. package/dist/src/ui/commands/vimCommand.js.map +1 -1
  525. package/dist/src/ui/components/AboutBox.js +2 -2
  526. package/dist/src/ui/components/AboutBox.test.js +14 -10
  527. package/dist/src/ui/components/AboutBox.test.js.map +1 -1
  528. package/dist/src/ui/components/AdminSettingsChangedDialog.js +3 -1
  529. package/dist/src/ui/components/AdminSettingsChangedDialog.js.map +1 -1
  530. package/dist/src/ui/components/AdminSettingsChangedDialog.test.js +4 -4
  531. package/dist/src/ui/components/AdminSettingsChangedDialog.test.js.map +1 -1
  532. package/dist/src/ui/components/AgentConfigDialog.d.ts +4 -2
  533. package/dist/src/ui/components/AgentConfigDialog.js +25 -38
  534. package/dist/src/ui/components/AgentConfigDialog.js.map +1 -1
  535. package/dist/src/ui/components/AgentConfigDialog.test.js +52 -26
  536. package/dist/src/ui/components/AgentConfigDialog.test.js.map +1 -1
  537. package/dist/src/ui/components/AlternateBufferQuittingDisplay.js +2 -4
  538. package/dist/src/ui/components/AlternateBufferQuittingDisplay.js.map +1 -1
  539. package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js +23 -18
  540. package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js.map +1 -1
  541. package/dist/src/ui/components/AnsiOutput.js +7 -1
  542. package/dist/src/ui/components/AnsiOutput.js.map +1 -1
  543. package/dist/src/ui/components/AnsiOutput.test.js +40 -19
  544. package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
  545. package/dist/src/ui/components/AppHeader.d.ts +3 -2
  546. package/dist/src/ui/components/AppHeader.js +55 -8
  547. package/dist/src/ui/components/AppHeader.js.map +1 -1
  548. package/dist/src/ui/components/AppHeader.test.js +62 -40
  549. package/dist/src/ui/components/AppHeader.test.js.map +1 -1
  550. package/dist/src/ui/components/AppHeaderIcon.test.d.ts +6 -0
  551. package/dist/src/ui/components/AppHeaderIcon.test.js +39 -0
  552. package/dist/src/ui/components/AppHeaderIcon.test.js.map +1 -0
  553. package/dist/src/ui/components/ApprovalModeIndicator.d.ts +1 -1
  554. package/dist/src/ui/components/ApprovalModeIndicator.js +14 -10
  555. package/dist/src/ui/components/ApprovalModeIndicator.js.map +1 -1
  556. package/dist/src/ui/components/ApprovalModeIndicator.test.js +12 -12
  557. package/dist/src/ui/components/ApprovalModeIndicator.test.js.map +1 -1
  558. package/dist/src/ui/components/AsciiArt.d.ts +9 -6
  559. package/dist/src/ui/components/AsciiArt.js +24 -6
  560. package/dist/src/ui/components/AsciiArt.js.map +1 -1
  561. package/dist/src/ui/components/AskUserDialog.d.ts +5 -1
  562. package/dist/src/ui/components/AskUserDialog.js +126 -54
  563. package/dist/src/ui/components/AskUserDialog.js.map +1 -1
  564. package/dist/src/ui/components/AskUserDialog.test.js +394 -96
  565. package/dist/src/ui/components/AskUserDialog.test.js.map +1 -1
  566. package/dist/src/ui/components/BackgroundTaskDisplay.d.ts +16 -0
  567. package/dist/src/ui/components/{BackgroundShellDisplay.js → BackgroundTaskDisplay.js} +36 -19
  568. package/dist/src/ui/components/BackgroundTaskDisplay.js.map +1 -0
  569. package/dist/src/ui/components/{BackgroundShellDisplay.test.js → BackgroundTaskDisplay.test.js} +54 -66
  570. package/dist/src/ui/components/BackgroundTaskDisplay.test.js.map +1 -0
  571. package/dist/src/ui/components/Banner.js +4 -4
  572. package/dist/src/ui/components/Banner.js.map +1 -1
  573. package/dist/src/ui/components/Banner.test.js +12 -7
  574. package/dist/src/ui/components/Banner.test.js.map +1 -1
  575. package/dist/src/ui/components/BubblingRegression.test.js +3 -1
  576. package/dist/src/ui/components/BubblingRegression.test.js.map +1 -1
  577. package/dist/src/ui/components/Checklist.js +1 -1
  578. package/dist/src/ui/components/Checklist.js.map +1 -1
  579. package/dist/src/ui/components/Checklist.test.js +12 -12
  580. package/dist/src/ui/components/Checklist.test.js.map +1 -1
  581. package/dist/src/ui/components/ChecklistItem.d.ts +1 -1
  582. package/dist/src/ui/components/ChecklistItem.js +3 -0
  583. package/dist/src/ui/components/ChecklistItem.js.map +1 -1
  584. package/dist/src/ui/components/ChecklistItem.test.js +7 -6
  585. package/dist/src/ui/components/ChecklistItem.test.js.map +1 -1
  586. package/dist/src/ui/components/CliSpinner.test.js +8 -5
  587. package/dist/src/ui/components/CliSpinner.test.js.map +1 -1
  588. package/dist/src/ui/components/ColorsDisplay.d.ts +12 -0
  589. package/dist/src/ui/components/ColorsDisplay.js +119 -0
  590. package/dist/src/ui/components/ColorsDisplay.js.map +1 -0
  591. package/dist/src/ui/components/ColorsDisplay.test.d.ts +6 -0
  592. package/dist/src/ui/components/ColorsDisplay.test.js +107 -0
  593. package/dist/src/ui/components/ColorsDisplay.test.js.map +1 -0
  594. package/dist/src/ui/components/Composer.d.ts +1 -1
  595. package/dist/src/ui/components/Composer.js +53 -58
  596. package/dist/src/ui/components/Composer.js.map +1 -1
  597. package/dist/src/ui/components/Composer.test.js +436 -108
  598. package/dist/src/ui/components/Composer.test.js.map +1 -1
  599. package/dist/src/ui/components/ConfigExtensionDialog.js +2 -2
  600. package/dist/src/ui/components/ConfigExtensionDialog.js.map +1 -1
  601. package/dist/src/ui/components/ConfigInitDisplay.js +4 -4
  602. package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -1
  603. package/dist/src/ui/components/ConfigInitDisplay.test.js +7 -7
  604. package/dist/src/ui/components/ConfigInitDisplay.test.js.map +1 -1
  605. package/dist/src/ui/components/ConsentPrompt.js +5 -4
  606. package/dist/src/ui/components/ConsentPrompt.js.map +1 -1
  607. package/dist/src/ui/components/ConsentPrompt.test.js +10 -8
  608. package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -1
  609. package/dist/src/ui/components/ConsoleSummaryDisplay.test.js +7 -5
  610. package/dist/src/ui/components/ConsoleSummaryDisplay.test.js.map +1 -1
  611. package/dist/src/ui/components/ContextSummaryDisplay.js +5 -10
  612. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  613. package/dist/src/ui/components/ContextSummaryDisplay.test.js +9 -30
  614. package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -1
  615. package/dist/src/ui/components/ContextUsageDisplay.d.ts +1 -1
  616. package/dist/src/ui/components/ContextUsageDisplay.js +17 -5
  617. package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
  618. package/dist/src/ui/components/ContextUsageDisplay.test.js +26 -19
  619. package/dist/src/ui/components/ContextUsageDisplay.test.js.map +1 -1
  620. package/dist/src/ui/components/CopyModeWarning.js +3 -6
  621. package/dist/src/ui/components/CopyModeWarning.js.map +1 -1
  622. package/dist/src/ui/components/CopyModeWarning.test.js +14 -12
  623. package/dist/src/ui/components/CopyModeWarning.test.js.map +1 -1
  624. package/dist/src/ui/components/DebugProfiler.js +12 -0
  625. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  626. package/dist/src/ui/components/DebugProfiler.test.js +13 -14
  627. package/dist/src/ui/components/DebugProfiler.test.js.map +1 -1
  628. package/dist/src/ui/components/DetailedMessagesDisplay.d.ts +0 -2
  629. package/dist/src/ui/components/DetailedMessagesDisplay.js +12 -7
  630. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  631. package/dist/src/ui/components/DetailedMessagesDisplay.test.js +50 -9
  632. package/dist/src/ui/components/DetailedMessagesDisplay.test.js.map +1 -1
  633. package/dist/src/ui/components/DialogManager.js +25 -9
  634. package/dist/src/ui/components/DialogManager.js.map +1 -1
  635. package/dist/src/ui/components/DialogManager.test.js +11 -5
  636. package/dist/src/ui/components/DialogManager.test.js.map +1 -1
  637. package/dist/src/ui/components/EditorSettingsDialog.d.ts +1 -1
  638. package/dist/src/ui/components/EditorSettingsDialog.js +2 -3
  639. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  640. package/dist/src/ui/components/EditorSettingsDialog.test.js +13 -11
  641. package/dist/src/ui/components/EditorSettingsDialog.test.js.map +1 -1
  642. package/dist/src/ui/components/EmptyWalletDialog.d.ts +22 -0
  643. package/dist/src/ui/components/EmptyWalletDialog.js +33 -0
  644. package/dist/src/ui/components/EmptyWalletDialog.js.map +1 -0
  645. package/dist/src/ui/components/EmptyWalletDialog.test.d.ts +6 -0
  646. package/dist/src/ui/components/EmptyWalletDialog.test.js +116 -0
  647. package/dist/src/ui/components/EmptyWalletDialog.test.js.map +1 -0
  648. package/dist/src/ui/components/ExitPlanModeDialog.d.ts +2 -1
  649. package/dist/src/ui/components/ExitPlanModeDialog.js +49 -9
  650. package/dist/src/ui/components/ExitPlanModeDialog.js.map +1 -1
  651. package/dist/src/ui/components/ExitPlanModeDialog.test.js +81 -37
  652. package/dist/src/ui/components/ExitPlanModeDialog.test.js.map +1 -1
  653. package/dist/src/ui/components/ExitWarning.test.js +14 -10
  654. package/dist/src/ui/components/ExitWarning.test.js.map +1 -1
  655. package/dist/src/ui/components/FolderTrustDialog.d.ts +2 -0
  656. package/dist/src/ui/components/FolderTrustDialog.js +52 -7
  657. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  658. package/dist/src/ui/components/FolderTrustDialog.test.js +256 -23
  659. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  660. package/dist/src/ui/components/Footer.d.ts +13 -0
  661. package/dist/src/ui/components/Footer.js +228 -14
  662. package/dist/src/ui/components/Footer.js.map +1 -1
  663. package/dist/src/ui/components/Footer.test.js +547 -109
  664. package/dist/src/ui/components/Footer.test.js.map +1 -1
  665. package/dist/src/ui/components/FooterConfigDialog.d.ts +11 -0
  666. package/dist/src/ui/components/FooterConfigDialog.js +214 -0
  667. package/dist/src/ui/components/FooterConfigDialog.js.map +1 -0
  668. package/dist/src/ui/components/FooterConfigDialog.test.d.ts +6 -0
  669. package/dist/src/ui/components/FooterConfigDialog.test.js +191 -0
  670. package/dist/src/ui/components/FooterConfigDialog.test.js.map +1 -0
  671. package/dist/src/ui/components/GeminiRespondingSpinner.d.ts +6 -5
  672. package/dist/src/ui/components/GeminiRespondingSpinner.js +6 -35
  673. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
  674. package/dist/src/ui/components/GeminiRespondingSpinner.test.js +23 -19
  675. package/dist/src/ui/components/GeminiRespondingSpinner.test.js.map +1 -1
  676. package/dist/src/ui/components/GeminiSpinner.d.ts +13 -0
  677. package/dist/src/ui/components/GeminiSpinner.js +35 -0
  678. package/dist/src/ui/components/GeminiSpinner.js.map +1 -0
  679. package/dist/src/ui/components/GradientRegression.test.js +22 -11
  680. package/dist/src/ui/components/GradientRegression.test.js.map +1 -1
  681. package/dist/src/ui/components/Header.test.js +16 -12
  682. package/dist/src/ui/components/Header.test.js.map +1 -1
  683. package/dist/src/ui/components/Help.js +3 -3
  684. package/dist/src/ui/components/Help.js.map +1 -1
  685. package/dist/src/ui/components/Help.test.js +8 -8
  686. package/dist/src/ui/components/Help.test.js.map +1 -1
  687. package/dist/src/ui/components/HistoryItemDisplay.d.ts +5 -3
  688. package/dist/src/ui/components/HistoryItemDisplay.js +15 -12
  689. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  690. package/dist/src/ui/components/HistoryItemDisplay.test.js +95 -44
  691. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  692. package/dist/src/ui/components/HookStatusDisplay.js +18 -11
  693. package/dist/src/ui/components/HookStatusDisplay.js.map +1 -1
  694. package/dist/src/ui/components/HookStatusDisplay.test.js +35 -9
  695. package/dist/src/ui/components/HookStatusDisplay.test.js.map +1 -1
  696. package/dist/src/ui/components/HooksDialog.d.ts +36 -0
  697. package/dist/src/ui/components/HooksDialog.js +83 -0
  698. package/dist/src/ui/components/HooksDialog.js.map +1 -0
  699. package/dist/src/ui/components/HooksDialog.test.d.ts +6 -0
  700. package/dist/src/ui/components/HooksDialog.test.js +175 -0
  701. package/dist/src/ui/components/HooksDialog.test.js.map +1 -0
  702. package/dist/src/ui/components/IdeTrustChangeDialog.test.js +39 -19
  703. package/dist/src/ui/components/IdeTrustChangeDialog.test.js.map +1 -1
  704. package/dist/src/ui/components/InputPrompt.d.ts +12 -8
  705. package/dist/src/ui/components/InputPrompt.js +383 -180
  706. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  707. package/dist/src/ui/components/InputPrompt.test.d.ts +12 -1
  708. package/dist/src/ui/components/InputPrompt.test.js +701 -239
  709. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  710. package/dist/src/ui/components/LoadingIndicator.d.ts +7 -0
  711. package/dist/src/ui/components/LoadingIndicator.js +18 -13
  712. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  713. package/dist/src/ui/components/LoadingIndicator.test.js +170 -60
  714. package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
  715. package/dist/src/ui/components/LogoutConfirmationDialog.js +3 -3
  716. package/dist/src/ui/components/LogoutConfirmationDialog.js.map +1 -1
  717. package/dist/src/ui/components/LogoutConfirmationDialog.test.js +23 -12
  718. package/dist/src/ui/components/LogoutConfirmationDialog.test.js.map +1 -1
  719. package/dist/src/ui/components/LoopDetectionConfirmation.js +1 -1
  720. package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -1
  721. package/dist/src/ui/components/LoopDetectionConfirmation.test.js +7 -5
  722. package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +1 -1
  723. package/dist/src/ui/components/MainContent.d.ts +1 -1
  724. package/dist/src/ui/components/MainContent.js +144 -29
  725. package/dist/src/ui/components/MainContent.js.map +1 -1
  726. package/dist/src/ui/components/MainContent.test.js +558 -27
  727. package/dist/src/ui/components/MainContent.test.js.map +1 -1
  728. package/dist/src/ui/components/MemoryUsageDisplay.d.ts +4 -1
  729. package/dist/src/ui/components/MemoryUsageDisplay.js +10 -9
  730. package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
  731. package/dist/src/ui/components/MemoryUsageDisplay.test.js +6 -3
  732. package/dist/src/ui/components/MemoryUsageDisplay.test.js.map +1 -1
  733. package/dist/src/ui/components/ModelDialog.js +131 -21
  734. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  735. package/dist/src/ui/components/ModelDialog.test.js +148 -35
  736. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  737. package/dist/src/ui/components/ModelQuotaDisplay.d.ts +18 -0
  738. package/dist/src/ui/components/ModelQuotaDisplay.js +104 -0
  739. package/dist/src/ui/components/ModelQuotaDisplay.js.map +1 -0
  740. package/dist/src/ui/components/ModelQuotaDisplay.test.d.ts +6 -0
  741. package/dist/src/ui/components/ModelQuotaDisplay.test.js +62 -0
  742. package/dist/src/ui/components/ModelQuotaDisplay.test.js.map +1 -0
  743. package/dist/src/ui/components/ModelStatsDisplay.js +56 -4
  744. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  745. package/dist/src/ui/components/ModelStatsDisplay.test.js +212 -20
  746. package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
  747. package/dist/src/ui/components/MultiFolderTrustDialog.d.ts +1 -1
  748. package/dist/src/ui/components/MultiFolderTrustDialog.js +2 -1
  749. package/dist/src/ui/components/MultiFolderTrustDialog.js.map +1 -1
  750. package/dist/src/ui/components/MultiFolderTrustDialog.test.js +24 -9
  751. package/dist/src/ui/components/MultiFolderTrustDialog.test.js.map +1 -1
  752. package/dist/src/ui/components/NewAgentsNotification.d.ts +1 -1
  753. package/dist/src/ui/components/NewAgentsNotification.js +17 -1
  754. package/dist/src/ui/components/NewAgentsNotification.js.map +1 -1
  755. package/dist/src/ui/components/NewAgentsNotification.test.js +39 -4
  756. package/dist/src/ui/components/NewAgentsNotification.test.js.map +1 -1
  757. package/dist/src/ui/components/Notifications.js +50 -4
  758. package/dist/src/ui/components/Notifications.js.map +1 -1
  759. package/dist/src/ui/components/Notifications.test.js +160 -36
  760. package/dist/src/ui/components/Notifications.test.js.map +1 -1
  761. package/dist/src/ui/components/OverageMenuDialog.d.ts +22 -0
  762. package/dist/src/ui/components/OverageMenuDialog.js +32 -0
  763. package/dist/src/ui/components/OverageMenuDialog.js.map +1 -0
  764. package/dist/src/ui/components/OverageMenuDialog.test.d.ts +6 -0
  765. package/dist/src/ui/components/OverageMenuDialog.test.js +118 -0
  766. package/dist/src/ui/components/OverageMenuDialog.test.js.map +1 -0
  767. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +31 -12
  768. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
  769. package/dist/src/ui/components/PolicyUpdateDialog.d.ts +18 -0
  770. package/dist/src/ui/components/PolicyUpdateDialog.js +61 -0
  771. package/dist/src/ui/components/PolicyUpdateDialog.js.map +1 -0
  772. package/dist/src/ui/components/PolicyUpdateDialog.test.d.ts +6 -0
  773. package/dist/src/ui/components/PolicyUpdateDialog.test.js +92 -0
  774. package/dist/src/ui/components/PolicyUpdateDialog.test.js.map +1 -0
  775. package/dist/src/ui/components/ProQuotaDialog.d.ts +4 -1
  776. package/dist/src/ui/components/ProQuotaDialog.js +13 -6
  777. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
  778. package/dist/src/ui/components/ProQuotaDialog.test.js +53 -22
  779. package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
  780. package/dist/src/ui/components/ProgressBar.d.ts +13 -0
  781. package/dist/src/ui/components/ProgressBar.js +17 -0
  782. package/dist/src/ui/components/ProgressBar.js.map +1 -0
  783. package/dist/src/ui/components/ProgressBar.test.d.ts +6 -0
  784. package/dist/src/ui/components/ProgressBar.test.js +28 -0
  785. package/dist/src/ui/components/ProgressBar.test.js.map +1 -0
  786. package/dist/src/ui/components/QueuedMessageDisplay.test.js +11 -11
  787. package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -1
  788. package/dist/src/ui/components/QuittingDisplay.test.js +7 -5
  789. package/dist/src/ui/components/QuittingDisplay.test.js.map +1 -1
  790. package/dist/src/ui/components/QuotaDisplay.d.ts +2 -0
  791. package/dist/src/ui/components/QuotaDisplay.js +23 -14
  792. package/dist/src/ui/components/QuotaDisplay.js.map +1 -1
  793. package/dist/src/ui/components/QuotaDisplay.test.js +41 -23
  794. package/dist/src/ui/components/QuotaDisplay.test.js.map +1 -1
  795. package/dist/src/ui/components/QuotaStatsInfo.js +13 -9
  796. package/dist/src/ui/components/QuotaStatsInfo.js.map +1 -1
  797. package/dist/src/ui/components/RatingWidget.js +2 -2
  798. package/dist/src/ui/components/RatingWidget.js.map +1 -1
  799. package/dist/src/ui/components/RawMarkdownIndicator.js +3 -1
  800. package/dist/src/ui/components/RawMarkdownIndicator.js.map +1 -1
  801. package/dist/src/ui/components/RawMarkdownIndicator.test.js +11 -7
  802. package/dist/src/ui/components/RawMarkdownIndicator.test.js.map +1 -1
  803. package/dist/src/ui/components/RewindConfirmation.js +11 -3
  804. package/dist/src/ui/components/RewindConfirmation.js.map +1 -1
  805. package/dist/src/ui/components/RewindConfirmation.test.js +11 -7
  806. package/dist/src/ui/components/RewindConfirmation.test.js.map +1 -1
  807. package/dist/src/ui/components/RewindViewer.js +32 -9
  808. package/dist/src/ui/components/RewindViewer.js.map +1 -1
  809. package/dist/src/ui/components/RewindViewer.test.js +90 -18
  810. package/dist/src/ui/components/RewindViewer.test.js.map +1 -1
  811. package/dist/src/ui/components/SessionBrowser/SessionBrowserEmpty.d.ts +10 -0
  812. package/dist/src/ui/components/SessionBrowser/SessionBrowserEmpty.js +8 -0
  813. package/dist/src/ui/components/SessionBrowser/SessionBrowserEmpty.js.map +1 -0
  814. package/dist/src/ui/components/SessionBrowser/SessionBrowserError.d.ts +13 -0
  815. package/dist/src/ui/components/SessionBrowser/SessionBrowserError.js +8 -0
  816. package/dist/src/ui/components/SessionBrowser/SessionBrowserError.js.map +1 -0
  817. package/dist/src/ui/components/SessionBrowser/SessionBrowserLoading.d.ts +10 -0
  818. package/dist/src/ui/components/SessionBrowser/SessionBrowserLoading.js +8 -0
  819. package/dist/src/ui/components/SessionBrowser/SessionBrowserLoading.js.map +1 -0
  820. package/dist/src/ui/components/SessionBrowser/SessionBrowserNav.d.ts +23 -0
  821. package/dist/src/ui/components/SessionBrowser/SessionBrowserNav.js +17 -0
  822. package/dist/src/ui/components/SessionBrowser/SessionBrowserNav.js.map +1 -0
  823. package/dist/src/ui/components/SessionBrowser/SessionBrowserSearchNav.test.d.ts +6 -0
  824. package/dist/src/ui/components/SessionBrowser/SessionBrowserSearchNav.test.js +47 -0
  825. package/dist/src/ui/components/SessionBrowser/SessionBrowserSearchNav.test.js.map +1 -0
  826. package/dist/src/ui/components/SessionBrowser/SessionBrowserStates.test.d.ts +6 -0
  827. package/dist/src/ui/components/SessionBrowser/SessionBrowserStates.test.js +27 -0
  828. package/dist/src/ui/components/SessionBrowser/SessionBrowserStates.test.js.map +1 -0
  829. package/dist/src/ui/components/SessionBrowser/SessionListHeader.d.ts +13 -0
  830. package/dist/src/ui/components/SessionBrowser/SessionListHeader.js +8 -0
  831. package/dist/src/ui/components/SessionBrowser/SessionListHeader.js.map +1 -0
  832. package/dist/src/ui/components/SessionBrowser/utils.d.ts +33 -0
  833. package/dist/src/ui/components/SessionBrowser/utils.js +100 -0
  834. package/dist/src/ui/components/SessionBrowser/utils.js.map +1 -0
  835. package/dist/src/ui/components/SessionBrowser/utils.test.d.ts +6 -0
  836. package/dist/src/ui/components/SessionBrowser/utils.test.js +108 -0
  837. package/dist/src/ui/components/SessionBrowser/utils.test.js.map +1 -0
  838. package/dist/src/ui/components/SessionBrowser.js +13 -128
  839. package/dist/src/ui/components/SessionBrowser.js.map +1 -1
  840. package/dist/src/ui/components/SessionBrowser.test.js +22 -13
  841. package/dist/src/ui/components/SessionBrowser.test.js.map +1 -1
  842. package/dist/src/ui/components/SessionSummaryDisplay.js +17 -1
  843. package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
  844. package/dist/src/ui/components/SessionSummaryDisplay.test.js +118 -20
  845. package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
  846. package/dist/src/ui/components/SettingsDialog.d.ts +1 -5
  847. package/dist/src/ui/components/SettingsDialog.js +120 -329
  848. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  849. package/dist/src/ui/components/SettingsDialog.test.js +366 -212
  850. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  851. package/dist/src/ui/components/ShellInputPrompt.js +11 -3
  852. package/dist/src/ui/components/ShellInputPrompt.js.map +1 -1
  853. package/dist/src/ui/components/ShellInputPrompt.test.js +111 -67
  854. package/dist/src/ui/components/ShellInputPrompt.test.js.map +1 -1
  855. package/dist/src/ui/components/ShellModeIndicator.test.js +3 -2
  856. package/dist/src/ui/components/ShellModeIndicator.test.js.map +1 -1
  857. package/dist/src/ui/components/ShortcutsHelp.js +46 -17
  858. package/dist/src/ui/components/ShortcutsHelp.js.map +1 -1
  859. package/dist/src/ui/components/ShortcutsHelp.test.js +11 -3
  860. package/dist/src/ui/components/ShortcutsHelp.test.js.map +1 -1
  861. package/dist/src/ui/components/ShowMoreLines.d.ts +2 -1
  862. package/dist/src/ui/components/ShowMoreLines.js +7 -5
  863. package/dist/src/ui/components/ShowMoreLines.js.map +1 -1
  864. package/dist/src/ui/components/ShowMoreLines.test.js +42 -7
  865. package/dist/src/ui/components/ShowMoreLines.test.js.map +1 -1
  866. package/dist/src/ui/components/ShowMoreLinesLayout.test.d.ts +1 -0
  867. package/dist/src/ui/components/ShowMoreLinesLayout.test.js +67 -0
  868. package/dist/src/ui/components/ShowMoreLinesLayout.test.js.map +1 -0
  869. package/dist/src/ui/components/StatsDisplay.d.ts +4 -2
  870. package/dist/src/ui/components/StatsDisplay.js +58 -88
  871. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  872. package/dist/src/ui/components/StatsDisplay.test.js +109 -166
  873. package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
  874. package/dist/src/ui/components/StatusDisplay.d.ts +1 -2
  875. package/dist/src/ui/components/StatusDisplay.js +1 -6
  876. package/dist/src/ui/components/StatusDisplay.js.map +1 -1
  877. package/dist/src/ui/components/StatusDisplay.test.js +37 -24
  878. package/dist/src/ui/components/StatusDisplay.test.js.map +1 -1
  879. package/dist/src/ui/components/StatusRow.d.ts +32 -0
  880. package/dist/src/ui/components/StatusRow.js +180 -0
  881. package/dist/src/ui/components/StatusRow.js.map +1 -0
  882. package/dist/src/ui/components/StatusRow.test.d.ts +6 -0
  883. package/dist/src/ui/components/StatusRow.test.js +99 -0
  884. package/dist/src/ui/components/StatusRow.test.js.map +1 -0
  885. package/dist/src/ui/components/StickyHeader.test.js +3 -2
  886. package/dist/src/ui/components/StickyHeader.test.js.map +1 -1
  887. package/dist/src/ui/components/SuggestionsDisplay.d.ts +3 -0
  888. package/dist/src/ui/components/SuggestionsDisplay.js +9 -5
  889. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  890. package/dist/src/ui/components/SuggestionsDisplay.test.js +39 -13
  891. package/dist/src/ui/components/SuggestionsDisplay.test.js.map +1 -1
  892. package/dist/src/ui/components/Table.test.js +26 -8
  893. package/dist/src/ui/components/Table.test.js.map +1 -1
  894. package/dist/src/ui/components/ThemeDialog.d.ts +1 -1
  895. package/dist/src/ui/components/ThemeDialog.js +31 -32
  896. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  897. package/dist/src/ui/components/ThemeDialog.test.js +48 -24
  898. package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
  899. package/dist/src/ui/components/ThemedGradient.test.js +7 -2
  900. package/dist/src/ui/components/ThemedGradient.test.js.map +1 -1
  901. package/dist/src/ui/components/Tips.d.ts +1 -1
  902. package/dist/src/ui/components/Tips.js +1 -1
  903. package/dist/src/ui/components/Tips.js.map +1 -1
  904. package/dist/src/ui/components/Tips.test.d.ts +1 -1
  905. package/dist/src/ui/components/Tips.test.js +8 -8
  906. package/dist/src/ui/components/Tips.test.js.map +1 -1
  907. package/dist/src/ui/components/ToastDisplay.d.ts +2 -1
  908. package/dist/src/ui/components/ToastDisplay.js +13 -6
  909. package/dist/src/ui/components/ToastDisplay.js.map +1 -1
  910. package/dist/src/ui/components/ToastDisplay.test.js +69 -34
  911. package/dist/src/ui/components/ToastDisplay.test.js.map +1 -1
  912. package/dist/src/ui/components/ToolConfirmationQueue.js +34 -19
  913. package/dist/src/ui/components/ToolConfirmationQueue.js.map +1 -1
  914. package/dist/src/ui/components/ToolConfirmationQueue.test.js +276 -50
  915. package/dist/src/ui/components/ToolConfirmationQueue.test.js.map +1 -1
  916. package/dist/src/ui/components/ToolStatsDisplay.test.js +19 -12
  917. package/dist/src/ui/components/ToolStatsDisplay.test.js.map +1 -1
  918. package/dist/src/ui/components/UpdateNotification.test.js +3 -2
  919. package/dist/src/ui/components/UpdateNotification.test.js.map +1 -1
  920. package/dist/src/ui/components/UserIdentity.d.ts +1 -1
  921. package/dist/src/ui/components/UserIdentity.js +14 -11
  922. package/dist/src/ui/components/UserIdentity.js.map +1 -1
  923. package/dist/src/ui/components/UserIdentity.test.d.ts +1 -1
  924. package/dist/src/ui/components/UserIdentity.test.js +60 -17
  925. package/dist/src/ui/components/UserIdentity.test.js.map +1 -1
  926. package/dist/src/ui/components/ValidationDialog.js +4 -2
  927. package/dist/src/ui/components/ValidationDialog.js.map +1 -1
  928. package/dist/src/ui/components/ValidationDialog.test.js +25 -16
  929. package/dist/src/ui/components/ValidationDialog.test.js.map +1 -1
  930. package/dist/src/ui/components/messages/CompressionMessage.test.js +91 -102
  931. package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -1
  932. package/dist/src/ui/components/messages/DenseToolMessage.d.ts +13 -0
  933. package/dist/src/ui/components/messages/DenseToolMessage.js +270 -0
  934. package/dist/src/ui/components/messages/DenseToolMessage.js.map +1 -0
  935. package/dist/src/ui/components/messages/DenseToolMessage.test.d.ts +6 -0
  936. package/dist/src/ui/components/messages/DenseToolMessage.test.js +383 -0
  937. package/dist/src/ui/components/messages/DenseToolMessage.test.js.map +1 -0
  938. package/dist/src/ui/components/messages/DiffRenderer.d.ts +18 -0
  939. package/dist/src/ui/components/messages/DiffRenderer.js +55 -35
  940. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
  941. package/dist/src/ui/components/messages/DiffRenderer.test.js +46 -17
  942. package/dist/src/ui/components/messages/DiffRenderer.test.js.map +1 -1
  943. package/dist/src/ui/components/messages/ErrorMessage.test.js +6 -4
  944. package/dist/src/ui/components/messages/ErrorMessage.test.js.map +1 -1
  945. package/dist/src/ui/components/messages/GeminiMessage.js +3 -6
  946. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
  947. package/dist/src/ui/components/messages/GeminiMessage.test.js +15 -4
  948. package/dist/src/ui/components/messages/GeminiMessage.test.js.map +1 -1
  949. package/dist/src/ui/components/messages/GeminiMessageContent.js +4 -7
  950. package/dist/src/ui/components/messages/GeminiMessageContent.js.map +1 -1
  951. package/dist/src/ui/components/messages/HintMessage.d.ts +11 -0
  952. package/dist/src/ui/components/messages/HintMessage.js +14 -0
  953. package/dist/src/ui/components/messages/HintMessage.js.map +1 -0
  954. package/dist/src/ui/components/messages/InfoMessage.d.ts +3 -0
  955. package/dist/src/ui/components/messages/InfoMessage.js +2 -2
  956. package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
  957. package/dist/src/ui/components/messages/InfoMessage.test.js +9 -6
  958. package/dist/src/ui/components/messages/InfoMessage.test.js.map +1 -1
  959. package/dist/src/ui/components/messages/RedirectionConfirmation.test.js +6 -4
  960. package/dist/src/ui/components/messages/RedirectionConfirmation.test.js.map +1 -1
  961. package/dist/src/ui/components/messages/ShellToolMessage.d.ts +2 -3
  962. package/dist/src/ui/components/messages/ShellToolMessage.js +37 -29
  963. package/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -1
  964. package/dist/src/ui/components/messages/ShellToolMessage.test.js +140 -55
  965. package/dist/src/ui/components/messages/ShellToolMessage.test.js.map +1 -1
  966. package/dist/src/ui/components/messages/SubagentGroupDisplay.d.ts +17 -0
  967. package/dist/src/ui/components/messages/SubagentGroupDisplay.js +139 -0
  968. package/dist/src/ui/components/messages/SubagentGroupDisplay.js.map +1 -0
  969. package/dist/src/ui/components/messages/SubagentGroupDisplay.test.d.ts +1 -0
  970. package/dist/src/ui/components/messages/SubagentGroupDisplay.test.js +91 -0
  971. package/dist/src/ui/components/messages/SubagentGroupDisplay.test.js.map +1 -0
  972. package/dist/src/ui/components/messages/SubagentHistoryMessage.d.ts +13 -0
  973. package/dist/src/ui/components/messages/SubagentHistoryMessage.js +4 -0
  974. package/dist/src/ui/components/messages/SubagentHistoryMessage.js.map +1 -0
  975. package/dist/src/ui/components/messages/SubagentHistoryMessage.test.d.ts +6 -0
  976. package/dist/src/ui/components/messages/SubagentHistoryMessage.test.js +68 -0
  977. package/dist/src/ui/components/messages/SubagentHistoryMessage.test.js.map +1 -0
  978. package/dist/src/ui/components/messages/SubagentProgressDisplay.d.ts +14 -0
  979. package/dist/src/ui/components/messages/SubagentProgressDisplay.js +79 -0
  980. package/dist/src/ui/components/messages/SubagentProgressDisplay.js.map +1 -0
  981. package/dist/src/ui/components/messages/SubagentProgressDisplay.test.js +163 -0
  982. package/dist/src/ui/components/messages/SubagentProgressDisplay.test.js.map +1 -0
  983. package/dist/src/ui/components/messages/ThinkingMessage.d.ts +2 -0
  984. package/dist/src/ui/components/messages/ThinkingMessage.js +26 -25
  985. package/dist/src/ui/components/messages/ThinkingMessage.js.map +1 -1
  986. package/dist/src/ui/components/messages/ThinkingMessage.test.js +81 -22
  987. package/dist/src/ui/components/messages/ThinkingMessage.test.js.map +1 -1
  988. package/dist/src/ui/components/messages/Todo.js +5 -3
  989. package/dist/src/ui/components/messages/Todo.js.map +1 -1
  990. package/dist/src/ui/components/messages/Todo.test.js +35 -21
  991. package/dist/src/ui/components/messages/Todo.test.js.map +1 -1
  992. package/dist/src/ui/components/messages/ToolConfirmationMessage.d.ts +4 -2
  993. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +357 -81
  994. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  995. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +296 -31
  996. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  997. package/dist/src/ui/components/messages/ToolGroupMessage.compact.test.d.ts +6 -0
  998. package/dist/src/ui/components/messages/ToolGroupMessage.compact.test.js +147 -0
  999. package/dist/src/ui/components/messages/ToolGroupMessage.compact.test.js.map +1 -0
  1000. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +6 -5
  1001. package/dist/src/ui/components/messages/ToolGroupMessage.js +275 -86
  1002. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  1003. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +495 -293
  1004. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  1005. package/dist/src/ui/components/messages/ToolGroupMessageRegression.test.d.ts +6 -0
  1006. package/dist/src/ui/components/messages/ToolGroupMessageRegression.test.js +101 -0
  1007. package/dist/src/ui/components/messages/ToolGroupMessageRegression.test.js.map +1 -0
  1008. package/dist/src/ui/components/messages/ToolMessage.js +7 -4
  1009. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  1010. package/dist/src/ui/components/messages/ToolMessage.test.js +158 -43
  1011. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  1012. package/dist/src/ui/components/messages/ToolMessageFocusHint.test.js +15 -8
  1013. package/dist/src/ui/components/messages/ToolMessageFocusHint.test.js.map +1 -1
  1014. package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js +15 -5
  1015. package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js.map +1 -1
  1016. package/dist/src/ui/components/messages/ToolOverflowConsistencyChecks.test.d.ts +6 -0
  1017. package/dist/src/ui/components/messages/ToolOverflowConsistencyChecks.test.js +88 -0
  1018. package/dist/src/ui/components/messages/ToolOverflowConsistencyChecks.test.js.map +1 -0
  1019. package/dist/src/ui/components/messages/ToolResultDisplay.d.ts +1 -0
  1020. package/dist/src/ui/components/messages/ToolResultDisplay.js +108 -88
  1021. package/dist/src/ui/components/messages/ToolResultDisplay.js.map +1 -1
  1022. package/dist/src/ui/components/messages/ToolResultDisplay.test.js +193 -55
  1023. package/dist/src/ui/components/messages/ToolResultDisplay.test.js.map +1 -1
  1024. package/dist/src/ui/components/messages/ToolResultDisplayOverflow.test.js +63 -39
  1025. package/dist/src/ui/components/messages/ToolResultDisplayOverflow.test.js.map +1 -1
  1026. package/dist/src/ui/components/messages/ToolShared.d.ts +15 -6
  1027. package/dist/src/ui/components/messages/ToolShared.js +45 -26
  1028. package/dist/src/ui/components/messages/ToolShared.js.map +1 -1
  1029. package/dist/src/ui/components/messages/ToolShared.test.d.ts +6 -0
  1030. package/dist/src/ui/components/messages/ToolShared.test.js +47 -0
  1031. package/dist/src/ui/components/messages/ToolShared.test.js.map +1 -0
  1032. package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.js +17 -10
  1033. package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.js.map +1 -1
  1034. package/dist/src/ui/components/messages/TopicMessage.d.ts +15 -0
  1035. package/dist/src/ui/components/messages/TopicMessage.js +56 -0
  1036. package/dist/src/ui/components/messages/TopicMessage.js.map +1 -0
  1037. package/dist/src/ui/components/messages/TopicMessage.test.d.ts +6 -0
  1038. package/dist/src/ui/components/messages/TopicMessage.test.js +77 -0
  1039. package/dist/src/ui/components/messages/TopicMessage.test.js.map +1 -0
  1040. package/dist/src/ui/components/messages/UserMessage.js +2 -3
  1041. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  1042. package/dist/src/ui/components/messages/UserMessage.test.js +12 -8
  1043. package/dist/src/ui/components/messages/UserMessage.test.js.map +1 -1
  1044. package/dist/src/ui/components/messages/UserShellMessage.js +1 -2
  1045. package/dist/src/ui/components/messages/UserShellMessage.js.map +1 -1
  1046. package/dist/src/ui/components/messages/WarningMessage.test.js +6 -4
  1047. package/dist/src/ui/components/messages/WarningMessage.test.js.map +1 -1
  1048. package/dist/src/ui/components/shared/BaseSelectionList.d.ts +3 -2
  1049. package/dist/src/ui/components/shared/BaseSelectionList.js +25 -20
  1050. package/dist/src/ui/components/shared/BaseSelectionList.js.map +1 -1
  1051. package/dist/src/ui/components/shared/BaseSelectionList.test.js +140 -113
  1052. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  1053. package/dist/src/ui/components/shared/BaseSettingsDialog.d.ts +16 -5
  1054. package/dist/src/ui/components/shared/BaseSettingsDialog.js +130 -170
  1055. package/dist/src/ui/components/shared/BaseSettingsDialog.js.map +1 -1
  1056. package/dist/src/ui/components/shared/BaseSettingsDialog.test.js +244 -48
  1057. package/dist/src/ui/components/shared/BaseSettingsDialog.test.js.map +1 -1
  1058. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js +16 -6
  1059. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js.map +1 -1
  1060. package/dist/src/ui/components/shared/DialogFooter.d.ts +3 -1
  1061. package/dist/src/ui/components/shared/DialogFooter.js +2 -1
  1062. package/dist/src/ui/components/shared/DialogFooter.js.map +1 -1
  1063. package/dist/src/ui/components/shared/EnumSelector.js +0 -5
  1064. package/dist/src/ui/components/shared/EnumSelector.js.map +1 -1
  1065. package/dist/src/ui/components/shared/EnumSelector.test.js +33 -20
  1066. package/dist/src/ui/components/shared/EnumSelector.test.js.map +1 -1
  1067. package/dist/src/ui/components/shared/ExpandableText.test.js +28 -23
  1068. package/dist/src/ui/components/shared/ExpandableText.test.js.map +1 -1
  1069. package/dist/src/ui/components/shared/HalfLinePaddedBox.js +3 -2
  1070. package/dist/src/ui/components/shared/HalfLinePaddedBox.js.map +1 -1
  1071. package/dist/src/ui/components/shared/HalfLinePaddedBox.test.js +4 -4
  1072. package/dist/src/ui/components/shared/HalfLinePaddedBox.test.js.map +1 -1
  1073. package/dist/src/ui/components/shared/HorizontalLine.d.ts +1 -0
  1074. package/dist/src/ui/components/shared/HorizontalLine.js +1 -1
  1075. package/dist/src/ui/components/shared/HorizontalLine.js.map +1 -1
  1076. package/dist/src/ui/components/shared/MaxSizedBox.d.ts +2 -2
  1077. package/dist/src/ui/components/shared/MaxSizedBox.js +18 -6
  1078. package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
  1079. package/dist/src/ui/components/shared/MaxSizedBox.test.js +90 -32
  1080. package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +1 -1
  1081. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +1 -0
  1082. package/dist/src/ui/components/shared/RadioButtonSelect.js +2 -2
  1083. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  1084. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +22 -11
  1085. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +1 -1
  1086. package/dist/src/ui/components/shared/Scrollable.d.ts +5 -1
  1087. package/dist/src/ui/components/shared/Scrollable.js +103 -45
  1088. package/dist/src/ui/components/shared/Scrollable.js.map +1 -1
  1089. package/dist/src/ui/components/shared/Scrollable.test.js +41 -36
  1090. package/dist/src/ui/components/shared/Scrollable.test.js.map +1 -1
  1091. package/dist/src/ui/components/shared/ScrollableList.d.ts +9 -12
  1092. package/dist/src/ui/components/shared/ScrollableList.js +20 -13
  1093. package/dist/src/ui/components/shared/ScrollableList.js.map +1 -1
  1094. package/dist/src/ui/components/shared/ScrollableList.test.js +213 -22
  1095. package/dist/src/ui/components/shared/ScrollableList.test.js.map +1 -1
  1096. package/dist/src/ui/components/shared/SearchableList.d.ts +61 -0
  1097. package/dist/src/ui/components/shared/SearchableList.js +86 -0
  1098. package/dist/src/ui/components/shared/SearchableList.js.map +1 -0
  1099. package/dist/src/ui/components/shared/SearchableList.test.js +169 -0
  1100. package/dist/src/ui/components/shared/SearchableList.test.js.map +1 -0
  1101. package/dist/src/ui/components/shared/SectionHeader.d.ts +1 -0
  1102. package/dist/src/ui/components/shared/SectionHeader.js +1 -1
  1103. package/dist/src/ui/components/shared/SectionHeader.js.map +1 -1
  1104. package/dist/src/ui/components/shared/SectionHeader.test.js +8 -2
  1105. package/dist/src/ui/components/shared/SectionHeader.test.js.map +1 -1
  1106. package/dist/src/ui/components/shared/SlicingMaxSizedBox.d.ts +18 -0
  1107. package/dist/src/ui/components/shared/SlicingMaxSizedBox.js +75 -0
  1108. package/dist/src/ui/components/shared/SlicingMaxSizedBox.js.map +1 -0
  1109. package/dist/src/ui/components/shared/SlicingMaxSizedBox.test.d.ts +6 -0
  1110. package/dist/src/ui/components/shared/SlicingMaxSizedBox.test.js +53 -0
  1111. package/dist/src/ui/components/shared/SlicingMaxSizedBox.test.js.map +1 -0
  1112. package/dist/src/ui/components/shared/TabHeader.js +1 -1
  1113. package/dist/src/ui/components/shared/TabHeader.js.map +1 -1
  1114. package/dist/src/ui/components/shared/TabHeader.test.js +52 -25
  1115. package/dist/src/ui/components/shared/TabHeader.test.js.map +1 -1
  1116. package/dist/src/ui/components/shared/TextInput.d.ts +1 -1
  1117. package/dist/src/ui/components/shared/TextInput.js +7 -3
  1118. package/dist/src/ui/components/shared/TextInput.js.map +1 -1
  1119. package/dist/src/ui/components/shared/TextInput.test.js +144 -66
  1120. package/dist/src/ui/components/shared/TextInput.test.js.map +1 -1
  1121. package/dist/src/ui/components/shared/VirtualizedList.d.ts +13 -1
  1122. package/dist/src/ui/components/shared/VirtualizedList.js +269 -113
  1123. package/dist/src/ui/components/shared/VirtualizedList.js.map +1 -1
  1124. package/dist/src/ui/components/shared/VirtualizedList.test.js +30 -51
  1125. package/dist/src/ui/components/shared/VirtualizedList.test.js.map +1 -1
  1126. package/dist/src/ui/components/shared/performance.test.js +4 -4
  1127. package/dist/src/ui/components/shared/performance.test.js.map +1 -1
  1128. package/dist/src/ui/components/shared/text-buffer.d.ts +172 -2
  1129. package/dist/src/ui/components/shared/text-buffer.js +228 -64
  1130. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  1131. package/dist/src/ui/components/shared/text-buffer.test.js +382 -275
  1132. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  1133. package/dist/src/ui/components/shared/vim-buffer-actions.d.ts +42 -0
  1134. package/dist/src/ui/components/shared/vim-buffer-actions.js +673 -32
  1135. package/dist/src/ui/components/shared/vim-buffer-actions.js.map +1 -1
  1136. package/dist/src/ui/components/shared/vim-buffer-actions.test.js +1296 -42
  1137. package/dist/src/ui/components/shared/vim-buffer-actions.test.js.map +1 -1
  1138. package/dist/src/ui/components/triage/TriageDuplicates.d.ts +1 -1
  1139. package/dist/src/ui/components/triage/TriageDuplicates.js +6 -2
  1140. package/dist/src/ui/components/triage/TriageDuplicates.js.map +1 -1
  1141. package/dist/src/ui/components/triage/TriageIssues.d.ts +1 -1
  1142. package/dist/src/ui/components/triage/TriageIssues.js +6 -2
  1143. package/dist/src/ui/components/triage/TriageIssues.js.map +1 -1
  1144. package/dist/src/ui/components/views/ChatList.test.js +6 -6
  1145. package/dist/src/ui/components/views/ChatList.test.js.map +1 -1
  1146. package/dist/src/ui/components/views/ExtensionDetails.d.ts +18 -0
  1147. package/dist/src/ui/components/views/ExtensionDetails.js +85 -0
  1148. package/dist/src/ui/components/views/ExtensionDetails.js.map +1 -0
  1149. package/dist/src/ui/components/views/ExtensionDetails.test.d.ts +6 -0
  1150. package/dist/src/ui/components/views/ExtensionDetails.test.js +154 -0
  1151. package/dist/src/ui/components/views/ExtensionDetails.test.js.map +1 -0
  1152. package/dist/src/ui/components/views/ExtensionRegistryView.d.ts +15 -0
  1153. package/dist/src/ui/components/views/ExtensionRegistryView.js +97 -0
  1154. package/dist/src/ui/components/views/ExtensionRegistryView.js.map +1 -0
  1155. package/dist/src/ui/components/views/ExtensionRegistryView.test.d.ts +6 -0
  1156. package/dist/src/ui/components/views/ExtensionRegistryView.test.js +222 -0
  1157. package/dist/src/ui/components/views/ExtensionRegistryView.test.js.map +1 -0
  1158. package/dist/src/ui/components/views/ExtensionsList.test.js +16 -19
  1159. package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
  1160. package/dist/src/ui/components/views/McpStatus.d.ts +2 -2
  1161. package/dist/src/ui/components/views/McpStatus.js +8 -3
  1162. package/dist/src/ui/components/views/McpStatus.js.map +1 -1
  1163. package/dist/src/ui/components/views/McpStatus.test.js +47 -26
  1164. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
  1165. package/dist/src/ui/components/views/SkillsList.js +2 -1
  1166. package/dist/src/ui/components/views/SkillsList.js.map +1 -1
  1167. package/dist/src/ui/components/views/SkillsList.test.js +15 -13
  1168. package/dist/src/ui/components/views/SkillsList.test.js.map +1 -1
  1169. package/dist/src/ui/components/views/ToolsList.test.js +6 -6
  1170. package/dist/src/ui/components/views/ToolsList.test.js.map +1 -1
  1171. package/dist/src/ui/constants/tips.js +81 -82
  1172. package/dist/src/ui/constants/tips.js.map +1 -1
  1173. package/dist/src/ui/constants/wittyPhrases.js +107 -107
  1174. package/dist/src/ui/constants/wittyPhrases.js.map +1 -1
  1175. package/dist/src/ui/constants.d.ts +14 -1
  1176. package/dist/src/ui/constants.js +24 -1
  1177. package/dist/src/ui/constants.js.map +1 -1
  1178. package/dist/src/ui/contexts/AppContext.d.ts +2 -1
  1179. package/dist/src/ui/contexts/AppContext.js.map +1 -1
  1180. package/dist/src/ui/contexts/InputContext.d.ts +17 -0
  1181. package/dist/src/ui/contexts/InputContext.js +15 -0
  1182. package/dist/src/ui/contexts/InputContext.js.map +1 -0
  1183. package/dist/src/ui/contexts/KeypressContext.d.ts +8 -3
  1184. package/dist/src/ui/contexts/KeypressContext.js +196 -45
  1185. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  1186. package/dist/src/ui/contexts/KeypressContext.test.js +200 -76
  1187. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  1188. package/dist/src/ui/contexts/MouseContext.d.ts +1 -2
  1189. package/dist/src/ui/contexts/MouseContext.js +7 -3
  1190. package/dist/src/ui/contexts/MouseContext.js.map +1 -1
  1191. package/dist/src/ui/contexts/MouseContext.test.js +32 -21
  1192. package/dist/src/ui/contexts/MouseContext.test.js.map +1 -1
  1193. package/dist/src/ui/contexts/OverflowContext.d.ts +3 -3
  1194. package/dist/src/ui/contexts/OverflowContext.js +49 -20
  1195. package/dist/src/ui/contexts/OverflowContext.js.map +1 -1
  1196. package/dist/src/ui/contexts/ScrollProvider.drag.test.js +6 -6
  1197. package/dist/src/ui/contexts/ScrollProvider.drag.test.js.map +1 -1
  1198. package/dist/src/ui/contexts/ScrollProvider.js +25 -3
  1199. package/dist/src/ui/contexts/ScrollProvider.js.map +1 -1
  1200. package/dist/src/ui/contexts/ScrollProvider.test.js +111 -11
  1201. package/dist/src/ui/contexts/ScrollProvider.test.js.map +1 -1
  1202. package/dist/src/ui/contexts/SessionContext.d.ts +2 -2
  1203. package/dist/src/ui/contexts/SessionContext.js +10 -0
  1204. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  1205. package/dist/src/ui/contexts/SessionContext.test.js +26 -11
  1206. package/dist/src/ui/contexts/SessionContext.test.js.map +1 -1
  1207. package/dist/src/ui/contexts/SettingsContext.d.ts +9 -1
  1208. package/dist/src/ui/contexts/SettingsContext.js +34 -1
  1209. package/dist/src/ui/contexts/SettingsContext.js.map +1 -1
  1210. package/dist/src/ui/contexts/SettingsContext.test.d.ts +6 -0
  1211. package/dist/src/ui/contexts/SettingsContext.test.js +106 -0
  1212. package/dist/src/ui/contexts/SettingsContext.test.js.map +1 -0
  1213. package/dist/src/ui/contexts/TerminalContext.d.ts +1 -0
  1214. package/dist/src/ui/contexts/TerminalContext.js +15 -2
  1215. package/dist/src/ui/contexts/TerminalContext.js.map +1 -1
  1216. package/dist/src/ui/contexts/TerminalContext.test.js +24 -10
  1217. package/dist/src/ui/contexts/TerminalContext.test.js.map +1 -1
  1218. package/dist/src/ui/contexts/ToolActionsContext.d.ts +6 -0
  1219. package/dist/src/ui/contexts/ToolActionsContext.js +28 -18
  1220. package/dist/src/ui/contexts/ToolActionsContext.js.map +1 -1
  1221. package/dist/src/ui/contexts/ToolActionsContext.test.js +136 -56
  1222. package/dist/src/ui/contexts/ToolActionsContext.test.js.map +1 -1
  1223. package/dist/src/ui/contexts/UIActionsContext.d.ts +20 -5
  1224. package/dist/src/ui/contexts/UIActionsContext.js +1 -1
  1225. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  1226. package/dist/src/ui/contexts/UIStateContext.d.ts +51 -19
  1227. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  1228. package/dist/src/ui/contexts/VimModeContext.d.ts +1 -3
  1229. package/dist/src/ui/contexts/VimModeContext.js +7 -16
  1230. package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
  1231. package/dist/src/ui/hooks/atCommandProcessor.d.ts +15 -5
  1232. package/dist/src/ui/hooks/atCommandProcessor.js +47 -18
  1233. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  1234. package/dist/src/ui/hooks/atCommandProcessor.test.js +92 -14
  1235. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  1236. package/dist/src/ui/hooks/atCommandProcessor_agents.test.js +2 -1
  1237. package/dist/src/ui/hooks/atCommandProcessor_agents.test.js.map +1 -1
  1238. package/dist/src/ui/hooks/creditsFlowHandler.d.ts +35 -0
  1239. package/dist/src/ui/hooks/creditsFlowHandler.js +158 -0
  1240. package/dist/src/ui/hooks/creditsFlowHandler.js.map +1 -0
  1241. package/dist/src/ui/hooks/creditsFlowHandler.test.d.ts +6 -0
  1242. package/dist/src/ui/hooks/creditsFlowHandler.test.js +211 -0
  1243. package/dist/src/ui/hooks/creditsFlowHandler.test.js.map +1 -0
  1244. package/dist/src/ui/hooks/shell-completions/gitProvider.d.ts +7 -0
  1245. package/dist/src/ui/hooks/shell-completions/gitProvider.js +73 -0
  1246. package/dist/src/ui/hooks/shell-completions/gitProvider.js.map +1 -0
  1247. package/dist/src/ui/hooks/shell-completions/gitProvider.test.d.ts +6 -0
  1248. package/dist/src/ui/hooks/shell-completions/gitProvider.test.js +73 -0
  1249. package/dist/src/ui/hooks/shell-completions/gitProvider.test.js.map +1 -0
  1250. package/dist/src/ui/hooks/shell-completions/index.d.ts +7 -0
  1251. package/dist/src/ui/hooks/shell-completions/index.js +16 -0
  1252. package/dist/src/ui/hooks/shell-completions/index.js.map +1 -0
  1253. package/dist/src/ui/hooks/shell-completions/npmProvider.d.ts +7 -0
  1254. package/dist/src/ui/hooks/shell-completions/npmProvider.js +67 -0
  1255. package/dist/src/ui/hooks/shell-completions/npmProvider.js.map +1 -0
  1256. package/dist/src/ui/hooks/shell-completions/npmProvider.test.d.ts +6 -0
  1257. package/dist/src/ui/hooks/shell-completions/npmProvider.test.js +69 -0
  1258. package/dist/src/ui/hooks/shell-completions/npmProvider.test.js.map +1 -0
  1259. package/dist/src/ui/hooks/shell-completions/types.d.ts +16 -0
  1260. package/dist/src/ui/hooks/shell-completions/types.js +7 -0
  1261. package/dist/src/ui/hooks/shell-completions/types.js.map +1 -0
  1262. package/dist/src/ui/hooks/shellReducer.d.ts +12 -10
  1263. package/dist/src/ui/hooks/shellReducer.js +67 -37
  1264. package/dist/src/ui/hooks/shellReducer.js.map +1 -1
  1265. package/dist/src/ui/hooks/shellReducer.test.js +207 -36
  1266. package/dist/src/ui/hooks/shellReducer.test.js.map +1 -1
  1267. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -1
  1268. package/dist/src/ui/hooks/slashCommandProcessor.js +38 -17
  1269. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  1270. package/dist/src/ui/hooks/slashCommandProcessor.test.js +39 -83
  1271. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  1272. package/dist/src/ui/hooks/toolMapping.d.ts +4 -3
  1273. package/dist/src/ui/hooks/toolMapping.js +34 -32
  1274. package/dist/src/ui/hooks/toolMapping.js.map +1 -1
  1275. package/dist/src/ui/hooks/toolMapping.test.js +94 -27
  1276. package/dist/src/ui/hooks/toolMapping.test.js.map +1 -1
  1277. package/dist/src/ui/hooks/useAlternateBuffer.d.ts +2 -2
  1278. package/dist/src/ui/hooks/useAlternateBuffer.js +10 -4
  1279. package/dist/src/ui/hooks/useAlternateBuffer.js.map +1 -1
  1280. package/dist/src/ui/hooks/useAlternateBuffer.test.d.ts +6 -0
  1281. package/dist/src/ui/hooks/useAlternateBuffer.test.js +62 -0
  1282. package/dist/src/ui/hooks/useAlternateBuffer.test.js.map +1 -0
  1283. package/dist/src/ui/hooks/useAnimatedScrollbar.js +15 -5
  1284. package/dist/src/ui/hooks/useAnimatedScrollbar.js.map +1 -1
  1285. package/dist/src/ui/hooks/useAnimatedScrollbar.test.js +12 -12
  1286. package/dist/src/ui/hooks/useAnimatedScrollbar.test.js.map +1 -1
  1287. package/dist/src/ui/hooks/useApprovalModeIndicator.d.ts +3 -2
  1288. package/dist/src/ui/hooks/useApprovalModeIndicator.js +5 -3
  1289. package/dist/src/ui/hooks/useApprovalModeIndicator.js.map +1 -1
  1290. package/dist/src/ui/hooks/useApprovalModeIndicator.test.js +66 -63
  1291. package/dist/src/ui/hooks/useApprovalModeIndicator.test.js.map +1 -1
  1292. package/dist/src/ui/hooks/useAtCompletion.d.ts +2 -2
  1293. package/dist/src/ui/hooks/useAtCompletion.js +76 -24
  1294. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  1295. package/dist/src/ui/hooks/useAtCompletion.test.js +152 -31
  1296. package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
  1297. package/dist/src/ui/hooks/useAtCompletion_agents.test.js +2 -2
  1298. package/dist/src/ui/hooks/useAtCompletion_agents.test.js.map +1 -1
  1299. package/dist/src/ui/hooks/useBackgroundTaskManager.d.ts +22 -0
  1300. package/dist/src/ui/hooks/useBackgroundTaskManager.js +58 -0
  1301. package/dist/src/ui/hooks/useBackgroundTaskManager.js.map +1 -0
  1302. package/dist/src/ui/hooks/useBackgroundTaskManager.test.d.ts +6 -0
  1303. package/dist/src/ui/hooks/useBackgroundTaskManager.test.js +168 -0
  1304. package/dist/src/ui/hooks/useBackgroundTaskManager.test.js.map +1 -0
  1305. package/dist/src/ui/hooks/useBanner.d.ts +1 -0
  1306. package/dist/src/ui/hooks/useBanner.js +16 -9
  1307. package/dist/src/ui/hooks/useBanner.js.map +1 -1
  1308. package/dist/src/ui/hooks/useBanner.test.js +19 -13
  1309. package/dist/src/ui/hooks/useBanner.test.js.map +1 -1
  1310. package/dist/src/ui/hooks/useBatchedScroll.js +2 -2
  1311. package/dist/src/ui/hooks/useBatchedScroll.js.map +1 -1
  1312. package/dist/src/ui/hooks/useBatchedScroll.test.js +14 -14
  1313. package/dist/src/ui/hooks/useBatchedScroll.test.js.map +1 -1
  1314. package/dist/src/ui/hooks/useCommandCompletion.d.ts +8 -3
  1315. package/dist/src/ui/hooks/useCommandCompletion.js +110 -15
  1316. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  1317. package/dist/src/ui/hooks/useCommandCompletion.test.d.ts +1 -1
  1318. package/dist/src/ui/hooks/useCommandCompletion.test.js +275 -55
  1319. package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
  1320. package/dist/src/ui/hooks/useCompletion.d.ts +1 -1
  1321. package/dist/src/ui/hooks/useCompletion.js +1 -1
  1322. package/dist/src/ui/hooks/useCompletion.js.map +1 -1
  1323. package/dist/src/ui/hooks/useComposerStatus.d.ts +21 -0
  1324. package/dist/src/ui/hooks/useComposerStatus.js +78 -0
  1325. package/dist/src/ui/hooks/useComposerStatus.js.map +1 -0
  1326. package/dist/src/ui/hooks/useConfirmingTool.d.ts +2 -6
  1327. package/dist/src/ui/hooks/useConfirmingTool.js +2 -22
  1328. package/dist/src/ui/hooks/useConfirmingTool.js.map +1 -1
  1329. package/dist/src/ui/hooks/useConsoleMessages.d.ts +20 -4
  1330. package/dist/src/ui/hooks/useConsoleMessages.js +126 -87
  1331. package/dist/src/ui/hooks/useConsoleMessages.js.map +1 -1
  1332. package/dist/src/ui/hooks/useConsoleMessages.test.js +106 -64
  1333. package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -1
  1334. package/dist/src/ui/hooks/useEditorSettings.test.js +20 -20
  1335. package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
  1336. package/dist/src/ui/hooks/useExecutionLifecycle.d.ts +28 -0
  1337. package/dist/src/ui/hooks/{shellCommandProcessor.js → useExecutionLifecycle.js} +152 -70
  1338. package/dist/src/ui/hooks/useExecutionLifecycle.js.map +1 -0
  1339. package/dist/src/ui/hooks/useExecutionLifecycle.test.d.ts +6 -0
  1340. package/dist/src/ui/hooks/{shellCommandProcessor.test.js → useExecutionLifecycle.test.js} +172 -124
  1341. package/dist/src/ui/hooks/useExecutionLifecycle.test.js.map +1 -0
  1342. package/dist/src/ui/hooks/useExtensionRegistry.d.ts +13 -0
  1343. package/dist/src/ui/hooks/useExtensionRegistry.js +70 -0
  1344. package/dist/src/ui/hooks/useExtensionRegistry.js.map +1 -0
  1345. package/dist/src/ui/hooks/useExtensionUpdates.js +10 -9
  1346. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  1347. package/dist/src/ui/hooks/useExtensionUpdates.test.js +7 -6
  1348. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  1349. package/dist/src/ui/hooks/useFlickerDetector.test.js +12 -13
  1350. package/dist/src/ui/hooks/useFlickerDetector.test.js.map +1 -1
  1351. package/dist/src/ui/hooks/useFocus.d.ts +4 -1
  1352. package/dist/src/ui/hooks/useFocus.js +7 -1
  1353. package/dist/src/ui/hooks/useFocus.js.map +1 -1
  1354. package/dist/src/ui/hooks/useFocus.test.js +35 -27
  1355. package/dist/src/ui/hooks/useFocus.test.js.map +1 -1
  1356. package/dist/src/ui/hooks/useFolderTrust.d.ts +2 -0
  1357. package/dist/src/ui/hooks/useFolderTrust.js +16 -4
  1358. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  1359. package/dist/src/ui/hooks/useFolderTrust.test.js +23 -20
  1360. package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
  1361. package/dist/src/ui/hooks/useGeminiStream.d.ts +7 -7
  1362. package/dist/src/ui/hooks/useGeminiStream.js +468 -125
  1363. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  1364. package/dist/src/ui/hooks/useGeminiStream.test.js +832 -230
  1365. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  1366. package/dist/src/ui/hooks/useGitBranchName.js +2 -2
  1367. package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
  1368. package/dist/src/ui/hooks/useGitBranchName.test.js +63 -60
  1369. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  1370. package/dist/src/ui/hooks/useHistoryManager.js +9 -5
  1371. package/dist/src/ui/hooks/useHistoryManager.js.map +1 -1
  1372. package/dist/src/ui/hooks/useHistoryManager.test.js +63 -24
  1373. package/dist/src/ui/hooks/useHistoryManager.test.js.map +1 -1
  1374. package/dist/src/ui/hooks/useHookDisplayState.js +1 -0
  1375. package/dist/src/ui/hooks/useHookDisplayState.js.map +1 -1
  1376. package/dist/src/ui/hooks/useHookDisplayState.test.js +12 -12
  1377. package/dist/src/ui/hooks/useHookDisplayState.test.js.map +1 -1
  1378. package/dist/src/ui/hooks/useIdeTrustListener.test.js +17 -6
  1379. package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -1
  1380. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js +10 -10
  1381. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js.map +1 -1
  1382. package/dist/src/ui/hooks/useInlineEditBuffer.d.ts +43 -0
  1383. package/dist/src/ui/hooks/useInlineEditBuffer.js +113 -0
  1384. package/dist/src/ui/hooks/useInlineEditBuffer.js.map +1 -0
  1385. package/dist/src/ui/hooks/useInlineEditBuffer.test.d.ts +6 -0
  1386. package/dist/src/ui/hooks/useInlineEditBuffer.test.js +112 -0
  1387. package/dist/src/ui/hooks/useInlineEditBuffer.test.js.map +1 -0
  1388. package/dist/src/ui/hooks/useInputHistory.test.js +28 -28
  1389. package/dist/src/ui/hooks/useInputHistory.test.js.map +1 -1
  1390. package/dist/src/ui/hooks/useInputHistoryStore.test.js +20 -20
  1391. package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -1
  1392. package/dist/src/ui/hooks/useKeyMatchers.d.ts +17 -0
  1393. package/dist/src/ui/hooks/useKeyMatchers.js +13 -0
  1394. package/dist/src/ui/hooks/useKeyMatchers.js.map +1 -0
  1395. package/dist/src/ui/hooks/useKeypress.d.ts +4 -4
  1396. package/dist/src/ui/hooks/useKeypress.js +3 -3
  1397. package/dist/src/ui/hooks/useKeypress.js.map +1 -1
  1398. package/dist/src/ui/hooks/useKeypress.test.js +23 -31
  1399. package/dist/src/ui/hooks/useKeypress.test.js.map +1 -1
  1400. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +7 -1
  1401. package/dist/src/ui/hooks/useLoadingIndicator.js +12 -5
  1402. package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
  1403. package/dist/src/ui/hooks/useLoadingIndicator.test.js +67 -35
  1404. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  1405. package/dist/src/ui/hooks/useLogger.d.ts +1 -2
  1406. package/dist/src/ui/hooks/useLogger.js +7 -4
  1407. package/dist/src/ui/hooks/useLogger.js.map +1 -1
  1408. package/dist/src/ui/hooks/useLogger.test.d.ts +6 -0
  1409. package/dist/src/ui/hooks/useLogger.test.js +57 -0
  1410. package/dist/src/ui/hooks/useLogger.test.js.map +1 -0
  1411. package/dist/src/ui/hooks/useMcpStatus.test.js +10 -10
  1412. package/dist/src/ui/hooks/useMcpStatus.test.js.map +1 -1
  1413. package/dist/src/ui/hooks/useMemoryMonitor.test.js +6 -6
  1414. package/dist/src/ui/hooks/useMemoryMonitor.test.js.map +1 -1
  1415. package/dist/src/ui/hooks/useMessageQueue.test.js +29 -29
  1416. package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
  1417. package/dist/src/ui/hooks/useModelCommand.test.js +6 -6
  1418. package/dist/src/ui/hooks/useModelCommand.test.js.map +1 -1
  1419. package/dist/src/ui/hooks/useMouse.d.ts +1 -1
  1420. package/dist/src/ui/hooks/useMouse.js +1 -1
  1421. package/dist/src/ui/hooks/useMouse.js.map +1 -1
  1422. package/dist/src/ui/hooks/useMouse.test.js +11 -16
  1423. package/dist/src/ui/hooks/useMouse.test.js.map +1 -1
  1424. package/dist/src/ui/hooks/useMouseClick.test.js +15 -7
  1425. package/dist/src/ui/hooks/useMouseClick.test.js.map +1 -1
  1426. package/dist/src/ui/hooks/usePermissionsModifyTrust.js +2 -2
  1427. package/dist/src/ui/hooks/usePermissionsModifyTrust.js.map +1 -1
  1428. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +19 -19
  1429. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -1
  1430. package/dist/src/ui/hooks/usePhraseCycler.d.ts +11 -4
  1431. package/dist/src/ui/hooks/usePhraseCycler.js +116 -55
  1432. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  1433. package/dist/src/ui/hooks/usePhraseCycler.test.js +104 -126
  1434. package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
  1435. package/dist/src/ui/hooks/usePrivacySettings.js +9 -3
  1436. package/dist/src/ui/hooks/usePrivacySettings.js.map +1 -1
  1437. package/dist/src/ui/hooks/usePrivacySettings.test.js +20 -11
  1438. package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
  1439. package/dist/src/ui/hooks/usePromptCompletion.d.ts +2 -3
  1440. package/dist/src/ui/hooks/usePromptCompletion.js +4 -4
  1441. package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -1
  1442. package/dist/src/ui/hooks/useQuotaAndFallback.d.ts +11 -3
  1443. package/dist/src/ui/hooks/useQuotaAndFallback.js +95 -19
  1444. package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
  1445. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +328 -38
  1446. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  1447. package/dist/src/ui/hooks/useRegistrySearch.d.ts +19 -0
  1448. package/dist/src/ui/hooks/useRegistrySearch.js +35 -0
  1449. package/dist/src/ui/hooks/useRegistrySearch.js.map +1 -0
  1450. package/dist/src/ui/hooks/useRepeatedKeyPress.d.ts +15 -0
  1451. package/dist/src/ui/hooks/useRepeatedKeyPress.js +50 -0
  1452. package/dist/src/ui/hooks/useRepeatedKeyPress.js.map +1 -0
  1453. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +20 -20
  1454. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +1 -1
  1455. package/dist/src/ui/hooks/useRewind.test.js +10 -10
  1456. package/dist/src/ui/hooks/useRewind.test.js.map +1 -1
  1457. package/dist/src/ui/hooks/useRunEventNotifications.d.ts +22 -0
  1458. package/dist/src/ui/hooks/useRunEventNotifications.js +93 -0
  1459. package/dist/src/ui/hooks/useRunEventNotifications.js.map +1 -0
  1460. package/dist/src/ui/hooks/useSearchBuffer.d.ts +11 -0
  1461. package/dist/src/ui/hooks/useSearchBuffer.js +24 -0
  1462. package/dist/src/ui/hooks/useSearchBuffer.js.map +1 -0
  1463. package/dist/src/ui/hooks/useSelectionList.js +5 -4
  1464. package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
  1465. package/dist/src/ui/hooks/useSelectionList.test.js +162 -50
  1466. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
  1467. package/dist/src/ui/hooks/useSessionBrowser.d.ts +3 -4
  1468. package/dist/src/ui/hooks/useSessionBrowser.js +7 -5
  1469. package/dist/src/ui/hooks/useSessionBrowser.js.map +1 -1
  1470. package/dist/src/ui/hooks/useSessionBrowser.test.js +60 -17
  1471. package/dist/src/ui/hooks/useSessionBrowser.test.js.map +1 -1
  1472. package/dist/src/ui/hooks/useSessionResume.js +2 -2
  1473. package/dist/src/ui/hooks/useSessionResume.js.map +1 -1
  1474. package/dist/src/ui/hooks/useSessionResume.test.js +20 -20
  1475. package/dist/src/ui/hooks/useSessionResume.test.js.map +1 -1
  1476. package/dist/src/ui/hooks/useSettingsNavigation.d.ts +18 -0
  1477. package/dist/src/ui/hooks/useSettingsNavigation.js +72 -0
  1478. package/dist/src/ui/hooks/useSettingsNavigation.js.map +1 -0
  1479. package/dist/src/ui/hooks/useSettingsNavigation.test.d.ts +6 -0
  1480. package/dist/src/ui/hooks/useSettingsNavigation.test.js +87 -0
  1481. package/dist/src/ui/hooks/useSettingsNavigation.test.js.map +1 -0
  1482. package/dist/src/ui/hooks/useShellCompletion.d.ts +50 -0
  1483. package/dist/src/ui/hooks/useShellCompletion.js +502 -0
  1484. package/dist/src/ui/hooks/useShellCompletion.js.map +1 -0
  1485. package/dist/src/ui/hooks/useShellCompletion.test.d.ts +6 -0
  1486. package/dist/src/ui/hooks/useShellCompletion.test.js +354 -0
  1487. package/dist/src/ui/hooks/useShellCompletion.test.js.map +1 -0
  1488. package/dist/src/ui/hooks/useShellHistory.test.js +7 -7
  1489. package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
  1490. package/dist/src/ui/hooks/useShellInactivityStatus.d.ts +1 -1
  1491. package/dist/src/ui/hooks/useShellInactivityStatus.js +1 -1
  1492. package/dist/src/ui/hooks/useShellInactivityStatus.js.map +1 -1
  1493. package/dist/src/ui/hooks/useShellInactivityStatus.test.js +4 -4
  1494. package/dist/src/ui/hooks/useShellInactivityStatus.test.js.map +1 -1
  1495. package/dist/src/ui/hooks/useSlashCompletion.d.ts +1 -1
  1496. package/dist/src/ui/hooks/useSlashCompletion.js +67 -33
  1497. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  1498. package/dist/src/ui/hooks/useSlashCompletion.test.d.ts +2 -1
  1499. package/dist/src/ui/hooks/useSlashCompletion.test.js +254 -162
  1500. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  1501. package/dist/src/ui/hooks/useSnowfall.js +1 -1
  1502. package/dist/src/ui/hooks/useSnowfall.js.map +1 -1
  1503. package/dist/src/ui/hooks/useSnowfall.test.js +15 -11
  1504. package/dist/src/ui/hooks/useSnowfall.test.js.map +1 -1
  1505. package/dist/src/ui/hooks/useStateAndRef.js +1 -0
  1506. package/dist/src/ui/hooks/useStateAndRef.js.map +1 -1
  1507. package/dist/src/ui/hooks/useSuspend.d.ts +16 -0
  1508. package/dist/src/ui/hooks/useSuspend.js +116 -0
  1509. package/dist/src/ui/hooks/useSuspend.js.map +1 -0
  1510. package/dist/src/ui/hooks/useSuspend.test.d.ts +6 -0
  1511. package/dist/src/ui/hooks/useSuspend.test.js +150 -0
  1512. package/dist/src/ui/hooks/useSuspend.test.js.map +1 -0
  1513. package/dist/src/ui/hooks/useTabbedNavigation.js +4 -1
  1514. package/dist/src/ui/hooks/useTabbedNavigation.js.map +1 -1
  1515. package/dist/src/ui/hooks/useTabbedNavigation.test.js +49 -63
  1516. package/dist/src/ui/hooks/useTabbedNavigation.test.js.map +1 -1
  1517. package/dist/src/ui/hooks/useTerminalTheme.d.ts +1 -1
  1518. package/dist/src/ui/hooks/useTerminalTheme.js +24 -9
  1519. package/dist/src/ui/hooks/useTerminalTheme.js.map +1 -1
  1520. package/dist/src/ui/hooks/useTerminalTheme.test.js +79 -38
  1521. package/dist/src/ui/hooks/useTerminalTheme.test.js.map +1 -1
  1522. package/dist/src/ui/hooks/useThemeCommand.d.ts +2 -2
  1523. package/dist/src/ui/hooks/useThemeCommand.js +12 -5
  1524. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  1525. package/dist/src/ui/hooks/useTimedMessage.d.ts +1 -1
  1526. package/dist/src/ui/hooks/useTimedMessage.js +5 -3
  1527. package/dist/src/ui/hooks/useTimedMessage.js.map +1 -1
  1528. package/dist/src/ui/hooks/useTimer.test.js +18 -18
  1529. package/dist/src/ui/hooks/useTimer.test.js.map +1 -1
  1530. package/dist/src/ui/hooks/useTips.test.js +6 -6
  1531. package/dist/src/ui/hooks/useTips.test.js.map +1 -1
  1532. package/dist/src/ui/hooks/useToolScheduler.d.ts +34 -10
  1533. package/dist/src/ui/hooks/useToolScheduler.js +202 -4
  1534. package/dist/src/ui/hooks/useToolScheduler.js.map +1 -1
  1535. package/dist/src/ui/hooks/useToolScheduler.test.d.ts +1 -1
  1536. package/dist/src/ui/hooks/useToolScheduler.test.js +462 -809
  1537. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  1538. package/dist/src/ui/hooks/useTurnActivityMonitor.d.ts +1 -1
  1539. package/dist/src/ui/hooks/useTurnActivityMonitor.js +1 -1
  1540. package/dist/src/ui/hooks/useTurnActivityMonitor.js.map +1 -1
  1541. package/dist/src/ui/hooks/useTurnActivityMonitor.test.js +14 -12
  1542. package/dist/src/ui/hooks/useTurnActivityMonitor.test.js.map +1 -1
  1543. package/dist/src/ui/hooks/useVisibilityToggle.d.ts +12 -0
  1544. package/dist/src/ui/hooks/useVisibilityToggle.js +60 -0
  1545. package/dist/src/ui/hooks/useVisibilityToggle.js.map +1 -0
  1546. package/dist/src/ui/hooks/vim-passthrough.test.js +2 -2
  1547. package/dist/src/ui/hooks/vim-passthrough.test.js.map +1 -1
  1548. package/dist/src/ui/hooks/vim.js +587 -27
  1549. package/dist/src/ui/hooks/vim.js.map +1 -1
  1550. package/dist/src/ui/hooks/vim.test.js +734 -183
  1551. package/dist/src/ui/hooks/vim.test.js.map +1 -1
  1552. package/dist/src/{config → ui/key}/keyBindings.d.ts +40 -26
  1553. package/dist/src/ui/key/keyBindings.js +698 -0
  1554. package/dist/src/ui/key/keyBindings.js.map +1 -0
  1555. package/dist/src/ui/key/keyBindings.test.d.ts +6 -0
  1556. package/dist/src/ui/key/keyBindings.test.js +214 -0
  1557. package/dist/src/ui/key/keyBindings.test.js.map +1 -0
  1558. package/dist/src/ui/{keyMatchers.d.ts → key/keyMatchers.d.ts} +11 -4
  1559. package/dist/src/ui/key/keyMatchers.js +43 -0
  1560. package/dist/src/ui/key/keyMatchers.js.map +1 -0
  1561. package/dist/src/ui/key/keyMatchers.test.d.ts +6 -0
  1562. package/dist/src/ui/{keyMatchers.test.js → key/keyMatchers.test.js} +149 -66
  1563. package/dist/src/ui/key/keyMatchers.test.js.map +1 -0
  1564. package/dist/src/ui/key/keyToAnsi.js +46 -0
  1565. package/dist/src/ui/key/keyToAnsi.js.map +1 -0
  1566. package/dist/src/ui/{utils → key}/keybindingUtils.d.ts +3 -3
  1567. package/dist/src/ui/key/keybindingUtils.js +87 -0
  1568. package/dist/src/ui/key/keybindingUtils.js.map +1 -0
  1569. package/dist/src/ui/key/keybindingUtils.test.d.ts +6 -0
  1570. package/dist/src/ui/key/keybindingUtils.test.js +121 -0
  1571. package/dist/src/ui/key/keybindingUtils.test.js.map +1 -0
  1572. package/dist/src/ui/layouts/DefaultAppLayout.js +8 -6
  1573. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -1
  1574. package/dist/src/ui/layouts/DefaultAppLayout.test.js +34 -26
  1575. package/dist/src/ui/layouts/DefaultAppLayout.test.js.map +1 -1
  1576. package/dist/src/ui/noninteractive/nonInteractiveUi.js +15 -2
  1577. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -1
  1578. package/dist/src/ui/privacy/CloudFreePrivacyNotice.test.js +21 -8
  1579. package/dist/src/ui/privacy/CloudFreePrivacyNotice.test.js.map +1 -1
  1580. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.test.js +14 -5
  1581. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.test.js.map +1 -1
  1582. package/dist/src/ui/privacy/GeminiPrivacyNotice.test.js +14 -5
  1583. package/dist/src/ui/privacy/GeminiPrivacyNotice.test.js.map +1 -1
  1584. package/dist/src/ui/privacy/PrivacyNotice.test.js +3 -2
  1585. package/dist/src/ui/privacy/PrivacyNotice.test.js.map +1 -1
  1586. package/dist/src/ui/textConstants.d.ts +2 -1
  1587. package/dist/src/ui/textConstants.js +2 -1
  1588. package/dist/src/ui/textConstants.js.map +1 -1
  1589. package/dist/src/ui/themes/{ansi.d.ts → builtin/dark/ansi-dark.d.ts} +2 -2
  1590. package/dist/src/ui/themes/{ansi.js → builtin/dark/ansi-dark.js} +5 -4
  1591. package/dist/src/ui/themes/builtin/dark/ansi-dark.js.map +1 -0
  1592. package/dist/src/ui/themes/{atom-one-dark.d.ts → builtin/dark/atom-one-dark.d.ts} +2 -2
  1593. package/dist/src/ui/themes/{atom-one-dark.js → builtin/dark/atom-one-dark.js} +3 -3
  1594. package/dist/src/ui/themes/builtin/dark/atom-one-dark.js.map +1 -0
  1595. package/dist/src/ui/themes/{ayu.d.ts → builtin/dark/ayu-dark.d.ts} +2 -2
  1596. package/dist/src/ui/themes/{ayu.js → builtin/dark/ayu-dark.js} +4 -4
  1597. package/dist/src/ui/themes/builtin/dark/ayu-dark.js.map +1 -0
  1598. package/dist/src/ui/themes/{default.d.ts → builtin/dark/default-dark.d.ts} +2 -2
  1599. package/dist/src/ui/themes/{default.js → builtin/dark/default-dark.js} +3 -3
  1600. package/dist/src/ui/themes/builtin/dark/default-dark.js.map +1 -0
  1601. package/dist/src/ui/themes/{dracula.d.ts → builtin/dark/dracula-dark.d.ts} +2 -2
  1602. package/dist/src/ui/themes/{dracula.js → builtin/dark/dracula-dark.js} +4 -4
  1603. package/dist/src/ui/themes/builtin/dark/dracula-dark.js.map +1 -0
  1604. package/dist/src/ui/themes/{github-dark.d.ts → builtin/dark/github-dark.d.ts} +2 -2
  1605. package/dist/src/ui/themes/{github-dark.js → builtin/dark/github-dark.js} +3 -3
  1606. package/dist/src/ui/themes/builtin/dark/github-dark.js.map +1 -0
  1607. package/dist/src/ui/themes/{holiday.d.ts → builtin/dark/holiday-dark.d.ts} +2 -2
  1608. package/dist/src/ui/themes/{holiday.js → builtin/dark/holiday-dark.js} +5 -4
  1609. package/dist/src/ui/themes/{holiday.js.map → builtin/dark/holiday-dark.js.map} +1 -1
  1610. package/dist/src/ui/themes/{shades-of-purple.d.ts → builtin/dark/shades-of-purple-dark.d.ts} +2 -2
  1611. package/dist/src/ui/themes/{shades-of-purple.js → builtin/dark/shades-of-purple-dark.js} +4 -4
  1612. package/dist/src/ui/themes/builtin/dark/shades-of-purple-dark.js.map +1 -0
  1613. package/dist/src/ui/themes/builtin/dark/solarized-dark.d.ts +7 -0
  1614. package/dist/src/ui/themes/builtin/dark/solarized-dark.js +198 -0
  1615. package/dist/src/ui/themes/builtin/dark/solarized-dark.js.map +1 -0
  1616. package/dist/src/ui/themes/builtin/dark/tokyonight-dark.d.ts +7 -0
  1617. package/dist/src/ui/themes/builtin/dark/tokyonight-dark.js +147 -0
  1618. package/dist/src/ui/themes/builtin/dark/tokyonight-dark.js.map +1 -0
  1619. package/dist/src/ui/themes/{ansi-light.d.ts → builtin/light/ansi-light.d.ts} +2 -2
  1620. package/dist/src/ui/themes/{ansi-light.js → builtin/light/ansi-light.js} +3 -3
  1621. package/dist/src/ui/themes/builtin/light/ansi-light.js.map +1 -0
  1622. package/dist/src/ui/themes/{ayu-light.d.ts → builtin/light/ayu-light.d.ts} +2 -2
  1623. package/dist/src/ui/themes/{ayu-light.js → builtin/light/ayu-light.js} +3 -3
  1624. package/dist/src/ui/themes/builtin/light/ayu-light.js.map +1 -0
  1625. package/dist/src/ui/themes/{default-light.d.ts → builtin/light/default-light.d.ts} +2 -2
  1626. package/dist/src/ui/themes/{default-light.js → builtin/light/default-light.js} +2 -2
  1627. package/dist/src/ui/themes/builtin/light/default-light.js.map +1 -0
  1628. package/dist/src/ui/themes/{github-light.d.ts → builtin/light/github-light.d.ts} +2 -2
  1629. package/dist/src/ui/themes/{github-light.js → builtin/light/github-light.js} +4 -3
  1630. package/dist/src/ui/themes/builtin/light/github-light.js.map +1 -0
  1631. package/dist/src/ui/themes/{googlecode.d.ts → builtin/light/googlecode-light.d.ts} +2 -2
  1632. package/dist/src/ui/themes/{googlecode.js → builtin/light/googlecode-light.js} +4 -4
  1633. package/dist/src/ui/themes/builtin/light/googlecode-light.js.map +1 -0
  1634. package/dist/src/ui/themes/builtin/light/solarized-light.d.ts +7 -0
  1635. package/dist/src/ui/themes/builtin/light/solarized-light.js +198 -0
  1636. package/dist/src/ui/themes/builtin/light/solarized-light.js.map +1 -0
  1637. package/dist/src/ui/themes/{xcode.d.ts → builtin/light/xcode-light.d.ts} +2 -2
  1638. package/dist/src/ui/themes/{xcode.js → builtin/light/xcode-light.js} +5 -4
  1639. package/dist/src/ui/themes/builtin/light/xcode-light.js.map +1 -0
  1640. package/dist/src/ui/themes/{no-color.d.ts → builtin/no-color.d.ts} +2 -2
  1641. package/dist/src/ui/themes/{no-color.js → builtin/no-color.js} +10 -3
  1642. package/dist/src/ui/themes/builtin/no-color.js.map +1 -0
  1643. package/dist/src/ui/themes/color-utils.d.ts +2 -18
  1644. package/dist/src/ui/themes/color-utils.js +2 -231
  1645. package/dist/src/ui/themes/color-utils.js.map +1 -1
  1646. package/dist/src/ui/themes/semantic-tokens.d.ts +5 -1
  1647. package/dist/src/ui/themes/semantic-tokens.js +12 -4
  1648. package/dist/src/ui/themes/semantic-tokens.js.map +1 -1
  1649. package/dist/src/ui/themes/theme-manager.d.ts +47 -7
  1650. package/dist/src/ui/themes/theme-manager.js +171 -27
  1651. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  1652. package/dist/src/ui/themes/theme-manager.test.js +86 -2
  1653. package/dist/src/ui/themes/theme-manager.test.js.map +1 -1
  1654. package/dist/src/ui/themes/theme.d.ts +25 -0
  1655. package/dist/src/ui/themes/theme.js +178 -36
  1656. package/dist/src/ui/themes/theme.js.map +1 -1
  1657. package/dist/src/ui/themes/theme.test.js +7 -7
  1658. package/dist/src/ui/themes/theme.test.js.map +1 -1
  1659. package/dist/src/ui/types.d.ts +48 -23
  1660. package/dist/src/ui/types.js +31 -1
  1661. package/dist/src/ui/types.js.map +1 -1
  1662. package/dist/src/ui/utils/CodeColorizer.d.ts +10 -2
  1663. package/dist/src/ui/utils/CodeColorizer.js +37 -32
  1664. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  1665. package/dist/src/ui/utils/CodeColorizer.test.js +38 -2
  1666. package/dist/src/ui/utils/CodeColorizer.test.js.map +1 -1
  1667. package/dist/src/ui/utils/ConsolePatcher.d.ts +1 -0
  1668. package/dist/src/ui/utils/ConsolePatcher.js +12 -5
  1669. package/dist/src/ui/utils/ConsolePatcher.js.map +1 -1
  1670. package/dist/src/ui/utils/ConsolePatcher.test.d.ts +6 -0
  1671. package/dist/src/ui/utils/ConsolePatcher.test.js +199 -0
  1672. package/dist/src/ui/utils/ConsolePatcher.test.js.map +1 -0
  1673. package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +0 -5
  1674. package/dist/src/ui/utils/InlineMarkdownRenderer.js +7 -103
  1675. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
  1676. package/dist/src/ui/utils/MarkdownDisplay.js +3 -2
  1677. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  1678. package/dist/src/ui/utils/MarkdownDisplay.test.js +51 -35
  1679. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  1680. package/dist/src/ui/utils/TableRenderer.js +124 -56
  1681. package/dist/src/ui/utils/TableRenderer.js.map +1 -1
  1682. package/dist/src/ui/utils/TableRenderer.test.js +344 -6
  1683. package/dist/src/ui/utils/TableRenderer.test.js.map +1 -1
  1684. package/dist/src/ui/utils/borderStyles.d.ts +18 -0
  1685. package/dist/src/ui/utils/borderStyles.js +83 -0
  1686. package/dist/src/ui/utils/borderStyles.js.map +1 -0
  1687. package/dist/src/ui/utils/borderStyles.test.d.ts +6 -0
  1688. package/dist/src/ui/utils/borderStyles.test.js +171 -0
  1689. package/dist/src/ui/utils/borderStyles.test.js.map +1 -0
  1690. package/dist/src/ui/utils/clipboardUtils.d.ts +23 -11
  1691. package/dist/src/ui/utils/clipboardUtils.js +79 -49
  1692. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  1693. package/dist/src/ui/utils/clipboardUtils.test.js +168 -120
  1694. package/dist/src/ui/utils/clipboardUtils.test.js.map +1 -1
  1695. package/dist/src/ui/utils/commandUtils.d.ts +8 -3
  1696. package/dist/src/ui/utils/commandUtils.js +20 -8
  1697. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  1698. package/dist/src/ui/utils/commandUtils.test.js +39 -7
  1699. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  1700. package/dist/src/ui/utils/computeStats.test.js +8 -0
  1701. package/dist/src/ui/utils/computeStats.test.js.map +1 -1
  1702. package/dist/src/ui/utils/confirmingTool.d.ts +15 -0
  1703. package/dist/src/ui/utils/confirmingTool.js +26 -0
  1704. package/dist/src/ui/utils/confirmingTool.js.map +1 -0
  1705. package/dist/src/ui/utils/contextUsage.d.ts +7 -0
  1706. package/dist/src/ui/utils/contextUsage.js +20 -0
  1707. package/dist/src/ui/utils/contextUsage.js.map +1 -0
  1708. package/dist/src/ui/utils/directoryUtils.js +1 -1
  1709. package/dist/src/ui/utils/directoryUtils.js.map +1 -1
  1710. package/dist/src/ui/utils/displayUtils.d.ts +9 -0
  1711. package/dist/src/ui/utils/displayUtils.js +14 -0
  1712. package/dist/src/ui/utils/displayUtils.js.map +1 -1
  1713. package/dist/src/ui/utils/editorUtils.d.ts +17 -0
  1714. package/dist/src/ui/utils/editorUtils.js +104 -0
  1715. package/dist/src/ui/utils/editorUtils.js.map +1 -0
  1716. package/dist/src/ui/utils/fileUtils.d.ts +10 -0
  1717. package/dist/src/ui/utils/fileUtils.js +17 -0
  1718. package/dist/src/ui/utils/fileUtils.js.map +1 -0
  1719. package/dist/src/ui/utils/formatters.d.ts +1 -1
  1720. package/dist/src/ui/utils/formatters.js +38 -12
  1721. package/dist/src/ui/utils/formatters.js.map +1 -1
  1722. package/dist/src/ui/utils/formatters.test.js +29 -1
  1723. package/dist/src/ui/utils/formatters.test.js.map +1 -1
  1724. package/dist/src/ui/utils/highlight.js +1 -1
  1725. package/dist/src/ui/utils/highlight.js.map +1 -1
  1726. package/dist/src/ui/utils/historyExportUtils.d.ts +2 -2
  1727. package/dist/src/ui/utils/historyExportUtils.js.map +1 -1
  1728. package/dist/src/ui/utils/historyUtils.d.ts +10 -0
  1729. package/dist/src/ui/utils/historyUtils.js +56 -0
  1730. package/dist/src/ui/utils/historyUtils.js.map +1 -0
  1731. package/dist/src/ui/utils/markdownParsingUtils.d.ts +10 -0
  1732. package/dist/src/ui/utils/markdownParsingUtils.js +150 -0
  1733. package/dist/src/ui/utils/markdownParsingUtils.js.map +1 -0
  1734. package/dist/src/ui/utils/markdownParsingUtils.test.d.ts +6 -0
  1735. package/dist/src/ui/utils/markdownParsingUtils.test.js +166 -0
  1736. package/dist/src/ui/utils/markdownParsingUtils.test.js.map +1 -0
  1737. package/dist/src/ui/utils/pendingAttentionNotification.d.ts +12 -0
  1738. package/dist/src/ui/utils/pendingAttentionNotification.js +101 -0
  1739. package/dist/src/ui/utils/pendingAttentionNotification.js.map +1 -0
  1740. package/dist/src/ui/utils/pendingAttentionNotification.test.d.ts +6 -0
  1741. package/dist/src/ui/utils/pendingAttentionNotification.test.js +79 -0
  1742. package/dist/src/ui/utils/pendingAttentionNotification.test.js.map +1 -0
  1743. package/dist/src/ui/utils/shortcutsHelp.d.ts +7 -0
  1744. package/dist/src/ui/utils/shortcutsHelp.js +12 -0
  1745. package/dist/src/ui/utils/shortcutsHelp.js.map +1 -0
  1746. package/dist/src/ui/utils/terminalCapabilityManager.d.ts +14 -1
  1747. package/dist/src/ui/utils/terminalCapabilityManager.js +73 -18
  1748. package/dist/src/ui/utils/terminalCapabilityManager.js.map +1 -1
  1749. package/dist/src/ui/utils/terminalCapabilityManager.test.js +126 -0
  1750. package/dist/src/ui/utils/terminalCapabilityManager.test.js.map +1 -1
  1751. package/dist/src/ui/utils/terminalSetup.d.ts +24 -0
  1752. package/dist/src/ui/utils/terminalSetup.js +130 -34
  1753. package/dist/src/ui/utils/terminalSetup.js.map +1 -1
  1754. package/dist/src/ui/utils/terminalSetup.test.js +35 -1
  1755. package/dist/src/ui/utils/terminalSetup.test.js.map +1 -1
  1756. package/dist/src/ui/utils/textOutput.test.js +1 -0
  1757. package/dist/src/ui/utils/textOutput.test.js.map +1 -1
  1758. package/dist/src/ui/utils/textUtils.d.ts +4 -0
  1759. package/dist/src/ui/utils/textUtils.js +10 -1
  1760. package/dist/src/ui/utils/textUtils.js.map +1 -1
  1761. package/dist/src/ui/utils/textUtils.test.js +28 -7
  1762. package/dist/src/ui/utils/textUtils.test.js.map +1 -1
  1763. package/dist/src/ui/utils/toolLayoutUtils.d.ts +49 -0
  1764. package/dist/src/ui/utils/toolLayoutUtils.js +80 -0
  1765. package/dist/src/ui/utils/toolLayoutUtils.js.map +1 -0
  1766. package/dist/src/ui/utils/toolLayoutUtils.test.d.ts +6 -0
  1767. package/dist/src/ui/utils/toolLayoutUtils.test.js +187 -0
  1768. package/dist/src/ui/utils/toolLayoutUtils.test.js.map +1 -0
  1769. package/dist/src/ui/utils/ui-sizing.d.ts +2 -2
  1770. package/dist/src/ui/utils/ui-sizing.js +2 -3
  1771. package/dist/src/ui/utils/ui-sizing.js.map +1 -1
  1772. package/dist/src/ui/utils/ui-sizing.test.js +6 -19
  1773. package/dist/src/ui/utils/ui-sizing.test.js.map +1 -1
  1774. package/dist/src/ui/utils/updateCheck.d.ts +1 -0
  1775. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  1776. package/dist/src/ui/utils/urlSecurityUtils.d.ts +32 -0
  1777. package/dist/src/ui/utils/urlSecurityUtils.js +71 -0
  1778. package/dist/src/ui/utils/urlSecurityUtils.js.map +1 -0
  1779. package/dist/src/ui/utils/urlSecurityUtils.test.d.ts +6 -0
  1780. package/dist/src/ui/utils/urlSecurityUtils.test.js +49 -0
  1781. package/dist/src/ui/utils/urlSecurityUtils.test.js.map +1 -0
  1782. package/dist/src/utils/activityLogger.js +113 -24
  1783. package/dist/src/utils/activityLogger.js.map +1 -1
  1784. package/dist/src/utils/agentSettings.d.ts +7 -14
  1785. package/dist/src/utils/agentSettings.js +27 -84
  1786. package/dist/src/utils/agentSettings.js.map +1 -1
  1787. package/dist/src/utils/agentSettings.test.d.ts +6 -0
  1788. package/dist/src/utils/agentSettings.test.js +111 -0
  1789. package/dist/src/utils/agentSettings.test.js.map +1 -0
  1790. package/dist/src/utils/cleanup.d.ts +2 -0
  1791. package/dist/src/utils/cleanup.js +63 -6
  1792. package/dist/src/utils/cleanup.js.map +1 -1
  1793. package/dist/src/utils/cleanup.test.js +165 -2
  1794. package/dist/src/utils/cleanup.test.js.map +1 -1
  1795. package/dist/src/utils/commands.js +15 -0
  1796. package/dist/src/utils/commands.js.map +1 -1
  1797. package/dist/src/utils/commands.test.js +80 -1
  1798. package/dist/src/utils/commands.test.js.map +1 -1
  1799. package/dist/src/utils/deepMerge.js +1 -1
  1800. package/dist/src/utils/deepMerge.js.map +1 -1
  1801. package/dist/src/utils/deepMerge.test.js +13 -3
  1802. package/dist/src/utils/deepMerge.test.js.map +1 -1
  1803. package/dist/src/utils/devtoolsService.d.ts +11 -1
  1804. package/dist/src/utils/devtoolsService.js +36 -2
  1805. package/dist/src/utils/devtoolsService.js.map +1 -1
  1806. package/dist/src/utils/devtoolsService.test.js +74 -2
  1807. package/dist/src/utils/devtoolsService.test.js.map +1 -1
  1808. package/dist/src/utils/dialogScopeUtils.d.ts +6 -2
  1809. package/dist/src/utils/dialogScopeUtils.js +4 -4
  1810. package/dist/src/utils/dialogScopeUtils.js.map +1 -1
  1811. package/dist/src/utils/dialogScopeUtils.test.js +5 -5
  1812. package/dist/src/utils/dialogScopeUtils.test.js.map +1 -1
  1813. package/dist/src/utils/envVarResolver.d.ts +5 -2
  1814. package/dist/src/utils/envVarResolver.js +18 -6
  1815. package/dist/src/utils/envVarResolver.js.map +1 -1
  1816. package/dist/src/utils/envVarResolver.test.js +41 -24
  1817. package/dist/src/utils/envVarResolver.test.js.map +1 -1
  1818. package/dist/src/utils/errors.d.ts +0 -1
  1819. package/dist/src/utils/errors.js +4 -10
  1820. package/dist/src/utils/errors.js.map +1 -1
  1821. package/dist/src/utils/errors.test.js +2 -17
  1822. package/dist/src/utils/errors.test.js.map +1 -1
  1823. package/dist/src/utils/events.d.ts +3 -1
  1824. package/dist/src/utils/events.js +1 -0
  1825. package/dist/src/utils/events.js.map +1 -1
  1826. package/dist/src/utils/featureToggleUtils.d.ts +55 -0
  1827. package/dist/src/utils/featureToggleUtils.js +95 -0
  1828. package/dist/src/utils/featureToggleUtils.js.map +1 -0
  1829. package/dist/src/utils/featureToggleUtils.test.d.ts +6 -0
  1830. package/dist/src/utils/featureToggleUtils.test.js +126 -0
  1831. package/dist/src/utils/featureToggleUtils.test.js.map +1 -0
  1832. package/dist/src/utils/gitUtils.js +6 -4
  1833. package/dist/src/utils/gitUtils.js.map +1 -1
  1834. package/dist/src/utils/handleAutoUpdate.d.ts +8 -1
  1835. package/dist/src/utils/handleAutoUpdate.js +56 -3
  1836. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  1837. package/dist/src/utils/handleAutoUpdate.test.js +67 -5
  1838. package/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
  1839. package/dist/src/utils/installationInfo.d.ts +1 -0
  1840. package/dist/src/utils/installationInfo.js +10 -1
  1841. package/dist/src/utils/installationInfo.js.map +1 -1
  1842. package/dist/src/utils/installationInfo.test.js +10 -0
  1843. package/dist/src/utils/installationInfo.test.js.map +1 -1
  1844. package/dist/src/utils/jsonoutput.js +3 -1
  1845. package/dist/src/utils/jsonoutput.js.map +1 -1
  1846. package/dist/src/utils/logCleanup.d.ts +12 -0
  1847. package/dist/src/utils/logCleanup.js +58 -0
  1848. package/dist/src/utils/logCleanup.js.map +1 -0
  1849. package/dist/src/utils/logCleanup.test.d.ts +6 -0
  1850. package/dist/src/utils/logCleanup.test.js +87 -0
  1851. package/dist/src/utils/logCleanup.test.js.map +1 -0
  1852. package/dist/src/utils/persistentState.d.ts +3 -0
  1853. package/dist/src/utils/persistentState.js +1 -0
  1854. package/dist/src/utils/persistentState.js.map +1 -1
  1855. package/dist/src/utils/processUtils.d.ts +2 -3
  1856. package/dist/src/utils/processUtils.js +10 -0
  1857. package/dist/src/utils/processUtils.js.map +1 -1
  1858. package/dist/src/utils/processUtils.test.js +11 -2
  1859. package/dist/src/utils/processUtils.test.js.map +1 -1
  1860. package/dist/src/utils/readStdin.js +1 -0
  1861. package/dist/src/utils/readStdin.js.map +1 -1
  1862. package/dist/src/utils/relaunch.test.js.map +1 -1
  1863. package/dist/src/utils/{sandbox-macos-restrictive-closed.sb → sandbox-macos-strict-open.sb} +41 -3
  1864. package/dist/src/utils/sandbox-macos-strict-proxied.sb +133 -0
  1865. package/dist/src/utils/sandbox.js +277 -20
  1866. package/dist/src/utils/sandbox.js.map +1 -1
  1867. package/dist/src/utils/sandbox.test.js +198 -17
  1868. package/dist/src/utils/sandbox.test.js.map +1 -1
  1869. package/dist/src/utils/sandboxUtils.js +3 -3
  1870. package/dist/src/utils/sandboxUtils.js.map +1 -1
  1871. package/dist/src/utils/sessionCleanup.d.ts +6 -1
  1872. package/dist/src/utils/sessionCleanup.integration.test.js +94 -0
  1873. package/dist/src/utils/sessionCleanup.integration.test.js.map +1 -1
  1874. package/dist/src/utils/sessionCleanup.js +107 -38
  1875. package/dist/src/utils/sessionCleanup.js.map +1 -1
  1876. package/dist/src/utils/sessionCleanup.test.js +545 -1089
  1877. package/dist/src/utils/sessionCleanup.test.js.map +1 -1
  1878. package/dist/src/utils/sessionUtils.d.ts +2 -7
  1879. package/dist/src/utils/sessionUtils.js +39 -115
  1880. package/dist/src/utils/sessionUtils.js.map +1 -1
  1881. package/dist/src/utils/sessionUtils.test.js +269 -3
  1882. package/dist/src/utils/sessionUtils.test.js.map +1 -1
  1883. package/dist/src/utils/sessions.js +1 -1
  1884. package/dist/src/utils/sessions.js.map +1 -1
  1885. package/dist/src/utils/sessions.test.js +3 -1
  1886. package/dist/src/utils/sessions.test.js.map +1 -1
  1887. package/dist/src/utils/settingsUtils.d.ts +20 -93
  1888. package/dist/src/utils/settingsUtils.js +135 -207
  1889. package/dist/src/utils/settingsUtils.js.map +1 -1
  1890. package/dist/src/utils/settingsUtils.test.js +129 -264
  1891. package/dist/src/utils/settingsUtils.test.js.map +1 -1
  1892. package/dist/src/utils/skillSettings.d.ts +4 -14
  1893. package/dist/src/utils/skillSettings.js +32 -81
  1894. package/dist/src/utils/skillSettings.js.map +1 -1
  1895. package/dist/src/utils/skillSettings.test.d.ts +6 -0
  1896. package/dist/src/utils/skillSettings.test.js +142 -0
  1897. package/dist/src/utils/skillSettings.test.js.map +1 -0
  1898. package/dist/src/utils/skillUtils.js +24 -7
  1899. package/dist/src/utils/skillUtils.js.map +1 -1
  1900. package/dist/src/utils/skillUtils.test.js +52 -4
  1901. package/dist/src/utils/skillUtils.test.js.map +1 -1
  1902. package/dist/src/utils/terminalNotifications.d.ts +25 -0
  1903. package/dist/src/utils/terminalNotifications.js +75 -0
  1904. package/dist/src/utils/terminalNotifications.js.map +1 -0
  1905. package/dist/src/utils/terminalNotifications.test.d.ts +6 -0
  1906. package/dist/src/utils/terminalNotifications.test.js +125 -0
  1907. package/dist/src/utils/terminalNotifications.test.js.map +1 -0
  1908. package/dist/src/utils/terminalTheme.js +3 -4
  1909. package/dist/src/utils/terminalTheme.js.map +1 -1
  1910. package/dist/src/utils/tierUtils.d.ts +12 -0
  1911. package/dist/src/utils/tierUtils.js +15 -0
  1912. package/dist/src/utils/tierUtils.js.map +1 -0
  1913. package/dist/src/utils/tierUtils.test.d.ts +6 -0
  1914. package/dist/src/utils/tierUtils.test.js +25 -0
  1915. package/dist/src/utils/tierUtils.test.js.map +1 -0
  1916. package/dist/src/utils/userStartupWarnings.d.ts +4 -1
  1917. package/dist/src/utils/userStartupWarnings.js +24 -6
  1918. package/dist/src/utils/userStartupWarnings.js.map +1 -1
  1919. package/dist/src/utils/userStartupWarnings.test.js +53 -11
  1920. package/dist/src/utils/userStartupWarnings.test.js.map +1 -1
  1921. package/dist/src/utils/worktreeSetup.d.ts +14 -0
  1922. package/dist/src/utils/worktreeSetup.js +32 -0
  1923. package/dist/src/utils/worktreeSetup.js.map +1 -0
  1924. package/dist/src/utils/worktreeSetup.test.d.ts +6 -0
  1925. package/dist/src/utils/worktreeSetup.test.js +89 -0
  1926. package/dist/src/utils/worktreeSetup.test.js.map +1 -0
  1927. package/dist/src/validateNonInterActiveAuth.d.ts +1 -2
  1928. package/dist/src/validateNonInterActiveAuth.js +1 -14
  1929. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  1930. package/dist/tsconfig.tsbuildinfo +1 -1
  1931. package/package.json +9 -8
  1932. package/dist/src/config/keyBindings.js +0 -460
  1933. package/dist/src/config/keyBindings.js.map +0 -1
  1934. package/dist/src/config/keyBindings.test.js +0 -108
  1935. package/dist/src/config/keyBindings.test.js.map +0 -1
  1936. package/dist/src/ui/commands/shellsCommand.js.map +0 -1
  1937. package/dist/src/ui/commands/shellsCommand.test.js +0 -29
  1938. package/dist/src/ui/commands/shellsCommand.test.js.map +0 -1
  1939. package/dist/src/ui/components/BackgroundShellDisplay.d.ts +0 -16
  1940. package/dist/src/ui/components/BackgroundShellDisplay.js.map +0 -1
  1941. package/dist/src/ui/components/BackgroundShellDisplay.test.js.map +0 -1
  1942. package/dist/src/ui/components/ShortcutsHint.d.ts +0 -7
  1943. package/dist/src/ui/components/ShortcutsHint.js +0 -12
  1944. package/dist/src/ui/components/ShortcutsHint.js.map +0 -1
  1945. package/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.js +0 -93
  1946. package/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.js.map +0 -1
  1947. package/dist/src/ui/components/views/HooksList.d.ts +0 -24
  1948. package/dist/src/ui/components/views/HooksList.js +0 -28
  1949. package/dist/src/ui/components/views/HooksList.js.map +0 -1
  1950. package/dist/src/ui/hooks/keyToAnsi.js +0 -67
  1951. package/dist/src/ui/hooks/keyToAnsi.js.map +0 -1
  1952. package/dist/src/ui/hooks/shellCommandProcessor.d.ts +0 -28
  1953. package/dist/src/ui/hooks/shellCommandProcessor.js.map +0 -1
  1954. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +0 -1
  1955. package/dist/src/ui/hooks/useBackgroundShellManager.d.ts +0 -22
  1956. package/dist/src/ui/hooks/useBackgroundShellManager.js +0 -58
  1957. package/dist/src/ui/hooks/useBackgroundShellManager.js.map +0 -1
  1958. package/dist/src/ui/hooks/useBackgroundShellManager.test.js +0 -168
  1959. package/dist/src/ui/hooks/useBackgroundShellManager.test.js.map +0 -1
  1960. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +0 -42
  1961. package/dist/src/ui/hooks/useReactToolScheduler.js +0 -106
  1962. package/dist/src/ui/hooks/useReactToolScheduler.js.map +0 -1
  1963. package/dist/src/ui/hooks/useReactToolScheduler.test.js +0 -58
  1964. package/dist/src/ui/hooks/useReactToolScheduler.test.js.map +0 -1
  1965. package/dist/src/ui/hooks/useToolExecutionScheduler.d.ts +0 -30
  1966. package/dist/src/ui/hooks/useToolExecutionScheduler.js +0 -149
  1967. package/dist/src/ui/hooks/useToolExecutionScheduler.js.map +0 -1
  1968. package/dist/src/ui/hooks/useToolExecutionScheduler.test.js +0 -376
  1969. package/dist/src/ui/hooks/useToolExecutionScheduler.test.js.map +0 -1
  1970. package/dist/src/ui/keyMatchers.js +0 -46
  1971. package/dist/src/ui/keyMatchers.js.map +0 -1
  1972. package/dist/src/ui/keyMatchers.test.js.map +0 -1
  1973. package/dist/src/ui/themes/ansi-light.js.map +0 -1
  1974. package/dist/src/ui/themes/ansi.js.map +0 -1
  1975. package/dist/src/ui/themes/atom-one-dark.js.map +0 -1
  1976. package/dist/src/ui/themes/ayu-light.js.map +0 -1
  1977. package/dist/src/ui/themes/ayu.js.map +0 -1
  1978. package/dist/src/ui/themes/default-light.js.map +0 -1
  1979. package/dist/src/ui/themes/default.js.map +0 -1
  1980. package/dist/src/ui/themes/dracula.js.map +0 -1
  1981. package/dist/src/ui/themes/github-dark.js.map +0 -1
  1982. package/dist/src/ui/themes/github-light.js.map +0 -1
  1983. package/dist/src/ui/themes/googlecode.js.map +0 -1
  1984. package/dist/src/ui/themes/no-color.js.map +0 -1
  1985. package/dist/src/ui/themes/shades-of-purple.js.map +0 -1
  1986. package/dist/src/ui/themes/xcode.js.map +0 -1
  1987. package/dist/src/ui/utils/InlineMarkdownRenderer.test.js +0 -21
  1988. package/dist/src/ui/utils/InlineMarkdownRenderer.test.js.map +0 -1
  1989. package/dist/src/ui/utils/keybindingUtils.js +0 -54
  1990. package/dist/src/ui/utils/keybindingUtils.js.map +0 -1
  1991. package/dist/src/ui/utils/keybindingUtils.test.js +0 -44
  1992. package/dist/src/ui/utils/keybindingUtils.test.js.map +0 -1
  1993. package/dist/src/utils/sandbox-macos-permissive-closed.sb +0 -32
  1994. package/dist/src/zed-integration/acpErrors.js.map +0 -1
  1995. package/dist/src/zed-integration/acpErrors.test.js.map +0 -1
  1996. package/dist/src/zed-integration/acpResume.test.js.map +0 -1
  1997. package/dist/src/zed-integration/fileSystemService.js +0 -41
  1998. package/dist/src/zed-integration/fileSystemService.js.map +0 -1
  1999. package/dist/src/zed-integration/fileSystemService.test.js +0 -88
  2000. package/dist/src/zed-integration/fileSystemService.test.js.map +0 -1
  2001. package/dist/src/zed-integration/zedIntegration.d.ts +0 -42
  2002. package/dist/src/zed-integration/zedIntegration.js.map +0 -1
  2003. package/dist/src/zed-integration/zedIntegration.test.js +0 -664
  2004. package/dist/src/zed-integration/zedIntegration.test.js.map +0 -1
  2005. /package/dist/src/{config/keyBindings.test.d.ts → acp/acpClient.test.d.ts} +0 -0
  2006. /package/dist/src/{zed-integration → acp}/acpErrors.d.ts +0 -0
  2007. /package/dist/src/{zed-integration → acp}/acpErrors.test.d.ts +0 -0
  2008. /package/dist/src/{zed-integration → acp}/acpErrors.test.js +0 -0
  2009. /package/dist/src/{zed-integration → acp}/acpResume.test.d.ts +0 -0
  2010. /package/dist/src/{ui/components/messages/ToolConfirmationMessageOverflow.test.d.ts → acp/commandHandler.test.d.ts} +0 -0
  2011. /package/dist/src/{ui/hooks/useToolExecutionScheduler.test.d.ts → acp/commands/help.test.d.ts} +0 -0
  2012. /package/dist/src/{zed-integration → acp}/fileSystemService.test.d.ts +0 -0
  2013. /package/dist/src/{ui/commands/shellsCommand.test.d.ts → config/extension-manager.test.d.ts} +0 -0
  2014. /package/dist/src/{ui/components/BackgroundShellDisplay.test.d.ts → config/policy.test.d.ts} +0 -0
  2015. /package/dist/src/{ui/hooks/shellCommandProcessor.test.d.ts → config/workspace-policy-cli.test.d.ts} +0 -0
  2016. /package/dist/src/{ui/hooks/useBackgroundShellManager.test.d.ts → nonInteractiveCliAgentSession.test.d.ts} +0 -0
  2017. /package/dist/src/ui/{hooks/useReactToolScheduler.test.d.ts → commands/resumeCommand.test.d.ts} +0 -0
  2018. /package/dist/src/ui/{keyMatchers.test.d.ts → commands/tasksCommand.test.d.ts} +0 -0
  2019. /package/dist/src/ui/{utils/InlineMarkdownRenderer.test.d.ts → components/BackgroundTaskDisplay.test.d.ts} +0 -0
  2020. /package/dist/src/ui/{utils/keybindingUtils.test.d.ts → components/messages/SubagentProgressDisplay.test.d.ts} +0 -0
  2021. /package/dist/src/{zed-integration/zedIntegration.test.d.ts → ui/components/shared/SearchableList.test.d.ts} +0 -0
  2022. /package/dist/src/ui/{hooks → key}/keyToAnsi.d.ts +0 -0
@@ -3,20 +3,35 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { AuthType, logToolCall, convertToFunctionResponse, ToolConfirmationOutcome, clearCachedCredentialFile, isNodeError, getErrorMessage, isWithinRoot, getErrorStatus, MCPServerConfig, DiscoveredMCPTool, StreamEventType, ToolCallEvent, debugLogger, ReadManyFilesTool, REFERENCE_CONTENT_START, resolveModel, createWorkingStdio, startupProfiler, Kind, partListUnionToString, } from '@google/gemini-cli-core';
6
+ import { CoreToolCallStatus, AuthType, logToolCall, convertToFunctionResponse, ToolConfirmationOutcome, clearCachedCredentialFile, isNodeError, getErrorMessage, isWithinRoot, getErrorStatus, MCPServerConfig, DiscoveredMCPTool, StreamEventType, ToolCallEvent, debugLogger, ReadManyFilesTool, REFERENCE_CONTENT_START, createWorkingStdio, startupProfiler, Kind, partListUnionToString, LlmRole, ApprovalMode, getVersion, convertSessionToClientHistory, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_3_1_MODEL, PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL, PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL, PREVIEW_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_MODEL_AUTO, PREVIEW_GEMINI_MODEL_AUTO, getDisplayString, processSingleFileContent, InvalidStreamError, updatePolicy, } from '@google/gemini-cli-core';
7
7
  import * as acp from '@agentclientprotocol/sdk';
8
8
  import { AcpFileSystemService } from './fileSystemService.js';
9
9
  import { getAcpErrorMessage } from './acpErrors.js';
10
10
  import { Readable, Writable } from 'node:stream';
11
- import { SettingScope, loadSettings } from '../config/settings.js';
11
+ function hasMeta(obj) {
12
+ return typeof obj === 'object' && obj !== null && '_meta' in obj;
13
+ }
14
+ import { SettingScope, loadSettings, } from '../config/settings.js';
15
+ import { createPolicyUpdater } from '../config/policy.js';
12
16
  import * as fs from 'node:fs/promises';
13
17
  import * as path from 'node:path';
14
18
  import { z } from 'zod';
15
19
  import { randomUUID } from 'node:crypto';
16
20
  import { loadCliConfig } from '../config/config.js';
17
21
  import { runExitCleanup } from '../utils/cleanup.js';
18
- import { SessionSelector, convertSessionToHistoryFormats, } from '../utils/sessionUtils.js';
19
- export async function runZedIntegration(config, settings, argv) {
22
+ import { SessionSelector } from '../utils/sessionUtils.js';
23
+ import { CommandHandler } from './commandHandler.js';
24
+ const RequestPermissionResponseSchema = z.object({
25
+ outcome: z.discriminatedUnion('outcome', [
26
+ z.object({ outcome: z.literal('cancelled') }),
27
+ z.object({
28
+ outcome: z.literal('selected'),
29
+ optionId: z.string(),
30
+ }),
31
+ ]),
32
+ });
33
+ export async function runAcpClient(config, settings, argv) {
34
+ // ... (skip unchanged lines) ...
20
35
  const { stdout: workingStdout } = createWorkingStdio();
21
36
  const stdout = Writable.toWeb(workingStdout);
22
37
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
@@ -29,14 +44,21 @@ export async function runZedIntegration(config, settings, argv) {
29
44
  await connection.closed.finally(runExitCleanup);
30
45
  }
31
46
  export class GeminiAgent {
32
- config;
47
+ context;
33
48
  settings;
34
49
  argv;
35
50
  connection;
51
+ static callIdCounter = 0;
52
+ static generateCallId(name) {
53
+ return `${name}-${Date.now()}-${++GeminiAgent.callIdCounter}`;
54
+ }
36
55
  sessions = new Map();
37
56
  clientCapabilities;
38
- constructor(config, settings, argv, connection) {
39
- this.config = config;
57
+ apiKey;
58
+ baseUrl;
59
+ customHeaders;
60
+ constructor(context, settings, argv, connection) {
61
+ this.context = context;
40
62
  this.settings = settings;
41
63
  this.argv = argv;
42
64
  this.connection = connection;
@@ -47,22 +69,45 @@ export class GeminiAgent {
47
69
  {
48
70
  id: AuthType.LOGIN_WITH_GOOGLE,
49
71
  name: 'Log in with Google',
50
- description: null,
72
+ description: 'Log in with your Google account',
51
73
  },
52
74
  {
53
75
  id: AuthType.USE_GEMINI,
54
- name: 'Use Gemini API key',
55
- description: 'Requires setting the `GEMINI_API_KEY` environment variable',
76
+ name: 'Gemini API key',
77
+ description: 'Use an API key with Gemini Developer API',
78
+ _meta: {
79
+ 'api-key': {
80
+ provider: 'google',
81
+ },
82
+ },
56
83
  },
57
84
  {
58
85
  id: AuthType.USE_VERTEX_AI,
59
86
  name: 'Vertex AI',
60
- description: null,
87
+ description: 'Use an API key with Vertex AI GenAI API',
88
+ },
89
+ {
90
+ id: AuthType.GATEWAY,
91
+ name: 'AI API Gateway',
92
+ description: 'Use a custom AI API Gateway',
93
+ _meta: {
94
+ gateway: {
95
+ protocol: 'google',
96
+ restartRequired: 'false',
97
+ },
98
+ },
61
99
  },
62
100
  ];
101
+ await this.context.config.initialize();
102
+ const version = await getVersion();
63
103
  return {
64
104
  protocolVersion: acp.PROTOCOL_VERSION,
65
105
  authMethods,
106
+ agentInfo: {
107
+ name: 'gemini-cli',
108
+ title: 'Cell CLI',
109
+ version,
110
+ },
66
111
  agentCapabilities: {
67
112
  loadSession: true,
68
113
  promptCapabilities: {
@@ -77,21 +122,47 @@ export class GeminiAgent {
77
122
  },
78
123
  };
79
124
  }
80
- async authenticate({ methodId }) {
125
+ async authenticate(req) {
126
+ const { methodId } = req;
81
127
  const method = z.nativeEnum(AuthType).parse(methodId);
82
128
  const selectedAuthType = this.settings.merged.security.auth.selectedType;
83
129
  // Only clear credentials when switching to a different auth method
84
130
  if (selectedAuthType && selectedAuthType !== method) {
85
131
  await clearCachedCredentialFile();
86
132
  }
133
+ // Check for api-key in _meta
134
+ const meta = hasMeta(req) ? req._meta : undefined;
135
+ const apiKey = typeof meta?.['api-key'] === 'string' ? meta['api-key'] : undefined;
87
136
  // Refresh auth with the requested method
88
137
  // This will reuse existing credentials if they're valid,
89
138
  // or perform new authentication if needed
90
139
  try {
91
- await this.config.refreshAuth(method);
140
+ if (apiKey) {
141
+ this.apiKey = apiKey;
142
+ }
143
+ // Extract gateway details if present
144
+ const gatewaySchema = z.object({
145
+ baseUrl: z.string().optional(),
146
+ headers: z.record(z.string()).optional(),
147
+ });
148
+ let baseUrl;
149
+ let headers;
150
+ if (meta?.['gateway']) {
151
+ const result = gatewaySchema.safeParse(meta['gateway']);
152
+ if (result.success) {
153
+ baseUrl = result.data.baseUrl;
154
+ headers = result.data.headers;
155
+ }
156
+ else {
157
+ throw new acp.RequestError(-32602, `Malformed gateway payload: ${result.error.message}`);
158
+ }
159
+ }
160
+ this.baseUrl = baseUrl;
161
+ this.customHeaders = headers;
162
+ await this.context.config.refreshAuth(method, undefined, apiKey ?? this.apiKey, baseUrl, headers);
92
163
  }
93
164
  catch (e) {
94
- throw new acp.RequestError(getErrorStatus(e) || 401, getAcpErrorMessage(e));
165
+ throw new acp.RequestError(-32000, getAcpErrorMessage(e));
95
166
  }
96
167
  this.settings.setValue(SettingScope.User, 'security.auth.selectedType', method);
97
168
  }
@@ -103,7 +174,7 @@ export class GeminiAgent {
103
174
  let isAuthenticated = false;
104
175
  let authErrorMessage = '';
105
176
  try {
106
- await config.refreshAuth(authType);
177
+ await config.refreshAuth(authType, undefined, this.apiKey, this.baseUrl, this.customHeaders);
107
178
  isAuthenticated = true;
108
179
  // Extra validation for Gemini API key
109
180
  const contentGeneratorConfig = config.getContentGeneratorConfig();
@@ -119,43 +190,68 @@ export class GeminiAgent {
119
190
  debugLogger.error(`Authentication failed: ${e instanceof Error ? e.stack : e}`);
120
191
  }
121
192
  if (!isAuthenticated) {
122
- throw new acp.RequestError(401, authErrorMessage || 'Authentication required.');
193
+ throw new acp.RequestError(-32000, authErrorMessage || 'Authentication required.');
123
194
  }
124
195
  if (this.clientCapabilities?.fs) {
125
- const acpFileSystemService = new AcpFileSystemService(this.connection, sessionId, this.clientCapabilities.fs, config.getFileSystemService());
196
+ const acpFileSystemService = new AcpFileSystemService(this.connection, sessionId, this.clientCapabilities.fs, config.getFileSystemService(), cwd);
126
197
  config.setFileSystemService(acpFileSystemService);
127
198
  }
128
199
  await config.initialize();
129
200
  startupProfiler.flush(config);
130
201
  const geminiClient = config.getGeminiClient();
131
202
  const chat = await geminiClient.startChat();
132
- const session = new Session(sessionId, chat, config, this.connection);
203
+ const session = new Session(sessionId, chat, config, this.connection, this.settings);
133
204
  this.sessions.set(sessionId, session);
134
- return {
205
+ setTimeout(() => {
206
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
207
+ session.sendAvailableCommands();
208
+ }, 0);
209
+ const { availableModels, currentModelId } = buildAvailableModels(config, loadedSettings);
210
+ const response = {
135
211
  sessionId,
212
+ modes: {
213
+ availableModes: buildAvailableModes(config.isPlanEnabled()),
214
+ currentModeId: config.getApprovalMode(),
215
+ },
216
+ models: {
217
+ availableModels,
218
+ currentModelId,
219
+ },
136
220
  };
221
+ return response;
137
222
  }
138
223
  async loadSession({ sessionId, cwd, mcpServers, }) {
139
224
  const config = await this.initializeSessionConfig(sessionId, cwd, mcpServers);
140
225
  const sessionSelector = new SessionSelector(config);
141
226
  const { sessionData, sessionPath } = await sessionSelector.resolveSession(sessionId);
142
- if (this.clientCapabilities?.fs) {
143
- const acpFileSystemService = new AcpFileSystemService(this.connection, sessionId, this.clientCapabilities.fs, config.getFileSystemService());
144
- config.setFileSystemService(acpFileSystemService);
145
- }
146
- const { clientHistory } = convertSessionToHistoryFormats(sessionData.messages);
227
+ const clientHistory = convertSessionToClientHistory(sessionData.messages);
147
228
  const geminiClient = config.getGeminiClient();
148
229
  await geminiClient.initialize();
149
230
  await geminiClient.resumeChat(clientHistory, {
150
231
  conversation: sessionData,
151
232
  filePath: sessionPath,
152
233
  });
153
- const session = new Session(sessionId, geminiClient.getChat(), config, this.connection);
234
+ const session = new Session(sessionId, geminiClient.getChat(), config, this.connection, this.settings);
154
235
  this.sessions.set(sessionId, session);
155
236
  // Stream history back to client
156
237
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
157
238
  session.streamHistory(sessionData.messages);
158
- return {};
239
+ setTimeout(() => {
240
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
241
+ session.sendAvailableCommands();
242
+ }, 0);
243
+ const { availableModels, currentModelId } = buildAvailableModels(config, this.settings);
244
+ const response = {
245
+ modes: {
246
+ availableModes: buildAvailableModes(config.isPlanEnabled()),
247
+ currentModeId: config.getApprovalMode(),
248
+ },
249
+ models: {
250
+ availableModels,
251
+ currentModelId,
252
+ },
253
+ };
254
+ return response;
159
255
  }
160
256
  async initializeSessionConfig(sessionId, cwd, mcpServers) {
161
257
  const selectedAuthType = this.settings.merged.security.auth.selectedType;
@@ -168,13 +264,18 @@ export class GeminiAgent {
168
264
  // This satisfies the security requirement to verify the user before executing
169
265
  // potentially unsafe server definitions.
170
266
  try {
171
- await config.refreshAuth(selectedAuthType);
267
+ await config.refreshAuth(selectedAuthType, undefined, this.apiKey, this.baseUrl, this.customHeaders);
172
268
  }
173
269
  catch (e) {
174
270
  debugLogger.error(`Authentication failed: ${e}`);
175
271
  throw acp.RequestError.authRequired();
176
272
  }
177
- // 3. Now that we are authenticated, it is safe to initialize the config
273
+ // 3. Set the ACP FileSystemService (if supported) before config initialization
274
+ if (this.clientCapabilities?.fs) {
275
+ const acpFileSystemService = new AcpFileSystemService(this.connection, sessionId, this.clientCapabilities.fs, config.getFileSystemService(), cwd);
276
+ config.setFileSystemService(acpFileSystemService);
277
+ }
278
+ // 4. Now that we are authenticated, it is safe to initialize the config
178
279
  // which starts the MCP servers and other heavy resources.
179
280
  await config.initialize();
180
281
  startupProfiler.flush(config);
@@ -211,6 +312,7 @@ export class GeminiAgent {
211
312
  mcpServers: mergedMcpServers,
212
313
  };
213
314
  const config = await loadCliConfig(settings, sessionId, this.argv, { cwd });
315
+ createPolicyUpdater(config.getPolicyEngine(), config.messageBus, config.storage);
214
316
  return config;
215
317
  }
216
318
  async cancel(params) {
@@ -227,18 +329,35 @@ export class GeminiAgent {
227
329
  }
228
330
  return session.prompt(params);
229
331
  }
332
+ async setSessionMode(params) {
333
+ const session = this.sessions.get(params.sessionId);
334
+ if (!session) {
335
+ throw new Error(`Session not found: ${params.sessionId}`);
336
+ }
337
+ return session.setMode(params.modeId);
338
+ }
339
+ async unstable_setSessionModel(params) {
340
+ const session = this.sessions.get(params.sessionId);
341
+ if (!session) {
342
+ throw new Error(`Session not found: ${params.sessionId}`);
343
+ }
344
+ return session.setModel(params.modelId);
345
+ }
230
346
  }
231
347
  export class Session {
232
348
  id;
233
349
  chat;
234
- config;
350
+ context;
235
351
  connection;
352
+ settings;
236
353
  pendingPrompt = null;
237
- constructor(id, chat, config, connection) {
354
+ commandHandler = new CommandHandler();
355
+ constructor(id, chat, context, connection, settings) {
238
356
  this.id = id;
239
357
  this.chat = chat;
240
- this.config = config;
358
+ this.context = context;
241
359
  this.connection = connection;
360
+ this.settings = settings;
242
361
  }
243
362
  async cancelPendingPrompt() {
244
363
  if (!this.pendingPrompt) {
@@ -247,6 +366,33 @@ export class Session {
247
366
  this.pendingPrompt.abort();
248
367
  this.pendingPrompt = null;
249
368
  }
369
+ setMode(modeId) {
370
+ const availableModes = buildAvailableModes(this.context.config.isPlanEnabled());
371
+ const mode = availableModes.find((m) => m.id === modeId);
372
+ if (!mode) {
373
+ throw new Error(`Invalid or unavailable mode: ${modeId}`);
374
+ }
375
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
376
+ this.context.config.setApprovalMode(mode.id);
377
+ return {};
378
+ }
379
+ getAvailableCommands() {
380
+ return this.commandHandler.getAvailableCommands();
381
+ }
382
+ async sendAvailableCommands() {
383
+ const availableCommands = this.getAvailableCommands().map((command) => ({
384
+ name: command.name,
385
+ description: command.description,
386
+ }));
387
+ await this.sendUpdate({
388
+ sessionUpdate: 'available_commands_update',
389
+ availableCommands,
390
+ });
391
+ }
392
+ setModel(modelId) {
393
+ this.context.config.setModel(modelId);
394
+ return {};
395
+ }
250
396
  async streamHistory(messages) {
251
397
  for (const msg of messages) {
252
398
  const contentString = partListUnionToString(msg.content);
@@ -296,11 +442,13 @@ export class Session {
296
442
  });
297
443
  }
298
444
  }
299
- const tool = this.config.getToolRegistry().getTool(toolCall.name);
445
+ const tool = this.context.toolRegistry.getTool(toolCall.name);
300
446
  await this.sendUpdate({
301
447
  sessionUpdate: 'tool_call',
302
448
  toolCallId: toolCall.id,
303
- status: toolCall.status === 'success' ? 'completed' : 'failed',
449
+ status: toolCall.status === CoreToolCallStatus.Success
450
+ ? 'completed'
451
+ : 'failed',
304
452
  title: toolCall.displayName || toolCall.name,
305
453
  content: toolCallContent,
306
454
  kind: tool ? toAcpToolKind(tool.kind) : 'other',
@@ -314,23 +462,84 @@ export class Session {
314
462
  this.pendingPrompt?.abort();
315
463
  const pendingSend = new AbortController();
316
464
  this.pendingPrompt = pendingSend;
465
+ await this.context.config.waitForMcpInit();
317
466
  const promptId = Math.random().toString(16).slice(2);
318
467
  const chat = this.chat;
319
468
  const parts = await this.#resolvePrompt(params.prompt, pendingSend.signal);
469
+ // Command interception
470
+ let commandText = '';
471
+ for (const part of parts) {
472
+ if (typeof part === 'object' && part !== null) {
473
+ if ('text' in part) {
474
+ // It is a text part
475
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-type-assertion
476
+ const text = part.text;
477
+ if (typeof text === 'string') {
478
+ commandText += text;
479
+ }
480
+ }
481
+ else {
482
+ // Non-text part (image, embedded resource)
483
+ // Stop looking for command
484
+ break;
485
+ }
486
+ }
487
+ }
488
+ commandText = commandText.trim();
489
+ if (commandText &&
490
+ (commandText.startsWith('/') || commandText.startsWith('$'))) {
491
+ // If we found a command, pass it to handleCommand
492
+ // Note: handleCommand currently expects `commandText` to be the command string
493
+ // It uses `parts` argument but effectively ignores it in current implementation
494
+ const handled = await this.handleCommand(commandText, parts);
495
+ if (handled) {
496
+ return {
497
+ stopReason: 'end_turn',
498
+ _meta: {
499
+ quota: {
500
+ token_count: { input_tokens: 0, output_tokens: 0 },
501
+ model_usage: [],
502
+ },
503
+ },
504
+ };
505
+ }
506
+ }
507
+ let totalInputTokens = 0;
508
+ let totalOutputTokens = 0;
509
+ const modelUsageMap = new Map();
320
510
  let nextMessage = { role: 'user', parts };
321
511
  while (nextMessage !== null) {
322
512
  if (pendingSend.signal.aborted) {
323
513
  chat.addHistory(nextMessage);
324
- return { stopReason: 'cancelled' };
514
+ return { stopReason: CoreToolCallStatus.Cancelled };
325
515
  }
326
516
  const functionCalls = [];
327
517
  try {
328
- const model = resolveModel(this.config.getModel(), (await this.config.getGemini31Launched?.()) ?? false);
329
- const responseStream = await chat.sendMessageStream({ model }, nextMessage?.parts ?? [], promptId, pendingSend.signal);
518
+ const routingContext = {
519
+ history: chat.getHistory(/*curated=*/ true),
520
+ request: nextMessage?.parts ?? [],
521
+ signal: pendingSend.signal,
522
+ requestedModel: this.context.config.getModel(),
523
+ };
524
+ const router = this.context.config.getModelRouterService();
525
+ const { model } = await router.route(routingContext);
526
+ const responseStream = await chat.sendMessageStream({ model }, nextMessage?.parts ?? [], promptId, pendingSend.signal, LlmRole.MAIN);
330
527
  nextMessage = null;
528
+ let turnInputTokens = 0;
529
+ let turnOutputTokens = 0;
530
+ let turnModelId = model;
331
531
  for await (const resp of responseStream) {
332
532
  if (pendingSend.signal.aborted) {
333
- return { stopReason: 'cancelled' };
533
+ return { stopReason: CoreToolCallStatus.Cancelled };
534
+ }
535
+ if (resp.type === StreamEventType.CHUNK && resp.value.usageMetadata) {
536
+ turnInputTokens =
537
+ resp.value.usageMetadata.promptTokenCount ?? turnInputTokens;
538
+ turnOutputTokens =
539
+ resp.value.usageMetadata.candidatesTokenCount ?? turnOutputTokens;
540
+ if (resp.value.modelVersion) {
541
+ turnModelId = resp.value.modelVersion;
542
+ }
334
543
  }
335
544
  if (resp.type === StreamEventType.CHUNK &&
336
545
  resp.value.candidates &&
@@ -357,8 +566,19 @@ export class Session {
357
566
  functionCalls.push(...resp.value.functionCalls);
358
567
  }
359
568
  }
569
+ totalInputTokens += turnInputTokens;
570
+ totalOutputTokens += turnOutputTokens;
571
+ if (turnInputTokens > 0 || turnOutputTokens > 0) {
572
+ const existing = modelUsageMap.get(turnModelId) ?? {
573
+ input: 0,
574
+ output: 0,
575
+ };
576
+ existing.input += turnInputTokens;
577
+ existing.output += turnOutputTokens;
578
+ modelUsageMap.set(turnModelId, existing);
579
+ }
360
580
  if (pendingSend.signal.aborted) {
361
- return { stopReason: 'cancelled' };
581
+ return { stopReason: CoreToolCallStatus.Cancelled };
362
582
  }
363
583
  }
364
584
  catch (error) {
@@ -367,7 +587,36 @@ export class Session {
367
587
  }
368
588
  if (pendingSend.signal.aborted ||
369
589
  (error instanceof Error && error.name === 'AbortError')) {
370
- return { stopReason: 'cancelled' };
590
+ return { stopReason: CoreToolCallStatus.Cancelled };
591
+ }
592
+ if (error instanceof InvalidStreamError ||
593
+ (error &&
594
+ typeof error === 'object' &&
595
+ 'type' in error &&
596
+ (error.type === 'NO_RESPONSE_TEXT' ||
597
+ error.type === 'NO_FINISH_REASON' ||
598
+ error.type === 'MALFORMED_FUNCTION_CALL' ||
599
+ error.type === 'UNEXPECTED_TOOL_CALL'))) {
600
+ // The stream ended with an empty response or malformed tool call.
601
+ // Treat this as a graceful end to the model's turn rather than a crash.
602
+ return {
603
+ stopReason: 'end_turn',
604
+ _meta: {
605
+ quota: {
606
+ token_count: {
607
+ input_tokens: totalInputTokens,
608
+ output_tokens: totalOutputTokens,
609
+ },
610
+ model_usage: Array.from(modelUsageMap.entries()).map(([modelName, counts]) => ({
611
+ model: modelName,
612
+ token_count: {
613
+ input_tokens: counts.input,
614
+ output_tokens: counts.output,
615
+ },
616
+ })),
617
+ },
618
+ },
619
+ };
371
620
  }
372
621
  throw new acp.RequestError(getErrorStatus(error) || 500, getAcpErrorMessage(error));
373
622
  }
@@ -380,7 +629,42 @@ export class Session {
380
629
  nextMessage = { role: 'user', parts: toolResponseParts };
381
630
  }
382
631
  }
383
- return { stopReason: 'end_turn' };
632
+ const modelUsageArray = Array.from(modelUsageMap.entries()).map(([modelName, counts]) => ({
633
+ model: modelName,
634
+ token_count: {
635
+ input_tokens: counts.input,
636
+ output_tokens: counts.output,
637
+ },
638
+ }));
639
+ return {
640
+ stopReason: 'end_turn',
641
+ _meta: {
642
+ quota: {
643
+ token_count: {
644
+ input_tokens: totalInputTokens,
645
+ output_tokens: totalOutputTokens,
646
+ },
647
+ model_usage: modelUsageArray,
648
+ },
649
+ },
650
+ };
651
+ }
652
+ async handleCommand(commandText,
653
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
654
+ parts) {
655
+ const gitService = await this.context.config.getGitService();
656
+ const commandContext = {
657
+ agentContext: this.context,
658
+ settings: this.settings,
659
+ git: gitService,
660
+ sendMessage: async (text) => {
661
+ await this.sendUpdate({
662
+ sessionUpdate: 'agent_message_chunk',
663
+ content: { type: 'text', text },
664
+ });
665
+ },
666
+ };
667
+ return this.commandHandler.handleCommand(commandText, commandContext);
384
668
  }
385
669
  async sendUpdate(update) {
386
670
  const params = {
@@ -390,12 +674,12 @@ export class Session {
390
674
  await this.connection.sessionUpdate(params);
391
675
  }
392
676
  async runTool(abortSignal, promptId, fc) {
393
- const callId = fc.id ?? `${fc.name}-${Date.now()}`;
677
+ const callId = fc.id ?? GeminiAgent.generateCallId(fc.name || 'unknown');
394
678
  const args = fc.args ?? {};
395
679
  const startTime = Date.now();
396
680
  const errorResponse = (error) => {
397
681
  const durationMs = Date.now() - startTime;
398
- logToolCall(this.config, new ToolCallEvent(undefined, fc.name ?? '', args, durationMs, false, promptId, typeof tool !== 'undefined' && tool instanceof DiscoveredMCPTool
682
+ logToolCall(this.context.config, new ToolCallEvent(undefined, fc.name ?? '', args, durationMs, false, promptId, typeof tool !== 'undefined' && tool instanceof DiscoveredMCPTool
399
683
  ? 'mcp'
400
684
  : 'native', error.message));
401
685
  return [
@@ -411,43 +695,64 @@ export class Session {
411
695
  if (!fc.name) {
412
696
  return errorResponse(new Error('Missing function name'));
413
697
  }
414
- const toolRegistry = this.config.getToolRegistry();
698
+ const toolRegistry = this.context.toolRegistry;
415
699
  const tool = toolRegistry.getTool(fc.name);
416
700
  if (!tool) {
417
701
  return errorResponse(new Error(`Tool "${fc.name}" not found in registry.`));
418
702
  }
419
703
  try {
420
704
  const invocation = tool.build(args);
705
+ const displayTitle = typeof invocation.getDisplayTitle === 'function'
706
+ ? invocation.getDisplayTitle()
707
+ : invocation.getDescription();
708
+ const explanation = typeof invocation.getExplanation === 'function'
709
+ ? invocation.getExplanation()
710
+ : '';
711
+ if (explanation) {
712
+ await this.sendUpdate({
713
+ sessionUpdate: 'agent_thought_chunk',
714
+ content: { type: 'text', text: explanation },
715
+ });
716
+ }
421
717
  const confirmationDetails = await invocation.shouldConfirmExecute(abortSignal);
422
718
  if (confirmationDetails) {
423
719
  const content = [];
424
720
  if (confirmationDetails.type === 'edit') {
425
721
  content.push({
426
722
  type: 'diff',
427
- path: confirmationDetails.fileName,
723
+ path: confirmationDetails.filePath,
428
724
  oldText: confirmationDetails.originalContent,
429
725
  newText: confirmationDetails.newContent,
726
+ _meta: {
727
+ kind: !confirmationDetails.originalContent
728
+ ? 'add'
729
+ : confirmationDetails.newContent === ''
730
+ ? 'delete'
731
+ : 'modify',
732
+ },
430
733
  });
431
734
  }
432
735
  const params = {
433
736
  sessionId: this.id,
434
- options: toPermissionOptions(confirmationDetails),
737
+ options: toPermissionOptions(confirmationDetails, this.context.config, this.settings.merged.security.enablePermanentToolApproval),
435
738
  toolCall: {
436
739
  toolCallId: callId,
437
740
  status: 'pending',
438
- title: invocation.getDescription(),
741
+ title: displayTitle,
439
742
  content,
440
743
  locations: invocation.toolLocations(),
441
744
  kind: toAcpToolKind(tool.kind),
442
745
  },
443
746
  };
444
- const output = await this.connection.requestPermission(params);
747
+ const output = RequestPermissionResponseSchema.parse(await this.connection.requestPermission(params));
445
748
  const outcome = output.outcome.outcome === 'cancelled'
446
749
  ? ToolConfirmationOutcome.Cancel
447
750
  : z
448
751
  .nativeEnum(ToolConfirmationOutcome)
449
752
  .parse(output.outcome.optionId);
450
753
  await confirmationDetails.onConfirm(outcome);
754
+ // Update policy to enable Always Allow persistence
755
+ await updatePolicy(tool, outcome, confirmationDetails, this.context, this.context.messageBus, invocation);
451
756
  switch (outcome) {
452
757
  case ToolConfirmationOutcome.Cancel:
453
758
  return errorResponse(new Error(`Tool "${fc.name}" was canceled by the user.`));
@@ -465,31 +770,36 @@ export class Session {
465
770
  }
466
771
  }
467
772
  else {
773
+ const content = [];
468
774
  await this.sendUpdate({
469
775
  sessionUpdate: 'tool_call',
470
776
  toolCallId: callId,
471
777
  status: 'in_progress',
472
- title: invocation.getDescription(),
473
- content: [],
778
+ title: displayTitle,
779
+ content,
474
780
  locations: invocation.toolLocations(),
475
781
  kind: toAcpToolKind(tool.kind),
476
782
  });
477
783
  }
478
784
  const toolResult = await invocation.execute(abortSignal);
479
785
  const content = toToolCallContent(toolResult);
786
+ const updateContent = content ? [content] : [];
480
787
  await this.sendUpdate({
481
788
  sessionUpdate: 'tool_call_update',
482
789
  toolCallId: callId,
483
790
  status: 'completed',
484
- content: content ? [content] : [],
791
+ title: displayTitle,
792
+ content: updateContent,
793
+ locations: invocation.toolLocations(),
794
+ kind: toAcpToolKind(tool.kind),
485
795
  });
486
796
  const durationMs = Date.now() - startTime;
487
- logToolCall(this.config, new ToolCallEvent(undefined, fc.name ?? '', args, durationMs, true, promptId, typeof tool !== 'undefined' && tool instanceof DiscoveredMCPTool
797
+ logToolCall(this.context.config, new ToolCallEvent(undefined, fc.name ?? '', args, durationMs, true, promptId, typeof tool !== 'undefined' && tool instanceof DiscoveredMCPTool
488
798
  ? 'mcp'
489
799
  : 'native'));
490
- this.chat.recordCompletedToolCalls(this.config.getActiveModel(), [
800
+ this.chat.recordCompletedToolCalls(this.context.config.getActiveModel(), [
491
801
  {
492
- status: 'success',
802
+ status: CoreToolCallStatus.Success,
493
803
  request: {
494
804
  callId,
495
805
  name: fc.name,
@@ -501,14 +811,14 @@ export class Session {
501
811
  invocation,
502
812
  response: {
503
813
  callId,
504
- responseParts: convertToFunctionResponse(fc.name, callId, toolResult.llmContent, this.config.getActiveModel()),
814
+ responseParts: convertToFunctionResponse(fc.name, callId, toolResult.llmContent, this.context.config.getActiveModel(), this.context.config),
505
815
  resultDisplay: toolResult.returnDisplay,
506
816
  error: undefined,
507
817
  errorType: undefined,
508
818
  },
509
819
  },
510
820
  ]);
511
- return convertToFunctionResponse(fc.name, callId, toolResult.llmContent, this.config.getActiveModel());
821
+ return convertToFunctionResponse(fc.name, callId, toolResult.llmContent, this.context.config.getActiveModel(), this.context.config);
512
822
  }
513
823
  catch (e) {
514
824
  const error = e instanceof Error ? e : new Error(String(e));
@@ -519,10 +829,11 @@ export class Session {
519
829
  content: [
520
830
  { type: 'content', content: { type: 'text', text: error.message } },
521
831
  ],
832
+ kind: toAcpToolKind(tool.kind),
522
833
  });
523
- this.chat.recordCompletedToolCalls(this.config.getActiveModel(), [
834
+ this.chat.recordCompletedToolCalls(this.context.config.getActiveModel(), [
524
835
  {
525
- status: 'error',
836
+ status: CoreToolCallStatus.Error,
526
837
  request: {
527
838
  callId,
528
839
  name: fc.name,
@@ -596,13 +907,14 @@ export class Session {
596
907
  }
597
908
  const atPathToResolvedSpecMap = new Map();
598
909
  // Get centralized file discovery service
599
- const fileDiscovery = this.config.getFileService();
600
- const fileFilteringOptions = this.config.getFileFilteringOptions();
910
+ const fileDiscovery = this.context.config.getFileService();
911
+ const fileFilteringOptions = this.context.config.getFileFilteringOptions();
601
912
  const pathSpecsToRead = [];
602
913
  const contentLabelsForDisplay = [];
603
914
  const ignoredPaths = [];
604
- const toolRegistry = this.config.getToolRegistry();
605
- const readManyFilesTool = new ReadManyFilesTool(this.config, this.config.getMessageBus());
915
+ const directContents = [];
916
+ const toolRegistry = this.context.toolRegistry;
917
+ const readManyFilesTool = new ReadManyFilesTool(this.context.config, this.context.messageBus);
606
918
  const globTool = toolRegistry.getTool('glob');
607
919
  if (!readManyFilesTool) {
608
920
  throw new Error('Error: read_many_files tool not found.');
@@ -617,33 +929,170 @@ export class Session {
617
929
  }
618
930
  let currentPathSpec = pathName;
619
931
  let resolvedSuccessfully = false;
932
+ let readDirectly = false;
620
933
  try {
621
- const absolutePath = path.resolve(this.config.getTargetDir(), pathName);
622
- if (isWithinRoot(absolutePath, this.config.getTargetDir())) {
623
- const stats = await fs.stat(absolutePath);
624
- if (stats.isDirectory()) {
625
- currentPathSpec = pathName.endsWith('/')
626
- ? `${pathName}**`
627
- : `${pathName}/**`;
628
- this.debug(`Path ${pathName} resolved to directory, using glob: ${currentPathSpec}`);
934
+ const absolutePath = path.resolve(this.context.config.getTargetDir(), pathName);
935
+ let validationError = this.context.config.validatePathAccess(absolutePath, 'read');
936
+ // We ask the user for explicit permission to read them if outside sandboxed workspace boundaries (and not already authorized).
937
+ if (validationError &&
938
+ !isWithinRoot(absolutePath, this.context.config.getTargetDir())) {
939
+ try {
940
+ const stats = await fs.stat(absolutePath);
941
+ if (stats.isFile()) {
942
+ const syntheticCallId = `resolve-prompt-${pathName}-${randomUUID()}`;
943
+ const params = {
944
+ sessionId: this.id,
945
+ options: [
946
+ {
947
+ optionId: ToolConfirmationOutcome.ProceedOnce,
948
+ name: 'Allow once',
949
+ kind: 'allow_once',
950
+ },
951
+ {
952
+ optionId: ToolConfirmationOutcome.Cancel,
953
+ name: 'Deny',
954
+ kind: 'reject_once',
955
+ },
956
+ ],
957
+ toolCall: {
958
+ toolCallId: syntheticCallId,
959
+ status: 'pending',
960
+ title: `Allow access to absolute path: ${pathName}`,
961
+ content: [
962
+ {
963
+ type: 'content',
964
+ content: {
965
+ type: 'text',
966
+ text: `The Agent needs access to read an attached file outside your workspace: ${pathName}`,
967
+ },
968
+ },
969
+ ],
970
+ locations: [],
971
+ kind: 'read',
972
+ },
973
+ };
974
+ const output = RequestPermissionResponseSchema.parse(await this.connection.requestPermission(params));
975
+ const outcome = output.outcome.outcome === 'cancelled'
976
+ ? ToolConfirmationOutcome.Cancel
977
+ : z
978
+ .nativeEnum(ToolConfirmationOutcome)
979
+ .parse(output.outcome.optionId);
980
+ if (outcome === ToolConfirmationOutcome.ProceedOnce) {
981
+ this.context.config
982
+ .getWorkspaceContext()
983
+ .addReadOnlyPath(absolutePath);
984
+ validationError = null;
985
+ }
986
+ else {
987
+ this.debug(`Direct read authorization denied for absolute path ${pathName}`);
988
+ directContents.push({
989
+ spec: pathName,
990
+ content: `[Warning: Access to absolute path \`${pathName}\` denied by user.]`,
991
+ });
992
+ continue;
993
+ }
994
+ }
629
995
  }
630
- else {
631
- this.debug(`Path ${pathName} resolved to file: ${currentPathSpec}`);
996
+ catch (error) {
997
+ this.debug(`Failed to request permission for absolute attachment ${pathName}: ${getErrorMessage(error)}`);
998
+ await this.sendUpdate({
999
+ sessionUpdate: 'agent_thought_chunk',
1000
+ content: {
1001
+ type: 'text',
1002
+ text: `Warning: Failed to display permission dialog for \`${absolutePath}\`. Error: ${getErrorMessage(error)}`,
1003
+ },
1004
+ });
1005
+ }
1006
+ }
1007
+ if (!validationError) {
1008
+ // If it's an absolute path that is authorized (e.g. added via readOnlyPaths),
1009
+ // read it directly to avoid ReadManyFilesTool absolute path resolution issues.
1010
+ if ((path.isAbsolute(pathName) ||
1011
+ !isWithinRoot(absolutePath, this.context.config.getTargetDir())) &&
1012
+ !readDirectly) {
1013
+ try {
1014
+ const stats = await fs.stat(absolutePath);
1015
+ if (stats.isFile()) {
1016
+ const fileReadResult = await processSingleFileContent(absolutePath, this.context.config.getTargetDir(), this.context.config.getFileSystemService());
1017
+ if (!fileReadResult.error) {
1018
+ if (typeof fileReadResult.llmContent === 'object' &&
1019
+ 'inlineData' in fileReadResult.llmContent) {
1020
+ directContents.push({
1021
+ spec: pathName,
1022
+ part: fileReadResult.llmContent,
1023
+ });
1024
+ }
1025
+ else if (typeof fileReadResult.llmContent === 'string') {
1026
+ let contentToPush = fileReadResult.llmContent;
1027
+ if (fileReadResult.isTruncated) {
1028
+ contentToPush = `[WARNING: This file was truncated]\n\n${contentToPush}`;
1029
+ }
1030
+ directContents.push({
1031
+ spec: pathName,
1032
+ content: contentToPush,
1033
+ });
1034
+ }
1035
+ readDirectly = true;
1036
+ resolvedSuccessfully = true;
1037
+ }
1038
+ else {
1039
+ this.debug(`Direct read failed for absolute path ${pathName}: ${fileReadResult.error}`);
1040
+ await this.sendUpdate({
1041
+ sessionUpdate: 'agent_thought_chunk',
1042
+ content: {
1043
+ type: 'text',
1044
+ text: `Warning: file read failed for \`${pathName}\`. Reason: ${fileReadResult.error}`,
1045
+ },
1046
+ });
1047
+ continue;
1048
+ }
1049
+ }
1050
+ }
1051
+ catch (error) {
1052
+ this.debug(`File stat/access error for absolute path ${pathName}: ${getErrorMessage(error)}`);
1053
+ await this.sendUpdate({
1054
+ sessionUpdate: 'agent_thought_chunk',
1055
+ content: {
1056
+ type: 'text',
1057
+ text: `Warning: file access failed for \`${pathName}\`. Reason: ${getErrorMessage(error)}`,
1058
+ },
1059
+ });
1060
+ continue;
1061
+ }
1062
+ }
1063
+ if (!readDirectly) {
1064
+ const stats = await fs.stat(absolutePath);
1065
+ if (stats.isDirectory()) {
1066
+ currentPathSpec = pathName.endsWith('/')
1067
+ ? `${pathName}**`
1068
+ : `${pathName}/**`;
1069
+ this.debug(`Path ${pathName} resolved to directory, using glob: ${currentPathSpec}`);
1070
+ }
1071
+ else {
1072
+ this.debug(`Path ${pathName} resolved to file: ${currentPathSpec}`);
1073
+ }
1074
+ resolvedSuccessfully = true;
632
1075
  }
633
- resolvedSuccessfully = true;
634
1076
  }
635
1077
  else {
636
- this.debug(`Path ${pathName} is outside the project directory. Skipping.`);
1078
+ this.debug(`Path ${pathName} access disallowed: ${validationError}. Skipping.`);
1079
+ await this.sendUpdate({
1080
+ sessionUpdate: 'agent_thought_chunk',
1081
+ content: {
1082
+ type: 'text',
1083
+ text: `Warning: skipping access to \`${pathName}\`. Reason: ${validationError}`,
1084
+ },
1085
+ });
637
1086
  }
638
1087
  }
639
1088
  catch (error) {
640
1089
  if (isNodeError(error) && error.code === 'ENOENT') {
641
- if (this.config.getEnableRecursiveFileSearch() && globTool) {
1090
+ if (this.context.config.getEnableRecursiveFileSearch() && globTool) {
642
1091
  this.debug(`Path ${pathName} not found directly, attempting glob search.`);
643
1092
  try {
644
1093
  const globResult = await globTool.buildAndExecute({
645
1094
  pattern: `**/*${pathName}*`,
646
- path: this.config.getTargetDir(),
1095
+ path: this.context.config.getTargetDir(),
647
1096
  }, abortSignal);
648
1097
  if (globResult.llmContent &&
649
1098
  typeof globResult.llmContent === 'string' &&
@@ -652,7 +1101,7 @@ export class Session {
652
1101
  const lines = globResult.llmContent.split('\n');
653
1102
  if (lines.length > 1 && lines[1]) {
654
1103
  const firstMatchAbsolute = lines[1].trim();
655
- currentPathSpec = path.relative(this.config.getTargetDir(), firstMatchAbsolute);
1104
+ currentPathSpec = path.relative(this.context.config.getTargetDir(), firstMatchAbsolute);
656
1105
  this.debug(`Glob search for ${pathName} found ${firstMatchAbsolute}, using relative path: ${currentPathSpec}`);
657
1106
  resolvedSuccessfully = true;
658
1107
  }
@@ -677,7 +1126,9 @@ export class Session {
677
1126
  }
678
1127
  }
679
1128
  if (resolvedSuccessfully) {
680
- pathSpecsToRead.push(currentPathSpec);
1129
+ if (!readDirectly) {
1130
+ pathSpecsToRead.push(currentPathSpec);
1131
+ }
681
1132
  atPathToResolvedSpecMap.set(pathName, currentPathSpec);
682
1133
  contentLabelsForDisplay.push(pathName);
683
1134
  }
@@ -728,7 +1179,9 @@ export class Session {
728
1179
  this.debug(`Ignored ${ignoredPaths.length} files: ${ignoredPaths.join(', ')}`);
729
1180
  }
730
1181
  const processedQueryParts = [{ text: initialQueryText }];
731
- if (pathSpecsToRead.length === 0 && embeddedContext.length === 0) {
1182
+ if (pathSpecsToRead.length === 0 &&
1183
+ embeddedContext.length === 0 &&
1184
+ directContents.length === 0) {
732
1185
  // Fallback for lone "@" or completely invalid @-commands resulting in empty initialQueryText
733
1186
  debugLogger.warn('No valid file paths found in @ commands to read.');
734
1187
  return [{ text: initialQueryText }];
@@ -737,7 +1190,7 @@ export class Session {
737
1190
  const toolArgs = {
738
1191
  include: pathSpecsToRead,
739
1192
  };
740
- const callId = `${readManyFilesTool.name}-${Date.now()}`;
1193
+ const callId = GeminiAgent.generateCallId(readManyFilesTool.name);
741
1194
  try {
742
1195
  const invocation = readManyFilesTool.build(toolArgs);
743
1196
  await this.sendUpdate({
@@ -761,7 +1214,10 @@ export class Session {
761
1214
  sessionUpdate: 'tool_call_update',
762
1215
  toolCallId: callId,
763
1216
  status: 'completed',
1217
+ title: invocation.getDescription(),
764
1218
  content: content ? [content] : [],
1219
+ locations: invocation.toolLocations(),
1220
+ kind: toAcpToolKind(readManyFilesTool.kind),
765
1221
  });
766
1222
  if (Array.isArray(result.llmContent)) {
767
1223
  const fileContentRegex = /^--- (.*?) ---\n\n([\s\S]*?)\n\n$/;
@@ -807,10 +1263,32 @@ export class Session {
807
1263
  },
808
1264
  },
809
1265
  ],
1266
+ kind: toAcpToolKind(readManyFilesTool.kind),
810
1267
  });
811
1268
  throw error;
812
1269
  }
813
1270
  }
1271
+ if (directContents.length > 0) {
1272
+ const hasReferenceStart = processedQueryParts.some((p) => 'text' in p &&
1273
+ typeof p.text === 'string' &&
1274
+ p.text.includes(REFERENCE_CONTENT_START));
1275
+ if (!hasReferenceStart) {
1276
+ processedQueryParts.push({
1277
+ text: `\n${REFERENCE_CONTENT_START}`,
1278
+ });
1279
+ }
1280
+ for (const item of directContents) {
1281
+ processedQueryParts.push({
1282
+ text: `\nContent from @${item.spec}:\n`,
1283
+ });
1284
+ if (item.content) {
1285
+ processedQueryParts.push({ text: item.content });
1286
+ }
1287
+ else if (item.part) {
1288
+ processedQueryParts.push(item.part);
1289
+ }
1290
+ }
1291
+ }
814
1292
  if (embeddedContext.length > 0) {
815
1293
  processedQueryParts.push({
816
1294
  text: '\n--- Content from referenced context ---',
@@ -837,7 +1315,7 @@ export class Session {
837
1315
  return processedQueryParts;
838
1316
  }
839
1317
  debug(msg) {
840
- if (this.config.getDebugMode()) {
1318
+ if (this.context.config.getDebugMode()) {
841
1319
  debugLogger.warn(msg);
842
1320
  }
843
1321
  }
@@ -857,9 +1335,17 @@ function toToolCallContent(toolResult) {
857
1335
  if ('fileName' in toolResult.returnDisplay) {
858
1336
  return {
859
1337
  type: 'diff',
860
- path: toolResult.returnDisplay.fileName,
1338
+ path: toolResult.returnDisplay.filePath ??
1339
+ toolResult.returnDisplay.fileName,
861
1340
  oldText: toolResult.returnDisplay.originalContent,
862
1341
  newText: toolResult.returnDisplay.newContent,
1342
+ _meta: {
1343
+ kind: !toolResult.returnDisplay.originalContent
1344
+ ? 'add'
1345
+ : toolResult.returnDisplay.newContent === ''
1346
+ ? 'delete'
1347
+ : 'modify',
1348
+ },
863
1349
  };
864
1350
  }
865
1351
  return null;
@@ -881,60 +1367,97 @@ const basicPermissionOptions = [
881
1367
  kind: 'reject_once',
882
1368
  },
883
1369
  ];
884
- function toPermissionOptions(confirmation) {
885
- switch (confirmation.type) {
886
- case 'edit':
887
- return [
888
- {
1370
+ function toPermissionOptions(confirmation, config, enablePermanentToolApproval = false) {
1371
+ const disableAlwaysAllow = config.getDisableAlwaysAllow();
1372
+ const options = [];
1373
+ if (!disableAlwaysAllow) {
1374
+ switch (confirmation.type) {
1375
+ case 'edit':
1376
+ options.push({
889
1377
  optionId: ToolConfirmationOutcome.ProceedAlways,
890
- name: 'Allow All Edits',
1378
+ name: 'Allow for this session',
891
1379
  kind: 'allow_always',
892
- },
893
- ...basicPermissionOptions,
894
- ];
895
- case 'exec':
896
- return [
897
- {
1380
+ });
1381
+ if (enablePermanentToolApproval) {
1382
+ options.push({
1383
+ optionId: ToolConfirmationOutcome.ProceedAlwaysAndSave,
1384
+ name: 'Allow for this file in all future sessions',
1385
+ kind: 'allow_always',
1386
+ });
1387
+ }
1388
+ break;
1389
+ case 'exec':
1390
+ options.push({
898
1391
  optionId: ToolConfirmationOutcome.ProceedAlways,
899
- name: `Always Allow ${confirmation.rootCommand}`,
1392
+ name: 'Allow for this session',
900
1393
  kind: 'allow_always',
901
- },
902
- ...basicPermissionOptions,
903
- ];
904
- case 'mcp':
905
- return [
906
- {
1394
+ });
1395
+ if (enablePermanentToolApproval) {
1396
+ options.push({
1397
+ optionId: ToolConfirmationOutcome.ProceedAlwaysAndSave,
1398
+ name: 'Allow this command for all future sessions',
1399
+ kind: 'allow_always',
1400
+ });
1401
+ }
1402
+ break;
1403
+ case 'mcp':
1404
+ options.push({
907
1405
  optionId: ToolConfirmationOutcome.ProceedAlwaysServer,
908
- name: `Always Allow ${confirmation.serverName}`,
1406
+ name: 'Allow all server tools for this session',
909
1407
  kind: 'allow_always',
910
- },
911
- {
1408
+ }, {
912
1409
  optionId: ToolConfirmationOutcome.ProceedAlwaysTool,
913
- name: `Always Allow ${confirmation.toolName}`,
1410
+ name: 'Allow tool for this session',
914
1411
  kind: 'allow_always',
915
- },
916
- ...basicPermissionOptions,
917
- ];
918
- case 'info':
919
- return [
920
- {
1412
+ });
1413
+ if (enablePermanentToolApproval) {
1414
+ options.push({
1415
+ optionId: ToolConfirmationOutcome.ProceedAlwaysAndSave,
1416
+ name: 'Allow tool for all future sessions',
1417
+ kind: 'allow_always',
1418
+ });
1419
+ }
1420
+ break;
1421
+ case 'info':
1422
+ options.push({
921
1423
  optionId: ToolConfirmationOutcome.ProceedAlways,
922
- name: `Always Allow`,
1424
+ name: 'Allow for this session',
923
1425
  kind: 'allow_always',
924
- },
925
- ...basicPermissionOptions,
926
- ];
1426
+ });
1427
+ if (enablePermanentToolApproval) {
1428
+ options.push({
1429
+ optionId: ToolConfirmationOutcome.ProceedAlwaysAndSave,
1430
+ name: 'Allow for all future sessions',
1431
+ kind: 'allow_always',
1432
+ });
1433
+ }
1434
+ break;
1435
+ case 'ask_user':
1436
+ case 'exit_plan_mode':
1437
+ // askuser and exit_plan_mode don't need "always allow" options
1438
+ break;
1439
+ default:
1440
+ // No "always allow" options for other types
1441
+ break;
1442
+ }
1443
+ }
1444
+ options.push(...basicPermissionOptions);
1445
+ // Exhaustive check
1446
+ switch (confirmation.type) {
1447
+ case 'edit':
1448
+ case 'exec':
1449
+ case 'mcp':
1450
+ case 'info':
927
1451
  case 'ask_user':
928
- // askuser doesn't need "always allow" options since it's asking questions
929
- return [...basicPermissionOptions];
930
1452
  case 'exit_plan_mode':
931
- // exit_plan_mode doesn't need "always allow" options since it's a plan approval flow
932
- return [...basicPermissionOptions];
1453
+ case 'sandbox_expansion':
1454
+ break;
933
1455
  default: {
934
1456
  const unreachable = confirmation;
935
1457
  throw new Error(`Unexpected: ${unreachable}`);
936
1458
  }
937
1459
  }
1460
+ return options;
938
1461
  }
939
1462
  /**
940
1463
  * Maps our internal tool kind to the ACP ToolKind.
@@ -944,17 +1467,138 @@ function toAcpToolKind(kind) {
944
1467
  switch (kind) {
945
1468
  case Kind.Read:
946
1469
  case Kind.Edit:
1470
+ case Kind.Execute:
1471
+ case Kind.Search:
947
1472
  case Kind.Delete:
948
1473
  case Kind.Move:
949
- case Kind.Search:
950
- case Kind.Execute:
951
1474
  case Kind.Think:
952
1475
  case Kind.Fetch:
1476
+ case Kind.SwitchMode:
953
1477
  case Kind.Other:
954
1478
  return kind;
1479
+ case Kind.Agent:
1480
+ return 'think';
1481
+ case Kind.Plan:
955
1482
  case Kind.Communicate:
956
1483
  default:
957
1484
  return 'other';
958
1485
  }
959
1486
  }
960
- //# sourceMappingURL=zedIntegration.js.map
1487
+ function buildAvailableModes(isPlanEnabled) {
1488
+ const modes = [
1489
+ {
1490
+ id: ApprovalMode.DEFAULT,
1491
+ name: 'Default',
1492
+ description: 'Prompts for approval',
1493
+ },
1494
+ {
1495
+ id: ApprovalMode.AUTO_EDIT,
1496
+ name: 'Auto Edit',
1497
+ description: 'Auto-approves edit tools',
1498
+ },
1499
+ {
1500
+ id: ApprovalMode.YOLO,
1501
+ name: 'YOLO',
1502
+ description: 'Auto-approves all tools',
1503
+ },
1504
+ ];
1505
+ if (isPlanEnabled) {
1506
+ modes.push({
1507
+ id: ApprovalMode.PLAN,
1508
+ name: 'Plan',
1509
+ description: 'Read-only mode',
1510
+ });
1511
+ }
1512
+ return modes;
1513
+ }
1514
+ function buildAvailableModels(config, settings) {
1515
+ const preferredModel = config.getModel() || DEFAULT_GEMINI_MODEL_AUTO;
1516
+ const shouldShowPreviewModels = config.getHasAccessToPreviewModel();
1517
+ const useGemini31 = config.getGemini31LaunchedSync?.() ?? false;
1518
+ const useGemini31FlashLite = config.getGemini31FlashLiteLaunchedSync?.() ?? false;
1519
+ const selectedAuthType = settings.merged.security.auth.selectedType;
1520
+ const useCustomToolModel = useGemini31 && selectedAuthType === AuthType.USE_GEMINI;
1521
+ // --- DYNAMIC PATH ---
1522
+ if (config.getExperimentalDynamicModelConfiguration?.() === true &&
1523
+ config.getModelConfigService) {
1524
+ const options = config.getModelConfigService().getAvailableModelOptions({
1525
+ useGemini3_1: useGemini31,
1526
+ useGemini3_1FlashLite: useGemini31FlashLite,
1527
+ useCustomTools: useCustomToolModel,
1528
+ hasAccessToPreview: shouldShowPreviewModels,
1529
+ });
1530
+ return {
1531
+ availableModels: options,
1532
+ currentModelId: preferredModel,
1533
+ };
1534
+ }
1535
+ // --- LEGACY PATH ---
1536
+ const mainOptions = [
1537
+ {
1538
+ value: DEFAULT_GEMINI_MODEL_AUTO,
1539
+ title: getDisplayString(DEFAULT_GEMINI_MODEL_AUTO),
1540
+ description: 'Let Cell CLI decide the best model for the task: gemini-2.5-pro, gemini-2.5-flash',
1541
+ },
1542
+ ];
1543
+ if (shouldShowPreviewModels) {
1544
+ mainOptions.unshift({
1545
+ value: PREVIEW_GEMINI_MODEL_AUTO,
1546
+ title: getDisplayString(PREVIEW_GEMINI_MODEL_AUTO),
1547
+ description: useGemini31
1548
+ ? 'Let Cell CLI decide the best model for the task: gemini-3.1-pro, gemini-3-flash'
1549
+ : 'Let Cell CLI decide the best model for the task: gemini-3-pro, gemini-3-flash',
1550
+ });
1551
+ }
1552
+ const manualOptions = [
1553
+ {
1554
+ value: DEFAULT_GEMINI_MODEL,
1555
+ title: getDisplayString(DEFAULT_GEMINI_MODEL),
1556
+ },
1557
+ {
1558
+ value: DEFAULT_GEMINI_FLASH_MODEL,
1559
+ title: getDisplayString(DEFAULT_GEMINI_FLASH_MODEL),
1560
+ },
1561
+ {
1562
+ value: DEFAULT_GEMINI_FLASH_LITE_MODEL,
1563
+ title: getDisplayString(DEFAULT_GEMINI_FLASH_LITE_MODEL),
1564
+ },
1565
+ ];
1566
+ if (shouldShowPreviewModels) {
1567
+ const previewProModel = useGemini31
1568
+ ? PREVIEW_GEMINI_3_1_MODEL
1569
+ : PREVIEW_GEMINI_MODEL;
1570
+ const previewProValue = useCustomToolModel
1571
+ ? PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL
1572
+ : previewProModel;
1573
+ const previewOptions = [
1574
+ {
1575
+ value: previewProValue,
1576
+ title: getDisplayString(previewProModel),
1577
+ },
1578
+ {
1579
+ value: PREVIEW_GEMINI_FLASH_MODEL,
1580
+ title: getDisplayString(PREVIEW_GEMINI_FLASH_MODEL),
1581
+ },
1582
+ ];
1583
+ if (useGemini31FlashLite) {
1584
+ previewOptions.push({
1585
+ value: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
1586
+ title: getDisplayString(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL),
1587
+ });
1588
+ }
1589
+ manualOptions.unshift(...previewOptions);
1590
+ }
1591
+ const scaleOptions = (options) => options.map((o) => ({
1592
+ modelId: o.value,
1593
+ name: o.title,
1594
+ description: o.description,
1595
+ }));
1596
+ return {
1597
+ availableModels: [
1598
+ ...scaleOptions(mainOptions),
1599
+ ...scaleOptions(manualOptions),
1600
+ ],
1601
+ currentModelId: preferredModel,
1602
+ };
1603
+ }
1604
+ //# sourceMappingURL=acpClient.js.map