@mcp-b/react-components 0.29.0 → 0.30.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 (401) hide show
  1. package/dist/{AgentActivity-D3OvrC02.d.ts → AgentActivity-SP1WfLDW.d.ts} +2 -2
  2. package/dist/{AgentChat-Dy3cKCd-.d.ts → AgentChat-CV-GuYA6.d.ts} +21 -11
  3. package/dist/{AgentChatStartScreen-DXZ0hAX0.d.ts → AgentChatStartScreen-CO49yepa.d.ts} +2 -2
  4. package/dist/{AgentMessageParts-CyD2UB3V.d.ts → AgentMessageParts-C7L-Mv9U.d.ts} +2 -2
  5. package/dist/{AgentToolRunsContext-BVe4stgw.d.ts → AgentToolRunsContext-Cgve-Upx.d.ts} +1 -1
  6. package/dist/{BrowserLiveView-BV5qgFgI.d.ts → BrowserLiveView-tJTWkoyu.d.ts} +1 -1
  7. package/dist/{BrowserReplay-xWvRjRAC.d.ts → BrowserReplay-B0BQZr-N.d.ts} +1 -1
  8. package/dist/{Button-SBIz6Lqi.d.ts → Button-CZt3yywF.d.ts} +1 -1
  9. package/dist/{CodeBlock-BUfEhDia.js → CodeBlock-B5I7wje1.js} +4 -69
  10. package/dist/{CodeBlock-yMpGqScn.d.ts → CodeBlock-DzGhYyNe.d.ts} +5 -11
  11. package/dist/{Combobox-DI6xcQjc.d.ts → Combobox-WrrDDaEv.d.ts} +1 -1
  12. package/dist/{Dialog-BD8NBKaE.d.ts → Dialog-DeOSJ0Oy.d.ts} +1 -1
  13. package/dist/{FileTree-XOLP3Yvo.js → FileTree-DbQMpvxV.js} +64 -71
  14. package/dist/{IconButton-CFKhu6OR.d.ts → IconButton-BAUFhUk8.d.ts} +2 -2
  15. package/dist/{Menu-L6MZm-7N.d.ts → Menu-DVmjBIuM.d.ts} +1 -1
  16. package/dist/MenuDisclosureGroup-BUOZ42me.js +32 -0
  17. package/dist/{ModelSelector-CRdvHT_b.js → ModelSelector-DZcpUBgn.js} +32 -30
  18. package/dist/{PromptInput-B75Np5VB.d.ts → PromptInput-DOyee1kM.d.ts} +28 -90
  19. package/dist/{Select-B_13gg_J.d.ts → Select-D96d09ww.d.ts} +1 -1
  20. package/dist/{SessionCompaction-DMa1vv6Y.d.ts → SessionCompaction-CmTJFpzj.d.ts} +32 -2
  21. package/dist/{Tabs-C49J5m0Q.d.ts → Tabs-Ptrbaynh.d.ts} +1 -1
  22. package/dist/{ThinkChat-Bp-nAnoW.js → ThinkChat-yid8e_Jb.js} +46 -17
  23. package/dist/{ThinkChatActivity-Dq0lOAgw.d.ts → ThinkChatActivity-CgqpROz_.d.ts} +5 -5
  24. package/dist/{ThinkChatActivitySummary-F062wneC.d.ts → ThinkChatActivitySummary-teRjrPxW.d.ts} +3 -3
  25. package/dist/{ThinkChatContext-B-Nk84Wi.d.ts → ThinkChatContext-COIgzkYp.d.ts} +1 -1
  26. package/dist/{ThinkChatToolParts-BfroXQ4F.d.ts → ThinkChatToolParts-D4qcnnxt.d.ts} +3 -13
  27. package/dist/{ThinkExecutionRun-ChhWhOoU.d.ts → ThinkExecutionRun-lYYgyeE1.d.ts} +1 -1
  28. package/dist/{ThinkRecoveryNotice-D6gYcBbr.d.ts → ThinkRecoveryNotice-DGWr94rk.d.ts} +2 -2
  29. package/dist/{Toggle-JKZ43D5S.d.ts → Toggle-DLrIf5YH.d.ts} +1 -1
  30. package/dist/{ToggleGroup-BW1jrhAF.d.ts → ToggleGroup-CSBWfPXo.d.ts} +12 -12
  31. package/dist/{Workspace-Bn6In4wi.d.ts → Workspace-EhvvlHOB.d.ts} +2 -2
  32. package/dist/{WorkspaceExplorer-D0aiscG6.d.ts → WorkspaceExplorer-DygQnEyi.d.ts} +3 -3
  33. package/dist/{WorkspaceFile-DMtRMwVv.d.ts → WorkspaceFile-C8Riev9j.d.ts} +2 -2
  34. package/dist/{WorkspaceFileView-CKEmUyeT.js → WorkspaceFileView-BeUpr6TU.js} +73 -96
  35. package/dist/{WorkspaceLink-O-EBKUJ8.d.ts → WorkspaceLink-DQogVe8E.d.ts} +1 -1
  36. package/dist/{WorkspaceLink-BYYeTQLf.js → WorkspaceLink-DZeLe_jN.js} +3 -4
  37. package/dist/WorkspaceMessageResponse-BWbkIELl.js +100 -0
  38. package/dist/{attachment-preview-DIs50Q0h.js → attachment-preview-1CXJvrmb.js} +1 -1
  39. package/dist/components/{AgentActivity.d.ts → agents-sdk/AgentActivity.d.ts} +1 -1
  40. package/dist/components/{AgentActivity.js → agents-sdk/AgentActivity.js} +3 -3
  41. package/dist/components/{AgentActivityPreview.d.ts → agents-sdk/AgentActivityPreview.d.ts} +3 -3
  42. package/dist/components/{AgentActivityPreview.js → agents-sdk/AgentActivityPreview.js} +12 -10
  43. package/dist/components/{AgentChat.d.ts → agents-sdk/AgentChat.d.ts} +1 -1
  44. package/dist/components/{AgentChat.js → agents-sdk/AgentChat.js} +57 -32
  45. package/dist/components/{AgentToolRunsContext.d.ts → agents-sdk/AgentToolRunsContext.d.ts} +1 -1
  46. package/dist/components/{AgentToolRunsContext.js → agents-sdk/AgentToolRunsContext.js} +1 -1
  47. package/dist/components/agents-sdk/BrowserLiveView.d.ts +2 -0
  48. package/dist/components/{BrowserLiveView.js → agents-sdk/BrowserLiveView.js} +7 -7
  49. package/dist/components/agents-sdk/BrowserReplay.d.ts +2 -0
  50. package/dist/components/{BrowserReplay.js → agents-sdk/BrowserReplay.js} +7 -7
  51. package/dist/components/{BrowserRunPanel.d.ts → agents-sdk/BrowserRunPanel.d.ts} +1 -1
  52. package/dist/components/{BrowserRunPanel.js → agents-sdk/BrowserRunPanel.js} +6 -6
  53. package/dist/components/{McpConnectionRequest.d.ts → agents-sdk/McpConnectionRequest.d.ts} +3 -15
  54. package/dist/components/{McpConnectionRequest.js → agents-sdk/McpConnectionRequest.js} +46 -18
  55. package/dist/components/agents-sdk/McpConnectorForm.d.ts +39 -0
  56. package/dist/components/agents-sdk/McpConnectorForm.js +151 -0
  57. package/dist/components/{McpPluginCatalog.d.ts → agents-sdk/McpPluginCatalog.d.ts} +3 -3
  58. package/dist/components/{McpPluginCatalog.js → agents-sdk/McpPluginCatalog.js} +23 -47
  59. package/dist/components/{McpServerPicker.d.ts → agents-sdk/McpServerPicker.d.ts} +14 -6
  60. package/dist/components/{McpServerPicker.js → agents-sdk/McpServerPicker.js} +35 -45
  61. package/dist/components/{ModelSelector.d.ts → agents-sdk/ModelSelector.d.ts} +4 -4
  62. package/dist/components/{ModelSelector.js → agents-sdk/ModelSelector.js} +1 -1
  63. package/dist/components/agents-sdk/PromptInputApproval.d.ts +44 -0
  64. package/dist/components/agents-sdk/PromptInputApproval.js +61 -0
  65. package/dist/components/agents-sdk/PromptInputCommands.d.ts +11 -0
  66. package/dist/components/agents-sdk/PromptInputCommands.js +33 -0
  67. package/dist/components/agents-sdk/SessionCompaction.d.ts +2 -0
  68. package/dist/components/{SessionCompaction.js → agents-sdk/SessionCompaction.js} +32 -11
  69. package/dist/components/{SubagentRunDetails.d.ts → agents-sdk/SubagentRunDetails.d.ts} +1 -1
  70. package/dist/components/{SubagentRunDetails.js → agents-sdk/SubagentRunDetails.js} +4 -4
  71. package/dist/components/{SubagentRunIndicator.d.ts → agents-sdk/SubagentRunIndicator.d.ts} +1 -1
  72. package/dist/components/{SubagentRunIndicator.js → agents-sdk/SubagentRunIndicator.js} +3 -3
  73. package/dist/components/{SubagentRunList.d.ts → agents-sdk/SubagentRunList.d.ts} +1 -1
  74. package/dist/components/{SubagentRunList.js → agents-sdk/SubagentRunList.js} +2 -2
  75. package/dist/components/{SubagentRunSelector.d.ts → agents-sdk/SubagentRunSelector.d.ts} +1 -1
  76. package/dist/components/{SubagentRunSelector.js → agents-sdk/SubagentRunSelector.js} +7 -7
  77. package/dist/components/{ThinkChat.d.ts → agents-sdk/ThinkChat.d.ts} +16 -16
  78. package/dist/components/{ThinkChat.js → agents-sdk/ThinkChat.js} +3 -3
  79. package/dist/components/{ThinkChatActivity.d.ts → agents-sdk/ThinkChatActivity.d.ts} +3 -3
  80. package/dist/components/{ThinkChatActivity.js → agents-sdk/ThinkChatActivity.js} +6 -6
  81. package/dist/components/{ThinkChatActivitySummary.d.ts → agents-sdk/ThinkChatActivitySummary.d.ts} +1 -1
  82. package/dist/components/{ThinkChatActivitySummary.js → agents-sdk/ThinkChatActivitySummary.js} +5 -4
  83. package/dist/components/{ThinkChatContext.d.ts → agents-sdk/ThinkChatContext.d.ts} +1 -1
  84. package/dist/components/{ThinkChatContext.js → agents-sdk/ThinkChatContext.js} +1 -1
  85. package/dist/components/{ThinkChatToolPanels.d.ts → agents-sdk/ThinkChatToolPanels.d.ts} +2 -2
  86. package/dist/components/{ThinkChatToolPanels.js → agents-sdk/ThinkChatToolPanels.js} +5 -5
  87. package/dist/components/agents-sdk/ThinkChatToolParts.d.ts +2 -0
  88. package/dist/components/{ThinkChatToolParts.js → agents-sdk/ThinkChatToolParts.js} +3 -33
  89. package/dist/components/{ThinkExecutionDetail.d.ts → agents-sdk/ThinkExecutionDetail.d.ts} +2 -2
  90. package/dist/components/{ThinkExecutionDetail.js → agents-sdk/ThinkExecutionDetail.js} +5 -8
  91. package/dist/components/{ThinkExecutionRun.d.ts → agents-sdk/ThinkExecutionRun.d.ts} +1 -1
  92. package/dist/components/{ThinkExecutionRun.js → agents-sdk/ThinkExecutionRun.js} +2 -2
  93. package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +35 -0
  94. package/dist/components/agents-sdk/ThinkExecutionStatus.js +59 -0
  95. package/dist/components/{ThinkExecutionWorkbench.d.ts → agents-sdk/ThinkExecutionWorkbench.d.ts} +2 -2
  96. package/dist/components/{ThinkExecutionWorkbench.js → agents-sdk/ThinkExecutionWorkbench.js} +15 -32
  97. package/dist/components/{ThinkFullApp.d.ts → agents-sdk/ThinkFullApp.d.ts} +21 -9
  98. package/dist/components/{ThinkFullApp.js → agents-sdk/ThinkFullApp.js} +46 -29
  99. package/dist/components/{ThinkFullAppViewSwitch.d.ts → agents-sdk/ThinkFullAppViewSwitch.d.ts} +2 -2
  100. package/dist/components/{ThinkFullAppViewSwitch.js → agents-sdk/ThinkFullAppViewSwitch.js} +4 -4
  101. package/dist/components/{ThinkPendingApproval.d.ts → agents-sdk/ThinkPendingApproval.d.ts} +1 -1
  102. package/dist/components/{ThinkPendingApproval.js → agents-sdk/ThinkPendingApproval.js} +3 -3
  103. package/dist/components/agents-sdk/ThinkRecoveryNotice.d.ts +2 -0
  104. package/dist/components/{ThinkRecoveryNotice.js → agents-sdk/ThinkRecoveryNotice.js} +3 -3
  105. package/dist/components/{ThinkRoutine.d.ts → agents-sdk/ThinkRoutine.d.ts} +2 -2
  106. package/dist/components/{ThinkRoutine.js → agents-sdk/ThinkRoutine.js} +1 -1
  107. package/dist/components/{ThinkRoutineBrowser.d.ts → agents-sdk/ThinkRoutineBrowser.d.ts} +1 -1
  108. package/dist/components/{ThinkRoutineBrowser.js → agents-sdk/ThinkRoutineBrowser.js} +9 -9
  109. package/dist/components/{ThinkRoutineDetail.d.ts → agents-sdk/ThinkRoutineDetail.d.ts} +1 -1
  110. package/dist/components/{ThinkRoutineDetail.js → agents-sdk/ThinkRoutineDetail.js} +4 -4
  111. package/dist/components/{ThinkRoutineForm.d.ts → agents-sdk/ThinkRoutineForm.d.ts} +1 -1
  112. package/dist/components/{ThinkRoutineForm.js → agents-sdk/ThinkRoutineForm.js} +9 -9
  113. package/dist/components/{ThinkRoutineLibrary.d.ts → agents-sdk/ThinkRoutineLibrary.d.ts} +5 -2
  114. package/dist/components/{ThinkRoutineLibrary.js → agents-sdk/ThinkRoutineLibrary.js} +47 -44
  115. package/dist/components/{ThinkRoutineRuns.d.ts → agents-sdk/ThinkRoutineRuns.d.ts} +2 -2
  116. package/dist/components/agents-sdk/ThinkRoutineRuns.js +59 -0
  117. package/dist/components/{ThinkThreadPicker.d.ts → agents-sdk/ThinkThreadPicker.d.ts} +1 -1
  118. package/dist/components/{ThinkThreadPicker.js → agents-sdk/ThinkThreadPicker.js} +12 -14
  119. package/dist/components/{ThinkThreadShell.d.ts → agents-sdk/ThinkThreadShell.d.ts} +2 -2
  120. package/dist/components/{ThinkThreadShell.js → agents-sdk/ThinkThreadShell.js} +3 -3
  121. package/dist/components/{Workspace.d.ts → agents-sdk/Workspace.d.ts} +1 -1
  122. package/dist/components/{Workspace.js → agents-sdk/Workspace.js} +5 -7
  123. package/dist/components/{WorkspaceBrowser.d.ts → agents-sdk/WorkspaceBrowser.d.ts} +2 -2
  124. package/dist/components/{WorkspaceBrowser.js → agents-sdk/WorkspaceBrowser.js} +3 -3
  125. package/dist/components/{WorkspaceExplorer.d.ts → agents-sdk/WorkspaceExplorer.d.ts} +4 -4
  126. package/dist/components/{WorkspaceExplorer.js → agents-sdk/WorkspaceExplorer.js} +5 -7
  127. package/dist/components/{WorkspaceFile.d.ts → agents-sdk/WorkspaceFile.d.ts} +1 -1
  128. package/dist/components/{WorkspaceFile.js → agents-sdk/WorkspaceFile.js} +1 -1
  129. package/dist/components/{WorkspaceFileView.d.ts → agents-sdk/WorkspaceFileView.d.ts} +2 -2
  130. package/dist/components/agents-sdk/WorkspaceFileView.js +2 -0
  131. package/dist/components/{WorkspaceHeader.d.ts → agents-sdk/WorkspaceHeader.d.ts} +1 -1
  132. package/dist/components/{WorkspaceHeader.js → agents-sdk/WorkspaceHeader.js} +3 -3
  133. package/dist/components/{WorkspaceLink.d.ts → agents-sdk/WorkspaceLink.d.ts} +1 -1
  134. package/dist/components/{WorkspaceLink.js → agents-sdk/WorkspaceLink.js} +1 -1
  135. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +12 -0
  136. package/dist/components/agents-sdk/WorkspaceMessageResponse.js +2 -0
  137. package/dist/components/{WorkspaceMountManager.d.ts → agents-sdk/WorkspaceMountManager.d.ts} +1 -1
  138. package/dist/components/{WorkspaceMountManager.js → agents-sdk/WorkspaceMountManager.js} +9 -9
  139. package/dist/components/{Activity.d.ts → ai-sdk/Activity.d.ts} +4 -4
  140. package/dist/components/{Activity.js → ai-sdk/Activity.js} +6 -6
  141. package/dist/components/{AgentAttention.d.ts → ai-sdk/AgentAttention.d.ts} +2 -2
  142. package/dist/components/{AgentAttention.js → ai-sdk/AgentAttention.js} +3 -3
  143. package/dist/components/{AgentChatMessageEditor.d.ts → ai-sdk/AgentChatMessageEditor.d.ts} +1 -1
  144. package/dist/components/{AgentChatMessageEditor.js → ai-sdk/AgentChatMessageEditor.js} +5 -5
  145. package/dist/components/{AgentChatStartScreen.d.ts → ai-sdk/AgentChatStartScreen.d.ts} +1 -1
  146. package/dist/components/{AgentChatStartScreen.js → ai-sdk/AgentChatStartScreen.js} +5 -5
  147. package/dist/components/{AgentChatTurnError.d.ts → ai-sdk/AgentChatTurnError.d.ts} +1 -1
  148. package/dist/components/{AgentChatTurnError.js → ai-sdk/AgentChatTurnError.js} +2 -2
  149. package/dist/components/{AgentMessageParts.d.ts → ai-sdk/AgentMessageParts.d.ts} +1 -1
  150. package/dist/components/{AgentMessageParts.js → ai-sdk/AgentMessageParts.js} +4 -28
  151. package/dist/components/{Approval.d.ts → ai-sdk/Approval.d.ts} +1 -1
  152. package/dist/components/{Approval.js → ai-sdk/Approval.js} +5 -5
  153. package/dist/components/{Artifact.d.ts → ai-sdk/Artifact.d.ts} +2 -2
  154. package/dist/components/{Artifact.js → ai-sdk/Artifact.js} +4 -4
  155. package/dist/components/{ChainOfThought.d.ts → ai-sdk/ChainOfThought.d.ts} +3 -3
  156. package/dist/components/{ChainOfThought.js → ai-sdk/ChainOfThought.js} +4 -4
  157. package/dist/components/{Checkpoint.d.ts → ai-sdk/Checkpoint.d.ts} +2 -2
  158. package/dist/components/{Checkpoint.js → ai-sdk/Checkpoint.js} +4 -4
  159. package/dist/components/ai-sdk/CodeBlock.d.ts +2 -0
  160. package/dist/components/{CodeBlock.js → ai-sdk/CodeBlock.js} +2 -2
  161. package/dist/components/{Context.d.ts → ai-sdk/Context.d.ts} +2 -2
  162. package/dist/components/{Context.js → ai-sdk/Context.js} +5 -5
  163. package/dist/components/{Conversation.d.ts → ai-sdk/Conversation.d.ts} +2 -2
  164. package/dist/components/{Conversation.js → ai-sdk/Conversation.js} +5 -5
  165. package/dist/components/{ExpansionState.d.ts → ai-sdk/ExpansionState.d.ts} +1 -1
  166. package/dist/components/{ExpansionState.js → ai-sdk/ExpansionState.js} +1 -1
  167. package/dist/components/{Goal.d.ts → ai-sdk/Goal.d.ts} +1 -1
  168. package/dist/components/{Goal.js → ai-sdk/Goal.js} +6 -5
  169. package/dist/components/{InlineCitation.d.ts → ai-sdk/InlineCitation.d.ts} +1 -1
  170. package/dist/components/{InlineCitation.js → ai-sdk/InlineCitation.js} +4 -4
  171. package/dist/components/{MediaPreviewCard.d.ts → ai-sdk/MediaPreviewCard.d.ts} +2 -2
  172. package/dist/components/{MediaPreviewCard.js → ai-sdk/MediaPreviewCard.js} +5 -5
  173. package/dist/components/{Message.d.ts → ai-sdk/Message.d.ts} +2 -3
  174. package/dist/{Message-BF6SiKKL.js → components/ai-sdk/Message.js} +14 -99
  175. package/dist/components/{MessageScroller.d.ts → ai-sdk/MessageScroller.d.ts} +2 -2
  176. package/dist/components/{MessageScroller.js → ai-sdk/MessageScroller.js} +4 -4
  177. package/dist/components/{MessageScrollerVirtual.d.ts → ai-sdk/MessageScrollerVirtual.d.ts} +7 -8
  178. package/dist/components/{MessageScrollerVirtual.js → ai-sdk/MessageScrollerVirtual.js} +10 -10
  179. package/dist/components/{Plan.d.ts → ai-sdk/Plan.d.ts} +5 -6
  180. package/dist/components/{Plan.js → ai-sdk/Plan.js} +6 -6
  181. package/dist/components/ai-sdk/PromptInput.d.ts +2 -0
  182. package/dist/components/{PromptInput.js → ai-sdk/PromptInput.js} +32 -130
  183. package/dist/components/{Queue.d.ts → ai-sdk/Queue.d.ts} +4 -4
  184. package/dist/components/{Queue.js → ai-sdk/Queue.js} +7 -7
  185. package/dist/components/{Reasoning.d.ts → ai-sdk/Reasoning.d.ts} +2 -2
  186. package/dist/components/{Reasoning.js → ai-sdk/Reasoning.js} +5 -5
  187. package/dist/components/{Sources.d.ts → ai-sdk/Sources.d.ts} +2 -2
  188. package/dist/components/{Sources.js → ai-sdk/Sources.js} +4 -4
  189. package/dist/components/{Task.d.ts → ai-sdk/Task.d.ts} +2 -2
  190. package/dist/components/{Task.js → ai-sdk/Task.js} +4 -4
  191. package/dist/components/{ToolApproval.d.ts → ai-sdk/ToolApproval.d.ts} +1 -1
  192. package/dist/components/{ToolApproval.js → ai-sdk/ToolApproval.js} +1 -1
  193. package/dist/components/{ToolInvocation.d.ts → ai-sdk/ToolInvocation.d.ts} +1 -1
  194. package/dist/components/{ToolInvocation.js → ai-sdk/ToolInvocation.js} +7 -9
  195. package/dist/components/ai-sdk/ToolPart.d.ts +11 -0
  196. package/dist/components/ai-sdk/ToolPart.js +15 -0
  197. package/dist/components/{ChatGptSignInScreen.d.ts → extension/ChatGptSignInScreen.d.ts} +1 -1
  198. package/dist/components/{ChatGptSignInScreen.js → extension/ChatGptSignInScreen.js} +5 -5
  199. package/dist/components/{CodexModelSelector.d.ts → extension/CodexModelSelector.d.ts} +3 -3
  200. package/dist/components/{CodexModelSelector.js → extension/CodexModelSelector.js} +6 -6
  201. package/dist/components/{ConversationTabPicker.d.ts → extension/ConversationTabPicker.d.ts} +1 -1
  202. package/dist/components/{ConversationTabPicker.js → extension/ConversationTabPicker.js} +7 -6
  203. package/dist/components/{Accordion.d.ts → foundations/Accordion.d.ts} +1 -1
  204. package/dist/components/{Accordion.js → foundations/Accordion.js} +3 -3
  205. package/dist/components/{AlertDialog.d.ts → foundations/AlertDialog.d.ts} +2 -2
  206. package/dist/components/{AlertDialog.js → foundations/AlertDialog.js} +2 -2
  207. package/dist/components/{AppIcon.d.ts → foundations/AppIcon.d.ts} +1 -1
  208. package/dist/components/{AppIcon.js → foundations/AppIcon.js} +2 -2
  209. package/dist/components/{Autocomplete.d.ts → foundations/Autocomplete.d.ts} +1 -1
  210. package/dist/components/{Autocomplete.js → foundations/Autocomplete.js} +2 -2
  211. package/dist/components/{Avatar.d.ts → foundations/Avatar.d.ts} +1 -1
  212. package/dist/components/{Avatar.js → foundations/Avatar.js} +2 -2
  213. package/dist/components/{Badge.d.ts → foundations/Badge.d.ts} +1 -1
  214. package/dist/components/{Badge.js → foundations/Badge.js} +1 -1
  215. package/dist/components/{Button.d.ts → foundations/Button.d.ts} +1 -1
  216. package/dist/components/{Button.js → foundations/Button.js} +2 -2
  217. package/dist/components/{Card.d.ts → foundations/Card.d.ts} +1 -1
  218. package/dist/components/{Card.js → foundations/Card.js} +2 -2
  219. package/dist/components/{Checkbox.d.ts → foundations/Checkbox.d.ts} +7 -3
  220. package/dist/components/{Checkbox.js → foundations/Checkbox.js} +9 -5
  221. package/dist/components/{CheckboxGroup.d.ts → foundations/CheckboxGroup.d.ts} +1 -1
  222. package/dist/components/{CheckboxGroup.js → foundations/CheckboxGroup.js} +2 -2
  223. package/dist/{Collapsible-N64ASIQr.d.ts → components/foundations/Collapsible.d.ts} +7 -7
  224. package/dist/components/{Collapsible.js → foundations/Collapsible.js} +3 -3
  225. package/dist/components/foundations/Combobox.d.ts +2 -0
  226. package/dist/components/{Combobox.js → foundations/Combobox.js} +2 -2
  227. package/dist/components/{ContextMenu.d.ts → foundations/ContextMenu.d.ts} +1 -1
  228. package/dist/components/{ContextMenu.js → foundations/ContextMenu.js} +3 -3
  229. package/dist/components/{DescriptionList.d.ts → foundations/DescriptionList.d.ts} +1 -1
  230. package/dist/components/{DescriptionList.js → foundations/DescriptionList.js} +1 -1
  231. package/dist/components/{DescriptionListParts.d.ts → foundations/DescriptionListParts.d.ts} +1 -1
  232. package/dist/components/{DescriptionListParts.js → foundations/DescriptionListParts.js} +2 -2
  233. package/dist/components/{Dialog.d.ts → foundations/Dialog.d.ts} +1 -1
  234. package/dist/components/{Dialog.js → foundations/Dialog.js} +2 -2
  235. package/dist/components/{EmptyState.d.ts → foundations/EmptyState.d.ts} +1 -1
  236. package/dist/components/{EmptyState.js → foundations/EmptyState.js} +2 -2
  237. package/dist/components/{Field.d.ts → foundations/Field.d.ts} +1 -1
  238. package/dist/components/{Field.js → foundations/Field.js} +2 -2
  239. package/dist/components/{Fieldset.d.ts → foundations/Fieldset.d.ts} +1 -1
  240. package/dist/components/{Fieldset.js → foundations/Fieldset.js} +2 -2
  241. package/dist/components/{Form.d.ts → foundations/Form.d.ts} +1 -1
  242. package/dist/components/{Form.js → foundations/Form.js} +2 -2
  243. package/dist/components/{FormattedDate.d.ts → foundations/FormattedDate.d.ts} +1 -1
  244. package/dist/components/{FormattedDate.js → foundations/FormattedDate.js} +1 -1
  245. package/dist/components/foundations/IconButton.d.ts +2 -0
  246. package/dist/components/{IconButton.js → foundations/IconButton.js} +1 -1
  247. package/dist/components/{Input.d.ts → foundations/Input.d.ts} +1 -1
  248. package/dist/components/{Input.js → foundations/Input.js} +2 -2
  249. package/dist/components/{Kbd.d.ts → foundations/Kbd.d.ts} +1 -1
  250. package/dist/components/{Kbd.js → foundations/Kbd.js} +2 -2
  251. package/dist/components/{Label.d.ts → foundations/Label.d.ts} +1 -1
  252. package/dist/components/{Label.js → foundations/Label.js} +2 -2
  253. package/dist/components/{LinkButton.d.ts → foundations/LinkButton.d.ts} +2 -2
  254. package/dist/components/{LinkButton.js → foundations/LinkButton.js} +1 -1
  255. package/dist/components/{Marker.d.ts → foundations/Marker.d.ts} +1 -1
  256. package/dist/components/{Marker.js → foundations/Marker.js} +2 -2
  257. package/dist/components/{Menu.d.ts → foundations/Menu.d.ts} +1 -1
  258. package/dist/components/{Menu.js → foundations/Menu.js} +2 -2
  259. package/dist/components/{Menubar.d.ts → foundations/Menubar.d.ts} +1 -1
  260. package/dist/components/{Menubar.js → foundations/Menubar.js} +3 -3
  261. package/dist/components/{Meter.d.ts → foundations/Meter.d.ts} +1 -1
  262. package/dist/components/{Meter.js → foundations/Meter.js} +2 -2
  263. package/dist/components/{NavigationMenu.d.ts → foundations/NavigationMenu.d.ts} +1 -1
  264. package/dist/components/{NavigationMenu.js → foundations/NavigationMenu.js} +2 -2
  265. package/dist/components/{NumberField.d.ts → foundations/NumberField.d.ts} +1 -1
  266. package/dist/components/{NumberField.js → foundations/NumberField.js} +2 -2
  267. package/dist/components/{Popover.d.ts → foundations/Popover.d.ts} +1 -1
  268. package/dist/components/{Popover.js → foundations/Popover.js} +3 -3
  269. package/dist/components/{PreviewCard.d.ts → foundations/PreviewCard.d.ts} +1 -1
  270. package/dist/components/{PreviewCard.js → foundations/PreviewCard.js} +2 -2
  271. package/dist/components/{Progress.d.ts → foundations/Progress.d.ts} +1 -1
  272. package/dist/components/{Progress.js → foundations/Progress.js} +2 -2
  273. package/dist/components/{RadioGroup.d.ts → foundations/RadioGroup.d.ts} +1 -1
  274. package/dist/components/{RadioGroup.js → foundations/RadioGroup.js} +2 -2
  275. package/dist/components/{ScrollArea.d.ts → foundations/ScrollArea.d.ts} +1 -1
  276. package/dist/components/{ScrollArea.js → foundations/ScrollArea.js} +2 -2
  277. package/dist/components/{SearchField.d.ts → foundations/SearchField.d.ts} +1 -1
  278. package/dist/components/{SearchField.js → foundations/SearchField.js} +3 -3
  279. package/dist/components/{Select.d.ts → foundations/Select.d.ts} +1 -1
  280. package/dist/components/{Select.js → foundations/Select.js} +3 -3
  281. package/dist/components/{Separator.d.ts → foundations/Separator.d.ts} +1 -1
  282. package/dist/components/{Separator.js → foundations/Separator.js} +2 -2
  283. package/dist/components/{Slider.d.ts → foundations/Slider.d.ts} +1 -1
  284. package/dist/components/{Slider.js → foundations/Slider.js} +2 -2
  285. package/dist/components/{StatusPill.d.ts → foundations/StatusPill.d.ts} +1 -1
  286. package/dist/components/{StatusPill.js → foundations/StatusPill.js} +2 -2
  287. package/dist/components/{Stepper.d.ts → foundations/Stepper.d.ts} +2 -2
  288. package/dist/components/{Stepper.js → foundations/Stepper.js} +3 -3
  289. package/dist/components/{Switch.d.ts → foundations/Switch.d.ts} +7 -7
  290. package/dist/components/{Switch.js → foundations/Switch.js} +8 -8
  291. package/dist/components/{Tabs.d.ts → foundations/Tabs.d.ts} +1 -1
  292. package/dist/components/{Tabs.js → foundations/Tabs.js} +2 -2
  293. package/dist/components/{Textarea.d.ts → foundations/Textarea.d.ts} +1 -1
  294. package/dist/components/{Textarea.js → foundations/Textarea.js} +2 -2
  295. package/dist/components/{ThemeProvider.d.ts → foundations/ThemeProvider.d.ts} +2 -2
  296. package/dist/components/{ThemeProvider.js → foundations/ThemeProvider.js} +2 -2
  297. package/dist/components/{Toast.d.ts → foundations/Toast.d.ts} +1 -1
  298. package/dist/components/{Toast.js → foundations/Toast.js} +3 -3
  299. package/dist/components/{Toggle.d.ts → foundations/Toggle.d.ts} +1 -1
  300. package/dist/components/{Toggle.js → foundations/Toggle.js} +2 -2
  301. package/dist/components/foundations/ToggleGroup.d.ts +2 -0
  302. package/dist/components/{ToggleGroup.js → foundations/ToggleGroup.js} +13 -13
  303. package/dist/components/{Toolbar.d.ts → foundations/Toolbar.d.ts} +1 -1
  304. package/dist/components/{Toolbar.js → foundations/Toolbar.js} +2 -2
  305. package/dist/components/{Tooltip.d.ts → foundations/Tooltip.d.ts} +1 -1
  306. package/dist/components/{Tooltip.js → foundations/Tooltip.js} +2 -2
  307. package/dist/components/{TransitionSurface.d.ts → foundations/TransitionSurface.d.ts} +1 -1
  308. package/dist/components/{TransitionSurface.js → foundations/TransitionSurface.js} +2 -2
  309. package/dist/components/{icons.d.ts → foundations/icons.d.ts} +1 -1
  310. package/dist/components/{icons.js → foundations/icons.js} +1 -1
  311. package/dist/components/{ActionGuide.d.ts → general-purpose/ActionGuide.d.ts} +2 -2
  312. package/dist/components/{ActionGuide.js → general-purpose/ActionGuide.js} +3 -3
  313. package/dist/components/general-purpose/AppFrame.d.ts +24 -0
  314. package/dist/components/general-purpose/AppFrame.js +25 -0
  315. package/dist/components/{AppTopBar.d.ts → general-purpose/AppTopBar.d.ts} +2 -2
  316. package/dist/components/{AppTopBar.js → general-purpose/AppTopBar.js} +5 -5
  317. package/dist/components/{Commit.d.ts → general-purpose/Commit.d.ts} +5 -12
  318. package/dist/components/{Commit.js → general-purpose/Commit.js} +11 -13
  319. package/dist/components/{EnvironmentVariables.d.ts → general-purpose/EnvironmentVariables.d.ts} +2 -4
  320. package/dist/components/{EnvironmentVariables.js → general-purpose/EnvironmentVariables.js} +9 -10
  321. package/dist/components/{FileTree.d.ts → general-purpose/FileTree.d.ts} +10 -1
  322. package/dist/components/{FileTree.js → general-purpose/FileTree.js} +1 -1
  323. package/dist/components/{Pricing.d.ts → general-purpose/Pricing.d.ts} +1 -1
  324. package/dist/components/{Pricing.js → general-purpose/Pricing.js} +1 -1
  325. package/dist/components/{PricingBillingToggle.d.ts → general-purpose/PricingBillingToggle.d.ts} +1 -1
  326. package/dist/components/{PricingBillingToggle.js → general-purpose/PricingBillingToggle.js} +7 -7
  327. package/dist/components/{PricingConfirmationDialog.d.ts → general-purpose/PricingConfirmationDialog.d.ts} +1 -1
  328. package/dist/components/{PricingConfirmationDialog.js → general-purpose/PricingConfirmationDialog.js} +3 -3
  329. package/dist/components/{PricingFAQ.d.ts → general-purpose/PricingFAQ.d.ts} +1 -1
  330. package/dist/components/{PricingFAQ.js → general-purpose/PricingFAQ.js} +3 -3
  331. package/dist/components/{PricingPage.d.ts → general-purpose/PricingPage.d.ts} +1 -1
  332. package/dist/components/{PricingPage.js → general-purpose/PricingPage.js} +2 -2
  333. package/dist/components/{PricingPlanCard.d.ts → general-purpose/PricingPlanCard.d.ts} +1 -1
  334. package/dist/components/{PricingPlanCard.js → general-purpose/PricingPlanCard.js} +8 -8
  335. package/dist/components/{PricingUsageCalculator.d.ts → general-purpose/PricingUsageCalculator.d.ts} +1 -1
  336. package/dist/components/{PricingUsageCalculator.js → general-purpose/PricingUsageCalculator.js} +6 -6
  337. package/dist/components/{ResizableSidePanel.d.ts → general-purpose/ResizableSidePanel.d.ts} +8 -2
  338. package/dist/components/{ResizableSidePanel.js → general-purpose/ResizableSidePanel.js} +14 -6
  339. package/dist/{ResponsiveSidebarShell-CsAh4NyL.d.ts → components/general-purpose/ResponsiveSidebarShell.d.ts} +2 -2
  340. package/dist/components/{ResponsiveSidebarShell.js → general-purpose/ResponsiveSidebarShell.js} +6 -6
  341. package/dist/components/{SettingsFormDialog.d.ts → general-purpose/SettingsFormDialog.d.ts} +1 -1
  342. package/dist/components/{SettingsFormDialog.js → general-purpose/SettingsFormDialog.js} +8 -7
  343. package/dist/components/{SetupChecklist.d.ts → general-purpose/SetupChecklist.d.ts} +4 -1
  344. package/dist/components/{SetupChecklist.js → general-purpose/SetupChecklist.js} +23 -17
  345. package/dist/components/{Shell.d.ts → general-purpose/Shell.d.ts} +1 -1
  346. package/dist/components/{Shell.js → general-purpose/Shell.js} +2 -2
  347. package/dist/components/{Terminal.d.ts → general-purpose/Terminal.d.ts} +3 -3
  348. package/dist/components/{Terminal.js → general-purpose/Terminal.js} +7 -7
  349. package/dist/components/{TestResults.d.ts → general-purpose/TestResults.d.ts} +2 -2
  350. package/dist/components/{TestResults.js → general-purpose/TestResults.js} +6 -6
  351. package/dist/components/{ThemeModeControl.d.ts → general-purpose/ThemeModeControl.d.ts} +1 -1
  352. package/dist/components/{ThemeModeControl.js → general-purpose/ThemeModeControl.js} +4 -4
  353. package/dist/components/{WebPreview.d.ts → general-purpose/WebPreview.d.ts} +4 -4
  354. package/dist/components/{WebPreview.js → general-purpose/WebPreview.js} +12 -12
  355. package/dist/components/{AgentConnection.d.ts → nanites/AgentConnection.d.ts} +2 -36
  356. package/dist/components/{AgentConnection.js → nanites/AgentConnection.js} +7 -149
  357. package/dist/components/{AgentToolDetail.d.ts → nanites/AgentToolDetail.d.ts} +4 -4
  358. package/dist/components/{AgentToolDetail.js → nanites/AgentToolDetail.js} +8 -8
  359. package/dist/components/{GithubMotionMark.d.ts → nanites/GithubMotionMark.d.ts} +1 -1
  360. package/dist/components/{GithubMotionMark.js → nanites/GithubMotionMark.js} +2 -2
  361. package/dist/components/{NaniteScene.d.ts → nanites/NaniteScene.d.ts} +1 -1
  362. package/dist/components/{NaniteScene.js → nanites/NaniteScene.js} +2 -2
  363. package/dist/{copy-button-7ttJAorN.js → copy-button-4YvddK4e.js} +1 -1
  364. package/dist/{copy-button-EBv_B9F6.d.ts → copy-button-C0JyjClr.d.ts} +1 -1
  365. package/dist/{format-S6uWyoSb.js → format-CmopcfqJ.js} +4 -1
  366. package/dist/mcp-server-U71zhxFF.js +26 -0
  367. package/dist/{navigation-link-Cob7KBlM.js → navigation-link-kqMa81v5.js} +5 -1
  368. package/dist/{progress-ring-BjqTZqBk.js → progress-ring-Dz_ztrW2.js} +1 -1
  369. package/dist/styles/activity-header.css +5 -1
  370. package/dist/styles/agent-activity-preview-overlay.css +43 -5
  371. package/dist/styles/app-frame.css +15 -0
  372. package/dist/styles/file-tree.css +17 -2
  373. package/dist/styles/index.css +3 -1
  374. package/dist/styles/mcp-server-picker.css +1 -3
  375. package/dist/styles/menu-disclosure-group.css +13 -0
  376. package/dist/styles/message-scroller.css +2 -3
  377. package/dist/styles/sources.css +8 -0
  378. package/dist/styles/think-execution-status.css +57 -0
  379. package/dist/styles/think-execution-workbench.css +1 -50
  380. package/dist/styles/think-full-app.css +1 -1
  381. package/dist/styles/think-routine-library.css +0 -27
  382. package/dist/styles/workspace-explorer.css +0 -9
  383. package/dist/utils/structured-code.d.ts +1 -1
  384. package/package.json +2 -2
  385. package/dist/components/BrowserLiveView.d.ts +0 -2
  386. package/dist/components/BrowserReplay.d.ts +0 -2
  387. package/dist/components/CodeBlock.d.ts +0 -2
  388. package/dist/components/Collapsible.d.ts +0 -2
  389. package/dist/components/Combobox.d.ts +0 -2
  390. package/dist/components/IconButton.d.ts +0 -2
  391. package/dist/components/Message.js +0 -2
  392. package/dist/components/PromptInput.d.ts +0 -2
  393. package/dist/components/ResponsiveSidebarShell.d.ts +0 -2
  394. package/dist/components/SessionCompaction.d.ts +0 -2
  395. package/dist/components/ThinkChatToolParts.d.ts +0 -2
  396. package/dist/components/ThinkExecutionStatus.d.ts +0 -22
  397. package/dist/components/ThinkExecutionStatus.js +0 -36
  398. package/dist/components/ThinkRecoveryNotice.d.ts +0 -2
  399. package/dist/components/ThinkRoutineRuns.js +0 -76
  400. package/dist/components/ToggleGroup.d.ts +0 -2
  401. package/dist/components/WorkspaceFileView.js +0 -2
