subagent-cli 0.2.9 → 0.3.1

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 (2149) hide show
  1. package/dist/cli.cjs +30 -34
  2. package/dist/sa +0 -0
  3. package/package.json +4 -9
  4. package/bin/sa.js +0 -4
  5. package/bunfig.toml +0 -2
  6. package/src/QueryEngine.ts +0 -1295
  7. package/src/Task.ts +0 -125
  8. package/src/Tool.ts +0 -792
  9. package/src/_stubs/bun-bundle.ts +0 -6
  10. package/src/assistant/AssistantSessionChooser.ts +0 -2
  11. package/src/assistant/gate.ts +0 -2
  12. package/src/assistant/index.ts +0 -2
  13. package/src/assistant/sessionDiscovery.ts +0 -1
  14. package/src/assistant/sessionHistory.ts +0 -87
  15. package/src/bootstrap/state.ts +0 -1762
  16. package/src/bridge/bridgeApi.ts +0 -539
  17. package/src/bridge/bridgeConfig.ts +0 -48
  18. package/src/bridge/bridgeDebug.ts +0 -135
  19. package/src/bridge/bridgeEnabled.ts +0 -202
  20. package/src/bridge/bridgeMain.ts +0 -2999
  21. package/src/bridge/bridgeMessaging.ts +0 -461
  22. package/src/bridge/bridgePermissionCallbacks.ts +0 -43
  23. package/src/bridge/bridgePointer.ts +0 -210
  24. package/src/bridge/bridgeStatusUtil.ts +0 -163
  25. package/src/bridge/bridgeUI.ts +0 -530
  26. package/src/bridge/capacityWake.ts +0 -56
  27. package/src/bridge/codeSessionApi.ts +0 -168
  28. package/src/bridge/createSession.ts +0 -384
  29. package/src/bridge/debugUtils.ts +0 -141
  30. package/src/bridge/envLessBridgeConfig.ts +0 -165
  31. package/src/bridge/flushGate.ts +0 -71
  32. package/src/bridge/inboundAttachments.ts +0 -175
  33. package/src/bridge/inboundMessages.ts +0 -80
  34. package/src/bridge/initReplBridge.ts +0 -569
  35. package/src/bridge/jwtUtils.ts +0 -256
  36. package/src/bridge/peerSessions.ts +0 -2
  37. package/src/bridge/pollConfig.ts +0 -110
  38. package/src/bridge/pollConfigDefaults.ts +0 -82
  39. package/src/bridge/remoteBridgeCore.ts +0 -1008
  40. package/src/bridge/replBridge.ts +0 -2406
  41. package/src/bridge/replBridgeHandle.ts +0 -36
  42. package/src/bridge/replBridgeTransport.ts +0 -370
  43. package/src/bridge/sessionIdCompat.ts +0 -57
  44. package/src/bridge/sessionRunner.ts +0 -550
  45. package/src/bridge/trustedDevice.ts +0 -210
  46. package/src/bridge/types.ts +0 -262
  47. package/src/bridge/webhookSanitizer.ts +0 -2
  48. package/src/bridge/workSecret.ts +0 -127
  49. package/src/buddy/CompanionSprite.tsx +0 -371
  50. package/src/buddy/companion.ts +0 -133
  51. package/src/buddy/prompt.ts +0 -36
  52. package/src/buddy/sprites.ts +0 -514
  53. package/src/buddy/types.ts +0 -148
  54. package/src/buddy/useBuddyNotification.tsx +0 -98
  55. package/src/cli/bg.ts +0 -2
  56. package/src/cli/exit.ts +0 -31
  57. package/src/cli/handlers/agents.ts +0 -70
  58. package/src/cli/handlers/ant.ts +0 -2
  59. package/src/cli/handlers/auth.ts +0 -330
  60. package/src/cli/handlers/autoMode.ts +0 -170
  61. package/src/cli/handlers/mcp.tsx +0 -362
  62. package/src/cli/handlers/plugins.ts +0 -878
  63. package/src/cli/handlers/templateJobs.ts +0 -2
  64. package/src/cli/handlers/util.tsx +0 -110
  65. package/src/cli/ndjsonSafeStringify.ts +0 -32
  66. package/src/cli/print.ts +0 -5594
  67. package/src/cli/remoteIO.ts +0 -255
  68. package/src/cli/rollback.ts +0 -3
  69. package/src/cli/structuredIO.ts +0 -859
  70. package/src/cli/transports/HybridTransport.ts +0 -282
  71. package/src/cli/transports/SSETransport.ts +0 -711
  72. package/src/cli/transports/SerialBatchEventUploader.ts +0 -275
  73. package/src/cli/transports/Transport.ts +0 -1
  74. package/src/cli/transports/WebSocketTransport.ts +0 -800
  75. package/src/cli/transports/WorkerStateUploader.ts +0 -131
  76. package/src/cli/transports/ccrClient.ts +0 -998
  77. package/src/cli/transports/transportUtils.ts +0 -45
  78. package/src/cli/up.ts +0 -3
  79. package/src/cli/update.ts +0 -422
  80. package/src/commands/add-dir/add-dir.tsx +0 -126
  81. package/src/commands/add-dir/index.ts +0 -11
  82. package/src/commands/add-dir/validation.ts +0 -110
  83. package/src/commands/advisor.ts +0 -109
  84. package/src/commands/agents/agents.tsx +0 -12
  85. package/src/commands/agents/index.ts +0 -10
  86. package/src/commands/ant-trace/index.js +0 -1
  87. package/src/commands/assistant/assistant.ts +0 -2
  88. package/src/commands/autofix-pr/index.js +0 -1
  89. package/src/commands/backfill-sessions/index.js +0 -1
  90. package/src/commands/branch/branch.ts +0 -296
  91. package/src/commands/branch/index.ts +0 -14
  92. package/src/commands/break-cache/index.js +0 -1
  93. package/src/commands/bridge/bridge.tsx +0 -509
  94. package/src/commands/bridge/index.ts +0 -26
  95. package/src/commands/bridge-kick.ts +0 -200
  96. package/src/commands/brief.ts +0 -130
  97. package/src/commands/btw/btw.tsx +0 -243
  98. package/src/commands/btw/index.ts +0 -13
  99. package/src/commands/buddy/index.ts +0 -2
  100. package/src/commands/bughunter/index.js +0 -1
  101. package/src/commands/chrome/chrome.tsx +0 -285
  102. package/src/commands/chrome/index.ts +0 -13
  103. package/src/commands/clear/caches.ts +0 -144
  104. package/src/commands/clear/clear.ts +0 -7
  105. package/src/commands/clear/conversation.ts +0 -251
  106. package/src/commands/clear/index.ts +0 -19
  107. package/src/commands/color/color.ts +0 -93
  108. package/src/commands/color/index.ts +0 -16
  109. package/src/commands/commit-push-pr.ts +0 -158
  110. package/src/commands/commit.ts +0 -92
  111. package/src/commands/compact/compact.ts +0 -287
  112. package/src/commands/compact/index.ts +0 -15
  113. package/src/commands/config/config.tsx +0 -7
  114. package/src/commands/config/index.ts +0 -11
  115. package/src/commands/context/context-noninteractive.ts +0 -325
  116. package/src/commands/context/context.tsx +0 -64
  117. package/src/commands/context/index.ts +0 -24
  118. package/src/commands/copy/copy.tsx +0 -371
  119. package/src/commands/copy/index.ts +0 -15
  120. package/src/commands/cost/cost.ts +0 -24
  121. package/src/commands/cost/index.ts +0 -23
  122. package/src/commands/createMovedToPluginCommand.ts +0 -65
  123. package/src/commands/ctx_viz/index.js +0 -1
  124. package/src/commands/debug-tool-call/index.js +0 -1
  125. package/src/commands/desktop/desktop.tsx +0 -9
  126. package/src/commands/desktop/index.ts +0 -26
  127. package/src/commands/diff/diff.tsx +0 -9
  128. package/src/commands/diff/index.ts +0 -8
  129. package/src/commands/doctor/doctor.tsx +0 -7
  130. package/src/commands/doctor/index.ts +0 -12
  131. package/src/commands/effort/effort.tsx +0 -183
  132. package/src/commands/effort/index.ts +0 -13
  133. package/src/commands/env/index.js +0 -1
  134. package/src/commands/exit/exit.tsx +0 -33
  135. package/src/commands/exit/index.ts +0 -12
  136. package/src/commands/export/export.tsx +0 -91
  137. package/src/commands/export/index.ts +0 -11
  138. package/src/commands/extra-usage/extra-usage-core.ts +0 -118
  139. package/src/commands/extra-usage/extra-usage-noninteractive.ts +0 -16
  140. package/src/commands/extra-usage/extra-usage.tsx +0 -17
  141. package/src/commands/extra-usage/index.ts +0 -31
  142. package/src/commands/fast/fast.tsx +0 -269
  143. package/src/commands/fast/index.ts +0 -26
  144. package/src/commands/feedback/feedback.tsx +0 -25
  145. package/src/commands/feedback/index.ts +0 -26
  146. package/src/commands/files/files.ts +0 -19
  147. package/src/commands/files/index.ts +0 -12
  148. package/src/commands/fork/index.ts +0 -2
  149. package/src/commands/good-claude/index.js +0 -1
  150. package/src/commands/heapdump/heapdump.ts +0 -17
  151. package/src/commands/heapdump/index.ts +0 -12
  152. package/src/commands/help/help.tsx +0 -11
  153. package/src/commands/help/index.ts +0 -10
  154. package/src/commands/hooks/hooks.tsx +0 -13
  155. package/src/commands/hooks/index.ts +0 -11
  156. package/src/commands/ide/ide.tsx +0 -646
  157. package/src/commands/ide/index.ts +0 -11
  158. package/src/commands/init-verifiers.ts +0 -262
  159. package/src/commands/init.ts +0 -256
  160. package/src/commands/insights.ts +0 -3200
  161. package/src/commands/install-github-app/ApiKeyStep.tsx +0 -231
  162. package/src/commands/install-github-app/CheckExistingSecretStep.tsx +0 -190
  163. package/src/commands/install-github-app/CheckGitHubStep.tsx +0 -15
  164. package/src/commands/install-github-app/ChooseRepoStep.tsx +0 -211
  165. package/src/commands/install-github-app/CreatingStep.tsx +0 -65
  166. package/src/commands/install-github-app/ErrorStep.tsx +0 -85
  167. package/src/commands/install-github-app/ExistingWorkflowStep.tsx +0 -103
  168. package/src/commands/install-github-app/InstallAppStep.tsx +0 -94
  169. package/src/commands/install-github-app/OAuthFlowStep.tsx +0 -276
  170. package/src/commands/install-github-app/SuccessStep.tsx +0 -96
  171. package/src/commands/install-github-app/WarningsStep.tsx +0 -73
  172. package/src/commands/install-github-app/index.ts +0 -13
  173. package/src/commands/install-github-app/install-github-app.tsx +0 -587
  174. package/src/commands/install-github-app/setupGitHubActions.ts +0 -325
  175. package/src/commands/install-github-app/types.ts +0 -3
  176. package/src/commands/install-slack-app/index.ts +0 -12
  177. package/src/commands/install-slack-app/install-slack-app.ts +0 -30
  178. package/src/commands/install.tsx +0 -300
  179. package/src/commands/issue/index.js +0 -1
  180. package/src/commands/keybindings/index.ts +0 -13
  181. package/src/commands/keybindings/keybindings.ts +0 -53
  182. package/src/commands/login/index.ts +0 -14
  183. package/src/commands/login/login.tsx +0 -104
  184. package/src/commands/logout/index.ts +0 -10
  185. package/src/commands/logout/logout.tsx +0 -82
  186. package/src/commands/mcp/addCommand.ts +0 -280
  187. package/src/commands/mcp/index.ts +0 -12
  188. package/src/commands/mcp/mcp.tsx +0 -85
  189. package/src/commands/mcp/xaaIdpCommand.ts +0 -266
  190. package/src/commands/memory/index.ts +0 -10
  191. package/src/commands/memory/memory.tsx +0 -90
  192. package/src/commands/mobile/index.ts +0 -11
  193. package/src/commands/mobile/mobile.tsx +0 -274
  194. package/src/commands/mock-limits/index.js +0 -1
  195. package/src/commands/model/index.ts +0 -16
  196. package/src/commands/model/model.tsx +0 -297
  197. package/src/commands/oauth-refresh/index.js +0 -1
  198. package/src/commands/onboarding/index.js +0 -1
  199. package/src/commands/output-style/index.ts +0 -11
  200. package/src/commands/output-style/output-style.tsx +0 -7
  201. package/src/commands/passes/index.ts +0 -22
  202. package/src/commands/passes/passes.tsx +0 -24
  203. package/src/commands/peers/index.ts +0 -2
  204. package/src/commands/perf-issue/index.js +0 -1
  205. package/src/commands/permissions/index.ts +0 -11
  206. package/src/commands/permissions/permissions.tsx +0 -10
  207. package/src/commands/plan/index.ts +0 -11
  208. package/src/commands/plan/plan.tsx +0 -122
  209. package/src/commands/plugin/AddMarketplace.tsx +0 -162
  210. package/src/commands/plugin/BrowseMarketplace.tsx +0 -802
  211. package/src/commands/plugin/DiscoverPlugins.tsx +0 -781
  212. package/src/commands/plugin/ManageMarketplaces.tsx +0 -838
  213. package/src/commands/plugin/ManagePlugins.tsx +0 -2215
  214. package/src/commands/plugin/PluginErrors.tsx +0 -124
  215. package/src/commands/plugin/PluginOptionsDialog.tsx +0 -357
  216. package/src/commands/plugin/PluginOptionsFlow.tsx +0 -135
  217. package/src/commands/plugin/PluginSettings.tsx +0 -1072
  218. package/src/commands/plugin/PluginTrustWarning.tsx +0 -32
  219. package/src/commands/plugin/UnifiedInstalledCell.tsx +0 -565
  220. package/src/commands/plugin/ValidatePlugin.tsx +0 -98
  221. package/src/commands/plugin/index.tsx +0 -11
  222. package/src/commands/plugin/parseArgs.ts +0 -103
  223. package/src/commands/plugin/plugin.tsx +0 -7
  224. package/src/commands/plugin/pluginDetailsHelpers.tsx +0 -117
  225. package/src/commands/plugin/types.ts +0 -2
  226. package/src/commands/plugin/unifiedTypes.ts +0 -4
  227. package/src/commands/plugin/usePagination.ts +0 -171
  228. package/src/commands/pr_comments/index.ts +0 -50
  229. package/src/commands/privacy-settings/index.ts +0 -14
  230. package/src/commands/privacy-settings/privacy-settings.tsx +0 -58
  231. package/src/commands/rate-limit-options/index.ts +0 -19
  232. package/src/commands/rate-limit-options/rate-limit-options.tsx +0 -210
  233. package/src/commands/release-notes/index.ts +0 -11
  234. package/src/commands/release-notes/release-notes.ts +0 -50
  235. package/src/commands/reload-plugins/index.ts +0 -18
  236. package/src/commands/reload-plugins/reload-plugins.ts +0 -61
  237. package/src/commands/remote-env/index.ts +0 -15
  238. package/src/commands/remote-env/remote-env.tsx +0 -7
  239. package/src/commands/remote-setup/api.ts +0 -182
  240. package/src/commands/remote-setup/index.ts +0 -20
  241. package/src/commands/remote-setup/remote-setup.tsx +0 -187
  242. package/src/commands/rename/generateSessionName.ts +0 -67
  243. package/src/commands/rename/index.ts +0 -12
  244. package/src/commands/rename/rename.ts +0 -87
  245. package/src/commands/reset-limits/index.js +0 -4
  246. package/src/commands/resume/index.ts +0 -12
  247. package/src/commands/resume/resume.tsx +0 -275
  248. package/src/commands/review/UltrareviewOverageDialog.tsx +0 -96
  249. package/src/commands/review/reviewRemote.ts +0 -316
  250. package/src/commands/review/ultrareviewCommand.tsx +0 -58
  251. package/src/commands/review/ultrareviewEnabled.ts +0 -14
  252. package/src/commands/review.ts +0 -57
  253. package/src/commands/rewind/index.ts +0 -13
  254. package/src/commands/rewind/rewind.ts +0 -13
  255. package/src/commands/sandbox-toggle/index.ts +0 -50
  256. package/src/commands/sandbox-toggle/sandbox-toggle.tsx +0 -83
  257. package/src/commands/security-review.ts +0 -243
  258. package/src/commands/session/index.ts +0 -16
  259. package/src/commands/session/session.tsx +0 -140
  260. package/src/commands/share/index.js +0 -1
  261. package/src/commands/skills/index.ts +0 -10
  262. package/src/commands/skills/skills.tsx +0 -8
  263. package/src/commands/stats/index.ts +0 -10
  264. package/src/commands/stats/stats.tsx +0 -7
  265. package/src/commands/status/index.ts +0 -12
  266. package/src/commands/status/status.tsx +0 -8
  267. package/src/commands/statusline.tsx +0 -24
  268. package/src/commands/stickers/index.ts +0 -11
  269. package/src/commands/stickers/stickers.ts +0 -16
  270. package/src/commands/summary/index.js +0 -1
  271. package/src/commands/tag/index.ts +0 -12
  272. package/src/commands/tag/tag.tsx +0 -215
  273. package/src/commands/tasks/index.ts +0 -11
  274. package/src/commands/tasks/tasks.tsx +0 -8
  275. package/src/commands/teleport/index.js +0 -1
  276. package/src/commands/terminalSetup/index.ts +0 -23
  277. package/src/commands/terminalSetup/terminalSetup.tsx +0 -531
  278. package/src/commands/theme/index.ts +0 -10
  279. package/src/commands/theme/theme.tsx +0 -57
  280. package/src/commands/thinkback/index.ts +0 -13
  281. package/src/commands/thinkback/thinkback.tsx +0 -554
  282. package/src/commands/thinkback-play/index.ts +0 -17
  283. package/src/commands/thinkback-play/thinkback-play.ts +0 -43
  284. package/src/commands/ultraplan.tsx +0 -471
  285. package/src/commands/upgrade/index.ts +0 -16
  286. package/src/commands/upgrade/upgrade.tsx +0 -38
  287. package/src/commands/usage/index.ts +0 -9
  288. package/src/commands/usage/usage.tsx +0 -7
  289. package/src/commands/version.ts +0 -22
  290. package/src/commands/vim/index.ts +0 -11
  291. package/src/commands/vim/vim.ts +0 -38
  292. package/src/commands/voice/index.ts +0 -20
  293. package/src/commands/voice/voice.ts +0 -150
  294. package/src/commands/workflows/index.ts +0 -2
  295. package/src/commands.ts +0 -754
  296. package/src/components/AgentProgressLine.tsx +0 -136
  297. package/src/components/App.tsx +0 -56
  298. package/src/components/ApproveApiKey.tsx +0 -123
  299. package/src/components/AutoModeOptInDialog.tsx +0 -142
  300. package/src/components/AutoUpdater.tsx +0 -198
  301. package/src/components/AutoUpdaterWrapper.tsx +0 -91
  302. package/src/components/AwsAuthStatusBox.tsx +0 -82
  303. package/src/components/BaseTextInput.tsx +0 -136
  304. package/src/components/BashModeProgress.tsx +0 -56
  305. package/src/components/BridgeDialog.tsx +0 -401
  306. package/src/components/BypassPermissionsModeDialog.tsx +0 -87
  307. package/src/components/ChannelDowngradeDialog.tsx +0 -102
  308. package/src/components/ClaudeCodeHint/PluginHintMenu.tsx +0 -78
  309. package/src/components/ClaudeInChromeOnboarding.tsx +0 -121
  310. package/src/components/ClaudeMdExternalIncludesDialog.tsx +0 -137
  311. package/src/components/ClickableImageRef.tsx +0 -73
  312. package/src/components/CompactSummary.tsx +0 -118
  313. package/src/components/ConfigurableShortcutHint.tsx +0 -57
  314. package/src/components/ConsoleOAuthFlow.tsx +0 -631
  315. package/src/components/ContextSuggestions.tsx +0 -47
  316. package/src/components/ContextVisualization.tsx +0 -489
  317. package/src/components/CoordinatorAgentStatus.tsx +0 -273
  318. package/src/components/CostThresholdDialog.tsx +0 -50
  319. package/src/components/CtrlOToExpand.tsx +0 -51
  320. package/src/components/CustomSelect/SelectMulti.tsx +0 -213
  321. package/src/components/CustomSelect/index.ts +0 -3
  322. package/src/components/CustomSelect/option-map.ts +0 -50
  323. package/src/components/CustomSelect/select-input-option.tsx +0 -488
  324. package/src/components/CustomSelect/select-option.tsx +0 -68
  325. package/src/components/CustomSelect/select.tsx +0 -690
  326. package/src/components/CustomSelect/use-multi-select-state.ts +0 -414
  327. package/src/components/CustomSelect/use-select-input.ts +0 -287
  328. package/src/components/CustomSelect/use-select-navigation.ts +0 -653
  329. package/src/components/CustomSelect/use-select-state.ts +0 -157
  330. package/src/components/DesktopHandoff.tsx +0 -193
  331. package/src/components/DesktopUpsell/DesktopUpsellStartup.tsx +0 -171
  332. package/src/components/DevBar.tsx +0 -49
  333. package/src/components/DevChannelsDialog.tsx +0 -105
  334. package/src/components/DiagnosticsDisplay.tsx +0 -95
  335. package/src/components/EffortCallout.tsx +0 -265
  336. package/src/components/EffortIndicator.ts +0 -42
  337. package/src/components/ExitFlow.tsx +0 -48
  338. package/src/components/ExportDialog.tsx +0 -128
  339. package/src/components/FallbackToolUseErrorMessage.tsx +0 -116
  340. package/src/components/FallbackToolUseRejectedMessage.tsx +0 -16
  341. package/src/components/FastIcon.tsx +0 -46
  342. package/src/components/Feedback.tsx +0 -592
  343. package/src/components/FeedbackSurvey/FeedbackSurvey.tsx +0 -174
  344. package/src/components/FeedbackSurvey/FeedbackSurveyView.tsx +0 -108
  345. package/src/components/FeedbackSurvey/TranscriptSharePrompt.tsx +0 -88
  346. package/src/components/FeedbackSurvey/submitTranscriptShare.ts +0 -112
  347. package/src/components/FeedbackSurvey/useDebouncedDigitInput.ts +0 -82
  348. package/src/components/FeedbackSurvey/useFeedbackSurvey.tsx +0 -296
  349. package/src/components/FeedbackSurvey/useFrustrationDetection.ts +0 -2
  350. package/src/components/FeedbackSurvey/useMemorySurvey.tsx +0 -213
  351. package/src/components/FeedbackSurvey/usePostCompactSurvey.tsx +0 -206
  352. package/src/components/FeedbackSurvey/useSurveyState.tsx +0 -100
  353. package/src/components/FeedbackSurvey/utils.ts +0 -2
  354. package/src/components/FileEditToolDiff.tsx +0 -181
  355. package/src/components/FileEditToolUpdatedMessage.tsx +0 -124
  356. package/src/components/FileEditToolUseRejectedMessage.tsx +0 -170
  357. package/src/components/FilePathLink.tsx +0 -43
  358. package/src/components/FullscreenLayout.tsx +0 -637
  359. package/src/components/GlobalSearchDialog.tsx +0 -343
  360. package/src/components/HelpV2/Commands.tsx +0 -82
  361. package/src/components/HelpV2/General.tsx +0 -23
  362. package/src/components/HelpV2/HelpV2.tsx +0 -184
  363. package/src/components/HighlightedCode/Fallback.tsx +0 -193
  364. package/src/components/HighlightedCode.tsx +0 -190
  365. package/src/components/HistorySearchDialog.tsx +0 -118
  366. package/src/components/IdeAutoConnectDialog.tsx +0 -154
  367. package/src/components/IdeOnboardingDialog.tsx +0 -167
  368. package/src/components/IdeStatusIndicator.tsx +0 -58
  369. package/src/components/IdleReturnDialog.tsx +0 -118
  370. package/src/components/InterruptedByUser.tsx +0 -15
  371. package/src/components/InvalidConfigDialog.tsx +0 -156
  372. package/src/components/InvalidSettingsDialog.tsx +0 -89
  373. package/src/components/KeybindingWarnings.tsx +0 -55
  374. package/src/components/LanguagePicker.tsx +0 -86
  375. package/src/components/LogSelector.tsx +0 -1575
  376. package/src/components/LogoV2/AnimatedAsterisk.tsx +0 -50
  377. package/src/components/LogoV2/AnimatedClawd.tsx +0 -124
  378. package/src/components/LogoV2/ChannelsNotice.tsx +0 -266
  379. package/src/components/LogoV2/Clawd.tsx +0 -25
  380. package/src/components/LogoV2/CondensedLogo.tsx +0 -161
  381. package/src/components/LogoV2/EmergencyTip.tsx +0 -58
  382. package/src/components/LogoV2/Feed.tsx +0 -112
  383. package/src/components/LogoV2/FeedColumn.tsx +0 -59
  384. package/src/components/LogoV2/GuestPassesUpsell.tsx +0 -70
  385. package/src/components/LogoV2/LogoV2.tsx +0 -543
  386. package/src/components/LogoV2/Opus1mMergeNotice.tsx +0 -55
  387. package/src/components/LogoV2/OverageCreditUpsell.tsx +0 -166
  388. package/src/components/LogoV2/VoiceModeNotice.tsx +0 -68
  389. package/src/components/LogoV2/WelcomeV2.tsx +0 -433
  390. package/src/components/LogoV2/feedConfigs.tsx +0 -92
  391. package/src/components/LspRecommendation/LspRecommendationMenu.tsx +0 -88
  392. package/src/components/MCPServerApprovalDialog.tsx +0 -115
  393. package/src/components/MCPServerDesktopImportDialog.tsx +0 -203
  394. package/src/components/MCPServerDialogCopy.tsx +0 -15
  395. package/src/components/MCPServerMultiselectDialog.tsx +0 -133
  396. package/src/components/ManagedSettingsSecurityDialog/ManagedSettingsSecurityDialog.tsx +0 -149
  397. package/src/components/ManagedSettingsSecurityDialog/utils.ts +0 -144
  398. package/src/components/Markdown.tsx +0 -236
  399. package/src/components/MarkdownTable.tsx +0 -322
  400. package/src/components/MemoryUsageIndicator.tsx +0 -37
  401. package/src/components/Message.tsx +0 -627
  402. package/src/components/MessageModel.tsx +0 -43
  403. package/src/components/MessageResponse.tsx +0 -78
  404. package/src/components/MessageRow.tsx +0 -383
  405. package/src/components/MessageSelector.tsx +0 -831
  406. package/src/components/MessageTimestamp.tsx +0 -63
  407. package/src/components/Messages.tsx +0 -834
  408. package/src/components/ModelPicker.tsx +0 -448
  409. package/src/components/NativeAutoUpdater.tsx +0 -193
  410. package/src/components/NotebookEditToolUseRejectedMessage.tsx +0 -92
  411. package/src/components/OffscreenFreeze.tsx +0 -44
  412. package/src/components/Onboarding.tsx +0 -244
  413. package/src/components/OutputStylePicker.tsx +0 -112
  414. package/src/components/PackageManagerAutoUpdater.tsx +0 -104
  415. package/src/components/Passes/Passes.tsx +0 -184
  416. package/src/components/PrBadge.tsx +0 -97
  417. package/src/components/PressEnterToContinue.tsx +0 -15
  418. package/src/components/PromptInput/HistorySearchInput.tsx +0 -51
  419. package/src/components/PromptInput/IssueFlagBanner.tsx +0 -12
  420. package/src/components/PromptInput/Notifications.tsx +0 -332
  421. package/src/components/PromptInput/PromptInput.tsx +0 -2339
  422. package/src/components/PromptInput/PromptInputFooter.tsx +0 -191
  423. package/src/components/PromptInput/PromptInputFooterLeftSide.tsx +0 -517
  424. package/src/components/PromptInput/PromptInputFooterSuggestions.tsx +0 -293
  425. package/src/components/PromptInput/PromptInputHelpMenu.tsx +0 -358
  426. package/src/components/PromptInput/PromptInputModeIndicator.tsx +0 -93
  427. package/src/components/PromptInput/PromptInputQueuedCommands.tsx +0 -117
  428. package/src/components/PromptInput/PromptInputStashNotice.tsx +0 -25
  429. package/src/components/PromptInput/SandboxPromptFooterHint.tsx +0 -64
  430. package/src/components/PromptInput/ShimmeredInput.tsx +0 -143
  431. package/src/components/PromptInput/VoiceIndicator.tsx +0 -137
  432. package/src/components/PromptInput/inputModes.ts +0 -33
  433. package/src/components/PromptInput/inputPaste.ts +0 -90
  434. package/src/components/PromptInput/useMaybeTruncateInput.ts +0 -58
  435. package/src/components/PromptInput/usePromptInputPlaceholder.ts +0 -76
  436. package/src/components/PromptInput/useShowFastIconHint.ts +0 -31
  437. package/src/components/PromptInput/useSwarmBanner.ts +0 -155
  438. package/src/components/PromptInput/utils.ts +0 -60
  439. package/src/components/QuickOpenDialog.tsx +0 -244
  440. package/src/components/RemoteCallout.tsx +0 -76
  441. package/src/components/RemoteEnvironmentDialog.tsx +0 -340
  442. package/src/components/ResumeTask.tsx +0 -268
  443. package/src/components/SandboxViolationExpandedView.tsx +0 -99
  444. package/src/components/ScrollKeybindingHandler.tsx +0 -1012
  445. package/src/components/SearchBox.tsx +0 -72
  446. package/src/components/SentryErrorBoundary.ts +0 -28
  447. package/src/components/SessionBackgroundHint.tsx +0 -108
  448. package/src/components/SessionPreview.tsx +0 -194
  449. package/src/components/Settings/Config.tsx +0 -1822
  450. package/src/components/Settings/Settings.tsx +0 -137
  451. package/src/components/Settings/Status.tsx +0 -241
  452. package/src/components/Settings/Usage.tsx +0 -377
  453. package/src/components/ShowInIDEPrompt.tsx +0 -170
  454. package/src/components/SkillImprovementSurvey.tsx +0 -152
  455. package/src/components/Spinner/FlashingChar.tsx +0 -61
  456. package/src/components/Spinner/GlimmerMessage.tsx +0 -328
  457. package/src/components/Spinner/ShimmerChar.tsx +0 -36
  458. package/src/components/Spinner/SpinnerAnimationRow.tsx +0 -265
  459. package/src/components/Spinner/SpinnerGlyph.tsx +0 -80
  460. package/src/components/Spinner/TeammateSpinnerLine.tsx +0 -233
  461. package/src/components/Spinner/TeammateSpinnerTree.tsx +0 -272
  462. package/src/components/Spinner/index.ts +0 -10
  463. package/src/components/Spinner/teammateSelectHint.ts +0 -1
  464. package/src/components/Spinner/types.ts +0 -2
  465. package/src/components/Spinner/useShimmerAnimation.ts +0 -31
  466. package/src/components/Spinner/useStalledAnimation.ts +0 -75
  467. package/src/components/Spinner/utils.ts +0 -84
  468. package/src/components/Spinner.tsx +0 -562
  469. package/src/components/Stats.tsx +0 -1228
  470. package/src/components/StatusLine.tsx +0 -324
  471. package/src/components/StatusNotices.tsx +0 -55
  472. package/src/components/StructuredDiff/Fallback.tsx +0 -487
  473. package/src/components/StructuredDiff/colorDiff.ts +0 -37
  474. package/src/components/StructuredDiff.tsx +0 -190
  475. package/src/components/StructuredDiffList.tsx +0 -30
  476. package/src/components/TagTabs.tsx +0 -139
  477. package/src/components/TaskListV2.tsx +0 -378
  478. package/src/components/TeammateViewHeader.tsx +0 -82
  479. package/src/components/TeleportError.tsx +0 -189
  480. package/src/components/TeleportProgress.tsx +0 -140
  481. package/src/components/TeleportRepoMismatchDialog.tsx +0 -104
  482. package/src/components/TeleportResumeWrapper.tsx +0 -167
  483. package/src/components/TeleportStash.tsx +0 -116
  484. package/src/components/TextInput.tsx +0 -124
  485. package/src/components/ThemePicker.tsx +0 -333
  486. package/src/components/ThinkingToggle.tsx +0 -153
  487. package/src/components/TokenWarning.tsx +0 -179
  488. package/src/components/ToolUseLoader.tsx +0 -42
  489. package/src/components/TrustDialog/TrustDialog.tsx +0 -290
  490. package/src/components/TrustDialog/utils.ts +0 -245
  491. package/src/components/ValidationErrorsList.tsx +0 -148
  492. package/src/components/VimTextInput.tsx +0 -140
  493. package/src/components/VirtualMessageList.tsx +0 -1082
  494. package/src/components/WorkflowMultiselectDialog.tsx +0 -128
  495. package/src/components/WorktreeExitDialog.tsx +0 -231
  496. package/src/components/agents/AgentDetail.tsx +0 -220
  497. package/src/components/agents/AgentEditor.tsx +0 -178
  498. package/src/components/agents/AgentNavigationFooter.tsx +0 -26
  499. package/src/components/agents/AgentsList.tsx +0 -440
  500. package/src/components/agents/AgentsMenu.tsx +0 -800
  501. package/src/components/agents/ColorPicker.tsx +0 -112
  502. package/src/components/agents/ModelSelector.tsx +0 -68
  503. package/src/components/agents/SnapshotUpdateDialog.ts +0 -2
  504. package/src/components/agents/ToolSelector.tsx +0 -562
  505. package/src/components/agents/agentFileUtils.ts +0 -272
  506. package/src/components/agents/generateAgent.ts +0 -197
  507. package/src/components/agents/new-agent-creation/CreateAgentWizard.tsx +0 -97
  508. package/src/components/agents/new-agent-creation/types.ts +0 -1
  509. package/src/components/agents/new-agent-creation/wizard-steps/ColorStep.tsx +0 -84
  510. package/src/components/agents/new-agent-creation/wizard-steps/ConfirmStep.tsx +0 -378
  511. package/src/components/agents/new-agent-creation/wizard-steps/ConfirmStepWrapper.tsx +0 -74
  512. package/src/components/agents/new-agent-creation/wizard-steps/DescriptionStep.tsx +0 -123
  513. package/src/components/agents/new-agent-creation/wizard-steps/GenerateStep.tsx +0 -143
  514. package/src/components/agents/new-agent-creation/wizard-steps/LocationStep.tsx +0 -80
  515. package/src/components/agents/new-agent-creation/wizard-steps/MemoryStep.tsx +0 -113
  516. package/src/components/agents/new-agent-creation/wizard-steps/MethodStep.tsx +0 -80
  517. package/src/components/agents/new-agent-creation/wizard-steps/ModelStep.tsx +0 -52
  518. package/src/components/agents/new-agent-creation/wizard-steps/PromptStep.tsx +0 -128
  519. package/src/components/agents/new-agent-creation/wizard-steps/ToolsStep.tsx +0 -61
  520. package/src/components/agents/new-agent-creation/wizard-steps/TypeStep.tsx +0 -103
  521. package/src/components/agents/types.ts +0 -27
  522. package/src/components/agents/utils.ts +0 -18
  523. package/src/components/agents/validateAgent.ts +0 -109
  524. package/src/components/design-system/Byline.tsx +0 -77
  525. package/src/components/design-system/Dialog.tsx +0 -138
  526. package/src/components/design-system/Divider.tsx +0 -149
  527. package/src/components/design-system/FuzzyPicker.tsx +0 -312
  528. package/src/components/design-system/KeyboardShortcutHint.tsx +0 -81
  529. package/src/components/design-system/ListItem.tsx +0 -244
  530. package/src/components/design-system/LoadingState.tsx +0 -94
  531. package/src/components/design-system/Pane.tsx +0 -77
  532. package/src/components/design-system/ProgressBar.tsx +0 -86
  533. package/src/components/design-system/Ratchet.tsx +0 -80
  534. package/src/components/design-system/StatusIcon.tsx +0 -95
  535. package/src/components/design-system/Tabs.tsx +0 -340
  536. package/src/components/design-system/ThemeProvider.tsx +0 -170
  537. package/src/components/design-system/ThemedBox.tsx +0 -156
  538. package/src/components/design-system/ThemedText.tsx +0 -124
  539. package/src/components/design-system/color.ts +0 -30
  540. package/src/components/diff/DiffDetailView.tsx +0 -281
  541. package/src/components/diff/DiffDialog.tsx +0 -383
  542. package/src/components/diff/DiffFileList.tsx +0 -292
  543. package/src/components/grove/Grove.tsx +0 -463
  544. package/src/components/hooks/HooksConfigMenu.tsx +0 -578
  545. package/src/components/hooks/PromptDialog.tsx +0 -90
  546. package/src/components/hooks/SelectEventMode.tsx +0 -127
  547. package/src/components/hooks/SelectHookMode.tsx +0 -112
  548. package/src/components/hooks/SelectMatcherMode.tsx +0 -144
  549. package/src/components/hooks/ViewHookMode.tsx +0 -199
  550. package/src/components/mcp/CapabilitiesSection.tsx +0 -61
  551. package/src/components/mcp/ElicitationDialog.tsx +0 -1169
  552. package/src/components/mcp/MCPAgentServerMenu.tsx +0 -183
  553. package/src/components/mcp/MCPListPanel.tsx +0 -504
  554. package/src/components/mcp/MCPReconnect.tsx +0 -167
  555. package/src/components/mcp/MCPRemoteServerMenu.tsx +0 -649
  556. package/src/components/mcp/MCPSettings.tsx +0 -398
  557. package/src/components/mcp/MCPStdioServerMenu.tsx +0 -177
  558. package/src/components/mcp/MCPToolDetailView.tsx +0 -212
  559. package/src/components/mcp/MCPToolListView.tsx +0 -141
  560. package/src/components/mcp/McpParsingWarnings.tsx +0 -213
  561. package/src/components/mcp/index.ts +0 -9
  562. package/src/components/mcp/types.ts +0 -7
  563. package/src/components/mcp/utils/reconnectHelpers.tsx +0 -49
  564. package/src/components/memory/MemoryFileSelector.tsx +0 -438
  565. package/src/components/memory/MemoryUpdateNotification.tsx +0 -45
  566. package/src/components/messageActions.tsx +0 -450
  567. package/src/components/messages/AdvisorMessage.tsx +0 -158
  568. package/src/components/messages/AssistantRedactedThinkingMessage.tsx +0 -31
  569. package/src/components/messages/AssistantTextMessage.tsx +0 -270
  570. package/src/components/messages/AssistantThinkingMessage.tsx +0 -86
  571. package/src/components/messages/AssistantToolUseMessage.tsx +0 -368
  572. package/src/components/messages/AttachmentMessage.tsx +0 -536
  573. package/src/components/messages/CollapsedReadSearchContent.tsx +0 -484
  574. package/src/components/messages/CompactBoundaryMessage.tsx +0 -18
  575. package/src/components/messages/GroupedToolUseContent.tsx +0 -58
  576. package/src/components/messages/HighlightedThinkingText.tsx +0 -162
  577. package/src/components/messages/HookProgressMessage.tsx +0 -116
  578. package/src/components/messages/PlanApprovalMessage.tsx +0 -222
  579. package/src/components/messages/RateLimitMessage.tsx +0 -161
  580. package/src/components/messages/ShutdownMessage.tsx +0 -132
  581. package/src/components/messages/SnipBoundaryMessage.ts +0 -2
  582. package/src/components/messages/SystemAPIErrorMessage.tsx +0 -141
  583. package/src/components/messages/SystemTextMessage.tsx +0 -827
  584. package/src/components/messages/TaskAssignmentMessage.tsx +0 -76
  585. package/src/components/messages/UserAgentNotificationMessage.tsx +0 -83
  586. package/src/components/messages/UserBashInputMessage.tsx +0 -58
  587. package/src/components/messages/UserBashOutputMessage.tsx +0 -54
  588. package/src/components/messages/UserChannelMessage.tsx +0 -137
  589. package/src/components/messages/UserCommandMessage.tsx +0 -108
  590. package/src/components/messages/UserCrossSessionMessage.ts +0 -2
  591. package/src/components/messages/UserForkBoilerplateMessage.ts +0 -2
  592. package/src/components/messages/UserGitHubWebhookMessage.ts +0 -2
  593. package/src/components/messages/UserImageMessage.tsx +0 -59
  594. package/src/components/messages/UserLocalCommandOutputMessage.tsx +0 -167
  595. package/src/components/messages/UserMemoryInputMessage.tsx +0 -75
  596. package/src/components/messages/UserPlanMessage.tsx +0 -42
  597. package/src/components/messages/UserPromptMessage.tsx +0 -80
  598. package/src/components/messages/UserResourceUpdateMessage.tsx +0 -121
  599. package/src/components/messages/UserTeammateMessage.tsx +0 -206
  600. package/src/components/messages/UserTextMessage.tsx +0 -275
  601. package/src/components/messages/UserToolResultMessage/RejectedPlanMessage.tsx +0 -31
  602. package/src/components/messages/UserToolResultMessage/RejectedToolUseMessage.tsx +0 -16
  603. package/src/components/messages/UserToolResultMessage/UserToolCanceledMessage.tsx +0 -16
  604. package/src/components/messages/UserToolResultMessage/UserToolErrorMessage.tsx +0 -103
  605. package/src/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx +0 -95
  606. package/src/components/messages/UserToolResultMessage/UserToolResultMessage.tsx +0 -106
  607. package/src/components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx +0 -104
  608. package/src/components/messages/UserToolResultMessage/utils.tsx +0 -44
  609. package/src/components/messages/nullRenderingAttachments.ts +0 -70
  610. package/src/components/messages/teamMemCollapsed.tsx +0 -140
  611. package/src/components/messages/teamMemSaved.ts +0 -19
  612. package/src/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.tsx +0 -645
  613. package/src/components/permissions/AskUserQuestionPermissionRequest/PreviewBox.tsx +0 -229
  614. package/src/components/permissions/AskUserQuestionPermissionRequest/PreviewQuestionView.tsx +0 -328
  615. package/src/components/permissions/AskUserQuestionPermissionRequest/QuestionNavigationBar.tsx +0 -178
  616. package/src/components/permissions/AskUserQuestionPermissionRequest/QuestionView.tsx +0 -465
  617. package/src/components/permissions/AskUserQuestionPermissionRequest/SubmitQuestionsView.tsx +0 -144
  618. package/src/components/permissions/AskUserQuestionPermissionRequest/use-multiple-choice-state.ts +0 -179
  619. package/src/components/permissions/BashPermissionRequest/BashPermissionRequest.tsx +0 -482
  620. package/src/components/permissions/BashPermissionRequest/bashToolUseOptions.tsx +0 -147
  621. package/src/components/permissions/ComputerUseApproval/ComputerUseApproval.tsx +0 -441
  622. package/src/components/permissions/EnterPlanModePermissionRequest/EnterPlanModePermissionRequest.tsx +0 -122
  623. package/src/components/permissions/ExitPlanModePermissionRequest/ExitPlanModePermissionRequest.tsx +0 -768
  624. package/src/components/permissions/FallbackPermissionRequest.tsx +0 -333
  625. package/src/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx +0 -182
  626. package/src/components/permissions/FilePermissionDialog/FilePermissionDialog.tsx +0 -204
  627. package/src/components/permissions/FilePermissionDialog/ideDiffConfig.ts +0 -42
  628. package/src/components/permissions/FilePermissionDialog/permissionOptions.tsx +0 -177
  629. package/src/components/permissions/FilePermissionDialog/useFilePermissionDialog.ts +0 -212
  630. package/src/components/permissions/FilePermissionDialog/usePermissionHandler.ts +0 -185
  631. package/src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx +0 -161
  632. package/src/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.tsx +0 -89
  633. package/src/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx +0 -115
  634. package/src/components/permissions/MonitorPermissionRequest/MonitorPermissionRequest.ts +0 -2
  635. package/src/components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.tsx +0 -166
  636. package/src/components/permissions/NotebookEditPermissionRequest/NotebookEditToolDiff.tsx +0 -235
  637. package/src/components/permissions/PermissionDecisionDebugInfo.tsx +0 -460
  638. package/src/components/permissions/PermissionDialog.tsx +0 -72
  639. package/src/components/permissions/PermissionExplanation.tsx +0 -272
  640. package/src/components/permissions/PermissionPrompt.tsx +0 -336
  641. package/src/components/permissions/PermissionRequest.tsx +0 -217
  642. package/src/components/permissions/PermissionRequestTitle.tsx +0 -66
  643. package/src/components/permissions/PermissionRuleExplanation.tsx +0 -121
  644. package/src/components/permissions/PowerShellPermissionRequest/PowerShellPermissionRequest.tsx +0 -235
  645. package/src/components/permissions/PowerShellPermissionRequest/powershellToolUseOptions.tsx +0 -91
  646. package/src/components/permissions/ReviewArtifactPermissionRequest/ReviewArtifactPermissionRequest.ts +0 -2
  647. package/src/components/permissions/SandboxPermissionRequest.tsx +0 -163
  648. package/src/components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.tsx +0 -230
  649. package/src/components/permissions/SkillPermissionRequest/SkillPermissionRequest.tsx +0 -369
  650. package/src/components/permissions/WebFetchPermissionRequest/WebFetchPermissionRequest.tsx +0 -258
  651. package/src/components/permissions/WorkerBadge.tsx +0 -49
  652. package/src/components/permissions/WorkerPendingPermission.tsx +0 -105
  653. package/src/components/permissions/hooks.ts +0 -209
  654. package/src/components/permissions/rules/AddPermissionRules.tsx +0 -180
  655. package/src/components/permissions/rules/AddWorkspaceDirectory.tsx +0 -340
  656. package/src/components/permissions/rules/PermissionRuleDescription.tsx +0 -76
  657. package/src/components/permissions/rules/PermissionRuleInput.tsx +0 -138
  658. package/src/components/permissions/rules/PermissionRuleList.tsx +0 -1179
  659. package/src/components/permissions/rules/RecentDenialsTab.tsx +0 -207
  660. package/src/components/permissions/rules/RemoveWorkspaceDirectory.tsx +0 -110
  661. package/src/components/permissions/rules/WorkspaceTab.tsx +0 -150
  662. package/src/components/permissions/shellPermissionHelpers.tsx +0 -164
  663. package/src/components/permissions/useShellPermissionFeedback.ts +0 -148
  664. package/src/components/permissions/utils.ts +0 -25
  665. package/src/components/sandbox/SandboxConfigTab.tsx +0 -45
  666. package/src/components/sandbox/SandboxDependenciesTab.tsx +0 -120
  667. package/src/components/sandbox/SandboxDoctorSection.tsx +0 -46
  668. package/src/components/sandbox/SandboxOverridesTab.tsx +0 -193
  669. package/src/components/sandbox/SandboxSettings.tsx +0 -296
  670. package/src/components/shell/ExpandShellOutputContext.tsx +0 -36
  671. package/src/components/shell/OutputLine.tsx +0 -118
  672. package/src/components/shell/ShellProgressMessage.tsx +0 -150
  673. package/src/components/shell/ShellTimeDisplay.tsx +0 -74
  674. package/src/components/skills/SkillsMenu.tsx +0 -237
  675. package/src/components/tasks/AsyncAgentDetailDialog.tsx +0 -229
  676. package/src/components/tasks/BackgroundTask.tsx +0 -345
  677. package/src/components/tasks/BackgroundTaskStatus.tsx +0 -429
  678. package/src/components/tasks/BackgroundTasksDialog.tsx +0 -652
  679. package/src/components/tasks/DreamDetailDialog.tsx +0 -251
  680. package/src/components/tasks/InProcessTeammateDetailDialog.tsx +0 -266
  681. package/src/components/tasks/MonitorMcpDetailDialog.ts +0 -2
  682. package/src/components/tasks/RemoteSessionDetailDialog.tsx +0 -904
  683. package/src/components/tasks/RemoteSessionProgress.tsx +0 -243
  684. package/src/components/tasks/ShellDetailDialog.tsx +0 -404
  685. package/src/components/tasks/ShellProgress.tsx +0 -87
  686. package/src/components/tasks/WorkflowDetailDialog.ts +0 -2
  687. package/src/components/tasks/renderToolActivity.tsx +0 -33
  688. package/src/components/tasks/taskStatusUtils.tsx +0 -107
  689. package/src/components/teams/TeamStatus.tsx +0 -80
  690. package/src/components/teams/TeamsDialog.tsx +0 -715
  691. package/src/components/ui/OrderedList.tsx +0 -71
  692. package/src/components/ui/OrderedListItem.tsx +0 -45
  693. package/src/components/ui/TreeSelect.tsx +0 -397
  694. package/src/components/ui/option.ts +0 -4
  695. package/src/components/wizard/WizardDialogLayout.tsx +0 -65
  696. package/src/components/wizard/WizardNavigationFooter.tsx +0 -24
  697. package/src/components/wizard/WizardProvider.tsx +0 -213
  698. package/src/components/wizard/index.ts +0 -9
  699. package/src/components/wizard/types.ts +0 -3
  700. package/src/components/wizard/useWizard.ts +0 -13
  701. package/src/constants/apiLimits.ts +0 -94
  702. package/src/constants/betas.ts +0 -52
  703. package/src/constants/common.ts +0 -33
  704. package/src/constants/cyberRiskInstruction.ts +0 -24
  705. package/src/constants/errorIds.ts +0 -15
  706. package/src/constants/figures.ts +0 -45
  707. package/src/constants/files.ts +0 -156
  708. package/src/constants/github-app.ts +0 -144
  709. package/src/constants/keys.ts +0 -11
  710. package/src/constants/messages.ts +0 -1
  711. package/src/constants/oauth.ts +0 -234
  712. package/src/constants/outputStyles.ts +0 -216
  713. package/src/constants/product.ts +0 -76
  714. package/src/constants/prompts.ts +0 -915
  715. package/src/constants/querySource.ts +0 -1
  716. package/src/constants/spinnerVerbs.ts +0 -204
  717. package/src/constants/system.ts +0 -95
  718. package/src/constants/systemPromptSections.ts +0 -68
  719. package/src/constants/toolLimits.ts +0 -56
  720. package/src/constants/tools.ts +0 -112
  721. package/src/constants/turnCompletionVerbs.ts +0 -12
  722. package/src/constants/xml.ts +0 -86
  723. package/src/context/QueuedMessageContext.tsx +0 -63
  724. package/src/context/fpsMetrics.tsx +0 -30
  725. package/src/context/mailbox.tsx +0 -38
  726. package/src/context/modalContext.tsx +0 -58
  727. package/src/context/notifications.tsx +0 -240
  728. package/src/context/overlayContext.tsx +0 -151
  729. package/src/context/promptOverlayContext.tsx +0 -125
  730. package/src/context/stats.tsx +0 -220
  731. package/src/context/voice.tsx +0 -88
  732. package/src/context.ts +0 -189
  733. package/src/coordinator/coordinatorMode.ts +0 -369
  734. package/src/coordinator/workerAgent.ts +0 -2
  735. package/src/cost-tracker.ts +0 -323
  736. package/src/costHook.ts +0 -22
  737. package/src/daemon/main.ts +0 -2
  738. package/src/daemon/workerRegistry.ts +0 -2
  739. package/src/dialogLaunchers.tsx +0 -133
  740. package/src/engine/CostMapper.ts +0 -57
  741. package/src/engine/MessageMapper.ts +0 -276
  742. package/src/engine/ModelResolver.ts +0 -153
  743. package/src/engine/PermissionBridge.ts +0 -114
  744. package/src/engine/PiAgentAdapter.ts +0 -299
  745. package/src/engine/SubagentTools.ts +0 -92
  746. package/src/engine/ToolAdapter.ts +0 -122
  747. package/src/engine/engine-backup/CostMapper.ts +0 -57
  748. package/src/engine/engine-backup/MessageMapper.ts +0 -276
  749. package/src/engine/engine-backup/ModelResolver.ts +0 -153
  750. package/src/engine/engine-backup/PermissionBridge.ts +0 -114
  751. package/src/engine/engine-backup/PiAgentAdapter.ts +0 -299
  752. package/src/engine/engine-backup/SubagentTools.ts +0 -92
  753. package/src/engine/engine-backup/ToolAdapter.ts +0 -122
  754. package/src/engine/engine-backup/index.ts +0 -14
  755. package/src/engine/engine-backup/piQueryBridge.ts +0 -396
  756. package/src/engine/index.ts +0 -14
  757. package/src/engine/piQueryBridge.ts +0 -396
  758. package/src/entrypoints/agentSdkTypes.ts +0 -443
  759. package/src/entrypoints/cli.tsx +0 -303
  760. package/src/entrypoints/init.ts +0 -340
  761. package/src/entrypoints/mcp.ts +0 -196
  762. package/src/entrypoints/sandboxTypes.ts +0 -156
  763. package/src/entrypoints/sdk/controlSchemas.ts +0 -663
  764. package/src/entrypoints/sdk/controlTypes.ts +0 -12
  765. package/src/entrypoints/sdk/coreSchemas.ts +0 -1889
  766. package/src/entrypoints/sdk/coreTypes.generated.ts +0 -1
  767. package/src/entrypoints/sdk/coreTypes.ts +0 -62
  768. package/src/entrypoints/sdk/runtimeTypes.ts +0 -18
  769. package/src/entrypoints/sdk/sdkUtilityTypes.ts +0 -1
  770. package/src/entrypoints/sdk/settingsTypes.generated.ts +0 -1
  771. package/src/entrypoints/sdk/toolTypes.ts +0 -2
  772. package/src/environment-runner/main.ts +0 -2
  773. package/src/history.ts +0 -464
  774. package/src/hooks/fileSuggestions.ts +0 -811
  775. package/src/hooks/notifs/useAntOrgWarningNotification.ts +0 -2
  776. package/src/hooks/notifs/useAutoModeUnavailableNotification.ts +0 -56
  777. package/src/hooks/notifs/useCanSwitchToExistingSubscription.tsx +0 -60
  778. package/src/hooks/notifs/useDeprecationWarningNotification.tsx +0 -44
  779. package/src/hooks/notifs/useFastModeNotification.tsx +0 -162
  780. package/src/hooks/notifs/useIDEStatusIndicator.tsx +0 -186
  781. package/src/hooks/notifs/useInstallMessages.tsx +0 -26
  782. package/src/hooks/notifs/useLspInitializationNotification.tsx +0 -143
  783. package/src/hooks/notifs/useMcpConnectivityStatus.tsx +0 -88
  784. package/src/hooks/notifs/useModelMigrationNotifications.tsx +0 -52
  785. package/src/hooks/notifs/useNpmDeprecationNotification.tsx +0 -25
  786. package/src/hooks/notifs/usePluginAutoupdateNotification.tsx +0 -83
  787. package/src/hooks/notifs/usePluginInstallationStatus.tsx +0 -128
  788. package/src/hooks/notifs/useRateLimitWarningNotification.tsx +0 -114
  789. package/src/hooks/notifs/useSettingsErrors.tsx +0 -69
  790. package/src/hooks/notifs/useStartupNotification.ts +0 -41
  791. package/src/hooks/notifs/useTeammateShutdownNotification.ts +0 -78
  792. package/src/hooks/renderPlaceholder.ts +0 -51
  793. package/src/hooks/toolPermission/PermissionContext.ts +0 -388
  794. package/src/hooks/toolPermission/handlers/coordinatorHandler.ts +0 -65
  795. package/src/hooks/toolPermission/handlers/interactiveHandler.ts +0 -536
  796. package/src/hooks/toolPermission/handlers/swarmWorkerHandler.ts +0 -159
  797. package/src/hooks/toolPermission/permissionLogging.ts +0 -238
  798. package/src/hooks/unifiedSuggestions.ts +0 -202
  799. package/src/hooks/useAfterFirstRender.ts +0 -17
  800. package/src/hooks/useApiKeyVerification.ts +0 -84
  801. package/src/hooks/useArrowKeyHistory.tsx +0 -229
  802. package/src/hooks/useAssistantHistory.ts +0 -250
  803. package/src/hooks/useAwaySummary.ts +0 -125
  804. package/src/hooks/useBackgroundTaskNavigation.ts +0 -251
  805. package/src/hooks/useBlink.ts +0 -34
  806. package/src/hooks/useCanUseTool.tsx +0 -204
  807. package/src/hooks/useCancelRequest.ts +0 -276
  808. package/src/hooks/useChromeExtensionNotification.tsx +0 -50
  809. package/src/hooks/useClaudeCodeHintRecommendation.tsx +0 -129
  810. package/src/hooks/useClipboardImageHint.ts +0 -77
  811. package/src/hooks/useCommandKeybindings.tsx +0 -108
  812. package/src/hooks/useCommandQueue.ts +0 -15
  813. package/src/hooks/useCopyOnSelect.ts +0 -98
  814. package/src/hooks/useDeferredHookMessages.ts +0 -46
  815. package/src/hooks/useDiffData.ts +0 -110
  816. package/src/hooks/useDiffInIDE.ts +0 -379
  817. package/src/hooks/useDirectConnect.ts +0 -229
  818. package/src/hooks/useDoublePress.ts +0 -62
  819. package/src/hooks/useDynamicConfig.ts +0 -22
  820. package/src/hooks/useElapsedTime.ts +0 -37
  821. package/src/hooks/useExitOnCtrlCD.ts +0 -95
  822. package/src/hooks/useExitOnCtrlCDWithKeybindings.ts +0 -24
  823. package/src/hooks/useFileHistorySnapshotInit.ts +0 -25
  824. package/src/hooks/useGlobalKeybindings.tsx +0 -249
  825. package/src/hooks/useHistorySearch.ts +0 -303
  826. package/src/hooks/useIDEIntegration.tsx +0 -70
  827. package/src/hooks/useIdeAtMentioned.ts +0 -76
  828. package/src/hooks/useIdeConnectionStatus.ts +0 -33
  829. package/src/hooks/useIdeLogging.ts +0 -41
  830. package/src/hooks/useIdeSelection.ts +0 -150
  831. package/src/hooks/useInboxPoller.ts +0 -969
  832. package/src/hooks/useInputBuffer.ts +0 -132
  833. package/src/hooks/useIssueFlagBanner.ts +0 -133
  834. package/src/hooks/useLogMessages.ts +0 -119
  835. package/src/hooks/useLspPluginRecommendation.tsx +0 -194
  836. package/src/hooks/useMailboxBridge.ts +0 -21
  837. package/src/hooks/useMainLoopModel.ts +0 -34
  838. package/src/hooks/useManagePlugins.ts +0 -304
  839. package/src/hooks/useMemoryUsage.ts +0 -39
  840. package/src/hooks/useMergedClients.ts +0 -23
  841. package/src/hooks/useMergedCommands.ts +0 -15
  842. package/src/hooks/useMergedTools.ts +0 -44
  843. package/src/hooks/useMinDisplayTime.ts +0 -35
  844. package/src/hooks/useNotifyAfterTimeout.ts +0 -65
  845. package/src/hooks/useOfficialMarketplaceNotification.tsx +0 -48
  846. package/src/hooks/usePasteHandler.ts +0 -285
  847. package/src/hooks/usePluginRecommendationBase.tsx +0 -105
  848. package/src/hooks/usePrStatus.ts +0 -106
  849. package/src/hooks/usePromptSuggestion.ts +0 -177
  850. package/src/hooks/usePromptsFromClaudeInChrome.tsx +0 -71
  851. package/src/hooks/useQueueProcessor.ts +0 -68
  852. package/src/hooks/useRemoteSession.ts +0 -605
  853. package/src/hooks/useReplBridge.tsx +0 -723
  854. package/src/hooks/useSSHSession.ts +0 -241
  855. package/src/hooks/useScheduledTasks.ts +0 -139
  856. package/src/hooks/useSearchInput.ts +0 -364
  857. package/src/hooks/useSessionBackgrounding.ts +0 -158
  858. package/src/hooks/useSettings.ts +0 -17
  859. package/src/hooks/useSettingsChange.ts +0 -25
  860. package/src/hooks/useSkillImprovementSurvey.ts +0 -105
  861. package/src/hooks/useSkillsChange.ts +0 -62
  862. package/src/hooks/useSwarmInitialization.ts +0 -81
  863. package/src/hooks/useSwarmPermissionPoller.ts +0 -330
  864. package/src/hooks/useTaskListWatcher.ts +0 -221
  865. package/src/hooks/useTasksV2.ts +0 -250
  866. package/src/hooks/useTeammateViewAutoExit.ts +0 -63
  867. package/src/hooks/useTeleportResume.tsx +0 -85
  868. package/src/hooks/useTerminalSize.ts +0 -15
  869. package/src/hooks/useTextInput.ts +0 -529
  870. package/src/hooks/useTimeout.ts +0 -14
  871. package/src/hooks/useTurnDiffs.ts +0 -213
  872. package/src/hooks/useTypeahead.tsx +0 -1385
  873. package/src/hooks/useUpdateNotification.ts +0 -34
  874. package/src/hooks/useVimInput.ts +0 -316
  875. package/src/hooks/useVirtualScroll.ts +0 -721
  876. package/src/hooks/useVoice.ts +0 -1144
  877. package/src/hooks/useVoiceEnabled.ts +0 -25
  878. package/src/hooks/useVoiceIntegration.tsx +0 -677
  879. package/src/ink/Ansi.tsx +0 -292
  880. package/src/ink/bidi.ts +0 -139
  881. package/src/ink/clearTerminal.ts +0 -74
  882. package/src/ink/colorize.ts +0 -231
  883. package/src/ink/components/AlternateScreen.tsx +0 -80
  884. package/src/ink/components/App.tsx +0 -658
  885. package/src/ink/components/AppContext.ts +0 -21
  886. package/src/ink/components/Box.tsx +0 -214
  887. package/src/ink/components/Button.tsx +0 -192
  888. package/src/ink/components/ClockContext.tsx +0 -112
  889. package/src/ink/components/CursorDeclarationContext.ts +0 -32
  890. package/src/ink/components/ErrorOverview.tsx +0 -109
  891. package/src/ink/components/Link.tsx +0 -42
  892. package/src/ink/components/Newline.tsx +0 -39
  893. package/src/ink/components/NoSelect.tsx +0 -68
  894. package/src/ink/components/RawAnsi.tsx +0 -57
  895. package/src/ink/components/ScrollBox.tsx +0 -237
  896. package/src/ink/components/Spacer.tsx +0 -20
  897. package/src/ink/components/StdinContext.ts +0 -49
  898. package/src/ink/components/TerminalFocusContext.tsx +0 -52
  899. package/src/ink/components/TerminalSizeContext.tsx +0 -7
  900. package/src/ink/components/Text.tsx +0 -254
  901. package/src/ink/constants.ts +0 -2
  902. package/src/ink/cursor.ts +0 -1
  903. package/src/ink/devtools.ts +0 -2
  904. package/src/ink/dom.ts +0 -484
  905. package/src/ink/events/click-event.ts +0 -38
  906. package/src/ink/events/dispatcher.ts +0 -233
  907. package/src/ink/events/emitter.ts +0 -39
  908. package/src/ink/events/event-handlers.ts +0 -73
  909. package/src/ink/events/event.ts +0 -11
  910. package/src/ink/events/focus-event.ts +0 -21
  911. package/src/ink/events/input-event.ts +0 -205
  912. package/src/ink/events/keyboard-event.ts +0 -51
  913. package/src/ink/events/paste-event.ts +0 -1
  914. package/src/ink/events/resize-event.ts +0 -1
  915. package/src/ink/events/terminal-event.ts +0 -107
  916. package/src/ink/events/terminal-focus-event.ts +0 -19
  917. package/src/ink/focus.ts +0 -181
  918. package/src/ink/frame.ts +0 -124
  919. package/src/ink/get-max-width.ts +0 -27
  920. package/src/ink/global.d.ts +0 -1
  921. package/src/ink/hit-test.ts +0 -130
  922. package/src/ink/hooks/use-animation-frame.ts +0 -57
  923. package/src/ink/hooks/use-app.ts +0 -8
  924. package/src/ink/hooks/use-declared-cursor.ts +0 -73
  925. package/src/ink/hooks/use-input.ts +0 -92
  926. package/src/ink/hooks/use-interval.ts +0 -67
  927. package/src/ink/hooks/use-search-highlight.ts +0 -53
  928. package/src/ink/hooks/use-selection.ts +0 -104
  929. package/src/ink/hooks/use-stdin.ts +0 -8
  930. package/src/ink/hooks/use-tab-status.ts +0 -72
  931. package/src/ink/hooks/use-terminal-focus.ts +0 -16
  932. package/src/ink/hooks/use-terminal-title.ts +0 -31
  933. package/src/ink/hooks/use-terminal-viewport.ts +0 -96
  934. package/src/ink/ink.tsx +0 -1723
  935. package/src/ink/instances.ts +0 -10
  936. package/src/ink/layout/engine.ts +0 -6
  937. package/src/ink/layout/geometry.ts +0 -97
  938. package/src/ink/layout/node.ts +0 -152
  939. package/src/ink/layout/yoga.ts +0 -308
  940. package/src/ink/line-width-cache.ts +0 -24
  941. package/src/ink/log-update.ts +0 -773
  942. package/src/ink/measure-element.ts +0 -23
  943. package/src/ink/measure-text.ts +0 -47
  944. package/src/ink/node-cache.ts +0 -54
  945. package/src/ink/optimizer.ts +0 -93
  946. package/src/ink/output.ts +0 -797
  947. package/src/ink/parse-keypress.ts +0 -801
  948. package/src/ink/reconciler.ts +0 -512
  949. package/src/ink/render-border.ts +0 -231
  950. package/src/ink/render-node-to-output.ts +0 -1462
  951. package/src/ink/render-to-screen.ts +0 -231
  952. package/src/ink/renderer.ts +0 -178
  953. package/src/ink/root.ts +0 -184
  954. package/src/ink/screen.ts +0 -1486
  955. package/src/ink/searchHighlight.ts +0 -93
  956. package/src/ink/selection.ts +0 -917
  957. package/src/ink/squash-text-nodes.ts +0 -92
  958. package/src/ink/stringWidth.ts +0 -222
  959. package/src/ink/styles.ts +0 -771
  960. package/src/ink/supports-hyperlinks.ts +0 -57
  961. package/src/ink/tabstops.ts +0 -46
  962. package/src/ink/terminal-focus-state.ts +0 -47
  963. package/src/ink/terminal-querier.ts +0 -212
  964. package/src/ink/terminal.ts +0 -248
  965. package/src/ink/termio/ansi.ts +0 -75
  966. package/src/ink/termio/csi.ts +0 -319
  967. package/src/ink/termio/dec.ts +0 -60
  968. package/src/ink/termio/esc.ts +0 -67
  969. package/src/ink/termio/osc.ts +0 -493
  970. package/src/ink/termio/parser.ts +0 -394
  971. package/src/ink/termio/sgr.ts +0 -308
  972. package/src/ink/termio/tokenize.ts +0 -319
  973. package/src/ink/termio/types.ts +0 -236
  974. package/src/ink/termio.ts +0 -42
  975. package/src/ink/useTerminalNotification.ts +0 -126
  976. package/src/ink/warn.ts +0 -9
  977. package/src/ink/widest-line.ts +0 -19
  978. package/src/ink/wrap-text.ts +0 -74
  979. package/src/ink/wrapAnsi.ts +0 -20
  980. package/src/ink.ts +0 -85
  981. package/src/interactiveHelpers.tsx +0 -366
  982. package/src/jobs/classifier.ts +0 -2
  983. package/src/keybindings/KeybindingContext.tsx +0 -243
  984. package/src/keybindings/KeybindingProviderSetup.tsx +0 -308
  985. package/src/keybindings/defaultBindings.ts +0 -340
  986. package/src/keybindings/loadUserBindings.ts +0 -472
  987. package/src/keybindings/match.ts +0 -120
  988. package/src/keybindings/parser.ts +0 -203
  989. package/src/keybindings/reservedShortcuts.ts +0 -127
  990. package/src/keybindings/resolver.ts +0 -244
  991. package/src/keybindings/schema.ts +0 -236
  992. package/src/keybindings/shortcutFormat.ts +0 -63
  993. package/src/keybindings/template.ts +0 -52
  994. package/src/keybindings/types.ts +0 -3
  995. package/src/keybindings/useKeybinding.ts +0 -196
  996. package/src/keybindings/useShortcutDisplay.ts +0 -59
  997. package/src/keybindings/validate.ts +0 -498
  998. package/src/main.tsx +0 -4684
  999. package/src/memdir/findRelevantMemories.ts +0 -141
  1000. package/src/memdir/memdir.ts +0 -507
  1001. package/src/memdir/memoryAge.ts +0 -53
  1002. package/src/memdir/memoryScan.ts +0 -94
  1003. package/src/memdir/memoryShapeTelemetry.ts +0 -2
  1004. package/src/memdir/memoryTypes.ts +0 -271
  1005. package/src/memdir/paths.ts +0 -278
  1006. package/src/memdir/teamMemPaths.ts +0 -292
  1007. package/src/memdir/teamMemPrompts.ts +0 -100
  1008. package/src/migrations/migrateAutoUpdatesToSettings.ts +0 -61
  1009. package/src/migrations/migrateBypassPermissionsAcceptedToSettings.ts +0 -40
  1010. package/src/migrations/migrateEnableAllProjectMcpServersToSettings.ts +0 -118
  1011. package/src/migrations/migrateFennecToOpus.ts +0 -45
  1012. package/src/migrations/migrateLegacyOpusToCurrent.ts +0 -57
  1013. package/src/migrations/migrateOpusToOpus1m.ts +0 -43
  1014. package/src/migrations/migrateReplBridgeEnabledToRemoteControlAtStartup.ts +0 -22
  1015. package/src/migrations/migrateSonnet1mToSonnet45.ts +0 -48
  1016. package/src/migrations/migrateSonnet45ToSonnet46.ts +0 -67
  1017. package/src/migrations/resetAutoModeOptInForDefaultOffer.ts +0 -51
  1018. package/src/migrations/resetProToOpusDefault.ts +0 -51
  1019. package/src/moreright/useMoreRight.tsx +0 -26
  1020. package/src/native-ts/color-diff/index.ts +0 -1001
  1021. package/src/native-ts/file-index/index.ts +0 -370
  1022. package/src/native-ts/yoga-layout/enums.ts +0 -134
  1023. package/src/native-ts/yoga-layout/index.ts +0 -2578
  1024. package/src/outputStyles/loadOutputStylesDir.ts +0 -98
  1025. package/src/plugins/builtinPlugins.ts +0 -159
  1026. package/src/plugins/bundled/index.ts +0 -23
  1027. package/src/proactive/index.ts +0 -2
  1028. package/src/projectOnboardingState.ts +0 -83
  1029. package/src/query/config.ts +0 -46
  1030. package/src/query/deps.ts +0 -33
  1031. package/src/query/stopHooks.ts +0 -473
  1032. package/src/query/tokenBudget.ts +0 -93
  1033. package/src/query/transitions.ts +0 -2
  1034. package/src/query.ts +0 -1729
  1035. package/src/remote/RemoteSessionManager.ts +0 -343
  1036. package/src/remote/SessionsWebSocket.ts +0 -404
  1037. package/src/remote/remotePermissionBridge.ts +0 -78
  1038. package/src/remote/sdkMessageAdapter.ts +0 -302
  1039. package/src/replLauncher.tsx +0 -23
  1040. package/src/schemas/hooks.ts +0 -222
  1041. package/src/screens/Doctor.tsx +0 -575
  1042. package/src/screens/REPL.tsx +0 -5006
  1043. package/src/screens/ResumeConversation.tsx +0 -399
  1044. package/src/self-hosted-runner/main.ts +0 -2
  1045. package/src/server/backends/dangerousBackend.ts +0 -2
  1046. package/src/server/connectHeadless.ts +0 -2
  1047. package/src/server/createDirectConnectSession.ts +0 -88
  1048. package/src/server/directConnectManager.ts +0 -213
  1049. package/src/server/lockfile.ts +0 -2
  1050. package/src/server/parseConnectUrl.ts +0 -2
  1051. package/src/server/server.ts +0 -2
  1052. package/src/server/serverBanner.ts +0 -2
  1053. package/src/server/serverLog.ts +0 -2
  1054. package/src/server/sessionManager.ts +0 -2
  1055. package/src/server/types.ts +0 -57
  1056. package/src/services/AgentSummary/agentSummary.ts +0 -179
  1057. package/src/services/MagicDocs/magicDocs.ts +0 -254
  1058. package/src/services/MagicDocs/prompts.ts +0 -127
  1059. package/src/services/PromptSuggestion/promptSuggestion.ts +0 -523
  1060. package/src/services/PromptSuggestion/speculation.ts +0 -991
  1061. package/src/services/SessionMemory/prompts.ts +0 -324
  1062. package/src/services/SessionMemory/sessionMemory.ts +0 -495
  1063. package/src/services/SessionMemory/sessionMemoryUtils.ts +0 -207
  1064. package/src/services/analytics/config.ts +0 -38
  1065. package/src/services/analytics/datadog.ts +0 -307
  1066. package/src/services/analytics/firstPartyEventLogger.ts +0 -449
  1067. package/src/services/analytics/firstPartyEventLoggingExporter.ts +0 -806
  1068. package/src/services/analytics/growthbook.ts +0 -1155
  1069. package/src/services/analytics/index.ts +0 -173
  1070. package/src/services/analytics/metadata.ts +0 -973
  1071. package/src/services/analytics/sink.ts +0 -114
  1072. package/src/services/analytics/sinkKillswitch.ts +0 -25
  1073. package/src/services/api/adminRequests.ts +0 -119
  1074. package/src/services/api/bootstrap.ts +0 -141
  1075. package/src/services/api/claude.ts +0 -3419
  1076. package/src/services/api/client.ts +0 -389
  1077. package/src/services/api/dumpPrompts.ts +0 -226
  1078. package/src/services/api/emptyUsage.ts +0 -22
  1079. package/src/services/api/errorUtils.ts +0 -260
  1080. package/src/services/api/errors.ts +0 -1205
  1081. package/src/services/api/filesApi.ts +0 -748
  1082. package/src/services/api/firstTokenDate.ts +0 -60
  1083. package/src/services/api/grove.ts +0 -357
  1084. package/src/services/api/logging.ts +0 -788
  1085. package/src/services/api/metricsOptOut.ts +0 -159
  1086. package/src/services/api/overageCreditGrant.ts +0 -137
  1087. package/src/services/api/promptCacheBreakDetection.ts +0 -727
  1088. package/src/services/api/referral.ts +0 -281
  1089. package/src/services/api/sessionIngress.ts +0 -514
  1090. package/src/services/api/ultrareviewQuota.ts +0 -38
  1091. package/src/services/api/usage.ts +0 -63
  1092. package/src/services/api/withRetry.ts +0 -818
  1093. package/src/services/autoDream/autoDream.ts +0 -324
  1094. package/src/services/autoDream/config.ts +0 -21
  1095. package/src/services/autoDream/consolidationLock.ts +0 -140
  1096. package/src/services/autoDream/consolidationPrompt.ts +0 -65
  1097. package/src/services/awaySummary.ts +0 -74
  1098. package/src/services/claudeAiLimits.ts +0 -515
  1099. package/src/services/claudeAiLimitsHook.ts +0 -23
  1100. package/src/services/compact/apiMicrocompact.ts +0 -153
  1101. package/src/services/compact/autoCompact.ts +0 -351
  1102. package/src/services/compact/cachedMCConfig.ts +0 -2
  1103. package/src/services/compact/cachedMicrocompact.ts +0 -2
  1104. package/src/services/compact/compact.ts +0 -1705
  1105. package/src/services/compact/compactWarningHook.ts +0 -16
  1106. package/src/services/compact/compactWarningState.ts +0 -18
  1107. package/src/services/compact/grouping.ts +0 -63
  1108. package/src/services/compact/microCompact.ts +0 -530
  1109. package/src/services/compact/postCompactCleanup.ts +0 -77
  1110. package/src/services/compact/prompt.ts +0 -374
  1111. package/src/services/compact/reactiveCompact.ts +0 -2
  1112. package/src/services/compact/sessionMemoryCompact.ts +0 -630
  1113. package/src/services/compact/snipCompact.ts +0 -2
  1114. package/src/services/compact/snipProjection.ts +0 -2
  1115. package/src/services/compact/timeBasedMCConfig.ts +0 -43
  1116. package/src/services/contextCollapse/index.ts +0 -2
  1117. package/src/services/contextCollapse/operations.ts +0 -2
  1118. package/src/services/contextCollapse/persist.ts +0 -2
  1119. package/src/services/diagnosticTracking.ts +0 -397
  1120. package/src/services/extractMemories/extractMemories.ts +0 -615
  1121. package/src/services/extractMemories/prompts.ts +0 -154
  1122. package/src/services/internalLogging.ts +0 -90
  1123. package/src/services/lsp/LSPClient.ts +0 -447
  1124. package/src/services/lsp/LSPDiagnosticRegistry.ts +0 -386
  1125. package/src/services/lsp/LSPServerInstance.ts +0 -511
  1126. package/src/services/lsp/LSPServerManager.ts +0 -420
  1127. package/src/services/lsp/config.ts +0 -79
  1128. package/src/services/lsp/manager.ts +0 -289
  1129. package/src/services/lsp/passiveFeedback.ts +0 -328
  1130. package/src/services/lsp/types.ts +0 -3
  1131. package/src/services/mcp/InProcessTransport.ts +0 -63
  1132. package/src/services/mcp/MCPConnectionManager.tsx +0 -73
  1133. package/src/services/mcp/SdkControlTransport.ts +0 -136
  1134. package/src/services/mcp/auth.ts +0 -2465
  1135. package/src/services/mcp/channelAllowlist.ts +0 -76
  1136. package/src/services/mcp/channelNotification.ts +0 -316
  1137. package/src/services/mcp/channelPermissions.ts +0 -240
  1138. package/src/services/mcp/claudeai.ts +0 -164
  1139. package/src/services/mcp/client.ts +0 -3348
  1140. package/src/services/mcp/config.ts +0 -1578
  1141. package/src/services/mcp/elicitationHandler.ts +0 -313
  1142. package/src/services/mcp/envExpansion.ts +0 -38
  1143. package/src/services/mcp/headersHelper.ts +0 -138
  1144. package/src/services/mcp/mcpStringUtils.ts +0 -106
  1145. package/src/services/mcp/normalization.ts +0 -23
  1146. package/src/services/mcp/oauthPort.ts +0 -78
  1147. package/src/services/mcp/officialRegistry.ts +0 -72
  1148. package/src/services/mcp/types.ts +0 -258
  1149. package/src/services/mcp/useManageMCPConnections.ts +0 -1141
  1150. package/src/services/mcp/utils.ts +0 -575
  1151. package/src/services/mcp/vscodeSdkMcp.ts +0 -112
  1152. package/src/services/mcp/xaa.ts +0 -511
  1153. package/src/services/mcp/xaaIdpLogin.ts +0 -487
  1154. package/src/services/mcpServerApproval.tsx +0 -41
  1155. package/src/services/mockRateLimits.ts +0 -882
  1156. package/src/services/notifier.ts +0 -156
  1157. package/src/services/oauth/auth-code-listener.ts +0 -211
  1158. package/src/services/oauth/client.ts +0 -566
  1159. package/src/services/oauth/crypto.ts +0 -23
  1160. package/src/services/oauth/getOauthProfile.ts +0 -53
  1161. package/src/services/oauth/index.ts +0 -198
  1162. package/src/services/oauth/types.ts +0 -7
  1163. package/src/services/plugins/PluginInstallationManager.ts +0 -184
  1164. package/src/services/plugins/pluginCliCommands.ts +0 -344
  1165. package/src/services/plugins/pluginOperations.ts +0 -1088
  1166. package/src/services/policyLimits/index.ts +0 -663
  1167. package/src/services/policyLimits/types.ts +0 -27
  1168. package/src/services/preventSleep.ts +0 -165
  1169. package/src/services/rateLimitMessages.ts +0 -344
  1170. package/src/services/rateLimitMocking.ts +0 -144
  1171. package/src/services/remoteManagedSettings/index.ts +0 -638
  1172. package/src/services/remoteManagedSettings/securityCheck.tsx +0 -74
  1173. package/src/services/remoteManagedSettings/syncCache.ts +0 -112
  1174. package/src/services/remoteManagedSettings/syncCacheState.ts +0 -96
  1175. package/src/services/remoteManagedSettings/types.ts +0 -31
  1176. package/src/services/sessionTranscript/sessionTranscript.ts +0 -2
  1177. package/src/services/settingsSync/index.ts +0 -581
  1178. package/src/services/settingsSync/types.ts +0 -67
  1179. package/src/services/skillSearch/featureCheck.ts +0 -2
  1180. package/src/services/skillSearch/localSearch.ts +0 -2
  1181. package/src/services/skillSearch/prefetch.ts +0 -2
  1182. package/src/services/skillSearch/remoteSkillLoader.ts +0 -2
  1183. package/src/services/skillSearch/remoteSkillState.ts +0 -2
  1184. package/src/services/skillSearch/signals.ts +0 -1
  1185. package/src/services/skillSearch/telemetry.ts +0 -2
  1186. package/src/services/teamMemorySync/index.ts +0 -1256
  1187. package/src/services/teamMemorySync/secretScanner.ts +0 -324
  1188. package/src/services/teamMemorySync/teamMemSecretGuard.ts +0 -44
  1189. package/src/services/teamMemorySync/types.ts +0 -156
  1190. package/src/services/teamMemorySync/watcher.ts +0 -387
  1191. package/src/services/tips/tipHistory.ts +0 -17
  1192. package/src/services/tips/tipRegistry.ts +0 -686
  1193. package/src/services/tips/tipScheduler.ts +0 -58
  1194. package/src/services/tips/types.ts +0 -5
  1195. package/src/services/tokenEstimation.ts +0 -495
  1196. package/src/services/toolUseSummary/toolUseSummaryGenerator.ts +0 -112
  1197. package/src/services/tools/StreamingToolExecutor.ts +0 -530
  1198. package/src/services/tools/toolExecution.ts +0 -1745
  1199. package/src/services/tools/toolHooks.ts +0 -650
  1200. package/src/services/tools/toolOrchestration.ts +0 -188
  1201. package/src/services/vcr.ts +0 -406
  1202. package/src/services/voice.ts +0 -525
  1203. package/src/services/voiceKeyterms.ts +0 -106
  1204. package/src/services/voiceStreamSTT.ts +0 -544
  1205. package/src/setup.ts +0 -477
  1206. package/src/shims/bun-bundle.ts +0 -18
  1207. package/src/shims/macro.ts +0 -12
  1208. package/src/skills/bundled/batch.ts +0 -124
  1209. package/src/skills/bundled/claude-api/SKILL.md +0 -1
  1210. package/src/skills/bundled/claude-api/SKILL.md.ts +0 -1
  1211. package/src/skills/bundled/claude-api/csharp/claude-api.md +0 -1
  1212. package/src/skills/bundled/claude-api/csharp/claude-api.md.ts +0 -1
  1213. package/src/skills/bundled/claude-api/curl/examples.md +0 -1
  1214. package/src/skills/bundled/claude-api/curl/examples.md.ts +0 -1
  1215. package/src/skills/bundled/claude-api/go/claude-api.md +0 -1
  1216. package/src/skills/bundled/claude-api/go/claude-api.md.ts +0 -1
  1217. package/src/skills/bundled/claude-api/java/claude-api.md +0 -1
  1218. package/src/skills/bundled/claude-api/java/claude-api.md.ts +0 -1
  1219. package/src/skills/bundled/claude-api/php/claude-api.md +0 -1
  1220. package/src/skills/bundled/claude-api/php/claude-api.md.ts +0 -1
  1221. package/src/skills/bundled/claude-api/python/agent-sdk/README.md +0 -1
  1222. package/src/skills/bundled/claude-api/python/agent-sdk/README.md.ts +0 -1
  1223. package/src/skills/bundled/claude-api/python/agent-sdk/patterns.md +0 -1
  1224. package/src/skills/bundled/claude-api/python/agent-sdk/patterns.md.ts +0 -1
  1225. package/src/skills/bundled/claude-api/python/claude-api/README.md +0 -1
  1226. package/src/skills/bundled/claude-api/python/claude-api/README.md.ts +0 -1
  1227. package/src/skills/bundled/claude-api/python/claude-api/batches.md +0 -1
  1228. package/src/skills/bundled/claude-api/python/claude-api/batches.md.ts +0 -1
  1229. package/src/skills/bundled/claude-api/python/claude-api/files-api.md +0 -1
  1230. package/src/skills/bundled/claude-api/python/claude-api/files-api.md.ts +0 -1
  1231. package/src/skills/bundled/claude-api/python/claude-api/streaming.md +0 -1
  1232. package/src/skills/bundled/claude-api/python/claude-api/streaming.md.ts +0 -1
  1233. package/src/skills/bundled/claude-api/python/claude-api/tool-use.md +0 -1
  1234. package/src/skills/bundled/claude-api/python/claude-api/tool-use.md.ts +0 -1
  1235. package/src/skills/bundled/claude-api/ruby/claude-api.md +0 -1
  1236. package/src/skills/bundled/claude-api/ruby/claude-api.md.ts +0 -1
  1237. package/src/skills/bundled/claude-api/shared/error-codes.md +0 -1
  1238. package/src/skills/bundled/claude-api/shared/error-codes.md.ts +0 -1
  1239. package/src/skills/bundled/claude-api/shared/live-sources.md +0 -1
  1240. package/src/skills/bundled/claude-api/shared/live-sources.md.ts +0 -1
  1241. package/src/skills/bundled/claude-api/shared/models.md +0 -1
  1242. package/src/skills/bundled/claude-api/shared/models.md.ts +0 -1
  1243. package/src/skills/bundled/claude-api/shared/prompt-caching.md +0 -1
  1244. package/src/skills/bundled/claude-api/shared/prompt-caching.md.ts +0 -1
  1245. package/src/skills/bundled/claude-api/shared/tool-use-concepts.md +0 -1
  1246. package/src/skills/bundled/claude-api/shared/tool-use-concepts.md.ts +0 -1
  1247. package/src/skills/bundled/claude-api/typescript/agent-sdk/README.md +0 -1
  1248. package/src/skills/bundled/claude-api/typescript/agent-sdk/README.md.ts +0 -1
  1249. package/src/skills/bundled/claude-api/typescript/agent-sdk/patterns.md +0 -1
  1250. package/src/skills/bundled/claude-api/typescript/agent-sdk/patterns.md.ts +0 -1
  1251. package/src/skills/bundled/claude-api/typescript/claude-api/README.md +0 -1
  1252. package/src/skills/bundled/claude-api/typescript/claude-api/README.md.ts +0 -1
  1253. package/src/skills/bundled/claude-api/typescript/claude-api/batches.md +0 -1
  1254. package/src/skills/bundled/claude-api/typescript/claude-api/batches.md.ts +0 -1
  1255. package/src/skills/bundled/claude-api/typescript/claude-api/files-api.md +0 -1
  1256. package/src/skills/bundled/claude-api/typescript/claude-api/files-api.md.ts +0 -1
  1257. package/src/skills/bundled/claude-api/typescript/claude-api/streaming.md +0 -1
  1258. package/src/skills/bundled/claude-api/typescript/claude-api/streaming.md.ts +0 -1
  1259. package/src/skills/bundled/claude-api/typescript/claude-api/tool-use.md +0 -1
  1260. package/src/skills/bundled/claude-api/typescript/claude-api/tool-use.md.ts +0 -1
  1261. package/src/skills/bundled/claudeApi.ts +0 -196
  1262. package/src/skills/bundled/claudeApiContent.ts +0 -75
  1263. package/src/skills/bundled/claudeInChrome.ts +0 -34
  1264. package/src/skills/bundled/debug.ts +0 -103
  1265. package/src/skills/bundled/index.ts +0 -79
  1266. package/src/skills/bundled/keybindings.ts +0 -339
  1267. package/src/skills/bundled/loop.ts +0 -92
  1268. package/src/skills/bundled/loremIpsum.ts +0 -282
  1269. package/src/skills/bundled/remember.ts +0 -82
  1270. package/src/skills/bundled/scheduleRemoteAgents.ts +0 -447
  1271. package/src/skills/bundled/simplify.ts +0 -69
  1272. package/src/skills/bundled/skillify.ts +0 -197
  1273. package/src/skills/bundled/stuck.ts +0 -79
  1274. package/src/skills/bundled/updateConfig.ts +0 -475
  1275. package/src/skills/bundled/verify/SKILL.md +0 -1
  1276. package/src/skills/bundled/verify/SKILL.md.ts +0 -1
  1277. package/src/skills/bundled/verify/examples/cli.md +0 -1
  1278. package/src/skills/bundled/verify/examples/cli.md.ts +0 -1
  1279. package/src/skills/bundled/verify/examples/server.md +0 -1
  1280. package/src/skills/bundled/verify/examples/server.md.ts +0 -1
  1281. package/src/skills/bundled/verify.ts +0 -30
  1282. package/src/skills/bundled/verifyContent.ts +0 -13
  1283. package/src/skills/bundledSkills.ts +0 -220
  1284. package/src/skills/loadSkillsDir.ts +0 -1086
  1285. package/src/skills/mcpSkillBuilders.ts +0 -44
  1286. package/src/skills/mcpSkills.ts +0 -2
  1287. package/src/ssh/SSHSessionManager.ts +0 -1
  1288. package/src/ssh/createSSHSession.ts +0 -1
  1289. package/src/state/AppState.tsx +0 -200
  1290. package/src/state/AppStateStore.ts +0 -569
  1291. package/src/state/onChangeAppState.ts +0 -171
  1292. package/src/state/selectors.ts +0 -76
  1293. package/src/state/store.ts +0 -34
  1294. package/src/state/teammateViewHelpers.ts +0 -141
  1295. package/src/tasks/DreamTask/DreamTask.ts +0 -157
  1296. package/src/tasks/InProcessTeammateTask/InProcessTeammateTask.tsx +0 -126
  1297. package/src/tasks/InProcessTeammateTask/types.ts +0 -121
  1298. package/src/tasks/LocalAgentTask/LocalAgentTask.tsx +0 -683
  1299. package/src/tasks/LocalMainSessionTask.ts +0 -479
  1300. package/src/tasks/LocalShellTask/LocalShellTask.tsx +0 -523
  1301. package/src/tasks/LocalShellTask/guards.ts +0 -41
  1302. package/src/tasks/LocalShellTask/killShellTasks.ts +0 -76
  1303. package/src/tasks/LocalWorkflowTask/LocalWorkflowTask.ts +0 -1
  1304. package/src/tasks/MonitorMcpTask/MonitorMcpTask.ts +0 -1
  1305. package/src/tasks/RemoteAgentTask/RemoteAgentTask.tsx +0 -856
  1306. package/src/tasks/pillLabel.ts +0 -82
  1307. package/src/tasks/stopTask.ts +0 -100
  1308. package/src/tasks/types.ts +0 -46
  1309. package/src/tasks.ts +0 -39
  1310. package/src/tools/AgentTool/AgentTool.tsx +0 -1398
  1311. package/src/tools/AgentTool/UI.tsx +0 -872
  1312. package/src/tools/AgentTool/agentColorManager.ts +0 -66
  1313. package/src/tools/AgentTool/agentDisplay.ts +0 -104
  1314. package/src/tools/AgentTool/agentMemory.ts +0 -177
  1315. package/src/tools/AgentTool/agentMemorySnapshot.ts +0 -197
  1316. package/src/tools/AgentTool/agentToolUtils.ts +0 -686
  1317. package/src/tools/AgentTool/built-in/claudeCodeGuideAgent.ts +0 -205
  1318. package/src/tools/AgentTool/built-in/exploreAgent.ts +0 -87
  1319. package/src/tools/AgentTool/built-in/generalPurposeAgent.ts +0 -34
  1320. package/src/tools/AgentTool/built-in/planAgent.ts +0 -92
  1321. package/src/tools/AgentTool/built-in/statuslineSetup.ts +0 -144
  1322. package/src/tools/AgentTool/built-in/verificationAgent.ts +0 -152
  1323. package/src/tools/AgentTool/built-in/warpGrepAgent.ts +0 -67
  1324. package/src/tools/AgentTool/builtInAgents.ts +0 -73
  1325. package/src/tools/AgentTool/constants.ts +0 -12
  1326. package/src/tools/AgentTool/forkSubagent.ts +0 -210
  1327. package/src/tools/AgentTool/loadAgentsDir.ts +0 -755
  1328. package/src/tools/AgentTool/prompt.ts +0 -288
  1329. package/src/tools/AgentTool/resumeAgent.ts +0 -265
  1330. package/src/tools/AgentTool/runAgent.ts +0 -973
  1331. package/src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx +0 -266
  1332. package/src/tools/AskUserQuestionTool/prompt.ts +0 -44
  1333. package/src/tools/BashTool/BashTool.tsx +0 -1144
  1334. package/src/tools/BashTool/BashToolResultMessage.tsx +0 -191
  1335. package/src/tools/BashTool/UI.tsx +0 -185
  1336. package/src/tools/BashTool/bashCommandHelpers.ts +0 -265
  1337. package/src/tools/BashTool/bashPermissions.ts +0 -2621
  1338. package/src/tools/BashTool/bashSecurity.ts +0 -2592
  1339. package/src/tools/BashTool/commandSemantics.ts +0 -140
  1340. package/src/tools/BashTool/commentLabel.ts +0 -13
  1341. package/src/tools/BashTool/destructiveCommandWarning.ts +0 -102
  1342. package/src/tools/BashTool/modeValidation.ts +0 -115
  1343. package/src/tools/BashTool/pathValidation.ts +0 -1303
  1344. package/src/tools/BashTool/prompt.ts +0 -369
  1345. package/src/tools/BashTool/readOnlyValidation.ts +0 -1990
  1346. package/src/tools/BashTool/sedEditParser.ts +0 -322
  1347. package/src/tools/BashTool/sedValidation.ts +0 -684
  1348. package/src/tools/BashTool/shouldUseSandbox.ts +0 -153
  1349. package/src/tools/BashTool/toolName.ts +0 -2
  1350. package/src/tools/BashTool/utils.ts +0 -223
  1351. package/src/tools/BriefTool/BriefTool.ts +0 -204
  1352. package/src/tools/BriefTool/UI.tsx +0 -101
  1353. package/src/tools/BriefTool/attachments.ts +0 -110
  1354. package/src/tools/BriefTool/prompt.ts +0 -22
  1355. package/src/tools/BriefTool/upload.ts +0 -174
  1356. package/src/tools/ConfigTool/ConfigTool.ts +0 -467
  1357. package/src/tools/ConfigTool/UI.tsx +0 -38
  1358. package/src/tools/ConfigTool/constants.ts +0 -1
  1359. package/src/tools/ConfigTool/prompt.ts +0 -93
  1360. package/src/tools/ConfigTool/supportedSettings.ts +0 -211
  1361. package/src/tools/DiscoverSkillsTool/prompt.ts +0 -2
  1362. package/src/tools/EnterPlanModeTool/EnterPlanModeTool.ts +0 -126
  1363. package/src/tools/EnterPlanModeTool/UI.tsx +0 -33
  1364. package/src/tools/EnterPlanModeTool/constants.ts +0 -1
  1365. package/src/tools/EnterPlanModeTool/prompt.ts +0 -170
  1366. package/src/tools/EnterWorktreeTool/EnterWorktreeTool.ts +0 -127
  1367. package/src/tools/EnterWorktreeTool/UI.tsx +0 -20
  1368. package/src/tools/EnterWorktreeTool/constants.ts +0 -1
  1369. package/src/tools/EnterWorktreeTool/prompt.ts +0 -30
  1370. package/src/tools/ExitPlanModeTool/ExitPlanModeV2Tool.ts +0 -493
  1371. package/src/tools/ExitPlanModeTool/UI.tsx +0 -82
  1372. package/src/tools/ExitPlanModeTool/constants.ts +0 -2
  1373. package/src/tools/ExitPlanModeTool/prompt.ts +0 -29
  1374. package/src/tools/ExitWorktreeTool/ExitWorktreeTool.ts +0 -329
  1375. package/src/tools/ExitWorktreeTool/UI.tsx +0 -25
  1376. package/src/tools/ExitWorktreeTool/constants.ts +0 -1
  1377. package/src/tools/ExitWorktreeTool/prompt.ts +0 -32
  1378. package/src/tools/FileEditTool/FileEditTool.ts +0 -625
  1379. package/src/tools/FileEditTool/UI.tsx +0 -289
  1380. package/src/tools/FileEditTool/constants.ts +0 -11
  1381. package/src/tools/FileEditTool/prompt.ts +0 -28
  1382. package/src/tools/FileEditTool/types.ts +0 -85
  1383. package/src/tools/FileEditTool/utils.ts +0 -775
  1384. package/src/tools/FileReadTool/FileReadTool.ts +0 -1183
  1385. package/src/tools/FileReadTool/UI.tsx +0 -185
  1386. package/src/tools/FileReadTool/imageProcessor.ts +0 -94
  1387. package/src/tools/FileReadTool/limits.ts +0 -92
  1388. package/src/tools/FileReadTool/prompt.ts +0 -49
  1389. package/src/tools/FileWriteTool/FileWriteTool.ts +0 -434
  1390. package/src/tools/FileWriteTool/UI.tsx +0 -405
  1391. package/src/tools/FileWriteTool/prompt.ts +0 -18
  1392. package/src/tools/GlobTool/GlobTool.ts +0 -198
  1393. package/src/tools/GlobTool/UI.tsx +0 -63
  1394. package/src/tools/GlobTool/prompt.ts +0 -7
  1395. package/src/tools/GrepTool/GrepTool.ts +0 -577
  1396. package/src/tools/GrepTool/UI.tsx +0 -201
  1397. package/src/tools/GrepTool/prompt.ts +0 -18
  1398. package/src/tools/LSPTool/LSPTool.ts +0 -860
  1399. package/src/tools/LSPTool/UI.tsx +0 -228
  1400. package/src/tools/LSPTool/formatters.ts +0 -592
  1401. package/src/tools/LSPTool/prompt.ts +0 -21
  1402. package/src/tools/LSPTool/schemas.ts +0 -215
  1403. package/src/tools/LSPTool/symbolContext.ts +0 -90
  1404. package/src/tools/ListMcpResourcesTool/ListMcpResourcesTool.ts +0 -123
  1405. package/src/tools/ListMcpResourcesTool/UI.tsx +0 -29
  1406. package/src/tools/ListMcpResourcesTool/prompt.ts +0 -20
  1407. package/src/tools/MCPTool/MCPTool.ts +0 -77
  1408. package/src/tools/MCPTool/UI.tsx +0 -403
  1409. package/src/tools/MCPTool/classifyForCollapse.ts +0 -604
  1410. package/src/tools/MCPTool/prompt.ts +0 -3
  1411. package/src/tools/McpAuthTool/McpAuthTool.ts +0 -215
  1412. package/src/tools/MonitorTool/MonitorTool.ts +0 -2
  1413. package/src/tools/NotebookEditTool/NotebookEditTool.ts +0 -490
  1414. package/src/tools/NotebookEditTool/UI.tsx +0 -93
  1415. package/src/tools/NotebookEditTool/constants.ts +0 -2
  1416. package/src/tools/NotebookEditTool/prompt.ts +0 -3
  1417. package/src/tools/OverflowTestTool/OverflowTestTool.ts +0 -2
  1418. package/src/tools/PowerShellTool/PowerShellTool.tsx +0 -1001
  1419. package/src/tools/PowerShellTool/UI.tsx +0 -131
  1420. package/src/tools/PowerShellTool/clmTypes.ts +0 -211
  1421. package/src/tools/PowerShellTool/commandSemantics.ts +0 -142
  1422. package/src/tools/PowerShellTool/commonParameters.ts +0 -30
  1423. package/src/tools/PowerShellTool/destructiveCommandWarning.ts +0 -109
  1424. package/src/tools/PowerShellTool/gitSafety.ts +0 -176
  1425. package/src/tools/PowerShellTool/modeValidation.ts +0 -404
  1426. package/src/tools/PowerShellTool/pathValidation.ts +0 -2049
  1427. package/src/tools/PowerShellTool/powershellPermissions.ts +0 -1648
  1428. package/src/tools/PowerShellTool/powershellSecurity.ts +0 -1090
  1429. package/src/tools/PowerShellTool/prompt.ts +0 -145
  1430. package/src/tools/PowerShellTool/readOnlyValidation.ts +0 -1823
  1431. package/src/tools/PowerShellTool/toolName.ts +0 -2
  1432. package/src/tools/REPLTool/constants.ts +0 -46
  1433. package/src/tools/REPLTool/primitiveTools.ts +0 -39
  1434. package/src/tools/ReadMcpResourceTool/ReadMcpResourceTool.ts +0 -158
  1435. package/src/tools/ReadMcpResourceTool/UI.tsx +0 -37
  1436. package/src/tools/ReadMcpResourceTool/prompt.ts +0 -16
  1437. package/src/tools/RemoteTriggerTool/RemoteTriggerTool.ts +0 -161
  1438. package/src/tools/RemoteTriggerTool/UI.tsx +0 -17
  1439. package/src/tools/RemoteTriggerTool/prompt.ts +0 -15
  1440. package/src/tools/ReviewArtifactTool/ReviewArtifactTool.ts +0 -2
  1441. package/src/tools/ScheduleCronTool/CronCreateTool.ts +0 -157
  1442. package/src/tools/ScheduleCronTool/CronDeleteTool.ts +0 -95
  1443. package/src/tools/ScheduleCronTool/CronListTool.ts +0 -97
  1444. package/src/tools/ScheduleCronTool/UI.tsx +0 -60
  1445. package/src/tools/ScheduleCronTool/prompt.ts +0 -135
  1446. package/src/tools/SendMessageTool/SendMessageTool.ts +0 -917
  1447. package/src/tools/SendMessageTool/UI.tsx +0 -31
  1448. package/src/tools/SendMessageTool/constants.ts +0 -1
  1449. package/src/tools/SendMessageTool/prompt.ts +0 -49
  1450. package/src/tools/SendUserFileTool/prompt.ts +0 -2
  1451. package/src/tools/SkillTool/SkillTool.ts +0 -1108
  1452. package/src/tools/SkillTool/UI.tsx +0 -128
  1453. package/src/tools/SkillTool/constants.ts +0 -1
  1454. package/src/tools/SkillTool/prompt.ts +0 -241
  1455. package/src/tools/SleepTool/prompt.ts +0 -17
  1456. package/src/tools/SnipTool/prompt.ts +0 -2
  1457. package/src/tools/SyntheticOutputTool/SyntheticOutputTool.ts +0 -163
  1458. package/src/tools/TaskCreateTool/TaskCreateTool.ts +0 -138
  1459. package/src/tools/TaskCreateTool/constants.ts +0 -1
  1460. package/src/tools/TaskCreateTool/prompt.ts +0 -56
  1461. package/src/tools/TaskGetTool/TaskGetTool.ts +0 -128
  1462. package/src/tools/TaskGetTool/constants.ts +0 -1
  1463. package/src/tools/TaskGetTool/prompt.ts +0 -24
  1464. package/src/tools/TaskListTool/TaskListTool.ts +0 -116
  1465. package/src/tools/TaskListTool/constants.ts +0 -1
  1466. package/src/tools/TaskListTool/prompt.ts +0 -49
  1467. package/src/tools/TaskOutputTool/TaskOutputTool.tsx +0 -584
  1468. package/src/tools/TaskOutputTool/constants.ts +0 -1
  1469. package/src/tools/TaskStopTool/TaskStopTool.ts +0 -131
  1470. package/src/tools/TaskStopTool/UI.tsx +0 -41
  1471. package/src/tools/TaskStopTool/prompt.ts +0 -8
  1472. package/src/tools/TaskUpdateTool/TaskUpdateTool.ts +0 -406
  1473. package/src/tools/TaskUpdateTool/constants.ts +0 -1
  1474. package/src/tools/TaskUpdateTool/prompt.ts +0 -77
  1475. package/src/tools/TeamCreateTool/TeamCreateTool.ts +0 -240
  1476. package/src/tools/TeamCreateTool/UI.tsx +0 -6
  1477. package/src/tools/TeamCreateTool/constants.ts +0 -1
  1478. package/src/tools/TeamCreateTool/prompt.ts +0 -113
  1479. package/src/tools/TeamDeleteTool/TeamDeleteTool.ts +0 -139
  1480. package/src/tools/TeamDeleteTool/UI.tsx +0 -20
  1481. package/src/tools/TeamDeleteTool/constants.ts +0 -1
  1482. package/src/tools/TeamDeleteTool/prompt.ts +0 -16
  1483. package/src/tools/TerminalCaptureTool/prompt.ts +0 -2
  1484. package/src/tools/TodoWriteTool/TodoWriteTool.ts +0 -115
  1485. package/src/tools/TodoWriteTool/constants.ts +0 -1
  1486. package/src/tools/TodoWriteTool/prompt.ts +0 -184
  1487. package/src/tools/ToolSearchTool/ToolSearchTool.ts +0 -471
  1488. package/src/tools/ToolSearchTool/constants.ts +0 -1
  1489. package/src/tools/ToolSearchTool/prompt.ts +0 -121
  1490. package/src/tools/TungstenTool/TungstenLiveMonitor.ts +0 -3
  1491. package/src/tools/TungstenTool/TungstenLiveMonitor.tsx +0 -6
  1492. package/src/tools/TungstenTool/TungstenTool.ts +0 -26
  1493. package/src/tools/VerifyPlanExecutionTool/constants.ts +0 -2
  1494. package/src/tools/WarpGrepTool/WarpGrepTool.ts +0 -106
  1495. package/src/tools/WebBrowserTool/WebBrowserPanel.ts +0 -2
  1496. package/src/tools/WebFetchTool/UI.tsx +0 -72
  1497. package/src/tools/WebFetchTool/WebFetchTool.ts +0 -318
  1498. package/src/tools/WebFetchTool/preapproved.ts +0 -166
  1499. package/src/tools/WebFetchTool/prompt.ts +0 -46
  1500. package/src/tools/WebFetchTool/utils.ts +0 -530
  1501. package/src/tools/WebSearchTool/UI.tsx +0 -101
  1502. package/src/tools/WebSearchTool/WebSearchTool.ts +0 -435
  1503. package/src/tools/WebSearchTool/prompt.ts +0 -34
  1504. package/src/tools/WorkflowTool/WorkflowPermissionRequest.ts +0 -2
  1505. package/src/tools/WorkflowTool/WorkflowTool.ts +0 -2
  1506. package/src/tools/WorkflowTool/constants.ts +0 -1
  1507. package/src/tools/WorkflowTool/createWorkflowCommand.ts +0 -2
  1508. package/src/tools/shared/gitOperationTracking.ts +0 -277
  1509. package/src/tools/shared/spawnMultiAgent.ts +0 -1093
  1510. package/src/tools/testing/TestingPermissionTool.tsx +0 -74
  1511. package/src/tools/utils.ts +0 -40
  1512. package/src/tools.ts +0 -394
  1513. package/src/types/command.ts +0 -216
  1514. package/src/types/connectorText.ts +0 -3
  1515. package/src/types/declarations/bun-globals.d.ts +0 -19
  1516. package/src/types/declarations/external-modules.d.ts +0 -120
  1517. package/src/types/declarations/react-compiler.d.ts +0 -3
  1518. package/src/types/fileSuggestion.ts +0 -1
  1519. package/src/types/generated/events_mono/claude_code/v1/claude_code_internal_event.ts +0 -865
  1520. package/src/types/generated/events_mono/common/v1/auth.ts +0 -100
  1521. package/src/types/generated/events_mono/growthbook/v1/growthbook_experiment_event.ts +0 -223
  1522. package/src/types/generated/google/protobuf/timestamp.ts +0 -187
  1523. package/src/types/hooks.ts +0 -290
  1524. package/src/types/ids.ts +0 -44
  1525. package/src/types/logs.ts +0 -330
  1526. package/src/types/message.ts +0 -40
  1527. package/src/types/messageQueueTypes.ts +0 -2
  1528. package/src/types/notebook.ts +0 -7
  1529. package/src/types/permissions.ts +0 -441
  1530. package/src/types/plugin.ts +0 -363
  1531. package/src/types/statusLine.ts +0 -1
  1532. package/src/types/textInputTypes.ts +0 -387
  1533. package/src/types/tools.ts +0 -11
  1534. package/src/types/utils.ts +0 -2
  1535. package/src/upstreamproxy/relay.ts +0 -455
  1536. package/src/upstreamproxy/upstreamproxy.ts +0 -285
  1537. package/src/utils/CircularBuffer.ts +0 -84
  1538. package/src/utils/Cursor.ts +0 -1530
  1539. package/src/utils/QueryGuard.ts +0 -121
  1540. package/src/utils/Shell.ts +0 -474
  1541. package/src/utils/ShellCommand.ts +0 -465
  1542. package/src/utils/abortController.ts +0 -99
  1543. package/src/utils/activityManager.ts +0 -164
  1544. package/src/utils/advisor.ts +0 -145
  1545. package/src/utils/agentContext.ts +0 -178
  1546. package/src/utils/agentId.ts +0 -99
  1547. package/src/utils/agentSwarmsEnabled.ts +0 -44
  1548. package/src/utils/agenticSessionSearch.ts +0 -307
  1549. package/src/utils/analyzeContext.ts +0 -1382
  1550. package/src/utils/ansiToPng.ts +0 -334
  1551. package/src/utils/ansiToSvg.ts +0 -272
  1552. package/src/utils/api.ts +0 -718
  1553. package/src/utils/apiPreconnect.ts +0 -71
  1554. package/src/utils/appleTerminalBackup.ts +0 -124
  1555. package/src/utils/argumentSubstitution.ts +0 -145
  1556. package/src/utils/array.ts +0 -13
  1557. package/src/utils/asciicast.ts +0 -239
  1558. package/src/utils/attachments.ts +0 -3997
  1559. package/src/utils/attribution.ts +0 -393
  1560. package/src/utils/attributionHooks.ts +0 -2
  1561. package/src/utils/attributionTrailer.ts +0 -2
  1562. package/src/utils/auth.ts +0 -2002
  1563. package/src/utils/authFileDescriptor.ts +0 -196
  1564. package/src/utils/authPortable.ts +0 -19
  1565. package/src/utils/autoModeDenials.ts +0 -26
  1566. package/src/utils/autoRunIssue.tsx +0 -122
  1567. package/src/utils/autoUpdater.ts +0 -561
  1568. package/src/utils/aws.ts +0 -74
  1569. package/src/utils/awsAuthStatusManager.ts +0 -81
  1570. package/src/utils/background/remote/preconditions.ts +0 -235
  1571. package/src/utils/background/remote/remoteSession.ts +0 -98
  1572. package/src/utils/backgroundHousekeeping.ts +0 -94
  1573. package/src/utils/bash/ParsedCommand.ts +0 -318
  1574. package/src/utils/bash/ShellSnapshot.ts +0 -582
  1575. package/src/utils/bash/ast.ts +0 -2679
  1576. package/src/utils/bash/bashParser.ts +0 -4436
  1577. package/src/utils/bash/bashPipeCommand.ts +0 -294
  1578. package/src/utils/bash/commands.ts +0 -1339
  1579. package/src/utils/bash/heredoc.ts +0 -733
  1580. package/src/utils/bash/parser.ts +0 -230
  1581. package/src/utils/bash/prefix.ts +0 -204
  1582. package/src/utils/bash/registry.ts +0 -53
  1583. package/src/utils/bash/shellCompletion.ts +0 -259
  1584. package/src/utils/bash/shellPrefix.ts +0 -28
  1585. package/src/utils/bash/shellQuote.ts +0 -304
  1586. package/src/utils/bash/shellQuoting.ts +0 -128
  1587. package/src/utils/bash/specs/alias.ts +0 -14
  1588. package/src/utils/bash/specs/index.ts +0 -18
  1589. package/src/utils/bash/specs/nohup.ts +0 -13
  1590. package/src/utils/bash/specs/pyright.ts +0 -91
  1591. package/src/utils/bash/specs/sleep.ts +0 -13
  1592. package/src/utils/bash/specs/srun.ts +0 -31
  1593. package/src/utils/bash/specs/time.ts +0 -13
  1594. package/src/utils/bash/specs/timeout.ts +0 -20
  1595. package/src/utils/bash/treeSitterAnalysis.ts +0 -506
  1596. package/src/utils/betas.ts +0 -434
  1597. package/src/utils/billing.ts +0 -78
  1598. package/src/utils/binaryCheck.ts +0 -53
  1599. package/src/utils/browser.ts +0 -68
  1600. package/src/utils/bufferedWriter.ts +0 -100
  1601. package/src/utils/bundledMode.ts +0 -22
  1602. package/src/utils/caCerts.ts +0 -115
  1603. package/src/utils/caCertsConfig.ts +0 -88
  1604. package/src/utils/cachePaths.ts +0 -38
  1605. package/src/utils/ccshareResume.ts +0 -2
  1606. package/src/utils/classifierApprovals.ts +0 -88
  1607. package/src/utils/classifierApprovalsHook.ts +0 -17
  1608. package/src/utils/claudeCodeHints.ts +0 -193
  1609. package/src/utils/claudeDesktop.ts +0 -152
  1610. package/src/utils/claudeInChrome/chromeNativeHost.ts +0 -527
  1611. package/src/utils/claudeInChrome/common.ts +0 -540
  1612. package/src/utils/claudeInChrome/mcpServer.ts +0 -293
  1613. package/src/utils/claudeInChrome/prompt.ts +0 -83
  1614. package/src/utils/claudeInChrome/setup.ts +0 -400
  1615. package/src/utils/claudeInChrome/setupPortable.ts +0 -233
  1616. package/src/utils/claudeInChrome/toolRendering.tsx +0 -262
  1617. package/src/utils/claudemd.ts +0 -1479
  1618. package/src/utils/cleanup.ts +0 -602
  1619. package/src/utils/cleanupRegistry.ts +0 -25
  1620. package/src/utils/cliArgs.ts +0 -60
  1621. package/src/utils/cliHighlight.ts +0 -54
  1622. package/src/utils/codeIndexing.ts +0 -206
  1623. package/src/utils/collapseBackgroundBashNotifications.ts +0 -84
  1624. package/src/utils/collapseHookSummaries.ts +0 -59
  1625. package/src/utils/collapseReadSearch.ts +0 -1109
  1626. package/src/utils/collapseTeammateShutdowns.ts +0 -55
  1627. package/src/utils/combinedAbortSignal.ts +0 -47
  1628. package/src/utils/commandLifecycle.ts +0 -21
  1629. package/src/utils/commitAttribution.ts +0 -961
  1630. package/src/utils/completionCache.ts +0 -166
  1631. package/src/utils/computerUse/appNames.ts +0 -196
  1632. package/src/utils/computerUse/cleanup.ts +0 -86
  1633. package/src/utils/computerUse/common.ts +0 -61
  1634. package/src/utils/computerUse/computerUseLock.ts +0 -215
  1635. package/src/utils/computerUse/drainRunLoop.ts +0 -79
  1636. package/src/utils/computerUse/escHotkey.ts +0 -54
  1637. package/src/utils/computerUse/executor.ts +0 -658
  1638. package/src/utils/computerUse/gates.ts +0 -72
  1639. package/src/utils/computerUse/hostAdapter.ts +0 -69
  1640. package/src/utils/computerUse/inputLoader.ts +0 -30
  1641. package/src/utils/computerUse/mcpServer.ts +0 -106
  1642. package/src/utils/computerUse/setup.ts +0 -53
  1643. package/src/utils/computerUse/swiftLoader.ts +0 -23
  1644. package/src/utils/computerUse/toolRendering.tsx +0 -125
  1645. package/src/utils/computerUse/wrapper.tsx +0 -336
  1646. package/src/utils/concurrentSessions.ts +0 -204
  1647. package/src/utils/config.ts +0 -1817
  1648. package/src/utils/configConstants.ts +0 -21
  1649. package/src/utils/contentArray.ts +0 -51
  1650. package/src/utils/context.ts +0 -221
  1651. package/src/utils/contextAnalysis.ts +0 -272
  1652. package/src/utils/contextSuggestions.ts +0 -235
  1653. package/src/utils/controlMessageCompat.ts +0 -32
  1654. package/src/utils/conversationRecovery.ts +0 -597
  1655. package/src/utils/cron.ts +0 -308
  1656. package/src/utils/cronJitterConfig.ts +0 -75
  1657. package/src/utils/cronScheduler.ts +0 -565
  1658. package/src/utils/cronTasks.ts +0 -458
  1659. package/src/utils/cronTasksLock.ts +0 -195
  1660. package/src/utils/crossProjectResume.ts +0 -75
  1661. package/src/utils/crypto.ts +0 -13
  1662. package/src/utils/cwd.ts +0 -32
  1663. package/src/utils/debug.ts +0 -268
  1664. package/src/utils/debugFilter.ts +0 -157
  1665. package/src/utils/deepLink/banner.ts +0 -123
  1666. package/src/utils/deepLink/parseDeepLink.ts +0 -170
  1667. package/src/utils/deepLink/protocolHandler.ts +0 -136
  1668. package/src/utils/deepLink/registerProtocol.ts +0 -348
  1669. package/src/utils/deepLink/terminalLauncher.ts +0 -557
  1670. package/src/utils/deepLink/terminalPreference.ts +0 -54
  1671. package/src/utils/desktopDeepLink.ts +0 -236
  1672. package/src/utils/detectRepository.ts +0 -178
  1673. package/src/utils/diagLogs.ts +0 -94
  1674. package/src/utils/diff.ts +0 -177
  1675. package/src/utils/directMemberMessage.ts +0 -69
  1676. package/src/utils/displayTags.ts +0 -51
  1677. package/src/utils/doctorContextWarnings.ts +0 -265
  1678. package/src/utils/doctorDiagnostic.ts +0 -625
  1679. package/src/utils/dxt/helpers.ts +0 -88
  1680. package/src/utils/dxt/zip.ts +0 -226
  1681. package/src/utils/earlyInput.ts +0 -191
  1682. package/src/utils/editor.ts +0 -183
  1683. package/src/utils/effort.ts +0 -329
  1684. package/src/utils/embeddedTools.ts +0 -29
  1685. package/src/utils/env.ts +0 -347
  1686. package/src/utils/envDynamic.ts +0 -151
  1687. package/src/utils/envUtils.ts +0 -183
  1688. package/src/utils/envValidation.ts +0 -38
  1689. package/src/utils/errorLogSink.ts +0 -235
  1690. package/src/utils/errors.ts +0 -238
  1691. package/src/utils/eventLoopStallDetector.ts +0 -2
  1692. package/src/utils/exampleCommands.ts +0 -184
  1693. package/src/utils/execFileNoThrow.ts +0 -150
  1694. package/src/utils/execFileNoThrowPortable.ts +0 -89
  1695. package/src/utils/execSyncWrapper.ts +0 -38
  1696. package/src/utils/exportRenderer.tsx +0 -98
  1697. package/src/utils/extraUsage.ts +0 -23
  1698. package/src/utils/fastMode.ts +0 -532
  1699. package/src/utils/file.ts +0 -584
  1700. package/src/utils/fileHistory.ts +0 -1115
  1701. package/src/utils/fileOperationAnalytics.ts +0 -71
  1702. package/src/utils/filePersistence/filePersistence.ts +0 -287
  1703. package/src/utils/filePersistence/outputsScanner.ts +0 -126
  1704. package/src/utils/filePersistence/types.ts +0 -33
  1705. package/src/utils/fileRead.ts +0 -102
  1706. package/src/utils/fileReadCache.ts +0 -96
  1707. package/src/utils/fileStateCache.ts +0 -142
  1708. package/src/utils/findExecutable.ts +0 -17
  1709. package/src/utils/fingerprint.ts +0 -76
  1710. package/src/utils/forkedAgent.ts +0 -689
  1711. package/src/utils/format.ts +0 -308
  1712. package/src/utils/formatBriefTimestamp.ts +0 -81
  1713. package/src/utils/fpsTracker.ts +0 -47
  1714. package/src/utils/frontmatterParser.ts +0 -370
  1715. package/src/utils/fsOperations.ts +0 -770
  1716. package/src/utils/fullscreen.ts +0 -202
  1717. package/src/utils/generatedFiles.ts +0 -136
  1718. package/src/utils/generators.ts +0 -88
  1719. package/src/utils/genericProcessUtils.ts +0 -184
  1720. package/src/utils/getWorktreePaths.ts +0 -70
  1721. package/src/utils/getWorktreePathsPortable.ts +0 -27
  1722. package/src/utils/ghPrStatus.ts +0 -106
  1723. package/src/utils/git/gitConfigParser.ts +0 -277
  1724. package/src/utils/git/gitFilesystem.ts +0 -699
  1725. package/src/utils/git/gitignore.ts +0 -99
  1726. package/src/utils/git.ts +0 -926
  1727. package/src/utils/gitDiff.ts +0 -532
  1728. package/src/utils/gitSettings.ts +0 -18
  1729. package/src/utils/github/ghAuthStatus.ts +0 -29
  1730. package/src/utils/githubRepoPathMapping.ts +0 -162
  1731. package/src/utils/glob.ts +0 -130
  1732. package/src/utils/gracefulShutdown.ts +0 -529
  1733. package/src/utils/groupToolUses.ts +0 -182
  1734. package/src/utils/handlePromptSubmit.ts +0 -610
  1735. package/src/utils/hash.ts +0 -46
  1736. package/src/utils/headlessProfiler.ts +0 -178
  1737. package/src/utils/heapDumpService.ts +0 -303
  1738. package/src/utils/heatmap.ts +0 -198
  1739. package/src/utils/highlightMatch.tsx +0 -28
  1740. package/src/utils/hooks/AsyncHookRegistry.ts +0 -309
  1741. package/src/utils/hooks/apiQueryHookHelper.ts +0 -141
  1742. package/src/utils/hooks/execAgentHook.ts +0 -339
  1743. package/src/utils/hooks/execHttpHook.ts +0 -242
  1744. package/src/utils/hooks/execPromptHook.ts +0 -211
  1745. package/src/utils/hooks/fileChangedWatcher.ts +0 -191
  1746. package/src/utils/hooks/hookEvents.ts +0 -192
  1747. package/src/utils/hooks/hookHelpers.ts +0 -83
  1748. package/src/utils/hooks/hooksConfigManager.ts +0 -400
  1749. package/src/utils/hooks/hooksConfigSnapshot.ts +0 -133
  1750. package/src/utils/hooks/hooksSettings.ts +0 -271
  1751. package/src/utils/hooks/postSamplingHooks.ts +0 -70
  1752. package/src/utils/hooks/registerFrontmatterHooks.ts +0 -67
  1753. package/src/utils/hooks/registerSkillHooks.ts +0 -64
  1754. package/src/utils/hooks/sessionHooks.ts +0 -447
  1755. package/src/utils/hooks/skillImprovement.ts +0 -267
  1756. package/src/utils/hooks/ssrfGuard.ts +0 -294
  1757. package/src/utils/hooks.ts +0 -5022
  1758. package/src/utils/horizontalScroll.ts +0 -137
  1759. package/src/utils/http.ts +0 -136
  1760. package/src/utils/hyperlink.ts +0 -39
  1761. package/src/utils/iTermBackup.ts +0 -73
  1762. package/src/utils/ide.ts +0 -1494
  1763. package/src/utils/idePathConversion.ts +0 -90
  1764. package/src/utils/idleTimeout.ts +0 -53
  1765. package/src/utils/imagePaste.ts +0 -416
  1766. package/src/utils/imageResizer.ts +0 -880
  1767. package/src/utils/imageStore.ts +0 -167
  1768. package/src/utils/imageValidation.ts +0 -104
  1769. package/src/utils/immediateCommand.ts +0 -15
  1770. package/src/utils/inProcessTeammateHelpers.ts +0 -102
  1771. package/src/utils/ink.ts +0 -26
  1772. package/src/utils/intl.ts +0 -94
  1773. package/src/utils/jetbrains.ts +0 -191
  1774. package/src/utils/json.ts +0 -277
  1775. package/src/utils/jsonRead.ts +0 -16
  1776. package/src/utils/keyboardShortcuts.ts +0 -14
  1777. package/src/utils/lazySchema.ts +0 -8
  1778. package/src/utils/listSessionsImpl.ts +0 -454
  1779. package/src/utils/localInstaller.ts +0 -162
  1780. package/src/utils/lockfile.ts +0 -43
  1781. package/src/utils/log.ts +0 -362
  1782. package/src/utils/logoV2Utils.ts +0 -350
  1783. package/src/utils/mailbox.ts +0 -73
  1784. package/src/utils/managedEnv.ts +0 -199
  1785. package/src/utils/managedEnvConstants.ts +0 -191
  1786. package/src/utils/markdown.ts +0 -381
  1787. package/src/utils/markdownConfigLoader.ts +0 -600
  1788. package/src/utils/mcp/dateTimeParser.ts +0 -121
  1789. package/src/utils/mcp/elicitationValidation.ts +0 -336
  1790. package/src/utils/mcpInstructionsDelta.ts +0 -130
  1791. package/src/utils/mcpOutputStorage.ts +0 -189
  1792. package/src/utils/mcpValidation.ts +0 -208
  1793. package/src/utils/mcpWebSocketTransport.ts +0 -200
  1794. package/src/utils/memoize.ts +0 -269
  1795. package/src/utils/memory/types.ts +0 -12
  1796. package/src/utils/memory/versions.ts +0 -8
  1797. package/src/utils/memoryFileDetection.ts +0 -289
  1798. package/src/utils/messagePredicates.ts +0 -8
  1799. package/src/utils/messageQueueManager.ts +0 -547
  1800. package/src/utils/messages/mappers.ts +0 -290
  1801. package/src/utils/messages/systemInit.ts +0 -96
  1802. package/src/utils/messages.ts +0 -5512
  1803. package/src/utils/model/agent.ts +0 -157
  1804. package/src/utils/model/aliases.ts +0 -25
  1805. package/src/utils/model/antModels.ts +0 -64
  1806. package/src/utils/model/bedrock.ts +0 -265
  1807. package/src/utils/model/check1mAccess.ts +0 -72
  1808. package/src/utils/model/configs.ts +0 -118
  1809. package/src/utils/model/contextWindowUpgradeCheck.ts +0 -47
  1810. package/src/utils/model/deprecation.ts +0 -101
  1811. package/src/utils/model/model.ts +0 -618
  1812. package/src/utils/model/modelAllowlist.ts +0 -170
  1813. package/src/utils/model/modelCapabilities.ts +0 -118
  1814. package/src/utils/model/modelOptions.ts +0 -540
  1815. package/src/utils/model/modelStrings.ts +0 -166
  1816. package/src/utils/model/modelSupportOverrides.ts +0 -50
  1817. package/src/utils/model/providers.ts +0 -40
  1818. package/src/utils/model/validateModel.ts +0 -159
  1819. package/src/utils/modelCost.ts +0 -231
  1820. package/src/utils/modifiers.ts +0 -41
  1821. package/src/utils/mtls.ts +0 -179
  1822. package/src/utils/nativeInstaller/download.ts +0 -523
  1823. package/src/utils/nativeInstaller/index.ts +0 -18
  1824. package/src/utils/nativeInstaller/installer.ts +0 -1708
  1825. package/src/utils/nativeInstaller/packageManagers.ts +0 -336
  1826. package/src/utils/nativeInstaller/pidLock.ts +0 -433
  1827. package/src/utils/notebook.ts +0 -224
  1828. package/src/utils/objectGroupBy.ts +0 -18
  1829. package/src/utils/pasteStore.ts +0 -104
  1830. package/src/utils/path.ts +0 -155
  1831. package/src/utils/pdf.ts +0 -300
  1832. package/src/utils/pdfUtils.ts +0 -70
  1833. package/src/utils/peerAddress.ts +0 -21
  1834. package/src/utils/permissions/PermissionMode.ts +0 -141
  1835. package/src/utils/permissions/PermissionPromptToolResultSchema.ts +0 -127
  1836. package/src/utils/permissions/PermissionResult.ts +0 -35
  1837. package/src/utils/permissions/PermissionRule.ts +0 -40
  1838. package/src/utils/permissions/PermissionUpdate.ts +0 -389
  1839. package/src/utils/permissions/PermissionUpdateSchema.ts +0 -78
  1840. package/src/utils/permissions/autoModeState.ts +0 -39
  1841. package/src/utils/permissions/bashClassifier.ts +0 -61
  1842. package/src/utils/permissions/bypassPermissionsKillswitch.ts +0 -155
  1843. package/src/utils/permissions/classifierDecision.ts +0 -98
  1844. package/src/utils/permissions/classifierShared.ts +0 -39
  1845. package/src/utils/permissions/dangerousPatterns.ts +0 -80
  1846. package/src/utils/permissions/denialTracking.ts +0 -45
  1847. package/src/utils/permissions/filesystem.ts +0 -1777
  1848. package/src/utils/permissions/getNextPermissionMode.ts +0 -101
  1849. package/src/utils/permissions/pathValidation.ts +0 -485
  1850. package/src/utils/permissions/permissionExplainer.ts +0 -250
  1851. package/src/utils/permissions/permissionRuleParser.ts +0 -198
  1852. package/src/utils/permissions/permissionSetup.ts +0 -1532
  1853. package/src/utils/permissions/permissions.ts +0 -1486
  1854. package/src/utils/permissions/permissionsLoader.ts +0 -296
  1855. package/src/utils/permissions/shadowedRuleDetection.ts +0 -234
  1856. package/src/utils/permissions/shellRuleMatching.ts +0 -228
  1857. package/src/utils/permissions/yoloClassifier.ts +0 -1495
  1858. package/src/utils/planModeV2.ts +0 -95
  1859. package/src/utils/plans.ts +0 -397
  1860. package/src/utils/platform.ts +0 -150
  1861. package/src/utils/plugins/addDirPluginSettings.ts +0 -71
  1862. package/src/utils/plugins/cacheUtils.ts +0 -196
  1863. package/src/utils/plugins/dependencyResolver.ts +0 -305
  1864. package/src/utils/plugins/fetchTelemetry.ts +0 -135
  1865. package/src/utils/plugins/gitAvailability.ts +0 -69
  1866. package/src/utils/plugins/headlessPluginInstall.ts +0 -174
  1867. package/src/utils/plugins/hintRecommendation.ts +0 -164
  1868. package/src/utils/plugins/installCounts.ts +0 -292
  1869. package/src/utils/plugins/installedPluginsManager.ts +0 -1268
  1870. package/src/utils/plugins/loadPluginAgents.ts +0 -348
  1871. package/src/utils/plugins/loadPluginCommands.ts +0 -946
  1872. package/src/utils/plugins/loadPluginHooks.ts +0 -287
  1873. package/src/utils/plugins/loadPluginOutputStyles.ts +0 -178
  1874. package/src/utils/plugins/lspPluginIntegration.ts +0 -387
  1875. package/src/utils/plugins/lspRecommendation.ts +0 -374
  1876. package/src/utils/plugins/managedPlugins.ts +0 -27
  1877. package/src/utils/plugins/marketplaceHelpers.ts +0 -592
  1878. package/src/utils/plugins/marketplaceManager.ts +0 -2643
  1879. package/src/utils/plugins/mcpPluginIntegration.ts +0 -634
  1880. package/src/utils/plugins/mcpbHandler.ts +0 -968
  1881. package/src/utils/plugins/officialMarketplace.ts +0 -25
  1882. package/src/utils/plugins/officialMarketplaceGcs.ts +0 -216
  1883. package/src/utils/plugins/officialMarketplaceStartupCheck.ts +0 -439
  1884. package/src/utils/plugins/orphanedPluginFilter.ts +0 -114
  1885. package/src/utils/plugins/parseMarketplaceInput.ts +0 -162
  1886. package/src/utils/plugins/performStartupChecks.tsx +0 -70
  1887. package/src/utils/plugins/pluginAutoupdate.ts +0 -284
  1888. package/src/utils/plugins/pluginBlocklist.ts +0 -127
  1889. package/src/utils/plugins/pluginDirectories.ts +0 -178
  1890. package/src/utils/plugins/pluginFlagging.ts +0 -208
  1891. package/src/utils/plugins/pluginIdentifier.ts +0 -123
  1892. package/src/utils/plugins/pluginInstallationHelpers.ts +0 -595
  1893. package/src/utils/plugins/pluginLoader.ts +0 -3302
  1894. package/src/utils/plugins/pluginOptionsStorage.ts +0 -400
  1895. package/src/utils/plugins/pluginPolicy.ts +0 -20
  1896. package/src/utils/plugins/pluginStartupCheck.ts +0 -341
  1897. package/src/utils/plugins/pluginVersioning.ts +0 -157
  1898. package/src/utils/plugins/reconciler.ts +0 -265
  1899. package/src/utils/plugins/refresh.ts +0 -215
  1900. package/src/utils/plugins/schemas.ts +0 -1681
  1901. package/src/utils/plugins/validatePlugin.ts +0 -903
  1902. package/src/utils/plugins/walkPluginMarkdown.ts +0 -69
  1903. package/src/utils/plugins/zipCache.ts +0 -406
  1904. package/src/utils/plugins/zipCacheAdapters.ts +0 -164
  1905. package/src/utils/postCommitAttribution.ts +0 -2
  1906. package/src/utils/powershell/dangerousCmdlets.ts +0 -185
  1907. package/src/utils/powershell/parser.ts +0 -1804
  1908. package/src/utils/powershell/staticPrefix.ts +0 -316
  1909. package/src/utils/preflightChecks.tsx +0 -151
  1910. package/src/utils/privacyLevel.ts +0 -55
  1911. package/src/utils/process.ts +0 -68
  1912. package/src/utils/processUserInput/processBashCommand.tsx +0 -140
  1913. package/src/utils/processUserInput/processSlashCommand.tsx +0 -922
  1914. package/src/utils/processUserInput/processTextPrompt.ts +0 -100
  1915. package/src/utils/processUserInput/processUserInput.ts +0 -605
  1916. package/src/utils/profilerBase.ts +0 -46
  1917. package/src/utils/promptCategory.ts +0 -49
  1918. package/src/utils/promptEditor.ts +0 -188
  1919. package/src/utils/promptShellExecution.ts +0 -183
  1920. package/src/utils/protectedNamespace.ts +0 -2
  1921. package/src/utils/proxy.ts +0 -426
  1922. package/src/utils/queryContext.ts +0 -179
  1923. package/src/utils/queryHelpers.ts +0 -552
  1924. package/src/utils/queryProfiler.ts +0 -301
  1925. package/src/utils/queueProcessor.ts +0 -95
  1926. package/src/utils/readEditContext.ts +0 -227
  1927. package/src/utils/readFileInRange.ts +0 -383
  1928. package/src/utils/releaseNotes.ts +0 -360
  1929. package/src/utils/renderOptions.ts +0 -77
  1930. package/src/utils/ripgrep.ts +0 -679
  1931. package/src/utils/sandbox/sandbox-adapter.ts +0 -985
  1932. package/src/utils/sandbox/sandbox-ui-utils.ts +0 -12
  1933. package/src/utils/sanitization.ts +0 -91
  1934. package/src/utils/screenshotClipboard.ts +0 -121
  1935. package/src/utils/sdkEventQueue.ts +0 -134
  1936. package/src/utils/sdkHeapDumpMonitor.ts +0 -2
  1937. package/src/utils/secureStorage/fallbackStorage.ts +0 -70
  1938. package/src/utils/secureStorage/index.ts +0 -17
  1939. package/src/utils/secureStorage/keychainPrefetch.ts +0 -116
  1940. package/src/utils/secureStorage/macOsKeychainHelpers.ts +0 -111
  1941. package/src/utils/secureStorage/macOsKeychainStorage.ts +0 -231
  1942. package/src/utils/secureStorage/plainTextStorage.ts +0 -84
  1943. package/src/utils/secureStorage/types.ts +0 -2
  1944. package/src/utils/semanticBoolean.ts +0 -29
  1945. package/src/utils/semanticNumber.ts +0 -36
  1946. package/src/utils/semver.ts +0 -59
  1947. package/src/utils/sequential.ts +0 -56
  1948. package/src/utils/sessionActivity.ts +0 -133
  1949. package/src/utils/sessionDataUploader.ts +0 -2
  1950. package/src/utils/sessionEnvVars.ts +0 -22
  1951. package/src/utils/sessionEnvironment.ts +0 -166
  1952. package/src/utils/sessionFileAccessHooks.ts +0 -250
  1953. package/src/utils/sessionIngressAuth.ts +0 -140
  1954. package/src/utils/sessionRestore.ts +0 -551
  1955. package/src/utils/sessionStart.ts +0 -232
  1956. package/src/utils/sessionState.ts +0 -150
  1957. package/src/utils/sessionStorage.ts +0 -5105
  1958. package/src/utils/sessionStoragePortable.ts +0 -793
  1959. package/src/utils/sessionTitle.ts +0 -129
  1960. package/src/utils/sessionUrl.ts +0 -64
  1961. package/src/utils/set.ts +0 -53
  1962. package/src/utils/settings/allErrors.ts +0 -32
  1963. package/src/utils/settings/applySettingsChange.ts +0 -92
  1964. package/src/utils/settings/changeDetector.ts +0 -488
  1965. package/src/utils/settings/constants.ts +0 -202
  1966. package/src/utils/settings/internalWrites.ts +0 -37
  1967. package/src/utils/settings/managedPath.ts +0 -34
  1968. package/src/utils/settings/mdm/constants.ts +0 -81
  1969. package/src/utils/settings/mdm/rawRead.ts +0 -130
  1970. package/src/utils/settings/mdm/settings.ts +0 -316
  1971. package/src/utils/settings/permissionValidation.ts +0 -262
  1972. package/src/utils/settings/pluginOnlyPolicy.ts +0 -60
  1973. package/src/utils/settings/schemaOutput.ts +0 -8
  1974. package/src/utils/settings/settings.ts +0 -1015
  1975. package/src/utils/settings/settingsCache.ts +0 -80
  1976. package/src/utils/settings/toolValidationConfig.ts +0 -103
  1977. package/src/utils/settings/types.ts +0 -1148
  1978. package/src/utils/settings/validateEditTool.ts +0 -45
  1979. package/src/utils/settings/validation.ts +0 -265
  1980. package/src/utils/settings/validationTips.ts +0 -164
  1981. package/src/utils/shell/bashProvider.ts +0 -255
  1982. package/src/utils/shell/outputLimits.ts +0 -14
  1983. package/src/utils/shell/powershellDetection.ts +0 -107
  1984. package/src/utils/shell/powershellProvider.ts +0 -123
  1985. package/src/utils/shell/prefix.ts +0 -367
  1986. package/src/utils/shell/readOnlyCommandValidation.ts +0 -1893
  1987. package/src/utils/shell/resolveDefaultShell.ts +0 -14
  1988. package/src/utils/shell/shellProvider.ts +0 -33
  1989. package/src/utils/shell/shellToolUtils.ts +0 -22
  1990. package/src/utils/shell/specPrefix.ts +0 -241
  1991. package/src/utils/shellConfig.ts +0 -167
  1992. package/src/utils/sideQuery.ts +0 -222
  1993. package/src/utils/sideQuestion.ts +0 -155
  1994. package/src/utils/signal.ts +0 -43
  1995. package/src/utils/sinks.ts +0 -16
  1996. package/src/utils/skills/skillChangeDetector.ts +0 -311
  1997. package/src/utils/slashCommandParsing.ts +0 -60
  1998. package/src/utils/sleep.ts +0 -84
  1999. package/src/utils/sliceAnsi.ts +0 -91
  2000. package/src/utils/slowOperations.ts +0 -286
  2001. package/src/utils/standaloneAgent.ts +0 -23
  2002. package/src/utils/startupProfiler.ts +0 -194
  2003. package/src/utils/staticRender.tsx +0 -116
  2004. package/src/utils/stats.ts +0 -1061
  2005. package/src/utils/statsCache.ts +0 -434
  2006. package/src/utils/status.tsx +0 -362
  2007. package/src/utils/statusNoticeDefinitions.tsx +0 -198
  2008. package/src/utils/statusNoticeHelpers.ts +0 -20
  2009. package/src/utils/stream.ts +0 -76
  2010. package/src/utils/streamJsonStdoutGuard.ts +0 -123
  2011. package/src/utils/streamlinedTransform.ts +0 -201
  2012. package/src/utils/stringUtils.ts +0 -235
  2013. package/src/utils/subprocessEnv.ts +0 -99
  2014. package/src/utils/suggestions/commandSuggestions.ts +0 -567
  2015. package/src/utils/suggestions/directoryCompletion.ts +0 -263
  2016. package/src/utils/suggestions/shellHistoryCompletion.ts +0 -119
  2017. package/src/utils/suggestions/skillUsageTracking.ts +0 -55
  2018. package/src/utils/suggestions/slackChannelSuggestions.ts +0 -209
  2019. package/src/utils/swarm/It2SetupPrompt.tsx +0 -380
  2020. package/src/utils/swarm/backends/ITermBackend.ts +0 -370
  2021. package/src/utils/swarm/backends/InProcessBackend.ts +0 -339
  2022. package/src/utils/swarm/backends/PaneBackendExecutor.ts +0 -354
  2023. package/src/utils/swarm/backends/TmuxBackend.ts +0 -764
  2024. package/src/utils/swarm/backends/detection.ts +0 -128
  2025. package/src/utils/swarm/backends/it2Setup.ts +0 -245
  2026. package/src/utils/swarm/backends/registry.ts +0 -464
  2027. package/src/utils/swarm/backends/teammateModeSnapshot.ts +0 -87
  2028. package/src/utils/swarm/backends/types.ts +0 -311
  2029. package/src/utils/swarm/constants.ts +0 -33
  2030. package/src/utils/swarm/inProcessRunner.ts +0 -1552
  2031. package/src/utils/swarm/leaderPermissionBridge.ts +0 -54
  2032. package/src/utils/swarm/permissionSync.ts +0 -928
  2033. package/src/utils/swarm/reconnection.ts +0 -119
  2034. package/src/utils/swarm/spawnInProcess.ts +0 -328
  2035. package/src/utils/swarm/spawnUtils.ts +0 -146
  2036. package/src/utils/swarm/teamHelpers.ts +0 -683
  2037. package/src/utils/swarm/teammateInit.ts +0 -129
  2038. package/src/utils/swarm/teammateLayoutManager.ts +0 -107
  2039. package/src/utils/swarm/teammateModel.ts +0 -10
  2040. package/src/utils/swarm/teammatePromptAddendum.ts +0 -18
  2041. package/src/utils/systemDirectories.ts +0 -74
  2042. package/src/utils/systemPrompt.ts +0 -123
  2043. package/src/utils/systemPromptType.ts +0 -14
  2044. package/src/utils/systemTheme.ts +0 -119
  2045. package/src/utils/systemThemeWatcher.ts +0 -2
  2046. package/src/utils/taggedId.ts +0 -54
  2047. package/src/utils/task/TaskOutput.ts +0 -390
  2048. package/src/utils/task/diskOutput.ts +0 -451
  2049. package/src/utils/task/framework.ts +0 -308
  2050. package/src/utils/task/outputFormatting.ts +0 -38
  2051. package/src/utils/task/sdkProgress.ts +0 -36
  2052. package/src/utils/taskSummary.ts +0 -2
  2053. package/src/utils/tasks.ts +0 -862
  2054. package/src/utils/teamDiscovery.ts +0 -81
  2055. package/src/utils/teamMemoryOps.ts +0 -88
  2056. package/src/utils/teammate.ts +0 -292
  2057. package/src/utils/teammateContext.ts +0 -96
  2058. package/src/utils/teammateMailbox.ts +0 -1183
  2059. package/src/utils/telemetry/betaSessionTracing.ts +0 -491
  2060. package/src/utils/telemetry/bigqueryExporter.ts +0 -252
  2061. package/src/utils/telemetry/events.ts +0 -75
  2062. package/src/utils/telemetry/instrumentation.ts +0 -825
  2063. package/src/utils/telemetry/logger.ts +0 -26
  2064. package/src/utils/telemetry/perfettoTracing.ts +0 -1120
  2065. package/src/utils/telemetry/pluginTelemetry.ts +0 -289
  2066. package/src/utils/telemetry/sessionTracing.ts +0 -927
  2067. package/src/utils/telemetry/skillLoadedEvent.ts +0 -39
  2068. package/src/utils/telemetryAttributes.ts +0 -71
  2069. package/src/utils/teleport/api.ts +0 -466
  2070. package/src/utils/teleport/environmentSelection.ts +0 -77
  2071. package/src/utils/teleport/environments.ts +0 -120
  2072. package/src/utils/teleport/gitBundle.ts +0 -292
  2073. package/src/utils/teleport.tsx +0 -1226
  2074. package/src/utils/tempfile.ts +0 -31
  2075. package/src/utils/terminal.ts +0 -131
  2076. package/src/utils/terminalPanel.ts +0 -191
  2077. package/src/utils/textHighlighting.ts +0 -166
  2078. package/src/utils/theme.ts +0 -639
  2079. package/src/utils/thinking.ts +0 -162
  2080. package/src/utils/timeouts.ts +0 -39
  2081. package/src/utils/tmuxSocket.ts +0 -427
  2082. package/src/utils/todo/types.ts +0 -18
  2083. package/src/utils/tokenBudget.ts +0 -73
  2084. package/src/utils/tokens.ts +0 -261
  2085. package/src/utils/toolErrors.ts +0 -132
  2086. package/src/utils/toolPool.ts +0 -79
  2087. package/src/utils/toolResultStorage.ts +0 -1040
  2088. package/src/utils/toolSchemaCache.ts +0 -26
  2089. package/src/utils/toolSearch.ts +0 -756
  2090. package/src/utils/transcriptSearch.ts +0 -202
  2091. package/src/utils/treeify.ts +0 -170
  2092. package/src/utils/truncate.ts +0 -179
  2093. package/src/utils/udsClient.ts +0 -2
  2094. package/src/utils/udsMessaging.ts +0 -2
  2095. package/src/utils/ultraplan/ccrSession.ts +0 -349
  2096. package/src/utils/ultraplan/keyword.ts +0 -127
  2097. package/src/utils/ultraplan/prompt.txt +0 -1
  2098. package/src/utils/unaryLogging.ts +0 -39
  2099. package/src/utils/undercover.ts +0 -89
  2100. package/src/utils/user.ts +0 -194
  2101. package/src/utils/userAgent.ts +0 -10
  2102. package/src/utils/userPromptKeywords.ts +0 -27
  2103. package/src/utils/uuid.ts +0 -27
  2104. package/src/utils/warningHandler.ts +0 -121
  2105. package/src/utils/which.ts +0 -82
  2106. package/src/utils/windowsPaths.ts +0 -173
  2107. package/src/utils/withResolvers.ts +0 -13
  2108. package/src/utils/words.ts +0 -800
  2109. package/src/utils/workloadContext.ts +0 -57
  2110. package/src/utils/worktree.ts +0 -1519
  2111. package/src/utils/worktreeModeEnabled.ts +0 -11
  2112. package/src/utils/xdg.ts +0 -65
  2113. package/src/utils/xml.ts +0 -16
  2114. package/src/utils/yaml.ts +0 -15
  2115. package/src/utils/zodToJsonSchema.ts +0 -23
  2116. package/src/vim/motions.ts +0 -82
  2117. package/src/vim/operators.ts +0 -556
  2118. package/src/vim/textObjects.ts +0 -186
  2119. package/src/vim/transitions.ts +0 -490
  2120. package/src/vim/types.ts +0 -199
  2121. package/src/voice/voiceModeEnabled.ts +0 -54
  2122. package/stubs/@ant/claude-for-chrome-mcp/index.js +0 -4
  2123. package/stubs/@ant/claude-for-chrome-mcp/index.ts +0 -4
  2124. package/stubs/@ant/claude-for-chrome-mcp/package.json +0 -6
  2125. package/stubs/@ant/computer-use-input/index.js +0 -2
  2126. package/stubs/@ant/computer-use-input/index.ts +0 -3
  2127. package/stubs/@ant/computer-use-input/package.json +0 -6
  2128. package/stubs/@ant/computer-use-mcp/index.js +0 -5
  2129. package/stubs/@ant/computer-use-mcp/index.ts +0 -5
  2130. package/stubs/@ant/computer-use-mcp/package.json +0 -11
  2131. package/stubs/@ant/computer-use-mcp/sentinelApps.js +0 -3
  2132. package/stubs/@ant/computer-use-mcp/sentinelApps.ts +0 -3
  2133. package/stubs/@ant/computer-use-mcp/types.js +0 -2
  2134. package/stubs/@ant/computer-use-mcp/types.ts +0 -6
  2135. package/stubs/@ant/computer-use-swift/index.js +0 -2
  2136. package/stubs/@ant/computer-use-swift/index.ts +0 -2
  2137. package/stubs/@ant/computer-use-swift/package.json +0 -6
  2138. package/stubs/@anthropic-ai/claude-agent-sdk/index.js +0 -2
  2139. package/stubs/@anthropic-ai/claude-agent-sdk/index.ts +0 -2
  2140. package/stubs/@anthropic-ai/claude-agent-sdk/package.json +0 -6
  2141. package/stubs/@anthropic-ai/mcpb/index.js +0 -2
  2142. package/stubs/@anthropic-ai/mcpb/index.ts +0 -3
  2143. package/stubs/@anthropic-ai/mcpb/package.json +0 -6
  2144. package/stubs/@anthropic-ai/sandbox-runtime/index.js +0 -42
  2145. package/stubs/@anthropic-ai/sandbox-runtime/index.ts +0 -49
  2146. package/stubs/@anthropic-ai/sandbox-runtime/package.json +0 -6
  2147. package/stubs/globals.ts +0 -11
  2148. package/stubs/macro.d.ts +0 -9
  2149. package/tsconfig.json +0 -28
