@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
@@ -1,12 +1,14 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useState, useRef, useMemo, Fragment, } from 'react';
2
3
  import clipboardy from 'clipboardy';
3
- import { useCallback, useEffect, useState, useRef, useMemo } from 'react';
4
4
  import { Box, Text, useStdout } from 'ink';
5
5
  import { SuggestionsDisplay, MAX_WIDTH } from './SuggestionsDisplay.js';
6
6
  import { theme } from '../semantic-colors.js';
7
7
  import { useInputHistory } from '../hooks/useInputHistory.js';
8
+ import { escapeAtSymbols } from '../hooks/atCommandProcessor.js';
9
+ import { ScrollableList, } from './shared/ScrollableList.js';
8
10
  import { HalfLinePaddedBox } from './shared/HalfLinePaddedBox.js';
9
- import { logicalPosToOffset, PASTED_TEXT_PLACEHOLDER_REGEX, getTransformUnderCursor, LARGE_PASTE_LINE_THRESHOLD, LARGE_PASTE_CHAR_THRESHOLD, } from './shared/text-buffer.js';
11
+ import { logicalPosToOffset, expandPastePlaceholders, getTransformUnderCursor, LARGE_PASTE_LINE_THRESHOLD, LARGE_PASTE_CHAR_THRESHOLD, } from './shared/text-buffer.js';
10
12
  import { cpSlice, cpLen, toCodePoints, cpIndexToOffset, } from '../utils/textUtils.js';
11
13
  import chalk from 'chalk';
12
14
  import stringWidth from 'string-width';
@@ -14,19 +16,21 @@ import { useShellHistory } from '../hooks/useShellHistory.js';
14
16
  import { useReverseSearchCompletion } from '../hooks/useReverseSearchCompletion.js';
15
17
  import { useCommandCompletion, CompletionMode, } from '../hooks/useCommandCompletion.js';
16
18
  import { useKeypress } from '../hooks/useKeypress.js';
17
- import { keyMatchers, Command } from '../keyMatchers.js';
18
- import { ApprovalMode, coreEvents, debugLogger } from '@google/gemini-cli-core';
19
+ import { Command } from '../key/keyMatchers.js';
20
+ import { formatCommand } from '../key/keybindingUtils.js';
21
+ import { ApprovalMode, coreEvents, debugLogger, } from '@google/gemini-cli-core';
19
22
  import { parseInputForHighlighting, parseSegmentsFromTokens, } from '../utils/highlight.js';
20
23
  import { useKittyKeyboardProtocol } from '../hooks/useKittyKeyboardProtocol.js';
21
24
  import { clipboardHasImage, saveClipboardImage, cleanupOldClipboardImages, } from '../utils/clipboardUtils.js';
22
25
  import { isAutoExecutableCommand, isSlashCommand, } from '../utils/commandUtils.js';
26
+ import { parseSlashCommand } from '../../utils/commands.js';
23
27
  import * as path from 'node:path';
24
28
  import { SCREEN_READER_USER_PREFIX } from '../textConstants.js';
25
- import { DEFAULT_BACKGROUND_OPACITY, DEFAULT_INPUT_BACKGROUND_OPACITY, } from '../constants.js';
26
29
  import { getSafeLowColorBackground } from '../themes/color-utils.js';
27
30
  import { isLowColorDepth } from '../utils/terminalUtils.js';
28
31
  import { useShellFocusState } from '../contexts/ShellFocusContext.js';
29
32
  import { useUIState } from '../contexts/UIStateContext.js';
33
+ import { useInputState } from '../contexts/InputContext.js';
30
34
  import { appEvents, AppEvent, TransientMessageType, } from '../../utils/events.js';
31
35
  import { useSettings } from '../contexts/SettingsContext.js';
32
36
  import { StreamingState } from '../types.js';
@@ -34,6 +38,9 @@ import { useMouseClick } from '../hooks/useMouseClick.js';
34
38
  import { useMouse } from '../contexts/MouseContext.js';
35
39
  import { useUIActions } from '../contexts/UIActionsContext.js';
36
40
  import { useAlternateBuffer } from '../hooks/useAlternateBuffer.js';