@@ -1,13 +1,11 @@
1
- import { buttonVariants } from "./components/Button.js";
2
- import { A as MaximizeIcon, d as CheckIcon, h as CodeIcon, rt as XIcon, tt as WarningIcon, x as EyeIcon, y as DownloadIcon } from "./icons-B4mGvCvc.js";
3
- import { t as NavigationLink } from "./navigation-link-Cob7KBlM.js";
4
- import { c as useWorkspaceNavigationContext, s as useWorkspaceNavigationRestoration } from "./WorkspaceLink-BYYeTQLf.js";
5
- import { r as formatClock } from "./format-S6uWyoSb.js";
6
- import { f as MessageResponse, m as createWorkspaceRehypePlugins } from "./Message-BF6SiKKL.js";
7
- import { a as CodeBlockCopyButton, i as CodeBlockContent, r as CodeBlockContainer, t as CodeBlock } from "./CodeBlock-BUfEhDia.js";
8
- import { AppTopBar } from "./components/AppTopBar.js";
9
- import { inferWorkspaceLanguage, inferWorkspaceMedia, isWorkspaceMarkdownPath, isWorkspaceSkillPath, parseWorkspaceSkill } from "./components/WorkspaceFile.js";
10
- import { WorkspaceHeader } from "./components/WorkspaceHeader.js";
1
+ import { A as MaximizeIcon, d as CheckIcon, h as CodeIcon, r as ArrowLeftIcon, tt as WarningIcon, x as EyeIcon, y as DownloadIcon } from "./icons-B4mGvCvc.js";
2
+ import { r as formatClock } from "./format-CmopcfqJ.js";
3
+ import { a as CodeBlockCopyButton, i as CodeBlockContent, r as CodeBlockContainer, t as CodeBlock } from "./CodeBlock-B5I7wje1.js";
4
+ import { inferWorkspaceLanguage, inferWorkspaceMedia, isWorkspaceMarkdownPath, isWorkspaceSkillPath, parseWorkspaceSkill } from "./components/agents-sdk/WorkspaceFile.js";
5
+ import { c as useWorkspaceNavigationContext, s as useWorkspaceNavigationRestoration } from "./WorkspaceLink-DZeLe_jN.js";
6
+ import { n as createWorkspaceRehypePlugins, t as WorkspaceMessageResponse } from "./WorkspaceMessageResponse-BWbkIELl.js";
7
+ import { AppTopBar } from "./components/general-purpose/AppTopBar.js";
8
+ import { WorkspaceHeader } from "./components/agents-sdk/WorkspaceHeader.js";
11
9
  import * as React from "react";
