@mcp-b/react-components 0.48.0 → 0.49.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 (313) hide show
  1. package/dist/AgentChatQueue-v5890eA1.d.ts +48 -0
  2. package/dist/AgentToolRunsContext-GMe_hSnD.d.ts +35 -0
  3. package/dist/Avatar-o2NO1fCG.d.ts +124 -0
  4. package/dist/{Button-CZt3yywF.d.ts → Button-DjONW5UW.d.ts} +1 -1
  5. package/dist/{CodeBlock-C380GD5t.d.ts → CodeBlock--r6GS8YV.d.ts} +8 -2
  6. package/dist/{CodeBlock-BSJl682D.js → CodeBlock-g8sADidM.js} +8 -8
  7. package/dist/{FileTree-DvE0hNZu.js → FileTree-DruTQ-oa.js} +38 -36
  8. package/dist/{IconButton-BAUFhUk8.d.ts → IconButton-ByiyjkYE.d.ts} +2 -2
  9. package/dist/{Menu-yb6QXWA3.d.ts → Menu-CgfUZhZd.d.ts} +1 -1
  10. package/dist/{Message-D_vCVEGB.d.ts → Message-DyaTBiV7.d.ts} +17 -4
  11. package/dist/MessageScrollerVirtual-D4afYwVB.d.ts +84 -0
  12. package/dist/{PromptInput-DtJHyp0S.d.ts → PromptInput-4kCz3T9P.d.ts} +45 -32
  13. package/dist/PromptInputApproval-D2hpn54U.d.ts +44 -0
  14. package/dist/Separator-CzhtLYE1.d.ts +41 -0
  15. package/dist/Toolbar-CGY004u0.d.ts +155 -0
  16. package/dist/{Workspace-LIoU30n7.d.ts → Workspace-HzGrWDX3.d.ts} +1 -1
  17. package/dist/{WorkspaceFile-Dq-GC0_T.d.ts → WorkspaceFile-Bouauobc.d.ts} +1 -1
  18. package/dist/{WorkspaceFileView-C_WnYm-a.js → WorkspaceFileView-DYPtRVpM.js} +5 -4
  19. package/dist/{WorkspaceLink-B1d2GIGl.js → WorkspaceLink-BYZG-V_I.js} +8 -91
  20. package/dist/{WorkspaceMessageResponse-BqOezptB.js → WorkspaceMessageResponse-CUJk9_P5.js} +2 -2
  21. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  22. package/dist/components/agents-sdk/AgentChat.d.ts +198 -2
  23. package/dist/components/agents-sdk/AgentChat.js +527 -672
  24. package/dist/components/agents-sdk/AgentChatQueue.d.ts +2 -0
  25. package/dist/components/agents-sdk/AgentChatQueue.js +206 -0
  26. package/dist/components/agents-sdk/AgentEvent.js +2 -2
  27. package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +2 -2
  28. package/dist/components/agents-sdk/AgentToolRunsContext.js +1 -36
  29. package/dist/components/agents-sdk/BrowserLiveScreen.js +22 -14
  30. package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
  31. package/dist/components/agents-sdk/BrowserReplay.d.ts +1 -1
  32. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  33. package/dist/components/agents-sdk/BrowserRunPanel.d.ts +3 -0
  34. package/dist/components/agents-sdk/BrowserRunPanel.js +32 -31
  35. package/dist/components/agents-sdk/EmployeeChrome.d.ts +212 -0
  36. package/dist/components/agents-sdk/EmployeeChrome.js +555 -0
  37. package/dist/components/agents-sdk/ManagerOffice.d.ts +79 -40
  38. package/dist/components/agents-sdk/ManagerOffice.js +291 -281
  39. package/dist/components/agents-sdk/McpConnectionRequest.d.ts +4 -4
  40. package/dist/components/agents-sdk/McpConnectionRequest.js +4 -3
  41. package/dist/components/agents-sdk/McpConnectorForm.d.ts +38 -1
  42. package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
  43. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +93 -1
  44. package/dist/components/agents-sdk/McpPluginCatalog.js +5 -4
  45. package/dist/components/agents-sdk/McpServerIcon.d.ts +17 -0
  46. package/dist/components/agents-sdk/McpServerIcon.js +25 -0
  47. package/dist/components/agents-sdk/McpServerPicker.d.ts +5 -4
  48. package/dist/components/agents-sdk/McpServerPicker.js +4 -3
  49. package/dist/components/agents-sdk/ModelSelector.d.ts +4 -4
  50. package/dist/components/agents-sdk/ModelSelector.js +4 -4
  51. package/dist/components/agents-sdk/PromptInputApproval.d.ts +1 -43
  52. package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
  53. package/dist/components/agents-sdk/PromptInputCommands.d.ts +1 -1
  54. package/dist/components/agents-sdk/PromptInputCommands.js +2 -3
  55. package/dist/components/agents-sdk/SessionCompaction.d.ts +88 -1
  56. package/dist/components/agents-sdk/SessionCompaction.js +2 -2
  57. package/dist/components/agents-sdk/SubagentRunDetails.d.ts +30 -1
  58. package/dist/components/agents-sdk/SubagentRunDetails.js +57 -1
  59. package/dist/components/agents-sdk/SubagentRunIndicator.d.ts +9 -9
  60. package/dist/components/agents-sdk/SubagentRunIndicator.js +19 -24
  61. package/dist/components/agents-sdk/SubagentRunList.d.ts +6 -3
  62. package/dist/components/agents-sdk/SubagentRunList.js +4 -2
  63. package/dist/components/agents-sdk/SubagentRunPanel.d.ts +60 -0
  64. package/dist/components/agents-sdk/SubagentRunPanel.js +255 -0
  65. package/dist/components/agents-sdk/SubagentRunSelector.d.ts +8 -4
  66. package/dist/components/agents-sdk/SubagentRunSelector.js +5 -3
  67. package/dist/components/agents-sdk/ThinkChat.d.ts +102 -2
  68. package/dist/components/agents-sdk/ThinkChat.js +233 -2
  69. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +76 -1
  70. package/dist/components/agents-sdk/ThinkChatActivity.js +18 -10
  71. package/dist/components/agents-sdk/ThinkChatContext.d.ts +27 -1
  72. package/dist/components/agents-sdk/ThinkChatContext.js +1 -1
  73. package/dist/components/agents-sdk/ThinkChatToolPanels.js +24 -19
  74. package/dist/components/agents-sdk/ThinkExecutionDetail.js +2 -2
  75. package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +1 -1
  76. package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
  77. package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +85 -28
  78. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +159 -102
  79. package/dist/components/agents-sdk/ThinkFullApp.d.ts +40 -158
  80. package/dist/components/agents-sdk/ThinkFullApp.js +71 -290
  81. package/dist/components/agents-sdk/ThinkRecoveryNotice.d.ts +18 -1
  82. package/dist/components/agents-sdk/ThinkRecoveryNotice.js +1 -1
  83. package/dist/components/agents-sdk/ThinkRoutineActions.d.ts +51 -0
  84. package/dist/components/agents-sdk/ThinkRoutineActions.js +201 -0
  85. package/dist/components/agents-sdk/ThinkRoutineBrowser.d.ts +4 -1
  86. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +17 -15
  87. package/dist/components/agents-sdk/ThinkRoutineDetail.js +11 -11
  88. package/dist/components/agents-sdk/ThinkRoutineForm.d.ts +2 -1
  89. package/dist/components/agents-sdk/ThinkRoutineForm.js +14 -14
  90. package/dist/components/agents-sdk/ThinkRoutineRuns.js +7 -7
  91. package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +90 -1
  92. package/dist/components/agents-sdk/ThinkThreadPicker.js +3 -3
  93. package/dist/components/agents-sdk/Workspace.d.ts +1 -1
  94. package/dist/components/agents-sdk/Workspace.js +7 -13
  95. package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
  96. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  97. package/dist/components/agents-sdk/WorkspaceConcept.d.ts +1 -1
  98. package/dist/components/agents-sdk/WorkspaceCorrespondence.d.ts +10 -1
  99. package/dist/components/agents-sdk/WorkspaceCorrespondence.js +10 -7
  100. package/dist/components/agents-sdk/WorkspaceExecution.d.ts +5 -14
  101. package/dist/components/agents-sdk/WorkspaceExecution.js +24 -38
  102. package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +5 -2
  103. package/dist/components/agents-sdk/WorkspaceExplorer.js +3 -2
  104. package/dist/components/agents-sdk/WorkspaceFile.d.ts +1 -1
  105. package/dist/components/agents-sdk/WorkspaceFileView.d.ts +1 -1
  106. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  107. package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
  108. package/dist/components/agents-sdk/WorkspaceLink.js +1 -1
  109. package/dist/components/agents-sdk/WorkspaceLive.d.ts +60 -1
  110. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +47 -1
  111. package/dist/components/agents-sdk/WorkspaceMessageResponse.js +1 -1
  112. package/dist/components/agents-sdk/WorkspaceMountManager.d.ts +3 -2
  113. package/dist/components/agents-sdk/WorkspaceMountManager.js +6 -9
  114. package/dist/components/agents-sdk/WorkspaceNavigationRestoration.d.ts +38 -0
  115. package/dist/components/agents-sdk/WorkspaceNavigationRestoration.js +86 -0
  116. package/dist/components/agents-sdk/WorkspaceProject.d.ts +5 -14
  117. package/dist/components/agents-sdk/WorkspaceProject.js +21 -35
  118. package/dist/components/agents-sdk/WorkspaceUserScript.d.ts +1 -1
  119. package/dist/components/agents-sdk/WorkspaceUserScript.js +8 -5
  120. package/dist/components/ai-sdk/Activity.d.ts +1 -1
  121. package/dist/components/ai-sdk/Activity.js +1 -1
  122. package/dist/components/ai-sdk/AgentAttention.d.ts +2 -2
  123. package/dist/components/ai-sdk/AgentChatMessageEditor.js +5 -1
  124. package/dist/components/ai-sdk/AgentChatStartScreen.d.ts +89 -2
  125. package/dist/components/ai-sdk/AgentChatStartScreen.js +64 -43
  126. package/dist/components/ai-sdk/AgentMessageParts.d.ts +45 -1
  127. package/dist/components/ai-sdk/Approval.d.ts +1 -1
  128. package/dist/components/ai-sdk/Approval.js +2 -2
  129. package/dist/components/ai-sdk/Artifact.d.ts +2 -2
  130. package/dist/components/ai-sdk/Artifact.js +1 -1
  131. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  132. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  133. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  134. package/dist/components/ai-sdk/CodeBlock.d.ts +1 -1
  135. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  136. package/dist/components/ai-sdk/ComposerLink.js +2 -3
  137. package/dist/components/ai-sdk/ConnectedAppCards.d.ts +9 -1
  138. package/dist/components/ai-sdk/ConnectedAppCards.js +28 -21
  139. package/dist/components/ai-sdk/Context.d.ts +7 -3
  140. package/dist/components/ai-sdk/Context.js +7 -17
  141. package/dist/components/ai-sdk/Conversation.d.ts +2 -2
  142. package/dist/components/ai-sdk/Conversation.js +1 -1
  143. package/dist/components/ai-sdk/Goal.d.ts +3 -3
  144. package/dist/components/ai-sdk/Goal.js +3 -3
  145. package/dist/components/ai-sdk/InlineCitation.d.ts +1 -1
  146. package/dist/components/ai-sdk/MediaPreviewCard.d.ts +1 -1
  147. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  148. package/dist/components/ai-sdk/Message.d.ts +2 -2
  149. package/dist/components/ai-sdk/Message.js +12 -3
  150. package/dist/components/ai-sdk/MessageScroller.d.ts +1 -1
  151. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  152. package/dist/components/ai-sdk/MessageScrollerVirtual.d.ts +2 -76
  153. package/dist/components/ai-sdk/MessageScrollerVirtual.js +40 -5
  154. package/dist/components/ai-sdk/Plan.d.ts +1 -1
  155. package/dist/components/ai-sdk/Plan.js +1 -1
  156. package/dist/components/ai-sdk/PromptInput.d.ts +2 -2
  157. package/dist/components/ai-sdk/PromptInput.js +175 -231
  158. package/dist/components/ai-sdk/PromptInputComposerEditor.js +32 -9
  159. package/dist/components/ai-sdk/Queue.d.ts +28 -5
  160. package/dist/components/ai-sdk/Queue.js +20 -5
  161. package/dist/components/ai-sdk/Reasoning.d.ts +1 -1
  162. package/dist/components/ai-sdk/Reasoning.js +5 -5
  163. package/dist/components/ai-sdk/Sources.d.ts +1 -1
  164. package/dist/components/ai-sdk/Sources.js +1 -1
  165. package/dist/components/ai-sdk/Task.d.ts +1 -1
  166. package/dist/components/ai-sdk/Task.js +1 -1
  167. package/dist/components/extension/ChatGptSignInScreen.d.ts +1 -1
  168. package/dist/components/extension/ChatGptSignInScreen.js +1 -1
  169. package/dist/components/extension/CodexModelSelector.d.ts +6 -1
  170. package/dist/components/extension/CodexModelSelector.js +3 -3
  171. package/dist/components/extension/ConversationTabPicker.d.ts +1 -0
  172. package/dist/components/extension/ConversationTabPicker.js +2 -2
  173. package/dist/components/foundations/AlertDialog.d.ts +1 -1
  174. package/dist/components/foundations/AppIcon.d.ts +3 -2
  175. package/dist/components/foundations/Autocomplete.js +6 -1
  176. package/dist/components/foundations/Avatar.d.ts +1 -121
  177. package/dist/components/foundations/Button.d.ts +1 -1
  178. package/dist/components/foundations/Card.d.ts +22 -27
  179. package/dist/components/foundations/Card.js +51 -32
  180. package/dist/components/foundations/Checkbox.js +1 -1
  181. package/dist/components/foundations/CheckboxGroup.d.ts +1 -1
  182. package/dist/components/foundations/Collapsible.d.ts +1 -1
  183. package/dist/components/foundations/Collapsible.js +1 -1
  184. package/dist/components/foundations/Combobox.js +6 -1
  185. package/dist/components/foundations/ContextMenu.d.ts +10 -23
  186. package/dist/components/foundations/ContextMenu.js +3 -2
  187. package/dist/components/foundations/Dialog.d.ts +106 -1
  188. package/dist/components/foundations/EmptyState.d.ts +1 -1
  189. package/dist/components/foundations/Field.d.ts +2 -1
  190. package/dist/components/foundations/Fieldset.d.ts +1 -1
  191. package/dist/components/foundations/Form.d.ts +4 -4
  192. package/dist/components/foundations/IconButton.d.ts +1 -1
  193. package/dist/components/foundations/Label.d.ts +1 -1
  194. package/dist/components/foundations/LinkButton.d.ts +2 -2
  195. package/dist/components/foundations/Menu.d.ts +1 -1
  196. package/dist/components/foundations/Menubar.d.ts +1 -1
  197. package/dist/components/foundations/Menubar.js +1 -1
  198. package/dist/components/foundations/Meter.d.ts +1 -1
  199. package/dist/components/foundations/NumberField.d.ts +1 -1
  200. package/dist/components/foundations/PreviewCard.d.ts +1 -1
  201. package/dist/components/foundations/ScrollArea.d.ts +1 -1
  202. package/dist/components/foundations/SearchField.d.ts +1 -1
  203. package/dist/components/foundations/SearchField.js +1 -1
  204. package/dist/components/foundations/Select.js +7 -2
  205. package/dist/components/foundations/Separator.d.ts +1 -40
  206. package/dist/components/foundations/Stepper.d.ts +1 -1
  207. package/dist/components/foundations/Stepper.js +1 -1
  208. package/dist/components/foundations/Textarea.d.ts +1 -1
  209. package/dist/components/foundations/Toast.d.ts +5 -1
  210. package/dist/components/foundations/Toast.js +1 -1
  211. package/dist/components/foundations/Toggle.d.ts +70 -1
  212. package/dist/components/foundations/ToggleGroup.d.ts +4 -3
  213. package/dist/components/foundations/ToggleGroup.js +1 -1
  214. package/dist/components/foundations/Toolbar.d.ts +1 -151
  215. package/dist/components/foundations/Tooltip.d.ts +1 -1
  216. package/dist/components/foundations/TransitionSurface.d.ts +1 -1
  217. package/dist/components/foundations/icons.js +1 -1
  218. package/dist/components/general-purpose/ActionGuide.d.ts +10 -26
  219. package/dist/components/general-purpose/ActionGuide.js +4 -18
  220. package/dist/components/general-purpose/AppTopBar.d.ts +4 -2
  221. package/dist/components/general-purpose/Commit.d.ts +2 -2
  222. package/dist/components/general-purpose/Commit.js +2 -2
  223. package/dist/components/general-purpose/EnvironmentVariables.d.ts +2 -2
  224. package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
  225. package/dist/components/general-purpose/FileTree.d.ts +1 -7
  226. package/dist/components/general-purpose/FileTree.js +1 -1
  227. package/dist/components/general-purpose/PricingPlanCard.d.ts +4 -0
  228. package/dist/components/general-purpose/PricingPlanCard.js +2 -2
  229. package/dist/components/general-purpose/PricingUsageCalculator.js +2 -2
  230. package/dist/components/general-purpose/ResizableSidePanel.d.ts +2 -2
  231. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +128 -2
  232. package/dist/components/general-purpose/ResponsiveSidebarShell.js +120 -102
  233. package/dist/components/general-purpose/SettingsFormDialog.d.ts +14 -27
  234. package/dist/components/general-purpose/SettingsFormDialog.js +42 -72
  235. package/dist/components/general-purpose/SetupChecklist.d.ts +1 -0
  236. package/dist/components/general-purpose/SetupChecklist.js +76 -1
  237. package/dist/components/general-purpose/Terminal.d.ts +3 -3
  238. package/dist/components/general-purpose/Terminal.js +11 -6
  239. package/dist/components/general-purpose/TestResults.d.ts +23 -11
  240. package/dist/components/general-purpose/TestResults.js +49 -51
  241. package/dist/components/general-purpose/ThemeModeControl.d.ts +2 -0
  242. package/dist/components/general-purpose/ThemeModeControl.js +2 -2
  243. package/dist/components/general-purpose/WebPreview.d.ts +29 -4
  244. package/dist/components/general-purpose/WebPreview.js +39 -14
  245. package/dist/components/nanites/AgentConnection.js +2 -2
  246. package/dist/components/nanites/AgentToolDetail.d.ts +13 -11
  247. package/dist/components/nanites/AgentToolDetail.js +21 -42
  248. package/dist/{copy-button-Dk2vRe9j.js → copy-button-CSDuDfdP.js} +1 -1
  249. package/dist/{copy-button-C0JyjClr.d.ts → copy-button-OUwOdgEm.d.ts} +1 -1
  250. package/dist/mcp-server-mAErsxHU.js +27 -0
  251. package/dist/styles/accessibility.css +20 -0
  252. package/dist/styles/activity.css +1 -96
  253. package/dist/styles/agent-chat.css +75 -102
  254. package/dist/styles/agent-tool-detail.css +0 -16
  255. package/dist/styles/base.css +1 -9
  256. package/dist/styles/browser-run-panel.css +1 -15
  257. package/dist/styles/button.css +7 -1
  258. package/dist/styles/code-block.css +12 -0
  259. package/dist/styles/codex-model-selector.css +4 -0
  260. package/dist/styles/color-contrast.test.ts +212 -0
  261. package/dist/styles/composition-motion.css +0 -2
  262. package/dist/styles/employee-chrome.css +43 -0
  263. package/dist/styles/file-tree.css +10 -1
  264. package/dist/styles/index.css +4 -2
  265. package/dist/styles/manager-office.css +5 -5
  266. package/dist/styles/message.css +2 -10
  267. package/dist/styles/queue.css +71 -0
  268. package/dist/styles/responsive-sidebar-shell.css +1 -1
  269. package/dist/styles/subagent-run.css +122 -6
  270. package/dist/styles/test-results.css +2 -5
  271. package/dist/styles/think-chat-activity.css +13 -0
  272. package/dist/styles/think-chat-tool-panels.css +81 -0
  273. package/dist/styles/think-execution-workbench.css +2 -8
  274. package/dist/styles/think-full-app.css +42 -251
  275. package/dist/styles/{think-routine-library.css → think-routine.css} +64 -80
  276. package/dist/styles/web-preview.css +15 -1
  277. package/dist/utils/codex-model-catalog.d.ts +25 -6
  278. package/dist/utils/codex-model-catalog.js +22 -5
  279. package/dist/utils/mcp-server-catalog.d.ts +1112 -2
  280. package/dist/utils/mcp-server-catalog.js +28 -9
  281. package/dist/utils/structured-code.d.ts +1 -1
  282. package/dist/{workspace-assets-GqsCYxqT.js → workspace-assets-Bg7XhPsk.js} +2 -2
  283. package/package.json +8 -4
  284. package/dist/AgentChat-BLmQghkt.d.ts +0 -327
  285. package/dist/AgentChatStartScreen-Bkv7Avni.d.ts +0 -84
  286. package/dist/AgentMessageParts-C7L-Mv9U.d.ts +0 -46
  287. package/dist/AgentToolRunsContext-jtmveaRE.d.ts +0 -57
  288. package/dist/Dialog-B_FhRWaz.d.ts +0 -107
  289. package/dist/McpConnectorForm-CeYNY0MI.d.ts +0 -39
  290. package/dist/McpPluginCatalog-3qWu8oK1.d.ts +0 -92
  291. package/dist/ResponsiveSidebarShell-BTVPxLJK.d.ts +0 -123
  292. package/dist/SessionCompaction-CmTJFpzj.d.ts +0 -89
  293. package/dist/SetupChecklist-DeTU9YpW.js +0 -77
  294. package/dist/ThinkChat-CwMdEum8.d.ts +0 -185
  295. package/dist/ThinkChat-DiI6hhDP.js +0 -332
  296. package/dist/ThinkChatActivity-B3lGVS-6.d.ts +0 -77
  297. package/dist/ThinkChatContext-COIgzkYp.d.ts +0 -28
  298. package/dist/ThinkRecoveryNotice-DGWr94rk.d.ts +0 -19
  299. package/dist/ThinkThreadPicker-yFz4vvIf.d.ts +0 -91
  300. package/dist/Toggle-DLrIf5YH.d.ts +0 -69
  301. package/dist/WorkspaceLive-DfjH1Ypm.d.ts +0 -61
  302. package/dist/WorkspaceMessageResponse-kJYU8Onj.d.ts +0 -48
  303. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +0 -31
  304. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +0 -34
  305. package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +0 -80
  306. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +0 -159
  307. package/dist/components/agents-sdk/ThinkSidepanel.d.ts +0 -200
  308. package/dist/components/agents-sdk/ThinkSidepanel.js +0 -775
  309. package/dist/mcp-server-7NR24ASj.js +0 -69
  310. package/dist/mcp-server-catalog-C_g7C-9o.d.ts +0 -1108
  311. package/dist/styles/think-sidepanel.css +0 -78
  312. package/dist/think-agent-Cip5KAPj.d.ts +0 -7
  313. package/dist/{icons-CeGfXO21.js → icons-cuEtsgj9.js} +1 -1
