@iaforged/context-code 1.0.63 → 1.0.67

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 (2000) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +637 -9
  3. package/context-bootstrap.js +28 -28
  4. package/package.json +169 -170
  5. package/dist/src/QueryEngine.js +0 -928
  6. package/dist/src/Task.js +0 -49
  7. package/dist/src/Tool.js +0 -56
  8. package/dist/src/assistant/AssistantSessionChooser.js +0 -16
  9. package/dist/src/assistant/index.js +0 -16
  10. package/dist/src/assistant/sessionDiscovery.js +0 -16
  11. package/dist/src/assistant/sessionHistory.js +0 -47
  12. package/dist/src/bootstrap/state.js +0 -1165
  13. package/dist/src/bridge/bridgeApi.js +0 -304
  14. package/dist/src/bridge/bridgeConfig.js +0 -39
  15. package/dist/src/bridge/bridgeDebug.js +0 -73
  16. package/dist/src/bridge/bridgeEnabled.js +0 -187
  17. package/dist/src/bridge/bridgeMain.js +0 -2289
  18. package/dist/src/bridge/bridgeMessaging.js +0 -353
  19. package/dist/src/bridge/bridgePermissionCallbacks.js +0 -10
  20. package/dist/src/bridge/bridgePointer.js +0 -175
  21. package/dist/src/bridge/bridgeStatusUtil.js +0 -105
  22. package/dist/src/bridge/bridgeUI.js +0 -412
  23. package/dist/src/bridge/capacityWake.js +0 -35
  24. package/dist/src/bridge/codeSessionApi.js +0 -111
  25. package/dist/src/bridge/createSession.js +0 -273
  26. package/dist/src/bridge/debugUtils.js +0 -115
  27. package/dist/src/bridge/envLessBridgeConfig.js +0 -121
  28. package/dist/src/bridge/flushGate.js +0 -65
  29. package/dist/src/bridge/inboundAttachments.js +0 -152
  30. package/dist/src/bridge/inboundMessages.js +0 -63
  31. package/dist/src/bridge/initReplBridge.js +0 -428
  32. package/dist/src/bridge/jwtUtils.js +0 -185
  33. package/dist/src/bridge/pollConfig.js +0 -85
  34. package/dist/src/bridge/pollConfigDefaults.js +0 -62
  35. package/dist/src/bridge/remoteBridgeCore.js +0 -712
  36. package/dist/src/bridge/replBridge.js +0 -1720
  37. package/dist/src/bridge/replBridgeHandle.js +0 -30
  38. package/dist/src/bridge/replBridgeTransport.js +0 -236
  39. package/dist/src/bridge/sessionIdCompat.js +0 -56
  40. package/dist/src/bridge/sessionRunner.js +0 -421
  41. package/dist/src/bridge/trustedDevice.js +0 -172
  42. package/dist/src/bridge/types.js +0 -9
  43. package/dist/src/bridge/workSecret.js +0 -99
  44. package/dist/src/buddy/CompanionSprite.js +0 -349
  45. package/dist/src/buddy/companion.js +0 -107
  46. package/dist/src/buddy/prompt.js +0 -33
  47. package/dist/src/buddy/sprites.js +0 -488
  48. package/dist/src/buddy/types.js +0 -90
  49. package/dist/src/buddy/useBuddyNotification.js +0 -90
  50. package/dist/src/cli/bg.js +0 -16
  51. package/dist/src/cli/exit.js +0 -30
  52. package/dist/src/cli/handlers/agents.js +0 -55
  53. package/dist/src/cli/handlers/ant.js +0 -16
  54. package/dist/src/cli/handlers/auth.js +0 -312
  55. package/dist/src/cli/handlers/autoMode.js +0 -128
  56. package/dist/src/cli/handlers/mcp.js +0 -334
  57. package/dist/src/cli/handlers/plugins.js +0 -634
  58. package/dist/src/cli/handlers/projects_bridge.js +0 -40
  59. package/dist/src/cli/handlers/templateJobs.js +0 -16
  60. package/dist/src/cli/handlers/util.js +0 -76
  61. package/dist/src/cli/ndjsonSafeStringify.js +0 -27
  62. package/dist/src/cli/print.js +0 -4225
  63. package/dist/src/cli/remoteIO.js +0 -208
  64. package/dist/src/cli/rollback.js +0 -16
  65. package/dist/src/cli/structuredIO.js +0 -644
  66. package/dist/src/cli/transports/HybridTransport.js +0 -233
  67. package/dist/src/cli/transports/SSETransport.js +0 -538
  68. package/dist/src/cli/transports/SerialBatchEventUploader.js +0 -224
  69. package/dist/src/cli/transports/Transport.js +0 -1
  70. package/dist/src/cli/transports/WebSocketTransport.js +0 -613
  71. package/dist/src/cli/transports/WorkerStateUploader.js +0 -88
  72. package/dist/src/cli/transports/ccrClient.js +0 -711
  73. package/dist/src/cli/transports/transportUtils.js +0 -39
  74. package/dist/src/cli/up.js +0 -16
  75. package/dist/src/cli/update.js +0 -315
  76. package/dist/src/commands/add-dir/add-dir.js +0 -121
  77. package/dist/src/commands/add-dir/index.js +0 -8
  78. package/dist/src/commands/add-dir/validation.js +0 -76
  79. package/dist/src/commands/advisor.js +0 -88
  80. package/dist/src/commands/agents/agents.js +0 -9
  81. package/dist/src/commands/agents/index.js +0 -7
  82. package/dist/src/commands/ant-trace/index.js +0 -1
  83. package/dist/src/commands/assistant/assistant.js +0 -16
  84. package/dist/src/commands/autofix-pr/index.js +0 -1
  85. package/dist/src/commands/backfill-sessions/index.js +0 -1
  86. package/dist/src/commands/branch/branch.js +0 -205
  87. package/dist/src/commands/branch/index.js +0 -11
  88. package/dist/src/commands/break-cache/index.js +0 -1
  89. package/dist/src/commands/bridge/bridge.js +0 -512
  90. package/dist/src/commands/bridge/index.js +0 -22
  91. package/dist/src/commands/bridge-kick.js +0 -179
  92. package/dist/src/commands/brief.js +0 -94
  93. package/dist/src/commands/btw/btw.js +0 -234
  94. package/dist/src/commands/btw/index.js +0 -9
  95. package/dist/src/commands/bughunter/index.js +0 -1
  96. package/dist/src/commands/chrome/chrome.js +0 -291
  97. package/dist/src/commands/chrome/index.js +0 -10
  98. package/dist/src/commands/clear/caches.js +0 -116
  99. package/dist/src/commands/clear/clear.js +0 -5
  100. package/dist/src/commands/clear/conversation.js +0 -191
  101. package/dist/src/commands/clear/index.js +0 -9
  102. package/dist/src/commands/color/color.js +0 -58
  103. package/dist/src/commands/color/index.js +0 -9
  104. package/dist/src/commands/commit-push-pr.js +0 -137
  105. package/dist/src/commands/commit.js +0 -80
  106. package/dist/src/commands/compact/compact.js +0 -196
  107. package/dist/src/commands/compact/index.js +0 -11
  108. package/dist/src/commands/config/config.js +0 -5
  109. package/dist/src/commands/config/index.js +0 -8
  110. package/dist/src/commands/context/context-noninteractive.js +0 -221
  111. package/dist/src/commands/context/context.js +0 -46
  112. package/dist/src/commands/context/index.js +0 -21
  113. package/dist/src/commands/copy/copy.js +0 -366
  114. package/dist/src/commands/copy/index.js +0 -7
  115. package/dist/src/commands/cost/cost.js +0 -21
  116. package/dist/src/commands/cost/index.js +0 -16
  117. package/dist/src/commands/createMovedToPluginCommand.js +0 -33
  118. package/dist/src/commands/ctx_viz/index.js +0 -1
  119. package/dist/src/commands/debug-tool-call/index.js +0 -1
  120. package/dist/src/commands/desktop/desktop.js +0 -5
  121. package/dist/src/commands/desktop/index.js +0 -22
  122. package/dist/src/commands/diff/diff.js +0 -5
  123. package/dist/src/commands/diff/index.js +0 -6
  124. package/dist/src/commands/doctor/doctor.js +0 -5
  125. package/dist/src/commands/doctor/index.js +0 -9
  126. package/dist/src/commands/effort/effort.js +0 -166
  127. package/dist/src/commands/effort/index.js +0 -11
  128. package/dist/src/commands/env/index.js +0 -1
  129. package/dist/src/commands/exit/exit.js +0 -31
  130. package/dist/src/commands/exit/index.js +0 -9
  131. package/dist/src/commands/export/export.js +0 -86
  132. package/dist/src/commands/export/index.js +0 -8
  133. package/dist/src/commands/extra-usage/extra-usage-core.js +0 -99
  134. package/dist/src/commands/extra-usage/extra-usage-noninteractive.js +0 -13
  135. package/dist/src/commands/extra-usage/extra-usage.js +0 -14
  136. package/dist/src/commands/extra-usage/index.js +0 -27
  137. package/dist/src/commands/fast/fast.js +0 -275
  138. package/dist/src/commands/fast/index.js +0 -20
  139. package/dist/src/commands/feedback/feedback.js +0 -10
  140. package/dist/src/commands/feedback/index.js +0 -20
  141. package/dist/src/commands/files/files.js +0 -11
  142. package/dist/src/commands/files/index.js +0 -9
  143. package/dist/src/commands/good-claude/index.js +0 -1
  144. package/dist/src/commands/heapdump/heapdump.js +0 -14
  145. package/dist/src/commands/heapdump/index.js +0 -9
  146. package/dist/src/commands/help/help.js +0 -5
  147. package/dist/src/commands/help/index.js +0 -7
  148. package/dist/src/commands/hooks/hooks.js +0 -11
  149. package/dist/src/commands/hooks/index.js +0 -8
  150. package/dist/src/commands/ide/ide.js +0 -615
  151. package/dist/src/commands/ide/index.js +0 -8
  152. package/dist/src/commands/init-verifiers.js +0 -258
  153. package/dist/src/commands/init.js +0 -249
  154. package/dist/src/commands/insights.js +0 -2555
  155. package/dist/src/commands/install-github-app/ApiKeyStep.js +0 -230
  156. package/dist/src/commands/install-github-app/CheckExistingSecretStep.js +0 -194
  157. package/dist/src/commands/install-github-app/CheckGitHubStep.js +0 -15
  158. package/dist/src/commands/install-github-app/ChooseRepoStep.js +0 -211
  159. package/dist/src/commands/install-github-app/CreatingStep.js +0 -52
  160. package/dist/src/commands/install-github-app/ErrorStep.js +0 -83
  161. package/dist/src/commands/install-github-app/ExistingWorkflowStep.js +0 -104
  162. package/dist/src/commands/install-github-app/InstallAppStep.js +0 -96
  163. package/dist/src/commands/install-github-app/OAuthFlowStep.js +0 -190
  164. package/dist/src/commands/install-github-app/SuccessStep.js +0 -93
  165. package/dist/src/commands/install-github-app/WarningsStep.js +0 -70
  166. package/dist/src/commands/install-github-app/index.js +0 -10
  167. package/dist/src/commands/install-github-app/install-github-app.js +0 -593
  168. package/dist/src/commands/install-github-app/setupGitHubActions.js +0 -227
  169. package/dist/src/commands/install-slack-app/index.js +0 -9
  170. package/dist/src/commands/install-slack-app/install-slack-app.js +0 -25
  171. package/dist/src/commands/install.js +0 -118
  172. package/dist/src/commands/issue/index.js +0 -1
  173. package/dist/src/commands/keybindings/index.js +0 -10
  174. package/dist/src/commands/keybindings/keybindings.js +0 -47
  175. package/dist/src/commands/login/index.js +0 -11
  176. package/dist/src/commands/login/login.js +0 -99
  177. package/dist/src/commands/login-openai/index.js +0 -7
  178. package/dist/src/commands/login-openai/login-openai.js +0 -54
  179. package/dist/src/commands/logout/index.js +0 -8
  180. package/dist/src/commands/logout/logout.js +0 -72
  181. package/dist/src/commands/mcp/addCommand.js +0 -183
  182. package/dist/src/commands/mcp/index.js +0 -9
  183. package/dist/src/commands/mcp/mcp.js +0 -78
  184. package/dist/src/commands/mcp/xaaIdpCommand.js +0 -193
  185. package/dist/src/commands/memory/index.js +0 -7
  186. package/dist/src/commands/memory/memory.js +0 -71
  187. package/dist/src/commands/mobile/index.js +0 -8
  188. package/dist/src/commands/mobile/mobile.js +0 -278
  189. package/dist/src/commands/mock-limits/index.js +0 -1
  190. package/dist/src/commands/model/index.js +0 -14
  191. package/dist/src/commands/model/model.js +0 -297
  192. package/dist/src/commands/oauth-refresh/index.js +0 -1
  193. package/dist/src/commands/onboarding/index.js +0 -1
  194. package/dist/src/commands/output-style/index.js +0 -8
  195. package/dist/src/commands/output-style/output-style.js +0 -6
  196. package/dist/src/commands/passes/index.js +0 -17
  197. package/dist/src/commands/passes/passes.js +0 -22
  198. package/dist/src/commands/perf-issue/index.js +0 -1
  199. package/dist/src/commands/permissions/index.js +0 -8
  200. package/dist/src/commands/permissions/permissions.js +0 -8
  201. package/dist/src/commands/plan/index.js +0 -8
  202. package/dist/src/commands/plan/plan.js +0 -115
  203. package/dist/src/commands/plugin/AddMarketplace.js +0 -95
  204. package/dist/src/commands/plugin/BrowseMarketplace.js +0 -576
  205. package/dist/src/commands/plugin/DiscoverPlugins.js +0 -613
  206. package/dist/src/commands/plugin/ManageMarketplaces.js +0 -582
  207. package/dist/src/commands/plugin/ManagePlugins.js +0 -1783
  208. package/dist/src/commands/plugin/PluginErrors.js +0 -124
  209. package/dist/src/commands/plugin/PluginOptionsDialog.js +0 -367
  210. package/dist/src/commands/plugin/PluginOptionsFlow.js +0 -97
  211. package/dist/src/commands/plugin/PluginSettings.js +0 -1042
  212. package/dist/src/commands/plugin/PluginTrustWarning.js +0 -34
  213. package/dist/src/commands/plugin/UnifiedInstalledCell.js +0 -615
  214. package/dist/src/commands/plugin/ValidatePlugin.js +0 -95
  215. package/dist/src/commands/plugin/index.js +0 -10
  216. package/dist/src/commands/plugin/parseArgs.js +0 -71
  217. package/dist/src/commands/plugin/plugin.js +0 -5
  218. package/dist/src/commands/plugin/pluginDetailsHelpers.js +0 -89
  219. package/dist/src/commands/plugin/usePagination.js +0 -89
  220. package/dist/src/commands/pr_comments/index.js +0 -49
  221. package/dist/src/commands/privacy-settings/index.js +0 -11
  222. package/dist/src/commands/privacy-settings/privacy-settings.js +0 -54
  223. package/dist/src/commands/profile/index.js +0 -9
  224. package/dist/src/commands/profile/profile.js +0 -426
  225. package/dist/src/commands/provider/index.js +0 -8
  226. package/dist/src/commands/provider/provider.js +0 -349
  227. package/dist/src/commands/rate-limit-options/index.js +0 -15
  228. package/dist/src/commands/rate-limit-options/rate-limit-options.js +0 -213
  229. package/dist/src/commands/release-notes/index.js +0 -8
  230. package/dist/src/commands/release-notes/release-notes.js +0 -38
  231. package/dist/src/commands/reload-plugins/index.js +0 -11
  232. package/dist/src/commands/reload-plugins/reload-plugins.js +0 -52
  233. package/dist/src/commands/remote-env/index.js +0 -12
  234. package/dist/src/commands/remote-env/remote-env.js +0 -5
  235. package/dist/src/commands/remote-setup/api.js +0 -155
  236. package/dist/src/commands/remote-setup/index.js +0 -15
  237. package/dist/src/commands/remote-setup/remote-setup.js +0 -149
  238. package/dist/src/commands/rename/generateSessionName.js +0 -58
  239. package/dist/src/commands/rename/index.js +0 -9
  240. package/dist/src/commands/rename/rename.js +0 -52
  241. package/dist/src/commands/reset-limits/index.js +0 -4
  242. package/dist/src/commands/resume/index.js +0 -9
  243. package/dist/src/commands/resume/resume.js +0 -239
  244. package/dist/src/commands/review/UltrareviewOverageDialog.js +0 -97
  245. package/dist/src/commands/review/reviewRemote.js +0 -259
  246. package/dist/src/commands/review/ultrareviewCommand.js +0 -57
  247. package/dist/src/commands/review/ultrareviewEnabled.js +0 -10
  248. package/dist/src/commands/review.js +0 -50
  249. package/dist/src/commands/rewind/index.js +0 -10
  250. package/dist/src/commands/rewind/rewind.js +0 -7
  251. package/dist/src/commands/sandbox-toggle/index.js +0 -41
  252. package/dist/src/commands/sandbox-toggle/sandbox-toggle.js +0 -72
  253. package/dist/src/commands/security-review.js +0 -231
  254. package/dist/src/commands/session/index.js +0 -13
  255. package/dist/src/commands/session/session.js +0 -142
  256. package/dist/src/commands/share/index.js +0 -1
  257. package/dist/src/commands/skills/index.js +0 -7
  258. package/dist/src/commands/skills/skills.js +0 -5
  259. package/dist/src/commands/stats/index.js +0 -7
  260. package/dist/src/commands/stats/stats.js +0 -5
  261. package/dist/src/commands/status/index.js +0 -8
  262. package/dist/src/commands/status/status.js +0 -5
  263. package/dist/src/commands/statusline.js +0 -22
  264. package/dist/src/commands/stickers/index.js +0 -8
  265. package/dist/src/commands/stickers/stickers.js +0 -14
  266. package/dist/src/commands/summary/index.js +0 -1
  267. package/dist/src/commands/tag/index.js +0 -9
  268. package/dist/src/commands/tag/tag.js +0 -215
  269. package/dist/src/commands/tasks/index.js +0 -8
  270. package/dist/src/commands/tasks/tasks.js +0 -5
  271. package/dist/src/commands/telegram/index.js +0 -9
  272. package/dist/src/commands/telegram/telegram.js +0 -118
  273. package/dist/src/commands/teleport/index.js +0 -1
  274. package/dist/src/commands/terminalSetup/index.js +0 -18
  275. package/dist/src/commands/terminalSetup/terminalSetup.js +0 -491
  276. package/dist/src/commands/theme/index.js +0 -7
  277. package/dist/src/commands/theme/theme.js +0 -50
  278. package/dist/src/commands/thinkback/index.js +0 -9
  279. package/dist/src/commands/thinkback/thinkback.js +0 -527
  280. package/dist/src/commands/thinkback-play/index.js +0 -13
  281. package/dist/src/commands/thinkback-play/thinkback-play.js +0 -34
  282. package/dist/src/commands/ultraplan.js +0 -418
  283. package/dist/src/commands/upgrade/index.js +0 -12
  284. package/dist/src/commands/upgrade/upgrade.js +0 -37
  285. package/dist/src/commands/usage/index.js +0 -7
  286. package/dist/src/commands/usage/usage.js +0 -5
  287. package/dist/src/commands/version.js +0 -18
  288. package/dist/src/commands/vim/index.js +0 -8
  289. package/dist/src/commands/vim/vim.js +0 -25
  290. package/dist/src/commands/voice/index.js +0 -14
  291. package/dist/src/commands/voice/voice.js +0 -130
  292. package/dist/src/commands/whatsapp/index.js +0 -9
  293. package/dist/src/commands/whatsapp/whatsapp.js +0 -326
  294. package/dist/src/commands.js +0 -646
  295. package/dist/src/components/AgentProgressLine.js +0 -111
  296. package/dist/src/components/App.js +0 -45
  297. package/dist/src/components/ApproveApiKey.js +0 -124
  298. package/dist/src/components/AutoModeOptInDialog.js +0 -140
  299. package/dist/src/components/AutoUpdater.js +0 -157
  300. package/dist/src/components/AutoUpdaterWrapper.js +0 -78
  301. package/dist/src/components/AwsAuthStatusBox.js +0 -88
  302. package/dist/src/components/BaseTextInput.js +0 -105
  303. package/dist/src/components/BashModeProgress.js +0 -48
  304. package/dist/src/components/BridgeDialog.js +0 -414
  305. package/dist/src/components/BypassPermissionsModeDialog.js +0 -87
  306. package/dist/src/components/ChannelDowngradeDialog.js +0 -100
  307. package/dist/src/components/ClaudeCodeHint/PluginHintMenu.js +0 -37
  308. package/dist/src/components/ClaudeInChromeOnboarding.js +0 -126
  309. package/dist/src/components/ClaudeMdExternalIncludesDialog.js +0 -137
  310. package/dist/src/components/ClickableImageRef.js +0 -64
  311. package/dist/src/components/CompactSummary.js +0 -119
  312. package/dist/src/components/ConfigurableShortcutHint.js +0 -34
  313. package/dist/src/components/ConsoleOAuthFlow.js +0 -756
  314. package/dist/src/components/ContextSuggestions.js +0 -43
  315. package/dist/src/components/ContextVisualization.js +0 -483
  316. package/dist/src/components/CoordinatorAgentStatus.js +0 -261
  317. package/dist/src/components/CostThresholdDialog.js +0 -48
  318. package/dist/src/components/CtrlOToExpand.js +0 -50
  319. package/dist/src/components/CustomSelect/SelectMulti.js +0 -149
  320. package/dist/src/components/CustomSelect/index.js +0 -2
  321. package/dist/src/components/CustomSelect/option-map.js +0 -32
  322. package/dist/src/components/CustomSelect/select-input-option.js +0 -426
  323. package/dist/src/components/CustomSelect/select-option.js +0 -23
  324. package/dist/src/components/CustomSelect/select.js +0 -518
  325. package/dist/src/components/CustomSelect/use-multi-select-state.js +0 -214
  326. package/dist/src/components/CustomSelect/use-select-input.js +0 -170
  327. package/dist/src/components/CustomSelect/use-select-navigation.js +0 -366
  328. package/dist/src/components/CustomSelect/use-select-state.js +0 -22
  329. package/dist/src/components/DesktopHandoff.js +0 -195
  330. package/dist/src/components/DesktopUpsell/DesktopUpsellStartup.js +0 -173
  331. package/dist/src/components/DevBar.js +0 -50
  332. package/dist/src/components/DevChannelsDialog.js +0 -103
  333. package/dist/src/components/DiagnosticsDisplay.js +0 -91
  334. package/dist/src/components/EffortCallout.js +0 -264
  335. package/dist/src/components/EffortIndicator.js +0 -29
  336. package/dist/src/components/ExitFlow.js +0 -40
  337. package/dist/src/components/ExportDialog.js +0 -101
  338. package/dist/src/components/FallbackToolUseErrorMessage.js +0 -115
  339. package/dist/src/components/FallbackToolUseRejectedMessage.js +0 -16
  340. package/dist/src/components/FastIcon.js +0 -42
  341. package/dist/src/components/Feedback.js +0 -439
  342. package/dist/src/components/FeedbackSurvey/FeedbackSurvey.js +0 -150
  343. package/dist/src/components/FeedbackSurvey/FeedbackSurveyView.js +0 -103
  344. package/dist/src/components/FeedbackSurvey/TranscriptSharePrompt.js +0 -83
  345. package/dist/src/components/FeedbackSurvey/submitTranscriptShare.js +0 -75
  346. package/dist/src/components/FeedbackSurvey/useDebouncedDigitInput.js +0 -51
  347. package/dist/src/components/FeedbackSurvey/useFeedbackSurvey.js +0 -258
  348. package/dist/src/components/FeedbackSurvey/useMemorySurvey.js +0 -191
  349. package/dist/src/components/FeedbackSurvey/usePostCompactSurvey.js +0 -202
  350. package/dist/src/components/FeedbackSurvey/useSurveyState.js +0 -80
  351. package/dist/src/components/FileEditToolDiff.js +0 -166
  352. package/dist/src/components/FileEditToolUpdatedMessage.js +0 -111
  353. package/dist/src/components/FileEditToolUseRejectedMessage.js +0 -157
  354. package/dist/src/components/FilePathLink.js +0 -34
  355. package/dist/src/components/FullscreenLayout.js +0 -578
  356. package/dist/src/components/GlobalSearchDialog.js +0 -339
  357. package/dist/src/components/HelpV2/Commands.js +0 -65
  358. package/dist/src/components/HelpV2/General.js +0 -24
  359. package/dist/src/components/HelpV2/HelpV2.js +0 -186
  360. package/dist/src/components/HighlightedCode/Fallback.js +0 -193
  361. package/dist/src/components/HighlightedCode.js +0 -184
  362. package/dist/src/components/HistorySearchDialog.js +0 -92
  363. package/dist/src/components/IdeAutoConnectDialog.js +0 -153
  364. package/dist/src/components/IdeOnboardingDialog.js +0 -174
  365. package/dist/src/components/IdeStatusIndicator.js +0 -49
  366. package/dist/src/components/IdleReturnDialog.js +0 -116
  367. package/dist/src/components/InterruptedByUser.js +0 -15
  368. package/dist/src/components/InvalidConfigDialog.js +0 -134
  369. package/dist/src/components/InvalidSettingsDialog.js +0 -84
  370. package/dist/src/components/KeybindingWarnings.js +0 -54
  371. package/dist/src/components/LanguagePicker.js +0 -84
  372. package/dist/src/components/LogSelector.js +0 -1579
  373. package/dist/src/components/LogoV2/AnimatedAsterisk.js +0 -42
  374. package/dist/src/components/LogoV2/AnimatedClawd.js +0 -111
  375. package/dist/src/components/LogoV2/ChannelsNotice.js +0 -258
  376. package/dist/src/components/LogoV2/Clawd.js +0 -5
  377. package/dist/src/components/LogoV2/CondensedLogo.js +0 -159
  378. package/dist/src/components/LogoV2/EmergencyTip.js +0 -47
  379. package/dist/src/components/LogoV2/Feed.js +0 -84
  380. package/dist/src/components/LogoV2/FeedColumn.js +0 -55
  381. package/dist/src/components/LogoV2/GuestPassesUpsell.js +0 -71
  382. package/dist/src/components/LogoV2/LogoV2.js +0 -565
  383. package/dist/src/components/LogoV2/Opus1mMergeNotice.js +0 -56
  384. package/dist/src/components/LogoV2/OverageCreditUpsell.js +0 -160
  385. package/dist/src/components/LogoV2/VoiceModeNotice.js +0 -70
  386. package/dist/src/components/LogoV2/WelcomeV2.js +0 -461
  387. package/dist/src/components/LogoV2/feedConfigs.js +0 -78
  388. package/dist/src/components/LspRecommendation/LspRecommendationMenu.js +0 -46
  389. package/dist/src/components/MCPServerApprovalDialog.js +0 -113
  390. package/dist/src/components/MCPServerDesktopImportDialog.js +0 -206
  391. package/dist/src/components/MCPServerDialogCopy.js +0 -15
  392. package/dist/src/components/MCPServerMultiselectDialog.js +0 -133
  393. package/dist/src/components/ManagedSettingsSecurityDialog/ManagedSettingsSecurityDialog.js +0 -149
  394. package/dist/src/components/ManagedSettingsSecurityDialog/utils.js +0 -105
  395. package/dist/src/components/Markdown.js +0 -217
  396. package/dist/src/components/MarkdownTable.js +0 -279
  397. package/dist/src/components/MemoryUsageIndicator.js +0 -27
  398. package/dist/src/components/Message.js +0 -566
  399. package/dist/src/components/MessageModel.js +0 -36
  400. package/dist/src/components/MessageResponse.js +0 -73
  401. package/dist/src/components/MessageRow.js +0 -346
  402. package/dist/src/components/MessageSelector.js +0 -743
  403. package/dist/src/components/MessageTimestamp.js +0 -57
  404. package/dist/src/components/Messages.js +0 -637
  405. package/dist/src/components/ModelPicker.js +0 -484
  406. package/dist/src/components/NativeAutoUpdater.js +0 -153
  407. package/dist/src/components/NotebookEditToolUseRejectedMessage.js +0 -83
  408. package/dist/src/components/OffscreenFreeze.js +0 -35
  409. package/dist/src/components/Onboarding.js +0 -174
  410. package/dist/src/components/OutputStylePicker.js +0 -102
  411. package/dist/src/components/PackageManagerAutoUpdater.js +0 -100
  412. package/dist/src/components/Passes/Passes.js +0 -113
  413. package/dist/src/components/PrBadge.js +0 -90
  414. package/dist/src/components/PressEnterToContinue.js +0 -15
  415. package/dist/src/components/PromptInput/HistorySearchInput.js +0 -44
  416. package/dist/src/components/PromptInput/IssueFlagBanner.js +0 -8
  417. package/dist/src/components/PromptInput/Notifications.js +0 -221
  418. package/dist/src/components/PromptInput/PromptInput.js +0 -1998
  419. package/dist/src/components/PromptInput/PromptInputFooter.js +0 -84
  420. package/dist/src/components/PromptInput/PromptInputFooterLeftSide.js +0 -409
  421. package/dist/src/components/PromptInput/PromptInputFooterSuggestions.js +0 -280
  422. package/dist/src/components/PromptInput/PromptInputHelpMenu.js +0 -379
  423. package/dist/src/components/PromptInput/PromptInputModeIndicator.js +0 -72
  424. package/dist/src/components/PromptInput/PromptInputQueuedCommands.js +0 -105
  425. package/dist/src/components/PromptInput/PromptInputStashNotice.js +0 -20
  426. package/dist/src/components/PromptInput/SandboxPromptFooterHint.js +0 -65
  427. package/dist/src/components/PromptInput/ShimmeredInput.js +0 -132
  428. package/dist/src/components/PromptInput/VoiceIndicator.js +0 -136
  429. package/dist/src/components/PromptInput/inputModes.js +0 -24
  430. package/dist/src/components/PromptInput/inputPaste.js +0 -62
  431. package/dist/src/components/PromptInput/useMaybeTruncateInput.js +0 -33
  432. package/dist/src/components/PromptInput/usePromptInputPlaceholder.js +0 -55
  433. package/dist/src/components/PromptInput/useShowFastIconHint.js +0 -23
  434. package/dist/src/components/PromptInput/useSwarmBanner.js +0 -112
  435. package/dist/src/components/PromptInput/utils.js +0 -50
  436. package/dist/src/components/QuickOpenDialog.js +0 -243
  437. package/dist/src/components/RemoteCallout.js +0 -53
  438. package/dist/src/components/RemoteEnvironmentDialog.js +0 -345
  439. package/dist/src/components/ResumeTask.js +0 -173
  440. package/dist/src/components/SandboxViolationExpandedView.js +0 -102
  441. package/dist/src/components/ScrollKeybindingHandler.js +0 -982
  442. package/dist/src/components/SearchBox.js +0 -55
  443. package/dist/src/components/SentryErrorBoundary.js +0 -16
  444. package/dist/src/components/SessionBackgroundHint.js +0 -104
  445. package/dist/src/components/SessionPreview.js +0 -200
  446. package/dist/src/components/Settings/Config.js +0 -1628
  447. package/dist/src/components/Settings/Settings.js +0 -129
  448. package/dist/src/components/Settings/Status.js +0 -230
  449. package/dist/src/components/Settings/Usage.js +0 -341
  450. package/dist/src/components/ShowInIDEPrompt.js +0 -151
  451. package/dist/src/components/SkillImprovementSurvey.js +0 -130
  452. package/dist/src/components/Spinner/FlashingChar.js +0 -51
  453. package/dist/src/components/Spinner/GlimmerMessage.js +0 -328
  454. package/dist/src/components/Spinner/ShimmerChar.js +0 -22
  455. package/dist/src/components/Spinner/SpinnerAnimationRow.js +0 -169
  456. package/dist/src/components/Spinner/SpinnerGlyph.js +0 -69
  457. package/dist/src/components/Spinner/TeammateSpinnerLine.js +0 -170
  458. package/dist/src/components/Spinner/TeammateSpinnerTree.js +0 -268
  459. package/dist/src/components/Spinner/index.js +0 -11
  460. package/dist/src/components/Spinner/teammateSelectHint.js +0 -1
  461. package/dist/src/components/Spinner/useShimmerAnimation.js +0 -22
  462. package/dist/src/components/Spinner/useStalledAnimation.js +0 -63
  463. package/dist/src/components/Spinner/utils.js +0 -77
  464. package/dist/src/components/Spinner.js +0 -470
  465. package/dist/src/components/Stats.js +0 -1000
  466. package/dist/src/components/StatusLine.js +0 -285
  467. package/dist/src/components/StatusNotices.js +0 -50
  468. package/dist/src/components/StructuredDiff/Fallback.js +0 -335
  469. package/dist/src/components/StructuredDiff/colorDiff.js +0 -26
  470. package/dist/src/components/StructuredDiff.js +0 -152
  471. package/dist/src/components/StructuredDiffList.js +0 -8
  472. package/dist/src/components/TagTabs.js +0 -100
  473. package/dist/src/components/TaskListV2.js +0 -333
  474. package/dist/src/components/TeammateViewHeader.js +0 -87
  475. package/dist/src/components/TeleportError.js +0 -191
  476. package/dist/src/components/TeleportProgress.js +0 -130
  477. package/dist/src/components/TeleportRepoMismatchDialog.js +0 -98
  478. package/dist/src/components/TeleportResumeWrapper.js +0 -158
  479. package/dist/src/components/TeleportStash.js +0 -82
  480. package/dist/src/components/TextInput.js +0 -108
  481. package/dist/src/components/ThemePicker.js +0 -330
  482. package/dist/src/components/ThinkingToggle.js +0 -153
  483. package/dist/src/components/TokenWarning.js +0 -172
  484. package/dist/src/components/ToolUseLoader.js +0 -34
  485. package/dist/src/components/TrustDialog/TrustDialog.js +0 -301
  486. package/dist/src/components/TrustDialog/utils.js +0 -199
  487. package/dist/src/components/ValidationErrorsList.js +0 -146
  488. package/dist/src/components/VimTextInput.js +0 -136
  489. package/dist/src/components/VirtualMessageList.js +0 -892
  490. package/dist/src/components/WorkflowMultiselectDialog.js +0 -118
  491. package/dist/src/components/WorktreeExitDialog.js +0 -222
  492. package/dist/src/components/agents/AgentDetail.js +0 -226
  493. package/dist/src/components/agents/AgentEditor.js +0 -146
  494. package/dist/src/components/agents/AgentNavigationFooter.js +0 -21
  495. package/dist/src/components/agents/AgentsList.js +0 -436
  496. package/dist/src/components/agents/AgentsMenu.js +0 -848
  497. package/dist/src/components/agents/ColorPicker.js +0 -110
  498. package/dist/src/components/agents/ModelSelector.js +0 -62
  499. package/dist/src/components/agents/SnapshotUpdateDialog.js +0 -16
  500. package/dist/src/components/agents/ToolSelector.js +0 -557
  501. package/dist/src/components/agents/agentFileUtils.js +0 -179
  502. package/dist/src/components/agents/generateAgent.js +0 -161
  503. package/dist/src/components/agents/new-agent-creation/CreateAgentWizard.js +0 -88
  504. package/dist/src/components/agents/new-agent-creation/wizard-steps/ColorStep.js +0 -80
  505. package/dist/src/components/agents/new-agent-creation/wizard-steps/ConfirmStep.js +0 -386
  506. package/dist/src/components/agents/new-agent-creation/wizard-steps/ConfirmStepWrapper.js +0 -63
  507. package/dist/src/components/agents/new-agent-creation/wizard-steps/DescriptionStep.js +0 -126
  508. package/dist/src/components/agents/new-agent-creation/wizard-steps/GenerateStep.js +0 -118
  509. package/dist/src/components/agents/new-agent-creation/wizard-steps/LocationStep.js +0 -79
  510. package/dist/src/components/agents/new-agent-creation/wizard-steps/MemoryStep.js +0 -107
  511. package/dist/src/components/agents/new-agent-creation/wizard-steps/MethodStep.js +0 -79
  512. package/dist/src/components/agents/new-agent-creation/wizard-steps/ModelStep.js +0 -48
  513. package/dist/src/components/agents/new-agent-creation/wizard-steps/PromptStep.js +0 -131
  514. package/dist/src/components/agents/new-agent-creation/wizard-steps/ToolsStep.js +0 -51
  515. package/dist/src/components/agents/new-agent-creation/wizard-steps/TypeStep.js +0 -100
  516. package/dist/src/components/agents/types.js +0 -4
  517. package/dist/src/components/agents/utils.js +0 -14
  518. package/dist/src/components/agents/validateAgent.js +0 -79
  519. package/dist/src/components/design-system/Byline.js +0 -72
  520. package/dist/src/components/design-system/Dialog.js +0 -116
  521. package/dist/src/components/design-system/Divider.js +0 -109
  522. package/dist/src/components/design-system/FuzzyPicker.js +0 -187
  523. package/dist/src/components/design-system/KeyboardShortcutHint.js +0 -67
  524. package/dist/src/components/design-system/ListItem.js +0 -183
  525. package/dist/src/components/design-system/LoadingState.js +0 -68
  526. package/dist/src/components/design-system/Pane.js +0 -68
  527. package/dist/src/components/design-system/ProgressBar.js +0 -62
  528. package/dist/src/components/design-system/Ratchet.js +0 -71
  529. package/dist/src/components/design-system/StatusIcon.js +0 -69
  530. package/dist/src/components/design-system/Tabs.js +0 -269
  531. package/dist/src/components/design-system/ThemeProvider.js +0 -137
  532. package/dist/src/components/design-system/ThemedBox.js +0 -125
  533. package/dist/src/components/design-system/ThemedText.js +0 -60
  534. package/dist/src/components/design-system/color.js +0 -22
  535. package/dist/src/components/diff/DiffDetailView.js +0 -284
  536. package/dist/src/components/diff/DiffDialog.js +0 -387
  537. package/dist/src/components/diff/DiffFileList.js +0 -291
  538. package/dist/src/components/grove/Grove.js +0 -483
  539. package/dist/src/components/hooks/HooksConfigMenu.js +0 -570
  540. package/dist/src/components/hooks/PromptDialog.js +0 -81
  541. package/dist/src/components/hooks/SelectEventMode.js +0 -117
  542. package/dist/src/components/hooks/SelectHookMode.js +0 -93
  543. package/dist/src/components/hooks/SelectMatcherMode.js +0 -124
  544. package/dist/src/components/hooks/ViewHookMode.js +0 -197
  545. package/dist/src/components/mcp/CapabilitiesSection.js +0 -55
  546. package/dist/src/components/mcp/ElicitationDialog.js +0 -945
  547. package/dist/src/components/mcp/MCPAgentServerMenu.js +0 -95
  548. package/dist/src/components/mcp/MCPListPanel.js +0 -504
  549. package/dist/src/components/mcp/MCPReconnect.js +0 -168
  550. package/dist/src/components/mcp/MCPRemoteServerMenu.js +0 -460
  551. package/dist/src/components/mcp/MCPSettings.js +0 -414
  552. package/dist/src/components/mcp/MCPStdioServerMenu.js +0 -95
  553. package/dist/src/components/mcp/MCPToolDetailView.js +0 -219
  554. package/dist/src/components/mcp/MCPToolListView.js +0 -136
  555. package/dist/src/components/mcp/McpParsingWarnings.js +0 -211
  556. package/dist/src/components/mcp/index.js +0 -8
  557. package/dist/src/components/mcp/types.js +0 -3
  558. package/dist/src/components/mcp/utils/reconnectHelpers.js +0 -35
  559. package/dist/src/components/memory/MemoryFileSelector.js +0 -455
  560. package/dist/src/components/memory/MemoryUpdateNotification.js +0 -42
  561. package/dist/src/components/messageActions.js +0 -418
  562. package/dist/src/components/messages/AdvisorMessage.js +0 -151
  563. package/dist/src/components/messages/AssistantRedactedThinkingMessage.js +0 -27
  564. package/dist/src/components/messages/AssistantTextMessage.js +0 -274
  565. package/dist/src/components/messages/AssistantThinkingMessage.js +0 -69
  566. package/dist/src/components/messages/AssistantToolUseMessage.js +0 -323
  567. package/dist/src/components/messages/AttachmentMessage.js +0 -418
  568. package/dist/src/components/messages/CollapsedReadSearchContent.js +0 -362
  569. package/dist/src/components/messages/CompactBoundaryMessage.js +0 -18
  570. package/dist/src/components/messages/GroupedToolUseContent.js +0 -37
  571. package/dist/src/components/messages/HighlightedThinkingText.js +0 -164
  572. package/dist/src/components/messages/HookProgressMessage.js +0 -110
  573. package/dist/src/components/messages/PlanApprovalMessage.js +0 -212
  574. package/dist/src/components/messages/RateLimitMessage.js +0 -149
  575. package/dist/src/components/messages/ShutdownMessage.js +0 -123
  576. package/dist/src/components/messages/SystemAPIErrorMessage.js +0 -135
  577. package/dist/src/components/messages/SystemTextMessage.js +0 -843
  578. package/dist/src/components/messages/TaskAssignmentMessage.js +0 -71
  579. package/dist/src/components/messages/UserAgentNotificationMessage.js +0 -77
  580. package/dist/src/components/messages/UserBashInputMessage.js +0 -51
  581. package/dist/src/components/messages/UserBashOutputMessage.js +0 -54
  582. package/dist/src/components/messages/UserChannelMessage.js +0 -129
  583. package/dist/src/components/messages/UserCommandMessage.js +0 -106
  584. package/dist/src/components/messages/UserImageMessage.js +0 -53
  585. package/dist/src/components/messages/UserLocalCommandOutputMessage.js +0 -169
  586. package/dist/src/components/messages/UserMemoryInputMessage.js +0 -72
  587. package/dist/src/components/messages/UserPlanMessage.js +0 -37
  588. package/dist/src/components/messages/UserPromptMessage.js +0 -63
  589. package/dist/src/components/messages/UserResourceUpdateMessage.js +0 -101
  590. package/dist/src/components/messages/UserTeammateMessage.js +0 -156
  591. package/dist/src/components/messages/UserTextMessage.js +0 -271
  592. package/dist/src/components/messages/UserToolResultMessage/RejectedPlanMessage.js +0 -27
  593. package/dist/src/components/messages/UserToolResultMessage/RejectedToolUseMessage.js +0 -16
  594. package/dist/src/components/messages/UserToolResultMessage/UserToolCanceledMessage.js +0 -16
  595. package/dist/src/components/messages/UserToolResultMessage/UserToolErrorMessage.js +0 -91
  596. package/dist/src/components/messages/UserToolResultMessage/UserToolRejectMessage.js +0 -73
  597. package/dist/src/components/messages/UserToolResultMessage/UserToolResultMessage.js +0 -83
  598. package/dist/src/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +0 -58
  599. package/dist/src/components/messages/UserToolResultMessage/utils.js +0 -43
  600. package/dist/src/components/messages/nullRenderingAttachments.js +0 -58
  601. package/dist/src/components/messages/teamMemCollapsed.js +0 -142
  602. package/dist/src/components/messages/teamMemSaved.js +0 -17
  603. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.js +0 -654
  604. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/PreviewBox.js +0 -219
  605. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/PreviewQuestionView.js +0 -227
  606. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/QuestionNavigationBar.js +0 -174
  607. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/QuestionView.js +0 -444
  608. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/SubmitQuestionsView.js +0 -136
  609. package/dist/src/components/permissions/AskUserQuestionPermissionRequest/use-multiple-choice-state.js +0 -100
  610. package/dist/src/components/permissions/BashPermissionRequest/BashPermissionRequest.js +0 -404
  611. package/dist/src/components/permissions/BashPermissionRequest/bashToolUseOptions.js +0 -110
  612. package/dist/src/components/permissions/ComputerUseApproval/ComputerUseApproval.js +0 -448
  613. package/dist/src/components/permissions/EnterPlanModePermissionRequest/EnterPlanModePermissionRequest.js +0 -125
  614. package/dist/src/components/permissions/ExitPlanModePermissionRequest/ExitPlanModePermissionRequest.js +0 -650
  615. package/dist/src/components/permissions/FallbackPermissionRequest.js +0 -348
  616. package/dist/src/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +0 -184
  617. package/dist/src/components/permissions/FilePermissionDialog/FilePermissionDialog.js +0 -108
  618. package/dist/src/components/permissions/FilePermissionDialog/ideDiffConfig.js +0 -13
  619. package/dist/src/components/permissions/FilePermissionDialog/permissionOptions.js +0 -136
  620. package/dist/src/components/permissions/FilePermissionDialog/useFilePermissionDialog.js +0 -131
  621. package/dist/src/components/permissions/FilePermissionDialog/usePermissionHandler.js +0 -86
  622. package/dist/src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +0 -163
  623. package/dist/src/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +0 -78
  624. package/dist/src/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +0 -112
  625. package/dist/src/components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.js +0 -163
  626. package/dist/src/components/permissions/NotebookEditPermissionRequest/NotebookEditToolDiff.js +0 -217
  627. package/dist/src/components/permissions/PermissionDecisionDebugInfo.js +0 -466
  628. package/dist/src/components/permissions/PermissionDialog.js +0 -54
  629. package/dist/src/components/permissions/PermissionExplanation.js +0 -269
  630. package/dist/src/components/permissions/PermissionPrompt.js +0 -316
  631. package/dist/src/components/permissions/PermissionRequest.js +0 -160
  632. package/dist/src/components/permissions/PermissionRequestTitle.js +0 -57
  633. package/dist/src/components/permissions/PermissionRuleExplanation.js +0 -109
  634. package/dist/src/components/permissions/PowerShellPermissionRequest/PowerShellPermissionRequest.js +0 -178
  635. package/dist/src/components/permissions/PowerShellPermissionRequest/powershellToolUseOptions.js +0 -73
  636. package/dist/src/components/permissions/SandboxPermissionRequest.js +0 -161
  637. package/dist/src/components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.js +0 -228
  638. package/dist/src/components/permissions/SkillPermissionRequest/SkillPermissionRequest.js +0 -384
  639. package/dist/src/components/permissions/WebFetchPermissionRequest/WebFetchPermissionRequest.js +0 -258
  640. package/dist/src/components/permissions/WorkerBadge.js +0 -43
  641. package/dist/src/components/permissions/WorkerPendingPermission.js +0 -106
  642. package/dist/src/components/permissions/hooks.js +0 -163
  643. package/dist/src/components/permissions/rules/AddPermissionRules.js +0 -170
  644. package/dist/src/components/permissions/rules/AddWorkspaceDirectory.js +0 -334
  645. package/dist/src/components/permissions/rules/PermissionRuleDescription.js +0 -77
  646. package/dist/src/components/permissions/rules/PermissionRuleInput.js +0 -135
  647. package/dist/src/components/permissions/rules/PermissionRuleList.js +0 -1189
  648. package/dist/src/components/permissions/rules/RecentDenialsTab.js +0 -204
  649. package/dist/src/components/permissions/rules/RemoveWorkspaceDirectory.js +0 -102
  650. package/dist/src/components/permissions/rules/WorkspaceTab.js +0 -132
  651. package/dist/src/components/permissions/shellPermissionHelpers.js +0 -111
  652. package/dist/src/components/permissions/useShellPermissionFeedback.js +0 -108
  653. package/dist/src/components/permissions/utils.js +0 -14
  654. package/dist/src/components/sandbox/SandboxConfigTab.js +0 -47
  655. package/dist/src/components/sandbox/SandboxDependenciesTab.js +0 -122
  656. package/dist/src/components/sandbox/SandboxDoctorSection.js +0 -46
  657. package/dist/src/components/sandbox/SandboxOverridesTab.js +0 -192
  658. package/dist/src/components/sandbox/SandboxSettings.js +0 -296
  659. package/dist/src/components/shell/ExpandShellOutputContext.js +0 -33
  660. package/dist/src/components/shell/OutputLine.js +0 -110
  661. package/dist/src/components/shell/ShellProgressMessage.js +0 -143
  662. package/dist/src/components/shell/ShellTimeDisplay.js +0 -71
  663. package/dist/src/components/skills/SkillsMenu.js +0 -238
  664. package/dist/src/components/tasks/AsyncAgentDetailDialog.js +0 -234
  665. package/dist/src/components/tasks/BackgroundTask.js +0 -363
  666. package/dist/src/components/tasks/BackgroundTaskStatus.js +0 -419
  667. package/dist/src/components/tasks/BackgroundTasksDialog.js +0 -496
  668. package/dist/src/components/tasks/DreamDetailDialog.js +0 -250
  669. package/dist/src/components/tasks/InProcessTeammateDetailDialog.js +0 -274
  670. package/dist/src/components/tasks/RemoteSessionDetailDialog.js +0 -868
  671. package/dist/src/components/tasks/RemoteSessionProgress.js +0 -249
  672. package/dist/src/components/tasks/ShellDetailDialog.js +0 -403
  673. package/dist/src/components/tasks/ShellProgress.js +0 -76
  674. package/dist/src/components/tasks/renderToolActivity.js +0 -28
  675. package/dist/src/components/tasks/taskStatusUtils.js +0 -94
  676. package/dist/src/components/teams/TeamStatus.js +0 -76
  677. package/dist/src/components/teams/TeamsDialog.js +0 -672
  678. package/dist/src/components/ui/OrderedList.js +0 -66
  679. package/dist/src/components/ui/OrderedListItem.js +0 -41
  680. package/dist/src/components/ui/TreeSelect.js +0 -300
  681. package/dist/src/components/wizard/WizardDialogLayout.js +0 -47
  682. package/dist/src/components/wizard/WizardNavigationFooter.js +0 -10
  683. package/dist/src/components/wizard/WizardProvider.js +0 -217
  684. package/dist/src/components/wizard/index.js +0 -4
  685. package/dist/src/components/wizard/useWizard.js +0 -9
  686. package/dist/src/constants/apiLimits.js +0 -81
  687. package/dist/src/constants/betas.js +0 -45
  688. package/dist/src/constants/common.js +0 -29
  689. package/dist/src/constants/cyberRiskInstruction.js +0 -24
  690. package/dist/src/constants/errorIds.js +0 -14
  691. package/dist/src/constants/figures.js +0 -38
  692. package/dist/src/constants/files.js +0 -150
  693. package/dist/src/constants/github-app.js +0 -139
  694. package/dist/src/constants/keys.js +0 -10
  695. package/dist/src/constants/messages.js +0 -1
  696. package/dist/src/constants/oauth.js +0 -221
  697. package/dist/src/constants/outputStyles.js +0 -162
  698. package/dist/src/constants/product.js +0 -56
  699. package/dist/src/constants/prompts.js +0 -752
  700. package/dist/src/constants/spinnerVerbs.js +0 -202
  701. package/dist/src/constants/system.js +0 -77
  702. package/dist/src/constants/systemPromptSections.js +0 -39
  703. package/dist/src/constants/toolLimits.js +0 -50
  704. package/dist/src/constants/tools.js +0 -103
  705. package/dist/src/constants/turnCompletionVerbs.js +0 -12
  706. package/dist/src/constants/xml.js +0 -73
  707. package/dist/src/context/QueuedMessageContext.js +0 -51
  708. package/dist/src/context/fpsMetrics.js +0 -22
  709. package/dist/src/context/mailbox.js +0 -35
  710. package/dist/src/context/modalContext.js +0 -34
  711. package/dist/src/context/notifications.js +0 -199
  712. package/dist/src/context/overlayContext.js +0 -149
  713. package/dist/src/context/promptOverlayContext.js +0 -118
  714. package/dist/src/context/stats.js +0 -207
  715. package/dist/src/context/voice.js +0 -74
  716. package/dist/src/context.js +0 -146
  717. package/dist/src/coordinator/coordinatorMode.js +0 -345
  718. package/dist/src/cost-tracker.js +0 -208
  719. package/dist/src/costHook.js +0 -17
  720. package/dist/src/daemon/main.js +0 -16
  721. package/dist/src/daemon/workerRegistry.js +0 -16
  722. package/dist/src/dialogLaunchers.js +0 -68
  723. package/dist/src/entrypoints/agentSdkTypes.js +0 -202
  724. package/dist/src/entrypoints/cli.js +0 -237
  725. package/dist/src/entrypoints/init.js +0 -265
  726. package/dist/src/entrypoints/mcp.js +0 -142
  727. package/dist/src/entrypoints/sandboxTypes.js +0 -112
  728. package/dist/src/entrypoints/sdk/controlSchemas.js +0 -452
  729. package/dist/src/entrypoints/sdk/controlTypes.js +0 -1
  730. package/dist/src/entrypoints/sdk/coreSchemas.js +0 -1331
  731. package/dist/src/entrypoints/sdk/coreTypes.generated.js +0 -1
  732. package/dist/src/entrypoints/sdk/coreTypes.js +0 -49
  733. package/dist/src/entrypoints/sdk/runtimeTypes.js +0 -1
  734. package/dist/src/entrypoints/sdk/toolTypes.js +0 -1
  735. package/dist/src/environment-runner/main.js +0 -16
  736. package/dist/src/history.js +0 -386
  737. package/dist/src/hooks/fileSuggestions.js +0 -635
  738. package/dist/src/hooks/notifs/useAutoModeUnavailableNotification.js +0 -47
  739. package/dist/src/hooks/notifs/useCanSwitchToExistingSubscription.js +0 -57
  740. package/dist/src/hooks/notifs/useDeprecationWarningNotification.js +0 -43
  741. package/dist/src/hooks/notifs/useFastModeNotification.js +0 -164
  742. package/dist/src/hooks/notifs/useIDEStatusIndicator.js +0 -174
  743. package/dist/src/hooks/notifs/useInstallMessages.js +0 -27
  744. package/dist/src/hooks/notifs/useLspInitializationNotification.js +0 -144
  745. package/dist/src/hooks/notifs/useMcpConnectivityStatus.js +0 -80
  746. package/dist/src/hooks/notifs/useModelMigrationNotifications.js +0 -53
  747. package/dist/src/hooks/notifs/useNpmDeprecationNotification.js +0 -24
  748. package/dist/src/hooks/notifs/usePluginAutoupdateNotification.js +0 -82
  749. package/dist/src/hooks/notifs/usePluginInstallationStatus.js +0 -127
  750. package/dist/src/hooks/notifs/useRateLimitWarningNotification.js +0 -118
  751. package/dist/src/hooks/notifs/useSettingsErrors.js +0 -64
  752. package/dist/src/hooks/notifs/useStartupNotification.js +0 -33
  753. package/dist/src/hooks/notifs/useTeammateShutdownNotification.js +0 -64
  754. package/dist/src/hooks/renderPlaceholder.js +0 -26
  755. package/dist/src/hooks/toolPermission/PermissionContext.js +0 -211
  756. package/dist/src/hooks/toolPermission/handlers/coordinatorHandler.js +0 -44
  757. package/dist/src/hooks/toolPermission/handlers/interactiveHandler.js +0 -397
  758. package/dist/src/hooks/toolPermission/handlers/swarmWorkerHandler.js +0 -108
  759. package/dist/src/hooks/toolPermission/permissionLogging.js +0 -145
  760. package/dist/src/hooks/unifiedSuggestions.js +0 -130
  761. package/dist/src/hooks/useAfterFirstRender.js +0 -12
  762. package/dist/src/hooks/useApiKeyVerification.js +0 -63
  763. package/dist/src/hooks/useArrowKeyHistory.js +0 -203
  764. package/dist/src/hooks/useAssistantHistory.js +0 -194
  765. package/dist/src/hooks/useAwaySummary.js +0 -105
  766. package/dist/src/hooks/useBackgroundTaskNavigation.js +0 -204
  767. package/dist/src/hooks/useBlink.js +0 -28
  768. package/dist/src/hooks/useCanUseTool.js +0 -192
  769. package/dist/src/hooks/useCancelRequest.js +0 -195
  770. package/dist/src/hooks/useChromeExtensionNotification.js +0 -49
  771. package/dist/src/hooks/useClaudeCodeHintRecommendation.js +0 -117
  772. package/dist/src/hooks/useClipboardImageHint.js +0 -59
  773. package/dist/src/hooks/useCommandKeybindings.js +0 -87
  774. package/dist/src/hooks/useCommandQueue.js +0 -10
  775. package/dist/src/hooks/useCopyOnSelect.js +0 -88
  776. package/dist/src/hooks/useDeferredHookMessages.js +0 -43
  777. package/dist/src/hooks/useDiffData.js +0 -69
  778. package/dist/src/hooks/useDiffInIDE.js +0 -252
  779. package/dist/src/hooks/useDirectConnect.js +0 -150
  780. package/dist/src/hooks/useDoublePress.js +0 -44
  781. package/dist/src/hooks/useDynamicConfig.js +0 -17
  782. package/dist/src/hooks/useElapsedTime.js +0 -25
  783. package/dist/src/hooks/useExitOnCtrlCD.js +0 -57
  784. package/dist/src/hooks/useExitOnCtrlCDWithKeybindings.js +0 -17
  785. package/dist/src/hooks/useFileHistorySnapshotInit.js +0 -14
  786. package/dist/src/hooks/useGlobalKeybindings.js +0 -215
  787. package/dist/src/hooks/useHistorySearch.js +0 -241
  788. package/dist/src/hooks/useIDEIntegration.js +0 -56
  789. package/dist/src/hooks/useIdeAtMentioned.js +0 -51
  790. package/dist/src/hooks/useIdeConnectionStatus.js +0 -21
  791. package/dist/src/hooks/useIdeLogging.js +0 -29
  792. package/dist/src/hooks/useIdeSelection.js +0 -106
  793. package/dist/src/hooks/useInboxPoller.js +0 -709
  794. package/dist/src/hooks/useInputBuffer.js +0 -73
  795. package/dist/src/hooks/useIssueFlagBanner.js +0 -115
  796. package/dist/src/hooks/useLogMessages.js +0 -98
  797. package/dist/src/hooks/useLspPluginRecommendation.js +0 -176
  798. package/dist/src/hooks/useMailboxBridge.js +0 -15
  799. package/dist/src/hooks/useMainLoopModel.js +0 -25
  800. package/dist/src/hooks/useManagePlugins.js +0 -261
  801. package/dist/src/hooks/useMemoryUsage.js +0 -28
  802. package/dist/src/hooks/useMergedClients.js +0 -11
  803. package/dist/src/hooks/useMergedCommands.js +0 -10
  804. package/dist/src/hooks/useMergedTools.js +0 -32
  805. package/dist/src/hooks/useMinDisplayTime.js +0 -26
  806. package/dist/src/hooks/useNotifyAfterTimeout.js +0 -51
  807. package/dist/src/hooks/useOfficialMarketplaceNotification.js +0 -46
  808. package/dist/src/hooks/usePasteHandler.js +0 -188
  809. package/dist/src/hooks/usePluginRecommendationBase.js +0 -101
  810. package/dist/src/hooks/usePrStatus.js +0 -91
  811. package/dist/src/hooks/usePromptSuggestion.js +0 -128
  812. package/dist/src/hooks/usePromptsFromClaudeInChrome.js +0 -66
  813. package/dist/src/hooks/useQueueProcessor.js +0 -46
  814. package/dist/src/hooks/useRemoteSession.js +0 -431
  815. package/dist/src/hooks/useReplBridge.js +0 -717
  816. package/dist/src/hooks/useSSHSession.js +0 -167
  817. package/dist/src/hooks/useScheduledTasks.js +0 -104
  818. package/dist/src/hooks/useSearchInput.js +0 -302
  819. package/dist/src/hooks/useSessionBackgrounding.js +0 -132
  820. package/dist/src/hooks/useSettings.js +0 -10
  821. package/dist/src/hooks/useSettingsChange.js +0 -13
  822. package/dist/src/hooks/useSkillImprovementSurvey.js +0 -69
  823. package/dist/src/hooks/useSkillsChange.js +0 -51
  824. package/dist/src/hooks/useSwarmInitialization.js +0 -67
  825. package/dist/src/hooks/useSwarmPermissionPoller.js +0 -215
  826. package/dist/src/hooks/useTaskListWatcher.js +0 -157
  827. package/dist/src/hooks/useTasksV2.js +0 -220
  828. package/dist/src/hooks/useTeammateViewAutoExit.js +0 -55
  829. package/dist/src/hooks/useTelegramMirror.js +0 -47
  830. package/dist/src/hooks/useTeleportResume.js +0 -81
  831. package/dist/src/hooks/useTerminalSize.js +0 -9
  832. package/dist/src/hooks/useTextInput.js +0 -397
  833. package/dist/src/hooks/useTimeout.js +0 -10
  834. package/dist/src/hooks/useTurnDiffs.js +0 -160
  835. package/dist/src/hooks/useTypeahead.js +0 -1392
  836. package/dist/src/hooks/useUpdateNotification.js +0 -22
  837. package/dist/src/hooks/useVimInput.js +0 -232
  838. package/dist/src/hooks/useVirtualScroll.js +0 -627
  839. package/dist/src/hooks/useVoice.js +0 -954
  840. package/dist/src/hooks/useVoiceEnabled.js +0 -21
  841. package/dist/src/hooks/useVoiceIntegration.js +0 -631
  842. package/dist/src/hooks/useWhatsAppMirror.js +0 -46
  843. package/dist/src/index.js +0 -18
  844. package/dist/src/ink/Ansi.js +0 -269
  845. package/dist/src/ink/bidi.js +0 -117
  846. package/dist/src/ink/clearTerminal.js +0 -58
  847. package/dist/src/ink/colorize.js +0 -198
  848. package/dist/src/ink/components/AlternateScreen.js +0 -74
  849. package/dist/src/ink/components/App.js +0 -558
  850. package/dist/src/ink/components/AppContext.js +0 -11
  851. package/dist/src/ink/components/Box.js +0 -153
  852. package/dist/src/ink/components/Button.js +0 -166
  853. package/dist/src/ink/components/ClockContext.js +0 -108
  854. package/dist/src/ink/components/CursorDeclarationContext.js +0 -3
  855. package/dist/src/ink/components/ErrorOverview.js +0 -49
  856. package/dist/src/ink/components/Link.js +0 -33
  857. package/dist/src/ink/components/Newline.js +0 -29
  858. package/dist/src/ink/components/NoSelect.js +0 -56
  859. package/dist/src/ink/components/RawAnsi.js +0 -45
  860. package/dist/src/ink/components/ScrollBox.js +0 -170
  861. package/dist/src/ink/components/Spacer.js +0 -19
  862. package/dist/src/ink/components/StdinContext.js +0 -16
  863. package/dist/src/ink/components/TerminalFocusContext.js +0 -45
  864. package/dist/src/ink/components/TerminalSizeContext.js +0 -3
  865. package/dist/src/ink/components/Text.js +0 -194
  866. package/dist/src/ink/constants.js +0 -2
  867. package/dist/src/ink/devtools.js +0 -16
  868. package/dist/src/ink/dom.js +0 -298
  869. package/dist/src/ink/events/click-event.js +0 -36
  870. package/dist/src/ink/events/dispatcher.js +0 -172
  871. package/dist/src/ink/events/emitter.js +0 -31
  872. package/dist/src/ink/events/event-handlers.js +0 -30
  873. package/dist/src/ink/events/event.js +0 -9
  874. package/dist/src/ink/events/focus-event.js +0 -16
  875. package/dist/src/ink/events/input-event.js +0 -161
  876. package/dist/src/ink/events/keyboard-event.js +0 -45
  877. package/dist/src/ink/events/terminal-event.js +0 -78
  878. package/dist/src/ink/events/terminal-focus-event.js +0 -15
  879. package/dist/src/ink/focus.js +0 -158
  880. package/dist/src/ink/frame.js +0 -30
  881. package/dist/src/ink/get-max-width.js +0 -23
  882. package/dist/src/ink/hit-test.js +0 -113
  883. package/dist/src/ink/hooks/use-animation-frame.js +0 -48
  884. package/dist/src/ink/hooks/use-app.js +0 -7
  885. package/dist/src/ink/hooks/use-declared-cursor.js +0 -60
  886. package/dist/src/ink/hooks/use-input.js +0 -70
  887. package/dist/src/ink/hooks/use-interval.js +0 -54
  888. package/dist/src/ink/hooks/use-search-highlight.js +0 -32
  889. package/dist/src/ink/hooks/use-selection.js +0 -60
  890. package/dist/src/ink/hooks/use-stdin.js +0 -7
  891. package/dist/src/ink/hooks/use-tab-status.js +0 -57
  892. package/dist/src/ink/hooks/use-terminal-focus.js +0 -15
  893. package/dist/src/ink/hooks/use-terminal-title.js +0 -29
  894. package/dist/src/ink/hooks/use-terminal-viewport.js +0 -77
  895. package/dist/src/ink/ink.js +0 -1644
  896. package/dist/src/ink/instances.js +0 -7
  897. package/dist/src/ink/layout/engine.js +0 -4
  898. package/dist/src/ink/layout/geometry.js +0 -61
  899. package/dist/src/ink/layout/node.js +0 -62
  900. package/dist/src/ink/layout/yoga.js +0 -237
  901. package/dist/src/ink/line-width-cache.js +0 -19
  902. package/dist/src/ink/log-update.js +0 -583
  903. package/dist/src/ink/measure-element.js +0 -8
  904. package/dist/src/ink/measure-text.js +0 -35
  905. package/dist/src/ink/node-cache.js +0 -30
  906. package/dist/src/ink/optimizer.js +0 -81
  907. package/dist/src/ink/output.js +0 -556
  908. package/dist/src/ink/parse-keypress.js +0 -695
  909. package/dist/src/ink/reconciler.js +0 -384
  910. package/dist/src/ink/render-border.js +0 -134
  911. package/dist/src/ink/render-node-to-output.js +0 -1216
  912. package/dist/src/ink/render-to-screen.js +0 -171
  913. package/dist/src/ink/renderer.js +0 -129
  914. package/dist/src/ink/root.js +0 -80
  915. package/dist/src/ink/screen.js +0 -1132
  916. package/dist/src/ink/searchHighlight.js +0 -78
  917. package/dist/src/ink/selection.js +0 -792
  918. package/dist/src/ink/squash-text-nodes.js +0 -56
  919. package/dist/src/ink/stringWidth.js +0 -200
  920. package/dist/src/ink/styles.js +0 -299
  921. package/dist/src/ink/supports-hyperlinks.js +0 -40
  922. package/dist/src/ink/tabstops.js +0 -39
  923. package/dist/src/ink/terminal-focus-state.js +0 -35
  924. package/dist/src/ink/terminal-querier.js +0 -173
  925. package/dist/src/ink/terminal.js +0 -208
  926. package/dist/src/ink/termio/ansi.js +0 -70
  927. package/dist/src/ink/termio/csi.js +0 -260
  928. package/dist/src/ink/termio/dec.js +0 -53
  929. package/dist/src/ink/termio/esc.js +0 -55
  930. package/dist/src/ink/termio/osc.js +0 -432
  931. package/dist/src/ink/termio/parser.js +0 -356
  932. package/dist/src/ink/termio/sgr.js +0 -292
  933. package/dist/src/ink/termio/tokenize.js +0 -264
  934. package/dist/src/ink/termio/types.js +0 -55
  935. package/dist/src/ink/termio.js +0 -24
  936. package/dist/src/ink/useTerminalNotification.js +0 -57
  937. package/dist/src/ink/warn.js +0 -10
  938. package/dist/src/ink/widest-line.js +0 -14
  939. package/dist/src/ink/wrap-text.js +0 -54
  940. package/dist/src/ink/wrapAnsi.js +0 -6
  941. package/dist/src/ink.js +0 -50
  942. package/dist/src/interactiveHelpers.js +0 -317
  943. package/dist/src/keybindings/KeybindingContext.js +0 -184
  944. package/dist/src/keybindings/KeybindingProviderSetup.js +0 -259
  945. package/dist/src/keybindings/defaultBindings.js +0 -333
  946. package/dist/src/keybindings/loadUserBindings.js +0 -393
  947. package/dist/src/keybindings/match.js +0 -111
  948. package/dist/src/keybindings/parser.js +0 -184
  949. package/dist/src/keybindings/reservedShortcuts.js +0 -109
  950. package/dist/src/keybindings/resolver.js +0 -182
  951. package/dist/src/keybindings/schema.js +0 -205
  952. package/dist/src/keybindings/shortcutFormat.js +0 -48
  953. package/dist/src/keybindings/template.js +0 -40
  954. package/dist/src/keybindings/useKeybinding.js +0 -161
  955. package/dist/src/keybindings/useShortcutDisplay.js +0 -43
  956. package/dist/src/keybindings/validate.js +0 -395
  957. package/dist/src/main.js +0 -4073
  958. package/dist/src/memdir/findRelevantMemories.js +0 -101
  959. package/dist/src/memdir/memdir.js +0 -408
  960. package/dist/src/memdir/memoryAge.js +0 -52
  961. package/dist/src/memdir/memoryScan.js +0 -65
  962. package/dist/src/memdir/memoryTypes.js +0 -260
  963. package/dist/src/memdir/paths.js +0 -236
  964. package/dist/src/memdir/teamMemPaths.js +0 -261
  965. package/dist/src/memdir/teamMemPrompts.js +0 -82
  966. package/dist/src/migrations/migrateAutoUpdatesToSettings.js +0 -47
  967. package/dist/src/migrations/migrateBypassPermissionsAcceptedToSettings.js +0 -32
  968. package/dist/src/migrations/migrateEnableAllProjectMcpServersToSettings.js +0 -83
  969. package/dist/src/migrations/migrateFennecToOpus.js +0 -39
  970. package/dist/src/migrations/migrateLegacyOpusToCurrent.js +0 -44
  971. package/dist/src/migrations/migrateOpusToOpus1m.js +0 -31
  972. package/dist/src/migrations/migrateReplBridgeEnabledToRemoteControlAtStartup.js +0 -23
  973. package/dist/src/migrations/migrateSonnet1mToSonnet45.js +0 -38
  974. package/dist/src/migrations/migrateSonnet45ToSonnet46.js +0 -48
  975. package/dist/src/migrations/resetAutoModeOptInForDefaultOffer.js +0 -47
  976. package/dist/src/migrations/resetProToOpusDefault.js +0 -46
  977. package/dist/src/mirrors/shared.js +0 -186
  978. package/dist/src/moreright/useMoreRight.js +0 -13
  979. package/dist/src/native-ts/color-diff/index.js +0 -821
  980. package/dist/src/native-ts/file-index/index.js +0 -328
  981. package/dist/src/native-ts/yoga-layout/enums.js +0 -101
  982. package/dist/src/native-ts/yoga-layout/index.js +0 -2113
  983. package/dist/src/outputStyles/loadOutputStylesDir.js +0 -71
  984. package/dist/src/plugins/builtinPlugins.js +0 -132
  985. package/dist/src/plugins/bundled/index.js +0 -22
  986. package/dist/src/projectOnboardingState.js +0 -61
  987. package/dist/src/query/config.js +0 -17
  988. package/dist/src/query/deps.js +0 -12
  989. package/dist/src/query/stopHooks.js +0 -334
  990. package/dist/src/query/tokenBudget.js +0 -49
  991. package/dist/src/query.js +0 -1330
  992. package/dist/src/recovery/bunBundleShim.js +0 -11
  993. package/dist/src/remote/RemoteSessionManager.js +0 -195
  994. package/dist/src/remote/SessionsWebSocket.js +0 -305
  995. package/dist/src/remote/remotePermissionBridge.js +0 -70
  996. package/dist/src/remote/sdkMessageAdapter.js +0 -227
  997. package/dist/src/replLauncher.js +0 -6
  998. package/dist/src/schemas/hooks.js +0 -174
  999. package/dist/src/screens/Doctor.js +0 -580
  1000. package/dist/src/screens/REPL.js +0 -4434
  1001. package/dist/src/screens/ResumeConversation.js +0 -341
  1002. package/dist/src/self-hosted-runner/main.js +0 -16
  1003. package/dist/src/server/backends/dangerousBackend.js +0 -16
  1004. package/dist/src/server/connectHeadless.js +0 -16
  1005. package/dist/src/server/createDirectConnectSession.js +0 -62
  1006. package/dist/src/server/directConnectManager.js +0 -153
  1007. package/dist/src/server/lockfile.js +0 -16
  1008. package/dist/src/server/parseConnectUrl.js +0 -16
  1009. package/dist/src/server/server.js +0 -16
  1010. package/dist/src/server/serverBanner.js +0 -16
  1011. package/dist/src/server/serverLog.js +0 -16
  1012. package/dist/src/server/sessionManager.js +0 -16
  1013. package/dist/src/server/types.js +0 -7
  1014. package/dist/src/services/AgentSummary/agentSummary.js +0 -147
  1015. package/dist/src/services/MagicDocs/magicDocs.js +0 -193
  1016. package/dist/src/services/MagicDocs/prompts.js +0 -110
  1017. package/dist/src/services/PromptSuggestion/promptSuggestion.js +0 -402
  1018. package/dist/src/services/PromptSuggestion/speculation.js +0 -643
  1019. package/dist/src/services/SessionMemory/prompts.js +0 -254
  1020. package/dist/src/services/SessionMemory/sessionMemory.js +0 -358
  1021. package/dist/src/services/SessionMemory/sessionMemoryUtils.js +0 -157
  1022. package/dist/src/services/analytics/config.js +0 -33
  1023. package/dist/src/services/analytics/datadog.js +0 -259
  1024. package/dist/src/services/analytics/firstPartyEventLogger.js +0 -342
  1025. package/dist/src/services/analytics/firstPartyEventLoggingExporter.js +0 -594
  1026. package/dist/src/services/analytics/growthbook.js +0 -952
  1027. package/dist/src/services/analytics/index.js +0 -114
  1028. package/dist/src/services/analytics/metadata.js +0 -698
  1029. package/dist/src/services/analytics/sink.js +0 -95
  1030. package/dist/src/services/analytics/sinkKillswitch.js +0 -19
  1031. package/dist/src/services/api/adminRequests.js +0 -57
  1032. package/dist/src/services/api/bootstrap.js +0 -149
  1033. package/dist/src/services/api/claude.js +0 -2461
  1034. package/dist/src/services/api/client.js +0 -325
  1035. package/dist/src/services/api/dumpPrompts.js +0 -174
  1036. package/dist/src/services/api/emptyUsage.js +0 -20
  1037. package/dist/src/services/api/errorUtils.js +0 -203
  1038. package/dist/src/services/api/errors.js +0 -934
  1039. package/dist/src/services/api/filesApi.js +0 -523
  1040. package/dist/src/services/api/firstTokenDate.js +0 -49
  1041. package/dist/src/services/api/grove.js +0 -272
  1042. package/dist/src/services/api/index.js +0 -23
  1043. package/dist/src/services/api/logging.js +0 -484
  1044. package/dist/src/services/api/metricsOptOut.js +0 -127
  1045. package/dist/src/services/api/openai.js +0 -1187
  1046. package/dist/src/services/api/openrouter.js +0 -30
  1047. package/dist/src/services/api/overageCreditGrant.js +0 -123
  1048. package/dist/src/services/api/promptCacheBreakDetection.js +0 -510
  1049. package/dist/src/services/api/referral.js +0 -219
  1050. package/dist/src/services/api/sessionIngress.js +0 -358
  1051. package/dist/src/services/api/ultrareviewQuota.js +0 -29
  1052. package/dist/src/services/api/usage.js +0 -31
  1053. package/dist/src/services/api/withRetry.js +0 -599
  1054. package/dist/src/services/autoDream/autoDream.js +0 -244
  1055. package/dist/src/services/autoDream/config.js +0 -17
  1056. package/dist/src/services/autoDream/consolidationLock.js +0 -122
  1057. package/dist/src/services/autoDream/consolidationPrompt.js +0 -56
  1058. package/dist/src/services/awaySummary.js +0 -61
  1059. package/dist/src/services/claudeAiLimits.js +0 -331
  1060. package/dist/src/services/claudeAiLimitsHook.js +0 -15
  1061. package/dist/src/services/compact/apiMicrocompact.js +0 -97
  1062. package/dist/src/services/compact/autoCompact.js +0 -236
  1063. package/dist/src/services/compact/cachedMicrocompact.js +0 -16
  1064. package/dist/src/services/compact/compact.js +0 -1258
  1065. package/dist/src/services/compact/compactWarningHook.js +0 -12
  1066. package/dist/src/services/compact/compactWarningState.js +0 -15
  1067. package/dist/src/services/compact/grouping.js +0 -58
  1068. package/dist/src/services/compact/microCompact.js +0 -414
  1069. package/dist/src/services/compact/postCompactCleanup.js +0 -72
  1070. package/dist/src/services/compact/prompt.js +0 -327
  1071. package/dist/src/services/compact/sessionMemoryCompact.js +0 -467
  1072. package/dist/src/services/compact/timeBasedMCConfig.js +0 -11
  1073. package/dist/src/services/diagnosticTracking.js +0 -282
  1074. package/dist/src/services/extractMemories/extractMemories.js +0 -444
  1075. package/dist/src/services/extractMemories/prompts.js +0 -129
  1076. package/dist/src/services/internalLogging.js +0 -68
  1077. package/dist/src/services/lsp/LSPClient.js +0 -306
  1078. package/dist/src/services/lsp/LSPDiagnosticRegistry.js +0 -277
  1079. package/dist/src/services/lsp/LSPServerInstance.js +0 -390
  1080. package/dist/src/services/lsp/LSPServerManager.js +0 -305
  1081. package/dist/src/services/lsp/config.js +0 -57
  1082. package/dist/src/services/lsp/manager.js +0 -246
  1083. package/dist/src/services/lsp/passiveFeedback.js +0 -226
  1084. package/dist/src/services/mcp/InProcessTransport.js +0 -54
  1085. package/dist/src/services/mcp/MCPConnectionManager.js +0 -50
  1086. package/dist/src/services/mcp/SdkControlTransport.js +0 -115
  1087. package/dist/src/services/mcp/auth.js +0 -1882
  1088. package/dist/src/services/mcp/channelAllowlist.js +0 -57
  1089. package/dist/src/services/mcp/channelNotification.js +0 -236
  1090. package/dist/src/services/mcp/channelPermissions.js +0 -192
  1091. package/dist/src/services/mcp/claudeai.js +0 -123
  1092. package/dist/src/services/mcp/client.js +0 -2480
  1093. package/dist/src/services/mcp/config.js +0 -1277
  1094. package/dist/src/services/mcp/elicitationHandler.js +0 -192
  1095. package/dist/src/services/mcp/envExpansion.js +0 -30
  1096. package/dist/src/services/mcp/headersHelper.js +0 -94
  1097. package/dist/src/services/mcp/mcpStringUtils.js +0 -85
  1098. package/dist/src/services/mcp/normalization.js +0 -21
  1099. package/dist/src/services/mcp/oauthPort.js +0 -69
  1100. package/dist/src/services/mcp/officialRegistry.js +0 -54
  1101. package/dist/src/services/mcp/types.js +0 -94
  1102. package/dist/src/services/mcp/useManageMCPConnections.js +0 -820
  1103. package/dist/src/services/mcp/utils.js +0 -433
  1104. package/dist/src/services/mcp/vscodeSdkMcp.js +0 -69
  1105. package/dist/src/services/mcp/xaa.js +0 -342
  1106. package/dist/src/services/mcp/xaaIdpLogin.js +0 -377
  1107. package/dist/src/services/mcpServerApproval.js +0 -29
  1108. package/dist/src/services/mockRateLimits.js +0 -666
  1109. package/dist/src/services/notifier.js +0 -114
  1110. package/dist/src/services/oauth/auth-code-listener.js +0 -236
  1111. package/dist/src/services/oauth/client.js +0 -545
  1112. package/dist/src/services/oauth/crypto.js +0 -19
  1113. package/dist/src/services/oauth/getOauthProfile.js +0 -48
  1114. package/dist/src/services/oauth/index.js +0 -152
  1115. package/dist/src/services/oauth/types.js +0 -1
  1116. package/dist/src/services/plugins/PluginInstallationManager.js +0 -139
  1117. package/dist/src/services/plugins/pluginCliCommands.js +0 -230
  1118. package/dist/src/services/plugins/pluginOperations.js +0 -826
  1119. package/dist/src/services/policyLimits/index.js +0 -547
  1120. package/dist/src/services/policyLimits/types.js +0 -9
  1121. package/dist/src/services/preventSleep.js +0 -143
  1122. package/dist/src/services/rateLimitMessages.js +0 -271
  1123. package/dist/src/services/rateLimitMocking.js +0 -91
  1124. package/dist/src/services/remoteManagedSettings/index.js +0 -534
  1125. package/dist/src/services/remoteManagedSettings/securityCheck.js +0 -59
  1126. package/dist/src/services/remoteManagedSettings/syncCache.js +0 -90
  1127. package/dist/src/services/remoteManagedSettings/syncCacheState.js +0 -89
  1128. package/dist/src/services/remoteManagedSettings/types.js +0 -12
  1129. package/dist/src/services/settingsSync/index.js +0 -478
  1130. package/dist/src/services/settingsSync/types.js +0 -35
  1131. package/dist/src/services/teamMemorySync/index.js +0 -976
  1132. package/dist/src/services/teamMemorySync/secretScanner.js +0 -275
  1133. package/dist/src/services/teamMemorySync/teamMemSecretGuard.js +0 -35
  1134. package/dist/src/services/teamMemorySync/types.js +0 -47
  1135. package/dist/src/services/teamMemorySync/watcher.js +0 -326
  1136. package/dist/src/services/tips/tipHistory.js +0 -17
  1137. package/dist/src/services/tips/tipRegistry.js +0 -589
  1138. package/dist/src/services/tips/tipScheduler.js +0 -40
  1139. package/dist/src/services/tokenEstimation.js +0 -365
  1140. package/dist/src/services/toolUseSummary/toolUseSummaryGenerator.js +0 -87
  1141. package/dist/src/services/tools/StreamingToolExecutor.js +0 -413
  1142. package/dist/src/services/tools/toolExecution.js +0 -1218
  1143. package/dist/src/services/tools/toolHooks.js +0 -454
  1144. package/dist/src/services/tools/toolOrchestration.js +0 -110
  1145. package/dist/src/services/vcr.js +0 -291
  1146. package/dist/src/services/voice.js +0 -394
  1147. package/dist/src/services/voiceKeyterms.js +0 -94
  1148. package/dist/src/services/voiceStreamSTT.js +0 -406
  1149. package/dist/src/setup.js +0 -349
  1150. package/dist/src/skills/bundled/batch.js +0 -114
  1151. package/dist/src/skills/bundled/claudeApi.js +0 -145
  1152. package/dist/src/skills/bundled/claudeApiContent.js +0 -14
  1153. package/dist/src/skills/bundled/claudeInChrome.js +0 -27
  1154. package/dist/src/skills/bundled/debug.js +0 -99
  1155. package/dist/src/skills/bundled/index.js +0 -5
  1156. package/dist/src/skills/bundled/keybindings.js +0 -292
  1157. package/dist/src/skills/bundled/loop.js +0 -81
  1158. package/dist/src/skills/bundled/loremIpsum.js +0 -266
  1159. package/dist/src/skills/bundled/remember.js +0 -75
  1160. package/dist/src/skills/bundled/scheduleRemoteAgents.js +0 -373
  1161. package/dist/src/skills/bundled/simplify.js +0 -66
  1162. package/dist/src/skills/bundled/skillify.js +0 -184
  1163. package/dist/src/skills/bundled/stuck.js +0 -75
  1164. package/dist/src/skills/bundled/updateConfig.js +0 -463
  1165. package/dist/src/skills/bundled/verify.js +0 -25
  1166. package/dist/src/skills/bundled/verifyContent.js +0 -7
  1167. package/dist/src/skills/bundledSkills.js +0 -159
  1168. package/dist/src/skills/loadSkillsDir.js +0 -736
  1169. package/dist/src/skills/mcpSkillBuilders.js +0 -10
  1170. package/dist/src/ssh/createSSHSession.js +0 -16
  1171. package/dist/src/state/AppState.js +0 -184
  1172. package/dist/src/state/AppStateStore.js +0 -119
  1173. package/dist/src/state/onChangeAppState.js +0 -132
  1174. package/dist/src/state/selectors.js +0 -51
  1175. package/dist/src/state/store.js +0 -21
  1176. package/dist/src/state/teammateViewHelpers.js +0 -124
  1177. package/dist/src/tasks/DreamTask/DreamTask.js +0 -99
  1178. package/dist/src/tasks/InProcessTeammateTask/InProcessTeammateTask.js +0 -116
  1179. package/dist/src/tasks/InProcessTeammateTask/types.js +0 -35
  1180. package/dist/src/tasks/LocalAgentTask/LocalAgentTask.js +0 -507
  1181. package/dist/src/tasks/LocalMainSessionTask.js +0 -338
  1182. package/dist/src/tasks/LocalShellTask/LocalShellTask.js +0 -475
  1183. package/dist/src/tasks/LocalShellTask/guards.js +0 -9
  1184. package/dist/src/tasks/LocalShellTask/killShellTasks.js +0 -59
  1185. package/dist/src/tasks/RemoteAgentTask/RemoteAgentTask.js +0 -742
  1186. package/dist/src/tasks/pillLabel.js +0 -69
  1187. package/dist/src/tasks/stopTask.js +0 -67
  1188. package/dist/src/tasks/types.js +0 -18
  1189. package/dist/src/tasks.js +0 -39
  1190. package/dist/src/telegram/bridge.js +0 -334
  1191. package/dist/src/telegram/config.js +0 -57
  1192. package/dist/src/telegram/mirror.js +0 -91
  1193. package/dist/src/tools/AgentTool/AgentTool.js +0 -1222
  1194. package/dist/src/tools/AgentTool/UI.js +0 -592
  1195. package/dist/src/tools/AgentTool/agentColorManager.js +0 -43
  1196. package/dist/src/tools/AgentTool/agentDisplay.js +0 -72
  1197. package/dist/src/tools/AgentTool/agentMemory.js +0 -125
  1198. package/dist/src/tools/AgentTool/agentMemorySnapshot.js +0 -136
  1199. package/dist/src/tools/AgentTool/agentToolUtils.js +0 -456
  1200. package/dist/src/tools/AgentTool/built-in/claudeCodeGuideAgent.js +0 -175
  1201. package/dist/src/tools/AgentTool/built-in/exploreAgent.js +0 -76
  1202. package/dist/src/tools/AgentTool/built-in/generalPurposeAgent.js +0 -28
  1203. package/dist/src/tools/AgentTool/built-in/planAgent.js +0 -87
  1204. package/dist/src/tools/AgentTool/built-in/statuslineSetup.js +0 -140
  1205. package/dist/src/tools/AgentTool/built-in/verificationAgent.js +0 -146
  1206. package/dist/src/tools/AgentTool/builtInAgents.js +0 -58
  1207. package/dist/src/tools/AgentTool/constants.js +0 -11
  1208. package/dist/src/tools/AgentTool/forkSubagent.js +0 -177
  1209. package/dist/src/tools/AgentTool/loadAgentsDir.js +0 -497
  1210. package/dist/src/tools/AgentTool/prompt.js +0 -260
  1211. package/dist/src/tools/AgentTool/resumeAgent.js +0 -182
  1212. package/dist/src/tools/AgentTool/runAgent.js +0 -629
  1213. package/dist/src/tools/AskUserQuestionTool/AskUserQuestionTool.js +0 -237
  1214. package/dist/src/tools/AskUserQuestionTool/prompt.js +0 -38
  1215. package/dist/src/tools/BashTool/BashTool.js +0 -1008
  1216. package/dist/src/tools/BashTool/BashToolResultMessage.js +0 -168
  1217. package/dist/src/tools/BashTool/UI.js +0 -133
  1218. package/dist/src/tools/BashTool/bashCommandHelpers.js +0 -184
  1219. package/dist/src/tools/BashTool/bashPermissions.js +0 -2023
  1220. package/dist/src/tools/BashTool/bashSecurity.js +0 -2267
  1221. package/dist/src/tools/BashTool/commandSemantics.js +0 -105
  1222. package/dist/src/tools/BashTool/commentLabel.js +0 -14
  1223. package/dist/src/tools/BashTool/destructiveCommandWarning.js +0 -88
  1224. package/dist/src/tools/BashTool/modeValidation.js +0 -86
  1225. package/dist/src/tools/BashTool/pathValidation.js +0 -1080
  1226. package/dist/src/tools/BashTool/prompt.js +0 -333
  1227. package/dist/src/tools/BashTool/readOnlyValidation.js +0 -1794
  1228. package/dist/src/tools/BashTool/sedEditParser.js +0 -282
  1229. package/dist/src/tools/BashTool/sedValidation.js +0 -580
  1230. package/dist/src/tools/BashTool/shouldUseSandbox.js +0 -125
  1231. package/dist/src/tools/BashTool/toolName.js +0 -2
  1232. package/dist/src/tools/BashTool/utils.js +0 -180
  1233. package/dist/src/tools/BriefTool/BriefTool.js +0 -172
  1234. package/dist/src/tools/BriefTool/UI.js +0 -66
  1235. package/dist/src/tools/BriefTool/attachments.js +0 -86
  1236. package/dist/src/tools/BriefTool/prompt.js +0 -19
  1237. package/dist/src/tools/BriefTool/upload.js +0 -136
  1238. package/dist/src/tools/ConfigTool/ConfigTool.js +0 -398
  1239. package/dist/src/tools/ConfigTool/UI.js +0 -24
  1240. package/dist/src/tools/ConfigTool/constants.js +0 -1
  1241. package/dist/src/tools/ConfigTool/prompt.js +0 -82
  1242. package/dist/src/tools/ConfigTool/supportedSettings.js +0 -180
  1243. package/dist/src/tools/EnterPlanModeTool/EnterPlanModeTool.js +0 -98
  1244. package/dist/src/tools/EnterPlanModeTool/UI.js +0 -13
  1245. package/dist/src/tools/EnterPlanModeTool/constants.js +0 -1
  1246. package/dist/src/tools/EnterPlanModeTool/prompt.js +0 -164
  1247. package/dist/src/tools/EnterWorktreeTool/EnterWorktreeTool.js +0 -104
  1248. package/dist/src/tools/EnterWorktreeTool/UI.js +0 -8
  1249. package/dist/src/tools/EnterWorktreeTool/constants.js +0 -1
  1250. package/dist/src/tools/EnterWorktreeTool/prompt.js +0 -30
  1251. package/dist/src/tools/ExitPlanModeTool/ExitPlanModeV2Tool.js +0 -385
  1252. package/dist/src/tools/ExitPlanModeTool/UI.js +0 -31
  1253. package/dist/src/tools/ExitPlanModeTool/constants.js +0 -2
  1254. package/dist/src/tools/ExitPlanModeTool/prompt.js +0 -27
  1255. package/dist/src/tools/ExitWorktreeTool/ExitWorktreeTool.js +0 -257
  1256. package/dist/src/tools/ExitWorktreeTool/UI.js +0 -9
  1257. package/dist/src/tools/ExitWorktreeTool/constants.js +0 -1
  1258. package/dist/src/tools/ExitWorktreeTool/prompt.js +0 -32
  1259. package/dist/src/tools/FileEditTool/FileEditTool.js +0 -480
  1260. package/dist/src/tools/FileEditTool/UI.js +0 -201
  1261. package/dist/src/tools/FileEditTool/constants.js +0 -7
  1262. package/dist/src/tools/FileEditTool/prompt.js +0 -24
  1263. package/dist/src/tools/FileEditTool/types.js +0 -50
  1264. package/dist/src/tools/FileEditTool/utils.js +0 -579
  1265. package/dist/src/tools/FileReadTool/FileReadTool.js +0 -889
  1266. package/dist/src/tools/FileReadTool/UI.js +0 -125
  1267. package/dist/src/tools/FileReadTool/imageProcessor.js +0 -46
  1268. package/dist/src/tools/FileReadTool/limits.js +0 -70
  1269. package/dist/src/tools/FileReadTool/prompt.js +0 -31
  1270. package/dist/src/tools/FileWriteTool/FileWriteTool.js +0 -341
  1271. package/dist/src/tools/FileWriteTool/UI.js +0 -338
  1272. package/dist/src/tools/FileWriteTool/prompt.js +0 -15
  1273. package/dist/src/tools/GlobTool/GlobTool.js +0 -161
  1274. package/dist/src/tools/GlobTool/UI.js +0 -39
  1275. package/dist/src/tools/GlobTool/prompt.js +0 -6
  1276. package/dist/src/tools/GrepTool/GrepTool.js +0 -439
  1277. package/dist/src/tools/GrepTool/UI.js +0 -154
  1278. package/dist/src/tools/GrepTool/prompt.js +0 -16
  1279. package/dist/src/tools/LSPTool/LSPTool.js +0 -660
  1280. package/dist/src/tools/LSPTool/UI.js +0 -204
  1281. package/dist/src/tools/LSPTool/formatters.js +0 -445
  1282. package/dist/src/tools/LSPTool/prompt.js +0 -20
  1283. package/dist/src/tools/LSPTool/schemas.js +0 -197
  1284. package/dist/src/tools/LSPTool/symbolContext.js +0 -75
  1285. package/dist/src/tools/ListMcpResourcesTool/ListMcpResourcesTool.js +0 -100
  1286. package/dist/src/tools/ListMcpResourcesTool/UI.js +0 -16
  1287. package/dist/src/tools/ListMcpResourcesTool/prompt.js +0 -18
  1288. package/dist/src/tools/MCPTool/MCPTool.js +0 -60
  1289. package/dist/src/tools/MCPTool/UI.js +0 -342
  1290. package/dist/src/tools/MCPTool/classifyForCollapse.js +0 -597
  1291. package/dist/src/tools/MCPTool/prompt.js +0 -3
  1292. package/dist/src/tools/McpAuthTool/McpAuthTool.js +0 -162
  1293. package/dist/src/tools/NotebookEditTool/NotebookEditTool.js +0 -421
  1294. package/dist/src/tools/NotebookEditTool/UI.js +0 -40
  1295. package/dist/src/tools/NotebookEditTool/constants.js +0 -2
  1296. package/dist/src/tools/NotebookEditTool/prompt.js +0 -2
  1297. package/dist/src/tools/PowerShellTool/PowerShellTool.js +0 -899
  1298. package/dist/src/tools/PowerShellTool/UI.js +0 -57
  1299. package/dist/src/tools/PowerShellTool/clmTypes.js +0 -207
  1300. package/dist/src/tools/PowerShellTool/commandSemantics.js +0 -115
  1301. package/dist/src/tools/PowerShellTool/commonParameters.js +0 -27
  1302. package/dist/src/tools/PowerShellTool/destructiveCommandWarning.js +0 -92
  1303. package/dist/src/tools/PowerShellTool/gitSafety.js +0 -185
  1304. package/dist/src/tools/PowerShellTool/modeValidation.js +0 -357
  1305. package/dist/src/tools/PowerShellTool/pathValidation.js +0 -1712
  1306. package/dist/src/tools/PowerShellTool/powershellPermissions.js +0 -1351
  1307. package/dist/src/tools/PowerShellTool/powershellSecurity.js +0 -942
  1308. package/dist/src/tools/PowerShellTool/prompt.js +0 -132
  1309. package/dist/src/tools/PowerShellTool/readOnlyValidation.js +0 -1633
  1310. package/dist/src/tools/PowerShellTool/toolName.js +0 -2
  1311. package/dist/src/tools/REPLTool/constants.js +0 -43
  1312. package/dist/src/tools/REPLTool/primitiveTools.js +0 -36
  1313. package/dist/src/tools/ReadMcpResourceTool/ReadMcpResourceTool.js +0 -112
  1314. package/dist/src/tools/ReadMcpResourceTool/UI.js +0 -23
  1315. package/dist/src/tools/ReadMcpResourceTool/prompt.js +0 -15
  1316. package/dist/src/tools/RemoteTriggerTool/RemoteTriggerTool.js +0 -142
  1317. package/dist/src/tools/RemoteTriggerTool/UI.js +0 -11
  1318. package/dist/src/tools/RemoteTriggerTool/prompt.js +0 -12
  1319. package/dist/src/tools/ScheduleCronTool/CronCreateTool.js +0 -120
  1320. package/dist/src/tools/ScheduleCronTool/CronDeleteTool.js +0 -74
  1321. package/dist/src/tools/ScheduleCronTool/CronListTool.js +0 -77
  1322. package/dist/src/tools/ScheduleCronTool/UI.js +0 -28
  1323. package/dist/src/tools/ScheduleCronTool/prompt.js +0 -115
  1324. package/dist/src/tools/SendMessageTool/SendMessageTool.js +0 -675
  1325. package/dist/src/tools/SendMessageTool/UI.js +0 -23
  1326. package/dist/src/tools/SendMessageTool/constants.js +0 -1
  1327. package/dist/src/tools/SendMessageTool/prompt.js +0 -47
  1328. package/dist/src/tools/SkillTool/SkillTool.js +0 -827
  1329. package/dist/src/tools/SkillTool/UI.js +0 -60
  1330. package/dist/src/tools/SkillTool/constants.js +0 -1
  1331. package/dist/src/tools/SkillTool/prompt.js +0 -184
  1332. package/dist/src/tools/SleepTool/prompt.js +0 -14
  1333. package/dist/src/tools/SyntheticOutputTool/SyntheticOutputTool.js +0 -138
  1334. package/dist/src/tools/TaskCreateTool/TaskCreateTool.js +0 -104
  1335. package/dist/src/tools/TaskCreateTool/constants.js +0 -1
  1336. package/dist/src/tools/TaskCreateTool/prompt.js +0 -52
  1337. package/dist/src/tools/TaskGetTool/TaskGetTool.js +0 -106
  1338. package/dist/src/tools/TaskGetTool/constants.js +0 -1
  1339. package/dist/src/tools/TaskGetTool/prompt.js +0 -23
  1340. package/dist/src/tools/TaskListTool/TaskListTool.js +0 -89
  1341. package/dist/src/tools/TaskListTool/constants.js +0 -1
  1342. package/dist/src/tools/TaskListTool/prompt.js +0 -44
  1343. package/dist/src/tools/TaskOutputTool/TaskOutputTool.js +0 -535
  1344. package/dist/src/tools/TaskOutputTool/constants.js +0 -1
  1345. package/dist/src/tools/TaskStopTool/TaskStopTool.js +0 -110
  1346. package/dist/src/tools/TaskStopTool/UI.js +0 -30
  1347. package/dist/src/tools/TaskStopTool/prompt.js +0 -7
  1348. package/dist/src/tools/TaskUpdateTool/TaskUpdateTool.js +0 -301
  1349. package/dist/src/tools/TaskUpdateTool/constants.js +0 -1
  1350. package/dist/src/tools/TaskUpdateTool/prompt.js +0 -76
  1351. package/dist/src/tools/TeamCreateTool/TeamCreateTool.js +0 -177
  1352. package/dist/src/tools/TeamCreateTool/UI.js +0 -4
  1353. package/dist/src/tools/TeamCreateTool/constants.js +0 -1
  1354. package/dist/src/tools/TeamCreateTool/prompt.js +0 -113
  1355. package/dist/src/tools/TeamDeleteTool/TeamDeleteTool.js +0 -102
  1356. package/dist/src/tools/TeamDeleteTool/UI.js +0 -13
  1357. package/dist/src/tools/TeamDeleteTool/constants.js +0 -1
  1358. package/dist/src/tools/TeamDeleteTool/prompt.js +0 -16
  1359. package/dist/src/tools/TodoWriteTool/TodoWriteTool.js +0 -99
  1360. package/dist/src/tools/TodoWriteTool/constants.js +0 -1
  1361. package/dist/src/tools/TodoWriteTool/prompt.js +0 -181
  1362. package/dist/src/tools/ToolSearchTool/ToolSearchTool.js +0 -357
  1363. package/dist/src/tools/ToolSearchTool/constants.js +0 -1
  1364. package/dist/src/tools/ToolSearchTool/prompt.js +0 -99
  1365. package/dist/src/tools/TungstenTool/TungstenLiveMonitor.js +0 -7
  1366. package/dist/src/tools/TungstenTool/TungstenTool.js +0 -3
  1367. package/dist/src/tools/WebFetchTool/UI.js +0 -30
  1368. package/dist/src/tools/WebFetchTool/WebFetchTool.js +0 -246
  1369. package/dist/src/tools/WebFetchTool/preapproved.js +0 -155
  1370. package/dist/src/tools/WebFetchTool/prompt.js +0 -39
  1371. package/dist/src/tools/WebFetchTool/utils.js +0 -381
  1372. package/dist/src/tools/WebSearchTool/UI.js +0 -66
  1373. package/dist/src/tools/WebSearchTool/WebSearchTool.js +0 -352
  1374. package/dist/src/tools/WebSearchTool/prompt.js +0 -32
  1375. package/dist/src/tools/WorkflowTool/constants.js +0 -2
  1376. package/dist/src/tools/shared/gitOperationTracking.js +0 -220
  1377. package/dist/src/tools/shared/spawnMultiAgent.js +0 -805
  1378. package/dist/src/tools/testing/TestingPermissionTool.js +0 -72
  1379. package/dist/src/tools/utils.js +0 -24
  1380. package/dist/src/tools.js +0 -332
  1381. package/dist/src/types/command.js +0 -10
  1382. package/dist/src/types/connectorText.js +0 -2
  1383. package/dist/src/types/generated/events_mono/claude_code/v1/claude_code_internal_event.js +0 -673
  1384. package/dist/src/types/generated/events_mono/common/v1/auth.js +0 -49
  1385. package/dist/src/types/generated/events_mono/growthbook/v1/growthbook_experiment_event.js +0 -147
  1386. package/dist/src/types/generated/google/protobuf/timestamp.js +0 -38
  1387. package/dist/src/types/hooks.js +0 -153
  1388. package/dist/src/types/ids.js +0 -27
  1389. package/dist/src/types/logs.js +0 -11
  1390. package/dist/src/types/message.js +0 -1
  1391. package/dist/src/types/permissions.js +0 -25
  1392. package/dist/src/types/plugin.js +0 -72
  1393. package/dist/src/types/textInputTypes.js +0 -20
  1394. package/dist/src/types/utils.js +0 -5
  1395. package/dist/src/upstreamproxy/relay.js +0 -346
  1396. package/dist/src/upstreamproxy/upstreamproxy.js +0 -236
  1397. package/dist/src/utils/CircularBuffer.js +0 -75
  1398. package/dist/src/utils/Cursor.js +0 -1229
  1399. package/dist/src/utils/QueryGuard.js +0 -115
  1400. package/dist/src/utils/Shell.js +0 -374
  1401. package/dist/src/utils/ShellCommand.js +0 -338
  1402. package/dist/src/utils/abortController.js +0 -74
  1403. package/dist/src/utils/activityManager.js +0 -127
  1404. package/dist/src/utils/advisor.js +0 -77
  1405. package/dist/src/utils/agentContext.js +0 -91
  1406. package/dist/src/utils/agentId.js +0 -83
  1407. package/dist/src/utils/agentSwarmsEnabled.js +0 -37
  1408. package/dist/src/utils/agenticSessionSearch.js +0 -255
  1409. package/dist/src/utils/analyzeContext.js +0 -848
  1410. package/dist/src/utils/ansiToPng.js +0 -259
  1411. package/dist/src/utils/ansiToSvg.js +0 -207
  1412. package/dist/src/utils/api.js +0 -555
  1413. package/dist/src/utils/apiPreconnect.js +0 -62
  1414. package/dist/src/utils/appleTerminalBackup.js +0 -95
  1415. package/dist/src/utils/argumentSubstitution.js +0 -114
  1416. package/dist/src/utils/array.js +0 -12
  1417. package/dist/src/utils/asciicast.js +0 -200
  1418. package/dist/src/utils/attachments.js +0 -2514
  1419. package/dist/src/utils/attribution.js +0 -308
  1420. package/dist/src/utils/attributionHooks.js +0 -16
  1421. package/dist/src/utils/attributionTrailer.js +0 -16
  1422. package/dist/src/utils/auth.js +0 -2020
  1423. package/dist/src/utils/authFileDescriptor.js +0 -152
  1424. package/dist/src/utils/authPortable.js +0 -14
  1425. package/dist/src/utils/autoModeDenials.js +0 -15
  1426. package/dist/src/utils/autoRunIssue.js +0 -112
  1427. package/dist/src/utils/autoUpdater.js +0 -461
  1428. package/dist/src/utils/aws.js +0 -44
  1429. package/dist/src/utils/awsAuthStatusManager.js +0 -66
  1430. package/dist/src/utils/background/remote/preconditions.js +0 -175
  1431. package/dist/src/utils/background/remote/remoteSession.js +0 -53
  1432. package/dist/src/utils/backgroundHousekeeping.js +0 -66
  1433. package/dist/src/utils/bash/ParsedCommand.js +0 -241
  1434. package/dist/src/utils/bash/ShellSnapshot.js +0 -489
  1435. package/dist/src/utils/bash/ast.js +0 -2590
  1436. package/dist/src/utils/bash/bashParser.js +0 -4355
  1437. package/dist/src/utils/bash/bashPipeCommand.js +0 -249
  1438. package/dist/src/utils/bash/commands.js +0 -1131
  1439. package/dist/src/utils/bash/heredoc.js +0 -647
  1440. package/dist/src/utils/bash/parser.js +0 -195
  1441. package/dist/src/utils/bash/prefix.js +0 -154
  1442. package/dist/src/utils/bash/registry.js +0 -23
  1443. package/dist/src/utils/bash/shellCompletion.js +0 -196
  1444. package/dist/src/utils/bash/shellPrefix.js +0 -25
  1445. package/dist/src/utils/bash/shellQuote.js +0 -253
  1446. package/dist/src/utils/bash/shellQuoting.js +0 -106
  1447. package/dist/src/utils/bash/specs/alias.js +0 -11
  1448. package/dist/src/utils/bash/specs/index.js +0 -16
  1449. package/dist/src/utils/bash/specs/nohup.js +0 -10
  1450. package/dist/src/utils/bash/specs/pyright.js +0 -88
  1451. package/dist/src/utils/bash/specs/sleep.js +0 -10
  1452. package/dist/src/utils/bash/specs/srun.js +0 -28
  1453. package/dist/src/utils/bash/specs/time.js +0 -10
  1454. package/dist/src/utils/bash/specs/timeout.js +0 -17
  1455. package/dist/src/utils/bash/treeSitterAnalysis.js +0 -407
  1456. package/dist/src/utils/betas.js +0 -332
  1457. package/dist/src/utils/billing.js +0 -54
  1458. package/dist/src/utils/binaryCheck.js +0 -40
  1459. package/dist/src/utils/browser.js +0 -58
  1460. package/dist/src/utils/bufferedWriter.js +0 -77
  1461. package/dist/src/utils/bundledMode.js +0 -19
  1462. package/dist/src/utils/caCerts.js +0 -93
  1463. package/dist/src/utils/caCertsConfig.js +0 -77
  1464. package/dist/src/utils/cachePaths.js +0 -28
  1465. package/dist/src/utils/ccshareResume.js +0 -16
  1466. package/dist/src/utils/classifierApprovals.js +0 -66
  1467. package/dist/src/utils/classifierApprovalsHook.js +0 -10
  1468. package/dist/src/utils/claudeCodeHints.js +0 -142
  1469. package/dist/src/utils/claudeDesktop.js +0 -108
  1470. package/dist/src/utils/claudeInChrome/chromeNativeHost.js +0 -416
  1471. package/dist/src/utils/claudeInChrome/common.js +0 -466
  1472. package/dist/src/utils/claudeInChrome/mcpServer.js +0 -237
  1473. package/dist/src/utils/claudeInChrome/prompt.js +0 -79
  1474. package/dist/src/utils/claudeInChrome/setup.js +0 -320
  1475. package/dist/src/utils/claudeInChrome/setupPortable.js +0 -172
  1476. package/dist/src/utils/claudeInChrome/toolRendering.js +0 -234
  1477. package/dist/src/utils/claudemd.js +0 -1054
  1478. package/dist/src/utils/cleanup.js +0 -514
  1479. package/dist/src/utils/cleanupRegistry.js +0 -22
  1480. package/dist/src/utils/cliArgs.js +0 -53
  1481. package/dist/src/utils/cliHighlight.js +0 -45
  1482. package/dist/src/utils/codeIndexing.js +0 -149
  1483. package/dist/src/utils/collapseBackgroundBashNotifications.js +0 -70
  1484. package/dist/src/utils/collapseHookSummaries.js +0 -48
  1485. package/dist/src/utils/collapseReadSearch.js +0 -871
  1486. package/dist/src/utils/collapseTeammateShutdowns.js +0 -44
  1487. package/dist/src/utils/combinedAbortSignal.js +0 -40
  1488. package/dist/src/utils/commandLifecycle.js +0 -7
  1489. package/dist/src/utils/commitAttribution.js +0 -720
  1490. package/dist/src/utils/completionCache.js +0 -138
  1491. package/dist/src/utils/computerUse/appNames.js +0 -170
  1492. package/dist/src/utils/computerUse/cleanup.js +0 -66
  1493. package/dist/src/utils/computerUse/common.js +0 -56
  1494. package/dist/src/utils/computerUse/computerUseLock.js +0 -183
  1495. package/dist/src/utils/computerUse/drainRunLoop.js +0 -71
  1496. package/dist/src/utils/computerUse/escHotkey.js +0 -53
  1497. package/dist/src/utils/computerUse/executor.js +0 -480
  1498. package/dist/src/utils/computerUse/gates.js +0 -55
  1499. package/dist/src/utils/computerUse/hostAdapter.js +0 -62
  1500. package/dist/src/utils/computerUse/inputLoader.js +0 -27
  1501. package/dist/src/utils/computerUse/mcpServer.js +0 -84
  1502. package/dist/src/utils/computerUse/setup.js +0 -42
  1503. package/dist/src/utils/computerUse/swiftLoader.js +0 -20
  1504. package/dist/src/utils/computerUse/toolRendering.js +0 -100
  1505. package/dist/src/utils/computerUse/wrapper.js +0 -318
  1506. package/dist/src/utils/concurrentSessions.js +0 -179
  1507. package/dist/src/utils/config.js +0 -1084
  1508. package/dist/src/utils/configConstants.js +0 -18
  1509. package/dist/src/utils/contentArray.js +0 -45
  1510. package/dist/src/utils/context.js +0 -185
  1511. package/dist/src/utils/contextAnalysis.js +0 -171
  1512. package/dist/src/utils/contextSuggestions.js +0 -158
  1513. package/dist/src/utils/controlMessageCompat.js +0 -31
  1514. package/dist/src/utils/conversationRecovery.js +0 -436
  1515. package/dist/src/utils/cron.js +0 -260
  1516. package/dist/src/utils/cronJitterConfig.js +0 -62
  1517. package/dist/src/utils/cronScheduler.js +0 -388
  1518. package/dist/src/utils/cronTasks.js +0 -328
  1519. package/dist/src/utils/cronTasksLock.js +0 -159
  1520. package/dist/src/utils/crossProjectResume.js +0 -46
  1521. package/dist/src/utils/crypto.js +0 -13
  1522. package/dist/src/utils/cwd.js +0 -29
  1523. package/dist/src/utils/databaseMcp/common.js +0 -48
  1524. package/dist/src/utils/databaseMcp/mcpServer.js +0 -2
  1525. package/dist/src/utils/databaseMcp/server/connection.js +0 -243
  1526. package/dist/src/utils/databaseMcp/server/index.js +0 -1442
  1527. package/dist/src/utils/databaseMcp/server/queries.js +0 -683
  1528. package/dist/src/utils/databaseMcp/server/types.js +0 -7
  1529. package/dist/src/utils/databaseMcp/setup.js +0 -28
  1530. package/dist/src/utils/debug.js +0 -220
  1531. package/dist/src/utils/debugFilter.js +0 -125
  1532. package/dist/src/utils/deepLink/banner.js +0 -103
  1533. package/dist/src/utils/deepLink/parseDeepLink.js +0 -138
  1534. package/dist/src/utils/deepLink/protocolHandler.js +0 -119
  1535. package/dist/src/utils/deepLink/registerProtocol.js +0 -291
  1536. package/dist/src/utils/deepLink/terminalLauncher.js +0 -455
  1537. package/dist/src/utils/deepLink/terminalPreference.js +0 -51
  1538. package/dist/src/utils/desktopDeepLink.js +0 -208
  1539. package/dist/src/utils/detectRepository.js +0 -157
  1540. package/dist/src/utils/diagLogs.js +0 -74
  1541. package/dist/src/utils/diff.js +0 -108
  1542. package/dist/src/utils/directMemberMessage.js +0 -34
  1543. package/dist/src/utils/displayTags.js +0 -46
  1544. package/dist/src/utils/doctorContextWarnings.js +0 -179
  1545. package/dist/src/utils/doctorDiagnostic.js +0 -495
  1546. package/dist/src/utils/dxt/helpers.js +0 -64
  1547. package/dist/src/utils/dxt/zip.js +0 -167
  1548. package/dist/src/utils/earlyInput.js +0 -166
  1549. package/dist/src/utils/editor.js +0 -163
  1550. package/dist/src/utils/effort.js +0 -278
  1551. package/dist/src/utils/embeddedTools.js +0 -26
  1552. package/dist/src/utils/env.js +0 -358
  1553. package/dist/src/utils/envDynamic.js +0 -130
  1554. package/dist/src/utils/envUtils.js +0 -154
  1555. package/dist/src/utils/envValidation.js +0 -26
  1556. package/dist/src/utils/errorLogSink.js +0 -197
  1557. package/dist/src/utils/errors.js +0 -207
  1558. package/dist/src/utils/eventLoopStallDetector.js +0 -16
  1559. package/dist/src/utils/exampleCommands.js +0 -165
  1560. package/dist/src/utils/execFileNoThrow.js +0 -93
  1561. package/dist/src/utils/execFileNoThrowPortable.js +0 -111
  1562. package/dist/src/utils/execSyncWrapper.js +0 -68
  1563. package/dist/src/utils/exportRenderer.js +0 -71
  1564. package/dist/src/utils/extraUsage.js +0 -19
  1565. package/dist/src/utils/fastMode.js +0 -393
  1566. package/dist/src/utils/file.js +0 -467
  1567. package/dist/src/utils/fileHistory.js +0 -851
  1568. package/dist/src/utils/fileOperationAnalytics.js +0 -45
  1569. package/dist/src/utils/filePersistence/filePersistence.js +0 -212
  1570. package/dist/src/utils/filePersistence/outputsScanner.js +0 -104
  1571. package/dist/src/utils/filePersistence/types.js +0 -5
  1572. package/dist/src/utils/fileRead.js +0 -81
  1573. package/dist/src/utils/fileReadCache.js +0 -78
  1574. package/dist/src/utils/fileStateCache.js +0 -99
  1575. package/dist/src/utils/findExecutable.js +0 -13
  1576. package/dist/src/utils/fingerprint.js +0 -59
  1577. package/dist/src/utils/forkedAgent.js +0 -410
  1578. package/dist/src/utils/format.js +0 -238
  1579. package/dist/src/utils/formatBriefTimestamp.js +0 -72
  1580. package/dist/src/utils/fpsTracker.js +0 -34
  1581. package/dist/src/utils/frontmatterParser.js +0 -260
  1582. package/dist/src/utils/fsOperations.js +0 -834
  1583. package/dist/src/utils/fullscreen.js +0 -194
  1584. package/dist/src/utils/generatedFiles.js +0 -122
  1585. package/dist/src/utils/generators.js +0 -67
  1586. package/dist/src/utils/genericProcessUtils.js +0 -155
  1587. package/dist/src/utils/getWorktreePaths.js +0 -56
  1588. package/dist/src/utils/getWorktreePathsPortable.js +0 -23
  1589. package/dist/src/utils/ghPrStatus.js +0 -71
  1590. package/dist/src/utils/git/gitConfigParser.js +0 -226
  1591. package/dist/src/utils/git/gitFilesystem.js +0 -606
  1592. package/dist/src/utils/git/gitignore.js +0 -84
  1593. package/dist/src/utils/git.js +0 -725
  1594. package/dist/src/utils/gitDiff.js +0 -395
  1595. package/dist/src/utils/gitSettings.js +0 -18
  1596. package/dist/src/utils/github/ghAuthStatus.js +0 -23
  1597. package/dist/src/utils/githubRepoPathMapping.js +0 -135
  1598. package/dist/src/utils/glob.js +0 -90
  1599. package/dist/src/utils/gracefulShutdown.js +0 -447
  1600. package/dist/src/utils/groupToolUses.js +0 -126
  1601. package/dist/src/utils/handlePromptSubmit.js +0 -398
  1602. package/dist/src/utils/hash.js +0 -46
  1603. package/dist/src/utils/headlessProfiler.js +0 -147
  1604. package/dist/src/utils/heapDumpService.js +0 -202
  1605. package/dist/src/utils/heatmap.js +0 -151
  1606. package/dist/src/utils/highlightMatch.js +0 -28
  1607. package/dist/src/utils/hooks/AsyncHookRegistry.js +0 -187
  1608. package/dist/src/utils/hooks/apiQueryHookHelper.js +0 -77
  1609. package/dist/src/utils/hooks/execAgentHook.js +0 -257
  1610. package/dist/src/utils/hooks/execHttpHook.js +0 -184
  1611. package/dist/src/utils/hooks/execPromptHook.js +0 -171
  1612. package/dist/src/utils/hooks/fileChangedWatcher.js +0 -161
  1613. package/dist/src/utils/hooks/hookEvents.js +0 -111
  1614. package/dist/src/utils/hooks/hookHelpers.js +0 -60
  1615. package/dist/src/utils/hooks/hooksConfigManager.js +0 -323
  1616. package/dist/src/utils/hooks/hooksConfigSnapshot.js +0 -114
  1617. package/dist/src/utils/hooks/hooksSettings.js +0 -204
  1618. package/dist/src/utils/hooks/postSamplingHooks.js +0 -39
  1619. package/dist/src/utils/hooks/registerFrontmatterHooks.js +0 -47
  1620. package/dist/src/utils/hooks/registerSkillHooks.js +0 -40
  1621. package/dist/src/utils/hooks/sessionHooks.js +0 -252
  1622. package/dist/src/utils/hooks/skillImprovement.js +0 -211
  1623. package/dist/src/utils/hooks/ssrfGuard.js +0 -258
  1624. package/dist/src/utils/hooks.js +0 -3668
  1625. package/dist/src/utils/horizontalScroll.js +0 -108
  1626. package/dist/src/utils/http.js +0 -121
  1627. package/dist/src/utils/hyperlink.js +0 -28
  1628. package/dist/src/utils/iTermBackup.js +0 -48
  1629. package/dist/src/utils/ide.js +0 -1198
  1630. package/dist/src/utils/idePathConversion.js +0 -66
  1631. package/dist/src/utils/idleTimeout.js +0 -44
  1632. package/dist/src/utils/imagePaste.js +0 -329
  1633. package/dist/src/utils/imageResizer.js +0 -664
  1634. package/dist/src/utils/imageStore.js +0 -150
  1635. package/dist/src/utils/imageValidation.js +0 -92
  1636. package/dist/src/utils/immediateCommand.js +0 -12
  1637. package/dist/src/utils/inProcessTeammateHelpers.js +0 -71
  1638. package/dist/src/utils/ink.js +0 -20
  1639. package/dist/src/utils/intl.js +0 -83
  1640. package/dist/src/utils/jetbrains.js +0 -152
  1641. package/dist/src/utils/json.js +0 -295
  1642. package/dist/src/utils/jsonRead.js +0 -14
  1643. package/dist/src/utils/keyboardShortcuts.js +0 -11
  1644. package/dist/src/utils/lazySchema.js +0 -8
  1645. package/dist/src/utils/listSessionsImpl.js +0 -332
  1646. package/dist/src/utils/localInstaller.js +0 -131
  1647. package/dist/src/utils/lockfile.js +0 -22
  1648. package/dist/src/utils/log.js +0 -280
  1649. package/dist/src/utils/logoV2Utils.js +0 -288
  1650. package/dist/src/utils/mailbox.js +0 -50
  1651. package/dist/src/utils/managedEnv.js +0 -160
  1652. package/dist/src/utils/managedEnvConstants.js +0 -187
  1653. package/dist/src/utils/markdown.js +0 -300
  1654. package/dist/src/utils/markdownConfigLoader.js +0 -480
  1655. package/dist/src/utils/mcp/dateTimeParser.js +0 -102
  1656. package/dist/src/utils/mcp/elicitationValidation.js +0 -259
  1657. package/dist/src/utils/mcpInstructionsDelta.js +0 -97
  1658. package/dist/src/utils/mcpOutputStorage.js +0 -159
  1659. package/dist/src/utils/mcpValidation.js +0 -165
  1660. package/dist/src/utils/mcpWebSocketTransport.js +0 -180
  1661. package/dist/src/utils/memoize.js +0 -205
  1662. package/dist/src/utils/memory/types.js +0 -9
  1663. package/dist/src/utils/memory/versions.js +0 -7
  1664. package/dist/src/utils/memoryFileDetection.js +0 -247
  1665. package/dist/src/utils/messagePredicates.js +0 -6
  1666. package/dist/src/utils/messageQueueManager.js +0 -430
  1667. package/dist/src/utils/messages/mappers.js +0 -240
  1668. package/dist/src/utils/messages/systemInit.js +0 -74
  1669. package/dist/src/utils/messages.js +0 -4273
  1670. package/dist/src/utils/model/agent.js +0 -128
  1671. package/dist/src/utils/model/aliases.js +0 -21
  1672. package/dist/src/utils/model/antModels.js +0 -25
  1673. package/dist/src/utils/model/bedrock.js +0 -220
  1674. package/dist/src/utils/model/check1mAccess.js +0 -64
  1675. package/dist/src/utils/model/configs.js +0 -93
  1676. package/dist/src/utils/model/contextWindowUpgradeCheck.js +0 -41
  1677. package/dist/src/utils/model/deprecation.js +0 -72
  1678. package/dist/src/utils/model/model.js +0 -635
  1679. package/dist/src/utils/model/modelAllowlist.js +0 -148
  1680. package/dist/src/utils/model/modelCapabilities.js +0 -107
  1681. package/dist/src/utils/model/modelOptions.js +0 -627
  1682. package/dist/src/utils/model/modelStrings.js +0 -144
  1683. package/dist/src/utils/model/modelSupportOverrides.js +0 -40
  1684. package/dist/src/utils/model/openrouter.js +0 -51
  1685. package/dist/src/utils/model/providerBaseUrls.js +0 -77
  1686. package/dist/src/utils/model/providerCatalog.js +0 -81
  1687. package/dist/src/utils/model/providerModels.js +0 -334
  1688. package/dist/src/utils/model/providerProfiles.js +0 -392
  1689. package/dist/src/utils/model/providerProfilesDb.js +0 -556
  1690. package/dist/src/utils/model/providerSwitch.js +0 -68
  1691. package/dist/src/utils/model/providers.js +0 -199
  1692. package/dist/src/utils/model/validateModel.js +0 -257
  1693. package/dist/src/utils/modelCost.js +0 -160
  1694. package/dist/src/utils/modifiers.js +0 -35
  1695. package/dist/src/utils/mtls.js +0 -134
  1696. package/dist/src/utils/nativeInstaller/download.js +0 -370
  1697. package/dist/src/utils/nativeInstaller/index.js +0 -8
  1698. package/dist/src/utils/nativeInstaller/installer.js +0 -1396
  1699. package/dist/src/utils/nativeInstaller/packageManagers.js +0 -258
  1700. package/dist/src/utils/nativeInstaller/pidLock.js +0 -347
  1701. package/dist/src/utils/notebook.js +0 -176
  1702. package/dist/src/utils/objectGroupBy.js +0 -15
  1703. package/dist/src/utils/pasteStore.js +0 -93
  1704. package/dist/src/utils/path.js +0 -140
  1705. package/dist/src/utils/pdf.js +0 -236
  1706. package/dist/src/utils/pdfUtils.js +0 -61
  1707. package/dist/src/utils/peerAddress.js +0 -20
  1708. package/dist/src/utils/permissions/PermissionMode.js +0 -95
  1709. package/dist/src/utils/permissions/PermissionPromptToolResultSchema.js +0 -85
  1710. package/dist/src/utils/permissions/PermissionResult.js +0 -11
  1711. package/dist/src/utils/permissions/PermissionRule.js +0 -19
  1712. package/dist/src/utils/permissions/PermissionUpdate.js +0 -268
  1713. package/dist/src/utils/permissions/PermissionUpdateSchema.js +0 -61
  1714. package/dist/src/utils/permissions/autoModeState.js +0 -34
  1715. package/dist/src/utils/permissions/bashClassifier.js +0 -30
  1716. package/dist/src/utils/permissions/bypassPermissionsKillswitch.js +0 -115
  1717. package/dist/src/utils/permissions/classifierDecision.js +0 -88
  1718. package/dist/src/utils/permissions/classifierShared.js +0 -28
  1719. package/dist/src/utils/permissions/dangerousPatterns.js +0 -78
  1720. package/dist/src/utils/permissions/denialTracking.js +0 -34
  1721. package/dist/src/utils/permissions/filesystem.js +0 -1411
  1722. package/dist/src/utils/permissions/getNextPermissionMode.js +0 -74
  1723. package/dist/src/utils/permissions/pathValidation.js +0 -351
  1724. package/dist/src/utils/permissions/permissionExplainer.js +0 -188
  1725. package/dist/src/utils/permissions/permissionRuleParser.js +0 -177
  1726. package/dist/src/utils/permissions/permissionSetup.js +0 -1164
  1727. package/dist/src/utils/permissions/permissions.js +0 -1065
  1728. package/dist/src/utils/permissions/permissionsLoader.js +0 -217
  1729. package/dist/src/utils/permissions/shadowedRuleDetection.js +0 -149
  1730. package/dist/src/utils/permissions/shellRuleMatching.js +0 -174
  1731. package/dist/src/utils/permissions/yoloClassifier.js +0 -1195
  1732. package/dist/src/utils/planModeV2.js +0 -75
  1733. package/dist/src/utils/plans.js +0 -334
  1734. package/dist/src/utils/platform.js +0 -122
  1735. package/dist/src/utils/plugins/addDirPluginSettings.js +0 -53
  1736. package/dist/src/utils/plugins/cacheUtils.js +0 -174
  1737. package/dist/src/utils/plugins/dependencyResolver.js +0 -244
  1738. package/dist/src/utils/plugins/fetchTelemetry.js +0 -108
  1739. package/dist/src/utils/plugins/gitAvailability.js +0 -65
  1740. package/dist/src/utils/plugins/headlessPluginInstall.js +0 -136
  1741. package/dist/src/utils/plugins/hintRecommendation.js +0 -136
  1742. package/dist/src/utils/plugins/installCounts.js +0 -218
  1743. package/dist/src/utils/plugins/installedPluginsManager.js +0 -1003
  1744. package/dist/src/utils/plugins/loadPluginAgents.js +0 -219
  1745. package/dist/src/utils/plugins/loadPluginCommands.js +0 -595
  1746. package/dist/src/utils/plugins/loadPluginHooks.js +0 -239
  1747. package/dist/src/utils/plugins/loadPluginOutputStyles.js +0 -112
  1748. package/dist/src/utils/plugins/lspPluginIntegration.js +0 -293
  1749. package/dist/src/utils/plugins/lspRecommendation.js +0 -278
  1750. package/dist/src/utils/plugins/managedPlugins.js +0 -26
  1751. package/dist/src/utils/plugins/marketplaceHelpers.js +0 -470
  1752. package/dist/src/utils/plugins/marketplaceManager.js +0 -1939
  1753. package/dist/src/utils/plugins/mcpPluginIntegration.js +0 -465
  1754. package/dist/src/utils/plugins/mcpbHandler.js +0 -708
  1755. package/dist/src/utils/plugins/officialMarketplace.js +0 -21
  1756. package/dist/src/utils/plugins/officialMarketplaceGcs.js +0 -195
  1757. package/dist/src/utils/plugins/officialMarketplaceStartupCheck.js +0 -338
  1758. package/dist/src/utils/plugins/orphanedPluginFilter.js +0 -96
  1759. package/dist/src/utils/plugins/parseMarketplaceInput.js +0 -143
  1760. package/dist/src/utils/plugins/performStartupChecks.js +0 -66
  1761. package/dist/src/utils/plugins/pluginAutoupdate.js +0 -210
  1762. package/dist/src/utils/plugins/pluginBlocklist.js +0 -93
  1763. package/dist/src/utils/plugins/pluginDirectories.js +0 -170
  1764. package/dist/src/utils/plugins/pluginFlagging.js +0 -173
  1765. package/dist/src/utils/plugins/pluginIdentifier.js +0 -78
  1766. package/dist/src/utils/plugins/pluginInstallationHelpers.js +0 -400
  1767. package/dist/src/utils/plugins/pluginLoader.js +0 -2426
  1768. package/dist/src/utils/plugins/pluginOptionsStorage.js +0 -311
  1769. package/dist/src/utils/plugins/pluginPolicy.js +0 -18
  1770. package/dist/src/utils/plugins/pluginStartupCheck.js +0 -261
  1771. package/dist/src/utils/plugins/pluginVersioning.js +0 -128
  1772. package/dist/src/utils/plugins/reconciler.js +0 -181
  1773. package/dist/src/utils/plugins/refresh.js +0 -162
  1774. package/dist/src/utils/plugins/schemas.js +0 -1283
  1775. package/dist/src/utils/plugins/validatePlugin.js +0 -765
  1776. package/dist/src/utils/plugins/walkPluginMarkdown.js +0 -49
  1777. package/dist/src/utils/plugins/zipCache.js +0 -346
  1778. package/dist/src/utils/plugins/zipCacheAdapters.js +0 -133
  1779. package/dist/src/utils/postCommitAttribution.js +0 -16
  1780. package/dist/src/utils/powershell/dangerousCmdlets.js +0 -174
  1781. package/dist/src/utils/powershell/parser.js +0 -1357
  1782. package/dist/src/utils/powershell/staticPrefix.js +0 -277
  1783. package/dist/src/utils/preflightChecks.js +0 -147
  1784. package/dist/src/utils/privacyLevel.js +0 -49
  1785. package/dist/src/utils/process.js +0 -56
  1786. package/dist/src/utils/processUserInput/processBashCommand.js +0 -119
  1787. package/dist/src/utils/processUserInput/processSlashCommand.js +0 -845
  1788. package/dist/src/utils/processUserInput/processTextPrompt.js +0 -68
  1789. package/dist/src/utils/processUserInput/processUserInput.js +0 -326
  1790. package/dist/src/utils/profilerBase.js +0 -29
  1791. package/dist/src/utils/promptCategory.js +0 -39
  1792. package/dist/src/utils/promptEditor.js +0 -151
  1793. package/dist/src/utils/promptShellExecution.js +0 -119
  1794. package/dist/src/utils/proxy.js +0 -347
  1795. package/dist/src/utils/queryContext.js +0 -110
  1796. package/dist/src/utils/queryHelpers.js +0 -436
  1797. package/dist/src/utils/queryProfiler.js +0 -242
  1798. package/dist/src/utils/queueProcessor.js +0 -70
  1799. package/dist/src/utils/readEditContext.js +0 -176
  1800. package/dist/src/utils/readFileInRange.js +0 -278
  1801. package/dist/src/utils/releaseNotes.js +0 -304
  1802. package/dist/src/utils/renderOptions.js +0 -67
  1803. package/dist/src/utils/ripgrep.js +0 -540
  1804. package/dist/src/utils/sandbox/sandbox-adapter.js +0 -749
  1805. package/dist/src/utils/sandbox/sandbox-ui-utils.js +0 -11
  1806. package/dist/src/utils/sanitization.js +0 -72
  1807. package/dist/src/utils/screenshotClipboard.js +0 -89
  1808. package/dist/src/utils/sdkEventQueue.js +0 -49
  1809. package/dist/src/utils/sdkHeapDumpMonitor.js +0 -16
  1810. package/dist/src/utils/secureStorage/fallbackStorage.js +0 -59
  1811. package/dist/src/utils/secureStorage/index.js +0 -14
  1812. package/dist/src/utils/secureStorage/keychainPrefetch.js +0 -91
  1813. package/dist/src/utils/secureStorage/macOsKeychainHelpers.js +0 -91
  1814. package/dist/src/utils/secureStorage/macOsKeychainStorage.js +0 -192
  1815. package/dist/src/utils/secureStorage/plainTextStorage.js +0 -81
  1816. package/dist/src/utils/secureStorage/secureStoreDefs.js +0 -1
  1817. package/dist/src/utils/secureStorage/sqliteStorage.js +0 -217
  1818. package/dist/src/utils/secureStorage/types.js +0 -1
  1819. package/dist/src/utils/semanticBoolean.js +0 -23
  1820. package/dist/src/utils/semanticNumber.js +0 -34
  1821. package/dist/src/utils/semver.js +0 -53
  1822. package/dist/src/utils/sequential.js +0 -43
  1823. package/dist/src/utils/sessionActivity.js +0 -120
  1824. package/dist/src/utils/sessionDataUploader.js +0 -16
  1825. package/dist/src/utils/sessionEnvVars.js +0 -18
  1826. package/dist/src/utils/sessionEnvironment.js +0 -131
  1827. package/dist/src/utils/sessionFileAccessHooks.js +0 -207
  1828. package/dist/src/utils/sessionIngressAuth.js +0 -113
  1829. package/dist/src/utils/sessionRestore.js +0 -359
  1830. package/dist/src/utils/sessionStart.js +0 -165
  1831. package/dist/src/utils/sessionState.js +0 -76
  1832. package/dist/src/utils/sessionStorage.js +0 -4162
  1833. package/dist/src/utils/sessionStoragePortable.js +0 -665
  1834. package/dist/src/utils/sessionTitle.js +0 -120
  1835. package/dist/src/utils/sessionUrl.js +0 -50
  1836. package/dist/src/utils/set.js +0 -50
  1837. package/dist/src/utils/settings/allErrors.js +0 -29
  1838. package/dist/src/utils/settings/applySettingsChange.js +0 -65
  1839. package/dist/src/utils/settings/changeDetector.js +0 -409
  1840. package/dist/src/utils/settings/constants.js +0 -166
  1841. package/dist/src/utils/settings/internalWrites.js +0 -33
  1842. package/dist/src/utils/settings/managedPath.js +0 -29
  1843. package/dist/src/utils/settings/mdm/constants.js +0 -62
  1844. package/dist/src/utils/settings/mdm/rawRead.js +0 -97
  1845. package/dist/src/utils/settings/mdm/settings.js +0 -254
  1846. package/dist/src/utils/settings/permissionValidation.js +0 -224
  1847. package/dist/src/utils/settings/pluginOnlyPolicy.js +0 -53
  1848. package/dist/src/utils/settings/schemaOutput.js +0 -7
  1849. package/dist/src/utils/settings/settings.js +0 -791
  1850. package/dist/src/utils/settings/settingsCache.js +0 -47
  1851. package/dist/src/utils/settings/toolValidationConfig.js +0 -76
  1852. package/dist/src/utils/settings/types.js +0 -846
  1853. package/dist/src/utils/settings/validateEditTool.js +0 -34
  1854. package/dist/src/utils/settings/validation.js +0 -192
  1855. package/dist/src/utils/settings/validationTips.js +0 -111
  1856. package/dist/src/utils/shell/bashProvider.js +0 -202
  1857. package/dist/src/utils/shell/outputLimits.js +0 -7
  1858. package/dist/src/utils/shell/powershellDetection.js +0 -96
  1859. package/dist/src/utils/shell/powershellProvider.js +0 -104
  1860. package/dist/src/utils/shell/prefix.js +0 -246
  1861. package/dist/src/utils/shell/readOnlyCommandValidation.js +0 -1776
  1862. package/dist/src/utils/shell/resolveDefaultShell.js +0 -13
  1863. package/dist/src/utils/shell/shellProvider.js +0 -2
  1864. package/dist/src/utils/shell/shellToolUtils.js +0 -21
  1865. package/dist/src/utils/shell/specPrefix.js +0 -198
  1866. package/dist/src/utils/shellConfig.js +0 -136
  1867. package/dist/src/utils/sideQuery.js +0 -195
  1868. package/dist/src/utils/sideQuestion.js +0 -121
  1869. package/dist/src/utils/signal.js +0 -34
  1870. package/dist/src/utils/sinks.js +0 -15
  1871. package/dist/src/utils/skills/skillChangeDetector.js +0 -264
  1872. package/dist/src/utils/slashCommandParsing.js +0 -46
  1873. package/dist/src/utils/sleep.js +0 -72
  1874. package/dist/src/utils/sliceAnsi.js +0 -74
  1875. package/dist/src/utils/slowOperations.js +0 -323
  1876. package/dist/src/utils/standaloneAgent.js +0 -20
  1877. package/dist/src/utils/startupProfiler.js +0 -158
  1878. package/dist/src/utils/staticRender.js +0 -103
  1879. package/dist/src/utils/stats.js +0 -802
  1880. package/dist/src/utils/statsCache.js +0 -330
  1881. package/dist/src/utils/status.js +0 -544
  1882. package/dist/src/utils/statusNoticeDefinitions.js +0 -112
  1883. package/dist/src/utils/statusNoticeHelpers.js +0 -15
  1884. package/dist/src/utils/stream.js +0 -73
  1885. package/dist/src/utils/streamJsonStdoutGuard.js +0 -107
  1886. package/dist/src/utils/streamlinedTransform.js +0 -162
  1887. package/dist/src/utils/stringUtils.js +0 -202
  1888. package/dist/src/utils/subprocessEnv.js +0 -87
  1889. package/dist/src/utils/suggestions/commandSuggestions.js +0 -458
  1890. package/dist/src/utils/suggestions/directoryCompletion.js +0 -191
  1891. package/dist/src/utils/suggestions/shellHistoryCompletion.js +0 -95
  1892. package/dist/src/utils/suggestions/skillUsageTracking.js +0 -50
  1893. package/dist/src/utils/suggestions/slackChannelSuggestions.js +0 -169
  1894. package/dist/src/utils/swarm/It2SetupPrompt.js +0 -386
  1895. package/dist/src/utils/swarm/backends/ITermBackend.js +0 -276
  1896. package/dist/src/utils/swarm/backends/InProcessBackend.js +0 -237
  1897. package/dist/src/utils/swarm/backends/PaneBackendExecutor.js +0 -250
  1898. package/dist/src/utils/swarm/backends/TmuxBackend.js +0 -574
  1899. package/dist/src/utils/swarm/backends/detection.js +0 -112
  1900. package/dist/src/utils/swarm/backends/it2Setup.js +0 -185
  1901. package/dist/src/utils/swarm/backends/registry.js +0 -369
  1902. package/dist/src/utils/swarm/backends/teammateModeSnapshot.js +0 -68
  1903. package/dist/src/utils/swarm/backends/types.js +0 -9
  1904. package/dist/src/utils/swarm/constants.js +0 -29
  1905. package/dist/src/utils/swarm/inProcessRunner.js +0 -1021
  1906. package/dist/src/utils/swarm/leaderPermissionBridge.js +0 -31
  1907. package/dist/src/utils/swarm/permissionSync.js +0 -667
  1908. package/dist/src/utils/swarm/reconnection.js +0 -82
  1909. package/dist/src/utils/swarm/spawnInProcess.js +0 -218
  1910. package/dist/src/utils/swarm/spawnUtils.js +0 -123
  1911. package/dist/src/utils/swarm/teamHelpers.js +0 -484
  1912. package/dist/src/utils/swarm/teammateInit.js +0 -87
  1913. package/dist/src/utils/swarm/teammateLayoutManager.js +0 -82
  1914. package/dist/src/utils/swarm/teammateModel.js +0 -9
  1915. package/dist/src/utils/swarm/teammatePromptAddendum.js +0 -17
  1916. package/dist/src/utils/systemDirectories.js +0 -51
  1917. package/dist/src/utils/systemPrompt.js +0 -90
  1918. package/dist/src/utils/systemPromptType.js +0 -9
  1919. package/dist/src/utils/systemTheme.js +0 -108
  1920. package/dist/src/utils/systemThemeWatcher.js +0 -16
  1921. package/dist/src/utils/taggedId.js +0 -49
  1922. package/dist/src/utils/task/TaskOutput.js +0 -320
  1923. package/dist/src/utils/task/diskOutput.js +0 -387
  1924. package/dist/src/utils/task/framework.js +0 -236
  1925. package/dist/src/utils/task/outputFormatting.js +0 -24
  1926. package/dist/src/utils/task/sdkProgress.js +0 -24
  1927. package/dist/src/utils/tasks.js +0 -672
  1928. package/dist/src/utils/teamDiscovery.js +0 -48
  1929. package/dist/src/utils/teamMemoryOps.js +0 -67
  1930. package/dist/src/utils/teammate.js +0 -237
  1931. package/dist/src/utils/teammateContext.js +0 -56
  1932. package/dist/src/utils/teammateMailbox.js +0 -793
  1933. package/dist/src/utils/telemetry/betaSessionTracing.js +0 -371
  1934. package/dist/src/utils/telemetry/bigqueryExporter.js +0 -178
  1935. package/dist/src/utils/telemetry/events.js +0 -57
  1936. package/dist/src/utils/telemetry/instrumentation.js +0 -617
  1937. package/dist/src/utils/telemetry/logger.js +0 -25
  1938. package/dist/src/utils/telemetry/perfettoTracing.js +0 -882
  1939. package/dist/src/utils/telemetry/pluginTelemetry.js +0 -157
  1940. package/dist/src/utils/telemetry/sessionTracing.js +0 -693
  1941. package/dist/src/utils/telemetry/skillLoadedEvent.js +0 -26
  1942. package/dist/src/utils/telemetryAttributes.js +0 -57
  1943. package/dist/src/utils/teleport/api.js +0 -299
  1944. package/dist/src/utils/teleport/environmentSelection.js +0 -55
  1945. package/dist/src/utils/teleport/environments.js +0 -84
  1946. package/dist/src/utils/teleport/gitBundle.js +0 -192
  1947. package/dist/src/utils/teleport.js +0 -1041
  1948. package/dist/src/utils/tempfile.js +0 -26
  1949. package/dist/src/utils/terminal.js +0 -105
  1950. package/dist/src/utils/terminalPanel.js +0 -155
  1951. package/dist/src/utils/textHighlighting.js +0 -113
  1952. package/dist/src/utils/theme.js +0 -525
  1953. package/dist/src/utils/thinking.js +0 -130
  1954. package/dist/src/utils/timeouts.js +0 -35
  1955. package/dist/src/utils/tmuxSocket.js +0 -373
  1956. package/dist/src/utils/todo/types.js +0 -9
  1957. package/dist/src/utils/tokenBudget.js +0 -62
  1958. package/dist/src/utils/tokens.js +0 -223
  1959. package/dist/src/utils/toolErrors.js +0 -101
  1960. package/dist/src/utils/toolPool.js +0 -63
  1961. package/dist/src/utils/toolResultStorage.js +0 -769
  1962. package/dist/src/utils/toolSchemaCache.js +0 -7
  1963. package/dist/src/utils/toolSearch.js +0 -551
  1964. package/dist/src/utils/transcriptSearch.js +0 -200
  1965. package/dist/src/utils/treeify.js +0 -111
  1966. package/dist/src/utils/truncate.js +0 -164
  1967. package/dist/src/utils/udsClient.js +0 -16
  1968. package/dist/src/utils/udsMessaging.js +0 -16
  1969. package/dist/src/utils/ultraplan/ccrSession.js +0 -264
  1970. package/dist/src/utils/ultraplan/keyword.js +0 -122
  1971. package/dist/src/utils/ultraplan/prompt.txt +0 -1
  1972. package/dist/src/utils/unaryLogging.js +0 -16
  1973. package/dist/src/utils/undercover.js +0 -89
  1974. package/dist/src/utils/user.js +0 -138
  1975. package/dist/src/utils/userAgent.js +0 -13
  1976. package/dist/src/utils/userPromptKeywords.js +0 -21
  1977. package/dist/src/utils/uuid.js +0 -22
  1978. package/dist/src/utils/warningHandler.js +0 -97
  1979. package/dist/src/utils/which.js +0 -75
  1980. package/dist/src/utils/windowsPaths.js +0 -146
  1981. package/dist/src/utils/withResolvers.js +0 -13
  1982. package/dist/src/utils/words.js +0 -793
  1983. package/dist/src/utils/workloadContext.js +0 -42
  1984. package/dist/src/utils/worktree.js +0 -1142
  1985. package/dist/src/utils/worktreeModeEnabled.js +0 -11
  1986. package/dist/src/utils/xdg.js +0 -52
  1987. package/dist/src/utils/xml.js +0 -15
  1988. package/dist/src/utils/yaml.js +0 -16
  1989. package/dist/src/utils/zodToJsonSchema.js +0 -19
  1990. package/dist/src/vim/motions.js +0 -73
  1991. package/dist/src/vim/operators.js +0 -401
  1992. package/dist/src/vim/textObjects.js +0 -153
  1993. package/dist/src/vim/transitions.js +0 -340
  1994. package/dist/src/vim/types.js +0 -93
  1995. package/dist/src/voice/voiceModeEnabled.js +0 -48
  1996. package/dist/src/whatsapp/bridge.js +0 -267
  1997. package/dist/src/whatsapp/config.js +0 -128
  1998. package/dist/src/whatsapp/markdown.js +0 -37
  1999. package/dist/src/whatsapp/mirror.js +0 -74
  2000. package/dist/src/whatsapp/session.js +0 -142