12
10
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
11
  import { defaultRehypePlugins } from "streamdown";
@@ -461,7 +459,7 @@ function WorkspaceMediaPreview(props) {
461
459
  });
462
460
  }
463
461
  //#endregion
464
- //#region src/components/WorkspaceFileView.tsx
462
+ //#region src/components/agents-sdk/WorkspaceFileView.tsx
465
463
  function createFileViewRehypePlugins(workspace) {
466
464
  return [...workspace ? createWorkspaceRehypePlugins(workspace.root, workspace.base) : Object.values(defaultRehypePlugins), rehypeSlug];
467
465
  }
@@ -555,22 +553,13 @@ function WorkspaceFileView({ appearance = "contained", file, path, isLoading, is
555
553
  downloadUrl: assetUrl.downloadUrl,
556
554
  allowOpen: media?.mimeType !== "image/svg+xml"
557
555
  }) : null;
558
- const closeAction = workspaceNavigation ? /* @__PURE__ */ jsx(NavigationLink, {
559
- "aria-label": "Close file",
560
- className: buttonVariants({
561
- color: "neutral",
562
- variant: "ghost",
563
- size: "sm",
564
- className: "workspace-explorer__file-close"
565
- }),
566
- "data-icon-only": "",
567
- "data-slot": "button",
568
- render: workspaceNavigation.navigation.renderLink({ kind: "files" }),
569
- children: /* @__PURE__ */ jsx(XIcon, { "aria-hidden": "true" })
570
- }) : null;
571
556
  const headerProps = {
572
557
  path,
573
- leading,
558
+ leading: workspaceNavigation ? /* @__PURE__ */ jsx(AppTopBar.Link, {
559
+ label: "Back to workspace",
560
+ render: workspaceNavigation.navigation.renderLink({ kind: "files" }),
561
+ children: /* @__PURE__ */ jsx(ArrowLeftIcon, { "aria-hidden": "true" })
562
+ }) : leading,
574
563
  actions: isMarkdown ? /* @__PURE__ */ jsxs(Fragment, { children: [
575
564
  actions,
576
565
  assetActions,
@@ -606,17 +595,13 @@ function WorkspaceFileView({ appearance = "contained", file, path, isLoading, is
606
595
  className: "workspace-explorer__file",
607
596
  "data-appearance": appearance,
608
597
  "data-workspace-restoration-scope": "file",
609
- children: [
610
- /* @__PURE__ */ jsx(WorkspaceHeader, { ...headerProps }),
611
- closeAction,
612
- /* @__PURE__ */ jsx("div", {
613
- className: "workspace-explorer__empty",
614
- "data-workspace-file-content": "",
615
- "data-workspace-focus-target": "",
616
- role,
617
- children: message
618
- })
619
- ]
598
+ children: [/* @__PURE__ */ jsx(WorkspaceHeader, { ...headerProps }), /* @__PURE__ */ jsx("div", {
599
+ className: "workspace-explorer__empty",
600
+ "data-workspace-file-content": "",
601
+ "data-workspace-focus-target": "",
602
+ role,
603
+ children: message
604
+ })]
620
605
  });
621
606
  }
622
607
  if (file.asset && media && assetUrl.url) return /* @__PURE__ */ jsxs("div", {
@@ -624,23 +609,19 @@ function WorkspaceFileView({ appearance = "contained", file, path, isLoading, is
624
609
  className: "workspace-explorer__file",
625
610
  "data-appearance": appearance,
626
611
  "data-workspace-restoration-scope": "file",
627
- children: [
628
- /* @__PURE__ */ jsx(WorkspaceHeader, { ...headerProps }),
629
- closeAction,
630
- /* @__PURE__ */ jsx(WorkspaceMediaPreview, {
631
- asset: file.asset,
632
- fileName: file.name,
633
- media,
634
- url: assetUrl.url,
635
- downloadUrl: assetUrl.downloadUrl,
636
- onScroll: handleScroll
637
- })
638
- ]
612
+ children: [/* @__PURE__ */ jsx(WorkspaceHeader, { ...headerProps }), /* @__PURE__ */ jsx(WorkspaceMediaPreview, {
613
+ asset: file.asset,
614
+ fileName: file.name,
615
+ media,
616
+ url: assetUrl.url,
617
+ downloadUrl: assetUrl.downloadUrl,
618
+ onScroll: handleScroll
619
+ })]
639
620
  });
640
621
  if (file.content === null) return null;
641
622
  if (isMarkdown && markdownView === "preview") {
642
623
  const skill = isWorkspaceSkillPath(file.path) ? parseWorkspaceSkill(file.content) : null;
643
- const response = /* @__PURE__ */ jsx(MessageResponse, {
624
+ const response = /* @__PURE__ */ jsx(WorkspaceMessageResponse, {
644
625
  className: "workspace-explorer__markdown-content",
645
626
  components: markdownComponents,
646
627
  mode: "static",
@@ -652,60 +633,56 @@ function WorkspaceFileView({ appearance = "contained", file, path, isLoading, is
652
633
  className: "workspace-explorer__file",
653
634
  "data-appearance": appearance,
654
635
  "data-workspace-restoration-scope": "file",
655
- children: [
656
- /* @__PURE__ */ jsx(WorkspaceHeader, { ...headerProps }),
657
- closeAction,
658
- /* @__PURE__ */ jsx("div", {
659
- ref: scrollRef,
660
- className: "workspace-explorer__markdown-scroll",
661
- "data-workspace-file-content": "",
662
- "data-workspace-scroll": "",
663
- onScroll: handleScroll,
664
- children: /* @__PURE__ */ jsxs("article", {
665
- className: "workspace-explorer__markdown",
666
- children: [skill ? /* @__PURE__ */ jsxs("header", {
667
- className: "workspace-explorer__skill",
668
- "data-skill-identity": showSkillIdentity ? "" : void 0,
669
- children: [
670
- showSkillIdentity ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("div", {
671
- className: "workspace-explorer__skill-kicker",
672
- children: "Agent Skill"
673
- }), skill.parsed ? /* @__PURE__ */ jsxs(Fragment, { children: [
674
- /* @__PURE__ */ jsx("p", {
675
- className: "workspace-explorer__skill-name",
676
- children: skill.parsed.properties.name
677
- }),
678
- /* @__PURE__ */ jsx("p", {
679
- className: "workspace-explorer__skill-description",
680
- children: skill.parsed.properties.description
681
- }),
682
- /* @__PURE__ */ jsxs("dl", {
683
- className: "workspace-explorer__skill-metadata",
684
- children: [skill.parsed.properties.compatibility ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("dt", { children: "Compatibility" }), /* @__PURE__ */ jsx("dd", { children: skill.parsed.properties.compatibility })] }) : null, skill.parsed.properties.allowedTools ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("dt", { children: "Allowed tools" }), /* @__PURE__ */ jsx("dd", { children: skill.parsed.properties.allowedTools })] }) : null]
685
- })
686
- ] }) : null] }) : null,
687
- /* @__PURE__ */ jsxs("div", {
688
- className: "workspace-explorer__skill-status",
689
- "data-invalid": skill.validationErrors.length > 0 ? "" : void 0,
690
- children: [skill.validationErrors.length > 0 ? /* @__PURE__ */ jsx(WarningIcon, { "aria-hidden": "true" }) : /* @__PURE__ */ jsx(CheckIcon, { "aria-hidden": "true" }), skill.validationErrors.length > 0 ? `${skill.validationErrors.length.toLocaleString()} validation ${skill.validationErrors.length === 1 ? "issue" : "issues"}` : "Valid Agent Skill"]
636
+ children: [/* @__PURE__ */ jsx(WorkspaceHeader, { ...headerProps }), /* @__PURE__ */ jsx("div", {
637
+ ref: scrollRef,
638
+ className: "workspace-explorer__markdown-scroll",
639
+ "data-workspace-file-content": "",
640
+ "data-workspace-scroll": "",
641
+ onScroll: handleScroll,
642
+ children: /* @__PURE__ */ jsxs("article", {
643
+ className: "workspace-explorer__markdown",
644
+ children: [skill ? /* @__PURE__ */ jsxs("header", {
645
+ className: "workspace-explorer__skill",
646
+ "data-skill-identity": showSkillIdentity ? "" : void 0,
647
+ children: [
648
+ showSkillIdentity ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("div", {
649
+ className: "workspace-explorer__skill-kicker",
650
+ children: "Agent Skill"
651
+ }), skill.parsed ? /* @__PURE__ */ jsxs(Fragment, { children: [
652
+ /* @__PURE__ */ jsx("p", {
653
+ className: "workspace-explorer__skill-name",
654
+ children: skill.parsed.properties.name
691
655
  }),
692
- skill.validationErrors.length > 0 ? /* @__PURE__ */ jsx("ul", {
693
- className: "workspace-explorer__skill-errors",
694
- children: skill.validationErrors.map((error) => /* @__PURE__ */ jsx("li", { children: error }, error))
695
- }) : null
696
- ]
697
- }) : null, response]
698
- })
656
+ /* @__PURE__ */ jsx("p", {
657
+ className: "workspace-explorer__skill-description",
658
+ children: skill.parsed.properties.description
659
+ }),
660
+ /* @__PURE__ */ jsxs("dl", {
661
+ className: "workspace-explorer__skill-metadata",
662
+ children: [skill.parsed.properties.compatibility ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("dt", { children: "Compatibility" }), /* @__PURE__ */ jsx("dd", { children: skill.parsed.properties.compatibility })] }) : null, skill.parsed.properties.allowedTools ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("dt", { children: "Allowed tools" }), /* @__PURE__ */ jsx("dd", { children: skill.parsed.properties.allowedTools })] }) : null]
663
+ })
664
+ ] }) : null] }) : null,
665
+ /* @__PURE__ */ jsxs("div", {
666
+ className: "workspace-explorer__skill-status",
667
+ "data-invalid": skill.validationErrors.length > 0 ? "" : void 0,
668
+ children: [skill.validationErrors.length > 0 ? /* @__PURE__ */ jsx(WarningIcon, { "aria-hidden": "true" }) : /* @__PURE__ */ jsx(CheckIcon, { "aria-hidden": "true" }), skill.validationErrors.length > 0 ? `${skill.validationErrors.length.toLocaleString()} validation ${skill.validationErrors.length === 1 ? "issue" : "issues"}` : "Valid Agent Skill"]
669
+ }),
670
+ skill.validationErrors.length > 0 ? /* @__PURE__ */ jsx("ul", {
671
+ className: "workspace-explorer__skill-errors",
672
+ children: skill.validationErrors.map((error) => /* @__PURE__ */ jsx("li", { children: error }, error))
673
+ }) : null
674
+ ]
675
+ }) : null, response]
699
676
  })
700
- ]
677
+ })]
701
678
  });