@@ -0,0 +1,212 @@
1
+ import { expect, test } from "vitest";
2
+ import { cdp, page } from "vitest/browser";
3
+ import { act, createElement } from "react";
4
+ import { createRoot } from "react-dom/client";
5
+ import { FileTree, FileTreeFile, FileTreeFolder } from "../components/general-purpose/FileTree.js";
6
+ import presetsCss from "../../../design-tokens/src/color-presets.css?raw";
7
+ import "./index.css";
8
+
9
+ const presets = [
10
+ "",
11
+ ...new Set([...presetsCss.matchAll(/data-preset="([^"]+)"/g)].map((m) => m[1])),
12
+ ];
13
+ const colorPrefix = "--sigvelo-color-";
14
+
15
+ function luminance(channels: Uint8ClampedArray) {
16
+ return [0.2126, 0.7152, 0.0722].reduce((sum, weight, index) => {
17
+ const channel = channels[index] / 255;
18
+ return (
19
+ sum + weight * (channel <= 0.04045 ? channel / 12.92 : ((channel + 0.055) / 1.055) ** 2.4)
20
+ );
21
+ }, 0);
22
+ }
23
+
24
+ function contrastRatio(
25
+ context: CanvasRenderingContext2D,
26
+ foreground: string,
27
+ background: string,
28
+ surface: string,
29
+ ) {
30
+ context.fillStyle = surface;
31
+ context.fillRect(0, 0, 1, 1);
32
+ context.fillStyle = background;
33
+ context.fillRect(0, 0, 1, 1);
34
+ const backgroundLuminance = luminance(context.getImageData(0, 0, 1, 1).data);
35
+ context.fillStyle = foreground;
36
+ context.fillRect(0, 0, 1, 1);
37
+ const foregroundLuminance = luminance(context.getImageData(0, 0, 1, 1).data);
38
+ return (
39
+ (Math.max(backgroundLuminance, foregroundLuminance) + 0.05) /
40
+ (Math.min(backgroundLuminance, foregroundLuminance) + 0.05)
41
+ );
42
+ }
43
+
44
+ test.each(["light", "dark"])("semantic color pairs stay readable in %s mode", async (theme) => {
45
+ const root = document.documentElement;
46
+ const probe = document.createElement("div");
47
+ const canvas = document.createElement("canvas");
48
+ canvas.width = canvas.height = 1;
49
+ const context = canvas.getContext("2d");
50
+ if (!context) throw new Error("Contrast checks require a canvas context");
51
+ document.body.append(probe);
52
+ root.dataset.theme = theme;
53
+
54
+ try {
55
+ for (const preset of presets) {
56
+ if (preset) root.dataset.preset = preset;
57
+ else delete root.dataset.preset;
58
+
59
+ for (const family of ["primary", "neutral", "success", "warning", "danger"]) {
60
+ const pairs = [
61
+ [`${family}-bg`, `${family}-text-on-bg`],
62
+ [`${family}-bg-subtle`, `${family}-text-on-subtle`],
63
+ [`${family}-bg-strong`, `${family}-text-on-strong`],
64
+ ["surface", `${family}-text`],
65
+ ];
66
+ if (family === "primary" || family === "danger") {
67
+ pairs.push(
68
+ [`${family}-bg-hover`, `${family}-text-on-bg`],
69
+ [`${family}-bg-press`, `${family}-text-on-bg`],
70
+ );
71
+ }
72
+
73
+ for (const [background, foreground] of pairs) {
74
+ probe.style.cssText = `background: var(${colorPrefix}${background}); color: var(${colorPrefix}${foreground}); border-color: var(--sigvelo-color-surface)`;
75
+ const style = getComputedStyle(probe);
76
+ const ratio = contrastRatio(
77
+ context,
78
+ style.color,
79
+ style.backgroundColor,
80
+ style.borderColor,
81
+ );
82
+ expect(
83
+ ratio,
84
+ `${preset || "default"}: ${foreground} on ${background}`,
85
+ ).toBeGreaterThanOrEqual(4.5);
86
+ }
87
+ }
88
+ }
89
+
90
+ delete root.dataset.preset;
91
+ probe.style.backgroundColor = "var(--sigvelo-color-neutral-bg-subtle)";
92
+ await cdp().send("Emulation.setEmulatedMedia", {
93
+ features: [{ name: "prefers-contrast", value: "no-preference" }],
94
+ });
95
+ const background = getComputedStyle(probe).backgroundColor;
96
+ await cdp().send("Emulation.setEmulatedMedia", {
97
+ features: [{ name: "prefers-contrast", value: "more" }],
98
+ });
99
+ expect(getComputedStyle(probe).backgroundColor).toBe(background);
100
+ } finally {
101
+ probe.remove();
102
+ delete root.dataset.theme;
103
+ delete root.dataset.preset;
104
+ await cdp().send("Emulation.setEmulatedMedia", { features: [] });
105
+ }
106
+ });
107
+
108
+ test.each(["light", "dark"])("selected FileTree rows stay readable in %s mode", async (theme) => {
109
+ const root = document.documentElement;
110
+ const fixture = document.createElement("div");
111
+ const canvas = document.createElement("canvas");
112
+ canvas.width = canvas.height = 1;
113
+ const context = canvas.getContext("2d");
114
+ if (!context) throw new Error("Contrast checks require a canvas context");
115
+ document.body.append(fixture);
116
+ const reactRoot = createRoot(fixture);
117
+ act(() =>
118
+ reactRoot.render(
119
+ createElement(
120
+ "div",
121
+ null,
122
+ createElement(
123
+ FileTree,
124
+ { selectedPath: "src" },
125
+ createElement(FileTreeFolder, { path: "src", name: "Source" }),
126
+ ),
127
+ createElement(
128
+ FileTree,
129
+ { selectedPath: "index.ts" },
130
+ createElement(FileTreeFile, { path: "index.ts", name: "index.ts" }),
131
+ ),
132
+ ),
133
+ ),
134
+ );
135
+ root.dataset.theme = theme;
136
+
137
+ try {
138
+ const nodes = fixture.querySelectorAll<HTMLElement>(".file-tree__node[data-selected]");
139
+ expect(nodes).toHaveLength(2);
140
+ for (const node of nodes) {
141
+ for (const hovered of [false, true]) {
142
+ if (hovered) await page.elementLocator(node).hover();
143
+ else await page.elementLocator(node).unhover();
144
+ expect(node.matches(":hover")).toBe(hovered);
145
+ for (const preset of presets) {
146
+ if (preset) root.dataset.preset = preset;
147
+ else delete root.dataset.preset;
148
+ for (const animation of node.getAnimations()) animation.finish();
149
+ const style = getComputedStyle(node);
150
+ const surface = getComputedStyle(fixture.querySelector(".file-tree")!).backgroundColor;
151
+ expect(
152
+ contrastRatio(context, style.color, style.backgroundColor, surface),
153
+ `${preset || "default"}: ${node.textContent}, hover=${hovered}`,
154
+ ).toBeGreaterThanOrEqual(4.5);
155
+ for (const icon of node.querySelectorAll(".file-tree__icon, .file-tree__chevron")) {
156
+ expect(
157
+ contrastRatio(context, getComputedStyle(icon).color, style.backgroundColor, surface),
158
+ `${preset || "default"}: ${node.textContent} icon, hover=${hovered}`,
159
+ ).toBeGreaterThanOrEqual(3);
160
+ }
161
+ }
162
+ }
163
+ }
164
+ } finally {
165
+ act(() => reactRoot.unmount());
166
+ fixture.remove();
167
+ delete root.dataset.theme;
168
+ delete root.dataset.preset;
169
+ }
170
+ });
171
+
172
+ test("forced colors preserve scalar indicators and slider keyboard focus", async () => {
173
+ const fixture = document.createElement("div");
174
+ fixture.className = "progress--destructive";
175
+ document.body.append(fixture);
176
+ try {
177
+ await cdp().send("Emulation.setEmulatedMedia", {
178
+ features: [{ name: "forced-colors", value: "active" }],
179
+ });
180
+ const systemColor = document.createElement("div");
181
+ systemColor.style.backgroundColor = "Highlight";
182
+ fixture.append(systemColor);
183
+
184
+ for (const name of ["meter", "progress", "slider"]) {
185
+ const track = document.createElement("div");
186
+ const indicator = document.createElement("div");
187
+ track.className = `${name}__track`;
188
+ track.dataset.slot = `${name}-track`;
189
+ indicator.className = `${name}__indicator`;
190
+ indicator.dataset.slot = `${name}-indicator`;
191
+ track.append(indicator);
192
+ fixture.append(track);
193
+ expect(getComputedStyle(track).outlineStyle, name).toBe("solid");
194
+ expect(getComputedStyle(indicator).backgroundColor, name).toBe(
195
+ getComputedStyle(systemColor).backgroundColor,
196
+ );
197
+ }
198
+
199
+ const thumb = document.createElement("div");
200
+ thumb.className = "slider__thumb";
201
+ const range = document.createElement("input");
202
+ range.type = "range";
203
+ thumb.append(range);
204
+ fixture.append(thumb);
205
+ range.focus();
206
+ expect(range.matches(":focus-visible")).toBe(true);
207
+ expect(getComputedStyle(thumb).outlineStyle).toBe("solid");
208
+ } finally {
209
+ fixture.remove();
210
+ await cdp().send("Emulation.setEmulatedMedia", { features: [] });
211
+ }
212
+ });
@@ -7,7 +7,6 @@
7
7
  .message,
8
8
  .queue,
9
9
  .queue__item,
10
- .agent-chat__queued-message,
11
10
  .reasoning,
12
11
  .sources,
13
12
  .sources__item,
@@ -33,7 +32,6 @@
33
32
  .message,
34
33
  .queue,
35
34
  .queue__item,
36
- .agent-chat__queued-message,
37
35
  .reasoning,
38
36
  .sources,
39
37
  .sources__item,
@@ -0,0 +1,43 @@
1
+ .employee-shell {
2
+ display: grid;
3
+ grid-template-rows: var(--sigvelo-layout-track-fill);
4
+ block-size: 100%;
5
+ min-block-size: 0;
6
+ min-inline-size: 0;
7
+ }
8
+
9
+ .employee-gate {
10
+ box-sizing: border-box;
11
+ display: grid;
12
+ align-content: center;
13
+ justify-items: center;
14
+ gap: var(--sigvelo-spacing-3);
15
+ block-size: 100%;
16
+ padding: var(--sigvelo-layout-gutter);
17
+ }
18
+
19
+ .employee-shell__run-title {
20
+ display: inline-flex;
21
+ align-items: center;
22
+ gap: var(--sigvelo-spacing-2);
23
+ min-inline-size: 0;
24
+ max-inline-size: 100%;
25
+ margin: 0;
26
+ font: inherit;
27
+ }
28
+
29
+ .employee-menu__switch {
30
+ justify-content: space-between;
31
+ gap: var(--sigvelo-spacing-3);
32
+ }
33
+
34
+ .employee-menu__group-label {
35
+ display: flex;
36
+ align-items: center;
37
+ gap: var(--sigvelo-spacing-1-5);
38
+ }
39
+
40
+ .employee-menu__hint {
41
+ display: inline-flex;
42
+ color: var(--sigvelo-color-text-muted);
43
+ }
@@ -57,6 +57,11 @@
57
57
  transition-behavior: allow-discrete;
58
58
  }
