deplyze-code 0.1.0

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 (1936) hide show
  1. package/.env.example +6 -0
  2. package/README.en.md +210 -0
  3. package/README.md +210 -0
  4. package/bin/claude-haha +13 -0
  5. package/bin/deplyze +34 -0
  6. package/bunfig.toml +1 -0
  7. package/docs/00runtime.png +0 -0
  8. package/docs/01-overall-architecture.png +0 -0
  9. package/docs/02-request-lifecycle.png +0 -0
  10. package/docs/03-tool-system.png +0 -0
  11. package/docs/04-multi-agent.png +0 -0
  12. package/docs/05-terminal-ui.png +0 -0
  13. package/docs/06-permission-security.png +0 -0
  14. package/docs/07-services-layer.png +0 -0
  15. package/docs/08-state-data-flow.png +0 -0
  16. package/package.json +77 -0
  17. package/preload.ts +17 -0
  18. package/src/QueryEngine.ts +1295 -0
  19. package/src/Task.ts +125 -0
  20. package/src/Tool.ts +792 -0
  21. package/src/assistant/sessionHistory.ts +87 -0
  22. package/src/bootstrap/state.ts +1758 -0
  23. package/src/bridge/bridgeApi.ts +539 -0
  24. package/src/bridge/bridgeConfig.ts +48 -0
  25. package/src/bridge/bridgeDebug.ts +135 -0
  26. package/src/bridge/bridgeEnabled.ts +202 -0
  27. package/src/bridge/bridgeMain.ts +2999 -0
  28. package/src/bridge/bridgeMessaging.ts +461 -0
  29. package/src/bridge/bridgePermissionCallbacks.ts +43 -0
  30. package/src/bridge/bridgePointer.ts +210 -0
  31. package/src/bridge/bridgeStatusUtil.ts +163 -0
  32. package/src/bridge/bridgeUI.ts +530 -0
  33. package/src/bridge/capacityWake.ts +56 -0
  34. package/src/bridge/codeSessionApi.ts +168 -0
  35. package/src/bridge/createSession.ts +384 -0
  36. package/src/bridge/debugUtils.ts +141 -0
  37. package/src/bridge/envLessBridgeConfig.ts +165 -0
  38. package/src/bridge/flushGate.ts +71 -0
  39. package/src/bridge/inboundAttachments.ts +175 -0
  40. package/src/bridge/inboundMessages.ts +80 -0
  41. package/src/bridge/initReplBridge.ts +569 -0
  42. package/src/bridge/jwtUtils.ts +256 -0
  43. package/src/bridge/pollConfig.ts +110 -0
  44. package/src/bridge/pollConfigDefaults.ts +82 -0
  45. package/src/bridge/remoteBridgeCore.ts +1008 -0
  46. package/src/bridge/replBridge.ts +2406 -0
  47. package/src/bridge/replBridgeHandle.ts +36 -0
  48. package/src/bridge/replBridgeTransport.ts +370 -0
  49. package/src/bridge/sessionIdCompat.ts +57 -0
  50. package/src/bridge/sessionRunner.ts +550 -0
  51. package/src/bridge/trustedDevice.ts +210 -0
  52. package/src/bridge/types.ts +262 -0
  53. package/src/bridge/workSecret.ts +127 -0
  54. package/src/buddy/CompanionSprite.tsx +371 -0
  55. package/src/buddy/companion.ts +133 -0
  56. package/src/buddy/prompt.ts +36 -0
  57. package/src/buddy/sprites.ts +514 -0
  58. package/src/buddy/types.ts +148 -0
  59. package/src/buddy/useBuddyNotification.tsx +98 -0
  60. package/src/cli/exit.ts +31 -0
  61. package/src/cli/handlers/agents.ts +70 -0
  62. package/src/cli/handlers/auth.ts +330 -0
  63. package/src/cli/handlers/autoMode.ts +170 -0
  64. package/src/cli/handlers/mcp.tsx +362 -0
  65. package/src/cli/handlers/plugins.ts +878 -0
  66. package/src/cli/handlers/util.tsx +110 -0
  67. package/src/cli/ndjsonSafeStringify.ts +32 -0
  68. package/src/cli/print.ts +5594 -0
  69. package/src/cli/remoteIO.ts +255 -0
  70. package/src/cli/structuredIO.ts +859 -0
  71. package/src/cli/transports/HybridTransport.ts +282 -0
  72. package/src/cli/transports/SSETransport.ts +711 -0
  73. package/src/cli/transports/SerialBatchEventUploader.ts +275 -0
  74. package/src/cli/transports/WebSocketTransport.ts +800 -0
  75. package/src/cli/transports/WorkerStateUploader.ts +131 -0
  76. package/src/cli/transports/ccrClient.ts +998 -0
  77. package/src/cli/transports/transportUtils.ts +45 -0
  78. package/src/cli/update.ts +422 -0
  79. package/src/commands/add-dir/add-dir.tsx +126 -0
  80. package/src/commands/add-dir/index.ts +11 -0
  81. package/src/commands/add-dir/validation.ts +110 -0
  82. package/src/commands/advisor.ts +109 -0
  83. package/src/commands/agents/agents.tsx +12 -0
  84. package/src/commands/agents/index.ts +10 -0
  85. package/src/commands/ant-trace/index.js +1 -0
  86. package/src/commands/autofix-pr/index.js +1 -0
  87. package/src/commands/backfill-sessions/index.js +1 -0
  88. package/src/commands/branch/branch.ts +296 -0
  89. package/src/commands/branch/index.ts +14 -0
  90. package/src/commands/break-cache/index.js +1 -0
  91. package/src/commands/bridge/bridge.tsx +509 -0
  92. package/src/commands/bridge/index.ts +26 -0
  93. package/src/commands/bridge-kick.ts +200 -0
  94. package/src/commands/brief.ts +130 -0
  95. package/src/commands/btw/btw.tsx +243 -0
  96. package/src/commands/btw/index.ts +13 -0
  97. package/src/commands/bughunter/index.js +1 -0
  98. package/src/commands/chrome/chrome.tsx +285 -0
  99. package/src/commands/chrome/index.ts +13 -0
  100. package/src/commands/clear/caches.ts +144 -0
  101. package/src/commands/clear/clear.ts +7 -0
  102. package/src/commands/clear/conversation.ts +251 -0
  103. package/src/commands/clear/index.ts +19 -0
  104. package/src/commands/color/color.ts +93 -0
  105. package/src/commands/color/index.ts +16 -0
  106. package/src/commands/commit-push-pr.ts +158 -0
  107. package/src/commands/commit.ts +92 -0
  108. package/src/commands/compact/compact.ts +287 -0
  109. package/src/commands/compact/index.ts +15 -0
  110. package/src/commands/config/config.tsx +7 -0
  111. package/src/commands/config/index.ts +11 -0
  112. package/src/commands/context/context-noninteractive.ts +325 -0
  113. package/src/commands/context/context.tsx +64 -0
  114. package/src/commands/context/index.ts +24 -0
  115. package/src/commands/copy/copy.tsx +371 -0
  116. package/src/commands/copy/index.ts +15 -0
  117. package/src/commands/cost/cost.ts +24 -0
  118. package/src/commands/cost/index.ts +23 -0
  119. package/src/commands/createMovedToPluginCommand.ts +65 -0
  120. package/src/commands/ctx_viz/index.js +1 -0
  121. package/src/commands/debug-tool-call/index.js +1 -0
  122. package/src/commands/desktop/desktop.tsx +9 -0
  123. package/src/commands/desktop/index.ts +26 -0
  124. package/src/commands/diff/diff.tsx +9 -0
  125. package/src/commands/diff/index.ts +8 -0
  126. package/src/commands/doctor/doctor.tsx +7 -0
  127. package/src/commands/doctor/index.ts +12 -0
  128. package/src/commands/effort/effort.tsx +183 -0
  129. package/src/commands/effort/index.ts +13 -0
  130. package/src/commands/env/index.js +1 -0
  131. package/src/commands/exit/exit.tsx +33 -0
  132. package/src/commands/exit/index.ts +12 -0
  133. package/src/commands/export/export.tsx +91 -0
  134. package/src/commands/export/index.ts +11 -0
  135. package/src/commands/extra-usage/extra-usage-core.ts +118 -0
  136. package/src/commands/extra-usage/extra-usage-noninteractive.ts +16 -0
  137. package/src/commands/extra-usage/extra-usage.tsx +17 -0
  138. package/src/commands/extra-usage/index.ts +31 -0
  139. package/src/commands/fast/fast.tsx +269 -0
  140. package/src/commands/fast/index.ts +26 -0
  141. package/src/commands/feedback/feedback.tsx +25 -0
  142. package/src/commands/feedback/index.ts +26 -0
  143. package/src/commands/files/files.ts +19 -0
  144. package/src/commands/files/index.ts +12 -0
  145. package/src/commands/good-claude/index.js +1 -0
  146. package/src/commands/heapdump/heapdump.ts +17 -0
  147. package/src/commands/heapdump/index.ts +12 -0
  148. package/src/commands/help/help.tsx +11 -0
  149. package/src/commands/help/index.ts +10 -0
  150. package/src/commands/hooks/hooks.tsx +13 -0
  151. package/src/commands/hooks/index.ts +11 -0
  152. package/src/commands/ide/ide.tsx +646 -0
  153. package/src/commands/ide/index.ts +11 -0
  154. package/src/commands/init-verifiers.ts +262 -0
  155. package/src/commands/init.ts +256 -0
  156. package/src/commands/insights.ts +3200 -0
  157. package/src/commands/install-github-app/ApiKeyStep.tsx +231 -0
  158. package/src/commands/install-github-app/CheckExistingSecretStep.tsx +190 -0
  159. package/src/commands/install-github-app/CheckGitHubStep.tsx +15 -0
  160. package/src/commands/install-github-app/ChooseRepoStep.tsx +211 -0
  161. package/src/commands/install-github-app/CreatingStep.tsx +65 -0
  162. package/src/commands/install-github-app/ErrorStep.tsx +85 -0
  163. package/src/commands/install-github-app/ExistingWorkflowStep.tsx +103 -0
  164. package/src/commands/install-github-app/InstallAppStep.tsx +94 -0
  165. package/src/commands/install-github-app/OAuthFlowStep.tsx +276 -0
  166. package/src/commands/install-github-app/SuccessStep.tsx +96 -0
  167. package/src/commands/install-github-app/WarningsStep.tsx +73 -0
  168. package/src/commands/install-github-app/index.ts +13 -0
  169. package/src/commands/install-github-app/install-github-app.tsx +587 -0
  170. package/src/commands/install-github-app/setupGitHubActions.ts +325 -0
  171. package/src/commands/install-slack-app/index.ts +12 -0
  172. package/src/commands/install-slack-app/install-slack-app.ts +30 -0
  173. package/src/commands/install.tsx +300 -0
  174. package/src/commands/issue/index.js +1 -0
  175. package/src/commands/keybindings/index.ts +13 -0
  176. package/src/commands/keybindings/keybindings.ts +53 -0
  177. package/src/commands/login/index.ts +14 -0
  178. package/src/commands/login/login.tsx +104 -0
  179. package/src/commands/logout/index.ts +10 -0
  180. package/src/commands/logout/logout.tsx +82 -0
  181. package/src/commands/mcp/addCommand.ts +280 -0
  182. package/src/commands/mcp/index.ts +12 -0
  183. package/src/commands/mcp/mcp.tsx +85 -0
  184. package/src/commands/mcp/xaaIdpCommand.ts +266 -0
  185. package/src/commands/memory/index.ts +10 -0
  186. package/src/commands/memory/memory.tsx +90 -0
  187. package/src/commands/mobile/index.ts +11 -0
  188. package/src/commands/mobile/mobile.tsx +274 -0
  189. package/src/commands/mock-limits/index.js +1 -0
  190. package/src/commands/model/index.ts +16 -0
  191. package/src/commands/model/model.tsx +297 -0
  192. package/src/commands/oauth-refresh/index.js +1 -0
  193. package/src/commands/onboarding/index.js +1 -0
  194. package/src/commands/output-style/index.ts +11 -0
  195. package/src/commands/output-style/output-style.tsx +7 -0
  196. package/src/commands/passes/index.ts +22 -0
  197. package/src/commands/passes/passes.tsx +24 -0
  198. package/src/commands/perf-issue/index.js +1 -0
  199. package/src/commands/permissions/index.ts +11 -0
  200. package/src/commands/permissions/permissions.tsx +10 -0
  201. package/src/commands/plan/index.ts +11 -0
  202. package/src/commands/plan/plan.tsx +122 -0
  203. package/src/commands/plugin/AddMarketplace.tsx +162 -0
  204. package/src/commands/plugin/BrowseMarketplace.tsx +802 -0
  205. package/src/commands/plugin/DiscoverPlugins.tsx +781 -0
  206. package/src/commands/plugin/ManageMarketplaces.tsx +838 -0
  207. package/src/commands/plugin/ManagePlugins.tsx +2215 -0
  208. package/src/commands/plugin/PluginErrors.tsx +124 -0
  209. package/src/commands/plugin/PluginOptionsDialog.tsx +357 -0
  210. package/src/commands/plugin/PluginOptionsFlow.tsx +135 -0
  211. package/src/commands/plugin/PluginSettings.tsx +1072 -0
  212. package/src/commands/plugin/PluginTrustWarning.tsx +32 -0
  213. package/src/commands/plugin/UnifiedInstalledCell.tsx +565 -0
  214. package/src/commands/plugin/ValidatePlugin.tsx +98 -0
  215. package/src/commands/plugin/index.tsx +11 -0
  216. package/src/commands/plugin/parseArgs.ts +103 -0
  217. package/src/commands/plugin/plugin.tsx +7 -0
  218. package/src/commands/plugin/pluginDetailsHelpers.tsx +117 -0
  219. package/src/commands/plugin/usePagination.ts +171 -0
  220. package/src/commands/pr_comments/index.ts +50 -0
  221. package/src/commands/privacy-settings/index.ts +14 -0
  222. package/src/commands/privacy-settings/privacy-settings.tsx +58 -0
  223. package/src/commands/rate-limit-options/index.ts +19 -0
  224. package/src/commands/rate-limit-options/rate-limit-options.tsx +210 -0
  225. package/src/commands/release-notes/index.ts +11 -0
  226. package/src/commands/release-notes/release-notes.ts +50 -0
  227. package/src/commands/reload-plugins/index.ts +18 -0
  228. package/src/commands/reload-plugins/reload-plugins.ts +61 -0
  229. package/src/commands/remote-env/index.ts +15 -0
  230. package/src/commands/remote-env/remote-env.tsx +7 -0
  231. package/src/commands/remote-setup/api.ts +182 -0
  232. package/src/commands/remote-setup/index.ts +20 -0
  233. package/src/commands/remote-setup/remote-setup.tsx +187 -0
  234. package/src/commands/rename/generateSessionName.ts +67 -0
  235. package/src/commands/rename/index.ts +12 -0
  236. package/src/commands/rename/rename.ts +87 -0
  237. package/src/commands/reset-limits/index.js +4 -0
  238. package/src/commands/resume/index.ts +12 -0
  239. package/src/commands/resume/resume.tsx +275 -0
  240. package/src/commands/review/UltrareviewOverageDialog.tsx +96 -0
  241. package/src/commands/review/reviewRemote.ts +316 -0
  242. package/src/commands/review/ultrareviewCommand.tsx +58 -0
  243. package/src/commands/review/ultrareviewEnabled.ts +14 -0
  244. package/src/commands/review.ts +57 -0
  245. package/src/commands/rewind/index.ts +13 -0
  246. package/src/commands/rewind/rewind.ts +13 -0
  247. package/src/commands/sandbox-toggle/index.ts +50 -0
  248. package/src/commands/sandbox-toggle/sandbox-toggle.tsx +83 -0
  249. package/src/commands/security-review.ts +243 -0
  250. package/src/commands/session/index.ts +16 -0
  251. package/src/commands/session/session.tsx +140 -0
  252. package/src/commands/share/index.js +1 -0
  253. package/src/commands/skills/index.ts +10 -0
  254. package/src/commands/skills/skills.tsx +8 -0
  255. package/src/commands/stats/index.ts +10 -0
  256. package/src/commands/stats/stats.tsx +7 -0
  257. package/src/commands/status/index.ts +12 -0
  258. package/src/commands/status/status.tsx +8 -0
  259. package/src/commands/statusline.tsx +24 -0
  260. package/src/commands/stickers/index.ts +11 -0
  261. package/src/commands/stickers/stickers.ts +16 -0
  262. package/src/commands/summary/index.js +1 -0
  263. package/src/commands/tag/index.ts +12 -0
  264. package/src/commands/tag/tag.tsx +215 -0
  265. package/src/commands/tasks/index.ts +11 -0
  266. package/src/commands/tasks/tasks.tsx +8 -0
  267. package/src/commands/teleport/index.js +1 -0
  268. package/src/commands/terminalSetup/index.ts +23 -0
  269. package/src/commands/terminalSetup/terminalSetup.tsx +531 -0
  270. package/src/commands/theme/index.ts +10 -0
  271. package/src/commands/theme/theme.tsx +57 -0
  272. package/src/commands/thinkback/index.ts +13 -0
  273. package/src/commands/thinkback/thinkback.tsx +554 -0
  274. package/src/commands/thinkback-play/index.ts +17 -0
  275. package/src/commands/thinkback-play/thinkback-play.ts +43 -0
  276. package/src/commands/ultraplan.tsx +471 -0
  277. package/src/commands/upgrade/index.ts +16 -0
  278. package/src/commands/upgrade/upgrade.tsx +38 -0
  279. package/src/commands/usage/index.ts +9 -0
  280. package/src/commands/usage/usage.tsx +7 -0
  281. package/src/commands/version.ts +22 -0
  282. package/src/commands/vim/index.ts +11 -0
  283. package/src/commands/vim/vim.ts +38 -0
  284. package/src/commands/voice/index.ts +20 -0
  285. package/src/commands/voice/voice.ts +150 -0
  286. package/src/commands.ts +754 -0
  287. package/src/components/AgentProgressLine.tsx +136 -0
  288. package/src/components/App.tsx +56 -0
  289. package/src/components/ApproveApiKey.tsx +123 -0
  290. package/src/components/AutoModeOptInDialog.tsx +142 -0
  291. package/src/components/AutoUpdater.tsx +198 -0
  292. package/src/components/AutoUpdaterWrapper.tsx +91 -0
  293. package/src/components/AwsAuthStatusBox.tsx +82 -0
  294. package/src/components/BaseTextInput.tsx +136 -0
  295. package/src/components/BashModeProgress.tsx +56 -0
  296. package/src/components/BridgeDialog.tsx +401 -0
  297. package/src/components/BypassPermissionsModeDialog.tsx +87 -0
  298. package/src/components/ChannelDowngradeDialog.tsx +102 -0
  299. package/src/components/ClaudeCodeHint/PluginHintMenu.tsx +78 -0
  300. package/src/components/ClaudeInChromeOnboarding.tsx +121 -0
  301. package/src/components/ClaudeMdExternalIncludesDialog.tsx +137 -0
  302. package/src/components/ClickableImageRef.tsx +73 -0
  303. package/src/components/CompactSummary.tsx +118 -0
  304. package/src/components/ConfigurableShortcutHint.tsx +57 -0
  305. package/src/components/ConsoleOAuthFlow.tsx +631 -0
  306. package/src/components/ContextSuggestions.tsx +47 -0
  307. package/src/components/ContextVisualization.tsx +489 -0
  308. package/src/components/CoordinatorAgentStatus.tsx +273 -0
  309. package/src/components/CostThresholdDialog.tsx +50 -0
  310. package/src/components/CtrlOToExpand.tsx +51 -0
  311. package/src/components/CustomSelect/SelectMulti.tsx +213 -0
  312. package/src/components/CustomSelect/index.ts +3 -0
  313. package/src/components/CustomSelect/option-map.ts +50 -0
  314. package/src/components/CustomSelect/select-input-option.tsx +488 -0
  315. package/src/components/CustomSelect/select-option.tsx +68 -0
  316. package/src/components/CustomSelect/select.tsx +690 -0
  317. package/src/components/CustomSelect/use-multi-select-state.ts +414 -0
  318. package/src/components/CustomSelect/use-select-input.ts +287 -0
  319. package/src/components/CustomSelect/use-select-navigation.ts +653 -0
  320. package/src/components/CustomSelect/use-select-state.ts +157 -0
  321. package/src/components/DesktopHandoff.tsx +193 -0
  322. package/src/components/DesktopUpsell/DesktopUpsellStartup.tsx +171 -0
  323. package/src/components/DevBar.tsx +49 -0
  324. package/src/components/DevChannelsDialog.tsx +105 -0
  325. package/src/components/DiagnosticsDisplay.tsx +95 -0
  326. package/src/components/EffortCallout.tsx +265 -0
  327. package/src/components/EffortIndicator.ts +42 -0
  328. package/src/components/ExitFlow.tsx +48 -0
  329. package/src/components/ExportDialog.tsx +128 -0
  330. package/src/components/FallbackToolUseErrorMessage.tsx +116 -0
  331. package/src/components/FallbackToolUseRejectedMessage.tsx +16 -0
  332. package/src/components/FastIcon.tsx +46 -0
  333. package/src/components/Feedback.tsx +592 -0
  334. package/src/components/FeedbackSurvey/FeedbackSurvey.tsx +174 -0
  335. package/src/components/FeedbackSurvey/FeedbackSurveyView.tsx +108 -0
  336. package/src/components/FeedbackSurvey/TranscriptSharePrompt.tsx +88 -0
  337. package/src/components/FeedbackSurvey/submitTranscriptShare.ts +112 -0
  338. package/src/components/FeedbackSurvey/useDebouncedDigitInput.ts +82 -0
  339. package/src/components/FeedbackSurvey/useFeedbackSurvey.tsx +296 -0
  340. package/src/components/FeedbackSurvey/useMemorySurvey.tsx +213 -0
  341. package/src/components/FeedbackSurvey/usePostCompactSurvey.tsx +206 -0
  342. package/src/components/FeedbackSurvey/useSurveyState.tsx +100 -0
  343. package/src/components/FileEditToolDiff.tsx +181 -0
  344. package/src/components/FileEditToolUpdatedMessage.tsx +124 -0
  345. package/src/components/FileEditToolUseRejectedMessage.tsx +170 -0
  346. package/src/components/FilePathLink.tsx +43 -0
  347. package/src/components/FullscreenLayout.tsx +637 -0
  348. package/src/components/GlobalSearchDialog.tsx +343 -0
  349. package/src/components/HelpV2/Commands.tsx +82 -0
  350. package/src/components/HelpV2/General.tsx +23 -0
  351. package/src/components/HelpV2/HelpV2.tsx +184 -0
  352. package/src/components/HighlightedCode/Fallback.tsx +193 -0
  353. package/src/components/HighlightedCode.tsx +190 -0
  354. package/src/components/HistorySearchDialog.tsx +118 -0
  355. package/src/components/IdeAutoConnectDialog.tsx +154 -0
  356. package/src/components/IdeOnboardingDialog.tsx +167 -0
  357. package/src/components/IdeStatusIndicator.tsx +58 -0
  358. package/src/components/IdleReturnDialog.tsx +118 -0
  359. package/src/components/InterruptedByUser.tsx +15 -0
  360. package/src/components/InvalidConfigDialog.tsx +156 -0
  361. package/src/components/InvalidSettingsDialog.tsx +89 -0
  362. package/src/components/KeybindingWarnings.tsx +55 -0
  363. package/src/components/LanguagePicker.tsx +86 -0
  364. package/src/components/LogSelector.tsx +1575 -0
  365. package/src/components/LogoV2/AnimatedAsterisk.tsx +50 -0
  366. package/src/components/LogoV2/AnimatedClawd.tsx +124 -0
  367. package/src/components/LogoV2/ChannelsNotice.tsx +266 -0
  368. package/src/components/LogoV2/Clawd.tsx +240 -0
  369. package/src/components/LogoV2/CondensedLogo.tsx +161 -0
  370. package/src/components/LogoV2/EmergencyTip.tsx +58 -0
  371. package/src/components/LogoV2/Feed.tsx +112 -0
  372. package/src/components/LogoV2/FeedColumn.tsx +59 -0
  373. package/src/components/LogoV2/GuestPassesUpsell.tsx +70 -0
  374. package/src/components/LogoV2/LogoV2.tsx +543 -0
  375. package/src/components/LogoV2/Opus1mMergeNotice.tsx +55 -0
  376. package/src/components/LogoV2/OverageCreditUpsell.tsx +166 -0
  377. package/src/components/LogoV2/VoiceModeNotice.tsx +68 -0
  378. package/src/components/LogoV2/WelcomeV2.tsx +433 -0
  379. package/src/components/LogoV2/feedConfigs.tsx +92 -0
  380. package/src/components/LspRecommendation/LspRecommendationMenu.tsx +88 -0
  381. package/src/components/MCPServerApprovalDialog.tsx +115 -0
  382. package/src/components/MCPServerDesktopImportDialog.tsx +203 -0
  383. package/src/components/MCPServerDialogCopy.tsx +15 -0
  384. package/src/components/MCPServerMultiselectDialog.tsx +133 -0
  385. package/src/components/ManagedSettingsSecurityDialog/ManagedSettingsSecurityDialog.tsx +149 -0
  386. package/src/components/ManagedSettingsSecurityDialog/utils.ts +144 -0
  387. package/src/components/Markdown.tsx +236 -0
  388. package/src/components/MarkdownTable.tsx +322 -0
  389. package/src/components/MemoryUsageIndicator.tsx +37 -0
  390. package/src/components/Message.tsx +627 -0
  391. package/src/components/MessageModel.tsx +43 -0
  392. package/src/components/MessageResponse.tsx +78 -0
  393. package/src/components/MessageRow.tsx +383 -0
  394. package/src/components/MessageSelector.tsx +831 -0
  395. package/src/components/MessageTimestamp.tsx +63 -0
  396. package/src/components/Messages.tsx +834 -0
  397. package/src/components/ModelPicker.tsx +448 -0
  398. package/src/components/NativeAutoUpdater.tsx +193 -0
  399. package/src/components/NotebookEditToolUseRejectedMessage.tsx +92 -0
  400. package/src/components/OffscreenFreeze.tsx +44 -0
  401. package/src/components/Onboarding.tsx +244 -0
  402. package/src/components/OutputStylePicker.tsx +112 -0
  403. package/src/components/PackageManagerAutoUpdater.tsx +104 -0
  404. package/src/components/Passes/Passes.tsx +184 -0
  405. package/src/components/PrBadge.tsx +97 -0
  406. package/src/components/PressEnterToContinue.tsx +15 -0
  407. package/src/components/PromptInput/HistorySearchInput.tsx +51 -0
  408. package/src/components/PromptInput/IssueFlagBanner.tsx +12 -0
  409. package/src/components/PromptInput/Notifications.tsx +332 -0
  410. package/src/components/PromptInput/PromptInput.tsx +2339 -0
  411. package/src/components/PromptInput/PromptInputFooter.tsx +191 -0
  412. package/src/components/PromptInput/PromptInputFooterLeftSide.tsx +517 -0
  413. package/src/components/PromptInput/PromptInputFooterSuggestions.tsx +293 -0
  414. package/src/components/PromptInput/PromptInputHelpMenu.tsx +358 -0
  415. package/src/components/PromptInput/PromptInputModeIndicator.tsx +93 -0
  416. package/src/components/PromptInput/PromptInputQueuedCommands.tsx +117 -0
  417. package/src/components/PromptInput/PromptInputStashNotice.tsx +25 -0
  418. package/src/components/PromptInput/SandboxPromptFooterHint.tsx +64 -0
  419. package/src/components/PromptInput/ShimmeredInput.tsx +143 -0
  420. package/src/components/PromptInput/VoiceIndicator.tsx +137 -0
  421. package/src/components/PromptInput/inputModes.ts +33 -0
  422. package/src/components/PromptInput/inputPaste.ts +90 -0
  423. package/src/components/PromptInput/useMaybeTruncateInput.ts +58 -0
  424. package/src/components/PromptInput/usePromptInputPlaceholder.ts +76 -0
  425. package/src/components/PromptInput/useShowFastIconHint.ts +31 -0
  426. package/src/components/PromptInput/useSwarmBanner.ts +155 -0
  427. package/src/components/PromptInput/utils.ts +60 -0
  428. package/src/components/QuickOpenDialog.tsx +244 -0
  429. package/src/components/RemoteCallout.tsx +76 -0
  430. package/src/components/RemoteEnvironmentDialog.tsx +340 -0
  431. package/src/components/ResumeTask.tsx +268 -0
  432. package/src/components/SandboxViolationExpandedView.tsx +99 -0
  433. package/src/components/ScrollKeybindingHandler.tsx +1012 -0
  434. package/src/components/SearchBox.tsx +72 -0
  435. package/src/components/SentryErrorBoundary.ts +28 -0
  436. package/src/components/SessionBackgroundHint.tsx +108 -0
  437. package/src/components/SessionPreview.tsx +194 -0
  438. package/src/components/Settings/Config.tsx +1822 -0
  439. package/src/components/Settings/Settings.tsx +137 -0
  440. package/src/components/Settings/Status.tsx +241 -0
  441. package/src/components/Settings/Usage.tsx +377 -0
  442. package/src/components/ShowInIDEPrompt.tsx +170 -0
  443. package/src/components/SkillImprovementSurvey.tsx +152 -0
  444. package/src/components/Spinner/FlashingChar.tsx +61 -0
  445. package/src/components/Spinner/GlimmerMessage.tsx +328 -0
  446. package/src/components/Spinner/ShimmerChar.tsx +36 -0
  447. package/src/components/Spinner/SpinnerAnimationRow.tsx +265 -0
  448. package/src/components/Spinner/SpinnerGlyph.tsx +80 -0
  449. package/src/components/Spinner/TeammateSpinnerLine.tsx +233 -0
  450. package/src/components/Spinner/TeammateSpinnerTree.tsx +272 -0
  451. package/src/components/Spinner/index.ts +10 -0
  452. package/src/components/Spinner/teammateSelectHint.ts +1 -0
  453. package/src/components/Spinner/useShimmerAnimation.ts +31 -0
  454. package/src/components/Spinner/useStalledAnimation.ts +75 -0
  455. package/src/components/Spinner/utils.ts +84 -0
  456. package/src/components/Spinner.tsx +562 -0
  457. package/src/components/Stats.tsx +1228 -0
  458. package/src/components/StatusLine.tsx +324 -0
  459. package/src/components/StatusNotices.tsx +55 -0
  460. package/src/components/StructuredDiff/Fallback.tsx +487 -0
  461. package/src/components/StructuredDiff/colorDiff.ts +37 -0
  462. package/src/components/StructuredDiff.tsx +190 -0
  463. package/src/components/StructuredDiffList.tsx +30 -0
  464. package/src/components/TagTabs.tsx +139 -0
  465. package/src/components/TaskListV2.tsx +378 -0
  466. package/src/components/TeammateViewHeader.tsx +82 -0
  467. package/src/components/TeleportError.tsx +189 -0
  468. package/src/components/TeleportProgress.tsx +140 -0
  469. package/src/components/TeleportRepoMismatchDialog.tsx +104 -0
  470. package/src/components/TeleportResumeWrapper.tsx +167 -0
  471. package/src/components/TeleportStash.tsx +116 -0
  472. package/src/components/TextInput.tsx +124 -0
  473. package/src/components/ThemePicker.tsx +333 -0
  474. package/src/components/ThinkingToggle.tsx +153 -0
  475. package/src/components/TokenWarning.tsx +179 -0
  476. package/src/components/ToolUseLoader.tsx +42 -0
  477. package/src/components/TrustDialog/TrustDialog.tsx +290 -0
  478. package/src/components/TrustDialog/utils.ts +245 -0
  479. package/src/components/ValidationErrorsList.tsx +148 -0
  480. package/src/components/VimTextInput.tsx +140 -0
  481. package/src/components/VirtualMessageList.tsx +1082 -0
  482. package/src/components/WorkflowMultiselectDialog.tsx +128 -0
  483. package/src/components/WorktreeExitDialog.tsx +231 -0
  484. package/src/components/agents/AgentDetail.tsx +220 -0
  485. package/src/components/agents/AgentEditor.tsx +178 -0
  486. package/src/components/agents/AgentNavigationFooter.tsx +26 -0
  487. package/src/components/agents/AgentsList.tsx +440 -0
  488. package/src/components/agents/AgentsMenu.tsx +800 -0
  489. package/src/components/agents/ColorPicker.tsx +112 -0
  490. package/src/components/agents/ModelSelector.tsx +68 -0
  491. package/src/components/agents/ToolSelector.tsx +562 -0
  492. package/src/components/agents/agentFileUtils.ts +272 -0
  493. package/src/components/agents/generateAgent.ts +197 -0
  494. package/src/components/agents/new-agent-creation/CreateAgentWizard.tsx +97 -0
  495. package/src/components/agents/new-agent-creation/wizard-steps/ColorStep.tsx +84 -0
  496. package/src/components/agents/new-agent-creation/wizard-steps/ConfirmStep.tsx +378 -0
  497. package/src/components/agents/new-agent-creation/wizard-steps/ConfirmStepWrapper.tsx +74 -0
  498. package/src/components/agents/new-agent-creation/wizard-steps/DescriptionStep.tsx +123 -0
  499. package/src/components/agents/new-agent-creation/wizard-steps/GenerateStep.tsx +143 -0
  500. package/src/components/agents/new-agent-creation/wizard-steps/LocationStep.tsx +80 -0
  501. package/src/components/agents/new-agent-creation/wizard-steps/MemoryStep.tsx +113 -0
  502. package/src/components/agents/new-agent-creation/wizard-steps/MethodStep.tsx +80 -0
  503. package/src/components/agents/new-agent-creation/wizard-steps/ModelStep.tsx +52 -0
  504. package/src/components/agents/new-agent-creation/wizard-steps/PromptStep.tsx +128 -0
  505. package/src/components/agents/new-agent-creation/wizard-steps/ToolsStep.tsx +61 -0
  506. package/src/components/agents/new-agent-creation/wizard-steps/TypeStep.tsx +103 -0
  507. package/src/components/agents/types.ts +27 -0
  508. package/src/components/agents/utils.ts +18 -0
  509. package/src/components/agents/validateAgent.ts +109 -0
  510. package/src/components/design-system/Byline.tsx +77 -0
  511. package/src/components/design-system/Dialog.tsx +138 -0
  512. package/src/components/design-system/Divider.tsx +149 -0
  513. package/src/components/design-system/FuzzyPicker.tsx +312 -0
  514. package/src/components/design-system/KeyboardShortcutHint.tsx +81 -0
  515. package/src/components/design-system/ListItem.tsx +244 -0
  516. package/src/components/design-system/LoadingState.tsx +94 -0
  517. package/src/components/design-system/Pane.tsx +77 -0
  518. package/src/components/design-system/ProgressBar.tsx +86 -0
  519. package/src/components/design-system/Ratchet.tsx +80 -0
  520. package/src/components/design-system/StatusIcon.tsx +95 -0
  521. package/src/components/design-system/Tabs.tsx +340 -0
  522. package/src/components/design-system/ThemeProvider.tsx +170 -0
  523. package/src/components/design-system/ThemedBox.tsx +156 -0
  524. package/src/components/design-system/ThemedText.tsx +124 -0
  525. package/src/components/design-system/color.ts +30 -0
  526. package/src/components/diff/DiffDetailView.tsx +281 -0
  527. package/src/components/diff/DiffDialog.tsx +383 -0
  528. package/src/components/diff/DiffFileList.tsx +292 -0
  529. package/src/components/grove/Grove.tsx +463 -0
  530. package/src/components/hooks/HooksConfigMenu.tsx +578 -0
  531. package/src/components/hooks/PromptDialog.tsx +90 -0
  532. package/src/components/hooks/SelectEventMode.tsx +127 -0
  533. package/src/components/hooks/SelectHookMode.tsx +112 -0
  534. package/src/components/hooks/SelectMatcherMode.tsx +144 -0
  535. package/src/components/hooks/ViewHookMode.tsx +199 -0
  536. package/src/components/mcp/CapabilitiesSection.tsx +61 -0
  537. package/src/components/mcp/ElicitationDialog.tsx +1169 -0
  538. package/src/components/mcp/MCPAgentServerMenu.tsx +183 -0
  539. package/src/components/mcp/MCPListPanel.tsx +504 -0
  540. package/src/components/mcp/MCPReconnect.tsx +167 -0
  541. package/src/components/mcp/MCPRemoteServerMenu.tsx +649 -0
  542. package/src/components/mcp/MCPSettings.tsx +398 -0
  543. package/src/components/mcp/MCPStdioServerMenu.tsx +177 -0
  544. package/src/components/mcp/MCPToolDetailView.tsx +212 -0
  545. package/src/components/mcp/MCPToolListView.tsx +141 -0
  546. package/src/components/mcp/McpParsingWarnings.tsx +213 -0
  547. package/src/components/mcp/index.ts +9 -0
  548. package/src/components/mcp/utils/reconnectHelpers.tsx +49 -0
  549. package/src/components/memory/MemoryFileSelector.tsx +438 -0
  550. package/src/components/memory/MemoryUpdateNotification.tsx +45 -0
  551. package/src/components/messageActions.tsx +450 -0
  552. package/src/components/messages/AdvisorMessage.tsx +158 -0
  553. package/src/components/messages/AssistantRedactedThinkingMessage.tsx +31 -0
  554. package/src/components/messages/AssistantTextMessage.tsx +270 -0
  555. package/src/components/messages/AssistantThinkingMessage.tsx +86 -0
  556. package/src/components/messages/AssistantToolUseMessage.tsx +368 -0
  557. package/src/components/messages/AttachmentMessage.tsx +536 -0
  558. package/src/components/messages/CollapsedReadSearchContent.tsx +484 -0
  559. package/src/components/messages/CompactBoundaryMessage.tsx +18 -0
  560. package/src/components/messages/GroupedToolUseContent.tsx +58 -0
  561. package/src/components/messages/HighlightedThinkingText.tsx +162 -0
  562. package/src/components/messages/HookProgressMessage.tsx +116 -0
  563. package/src/components/messages/PlanApprovalMessage.tsx +222 -0
  564. package/src/components/messages/RateLimitMessage.tsx +161 -0
  565. package/src/components/messages/ShutdownMessage.tsx +132 -0
  566. package/src/components/messages/SystemAPIErrorMessage.tsx +141 -0
  567. package/src/components/messages/SystemTextMessage.tsx +827 -0
  568. package/src/components/messages/TaskAssignmentMessage.tsx +76 -0
  569. package/src/components/messages/UserAgentNotificationMessage.tsx +83 -0
  570. package/src/components/messages/UserBashInputMessage.tsx +58 -0
  571. package/src/components/messages/UserBashOutputMessage.tsx +54 -0
  572. package/src/components/messages/UserChannelMessage.tsx +137 -0
  573. package/src/components/messages/UserCommandMessage.tsx +108 -0
  574. package/src/components/messages/UserImageMessage.tsx +59 -0
  575. package/src/components/messages/UserLocalCommandOutputMessage.tsx +167 -0
  576. package/src/components/messages/UserMemoryInputMessage.tsx +75 -0
  577. package/src/components/messages/UserPlanMessage.tsx +42 -0
  578. package/src/components/messages/UserPromptMessage.tsx +80 -0
  579. package/src/components/messages/UserResourceUpdateMessage.tsx +121 -0
  580. package/src/components/messages/UserTeammateMessage.tsx +206 -0
  581. package/src/components/messages/UserTextMessage.tsx +275 -0
  582. package/src/components/messages/UserToolResultMessage/RejectedPlanMessage.tsx +31 -0
  583. package/src/components/messages/UserToolResultMessage/RejectedToolUseMessage.tsx +16 -0
  584. package/src/components/messages/UserToolResultMessage/UserToolCanceledMessage.tsx +16 -0
  585. package/src/components/messages/UserToolResultMessage/UserToolErrorMessage.tsx +103 -0
  586. package/src/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx +95 -0
  587. package/src/components/messages/UserToolResultMessage/UserToolResultMessage.tsx +106 -0
  588. package/src/components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx +104 -0
  589. package/src/components/messages/UserToolResultMessage/utils.tsx +44 -0
  590. package/src/components/messages/nullRenderingAttachments.ts +70 -0
  591. package/src/components/messages/teamMemCollapsed.tsx +140 -0
  592. package/src/components/messages/teamMemSaved.ts +19 -0
  593. package/src/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.tsx +645 -0
  594. package/src/components/permissions/AskUserQuestionPermissionRequest/PreviewBox.tsx +229 -0
  595. package/src/components/permissions/AskUserQuestionPermissionRequest/PreviewQuestionView.tsx +328 -0
  596. package/src/components/permissions/AskUserQuestionPermissionRequest/QuestionNavigationBar.tsx +178 -0
  597. package/src/components/permissions/AskUserQuestionPermissionRequest/QuestionView.tsx +465 -0
  598. package/src/components/permissions/AskUserQuestionPermissionRequest/SubmitQuestionsView.tsx +144 -0
  599. package/src/components/permissions/AskUserQuestionPermissionRequest/use-multiple-choice-state.ts +179 -0
  600. package/src/components/permissions/BashPermissionRequest/BashPermissionRequest.tsx +482 -0
  601. package/src/components/permissions/BashPermissionRequest/bashToolUseOptions.tsx +147 -0
  602. package/src/components/permissions/ComputerUseApproval/ComputerUseApproval.tsx +441 -0
  603. package/src/components/permissions/EnterPlanModePermissionRequest/EnterPlanModePermissionRequest.tsx +122 -0
  604. package/src/components/permissions/ExitPlanModePermissionRequest/ExitPlanModePermissionRequest.tsx +768 -0
  605. package/src/components/permissions/FallbackPermissionRequest.tsx +333 -0
  606. package/src/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx +182 -0
  607. package/src/components/permissions/FilePermissionDialog/FilePermissionDialog.tsx +204 -0
  608. package/src/components/permissions/FilePermissionDialog/ideDiffConfig.ts +42 -0
  609. package/src/components/permissions/FilePermissionDialog/permissionOptions.tsx +177 -0
  610. package/src/components/permissions/FilePermissionDialog/useFilePermissionDialog.ts +212 -0
  611. package/src/components/permissions/FilePermissionDialog/usePermissionHandler.ts +185 -0
  612. package/src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx +161 -0
  613. package/src/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.tsx +89 -0
  614. package/src/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx +115 -0
  615. package/src/components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.tsx +166 -0
  616. package/src/components/permissions/NotebookEditPermissionRequest/NotebookEditToolDiff.tsx +235 -0
  617. package/src/components/permissions/PermissionDecisionDebugInfo.tsx +460 -0
  618. package/src/components/permissions/PermissionDialog.tsx +72 -0
  619. package/src/components/permissions/PermissionExplanation.tsx +272 -0
  620. package/src/components/permissions/PermissionPrompt.tsx +336 -0
  621. package/src/components/permissions/PermissionRequest.tsx +217 -0
  622. package/src/components/permissions/PermissionRequestTitle.tsx +66 -0
  623. package/src/components/permissions/PermissionRuleExplanation.tsx +121 -0
  624. package/src/components/permissions/PowerShellPermissionRequest/PowerShellPermissionRequest.tsx +235 -0
  625. package/src/components/permissions/PowerShellPermissionRequest/powershellToolUseOptions.tsx +91 -0
  626. package/src/components/permissions/SandboxPermissionRequest.tsx +163 -0
  627. package/src/components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.tsx +230 -0
  628. package/src/components/permissions/SkillPermissionRequest/SkillPermissionRequest.tsx +369 -0
  629. package/src/components/permissions/WebFetchPermissionRequest/WebFetchPermissionRequest.tsx +258 -0
  630. package/src/components/permissions/WorkerBadge.tsx +49 -0
  631. package/src/components/permissions/WorkerPendingPermission.tsx +105 -0
  632. package/src/components/permissions/hooks.ts +209 -0
  633. package/src/components/permissions/rules/AddPermissionRules.tsx +180 -0
  634. package/src/components/permissions/rules/AddWorkspaceDirectory.tsx +340 -0
  635. package/src/components/permissions/rules/PermissionRuleDescription.tsx +76 -0
  636. package/src/components/permissions/rules/PermissionRuleInput.tsx +138 -0
  637. package/src/components/permissions/rules/PermissionRuleList.tsx +1179 -0
  638. package/src/components/permissions/rules/RecentDenialsTab.tsx +207 -0
  639. package/src/components/permissions/rules/RemoveWorkspaceDirectory.tsx +110 -0
  640. package/src/components/permissions/rules/WorkspaceTab.tsx +150 -0
  641. package/src/components/permissions/shellPermissionHelpers.tsx +164 -0
  642. package/src/components/permissions/useShellPermissionFeedback.ts +148 -0
  643. package/src/components/permissions/utils.ts +25 -0
  644. package/src/components/sandbox/SandboxConfigTab.tsx +45 -0
  645. package/src/components/sandbox/SandboxDependenciesTab.tsx +120 -0
  646. package/src/components/sandbox/SandboxDoctorSection.tsx +46 -0
  647. package/src/components/sandbox/SandboxOverridesTab.tsx +193 -0
  648. package/src/components/sandbox/SandboxSettings.tsx +296 -0
  649. package/src/components/shell/ExpandShellOutputContext.tsx +36 -0
  650. package/src/components/shell/OutputLine.tsx +118 -0
  651. package/src/components/shell/ShellProgressMessage.tsx +150 -0
  652. package/src/components/shell/ShellTimeDisplay.tsx +74 -0
  653. package/src/components/skills/SkillsMenu.tsx +237 -0
  654. package/src/components/tasks/AsyncAgentDetailDialog.tsx +229 -0
  655. package/src/components/tasks/BackgroundTask.tsx +345 -0
  656. package/src/components/tasks/BackgroundTaskStatus.tsx +429 -0
  657. package/src/components/tasks/BackgroundTasksDialog.tsx +652 -0
  658. package/src/components/tasks/DreamDetailDialog.tsx +251 -0
  659. package/src/components/tasks/InProcessTeammateDetailDialog.tsx +266 -0
  660. package/src/components/tasks/RemoteSessionDetailDialog.tsx +904 -0
  661. package/src/components/tasks/RemoteSessionProgress.tsx +243 -0
  662. package/src/components/tasks/ShellDetailDialog.tsx +404 -0
  663. package/src/components/tasks/ShellProgress.tsx +87 -0
  664. package/src/components/tasks/renderToolActivity.tsx +33 -0
  665. package/src/components/tasks/taskStatusUtils.tsx +107 -0
  666. package/src/components/teams/TeamStatus.tsx +80 -0
  667. package/src/components/teams/TeamsDialog.tsx +715 -0
  668. package/src/components/ui/OrderedList.tsx +71 -0
  669. package/src/components/ui/OrderedListItem.tsx +45 -0
  670. package/src/components/ui/TreeSelect.tsx +397 -0
  671. package/src/components/wizard/WizardDialogLayout.tsx +65 -0
  672. package/src/components/wizard/WizardNavigationFooter.tsx +24 -0
  673. package/src/components/wizard/WizardProvider.tsx +213 -0
  674. package/src/components/wizard/index.ts +9 -0
  675. package/src/components/wizard/useWizard.ts +13 -0
  676. package/src/constants/apiLimits.ts +94 -0
  677. package/src/constants/betas.ts +52 -0
  678. package/src/constants/common.ts +33 -0
  679. package/src/constants/cyberRiskInstruction.ts +24 -0
  680. package/src/constants/errorIds.ts +15 -0
  681. package/src/constants/figures.ts +45 -0
  682. package/src/constants/files.ts +156 -0
  683. package/src/constants/github-app.ts +144 -0
  684. package/src/constants/keys.ts +11 -0
  685. package/src/constants/messages.ts +1 -0
  686. package/src/constants/oauth.ts +234 -0
  687. package/src/constants/outputStyles.ts +216 -0
  688. package/src/constants/product.ts +76 -0
  689. package/src/constants/prompts.ts +914 -0
  690. package/src/constants/spinnerVerbs.ts +204 -0
  691. package/src/constants/system.ts +95 -0
  692. package/src/constants/systemPromptSections.ts +68 -0
  693. package/src/constants/toolLimits.ts +56 -0
  694. package/src/constants/tools.ts +112 -0
  695. package/src/constants/turnCompletionVerbs.ts +12 -0
  696. package/src/constants/xml.ts +86 -0
  697. package/src/context/QueuedMessageContext.tsx +63 -0
  698. package/src/context/fpsMetrics.tsx +30 -0
  699. package/src/context/mailbox.tsx +38 -0
  700. package/src/context/modalContext.tsx +58 -0
  701. package/src/context/notifications.tsx +240 -0
  702. package/src/context/overlayContext.tsx +151 -0
  703. package/src/context/promptOverlayContext.tsx +125 -0
  704. package/src/context/stats.tsx +220 -0
  705. package/src/context/voice.tsx +88 -0
  706. package/src/context.ts +189 -0
  707. package/src/coordinator/coordinatorMode.ts +369 -0
  708. package/src/cost-tracker.ts +323 -0
  709. package/src/costHook.ts +22 -0
  710. package/src/dialogLaunchers.tsx +133 -0
  711. package/src/entrypoints/agentSdkTypes.ts +443 -0
  712. package/src/entrypoints/cli.tsx +303 -0
  713. package/src/entrypoints/init.ts +340 -0
  714. package/src/entrypoints/mcp.ts +196 -0
  715. package/src/entrypoints/sandboxTypes.ts +156 -0
  716. package/src/entrypoints/sdk/controlSchemas.ts +663 -0
  717. package/src/entrypoints/sdk/coreSchemas.ts +1889 -0
  718. package/src/entrypoints/sdk/coreTypes.generated.ts +3 -0
  719. package/src/entrypoints/sdk/coreTypes.ts +62 -0
  720. package/src/entrypoints/sdk/runtimeTypes.ts +2 -0
  721. package/src/entrypoints/sdk/settingsTypes.generated.ts +2 -0
  722. package/src/entrypoints/sdk/toolTypes.ts +2 -0
  723. package/src/history.ts +464 -0
  724. package/src/hooks/fileSuggestions.ts +811 -0
  725. package/src/hooks/notifs/useAutoModeUnavailableNotification.ts +56 -0
  726. package/src/hooks/notifs/useCanSwitchToExistingSubscription.tsx +60 -0
  727. package/src/hooks/notifs/useDeprecationWarningNotification.tsx +44 -0
  728. package/src/hooks/notifs/useFastModeNotification.tsx +162 -0
  729. package/src/hooks/notifs/useIDEStatusIndicator.tsx +186 -0
  730. package/src/hooks/notifs/useInstallMessages.tsx +26 -0
  731. package/src/hooks/notifs/useLspInitializationNotification.tsx +143 -0
  732. package/src/hooks/notifs/useMcpConnectivityStatus.tsx +88 -0
  733. package/src/hooks/notifs/useModelMigrationNotifications.tsx +52 -0
  734. package/src/hooks/notifs/useNpmDeprecationNotification.tsx +25 -0
  735. package/src/hooks/notifs/usePluginAutoupdateNotification.tsx +83 -0
  736. package/src/hooks/notifs/usePluginInstallationStatus.tsx +128 -0
  737. package/src/hooks/notifs/useRateLimitWarningNotification.tsx +114 -0
  738. package/src/hooks/notifs/useSettingsErrors.tsx +69 -0
  739. package/src/hooks/notifs/useStartupNotification.ts +41 -0
  740. package/src/hooks/notifs/useTeammateShutdownNotification.ts +78 -0
  741. package/src/hooks/renderPlaceholder.ts +51 -0
  742. package/src/hooks/toolPermission/PermissionContext.ts +388 -0
  743. package/src/hooks/toolPermission/handlers/coordinatorHandler.ts +65 -0
  744. package/src/hooks/toolPermission/handlers/interactiveHandler.ts +536 -0
  745. package/src/hooks/toolPermission/handlers/swarmWorkerHandler.ts +159 -0
  746. package/src/hooks/toolPermission/permissionLogging.ts +238 -0
  747. package/src/hooks/unifiedSuggestions.ts +202 -0
  748. package/src/hooks/useAfterFirstRender.ts +17 -0
  749. package/src/hooks/useApiKeyVerification.ts +83 -0
  750. package/src/hooks/useArrowKeyHistory.tsx +229 -0
  751. package/src/hooks/useAssistantHistory.ts +250 -0
  752. package/src/hooks/useAwaySummary.ts +125 -0
  753. package/src/hooks/useBackgroundTaskNavigation.ts +251 -0
  754. package/src/hooks/useBlink.ts +34 -0
  755. package/src/hooks/useCanUseTool.tsx +204 -0
  756. package/src/hooks/useCancelRequest.ts +276 -0
  757. package/src/hooks/useChromeExtensionNotification.tsx +50 -0
  758. package/src/hooks/useClaudeCodeHintRecommendation.tsx +129 -0
  759. package/src/hooks/useClipboardImageHint.ts +77 -0
  760. package/src/hooks/useCommandKeybindings.tsx +108 -0
  761. package/src/hooks/useCommandQueue.ts +15 -0
  762. package/src/hooks/useCopyOnSelect.ts +98 -0
  763. package/src/hooks/useDeferredHookMessages.ts +46 -0
  764. package/src/hooks/useDiffData.ts +110 -0
  765. package/src/hooks/useDiffInIDE.ts +379 -0
  766. package/src/hooks/useDirectConnect.ts +229 -0
  767. package/src/hooks/useDoublePress.ts +62 -0
  768. package/src/hooks/useDynamicConfig.ts +22 -0
  769. package/src/hooks/useElapsedTime.ts +37 -0
  770. package/src/hooks/useExitOnCtrlCD.ts +95 -0
  771. package/src/hooks/useExitOnCtrlCDWithKeybindings.ts +24 -0
  772. package/src/hooks/useFileHistorySnapshotInit.ts +25 -0
  773. package/src/hooks/useGlobalKeybindings.tsx +249 -0
  774. package/src/hooks/useHistorySearch.ts +303 -0
  775. package/src/hooks/useIDEIntegration.tsx +70 -0
  776. package/src/hooks/useIdeAtMentioned.ts +76 -0
  777. package/src/hooks/useIdeConnectionStatus.ts +33 -0
  778. package/src/hooks/useIdeLogging.ts +41 -0
  779. package/src/hooks/useIdeSelection.ts +150 -0
  780. package/src/hooks/useInboxPoller.ts +969 -0
  781. package/src/hooks/useInputBuffer.ts +132 -0
  782. package/src/hooks/useIssueFlagBanner.ts +133 -0
  783. package/src/hooks/useLogMessages.ts +119 -0
  784. package/src/hooks/useLspPluginRecommendation.tsx +194 -0
  785. package/src/hooks/useMailboxBridge.ts +21 -0
  786. package/src/hooks/useMainLoopModel.ts +34 -0
  787. package/src/hooks/useManagePlugins.ts +304 -0
  788. package/src/hooks/useMemoryUsage.ts +39 -0
  789. package/src/hooks/useMergedClients.ts +23 -0
  790. package/src/hooks/useMergedCommands.ts +15 -0
  791. package/src/hooks/useMergedTools.ts +44 -0
  792. package/src/hooks/useMinDisplayTime.ts +35 -0
  793. package/src/hooks/useNotifyAfterTimeout.ts +65 -0
  794. package/src/hooks/useOfficialMarketplaceNotification.tsx +48 -0
  795. package/src/hooks/usePasteHandler.ts +285 -0
  796. package/src/hooks/usePluginRecommendationBase.tsx +105 -0
  797. package/src/hooks/usePrStatus.ts +106 -0
  798. package/src/hooks/usePromptSuggestion.ts +177 -0
  799. package/src/hooks/usePromptsFromClaudeInChrome.tsx +71 -0
  800. package/src/hooks/useQueueProcessor.ts +68 -0
  801. package/src/hooks/useRemoteSession.ts +605 -0
  802. package/src/hooks/useReplBridge.tsx +723 -0
  803. package/src/hooks/useSSHSession.ts +241 -0
  804. package/src/hooks/useScheduledTasks.ts +139 -0
  805. package/src/hooks/useSearchInput.ts +364 -0
  806. package/src/hooks/useSessionBackgrounding.ts +158 -0
  807. package/src/hooks/useSettings.ts +17 -0
  808. package/src/hooks/useSettingsChange.ts +25 -0
  809. package/src/hooks/useSkillImprovementSurvey.ts +105 -0
  810. package/src/hooks/useSkillsChange.ts +62 -0
  811. package/src/hooks/useSwarmInitialization.ts +81 -0
  812. package/src/hooks/useSwarmPermissionPoller.ts +330 -0
  813. package/src/hooks/useTaskListWatcher.ts +221 -0
  814. package/src/hooks/useTasksV2.ts +250 -0
  815. package/src/hooks/useTeammateViewAutoExit.ts +63 -0
  816. package/src/hooks/useTeleportResume.tsx +85 -0
  817. package/src/hooks/useTerminalSize.ts +15 -0
  818. package/src/hooks/useTextInput.ts +529 -0
  819. package/src/hooks/useTimeout.ts +14 -0
  820. package/src/hooks/useTurnDiffs.ts +213 -0
  821. package/src/hooks/useTypeahead.tsx +1385 -0
  822. package/src/hooks/useUpdateNotification.ts +34 -0
  823. package/src/hooks/useVimInput.ts +316 -0
  824. package/src/hooks/useVirtualScroll.ts +721 -0
  825. package/src/hooks/useVoice.ts +1144 -0
  826. package/src/hooks/useVoiceEnabled.ts +25 -0
  827. package/src/hooks/useVoiceIntegration.tsx +677 -0
  828. package/src/ink/Ansi.tsx +292 -0
  829. package/src/ink/bidi.ts +139 -0
  830. package/src/ink/clearTerminal.ts +74 -0
  831. package/src/ink/colorize.ts +231 -0
  832. package/src/ink/components/AlternateScreen.tsx +80 -0
  833. package/src/ink/components/App.tsx +658 -0
  834. package/src/ink/components/AppContext.ts +21 -0
  835. package/src/ink/components/Box.tsx +213 -0
  836. package/src/ink/components/Button.tsx +192 -0
  837. package/src/ink/components/ClockContext.tsx +112 -0
  838. package/src/ink/components/CursorDeclarationContext.ts +32 -0
  839. package/src/ink/components/ErrorOverview.tsx +109 -0
  840. package/src/ink/components/Link.tsx +42 -0
  841. package/src/ink/components/Newline.tsx +39 -0
  842. package/src/ink/components/NoSelect.tsx +68 -0
  843. package/src/ink/components/RawAnsi.tsx +57 -0
  844. package/src/ink/components/ScrollBox.tsx +236 -0
  845. package/src/ink/components/Spacer.tsx +20 -0
  846. package/src/ink/components/StdinContext.ts +49 -0
  847. package/src/ink/components/TerminalFocusContext.tsx +52 -0
  848. package/src/ink/components/TerminalSizeContext.tsx +7 -0
  849. package/src/ink/components/Text.tsx +254 -0
  850. package/src/ink/constants.ts +2 -0
  851. package/src/ink/dom.ts +484 -0
  852. package/src/ink/events/click-event.ts +38 -0
  853. package/src/ink/events/dispatcher.ts +233 -0
  854. package/src/ink/events/emitter.ts +39 -0
  855. package/src/ink/events/event-handlers.ts +73 -0
  856. package/src/ink/events/event.ts +11 -0
  857. package/src/ink/events/focus-event.ts +21 -0
  858. package/src/ink/events/input-event.ts +205 -0
  859. package/src/ink/events/keyboard-event.ts +51 -0
  860. package/src/ink/events/terminal-event.ts +107 -0
  861. package/src/ink/events/terminal-focus-event.ts +19 -0
  862. package/src/ink/focus.ts +181 -0
  863. package/src/ink/frame.ts +124 -0
  864. package/src/ink/get-max-width.ts +27 -0
  865. package/src/ink/hit-test.ts +130 -0
  866. package/src/ink/hooks/use-animation-frame.ts +57 -0
  867. package/src/ink/hooks/use-app.ts +8 -0
  868. package/src/ink/hooks/use-declared-cursor.ts +73 -0
  869. package/src/ink/hooks/use-input.ts +92 -0
  870. package/src/ink/hooks/use-interval.ts +67 -0
  871. package/src/ink/hooks/use-search-highlight.ts +53 -0
  872. package/src/ink/hooks/use-selection.ts +104 -0
  873. package/src/ink/hooks/use-stdin.ts +8 -0
  874. package/src/ink/hooks/use-tab-status.ts +72 -0
  875. package/src/ink/hooks/use-terminal-focus.ts +16 -0
  876. package/src/ink/hooks/use-terminal-title.ts +31 -0
  877. package/src/ink/hooks/use-terminal-viewport.ts +96 -0
  878. package/src/ink/ink.tsx +1723 -0
  879. package/src/ink/instances.ts +10 -0
  880. package/src/ink/layout/engine.ts +6 -0
  881. package/src/ink/layout/geometry.ts +97 -0
  882. package/src/ink/layout/node.ts +152 -0
  883. package/src/ink/layout/yoga.ts +308 -0
  884. package/src/ink/line-width-cache.ts +24 -0
  885. package/src/ink/log-update.ts +773 -0
  886. package/src/ink/measure-element.ts +23 -0
  887. package/src/ink/measure-text.ts +47 -0
  888. package/src/ink/node-cache.ts +54 -0
  889. package/src/ink/optimizer.ts +93 -0
  890. package/src/ink/output.ts +797 -0
  891. package/src/ink/parse-keypress.ts +801 -0
  892. package/src/ink/reconciler.ts +512 -0
  893. package/src/ink/render-border.ts +231 -0
  894. package/src/ink/render-node-to-output.ts +1462 -0
  895. package/src/ink/render-to-screen.ts +231 -0
  896. package/src/ink/renderer.ts +178 -0
  897. package/src/ink/root.ts +184 -0
  898. package/src/ink/screen.ts +1486 -0
  899. package/src/ink/searchHighlight.ts +93 -0
  900. package/src/ink/selection.ts +917 -0
  901. package/src/ink/squash-text-nodes.ts +92 -0
  902. package/src/ink/stringWidth.ts +222 -0
  903. package/src/ink/styles.ts +771 -0
  904. package/src/ink/supports-hyperlinks.ts +57 -0
  905. package/src/ink/tabstops.ts +46 -0
  906. package/src/ink/terminal-focus-state.ts +47 -0
  907. package/src/ink/terminal-querier.ts +212 -0
  908. package/src/ink/terminal.ts +248 -0
  909. package/src/ink/termio/ansi.ts +75 -0
  910. package/src/ink/termio/csi.ts +319 -0
  911. package/src/ink/termio/dec.ts +60 -0
  912. package/src/ink/termio/esc.ts +67 -0
  913. package/src/ink/termio/osc.ts +493 -0
  914. package/src/ink/termio/parser.ts +394 -0
  915. package/src/ink/termio/sgr.ts +308 -0
  916. package/src/ink/termio/tokenize.ts +319 -0
  917. package/src/ink/termio/types.ts +236 -0
  918. package/src/ink/termio.ts +42 -0
  919. package/src/ink/useTerminalNotification.ts +126 -0
  920. package/src/ink/warn.ts +9 -0
  921. package/src/ink/widest-line.ts +19 -0
  922. package/src/ink/wrap-text.ts +74 -0
  923. package/src/ink/wrapAnsi.ts +20 -0
  924. package/src/ink.ts +85 -0
  925. package/src/interactiveHelpers.tsx +367 -0
  926. package/src/keybindings/KeybindingContext.tsx +243 -0
  927. package/src/keybindings/KeybindingProviderSetup.tsx +308 -0
  928. package/src/keybindings/defaultBindings.ts +340 -0
  929. package/src/keybindings/loadUserBindings.ts +472 -0
  930. package/src/keybindings/match.ts +120 -0
  931. package/src/keybindings/parser.ts +203 -0
  932. package/src/keybindings/reservedShortcuts.ts +127 -0
  933. package/src/keybindings/resolver.ts +244 -0
  934. package/src/keybindings/schema.ts +236 -0
  935. package/src/keybindings/shortcutFormat.ts +63 -0
  936. package/src/keybindings/template.ts +52 -0
  937. package/src/keybindings/useKeybinding.ts +196 -0
  938. package/src/keybindings/useShortcutDisplay.ts +59 -0
  939. package/src/keybindings/validate.ts +498 -0
  940. package/src/localRecoveryCli.ts +291 -0
  941. package/src/main.tsx +4690 -0
  942. package/src/memdir/findRelevantMemories.ts +141 -0
  943. package/src/memdir/memdir.ts +507 -0
  944. package/src/memdir/memoryAge.ts +53 -0
  945. package/src/memdir/memoryScan.ts +94 -0
  946. package/src/memdir/memoryTypes.ts +271 -0
  947. package/src/memdir/paths.ts +278 -0
  948. package/src/memdir/teamMemPaths.ts +292 -0
  949. package/src/memdir/teamMemPrompts.ts +100 -0
  950. package/src/migrations/migrateAutoUpdatesToSettings.ts +61 -0
  951. package/src/migrations/migrateBypassPermissionsAcceptedToSettings.ts +40 -0
  952. package/src/migrations/migrateEnableAllProjectMcpServersToSettings.ts +118 -0
  953. package/src/migrations/migrateFennecToOpus.ts +45 -0
  954. package/src/migrations/migrateLegacyOpusToCurrent.ts +57 -0
  955. package/src/migrations/migrateOpusToOpus1m.ts +43 -0
  956. package/src/migrations/migrateReplBridgeEnabledToRemoteControlAtStartup.ts +22 -0
  957. package/src/migrations/migrateSonnet1mToSonnet45.ts +48 -0
  958. package/src/migrations/migrateSonnet45ToSonnet46.ts +67 -0
  959. package/src/migrations/resetAutoModeOptInForDefaultOffer.ts +51 -0
  960. package/src/migrations/resetProToOpusDefault.ts +51 -0
  961. package/src/moreright/useMoreRight.tsx +26 -0
  962. package/src/native-ts/color-diff/index.ts +999 -0
  963. package/src/native-ts/file-index/index.ts +370 -0
  964. package/src/native-ts/yoga-layout/enums.ts +134 -0
  965. package/src/native-ts/yoga-layout/index.ts +2578 -0
  966. package/src/outputStyles/loadOutputStylesDir.ts +98 -0
  967. package/src/plugins/builtinPlugins.ts +159 -0
  968. package/src/plugins/bundled/index.ts +23 -0
  969. package/src/projectOnboardingState.ts +83 -0
  970. package/src/query/config.ts +46 -0
  971. package/src/query/deps.ts +40 -0
  972. package/src/query/stopHooks.ts +473 -0
  973. package/src/query/tokenBudget.ts +93 -0
  974. package/src/query.ts +1729 -0
  975. package/src/remote/RemoteSessionManager.ts +343 -0
  976. package/src/remote/SessionsWebSocket.ts +404 -0
  977. package/src/remote/remotePermissionBridge.ts +78 -0
  978. package/src/remote/sdkMessageAdapter.ts +302 -0
  979. package/src/replLauncher.tsx +23 -0
  980. package/src/schemas/hooks.ts +222 -0
  981. package/src/screens/Doctor.tsx +575 -0
  982. package/src/screens/REPL.tsx +5006 -0
  983. package/src/screens/ResumeConversation.tsx +399 -0
  984. package/src/server/createDirectConnectSession.ts +88 -0
  985. package/src/server/directConnectManager.ts +213 -0
  986. package/src/server/types.ts +57 -0
  987. package/src/services/AgentSummary/agentSummary.ts +179 -0
  988. package/src/services/MagicDocs/magicDocs.ts +254 -0
  989. package/src/services/MagicDocs/prompts.ts +127 -0
  990. package/src/services/PromptSuggestion/promptSuggestion.ts +523 -0
  991. package/src/services/PromptSuggestion/speculation.ts +991 -0
  992. package/src/services/SessionMemory/prompts.ts +324 -0
  993. package/src/services/SessionMemory/sessionMemory.ts +495 -0
  994. package/src/services/SessionMemory/sessionMemoryUtils.ts +207 -0
  995. package/src/services/analytics/config.ts +38 -0
  996. package/src/services/analytics/datadog.ts +307 -0
  997. package/src/services/analytics/firstPartyEventLogger.ts +449 -0
  998. package/src/services/analytics/firstPartyEventLoggingExporter.ts +806 -0
  999. package/src/services/analytics/growthbook.ts +1155 -0
  1000. package/src/services/analytics/index.ts +173 -0
  1001. package/src/services/analytics/metadata.ts +973 -0
  1002. package/src/services/analytics/sink.ts +114 -0
  1003. package/src/services/analytics/sinkKillswitch.ts +25 -0
  1004. package/src/services/api/adminRequests.ts +119 -0
  1005. package/src/services/api/bootstrap.ts +141 -0
  1006. package/src/services/api/claude.ts +3574 -0
  1007. package/src/services/api/client.ts +564 -0
  1008. package/src/services/api/dumpPrompts.ts +226 -0
  1009. package/src/services/api/emptyUsage.ts +22 -0
  1010. package/src/services/api/errorUtils.ts +260 -0
  1011. package/src/services/api/errors.ts +1208 -0
  1012. package/src/services/api/filesApi.ts +748 -0
  1013. package/src/services/api/firstTokenDate.ts +60 -0
  1014. package/src/services/api/grove.ts +357 -0
  1015. package/src/services/api/logging.ts +788 -0
  1016. package/src/services/api/metricsOptOut.ts +159 -0
  1017. package/src/services/api/overageCreditGrant.ts +137 -0
  1018. package/src/services/api/promptCacheBreakDetection.ts +727 -0
  1019. package/src/services/api/referral.ts +281 -0
  1020. package/src/services/api/sessionIngress.ts +514 -0
  1021. package/src/services/api/ultrareviewQuota.ts +38 -0
  1022. package/src/services/api/usage.ts +63 -0
  1023. package/src/services/api/withRetry.ts +822 -0
  1024. package/src/services/autoDream/autoDream.ts +324 -0
  1025. package/src/services/autoDream/config.ts +21 -0
  1026. package/src/services/autoDream/consolidationLock.ts +140 -0
  1027. package/src/services/autoDream/consolidationPrompt.ts +65 -0
  1028. package/src/services/awaySummary.ts +74 -0
  1029. package/src/services/claudeAiLimits.ts +515 -0
  1030. package/src/services/claudeAiLimitsHook.ts +23 -0
  1031. package/src/services/compact/apiMicrocompact.ts +153 -0
  1032. package/src/services/compact/autoCompact.ts +351 -0
  1033. package/src/services/compact/compact.ts +1705 -0
  1034. package/src/services/compact/compactWarningHook.ts +16 -0
  1035. package/src/services/compact/compactWarningState.ts +18 -0
  1036. package/src/services/compact/grouping.ts +63 -0
  1037. package/src/services/compact/microCompact.ts +530 -0
  1038. package/src/services/compact/postCompactCleanup.ts +77 -0
  1039. package/src/services/compact/prompt.ts +374 -0
  1040. package/src/services/compact/sessionMemoryCompact.ts +630 -0
  1041. package/src/services/compact/timeBasedMCConfig.ts +43 -0
  1042. package/src/services/diagnosticTracking.ts +397 -0
  1043. package/src/services/extractMemories/extractMemories.ts +615 -0
  1044. package/src/services/extractMemories/prompts.ts +154 -0
  1045. package/src/services/internalLogging.ts +90 -0
  1046. package/src/services/lsp/LSPClient.ts +447 -0
  1047. package/src/services/lsp/LSPDiagnosticRegistry.ts +386 -0
  1048. package/src/services/lsp/LSPServerInstance.ts +511 -0
  1049. package/src/services/lsp/LSPServerManager.ts +420 -0
  1050. package/src/services/lsp/config.ts +79 -0
  1051. package/src/services/lsp/manager.ts +289 -0
  1052. package/src/services/lsp/passiveFeedback.ts +328 -0
  1053. package/src/services/mcp/InProcessTransport.ts +63 -0
  1054. package/src/services/mcp/MCPConnectionManager.tsx +73 -0
  1055. package/src/services/mcp/SdkControlTransport.ts +136 -0
  1056. package/src/services/mcp/auth.ts +2465 -0
  1057. package/src/services/mcp/channelAllowlist.ts +76 -0
  1058. package/src/services/mcp/channelNotification.ts +316 -0
  1059. package/src/services/mcp/channelPermissions.ts +240 -0
  1060. package/src/services/mcp/claudeai.ts +164 -0
  1061. package/src/services/mcp/client.ts +3348 -0
  1062. package/src/services/mcp/config.ts +1578 -0
  1063. package/src/services/mcp/elicitationHandler.ts +313 -0
  1064. package/src/services/mcp/envExpansion.ts +38 -0
  1065. package/src/services/mcp/headersHelper.ts +138 -0
  1066. package/src/services/mcp/mcpStringUtils.ts +106 -0
  1067. package/src/services/mcp/normalization.ts +23 -0
  1068. package/src/services/mcp/oauthPort.ts +78 -0
  1069. package/src/services/mcp/officialRegistry.ts +72 -0
  1070. package/src/services/mcp/types.ts +258 -0
  1071. package/src/services/mcp/useManageMCPConnections.ts +1141 -0
  1072. package/src/services/mcp/utils.ts +575 -0
  1073. package/src/services/mcp/vscodeSdkMcp.ts +112 -0
  1074. package/src/services/mcp/xaa.ts +511 -0
  1075. package/src/services/mcp/xaaIdpLogin.ts +487 -0
  1076. package/src/services/mcpServerApproval.tsx +41 -0
  1077. package/src/services/mockRateLimits.ts +882 -0
  1078. package/src/services/notifier.ts +156 -0
  1079. package/src/services/oauth/auth-code-listener.ts +211 -0
  1080. package/src/services/oauth/client.ts +566 -0
  1081. package/src/services/oauth/crypto.ts +23 -0
  1082. package/src/services/oauth/getOauthProfile.ts +53 -0
  1083. package/src/services/oauth/index.ts +198 -0
  1084. package/src/services/plugins/PluginInstallationManager.ts +184 -0
  1085. package/src/services/plugins/pluginCliCommands.ts +344 -0
  1086. package/src/services/plugins/pluginOperations.ts +1088 -0
  1087. package/src/services/policyLimits/index.ts +667 -0
  1088. package/src/services/policyLimits/types.ts +27 -0
  1089. package/src/services/preventSleep.ts +165 -0
  1090. package/src/services/rateLimitMessages.ts +344 -0
  1091. package/src/services/rateLimitMocking.ts +144 -0
  1092. package/src/services/remoteManagedSettings/index.ts +638 -0
  1093. package/src/services/remoteManagedSettings/securityCheck.tsx +74 -0
  1094. package/src/services/remoteManagedSettings/syncCache.ts +116 -0
  1095. package/src/services/remoteManagedSettings/syncCacheState.ts +96 -0
  1096. package/src/services/remoteManagedSettings/types.ts +31 -0
  1097. package/src/services/settingsSync/index.ts +581 -0
  1098. package/src/services/settingsSync/types.ts +67 -0
  1099. package/src/services/teamMemorySync/index.ts +1256 -0
  1100. package/src/services/teamMemorySync/secretScanner.ts +324 -0
  1101. package/src/services/teamMemorySync/teamMemSecretGuard.ts +44 -0
  1102. package/src/services/teamMemorySync/types.ts +156 -0
  1103. package/src/services/teamMemorySync/watcher.ts +387 -0
  1104. package/src/services/tips/tipHistory.ts +17 -0
  1105. package/src/services/tips/tipRegistry.ts +686 -0
  1106. package/src/services/tips/tipScheduler.ts +58 -0
  1107. package/src/services/tokenEstimation.ts +495 -0
  1108. package/src/services/toolUseSummary/toolUseSummaryGenerator.ts +112 -0
  1109. package/src/services/tools/StreamingToolExecutor.ts +530 -0
  1110. package/src/services/tools/toolExecution.ts +1745 -0
  1111. package/src/services/tools/toolHooks.ts +650 -0
  1112. package/src/services/tools/toolOrchestration.ts +188 -0
  1113. package/src/services/vcr.ts +406 -0
  1114. package/src/services/voice.ts +525 -0
  1115. package/src/services/voiceKeyterms.ts +106 -0
  1116. package/src/services/voiceStreamSTT.ts +544 -0
  1117. package/src/setup.ts +487 -0
  1118. package/src/skills/bundled/batch.ts +124 -0
  1119. package/src/skills/bundled/claudeApi.ts +196 -0
  1120. package/src/skills/bundled/claudeApiContent.ts +75 -0
  1121. package/src/skills/bundled/claudeInChrome.ts +34 -0
  1122. package/src/skills/bundled/debug.ts +103 -0
  1123. package/src/skills/bundled/index.ts +58 -0
  1124. package/src/skills/bundled/keybindings.ts +339 -0
  1125. package/src/skills/bundled/loop.ts +92 -0
  1126. package/src/skills/bundled/loremIpsum.ts +282 -0
  1127. package/src/skills/bundled/remember.ts +82 -0
  1128. package/src/skills/bundled/scheduleRemoteAgents.ts +447 -0
  1129. package/src/skills/bundled/simplify.ts +69 -0
  1130. package/src/skills/bundled/skillify.ts +197 -0
  1131. package/src/skills/bundled/stuck.ts +79 -0
  1132. package/src/skills/bundled/updateConfig.ts +475 -0
  1133. package/src/skills/bundled/verify/SKILL.md +6 -0
  1134. package/src/skills/bundled/verify/examples/cli.md +1 -0
  1135. package/src/skills/bundled/verify/examples/server.md +1 -0
  1136. package/src/skills/bundled/verify.ts +30 -0
  1137. package/src/skills/bundled/verifyContent.ts +13 -0
  1138. package/src/skills/bundledSkills.ts +220 -0
  1139. package/src/skills/loadSkillsDir.ts +1086 -0
  1140. package/src/skills/mcpSkillBuilders.ts +44 -0
  1141. package/src/state/AppState.tsx +200 -0
  1142. package/src/state/AppStateStore.ts +569 -0
  1143. package/src/state/onChangeAppState.ts +171 -0
  1144. package/src/state/selectors.ts +76 -0
  1145. package/src/state/store.ts +34 -0
  1146. package/src/state/teammateViewHelpers.ts +141 -0
  1147. package/src/tasks/DreamTask/DreamTask.ts +157 -0
  1148. package/src/tasks/InProcessTeammateTask/InProcessTeammateTask.tsx +126 -0
  1149. package/src/tasks/InProcessTeammateTask/types.ts +121 -0
  1150. package/src/tasks/LocalAgentTask/LocalAgentTask.tsx +683 -0
  1151. package/src/tasks/LocalMainSessionTask.ts +479 -0
  1152. package/src/tasks/LocalShellTask/LocalShellTask.tsx +523 -0
  1153. package/src/tasks/LocalShellTask/guards.ts +41 -0
  1154. package/src/tasks/LocalShellTask/killShellTasks.ts +76 -0
  1155. package/src/tasks/RemoteAgentTask/RemoteAgentTask.tsx +856 -0
  1156. package/src/tasks/pillLabel.ts +82 -0
  1157. package/src/tasks/stopTask.ts +100 -0
  1158. package/src/tasks/types.ts +46 -0
  1159. package/src/tasks.ts +39 -0
  1160. package/src/tools/AgentTool/AgentTool.tsx +1398 -0
  1161. package/src/tools/AgentTool/UI.tsx +872 -0
  1162. package/src/tools/AgentTool/agentColorManager.ts +66 -0
  1163. package/src/tools/AgentTool/agentDisplay.ts +104 -0
  1164. package/src/tools/AgentTool/agentMemory.ts +177 -0
  1165. package/src/tools/AgentTool/agentMemorySnapshot.ts +197 -0
  1166. package/src/tools/AgentTool/agentToolUtils.ts +686 -0
  1167. package/src/tools/AgentTool/built-in/claudeCodeGuideAgent.ts +205 -0
  1168. package/src/tools/AgentTool/built-in/exploreAgent.ts +83 -0
  1169. package/src/tools/AgentTool/built-in/generalPurposeAgent.ts +34 -0
  1170. package/src/tools/AgentTool/built-in/planAgent.ts +92 -0
  1171. package/src/tools/AgentTool/built-in/statuslineSetup.ts +144 -0
  1172. package/src/tools/AgentTool/built-in/verificationAgent.ts +152 -0
  1173. package/src/tools/AgentTool/builtInAgents.ts +72 -0
  1174. package/src/tools/AgentTool/constants.ts +12 -0
  1175. package/src/tools/AgentTool/forkSubagent.ts +210 -0
  1176. package/src/tools/AgentTool/loadAgentsDir.ts +755 -0
  1177. package/src/tools/AgentTool/prompt.ts +287 -0
  1178. package/src/tools/AgentTool/resumeAgent.ts +265 -0
  1179. package/src/tools/AgentTool/runAgent.ts +973 -0
  1180. package/src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx +266 -0
  1181. package/src/tools/AskUserQuestionTool/prompt.ts +44 -0
  1182. package/src/tools/BashTool/BashTool.tsx +1144 -0
  1183. package/src/tools/BashTool/BashToolResultMessage.tsx +191 -0
  1184. package/src/tools/BashTool/UI.tsx +185 -0
  1185. package/src/tools/BashTool/bashCommandHelpers.ts +265 -0
  1186. package/src/tools/BashTool/bashPermissions.ts +2621 -0
  1187. package/src/tools/BashTool/bashSecurity.ts +2592 -0
  1188. package/src/tools/BashTool/commandSemantics.ts +140 -0
  1189. package/src/tools/BashTool/commentLabel.ts +13 -0
  1190. package/src/tools/BashTool/destructiveCommandWarning.ts +102 -0
  1191. package/src/tools/BashTool/modeValidation.ts +115 -0
  1192. package/src/tools/BashTool/pathValidation.ts +1303 -0
  1193. package/src/tools/BashTool/prompt.ts +369 -0
  1194. package/src/tools/BashTool/readOnlyValidation.ts +1990 -0
  1195. package/src/tools/BashTool/sedEditParser.ts +322 -0
  1196. package/src/tools/BashTool/sedValidation.ts +684 -0
  1197. package/src/tools/BashTool/shouldUseSandbox.ts +153 -0
  1198. package/src/tools/BashTool/toolName.ts +2 -0
  1199. package/src/tools/BashTool/utils.ts +223 -0
  1200. package/src/tools/BriefTool/BriefTool.ts +204 -0
  1201. package/src/tools/BriefTool/UI.tsx +101 -0
  1202. package/src/tools/BriefTool/attachments.ts +110 -0
  1203. package/src/tools/BriefTool/prompt.ts +22 -0
  1204. package/src/tools/BriefTool/upload.ts +174 -0
  1205. package/src/tools/ConfigTool/ConfigTool.ts +467 -0
  1206. package/src/tools/ConfigTool/UI.tsx +38 -0
  1207. package/src/tools/ConfigTool/constants.ts +1 -0
  1208. package/src/tools/ConfigTool/prompt.ts +93 -0
  1209. package/src/tools/ConfigTool/supportedSettings.ts +211 -0
  1210. package/src/tools/EnterPlanModeTool/EnterPlanModeTool.ts +126 -0
  1211. package/src/tools/EnterPlanModeTool/UI.tsx +33 -0
  1212. package/src/tools/EnterPlanModeTool/constants.ts +1 -0
  1213. package/src/tools/EnterPlanModeTool/prompt.ts +170 -0
  1214. package/src/tools/EnterWorktreeTool/EnterWorktreeTool.ts +127 -0
  1215. package/src/tools/EnterWorktreeTool/UI.tsx +20 -0
  1216. package/src/tools/EnterWorktreeTool/constants.ts +1 -0
  1217. package/src/tools/EnterWorktreeTool/prompt.ts +30 -0
  1218. package/src/tools/ExitPlanModeTool/ExitPlanModeV2Tool.ts +493 -0
  1219. package/src/tools/ExitPlanModeTool/UI.tsx +82 -0
  1220. package/src/tools/ExitPlanModeTool/constants.ts +2 -0
  1221. package/src/tools/ExitPlanModeTool/prompt.ts +29 -0
  1222. package/src/tools/ExitWorktreeTool/ExitWorktreeTool.ts +329 -0
  1223. package/src/tools/ExitWorktreeTool/UI.tsx +25 -0
  1224. package/src/tools/ExitWorktreeTool/constants.ts +1 -0
  1225. package/src/tools/ExitWorktreeTool/prompt.ts +32 -0
  1226. package/src/tools/FileEditTool/FileEditTool.ts +625 -0
  1227. package/src/tools/FileEditTool/UI.tsx +289 -0
  1228. package/src/tools/FileEditTool/constants.ts +11 -0
  1229. package/src/tools/FileEditTool/prompt.ts +28 -0
  1230. package/src/tools/FileEditTool/types.ts +85 -0
  1231. package/src/tools/FileEditTool/utils.ts +775 -0
  1232. package/src/tools/FileReadTool/FileReadTool.ts +1183 -0
  1233. package/src/tools/FileReadTool/UI.tsx +185 -0
  1234. package/src/tools/FileReadTool/imageProcessor.ts +94 -0
  1235. package/src/tools/FileReadTool/limits.ts +92 -0
  1236. package/src/tools/FileReadTool/prompt.ts +49 -0
  1237. package/src/tools/FileWriteTool/FileWriteTool.ts +434 -0
  1238. package/src/tools/FileWriteTool/UI.tsx +405 -0
  1239. package/src/tools/FileWriteTool/prompt.ts +18 -0
  1240. package/src/tools/GlobTool/GlobTool.ts +198 -0
  1241. package/src/tools/GlobTool/UI.tsx +63 -0
  1242. package/src/tools/GlobTool/prompt.ts +7 -0
  1243. package/src/tools/GrepTool/GrepTool.ts +577 -0
  1244. package/src/tools/GrepTool/UI.tsx +201 -0
  1245. package/src/tools/GrepTool/prompt.ts +18 -0
  1246. package/src/tools/LSPTool/LSPTool.ts +860 -0
  1247. package/src/tools/LSPTool/UI.tsx +228 -0
  1248. package/src/tools/LSPTool/formatters.ts +592 -0
  1249. package/src/tools/LSPTool/prompt.ts +21 -0
  1250. package/src/tools/LSPTool/schemas.ts +215 -0
  1251. package/src/tools/LSPTool/symbolContext.ts +90 -0
  1252. package/src/tools/ListMcpResourcesTool/ListMcpResourcesTool.ts +123 -0
  1253. package/src/tools/ListMcpResourcesTool/UI.tsx +29 -0
  1254. package/src/tools/ListMcpResourcesTool/prompt.ts +20 -0
  1255. package/src/tools/MCPTool/MCPTool.ts +77 -0
  1256. package/src/tools/MCPTool/UI.tsx +403 -0
  1257. package/src/tools/MCPTool/classifyForCollapse.ts +604 -0
  1258. package/src/tools/MCPTool/prompt.ts +3 -0
  1259. package/src/tools/McpAuthTool/McpAuthTool.ts +215 -0
  1260. package/src/tools/NotebookEditTool/NotebookEditTool.ts +490 -0
  1261. package/src/tools/NotebookEditTool/UI.tsx +93 -0
  1262. package/src/tools/NotebookEditTool/constants.ts +2 -0
  1263. package/src/tools/NotebookEditTool/prompt.ts +3 -0
  1264. package/src/tools/PowerShellTool/PowerShellTool.tsx +1001 -0
  1265. package/src/tools/PowerShellTool/UI.tsx +131 -0
  1266. package/src/tools/PowerShellTool/clmTypes.ts +211 -0
  1267. package/src/tools/PowerShellTool/commandSemantics.ts +142 -0
  1268. package/src/tools/PowerShellTool/commonParameters.ts +30 -0
  1269. package/src/tools/PowerShellTool/destructiveCommandWarning.ts +109 -0
  1270. package/src/tools/PowerShellTool/gitSafety.ts +176 -0
  1271. package/src/tools/PowerShellTool/modeValidation.ts +404 -0
  1272. package/src/tools/PowerShellTool/pathValidation.ts +2049 -0
  1273. package/src/tools/PowerShellTool/powershellPermissions.ts +1648 -0
  1274. package/src/tools/PowerShellTool/powershellSecurity.ts +1090 -0
  1275. package/src/tools/PowerShellTool/prompt.ts +145 -0
  1276. package/src/tools/PowerShellTool/readOnlyValidation.ts +1823 -0
  1277. package/src/tools/PowerShellTool/toolName.ts +2 -0
  1278. package/src/tools/REPLTool/constants.ts +46 -0
  1279. package/src/tools/REPLTool/primitiveTools.ts +39 -0
  1280. package/src/tools/ReadMcpResourceTool/ReadMcpResourceTool.ts +158 -0
  1281. package/src/tools/ReadMcpResourceTool/UI.tsx +37 -0
  1282. package/src/tools/ReadMcpResourceTool/prompt.ts +16 -0
  1283. package/src/tools/RemoteTriggerTool/RemoteTriggerTool.ts +161 -0
  1284. package/src/tools/RemoteTriggerTool/UI.tsx +17 -0
  1285. package/src/tools/RemoteTriggerTool/prompt.ts +15 -0
  1286. package/src/tools/ScheduleCronTool/CronCreateTool.ts +157 -0
  1287. package/src/tools/ScheduleCronTool/CronDeleteTool.ts +95 -0
  1288. package/src/tools/ScheduleCronTool/CronListTool.ts +97 -0
  1289. package/src/tools/ScheduleCronTool/UI.tsx +60 -0
  1290. package/src/tools/ScheduleCronTool/prompt.ts +135 -0
  1291. package/src/tools/SendMessageTool/SendMessageTool.ts +917 -0
  1292. package/src/tools/SendMessageTool/UI.tsx +31 -0
  1293. package/src/tools/SendMessageTool/constants.ts +1 -0
  1294. package/src/tools/SendMessageTool/prompt.ts +49 -0
  1295. package/src/tools/SkillTool/SkillTool.ts +1108 -0
  1296. package/src/tools/SkillTool/UI.tsx +128 -0
  1297. package/src/tools/SkillTool/constants.ts +1 -0
  1298. package/src/tools/SkillTool/prompt.ts +241 -0
  1299. package/src/tools/SleepTool/prompt.ts +17 -0
  1300. package/src/tools/SyntheticOutputTool/SyntheticOutputTool.ts +163 -0
  1301. package/src/tools/TaskCreateTool/TaskCreateTool.ts +138 -0
  1302. package/src/tools/TaskCreateTool/constants.ts +1 -0
  1303. package/src/tools/TaskCreateTool/prompt.ts +56 -0
  1304. package/src/tools/TaskGetTool/TaskGetTool.ts +128 -0
  1305. package/src/tools/TaskGetTool/constants.ts +1 -0
  1306. package/src/tools/TaskGetTool/prompt.ts +24 -0
  1307. package/src/tools/TaskListTool/TaskListTool.ts +116 -0
  1308. package/src/tools/TaskListTool/constants.ts +1 -0
  1309. package/src/tools/TaskListTool/prompt.ts +49 -0
  1310. package/src/tools/TaskOutputTool/TaskOutputTool.tsx +584 -0
  1311. package/src/tools/TaskOutputTool/constants.ts +1 -0
  1312. package/src/tools/TaskStopTool/TaskStopTool.ts +131 -0
  1313. package/src/tools/TaskStopTool/UI.tsx +41 -0
  1314. package/src/tools/TaskStopTool/prompt.ts +8 -0
  1315. package/src/tools/TaskUpdateTool/TaskUpdateTool.ts +406 -0
  1316. package/src/tools/TaskUpdateTool/constants.ts +1 -0
  1317. package/src/tools/TaskUpdateTool/prompt.ts +77 -0
  1318. package/src/tools/TeamCreateTool/TeamCreateTool.ts +240 -0
  1319. package/src/tools/TeamCreateTool/UI.tsx +6 -0
  1320. package/src/tools/TeamCreateTool/constants.ts +1 -0
  1321. package/src/tools/TeamCreateTool/prompt.ts +113 -0
  1322. package/src/tools/TeamDeleteTool/TeamDeleteTool.ts +139 -0
  1323. package/src/tools/TeamDeleteTool/UI.tsx +20 -0
  1324. package/src/tools/TeamDeleteTool/constants.ts +1 -0
  1325. package/src/tools/TeamDeleteTool/prompt.ts +16 -0
  1326. package/src/tools/TodoWriteTool/TodoWriteTool.ts +115 -0
  1327. package/src/tools/TodoWriteTool/constants.ts +1 -0
  1328. package/src/tools/TodoWriteTool/prompt.ts +184 -0
  1329. package/src/tools/ToolSearchTool/ToolSearchTool.ts +471 -0
  1330. package/src/tools/ToolSearchTool/constants.ts +1 -0
  1331. package/src/tools/ToolSearchTool/prompt.ts +121 -0
  1332. package/src/tools/TungstenTool/TungstenLiveMonitor.tsx +5 -0
  1333. package/src/tools/TungstenTool/TungstenTool.ts +43 -0
  1334. package/src/tools/WebFetchTool/UI.tsx +72 -0
  1335. package/src/tools/WebFetchTool/WebFetchTool.ts +318 -0
  1336. package/src/tools/WebFetchTool/preapproved.ts +166 -0
  1337. package/src/tools/WebFetchTool/prompt.ts +46 -0
  1338. package/src/tools/WebFetchTool/utils.ts +530 -0
  1339. package/src/tools/WebSearchTool/UI.tsx +101 -0
  1340. package/src/tools/WebSearchTool/WebSearchTool.ts +435 -0
  1341. package/src/tools/WebSearchTool/prompt.ts +34 -0
  1342. package/src/tools/WorkflowTool/constants.ts +1 -0
  1343. package/src/tools/shared/gitOperationTracking.ts +277 -0
  1344. package/src/tools/shared/spawnMultiAgent.ts +1093 -0
  1345. package/src/tools/testing/TestingPermissionTool.tsx +74 -0
  1346. package/src/tools/utils.ts +40 -0
  1347. package/src/tools.ts +389 -0
  1348. package/src/types/command.ts +216 -0
  1349. package/src/types/connectorText.ts +20 -0
  1350. package/src/types/generated/events_mono/claude_code/v1/claude_code_internal_event.ts +865 -0
  1351. package/src/types/generated/events_mono/common/v1/auth.ts +100 -0
  1352. package/src/types/generated/events_mono/growthbook/v1/growthbook_experiment_event.ts +223 -0
  1353. package/src/types/generated/google/protobuf/timestamp.ts +187 -0
  1354. package/src/types/hooks.ts +290 -0
  1355. package/src/types/ids.ts +44 -0
  1356. package/src/types/logs.ts +330 -0
  1357. package/src/types/permissions.ts +441 -0
  1358. package/src/types/plugin.ts +363 -0
  1359. package/src/types/textInputTypes.ts +387 -0
  1360. package/src/upstreamproxy/relay.ts +455 -0
  1361. package/src/upstreamproxy/upstreamproxy.ts +285 -0
  1362. package/src/utils/CircularBuffer.ts +84 -0
  1363. package/src/utils/Cursor.ts +1530 -0
  1364. package/src/utils/QueryGuard.ts +121 -0
  1365. package/src/utils/Shell.ts +474 -0
  1366. package/src/utils/ShellCommand.ts +465 -0
  1367. package/src/utils/abortController.ts +99 -0
  1368. package/src/utils/activityManager.ts +164 -0
  1369. package/src/utils/advisor.ts +145 -0
  1370. package/src/utils/agentContext.ts +178 -0
  1371. package/src/utils/agentId.ts +99 -0
  1372. package/src/utils/agentSwarmsEnabled.ts +44 -0
  1373. package/src/utils/agenticSessionSearch.ts +307 -0
  1374. package/src/utils/analyzeContext.ts +1382 -0
  1375. package/src/utils/ansiToPng.ts +334 -0
  1376. package/src/utils/ansiToSvg.ts +272 -0
  1377. package/src/utils/api.ts +718 -0
  1378. package/src/utils/apiPreconnect.ts +71 -0
  1379. package/src/utils/appleTerminalBackup.ts +124 -0
  1380. package/src/utils/argumentSubstitution.ts +145 -0
  1381. package/src/utils/array.ts +13 -0
  1382. package/src/utils/asciicast.ts +239 -0
  1383. package/src/utils/attachments.ts +3997 -0
  1384. package/src/utils/attribution.ts +393 -0
  1385. package/src/utils/auth.ts +2004 -0
  1386. package/src/utils/authFileDescriptor.ts +196 -0
  1387. package/src/utils/authPortable.ts +19 -0
  1388. package/src/utils/autoModeDenials.ts +26 -0
  1389. package/src/utils/autoRunIssue.tsx +122 -0
  1390. package/src/utils/autoUpdater.ts +567 -0
  1391. package/src/utils/aws.ts +74 -0
  1392. package/src/utils/awsAuthStatusManager.ts +81 -0
  1393. package/src/utils/background/remote/preconditions.ts +235 -0
  1394. package/src/utils/background/remote/remoteSession.ts +98 -0
  1395. package/src/utils/backgroundHousekeeping.ts +94 -0
  1396. package/src/utils/bash/ParsedCommand.ts +318 -0
  1397. package/src/utils/bash/ShellSnapshot.ts +582 -0
  1398. package/src/utils/bash/ast.ts +2679 -0
  1399. package/src/utils/bash/bashParser.ts +4436 -0
  1400. package/src/utils/bash/bashPipeCommand.ts +294 -0
  1401. package/src/utils/bash/commands.ts +1339 -0
  1402. package/src/utils/bash/heredoc.ts +733 -0
  1403. package/src/utils/bash/parser.ts +230 -0
  1404. package/src/utils/bash/prefix.ts +204 -0
  1405. package/src/utils/bash/registry.ts +53 -0
  1406. package/src/utils/bash/shellCompletion.ts +259 -0
  1407. package/src/utils/bash/shellPrefix.ts +28 -0
  1408. package/src/utils/bash/shellQuote.ts +304 -0
  1409. package/src/utils/bash/shellQuoting.ts +128 -0
  1410. package/src/utils/bash/specs/alias.ts +14 -0
  1411. package/src/utils/bash/specs/index.ts +18 -0
  1412. package/src/utils/bash/specs/nohup.ts +13 -0
  1413. package/src/utils/bash/specs/pyright.ts +91 -0
  1414. package/src/utils/bash/specs/sleep.ts +13 -0
  1415. package/src/utils/bash/specs/srun.ts +31 -0
  1416. package/src/utils/bash/specs/time.ts +13 -0
  1417. package/src/utils/bash/specs/timeout.ts +20 -0
  1418. package/src/utils/bash/treeSitterAnalysis.ts +506 -0
  1419. package/src/utils/betas.ts +434 -0
  1420. package/src/utils/billing.ts +78 -0
  1421. package/src/utils/binaryCheck.ts +53 -0
  1422. package/src/utils/browser.ts +68 -0
  1423. package/src/utils/bufferedWriter.ts +100 -0
  1424. package/src/utils/bundledMode.ts +22 -0
  1425. package/src/utils/caCerts.ts +115 -0
  1426. package/src/utils/caCertsConfig.ts +88 -0
  1427. package/src/utils/cachePaths.ts +38 -0
  1428. package/src/utils/classifierApprovals.ts +88 -0
  1429. package/src/utils/classifierApprovalsHook.ts +17 -0
  1430. package/src/utils/claudeCodeHints.ts +193 -0
  1431. package/src/utils/claudeDesktop.ts +152 -0
  1432. package/src/utils/claudeInChrome/chromeNativeHost.ts +527 -0
  1433. package/src/utils/claudeInChrome/common.ts +540 -0
  1434. package/src/utils/claudeInChrome/mcpServer.ts +293 -0
  1435. package/src/utils/claudeInChrome/prompt.ts +83 -0
  1436. package/src/utils/claudeInChrome/setup.ts +400 -0
  1437. package/src/utils/claudeInChrome/setupPortable.ts +233 -0
  1438. package/src/utils/claudeInChrome/toolRendering.tsx +262 -0
  1439. package/src/utils/claudemd.ts +1479 -0
  1440. package/src/utils/cleanup.ts +602 -0
  1441. package/src/utils/cleanupRegistry.ts +25 -0
  1442. package/src/utils/cliArgs.ts +60 -0
  1443. package/src/utils/cliHighlight.ts +54 -0
  1444. package/src/utils/codeIndexing.ts +206 -0
  1445. package/src/utils/collapseBackgroundBashNotifications.ts +84 -0
  1446. package/src/utils/collapseHookSummaries.ts +59 -0
  1447. package/src/utils/collapseReadSearch.ts +1109 -0
  1448. package/src/utils/collapseTeammateShutdowns.ts +55 -0
  1449. package/src/utils/combinedAbortSignal.ts +47 -0
  1450. package/src/utils/commandLifecycle.ts +21 -0
  1451. package/src/utils/commitAttribution.ts +961 -0
  1452. package/src/utils/completionCache.ts +166 -0
  1453. package/src/utils/computerUse/appNames.ts +196 -0
  1454. package/src/utils/computerUse/cleanup.ts +86 -0
  1455. package/src/utils/computerUse/common.ts +61 -0
  1456. package/src/utils/computerUse/computerUseLock.ts +215 -0
  1457. package/src/utils/computerUse/drainRunLoop.ts +79 -0
  1458. package/src/utils/computerUse/escHotkey.ts +54 -0
  1459. package/src/utils/computerUse/executor.ts +658 -0
  1460. package/src/utils/computerUse/gates.ts +72 -0
  1461. package/src/utils/computerUse/hostAdapter.ts +69 -0
  1462. package/src/utils/computerUse/inputLoader.ts +30 -0
  1463. package/src/utils/computerUse/mcpServer.ts +106 -0
  1464. package/src/utils/computerUse/setup.ts +53 -0
  1465. package/src/utils/computerUse/swiftLoader.ts +23 -0
  1466. package/src/utils/computerUse/toolRendering.tsx +125 -0
  1467. package/src/utils/computerUse/wrapper.tsx +336 -0
  1468. package/src/utils/concurrentSessions.ts +204 -0
  1469. package/src/utils/config.ts +1817 -0
  1470. package/src/utils/configConstants.ts +21 -0
  1471. package/src/utils/contentArray.ts +51 -0
  1472. package/src/utils/context.ts +221 -0
  1473. package/src/utils/contextAnalysis.ts +272 -0
  1474. package/src/utils/contextSuggestions.ts +235 -0
  1475. package/src/utils/controlMessageCompat.ts +32 -0
  1476. package/src/utils/conversationRecovery.ts +597 -0
  1477. package/src/utils/cron.ts +308 -0
  1478. package/src/utils/cronJitterConfig.ts +75 -0
  1479. package/src/utils/cronScheduler.ts +565 -0
  1480. package/src/utils/cronTasks.ts +458 -0
  1481. package/src/utils/cronTasksLock.ts +195 -0
  1482. package/src/utils/crossProjectResume.ts +75 -0
  1483. package/src/utils/crypto.ts +13 -0
  1484. package/src/utils/cwd.ts +32 -0
  1485. package/src/utils/debug.ts +268 -0
  1486. package/src/utils/debugFilter.ts +157 -0
  1487. package/src/utils/deepLink/banner.ts +123 -0
  1488. package/src/utils/deepLink/parseDeepLink.ts +170 -0
  1489. package/src/utils/deepLink/protocolHandler.ts +136 -0
  1490. package/src/utils/deepLink/registerProtocol.ts +348 -0
  1491. package/src/utils/deepLink/terminalLauncher.ts +557 -0
  1492. package/src/utils/deepLink/terminalPreference.ts +54 -0
  1493. package/src/utils/desktopDeepLink.ts +236 -0
  1494. package/src/utils/detectRepository.ts +178 -0
  1495. package/src/utils/diagLogs.ts +94 -0
  1496. package/src/utils/diff.ts +177 -0
  1497. package/src/utils/directMemberMessage.ts +69 -0
  1498. package/src/utils/displayTags.ts +51 -0
  1499. package/src/utils/doctorContextWarnings.ts +265 -0
  1500. package/src/utils/doctorDiagnostic.ts +625 -0
  1501. package/src/utils/dxt/helpers.ts +88 -0
  1502. package/src/utils/dxt/zip.ts +226 -0
  1503. package/src/utils/earlyInput.ts +191 -0
  1504. package/src/utils/editor.ts +183 -0
  1505. package/src/utils/effort.ts +329 -0
  1506. package/src/utils/embeddedTools.ts +29 -0
  1507. package/src/utils/env.ts +347 -0
  1508. package/src/utils/envDynamic.ts +151 -0
  1509. package/src/utils/envUtils.ts +183 -0
  1510. package/src/utils/envValidation.ts +38 -0
  1511. package/src/utils/errorLogSink.ts +235 -0
  1512. package/src/utils/errors.ts +238 -0
  1513. package/src/utils/exampleCommands.ts +184 -0
  1514. package/src/utils/execFileNoThrow.ts +150 -0
  1515. package/src/utils/execFileNoThrowPortable.ts +89 -0
  1516. package/src/utils/execSyncWrapper.ts +38 -0
  1517. package/src/utils/exportRenderer.tsx +98 -0
  1518. package/src/utils/extraUsage.ts +23 -0
  1519. package/src/utils/fastMode.ts +532 -0
  1520. package/src/utils/file.ts +584 -0
  1521. package/src/utils/fileHistory.ts +1115 -0
  1522. package/src/utils/fileOperationAnalytics.ts +71 -0
  1523. package/src/utils/filePersistence/filePersistence.ts +287 -0
  1524. package/src/utils/filePersistence/outputsScanner.ts +126 -0
  1525. package/src/utils/filePersistence/types.ts +22 -0
  1526. package/src/utils/fileRead.ts +102 -0
  1527. package/src/utils/fileReadCache.ts +96 -0
  1528. package/src/utils/fileStateCache.ts +142 -0
  1529. package/src/utils/findExecutable.ts +17 -0
  1530. package/src/utils/fingerprint.ts +76 -0
  1531. package/src/utils/forkedAgent.ts +689 -0
  1532. package/src/utils/format.ts +308 -0
  1533. package/src/utils/formatBriefTimestamp.ts +81 -0
  1534. package/src/utils/fpsTracker.ts +47 -0
  1535. package/src/utils/frontmatterParser.ts +370 -0
  1536. package/src/utils/fsOperations.ts +770 -0
  1537. package/src/utils/fullscreen.ts +202 -0
  1538. package/src/utils/generatedFiles.ts +136 -0
  1539. package/src/utils/generators.ts +88 -0
  1540. package/src/utils/genericProcessUtils.ts +184 -0
  1541. package/src/utils/getWorktreePaths.ts +70 -0
  1542. package/src/utils/getWorktreePathsPortable.ts +27 -0
  1543. package/src/utils/ghPrStatus.ts +106 -0
  1544. package/src/utils/git/gitConfigParser.ts +277 -0
  1545. package/src/utils/git/gitFilesystem.ts +699 -0
  1546. package/src/utils/git/gitignore.ts +99 -0
  1547. package/src/utils/git.ts +926 -0
  1548. package/src/utils/gitDiff.ts +532 -0
  1549. package/src/utils/gitSettings.ts +18 -0
  1550. package/src/utils/github/ghAuthStatus.ts +29 -0
  1551. package/src/utils/githubRepoPathMapping.ts +162 -0
  1552. package/src/utils/glob.ts +130 -0
  1553. package/src/utils/gracefulShutdown.ts +529 -0
  1554. package/src/utils/groupToolUses.ts +182 -0
  1555. package/src/utils/handlePromptSubmit.ts +610 -0
  1556. package/src/utils/hash.ts +46 -0
  1557. package/src/utils/headlessProfiler.ts +178 -0
  1558. package/src/utils/heapDumpService.ts +303 -0
  1559. package/src/utils/heatmap.ts +198 -0
  1560. package/src/utils/highlightMatch.tsx +28 -0
  1561. package/src/utils/hooks/AsyncHookRegistry.ts +309 -0
  1562. package/src/utils/hooks/apiQueryHookHelper.ts +141 -0
  1563. package/src/utils/hooks/execAgentHook.ts +339 -0
  1564. package/src/utils/hooks/execHttpHook.ts +242 -0
  1565. package/src/utils/hooks/execPromptHook.ts +211 -0
  1566. package/src/utils/hooks/fileChangedWatcher.ts +191 -0
  1567. package/src/utils/hooks/hookEvents.ts +192 -0
  1568. package/src/utils/hooks/hookHelpers.ts +83 -0
  1569. package/src/utils/hooks/hooksConfigManager.ts +400 -0
  1570. package/src/utils/hooks/hooksConfigSnapshot.ts +133 -0
  1571. package/src/utils/hooks/hooksSettings.ts +271 -0
  1572. package/src/utils/hooks/postSamplingHooks.ts +70 -0
  1573. package/src/utils/hooks/registerFrontmatterHooks.ts +67 -0
  1574. package/src/utils/hooks/registerSkillHooks.ts +64 -0
  1575. package/src/utils/hooks/sessionHooks.ts +447 -0
  1576. package/src/utils/hooks/skillImprovement.ts +267 -0
  1577. package/src/utils/hooks/ssrfGuard.ts +294 -0
  1578. package/src/utils/hooks.ts +5022 -0
  1579. package/src/utils/horizontalScroll.ts +137 -0
  1580. package/src/utils/http.ts +136 -0
  1581. package/src/utils/hyperlink.ts +39 -0
  1582. package/src/utils/iTermBackup.ts +73 -0
  1583. package/src/utils/ide.ts +1494 -0
  1584. package/src/utils/idePathConversion.ts +90 -0
  1585. package/src/utils/idleTimeout.ts +53 -0
  1586. package/src/utils/imagePaste.ts +416 -0
  1587. package/src/utils/imageResizer.ts +880 -0
  1588. package/src/utils/imageStore.ts +167 -0
  1589. package/src/utils/imageValidation.ts +104 -0
  1590. package/src/utils/immediateCommand.ts +15 -0
  1591. package/src/utils/inProcessTeammateHelpers.ts +102 -0
  1592. package/src/utils/ink.ts +26 -0
  1593. package/src/utils/intl.ts +94 -0
  1594. package/src/utils/jetbrains.ts +191 -0
  1595. package/src/utils/json.ts +277 -0
  1596. package/src/utils/jsonRead.ts +16 -0
  1597. package/src/utils/keyboardShortcuts.ts +14 -0
  1598. package/src/utils/lazySchema.ts +8 -0
  1599. package/src/utils/listSessionsImpl.ts +454 -0
  1600. package/src/utils/localInstaller.ts +162 -0
  1601. package/src/utils/lockfile.ts +43 -0
  1602. package/src/utils/log.ts +362 -0
  1603. package/src/utils/logoV2Utils.ts +350 -0
  1604. package/src/utils/mailbox.ts +73 -0
  1605. package/src/utils/managedEnv.ts +199 -0
  1606. package/src/utils/managedEnvConstants.ts +191 -0
  1607. package/src/utils/markdown.ts +381 -0
  1608. package/src/utils/markdownConfigLoader.ts +600 -0
  1609. package/src/utils/mcp/dateTimeParser.ts +121 -0
  1610. package/src/utils/mcp/elicitationValidation.ts +336 -0
  1611. package/src/utils/mcpInstructionsDelta.ts +130 -0
  1612. package/src/utils/mcpOutputStorage.ts +189 -0
  1613. package/src/utils/mcpValidation.ts +208 -0
  1614. package/src/utils/mcpWebSocketTransport.ts +200 -0
  1615. package/src/utils/memoize.ts +269 -0
  1616. package/src/utils/memory/types.ts +12 -0
  1617. package/src/utils/memory/versions.ts +8 -0
  1618. package/src/utils/memoryFileDetection.ts +289 -0
  1619. package/src/utils/messagePredicates.ts +8 -0
  1620. package/src/utils/messageQueueManager.ts +547 -0
  1621. package/src/utils/messages/mappers.ts +290 -0
  1622. package/src/utils/messages/systemInit.ts +96 -0
  1623. package/src/utils/messages.ts +5512 -0
  1624. package/src/utils/model/agent.ts +157 -0
  1625. package/src/utils/model/aliases.ts +25 -0
  1626. package/src/utils/model/antModels.ts +64 -0
  1627. package/src/utils/model/bedrock.ts +265 -0
  1628. package/src/utils/model/check1mAccess.ts +72 -0
  1629. package/src/utils/model/configs.ts +118 -0
  1630. package/src/utils/model/contextWindowUpgradeCheck.ts +47 -0
  1631. package/src/utils/model/deprecation.ts +101 -0
  1632. package/src/utils/model/model.ts +635 -0
  1633. package/src/utils/model/modelAllowlist.ts +170 -0
  1634. package/src/utils/model/modelCapabilities.ts +118 -0
  1635. package/src/utils/model/modelOptions.ts +588 -0
  1636. package/src/utils/model/modelStrings.ts +166 -0
  1637. package/src/utils/model/modelSupportOverrides.ts +50 -0
  1638. package/src/utils/model/providers.ts +40 -0
  1639. package/src/utils/model/validateModel.ts +159 -0
  1640. package/src/utils/modelCost.ts +231 -0
  1641. package/src/utils/modifiers.ts +40 -0
  1642. package/src/utils/mtls.ts +179 -0
  1643. package/src/utils/nativeInstaller/download.ts +523 -0
  1644. package/src/utils/nativeInstaller/index.ts +18 -0
  1645. package/src/utils/nativeInstaller/installer.ts +1708 -0
  1646. package/src/utils/nativeInstaller/packageManagers.ts +336 -0
  1647. package/src/utils/nativeInstaller/pidLock.ts +433 -0
  1648. package/src/utils/notebook.ts +224 -0
  1649. package/src/utils/objectGroupBy.ts +18 -0
  1650. package/src/utils/pasteStore.ts +104 -0
  1651. package/src/utils/path.ts +155 -0
  1652. package/src/utils/pdf.ts +300 -0
  1653. package/src/utils/pdfUtils.ts +70 -0
  1654. package/src/utils/peerAddress.ts +21 -0
  1655. package/src/utils/permissions/PermissionMode.ts +141 -0
  1656. package/src/utils/permissions/PermissionPromptToolResultSchema.ts +127 -0
  1657. package/src/utils/permissions/PermissionResult.ts +35 -0
  1658. package/src/utils/permissions/PermissionRule.ts +40 -0
  1659. package/src/utils/permissions/PermissionUpdate.ts +389 -0
  1660. package/src/utils/permissions/PermissionUpdateSchema.ts +78 -0
  1661. package/src/utils/permissions/autoModeState.ts +39 -0
  1662. package/src/utils/permissions/bashClassifier.ts +61 -0
  1663. package/src/utils/permissions/bypassPermissionsKillswitch.ts +155 -0
  1664. package/src/utils/permissions/classifierDecision.ts +98 -0
  1665. package/src/utils/permissions/classifierShared.ts +39 -0
  1666. package/src/utils/permissions/dangerousPatterns.ts +80 -0
  1667. package/src/utils/permissions/denialTracking.ts +45 -0
  1668. package/src/utils/permissions/filesystem.ts +1777 -0
  1669. package/src/utils/permissions/getNextPermissionMode.ts +101 -0
  1670. package/src/utils/permissions/pathValidation.ts +485 -0
  1671. package/src/utils/permissions/permissionExplainer.ts +250 -0
  1672. package/src/utils/permissions/permissionRuleParser.ts +198 -0
  1673. package/src/utils/permissions/permissionSetup.ts +1532 -0
  1674. package/src/utils/permissions/permissions.ts +1486 -0
  1675. package/src/utils/permissions/permissionsLoader.ts +296 -0
  1676. package/src/utils/permissions/shadowedRuleDetection.ts +234 -0
  1677. package/src/utils/permissions/shellRuleMatching.ts +228 -0
  1678. package/src/utils/permissions/yoloClassifier.ts +1495 -0
  1679. package/src/utils/planModeV2.ts +95 -0
  1680. package/src/utils/plans.ts +397 -0
  1681. package/src/utils/platform.ts +150 -0
  1682. package/src/utils/plugins/addDirPluginSettings.ts +71 -0
  1683. package/src/utils/plugins/cacheUtils.ts +196 -0
  1684. package/src/utils/plugins/dependencyResolver.ts +305 -0
  1685. package/src/utils/plugins/fetchTelemetry.ts +135 -0
  1686. package/src/utils/plugins/gitAvailability.ts +69 -0
  1687. package/src/utils/plugins/headlessPluginInstall.ts +174 -0
  1688. package/src/utils/plugins/hintRecommendation.ts +164 -0
  1689. package/src/utils/plugins/installCounts.ts +292 -0
  1690. package/src/utils/plugins/installedPluginsManager.ts +1268 -0
  1691. package/src/utils/plugins/loadPluginAgents.ts +348 -0
  1692. package/src/utils/plugins/loadPluginCommands.ts +946 -0
  1693. package/src/utils/plugins/loadPluginHooks.ts +287 -0
  1694. package/src/utils/plugins/loadPluginOutputStyles.ts +178 -0
  1695. package/src/utils/plugins/lspPluginIntegration.ts +387 -0
  1696. package/src/utils/plugins/lspRecommendation.ts +374 -0
  1697. package/src/utils/plugins/managedPlugins.ts +27 -0
  1698. package/src/utils/plugins/marketplaceHelpers.ts +592 -0
  1699. package/src/utils/plugins/marketplaceManager.ts +2643 -0
  1700. package/src/utils/plugins/mcpPluginIntegration.ts +634 -0
  1701. package/src/utils/plugins/mcpbHandler.ts +968 -0
  1702. package/src/utils/plugins/officialMarketplace.ts +25 -0
  1703. package/src/utils/plugins/officialMarketplaceGcs.ts +216 -0
  1704. package/src/utils/plugins/officialMarketplaceStartupCheck.ts +439 -0
  1705. package/src/utils/plugins/orphanedPluginFilter.ts +114 -0
  1706. package/src/utils/plugins/parseMarketplaceInput.ts +162 -0
  1707. package/src/utils/plugins/performStartupChecks.tsx +70 -0
  1708. package/src/utils/plugins/pluginAutoupdate.ts +284 -0
  1709. package/src/utils/plugins/pluginBlocklist.ts +127 -0
  1710. package/src/utils/plugins/pluginDirectories.ts +178 -0
  1711. package/src/utils/plugins/pluginFlagging.ts +208 -0
  1712. package/src/utils/plugins/pluginIdentifier.ts +123 -0
  1713. package/src/utils/plugins/pluginInstallationHelpers.ts +595 -0
  1714. package/src/utils/plugins/pluginLoader.ts +3302 -0
  1715. package/src/utils/plugins/pluginOptionsStorage.ts +400 -0
  1716. package/src/utils/plugins/pluginPolicy.ts +20 -0
  1717. package/src/utils/plugins/pluginStartupCheck.ts +341 -0
  1718. package/src/utils/plugins/pluginVersioning.ts +157 -0
  1719. package/src/utils/plugins/reconciler.ts +265 -0
  1720. package/src/utils/plugins/refresh.ts +215 -0
  1721. package/src/utils/plugins/schemas.ts +1681 -0
  1722. package/src/utils/plugins/validatePlugin.ts +903 -0
  1723. package/src/utils/plugins/walkPluginMarkdown.ts +69 -0
  1724. package/src/utils/plugins/zipCache.ts +406 -0
  1725. package/src/utils/plugins/zipCacheAdapters.ts +164 -0
  1726. package/src/utils/powershell/dangerousCmdlets.ts +185 -0
  1727. package/src/utils/powershell/parser.ts +1804 -0
  1728. package/src/utils/powershell/staticPrefix.ts +316 -0
  1729. package/src/utils/preflightChecks.tsx +151 -0
  1730. package/src/utils/privacyLevel.ts +55 -0
  1731. package/src/utils/process.ts +68 -0
  1732. package/src/utils/processUserInput/processBashCommand.tsx +140 -0
  1733. package/src/utils/processUserInput/processSlashCommand.tsx +922 -0
  1734. package/src/utils/processUserInput/processTextPrompt.ts +100 -0
  1735. package/src/utils/processUserInput/processUserInput.ts +605 -0
  1736. package/src/utils/profilerBase.ts +46 -0
  1737. package/src/utils/promptCategory.ts +49 -0
  1738. package/src/utils/promptEditor.ts +188 -0
  1739. package/src/utils/promptShellExecution.ts +183 -0
  1740. package/src/utils/proxy.ts +426 -0
  1741. package/src/utils/queryContext.ts +179 -0
  1742. package/src/utils/queryHelpers.ts +552 -0
  1743. package/src/utils/queryProfiler.ts +301 -0
  1744. package/src/utils/queueProcessor.ts +95 -0
  1745. package/src/utils/readEditContext.ts +227 -0
  1746. package/src/utils/readFileInRange.ts +383 -0
  1747. package/src/utils/releaseNotes.ts +360 -0
  1748. package/src/utils/renderOptions.ts +77 -0
  1749. package/src/utils/ripgrep.ts +679 -0
  1750. package/src/utils/sandbox/sandbox-adapter.ts +985 -0
  1751. package/src/utils/sandbox/sandbox-ui-utils.ts +12 -0
  1752. package/src/utils/sanitization.ts +91 -0
  1753. package/src/utils/screenshotClipboard.ts +121 -0
  1754. package/src/utils/sdkEventQueue.ts +134 -0
  1755. package/src/utils/secureStorage/fallbackStorage.ts +70 -0
  1756. package/src/utils/secureStorage/index.ts +17 -0
  1757. package/src/utils/secureStorage/keychainPrefetch.ts +116 -0
  1758. package/src/utils/secureStorage/macOsKeychainHelpers.ts +111 -0
  1759. package/src/utils/secureStorage/macOsKeychainStorage.ts +231 -0
  1760. package/src/utils/secureStorage/plainTextStorage.ts +84 -0
  1761. package/src/utils/semanticBoolean.ts +29 -0
  1762. package/src/utils/semanticNumber.ts +36 -0
  1763. package/src/utils/semver.ts +59 -0
  1764. package/src/utils/sequential.ts +56 -0
  1765. package/src/utils/sessionActivity.ts +133 -0
  1766. package/src/utils/sessionEnvVars.ts +22 -0
  1767. package/src/utils/sessionEnvironment.ts +166 -0
  1768. package/src/utils/sessionFileAccessHooks.ts +250 -0
  1769. package/src/utils/sessionIngressAuth.ts +140 -0
  1770. package/src/utils/sessionRestore.ts +551 -0
  1771. package/src/utils/sessionStart.ts +232 -0
  1772. package/src/utils/sessionState.ts +150 -0
  1773. package/src/utils/sessionStorage.ts +5105 -0
  1774. package/src/utils/sessionStoragePortable.ts +793 -0
  1775. package/src/utils/sessionTitle.ts +129 -0
  1776. package/src/utils/sessionUrl.ts +64 -0
  1777. package/src/utils/set.ts +53 -0
  1778. package/src/utils/settings/allErrors.ts +32 -0
  1779. package/src/utils/settings/applySettingsChange.ts +92 -0
  1780. package/src/utils/settings/changeDetector.ts +488 -0
  1781. package/src/utils/settings/constants.ts +202 -0
  1782. package/src/utils/settings/internalWrites.ts +37 -0
  1783. package/src/utils/settings/managedPath.ts +34 -0
  1784. package/src/utils/settings/mdm/constants.ts +81 -0
  1785. package/src/utils/settings/mdm/rawRead.ts +130 -0
  1786. package/src/utils/settings/mdm/settings.ts +316 -0
  1787. package/src/utils/settings/permissionValidation.ts +262 -0
  1788. package/src/utils/settings/pluginOnlyPolicy.ts +60 -0
  1789. package/src/utils/settings/schemaOutput.ts +8 -0
  1790. package/src/utils/settings/settings.ts +1015 -0
  1791. package/src/utils/settings/settingsCache.ts +80 -0
  1792. package/src/utils/settings/toolValidationConfig.ts +103 -0
  1793. package/src/utils/settings/types.ts +1148 -0
  1794. package/src/utils/settings/validateEditTool.ts +45 -0
  1795. package/src/utils/settings/validation.ts +265 -0
  1796. package/src/utils/settings/validationTips.ts +164 -0
  1797. package/src/utils/shell/bashProvider.ts +255 -0
  1798. package/src/utils/shell/outputLimits.ts +14 -0
  1799. package/src/utils/shell/powershellDetection.ts +107 -0
  1800. package/src/utils/shell/powershellProvider.ts +123 -0
  1801. package/src/utils/shell/prefix.ts +367 -0
  1802. package/src/utils/shell/readOnlyCommandValidation.ts +1893 -0
  1803. package/src/utils/shell/resolveDefaultShell.ts +14 -0
  1804. package/src/utils/shell/shellProvider.ts +33 -0
  1805. package/src/utils/shell/shellToolUtils.ts +22 -0
  1806. package/src/utils/shell/specPrefix.ts +241 -0
  1807. package/src/utils/shellConfig.ts +167 -0
  1808. package/src/utils/sideQuery.ts +222 -0
  1809. package/src/utils/sideQuestion.ts +155 -0
  1810. package/src/utils/signal.ts +43 -0
  1811. package/src/utils/sinks.ts +16 -0
  1812. package/src/utils/skills/skillChangeDetector.ts +311 -0
  1813. package/src/utils/slashCommandParsing.ts +60 -0
  1814. package/src/utils/sleep.ts +84 -0
  1815. package/src/utils/sliceAnsi.ts +91 -0
  1816. package/src/utils/slowOperations.ts +286 -0
  1817. package/src/utils/standaloneAgent.ts +23 -0
  1818. package/src/utils/startupProfiler.ts +194 -0
  1819. package/src/utils/staticRender.tsx +116 -0
  1820. package/src/utils/stats.ts +1061 -0
  1821. package/src/utils/statsCache.ts +434 -0
  1822. package/src/utils/status.tsx +362 -0
  1823. package/src/utils/statusNoticeDefinitions.tsx +198 -0
  1824. package/src/utils/statusNoticeHelpers.ts +20 -0
  1825. package/src/utils/stream.ts +76 -0
  1826. package/src/utils/streamJsonStdoutGuard.ts +123 -0
  1827. package/src/utils/streamlinedTransform.ts +201 -0
  1828. package/src/utils/stringUtils.ts +235 -0
  1829. package/src/utils/subprocessEnv.ts +99 -0
  1830. package/src/utils/suggestions/commandSuggestions.ts +567 -0
  1831. package/src/utils/suggestions/directoryCompletion.ts +263 -0
  1832. package/src/utils/suggestions/shellHistoryCompletion.ts +119 -0
  1833. package/src/utils/suggestions/skillUsageTracking.ts +55 -0
  1834. package/src/utils/suggestions/slackChannelSuggestions.ts +209 -0
  1835. package/src/utils/swarm/It2SetupPrompt.tsx +380 -0
  1836. package/src/utils/swarm/backends/ITermBackend.ts +370 -0
  1837. package/src/utils/swarm/backends/InProcessBackend.ts +339 -0
  1838. package/src/utils/swarm/backends/PaneBackendExecutor.ts +354 -0
  1839. package/src/utils/swarm/backends/TmuxBackend.ts +764 -0
  1840. package/src/utils/swarm/backends/detection.ts +128 -0
  1841. package/src/utils/swarm/backends/it2Setup.ts +245 -0
  1842. package/src/utils/swarm/backends/registry.ts +464 -0
  1843. package/src/utils/swarm/backends/teammateModeSnapshot.ts +87 -0
  1844. package/src/utils/swarm/backends/types.ts +311 -0
  1845. package/src/utils/swarm/constants.ts +33 -0
  1846. package/src/utils/swarm/inProcessRunner.ts +1552 -0
  1847. package/src/utils/swarm/leaderPermissionBridge.ts +54 -0
  1848. package/src/utils/swarm/permissionSync.ts +928 -0
  1849. package/src/utils/swarm/reconnection.ts +119 -0
  1850. package/src/utils/swarm/spawnInProcess.ts +328 -0
  1851. package/src/utils/swarm/spawnUtils.ts +146 -0
  1852. package/src/utils/swarm/teamHelpers.ts +683 -0
  1853. package/src/utils/swarm/teammateInit.ts +129 -0
  1854. package/src/utils/swarm/teammateLayoutManager.ts +107 -0
  1855. package/src/utils/swarm/teammateModel.ts +10 -0
  1856. package/src/utils/swarm/teammatePromptAddendum.ts +18 -0
  1857. package/src/utils/systemDirectories.ts +74 -0
  1858. package/src/utils/systemPrompt.ts +123 -0
  1859. package/src/utils/systemPromptType.ts +14 -0
  1860. package/src/utils/systemTheme.ts +119 -0
  1861. package/src/utils/taggedId.ts +54 -0
  1862. package/src/utils/task/TaskOutput.ts +390 -0
  1863. package/src/utils/task/diskOutput.ts +451 -0
  1864. package/src/utils/task/framework.ts +308 -0
  1865. package/src/utils/task/outputFormatting.ts +38 -0
  1866. package/src/utils/task/sdkProgress.ts +36 -0
  1867. package/src/utils/tasks.ts +862 -0
  1868. package/src/utils/teamDiscovery.ts +81 -0
  1869. package/src/utils/teamMemoryOps.ts +88 -0
  1870. package/src/utils/teammate.ts +292 -0
  1871. package/src/utils/teammateContext.ts +96 -0
  1872. package/src/utils/teammateMailbox.ts +1183 -0
  1873. package/src/utils/telemetry/betaSessionTracing.ts +491 -0
  1874. package/src/utils/telemetry/bigqueryExporter.ts +252 -0
  1875. package/src/utils/telemetry/events.ts +75 -0
  1876. package/src/utils/telemetry/instrumentation.ts +825 -0
  1877. package/src/utils/telemetry/logger.ts +26 -0
  1878. package/src/utils/telemetry/perfettoTracing.ts +1120 -0
  1879. package/src/utils/telemetry/pluginTelemetry.ts +289 -0
  1880. package/src/utils/telemetry/sessionTracing.ts +927 -0
  1881. package/src/utils/telemetry/skillLoadedEvent.ts +39 -0
  1882. package/src/utils/telemetryAttributes.ts +71 -0
  1883. package/src/utils/teleport/api.ts +466 -0
  1884. package/src/utils/teleport/environmentSelection.ts +77 -0
  1885. package/src/utils/teleport/environments.ts +120 -0
  1886. package/src/utils/teleport/gitBundle.ts +292 -0
  1887. package/src/utils/teleport.tsx +1226 -0
  1888. package/src/utils/tempfile.ts +31 -0
  1889. package/src/utils/terminal.ts +131 -0
  1890. package/src/utils/terminalPanel.ts +191 -0
  1891. package/src/utils/textHighlighting.ts +166 -0
  1892. package/src/utils/theme.ts +639 -0
  1893. package/src/utils/thinking.ts +162 -0
  1894. package/src/utils/timeouts.ts +39 -0
  1895. package/src/utils/tmuxSocket.ts +427 -0
  1896. package/src/utils/todo/types.ts +18 -0
  1897. package/src/utils/tokenBudget.ts +73 -0
  1898. package/src/utils/tokens.ts +261 -0
  1899. package/src/utils/toolErrors.ts +132 -0
  1900. package/src/utils/toolPool.ts +79 -0
  1901. package/src/utils/toolResultStorage.ts +1040 -0
  1902. package/src/utils/toolSchemaCache.ts +26 -0
  1903. package/src/utils/toolSearch.ts +756 -0
  1904. package/src/utils/transcriptSearch.ts +202 -0
  1905. package/src/utils/treeify.ts +170 -0
  1906. package/src/utils/truncate.ts +179 -0
  1907. package/src/utils/ultraplan/ccrSession.ts +349 -0
  1908. package/src/utils/ultraplan/keyword.ts +127 -0
  1909. package/src/utils/ultraplan/prompt.txt +1 -0
  1910. package/src/utils/unaryLogging.ts +39 -0
  1911. package/src/utils/undercover.ts +89 -0
  1912. package/src/utils/user.ts +194 -0
  1913. package/src/utils/userAgent.ts +10 -0
  1914. package/src/utils/userPromptKeywords.ts +27 -0
  1915. package/src/utils/uuid.ts +27 -0
  1916. package/src/utils/warningHandler.ts +121 -0
  1917. package/src/utils/which.ts +82 -0
  1918. package/src/utils/windowsPaths.ts +173 -0
  1919. package/src/utils/withResolvers.ts +13 -0
  1920. package/src/utils/words.ts +800 -0
  1921. package/src/utils/workloadContext.ts +57 -0
  1922. package/src/utils/worktree.ts +1519 -0
  1923. package/src/utils/worktreeModeEnabled.ts +11 -0
  1924. package/src/utils/xdg.ts +65 -0
  1925. package/src/utils/xml.ts +16 -0
  1926. package/src/utils/yaml.ts +15 -0
  1927. package/src/utils/zodToJsonSchema.ts +23 -0
  1928. package/src/vim/motions.ts +82 -0
  1929. package/src/vim/operators.ts +556 -0
  1930. package/src/vim/textObjects.ts +186 -0
  1931. package/src/vim/transitions.ts +490 -0
  1932. package/src/vim/types.ts +199 -0
  1933. package/src/voice/voiceModeEnabled.ts +54 -0
  1934. package/stubs/ant-claude-for-chrome-mcp.ts +24 -0
  1935. package/stubs/color-diff-napi.ts +45 -0
  1936. package/tsconfig.json +24 -0