41
+ import { useIsHelpDismissKey } from '../utils/shortcutsHelp.js';
42
+ import { useRepeatedKeyPress } from '../hooks/useRepeatedKeyPress.js';
43
+ import { useKeyMatchers } from '../hooks/useKeyMatchers.js';
37
44
  /**
38
45
  * Returns if the terminal can be trusted to handle paste events atomically
39
46
  * rather than potentially sending multiple paste events separated by line
@@ -66,6 +73,7 @@ export function isLargePaste(text) {
66
73
  return (pasteLineCount > LARGE_PASTE_LINE_THRESHOLD ||
67
74
  text.length > LARGE_PASTE_CHAR_THRESHOLD);
68
75
  }
76
+ const DOUBLE_TAB_CLEAN_UI_TOGGLE_WINDOW_MS = 350;
69
77
  /**
70
78
  * Attempt to toggle expansion of a paste placeholder in the buffer.
71
79
  * Returns true if a toggle action was performed or hint was shown, false otherwise.
@@ -94,20 +102,49 @@ export function tryTogglePasteExpansion(buffer) {
94
102
  });
95
103
  return true;
96
104
  }
97
- export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, config, slashCommands, commandContext, placeholder = ' Type your message or @path/to/file', focus = true, inputWidth, suggestionsWidth, shellModeActive, setShellModeActive, approvalMode, onEscapePromptChange, onSuggestionsVisibilityChange, vimHandleInput, isEmbeddedShellFocused, setQueueErrorMessage, streamingState, popAllMessages, suggestionsPosition = 'below', setBannerVisible, }) => {
105
+ export const InputPrompt = ({ onSubmit, onClearScreen, config, slashCommands, commandContext, placeholder = ' Type your message or @path/to/file', focus = true, setShellModeActive, approvalMode, onEscapePromptChange, onSuggestionsVisibilityChange, vimHandleInput, isEmbeddedShellFocused, setQueueErrorMessage, streamingState, popAllMessages, onQueueMessage, suggestionsPosition = 'below', setBannerVisible, }) => {
106
+ const inputState = useInputState();
107
+ const { buffer, userMessages, shellModeActive, copyModeEnabled, inputWidth, suggestionsWidth, } = inputState;
108
+ const isHelpDismissKey = useIsHelpDismissKey();
109
+ const keyMatchers = useKeyMatchers();
98
110
  const { stdout } = useStdout();
99
111
  const { merged: settings } = useSettings();
100
112
  const kittyProtocol = useKittyKeyboardProtocol();
101
113
  const isShellFocused = useShellFocusState();
102
- const { setEmbeddedShellFocused, setShortcutsHelpVisible } = useUIActions();
103
- const { terminalWidth, activePtyId, history, terminalBackgroundColor, backgroundShells, backgroundShellHeight, shortcutsHelpVisible, } = useUIState();
114
+ const { setEmbeddedShellFocused, setShortcutsHelpVisible, toggleCleanUiDetailsVisible, } = useUIActions();
115
+ const { terminalWidth, activePtyId, history, backgroundTasks, backgroundTaskHeight, shortcutsHelpVisible, } = useUIState();
104
116
  const [suppressCompletion, setSuppressCompletion] = useState(false);
105
- const escPressCount = useRef(0);
117
+ const { handlePress: registerPlainTabPress, resetCount: resetPlainTabPress } = useRepeatedKeyPress({
118
+ windowMs: DOUBLE_TAB_CLEAN_UI_TOGGLE_WINDOW_MS,
119
+ });
106
120
  const [showEscapePrompt, setShowEscapePrompt] = useState(false);
107
- const escapeTimerRef = useRef(null);
121
+ const { handlePress: handleEscPress, resetCount: resetEscapeState } = useRepeatedKeyPress({
122
+ windowMs: 500,
123
+ onRepeat: (count) => {
124
+ if (count === 1) {
125
+ setShowEscapePrompt(true);
126
+ }
127
+ else if (count === 2) {
128
+ resetEscapeState();
129
+ if (buffer.text.length > 0) {
130
+ buffer.setText('');
131
+ resetCompletionState();
132
+ }
133
+ else if (history.length > 0) {
134
+ onSubmit('/rewind');
135
+ }
136
+ else {
137
+ coreEvents.emitFeedback('info', 'Nothing to rewind to');
138
+ }
139
+ }
140
+ },
141
+ onReset: () => setShowEscapePrompt(false),
142
+ });
108
143
  const [recentUnsafePasteTime, setRecentUnsafePasteTime] = useState(null);
109
144
  const pasteTimeoutRef = useRef(null);
110
145
  const innerBoxRef = useRef(null);
146
+ const hasUserNavigatedSuggestions = useRef(false);
147
+ const listRef = useRef(null);
111
148
  const [reverseSearchActive, setReverseSearchActive] = useState(false);
112
149
  const [commandSearchActive, setCommandSearchActive] = useState(false);
113
150
  const [textBeforeReverseSearch, setTextBeforeReverseSearch] = useState('');
@@ -115,7 +152,7 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
115
152
  0, 0,
116
153
  ]);
117
154
  const [expandedSuggestionIndex, setExpandedSuggestionIndex] = useState(-1);
118
- const shellHistory = useShellHistory(config.getProjectRoot());
155
+ const shellHistory = useShellHistory(config.getProjectRoot(), config.storage);
119
156
  const shellHistoryData = shellHistory.history;
120
157
  const completion = useCommandCompletion({
121
158
  buffer,
@@ -133,26 +170,34 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
133
170
  const resetCompletionState = completion.resetCompletionState;
134
171
  const resetReverseSearchCompletionState = reverseSearchCompletion.resetCompletionState;
135
172
  const resetCommandSearchCompletionState = commandSearchCompletion.resetCompletionState;
136
- const showCursor = focus && isShellFocused && !isEmbeddedShellFocused;
137
- const resetEscapeState = useCallback(() => {
138
- if (escapeTimerRef.current) {
139
- clearTimeout(escapeTimerRef.current);
140
- escapeTimerRef.current = null;
141
- }
142
- escPressCount.current = 0;
143
- setShowEscapePrompt(false);
144
- }, []);
173
+ const getActiveCompletion = useCallback(() => {
174
+ if (commandSearchActive)
175
+ return commandSearchCompletion;
176
+ if (reverseSearchActive)
177
+ return reverseSearchCompletion;
178
+ return completion;
179
+ }, [
180
+ commandSearchActive,
181
+ commandSearchCompletion,
182
+ reverseSearchActive,
183
+ reverseSearchCompletion,
184
+ completion,
185
+ ]);
186
+ const activeCompletion = getActiveCompletion();
187
+ const shouldShowSuggestions = activeCompletion.showSuggestions;
188
+ const { forceShowShellSuggestions, setForceShowShellSuggestions, isShellSuggestionsVisible, } = completion;
189
+ const showCursor = focus && isShellFocused && !isEmbeddedShellFocused && !copyModeEnabled;
190
+ useEffect(() => {
191
+ appEvents.emit(AppEvent.ScrollToBottom);
192
+ }, [buffer.text, buffer.cursor]);
145
193
  // Notify parent component about escape prompt state changes
146
194
  useEffect(() => {
147
195
  if (onEscapePromptChange) {
148
196
  onEscapePromptChange(showEscapePrompt);
149
197
  }
150
198
  }, [showEscapePrompt, onEscapePromptChange]);
151
- // Clear escape prompt timer on unmount
199
+ // Clear paste timeout on unmount
152
200
  useEffect(() => () => {
153
- if (escapeTimerRef.current) {
154
- clearTimeout(escapeTimerRef.current);
155
- }
156
201
  if (pasteTimeoutRef.current) {
157
202
  clearTimeout(pasteTimeoutRef.current);
158
203
  }
@@ -160,8 +205,7 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
160
205
  const handleSubmitAndClear = useCallback((submittedValue) => {
161
206
  let processedValue = submittedValue;
162
207
  if (buffer.pastedContent) {
163
- // Replace placeholders like [Pasted Text: 6 lines] with actual content
164
- processedValue = processedValue.replace(PASTED_TEXT_PLACEHOLDER_REGEX, (match) => buffer.pastedContent[match] || match);
208
+ processedValue = expandPastePlaceholders(processedValue, buffer.pastedContent);
165
209
  }
166
210
  if (shellModeActive) {
167
211
  shellHistory.addCommandToHistory(processedValue);
@@ -173,8 +217,8 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
173
217
  resetCompletionState();
174
218
  resetReverseSearchCompletionState();
175
219
  }, [
176
- onSubmit,
177
220
  buffer,
221
+ onSubmit,
178
222
  resetCompletionState,
179
223
  shellModeActive,
180
224
  shellHistory,
@@ -187,7 +231,8 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
187
231
  const inputHistory = useInputHistory({
188
232
  userMessages,
189
233
  onSubmit: handleSubmitAndClear,
190
- isActive: (!completion.showSuggestions || completion.suggestions.length === 1) &&
234
+ isActive: (!(completion.showSuggestions && isShellSuggestionsVisible) ||
235
+ completion.suggestions.length === 1) &&
191
236
  !shellModeActive,
192
237
  currentQuery: buffer.text,
193
238
  currentCursorOffset: buffer.getOffset(),
@@ -199,11 +244,25 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
199
244
  const isShell = shellModeActive;
200
245
  if ((isSlash || isShell) &&
201
246
  streamingState === StreamingState.Responding) {
247
+ if (isSlash) {
248
+ const { commandToExecute } = parseSlashCommand(trimmedMessage, slashCommands);
249
+ if (commandToExecute?.isSafeConcurrent) {
250
+ handleSubmitAndClear(trimmedMessage);
251
+ return;
252
+ }
253
+ }
202
254
  setQueueErrorMessage(`${isShell ? 'Shell' : 'Slash'} commands cannot be queued`);
203
255
  return;
204
256
  }
205
257
  inputHistory.handleSubmit(trimmedMessage);
206
- }, [inputHistory, shellModeActive, streamingState, setQueueErrorMessage]);
258
+ }, [
259
+ inputHistory,
260
+ shellModeActive,
261
+ streamingState,
262
+ setQueueErrorMessage,
263
+ slashCommands,
264
+ handleSubmitAndClear,
265
+ ]);
207
266
  // Effect to reset completion if history navigation just occurred and set the text
208
267
  useEffect(() => {
209
268
  if (suppressCompletion) {
@@ -276,10 +335,13 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
276
335
  }
277
336
  else {
278
337
  const textToInsert = await clipboardy.read();
279
- buffer.insert(textToInsert, { paste: true });
338
+ const escapedText = settings.ui?.escapePastedAtSymbols
339
+ ? escapeAtSymbols(textToInsert)
340
+ : textToInsert;
341
+ buffer.insert(escapedText, { paste: true });
280
342
  if (isLargePaste(textToInsert)) {
281
343
  appEvents.emit(AppEvent.TransientMessage, {
282
- message: 'Press Ctrl+O to expand pasted text',
344
+ message: `Press ${formatCommand(Command.EXPAND_PASTE)} to expand pasted text`,
283
345
  type: TransientMessageType.Hint,
284
346
  });
285
347
  }
@@ -301,7 +363,8 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
301
363
  if (isEmbeddedShellFocused) {
302
364
  setEmbeddedShellFocused(false);
303
365
  }
304
- const visualRow = buffer.visualScrollRow + relY;
366
+ const currentScrollTop = Math.round(listRef.current?.getScrollState().scrollTop ?? buffer.visualScrollRow);
367
+ const visualRow = currentScrollTop + relY;
305
368
  buffer.moveToVisualPosition(visualRow, relX);
306
369
  }, { isActive: focus });
307
370
  const isAlternateBuffer = useAlternateBuffer();
@@ -309,14 +372,15 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
309
372
  useMouseClick(innerBoxRef, (_event, relX, relY) => {
310
373
  if (!isAlternateBuffer)
311
374
  return;
312
- const visualLine = buffer.viewportVisualLines[relY];
375
+ const currentScrollTop = Math.round(listRef.current?.getScrollState().scrollTop ?? buffer.visualScrollRow);
376
+ const visualLine = buffer.allVisualLines[currentScrollTop + relY];
313
377
  if (!visualLine)
314
378
  return;
315
379
  // Even if we click past the end of the line, we might want to collapse an expanded paste
316
380
  const isPastEndOfLine = relX >= stringWidth(visualLine);
317
381
  const logicalPos = isPastEndOfLine
318
382
  ? null
319
- : buffer.getLogicalPositionFromVisual(buffer.visualScrollRow + relY, relX);
383
+ : buffer.getLogicalPositionFromVisual(currentScrollTop + relY, relX);
320
384
  // Check for paste placeholder (collapsed state)
321
385
  if (logicalPos) {
322
386
  const transform = getTransformUnderCursor(logicalPos.row, logicalPos.col, buffer.transformationsByLine, { includeEdge: true });
@@ -327,7 +391,9 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
327
391
  }
328
392
  // If we didn't click a placeholder to expand, check if we are inside or after
329
393
  // an expanded paste region and collapse it.
330
- const row = buffer.visualScrollRow + relY;
394
+ const visualRow = currentScrollTop + relY;
395
+ const mapEntry = buffer.visualToLogicalMap[visualRow];
396
+ const row = mapEntry ? mapEntry[0] : visualRow;
331
397
  const expandedId = buffer.getExpandedPasteAtLine(row);
332
398
  if (expandedId) {
333
399
  buffer.togglePasteExpansion(expandedId, row, logicalPos?.col ?? relX);
@@ -361,9 +427,7 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
361
427
  keyMatchers[Command.MOVE_WORD_RIGHT](key) ||
362
428
  keyMatchers[Command.HOME](key) ||
363
429
  keyMatchers[Command.END](key);
364
- const isSuggestionsNav = (completion.showSuggestions ||
365
- reverseSearchCompletion.showSuggestions ||
366
- commandSearchCompletion.showSuggestions) &&
430
+ const isSuggestionsNav = shouldShowSuggestions &&
367
431
  (keyMatchers[Command.COMPLETION_UP](key) ||
368
432
  keyMatchers[Command.COMPLETION_DOWN](key) ||
369
433
  keyMatchers[Command.EXPAND_SUGGESTION](key) ||
@@ -374,6 +438,10 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
374
438
  // We explicitly skip this if we are currently navigating suggestions.
375
439
  if (!isSuggestionsNav) {
376
440
  setSuppressCompletion(isHistoryNav || isCursorMovement || keyMatchers[Command.ESCAPE](key));
441
+ hasUserNavigatedSuggestions.current = false;
442
+ if (key.name !== 'tab') {
443
+ setForceShowShellSuggestions(false);
444
+ }
377
445
  }
378
446
  // TODO(jacobr): this special case is likely not needed anymore.
379
447
  // We should probably stop supporting paste if the InputPrompt is not
@@ -389,10 +457,61 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
389
457
  setShortcutsHelpVisible(false);
390
458
  return true;
391
459
  }
392
- if (key.name === 'escape' &&
393
- (streamingState === StreamingState.Responding ||
394
- streamingState === StreamingState.WaitingForConfirmation)) {
395
- return false;
460
+ const isGenerating = streamingState === StreamingState.Responding ||
461
+ streamingState === StreamingState.WaitingForConfirmation;
462
+ const isQueueMessageKey = keyMatchers[Command.QUEUE_MESSAGE](key);
463
+ const isPlainTab = key.name === 'tab' && !key.shift && !key.alt && !key.ctrl && !key.cmd;
464
+ const hasTabCompletionInteraction = (completion.showSuggestions && isShellSuggestionsVisible) ||
465
+ Boolean(completion.promptCompletion.text) ||
466
+ reverseSearchActive ||
467
+ commandSearchActive;
468
+ if (isGenerating &&
469
+ isQueueMessageKey &&
470
+ !hasTabCompletionInteraction &&
471
+ buffer.text.trim().length > 0) {
472
+ const trimmedMessage = buffer.text.trim();
473
+ const isSlash = isSlashCommand(trimmedMessage);
474
+ if (isSlash || shellModeActive) {
475
+ setQueueErrorMessage(`${shellModeActive ? 'Shell' : 'Slash'} commands cannot be queued`);
476
+ }
477
+ else if (onQueueMessage) {
478
+ onQueueMessage(buffer.text);
479
+ buffer.setText('');
480
+ resetCompletionState();
481
+ resetReverseSearchCompletionState();
482
+ }
483
+ resetPlainTabPress();
484
+ return true;
485
+ }
486
+ if (isPlainTab && shellModeActive) {
487
+ resetPlainTabPress();
488
+ if (!shouldShowSuggestions) {
489
+ setSuppressCompletion(false);
490
+ if (completion.promptCompletion.text) {
491
+ completion.promptCompletion.accept();
492
+ return true;
493
+ }
494
+ else if (completion.suggestions.length > 0 &&
495
+ !forceShowShellSuggestions) {
496
+ setForceShowShellSuggestions(true);
497
+ return true;
498
+ }
499
+ }
500
+ }
501
+ else if (isPlainTab) {
502
+ if (!hasTabCompletionInteraction) {
503
+ if (registerPlainTabPress() === 2) {
504
+ toggleCleanUiDetailsVisible();
505
+ resetPlainTabPress();
506
+ return true;
507
+ }
508
+ }
509
+ else {
510
+ resetPlainTabPress();
511
+ }
512
+ }
513
+ else {
514
+ resetPlainTabPress();
396
515
  }
397
516
  if (key.name === 'paste') {
398
517
  if (shortcutsHelpVisible) {
@@ -419,16 +538,26 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
419
538
  pasteTimeoutRef.current = null;
420
539
  }, 40);
421
540
  }
422
- // Ensure we never accidentally interpret paste as regular input.
423
- buffer.handleInput(key);
541
+ if (settings.ui?.escapePastedAtSymbols) {
542
+ buffer.handleInput({
543
+ ...key,
544
+ sequence: escapeAtSymbols(key.sequence || ''),
545
+ });
546
+ }
547
+ else {
548
+ buffer.handleInput(key);
549
+ }
424
550
  if (key.sequence && isLargePaste(key.sequence)) {
425
551
  appEvents.emit(AppEvent.TransientMessage, {
426
- message: 'Press Ctrl+O to expand pasted text',
552
+ message: `Press ${formatCommand(Command.EXPAND_PASTE)} to expand pasted text`,
427
553
  type: TransientMessageType.Hint,
428
554
  });
429
555
  }
430
556
  return true;
431
557
  }
558
+ if (shortcutsHelpVisible && isHelpDismissKey(key)) {
559
+ setShortcutsHelpVisible(false);
560
+ }
432
561
  if (shortcutsHelpVisible) {
433
562
  if (key.sequence === '?' && key.insertable) {
434
563
  setShortcutsHelpVisible(false);
@@ -457,9 +586,7 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
457
586
  }
458
587
  // Reset ESC count and hide prompt on any non-ESC key
459
588
  if (key.name !== 'escape') {
460
- if (escPressCount.current > 0 || showEscapePrompt) {
461
- resetEscapeState();
462
- }
589
+ resetEscapeState();
463
590
  }
464
591
  // Ctrl+O to expand/collapse paste placeholders
465
592
  if (keyMatchers[Command.EXPAND_PASTE](key)) {
@@ -469,7 +596,7 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
469
596
  }
470
597
  if (key.sequence === '!' &&
471
598
  buffer.text === '' &&
472
- !completion.showSuggestions) {
599
+ !(completion.showSuggestions && isShellSuggestionsVisible)) {
473
600
  setShellModeActive(!shellModeActive);
474
601
  buffer.setText(''); // Clear the '!' from input
475
602
  return true;
@@ -491,41 +618,23 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
491
618
  cancelSearch(setCommandSearchActive, commandSearchCompletion.resetCompletionState);
492
619
  return true;
493
620
  }
494
- if (shellModeActive) {
495
- setShellModeActive(false);
496
- resetEscapeState();
497
- return true;
498
- }
499
- if (completion.showSuggestions) {
621
+ if (completion.showSuggestions && isShellSuggestionsVisible) {
500
622
  completion.resetCompletionState();
501
623
  setExpandedSuggestionIndex(-1);
502
624
  resetEscapeState();
503
625
  return true;
504
626
  }
505
- // Handle double ESC
506
- if (escPressCount.current === 0) {
507
- escPressCount.current = 1;
508
- setShowEscapePrompt(true);
509
- if (escapeTimerRef.current) {
510
- clearTimeout(escapeTimerRef.current);
511
- }
512
- escapeTimerRef.current = setTimeout(() => {
513
- resetEscapeState();
514
- }, 500);
515
- return true;
516
- }
517
- // Second ESC
518
- resetEscapeState();
519
- if (buffer.text.length > 0) {
520
- buffer.setText('');
521
- resetCompletionState();
627
+ if (shellModeActive) {
628
+ setShellModeActive(false);
629
+ resetEscapeState();
522
630
  return true;
523
631
  }
524
- else if (history.length > 0) {
525
- onSubmit('/rewind');
526
- return true;
632
+ // If we're generating and no local overlay consumed Escape, let it
633
+ // propagate to the global cancellation handler.
634
+ if (isGenerating) {
635
+ return false;
527
636
  }
528
- coreEvents.emitFeedback('info', 'Nothing to rewind to');
637
+ handleEscPress();
529
638
  return true;
530
639
  }
531
640
  if (keyMatchers[Command.CLEAR_SCREEN](key)) {
@@ -595,21 +704,30 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
595
704
  // If the command is a perfect match, pressing enter should execute it.
596
705
  // We prioritize execution unless the user is explicitly selecting a different suggestion.
597
706
  if (completion.isPerfectMatch &&
598
- completion.completionMode !== CompletionMode.AT &&
599
- keyMatchers[Command.RETURN](key) &&
600
- (!completion.showSuggestions || completion.activeSuggestionIndex <= 0)) {
707
+ keyMatchers[Command.SUBMIT](key) &&
708
+ recentUnsafePasteTime === null &&
709
+ (!(completion.showSuggestions && isShellSuggestionsVisible) ||
710
+ (completion.activeSuggestionIndex <= 0 &&
711
+ !hasUserNavigatedSuggestions.current))) {
601
712
  handleSubmit(buffer.text);
602
713
  return true;
603
714
  }
604
- if (completion.showSuggestions) {
715
+ // Newline insertion
716
+ if (keyMatchers[Command.NEWLINE](key)) {
717
+ buffer.newline();
718
+ return true;
719
+ }
720
+ if (completion.showSuggestions && isShellSuggestionsVisible) {
605
721
  if (completion.suggestions.length > 1) {
606
722
  if (keyMatchers[Command.COMPLETION_UP](key)) {
607
723
  completion.navigateUp();
724
+ hasUserNavigatedSuggestions.current = true;
608
725
  setExpandedSuggestionIndex(-1); // Reset expansion when navigating
609
726
  return true;
610
727
  }
611
728
  if (keyMatchers[Command.COMPLETION_DOWN](key)) {
612
729
  completion.navigateDown();
730
+ hasUserNavigatedSuggestions.current = true;
613
731
  setExpandedSuggestionIndex(-1); // Reset expansion when navigating
614
732
  return true;
615
733
  }
@@ -621,8 +739,28 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
621
739
  : completion.activeSuggestionIndex;
622
740
  if (targetIndex < completion.suggestions.length) {
623
741
  const suggestion = completion.suggestions[targetIndex];
624
- const isEnterKey = key.name === 'return' && !key.ctrl;
742
+ const isEnterKey = key.name === 'enter' && !key.ctrl;
743
+ if (isEnterKey && shellModeActive) {
744
+ if (hasUserNavigatedSuggestions.current) {
745
+ completion.handleAutocomplete(completion.activeSuggestionIndex);
746
+ setExpandedSuggestionIndex(-1);
747
+ hasUserNavigatedSuggestions.current = false;
748
+ return true;
749
+ }
750
+ completion.resetCompletionState();
751
+ setExpandedSuggestionIndex(-1);
752
+ hasUserNavigatedSuggestions.current = false;
753
+ if (buffer.text.trim()) {
754
+ handleSubmit(buffer.text);
755
+ }
756
+ return true;
757
+ }
625
758
  if (isEnterKey && buffer.text.startsWith('/')) {
759
+ if (suggestion.submitValue) {
760
+ setExpandedSuggestionIndex(-1);
761
+ handleSubmit(suggestion.submitValue.trim());
762
+ return true;
763
+ }
626
764
  const { isArgumentCompletion, leafCommand } = completion.slashCompletionRange;
627
765
  if (isArgumentCompletion &&
628
766
  isAutoExecutableCommand(leafCommand)) {
@@ -661,7 +799,8 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
661
799
  }
662
800
  // Handle Tab key for ghost text acceptance
663
801
  if (key.name === 'tab' &&
664
- !completion.showSuggestions &&
802
+ !key.shift &&
803
+ !(completion.showSuggestions && isShellSuggestionsVisible) &&
665
804
  completion.promptCompletion.text) {
666
805
  completion.promptCompletion.accept();
667
806
  return true;
@@ -753,11 +892,6 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
753
892
  }
754
893
  return true;
755
894
  }
756
- // Newline insertion
757
- if (keyMatchers[Command.NEWLINE](key)) {
758
- buffer.newline();
759
- return true;
760
- }
761
895
  // Ctrl+A (Home) / Ctrl+E (End)
762
896
  if (keyMatchers[Command.HOME](key)) {
763
897
  buffer.move('home');
@@ -786,6 +920,14 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
786
920
  buffer.openInExternalEditor();
787
921
  return true;
788
922
  }
923
+ if (keyMatchers[Command.DEPRECATED_OPEN_EXTERNAL_EDITOR](key)) {
924
+ const cmdKey = formatCommand(Command.OPEN_EXTERNAL_EDITOR);
925
+ appEvents.emit(AppEvent.TransientMessage, {
926
+ message: `Use ${cmdKey} to open the external editor.`,
927
+ type: TransientMessageType.Hint,
928
+ });
929
+ return true;
930
+ }
789
931
  // Ctrl+V for clipboard paste
790
932
  if (keyMatchers[Command.PASTE_CLIPBOARD](key)) {
791
933
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
@@ -797,7 +939,7 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
797
939
  }
798
940
  if (keyMatchers[Command.FOCUS_SHELL_INPUT](key)) {
799
941
  if (activePtyId ||
800
- (backgroundShells.size > 0 && backgroundShellHeight > 0)) {
942
+ (backgroundTasks.size > 0 && backgroundTaskHeight > 0)) {
801
943
  setEmbeddedShellFocused(true);
802
944
  return true;
803
945
  }
@@ -825,6 +967,7 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
825
967
  focus,
826
968
  buffer,
827
969
  completion,
970
+ setForceShowShellSuggestions,
828
971
  shellModeActive,
829
972
  setShellModeActive,
830
973
  onClearScreen,
@@ -834,7 +977,6 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
834
977
  reverseSearchCompletion,
835
978
  handleClipboardPaste,
836
979
  resetCompletionState,
837
- showEscapePrompt,
838
980
  resetEscapeState,
839
981
  vimHandleInput,
840
982
  reverseSearchActive,
@@ -847,22 +989,31 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
847
989
  shortcutsHelpVisible,
848
990
  setShortcutsHelpVisible,
849
991
  tryLoadQueuedMessages,
992
+ onQueueMessage,
993
+ setQueueErrorMessage,
994
+ resetReverseSearchCompletionState,
850
995
  setBannerVisible,
851
- onSubmit,
852
996
  activePtyId,
853
997
  setEmbeddedShellFocused,
854
- backgroundShells.size,
855
- backgroundShellHeight,
856
- history,
998
+ backgroundTasks.size,
999
+ backgroundTaskHeight,
857
1000
  streamingState,
1001
+ handleEscPress,
1002
+ registerPlainTabPress,
1003
+ resetPlainTabPress,
1004
+ toggleCleanUiDetailsVisible,
1005
+ shouldShowSuggestions,
1006
+ isShellSuggestionsVisible,
1007
+ forceShowShellSuggestions,
1008
+ keyMatchers,
1009
+ isHelpDismissKey,
1010
+ settings,
858
1011
  ]);
859
1012
  useKeypress(handleInput, {
860
- isActive: !isEmbeddedShellFocused,
1013
+ isActive: !isEmbeddedShellFocused && !copyModeEnabled,
861
1014
  priority: true,
862
1015
  });
863
- const linesToRender = buffer.viewportVisualLines;
864
1016
  const [cursorVisualRowAbsolute, cursorVisualColAbsolute] = buffer.visualCursor;
865
- const scrollVisualRow = buffer.visualScrollRow;
866
1017
  const getGhostTextLines = useCallback(() => {
867
1018
  if (!completion.promptCompletion.text ||
868
1019
  !buffer.text ||
@@ -960,18 +1111,97 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
960
1111
  inputWidth,
961
1112
  ]);
962
1113
  const { inlineGhost, additionalLines } = getGhostTextLines();
963
- const getActiveCompletion = () => {
964
- if (commandSearchActive)
965
- return commandSearchCompletion;
966
- if (reverseSearchActive)
967
- return reverseSearchCompletion;
968
- return completion;
969
- };
970
- const activeCompletion = getActiveCompletion();
971
- const shouldShowSuggestions = activeCompletion.showSuggestions;
1114
+ const scrollableData = useMemo(() => {
1115
+ const items = buffer.allVisualLines.map((lineText, index) => ({
1116
+ type: 'visualLine',
1117
+ lineText,
1118
+ absoluteVisualIdx: index,
1119
+ }));
1120
+ additionalLines.forEach((ghostLine, index) => {
1121
+ items.push({
1122
+ type: 'ghostLine',
1123
+ ghostLine,
1124
+ index,
1125
+ });
1126
+ });
1127
+ return items;
1128
+ }, [buffer.allVisualLines, additionalLines]);
1129
+ const renderItem = useCallback(({ item }) => {
1130
+ if (item.type === 'ghostLine') {
1131
+ const padding = Math.max(0, inputWidth - stringWidth(item.ghostLine));
1132
+ return (_jsx(Box, { height: 1, children: _jsxs(Text, { color: theme.text.secondary, children: [item.ghostLine, ' '.repeat(padding)] }) }));
1133
+ }
1134
+ const { lineText, absoluteVisualIdx } = item;
1135
+ // console.log('renderItem called with:', lineText);
1136
+ const mapEntry = buffer.visualToLogicalMap[absoluteVisualIdx];
1137
+ if (!mapEntry)
1138
+ return _jsx(Text, { children: " " });
1139
+ const isOnCursorLine = focus && absoluteVisualIdx === cursorVisualRowAbsolute;
1140
+ const renderedLine = [];
1141
+ const [logicalLineIdx] = mapEntry;
1142
+ const logicalLine = buffer.lines[logicalLineIdx] || '';
1143
+ const transformations = buffer.transformationsByLine[logicalLineIdx] ?? [];
1144
+ const tokens = parseInputForHighlighting(logicalLine, logicalLineIdx, transformations, ...(focus && buffer.cursor[0] === logicalLineIdx
1145
+ ? [buffer.cursor[1]]
1146
+ : []));
1147
+ const visualStartCol = buffer.visualToTransformedMap[absoluteVisualIdx] ?? 0;
1148
+ const visualEndCol = visualStartCol + cpLen(lineText);
1149
+ const segments = parseSegmentsFromTokens(tokens, visualStartCol, visualEndCol);
1150
+ let charCount = 0;
1151
+ segments.forEach((seg, segIdx) => {
1152
+ const segLen = cpLen(seg.text);
1153
+ let display = seg.text;
1154
+ if (isOnCursorLine) {
1155
+ const relCol = cursorVisualColAbsolute;
1156
+ const segStart = charCount;
1157
+ const segEnd = segStart + segLen;
1158
+ if (relCol >= segStart && relCol < segEnd) {
1159
+ const charToHighlight = cpSlice(display, relCol - segStart, relCol - segStart + 1);
1160
+ const highlighted = showCursor
1161
+ ? chalk.inverse(charToHighlight)
1162
+ : charToHighlight;
1163
+ display =
1164
+ cpSlice(display, 0, relCol - segStart) +
1165
+ highlighted +
1166
+ cpSlice(display, relCol - segStart + 1);
1167
+ }
1168
+ charCount = segEnd;
1169
+ }
1170
+ else {
1171
+ charCount += segLen;
1172
+ }
1173
+ const color = seg.type === 'command' || seg.type === 'file' || seg.type === 'paste'
1174
+ ? theme.text.accent
1175
+ : theme.text.primary;
1176
+ renderedLine.push(_jsx(Text, { color: color, children: display }, `token-${segIdx}`));
1177
+ });
1178
+ const currentLineGhost = isOnCursorLine ? inlineGhost : '';
1179
+ if (isOnCursorLine &&
1180
+ cursorVisualColAbsolute === cpLen(lineText) &&
1181
+ !currentLineGhost) {
1182
+ renderedLine.push(_jsx(Text, { children: showCursor ? chalk.inverse(' ') : ' ' }, `cursor-end-${cursorVisualColAbsolute}`));
1183
+ }
1184
+ const showCursorBeforeGhost = focus &&
1185
+ isOnCursorLine &&
1186
+ cursorVisualColAbsolute === cpLen(lineText) &&
1187
+ currentLineGhost;
1188
+ return (_jsx(Box, { height: 1, children: _jsxs(Text, { terminalCursorFocus: showCursor && isOnCursorLine, terminalCursorPosition: cpIndexToOffset(lineText, cursorVisualColAbsolute), children: [renderedLine, showCursorBeforeGhost && (showCursor ? chalk.inverse(' ') : ' '), currentLineGhost && (_jsx(Text, { color: theme.text.secondary, children: currentLineGhost }))] }) }));
1189
+ }, [
1190
+ buffer.visualToLogicalMap,
1191
+ buffer.lines,
1192
+ buffer.transformationsByLine,
1193
+ buffer.cursor,
1194
+ buffer.visualToTransformedMap,
1195
+ focus,
1196
+ cursorVisualRowAbsolute,
1197
+ cursorVisualColAbsolute,
1198
+ showCursor,
1199
+ inlineGhost,
1200
+ inputWidth,
1201
+ ]);
972
1202
  const useBackgroundColor = config.getUseBackgroundColor();
973
1203
  const isLowColor = isLowColorDepth();
974
- const terminalBg = terminalBackgroundColor || 'black';
1204
+ const terminalBg = theme.background.primary || 'black';
975
1205
  // We should fallback to lines if the background color is disabled OR if it is
976
1206
  // enabled but we are in a low color depth terminal where we don't have a safe
977
1207
  // background color to use.
@@ -984,6 +1214,38 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
984
1214
  }
985
1215
  return false;
986
1216
  }, [useBackgroundColor, isLowColor, terminalBg]);
1217
+ const prevCursorRef = useRef(buffer.visualCursor);
1218
+ const prevTextRef = useRef(buffer.text);
1219
+ // Effect to ensure cursor remains visible after interactions
1220
+ useEffect(() => {
1221
+ const cursorChanged = prevCursorRef.current !== buffer.visualCursor;
1222
+ const textChanged = prevTextRef.current !== buffer.text;
1223
+ prevCursorRef.current = buffer.visualCursor;
1224
+ prevTextRef.current = buffer.text;
1225
+ if (!cursorChanged && !textChanged)
1226
+ return;
1227
+ if (!listRef.current || !focus)
1228
+ return;
1229
+ const { scrollTop, innerHeight } = listRef.current.getScrollState();
1230
+ if (innerHeight === 0)
1231
+ return;
1232
+ const cursorVisualRow = buffer.visualCursor[0];
1233
+ const actualScrollTop = Math.round(scrollTop);
1234
+ // If cursor is out of the currently visible viewport...
1235
+ if (cursorVisualRow < actualScrollTop ||
1236
+ cursorVisualRow >= actualScrollTop + innerHeight) {
1237
+ // Calculate minimal scroll to make it visible
1238
+ let newScrollTop = actualScrollTop;
1239
+ if (cursorVisualRow < actualScrollTop) {
1240
+ newScrollTop = cursorVisualRow;
1241
+ }
1242
+ else if (cursorVisualRow >= actualScrollTop + innerHeight) {
1243
+ newScrollTop = cursorVisualRow - innerHeight + 1;
1244
+ }
1245
+ listRef.current.scrollToIndex({ index: newScrollTop });
1246
+ }
1247
+ }, [buffer.visualCursor, buffer.text, focus]);
1248
+ const listBackgroundColor = useLineFallback || !useBackgroundColor ? undefined : theme.background.input;
987
1249
  useEffect(() => {
988
1250
  if (onSuggestionsVisibilityChange) {
989
1251
  onSuggestionsVisibilityChange(shouldShowSuggestions);
@@ -1010,7 +1272,8 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
1010
1272
  statusColor = theme.status.warning;
1011
1273
  statusText = 'Accepting edits';
1012
1274
  }
1013
- const suggestionsNode = shouldShowSuggestions ? (_jsx(Box, { paddingRight: 2, children: _jsx(SuggestionsDisplay, { suggestions: activeCompletion.suggestions, activeIndex: activeCompletion.activeSuggestionIndex, isLoading: activeCompletion.isLoadingSuggestions, width: suggestionsWidth, scrollOffset: activeCompletion.visibleStartIndex, userInput: buffer.text, mode: completion.completionMode === CompletionMode.AT
1275
+ const suggestionsNode = shouldShowSuggestions ? (_jsx(Box, { paddingRight: 2, children: _jsx(SuggestionsDisplay, { suggestions: activeCompletion.suggestions, activeIndex: activeCompletion.activeSuggestionIndex, isLoading: activeCompletion.isLoadingSuggestions, width: suggestionsWidth, scrollOffset: activeCompletion.visibleStartIndex, userInput: buffer.text, mode: completion.completionMode === CompletionMode.AT ||
1276
+ completion.completionMode === CompletionMode.SHELL
1014
1277
  ? 'reverse'
1015
1278
  : buffer.text.startsWith('/') &&
1016
1279
  !reverseSearchActive &&
@@ -1018,78 +1281,18 @@ export const InputPrompt = ({ buffer, onSubmit, userMessages, onClearScreen, con
1018
1281
  ? 'slash'
1019
1282
  : 'reverse', expandedIndex: expandedSuggestionIndex }) })) : null;
1020
1283
  const borderColor = isShellFocused && !isEmbeddedShellFocused
1021
- ? (statusColor ?? theme.border.focused)
1284
+ ? (statusColor ?? theme.ui.focus)
1022
1285
  : theme.border.default;
1023
- return (_jsxs(_Fragment, { children: [suggestionsPosition === 'above' && suggestionsNode, useLineFallback ? (_jsx(Box, { borderStyle: "round", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, borderColor: borderColor, width: terminalWidth, flexDirection: "row", alignItems: "flex-start", height: 0 })) : null, _jsx(HalfLinePaddedBox, { backgroundBaseColor: theme.text.secondary, backgroundOpacity: showCursor
1024
- ? DEFAULT_INPUT_BACKGROUND_OPACITY
1025
- : DEFAULT_BACKGROUND_OPACITY, useBackgroundColor: useBackgroundColor, children: _jsxs(Box, { flexGrow: 1, flexDirection: "row", paddingX: 1, borderColor: borderColor, borderStyle: useLineFallback ? 'round' : undefined, borderTop: false, borderBottom: false, borderLeft: !useBackgroundColor, borderRight: !useBackgroundColor, children: [_jsxs(Text, { color: statusColor ?? theme.text.accent, "aria-label": statusText || undefined, children: [shellModeActive ? (reverseSearchActive ? (_jsxs(Text, { color: theme.text.link, "aria-label": SCREEN_READER_USER_PREFIX, children: ["(r:)", ' '] })) : ('!')) : commandSearchActive ? (_jsx(Text, { color: theme.text.accent, children: "(r:) " })) : showYoloStyling ? ('*') : ('>'), ' '] }), _jsx(Box, { flexGrow: 1, flexDirection: "column", ref: innerBoxRef, children: buffer.text.length === 0 && placeholder ? (showCursor ? (_jsxs(Text, { terminalCursorFocus: showCursor, terminalCursorPosition: 0, children: [chalk.inverse(placeholder.slice(0, 1)), _jsx(Text, { color: theme.text.secondary, children: placeholder.slice(1) })] })) : (_jsx(Text, { color: theme.text.secondary, children: placeholder }))) : (linesToRender
1026
- .map((lineText, visualIdxInRenderedSet) => {
1027
- const absoluteVisualIdx = scrollVisualRow + visualIdxInRenderedSet;
1028
- const mapEntry = buffer.visualToLogicalMap[absoluteVisualIdx];
1029
- if (!mapEntry)
1030
- return null;
1031
- const cursorVisualRow = cursorVisualRowAbsolute - scrollVisualRow;
1032
- const isOnCursorLine = focus && visualIdxInRenderedSet === cursorVisualRow;
1033
- const renderedLine = [];
1034
- const [logicalLineIdx] = mapEntry;
1035
- const logicalLine = buffer.lines[logicalLineIdx] || '';
1036
- const transformations = buffer.transformationsByLine[logicalLineIdx] ?? [];
1037
- const tokens = parseInputForHighlighting(logicalLine, logicalLineIdx, transformations, ...(focus && buffer.cursor[0] === logicalLineIdx
1038
- ? [buffer.cursor[1]]
1039
- : []));
1040
- const startColInTransformed = buffer.visualToTransformedMap[absoluteVisualIdx] ?? 0;
1041
- const visualStartCol = startColInTransformed;
1042
- const visualEndCol = visualStartCol + cpLen(lineText);
1043
- const segments = parseSegmentsFromTokens(tokens, visualStartCol, visualEndCol);
1044
- let charCount = 0;
1045
- segments.forEach((seg, segIdx) => {
1046
- const segLen = cpLen(seg.text);
1047
- let display = seg.text;
1048
- if (isOnCursorLine) {
1049
- const relativeVisualColForHighlight = cursorVisualColAbsolute;
1050
- const segStart = charCount;
1051
- const segEnd = segStart + segLen;
1052
- if (relativeVisualColForHighlight >= segStart &&
1053
- relativeVisualColForHighlight < segEnd) {
1054
- const charToHighlight = cpSlice(display, relativeVisualColForHighlight - segStart, relativeVisualColForHighlight - segStart + 1);
1055
- const highlighted = showCursor
1056
- ? chalk.inverse(charToHighlight)
1057
- : charToHighlight;
1058
- display =
1059
- cpSlice(display, 0, relativeVisualColForHighlight - segStart) +
1060
- highlighted +
1061
- cpSlice(display, relativeVisualColForHighlight - segStart + 1);
1062
- }
1063
- charCount = segEnd;
1064
- }
1065
- else {
1066
- // Advance the running counter even when not on cursor line
1067
- charCount += segLen;
1068
- }
1069
- const color = seg.type === 'command' ||
1070
- seg.type === 'file' ||
1071
- seg.type === 'paste'
1072
- ? theme.text.accent
1073
- : theme.text.primary;
1074
- renderedLine.push(_jsx(Text, { color: color, children: display }, `token-${segIdx}`));
1075
- });
1076
- const currentLineGhost = isOnCursorLine ? inlineGhost : '';
1077
- if (isOnCursorLine &&
1078
- cursorVisualColAbsolute === cpLen(lineText)) {
1079
- if (!currentLineGhost) {
1080
- renderedLine.push(_jsx(Text, { children: showCursor ? chalk.inverse(' ') : ' ' }, `cursor-end-${cursorVisualColAbsolute}`));
1081
- }
1082
- }
1083
- const showCursorBeforeGhost = focus &&
1084
- isOnCursorLine &&
1085
- cursorVisualColAbsolute === cpLen(lineText) &&
1086
- currentLineGhost;
1087
- return (_jsx(Box, { height: 1, children: _jsxs(Text, { terminalCursorFocus: showCursor && isOnCursorLine, terminalCursorPosition: cpIndexToOffset(lineText, cursorVisualColAbsolute), children: [renderedLine, showCursorBeforeGhost &&
1088
- (showCursor ? chalk.inverse(' ') : ' '), currentLineGhost && (_jsx(Text, { color: theme.text.secondary, children: currentLineGhost }))] }) }, `line-${visualIdxInRenderedSet}`));
1089
- })
1090
- .concat(additionalLines.map((ghostLine, index) => {
1091
- const padding = Math.max(0, inputWidth - stringWidth(ghostLine));
1092
- return (_jsxs(Text, { color: theme.text.secondary, children: [ghostLine, ' '.repeat(padding)] }, `ghost-line-${index}`));
1093
- }))) })] }) }), useLineFallback ? (_jsx(Box, { borderStyle: "round", borderTop: false, borderBottom: true, borderLeft: false, borderRight: false, borderColor: borderColor, width: terminalWidth, flexDirection: "row", alignItems: "flex-start", height: 0 })) : null, suggestionsPosition === 'below' && suggestionsNode] }));
1286
+ return (_jsxs(_Fragment, { children: [suggestionsPosition === 'above' && suggestionsNode, useLineFallback ? (_jsx(Box, { borderStyle: "round", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, borderColor: borderColor, width: terminalWidth, flexDirection: "row", alignItems: "flex-start", height: 0 })) : null, _jsx(HalfLinePaddedBox, { backgroundBaseColor: theme.background.input, backgroundOpacity: 1, useBackgroundColor: useBackgroundColor, children: _jsxs(Box, { flexGrow: 1, flexDirection: "row", paddingX: 1, borderColor: borderColor, borderStyle: useLineFallback ? 'round' : undefined, borderTop: false, borderBottom: false, borderLeft: !useBackgroundColor, borderRight: !useBackgroundColor, children: [_jsxs(Text, { color: statusColor ?? theme.text.accent, "aria-label": statusText || undefined, children: [shellModeActive ? (reverseSearchActive ? (_jsxs(Text, { color: theme.text.link, "aria-label": SCREEN_READER_USER_PREFIX, children: ["(r:)", ' '] })) : ('!')) : commandSearchActive ? (_jsx(Text, { color: theme.text.accent, children: "(r:) " })) : showYoloStyling ? ('*') : ('>'), ' '] }), _jsx(Box, { flexGrow: 1, flexDirection: "column", ref: innerBoxRef, children: buffer.text.length === 0 && placeholder ? (showCursor ? (_jsxs(Text, { terminalCursorFocus: showCursor, terminalCursorPosition: 0, children: [chalk.inverse(placeholder.slice(0, 1)), _jsx(Text, { color: theme.text.secondary, children: placeholder.slice(1) })] })) : (_jsx(Text, { color: theme.text.secondary, children: placeholder }))) : (_jsx(Box, { flexDirection: "column", height: Math.min(buffer.viewportHeight, scrollableData.length), width: "100%", children: isAlternateBuffer ? (_jsx(ScrollableList, { ref: listRef, hasFocus: focus, data: scrollableData, renderItem: renderItem, estimatedItemHeight: () => 1, fixedItemHeight: true, keyExtractor: (item) => item.type === 'visualLine'
1287
+ ? `line-${item.absoluteVisualIdx}`
1288
+ : `ghost-${item.index}`, width: inputWidth, backgroundColor: listBackgroundColor, containerHeight: Math.min(buffer.viewportHeight, scrollableData.length) })) : (scrollableData
1289
+ .slice(buffer.visualScrollRow, buffer.visualScrollRow + buffer.viewportHeight)
1290
+ .map((item, index) => {
1291
+ const actualIndex = buffer.visualScrollRow + index;
1292
+ const key = item.type === 'visualLine'
1293
+ ? `line-${item.absoluteVisualIdx}`
1294
+ : `ghost-${item.index}`;
1295
+ return (_jsx(Fragment, { children: renderItem({ item, index: actualIndex }) }, key));
1296
+ })) })) })] }) }), useLineFallback ? (_jsx(Box, { borderStyle: "round", borderTop: false, borderBottom: true, borderLeft: false, borderRight: false, borderColor: borderColor, width: terminalWidth, flexDirection: "row", alignItems: "flex-start", height: 0 })) : null, suggestionsPosition === 'below' && suggestionsNode] }));
1094
1297
  };
1095
1298
  //# sourceMappingURL=InputPrompt.js.map