59
59
 
60
+ /* Lazy listings must have a numeric starting size when their first rows arrive. */
61
+ .file-tree__group:empty {
62
+ block-size: 0;
63
+ }
64
+
60
65
  .file-tree__group[data-collapsed] {
61
66
  block-size: 0;
62
67
  visibility: hidden;
@@ -105,7 +110,7 @@
105
110
 
106
111
  .file-tree__node[data-selected] {
107
112
  background-color: var(--sigvelo-color-primary-bg-subtle);
108
- color: var(--sigvelo-color-primary-text);
113
+ color: var(--sigvelo-color-primary-text-on-subtle);
109
114
  font-weight: var(--sigvelo-font-weight-semibold);
110
115
  }
111
116
 
@@ -152,6 +157,10 @@
152
157
  color: var(--sigvelo-color-primary-text);
153
158
  }
154
159
 
160
+ .file-tree__node[data-selected] :is(.file-tree__icon, .file-tree__chevron) {
161
+ color: inherit;
162
+ }
163
+
155
164
  .file-tree__actions {
156
165
  display: inline-flex;
157
166
  align-items: center;
@@ -15,6 +15,8 @@
15
15
  @import "./accordion.css" layer(components);
16
16
  @import "./activity-header.css" layer(components);
17
17
  @import "./activity.css" layer(components);
18
+ @import "./think-chat-tool-panels.css" layer(components);
19
+ @import "./think-chat-activity.css" layer(components);
18
20
  @import "./agent-attention.css" layer(components);
19
21
  @import "./agent-connection.css" layer(components);
20
22
  @import "./agent-chat.css" layer(components);
@@ -35,6 +37,7 @@
35
37
  @import "./combobox.css" layer(components);
36
38
  @import "./context-menu.css" layer(components);
37
39
  @import "./dialog.css" layer(components);
40
+ @import "./employee-chrome.css" layer(components);
38
41
  @import "./empty-state.css" layer(components);
39
42
  @import "./field.css" layer(components);
40
43
  @import "./fieldset.css" layer(components);
@@ -125,8 +128,7 @@
125
128
  @import "./think-execution-status.css" layer(components);
126
129
  @import "./think-execution-workbench.css" layer(components);
127
130
  @import "./think-full-app.css" layer(components);
128
- @import "./think-routine-library.css" layer(components);
129
- @import "./think-sidepanel.css" layer(components);
131
+ @import "./think-routine.css" layer(components);
130
132
  @import "./think-thread-picker.css" layer(components);
131
133
  @import "./web-preview.css" layer(components);
132
134
  @import "./workspace-explorer.css" layer(components);
@@ -116,8 +116,8 @@
116
116
  --manager-office-face: 2.625rem;
117
117
 
118
118
  display: grid;
119
- grid-template-columns: minmax(0, 1fr) auto;
120
- grid-template-rows: auto minmax(0, 1fr);
119
+ grid-template-columns: var(--sigvelo-layout-track-fill) auto;
120
+ grid-template-rows: auto var(--sigvelo-layout-track-fill);
121
121
  }