@@ -0,0 +1,1208 @@
1
+ import {
2
+ APIConnectionError,
3
+ APIConnectionTimeoutError,
4
+ APIError,
5
+ } from '@anthropic-ai/sdk'
6
+ import type {
7
+ BetaMessage,
8
+ BetaStopReason,
9
+ } from '@anthropic-ai/sdk/resources/beta/messages/messages.mjs'
10
+ import { AFK_MODE_BETA_HEADER } from 'src/constants/betas.js'
11
+ import type { SDKAssistantMessageError } from 'src/entrypoints/agentSdkTypes.js'
12
+ import type {
13
+ AssistantMessage,
14
+ Message,
15
+ UserMessage,
16
+ } from 'src/types/message.js'
17
+ import {
18
+ getAnthropicApiKeyWithSource,
19
+ getClaudeAIOAuthTokens,
20
+ getOauthAccountInfo,
21
+ isClaudeAISubscriber,
22
+ } from 'src/utils/auth.js'
23
+ import {
24
+ createAssistantAPIErrorMessage,
25
+ NO_RESPONSE_REQUESTED,
26
+ } from 'src/utils/messages.js'
27
+ import {
28
+ getDefaultMainLoopModelSetting,
29
+ isNonCustomOpusModel,
30
+ } from 'src/utils/model/model.js'
31
+ import { getModelStrings } from 'src/utils/model/modelStrings.js'
32
+ import { getAPIProvider } from 'src/utils/model/providers.js'
33
+ import { getIsNonInteractiveSession } from '../../bootstrap/state.js'
34
+ import {
35
+ API_PDF_MAX_PAGES,
36
+ PDF_TARGET_RAW_SIZE,
37
+ } from '../../constants/apiLimits.js'
38
+ import { isEnvTruthy } from '../../utils/envUtils.js'
39
+ import { formatFileSize } from '../../utils/format.js'
40
+ import { ImageResizeError } from '../../utils/imageResizer.js'
41
+ import { ImageSizeError } from '../../utils/imageValidation.js'
42
+ import {
43
+ type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
44
+ logEvent,
45
+ } from '../analytics/index.js'
46
+ import {
47
+ type ClaudeAILimits,
48
+ getRateLimitErrorMessage,
49
+ type OverageDisabledReason,
50
+ } from '../claudeAiLimits.js'
51
+ import { shouldProcessRateLimits } from '../rateLimitMocking.js' // Used for /mock-limits command
52
+ import { extractConnectionErrorDetails, formatAPIError } from './errorUtils.js'
53
+
54
+ export const API_ERROR_MESSAGE_PREFIX = 'API Error'
55
+
56
+ export function startsWithApiErrorPrefix(text: string): boolean {
57
+ return (
58
+ text.startsWith(API_ERROR_MESSAGE_PREFIX) ||
59
+ text.startsWith(`Please run /login · ${API_ERROR_MESSAGE_PREFIX}`)
60
+ )
61
+ }
62
+ export const PROMPT_TOO_LONG_ERROR_MESSAGE = 'Prompt is too long'
63
+
64
+ export function isPromptTooLongMessage(msg: AssistantMessage): boolean {
65
+ if (!msg.isApiErrorMessage) {
66
+ return false
67
+ }
68
+ const content = msg.message.content
69
+ if (!Array.isArray(content)) {
70
+ return false
71
+ }
72
+ return content.some(
73
+ block =>
74
+ block.type === 'text' &&
75
+ block.text.startsWith(PROMPT_TOO_LONG_ERROR_MESSAGE),
76
+ )
77
+ }
78
+
79
+ /**
80
+ * Parse actual/limit token counts from a raw prompt-too-long API error
81
+ * message like "prompt is too long: 137500 tokens > 135000 maximum".
82
+ * The raw string may be wrapped in SDK prefixes or JSON envelopes, or
83
+ * have different casing (Vertex), so this is intentionally lenient.
84
+ */
85
+ export function parsePromptTooLongTokenCounts(rawMessage: string): {
86
+ actualTokens: number | undefined
87
+ limitTokens: number | undefined
88
+ } {
89
+ const match = rawMessage.match(
90
+ /prompt is too long[^0-9]*(\d+)\s*tokens?\s*>\s*(\d+)/i,
91
+ )
92
+ return {
93
+ actualTokens: match ? parseInt(match[1]!, 10) : undefined,
94
+ limitTokens: match ? parseInt(match[2]!, 10) : undefined,
95
+ }
96
+ }
97
+
98
+ /**
99
+ * Returns how many tokens over the limit a prompt-too-long error reports,
100
+ * or undefined if the message isn't PTL or its errorDetails are unparseable.
101
+ * Reactive compact uses this gap to jump past multiple groups in one retry
102
+ * instead of peeling one-at-a-time.
103
+ */
104
+ export function getPromptTooLongTokenGap(
105
+ msg: AssistantMessage,
106
+ ): number | undefined {
107
+ if (!isPromptTooLongMessage(msg) || !msg.errorDetails) {
108
+ return undefined
109
+ }
110
+ const { actualTokens, limitTokens } = parsePromptTooLongTokenCounts(
111
+ msg.errorDetails,
112
+ )
113
+ if (actualTokens === undefined || limitTokens === undefined) {
114
+ return undefined
115
+ }
116
+ const gap = actualTokens - limitTokens
117
+ return gap > 0 ? gap : undefined
118
+ }
119
+
120
+ /**
121
+ * Is this raw API error text a media-size rejection that stripImagesFromMessages
122
+ * can fix? Reactive compact's summarize retry uses this to decide whether to
123
+ * strip and retry (media error) or bail (anything else).
124
+ *
125
+ * Patterns MUST stay in sync with the getAssistantMessageFromError branches
126
+ * that populate errorDetails (~L523 PDF, ~L560 image, ~L573 many-image) and
127
+ * the classifyAPIError branches (~L929-946). The closed loop: errorDetails is
128
+ * only set after those branches already matched these same substrings, so
129
+ * isMediaSizeError(errorDetails) is tautologically true for that path. API
130
+ * wording drift causes graceful degradation (errorDetails stays undefined,
131
+ * caller short-circuits), not a false negative.
132
+ */
133
+ export function isMediaSizeError(raw: string): boolean {
134
+ return (
135
+ (raw.includes('image exceeds') && raw.includes('maximum')) ||
136
+ (raw.includes('image dimensions exceed') && raw.includes('many-image')) ||
137
+ /maximum of \d+ PDF pages/.test(raw)
138
+ )
139
+ }
140
+
141
+ /**
142
+ * Message-level predicate: is this assistant message a media-size rejection?
143
+ * Parallel to isPromptTooLongMessage. Checks errorDetails (the raw API error
144
+ * string populated by the getAssistantMessageFromError branches at ~L523/560/573)
145
+ * rather than content text, since media errors have per-variant content strings.
146
+ */
147
+ export function isMediaSizeErrorMessage(msg: AssistantMessage): boolean {
148
+ return (
149
+ msg.isApiErrorMessage === true &&
150
+ msg.errorDetails !== undefined &&
151
+ isMediaSizeError(msg.errorDetails)
152
+ )
153
+ }
154
+ export const CREDIT_BALANCE_TOO_LOW_ERROR_MESSAGE = 'Credit balance is too low'
155
+ export const INVALID_API_KEY_ERROR_MESSAGE =
156
+ 'Invalid Gemini API key · Check GEMINI_API_KEY'
157
+ export const INVALID_API_KEY_ERROR_MESSAGE_EXTERNAL =
158
+ 'Invalid Gemini API key · Check configured Gemini API key'
159
+ export const ORG_DISABLED_ERROR_MESSAGE_ENV_KEY_WITH_OAUTH =
160
+ 'Configured GEMINI_API_KEY belongs to a disabled organization · Update or unset GEMINI_API_KEY'
161
+ export const ORG_DISABLED_ERROR_MESSAGE_ENV_KEY =
162
+ 'Configured GEMINI_API_KEY belongs to a disabled organization · Update or unset GEMINI_API_KEY'
163
+ export const TOKEN_REVOKED_ERROR_MESSAGE =
164
+ 'OAuth token revoked · Please run /login'
165
+ export const CCR_AUTH_ERROR_MESSAGE =
166
+ 'Authentication error · This may be a temporary network issue, please try again'
167
+ export const REPEATED_529_ERROR_MESSAGE = 'Repeated 529 Overloaded errors'
168
+ export const CUSTOM_OFF_SWITCH_MESSAGE =
169
+ 'Gemini 3.1 Pro is experiencing high load, please use /model to switch to Gemini 3 Flash'
170
+ export const API_TIMEOUT_ERROR_MESSAGE = 'Request timed out'
171
+ export function getPdfTooLargeErrorMessage(): string {
172
+ const limits = `max ${API_PDF_MAX_PAGES} pages, ${formatFileSize(PDF_TARGET_RAW_SIZE)}`
173
+ return getIsNonInteractiveSession()
174
+ ? `PDF too large (${limits}). Try reading the file a different way (e.g., extract text with pdftotext).`
175
+ : `PDF too large (${limits}). Double press esc to go back and try again, or use pdftotext to convert to text first.`
176
+ }
177
+ export function getPdfPasswordProtectedErrorMessage(): string {
178
+ return getIsNonInteractiveSession()
179
+ ? 'PDF is password protected. Try using a CLI tool to extract or convert the PDF.'
180
+ : 'PDF is password protected. Please double press esc to edit your message and try again.'
181
+ }
182
+ export function getPdfInvalidErrorMessage(): string {
183
+ return getIsNonInteractiveSession()
184
+ ? 'The PDF file was not valid. Try converting it to text first (e.g., pdftotext).'
185
+ : 'The PDF file was not valid. Double press esc to go back and try again with a different file.'
186
+ }
187
+ export function getImageTooLargeErrorMessage(): string {
188
+ return getIsNonInteractiveSession()
189
+ ? 'Image was too large. Try resizing the image or using a different approach.'
190
+ : 'Image was too large. Double press esc to go back and try again with a smaller image.'
191
+ }
192
+ export function getRequestTooLargeErrorMessage(): string {
193
+ const limits = `max ${formatFileSize(PDF_TARGET_RAW_SIZE)}`
194
+ return getIsNonInteractiveSession()
195
+ ? `Request too large (${limits}). Try with a smaller file.`
196
+ : `Request too large (${limits}). Double press esc to go back and try with a smaller file.`
197
+ }
198
+ export const OAUTH_ORG_NOT_ALLOWED_ERROR_MESSAGE =
199
+ 'Your account does not have access to Claude Code. Please run /login.'
200
+
201
+ export function getTokenRevokedErrorMessage(): string {
202
+ return getIsNonInteractiveSession()
203
+ ? 'Your account does not have access to Claude. Please login again or contact your administrator.'
204
+ : TOKEN_REVOKED_ERROR_MESSAGE
205
+ }
206
+
207
+ export function getOauthOrgNotAllowedErrorMessage(): string {
208
+ return getIsNonInteractiveSession()
209
+ ? 'Your organization does not have access to Claude. Please login again or contact your administrator.'
210
+ : OAUTH_ORG_NOT_ALLOWED_ERROR_MESSAGE
211
+ }
212
+
213
+ /**
214
+ * Check if we're in CCR (Claude Code Remote) mode.
215
+ * In CCR mode, auth is handled via JWTs provided by the infrastructure,
216
+ * not via /login. Transient auth errors should suggest retrying, not logging in.
217
+ */
218
+ function isCCRMode(): boolean {
219
+ return isEnvTruthy(process.env.CLAUDE_CODE_REMOTE)
220
+ }
221
+
222
+ // Temp helper to log tool_use/tool_result mismatch errors
223
+ function logToolUseToolResultMismatch(
224
+ toolUseId: string,
225
+ messages: Message[],
226
+ messagesForAPI: (UserMessage | AssistantMessage)[],
227
+ ): void {
228
+ try {
229
+ // Find tool_use in normalized messages
230
+ let normalizedIndex = -1
231
+ for (let i = 0; i < messagesForAPI.length; i++) {
232
+ const msg = messagesForAPI[i]
233
+ if (!msg) continue
234
+ const content = msg.message.content
235
+ if (Array.isArray(content)) {
236
+ for (const block of content) {
237
+ if (
238
+ block.type === 'tool_use' &&
239
+ 'id' in block &&
240
+ block.id === toolUseId
241
+ ) {
242
+ normalizedIndex = i
243
+ break
244
+ }
245
+ }
246
+ }
247
+ if (normalizedIndex !== -1) break
248
+ }
249
+
250
+ // Find tool_use in original messages
251
+ let originalIndex = -1
252
+ for (let i = 0; i < messages.length; i++) {
253
+ const msg = messages[i]
254
+ if (!msg) continue
255
+ if (msg.type === 'assistant' && 'message' in msg) {
256
+ const content = msg.message.content
257
+ if (Array.isArray(content)) {
258
+ for (const block of content) {
259
+ if (
260
+ block.type === 'tool_use' &&
261
+ 'id' in block &&
262
+ block.id === toolUseId
263
+ ) {
264
+ originalIndex = i
265
+ break
266
+ }
267
+ }
268
+ }
269
+ }
270
+ if (originalIndex !== -1) break
271
+ }
272
+
273
+ // Build normalized sequence
274
+ const normalizedSeq: string[] = []
275
+ for (let i = normalizedIndex + 1; i < messagesForAPI.length; i++) {
276
+ const msg = messagesForAPI[i]
277
+ if (!msg) continue
278
+ const content = msg.message.content
279
+ if (Array.isArray(content)) {
280
+ for (const block of content) {
281
+ const role = msg.message.role
282
+ if (block.type === 'tool_use' && 'id' in block) {
283
+ normalizedSeq.push(`${role}:tool_use:${block.id}`)
284
+ } else if (block.type === 'tool_result' && 'tool_use_id' in block) {
285
+ normalizedSeq.push(`${role}:tool_result:${block.tool_use_id}`)
286
+ } else if (block.type === 'text') {
287
+ normalizedSeq.push(`${role}:text`)
288
+ } else if (block.type === 'thinking') {
289
+ normalizedSeq.push(`${role}:thinking`)
290
+ } else if (block.type === 'image') {
291
+ normalizedSeq.push(`${role}:image`)
292
+ } else {
293
+ normalizedSeq.push(`${role}:${block.type}`)
294
+ }
295
+ }
296
+ } else if (typeof content === 'string') {
297
+ normalizedSeq.push(`${msg.message.role}:string_content`)
298
+ }
299
+ }
300
+
301
+ // Build pre-normalized sequence
302
+ const preNormalizedSeq: string[] = []
303
+ for (let i = originalIndex + 1; i < messages.length; i++) {
304
+ const msg = messages[i]
305
+ if (!msg) continue
306
+
307
+ switch (msg.type) {
308
+ case 'user':
309
+ case 'assistant': {
310
+ if ('message' in msg) {
311
+ const content = msg.message.content
312
+ if (Array.isArray(content)) {
313
+ for (const block of content) {
314
+ const role = msg.message.role
315
+ if (block.type === 'tool_use' && 'id' in block) {
316
+ preNormalizedSeq.push(`${role}:tool_use:${block.id}`)
317
+ } else if (
318
+ block.type === 'tool_result' &&
319
+ 'tool_use_id' in block
320
+ ) {
321
+ preNormalizedSeq.push(
322
+ `${role}:tool_result:${block.tool_use_id}`,
323
+ )
324
+ } else if (block.type === 'text') {
325
+ preNormalizedSeq.push(`${role}:text`)
326
+ } else if (block.type === 'thinking') {
327
+ preNormalizedSeq.push(`${role}:thinking`)
328
+ } else if (block.type === 'image') {
329
+ preNormalizedSeq.push(`${role}:image`)
330
+ } else {
331
+ preNormalizedSeq.push(`${role}:${block.type}`)
332
+ }
333
+ }
334
+ } else if (typeof content === 'string') {
335
+ preNormalizedSeq.push(`${msg.message.role}:string_content`)
336
+ }
337
+ }
338
+ break
339
+ }
340
+ case 'attachment':
341
+ if ('attachment' in msg) {
342
+ preNormalizedSeq.push(`attachment:${msg.attachment.type}`)
343
+ }
344
+ break
345
+ case 'system':
346
+ if ('subtype' in msg) {
347
+ preNormalizedSeq.push(`system:${msg.subtype}`)
348
+ }
349
+ break
350
+ case 'progress':
351
+ if (
352
+ 'progress' in msg &&
353
+ msg.progress &&
354
+ typeof msg.progress === 'object' &&
355
+ 'type' in msg.progress
356
+ ) {
357
+ preNormalizedSeq.push(`progress:${msg.progress.type ?? 'unknown'}`)
358
+ } else {
359
+ preNormalizedSeq.push('progress:unknown')
360
+ }
361
+ break
362
+ }
363
+ }
364
+
365
+ // Log to Statsig
366
+ logEvent('tengu_tool_use_tool_result_mismatch_error', {
367
+ toolUseId:
368
+ toolUseId as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
369
+ normalizedSequence: normalizedSeq.join(
370
+ ', ',
371
+ ) as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
372
+ preNormalizedSequence: preNormalizedSeq.join(
373
+ ', ',
374
+ ) as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
375
+ normalizedMessageCount: messagesForAPI.length,
376
+ originalMessageCount: messages.length,
377
+ normalizedToolUseIndex: normalizedIndex,
378
+ originalToolUseIndex: originalIndex,
379
+ })
380
+ } catch (_) {
381
+ // Ignore errors in debug logging
382
+ }
383
+ }
384
+
385
+ /**
386
+ * Type guard to check if a value is a valid Message response from the API
387
+ */
388
+ export function isValidAPIMessage(value: unknown): value is BetaMessage {
389
+ return (
390
+ typeof value === 'object' &&
391
+ value !== null &&
392
+ 'content' in value &&
393
+ 'model' in value &&
394
+ 'usage' in value &&
395
+ Array.isArray((value as BetaMessage).content) &&
396
+ typeof (value as BetaMessage).model === 'string' &&
397
+ typeof (value as BetaMessage).usage === 'object'
398
+ )
399
+ }
400
+
401
+ /** Lower-level error that AWS can return. */
402
+ type AmazonError = {
403
+ Output?: {
404
+ __type?: string
405
+ }
406
+ Version?: string
407
+ }
408
+
409
+ /**
410
+ * Given a response that doesn't look quite right, see if it contains any known error types we can extract.
411
+ */
412
+ export function extractUnknownErrorFormat(value: unknown): string | undefined {
413
+ // Check if value is a valid object first
414
+ if (!value || typeof value !== 'object') {
415
+ return undefined
416
+ }
417
+
418
+ // Amazon Bedrock routing errors
419
+ if ((value as AmazonError).Output?.__type) {
420
+ return (value as AmazonError).Output!.__type
421
+ }
422
+
423
+ return undefined
424
+ }
425
+
426
+ export function getAssistantMessageFromError(
427
+ error: unknown,
428
+ model: string,
429
+ options?: {
430
+ messages?: Message[]
431
+ messagesForAPI?: (UserMessage | AssistantMessage)[]
432
+ },
433
+ ): AssistantMessage {
434
+ // Check for SDK timeout errors
435
+ if (
436
+ error instanceof APIConnectionTimeoutError ||
437
+ (error instanceof APIConnectionError &&
438
+ error.message.toLowerCase().includes('timeout'))
439
+ ) {
440
+ return createAssistantAPIErrorMessage({
441
+ content: API_TIMEOUT_ERROR_MESSAGE,
442
+ error: 'unknown',
443
+ })
444
+ }
445
+
446
+ // Check for image size/resize errors (thrown before API call during validation)
447
+ // Use getImageTooLargeErrorMessage() to show "esc esc" hint for CLI users
448
+ // but a generic message for SDK users (non-interactive mode)
449
+ if (error instanceof ImageSizeError || error instanceof ImageResizeError) {
450
+ return createAssistantAPIErrorMessage({
451
+ content: getImageTooLargeErrorMessage(),
452
+ })
453
+ }
454
+
455
+ // Check for emergency capacity off switch for Opus PAYG users
456
+ if (
457
+ error instanceof Error &&
458
+ error.message.includes(CUSTOM_OFF_SWITCH_MESSAGE)
459
+ ) {
460
+ return createAssistantAPIErrorMessage({
461
+ content: CUSTOM_OFF_SWITCH_MESSAGE,
462
+ error: 'rate_limit',
463
+ })
464
+ }
465
+
466
+ if (
467
+ error instanceof APIError &&
468
+ error.status === 429 &&
469
+ shouldProcessRateLimits(isClaudeAISubscriber())
470
+ ) {
471
+ // Check if this is the new API with multiple rate limit headers
472
+ const rateLimitType = error.headers?.get?.(
473
+ 'anthropic-ratelimit-unified-representative-claim',
474
+ ) as 'five_hour' | 'seven_day' | 'seven_day_opus' | null
475
+
476
+ const overageStatus = error.headers?.get?.(
477
+ 'anthropic-ratelimit-unified-overage-status',
478
+ ) as 'allowed' | 'allowed_warning' | 'rejected' | null
479
+
480
+ // If we have the new headers, use the new message generation
481
+ if (rateLimitType || overageStatus) {
482
+ // Build limits object from error headers to determine the appropriate message
483
+ const limits: ClaudeAILimits = {
484
+ status: 'rejected',
485
+ unifiedRateLimitFallbackAvailable: false,
486
+ isUsingOverage: false,
487
+ }
488
+
489
+ // Extract rate limit information from headers
490
+ const resetHeader = error.headers?.get?.(
491
+ 'anthropic-ratelimit-unified-reset',
492
+ )
493
+ if (resetHeader) {
494
+ limits.resetsAt = Number(resetHeader)
495
+ }
496
+
497
+ if (rateLimitType) {
498
+ limits.rateLimitType = rateLimitType
499
+ }
500
+
501
+ if (overageStatus) {
502
+ limits.overageStatus = overageStatus
503
+ }
504
+
505
+ const overageResetHeader = error.headers?.get?.(
506
+ 'anthropic-ratelimit-unified-overage-reset',
507
+ )
508
+ if (overageResetHeader) {
509
+ limits.overageResetsAt = Number(overageResetHeader)
510
+ }
511
+
512
+ const overageDisabledReason = error.headers?.get?.(
513
+ 'anthropic-ratelimit-unified-overage-disabled-reason',
514
+ ) as OverageDisabledReason | null
515
+ if (overageDisabledReason) {
516
+ limits.overageDisabledReason = overageDisabledReason
517
+ }
518
+
519
+ // Use the new message format for all new API rate limits
520
+ const specificErrorMessage = getRateLimitErrorMessage(limits, model)
521
+ if (specificErrorMessage) {
522
+ return createAssistantAPIErrorMessage({
523
+ content: specificErrorMessage,
524
+ error: 'rate_limit',
525
+ })
526
+ }
527
+
528
+ // If getRateLimitErrorMessage returned null, it means the fallback mechanism
529
+ // will handle this silently (e.g., Opus -> Sonnet fallback for eligible users).
530
+ // Return NO_RESPONSE_REQUESTED so no error is shown to the user, but the
531
+ // message is still recorded in conversation history for Claude to see.
532
+ return createAssistantAPIErrorMessage({
533
+ content: NO_RESPONSE_REQUESTED,
534
+ error: 'rate_limit',
535
+ })
536
+ }
537
+
538
+ // No quota headers — this is NOT a quota limit. Surface what the API actually
539
+ // said instead of a generic "Rate limit reached". Entitlement rejections
540
+ // (e.g. 1M context without Extra Usage) and infra capacity 429s land here.
541
+ if (error.message.includes('Extra usage is required for long context')) {
542
+ const hint = getIsNonInteractiveSession()
543
+ ? 'enable extra usage at claude.ai/settings/usage, or use --model to switch to standard context'
544
+ : 'run /extra-usage to enable, or /model to switch to standard context'
545
+ return createAssistantAPIErrorMessage({
546
+ content: `${API_ERROR_MESSAGE_PREFIX}: Extra usage is required for 1M context · ${hint}`,
547
+ error: 'rate_limit',
548
+ })
549
+ }
550
+ // SDK's APIError.makeMessage prepends "429 " and JSON-stringifies the body
551
+ // when there's no top-level .message — extract the inner error.message.
552
+ const stripped = error.message.replace(/^429\s+/, '')
553
+ const innerMessage = stripped.match(/"message"\s*:\s*"([^"]*)"/)?.[1]
554
+ const detail = innerMessage || stripped
555
+ return createAssistantAPIErrorMessage({
556
+ content: `${API_ERROR_MESSAGE_PREFIX}: Request rejected (429) · ${detail || 'this may be a temporary capacity issue — check status.anthropic.com'}`,
557
+ error: 'rate_limit',
558
+ })
559
+ }
560
+
561
+ // Handle prompt too long errors (Vertex returns 413, direct API returns 400)
562
+ // Use case-insensitive check since Vertex returns "Prompt is too long" (capitalized)
563
+ if (
564
+ error instanceof Error &&
565
+ error.message.toLowerCase().includes('prompt is too long')
566
+ ) {
567
+ // Content stays generic (UI matches on exact string). The raw error with
568
+ // token counts goes into errorDetails — reactive compact's retry loop
569
+ // parses the gap from there via getPromptTooLongTokenGap.
570
+ return createAssistantAPIErrorMessage({
571
+ content: PROMPT_TOO_LONG_ERROR_MESSAGE,
572
+ error: 'invalid_request',
573
+ errorDetails: error.message,
574
+ })
575
+ }
576
+
577
+ // Check for PDF page limit errors
578
+ if (
579
+ error instanceof Error &&
580
+ /maximum of \d+ PDF pages/.test(error.message)
581
+ ) {
582
+ return createAssistantAPIErrorMessage({
583
+ content: getPdfTooLargeErrorMessage(),
584
+ error: 'invalid_request',
585
+ errorDetails: error.message,
586
+ })
587
+ }
588
+
589
+ // Check for password-protected PDF errors
590
+ if (
591
+ error instanceof Error &&
592
+ error.message.includes('The PDF specified is password protected')
593
+ ) {
594
+ return createAssistantAPIErrorMessage({
595
+ content: getPdfPasswordProtectedErrorMessage(),
596
+ error: 'invalid_request',
597
+ })
598
+ }
599
+
600
+ // Check for invalid PDF errors (e.g., HTML file renamed to .pdf)
601
+ // Without this handler, invalid PDF document blocks persist in conversation
602
+ // context and cause every subsequent API call to fail with 400.
603
+ if (
604
+ error instanceof Error &&
605
+ error.message.includes('The PDF specified was not valid')
606
+ ) {
607
+ return createAssistantAPIErrorMessage({
608
+ content: getPdfInvalidErrorMessage(),
609
+ error: 'invalid_request',
610
+ })
611
+ }
612
+
613
+ // Check for image size errors (e.g., "image exceeds 5 MB maximum: 5316852 bytes > 5242880 bytes")
614
+ if (
615
+ error instanceof APIError &&
616
+ error.status === 400 &&
617
+ error.message.includes('image exceeds') &&
618
+ error.message.includes('maximum')
619
+ ) {
620
+ return createAssistantAPIErrorMessage({
621
+ content: getImageTooLargeErrorMessage(),
622
+ errorDetails: error.message,
623
+ })
624
+ }
625
+
626
+ // Check for many-image dimension errors (API enforces stricter 2000px limit for many-image requests)
627
+ if (
628
+ error instanceof APIError &&
629
+ error.status === 400 &&
630
+ error.message.includes('image dimensions exceed') &&
631
+ error.message.includes('many-image')
632
+ ) {
633
+ return createAssistantAPIErrorMessage({
634
+ content: getIsNonInteractiveSession()
635
+ ? 'An image in the conversation exceeds the dimension limit for many-image requests (2000px). Start a new session with fewer images.'
636
+ : 'An image in the conversation exceeds the dimension limit for many-image requests (2000px). Run /compact to remove old images from context, or start a new session.',
637
+ error: 'invalid_request',
638
+ errorDetails: error.message,
639
+ })
640
+ }
641
+
642
+ // Server rejected the afk-mode beta header (plan does not include auto
643
+ // mode). AFK_MODE_BETA_HEADER is '' in non-TRANSCRIPT_CLASSIFIER builds,
644
+ // so the truthy guard keeps this inert there.
645
+ if (
646
+ AFK_MODE_BETA_HEADER &&
647
+ error instanceof APIError &&
648
+ error.status === 400 &&
649
+ error.message.includes(AFK_MODE_BETA_HEADER) &&
650
+ error.message.includes('anthropic-beta')
651
+ ) {
652
+ return createAssistantAPIErrorMessage({
653
+ content: 'Auto mode is unavailable for your plan',
654
+ error: 'invalid_request',
655
+ })
656
+ }
657
+
658
+ // Check for request too large errors (413 status)
659
+ // This typically happens when a large PDF + conversation context exceeds the 32MB API limit
660
+ if (error instanceof APIError && error.status === 413) {
661
+ return createAssistantAPIErrorMessage({
662
+ content: getRequestTooLargeErrorMessage(),
663
+ error: 'invalid_request',
664
+ })
665
+ }
666
+
667
+ // Check for tool_use/tool_result concurrency error
668
+ if (
669
+ error instanceof APIError &&
670
+ error.status === 400 &&
671
+ error.message.includes(
672
+ '`tool_use` ids were found without `tool_result` blocks immediately after',
673
+ )
674
+ ) {
675
+ // Log to Statsig if we have the message context
676
+ if (options?.messages && options?.messagesForAPI) {
677
+ const toolUseIdMatch = error.message.match(/toolu_[a-zA-Z0-9]+/)
678
+ const toolUseId = toolUseIdMatch ? toolUseIdMatch[0] : null
679
+ if (toolUseId) {
680
+ logToolUseToolResultMismatch(
681
+ toolUseId,
682
+ options.messages,
683
+ options.messagesForAPI,
684
+ )
685
+ }
686
+ }
687
+
688
+ if (process.env.USER_TYPE === 'ant') {
689
+ const baseMessage = `API Error: 400 ${error.message}\n\nRun /share and post the JSON file to ${MACRO.FEEDBACK_CHANNEL}.`
690
+ const rewindInstruction = getIsNonInteractiveSession()
691
+ ? ''
692
+ : ' Then, use /rewind to recover the conversation.'
693
+ return createAssistantAPIErrorMessage({
694
+ content: baseMessage + rewindInstruction,
695
+ error: 'invalid_request',
696
+ })
697
+ } else {
698
+ const baseMessage = 'API Error: 400 due to tool use concurrency issues.'
699
+ const rewindInstruction = getIsNonInteractiveSession()
700
+ ? ''
701
+ : ' Run /rewind to recover the conversation.'
702
+ return createAssistantAPIErrorMessage({
703
+ content: baseMessage + rewindInstruction,
704
+ error: 'invalid_request',
705
+ })
706
+ }
707
+ }
708
+
709
+ if (
710
+ error instanceof APIError &&
711
+ error.status === 400 &&
712
+ error.message.includes('unexpected `tool_use_id` found in `tool_result`')
713
+ ) {
714
+ logEvent('tengu_unexpected_tool_result', {})
715
+ }
716
+
717
+ // Duplicate tool_use IDs (CC-1212). ensureToolResultPairing strips these
718
+ // before send, so hitting this means a new corruption path slipped through.
719
+ // Log for root-causing, and give users a recovery path instead of deadlock.
720
+ if (
721
+ error instanceof APIError &&
722
+ error.status === 400 &&
723
+ error.message.includes('`tool_use` ids must be unique')
724
+ ) {
725
+ logEvent('tengu_duplicate_tool_use_id', {})
726
+ const rewindInstruction = getIsNonInteractiveSession()
727
+ ? ''
728
+ : ' Run /rewind to recover the conversation.'
729
+ return createAssistantAPIErrorMessage({
730
+ content: `API Error: 400 duplicate tool_use ID in conversation history.${rewindInstruction}`,
731
+ error: 'invalid_request',
732
+ errorDetails: error.message,
733
+ })
734
+ }
735
+
736
+ // Check for invalid model name error for subscription users trying to use Opus
737
+ if (
738
+ isClaudeAISubscriber() &&
739
+ error instanceof APIError &&
740
+ error.status === 400 &&
741
+ error.message.toLowerCase().includes('invalid model name') &&
742
+ (isNonCustomOpusModel(model) || model === 'opus')
743
+ ) {
744
+ return createAssistantAPIErrorMessage({
745
+ content:
746
+ 'Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.',
747
+ error: 'invalid_request',
748
+ })
749
+ }
750
+
751
+ // Check for invalid model name error for Ant users. Claude Code may be
752
+ // defaulting to a custom internal-only model for Ants, and there might be
753
+ // Ants using new or unknown org IDs that haven't been gated in.
754
+ if (
755
+ process.env.USER_TYPE === 'ant' &&
756
+ !process.env.ANTHROPIC_MODEL &&
757
+ error instanceof Error &&
758
+ error.message.toLowerCase().includes('invalid model name')
759
+ ) {
760
+ // Get organization ID from config - only use OAuth account data when actively using OAuth
761
+ const orgId = getOauthAccountInfo()?.organizationUuid
762
+ const baseMsg = `[ANT-ONLY] Your org isn't gated into the \`${model}\` model. Either run \`claude\` with \`ANTHROPIC_MODEL=${getDefaultMainLoopModelSetting()}\``
763
+ const msg = orgId
764
+ ? `${baseMsg} or share your orgId (${orgId}) in ${MACRO.FEEDBACK_CHANNEL} for help getting access.`
765
+ : `${baseMsg} or reach out in ${MACRO.FEEDBACK_CHANNEL} for help getting access.`
766
+
767
+ return createAssistantAPIErrorMessage({
768
+ content: msg,
769
+ error: 'invalid_request',
770
+ })
771
+ }
772
+
773
+ if (
774
+ error instanceof Error &&
775
+ error.message.includes('Your credit balance is too low')
776
+ ) {
777
+ return createAssistantAPIErrorMessage({
778
+ content: CREDIT_BALANCE_TOO_LOW_ERROR_MESSAGE,
779
+ error: 'billing_error',
780
+ })
781
+ }
782
+ // "Organization has been disabled" — commonly a stale ANTHROPIC_API_KEY
783
+ // from a previous employer/project overriding subscription auth. Only handle
784
+ // the env-var case; apiKeyHelper and /login-managed keys mean the active
785
+ // auth's org is genuinely disabled with no dormant fallback to point at.
786
+ if (
787
+ error instanceof APIError &&
788
+ error.status === 400 &&
789
+ error.message.toLowerCase().includes('organization has been disabled')
790
+ ) {
791
+ const { source } = getAnthropicApiKeyWithSource()
792
+ // getAnthropicApiKeyWithSource conflates the env var with FD-passed keys
793
+ // under the same source value, and in CCR mode OAuth stays active despite
794
+ // the env var. The three guards ensure we only blame the env var when it's
795
+ // actually set and actually on the wire.
796
+ if (
797
+ source === 'ANTHROPIC_API_KEY' &&
798
+ process.env.ANTHROPIC_API_KEY &&
799
+ !isClaudeAISubscriber()
800
+ ) {
801
+ const hasStoredOAuth = getClaudeAIOAuthTokens()?.accessToken != null
802
+ // Not 'authentication_failed' — that triggers VS Code's showLogin(), but
803
+ // login can't fix this (approved env var keeps overriding OAuth). The fix
804
+ // is configuration-based (unset the var), so invalid_request is correct.
805
+ return createAssistantAPIErrorMessage({
806
+ error: 'invalid_request',
807
+ content: hasStoredOAuth
808
+ ? ORG_DISABLED_ERROR_MESSAGE_ENV_KEY_WITH_OAUTH
809
+ : ORG_DISABLED_ERROR_MESSAGE_ENV_KEY,
810
+ })
811
+ }
812
+ }
813
+
814
+ if (
815
+ error instanceof Error &&
816
+ error.message.toLowerCase().includes('x-api-key')
817
+ ) {
818
+ // In CCR mode, auth is via JWTs - this is likely a transient network issue
819
+ if (isCCRMode()) {
820
+ return createAssistantAPIErrorMessage({
821
+ error: 'authentication_failed',
822
+ content: CCR_AUTH_ERROR_MESSAGE,
823
+ })
824
+ }
825
+
826
+ // Check if the API key is from an external source
827
+ const { source } = getAnthropicApiKeyWithSource()
828
+ const isExternalSource =
829
+ source === 'ANTHROPIC_API_KEY' || source === 'apiKeyHelper'
830
+
831
+ return createAssistantAPIErrorMessage({
832
+ error: 'authentication_failed',
833
+ content: isExternalSource
834
+ ? INVALID_API_KEY_ERROR_MESSAGE_EXTERNAL
835
+ : INVALID_API_KEY_ERROR_MESSAGE,
836
+ })
837
+ }
838
+
839
+ // Check for OAuth token revocation error
840
+ if (
841
+ error instanceof APIError &&
842
+ error.status === 403 &&
843
+ error.message.includes('OAuth token has been revoked')
844
+ ) {
845
+ return createAssistantAPIErrorMessage({
846
+ error: 'authentication_failed',
847
+ content: getTokenRevokedErrorMessage(),
848
+ })
849
+ }
850
+
851
+ // Check for OAuth organization not allowed error
852
+ if (
853
+ error instanceof APIError &&
854
+ (error.status === 401 || error.status === 403) &&
855
+ error.message.includes(
856
+ 'OAuth authentication is currently not allowed for this organization',
857
+ )
858
+ ) {
859
+ return createAssistantAPIErrorMessage({
860
+ error: 'authentication_failed',
861
+ content: getOauthOrgNotAllowedErrorMessage(),
862
+ })
863
+ }
864
+
865
+ // Generic handler for other 401/403 authentication errors
866
+ if (
867
+ error instanceof APIError &&
868
+ (error.status === 401 || error.status === 403)
869
+ ) {
870
+ // In CCR mode, auth is via JWTs - this is likely a transient network issue
871
+ if (isCCRMode()) {
872
+ return createAssistantAPIErrorMessage({
873
+ error: 'authentication_failed',
874
+ content: CCR_AUTH_ERROR_MESSAGE,
875
+ })
876
+ }
877
+
878
+ return createAssistantAPIErrorMessage({
879
+ error: 'authentication_failed',
880
+ content: getIsNonInteractiveSession()
881
+ ? `Failed to authenticate. ${API_ERROR_MESSAGE_PREFIX}: ${error.message}`
882
+ : `Please run /login · ${API_ERROR_MESSAGE_PREFIX}: ${error.message}`,
883
+ })
884
+ }
885
+
886
+ // Bedrock errors like "403 You don't have access to the model with the specified model ID."
887
+ // don't contain the actual model ID
888
+ if (
889
+ isEnvTruthy(process.env.CLAUDE_CODE_USE_BEDROCK) &&
890
+ error instanceof Error &&
891
+ error.message.toLowerCase().includes('model id')
892
+ ) {
893
+ const switchCmd = getIsNonInteractiveSession() ? '--model' : '/model'
894
+ const fallbackSuggestion = get3PModelFallbackSuggestion(model)
895
+ return createAssistantAPIErrorMessage({
896
+ content: fallbackSuggestion
897
+ ? `${API_ERROR_MESSAGE_PREFIX} (${model}): ${error.message}. Try ${switchCmd} to switch to ${fallbackSuggestion}.`
898
+ : `${API_ERROR_MESSAGE_PREFIX} (${model}): ${error.message}. Run ${switchCmd} to pick a different model.`,
899
+ error: 'invalid_request',
900
+ })
901
+ }
902
+
903
+ // 404 Not Found — usually means the selected model doesn't exist or isn't
904
+ // available. Guide the user to /model so they can pick a valid one.
905
+ // For 3P users, suggest a specific fallback model they can try.
906
+ if (error instanceof APIError && error.status === 404) {
907
+ const switchCmd = getIsNonInteractiveSession() ? '--model' : '/model'
908
+ const fallbackSuggestion = get3PModelFallbackSuggestion(model)
909
+ return createAssistantAPIErrorMessage({
910
+ content: fallbackSuggestion
911
+ ? `The model ${model} is not available on your ${getAPIProvider()} deployment. Try ${switchCmd} to switch to ${fallbackSuggestion}, or ask your admin to enable this model.`
912
+ : `There's an issue with the selected model (${model}). It may not exist or you may not have access to it. Run ${switchCmd} to pick a different model.`,
913
+ error: 'invalid_request',
914
+ })
915
+ }
916
+
917
+ // Connection errors (non-timeout) — use formatAPIError for detailed messages
918
+ if (error instanceof APIConnectionError) {
919
+ return createAssistantAPIErrorMessage({
920
+ content: `${API_ERROR_MESSAGE_PREFIX}: ${formatAPIError(error)}`,
921
+ error: 'unknown',
922
+ })
923
+ }
924
+
925
+ if (error instanceof Error) {
926
+ return createAssistantAPIErrorMessage({
927
+ content: `${API_ERROR_MESSAGE_PREFIX}: ${error.message}`,
928
+ error: 'unknown',
929
+ })
930
+ }
931
+ return createAssistantAPIErrorMessage({
932
+ content: API_ERROR_MESSAGE_PREFIX,
933
+ error: 'unknown',
934
+ })
935
+ }
936
+
937
+ /**
938
+ * For 3P users, suggest a fallback model when the selected model is unavailable.
939
+ * Returns a model name suggestion, or undefined if no suggestion is applicable.
940
+ */
941
+ function get3PModelFallbackSuggestion(model: string): string | undefined {
942
+ if (getAPIProvider() === 'firstParty') {
943
+ return undefined
944
+ }
945
+ // @[MODEL LAUNCH]: Add a fallback suggestion chain for the new model → previous version for 3P
946
+ const m = model.toLowerCase()
947
+ // If the failing model looks like an Opus 4.6 variant, suggest the default Opus (4.1 for 3P)
948
+ if (m.includes('opus-4-6') || m.includes('opus_4_6')) {
949
+ return getModelStrings().opus41
950
+ }
951
+ // If the failing model looks like a Sonnet 4.6 variant, suggest Sonnet 4.5
952
+ if (m.includes('sonnet-4-6') || m.includes('sonnet_4_6')) {
953
+ return getModelStrings().sonnet45
954
+ }
955
+ // If the failing model looks like a Sonnet 4.5 variant, suggest Sonnet 4
956
+ if (m.includes('sonnet-4-5') || m.includes('sonnet_4_5')) {
957
+ return getModelStrings().sonnet40
958
+ }
959
+ return undefined
960
+ }
961
+
962
+ /**
963
+ * Classifies an API error into a specific error type for analytics tracking.
964
+ * Returns a standardized error type string suitable for Datadog tagging.
965
+ */
966
+ export function classifyAPIError(error: unknown): string {
967
+ // Aborted requests
968
+ if (error instanceof Error && error.message === 'Request was aborted.') {
969
+ return 'aborted'
970
+ }
971
+
972
+ // Timeout errors
973
+ if (
974
+ error instanceof APIConnectionTimeoutError ||
975
+ (error instanceof APIConnectionError &&
976
+ error.message.toLowerCase().includes('timeout'))
977
+ ) {
978
+ return 'api_timeout'
979
+ }
980
+
981
+ // Check for repeated 529 errors
982
+ if (
983
+ error instanceof Error &&
984
+ error.message.includes(REPEATED_529_ERROR_MESSAGE)
985
+ ) {
986
+ return 'repeated_529'
987
+ }
988
+
989
+ // Check for emergency capacity off switch
990
+ if (
991
+ error instanceof Error &&
992
+ error.message.includes(CUSTOM_OFF_SWITCH_MESSAGE)
993
+ ) {
994
+ return 'capacity_off_switch'
995
+ }
996
+
997
+ // Rate limiting
998
+ if (error instanceof APIError && error.status === 429) {
999
+ return 'rate_limit'
1000
+ }
1001
+
1002
+ // Server overload (529)
1003
+ if (
1004
+ error instanceof APIError &&
1005
+ (error.status === 529 ||
1006
+ error.message?.includes('"type":"overloaded_error"'))
1007
+ ) {
1008
+ return 'server_overload'
1009
+ }
1010
+
1011
+ // Prompt/content size errors
1012
+ if (
1013
+ error instanceof Error &&
1014
+ error.message
1015
+ .toLowerCase()
1016
+ .includes(PROMPT_TOO_LONG_ERROR_MESSAGE.toLowerCase())
1017
+ ) {
1018
+ return 'prompt_too_long'
1019
+ }
1020
+
1021
+ // PDF errors
1022
+ if (
1023
+ error instanceof Error &&
1024
+ /maximum of \d+ PDF pages/.test(error.message)
1025
+ ) {
1026
+ return 'pdf_too_large'
1027
+ }
1028
+
1029
+ if (
1030
+ error instanceof Error &&
1031
+ error.message.includes('The PDF specified is password protected')
1032
+ ) {
1033
+ return 'pdf_password_protected'
1034
+ }
1035
+
1036
+ // Image size errors
1037
+ if (
1038
+ error instanceof APIError &&
1039
+ error.status === 400 &&
1040
+ error.message.includes('image exceeds') &&
1041
+ error.message.includes('maximum')
1042
+ ) {
1043
+ return 'image_too_large'
1044
+ }
1045
+
1046
+ // Many-image dimension errors
1047
+ if (
1048
+ error instanceof APIError &&
1049
+ error.status === 400 &&
1050
+ error.message.includes('image dimensions exceed') &&
1051
+ error.message.includes('many-image')
1052
+ ) {
1053
+ return 'image_too_large'
1054
+ }
1055
+
1056
+ // Tool use errors (400)
1057
+ if (
1058
+ error instanceof APIError &&
1059
+ error.status === 400 &&
1060
+ error.message.includes(
1061
+ '`tool_use` ids were found without `tool_result` blocks immediately after',
1062
+ )
1063
+ ) {
1064
+ return 'tool_use_mismatch'
1065
+ }
1066
+
1067
+ if (
1068
+ error instanceof APIError &&
1069
+ error.status === 400 &&
1070
+ error.message.includes('unexpected `tool_use_id` found in `tool_result`')
1071
+ ) {
1072
+ return 'unexpected_tool_result'
1073
+ }
1074
+
1075
+ if (
1076
+ error instanceof APIError &&
1077
+ error.status === 400 &&
1078
+ error.message.includes('`tool_use` ids must be unique')
1079
+ ) {
1080
+ return 'duplicate_tool_use_id'
1081
+ }
1082
+
1083
+ // Invalid model errors (400)
1084
+ if (
1085
+ error instanceof APIError &&
1086
+ error.status === 400 &&
1087
+ error.message.toLowerCase().includes('invalid model name')
1088
+ ) {
1089
+ return 'invalid_model'
1090
+ }
1091
+
1092
+ // Credit/billing errors
1093
+ if (
1094
+ error instanceof Error &&
1095
+ error.message
1096
+ .toLowerCase()
1097
+ .includes(CREDIT_BALANCE_TOO_LOW_ERROR_MESSAGE.toLowerCase())
1098
+ ) {
1099
+ return 'credit_balance_low'
1100
+ }
1101
+
1102
+ // Authentication errors
1103
+ if (
1104
+ error instanceof Error &&
1105
+ error.message.toLowerCase().includes('x-api-key')
1106
+ ) {
1107
+ return 'invalid_api_key'
1108
+ }
1109
+
1110
+ if (
1111
+ error instanceof APIError &&
1112
+ error.status === 403 &&
1113
+ error.message.includes('OAuth token has been revoked')
1114
+ ) {
1115
+ return 'token_revoked'
1116
+ }
1117
+
1118
+ if (
1119
+ error instanceof APIError &&
1120
+ (error.status === 401 || error.status === 403) &&
1121
+ error.message.includes(
1122
+ 'OAuth authentication is currently not allowed for this organization',
1123
+ )
1124
+ ) {
1125
+ return 'oauth_org_not_allowed'
1126
+ }
1127
+
1128
+ // Generic auth errors
1129
+ if (
1130
+ error instanceof APIError &&
1131
+ (error.status === 401 || error.status === 403)
1132
+ ) {
1133
+ return 'auth_error'
1134
+ }
1135
+
1136
+ // Bedrock-specific errors
1137
+ if (
1138
+ isEnvTruthy(process.env.CLAUDE_CODE_USE_BEDROCK) &&
1139
+ error instanceof Error &&
1140
+ error.message.toLowerCase().includes('model id')
1141
+ ) {
1142
+ return 'bedrock_model_access'
1143
+ }
1144
+
1145
+ // Status code based fallbacks
1146
+ if (error instanceof APIError) {
1147
+ const status = error.status
1148
+ if (status >= 500) return 'server_error'
1149
+ if (status >= 400) return 'client_error'
1150
+ }
1151
+
1152
+ // Connection errors - check for SSL/TLS issues first
1153
+ if (error instanceof APIConnectionError) {
1154
+ const connectionDetails = extractConnectionErrorDetails(error)
1155
+ if (connectionDetails?.isSSLError) {
1156
+ return 'ssl_cert_error'
1157
+ }
1158
+ return 'connection_error'
1159
+ }
1160
+
1161
+ return 'unknown'
1162
+ }
1163
+
1164
+ export function categorizeRetryableAPIError(
1165
+ error: APIError,
1166
+ ): SDKAssistantMessageError {
1167
+ if (
1168
+ error.status === 529 ||
1169
+ error.message?.includes('"type":"overloaded_error"')
1170
+ ) {
1171
+ return 'rate_limit'
1172
+ }
1173
+ if (error.status === 429) {
1174
+ return 'rate_limit'
1175
+ }
1176
+ if (error.status === 401 || error.status === 403) {
1177
+ return 'authentication_failed'
1178
+ }
1179
+ if (error.status !== undefined && error.status >= 408) {
1180
+ return 'server_error'
1181
+ }
1182
+ return 'unknown'
1183
+ }
1184
+
1185
+ export function getErrorMessageIfRefusal(
1186
+ stopReason: BetaStopReason | null,
1187
+ model: string,
1188
+ ): AssistantMessage | undefined {
1189
+ if (stopReason !== 'refusal') {
1190
+ return
1191
+ }
1192
+
1193
+ logEvent('tengu_refusal_api_response', {})
1194
+
1195
+ const baseMessage = getIsNonInteractiveSession()
1196
+ ? `${API_ERROR_MESSAGE_PREFIX}: Deplyze Code is unable to respond to this request because it appears to violate applicable usage policies. Try rephrasing the request or attempting a different approach.`
1197
+ : `${API_ERROR_MESSAGE_PREFIX}: Deplyze Code is unable to respond to this request because it appears to violate applicable usage policies. Please double press esc to edit your last message or start a new session for Deplyze Code to assist with a different task.`
1198
+
1199
+ const modelSuggestion =
1200
+ model !== 'gemini-3-flash-preview'
1201
+ ? ' If you are seeing this refusal repeatedly, try running /model gemini-3-flash-preview to switch models.'
1202
+ : ''
1203
+
1204
+ return createAssistantAPIErrorMessage({
1205
+ content: baseMessage + modelSuggestion,
1206
+ error: 'invalid_request',
1207
+ })
1208
+ }