@@ -1,2578 +0,0 @@
1
- /**
2
- * Pure-TypeScript port of yoga-layout (Meta's flexbox engine).
3
- *
4
- * This matches the `yoga-layout/load` API surface used by src/ink/layout/yoga.ts.
5
- * The upstream C++ source is ~2500 lines in CalculateLayout.cpp alone; this port
6
- * is a simplified single-pass flexbox implementation that covers the subset of
7
- * features Ink actually uses:
8
- * - flex-direction (row/column + reverse)
9
- * - flex-grow / flex-shrink / flex-basis
10
- * - align-items / align-self (stretch, flex-start, center, flex-end)
11
- * - justify-content (all six values)
12
- * - margin / padding / border / gap
13
- * - width / height / min / max (point, percent, auto)
14
- * - position: relative / absolute
15
- * - display: flex / none
16
- * - measure functions (for text nodes)
17
- *
18
- * Also implemented for spec parity (not used by Ink):
19
- * - margin: auto (main + cross axis, overrides justify/align)
20
- * - multi-pass flex clamping when children hit min/max constraints
21
- * - flex-grow/shrink against container min/max when size is indefinite
22
- *
23
- * Also implemented for spec parity (not used by Ink):
24
- * - flex-wrap: wrap / wrap-reverse (multi-line flex)
25
- * - align-content (positions wrapped lines on cross axis)
26
- *
27
- * Also implemented for spec parity (not used by Ink):
28
- * - display: contents (children lifted to grandparent, box removed)
29
- *
30
- * Also implemented for spec parity (not used by Ink):
31
- * - baseline alignment (align-items/align-self: baseline)
32
- *
33
- * Not implemented (not used by Ink):
34
- * - aspect-ratio
35
- * - box-sizing: content-box
36
- * - RTL direction (Ink always passes Direction.LTR)
37
- *
38
- * Upstream: https://github.com/facebook/yoga
39
- */
40
-
41
- import {
42
- Align,
43
- BoxSizing,
44
- Dimension,
45
- Direction,
46
- Display,
47
- Edge,
48
- Errata,
49
- ExperimentalFeature,
50
- FlexDirection,
51
- Gutter,
52
- Justify,
53
- MeasureMode,
54
- Overflow,
55
- PositionType,
56
- Unit,
57
- Wrap,
58
- } from './enums.js'
59
-
60
- export {
61
- Align,
62
- BoxSizing,
63
- Dimension,
64
- Direction,
65
- Display,
66
- Edge,
67
- Errata,
68
- ExperimentalFeature,
69
- FlexDirection,
70
- Gutter,
71
- Justify,
72
- MeasureMode,
73
- Overflow,
74
- PositionType,
75
- Unit,
76
- Wrap,
77
- }
78
-
79
- // --
80
- // Value types
81
-
82
- export type Value = {
83
- unit: Unit
84
- value: number
85
- }
86
-
87
- const UNDEFINED_VALUE: Value = { unit: Unit.Undefined, value: NaN }
88
- const AUTO_VALUE: Value = { unit: Unit.Auto, value: NaN }
89
-
90
- function pointValue(v: number): Value {
91
- return { unit: Unit.Point, value: v }
92
- }
93
- function percentValue(v: number): Value {
94
- return { unit: Unit.Percent, value: v }
95
- }
96
-
97
- function resolveValue(v: Value, ownerSize: number): number {
98
- switch (v.unit) {
99
- case Unit.Point:
100
- return v.value
101
- case Unit.Percent:
102
- return isNaN(ownerSize) ? NaN : (v.value * ownerSize) / 100
103
- default:
104
- return NaN
105
- }
106
- }
107
-
108
- function isDefined(n: number): boolean {
109
- return !isNaN(n)
110
- }
111
-
112
- // NaN-safe equality for layout-cache input comparison
113
- function sameFloat(a: number, b: number): boolean {
114
- return a === b || (a !== a && b !== b)
115
- }
116
-
117
- // --
118
- // Layout result (computed values)
119
-
120
- type Layout = {
121
- left: number
122
- top: number
123
- width: number
124
- height: number
125
- // Computed per-edge values (resolved to physical edges)
126
- border: [number, number, number, number] // left, top, right, bottom
127
- padding: [number, number, number, number]
128
- margin: [number, number, number, number]
129
- }
130
-
131
- // --
132
- // Style (input values)
133
-
134
- type Style = {
135
- direction: Direction
136
- flexDirection: FlexDirection
137
- justifyContent: Justify
138
- alignItems: Align
139
- alignSelf: Align
140
- alignContent: Align
141
- flexWrap: Wrap
142
- overflow: Overflow
143
- display: Display
144
- positionType: PositionType
145
-
146
- flexGrow: number
147
- flexShrink: number
148
- flexBasis: Value
149
-
150
- // 9-edge arrays indexed by Edge enum
151
- margin: Value[]
152
- padding: Value[]
153
- border: Value[]
154
- position: Value[]
155
-
156
- // 3-gutter array indexed by Gutter enum
157
- gap: Value[]
158
-
159
- width: Value
160
- height: Value
161
- minWidth: Value
162
- minHeight: Value
163
- maxWidth: Value
164
- maxHeight: Value
165
- }
166
-
167
- function defaultStyle(): Style {
168
- return {
169
- direction: Direction.Inherit,
170
- flexDirection: FlexDirection.Column,
171
- justifyContent: Justify.FlexStart,
172
- alignItems: Align.Stretch,
173
- alignSelf: Align.Auto,
174
- alignContent: Align.FlexStart,
175
- flexWrap: Wrap.NoWrap,
176
- overflow: Overflow.Visible,
177
- display: Display.Flex,
178
- positionType: PositionType.Relative,
179
- flexGrow: 0,
180
- flexShrink: 0,
181
- flexBasis: AUTO_VALUE,
182
- margin: new Array(9).fill(UNDEFINED_VALUE),
183
- padding: new Array(9).fill(UNDEFINED_VALUE),
184
- border: new Array(9).fill(UNDEFINED_VALUE),
185
- position: new Array(9).fill(UNDEFINED_VALUE),
186
- gap: new Array(3).fill(UNDEFINED_VALUE),
187
- width: AUTO_VALUE,
188
- height: AUTO_VALUE,
189
- minWidth: UNDEFINED_VALUE,
190
- minHeight: UNDEFINED_VALUE,
191
- maxWidth: UNDEFINED_VALUE,
192
- maxHeight: UNDEFINED_VALUE,
193
- }
194
- }
195
-
196
- // --
197
- // Edge resolution — yoga's 9-edge model collapsed to 4 physical edges
198
-
199
- const EDGE_LEFT = 0
200
- const EDGE_TOP = 1
201
- const EDGE_RIGHT = 2
202
- const EDGE_BOTTOM = 3
203
-
204
- function resolveEdge(
205
- edges: Value[],
206
- physicalEdge: number,
207
- ownerSize: number,
208
- // For margin/position we allow auto; for padding/border auto resolves to 0
209
- allowAuto = false,
210
- ): number {
211
- // Precedence: specific edge > horizontal/vertical > all
212
- let v = edges[physicalEdge]!
213
- if (v.unit === Unit.Undefined) {
214
- if (physicalEdge === EDGE_LEFT || physicalEdge === EDGE_RIGHT) {
215
- v = edges[Edge.Horizontal]!
216
- } else {
217
- v = edges[Edge.Vertical]!
218
- }
219
- }
220
- if (v.unit === Unit.Undefined) {
221
- v = edges[Edge.All]!
222
- }
223
- // Start/End map to Left/Right for LTR (Ink is always LTR)
224
- if (v.unit === Unit.Undefined) {
225
- if (physicalEdge === EDGE_LEFT) v = edges[Edge.Start]!
226
- if (physicalEdge === EDGE_RIGHT) v = edges[Edge.End]!
227
- }
228
- if (v.unit === Unit.Undefined) return 0
229
- if (v.unit === Unit.Auto) return allowAuto ? NaN : 0
230
- return resolveValue(v, ownerSize)
231
- }
232
-
233
- function resolveEdgeRaw(edges: Value[], physicalEdge: number): Value {
234
- let v = edges[physicalEdge]!
235
- if (v.unit === Unit.Undefined) {
236
- if (physicalEdge === EDGE_LEFT || physicalEdge === EDGE_RIGHT) {
237
- v = edges[Edge.Horizontal]!
238
- } else {
239
- v = edges[Edge.Vertical]!
240
- }
241
- }
242
- if (v.unit === Unit.Undefined) v = edges[Edge.All]!
243
- if (v.unit === Unit.Undefined) {
244
- if (physicalEdge === EDGE_LEFT) v = edges[Edge.Start]!
245
- if (physicalEdge === EDGE_RIGHT) v = edges[Edge.End]!
246
- }
247
- return v
248
- }
249
-
250
- function isMarginAuto(edges: Value[], physicalEdge: number): boolean {
251
- return resolveEdgeRaw(edges, physicalEdge).unit === Unit.Auto
252
- }
253
-
254
- // Setter helpers for the _hasAutoMargin / _hasPosition fast-path flags.
255
- // Unit.Undefined = 0, Unit.Auto = 3.
256
- function hasAnyAutoEdge(edges: Value[]): boolean {
257
- for (let i = 0; i < 9; i++) if (edges[i]!.unit === 3) return true
258
- return false
259
- }
260
- function hasAnyDefinedEdge(edges: Value[]): boolean {
261
- for (let i = 0; i < 9; i++) if (edges[i]!.unit !== 0) return true
262
- return false
263
- }
264
-
265
- // Hot path: resolve all 4 physical edges in one pass, writing into `out`.
266
- // Equivalent to calling resolveEdge() 4× with allowAuto=false, but hoists the
267
- // shared fallback lookups (Horizontal/Vertical/All/Start/End) and avoids
268
- // allocating a fresh 4-array on every layoutNode() call.
269
- function resolveEdges4Into(
270
- edges: Value[],
271
- ownerSize: number,
272
- out: [number, number, number, number],
273
- ): void {
274
- // Hoist fallbacks once — the 4 per-edge chains share these reads.
275
- const eH = edges[6]! // Edge.Horizontal
276
- const eV = edges[7]! // Edge.Vertical
277
- const eA = edges[8]! // Edge.All
278
- const eS = edges[4]! // Edge.Start
279
- const eE = edges[5]! // Edge.End
280
- const pctDenom = isNaN(ownerSize) ? NaN : ownerSize / 100
281
-
282
- // Left: edges[0] → Horizontal → All → Start
283
- let v = edges[0]!
284
- if (v.unit === 0) v = eH
285
- if (v.unit === 0) v = eA
286
- if (v.unit === 0) v = eS
287
- out[0] = v.unit === 1 ? v.value : v.unit === 2 ? v.value * pctDenom : 0
288
-
289
- // Top: edges[1] → Vertical → All
290
- v = edges[1]!
291
- if (v.unit === 0) v = eV
292
- if (v.unit === 0) v = eA
293
- out[1] = v.unit === 1 ? v.value : v.unit === 2 ? v.value * pctDenom : 0
294
-
295
- // Right: edges[2] → Horizontal → All → End
296
- v = edges[2]!
297
- if (v.unit === 0) v = eH
298
- if (v.unit === 0) v = eA
299
- if (v.unit === 0) v = eE
300
- out[2] = v.unit === 1 ? v.value : v.unit === 2 ? v.value * pctDenom : 0
301
-
302
- // Bottom: edges[3] → Vertical → All
303
- v = edges[3]!
304
- if (v.unit === 0) v = eV
305
- if (v.unit === 0) v = eA
306
- out[3] = v.unit === 1 ? v.value : v.unit === 2 ? v.value * pctDenom : 0
307
- }
308
-
309
- // --
310
- // Axis helpers
311
-
312
- function isRow(dir: FlexDirection): boolean {
313
- return dir === FlexDirection.Row || dir === FlexDirection.RowReverse
314
- }
315
- function isReverse(dir: FlexDirection): boolean {
316
- return dir === FlexDirection.RowReverse || dir === FlexDirection.ColumnReverse
317
- }
318
- function crossAxis(dir: FlexDirection): FlexDirection {
319
- return isRow(dir) ? FlexDirection.Column : FlexDirection.Row
320
- }
321
- function leadingEdge(dir: FlexDirection): number {
322
- switch (dir) {
323
- case FlexDirection.Row:
324
- return EDGE_LEFT
325
- case FlexDirection.RowReverse:
326
- return EDGE_RIGHT
327
- case FlexDirection.Column:
328
- return EDGE_TOP
329
- case FlexDirection.ColumnReverse:
330
- return EDGE_BOTTOM
331
- }
332
- }
333
- function trailingEdge(dir: FlexDirection): number {
334
- switch (dir) {
335
- case FlexDirection.Row:
336
- return EDGE_RIGHT
337
- case FlexDirection.RowReverse:
338
- return EDGE_LEFT
339
- case FlexDirection.Column:
340
- return EDGE_BOTTOM
341
- case FlexDirection.ColumnReverse:
342
- return EDGE_TOP
343
- }
344
- }
345
-
346
- // --
347
- // Public types
348
-
349
- export type MeasureFunction = (
350
- width: number,
351
- widthMode: MeasureMode,
352
- height: number,
353
- heightMode: MeasureMode,
354
- ) => { width: number; height: number }
355
-
356
- export type Size = { width: number; height: number }
357
-
358
- // --
359
- // Config
360
-
361
- export type Config = {
362
- pointScaleFactor: number
363
- errata: Errata
364
- useWebDefaults: boolean
365
- free(): void
366
- isExperimentalFeatureEnabled(_: ExperimentalFeature): boolean
367
- setExperimentalFeatureEnabled(_: ExperimentalFeature, __: boolean): void
368
- setPointScaleFactor(factor: number): void
369
- getErrata(): Errata
370
- setErrata(errata: Errata): void
371
- setUseWebDefaults(v: boolean): void
372
- }
373
-
374
- function createConfig(): Config {
375
- const config: Config = {
376
- pointScaleFactor: 1,
377
- errata: Errata.None,
378
- useWebDefaults: false,
379
- free() {},
380
- isExperimentalFeatureEnabled() {
381
- return false
382
- },
383
- setExperimentalFeatureEnabled() {},
384
- setPointScaleFactor(f) {
385
- config.pointScaleFactor = f
386
- },
387
- getErrata() {
388
- return config.errata
389
- },
390
- setErrata(e) {
391
- config.errata = e
392
- },
393
- setUseWebDefaults(v) {
394
- config.useWebDefaults = v
395
- },
396
- }
397
- return config
398
- }
399
-
400
- // --
401
- // Node implementation
402
-
403
- export class Node {
404
- style: Style
405
- layout: Layout
406
- parent: Node | null
407
- children: Node[]
408
- measureFunc: MeasureFunction | null
409
- config: Config
410
- isDirty_: boolean
411
- isReferenceBaseline_: boolean
412
-
413
- // Per-layout scratch (not public API)
414
- _flexBasis = 0
415
- _mainSize = 0
416
- _crossSize = 0
417
- _lineIndex = 0
418
- // Fast-path flags maintained by style setters. Per CPU profile, the
419
- // positioning loop calls isMarginAuto 6× and resolveEdgeRaw(position) 4×
420
- // per child per layout pass — ~11k calls for the 1000-node bench, nearly
421
- // all of which return false/undefined since most nodes have no auto
422
- // margins and no position insets. These flags let us skip straight to
423
- // the common case with a single branch.
424
- _hasAutoMargin = false
425
- _hasPosition = false
426
- // Same pattern for the 3× resolveEdges4Into calls at the top of every
427
- // layoutNode(). In the 1000-node bench ~67% of those calls operate on
428
- // all-undefined edge arrays (most nodes have no border; only cols have
429
- // padding; only leaf cells have margin) — a single-branch skip beats
430
- // ~20 property reads + ~15 compares + 4 writes of zeros.
431
- _hasPadding = false
432
- _hasBorder = false
433
- _hasMargin = false
434
- // -- Dirty-flag layout cache. Mirrors upstream CalculateLayout.cpp's
435
- // layoutNodeInternal: skip a subtree entirely when it's clean and we're
436
- // asking the same question we cached the answer to. Two slots since
437
- // each node typically sees a measure call (performLayout=false, from
438
- // computeFlexBasis) followed by a layout call (performLayout=true) with
439
- // different inputs per parent pass — a single slot thrashes. Re-layout
440
- // bench (dirty one leaf, recompute root) went 2.7x→1.1x with this:
441
- // clean siblings skip straight through, only the dirty chain recomputes.
442
- _lW = NaN
443
- _lH = NaN
444
- _lWM: MeasureMode = 0
445
- _lHM: MeasureMode = 0
446
- _lOW = NaN
447
- _lOH = NaN
448
- _lFW = false
449
- _lFH = false
450
- // _hasL stores INPUTS early (before compute) but layout.width/height are
451
- // mutated by the multi-entry cache and by subsequent compute calls with
452
- // different inputs. Without storing OUTPUTS, a _hasL hit returns whatever
453
- // layout.width/height happened to be left by the last call — the scrollbox
454
- // vpH=33→2624 bug. Store + restore outputs like the multi-entry cache does.
455
- _lOutW = NaN
456
- _lOutH = NaN
457
- _hasL = false
458
- _mW = NaN
459
- _mH = NaN
460
- _mWM: MeasureMode = 0
461
- _mHM: MeasureMode = 0
462
- _mOW = NaN
463
- _mOH = NaN
464
- _mOutW = NaN
465
- _mOutH = NaN
466
- _hasM = false
467
- // Cached computeFlexBasis result. For clean children, basis only depends
468
- // on the container's inner dimensions — if those haven't changed, skip the
469
- // layoutNode(performLayout=false) recursion entirely. This is the hot path
470
- // for scroll: 500-message content container is dirty, its 499 clean
471
- // children each get measured ~20× as the dirty chain's measure/layout
472
- // passes cascade. Basis cache short-circuits at the child boundary.
473
- _fbBasis = NaN
474
- _fbOwnerW = NaN
475
- _fbOwnerH = NaN
476
- _fbAvailMain = NaN
477
- _fbAvailCross = NaN
478
- _fbCrossMode: MeasureMode = 0
479
- // Generation at which _fbBasis was written. Dirty nodes from a PREVIOUS
480
- // generation have stale cache (subtree changed), but within the SAME
481
- // generation the cache is fresh — the dirty chain's measure→layout
482
- // cascade invokes computeFlexBasis ≥2^depth times per calculateLayout on
483
- // fresh-mounted items, and the subtree doesn't change between calls.
484
- // Gating on generation instead of isDirty_ lets fresh mounts (virtual
485
- // scroll) cache-hit after first compute: 105k visits → ~10k.
486
- _fbGen = -1
487
- // Multi-entry layout cache — stores (inputs → computed w,h) so hits with
488
- // different inputs than _hasL can restore the right dimensions. Upstream
489
- // yoga uses 16; 4 covers Ink's dirty-chain depth. Packed as flat arrays
490
- // to avoid per-entry object allocs. Slot i uses indices [i*8, i*8+8) in
491
- // _cIn (aW,aH,wM,hM,oW,oH,fW,fH) and [i*2, i*2+2) in _cOut (w,h).
492
- _cIn: Float64Array | null = null
493
- _cOut: Float64Array | null = null
494
- _cGen = -1
495
- _cN = 0
496
- _cWr = 0
497
-
498
- constructor(config?: Config) {
499
- this.style = defaultStyle()
500
- this.layout = {
501
- left: 0,
502
- top: 0,
503
- width: 0,
504
- height: 0,
505
- border: [0, 0, 0, 0],
506
- padding: [0, 0, 0, 0],
507
- margin: [0, 0, 0, 0],
508
- }
509
- this.parent = null
510
- this.children = []
511
- this.measureFunc = null
512
- this.config = config ?? DEFAULT_CONFIG
513
- this.isDirty_ = true
514
- this.isReferenceBaseline_ = false
515
- _yogaLiveNodes++
516
- }
517
-
518
- // -- Tree
519
-
520
- insertChild(child: Node, index: number): void {
521
- child.parent = this
522
- this.children.splice(index, 0, child)
523
- this.markDirty()
524
- }
525
- removeChild(child: Node): void {
526
- const idx = this.children.indexOf(child)
527
- if (idx >= 0) {
528
- this.children.splice(idx, 1)
529
- child.parent = null
530
- this.markDirty()
531
- }
532
- }
533
- getChild(index: number): Node {
534
- return this.children[index]!
535
- }
536
- getChildCount(): number {
537
- return this.children.length
538
- }
539
- getParent(): Node | null {
540
- return this.parent
541
- }
542
-
543
- // -- Lifecycle
544
-
545
- free(): void {
546
- this.parent = null
547
- this.children = []
548
- this.measureFunc = null
549
- this._cIn = null
550
- this._cOut = null
551
- _yogaLiveNodes--
552
- }
553
- freeRecursive(): void {
554
- for (const c of this.children) c.freeRecursive()
555
- this.free()
556
- }
557
- reset(): void {
558
- this.style = defaultStyle()
559
- this.children = []
560
- this.parent = null
561
- this.measureFunc = null
562
- this.isDirty_ = true
563
- this._hasAutoMargin = false
564
- this._hasPosition = false
565
- this._hasPadding = false
566
- this._hasBorder = false
567
- this._hasMargin = false
568
- this._hasL = false
569
- this._hasM = false
570
- this._cN = 0
571
- this._cWr = 0
572
- this._fbBasis = NaN
573
- }
574
-
575
- // -- Dirty tracking
576
-
577
- markDirty(): void {
578
- this.isDirty_ = true
579
- if (this.parent && !this.parent.isDirty_) this.parent.markDirty()
580
- }
581
- isDirty(): boolean {
582
- return this.isDirty_
583
- }
584
- hasNewLayout(): boolean {
585
- return true
586
- }
587
- markLayoutSeen(): void {}
588
-
589
- // -- Measure function
590
-
591
- setMeasureFunc(fn: MeasureFunction | null): void {
592
- this.measureFunc = fn
593
- this.markDirty()
594
- }
595
- unsetMeasureFunc(): void {
596
- this.measureFunc = null
597
- this.markDirty()
598
- }
599
-
600
- // -- Computed layout getters
601
-
602
- getComputedLeft(): number {
603
- return this.layout.left
604
- }
605
- getComputedTop(): number {
606
- return this.layout.top
607
- }
608
- getComputedWidth(): number {
609
- return this.layout.width
610
- }
611
- getComputedHeight(): number {
612
- return this.layout.height
613
- }
614
- getComputedRight(): number {
615
- const p = this.parent
616
- return p ? p.layout.width - this.layout.left - this.layout.width : 0
617
- }
618
- getComputedBottom(): number {
619
- const p = this.parent
620
- return p ? p.layout.height - this.layout.top - this.layout.height : 0
621
- }
622
- getComputedLayout(): {
623
- left: number
624
- top: number
625
- right: number
626
- bottom: number
627
- width: number
628
- height: number
629
- } {
630
- return {
631
- left: this.layout.left,
632
- top: this.layout.top,
633
- right: this.getComputedRight(),
634
- bottom: this.getComputedBottom(),
635
- width: this.layout.width,
636
- height: this.layout.height,
637
- }
638
- }
639
- getComputedBorder(edge: Edge): number {
640
- return this.layout.border[physicalEdge(edge)]!
641
- }
642
- getComputedPadding(edge: Edge): number {
643
- return this.layout.padding[physicalEdge(edge)]!
644
- }
645
- getComputedMargin(edge: Edge): number {
646
- return this.layout.margin[physicalEdge(edge)]!
647
- }
648
-
649
- // -- Style setters: dimensions
650
-
651
- setWidth(v: number | 'auto' | string | undefined): void {
652
- this.style.width = parseDimension(v)
653
- this.markDirty()
654
- }
655
- setWidthPercent(v: number): void {
656
- this.style.width = percentValue(v)
657
- this.markDirty()
658
- }
659
- setWidthAuto(): void {
660
- this.style.width = AUTO_VALUE
661
- this.markDirty()
662
- }
663
- setHeight(v: number | 'auto' | string | undefined): void {
664
- this.style.height = parseDimension(v)
665
- this.markDirty()
666
- }
667
- setHeightPercent(v: number): void {
668
- this.style.height = percentValue(v)
669
- this.markDirty()
670
- }
671
- setHeightAuto(): void {
672
- this.style.height = AUTO_VALUE
673
- this.markDirty()
674
- }
675
- setMinWidth(v: number | string | undefined): void {
676
- this.style.minWidth = parseDimension(v)
677
- this.markDirty()
678
- }
679
- setMinWidthPercent(v: number): void {
680
- this.style.minWidth = percentValue(v)
681
- this.markDirty()
682
- }
683
- setMinHeight(v: number | string | undefined): void {
684
- this.style.minHeight = parseDimension(v)
685
- this.markDirty()
686
- }
687
- setMinHeightPercent(v: number): void {
688
- this.style.minHeight = percentValue(v)
689
- this.markDirty()
690
- }
691
- setMaxWidth(v: number | string | undefined): void {
692
- this.style.maxWidth = parseDimension(v)
693
- this.markDirty()
694
- }
695
- setMaxWidthPercent(v: number): void {
696
- this.style.maxWidth = percentValue(v)
697
- this.markDirty()
698
- }
699
- setMaxHeight(v: number | string | undefined): void {
700
- this.style.maxHeight = parseDimension(v)
701
- this.markDirty()
702
- }
703
- setMaxHeightPercent(v: number): void {
704
- this.style.maxHeight = percentValue(v)
705
- this.markDirty()
706
- }
707
-
708
- // -- Style setters: flex
709
-
710
- setFlexDirection(dir: FlexDirection): void {
711
- this.style.flexDirection = dir
712
- this.markDirty()
713
- }
714
- setFlexGrow(v: number | undefined): void {
715
- this.style.flexGrow = v ?? 0
716
- this.markDirty()
717
- }
718
- setFlexShrink(v: number | undefined): void {
719
- this.style.flexShrink = v ?? 0
720
- this.markDirty()
721
- }
722
- setFlex(v: number | undefined): void {
723
- if (v === undefined || isNaN(v)) {
724
- this.style.flexGrow = 0
725
- this.style.flexShrink = 0
726
- } else if (v > 0) {
727
- this.style.flexGrow = v
728
- this.style.flexShrink = 1
729
- this.style.flexBasis = pointValue(0)
730
- } else if (v < 0) {
731
- this.style.flexGrow = 0
732
- this.style.flexShrink = -v
733
- } else {
734
- this.style.flexGrow = 0
735
- this.style.flexShrink = 0
736
- }
737
- this.markDirty()
738
- }
739
- setFlexBasis(v: number | 'auto' | string | undefined): void {
740
- this.style.flexBasis = parseDimension(v)
741
- this.markDirty()
742
- }
743
- setFlexBasisPercent(v: number): void {
744
- this.style.flexBasis = percentValue(v)
745
- this.markDirty()
746
- }
747
- setFlexBasisAuto(): void {
748
- this.style.flexBasis = AUTO_VALUE
749
- this.markDirty()
750
- }
751
- setFlexWrap(wrap: Wrap): void {
752
- this.style.flexWrap = wrap
753
- this.markDirty()
754
- }
755
-
756
- // -- Style setters: alignment
757
-
758
- setAlignItems(a: Align): void {
759
- this.style.alignItems = a
760
- this.markDirty()
761
- }
762
- setAlignSelf(a: Align): void {
763
- this.style.alignSelf = a
764
- this.markDirty()
765
- }
766
- setAlignContent(a: Align): void {
767
- this.style.alignContent = a
768
- this.markDirty()
769
- }
770
- setJustifyContent(j: Justify): void {
771
- this.style.justifyContent = j
772
- this.markDirty()
773
- }
774
-
775
- // -- Style setters: display / position / overflow
776
-
777
- setDisplay(d: Display): void {
778
- this.style.display = d
779
- this.markDirty()
780
- }
781
- getDisplay(): Display {
782
- return this.style.display
783
- }
784
- setPositionType(t: PositionType): void {
785
- this.style.positionType = t
786
- this.markDirty()
787
- }
788
- setPosition(edge: Edge, v: number | string | undefined): void {
789
- this.style.position[edge] = parseDimension(v)
790
- this._hasPosition = hasAnyDefinedEdge(this.style.position)
791
- this.markDirty()
792
- }
793
- setPositionPercent(edge: Edge, v: number): void {
794
- this.style.position[edge] = percentValue(v)
795
- this._hasPosition = true
796
- this.markDirty()
797
- }
798
- setPositionAuto(edge: Edge): void {
799
- this.style.position[edge] = AUTO_VALUE
800
- this._hasPosition = true
801
- this.markDirty()
802
- }
803
- setOverflow(o: Overflow): void {
804
- this.style.overflow = o
805
- this.markDirty()
806
- }
807
- setDirection(d: Direction): void {
808
- this.style.direction = d
809
- this.markDirty()
810
- }
811
- setBoxSizing(_: BoxSizing): void {
812
- // Not implemented — Ink doesn't use content-box
813
- }
814
-
815
- // -- Style setters: spacing
816
-
817
- setMargin(edge: Edge, v: number | 'auto' | string | undefined): void {
818
- const val = parseDimension(v)
819
- this.style.margin[edge] = val
820
- if (val.unit === Unit.Auto) this._hasAutoMargin = true
821
- else this._hasAutoMargin = hasAnyAutoEdge(this.style.margin)
822
- this._hasMargin =
823
- this._hasAutoMargin || hasAnyDefinedEdge(this.style.margin)
824
- this.markDirty()
825
- }
826
- setMarginPercent(edge: Edge, v: number): void {
827
- this.style.margin[edge] = percentValue(v)
828
- this._hasAutoMargin = hasAnyAutoEdge(this.style.margin)
829
- this._hasMargin = true
830
- this.markDirty()
831
- }
832
- setMarginAuto(edge: Edge): void {
833
- this.style.margin[edge] = AUTO_VALUE
834
- this._hasAutoMargin = true
835
- this._hasMargin = true
836
- this.markDirty()
837
- }
838
- setPadding(edge: Edge, v: number | string | undefined): void {
839
- this.style.padding[edge] = parseDimension(v)
840
- this._hasPadding = hasAnyDefinedEdge(this.style.padding)
841
- this.markDirty()
842
- }
843
- setPaddingPercent(edge: Edge, v: number): void {
844
- this.style.padding[edge] = percentValue(v)
845
- this._hasPadding = true
846
- this.markDirty()
847
- }
848
- setBorder(edge: Edge, v: number | undefined): void {
849
- this.style.border[edge] = v === undefined ? UNDEFINED_VALUE : pointValue(v)
850
- this._hasBorder = hasAnyDefinedEdge(this.style.border)
851
- this.markDirty()
852
- }
853
- setGap(gutter: Gutter, v: number | string | undefined): void {
854
- this.style.gap[gutter] = parseDimension(v)
855
- this.markDirty()
856
- }
857
- setGapPercent(gutter: Gutter, v: number): void {
858
- this.style.gap[gutter] = percentValue(v)
859
- this.markDirty()
860
- }
861
-
862
- // -- Style getters (partial — only what tests need)
863
-
864
- getFlexDirection(): FlexDirection {
865
- return this.style.flexDirection
866
- }
867
- getJustifyContent(): Justify {
868
- return this.style.justifyContent
869
- }
870
- getAlignItems(): Align {
871
- return this.style.alignItems
872
- }
873
- getAlignSelf(): Align {
874
- return this.style.alignSelf
875
- }
876
- getAlignContent(): Align {
877
- return this.style.alignContent
878
- }
879
- getFlexGrow(): number {
880
- return this.style.flexGrow
881
- }
882
- getFlexShrink(): number {
883
- return this.style.flexShrink
884
- }
885
- getFlexBasis(): Value {
886
- return this.style.flexBasis
887
- }
888
- getFlexWrap(): Wrap {
889
- return this.style.flexWrap
890
- }
891
- getWidth(): Value {
892
- return this.style.width
893
- }
894
- getHeight(): Value {
895
- return this.style.height
896
- }
897
- getOverflow(): Overflow {
898
- return this.style.overflow
899
- }
900
- getPositionType(): PositionType {
901
- return this.style.positionType
902
- }
903
- getDirection(): Direction {
904
- return this.style.direction
905
- }
906
-
907
- // -- Unused API stubs (present for API parity)
908
-
909
- copyStyle(_: Node): void {}
910
- setDirtiedFunc(_: unknown): void {}
911
- unsetDirtiedFunc(): void {}
912
- setIsReferenceBaseline(v: boolean): void {
913
- this.isReferenceBaseline_ = v
914
- this.markDirty()
915
- }
916
- isReferenceBaseline(): boolean {
917
- return this.isReferenceBaseline_
918
- }
919
- setAspectRatio(_: number | undefined): void {}
920
- getAspectRatio(): number {
921
- return NaN
922
- }
923
- setAlwaysFormsContainingBlock(_: boolean): void {}
924
-
925
- // -- Layout entry point
926
-
927
- calculateLayout(
928
- ownerWidth: number | undefined,
929
- ownerHeight: number | undefined,
930
- _direction?: Direction,
931
- ): void {
932
- _yogaNodesVisited = 0
933
- _yogaMeasureCalls = 0
934
- _yogaCacheHits = 0
935
- _generation++
936
- const w = ownerWidth === undefined ? NaN : ownerWidth
937
- const h = ownerHeight === undefined ? NaN : ownerHeight
938
- layoutNode(
939
- this,
940
- w,
941
- h,
942
- isDefined(w) ? MeasureMode.Exactly : MeasureMode.Undefined,
943
- isDefined(h) ? MeasureMode.Exactly : MeasureMode.Undefined,
944
- w,
945
- h,
946
- true,
947
- )
948
- // Root's own position = margin + position insets (yoga applies position
949
- // to the root even without a parent container; this matters for rounding
950
- // since the root's abs top/left seeds the pixel-grid walk).
951
- const mar = this.layout.margin
952
- const posL = resolveValue(
953
- resolveEdgeRaw(this.style.position, EDGE_LEFT),
954
- isDefined(w) ? w : 0,
955
- )
956
- const posT = resolveValue(
957
- resolveEdgeRaw(this.style.position, EDGE_TOP),
958
- isDefined(w) ? w : 0,
959
- )
960
- this.layout.left = mar[EDGE_LEFT] + (isDefined(posL) ? posL : 0)
961
- this.layout.top = mar[EDGE_TOP] + (isDefined(posT) ? posT : 0)
962
- roundLayout(this, this.config.pointScaleFactor, 0, 0)
963
- }
964
- }
965
-
966
- const DEFAULT_CONFIG = createConfig()
967
-
968
- const CACHE_SLOTS = 4
969
- function cacheWrite(
970
- node: Node,
971
- aW: number,
972
- aH: number,
973
- wM: MeasureMode,
974
- hM: MeasureMode,
975
- oW: number,
976
- oH: number,
977
- fW: boolean,
978
- fH: boolean,
979
- wasDirty: boolean,
980
- ): void {
981
- if (!node._cIn) {
982
- node._cIn = new Float64Array(CACHE_SLOTS * 8)
983
- node._cOut = new Float64Array(CACHE_SLOTS * 2)
984
- }
985
- // First write after a dirty clears stale entries from before the dirty.
986
- // _cGen < _generation means entries are from a previous calculateLayout;
987
- // if wasDirty, the subtree changed since then → old dimensions invalid.
988
- // Clean nodes' old entries stay — same subtree → same result for same
989
- // inputs, so cross-generation caching works (the scroll hot path where
990
- // 499 clean messages cache-hit while one dirty leaf recomputes).
991
- if (wasDirty && node._cGen !== _generation) {
992
- node._cN = 0
993
- node._cWr = 0
994
- }
995
- // LRU write index wraps; _cN stays at CACHE_SLOTS so the read scan always
996
- // checks all populated slots (not just those since last wrap).
997
- const i = node._cWr++ % CACHE_SLOTS
998
- if (node._cN < CACHE_SLOTS) node._cN = node._cWr
999
- const o = i * 8
1000
- const cIn = node._cIn
1001
- cIn[o] = aW
1002
- cIn[o + 1] = aH
1003
- cIn[o + 2] = wM
1004
- cIn[o + 3] = hM
1005
- cIn[o + 4] = oW
1006
- cIn[o + 5] = oH
1007
- cIn[o + 6] = fW ? 1 : 0
1008
- cIn[o + 7] = fH ? 1 : 0
1009
- node._cOut![i * 2] = node.layout.width
1010
- node._cOut![i * 2 + 1] = node.layout.height
1011
- node._cGen = _generation
1012
- }
1013
-
1014
- // Store computed layout.width/height into the single-slot cache output fields.
1015
- // _hasL/_hasM inputs are committed at the TOP of layoutNode (before compute);
1016
- // outputs must be committed HERE (after compute) so a cache hit can restore
1017
- // the correct dimensions. Without this, a _hasL hit returns whatever
1018
- // layout.width/height was left by the last call — which may be the intrinsic
1019
- // content height from a heightMode=Undefined measure pass rather than the
1020
- // constrained viewport height from the layout pass. That's the scrollbox
1021
- // vpH=33→2624 bug: scrollTop clamps to 0, viewport goes blank.
1022
- function commitCacheOutputs(node: Node, performLayout: boolean): void {
1023
- if (performLayout) {
1024
- node._lOutW = node.layout.width
1025
- node._lOutH = node.layout.height
1026
- } else {
1027
- node._mOutW = node.layout.width
1028
- node._mOutH = node.layout.height
1029
- }
1030
- }
1031
-
1032
- // --
1033
- // Core flexbox algorithm
1034
-
1035
- // Profiling counters — reset per calculateLayout, read via getYogaCounters.
1036
- // Incremented on each calculateLayout(). Nodes stamp _fbGen/_cGen when
1037
- // their cache is written; a cache entry with gen === _generation was
1038
- // computed THIS pass and is fresh regardless of isDirty_ state.
1039
- let _generation = 0
1040
- let _yogaNodesVisited = 0
1041
- let _yogaMeasureCalls = 0
1042
- let _yogaCacheHits = 0
1043
- let _yogaLiveNodes = 0
1044
- export function getYogaCounters(): {
1045
- visited: number
1046
- measured: number
1047
- cacheHits: number
1048
- live: number
1049
- } {
1050
- return {
1051
- visited: _yogaNodesVisited,
1052
- measured: _yogaMeasureCalls,
1053
- cacheHits: _yogaCacheHits,
1054
- live: _yogaLiveNodes,
1055
- }
1056
- }
1057
-
1058
- function layoutNode(
1059
- node: Node,
1060
- availableWidth: number,
1061
- availableHeight: number,
1062
- widthMode: MeasureMode,
1063
- heightMode: MeasureMode,
1064
- ownerWidth: number,
1065
- ownerHeight: number,
1066
- performLayout: boolean,
1067
- // When true, ignore style dimension on this axis — the flex container
1068
- // has already determined the main size (flex-basis + grow/shrink result).
1069
- forceWidth = false,
1070
- forceHeight = false,
1071
- ): void {
1072
- _yogaNodesVisited++
1073
- const style = node.style
1074
- const layout = node.layout
1075
-
1076
- // Dirty-flag skip: clean subtree + matching inputs → layout object already
1077
- // holds the answer. A cached layout result also satisfies a measure request
1078
- // (positions are a superset of dimensions); the reverse does not hold.
1079
- // Same-generation entries are fresh regardless of isDirty_ — they were
1080
- // computed THIS calculateLayout, the subtree hasn't changed since.
1081
- // Previous-generation entries need !isDirty_ (a dirty node's cache from
1082
- // before the dirty is stale).
1083
- // sameGen bypass only for MEASURE calls — a layout-pass cache hit would
1084
- // skip the child-positioning recursion (STEP 5), leaving children at
1085
- // stale positions. Measure calls only need w/h which the cache stores.
1086
- const sameGen = node._cGen === _generation && !performLayout
1087
- if (!node.isDirty_ || sameGen) {
1088
- if (
1089
- !node.isDirty_ &&
1090
- node._hasL &&
1091
- node._lWM === widthMode &&
1092
- node._lHM === heightMode &&
1093
- node._lFW === forceWidth &&
1094
- node._lFH === forceHeight &&
1095
- sameFloat(node._lW, availableWidth) &&
1096
- sameFloat(node._lH, availableHeight) &&
1097
- sameFloat(node._lOW, ownerWidth) &&
1098
- sameFloat(node._lOH, ownerHeight)
1099
- ) {
1100
- _yogaCacheHits++
1101
- layout.width = node._lOutW
1102
- layout.height = node._lOutH
1103
- return
1104
- }
1105
- // Multi-entry cache: scan for matching inputs, restore cached w/h on hit.
1106
- // Covers the scroll case where a dirty ancestor's measure→layout cascade
1107
- // produces N>1 distinct input combos per clean child — the single _hasL
1108
- // slot thrashed, forcing full subtree recursion. With 500-message
1109
- // scrollbox and one dirty leaf, this took dirty-leaf relayout from
1110
- // 76k layoutNode calls (21.7×nodes) to 4k (1.2×nodes), 6.86ms → 550µs.
1111
- // Same-generation check covers fresh-mounted (dirty) nodes during
1112
- // virtual scroll — the dirty chain invokes them ≥2^depth times, first
1113
- // call writes cache, rest hit: 105k visits → ~10k for 1593-node tree.
1114
- if (node._cN > 0 && (sameGen || !node.isDirty_)) {
1115
- const cIn = node._cIn!
1116
- for (let i = 0; i < node._cN; i++) {
1117
- const o = i * 8
1118
- if (
1119
- cIn[o + 2] === widthMode &&
1120
- cIn[o + 3] === heightMode &&
1121
- cIn[o + 6] === (forceWidth ? 1 : 0) &&
1122
- cIn[o + 7] === (forceHeight ? 1 : 0) &&
1123
- sameFloat(cIn[o]!, availableWidth) &&
1124
- sameFloat(cIn[o + 1]!, availableHeight) &&
1125
- sameFloat(cIn[o + 4]!, ownerWidth) &&
1126
- sameFloat(cIn[o + 5]!, ownerHeight)
1127
- ) {
1128
- layout.width = node._cOut![i * 2]!
1129
- layout.height = node._cOut![i * 2 + 1]!
1130
- _yogaCacheHits++
1131
- return
1132
- }
1133
- }
1134
- }
1135
- if (
1136
- !node.isDirty_ &&
1137
- !performLayout &&
1138
- node._hasM &&
1139
- node._mWM === widthMode &&
1140
- node._mHM === heightMode &&
1141
- sameFloat(node._mW, availableWidth) &&
1142
- sameFloat(node._mH, availableHeight) &&
1143
- sameFloat(node._mOW, ownerWidth) &&
1144
- sameFloat(node._mOH, ownerHeight)
1145
- ) {
1146
- layout.width = node._mOutW
1147
- layout.height = node._mOutH
1148
- _yogaCacheHits++
1149
- return
1150
- }
1151
- }
1152
- // Commit cache inputs up front so every return path leaves a valid entry.
1153
- // Only clear isDirty_ on the LAYOUT pass — the measure pass (computeFlexBasis
1154
- // → layoutNode(performLayout=false)) runs before the layout pass in the same
1155
- // calculateLayout call. Clearing dirty during measure lets the subsequent
1156
- // layout pass hit the STALE _hasL cache from the previous calculateLayout
1157
- // (before children were inserted), so ScrollBox content height never grows
1158
- // and sticky-scroll never follows new content. A dirty node's _hasL entry is
1159
- // stale by definition — invalidate it so the layout pass recomputes.
1160
- const wasDirty = node.isDirty_
1161
- if (performLayout) {
1162
- node._lW = availableWidth
1163
- node._lH = availableHeight
1164
- node._lWM = widthMode
1165
- node._lHM = heightMode
1166
- node._lOW = ownerWidth
1167
- node._lOH = ownerHeight
1168
- node._lFW = forceWidth
1169
- node._lFH = forceHeight
1170
- node._hasL = true
1171
- node.isDirty_ = false
1172
- // Previous approach cleared _cN here to prevent stale pre-dirty entries
1173
- // from hitting (long-continuous blank-screen bug). Now replaced by
1174
- // generation stamping: the cache check requires sameGen || !isDirty_, so
1175
- // previous-generation entries from a dirty node can't hit. Clearing here
1176
- // would wipe fresh same-generation entries from an earlier measure call,
1177
- // forcing recompute on the layout call.
1178
- if (wasDirty) node._hasM = false
1179
- } else {
1180
- node._mW = availableWidth
1181
- node._mH = availableHeight
1182
- node._mWM = widthMode
1183
- node._mHM = heightMode
1184
- node._mOW = ownerWidth
1185
- node._mOH = ownerHeight
1186
- node._hasM = true
1187
- // Don't clear isDirty_. For DIRTY nodes, invalidate _hasL so the upcoming
1188
- // performLayout=true call recomputes with the new child set (otherwise
1189
- // sticky-scroll never follows new content — the bug from 4557bc9f9c).
1190
- // Clean nodes keep _hasL: their layout from the previous generation is
1191
- // still valid, they're only here because an ancestor is dirty and called
1192
- // with different inputs than cached.
1193
- if (wasDirty) node._hasL = false
1194
- }
1195
-
1196
- // Resolve padding/border/margin against ownerWidth (yoga uses ownerWidth for %)
1197
- // Write directly into the pre-allocated layout arrays — avoids 3 allocs per
1198
- // layoutNode call and 12 resolveEdge calls (was the #1 hotspot per CPU profile).
1199
- // Skip entirely when no edges are set — the 4-write zero is cheaper than
1200
- // the ~20 reads + ~15 compares resolveEdges4Into does to produce zeros.
1201
- const pad = layout.padding
1202
- const bor = layout.border
1203
- const mar = layout.margin
1204
- if (node._hasPadding) resolveEdges4Into(style.padding, ownerWidth, pad)
1205
- else pad[0] = pad[1] = pad[2] = pad[3] = 0
1206
- if (node._hasBorder) resolveEdges4Into(style.border, ownerWidth, bor)
1207
- else bor[0] = bor[1] = bor[2] = bor[3] = 0
1208
- if (node._hasMargin) resolveEdges4Into(style.margin, ownerWidth, mar)
1209
- else mar[0] = mar[1] = mar[2] = mar[3] = 0
1210
-
1211
- const paddingBorderWidth = pad[0] + pad[2] + bor[0] + bor[2]
1212
- const paddingBorderHeight = pad[1] + pad[3] + bor[1] + bor[3]
1213
-
1214
- // Resolve style dimensions
1215
- const styleWidth = forceWidth ? NaN : resolveValue(style.width, ownerWidth)
1216
- const styleHeight = forceHeight
1217
- ? NaN
1218
- : resolveValue(style.height, ownerHeight)
1219
-
1220
- // If style dimension is defined, it overrides the available size
1221
- let width = availableWidth
1222
- let height = availableHeight
1223
- let wMode = widthMode
1224
- let hMode = heightMode
1225
- if (isDefined(styleWidth)) {
1226
- width = styleWidth
1227
- wMode = MeasureMode.Exactly
1228
- }
1229
- if (isDefined(styleHeight)) {
1230
- height = styleHeight
1231
- hMode = MeasureMode.Exactly
1232
- }
1233
-
1234
- // Apply min/max constraints to the node's own dimensions
1235
- width = boundAxis(style, true, width, ownerWidth, ownerHeight)
1236
- height = boundAxis(style, false, height, ownerWidth, ownerHeight)
1237
-
1238
- // Measure-func leaf node
1239
- if (node.measureFunc && node.children.length === 0) {
1240
- const innerW =
1241
- wMode === MeasureMode.Undefined
1242
- ? NaN
1243
- : Math.max(0, width - paddingBorderWidth)
1244
- const innerH =
1245
- hMode === MeasureMode.Undefined
1246
- ? NaN
1247
- : Math.max(0, height - paddingBorderHeight)
1248
- _yogaMeasureCalls++
1249
- const measured = node.measureFunc(innerW, wMode, innerH, hMode)
1250
- node.layout.width =
1251
- wMode === MeasureMode.Exactly
1252
- ? width
1253
- : boundAxis(
1254
- style,
1255
- true,
1256
- (measured.width ?? 0) + paddingBorderWidth,
1257
- ownerWidth,
1258
- ownerHeight,
1259
- )
1260
- node.layout.height =
1261
- hMode === MeasureMode.Exactly
1262
- ? height
1263
- : boundAxis(
1264
- style,
1265
- false,
1266
- (measured.height ?? 0) + paddingBorderHeight,
1267
- ownerWidth,
1268
- ownerHeight,
1269
- )
1270
- commitCacheOutputs(node, performLayout)
1271
- // Write cache even for dirty nodes — fresh-mounted items during virtual
1272
- // scroll are dirty on first layout, but the dirty chain's measure→layout
1273
- // cascade invokes them ≥2^depth times per calculateLayout. Writing here
1274
- // lets the 2nd+ calls hit cache (isDirty_ was cleared in the layout pass
1275
- // above). Measured: 105k visits → 10k for a 1593-node fresh-mount tree.
1276
- cacheWrite(
1277
- node,
1278
- availableWidth,
1279
- availableHeight,
1280
- widthMode,
1281
- heightMode,
1282
- ownerWidth,
1283
- ownerHeight,
1284
- forceWidth,
1285
- forceHeight,
1286
- wasDirty,
1287
- )
1288
- return
1289
- }
1290
-
1291
- // Leaf node with no children and no measure func
1292
- if (node.children.length === 0) {
1293
- node.layout.width =
1294
- wMode === MeasureMode.Exactly
1295
- ? width
1296
- : boundAxis(style, true, paddingBorderWidth, ownerWidth, ownerHeight)
1297
- node.layout.height =
1298
- hMode === MeasureMode.Exactly
1299
- ? height
1300
- : boundAxis(style, false, paddingBorderHeight, ownerWidth, ownerHeight)
1301
- commitCacheOutputs(node, performLayout)
1302
- // Write cache even for dirty nodes — fresh-mounted items during virtual
1303
- // scroll are dirty on first layout, but the dirty chain's measure→layout
1304
- // cascade invokes them ≥2^depth times per calculateLayout. Writing here
1305
- // lets the 2nd+ calls hit cache (isDirty_ was cleared in the layout pass
1306
- // above). Measured: 105k visits → 10k for a 1593-node fresh-mount tree.
1307
- cacheWrite(
1308
- node,
1309
- availableWidth,
1310
- availableHeight,
1311
- widthMode,
1312
- heightMode,
1313
- ownerWidth,
1314
- ownerHeight,
1315
- forceWidth,
1316
- forceHeight,
1317
- wasDirty,
1318
- )
1319
- return
1320
- }
1321
-
1322
- // Container with children — run flexbox algorithm
1323
- const mainAxis = style.flexDirection
1324
- const crossAx = crossAxis(mainAxis)
1325
- const isMainRow = isRow(mainAxis)
1326
-
1327
- const mainSize = isMainRow ? width : height
1328
- const crossSize = isMainRow ? height : width
1329
- const mainMode = isMainRow ? wMode : hMode
1330
- const crossMode = isMainRow ? hMode : wMode
1331
- const mainPadBorder = isMainRow ? paddingBorderWidth : paddingBorderHeight
1332
- const crossPadBorder = isMainRow ? paddingBorderHeight : paddingBorderWidth
1333
-
1334
- const innerMainSize = isDefined(mainSize)
1335
- ? Math.max(0, mainSize - mainPadBorder)
1336
- : NaN
1337
- const innerCrossSize = isDefined(crossSize)
1338
- ? Math.max(0, crossSize - crossPadBorder)
1339
- : NaN
1340
-
1341
- // Resolve gap
1342
- const gapMain = resolveGap(
1343
- style,
1344
- isMainRow ? Gutter.Column : Gutter.Row,
1345
- innerMainSize,
1346
- )
1347
-
1348
- // Partition children into flow vs absolute. display:contents nodes are
1349
- // transparent — their children are lifted into the grandparent's child list
1350
- // (recursively), and the contents node itself gets zero layout.
1351
- const flowChildren: Node[] = []
1352
- const absChildren: Node[] = []
1353
- collectLayoutChildren(node, flowChildren, absChildren)
1354
-
1355
- // ownerW/H are the reference sizes for resolving children's percentage
1356
- // values. Per CSS, a % width resolves against the parent's content-box
1357
- // width. If this node's width is indefinite, children's % widths are also
1358
- // indefinite — do NOT fall through to the grandparent's size.
1359
- const ownerW = isDefined(width) ? width : NaN
1360
- const ownerH = isDefined(height) ? height : NaN
1361
- const isWrap = style.flexWrap !== Wrap.NoWrap
1362
- const gapCross = resolveGap(
1363
- style,
1364
- isMainRow ? Gutter.Row : Gutter.Column,
1365
- innerCrossSize,
1366
- )
1367
-
1368
- // STEP 1: Compute flex-basis for each flow child and break into lines.
1369
- // Single-line (NoWrap) containers always get one line; multi-line containers
1370
- // break when accumulated basis+margin+gap exceeds innerMainSize.
1371
- for (const c of flowChildren) {
1372
- c._flexBasis = computeFlexBasis(
1373
- c,
1374
- mainAxis,
1375
- innerMainSize,
1376
- innerCrossSize,
1377
- crossMode,
1378
- ownerW,
1379
- ownerH,
1380
- )
1381
- }
1382
- const lines: Node[][] = []
1383
- if (!isWrap || !isDefined(innerMainSize) || flowChildren.length === 0) {
1384
- for (const c of flowChildren) c._lineIndex = 0
1385
- lines.push(flowChildren)
1386
- } else {
1387
- // Line-break decisions use the min/max-clamped basis (flexbox spec §9.3.5:
1388
- // "hypothetical main size"), not the raw flex-basis.
1389
- let lineStart = 0
1390
- let lineLen = 0
1391
- for (let i = 0; i < flowChildren.length; i++) {
1392
- const c = flowChildren[i]!
1393
- const hypo = boundAxis(c.style, isMainRow, c._flexBasis, ownerW, ownerH)
1394
- const outer = Math.max(0, hypo) + childMarginForAxis(c, mainAxis, ownerW)
1395
- const withGap = i > lineStart ? gapMain : 0
1396
- if (i > lineStart && lineLen + withGap + outer > innerMainSize) {
1397
- lines.push(flowChildren.slice(lineStart, i))
1398
- lineStart = i
1399
- lineLen = outer
1400
- } else {
1401
- lineLen += withGap + outer
1402
- }
1403
- c._lineIndex = lines.length
1404
- }
1405
- lines.push(flowChildren.slice(lineStart))
1406
- }
1407
- const lineCount = lines.length
1408
- const isBaseline = isBaselineLayout(node, flowChildren)
1409
-
1410
- // STEP 2+3: For each line, resolve flexible lengths and lay out children to
1411
- // measure cross sizes. Track per-line consumed main and max cross.
1412
- const lineConsumedMain: number[] = new Array(lineCount)
1413
- const lineCrossSizes: number[] = new Array(lineCount)
1414
- // Baseline layout tracks max ascent (baseline + leading margin) per line so
1415
- // baseline-aligned items can be positioned at maxAscent - childBaseline.
1416
- const lineMaxAscent: number[] = isBaseline ? new Array(lineCount).fill(0) : []
1417
- let maxLineMain = 0
1418
- let totalLinesCross = 0
1419
- for (let li = 0; li < lineCount; li++) {
1420
- const line = lines[li]!
1421
- const lineGap = line.length > 1 ? gapMain * (line.length - 1) : 0
1422
- let lineBasis = lineGap
1423
- for (const c of line) {
1424
- lineBasis += c._flexBasis + childMarginForAxis(c, mainAxis, ownerW)
1425
- }
1426
- // Resolve flexible lengths against available inner main. For indefinite
1427
- // containers with min/max, flex against the clamped size.
1428
- let availMain = innerMainSize
1429
- if (!isDefined(availMain)) {
1430
- const mainOwner = isMainRow ? ownerWidth : ownerHeight
1431
- const minM = resolveValue(
1432
- isMainRow ? style.minWidth : style.minHeight,
1433
- mainOwner,
1434
- )
1435
- const maxM = resolveValue(
1436
- isMainRow ? style.maxWidth : style.maxHeight,
1437
- mainOwner,
1438
- )
1439
- if (isDefined(maxM) && lineBasis > maxM - mainPadBorder) {
1440
- availMain = Math.max(0, maxM - mainPadBorder)
1441
- } else if (isDefined(minM) && lineBasis < minM - mainPadBorder) {
1442
- availMain = Math.max(0, minM - mainPadBorder)
1443
- }
1444
- }
1445
- resolveFlexibleLengths(
1446
- line,
1447
- availMain,
1448
- lineBasis,
1449
- isMainRow,
1450
- ownerW,
1451
- ownerH,
1452
- )
1453
-
1454
- // Lay out each child in this line to measure cross
1455
- let lineCross = 0
1456
- for (const c of line) {
1457
- const cStyle = c.style
1458
- const childAlign =
1459
- cStyle.alignSelf === Align.Auto ? style.alignItems : cStyle.alignSelf
1460
- const cMarginCross = childMarginForAxis(c, crossAx, ownerW)
1461
- let childCrossSize = NaN
1462
- let childCrossMode: MeasureMode = MeasureMode.Undefined
1463
- const resolvedCrossStyle = resolveValue(
1464
- isMainRow ? cStyle.height : cStyle.width,
1465
- isMainRow ? ownerH : ownerW,
1466
- )
1467
- const crossLeadE = isMainRow ? EDGE_TOP : EDGE_LEFT
1468
- const crossTrailE = isMainRow ? EDGE_BOTTOM : EDGE_RIGHT
1469
- const hasCrossAutoMargin =
1470
- c._hasAutoMargin &&
1471
- (isMarginAuto(cStyle.margin, crossLeadE) ||
1472
- isMarginAuto(cStyle.margin, crossTrailE))
1473
- // Single-line stretch goes directly to the container cross size.
1474
- // Multi-line wrap measures intrinsic cross (Undefined mode) so
1475
- // flex-grow grandchildren don't expand to the container — the line
1476
- // cross size is determined first, then items are re-stretched.
1477
- if (isDefined(resolvedCrossStyle)) {
1478
- childCrossSize = resolvedCrossStyle
1479
- childCrossMode = MeasureMode.Exactly
1480
- } else if (
1481
- childAlign === Align.Stretch &&
1482
- !hasCrossAutoMargin &&
1483
- !isWrap &&
1484
- isDefined(innerCrossSize) &&
1485
- crossMode === MeasureMode.Exactly
1486
- ) {
1487
- childCrossSize = Math.max(0, innerCrossSize - cMarginCross)
1488
- childCrossMode = MeasureMode.Exactly
1489
- } else if (!isWrap && isDefined(innerCrossSize)) {
1490
- childCrossSize = Math.max(0, innerCrossSize - cMarginCross)
1491
- childCrossMode = MeasureMode.AtMost
1492
- }
1493
- const cw = isMainRow ? c._mainSize : childCrossSize
1494
- const ch = isMainRow ? childCrossSize : c._mainSize
1495
- layoutNode(
1496
- c,
1497
- cw,
1498
- ch,
1499
- isMainRow ? MeasureMode.Exactly : childCrossMode,
1500
- isMainRow ? childCrossMode : MeasureMode.Exactly,
1501
- ownerW,
1502
- ownerH,
1503
- performLayout,
1504
- isMainRow,
1505
- !isMainRow,
1506
- )
1507
- c._crossSize = isMainRow ? c.layout.height : c.layout.width
1508
- lineCross = Math.max(lineCross, c._crossSize + cMarginCross)
1509
- }
1510
- // Baseline layout: line cross size must fit maxAscent + maxDescent of
1511
- // baseline-aligned children (yoga STEP 8). Only applies to row direction.
1512
- if (isBaseline) {
1513
- let maxAscent = 0
1514
- let maxDescent = 0
1515
- for (const c of line) {
1516
- if (resolveChildAlign(node, c) !== Align.Baseline) continue
1517
- const mTop = resolveEdge(c.style.margin, EDGE_TOP, ownerW)
1518
- const mBot = resolveEdge(c.style.margin, EDGE_BOTTOM, ownerW)
1519
- const ascent = calculateBaseline(c) + mTop
1520
- const descent = c.layout.height + mTop + mBot - ascent
1521
- if (ascent > maxAscent) maxAscent = ascent
1522
- if (descent > maxDescent) maxDescent = descent
1523
- }
1524
- lineMaxAscent[li] = maxAscent
1525
- if (maxAscent + maxDescent > lineCross) {
1526
- lineCross = maxAscent + maxDescent
1527
- }
1528
- }
1529
- // layoutNode(c) at line ~1117 above already resolved c.layout.margin[] via
1530
- // resolveEdges4Into with the same ownerW — read directly instead of
1531
- // re-resolving through childMarginForAxis → 2× resolveEdge.
1532
- const mainLead = leadingEdge(mainAxis)
1533
- const mainTrail = trailingEdge(mainAxis)
1534
- let consumed = lineGap
1535
- for (const c of line) {
1536
- const cm = c.layout.margin
1537
- consumed += c._mainSize + cm[mainLead]! + cm[mainTrail]!
1538
- }
1539
- lineConsumedMain[li] = consumed
1540
- lineCrossSizes[li] = lineCross
1541
- maxLineMain = Math.max(maxLineMain, consumed)
1542
- totalLinesCross += lineCross
1543
- }
1544
- const totalCrossGap = lineCount > 1 ? gapCross * (lineCount - 1) : 0
1545
- totalLinesCross += totalCrossGap
1546
-
1547
- // STEP 4: Determine container dimensions. Per yoga's STEP 9, for both
1548
- // AtMost (FitContent) and Undefined (MaxContent) the node sizes to its
1549
- // content — AtMost is NOT a hard clamp, items may overflow the available
1550
- // space (CSS "fit-content" behavior). Only Scroll overflow clamps to the
1551
- // available size. Wrap containers that broke into multiple lines under
1552
- // AtMost fill the available main size since they wrapped at that boundary.
1553
- const isScroll = style.overflow === Overflow.Scroll
1554
- const contentMain = maxLineMain + mainPadBorder
1555
- const finalMainSize =
1556
- mainMode === MeasureMode.Exactly
1557
- ? mainSize
1558
- : mainMode === MeasureMode.AtMost && isScroll
1559
- ? Math.max(Math.min(mainSize, contentMain), mainPadBorder)
1560
- : isWrap && lineCount > 1 && mainMode === MeasureMode.AtMost
1561
- ? mainSize
1562
- : contentMain
1563
- const contentCross = totalLinesCross + crossPadBorder
1564
- const finalCrossSize =
1565
- crossMode === MeasureMode.Exactly
1566
- ? crossSize
1567
- : crossMode === MeasureMode.AtMost && isScroll
1568
- ? Math.max(Math.min(crossSize, contentCross), crossPadBorder)
1569
- : contentCross
1570
- node.layout.width = boundAxis(
1571
- style,
1572
- true,
1573
- isMainRow ? finalMainSize : finalCrossSize,
1574
- ownerWidth,
1575
- ownerHeight,
1576
- )
1577
- node.layout.height = boundAxis(
1578
- style,
1579
- false,
1580
- isMainRow ? finalCrossSize : finalMainSize,
1581
- ownerWidth,
1582
- ownerHeight,
1583
- )
1584
- commitCacheOutputs(node, performLayout)
1585
- // Write cache even for dirty nodes — fresh-mounted items during virtual scroll
1586
- cacheWrite(
1587
- node,
1588
- availableWidth,
1589
- availableHeight,
1590
- widthMode,
1591
- heightMode,
1592
- ownerWidth,
1593
- ownerHeight,
1594
- forceWidth,
1595
- forceHeight,
1596
- wasDirty,
1597
- )
1598
-
1599
- if (!performLayout) return
1600
-
1601
- // STEP 5: Position lines (align-content) and children (justify-content +
1602
- // align-items + auto margins).
1603
- const actualInnerMain =
1604
- (isMainRow ? node.layout.width : node.layout.height) - mainPadBorder
1605
- const actualInnerCross =
1606
- (isMainRow ? node.layout.height : node.layout.width) - crossPadBorder
1607
- const mainLeadEdgePhys = leadingEdge(mainAxis)
1608
- const mainTrailEdgePhys = trailingEdge(mainAxis)
1609
- const crossLeadEdgePhys = isMainRow ? EDGE_TOP : EDGE_LEFT
1610
- const crossTrailEdgePhys = isMainRow ? EDGE_BOTTOM : EDGE_RIGHT
1611
- const reversed = isReverse(mainAxis)
1612
- const mainContainerSize = isMainRow ? node.layout.width : node.layout.height
1613
- const crossLead = pad[crossLeadEdgePhys]! + bor[crossLeadEdgePhys]!
1614
-
1615
- // Align-content: distribute free cross space among lines. Single-line
1616
- // containers use the full cross size for the one line (align-items handles
1617
- // positioning within it).
1618
- let lineCrossOffset = crossLead
1619
- let betweenLines = gapCross
1620
- const freeCross = actualInnerCross - totalLinesCross
1621
- if (lineCount === 1 && !isWrap && !isBaseline) {
1622
- lineCrossSizes[0] = actualInnerCross
1623
- } else {
1624
- const remCross = Math.max(0, freeCross)
1625
- switch (style.alignContent) {
1626
- case Align.FlexStart:
1627
- break
1628
- case Align.Center:
1629
- lineCrossOffset += freeCross / 2
1630
- break
1631
- case Align.FlexEnd:
1632
- lineCrossOffset += freeCross
1633
- break
1634
- case Align.Stretch:
1635
- if (lineCount > 0 && remCross > 0) {
1636
- const add = remCross / lineCount
1637
- for (let i = 0; i < lineCount; i++) lineCrossSizes[i]! += add
1638
- }
1639
- break
1640
- case Align.SpaceBetween:
1641
- if (lineCount > 1) betweenLines += remCross / (lineCount - 1)
1642
- break
1643
- case Align.SpaceAround:
1644
- if (lineCount > 0) {
1645
- betweenLines += remCross / lineCount
1646
- lineCrossOffset += remCross / lineCount / 2
1647
- }
1648
- break
1649
- case Align.SpaceEvenly:
1650
- if (lineCount > 0) {
1651
- betweenLines += remCross / (lineCount + 1)
1652
- lineCrossOffset += remCross / (lineCount + 1)
1653
- }
1654
- break
1655
- default:
1656
- break
1657
- }
1658
- }
1659
-
1660
- // For wrap-reverse, lines stack from the trailing cross edge. Walk lines in
1661
- // order but flip the cross position within the container.
1662
- const wrapReverse = style.flexWrap === Wrap.WrapReverse
1663
- const crossContainerSize = isMainRow ? node.layout.height : node.layout.width
1664
- let lineCrossPos = lineCrossOffset
1665
- for (let li = 0; li < lineCount; li++) {
1666
- const line = lines[li]!
1667
- const lineCross = lineCrossSizes[li]!
1668
- const consumedMain = lineConsumedMain[li]!
1669
- const n = line.length
1670
-
1671
- // Re-stretch children whose cross is auto and align is stretch, now that
1672
- // the line cross size is known. Needed for multi-line wrap (line cross
1673
- // wasn't known during initial measure) AND single-line when the container
1674
- // cross was not Exactly (initial stretch at ~line 1250 was skipped because
1675
- // innerCrossSize wasn't defined — the container sized to max child cross).
1676
- if (isWrap || crossMode !== MeasureMode.Exactly) {
1677
- for (const c of line) {
1678
- const cStyle = c.style
1679
- const childAlign =
1680
- cStyle.alignSelf === Align.Auto ? style.alignItems : cStyle.alignSelf
1681
- const crossStyleDef = isDefined(
1682
- resolveValue(
1683
- isMainRow ? cStyle.height : cStyle.width,
1684
- isMainRow ? ownerH : ownerW,
1685
- ),
1686
- )
1687
- const hasCrossAutoMargin =
1688
- c._hasAutoMargin &&
1689
- (isMarginAuto(cStyle.margin, crossLeadEdgePhys) ||
1690
- isMarginAuto(cStyle.margin, crossTrailEdgePhys))
1691
- if (
1692
- childAlign === Align.Stretch &&
1693
- !crossStyleDef &&
1694
- !hasCrossAutoMargin
1695
- ) {
1696
- const cMarginCross = childMarginForAxis(c, crossAx, ownerW)
1697
- const target = Math.max(0, lineCross - cMarginCross)
1698
- if (c._crossSize !== target) {
1699
- const cw = isMainRow ? c._mainSize : target
1700
- const ch = isMainRow ? target : c._mainSize
1701
- layoutNode(
1702
- c,
1703
- cw,
1704
- ch,
1705
- MeasureMode.Exactly,
1706
- MeasureMode.Exactly,
1707
- ownerW,
1708
- ownerH,
1709
- performLayout,
1710
- isMainRow,
1711
- !isMainRow,
1712
- )
1713
- c._crossSize = target
1714
- }
1715
- }
1716
- }
1717
- }
1718
-
1719
- // Justify-content + auto margins for this line
1720
- let mainOffset = pad[mainLeadEdgePhys]! + bor[mainLeadEdgePhys]!
1721
- let betweenMain = gapMain
1722
- let numAutoMarginsMain = 0
1723
- for (const c of line) {
1724
- if (!c._hasAutoMargin) continue
1725
- if (isMarginAuto(c.style.margin, mainLeadEdgePhys)) numAutoMarginsMain++
1726
- if (isMarginAuto(c.style.margin, mainTrailEdgePhys)) numAutoMarginsMain++
1727
- }
1728
- const freeMain = actualInnerMain - consumedMain
1729
- const remainingMain = Math.max(0, freeMain)
1730
- const autoMarginMainSize =
1731
- numAutoMarginsMain > 0 && remainingMain > 0
1732
- ? remainingMain / numAutoMarginsMain
1733
- : 0
1734
- if (numAutoMarginsMain === 0) {
1735
- switch (style.justifyContent) {
1736
- case Justify.FlexStart:
1737
- break
1738
- case Justify.Center:
1739
- mainOffset += freeMain / 2
1740
- break
1741
- case Justify.FlexEnd:
1742
- mainOffset += freeMain
1743
- break
1744
- case Justify.SpaceBetween:
1745
- if (n > 1) betweenMain += remainingMain / (n - 1)
1746
- break
1747
- case Justify.SpaceAround:
1748
- if (n > 0) {
1749
- betweenMain += remainingMain / n
1750
- mainOffset += remainingMain / n / 2
1751
- }
1752
- break
1753
- case Justify.SpaceEvenly:
1754
- if (n > 0) {
1755
- betweenMain += remainingMain / (n + 1)
1756
- mainOffset += remainingMain / (n + 1)
1757
- }
1758
- break
1759
- }
1760
- }
1761
-
1762
- const effectiveLineCrossPos = wrapReverse
1763
- ? crossContainerSize - lineCrossPos - lineCross
1764
- : lineCrossPos
1765
-
1766
- let pos = mainOffset
1767
- for (const c of line) {
1768
- const cMargin = c.style.margin
1769
- // c.layout.margin[] was populated by resolveEdges4Into inside the
1770
- // layoutNode(c) call above (same ownerW). Read resolved values directly
1771
- // instead of re-running the edge fallback chain 4× via resolveEdge.
1772
- // Auto margins resolve to 0 in layout.margin, so autoMarginMainSize
1773
- // substitution still uses the isMarginAuto check against style.
1774
- const cLayoutMargin = c.layout.margin
1775
- let autoMainLead = false
1776
- let autoMainTrail = false
1777
- let autoCrossLead = false
1778
- let autoCrossTrail = false
1779
- let mMainLead: number
1780
- let mMainTrail: number
1781
- let mCrossLead: number
1782
- let mCrossTrail: number
1783
- if (c._hasAutoMargin) {
1784
- autoMainLead = isMarginAuto(cMargin, mainLeadEdgePhys)
1785
- autoMainTrail = isMarginAuto(cMargin, mainTrailEdgePhys)
1786
- autoCrossLead = isMarginAuto(cMargin, crossLeadEdgePhys)
1787
- autoCrossTrail = isMarginAuto(cMargin, crossTrailEdgePhys)
1788
- mMainLead = autoMainLead
1789
- ? autoMarginMainSize
1790
- : cLayoutMargin[mainLeadEdgePhys]!
1791
- mMainTrail = autoMainTrail
1792
- ? autoMarginMainSize
1793
- : cLayoutMargin[mainTrailEdgePhys]!
1794
- mCrossLead = autoCrossLead ? 0 : cLayoutMargin[crossLeadEdgePhys]!
1795
- mCrossTrail = autoCrossTrail ? 0 : cLayoutMargin[crossTrailEdgePhys]!
1796
- } else {
1797
- // Fast path: no auto margins — read resolved values directly.
1798
- mMainLead = cLayoutMargin[mainLeadEdgePhys]!
1799
- mMainTrail = cLayoutMargin[mainTrailEdgePhys]!
1800
- mCrossLead = cLayoutMargin[crossLeadEdgePhys]!
1801
- mCrossTrail = cLayoutMargin[crossTrailEdgePhys]!
1802
- }
1803
-
1804
- const mainPos = reversed
1805
- ? mainContainerSize - (pos + mMainLead) - c._mainSize
1806
- : pos + mMainLead
1807
-
1808
- const childAlign =
1809
- c.style.alignSelf === Align.Auto ? style.alignItems : c.style.alignSelf
1810
- let crossPos = effectiveLineCrossPos + mCrossLead
1811
- const crossFree = lineCross - c._crossSize - mCrossLead - mCrossTrail
1812
- if (autoCrossLead && autoCrossTrail) {
1813
- crossPos += Math.max(0, crossFree) / 2
1814
- } else if (autoCrossLead) {
1815
- crossPos += Math.max(0, crossFree)
1816
- } else if (autoCrossTrail) {
1817
- // stays at leading
1818
- } else {
1819
- switch (childAlign) {
1820
- case Align.FlexStart:
1821
- case Align.Stretch:
1822
- if (wrapReverse) crossPos += crossFree
1823
- break
1824
- case Align.Center:
1825
- crossPos += crossFree / 2
1826
- break
1827
- case Align.FlexEnd:
1828
- if (!wrapReverse) crossPos += crossFree
1829
- break
1830
- case Align.Baseline:
1831
- // Row direction only (isBaselineLayout checked this). Position so
1832
- // the child's baseline aligns with the line's max ascent. Per
1833
- // yoga: top = currentLead + maxAscent - childBaseline + leadingPosition.
1834
- if (isBaseline) {
1835
- crossPos =
1836
- effectiveLineCrossPos +
1837
- lineMaxAscent[li]! -
1838
- calculateBaseline(c)
1839
- }
1840
- break
1841
- default:
1842
- break
1843
- }
1844
- }
1845
-
1846
- // Relative position offsets. Fast path: no position insets set →
1847
- // skip 4× resolveEdgeRaw + 4× resolveValue + 4× isDefined.
1848
- let relX = 0
1849
- let relY = 0
1850
- if (c._hasPosition) {
1851
- const relLeft = resolveValue(
1852
- resolveEdgeRaw(c.style.position, EDGE_LEFT),
1853
- ownerW,
1854
- )
1855
- const relRight = resolveValue(
1856
- resolveEdgeRaw(c.style.position, EDGE_RIGHT),
1857
- ownerW,
1858
- )
1859
- const relTop = resolveValue(
1860
- resolveEdgeRaw(c.style.position, EDGE_TOP),
1861
- ownerW,
1862
- )
1863
- const relBottom = resolveValue(
1864
- resolveEdgeRaw(c.style.position, EDGE_BOTTOM),
1865
- ownerW,
1866
- )
1867
- relX = isDefined(relLeft)
1868
- ? relLeft
1869
- : isDefined(relRight)
1870
- ? -relRight
1871
- : 0
1872
- relY = isDefined(relTop)
1873
- ? relTop
1874
- : isDefined(relBottom)
1875
- ? -relBottom
1876
- : 0
1877
- }
1878
-
1879
- if (isMainRow) {
1880
- c.layout.left = mainPos + relX
1881
- c.layout.top = crossPos + relY
1882
- } else {
1883
- c.layout.left = crossPos + relX
1884
- c.layout.top = mainPos + relY
1885
- }
1886
- pos += c._mainSize + mMainLead + mMainTrail + betweenMain
1887
- }
1888
- lineCrossPos += lineCross + betweenLines
1889
- }
1890
-
1891
- // STEP 6: Absolute-positioned children
1892
- for (const c of absChildren) {
1893
- layoutAbsoluteChild(
1894
- node,
1895
- c,
1896
- node.layout.width,
1897
- node.layout.height,
1898
- pad,
1899
- bor,
1900
- )
1901
- }
1902
- }
1903
-
1904
- function layoutAbsoluteChild(
1905
- parent: Node,
1906
- child: Node,
1907
- parentWidth: number,
1908
- parentHeight: number,
1909
- pad: [number, number, number, number],
1910
- bor: [number, number, number, number],
1911
- ): void {
1912
- const cs = child.style
1913
- const posLeft = resolveEdgeRaw(cs.position, EDGE_LEFT)
1914
- const posRight = resolveEdgeRaw(cs.position, EDGE_RIGHT)
1915
- const posTop = resolveEdgeRaw(cs.position, EDGE_TOP)
1916
- const posBottom = resolveEdgeRaw(cs.position, EDGE_BOTTOM)
1917
-
1918
- const rLeft = resolveValue(posLeft, parentWidth)
1919
- const rRight = resolveValue(posRight, parentWidth)
1920
- const rTop = resolveValue(posTop, parentHeight)
1921
- const rBottom = resolveValue(posBottom, parentHeight)
1922
-
1923
- // Absolute children's percentage dimensions resolve against the containing
1924
- // block's padding-box (parent size minus border), per CSS §10.1.
1925
- const paddingBoxW = parentWidth - bor[0] - bor[2]
1926
- const paddingBoxH = parentHeight - bor[1] - bor[3]
1927
- let cw = resolveValue(cs.width, paddingBoxW)
1928
- let ch = resolveValue(cs.height, paddingBoxH)
1929
-
1930
- // If both left+right defined and width not, derive width
1931
- if (!isDefined(cw) && isDefined(rLeft) && isDefined(rRight)) {
1932
- cw = paddingBoxW - rLeft - rRight
1933
- }
1934
- if (!isDefined(ch) && isDefined(rTop) && isDefined(rBottom)) {
1935
- ch = paddingBoxH - rTop - rBottom
1936
- }
1937
-
1938
- layoutNode(
1939
- child,
1940
- cw,
1941
- ch,
1942
- isDefined(cw) ? MeasureMode.Exactly : MeasureMode.Undefined,
1943
- isDefined(ch) ? MeasureMode.Exactly : MeasureMode.Undefined,
1944
- paddingBoxW,
1945
- paddingBoxH,
1946
- true,
1947
- )
1948
-
1949
- // Margin of absolute child (applied in addition to insets)
1950
- const mL = resolveEdge(cs.margin, EDGE_LEFT, parentWidth)
1951
- const mT = resolveEdge(cs.margin, EDGE_TOP, parentWidth)
1952
- const mR = resolveEdge(cs.margin, EDGE_RIGHT, parentWidth)
1953
- const mB = resolveEdge(cs.margin, EDGE_BOTTOM, parentWidth)
1954
-
1955
- const mainAxis = parent.style.flexDirection
1956
- const reversed = isReverse(mainAxis)
1957
- const mainRow = isRow(mainAxis)
1958
- const wrapReverse = parent.style.flexWrap === Wrap.WrapReverse
1959
- // alignSelf overrides alignItems for absolute children (same as flow items)
1960
- const alignment =
1961
- cs.alignSelf === Align.Auto ? parent.style.alignItems : cs.alignSelf
1962
-
1963
- // Position
1964
- let left: number
1965
- if (isDefined(rLeft)) {
1966
- left = bor[0] + rLeft + mL
1967
- } else if (isDefined(rRight)) {
1968
- left = parentWidth - bor[2] - rRight - child.layout.width - mR
1969
- } else if (mainRow) {
1970
- // Main axis — justify-content, flipped for reversed
1971
- const lead = pad[0] + bor[0]
1972
- const trail = parentWidth - pad[2] - bor[2]
1973
- left = reversed
1974
- ? trail - child.layout.width - mR
1975
- : justifyAbsolute(
1976
- parent.style.justifyContent,
1977
- lead,
1978
- trail,
1979
- child.layout.width,
1980
- ) + mL
1981
- } else {
1982
- left =
1983
- alignAbsolute(
1984
- alignment,
1985
- pad[0] + bor[0],
1986
- parentWidth - pad[2] - bor[2],
1987
- child.layout.width,
1988
- wrapReverse,
1989
- ) + mL
1990
- }
1991
-
1992
- let top: number
1993
- if (isDefined(rTop)) {
1994
- top = bor[1] + rTop + mT
1995
- } else if (isDefined(rBottom)) {
1996
- top = parentHeight - bor[3] - rBottom - child.layout.height - mB
1997
- } else if (mainRow) {
1998
- top =
1999
- alignAbsolute(
2000
- alignment,
2001
- pad[1] + bor[1],
2002
- parentHeight - pad[3] - bor[3],
2003
- child.layout.height,
2004
- wrapReverse,
2005
- ) + mT
2006
- } else {
2007
- const lead = pad[1] + bor[1]
2008
- const trail = parentHeight - pad[3] - bor[3]
2009
- top = reversed
2010
- ? trail - child.layout.height - mB
2011
- : justifyAbsolute(
2012
- parent.style.justifyContent,
2013
- lead,
2014
- trail,
2015
- child.layout.height,
2016
- ) + mT
2017
- }
2018
-
2019
- child.layout.left = left
2020
- child.layout.top = top
2021
- }
2022
-
2023
- function justifyAbsolute(
2024
- justify: Justify,
2025
- leadEdge: number,
2026
- trailEdge: number,
2027
- childSize: number,
2028
- ): number {
2029
- switch (justify) {
2030
- case Justify.Center:
2031
- return leadEdge + (trailEdge - leadEdge - childSize) / 2
2032
- case Justify.FlexEnd:
2033
- return trailEdge - childSize
2034
- default:
2035
- return leadEdge
2036
- }
2037
- }
2038
-
2039
- function alignAbsolute(
2040
- align: Align,
2041
- leadEdge: number,
2042
- trailEdge: number,
2043
- childSize: number,
2044
- wrapReverse: boolean,
2045
- ): number {
2046
- // Wrap-reverse flips the cross axis: flex-start/stretch go to trailing,
2047
- // flex-end goes to leading (yoga's absoluteLayoutChild flips the align value
2048
- // when the containing block has wrap-reverse).
2049
- switch (align) {
2050
- case Align.Center:
2051
- return leadEdge + (trailEdge - leadEdge - childSize) / 2
2052
- case Align.FlexEnd:
2053
- return wrapReverse ? leadEdge : trailEdge - childSize
2054
- default:
2055
- return wrapReverse ? trailEdge - childSize : leadEdge
2056
- }
2057
- }
2058
-
2059
- function computeFlexBasis(
2060
- child: Node,
2061
- mainAxis: FlexDirection,
2062
- availableMain: number,
2063
- availableCross: number,
2064
- crossMode: MeasureMode,
2065
- ownerWidth: number,
2066
- ownerHeight: number,
2067
- ): number {
2068
- // Same-generation cache hit: basis was computed THIS calculateLayout, so
2069
- // it's fresh regardless of isDirty_. Covers both clean children (scrolling
2070
- // past unchanged messages) AND fresh-mounted dirty children (virtual
2071
- // scroll mounts new items — the dirty chain's measure→layout cascade
2072
- // invokes this ≥2^depth times, but the child's subtree doesn't change
2073
- // between calls within one calculateLayout). For clean children with
2074
- // cache from a PREVIOUS generation, also hit if inputs match — isDirty_
2075
- // gates since a dirty child's previous-gen cache is stale.
2076
- const sameGen = child._fbGen === _generation
2077
- if (
2078
- (sameGen || !child.isDirty_) &&
2079
- child._fbCrossMode === crossMode &&
2080
- sameFloat(child._fbOwnerW, ownerWidth) &&
2081
- sameFloat(child._fbOwnerH, ownerHeight) &&
2082
- sameFloat(child._fbAvailMain, availableMain) &&
2083
- sameFloat(child._fbAvailCross, availableCross)
2084
- ) {
2085
- return child._fbBasis
2086
- }
2087
- const cs = child.style
2088
- const isMainRow = isRow(mainAxis)
2089
-
2090
- // Explicit flex-basis
2091
- const basis = resolveValue(cs.flexBasis, availableMain)
2092
- if (isDefined(basis)) {
2093
- const b = Math.max(0, basis)
2094
- child._fbBasis = b
2095
- child._fbOwnerW = ownerWidth
2096
- child._fbOwnerH = ownerHeight
2097
- child._fbAvailMain = availableMain
2098
- child._fbAvailCross = availableCross
2099
- child._fbCrossMode = crossMode
2100
- child._fbGen = _generation
2101
- return b
2102
- }
2103
-
2104
- // Style dimension on main axis
2105
- const mainStyleDim = isMainRow ? cs.width : cs.height
2106
- const mainOwner = isMainRow ? ownerWidth : ownerHeight
2107
- const resolved = resolveValue(mainStyleDim, mainOwner)
2108
- if (isDefined(resolved)) {
2109
- const b = Math.max(0, resolved)
2110
- child._fbBasis = b
2111
- child._fbOwnerW = ownerWidth
2112
- child._fbOwnerH = ownerHeight
2113
- child._fbAvailMain = availableMain
2114
- child._fbAvailCross = availableCross
2115
- child._fbCrossMode = crossMode
2116
- child._fbGen = _generation
2117
- return b
2118
- }
2119
-
2120
- // Need to measure the child to get its natural size
2121
- const crossStyleDim = isMainRow ? cs.height : cs.width
2122
- const crossOwner = isMainRow ? ownerHeight : ownerWidth
2123
- let crossConstraint = resolveValue(crossStyleDim, crossOwner)
2124
- let crossConstraintMode: MeasureMode = isDefined(crossConstraint)
2125
- ? MeasureMode.Exactly
2126
- : MeasureMode.Undefined
2127
- if (!isDefined(crossConstraint) && isDefined(availableCross)) {
2128
- crossConstraint = availableCross
2129
- crossConstraintMode =
2130
- crossMode === MeasureMode.Exactly && isStretchAlign(child)
2131
- ? MeasureMode.Exactly
2132
- : MeasureMode.AtMost
2133
- }
2134
-
2135
- // Upstream yoga (YGNodeComputeFlexBasisForChild) passes the available inner
2136
- // width with mode AtMost when the subtree will call a measure-func — so text
2137
- // nodes don't report unconstrained intrinsic width as flex-basis, which
2138
- // would force siblings to shrink and the text to wrap at the wrong width.
2139
- // Passing Undefined here made Ink's <Text> inside <Box flexGrow={1}> get
2140
- // width = intrinsic instead of available, dropping chars at wrap boundaries.
2141
- //
2142
- // Two constraints on when this applies:
2143
- // - Width only. Height is never constrained during basis measurement —
2144
- // column containers must measure children at natural height so
2145
- // scrollable content can overflow (constraining height clips ScrollBox).
2146
- // - Subtree has a measure-func. Pure layout subtrees (no measure-func)
2147
- // with flex-grow children would grow into the AtMost constraint,
2148
- // inflating the basis (breaks YGMinMaxDimensionTest flex_grow_in_at_most
2149
- // where a flexGrow:1 child should stay at basis 0, not grow to 100).
2150
- let mainConstraint = NaN
2151
- let mainConstraintMode: MeasureMode = MeasureMode.Undefined
2152
- if (isMainRow && isDefined(availableMain) && hasMeasureFuncInSubtree(child)) {
2153
- mainConstraint = availableMain
2154
- mainConstraintMode = MeasureMode.AtMost
2155
- }
2156
-
2157
- const mw = isMainRow ? mainConstraint : crossConstraint
2158
- const mh = isMainRow ? crossConstraint : mainConstraint
2159
- const mwMode = isMainRow ? mainConstraintMode : crossConstraintMode
2160
- const mhMode = isMainRow ? crossConstraintMode : mainConstraintMode
2161
-
2162
- layoutNode(child, mw, mh, mwMode, mhMode, ownerWidth, ownerHeight, false)
2163
- const b = isMainRow ? child.layout.width : child.layout.height
2164
- child._fbBasis = b
2165
- child._fbOwnerW = ownerWidth
2166
- child._fbOwnerH = ownerHeight
2167
- child._fbAvailMain = availableMain
2168
- child._fbAvailCross = availableCross
2169
- child._fbCrossMode = crossMode
2170
- child._fbGen = _generation
2171
- return b
2172
- }
2173
-
2174
- function hasMeasureFuncInSubtree(node: Node): boolean {
2175
- if (node.measureFunc) return true
2176
- for (const c of node.children) {
2177
- if (hasMeasureFuncInSubtree(c)) return true
2178
- }
2179
- return false
2180
- }
2181
-
2182
- function resolveFlexibleLengths(
2183
- children: Node[],
2184
- availableInnerMain: number,
2185
- totalFlexBasis: number,
2186
- isMainRow: boolean,
2187
- ownerW: number,
2188
- ownerH: number,
2189
- ): void {
2190
- // Multi-pass flex distribution per CSS flexbox spec §9.7 "Resolving Flexible
2191
- // Lengths": distribute free space, detect min/max violations, freeze all
2192
- // violators, redistribute among unfrozen children. Repeat until stable.
2193
- const n = children.length
2194
- const frozen: boolean[] = new Array(n).fill(false)
2195
- const initialFree = isDefined(availableInnerMain)
2196
- ? availableInnerMain - totalFlexBasis
2197
- : 0
2198
- // Freeze inflexible items at their clamped basis
2199
- for (let i = 0; i < n; i++) {
2200
- const c = children[i]!
2201
- const clamped = boundAxis(c.style, isMainRow, c._flexBasis, ownerW, ownerH)
2202
- const inflexible =
2203
- !isDefined(availableInnerMain) ||
2204
- (initialFree >= 0 ? c.style.flexGrow === 0 : c.style.flexShrink === 0)
2205
- if (inflexible) {
2206
- c._mainSize = Math.max(0, clamped)
2207
- frozen[i] = true
2208
- } else {
2209
- c._mainSize = c._flexBasis
2210
- }
2211
- }
2212
- // Iteratively distribute until no violations. Free space is recomputed each
2213
- // pass: initial free space minus the delta frozen children consumed beyond
2214
- // (or below) their basis.
2215
- const unclamped: number[] = new Array(n)
2216
- for (let iter = 0; iter <= n; iter++) {
2217
- let frozenDelta = 0
2218
- let totalGrow = 0
2219
- let totalShrinkScaled = 0
2220
- let unfrozenCount = 0
2221
- for (let i = 0; i < n; i++) {
2222
- const c = children[i]!
2223
- if (frozen[i]) {
2224
- frozenDelta += c._mainSize - c._flexBasis
2225
- } else {
2226
- totalGrow += c.style.flexGrow
2227
- totalShrinkScaled += c.style.flexShrink * c._flexBasis
2228
- unfrozenCount++
2229
- }
2230
- }
2231
- if (unfrozenCount === 0) break
2232
- let remaining = initialFree - frozenDelta
2233
- // Spec §9.7 step 4c: if sum of flex factors < 1, only distribute
2234
- // initialFree × sum, not the full remaining space (partial flex).
2235
- if (remaining > 0 && totalGrow > 0 && totalGrow < 1) {
2236
- const scaled = initialFree * totalGrow
2237
- if (scaled < remaining) remaining = scaled
2238
- } else if (remaining < 0 && totalShrinkScaled > 0) {
2239
- let totalShrink = 0
2240
- for (let i = 0; i < n; i++) {
2241
- if (!frozen[i]) totalShrink += children[i]!.style.flexShrink
2242
- }
2243
- if (totalShrink < 1) {
2244
- const scaled = initialFree * totalShrink
2245
- if (scaled > remaining) remaining = scaled
2246
- }
2247
- }
2248
- // Compute targets + violations for all unfrozen children
2249
- let totalViolation = 0
2250
- for (let i = 0; i < n; i++) {
2251
- if (frozen[i]) continue
2252
- const c = children[i]!
2253
- let t = c._flexBasis
2254
- if (remaining > 0 && totalGrow > 0) {
2255
- t += (remaining * c.style.flexGrow) / totalGrow
2256
- } else if (remaining < 0 && totalShrinkScaled > 0) {
2257
- t +=
2258
- (remaining * (c.style.flexShrink * c._flexBasis)) / totalShrinkScaled
2259
- }
2260
- unclamped[i] = t
2261
- const clamped = Math.max(
2262
- 0,
2263
- boundAxis(c.style, isMainRow, t, ownerW, ownerH),
2264
- )
2265
- c._mainSize = clamped
2266
- totalViolation += clamped - t
2267
- }
2268
- // Freeze per spec §9.7 step 5: if totalViolation is zero freeze all; if
2269
- // positive freeze min-violators; if negative freeze max-violators.
2270
- if (totalViolation === 0) break
2271
- let anyFrozen = false
2272
- for (let i = 0; i < n; i++) {
2273
- if (frozen[i]) continue
2274
- const v = children[i]!._mainSize - unclamped[i]!
2275
- if ((totalViolation > 0 && v > 0) || (totalViolation < 0 && v < 0)) {
2276
- frozen[i] = true
2277
- anyFrozen = true
2278
- }
2279
- }
2280
- if (!anyFrozen) break
2281
- }
2282
- }
2283
-
2284
- function isStretchAlign(child: Node): boolean {
2285
- const p = child.parent
2286
- if (!p) return false
2287
- const align =
2288
- child.style.alignSelf === Align.Auto
2289
- ? p.style.alignItems
2290
- : child.style.alignSelf
2291
- return align === Align.Stretch
2292
- }
2293
-
2294
- function resolveChildAlign(parent: Node, child: Node): Align {
2295
- return child.style.alignSelf === Align.Auto
2296
- ? parent.style.alignItems
2297
- : child.style.alignSelf
2298
- }
2299
-
2300
- // Baseline of a node per CSS Flexbox §8.5 / yoga's YGBaseline. Leaf nodes
2301
- // (no children) use their own height. Containers recurse into the first
2302
- // baseline-aligned child on the first line (or the first flow child if none
2303
- // are baseline-aligned), returning that child's baseline + its top offset.
2304
- function calculateBaseline(node: Node): number {
2305
- let baselineChild: Node | null = null
2306
- for (const c of node.children) {
2307
- if (c._lineIndex > 0) break
2308
- if (c.style.positionType === PositionType.Absolute) continue
2309
- if (c.style.display === Display.None) continue
2310
- if (
2311
- resolveChildAlign(node, c) === Align.Baseline ||
2312
- c.isReferenceBaseline_
2313
- ) {
2314
- baselineChild = c
2315
- break
2316
- }
2317
- if (baselineChild === null) baselineChild = c
2318
- }
2319
- if (baselineChild === null) return node.layout.height
2320
- return calculateBaseline(baselineChild) + baselineChild.layout.top
2321
- }
2322
-
2323
- // A container uses baseline layout only for row direction, when either
2324
- // align-items is baseline or any flow child has align-self: baseline.
2325
- function isBaselineLayout(node: Node, flowChildren: Node[]): boolean {
2326
- if (!isRow(node.style.flexDirection)) return false
2327
- if (node.style.alignItems === Align.Baseline) return true
2328
- for (const c of flowChildren) {
2329
- if (c.style.alignSelf === Align.Baseline) return true
2330
- }
2331
- return false
2332
- }
2333
-
2334
- function childMarginForAxis(
2335
- child: Node,
2336
- axis: FlexDirection,
2337
- ownerWidth: number,
2338
- ): number {
2339
- if (!child._hasMargin) return 0
2340
- const lead = resolveEdge(child.style.margin, leadingEdge(axis), ownerWidth)
2341
- const trail = resolveEdge(child.style.margin, trailingEdge(axis), ownerWidth)
2342
- return lead + trail
2343
- }
2344
-
2345
- function resolveGap(style: Style, gutter: Gutter, ownerSize: number): number {
2346
- let v = style.gap[gutter]!
2347
- if (v.unit === Unit.Undefined) v = style.gap[Gutter.All]!
2348
- const r = resolveValue(v, ownerSize)
2349
- return isDefined(r) ? Math.max(0, r) : 0
2350
- }
2351
-
2352
- function boundAxis(
2353
- style: Style,
2354
- isWidth: boolean,
2355
- value: number,
2356
- ownerWidth: number,
2357
- ownerHeight: number,
2358
- ): number {
2359
- const minV = isWidth ? style.minWidth : style.minHeight
2360
- const maxV = isWidth ? style.maxWidth : style.maxHeight
2361
- const minU = minV.unit
2362
- const maxU = maxV.unit
2363
- // Fast path: no min/max constraints set. Per CPU profile this is the
2364
- // overwhelmingly common case (~32k calls/layout on the 1000-node bench,
2365
- // nearly all with undefined min/max) — skipping 2× resolveValue + 2× isNaN
2366
- // that always no-op. Unit.Undefined = 0.
2367
- if (minU === 0 && maxU === 0) return value
2368
- const owner = isWidth ? ownerWidth : ownerHeight
2369
- let v = value
2370
- // Inlined resolveValue: Unit.Point=1, Unit.Percent=2. `m === m` is !isNaN.
2371
- if (maxU === 1) {
2372
- if (v > maxV.value) v = maxV.value
2373
- } else if (maxU === 2) {
2374
- const m = (maxV.value * owner) / 100
2375
- if (m === m && v > m) v = m
2376
- }
2377
- if (minU === 1) {
2378
- if (v < minV.value) v = minV.value
2379
- } else if (minU === 2) {
2380
- const m = (minV.value * owner) / 100
2381
- if (m === m && v < m) v = m
2382
- }
2383
- return v
2384
- }
2385
-
2386
- function zeroLayoutRecursive(node: Node): void {
2387
- for (const c of node.children) {
2388
- c.layout.left = 0
2389
- c.layout.top = 0
2390
- c.layout.width = 0
2391
- c.layout.height = 0
2392
- // Invalidate layout cache — without this, unhide → calculateLayout finds
2393
- // the child clean (!isDirty_) with _hasL intact, hits the cache at line
2394
- // ~1086, restores stale _lOutW/_lOutH, and returns early — skipping the
2395
- // child-positioning recursion. Grandchildren stay at (0,0,0,0) from the
2396
- // zeroing above and render invisible. isDirty_=true also gates _cN and
2397
- // _fbBasis via their (sameGen || !isDirty_) checks — _cGen/_fbGen freeze
2398
- // during hide so sameGen is false on unhide.
2399
- c.isDirty_ = true
2400
- c._hasL = false
2401
- c._hasM = false
2402
- zeroLayoutRecursive(c)
2403
- }
2404
- }
2405
-
2406
- function collectLayoutChildren(node: Node, flow: Node[], abs: Node[]): void {
2407
- // Partition a node's children into flow and absolute lists, flattening
2408
- // display:contents subtrees so their children are laid out as direct
2409
- // children of this node (per CSS display:contents spec — the box is removed
2410
- // from the layout tree but its children remain, lifted to the grandparent).
2411
- for (const c of node.children) {
2412
- const disp = c.style.display
2413
- if (disp === Display.None) {
2414
- c.layout.left = 0
2415
- c.layout.top = 0
2416
- c.layout.width = 0
2417
- c.layout.height = 0
2418
- zeroLayoutRecursive(c)
2419
- } else if (disp === Display.Contents) {
2420
- c.layout.left = 0
2421
- c.layout.top = 0
2422
- c.layout.width = 0
2423
- c.layout.height = 0
2424
- // Recurse — nested display:contents lifts all the way up. The contents
2425
- // node's own margin/padding/position/dimensions are ignored.
2426
- collectLayoutChildren(c, flow, abs)
2427
- } else if (c.style.positionType === PositionType.Absolute) {
2428
- abs.push(c)
2429
- } else {
2430
- flow.push(c)
2431
- }
2432
- }
2433
- }
2434
-
2435
- function roundLayout(
2436
- node: Node,
2437
- scale: number,
2438
- absLeft: number,
2439
- absTop: number,
2440
- ): void {
2441
- if (scale === 0) return
2442
- const l = node.layout
2443
- const nodeLeft = l.left
2444
- const nodeTop = l.top
2445
- const nodeWidth = l.width
2446
- const nodeHeight = l.height
2447
-
2448
- const absNodeLeft = absLeft + nodeLeft
2449
- const absNodeTop = absTop + nodeTop
2450
-
2451
- // Upstream YGRoundValueToPixelGrid: text nodes (has measureFunc) floor their
2452
- // positions so wrapped text never starts past its allocated column. Width
2453
- // uses ceil-if-fractional to avoid clipping the last glyph. Non-text nodes
2454
- // use standard round. Matches yoga's PixelGrid.cpp — without this, justify
2455
- // center/space-evenly positions are off-by-one vs WASM and flex-shrink
2456
- // overflow places siblings at the wrong column.
2457
- const isText = node.measureFunc !== null
2458
- l.left = roundValue(nodeLeft, scale, false, isText)
2459
- l.top = roundValue(nodeTop, scale, false, isText)
2460
-
2461
- // Width/height rounded via absolute edges to avoid cumulative drift
2462
- const absRight = absNodeLeft + nodeWidth
2463
- const absBottom = absNodeTop + nodeHeight
2464
- const hasFracW = !isWholeNumber(nodeWidth * scale)
2465
- const hasFracH = !isWholeNumber(nodeHeight * scale)
2466
- l.width =
2467
- roundValue(absRight, scale, isText && hasFracW, isText && !hasFracW) -
2468
- roundValue(absNodeLeft, scale, false, isText)
2469
- l.height =
2470
- roundValue(absBottom, scale, isText && hasFracH, isText && !hasFracH) -
2471
- roundValue(absNodeTop, scale, false, isText)
2472
-
2473
- for (const c of node.children) {
2474
- roundLayout(c, scale, absNodeLeft, absNodeTop)
2475
- }
2476
- }
2477
-
2478
- function isWholeNumber(v: number): boolean {
2479
- const frac = v - Math.floor(v)
2480
- return frac < 0.0001 || frac > 0.9999
2481
- }
2482
-
2483
- function roundValue(
2484
- v: number,
2485
- scale: number,
2486
- forceCeil: boolean,
2487
- forceFloor: boolean,
2488
- ): number {
2489
- let scaled = v * scale
2490
- let frac = scaled - Math.floor(scaled)
2491
- if (frac < 0) frac += 1
2492
- // Float-epsilon tolerance matches upstream YGDoubleEqual (1e-4)
2493
- if (frac < 0.0001) {
2494
- scaled = Math.floor(scaled)
2495
- } else if (frac > 0.9999) {
2496
- scaled = Math.ceil(scaled)
2497
- } else if (forceCeil) {
2498
- scaled = Math.ceil(scaled)
2499
- } else if (forceFloor) {
2500
- scaled = Math.floor(scaled)
2501
- } else {
2502
- // Round half-up (>= 0.5 goes up), per upstream
2503
- scaled = Math.floor(scaled) + (frac >= 0.4999 ? 1 : 0)
2504
- }
2505
- return scaled / scale
2506
- }
2507
-
2508
- // --
2509
- // Helpers
2510
-
2511
- function parseDimension(v: number | string | undefined): Value {
2512
- if (v === undefined) return UNDEFINED_VALUE
2513
- if (v === 'auto') return AUTO_VALUE
2514
- if (typeof v === 'number') {
2515
- // WASM yoga's YGFloatIsUndefined treats NaN and ±Infinity as undefined.
2516
- // Ink passes height={Infinity} (e.g. LogSelector maxHeight default) and
2517
- // expects it to mean "unconstrained" — storing it as a literal point value
2518
- // makes the node height Infinity and breaks all downstream layout.
2519
- return Number.isFinite(v) ? pointValue(v) : UNDEFINED_VALUE
2520
- }
2521
- if (typeof v === 'string' && v.endsWith('%')) {
2522
- return percentValue(parseFloat(v))
2523
- }
2524
- const n = parseFloat(v)
2525
- return isNaN(n) ? UNDEFINED_VALUE : pointValue(n)
2526
- }
2527
-
2528
- function physicalEdge(edge: Edge): number {
2529
- switch (edge) {
2530
- case Edge.Left:
2531
- case Edge.Start:
2532
- return EDGE_LEFT
2533
- case Edge.Top:
2534
- return EDGE_TOP
2535
- case Edge.Right:
2536
- case Edge.End:
2537
- return EDGE_RIGHT
2538
- case Edge.Bottom:
2539
- return EDGE_BOTTOM
2540
- default:
2541
- return EDGE_LEFT
2542
- }
2543
- }
2544
-
2545
- // --
2546
- // Module API matching yoga-layout/load
2547
-
2548
- export type Yoga = {
2549
- Config: {
2550
- create(): Config
2551
- destroy(config: Config): void
2552
- }
2553
- Node: {
2554
- create(config?: Config): Node
2555
- createDefault(): Node
2556
- createWithConfig(config: Config): Node
2557
- destroy(node: Node): void
2558
- }
2559
- }
2560
-
2561
- const YOGA_INSTANCE: Yoga = {
2562
- Config: {
2563
- create: createConfig,
2564
- destroy() {},
2565
- },
2566
- Node: {
2567
- create: (config?: Config) => new Node(config),
2568
- createDefault: () => new Node(),
2569
- createWithConfig: (config: Config) => new Node(config),
2570
- destroy() {},
2571
- },
2572
- }
2573
-
2574
- export function loadYoga(): Promise<Yoga> {
2575
- return Promise.resolve(YOGA_INSTANCE)
2576
- }
2577
-
2578
- export default YOGA_INSTANCE