122
122
 
123
123
  .manager-office__sidebar[data-layout="chat"] .manager-office__sidebar-heading {
@@ -211,7 +211,7 @@
211
211
  min-block-size: var(--sigvelo-density-compact-control-height);
212
212
  padding: var(--sigvelo-spacing-1-5) var(--sigvelo-spacing-2);
213
213
  display: grid;
214
- grid-template-columns: minmax(0, 1fr) auto;
214
+ grid-template-columns: var(--sigvelo-layout-track-fill) auto;
215
215
  align-items: center;
216
216
  gap: var(--sigvelo-spacing-2);
217
217
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -295,7 +295,7 @@
295
295
  padding-block: 0;
296
296
  padding-inline: var(--sigvelo-spacing-2);
297
297
  display: grid;
298
- grid-template-columns: var(--manager-office-face) minmax(0, 1fr);
298
+ grid-template-columns: var(--manager-office-face) var(--sigvelo-layout-track-fill);
299
299
  align-items: center;
300
300
  gap: var(--sigvelo-spacing-1-5);
301
301
  border-radius: var(--sigvelo-radius-md);
@@ -549,7 +549,7 @@
549
549
  .manager-office__employee-header {
550
550
  min-inline-size: 0;
551
551
  display: grid;
552
- grid-template-columns: auto minmax(0, 1fr);
552
+ grid-template-columns: auto var(--sigvelo-layout-track-fill);
553
553
  align-items: start;
554
554
  gap: var(--sigvelo-spacing-3);
555
555
  padding-block: var(--sigvelo-spacing-1);
@@ -127,14 +127,6 @@
127
127
  border-radius: var(--sigvelo-radius-md);
128
128
  }
129
129
 
130
- /* Quiet annotation under a part whose stored content was compacted. */
131
- .message__compacted {
132
- margin-block-start: var(--sigvelo-spacing-1);
133
- font-size: var(--sigvelo-text-meta);
134
- font-style: italic;
135
- color: var(--sigvelo-color-text-muted);
136
- }
137
-
138
130
  .message__meta {
139
131
  display: flex;
140
132
  align-items: center;
@@ -166,7 +158,7 @@
166
158
  color: var(--sigvelo-color-text-muted);
167
159
  }
168
160
 
169
- .message__actions--reserved {
161
+ .message__actions[data-reserve-space] {
170
162
  min-block-size: var(--sigvelo-control-height-xs);
171
163
  }
172
164
 
@@ -207,7 +199,7 @@
207
199
  }
208
200
 
209
201
  @media (any-pointer: coarse) {
210
- .message__actions--reserved {
202
+ .message__actions[data-reserve-space] {
211
203
  min-block-size: var(--sigvelo-control-height-xl);
212
204
  }
213
205
 
@@ -60,6 +60,19 @@
60
60
  gap: var(--sigvelo-spacing-2);
61
61
  }
62
62
 
63
+ .queue__section-content {
64
+ display: grid;
65
+ gap: var(--sigvelo-layout-cluster);
66
+ min-inline-size: 0;
67
+ }
68
+
69
+ .queue__section-actions {
70
+ display: flex;
71
+ flex-wrap: wrap;
72
+ justify-content: flex-end;
73
+ gap: var(--sigvelo-spacing-1);
74
+ }
75
+
63
76
  .queue__list {
64
77
  margin-block: var(--sigvelo-spacing-2) var(--sigvelo-spacing-1);
65
78
  }
@@ -179,10 +192,61 @@
179
192
  opacity: 1;
180
193
  }
181
194
 
195
+ .queue__item-actions[data-persistent] {
196
+ opacity: 1;
197
+ }
198
+
182
199
  .queue__item-action {
183
200
  min-inline-size: 0;
184
201
  }
185
202
 
203
+ .queue[data-density="compact"] {
204
+ --queue-row-block-size: var(--sigvelo-spacing-5);
205
+ /* Whole rows plus the list's own row gaps (.queue__list-inner). */
206
+ --queue-list-max-block-size: calc(
207
+ 3 * var(--queue-row-block-size) + 2 * var(--sigvelo-spacing-0-5)
208
+ );
209
+
210
+ gap: 0;
211
+ }
212
+
213
+ .queue[data-density="compact"] .queue__list {
214
+ margin-block: 0;
215
+ }
216
+
217
+ .queue[data-density="compact"] .queue__list-viewport {
218
+ max-block-size: var(--queue-list-max-block-size);
219
+ }
220
+
221
+ .queue[data-density="compact"] .queue__item {
222
+ align-items: center;
223
+ min-block-size: var(--queue-row-block-size);
224
+ gap: var(--sigvelo-spacing-1-5);
225
+ padding-block: 0;
226
+ padding-inline: var(--sigvelo-spacing-2);
227
+ }
228
+
229
+ .queue[data-density="compact"] .queue__item-indicator {
230
+ inline-size: var(--sigvelo-text-sm);
231
+ block-size: var(--sigvelo-text-sm);
232
+ margin-block-start: 0;
233
+ }
234
+
235
+ .queue[data-density="compact"] .queue__item-content {
236
+ gap: 0;
237
+ font-size: var(--sigvelo-text-compact);
238
+ line-height: var(--sigvelo-text-compact-leading);
239
+ }
240
+
241
+ .queue[data-density="compact"] .queue__item-action {
242
+ --sigvelo-recipe-button-height: var(--queue-row-block-size);
243
+ --sigvelo-recipe-button-padding-inline: var(--sigvelo-spacing-1-5);
244
+ --sigvelo-recipe-button-font-size: var(--sigvelo-text-xs);
245
+ --sigvelo-recipe-button-icon-size: var(--sigvelo-text-xs);
246
+
247
+ font-weight: var(--sigvelo-font-weight-normal);
248
+ }
249
+
186
250
  .queue__item-attachment {
187
251
  display: flex;
188
252
  align-items: center;
@@ -218,6 +282,13 @@
218
282
  }
219
283
  }