702
679
  }
703
- return /* @__PURE__ */ jsxs("div", {
680
+ return /* @__PURE__ */ jsx("div", {
704
681
  ref: fileViewRef,
705
682
  className: "workspace-explorer__file",
706
683
  "data-appearance": appearance,
707
684
  "data-workspace-restoration-scope": "file",
708
- children: [closeAction, /* @__PURE__ */ jsxs(CodeBlock, {
685
+ children: /* @__PURE__ */ jsxs(CodeBlock, {
709
686
  className: "workspace-explorer__code",
710
687
  code: file.content,
711
688
  "data-workspace-file-content": "",
@@ -724,7 +701,7 @@ function WorkspaceFileView({ appearance = "contained", file, path, isLoading, is
724
701
  onScroll: handleScroll,
725
702
  children: /* @__PURE__ */ jsx(CodeBlockContent, {})
726
703
  })]
727
- })]
704
+ })
728
705
  });
729
706
  }
730
707
  //#endregion
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
 
3
- //#region src/components/WorkspaceLink.d.ts
3
+ //#region src/components/agents-sdk/WorkspaceLink.d.ts
4
4
  type WorkspaceDestination = {
5
5
  kind: "files";
6
6
  } | {
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "./class-names-BiMDVpUo.js";
2
- import { t as NavigationLink } from "./navigation-link-Cob7KBlM.js";
2
+ import { n as isPlainPrimaryLinkActivation, t as NavigationLink } from "./navigation-link-kqMa81v5.js";
3
3
  import { n as isWorkspacePathWithinRoot, t as canonicalizeAbsoluteWorkspacePath } from "./workspace-path-L_KmjRjq.js";
4
4
  import * as React from "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -93,7 +93,7 @@ function useRequiredWorkspaceNavigationRestoration() {
93
93
  return restoration;
94
94
  }