@@ -1,1998 +0,0 @@
1
- import { feature } from '../../recovery/bunBundleShim.js';
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import chalk from 'chalk';
4
- import * as path from 'path';
5
- import * as React from 'react';
6
- import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from 'react';
7
- import { useNotifications } from '../../context/notifications.js';
8
- import { useCommandQueue } from '../../hooks/useCommandQueue.js';
9
- import { useIdeAtMentioned } from '../../hooks/useIdeAtMentioned.js';
10
- import { logEvent } from '../../services/analytics/index.js';
11
- import { useAppState, useAppStateStore, useSetAppState } from '../../state/AppState.js';
12
- import { getCwd } from '../../utils/cwd.js';
13
- import { isQueuedCommandEditable, popAllEditable } from '../../utils/messageQueueManager.js';
14
- import stripAnsi from 'strip-ansi';
15
- import { companionReservedColumns } from '../../buddy/CompanionSprite.js';
16
- import { findBuddyTriggerPositions, useBuddyNotification } from '../../buddy/useBuddyNotification.js';
17
- import { FastModePicker } from '../../commands/fast/fast.js';
18
- import { isUltrareviewEnabled } from '../../commands/review/ultrareviewEnabled.js';
19
- import { getNativeCSIuTerminalDisplayName } from '../../commands/terminalSetup/terminalSetup.js';
20
- import { hasCommand } from '../../commands.js';
21
- import { useIsModalOverlayActive } from '../../context/overlayContext.js';
22
- import { useSetPromptOverlayDialog } from '../../context/promptOverlayContext.js';
23
- import { formatImageRef, formatPastedTextRef, getPastedTextRefNumLines, parseReferences } from '../../history.js';
24
- import { useArrowKeyHistory } from '../../hooks/useArrowKeyHistory.js';
25
- import { useDoublePress } from '../../hooks/useDoublePress.js';
26
- import { useHistorySearch } from '../../hooks/useHistorySearch.js';
27
- import { useInputBuffer } from '../../hooks/useInputBuffer.js';
28
- import { useMainLoopModel } from '../../hooks/useMainLoopModel.js';
29
- import { usePromptSuggestion } from '../../hooks/usePromptSuggestion.js';
30
- import { useTerminalSize } from '../../hooks/useTerminalSize.js';
31
- import { useTypeahead } from '../../hooks/useTypeahead.js';
32
- import { stringWidth } from '../../ink/stringWidth.js';
33
- import { Box, Text, useInput } from '../../ink.js';
34
- import { useOptionalKeybindingContext } from '../../keybindings/KeybindingContext.js';
35
- import { getShortcutDisplay } from '../../keybindings/shortcutFormat.js';
36
- import { useKeybinding, useKeybindings } from '../../keybindings/useKeybinding.js';
37
- import { abortPromptSuggestion, logSuggestionSuppressed } from '../../services/PromptSuggestion/promptSuggestion.js';
38
- import { abortSpeculation } from '../../services/PromptSuggestion/speculation.js';
39
- import { getActiveAgentForInput, getViewedTeammateTask } from '../../state/selectors.js';
40
- import { enterTeammateView, exitTeammateView, stopOrDismissAgent } from '../../state/teammateViewHelpers.js';
41
- import { getRunningTeammatesSorted } from '../../tasks/InProcessTeammateTask/InProcessTeammateTask.js';
42
- import { isPanelAgentTask } from '../../tasks/LocalAgentTask/LocalAgentTask.js';
43
- import { isBackgroundTask } from '../../tasks/types.js';
44
- import { AGENT_COLOR_TO_THEME_COLOR, AGENT_COLORS } from '../../tools/AgentTool/agentColorManager.js';
45
- import { isAgentSwarmsEnabled } from '../../utils/agentSwarmsEnabled.js';
46
- import { count } from '../../utils/array.js';
47
- import { Cursor } from '../../utils/Cursor.js';
48
- import { getGlobalConfig, saveGlobalConfig } from '../../utils/config.js';
49
- import { logForDebugging } from '../../utils/debug.js';
50
- import { parseDirectMemberMessage, sendDirectMemberMessage } from '../../utils/directMemberMessage.js';
51
- import { env } from '../../utils/env.js';
52
- import { errorMessage } from '../../utils/errors.js';
53
- import { isBilledAsExtraUsage } from '../../utils/extraUsage.js';
54
- import { getFastModeUnavailableReason, isFastModeAvailable, isFastModeCooldown, isFastModeEnabled, isFastModeSupportedByModel } from '../../utils/fastMode.js';
55
- import { isFullscreenEnvEnabled } from '../../utils/fullscreen.js';
56
- import { getImageFromClipboard, PASTE_THRESHOLD } from '../../utils/imagePaste.js';
57
- import { cacheImagePath, storeImage } from '../../utils/imageStore.js';
58
- import { isMacosOptionChar, MACOS_OPTION_SPECIAL_CHARS } from '../../utils/keyboardShortcuts.js';
59
- import { logError } from '../../utils/log.js';
60
- import { isOpus1mMergeEnabled, modelDisplayString } from '../../utils/model/model.js';
61
- import { setAutoModeActive } from '../../utils/permissions/autoModeState.js';
62
- import { cyclePermissionMode, getNextPermissionMode } from '../../utils/permissions/getNextPermissionMode.js';
63
- import { transitionPermissionMode } from '../../utils/permissions/permissionSetup.js';
64
- import { getPlatform } from '../../utils/platform.js';
65
- import { editPromptInEditor } from '../../utils/promptEditor.js';
66
- import { hasAutoModeOptIn } from '../../utils/settings/settings.js';
67
- import { findBtwTriggerPositions } from '../../utils/sideQuestion.js';
68
- import { findSlashCommandPositions } from '../../utils/suggestions/commandSuggestions.js';
69
- import { findSlackChannelPositions, getKnownChannelsVersion, hasSlackMcpServer, subscribeKnownChannels } from '../../utils/suggestions/slackChannelSuggestions.js';
70
- import { isInProcessEnabled } from '../../utils/swarm/backends/registry.js';
71
- import { syncTeammateMode } from '../../utils/swarm/teamHelpers.js';
72
- import { getTeammateColor } from '../../utils/teammate.js';
73
- import { isInProcessTeammate } from '../../utils/teammateContext.js';
74
- import { writeToMailbox } from '../../utils/teammateMailbox.js';
75
- import { findThinkingTriggerPositions, getRainbowColor, isUltrathinkEnabled } from '../../utils/thinking.js';
76
- import { findTokenBudgetPositions } from '../../utils/tokenBudget.js';
77
- import { findUltraplanTriggerPositions, findUltrareviewTriggerPositions } from '../../utils/ultraplan/keyword.js';
78
- import { AutoModeOptInDialog } from '../AutoModeOptInDialog.js';
79
- import { BridgeDialog } from '../BridgeDialog.js';
80
- import { ConfigurableShortcutHint } from '../ConfigurableShortcutHint.js';
81
- import { getVisibleAgentTasks, useCoordinatorTaskCount } from '../CoordinatorAgentStatus.js';
82
- import { getEffortNotificationText } from '../EffortIndicator.js';
83
- import { getFastIconString } from '../FastIcon.js';
84
- import { GlobalSearchDialog } from '../GlobalSearchDialog.js';
85
- import { HistorySearchDialog } from '../HistorySearchDialog.js';
86
- import { ModelPicker } from '../ModelPicker.js';
87
- import { QuickOpenDialog } from '../QuickOpenDialog.js';
88
- import TextInput from '../TextInput.js';
89
- import { ThinkingToggle } from '../ThinkingToggle.js';
90
- import { BackgroundTasksDialog } from '../tasks/BackgroundTasksDialog.js';
91
- import { shouldHideTasksFooter } from '../tasks/taskStatusUtils.js';
92
- import { TeamsDialog } from '../teams/TeamsDialog.js';
93
- import VimTextInput from '../VimTextInput.js';
94
- import { getModeFromInput, getValueFromInput } from './inputModes.js';
95
- import { FOOTER_TEMPORARY_STATUS_TIMEOUT, Notifications } from './Notifications.js';
96
- import PromptInputFooter from './PromptInputFooter.js';
97
- import { PromptInputModeIndicator } from './PromptInputModeIndicator.js';
98
- import { PromptInputQueuedCommands } from './PromptInputQueuedCommands.js';
99
- import { PromptInputStashNotice } from './PromptInputStashNotice.js';
100
- import { useMaybeTruncateInput } from './useMaybeTruncateInput.js';
101
- import { usePromptInputPlaceholder } from './usePromptInputPlaceholder.js';
102
- import { useShowFastIconHint } from './useShowFastIconHint.js';
103
- import { useSwarmBanner } from './useSwarmBanner.js';
104
- import { isNonSpacePrintable, isVimModeEnabled } from './utils.js';
105
- // Bottom slot has maxHeight="50%"; reserve lines for footer, border, status.
106
- const PROMPT_FOOTER_LINES = 5;
107
- const MIN_INPUT_VIEWPORT_LINES = 3;
108
- function PromptInput({ debug, ideSelection, toolPermissionContext, setToolPermissionContext, apiKeyStatus, commands, agents, isLoading, verbose, messages, onAutoUpdaterResult, autoUpdaterResult, input, onInputChange, mode, onModeChange, stashedPrompt, setStashedPrompt, submitCount, onShowMessageSelector, onMessageActionsEnter, mcpClients, pastedContents, setPastedContents, vimMode, setVimMode, showBashesDialog, setShowBashesDialog, onExit, getToolUseContext, onSubmit: onSubmitProp, onAgentSubmit, isSearchingHistory, setIsSearchingHistory, onDismissSideQuestion, isSideQuestionVisible, helpOpen, setHelpOpen, hasSuppressedDialogs, isLocalJSXCommandActive = false, insertTextRef, voiceInterimRange }) {
109
- const mainLoopModel = useMainLoopModel();
110
- // A local-jsx command (e.g., /mcp while agent is running) renders a full-
111
- // screen dialog on top of PromptInput via the immediate-command path with
112
- // shouldHidePromptInput: false. Those dialogs don't register in the overlay
113
- // system, so treat them as a modal overlay here to stop navigation keys from
114
- // leaking into TextInput/footer handlers and stacking a second dialog.
115
- const isModalOverlayActive = useIsModalOverlayActive() || isLocalJSXCommandActive;
116
- const [isAutoUpdating, setIsAutoUpdating] = useState(false);
117
- const [exitMessage, setExitMessage] = useState({
118
- show: false
119
- });
120
- const [cursorOffset, setCursorOffset] = useState(input.length);
121
- // Track the last input value set via internal handlers so we can detect
122
- // external input changes (e.g. speech-to-text injection) and move cursor to end.
123
- const lastInternalInputRef = React.useRef(input);
124
- if (input !== lastInternalInputRef.current) {
125
- // Input changed externally (not through any internal handler) — move cursor to end
126
- setCursorOffset(input.length);
127
- lastInternalInputRef.current = input;
128
- }
129
- // Wrap onInputChange to track internal changes before they trigger re-render
130
- const trackAndSetInput = React.useCallback((value) => {
131
- lastInternalInputRef.current = value;
132
- onInputChange(value);
133
- }, [onInputChange]);
134
- // Expose an insertText function so callers (e.g. STT) can splice text at the
135
- // current cursor position instead of replacing the entire input.
136
- if (insertTextRef) {
137
- insertTextRef.current = {
138
- cursorOffset,
139
- insert: (text) => {
140
- const needsSpace = cursorOffset === input.length && input.length > 0 && !/\s$/.test(input);
141
- const insertText = needsSpace ? ' ' + text : text;
142
- const newValue = input.slice(0, cursorOffset) + insertText + input.slice(cursorOffset);
143
- lastInternalInputRef.current = newValue;
144
- onInputChange(newValue);
145
- setCursorOffset(cursorOffset + insertText.length);
146
- },
147
- setInputWithCursor: (value, cursor) => {
148
- lastInternalInputRef.current = value;
149
- onInputChange(value);
150
- setCursorOffset(cursor);
151
- }
152
- };
153
- }
154
- const store = useAppStateStore();
155
- const setAppState = useSetAppState();
156
- const tasks = useAppState(s => s.tasks);
157
- const replBridgeConnected = useAppState(s => s.replBridgeConnected);
158
- const replBridgeExplicit = useAppState(s => s.replBridgeExplicit);
159
- const replBridgeReconnecting = useAppState(s => s.replBridgeReconnecting);
160
- // Must match BridgeStatusIndicator's render condition (PromptInputFooter.tsx) —
161
- // the pill returns null for implicit-and-not-reconnecting, so nav must too,
162
- // otherwise bridge becomes an invisible selection stop.
163
- const bridgeFooterVisible = replBridgeConnected && (replBridgeExplicit || replBridgeReconnecting);
164
- // Tmux pill (ant-only) — visible when there's an active tungsten session
165
- const hasTungstenSession = useAppState(s => "external" === 'ant' && s.tungstenActiveSession !== undefined);
166
- const tmuxFooterVisible = "external" === 'ant' && hasTungstenSession;
167
- // WebBrowser pill — visible when a browser is open
168
- const bagelFooterVisible = useAppState(s => false);
169
- const teamContext = useAppState(s => s.teamContext);
170
- const queuedCommands = useCommandQueue();
171
- const promptSuggestionState = useAppState(s => s.promptSuggestion);
172
- const speculation = useAppState(s => s.speculation);
173
- const speculationSessionTimeSavedMs = useAppState(s => s.speculationSessionTimeSavedMs);
174
- const viewingAgentTaskId = useAppState(s => s.viewingAgentTaskId);
175
- const viewSelectionMode = useAppState(s => s.viewSelectionMode);
176
- const showSpinnerTree = useAppState(s => s.expandedView) === 'teammates';
177
- const { companion: _companion, companionMuted } = feature('BUDDY') ? getGlobalConfig() : {
178
- companion: undefined,
179
- companionMuted: undefined
180
- };
181
- const companionFooterVisible = !!_companion && !companionMuted;
182
- // Brief mode: BriefSpinner/BriefIdleStatus own the 2-row footprint above
183
- // the input. Dropping marginTop here lets the spinner sit flush against
184
- // the input bar. viewingAgentTaskId mirrors the gate on both (Spinner.tsx,
185
- // REPL.tsx) — teammate view falls back to SpinnerWithVerbInner which has
186
- // its own marginTop, so the gap stays even without ours.
187
- const briefOwnsGap = feature('KAIROS') || feature('KAIROS_BRIEF') ?
188
- // biome-ignore lint/correctness/useHookAtTopLevel: feature() is a compile-time constant
189
- useAppState(s => s.isBriefOnly) && !viewingAgentTaskId : false;
190
- const mainLoopModel_ = useAppState(s => s.mainLoopModel);
191
- const mainLoopModelForSession = useAppState(s => s.mainLoopModelForSession);
192
- const thinkingEnabled = useAppState(s => s.thinkingEnabled);
193
- const isFastMode = useAppState(s => isFastModeEnabled() ? s.fastMode : false);
194
- const effortValue = useAppState(s => s.effortValue);
195
- const viewedTeammate = getViewedTeammateTask(store.getState());
196
- const viewingAgentName = viewedTeammate?.identity.agentName;
197
- // identity.color is typed as `string | undefined` (not AgentColorName) because
198
- // teammate identity comes from file-based config. Validate before casting to
199
- // ensure we only use valid color names (falls back to cyan if invalid).
200
- const viewingAgentColor = viewedTeammate?.identity.color && AGENT_COLORS.includes(viewedTeammate.identity.color) ? viewedTeammate.identity.color : undefined;
201
- // In-process teammates sorted alphabetically for footer team selector
202
- const inProcessTeammates = useMemo(() => getRunningTeammatesSorted(tasks), [tasks]);
203
- // Team mode: all background tasks are in-process teammates
204
- const isTeammateMode = inProcessTeammates.length > 0 || viewedTeammate !== undefined;
205
- // When viewing a teammate, show their permission mode in the footer instead of the leader's
206
- const effectiveToolPermissionContext = useMemo(() => {
207
- if (viewedTeammate) {
208
- return {
209
- ...toolPermissionContext,
210
- mode: viewedTeammate.permissionMode
211
- };
212
- }
213
- return toolPermissionContext;
214
- }, [viewedTeammate, toolPermissionContext]);
215
- const { historyQuery, setHistoryQuery, historyMatch, historyFailedMatch } = useHistorySearch(entry => {
216
- setPastedContents(entry.pastedContents);
217
- void onSubmit(entry.display);
218
- }, input, trackAndSetInput, setCursorOffset, cursorOffset, onModeChange, mode, isSearchingHistory, setIsSearchingHistory, setPastedContents, pastedContents);
219
- // Counter for paste IDs (shared between images and text).
220
- // Compute initial value once from existing messages (for --continue/--resume).
221
- // useRef(fn()) evaluates fn() on every render and discards the result after
222
- // mount — getInitialPasteId walks all messages + regex-scans text blocks,
223
- // so guard with a lazy-init pattern to run it exactly once.
224
- const nextPasteIdRef = useRef(-1);
225
- if (nextPasteIdRef.current === -1) {
226
- nextPasteIdRef.current = getInitialPasteId(messages);
227
- }
228
- // Armed by onImagePaste; if the very next keystroke is a non-space
229
- // printable, inputFilter prepends a space before it. Any other input
230
- // (arrow, escape, backspace, paste, space) disarms without inserting.
231
- const pendingSpaceAfterPillRef = useRef(false);
232
- const [showTeamsDialog, setShowTeamsDialog] = useState(false);
233
- const [showBridgeDialog, setShowBridgeDialog] = useState(false);
234
- const [teammateFooterIndex, setTeammateFooterIndex] = useState(0);
235
- // -1 sentinel: tasks pill is selected but no specific agent row is selected yet.
236
- // First ↓ selects the pill, second ↓ moves to row 0. Prevents double-select
237
- // of pill + row when both bg tasks (pill) and forked agents (rows) are visible.
238
- const coordinatorTaskIndex = useAppState(s => s.coordinatorTaskIndex);
239
- const setCoordinatorTaskIndex = useCallback((v) => setAppState(prev => {
240
- const next = typeof v === 'function' ? v(prev.coordinatorTaskIndex) : v;
241
- if (next === prev.coordinatorTaskIndex)
242
- return prev;
243
- return {
244
- ...prev,
245
- coordinatorTaskIndex: next
246
- };
247
- }), [setAppState]);
248
- const coordinatorTaskCount = useCoordinatorTaskCount();
249
- // The pill (BackgroundTaskStatus) only renders when non-local_agent bg tasks
250
- // exist. When only local_agent tasks are running (coordinator/fork mode), the
251
- // pill is absent, so the -1 sentinel would leave nothing visually selected.
252
- // In that case, skip -1 and treat 0 as the minimum selectable index.
253
- const hasBgTaskPill = useMemo(() => Object.values(tasks).some(t => isBackgroundTask(t) && !("external" === 'ant' && isPanelAgentTask(t))), [tasks]);
254
- const minCoordinatorIndex = hasBgTaskPill ? -1 : 0;
255
- // Clamp index when tasks complete and the list shrinks beneath the cursor
256
- useEffect(() => {
257
- if (coordinatorTaskIndex >= coordinatorTaskCount) {
258
- setCoordinatorTaskIndex(Math.max(minCoordinatorIndex, coordinatorTaskCount - 1));
259
- }
260
- else if (coordinatorTaskIndex < minCoordinatorIndex) {
261
- setCoordinatorTaskIndex(minCoordinatorIndex);
262
- }
263
- }, [coordinatorTaskCount, coordinatorTaskIndex, minCoordinatorIndex]);
264
- const [isPasting, setIsPasting] = useState(false);
265
- const [isExternalEditorActive, setIsExternalEditorActive] = useState(false);
266
- const [showModelPicker, setShowModelPicker] = useState(false);
267
- const [showQuickOpen, setShowQuickOpen] = useState(false);
268
- const [showGlobalSearch, setShowGlobalSearch] = useState(false);
269
- const [showHistoryPicker, setShowHistoryPicker] = useState(false);
270
- const [showFastModePicker, setShowFastModePicker] = useState(false);
271
- const [showThinkingToggle, setShowThinkingToggle] = useState(false);
272
- const [showAutoModeOptIn, setShowAutoModeOptIn] = useState(false);
273
- const [previousModeBeforeAuto, setPreviousModeBeforeAuto] = useState(null);
274
- const autoModeOptInTimeoutRef = useRef(null);
275
- // Check if cursor is on the first line of input
276
- const isCursorOnFirstLine = useMemo(() => {
277
- const firstNewlineIndex = input.indexOf('\n');
278
- if (firstNewlineIndex === -1) {
279
- return true; // No newlines, cursor is always on first line
280
- }
281
- return cursorOffset <= firstNewlineIndex;
282
- }, [input, cursorOffset]);
283
- const isCursorOnLastLine = useMemo(() => {
284
- const lastNewlineIndex = input.lastIndexOf('\n');
285
- if (lastNewlineIndex === -1) {
286
- return true; // No newlines, cursor is always on last line
287
- }
288
- return cursorOffset > lastNewlineIndex;
289
- }, [input, cursorOffset]);
290
- // Derive team info from teamContext (no filesystem I/O needed)
291
- // A session can only lead one team at a time
292
- const cachedTeams = useMemo(() => {
293
- if (!isAgentSwarmsEnabled())
294
- return [];
295
- // In-process mode uses Shift+Down/Up navigation instead of footer menu
296
- if (isInProcessEnabled())
297
- return [];
298
- if (!teamContext) {
299
- return [];
300
- }
301
- const teammateCount = count(Object.values(teamContext.teammates), t => t.name !== 'team-lead');
302
- return [{
303
- name: teamContext.teamName,
304
- memberCount: teammateCount,
305
- runningCount: 0,
306
- idleCount: 0
307
- }];
308
- }, [teamContext]);
309
- // ─── Footer pill navigation ─────────────────────────────────────────────
310
- // Which pills render below the input box. Order here IS the nav order
311
- // (down/right = forward, up/left = back). Selection lives in AppState so
312
- // pills rendered outside PromptInput (CompanionSprite) can read focus.
313
- const runningTaskCount = useMemo(() => count(Object.values(tasks), t => t.status === 'running'), [tasks]);
314
- // Panel shows retained-completed agents too (getVisibleAgentTasks), so the
315
- // pill must stay navigable whenever the panel has rows — not just when
316
- // something is running.
317
- const tasksFooterVisible = (runningTaskCount > 0 || "external" === 'ant' && coordinatorTaskCount > 0) && !shouldHideTasksFooter(tasks, showSpinnerTree);
318
- const teamsFooterVisible = cachedTeams.length > 0;
319
- const footerItems = useMemo(() => [tasksFooterVisible && 'tasks', tmuxFooterVisible && 'tmux', bagelFooterVisible && 'bagel', teamsFooterVisible && 'teams', bridgeFooterVisible && 'bridge', companionFooterVisible && 'companion'].filter(Boolean), [tasksFooterVisible, tmuxFooterVisible, bagelFooterVisible, teamsFooterVisible, bridgeFooterVisible, companionFooterVisible]);
320
- // Effective selection: null if the selected pill stopped rendering (bridge
321
- // disconnected, task finished). The derivation makes the UI correct
322
- // immediately; the useEffect below clears the raw state so it doesn't
323
- // resurrect when the same pill reappears (new task starts → focus stolen).
324
- const rawFooterSelection = useAppState(s => s.footerSelection);
325
- const footerItemSelected = rawFooterSelection && footerItems.includes(rawFooterSelection) ? rawFooterSelection : null;
326
- useEffect(() => {
327
- if (rawFooterSelection && !footerItemSelected) {
328
- setAppState(prev => prev.footerSelection === null ? prev : {
329
- ...prev,
330
- footerSelection: null
331
- });
332
- }
333
- }, [rawFooterSelection, footerItemSelected, setAppState]);
334
- const tasksSelected = footerItemSelected === 'tasks';
335
- const tmuxSelected = footerItemSelected === 'tmux';
336
- const bagelSelected = footerItemSelected === 'bagel';
337
- const teamsSelected = footerItemSelected === 'teams';
338
- const bridgeSelected = footerItemSelected === 'bridge';
339
- function selectFooterItem(item) {
340
- setAppState(prev => prev.footerSelection === item ? prev : {
341
- ...prev,
342
- footerSelection: item
343
- });
344
- if (item === 'tasks') {
345
- setTeammateFooterIndex(0);
346
- setCoordinatorTaskIndex(minCoordinatorIndex);
347
- }
348
- }
349
- // delta: +1 = down/right, -1 = up/left. Returns true if nav happened
350
- // (including deselecting at the start), false if at a boundary.
351
- function navigateFooter(delta, exitAtStart = false) {
352
- const idx = footerItemSelected ? footerItems.indexOf(footerItemSelected) : -1;
353
- const next = footerItems[idx + delta];
354
- if (next) {
355
- selectFooterItem(next);
356
- return true;
357
- }
358
- if (delta < 0 && exitAtStart) {
359
- selectFooterItem(null);
360
- return true;
361
- }
362
- return false;
363
- }
364
- // Prompt suggestion hook - reads suggestions generated by forked agent in query loop
365
- const { suggestion: promptSuggestion, markAccepted, logOutcomeAtSubmission, markShown } = usePromptSuggestion({
366
- inputValue: input,
367
- isAssistantResponding: isLoading
368
- });
369
- const displayedValue = useMemo(() => isSearchingHistory && historyMatch ? getValueFromInput(typeof historyMatch === 'string' ? historyMatch : historyMatch.display) : input, [isSearchingHistory, historyMatch, input]);
370
- const thinkTriggers = useMemo(() => findThinkingTriggerPositions(displayedValue), [displayedValue]);
371
- const ultraplanSessionUrl = useAppState(s => s.ultraplanSessionUrl);
372
- const ultraplanLaunching = useAppState(s => s.ultraplanLaunching);
373
- const ultraplanTriggers = useMemo(() => feature('ULTRAPLAN') && !ultraplanSessionUrl && !ultraplanLaunching ? findUltraplanTriggerPositions(displayedValue) : [], [displayedValue, ultraplanSessionUrl, ultraplanLaunching]);
374
- const ultrareviewTriggers = useMemo(() => isUltrareviewEnabled() ? findUltrareviewTriggerPositions(displayedValue) : [], [displayedValue]);
375
- const btwTriggers = useMemo(() => findBtwTriggerPositions(displayedValue), [displayedValue]);
376
- const buddyTriggers = useMemo(() => findBuddyTriggerPositions(displayedValue), [displayedValue]);
377
- const slashCommandTriggers = useMemo(() => {
378
- const positions = findSlashCommandPositions(displayedValue);
379
- // Only highlight valid commands
380
- return positions.filter(pos => {
381
- const commandName = displayedValue.slice(pos.start + 1, pos.end); // +1 to skip "/"
382
- return hasCommand(commandName, commands);
383
- });
384
- }, [displayedValue, commands]);
385
- const tokenBudgetTriggers = useMemo(() => feature('TOKEN_BUDGET') ? findTokenBudgetPositions(displayedValue) : [], [displayedValue]);
386
- const knownChannelsVersion = useSyncExternalStore(subscribeKnownChannels, getKnownChannelsVersion);
387
- const slackChannelTriggers = useMemo(() => hasSlackMcpServer(store.getState().mcp.clients) ? findSlackChannelPositions(displayedValue) : [],
388
- // eslint-disable-next-line react-hooks/exhaustive-deps -- store is a stable ref
389
- [displayedValue, knownChannelsVersion]);
390
- // Find @name mentions and highlight with team member's color
391
- const memberMentionHighlights = useMemo(() => {
392
- if (!isAgentSwarmsEnabled())
393
- return [];
394
- if (!teamContext?.teammates)
395
- return [];
396
- const highlights = [];
397
- const members = teamContext.teammates;
398
- if (!members)
399
- return highlights;
400
- // Find all @name patterns in the input
401
- const regex = /(^|\s)@([\w-]+)/g;
402
- const memberValues = Object.values(members);
403
- let match;
404
- while ((match = regex.exec(displayedValue)) !== null) {
405
- const leadingSpace = match[1] ?? '';
406
- const nameStart = match.index + leadingSpace.length;
407
- const fullMatch = match[0].trimStart();
408
- const name = match[2];
409
- // Check if this name matches a team member
410
- const member = memberValues.find(t => t.name === name);
411
- if (member?.color) {
412
- const themeColor = AGENT_COLOR_TO_THEME_COLOR[member.color];
413
- if (themeColor) {
414
- highlights.push({
415
- start: nameStart,
416
- end: nameStart + fullMatch.length,
417
- themeColor
418
- });
419
- }
420
- }
421
- }
422
- return highlights;
423
- }, [displayedValue, teamContext]);
424
- const imageRefPositions = useMemo(() => parseReferences(displayedValue).filter(r => r.match.startsWith('[Image')).map(r => ({
425
- start: r.index,
426
- end: r.index + r.match.length
427
- })), [displayedValue]);
428
- // chip.start is the "selected" state: the inverted chip IS the cursor.
429
- // chip.end stays a normal position so you can park the cursor right after
430
- // `]` like any other character.
431
- const cursorAtImageChip = imageRefPositions.some(r => r.start === cursorOffset);
432
- // up/down movement or a fullscreen click can land the cursor strictly
433
- // inside a chip; snap to the nearer boundary so it's never editable
434
- // char-by-char.
435
- useEffect(() => {
436
- const inside = imageRefPositions.find(r => cursorOffset > r.start && cursorOffset < r.end);
437
- if (inside) {
438
- const mid = (inside.start + inside.end) / 2;
439
- setCursorOffset(cursorOffset < mid ? inside.start : inside.end);
440
- }
441
- }, [cursorOffset, imageRefPositions, setCursorOffset]);
442
- const combinedHighlights = useMemo(() => {
443
- const highlights = [];
444
- // Invert the [Image #N] chip when the cursor is at chip.start (the
445
- // "selected" state) so backspace-to-delete is visually obvious.
446
- for (const ref of imageRefPositions) {
447
- if (cursorOffset === ref.start) {
448
- highlights.push({
449
- start: ref.start,
450
- end: ref.end,
451
- color: undefined,
452
- inverse: true,
453
- priority: 8
454
- });
455
- }
456
- }
457
- if (isSearchingHistory && historyMatch && !historyFailedMatch) {
458
- highlights.push({
459
- start: cursorOffset,
460
- end: cursorOffset + historyQuery.length,
461
- color: 'warning',
462
- priority: 20
463
- });
464
- }
465
- // Add "btw" highlighting (solid yellow)
466
- for (const trigger of btwTriggers) {
467
- highlights.push({
468
- start: trigger.start,
469
- end: trigger.end,
470
- color: 'warning',
471
- priority: 15
472
- });
473
- }
474
- // Add /command highlighting (blue)
475
- for (const trigger of slashCommandTriggers) {
476
- highlights.push({
477
- start: trigger.start,
478
- end: trigger.end,
479
- color: 'suggestion',
480
- priority: 5
481
- });
482
- }
483
- // Add token budget highlighting (blue)
484
- for (const trigger of tokenBudgetTriggers) {
485
- highlights.push({
486
- start: trigger.start,
487
- end: trigger.end,
488
- color: 'suggestion',
489
- priority: 5
490
- });
491
- }
492
- for (const trigger of slackChannelTriggers) {
493
- highlights.push({
494
- start: trigger.start,
495
- end: trigger.end,
496
- color: 'suggestion',
497
- priority: 5
498
- });
499
- }
500
- // Add @name highlighting with team member's color
501
- for (const mention of memberMentionHighlights) {
502
- highlights.push({
503
- start: mention.start,
504
- end: mention.end,
505
- color: mention.themeColor,
506
- priority: 5
507
- });
508
- }
509
- // Dim interim voice dictation text
510
- if (voiceInterimRange) {
511
- highlights.push({
512
- start: voiceInterimRange.start,
513
- end: voiceInterimRange.end,
514
- color: undefined,
515
- dimColor: true,
516
- priority: 1
517
- });
518
- }
519
- // Rainbow highlighting for ultrathink keyword (per-character cycling colors)
520
- if (isUltrathinkEnabled()) {
521
- for (const trigger of thinkTriggers) {
522
- for (let i = trigger.start; i < trigger.end; i++) {
523
- highlights.push({
524
- start: i,
525
- end: i + 1,
526
- color: getRainbowColor(i - trigger.start),
527
- shimmerColor: getRainbowColor(i - trigger.start, true),
528
- priority: 10
529
- });
530
- }
531
- }
532
- }
533
- // Same rainbow treatment for the ultraplan keyword
534
- if (feature('ULTRAPLAN')) {
535
- for (const trigger of ultraplanTriggers) {
536
- for (let i = trigger.start; i < trigger.end; i++) {
537
- highlights.push({
538
- start: i,
539
- end: i + 1,
540
- color: getRainbowColor(i - trigger.start),
541
- shimmerColor: getRainbowColor(i - trigger.start, true),
542
- priority: 10
543
- });
544
- }
545
- }
546
- }
547
- // Same rainbow treatment for the ultrareview keyword
548
- for (const trigger of ultrareviewTriggers) {
549
- for (let i = trigger.start; i < trigger.end; i++) {
550
- highlights.push({
551
- start: i,
552
- end: i + 1,
553
- color: getRainbowColor(i - trigger.start),
554
- shimmerColor: getRainbowColor(i - trigger.start, true),
555
- priority: 10
556
- });
557
- }
558
- }
559
- // Rainbow for /buddy
560
- for (const trigger of buddyTriggers) {
561
- for (let i = trigger.start; i < trigger.end; i++) {
562
- highlights.push({
563
- start: i,
564
- end: i + 1,
565
- color: getRainbowColor(i - trigger.start),
566
- shimmerColor: getRainbowColor(i - trigger.start, true),
567
- priority: 10
568
- });
569
- }
570
- }
571
- return highlights;
572
- }, [isSearchingHistory, historyQuery, historyMatch, historyFailedMatch, cursorOffset, btwTriggers, imageRefPositions, memberMentionHighlights, slashCommandTriggers, tokenBudgetTriggers, slackChannelTriggers, displayedValue, voiceInterimRange, thinkTriggers, ultraplanTriggers, ultrareviewTriggers, buddyTriggers]);
573
- const { addNotification, removeNotification } = useNotifications();
574
- // Show ultrathink notification
575
- useEffect(() => {
576
- if (thinkTriggers.length && isUltrathinkEnabled()) {
577
- addNotification({
578
- key: 'ultrathink-active',
579
- text: 'Effort set to high for this turn',
580
- priority: 'immediate',
581
- timeoutMs: 5000
582
- });
583
- }
584
- else {
585
- removeNotification('ultrathink-active');
586
- }
587
- }, [addNotification, removeNotification, thinkTriggers.length]);
588
- useEffect(() => {
589
- if (feature('ULTRAPLAN') && ultraplanTriggers.length) {
590
- addNotification({
591
- key: 'ultraplan-active',
592
- text: 'This prompt will launch an ultraplan session in Context Code on the web',
593
- priority: 'immediate',
594
- timeoutMs: 5000
595
- });
596
- }
597
- else {
598
- removeNotification('ultraplan-active');
599
- }
600
- }, [addNotification, removeNotification, ultraplanTriggers.length]);
601
- useEffect(() => {
602
- if (isUltrareviewEnabled() && ultrareviewTriggers.length) {
603
- addNotification({
604
- key: 'ultrareview-active',
605
- text: 'Run /ultrareview after Claude finishes to review these changes in the cloud',
606
- priority: 'immediate',
607
- timeoutMs: 5000
608
- });
609
- }
610
- }, [addNotification, ultrareviewTriggers.length]);
611
- // Track input length for stash hint
612
- const prevInputLengthRef = useRef(input.length);
613
- const peakInputLengthRef = useRef(input.length);
614
- // Dismiss stash hint when user makes any input change
615
- const dismissStashHint = useCallback(() => {
616
- removeNotification('stash-hint');
617
- }, [removeNotification]);
618
- // Show stash hint when user gradually clears substantial input
619
- useEffect(() => {
620
- const prevLength = prevInputLengthRef.current;
621
- const peakLength = peakInputLengthRef.current;
622
- const currentLength = input.length;
623
- prevInputLengthRef.current = currentLength;
624
- // Update peak when input grows
625
- if (currentLength > peakLength) {
626
- peakInputLengthRef.current = currentLength;
627
- return;
628
- }
629
- // Reset state when input is empty
630
- if (currentLength === 0) {
631
- peakInputLengthRef.current = 0;
632
- return;
633
- }
634
- // Detect gradual clear: peak was high, current is low, but this wasn't a single big jump
635
- // (rapid clears like esc-esc go from 20+ to 0 in one step)
636
- const clearedSubstantialInput = peakLength >= 20 && currentLength <= 5;
637
- const wasRapidClear = prevLength >= 20 && currentLength <= 5;
638
- if (clearedSubstantialInput && !wasRapidClear) {
639
- const config = getGlobalConfig();
640
- if (!config.hasUsedStash) {
641
- addNotification({
642
- key: 'stash-hint',
643
- jsx: _jsxs(Text, { dimColor: true, children: ["Tip:", ' ', _jsx(ConfigurableShortcutHint, { action: "chat:stash", context: "Chat", fallback: "ctrl+s", description: "stash" })] }),
644
- priority: 'immediate',
645
- timeoutMs: FOOTER_TEMPORARY_STATUS_TIMEOUT
646
- });
647
- }
648
- peakInputLengthRef.current = currentLength;
649
- }
650
- }, [input.length, addNotification]);
651
- // Initialize input buffer for undo functionality
652
- const { pushToBuffer, undo, canUndo, clearBuffer } = useInputBuffer({
653
- maxBufferSize: 50,
654
- debounceMs: 1000
655
- });
656
- useMaybeTruncateInput({
657
- input,
658
- pastedContents,
659
- onInputChange: trackAndSetInput,
660
- setCursorOffset,
661
- setPastedContents
662
- });
663
- const defaultPlaceholder = usePromptInputPlaceholder({
664
- input,
665
- submitCount,
666
- viewingAgentName
667
- });
668
- const onChange = useCallback((value) => {
669
- if (value === '?') {
670
- logEvent('tengu_help_toggled', {});
671
- setHelpOpen(v => !v);
672
- return;
673
- }
674
- setHelpOpen(false);
675
- // Dismiss stash hint when user makes any input change
676
- dismissStashHint();
677
- // Cancel any pending prompt suggestion and speculation when user types
678
- abortPromptSuggestion();
679
- abortSpeculation(setAppState);
680
- // Check if this is a single character insertion at the start
681
- const isSingleCharInsertion = value.length === input.length + 1;
682
- const insertedAtStart = cursorOffset === 0;
683
- const mode = getModeFromInput(value);
684
- if (insertedAtStart && mode !== 'prompt') {
685
- if (isSingleCharInsertion) {
686
- onModeChange(mode);
687
- return;
688
- }
689
- // Multi-char insertion into empty input (e.g. tab-accepting "! gcloud auth login")
690
- if (input.length === 0) {
691
- onModeChange(mode);
692
- const valueWithoutMode = getValueFromInput(value).replaceAll('\t', ' ');
693
- pushToBuffer(input, cursorOffset, pastedContents);
694
- trackAndSetInput(valueWithoutMode);
695
- setCursorOffset(valueWithoutMode.length);
696
- return;
697
- }
698
- }
699
- const processedValue = value.replaceAll('\t', ' ');
700
- // Push current state to buffer before making changes
701
- if (input !== processedValue) {
702
- pushToBuffer(input, cursorOffset, pastedContents);
703
- }
704
- // Deselect footer items when user types
705
- setAppState(prev => prev.footerSelection === null ? prev : {
706
- ...prev,
707
- footerSelection: null
708
- });
709
- trackAndSetInput(processedValue);
710
- }, [trackAndSetInput, onModeChange, input, cursorOffset, pushToBuffer, pastedContents, dismissStashHint, setAppState]);
711
- const { resetHistory, onHistoryUp, onHistoryDown, dismissSearchHint, historyIndex } = useArrowKeyHistory((value, historyMode, pastedContents) => {
712
- onChange(value);
713
- onModeChange(historyMode);
714
- setPastedContents(pastedContents);
715
- }, input, pastedContents, setCursorOffset, mode);
716
- // Dismiss search hint when user starts searching
717
- useEffect(() => {
718
- if (isSearchingHistory) {
719
- dismissSearchHint();
720
- }
721
- }, [isSearchingHistory, dismissSearchHint]);
722
- // Only use history navigation when there are 0 or 1 slash command suggestions.
723
- // Footer nav is NOT here — when a pill is selected, TextInput focus=false so
724
- // these never fire. The Footer keybinding context handles ↑/↓ instead.
725
- function handleHistoryUp() {
726
- if (suggestions.length > 1) {
727
- return;
728
- }
729
- // Only navigate history when cursor is on the first line.
730
- // In multiline inputs, up arrow should move the cursor (handled by TextInput)
731
- // and only trigger history when at the top of the input.
732
- if (!isCursorOnFirstLine) {
733
- return;
734
- }
735
- // If there's an editable queued command, move it to the input for editing when UP is pressed
736
- const hasEditableCommand = queuedCommands.some(isQueuedCommandEditable);
737
- if (hasEditableCommand) {
738
- void popAllCommandsFromQueue();
739
- return;
740
- }
741
- onHistoryUp();
742
- }
743
- function handleHistoryDown() {
744
- if (suggestions.length > 1) {
745
- return;
746
- }
747
- // Only navigate history/footer when cursor is on the last line.
748
- // In multiline inputs, down arrow should move the cursor (handled by TextInput)
749
- // and only trigger navigation when at the bottom of the input.
750
- if (!isCursorOnLastLine) {
751
- return;
752
- }
753
- // At bottom of history → enter footer at first visible pill
754
- if (onHistoryDown() && footerItems.length > 0) {
755
- const first = footerItems[0];
756
- selectFooterItem(first);
757
- if (first === 'tasks' && !getGlobalConfig().hasSeenTasksHint) {
758
- saveGlobalConfig(c => c.hasSeenTasksHint ? c : {
759
- ...c,
760
- hasSeenTasksHint: true
761
- });
762
- }
763
- }
764
- }
765
- // Create a suggestions state directly - we'll sync it with useTypeahead later
766
- const [suggestionsState, setSuggestionsStateRaw] = useState({
767
- suggestions: [],
768
- selectedSuggestion: -1,
769
- commandArgumentHint: undefined
770
- });
771
- // Setter for suggestions state
772
- const setSuggestionsState = useCallback((updater) => {
773
- setSuggestionsStateRaw(prev => typeof updater === 'function' ? updater(prev) : updater);
774
- }, []);
775
- const onSubmit = useCallback(async (inputParam, isSubmittingSlashCommand = false) => {
776
- inputParam = inputParam.trimEnd();
777
- // Don't submit if a footer indicator is being opened. Read fresh from
778
- // store — footer:openSelected calls selectFooterItem(null) then onSubmit
779
- // in the same tick, and the closure value hasn't updated yet. Apply the
780
- // same "still visible?" derivation as footerItemSelected so a stale
781
- // selection (pill disappeared) doesn't swallow Enter.
782
- const state = store.getState();
783
- if (state.footerSelection && footerItems.includes(state.footerSelection)) {
784
- return;
785
- }
786
- // Enter in selection modes confirms selection (useBackgroundTaskNavigation).
787
- // BaseTextInput's useInput registers before that hook (child effects fire first),
788
- // so without this guard Enter would double-fire and auto-submit the suggestion.
789
- if (state.viewSelectionMode === 'selecting-agent') {
790
- return;
791
- }
792
- // Check for images early - we need this for suggestion logic below
793
- const hasImages = Object.values(pastedContents).some(c => c.type === 'image');
794
- // If input is empty OR matches the suggestion, submit it
795
- // But if there are images attached, don't auto-accept the suggestion -
796
- // the user wants to submit just the image(s).
797
- // Only in leader view — promptSuggestion is leader-context, not teammate.
798
- const suggestionText = promptSuggestionState.text;
799
- const inputMatchesSuggestion = inputParam.trim() === '' || inputParam === suggestionText;
800
- if (inputMatchesSuggestion && suggestionText && !hasImages && !state.viewingAgentTaskId) {
801
- // If speculation is active, inject messages immediately as they stream
802
- if (speculation.status === 'active') {
803
- markAccepted();
804
- // skipReset: resetSuggestion would abort the speculation before we accept it
805
- logOutcomeAtSubmission(suggestionText, {
806
- skipReset: true
807
- });
808
- void onSubmitProp(suggestionText, {
809
- setCursorOffset,
810
- clearBuffer,
811
- resetHistory
812
- }, {
813
- state: speculation,
814
- speculationSessionTimeSavedMs: speculationSessionTimeSavedMs,
815
- setAppState
816
- });
817
- return; // Skip normal query - speculation handled it
818
- }
819
- // Regular suggestion acceptance (requires shownAt > 0)
820
- if (promptSuggestionState.shownAt > 0) {
821
- markAccepted();
822
- inputParam = suggestionText;
823
- }
824
- }
825
- // Handle @name direct message
826
- if (isAgentSwarmsEnabled()) {
827
- const directMessage = parseDirectMemberMessage(inputParam);
828
- if (directMessage) {
829
- const result = await sendDirectMemberMessage(directMessage.recipientName, directMessage.message, teamContext, writeToMailbox);
830
- if (result.success) {
831
- addNotification({
832
- key: 'direct-message-sent',
833
- text: `Sent to @${result.recipientName}`,
834
- priority: 'immediate',
835
- timeoutMs: 3000
836
- });
837
- trackAndSetInput('');
838
- setCursorOffset(0);
839
- clearBuffer();
840
- resetHistory();
841
- return;
842
- }
843
- else if (result.error === 'no_team_context') {
844
- // No team context - fall through to normal prompt submission
845
- }
846
- else {
847
- // Unknown recipient - fall through to normal prompt submission
848
- // This allows e.g. "@utils explain this code" to be sent as a prompt
849
- }
850
- }
851
- }
852
- // Allow submission if there are images attached, even without text
853
- if (inputParam.trim() === '' && !hasImages) {
854
- return;
855
- }
856
- // PromptInput UX: Check if suggestions dropdown is showing
857
- // For directory suggestions, allow submission (Tab is used for completion)
858
- const hasDirectorySuggestions = suggestionsState.suggestions.length > 0 && suggestionsState.suggestions.every(s => s.description === 'directory');
859
- if (suggestionsState.suggestions.length > 0 && !isSubmittingSlashCommand && !hasDirectorySuggestions) {
860
- logForDebugging(`[onSubmit] early return: suggestions showing (count=${suggestionsState.suggestions.length})`);
861
- return; // Don't submit, user needs to clear suggestions first
862
- }
863
- // Log suggestion outcome if one exists
864
- if (promptSuggestionState.text && promptSuggestionState.shownAt > 0) {
865
- logOutcomeAtSubmission(inputParam);
866
- }
867
- // Clear stash hint notification on submit
868
- removeNotification('stash-hint');
869
- // Route input to viewed agent (in-process teammate or named local_agent).
870
- const activeAgent = getActiveAgentForInput(store.getState());
871
- if (activeAgent.type !== 'leader' && onAgentSubmit) {
872
- logEvent('tengu_transcript_input_to_teammate', {});
873
- await onAgentSubmit(inputParam, activeAgent.task, {
874
- setCursorOffset,
875
- clearBuffer,
876
- resetHistory
877
- });
878
- return;
879
- }
880
- // Normal leader submission
881
- await onSubmitProp(inputParam, {
882
- setCursorOffset,
883
- clearBuffer,
884
- resetHistory
885
- });
886
- }, [promptSuggestionState, speculation, speculationSessionTimeSavedMs, teamContext, store, footerItems, suggestionsState.suggestions, onSubmitProp, onAgentSubmit, clearBuffer, resetHistory, logOutcomeAtSubmission, setAppState, markAccepted, pastedContents, removeNotification]);
887
- const { suggestions, selectedSuggestion, commandArgumentHint, inlineGhostText, maxColumnWidth } = useTypeahead({
888
- commands,
889
- onInputChange: trackAndSetInput,
890
- onSubmit,
891
- setCursorOffset,
892
- input,
893
- cursorOffset,
894
- mode,
895
- agents,
896
- setSuggestionsState,
897
- suggestionsState,
898
- suppressSuggestions: isSearchingHistory || historyIndex > 0,
899
- markAccepted,
900
- onModeChange
901
- });
902
- // Track if prompt suggestion should be shown (computed later with terminal width).
903
- // Hidden in teammate view — suggestion is leader-context only.
904
- const showPromptSuggestion = mode === 'prompt' && suggestions.length === 0 && promptSuggestion && !viewingAgentTaskId;
905
- if (showPromptSuggestion) {
906
- markShown();
907
- }
908
- // If suggestion was generated but can't be shown due to timing, log suppression.
909
- // Exclude teammate view: markShown() is gated above, so shownAt stays 0 there —
910
- // but that's not a timing failure, the suggestion is valid when returning to leader.
911
- if (promptSuggestionState.text && !promptSuggestion && promptSuggestionState.shownAt === 0 && !viewingAgentTaskId) {
912
- logSuggestionSuppressed('timing', promptSuggestionState.text);
913
- setAppState(prev => ({
914
- ...prev,
915
- promptSuggestion: {
916
- text: null,
917
- promptId: null,
918
- shownAt: 0,
919
- acceptedAt: 0,
920
- generationRequestId: null
921
- }
922
- }));
923
- }
924
- function onImagePaste(image, mediaType, filename, dimensions, sourcePath) {
925
- logEvent('tengu_paste_image', {});
926
- onModeChange('prompt');
927
- const pasteId = nextPasteIdRef.current++;
928
- const newContent = {
929
- id: pasteId,
930
- type: 'image',
931
- content: image,
932
- mediaType: mediaType || 'image/png',
933
- // default to PNG if not provided
934
- filename: filename || 'Pasted image',
935
- dimensions,
936
- sourcePath
937
- };
938
- // Cache path immediately (fast) so links work on render
939
- cacheImagePath(newContent);
940
- // Store image to disk in background
941
- void storeImage(newContent);
942
- // Update UI
943
- setPastedContents(prev => ({
944
- ...prev,
945
- [pasteId]: newContent
946
- }));
947
- // Multi-image paste calls onImagePaste in a loop. If the ref is already
948
- // armed, the previous pill's lazy space fires now (before this pill)
949
- // rather than being lost.
950
- const prefix = pendingSpaceAfterPillRef.current ? ' ' : '';
951
- insertTextAtCursor(prefix + formatImageRef(pasteId));
952
- pendingSpaceAfterPillRef.current = true;
953
- }
954
- // Prune images whose [Image #N] placeholder is no longer in the input text.
955
- // Covers pill backspace, Ctrl+U, char-by-char deletion — any edit that drops
956
- // the ref. onImagePaste batches setPastedContents + insertTextAtCursor in the
957
- // same event, so this effect sees the placeholder already present.
958
- useEffect(() => {
959
- const referencedIds = new Set(parseReferences(input).map(r => r.id));
960
- setPastedContents(prev => {
961
- const orphaned = Object.values(prev).filter(c => c.type === 'image' && !referencedIds.has(c.id));
962
- if (orphaned.length === 0)
963
- return prev;
964
- const next = {
965
- ...prev
966
- };
967
- for (const img of orphaned)
968
- delete next[img.id];
969
- return next;
970
- });
971
- }, [input, setPastedContents]);
972
- function onTextPaste(rawText) {
973
- pendingSpaceAfterPillRef.current = false;
974
- // Clean up pasted text - strip ANSI escape codes and normalize line endings and tabs
975
- let text = stripAnsi(rawText).replace(/\r/g, '\n').replaceAll('\t', ' ');
976
- // Match typed/auto-suggest: `!cmd` pasted into empty input enters bash mode.
977
- if (input.length === 0) {
978
- const pastedMode = getModeFromInput(text);
979
- if (pastedMode !== 'prompt') {
980
- onModeChange(pastedMode);
981
- text = getValueFromInput(text);
982
- }
983
- }
984
- const numLines = getPastedTextRefNumLines(text);
985
- // Limit the number of lines to show in the input
986
- // If the overall layout is too high then Ink will repaint
987
- // the entire terminal.
988
- // The actual required height is dependent on the content, this
989
- // is just an estimate.
990
- const maxLines = Math.min(rows - 10, 2);
991
- // Use special handling for long pasted text (>PASTE_THRESHOLD chars)
992
- // or if it exceeds the number of lines we want to show
993
- if (text.length > PASTE_THRESHOLD || numLines > maxLines) {
994
- const pasteId = nextPasteIdRef.current++;
995
- const newContent = {
996
- id: pasteId,
997
- type: 'text',
998
- content: text
999
- };
1000
- setPastedContents(prev => ({
1001
- ...prev,
1002
- [pasteId]: newContent
1003
- }));
1004
- insertTextAtCursor(formatPastedTextRef(pasteId, numLines));
1005
- }
1006
- else {
1007
- // For shorter pastes, just insert the text normally
1008
- insertTextAtCursor(text);
1009
- }
1010
- }
1011
- const lazySpaceInputFilter = useCallback((input, key) => {
1012
- if (!pendingSpaceAfterPillRef.current)
1013
- return input;
1014
- pendingSpaceAfterPillRef.current = false;
1015
- if (isNonSpacePrintable(input, key))
1016
- return ' ' + input;
1017
- return input;
1018
- }, []);
1019
- function insertTextAtCursor(text) {
1020
- // Push current state to buffer before inserting
1021
- pushToBuffer(input, cursorOffset, pastedContents);
1022
- const newInput = input.slice(0, cursorOffset) + text + input.slice(cursorOffset);
1023
- trackAndSetInput(newInput);
1024
- setCursorOffset(cursorOffset + text.length);
1025
- }
1026
- const doublePressEscFromEmpty = useDoublePress(() => { }, () => onShowMessageSelector());
1027
- // Function to get the queued command for editing. Returns true if commands were popped.
1028
- const popAllCommandsFromQueue = useCallback(() => {
1029
- const result = popAllEditable(input, cursorOffset);
1030
- if (!result) {
1031
- return false;
1032
- }
1033
- trackAndSetInput(result.text);
1034
- onModeChange('prompt'); // Always prompt mode for queued commands
1035
- setCursorOffset(result.cursorOffset);
1036
- // Restore images from queued commands to pastedContents
1037
- if (result.images.length > 0) {
1038
- setPastedContents(prev => {
1039
- const newContents = {
1040
- ...prev
1041
- };
1042
- for (const image of result.images) {
1043
- newContents[image.id] = image;
1044
- }
1045
- return newContents;
1046
- });
1047
- }
1048
- return true;
1049
- }, [trackAndSetInput, onModeChange, input, cursorOffset, setPastedContents]);
1050
- // Insert the at-mentioned reference (the file and, optionally, a line range) when
1051
- // we receive an at-mentioned notification the IDE.
1052
- const onIdeAtMentioned = function (atMentioned) {
1053
- logEvent('tengu_ext_at_mentioned', {});
1054
- let atMentionedText;
1055
- const relativePath = path.relative(getCwd(), atMentioned.filePath);
1056
- if (atMentioned.lineStart && atMentioned.lineEnd) {
1057
- atMentionedText = atMentioned.lineStart === atMentioned.lineEnd ? `@${relativePath}#L${atMentioned.lineStart} ` : `@${relativePath}#L${atMentioned.lineStart}-${atMentioned.lineEnd} `;
1058
- }
1059
- else {
1060
- atMentionedText = `@${relativePath} `;
1061
- }
1062
- const cursorChar = input[cursorOffset - 1] ?? ' ';
1063
- if (!/\s/.test(cursorChar)) {
1064
- atMentionedText = ` ${atMentionedText}`;
1065
- }
1066
- insertTextAtCursor(atMentionedText);
1067
- };
1068
- useIdeAtMentioned(mcpClients, onIdeAtMentioned);
1069
- // Handler for chat:undo - undo last edit
1070
- const handleUndo = useCallback(() => {
1071
- if (canUndo) {
1072
- const previousState = undo();
1073
- if (previousState) {
1074
- trackAndSetInput(previousState.text);
1075
- setCursorOffset(previousState.cursorOffset);
1076
- setPastedContents(previousState.pastedContents);
1077
- }
1078
- }
1079
- }, [canUndo, undo, trackAndSetInput, setPastedContents]);
1080
- // Handler for chat:newline - insert a newline at the cursor position
1081
- const handleNewline = useCallback(() => {
1082
- pushToBuffer(input, cursorOffset, pastedContents);
1083
- const newInput = input.slice(0, cursorOffset) + '\n' + input.slice(cursorOffset);
1084
- trackAndSetInput(newInput);
1085
- setCursorOffset(cursorOffset + 1);
1086
- }, [input, cursorOffset, trackAndSetInput, setCursorOffset, pushToBuffer, pastedContents]);
1087
- // Handler for chat:externalEditor - edit in $EDITOR
1088
- const handleExternalEditor = useCallback(async () => {
1089
- logEvent('tengu_external_editor_used', {});
1090
- setIsExternalEditorActive(true);
1091
- try {
1092
- // Pass pastedContents to expand collapsed text references
1093
- const result = await editPromptInEditor(input, pastedContents);
1094
- if (result.error) {
1095
- addNotification({
1096
- key: 'external-editor-error',
1097
- text: result.error,
1098
- color: 'warning',
1099
- priority: 'high'
1100
- });
1101
- }
1102
- if (result.content !== null && result.content !== input) {
1103
- // Push current state to buffer before making changes
1104
- pushToBuffer(input, cursorOffset, pastedContents);
1105
- trackAndSetInput(result.content);
1106
- setCursorOffset(result.content.length);
1107
- }
1108
- }
1109
- catch (err) {
1110
- if (err instanceof Error) {
1111
- logError(err);
1112
- }
1113
- addNotification({
1114
- key: 'external-editor-error',
1115
- text: `External editor failed: ${errorMessage(err)}`,
1116
- color: 'warning',
1117
- priority: 'high'
1118
- });
1119
- }
1120
- finally {
1121
- setIsExternalEditorActive(false);
1122
- }
1123
- }, [input, cursorOffset, pastedContents, pushToBuffer, trackAndSetInput, addNotification]);
1124
- // Handler for chat:stash - stash/unstash prompt
1125
- const handleStash = useCallback(() => {
1126
- if (input.trim() === '' && stashedPrompt !== undefined) {
1127
- // Pop stash when input is empty
1128
- trackAndSetInput(stashedPrompt.text);
1129
- setCursorOffset(stashedPrompt.cursorOffset);
1130
- setPastedContents(stashedPrompt.pastedContents);
1131
- setStashedPrompt(undefined);
1132
- }
1133
- else if (input.trim() !== '') {
1134
- // Push to stash (save text, cursor position, and pasted contents)
1135
- setStashedPrompt({
1136
- text: input,
1137
- cursorOffset,
1138
- pastedContents
1139
- });
1140
- trackAndSetInput('');
1141
- setCursorOffset(0);
1142
- setPastedContents({});
1143
- // Track usage for /discover and stop showing hint
1144
- saveGlobalConfig(c => {
1145
- if (c.hasUsedStash)
1146
- return c;
1147
- return {
1148
- ...c,
1149
- hasUsedStash: true
1150
- };
1151
- });
1152
- }
1153
- }, [input, cursorOffset, stashedPrompt, trackAndSetInput, setStashedPrompt, pastedContents, setPastedContents]);
1154
- // Handler for chat:modelPicker - toggle model picker
1155
- const handleModelPicker = useCallback(() => {
1156
- setShowModelPicker(prev => !prev);
1157
- if (helpOpen) {
1158
- setHelpOpen(false);
1159
- }
1160
- }, [helpOpen]);
1161
- // Handler for chat:fastMode - toggle fast mode picker
1162
- const handleFastModePicker = useCallback(() => {
1163
- setShowFastModePicker(prev => !prev);
1164
- if (helpOpen) {
1165
- setHelpOpen(false);
1166
- }
1167
- }, [helpOpen]);
1168
- // Handler for chat:thinkingToggle - toggle thinking mode
1169
- const handleThinkingToggle = useCallback(() => {
1170
- setShowThinkingToggle(prev => !prev);
1171
- if (helpOpen) {
1172
- setHelpOpen(false);
1173
- }
1174
- }, [helpOpen]);
1175
- // Handler for chat:cycleMode - cycle through permission modes
1176
- const handleCycleMode = useCallback(() => {
1177
- // When viewing a teammate, cycle their mode instead of the leader's
1178
- if (isAgentSwarmsEnabled() && viewedTeammate && viewingAgentTaskId) {
1179
- const teammateContext = {
1180
- ...toolPermissionContext,
1181
- mode: viewedTeammate.permissionMode
1182
- };
1183
- // Pass undefined for teamContext (unused but kept for API compatibility)
1184
- const nextMode = getNextPermissionMode(teammateContext, undefined);
1185
- logEvent('tengu_mode_cycle', {
1186
- to: nextMode
1187
- });
1188
- const teammateTaskId = viewingAgentTaskId;
1189
- setAppState(prev => {
1190
- const task = prev.tasks[teammateTaskId];
1191
- if (!task || task.type !== 'in_process_teammate') {
1192
- return prev;
1193
- }
1194
- if (task.permissionMode === nextMode) {
1195
- return prev;
1196
- }
1197
- return {
1198
- ...prev,
1199
- tasks: {
1200
- ...prev.tasks,
1201
- [teammateTaskId]: {
1202
- ...task,
1203
- permissionMode: nextMode
1204
- }
1205
- }
1206
- };
1207
- });
1208
- if (helpOpen) {
1209
- setHelpOpen(false);
1210
- }
1211
- return;
1212
- }
1213
- // Compute the next mode without triggering side effects first
1214
- logForDebugging(`[auto-mode] handleCycleMode: currentMode=${toolPermissionContext.mode} isAutoModeAvailable=${toolPermissionContext.isAutoModeAvailable} showAutoModeOptIn=${showAutoModeOptIn} timeoutPending=${!!autoModeOptInTimeoutRef.current}`);
1215
- const nextMode = getNextPermissionMode(toolPermissionContext, teamContext);
1216
- // Check if user is entering auto mode for the first time. Gated on the
1217
- // persistent settings flag (hasAutoModeOptIn) rather than the broader
1218
- // hasAutoModeOptInAnySource so that --enable-auto-mode users still see
1219
- // the warning dialog once — the CLI flag should grant carousel access,
1220
- // not bypass the safety text.
1221
- let isEnteringAutoModeFirstTime = false;
1222
- if (feature('TRANSCRIPT_CLASSIFIER')) {
1223
- isEnteringAutoModeFirstTime = nextMode === 'auto' && toolPermissionContext.mode !== 'auto' && !hasAutoModeOptIn() && !viewingAgentTaskId; // Only show for primary agent, not subagents
1224
- }
1225
- if (feature('TRANSCRIPT_CLASSIFIER')) {
1226
- if (isEnteringAutoModeFirstTime) {
1227
- // Store previous mode so we can revert if user declines
1228
- setPreviousModeBeforeAuto(toolPermissionContext.mode);
1229
- // Only update the UI mode label — do NOT call transitionPermissionMode
1230
- // or cyclePermissionMode yet; we haven't confirmed with the user.
1231
- setAppState(prev => ({
1232
- ...prev,
1233
- toolPermissionContext: {
1234
- ...prev.toolPermissionContext,
1235
- mode: 'auto'
1236
- }
1237
- }));
1238
- setToolPermissionContext({
1239
- ...toolPermissionContext,
1240
- mode: 'auto'
1241
- });
1242
- // Show opt-in dialog after 400ms debounce
1243
- if (autoModeOptInTimeoutRef.current) {
1244
- clearTimeout(autoModeOptInTimeoutRef.current);
1245
- }
1246
- autoModeOptInTimeoutRef.current = setTimeout((setShowAutoModeOptIn, autoModeOptInTimeoutRef) => {
1247
- setShowAutoModeOptIn(true);
1248
- autoModeOptInTimeoutRef.current = null;
1249
- }, 400, setShowAutoModeOptIn, autoModeOptInTimeoutRef);
1250
- if (helpOpen) {
1251
- setHelpOpen(false);
1252
- }
1253
- return;
1254
- }
1255
- }
1256
- // Dismiss auto mode opt-in dialog if showing or pending (user is cycling away).
1257
- // Do NOT revert to previousModeBeforeAuto here — shift+tab means "advance the
1258
- // carousel", not "decline". Reverting causes a ping-pong loop: auto reverts to
1259
- // the prior mode, whose next mode is auto again, forever.
1260
- // The dialog's own decline button (handleAutoModeOptInDecline) handles revert.
1261
- if (feature('TRANSCRIPT_CLASSIFIER')) {
1262
- if (showAutoModeOptIn || autoModeOptInTimeoutRef.current) {
1263
- if (showAutoModeOptIn) {
1264
- logEvent('tengu_auto_mode_opt_in_dialog_decline', {});
1265
- }
1266
- setShowAutoModeOptIn(false);
1267
- if (autoModeOptInTimeoutRef.current) {
1268
- clearTimeout(autoModeOptInTimeoutRef.current);
1269
- autoModeOptInTimeoutRef.current = null;
1270
- }
1271
- setPreviousModeBeforeAuto(null);
1272
- // Fall through — mode is 'auto', cyclePermissionMode below goes to 'default'.
1273
- }
1274
- }
1275
- // Now that we know this is NOT the first-time auto mode path,
1276
- // call cyclePermissionMode to apply side effects (e.g. strip
1277
- // dangerous permissions, activate classifier)
1278
- const { context: preparedContext } = cyclePermissionMode(toolPermissionContext, teamContext);
1279
- logEvent('tengu_mode_cycle', {
1280
- to: nextMode
1281
- });
1282
- // Track when user enters plan mode
1283
- if (nextMode === 'plan') {
1284
- saveGlobalConfig(current => ({
1285
- ...current,
1286
- lastPlanModeUse: Date.now()
1287
- }));
1288
- }
1289
- // Set the mode via setAppState directly because setToolPermissionContext
1290
- // intentionally preserves the existing mode (to prevent coordinator mode
1291
- // corruption from workers). Then call setToolPermissionContext to trigger
1292
- // recheck of queued permission prompts.
1293
- setAppState(prev => ({
1294
- ...prev,
1295
- toolPermissionContext: {
1296
- ...preparedContext,
1297
- mode: nextMode
1298
- }
1299
- }));
1300
- setToolPermissionContext({
1301
- ...preparedContext,
1302
- mode: nextMode
1303
- });
1304
- // If this is a teammate, update config.json so team lead sees the change
1305
- syncTeammateMode(nextMode, teamContext?.teamName);
1306
- // Close help tips if they're open when mode is cycled
1307
- if (helpOpen) {
1308
- setHelpOpen(false);
1309
- }
1310
- }, [toolPermissionContext, teamContext, viewingAgentTaskId, viewedTeammate, setAppState, setToolPermissionContext, helpOpen, showAutoModeOptIn]);
1311
- // Handler for auto mode opt-in dialog acceptance
1312
- const handleAutoModeOptInAccept = useCallback(() => {
1313
- if (feature('TRANSCRIPT_CLASSIFIER')) {
1314
- setShowAutoModeOptIn(false);
1315
- setPreviousModeBeforeAuto(null);
1316
- // Now that the user accepted, apply the full transition: activate the
1317
- // auto mode backend (classifier, beta headers) and strip dangerous
1318
- // permissions (e.g. Bash(*) always-allow rules).
1319
- const strippedContext = transitionPermissionMode(previousModeBeforeAuto ?? toolPermissionContext.mode, 'auto', toolPermissionContext);
1320
- setAppState(prev => ({
1321
- ...prev,
1322
- toolPermissionContext: {
1323
- ...strippedContext,
1324
- mode: 'auto'
1325
- }
1326
- }));
1327
- setToolPermissionContext({
1328
- ...strippedContext,
1329
- mode: 'auto'
1330
- });
1331
- // Close help tips if they're open when auto mode is enabled
1332
- if (helpOpen) {
1333
- setHelpOpen(false);
1334
- }
1335
- }
1336
- }, [helpOpen, setHelpOpen, previousModeBeforeAuto, toolPermissionContext, setAppState, setToolPermissionContext]);
1337
- // Handler for auto mode opt-in dialog decline
1338
- const handleAutoModeOptInDecline = useCallback(() => {
1339
- if (feature('TRANSCRIPT_CLASSIFIER')) {
1340
- logForDebugging(`[auto-mode] handleAutoModeOptInDecline: reverting to ${previousModeBeforeAuto}, setting isAutoModeAvailable=false`);
1341
- setShowAutoModeOptIn(false);
1342
- if (autoModeOptInTimeoutRef.current) {
1343
- clearTimeout(autoModeOptInTimeoutRef.current);
1344
- autoModeOptInTimeoutRef.current = null;
1345
- }
1346
- // Revert to previous mode and remove auto from the carousel
1347
- // for the rest of this session
1348
- if (previousModeBeforeAuto) {
1349
- setAutoModeActive(false);
1350
- setAppState(prev => ({
1351
- ...prev,
1352
- toolPermissionContext: {
1353
- ...prev.toolPermissionContext,
1354
- mode: previousModeBeforeAuto,
1355
- isAutoModeAvailable: false
1356
- }
1357
- }));
1358
- setToolPermissionContext({
1359
- ...toolPermissionContext,
1360
- mode: previousModeBeforeAuto,
1361
- isAutoModeAvailable: false
1362
- });
1363
- setPreviousModeBeforeAuto(null);
1364
- }
1365
- }
1366
- }, [previousModeBeforeAuto, toolPermissionContext, setAppState, setToolPermissionContext]);
1367
- // Handler for chat:imagePaste - paste image from clipboard
1368
- const handleImagePaste = useCallback(() => {
1369
- void getImageFromClipboard().then(imageData => {
1370
- if (imageData) {
1371
- onImagePaste(imageData.base64, imageData.mediaType);
1372
- }
1373
- else {
1374
- const shortcutDisplay = getShortcutDisplay('chat:imagePaste', 'Chat', 'ctrl+v');
1375
- const message = env.isSSH() ? "No image found in clipboard. You're SSH'd; try scp?" : `No image found in clipboard. Use ${shortcutDisplay} to paste images.`;
1376
- addNotification({
1377
- key: 'no-image-in-clipboard',
1378
- text: message,
1379
- priority: 'immediate',
1380
- timeoutMs: 1000
1381
- });
1382
- }
1383
- });
1384
- }, [addNotification, onImagePaste]);
1385
- // Register chat:submit handler directly in the handler registry (not via
1386
- // useKeybindings) so that only the ChordInterceptor can invoke it for chord
1387
- // completions (e.g., "ctrl+e s"). The default Enter binding for submit is
1388
- // handled by TextInput directly (via onSubmit prop) and useTypeahead (for
1389
- // autocomplete acceptance). Using useKeybindings would cause
1390
- // stopImmediatePropagation on Enter, blocking autocomplete from seeing the key.
1391
- const keybindingContext = useOptionalKeybindingContext();
1392
- useEffect(() => {
1393
- if (!keybindingContext || isModalOverlayActive)
1394
- return;
1395
- return keybindingContext.registerHandler({
1396
- action: 'chat:submit',
1397
- context: 'Chat',
1398
- handler: () => {
1399
- void onSubmit(input);
1400
- }
1401
- });
1402
- }, [keybindingContext, isModalOverlayActive, onSubmit, input]);
1403
- // Chat context keybindings for editing shortcuts
1404
- // Note: history:previous/history:next are NOT handled here. They are passed as
1405
- // onHistoryUp/onHistoryDown props to TextInput, so that useTextInput's
1406
- // upOrHistoryUp/downOrHistoryDown can try cursor movement first and only
1407
- // fall through to history when the cursor can't move further.
1408
- const chatHandlers = useMemo(() => ({
1409
- 'chat:undo': handleUndo,
1410
- 'chat:newline': handleNewline,
1411
- 'chat:externalEditor': handleExternalEditor,
1412
- 'chat:stash': handleStash,
1413
- 'chat:modelPicker': handleModelPicker,
1414
- 'chat:thinkingToggle': handleThinkingToggle,
1415
- 'chat:cycleMode': handleCycleMode,
1416
- 'chat:imagePaste': handleImagePaste
1417
- }), [handleUndo, handleNewline, handleExternalEditor, handleStash, handleModelPicker, handleThinkingToggle, handleCycleMode, handleImagePaste]);
1418
- useKeybindings(chatHandlers, {
1419
- context: 'Chat',
1420
- isActive: !isModalOverlayActive
1421
- });
1422
- // Shift+↑ enters message-actions cursor. Separate isActive so ctrl+r search
1423
- // doesn't leave stale isSearchingHistory on cursor-exit remount.
1424
- useKeybinding('chat:messageActions', () => onMessageActionsEnter?.(), {
1425
- context: 'Chat',
1426
- isActive: !isModalOverlayActive && !isSearchingHistory
1427
- });
1428
- // Fast mode keybinding is only active when fast mode is enabled and available
1429
- useKeybinding('chat:fastMode', handleFastModePicker, {
1430
- context: 'Chat',
1431
- isActive: !isModalOverlayActive && isFastModeEnabled() && isFastModeAvailable()
1432
- });
1433
- // Handle help:dismiss keybinding (ESC closes help menu)
1434
- // This is registered separately from Chat context so it has priority over
1435
- // CancelRequestHandler when help menu is open
1436
- useKeybinding('help:dismiss', () => {
1437
- setHelpOpen(false);
1438
- }, {
1439
- context: 'Help',
1440
- isActive: helpOpen
1441
- });
1442
- // Quick Open / Global Search. Hook calls are unconditional (Rules of Hooks);
1443
- // the handler body is feature()-gated so the setState calls and component
1444
- // references get tree-shaken in external builds.
1445
- const quickSearchActive = feature('QUICK_SEARCH') ? !isModalOverlayActive : false;
1446
- useKeybinding('app:quickOpen', () => {
1447
- if (feature('QUICK_SEARCH')) {
1448
- setShowQuickOpen(true);
1449
- setHelpOpen(false);
1450
- }
1451
- }, {
1452
- context: 'Global',
1453
- isActive: quickSearchActive
1454
- });
1455
- useKeybinding('app:globalSearch', () => {
1456
- if (feature('QUICK_SEARCH')) {
1457
- setShowGlobalSearch(true);
1458
- setHelpOpen(false);
1459
- }
1460
- }, {
1461
- context: 'Global',
1462
- isActive: quickSearchActive
1463
- });
1464
- useKeybinding('history:search', () => {
1465
- if (feature('HISTORY_PICKER')) {
1466
- setShowHistoryPicker(true);
1467
- setHelpOpen(false);
1468
- }
1469
- }, {
1470
- context: 'Global',
1471
- isActive: feature('HISTORY_PICKER') ? !isModalOverlayActive : false
1472
- });
1473
- // Handle Ctrl+C to abort speculation when idle (not loading)
1474
- // CancelRequestHandler only handles Ctrl+C during active tasks
1475
- useKeybinding('app:interrupt', () => {
1476
- abortSpeculation(setAppState);
1477
- }, {
1478
- context: 'Global',
1479
- isActive: !isLoading && speculation.status === 'active'
1480
- });
1481
- // Footer indicator navigation keybindings. ↑/↓ live here (not in
1482
- // handleHistoryUp/Down) because TextInput focus=false when a pill is
1483
- // selected — its useInput is inactive, so this is the only path.
1484
- useKeybindings({
1485
- 'footer:up': () => {
1486
- // ↑ scrolls within the coordinator task list before leaving the pill
1487
- if (tasksSelected && "external" === 'ant' && coordinatorTaskCount > 0 && coordinatorTaskIndex > minCoordinatorIndex) {
1488
- setCoordinatorTaskIndex(prev => prev - 1);
1489
- return;
1490
- }
1491
- navigateFooter(-1, true);
1492
- },
1493
- 'footer:down': () => {
1494
- // ↓ scrolls within the coordinator task list, never leaves the pill
1495
- if (tasksSelected && "external" === 'ant' && coordinatorTaskCount > 0) {
1496
- if (coordinatorTaskIndex < coordinatorTaskCount - 1) {
1497
- setCoordinatorTaskIndex(prev => prev + 1);
1498
- }
1499
- return;
1500
- }
1501
- if (tasksSelected && !isTeammateMode) {
1502
- setShowBashesDialog(true);
1503
- selectFooterItem(null);
1504
- return;
1505
- }
1506
- navigateFooter(1);
1507
- },
1508
- 'footer:next': () => {
1509
- // Teammate mode: ←/→ cycles within the team member list
1510
- if (tasksSelected && isTeammateMode) {
1511
- const totalAgents = 1 + inProcessTeammates.length;
1512
- setTeammateFooterIndex(prev => (prev + 1) % totalAgents);
1513
- return;
1514
- }
1515
- navigateFooter(1);
1516
- },
1517
- 'footer:previous': () => {
1518
- if (tasksSelected && isTeammateMode) {
1519
- const totalAgents = 1 + inProcessTeammates.length;
1520
- setTeammateFooterIndex(prev => (prev - 1 + totalAgents) % totalAgents);
1521
- return;
1522
- }
1523
- navigateFooter(-1);
1524
- },
1525
- 'footer:openSelected': () => {
1526
- if (viewSelectionMode === 'selecting-agent') {
1527
- return;
1528
- }
1529
- switch (footerItemSelected) {
1530
- case 'companion':
1531
- if (feature('BUDDY')) {
1532
- selectFooterItem(null);
1533
- void onSubmit('/buddy');
1534
- }
1535
- break;
1536
- case 'tasks':
1537
- if (isTeammateMode) {
1538
- // Enter switches to the selected agent's view
1539
- if (teammateFooterIndex === 0) {
1540
- exitTeammateView(setAppState);
1541
- }
1542
- else {
1543
- const teammate = inProcessTeammates[teammateFooterIndex - 1];
1544
- if (teammate)
1545
- enterTeammateView(teammate.id, setAppState);
1546
- }
1547
- }
1548
- else if (coordinatorTaskIndex === 0 && coordinatorTaskCount > 0) {
1549
- exitTeammateView(setAppState);
1550
- }
1551
- else {
1552
- const selectedTaskId = getVisibleAgentTasks(tasks)[coordinatorTaskIndex - 1]?.id;
1553
- if (selectedTaskId) {
1554
- enterTeammateView(selectedTaskId, setAppState);
1555
- }
1556
- else {
1557
- setShowBashesDialog(true);
1558
- selectFooterItem(null);
1559
- }
1560
- }
1561
- break;
1562
- case 'tmux':
1563
- if ("external" === 'ant') {
1564
- setAppState(prev => prev.tungstenPanelAutoHidden ? {
1565
- ...prev,
1566
- tungstenPanelAutoHidden: false
1567
- } : {
1568
- ...prev,
1569
- tungstenPanelVisible: !(prev.tungstenPanelVisible ?? true)
1570
- });
1571
- }
1572
- break;
1573
- case 'bagel':
1574
- break;
1575
- case 'teams':
1576
- setShowTeamsDialog(true);
1577
- selectFooterItem(null);
1578
- break;
1579
- case 'bridge':
1580
- setShowBridgeDialog(true);
1581
- selectFooterItem(null);
1582
- break;
1583
- }
1584
- },
1585
- 'footer:clearSelection': () => {
1586
- selectFooterItem(null);
1587
- },
1588
- 'footer:close': () => {
1589
- if (tasksSelected && coordinatorTaskIndex >= 1) {
1590
- const task = getVisibleAgentTasks(tasks)[coordinatorTaskIndex - 1];
1591
- if (!task)
1592
- return false;
1593
- // When the selected row IS the viewed agent, 'x' types into the
1594
- // steering input. Any other row — dismiss it.
1595
- if (viewSelectionMode === 'viewing-agent' && task.id === viewingAgentTaskId) {
1596
- onChange(input.slice(0, cursorOffset) + 'x' + input.slice(cursorOffset));
1597
- setCursorOffset(cursorOffset + 1);
1598
- return;
1599
- }
1600
- stopOrDismissAgent(task.id, setAppState);
1601
- if (task.status !== 'running') {
1602
- setCoordinatorTaskIndex(i => Math.max(minCoordinatorIndex, i - 1));
1603
- }
1604
- return;
1605
- }
1606
- // Not handled — let 'x' fall through to type-to-exit
1607
- return false;
1608
- }
1609
- }, {
1610
- context: 'Footer',
1611
- isActive: !!footerItemSelected && !isModalOverlayActive
1612
- });
1613
- useInput((char, key) => {
1614
- // Skip all input handling when a full-screen dialog is open. These dialogs
1615
- // render via early return, but hooks run unconditionally — so without this
1616
- // guard, Escape inside a dialog leaks to the double-press message-selector.
1617
- if (showTeamsDialog || showQuickOpen || showGlobalSearch || showHistoryPicker) {
1618
- return;
1619
- }
1620
- // Detect failed Alt shortcuts on macOS (Option key produces special characters)
1621
- if (getPlatform() === 'macos' && isMacosOptionChar(char)) {
1622
- const shortcut = MACOS_OPTION_SPECIAL_CHARS[char];
1623
- const terminalName = getNativeCSIuTerminalDisplayName();
1624
- const jsx = terminalName ? _jsxs(Text, { dimColor: true, children: ["To enable ", shortcut, ", set ", _jsx(Text, { bold: true, children: "Option as Meta" }), " in", ' ', terminalName, " preferences (\u2318,)"] }) : _jsxs(Text, { dimColor: true, children: ["To enable ", shortcut, ", run /terminal-setup"] });
1625
- addNotification({
1626
- key: 'option-meta-hint',
1627
- jsx,
1628
- priority: 'immediate',
1629
- timeoutMs: 5000
1630
- });
1631
- // Don't return - let the character be typed so user sees the issue
1632
- }
1633
- // Footer navigation is handled via useKeybindings above (Footer context)
1634
- // NOTE: ctrl+_, ctrl+g, ctrl+s are handled via Chat context keybindings above
1635
- // Type-to-exit footer: printable chars while a pill is selected refocus
1636
- // the input and type the char. Nav keys are captured by useKeybindings
1637
- // above, so anything reaching here is genuinely not a footer action.
1638
- // onChange clears footerSelection, so no explicit deselect.
1639
- if (footerItemSelected && char && !key.ctrl && !key.meta && !key.escape && !key.return) {
1640
- onChange(input.slice(0, cursorOffset) + char + input.slice(cursorOffset));
1641
- setCursorOffset(cursorOffset + char.length);
1642
- return;
1643
- }
1644
- // Exit special modes when backspace/escape/delete/ctrl+u is pressed at cursor position 0
1645
- if (cursorOffset === 0 && (key.escape || key.backspace || key.delete || key.ctrl && char === 'u')) {
1646
- onModeChange('prompt');
1647
- setHelpOpen(false);
1648
- }
1649
- // Exit help mode when backspace is pressed and input is empty
1650
- if (helpOpen && input === '' && (key.backspace || key.delete)) {
1651
- setHelpOpen(false);
1652
- }
1653
- // esc is a little overloaded:
1654
- // - when we're loading a response, it's used to cancel the request
1655
- // - otherwise, it's used to show the message selector
1656
- // - when double pressed, it's used to clear the input
1657
- // - when input is empty, pop from command queue
1658
- // Handle ESC key press
1659
- if (key.escape) {
1660
- // Abort active speculation
1661
- if (speculation.status === 'active') {
1662
- abortSpeculation(setAppState);
1663
- return;
1664
- }
1665
- // Dismiss side question response if visible
1666
- if (isSideQuestionVisible && onDismissSideQuestion) {
1667
- onDismissSideQuestion();
1668
- return;
1669
- }
1670
- // Close help menu if open
1671
- if (helpOpen) {
1672
- setHelpOpen(false);
1673
- return;
1674
- }
1675
- // Footer selection clearing is now handled via Footer context keybindings
1676
- // (footer:clearSelection action bound to escape)
1677
- // If a footer item is selected, let the Footer keybinding handle it
1678
- if (footerItemSelected) {
1679
- return;
1680
- }
1681
- // If there's an editable queued command, move it to the input for editing when ESC is pressed
1682
- const hasEditableCommand = queuedCommands.some(isQueuedCommandEditable);
1683
- if (hasEditableCommand) {
1684
- void popAllCommandsFromQueue();
1685
- return;
1686
- }
1687
- if (messages.length > 0 && !input && !isLoading) {
1688
- doublePressEscFromEmpty();
1689
- }
1690
- }
1691
- if (key.return && helpOpen) {
1692
- setHelpOpen(false);
1693
- }
1694
- });
1695
- const swarmBanner = useSwarmBanner();
1696
- const fastModeCooldown = isFastModeEnabled() ? isFastModeCooldown() : false;
1697
- const showFastIcon = isFastModeEnabled() ? isFastMode && (isFastModeAvailable() || fastModeCooldown) : false;
1698
- const showFastIconHint = useShowFastIconHint(showFastIcon ?? false);
1699
- // Show effort notification on startup and when effort changes.
1700
- // Suppressed in brief/assistant mode — the value reflects the local
1701
- // client's effort, not the connected agent's.
1702
- const effortNotificationText = briefOwnsGap ? undefined : getEffortNotificationText(effortValue, mainLoopModel);
1703
- useEffect(() => {
1704
- if (!effortNotificationText) {
1705
- removeNotification('effort-level');
1706
- return;
1707
- }
1708
- addNotification({
1709
- key: 'effort-level',
1710
- text: effortNotificationText,
1711
- priority: 'high',
1712
- timeoutMs: 12_000
1713
- });
1714
- }, [effortNotificationText, addNotification, removeNotification]);
1715
- useBuddyNotification();
1716
- const companionSpeaking = feature('BUDDY') ?
1717
- // biome-ignore lint/correctness/useHookAtTopLevel: feature() is a compile-time constant
1718
- useAppState(s => s.companionReaction !== undefined) : false;
1719
- const { columns, rows } = useTerminalSize();
1720
- const textInputColumns = columns - 3 - companionReservedColumns(columns, companionSpeaking);
1721
- // POC: click-to-position-cursor. Mouse tracking is only enabled inside
1722
- // <AlternateScreen>, so this is dormant in the normal main-screen REPL.
1723
- // localCol/localRow are relative to the onClick Box's top-left; the Box
1724
- // tightly wraps the text input so they map directly to (column, line)
1725
- // in the Cursor wrap model. MeasuredText.getOffsetFromPosition handles
1726
- // wide chars, wrapped lines, and clamps past-end clicks to line end.
1727
- const maxVisibleLines = isFullscreenEnvEnabled() ? Math.max(MIN_INPUT_VIEWPORT_LINES, Math.floor(rows / 2) - PROMPT_FOOTER_LINES) : undefined;
1728
- const handleInputClick = useCallback((e) => {
1729
- // During history search the displayed text is historyMatch, not
1730
- // input, and showCursor is false anyway — skip rather than
1731
- // compute an offset against the wrong string.
1732
- if (!input || isSearchingHistory)
1733
- return;
1734
- const c = Cursor.fromText(input, textInputColumns, cursorOffset);
1735
- const viewportStart = c.getViewportStartLine(maxVisibleLines);
1736
- const offset = c.measuredText.getOffsetFromPosition({
1737
- line: e.localRow + viewportStart,
1738
- column: e.localCol
1739
- });
1740
- setCursorOffset(offset);
1741
- }, [input, textInputColumns, isSearchingHistory, cursorOffset, maxVisibleLines]);
1742
- const handleOpenTasksDialog = useCallback((taskId) => setShowBashesDialog(taskId ?? true), [setShowBashesDialog]);
1743
- const placeholder = showPromptSuggestion && promptSuggestion ? promptSuggestion : defaultPlaceholder;
1744
- // Calculate if input has multiple lines
1745
- const isInputWrapped = useMemo(() => input.includes('\n'), [input]);
1746
- // Memoized callbacks for model picker to prevent re-renders when unrelated
1747
- // state (like notifications) changes. This prevents the inline model picker
1748
- // from visually "jumping" when notifications arrive.
1749
- const handleModelSelect = useCallback((model, _effort) => {
1750
- let wasFastModeDisabled = false;
1751
- setAppState(prev => {
1752
- wasFastModeDisabled = isFastModeEnabled() && !isFastModeSupportedByModel(model) && !!prev.fastMode;
1753
- return {
1754
- ...prev,
1755
- mainLoopModel: model,
1756
- mainLoopModelForSession: null,
1757
- // Turn off fast mode if switching to a model that doesn't support it
1758
- ...(wasFastModeDisabled && {
1759
- fastMode: false
1760
- })
1761
- };
1762
- });
1763
- setShowModelPicker(false);
1764
- const effectiveFastMode = (isFastMode ?? false) && !wasFastModeDisabled;
1765
- let message = `Model set to ${modelDisplayString(model)}`;
1766
- if (isBilledAsExtraUsage(model, effectiveFastMode, isOpus1mMergeEnabled())) {
1767
- message += ' · Billed as extra usage';
1768
- }
1769
- if (wasFastModeDisabled) {
1770
- message += ' · Fast mode OFF';
1771
- }
1772
- addNotification({
1773
- key: 'model-switched',
1774
- jsx: _jsx(Text, { children: message }),
1775
- priority: 'immediate',
1776
- timeoutMs: 3000
1777
- });
1778
- logEvent('tengu_model_picker_hotkey', {
1779
- model: model
1780
- });
1781
- }, [setAppState, addNotification, isFastMode]);
1782
- const handleModelCancel = useCallback(() => {
1783
- setShowModelPicker(false);
1784
- }, []);
1785
- // Memoize the model picker element to prevent unnecessary re-renders
1786
- // when AppState changes for unrelated reasons (e.g., notifications arriving)
1787
- const modelPickerElement = useMemo(() => {
1788
- if (!showModelPicker)
1789
- return null;
1790
- return _jsx(Box, { flexDirection: "column", marginTop: 1, children: _jsx(ModelPicker, { initial: mainLoopModel_, sessionModel: mainLoopModelForSession, onSelect: handleModelSelect, onCancel: handleModelCancel, isStandaloneCommand: true, showFastModeNotice: isFastModeEnabled() && isFastMode && isFastModeSupportedByModel(mainLoopModel_) && isFastModeAvailable() }) });
1791
- }, [showModelPicker, mainLoopModel_, mainLoopModelForSession, handleModelSelect, handleModelCancel]);
1792
- const handleFastModeSelect = useCallback((result) => {
1793
- setShowFastModePicker(false);
1794
- if (result) {
1795
- addNotification({
1796
- key: 'fast-mode-toggled',
1797
- jsx: _jsx(Text, { children: result }),
1798
- priority: 'immediate',
1799
- timeoutMs: 3000
1800
- });
1801
- }
1802
- }, [addNotification]);
1803
- // Memoize the fast mode picker element
1804
- const fastModePickerElement = useMemo(() => {
1805
- if (!showFastModePicker)
1806
- return null;
1807
- return _jsx(Box, { flexDirection: "column", marginTop: 1, children: _jsx(FastModePicker, { onDone: handleFastModeSelect, unavailableReason: getFastModeUnavailableReason() }) });
1808
- }, [showFastModePicker, handleFastModeSelect]);
1809
- // Memoized callbacks for thinking toggle
1810
- const handleThinkingSelect = useCallback((enabled) => {
1811
- setAppState(prev => ({
1812
- ...prev,
1813
- thinkingEnabled: enabled
1814
- }));
1815
- setShowThinkingToggle(false);
1816
- logEvent('tengu_thinking_toggled_hotkey', {
1817
- enabled
1818
- });
1819
- addNotification({
1820
- key: 'thinking-toggled-hotkey',
1821
- jsx: _jsxs(Text, { color: enabled ? 'suggestion' : undefined, dimColor: !enabled, children: ["Thinking ", enabled ? 'on' : 'off'] }),
1822
- priority: 'immediate',
1823
- timeoutMs: 3000
1824
- });
1825
- }, [setAppState, addNotification]);
1826
- const handleThinkingCancel = useCallback(() => {
1827
- setShowThinkingToggle(false);
1828
- }, []);
1829
- // Memoize the thinking toggle element
1830
- const thinkingToggleElement = useMemo(() => {
1831
- if (!showThinkingToggle)
1832
- return null;
1833
- return _jsx(Box, { flexDirection: "column", marginTop: 1, children: _jsx(ThinkingToggle, { currentValue: thinkingEnabled ?? true, onSelect: handleThinkingSelect, onCancel: handleThinkingCancel, isMidConversation: messages.some(m => m.type === 'assistant') }) });
1834
- }, [showThinkingToggle, thinkingEnabled, handleThinkingSelect, handleThinkingCancel, messages.length]);
1835
- // Portal dialog to DialogOverlay in fullscreen so it escapes the bottom
1836
- // slot's overflowY:hidden clip (same pattern as SuggestionsOverlay).
1837
- // Must be called before early returns below to satisfy rules-of-hooks.
1838
- // Memoized so the portal useEffect doesn't churn on every PromptInput render.
1839
- const autoModeOptInDialog = useMemo(() => feature('TRANSCRIPT_CLASSIFIER') && showAutoModeOptIn ? _jsx(AutoModeOptInDialog, { onAccept: handleAutoModeOptInAccept, onDecline: handleAutoModeOptInDecline }) : null, [showAutoModeOptIn, handleAutoModeOptInAccept, handleAutoModeOptInDecline]);
1840
- useSetPromptOverlayDialog(isFullscreenEnvEnabled() ? autoModeOptInDialog : null);
1841
- if (showBashesDialog) {
1842
- return _jsx(BackgroundTasksDialog, { onDone: () => setShowBashesDialog(false), toolUseContext: getToolUseContext(messages, [], new AbortController(), mainLoopModel), initialDetailTaskId: typeof showBashesDialog === 'string' ? showBashesDialog : undefined });
1843
- }
1844
- if (isAgentSwarmsEnabled() && showTeamsDialog) {
1845
- return _jsx(TeamsDialog, { initialTeams: cachedTeams, onDone: () => {
1846
- setShowTeamsDialog(false);
1847
- } });
1848
- }
1849
- if (feature('QUICK_SEARCH')) {
1850
- const insertWithSpacing = (text) => {
1851
- const cursorChar = input[cursorOffset - 1] ?? ' ';
1852
- insertTextAtCursor(/\s/.test(cursorChar) ? text : ` ${text}`);
1853
- };
1854
- if (showQuickOpen) {
1855
- return _jsx(QuickOpenDialog, { onDone: () => setShowQuickOpen(false), onInsert: insertWithSpacing });
1856
- }
1857
- if (showGlobalSearch) {
1858
- return _jsx(GlobalSearchDialog, { onDone: () => setShowGlobalSearch(false), onInsert: insertWithSpacing });
1859
- }
1860
- }
1861
- if (feature('HISTORY_PICKER') && showHistoryPicker) {
1862
- return _jsx(HistorySearchDialog, { initialQuery: input, onSelect: entry => {
1863
- const entryMode = getModeFromInput(entry.display);
1864
- const value = getValueFromInput(entry.display);
1865
- onModeChange(entryMode);
1866
- trackAndSetInput(value);
1867
- setPastedContents(entry.pastedContents);
1868
- setCursorOffset(value.length);
1869
- setShowHistoryPicker(false);
1870
- }, onCancel: () => setShowHistoryPicker(false) });
1871
- }
1872
- // Show loop mode menu when requested (ant-only, eliminated from external builds)
1873
- if (modelPickerElement) {
1874
- return modelPickerElement;
1875
- }
1876
- if (fastModePickerElement) {
1877
- return fastModePickerElement;
1878
- }
1879
- if (thinkingToggleElement) {
1880
- return thinkingToggleElement;
1881
- }
1882
- if (showBridgeDialog) {
1883
- return _jsx(BridgeDialog, { onDone: () => {
1884
- setShowBridgeDialog(false);
1885
- selectFooterItem(null);
1886
- } });
1887
- }
1888
- const baseProps = {
1889
- multiline: true,
1890
- onSubmit,
1891
- onChange,
1892
- value: historyMatch ? getValueFromInput(typeof historyMatch === 'string' ? historyMatch : historyMatch.display) : input,
1893
- // History navigation is handled via TextInput props (onHistoryUp/onHistoryDown),
1894
- // NOT via useKeybindings. This allows useTextInput's upOrHistoryUp/downOrHistoryDown
1895
- // to try cursor movement first and only fall through to history navigation when the
1896
- // cursor can't move further (important for wrapped text and multi-line input).
1897
- onHistoryUp: handleHistoryUp,
1898
- onHistoryDown: handleHistoryDown,
1899
- onHistoryReset: resetHistory,
1900
- placeholder,
1901
- onExit,
1902
- onExitMessage: (show, key) => setExitMessage({
1903
- show,
1904
- key
1905
- }),
1906
- onImagePaste,
1907
- columns: textInputColumns,
1908
- maxVisibleLines,
1909
- disableCursorMovementForUpDownKeys: suggestions.length > 0 || !!footerItemSelected,
1910
- disableEscapeDoublePress: suggestions.length > 0,
1911
- cursorOffset,
1912
- onChangeCursorOffset: setCursorOffset,
1913
- onPaste: onTextPaste,
1914
- onIsPastingChange: setIsPasting,
1915
- focus: !isSearchingHistory && !isModalOverlayActive && !footerItemSelected,
1916
- showCursor: !footerItemSelected && !isSearchingHistory && !cursorAtImageChip,
1917
- argumentHint: commandArgumentHint,
1918
- onUndo: canUndo ? () => {
1919
- const previousState = undo();
1920
- if (previousState) {
1921
- trackAndSetInput(previousState.text);
1922
- setCursorOffset(previousState.cursorOffset);
1923
- setPastedContents(previousState.pastedContents);
1924
- }
1925
- } : undefined,
1926
- highlights: combinedHighlights,
1927
- inlineGhostText,
1928
- inputFilter: lazySpaceInputFilter
1929
- };
1930
- const getBorderColor = () => {
1931
- const modeColors = {
1932
- bash: 'bashBorder'
1933
- };
1934
- // Mode colors take priority, then teammate color, then default
1935
- if (modeColors[mode]) {
1936
- return modeColors[mode];
1937
- }
1938
- // In-process teammates run headless - don't apply teammate colors to leader UI
1939
- if (isInProcessTeammate()) {
1940
- return 'promptBorder';
1941
- }
1942
- // Check for teammate color from environment
1943
- const teammateColorName = getTeammateColor();
1944
- if (teammateColorName && AGENT_COLORS.includes(teammateColorName)) {
1945
- return AGENT_COLOR_TO_THEME_COLOR[teammateColorName];
1946
- }
1947
- return 'promptBorder';
1948
- };
1949
- if (isExternalEditorActive) {
1950
- return _jsx(Box, { flexDirection: "row", alignItems: "center", justifyContent: "center", borderColor: getBorderColor(), borderStyle: "round", borderLeft: false, borderRight: false, borderBottom: true, width: "100%", children: _jsx(Text, { dimColor: true, italic: true, children: "Save and close editor to continue..." }) });
1951
- }
1952
- const textInputElement = isVimModeEnabled() ? _jsx(VimTextInput, { ...baseProps, initialMode: vimMode, onModeChange: setVimMode }) : _jsx(TextInput, { ...baseProps });
1953
- return _jsxs(Box, { flexDirection: "column", marginTop: briefOwnsGap ? 0 : 1, children: [!isFullscreenEnvEnabled() && _jsx(PromptInputQueuedCommands, {}), hasSuppressedDialogs && _jsx(Box, { marginTop: 1, marginLeft: 2, children: _jsx(Text, { dimColor: true, children: "Waiting for permission\u2026" }) }), _jsx(PromptInputStashNotice, { hasStash: stashedPrompt !== undefined }), swarmBanner ? _jsxs(_Fragment, { children: [_jsx(Text, { color: swarmBanner.bgColor, children: swarmBanner.text ? _jsxs(_Fragment, { children: ['─'.repeat(Math.max(0, columns - stringWidth(swarmBanner.text) - 4)), _jsxs(Text, { backgroundColor: swarmBanner.bgColor, color: "inverseText", children: [' ', swarmBanner.text, ' '] }), '──'] }) : '─'.repeat(columns) }), _jsxs(Box, { flexDirection: "row", width: "100%", children: [_jsx(PromptInputModeIndicator, { mode: mode, isLoading: isLoading, viewingAgentName: viewingAgentName, viewingAgentColor: viewingAgentColor }), _jsx(Box, { flexGrow: 1, flexShrink: 1, onClick: handleInputClick, children: textInputElement })] }), _jsx(Text, { color: swarmBanner.bgColor, children: '─'.repeat(columns) })] }) : _jsxs(Box, { flexDirection: "row", alignItems: "flex-start", justifyContent: "flex-start", borderColor: getBorderColor(), borderStyle: "round", borderLeft: false, borderRight: false, borderBottom: true, width: "100%", borderText: buildBorderText(showFastIcon ?? false, showFastIconHint, fastModeCooldown), children: [_jsx(PromptInputModeIndicator, { mode: mode, isLoading: isLoading, viewingAgentName: viewingAgentName, viewingAgentColor: viewingAgentColor }), _jsx(Box, { flexGrow: 1, flexShrink: 1, onClick: handleInputClick, children: textInputElement })] }), _jsx(PromptInputFooter, { apiKeyStatus: apiKeyStatus, debug: debug, exitMessage: exitMessage, vimMode: isVimModeEnabled() ? vimMode : undefined, mode: mode, autoUpdaterResult: autoUpdaterResult, isAutoUpdating: isAutoUpdating, verbose: verbose, onAutoUpdaterResult: onAutoUpdaterResult, onChangeIsUpdating: setIsAutoUpdating, suggestions: suggestions, selectedSuggestion: selectedSuggestion, maxColumnWidth: maxColumnWidth, toolPermissionContext: effectiveToolPermissionContext, helpOpen: helpOpen, suppressHint: input.length > 0, isLoading: isLoading, tasksSelected: tasksSelected, teamsSelected: teamsSelected, bridgeSelected: bridgeSelected, tmuxSelected: tmuxSelected, teammateFooterIndex: teammateFooterIndex, ideSelection: ideSelection, mcpClients: mcpClients, isPasting: isPasting, isInputWrapped: isInputWrapped, messages: messages, isSearching: isSearchingHistory, historyQuery: historyQuery, setHistoryQuery: setHistoryQuery, historyFailedMatch: historyFailedMatch, onOpenTasksDialog: isFullscreenEnvEnabled() ? handleOpenTasksDialog : undefined }), isFullscreenEnvEnabled() ? null : autoModeOptInDialog, isFullscreenEnvEnabled() ?
1954
- _jsx(Box, { position: "absolute", marginTop: briefOwnsGap ? -2 : -1, height: suggestions.length === 0 && !showAutoModeOptIn ? 1 : 0, width: "100%", paddingLeft: 2, paddingRight: 1, flexDirection: "column", justifyContent: "flex-end", overflow: "hidden", children: _jsx(Notifications, { apiKeyStatus: apiKeyStatus, autoUpdaterResult: autoUpdaterResult, debug: debug, isAutoUpdating: isAutoUpdating, verbose: verbose, messages: messages, onAutoUpdaterResult: onAutoUpdaterResult, onChangeIsUpdating: setIsAutoUpdating, ideSelection: ideSelection, mcpClients: mcpClients, isInputWrapped: isInputWrapped }) }) : null] });
1955
- }
1956
- /**
1957
- * Compute the initial paste ID by finding the max ID used in existing messages.
1958
- * This handles --continue/--resume scenarios where we need to avoid ID collisions.
1959
- */
1960
- function getInitialPasteId(messages) {
1961
- let maxId = 0;
1962
- for (const message of messages) {
1963
- if (message.type === 'user') {
1964
- // Check image paste IDs
1965
- if (message.imagePasteIds) {
1966
- for (const id of message.imagePasteIds) {
1967
- if (id > maxId)
1968
- maxId = id;
1969
- }
1970
- }
1971
- // Check text paste references in message content
1972
- if (Array.isArray(message.message.content)) {
1973
- for (const block of message.message.content) {
1974
- if (block.type === 'text') {
1975
- const refs = parseReferences(block.text);
1976
- for (const ref of refs) {
1977
- if (ref.id > maxId)
1978
- maxId = ref.id;
1979
- }
1980
- }
1981
- }
1982
- }
1983
- }
1984
- }
1985
- return maxId + 1;
1986
- }
1987
- function buildBorderText(showFastIcon, showFastIconHint, fastModeCooldown) {
1988
- if (!showFastIcon)
1989
- return undefined;
1990
- const fastSeg = showFastIconHint ? `${getFastIconString(true, fastModeCooldown)} ${chalk.dim('/fast')}` : getFastIconString(true, fastModeCooldown);
1991
- return {
1992
- content: ` ${fastSeg} `,
1993
- position: 'top',
1994
- align: 'end',
1995
- offset: 0
1996
- };
1997
- }
1998
- export default React.memo(PromptInput);