220
284
 
285
+ @media (any-pointer: coarse) {
286
+ .queue[data-density="compact"] {
287
+ --queue-row-block-size: var(--sigvelo-control-height-xl);
288
+ --queue-list-max-block-size: calc(2 * var(--queue-row-block-size) + var(--sigvelo-spacing-0-5));
289
+ }
290
+ }
291
+
221
292
  .queue__item-file-icon {
222
293
  display: inline-flex;
223
294
  color: var(--sigvelo-color-text-muted);
@@ -49,7 +49,7 @@
49
49
  .responsive-sidebar-shell[data-sidebar-toggle-placement="sidebar"]
50
50
  .responsive-sidebar-shell__sidebar {
51
51
  display: grid;
52
- grid-template-rows: auto minmax(0, 1fr);
52
+ grid-template-rows: auto var(--sigvelo-layout-track-fill);
53
53
  }
54
54
 
55
55
  .responsive-sidebar-shell__sidebar-leading {
@@ -3,7 +3,7 @@
3
3
  border at the end of this file. */
4
4
  .subagent-run__selector {
5
5
  max-inline-size: 18rem;
6
- /* Two text lines (name over live status) inside a pill: the control's fixed
6
+ /* Two text lines (name over live status) inside a control: the control's fixed
7
7
  small height would clip the second, so let the content size it. */
8
8
  block-size: auto;
9
9
  min-block-size: var(--sigvelo-density-compact-control-height);
@@ -15,7 +15,7 @@
15
15
  text-align: start;
16
16
  }
17
17
 
18
- /* The run's name over its live status line. Shared by the selector chip and
18
+ /* The run's name over its live status line. Shared by the selector and
19
19
  the drill-in's top bar so one run reads the same in both. */
20
20
  .subagent-run__text {
21
21
  display: grid;
@@ -30,14 +30,14 @@
30
30
  line-height: var(--sigvelo-leading-snug);
31
31
  }
32
32
 
33
- /* Scoped to the label, not the chip, so the drill-in bar tints the same. */
33
+ /* Scoped to the label, not the control, so the drill-in bar tints the same. */
34
34
  .subagent-run__text[data-status="error"] .subagent-run__status {
35
35
  color: var(--sigvelo-color-danger-text);
36
36
  }
37
37
 
38
38
  /* The ghost hover would swap the raised surface for a near-transparent tint;
39
39
  keep the surface and tint over it instead. */
40
- .subagent-run__selector:hover:not([data-disabled]) {
40
+ .subagent-run__selector:hover:not([data-disabled], [data-surface="plain"]) {
41
41
  background-color: color-mix(
42
42
  in oklab,
43
43
  var(--sigvelo-color-surface-raised),
@@ -45,6 +45,93 @@
45
45
  );
46
46
  }
47
47
 
48
+ .subagent-run__selector[data-surface="plain"] {
49
+ flex: 1 1 auto;
50
+ inline-size: 100%;
51
+ max-inline-size: none;
52
+ min-block-size: 0;
53
+ padding: 0;
54
+ border-radius: var(--sigvelo-radius-sm);
55
+ background: transparent;
56
+ }
57
+
58
+ /* Drop the raised chip's elevation, never the focus ring the button recipe
59
+ draws with the same property. */
60
+ .subagent-run__selector[data-surface="plain"]:not(:focus-visible) {
61
+ box-shadow: none;
62
+ }
63
+
64
+ /* A delegated row is two text lines (name over status). The shared compact
65
+ queue caps its viewport at whole rows of --queue-row-block-size, so the
66
+ row measure has to say what the row actually is. */
67
+ [data-subagent-run-panel] .queue[data-density="compact"] {
68
+ --queue-row-block-size: calc(
69
+ var(--sigvelo-text-compact-leading) + var(--sigvelo-text-xs) * var(--sigvelo-leading-snug)
70
+ );
71
+ }
72
+
73
+ @media (any-pointer: coarse) {
74
+ [data-subagent-run-panel] .queue[data-density="compact"] {
75
+ --queue-row-block-size: var(--sigvelo-control-height-xl);
76
+ }
77
+ }
78
+
79
+ /* The report disclosure above a run's transcript on the employee run route;
80
+ a fixed band, so the transcript beneath it takes the remaining height. */
81
+ .subagent-run__report {
82
+ flex: 0 0 auto;
83
+ min-inline-size: 0;
84
+ padding-inline: var(--sigvelo-layout-gutter);
85
+ border-block-end: var(--sigvelo-border-width) var(--sigvelo-border-style)
86
+ var(--sigvelo-color-neutral-border-subtle);
87
+ font-size: var(--sigvelo-text-compact);
88
+ }
89
+
90
+ .subagent-run__report-trigger {
91
+ display: flex;
92
+ align-items: center;
93
+ justify-content: space-between;
94
+ gap: var(--sigvelo-spacing-2);
95
+ inline-size: 100%;
96
+ padding-block: var(--sigvelo-spacing-2);
97
+ padding-inline: 0;
98
+ border: none;
99
+ border-radius: var(--sigvelo-radius-sm);
100
+ background: transparent;
101
+ color: var(--sigvelo-color-text-muted);
102
+ font: inherit;
103
+ font-weight: var(--sigvelo-font-weight-semibold);
104
+ text-align: start;
105
+ cursor: pointer;
106
+ }
107
+
108
+ .subagent-run__report-trigger:focus-visible {
109
+ outline: none;
110
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
111
+ }
112
+
113
+ .subagent-run__report-trigger::after {
114
+ content: "";
115
+ flex: 0 0 auto;
116
+ inline-size: 0;
117
+ block-size: 0;
118
+ border-inline: var(--sigvelo-spacing-1) solid transparent;
119
+ border-block-start: var(--sigvelo-spacing-1) solid currentColor;
120
+ transition: rotate var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
121
+ }
122
+
123
+ .subagent-run__report-trigger[data-panel-open]::after {
124
+ rotate: 180deg;
125
+ }
126
+
127
+ .subagent-run__report .subagent-run__metadata {
128
+ padding-block-end: var(--sigvelo-spacing-2);
129
+ }
130
+
131
+ .subagent-run__selector[data-surface="plain"]:hover:not([data-disabled]) {
132
+ background: transparent;
133
+ }
134
+
48
135
  .subagent-run__selector[aria-current="page"] {
49
136
  background-color: var(--sigvelo-color-neutral-bg-subtle);
50
137
  }
@@ -61,10 +148,35 @@
61
148
 
62
149
  .subagent-run__list-item {
63
150
  min-inline-size: 0;
151
+ display: flex;
152
+ align-items: center;
153
+ gap: var(--sigvelo-spacing-2);
154
+ }
155
+
156
+ .subagent-run__metadata p {
157
+ margin: 0;
158
+ overflow-wrap: anywhere;
159
+ }
160
+
161
+ .subagent-run__metadata [role="alert"] {
162
+ color: var(--sigvelo-color-danger-text);
163
+ }
164
+
165
+ .subagent-run__metadata {
166
+ display: grid;
167
+ gap: var(--sigvelo-spacing-2);
168
+ min-inline-size: 0;
169
+ max-block-size: 12rem;
170
+ overflow-y: auto;
171
+ overscroll-behavior: contain;
172
+ color: var(--sigvelo-color-text-muted);
173
+ font-size: var(--sigvelo-text-xs);
174
+ line-height: var(--sigvelo-leading-normal);
64
175
  }
65
176
 
66
- .subagent-run__list--adjacent {
67
- margin-block-start: var(--sigvelo-spacing-2);
177
+ .subagent-run__metadata p,
178
+ .subagent-run__milestone {
179
+ white-space: pre-wrap;
68
180
  }
69
181
 
70
182
  /* Size comes from the surrounding control — the selector's button recipe, the
@@ -158,6 +270,10 @@
158
270
  border-color: CanvasText;
159
271
  }
160
272
 
273
+ .subagent-run__report {
274
+ border-color: CanvasText;
275
+ }
276
+
161
277
  .subagent-run__indicator {
162
278
  color: CanvasText;
163
279
  }