95
95
  //#endregion
96
- //#region src/components/WorkspaceLink.tsx
96
+ //#region src/components/agents-sdk/WorkspaceLink.tsx
97
97
  const EXTERNAL_PROTOCOLS = /* @__PURE__ */ new Set([
98
98
  "http:",
99
99
  "https:",
@@ -278,8 +278,7 @@ function WorkspaceFileLink({ children, className, download, href = "", node: _no
278
278
  }
279
279
  const handleClick = (event) => {
280
280
  onClick?.(event);
281
- const actualTarget = event.currentTarget.target.toLowerCase();
282
- if (event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.currentTarget.hasAttribute("download") || actualTarget !== "" && actualTarget !== "_self") return;
281
+ if (!isPlainPrimaryLinkActivation(event)) return;
283
282
  const focusScope = event.currentTarget.closest("[data-workspace-restoration-scope]")?.dataset.workspaceRestorationScope;
284
283
  restoration?.recordFocus(workspace.navigation.current.key, resolved, focusScope);
285
284
  };
@@ -0,0 +1,100 @@
1
+ import { MessageResponse } from "./components/ai-sdk/Message.js";
2
+ import { c as useWorkspaceNavigationContext, r as resolveWorkspaceLink, t as WorkspaceFileLink } from "./WorkspaceLink-DZeLe_jN.js";
3
+ import * as React from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { defaultRehypePlugins } from "streamdown";
6
+ import { visit } from "unist-util-visit";
7
+ //#region src/components/_internal/workspace-markdown.ts
8
+ const WORKSPACE_HARDEN_ORIGIN = "https://workspace.invalid/";
9
+ const workspaceOriginalUrl = Symbol("workspace-original-url");
10
+ function captureWorkspaceUrls() {
11
+ return (tree) => {
12
+ visit(tree, "element", (node) => {
13
+ const property = node.tagName === "a" ? "href" : node.tagName === "img" ? "src" : null;
14
+ const value = property ? node.properties[property] : null;
15
+ if (typeof value === "string") node[workspaceOriginalUrl] = value;
16
+ });
17
+ };
18
+ }
19
+ function isWorkspaceRelativeUrl(value) {
20
+ if (value.startsWith("//")) return false;
21
+ try {
22
+ new URL(value);
23
+ return false;
24
+ } catch {
25
+ return true;
26
+ }
27
+ }
28
+ function restoreWorkspaceUrls({ root, base }) {
29
+ return (tree) => {
30
+ visit(tree, "element", (node) => {
31
+ const workspaceNode = node;
32
+ const originalUrl = workspaceNode[workspaceOriginalUrl];
33
+ delete workspaceNode[workspaceOriginalUrl];
34
+ if (originalUrl === void 0) return;
35
+ if (node.tagName === "img") {
36
+ if (isWorkspaceRelativeUrl(originalUrl)) {
37
+ const alt = typeof node.properties.alt === "string" ? node.properties.alt : "";
38
+ node.tagName = "a";
39
+ node.properties = { href: originalUrl };
40
+ node.children = [{
41
+ type: "text",
42
+ value: alt || "Open linked image"
43
+ }];
44
+ } else if (originalUrl.startsWith("//")) node.properties.src = originalUrl;
45
+ return;
46
+ }
47
+ if (node.tagName !== "a") return;
48
+ node.properties.href = originalUrl;
49
+ if (resolveWorkspaceLink({
50
+ href: originalUrl,
51
+ root,
52
+ base
53
+ }).kind === "file") {
54
+ delete node.properties.target;
55
+ delete node.properties.rel;
56
+ }
57
+ });
58
+ };
59
+ }
60
+ function configureWorkspaceHarden(plugin) {
61
+ if (!Array.isArray(plugin) || typeof plugin[0] !== "function") throw new Error("Streamdown's harden plugin no longer exposes configurable options.");
62
+ const options = plugin[1];
63
+ if (options !== void 0 && (typeof options !== "object" || options === null || Array.isArray(options))) throw new Error("Streamdown's harden plugin options have an unsupported shape.");
64
+ return [plugin[0], {
65
+ ...options,
66
+ defaultOrigin: WORKSPACE_HARDEN_ORIGIN
67
+ }];
68
+ }
69
+ const workspaceHardenPlugin = configureWorkspaceHarden(defaultRehypePlugins.harden);
70
+ /** Preserve validated filesystem links through Streamdown's URL hardening pass. */
71
+ function createWorkspaceRehypePlugins(root, base) {
72
+ const plugins = [];
73
+ for (const [name, plugin] of Object.entries(defaultRehypePlugins)) if (name === "harden") plugins.push(captureWorkspaceUrls, workspaceHardenPlugin, [restoreWorkspaceUrls, {
74
+ root,
75
+ base
76
+ }]);
77
+ else plugins.push(plugin);
78
+ return plugins;
79
+ }
80
+ //#endregion
81
+ //#region src/components/agents-sdk/WorkspaceMessageResponse.tsx
82
+ const workspaceComponents = {
83
+ img: "img",
84
+ a: WorkspaceFileLink
85
+ };
86
+ /** Adds workspace-aware Markdown links when rendered inside a workspace provider. */
87
+ const WorkspaceMessageResponse = React.memo(function WorkspaceMessageResponse({ components, rehypePlugins, ...props }) {
88
+ const workspace = useWorkspaceNavigationContext();
89
+ const resolvedRehypePlugins = React.useMemo(() => rehypePlugins ?? (workspace ? createWorkspaceRehypePlugins(workspace.root, workspace.base) : void 0), [rehypePlugins, workspace]);
90
+ return /* @__PURE__ */ jsx(MessageResponse, {
91
+ components: components ? {
92
+ ...workspaceComponents,
93
+ ...components
94
+ } : workspaceComponents,
95
+ rehypePlugins: resolvedRehypePlugins,
96
+ ...props
97
+ });
98
+ });
99
+ //#endregion
100
+ export { createWorkspaceRehypePlugins as n, WorkspaceMessageResponse as t };
@@ -1,4 +1,4 @@
1
- import { Dialog } from "./components/Dialog.js";
1
+ import { Dialog } from "./components/foundations/Dialog.js";
2
2
  import "react";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/_internal/attachment-preview.tsx
@@ -1,2 +1,2 @@
1
- import { a as AgentActivityIconProps, i as AgentActivityIconKind, n as AgentActivityFaviconProps, o as AgentActivityMode, r as AgentActivityIcon, s as AgentActivitySummary, t as AgentActivityFavicon } from "../AgentActivity-D3OvrC02.js";
1
+ import { a as AgentActivityIconProps, i as AgentActivityIconKind, n as AgentActivityFaviconProps, o as AgentActivityMode, r as AgentActivityIcon, s as AgentActivitySummary, t as AgentActivityFavicon } from "../../AgentActivity-SP1WfLDW.js";
2
2
  export { AgentActivityFavicon, AgentActivityFaviconProps, AgentActivityIcon, AgentActivityIconKind, AgentActivityIconProps, AgentActivityMode, AgentActivitySummary };
@@ -1,8 +1,8 @@
1
- import { $ as TerminalIcon, B as PencilIcon, C as FileIcon, F as MonitorIcon, G as SearchIcon, O as InfoIcon, k as LinkIcon, nt as WrenchIcon, tt as WarningIcon } from "../icons-B4mGvCvc.js";
2
- import { inferFaviconUrl } from "../utils/favicon.js";
1
+ import { inferFaviconUrl } from "../../utils/favicon.js";
2
+ import { $ as TerminalIcon, B as PencilIcon, C as FileIcon, F as MonitorIcon, G as SearchIcon, O as InfoIcon, k as LinkIcon, nt as WrenchIcon, tt as WarningIcon } from "../../icons-B4mGvCvc.js";
3
3
  import * as React from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
- //#region src/components/AgentActivity.tsx
5
+ //#region src/components/agents-sdk/AgentActivity.tsx
6
6
  /** Built-in icon vocabulary shared by AI SDK activity and Agents SDK state summaries. */
7
7
  function AgentActivityIcon({ kind }) {
8
8
  switch (kind) {
@@ -1,8 +1,8 @@
1
- import { n as WorkspaceDestination } from "../WorkspaceLink-O-EBKUJ8.js";
2
- import { s as AgentActivitySummary } from "../AgentActivity-D3OvrC02.js";
1
+ import { n as WorkspaceDestination } from "../../WorkspaceLink-DQogVe8E.js";
2
+ import { s as AgentActivitySummary } from "../../AgentActivity-SP1WfLDW.js";
3
3
  import * as React from "react";
4
4
 
5
- //#region src/components/AgentActivityPreview.d.ts
5
+ //#region src/components/agents-sdk/AgentActivityPreview.d.ts
6
6
  /** The three conditions that make an agent relevant to the transient preview. */
7
7
  type AgentActivityPreviewStatus = "running" | "input-required" | "unviewed";
8
8
  interface AgentActivityPreviewFavicon {
@@ -1,13 +1,13 @@
1
- import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { C as FileIcon, J as SpinnerIcon, j as McpIcon, rt as XIcon, tt as WarningIcon } from "../icons-B4mGvCvc.js";
3
- import { ActivityHeader } from "./Activity.js";
1
+ import { t as cx } from "../../class-names-BiMDVpUo.js";
2
+ import { C as FileIcon, J as SpinnerIcon, j as McpIcon, rt as XIcon, tt as WarningIcon } from "../../icons-B4mGvCvc.js";
3
+ import { ActivityHeader } from "../ai-sdk/Activity.js";
4
+ import { Button } from "../foundations/Button.js";
4
5
  import { AgentActivityFavicon, AgentActivityIcon } from "./AgentActivity.js";
5
- import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
6
- import { AppIcon } from "./AppIcon.js";
7
- import { IconButton } from "./IconButton.js";
6
+ import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
7
+ import { AppIcon } from "../foundations/AppIcon.js";
8
8
  import "react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
- //#region src/components/AgentActivityPreview.tsx
10
+ //#region src/components/agents-sdk/AgentActivityPreview.tsx
11
11
  /** Compact multi-agent preview for a page overlay or secondary application rail. */
12
12
  function AgentActivityPreview({ "aria-label": ariaLabel = "Agent activity", brandIcon = /* @__PURE__ */ jsx(McpIcon, {}), className, items, onDismiss, renderAgentLink, renderWorkspaceFileLink, ref, ...props }) {
13
13
  if (items.length === 0) return null;
@@ -23,10 +23,11 @@ function AgentActivityPreview({ "aria-label": ariaLabel = "Agent activity", bran
23
23
  "aria-hidden": "true",
24
24
  children: brandIcon
25
25
  }),
26
- onDismiss ? /* @__PURE__ */ jsx(IconButton, {
26
+ onDismiss ? /* @__PURE__ */ jsx(Button, {
27
+ "aria-label": "Hide agent activity",
27
28
  className: "agent-activity-preview__dismiss",
28
29
  color: "neutral",
29
- label: "Hide agent activity",
30
+ iconOnly: true,
30
31
  size: "sm",
31
32
  variant: "ghost",
32
33
  onClick: onDismiss,
@@ -40,7 +41,7 @@ function AgentActivityPreview({ "aria-label": ariaLabel = "Agent activity", bran
40
41
  children: [/* @__PURE__ */ jsx(NavigationLink, {
41
42
  render: renderAgentLink(item),
42
43
  className: "agent-activity-preview__row",
43
- "aria-label": `${item.action}. ${statusLabel(item.status)}. Open agent.`,
44
+ "aria-label": `${item.action}${item.detail ? ` ${item.detail}` : ""}. ${statusLabel(item.status)}. Open agent.`,
44
45
  "data-status": item.status,
45
46
  children: /* @__PURE__ */ jsx(ActivityHeader, {
46
47
  icon: item.url ? /* @__PURE__ */ jsx(AgentActivityFavicon, {
@@ -49,6 +50,7 @@ function AgentActivityPreview({ "aria-label": ariaLabel = "Agent activity", bran
49
50
  }) : /* @__PURE__ */ jsx(AgentActivityIcon, { kind: item.iconKind }),
50
51
  isStreaming: item.status === "running",
51
52
  action: item.action,
53
+ detail: item.detail,
52
54
  trailing: /* @__PURE__ */ jsxs("span", {
53
55
  className: "agent-activity-preview__trailing",
54
56
  "aria-hidden": "true",
@@ -1,2 +1,2 @@
1
- import { a as PermissionModeControl, i as AgentChatRenderMessageContext, n as AgentChatComposerDraft, r as AgentChatProps, t as AgentChat } from "../AgentChat-Dy3cKCd-.js";
1
+ import { a as PermissionModeControl, i as AgentChatRenderMessageContext, n as AgentChatComposerDraft, r as AgentChatProps, t as AgentChat } from "../../AgentChat-CV-GuYA6.js";
2
2
  export { AgentChat, AgentChatComposerDraft, AgentChatProps, AgentChatRenderMessageContext, PermissionModeControl };
@@ -1,25 +1,26 @@
1
- import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { Button } from "./Button.js";
3
- import { ExpansionStateProvider } from "./ExpansionState.js";
4
- import { B as PencilIcon, H as PlusIcon, L as MoveToFrontIcon, U as QueueIcon, W as RefreshIcon, et as TrashIcon, t as ArchiveIcon } from "../icons-B4mGvCvc.js";
5
- import { IconButton } from "./IconButton.js";
6
- import { n as MessageAction, r as MessageActions, t as Message } from "../Message-BF6SiKKL.js";
7
- import { AgentMessageParts } from "./AgentMessageParts.js";
8
- import { Context, ContextContent, ContextContentBody, ContextContentHeader, ContextTrigger, getContextUsage, getContextUsedTokens } from "./Context.js";
9
- import { EmptyState } from "./EmptyState.js";
10
- import { VirtualMessageScroller } from "./MessageScrollerVirtual.js";
11
- import { Menu } from "./Menu.js";
12
- import { PromptInput, PromptInputActionAddAttachments, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuTrigger, PromptInputApproval, PromptInputAttachments, PromptInputBody, PromptInputButton, PromptInputCommandComposer, PromptInputContextSelector, PromptInputDictation, PromptInputFooter, PromptInputHeader, PromptInputPermissionSelector, PromptInputReferences, PromptInputSubmit, PromptInputTextarea, PromptInputTools, PromptInputTray, getApprovalRequestId, getApprovalStateKey, getPendingToolApprovals, usePromptInputAttachments } from "./PromptInput.js";
13
- import { AgentChatStartScreen } from "./AgentChatStartScreen.js";
14
- import { AgentChatMessageEditor } from "./AgentChatMessageEditor.js";
15
- import { Marker, MarkerContent } from "./Marker.js";
16
- import { TransitionSurface } from "./TransitionSurface.js";
17
- import { t as CopyButton } from "../copy-button-7ttJAorN.js";
1
+ import { t as cx } from "../../class-names-BiMDVpUo.js";
2
+ import { ExpansionStateProvider } from "../ai-sdk/ExpansionState.js";
3
+ import { B as PencilIcon, H as PlusIcon, J as SpinnerIcon, L as MoveToFrontIcon, U as QueueIcon, W as RefreshIcon, et as TrashIcon, t as ArchiveIcon } from "../../icons-B4mGvCvc.js";
4
+ import { Button } from "../foundations/Button.js";
5
+ import { AgentChatMessageEditor } from "../ai-sdk/AgentChatMessageEditor.js";
6
+ import { IconButton } from "../foundations/IconButton.js";
7
+ import { Menu } from "../foundations/Menu.js";
8
+ import { PromptInput, PromptInputActionAddAttachments, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuTrigger, PromptInputAttachments, PromptInputBody, PromptInputButton, PromptInputCommandComposer, PromptInputContextSelector, PromptInputDictation, PromptInputFooter, PromptInputHeader, PromptInputPermissionSelector, PromptInputReferences, PromptInputSubmit, PromptInputTextarea, PromptInputTools, PromptInputTray, usePromptInputAttachments } from "../ai-sdk/PromptInput.js";
9
+ import { AgentChatStartScreen } from "../ai-sdk/AgentChatStartScreen.js";
10
+ import { Message, MessageAction, MessageActions } from "../ai-sdk/Message.js";
11
+ import { AgentMessageParts } from "../ai-sdk/AgentMessageParts.js";
12
+ import { Marker, MarkerContent } from "../foundations/Marker.js";
13
+ import { t as CopyButton } from "../../copy-button-4YvddK4e.js";
14
+ import { Context, ContextContent, ContextContentBody, ContextContentHeader, ContextTrigger, getContextUsage, getContextUsedTokens } from "../ai-sdk/Context.js";
15
+ import { VirtualMessageScroller } from "../ai-sdk/MessageScrollerVirtual.js";
16
+ import { EmptyState } from "../foundations/EmptyState.js";
17
+ import { TransitionSurface } from "../foundations/TransitionSurface.js";
18
+ import { PromptInputApproval, getApprovalRequestId, getApprovalStateKey, getPendingToolApprovals } from "./PromptInputApproval.js";
18
19
  import * as React from "react";
19
20
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
20
- import { isCompactionMessage } from "agents/experimental/memory/utils";
21
21
  import { isTextUIPart } from "ai";
22
- //#region src/components/AgentChat.tsx
22
+ import { isCompactionMessage } from "agents/experimental/memory/utils";
23
+ //#region src/components/agents-sdk/AgentChat.tsx
23
24
  /**
24
25
  * Agents exports this helper from `agents/sessions` after cloudflare/agents#1896;
25
26
  * the current 0.19.0 release still publishes it from the experimental path.
@@ -29,9 +30,9 @@ import { isTextUIPart } from "ai";
29
30
  * instead of duplicating the prefix contract locally.
30
31
  */
31
32
  /**
32
- * Built-in `/compact` entry, present whenever `onCompact` is provided.
33
- * Selection is intercepted in `selectComposerCommand` before any reference
34
- * chip or host `onSelect` runs.
33
+ * Built-in `/compact` entry, present whenever `onCompact` is provided and the
34
+ * agent is not mid-turn. Selection is intercepted in `selectComposerCommand`
35
+ * before any reference chip or host `onSelect` runs.
35
36
  */
36
37
  const COMPACT_SLASH_COMMAND = {
37
38
  id: "agent-chat:compact",
@@ -42,6 +43,12 @@ const COMPACT_SLASH_COMMAND = {
42
43
  group: "Conversation",
43
44
  meta: "Built in"
44
45
  };
46
+ const COMPACTION_NOTICES = {
47
+ compacted: "Context compacted. Context usage updates after your next message.",
48
+ failed: "Compaction failed — run /compact to try again.",
49
+ pending: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(SpinnerIcon, {}), "Compacting context…"] }),
50
+ unchanged: "No context was compacted. Recent context is already protected."
51
+ };
45
52
  function observeAgentChatComposer(element) {
46
53
  if (!element || typeof ResizeObserver === "undefined") return;
47
54
  const root = element.parentElement;
@@ -130,6 +137,13 @@ function getEditableUserText(message) {
130
137
  const part = message.parts[0];
131
138
  return isTextUIPart(part) && part.text.trim() ? part.text : void 0;
132
139
  }
140
+ /** Agents row-size compaction metadata is intentionally handled at the Agents seam. */
141
+ function isCompactedPart(message, partIndex) {
142
+ const part = message.parts[partIndex];
143
+ const metadata = message.metadata;
144
+ if (isTextUIPart(part)) return Array.isArray(metadata?.compactedTextParts) && metadata.compactedTextParts.includes(partIndex);
145
+ return part !== void 0 && "toolCallId" in part && typeof part.toolCallId === "string" && Array.isArray(metadata?.compactedToolOutputs) && metadata.compactedToolOutputs.includes(part.toolCallId);
146
+ }
133
147
  /**
134
148
  * One transcript row's content, memoized so a streaming delta re-renders only
135
149
  * the rows whose props changed — in practice the live message. This only
@@ -153,7 +167,15 @@ function AgentChatTranscriptRowBodyImpl({ message, messageIndex, status, renderP
153
167
  /* @__PURE__ */ jsx(AgentMessageParts, {
154
168
  message,
155
169
  status,
156
- renderPart
170
+ renderPart: (context) => {
171
+ const custom = renderPart?.(context);
172
+ if (!isCompactedPart(message, context.partIndex)) return custom;
173
+ const rendered = custom === void 0 ? context.defaultRender() : custom;
174
+ return rendered ? /* @__PURE__ */ jsxs(Fragment, { children: [rendered, /* @__PURE__ */ jsx("div", {
175
+ className: "message__compacted",
176
+ children: "Output truncated for storage"
177
+ })] }) : null;
178
+ }
157
179
  }),
158
180
  renderMessageAfter?.({
159
181
  message,
@@ -218,6 +240,8 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
218
240
  const [queueHeld, setQueueHeld] = React.useState(false);
219
241
  const busy = status === "submitted" || status === "streaming";
220
242
  const wasBusy = React.useRef(busy);
243
+ const [compactionState, setCompactionState] = React.useState(null);
244
+ const compactionInFlight = React.useRef(false);
221
245
  const addComposerReference = React.useCallback((reference) => {
222
246
  setComposerReferences((current) => current.some((item) => item.id === reference.id && item.trigger === reference.trigger) ? current : [...current, reference]);
223
247
  }, []);
@@ -244,6 +268,7 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
244
268
  setQueueHeld(false);
245
269
  setComposerDraft("");
246
270
  setComposerReferences([]);
271
+ setCompactionState(null);
247
272
  if (busy || pendingPrompts.length && !queueHeld) {
248
273
  setPendingPrompts((current) => [...current, {
249
274
  id: crypto.randomUUID(),
@@ -278,20 +303,19 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
278
303
  pendingPrompts,
279
304
  queueHeld
280
305
  ]);
281
- const [compactionNotice, setCompactionNotice] = React.useState(null);
282
- const compactionInFlight = React.useRef(false);
283
306
  const selectComposerCommand = React.useCallback((command, trigger) => {
284
307
  if (trigger === "/" && onCompact && command.id === COMPACT_SLASH_COMMAND.id) {
285
- if (compactionInFlight.current) return;
308
+ if (compactionInFlight.current || busy) return;
286
309
  compactionInFlight.current = true;
287
- setCompactionNotice(null);
310
+ setCompactionState("pending");
288
311
  setComposerDraft("");
289
- Promise.resolve().then(onCompact).then(() => {
312
+ Promise.resolve().then(onCompact).then((result) => {
290
313
  compactionInFlight.current = false;
314
+ setCompactionState(result?.compacted ? "compacted" : "unchanged");
291
315
  }, (error) => {
292
316
  compactionInFlight.current = false;
293
317
  console.error("Manual compaction failed", error);
294
- setCompactionNotice("Compaction failed — run /compact to try again.");
318
+ setCompactionState("failed");
295
319
  });
296
320
  return;
297
321
  }
@@ -316,6 +340,7 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
316
340
  else setComposerDraft("");
317
341
  }, [
318
342
  addComposerReference,
343
+ busy,
319
344
  composerDraft,
320
345
  composerReferences,
321
346
  mentionCommands,
@@ -457,11 +482,11 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
457
482
  ref: observeAgentChatComposer,
458
483
  className: "agent-chat__composer",
459
484
  children: [
460
- /* @__PURE__ */ jsxs("div", {
485
+ /* @__PURE__ */ jsx("div", {
461
486
  className: "agent-chat__notice",
462
487
  role: "status",
463
488
  "aria-atomic": "true",
464
- children: [notice, compactionNotice]
489
+ children: notice ?? (compactionState ? COMPACTION_NOTICES[compactionState] : null)
465
490
  }),
466
491
  composerTray || pendingPrompts.length ? /* @__PURE__ */ jsxs(PromptInputTray, {
467
492
  side: "top",
@@ -533,7 +558,7 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
533
558
  "aria-label": "Message",
534
559
  placeholder: composerReferences.length ? "" : placeholder,
535
560
  disabled,
536
- commands: onCompact ? [COMPACT_SLASH_COMMAND, ...slashCommands?.items ?? []] : slashCommands?.items ?? [],
561
+ commands: onCompact && !busy ? [COMPACT_SLASH_COMMAND, ...slashCommands?.items ?? []] : slashCommands?.items ?? [],
537
562
  mentionCommands: mentionCommands?.items,
538
563
  value: composerDraft,
539
564
  onValueChange: setComposerDraft,