@mcp-b/react-components 0.29.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) 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-CM5gfmdq.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-4WP4Uc_m.js} +65 -72
  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/{ModelSelector-CRdvHT_b.js → ModelSelector-DzdEs2fX.js} +33 -31
  17. package/dist/{PromptInput-B75Np5VB.d.ts → PromptInput-DOyee1kM.d.ts} +28 -90
  18. package/dist/{Select-B_13gg_J.d.ts → Select-D96d09ww.d.ts} +1 -1
  19. package/dist/{SessionCompaction-DMa1vv6Y.d.ts → SessionCompaction-CmTJFpzj.d.ts} +32 -2
  20. package/dist/{Tabs-C49J5m0Q.d.ts → Tabs-Ptrbaynh.d.ts} +1 -1
  21. package/dist/{ThinkChat-Bp-nAnoW.js → ThinkChat-Dsm1xF3a.js} +47 -18
  22. package/dist/{ThinkChatActivity-Dq0lOAgw.d.ts → ThinkChatActivity-CgqpROz_.d.ts} +5 -5
  23. package/dist/{ThinkChatActivitySummary-F062wneC.d.ts → ThinkChatActivitySummary-teRjrPxW.d.ts} +3 -3
  24. package/dist/{ThinkChatContext-B-Nk84Wi.d.ts → ThinkChatContext-COIgzkYp.d.ts} +1 -1
  25. package/dist/{ThinkChatToolParts-BfroXQ4F.d.ts → ThinkChatToolParts-D4qcnnxt.d.ts} +3 -13
  26. package/dist/{ThinkExecutionRun-ChhWhOoU.d.ts → ThinkExecutionRun-lYYgyeE1.d.ts} +1 -1
  27. package/dist/{ThinkRecoveryNotice-D6gYcBbr.d.ts → ThinkRecoveryNotice-DGWr94rk.d.ts} +2 -2
  28. package/dist/{Toggle-JKZ43D5S.d.ts → Toggle-DLrIf5YH.d.ts} +1 -1
  29. package/dist/{ToggleGroup-BW1jrhAF.d.ts → ToggleGroup-CSBWfPXo.d.ts} +12 -12
  30. package/dist/{Workspace-Bn6In4wi.d.ts → Workspace-EhvvlHOB.d.ts} +2 -2
  31. package/dist/{WorkspaceExplorer-D0aiscG6.d.ts → WorkspaceExplorer-DygQnEyi.d.ts} +3 -3
  32. package/dist/{WorkspaceFile-DMtRMwVv.d.ts → WorkspaceFile-C8Riev9j.d.ts} +2 -2
  33. package/dist/{WorkspaceFileView-CKEmUyeT.js → WorkspaceFileView-hd1-cpuz.js} +12 -12
  34. package/dist/{WorkspaceLink-O-EBKUJ8.d.ts → WorkspaceLink-DQogVe8E.d.ts} +1 -1
  35. package/dist/{WorkspaceLink-BYYeTQLf.js → WorkspaceLink-DZeLe_jN.js} +3 -4
  36. package/dist/WorkspaceMessageResponse-BWbkIELl.js +100 -0
  37. package/dist/{attachment-preview-DIs50Q0h.js → attachment-preview-1CXJvrmb.js} +1 -1
  38. package/dist/components/{AgentActivity.d.ts → agents-sdk/AgentActivity.d.ts} +1 -1
  39. package/dist/components/{AgentActivity.js → agents-sdk/AgentActivity.js} +3 -3
  40. package/dist/components/{AgentActivityPreview.d.ts → agents-sdk/AgentActivityPreview.d.ts} +3 -3
  41. package/dist/components/{AgentActivityPreview.js → agents-sdk/AgentActivityPreview.js} +12 -10
  42. package/dist/components/{AgentChat.d.ts → agents-sdk/AgentChat.d.ts} +1 -1
  43. package/dist/components/{AgentChat.js → agents-sdk/AgentChat.js} +56 -31
  44. package/dist/components/{AgentToolRunsContext.d.ts → agents-sdk/AgentToolRunsContext.d.ts} +1 -1
  45. package/dist/components/{AgentToolRunsContext.js → agents-sdk/AgentToolRunsContext.js} +1 -1
  46. package/dist/components/agents-sdk/BrowserLiveView.d.ts +2 -0
  47. package/dist/components/{BrowserLiveView.js → agents-sdk/BrowserLiveView.js} +7 -7
  48. package/dist/components/agents-sdk/BrowserReplay.d.ts +2 -0
  49. package/dist/components/{BrowserReplay.js → agents-sdk/BrowserReplay.js} +7 -7
  50. package/dist/components/{BrowserRunPanel.d.ts → agents-sdk/BrowserRunPanel.d.ts} +1 -1
  51. package/dist/components/{BrowserRunPanel.js → agents-sdk/BrowserRunPanel.js} +6 -6
  52. package/dist/components/{McpConnectionRequest.d.ts → agents-sdk/McpConnectionRequest.d.ts} +3 -15
  53. package/dist/components/{McpConnectionRequest.js → agents-sdk/McpConnectionRequest.js} +46 -18
  54. package/dist/components/agents-sdk/McpConnectorForm.d.ts +39 -0
  55. package/dist/components/agents-sdk/McpConnectorForm.js +151 -0
  56. package/dist/components/{McpPluginCatalog.d.ts → agents-sdk/McpPluginCatalog.d.ts} +3 -3
  57. package/dist/components/{McpPluginCatalog.js → agents-sdk/McpPluginCatalog.js} +23 -47
  58. package/dist/components/{McpServerPicker.d.ts → agents-sdk/McpServerPicker.d.ts} +5 -5
  59. package/dist/components/{McpServerPicker.js → agents-sdk/McpServerPicker.js} +30 -40
  60. package/dist/components/{ModelSelector.d.ts → agents-sdk/ModelSelector.d.ts} +4 -4
  61. package/dist/components/{ModelSelector.js → agents-sdk/ModelSelector.js} +1 -1
  62. package/dist/components/agents-sdk/PromptInputApproval.d.ts +44 -0
  63. package/dist/components/agents-sdk/PromptInputApproval.js +61 -0
  64. package/dist/components/agents-sdk/PromptInputCommands.d.ts +11 -0
  65. package/dist/components/agents-sdk/PromptInputCommands.js +33 -0
  66. package/dist/components/agents-sdk/SessionCompaction.d.ts +2 -0
  67. package/dist/components/{SessionCompaction.js → agents-sdk/SessionCompaction.js} +32 -11
  68. package/dist/components/{SubagentRunDetails.d.ts → agents-sdk/SubagentRunDetails.d.ts} +1 -1
  69. package/dist/components/{SubagentRunDetails.js → agents-sdk/SubagentRunDetails.js} +4 -4
  70. package/dist/components/{SubagentRunIndicator.d.ts → agents-sdk/SubagentRunIndicator.d.ts} +1 -1
  71. package/dist/components/{SubagentRunIndicator.js → agents-sdk/SubagentRunIndicator.js} +3 -3
  72. package/dist/components/{SubagentRunList.d.ts → agents-sdk/SubagentRunList.d.ts} +1 -1
  73. package/dist/components/{SubagentRunList.js → agents-sdk/SubagentRunList.js} +2 -2
  74. package/dist/components/{SubagentRunSelector.d.ts → agents-sdk/SubagentRunSelector.d.ts} +1 -1
  75. package/dist/components/{SubagentRunSelector.js → agents-sdk/SubagentRunSelector.js} +7 -7
  76. package/dist/components/{ThinkChat.d.ts → agents-sdk/ThinkChat.d.ts} +16 -16
  77. package/dist/components/{ThinkChat.js → agents-sdk/ThinkChat.js} +3 -3
  78. package/dist/components/{ThinkChatActivity.d.ts → agents-sdk/ThinkChatActivity.d.ts} +3 -3
  79. package/dist/components/{ThinkChatActivity.js → agents-sdk/ThinkChatActivity.js} +6 -6
  80. package/dist/components/{ThinkChatActivitySummary.d.ts → agents-sdk/ThinkChatActivitySummary.d.ts} +1 -1
  81. package/dist/components/{ThinkChatActivitySummary.js → agents-sdk/ThinkChatActivitySummary.js} +5 -4
  82. package/dist/components/{ThinkChatContext.d.ts → agents-sdk/ThinkChatContext.d.ts} +1 -1
  83. package/dist/components/{ThinkChatContext.js → agents-sdk/ThinkChatContext.js} +1 -1
  84. package/dist/components/{ThinkChatToolPanels.d.ts → agents-sdk/ThinkChatToolPanels.d.ts} +2 -2
  85. package/dist/components/{ThinkChatToolPanels.js → agents-sdk/ThinkChatToolPanels.js} +5 -5
  86. package/dist/components/agents-sdk/ThinkChatToolParts.d.ts +2 -0
  87. package/dist/components/{ThinkChatToolParts.js → agents-sdk/ThinkChatToolParts.js} +3 -33
  88. package/dist/components/{ThinkExecutionDetail.d.ts → agents-sdk/ThinkExecutionDetail.d.ts} +2 -2
  89. package/dist/components/{ThinkExecutionDetail.js → agents-sdk/ThinkExecutionDetail.js} +5 -8
  90. package/dist/components/{ThinkExecutionRun.d.ts → agents-sdk/ThinkExecutionRun.d.ts} +1 -1
  91. package/dist/components/{ThinkExecutionRun.js → agents-sdk/ThinkExecutionRun.js} +2 -2
  92. package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +35 -0
  93. package/dist/components/agents-sdk/ThinkExecutionStatus.js +59 -0
  94. package/dist/components/{ThinkExecutionWorkbench.d.ts → agents-sdk/ThinkExecutionWorkbench.d.ts} +2 -2
  95. package/dist/components/{ThinkExecutionWorkbench.js → agents-sdk/ThinkExecutionWorkbench.js} +15 -32
  96. package/dist/components/{ThinkFullApp.d.ts → agents-sdk/ThinkFullApp.d.ts} +9 -9
  97. package/dist/components/{ThinkFullApp.js → agents-sdk/ThinkFullApp.js} +18 -20
  98. package/dist/components/{ThinkFullAppViewSwitch.d.ts → agents-sdk/ThinkFullAppViewSwitch.d.ts} +2 -2
  99. package/dist/components/{ThinkFullAppViewSwitch.js → agents-sdk/ThinkFullAppViewSwitch.js} +4 -4
  100. package/dist/components/{ThinkPendingApproval.d.ts → agents-sdk/ThinkPendingApproval.d.ts} +1 -1
  101. package/dist/components/{ThinkPendingApproval.js → agents-sdk/ThinkPendingApproval.js} +3 -3
  102. package/dist/components/agents-sdk/ThinkRecoveryNotice.d.ts +2 -0
  103. package/dist/components/{ThinkRecoveryNotice.js → agents-sdk/ThinkRecoveryNotice.js} +3 -3
  104. package/dist/components/{ThinkRoutine.d.ts → agents-sdk/ThinkRoutine.d.ts} +2 -2
  105. package/dist/components/{ThinkRoutine.js → agents-sdk/ThinkRoutine.js} +1 -1
  106. package/dist/components/{ThinkRoutineBrowser.d.ts → agents-sdk/ThinkRoutineBrowser.d.ts} +1 -1
  107. package/dist/components/{ThinkRoutineBrowser.js → agents-sdk/ThinkRoutineBrowser.js} +9 -9
  108. package/dist/components/{ThinkRoutineDetail.d.ts → agents-sdk/ThinkRoutineDetail.d.ts} +1 -1
  109. package/dist/components/{ThinkRoutineDetail.js → agents-sdk/ThinkRoutineDetail.js} +4 -4
  110. package/dist/components/{ThinkRoutineForm.d.ts → agents-sdk/ThinkRoutineForm.d.ts} +1 -1
  111. package/dist/components/{ThinkRoutineForm.js → agents-sdk/ThinkRoutineForm.js} +9 -9
  112. package/dist/components/{ThinkRoutineLibrary.d.ts → agents-sdk/ThinkRoutineLibrary.d.ts} +2 -2
  113. package/dist/components/{ThinkRoutineLibrary.js → agents-sdk/ThinkRoutineLibrary.js} +12 -14
  114. package/dist/components/{ThinkRoutineRuns.d.ts → agents-sdk/ThinkRoutineRuns.d.ts} +2 -2
  115. package/dist/components/agents-sdk/ThinkRoutineRuns.js +59 -0
  116. package/dist/components/{ThinkThreadPicker.d.ts → agents-sdk/ThinkThreadPicker.d.ts} +1 -1
  117. package/dist/components/{ThinkThreadPicker.js → agents-sdk/ThinkThreadPicker.js} +12 -14
  118. package/dist/components/{ThinkThreadShell.d.ts → agents-sdk/ThinkThreadShell.d.ts} +2 -2
  119. package/dist/components/{ThinkThreadShell.js → agents-sdk/ThinkThreadShell.js} +3 -3
  120. package/dist/components/{Workspace.d.ts → agents-sdk/Workspace.d.ts} +1 -1
  121. package/dist/components/{Workspace.js → agents-sdk/Workspace.js} +5 -7
  122. package/dist/components/{WorkspaceBrowser.d.ts → agents-sdk/WorkspaceBrowser.d.ts} +2 -2
  123. package/dist/components/{WorkspaceBrowser.js → agents-sdk/WorkspaceBrowser.js} +3 -3
  124. package/dist/components/{WorkspaceExplorer.d.ts → agents-sdk/WorkspaceExplorer.d.ts} +4 -4
  125. package/dist/components/{WorkspaceExplorer.js → agents-sdk/WorkspaceExplorer.js} +5 -5
  126. package/dist/components/{WorkspaceFile.d.ts → agents-sdk/WorkspaceFile.d.ts} +1 -1
  127. package/dist/components/{WorkspaceFile.js → agents-sdk/WorkspaceFile.js} +1 -1
  128. package/dist/components/{WorkspaceFileView.d.ts → agents-sdk/WorkspaceFileView.d.ts} +2 -2
  129. package/dist/components/agents-sdk/WorkspaceFileView.js +2 -0
  130. package/dist/components/{WorkspaceHeader.d.ts → agents-sdk/WorkspaceHeader.d.ts} +1 -1
  131. package/dist/components/{WorkspaceHeader.js → agents-sdk/WorkspaceHeader.js} +3 -3
  132. package/dist/components/{WorkspaceLink.d.ts → agents-sdk/WorkspaceLink.d.ts} +1 -1
  133. package/dist/components/{WorkspaceLink.js → agents-sdk/WorkspaceLink.js} +1 -1
  134. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +12 -0
  135. package/dist/components/agents-sdk/WorkspaceMessageResponse.js +2 -0
  136. package/dist/components/{WorkspaceMountManager.d.ts → agents-sdk/WorkspaceMountManager.d.ts} +1 -1
  137. package/dist/components/{WorkspaceMountManager.js → agents-sdk/WorkspaceMountManager.js} +8 -8
  138. package/dist/components/{Activity.d.ts → ai-sdk/Activity.d.ts} +4 -4
  139. package/dist/components/{Activity.js → ai-sdk/Activity.js} +6 -6
  140. package/dist/components/{AgentAttention.d.ts → ai-sdk/AgentAttention.d.ts} +2 -2
  141. package/dist/components/{AgentAttention.js → ai-sdk/AgentAttention.js} +3 -3
  142. package/dist/components/{AgentChatMessageEditor.d.ts → ai-sdk/AgentChatMessageEditor.d.ts} +1 -1
  143. package/dist/components/{AgentChatMessageEditor.js → ai-sdk/AgentChatMessageEditor.js} +5 -5
  144. package/dist/components/{AgentChatStartScreen.d.ts → ai-sdk/AgentChatStartScreen.d.ts} +1 -1
  145. package/dist/components/{AgentChatStartScreen.js → ai-sdk/AgentChatStartScreen.js} +5 -5
  146. package/dist/components/{AgentChatTurnError.d.ts → ai-sdk/AgentChatTurnError.d.ts} +1 -1
  147. package/dist/components/{AgentChatTurnError.js → ai-sdk/AgentChatTurnError.js} +2 -2
  148. package/dist/components/{AgentMessageParts.d.ts → ai-sdk/AgentMessageParts.d.ts} +1 -1
  149. package/dist/components/{AgentMessageParts.js → ai-sdk/AgentMessageParts.js} +4 -28
  150. package/dist/components/{Approval.d.ts → ai-sdk/Approval.d.ts} +1 -1
  151. package/dist/components/{Approval.js → ai-sdk/Approval.js} +5 -5
  152. package/dist/components/{Artifact.d.ts → ai-sdk/Artifact.d.ts} +2 -2
  153. package/dist/components/{Artifact.js → ai-sdk/Artifact.js} +4 -4
  154. package/dist/components/{ChainOfThought.d.ts → ai-sdk/ChainOfThought.d.ts} +3 -3
  155. package/dist/components/{ChainOfThought.js → ai-sdk/ChainOfThought.js} +4 -4
  156. package/dist/components/{Checkpoint.d.ts → ai-sdk/Checkpoint.d.ts} +2 -2
  157. package/dist/components/{Checkpoint.js → ai-sdk/Checkpoint.js} +4 -4
  158. package/dist/components/ai-sdk/CodeBlock.d.ts +2 -0
  159. package/dist/components/{CodeBlock.js → ai-sdk/CodeBlock.js} +2 -2
  160. package/dist/components/{Context.d.ts → ai-sdk/Context.d.ts} +2 -2
  161. package/dist/components/{Context.js → ai-sdk/Context.js} +5 -5
  162. package/dist/components/{Conversation.d.ts → ai-sdk/Conversation.d.ts} +2 -2
  163. package/dist/components/{Conversation.js → ai-sdk/Conversation.js} +5 -5
  164. package/dist/components/{ExpansionState.d.ts → ai-sdk/ExpansionState.d.ts} +1 -1
  165. package/dist/components/{ExpansionState.js → ai-sdk/ExpansionState.js} +1 -1
  166. package/dist/components/{Goal.d.ts → ai-sdk/Goal.d.ts} +1 -1
  167. package/dist/components/{Goal.js → ai-sdk/Goal.js} +6 -5
  168. package/dist/components/{InlineCitation.d.ts → ai-sdk/InlineCitation.d.ts} +1 -1
  169. package/dist/components/{InlineCitation.js → ai-sdk/InlineCitation.js} +4 -4
  170. package/dist/components/{MediaPreviewCard.d.ts → ai-sdk/MediaPreviewCard.d.ts} +2 -2
  171. package/dist/components/{MediaPreviewCard.js → ai-sdk/MediaPreviewCard.js} +5 -5
  172. package/dist/components/{Message.d.ts → ai-sdk/Message.d.ts} +2 -3
  173. package/dist/{Message-BF6SiKKL.js → components/ai-sdk/Message.js} +14 -99
  174. package/dist/components/{MessageScroller.d.ts → ai-sdk/MessageScroller.d.ts} +2 -2
  175. package/dist/components/{MessageScroller.js → ai-sdk/MessageScroller.js} +4 -4
  176. package/dist/components/{MessageScrollerVirtual.d.ts → ai-sdk/MessageScrollerVirtual.d.ts} +7 -8
  177. package/dist/components/{MessageScrollerVirtual.js → ai-sdk/MessageScrollerVirtual.js} +10 -10
  178. package/dist/components/{Plan.d.ts → ai-sdk/Plan.d.ts} +5 -6
  179. package/dist/components/{Plan.js → ai-sdk/Plan.js} +6 -6
  180. package/dist/components/ai-sdk/PromptInput.d.ts +2 -0
  181. package/dist/components/{PromptInput.js → ai-sdk/PromptInput.js} +32 -130
  182. package/dist/components/{Queue.d.ts → ai-sdk/Queue.d.ts} +4 -4
  183. package/dist/components/{Queue.js → ai-sdk/Queue.js} +7 -7
  184. package/dist/components/{Reasoning.d.ts → ai-sdk/Reasoning.d.ts} +2 -2
  185. package/dist/components/{Reasoning.js → ai-sdk/Reasoning.js} +5 -5
  186. package/dist/components/{Sources.d.ts → ai-sdk/Sources.d.ts} +2 -2
  187. package/dist/components/{Sources.js → ai-sdk/Sources.js} +4 -4
  188. package/dist/components/{Task.d.ts → ai-sdk/Task.d.ts} +2 -2
  189. package/dist/components/{Task.js → ai-sdk/Task.js} +4 -4
  190. package/dist/components/{ToolApproval.d.ts → ai-sdk/ToolApproval.d.ts} +1 -1
  191. package/dist/components/{ToolApproval.js → ai-sdk/ToolApproval.js} +1 -1
  192. package/dist/components/{ToolInvocation.d.ts → ai-sdk/ToolInvocation.d.ts} +1 -1
  193. package/dist/components/{ToolInvocation.js → ai-sdk/ToolInvocation.js} +7 -9
  194. package/dist/components/ai-sdk/ToolPart.d.ts +11 -0
  195. package/dist/components/ai-sdk/ToolPart.js +15 -0
  196. package/dist/components/{ChatGptSignInScreen.d.ts → extension/ChatGptSignInScreen.d.ts} +1 -1
  197. package/dist/components/{ChatGptSignInScreen.js → extension/ChatGptSignInScreen.js} +5 -5
  198. package/dist/components/{CodexModelSelector.d.ts → extension/CodexModelSelector.d.ts} +3 -3
  199. package/dist/components/{CodexModelSelector.js → extension/CodexModelSelector.js} +6 -6
  200. package/dist/components/{ConversationTabPicker.d.ts → extension/ConversationTabPicker.d.ts} +1 -1
  201. package/dist/components/{ConversationTabPicker.js → extension/ConversationTabPicker.js} +7 -6
  202. package/dist/components/{Accordion.d.ts → foundations/Accordion.d.ts} +1 -1
  203. package/dist/components/{Accordion.js → foundations/Accordion.js} +3 -3
  204. package/dist/components/{AlertDialog.d.ts → foundations/AlertDialog.d.ts} +2 -2
  205. package/dist/components/{AlertDialog.js → foundations/AlertDialog.js} +2 -2
  206. package/dist/components/{AppIcon.d.ts → foundations/AppIcon.d.ts} +1 -1
  207. package/dist/components/{AppIcon.js → foundations/AppIcon.js} +2 -2
  208. package/dist/components/{Autocomplete.d.ts → foundations/Autocomplete.d.ts} +1 -1
  209. package/dist/components/{Autocomplete.js → foundations/Autocomplete.js} +2 -2
  210. package/dist/components/{Avatar.d.ts → foundations/Avatar.d.ts} +1 -1
  211. package/dist/components/{Avatar.js → foundations/Avatar.js} +2 -2
  212. package/dist/components/{Badge.d.ts → foundations/Badge.d.ts} +1 -1
  213. package/dist/components/{Badge.js → foundations/Badge.js} +1 -1
  214. package/dist/components/{Button.d.ts → foundations/Button.d.ts} +1 -1
  215. package/dist/components/{Button.js → foundations/Button.js} +2 -2
  216. package/dist/components/{Card.d.ts → foundations/Card.d.ts} +1 -1
  217. package/dist/components/{Card.js → foundations/Card.js} +2 -2
  218. package/dist/components/{Checkbox.d.ts → foundations/Checkbox.d.ts} +7 -3
  219. package/dist/components/{Checkbox.js → foundations/Checkbox.js} +9 -5
  220. package/dist/components/{CheckboxGroup.d.ts → foundations/CheckboxGroup.d.ts} +1 -1
  221. package/dist/components/{CheckboxGroup.js → foundations/CheckboxGroup.js} +2 -2
  222. package/dist/{Collapsible-N64ASIQr.d.ts → components/foundations/Collapsible.d.ts} +7 -7
  223. package/dist/components/{Collapsible.js → foundations/Collapsible.js} +2 -2
  224. package/dist/components/foundations/Combobox.d.ts +2 -0
  225. package/dist/components/{Combobox.js → foundations/Combobox.js} +2 -2
  226. package/dist/components/{ContextMenu.d.ts → foundations/ContextMenu.d.ts} +1 -1
  227. package/dist/components/{ContextMenu.js → foundations/ContextMenu.js} +3 -3
  228. package/dist/components/{DescriptionList.d.ts → foundations/DescriptionList.d.ts} +1 -1
  229. package/dist/components/{DescriptionList.js → foundations/DescriptionList.js} +1 -1
  230. package/dist/components/{DescriptionListParts.d.ts → foundations/DescriptionListParts.d.ts} +1 -1
  231. package/dist/components/{DescriptionListParts.js → foundations/DescriptionListParts.js} +2 -2
  232. package/dist/components/{Dialog.d.ts → foundations/Dialog.d.ts} +1 -1
  233. package/dist/components/{Dialog.js → foundations/Dialog.js} +2 -2
  234. package/dist/components/{EmptyState.d.ts → foundations/EmptyState.d.ts} +1 -1
  235. package/dist/components/{EmptyState.js → foundations/EmptyState.js} +2 -2
  236. package/dist/components/{Field.d.ts → foundations/Field.d.ts} +1 -1
  237. package/dist/components/{Field.js → foundations/Field.js} +2 -2
  238. package/dist/components/{Fieldset.d.ts → foundations/Fieldset.d.ts} +1 -1
  239. package/dist/components/{Fieldset.js → foundations/Fieldset.js} +2 -2
  240. package/dist/components/{Form.d.ts → foundations/Form.d.ts} +1 -1
  241. package/dist/components/{Form.js → foundations/Form.js} +2 -2
  242. package/dist/components/{FormattedDate.d.ts → foundations/FormattedDate.d.ts} +1 -1
  243. package/dist/components/{FormattedDate.js → foundations/FormattedDate.js} +1 -1
  244. package/dist/components/foundations/IconButton.d.ts +2 -0
  245. package/dist/components/{IconButton.js → foundations/IconButton.js} +1 -1
  246. package/dist/components/{Input.d.ts → foundations/Input.d.ts} +1 -1
  247. package/dist/components/{Input.js → foundations/Input.js} +2 -2
  248. package/dist/components/{Kbd.d.ts → foundations/Kbd.d.ts} +1 -1
  249. package/dist/components/{Kbd.js → foundations/Kbd.js} +2 -2
  250. package/dist/components/{Label.d.ts → foundations/Label.d.ts} +1 -1
  251. package/dist/components/{Label.js → foundations/Label.js} +2 -2
  252. package/dist/components/{LinkButton.d.ts → foundations/LinkButton.d.ts} +2 -2
  253. package/dist/components/{LinkButton.js → foundations/LinkButton.js} +1 -1
  254. package/dist/components/{Marker.d.ts → foundations/Marker.d.ts} +1 -1
  255. package/dist/components/{Marker.js → foundations/Marker.js} +2 -2
  256. package/dist/components/{Menu.d.ts → foundations/Menu.d.ts} +1 -1
  257. package/dist/components/{Menu.js → foundations/Menu.js} +2 -2
  258. package/dist/components/{Menubar.d.ts → foundations/Menubar.d.ts} +1 -1
  259. package/dist/components/{Menubar.js → foundations/Menubar.js} +3 -3
  260. package/dist/components/{Meter.d.ts → foundations/Meter.d.ts} +1 -1
  261. package/dist/components/{Meter.js → foundations/Meter.js} +2 -2
  262. package/dist/components/{NavigationMenu.d.ts → foundations/NavigationMenu.d.ts} +1 -1
  263. package/dist/components/{NavigationMenu.js → foundations/NavigationMenu.js} +2 -2
  264. package/dist/components/{NumberField.d.ts → foundations/NumberField.d.ts} +1 -1
  265. package/dist/components/{NumberField.js → foundations/NumberField.js} +2 -2
  266. package/dist/components/{Popover.d.ts → foundations/Popover.d.ts} +1 -1
  267. package/dist/components/{Popover.js → foundations/Popover.js} +3 -3
  268. package/dist/components/{PreviewCard.d.ts → foundations/PreviewCard.d.ts} +1 -1
  269. package/dist/components/{PreviewCard.js → foundations/PreviewCard.js} +2 -2
  270. package/dist/components/{Progress.d.ts → foundations/Progress.d.ts} +1 -1
  271. package/dist/components/{Progress.js → foundations/Progress.js} +2 -2
  272. package/dist/components/{RadioGroup.d.ts → foundations/RadioGroup.d.ts} +1 -1
  273. package/dist/components/{RadioGroup.js → foundations/RadioGroup.js} +2 -2
  274. package/dist/components/{ScrollArea.d.ts → foundations/ScrollArea.d.ts} +1 -1
  275. package/dist/components/{ScrollArea.js → foundations/ScrollArea.js} +2 -2
  276. package/dist/components/{SearchField.d.ts → foundations/SearchField.d.ts} +1 -1
  277. package/dist/components/{SearchField.js → foundations/SearchField.js} +3 -3
  278. package/dist/components/{Select.d.ts → foundations/Select.d.ts} +1 -1
  279. package/dist/components/{Select.js → foundations/Select.js} +3 -3
  280. package/dist/components/{Separator.d.ts → foundations/Separator.d.ts} +1 -1
  281. package/dist/components/{Separator.js → foundations/Separator.js} +2 -2
  282. package/dist/components/{Slider.d.ts → foundations/Slider.d.ts} +1 -1
  283. package/dist/components/{Slider.js → foundations/Slider.js} +2 -2
  284. package/dist/components/{StatusPill.d.ts → foundations/StatusPill.d.ts} +1 -1
  285. package/dist/components/{StatusPill.js → foundations/StatusPill.js} +2 -2
  286. package/dist/components/{Stepper.d.ts → foundations/Stepper.d.ts} +2 -2
  287. package/dist/components/{Stepper.js → foundations/Stepper.js} +3 -3
  288. package/dist/components/{Switch.d.ts → foundations/Switch.d.ts} +7 -7
  289. package/dist/components/{Switch.js → foundations/Switch.js} +8 -8
  290. package/dist/components/{Tabs.d.ts → foundations/Tabs.d.ts} +1 -1
  291. package/dist/components/{Tabs.js → foundations/Tabs.js} +2 -2
  292. package/dist/components/{Textarea.d.ts → foundations/Textarea.d.ts} +1 -1
  293. package/dist/components/{Textarea.js → foundations/Textarea.js} +2 -2
  294. package/dist/components/{ThemeProvider.d.ts → foundations/ThemeProvider.d.ts} +2 -2
  295. package/dist/components/{ThemeProvider.js → foundations/ThemeProvider.js} +2 -2
  296. package/dist/components/{Toast.d.ts → foundations/Toast.d.ts} +1 -1
  297. package/dist/components/{Toast.js → foundations/Toast.js} +3 -3
  298. package/dist/components/{Toggle.d.ts → foundations/Toggle.d.ts} +1 -1
  299. package/dist/components/{Toggle.js → foundations/Toggle.js} +2 -2
  300. package/dist/components/foundations/ToggleGroup.d.ts +2 -0
  301. package/dist/components/{ToggleGroup.js → foundations/ToggleGroup.js} +13 -13
  302. package/dist/components/{Toolbar.d.ts → foundations/Toolbar.d.ts} +1 -1
  303. package/dist/components/{Toolbar.js → foundations/Toolbar.js} +2 -2
  304. package/dist/components/{Tooltip.d.ts → foundations/Tooltip.d.ts} +1 -1
  305. package/dist/components/{Tooltip.js → foundations/Tooltip.js} +2 -2
  306. package/dist/components/{TransitionSurface.d.ts → foundations/TransitionSurface.d.ts} +1 -1
  307. package/dist/components/{TransitionSurface.js → foundations/TransitionSurface.js} +2 -2
  308. package/dist/components/{icons.d.ts → foundations/icons.d.ts} +1 -1
  309. package/dist/components/{icons.js → foundations/icons.js} +1 -1
  310. package/dist/components/{ActionGuide.d.ts → general-purpose/ActionGuide.d.ts} +2 -2
  311. package/dist/components/{ActionGuide.js → general-purpose/ActionGuide.js} +3 -3
  312. package/dist/components/general-purpose/AppFrame.d.ts +24 -0
  313. package/dist/components/general-purpose/AppFrame.js +25 -0
  314. package/dist/components/{AppTopBar.d.ts → general-purpose/AppTopBar.d.ts} +2 -2
  315. package/dist/components/{AppTopBar.js → general-purpose/AppTopBar.js} +5 -5
  316. package/dist/components/{Commit.d.ts → general-purpose/Commit.d.ts} +5 -12
  317. package/dist/components/{Commit.js → general-purpose/Commit.js} +11 -13
  318. package/dist/components/{EnvironmentVariables.d.ts → general-purpose/EnvironmentVariables.d.ts} +2 -4
  319. package/dist/components/{EnvironmentVariables.js → general-purpose/EnvironmentVariables.js} +9 -10
  320. package/dist/components/{FileTree.d.ts → general-purpose/FileTree.d.ts} +10 -1
  321. package/dist/components/{FileTree.js → general-purpose/FileTree.js} +1 -1
  322. package/dist/components/{Pricing.d.ts → general-purpose/Pricing.d.ts} +1 -1
  323. package/dist/components/{Pricing.js → general-purpose/Pricing.js} +1 -1
  324. package/dist/components/{PricingBillingToggle.d.ts → general-purpose/PricingBillingToggle.d.ts} +1 -1
  325. package/dist/components/{PricingBillingToggle.js → general-purpose/PricingBillingToggle.js} +7 -7
  326. package/dist/components/{PricingConfirmationDialog.d.ts → general-purpose/PricingConfirmationDialog.d.ts} +1 -1
  327. package/dist/components/{PricingConfirmationDialog.js → general-purpose/PricingConfirmationDialog.js} +3 -3
  328. package/dist/components/{PricingFAQ.d.ts → general-purpose/PricingFAQ.d.ts} +1 -1
  329. package/dist/components/{PricingFAQ.js → general-purpose/PricingFAQ.js} +3 -3
  330. package/dist/components/{PricingPage.d.ts → general-purpose/PricingPage.d.ts} +1 -1
  331. package/dist/components/{PricingPage.js → general-purpose/PricingPage.js} +2 -2
  332. package/dist/components/{PricingPlanCard.d.ts → general-purpose/PricingPlanCard.d.ts} +1 -1
  333. package/dist/components/{PricingPlanCard.js → general-purpose/PricingPlanCard.js} +8 -8
  334. package/dist/components/{PricingUsageCalculator.d.ts → general-purpose/PricingUsageCalculator.d.ts} +1 -1
  335. package/dist/components/{PricingUsageCalculator.js → general-purpose/PricingUsageCalculator.js} +6 -6
  336. package/dist/components/{ResizableSidePanel.d.ts → general-purpose/ResizableSidePanel.d.ts} +2 -2
  337. package/dist/components/{ResizableSidePanel.js → general-purpose/ResizableSidePanel.js} +4 -4
  338. package/dist/{ResponsiveSidebarShell-CsAh4NyL.d.ts → components/general-purpose/ResponsiveSidebarShell.d.ts} +2 -2
  339. package/dist/components/{ResponsiveSidebarShell.js → general-purpose/ResponsiveSidebarShell.js} +6 -6
  340. package/dist/components/{SettingsFormDialog.d.ts → general-purpose/SettingsFormDialog.d.ts} +1 -1
  341. package/dist/components/{SettingsFormDialog.js → general-purpose/SettingsFormDialog.js} +8 -7
  342. package/dist/components/{SetupChecklist.d.ts → general-purpose/SetupChecklist.d.ts} +1 -1
  343. package/dist/components/{SetupChecklist.js → general-purpose/SetupChecklist.js} +4 -4
  344. package/dist/components/{Shell.d.ts → general-purpose/Shell.d.ts} +1 -1
  345. package/dist/components/{Shell.js → general-purpose/Shell.js} +2 -2
  346. package/dist/components/{Terminal.d.ts → general-purpose/Terminal.d.ts} +3 -3
  347. package/dist/components/{Terminal.js → general-purpose/Terminal.js} +7 -7
  348. package/dist/components/{TestResults.d.ts → general-purpose/TestResults.d.ts} +2 -2
  349. package/dist/components/{TestResults.js → general-purpose/TestResults.js} +6 -6
  350. package/dist/components/{ThemeModeControl.d.ts → general-purpose/ThemeModeControl.d.ts} +1 -1
  351. package/dist/components/{ThemeModeControl.js → general-purpose/ThemeModeControl.js} +4 -4
  352. package/dist/components/{WebPreview.d.ts → general-purpose/WebPreview.d.ts} +4 -4
  353. package/dist/components/{WebPreview.js → general-purpose/WebPreview.js} +12 -12
  354. package/dist/components/{AgentConnection.d.ts → nanites/AgentConnection.d.ts} +2 -36
  355. package/dist/components/{AgentConnection.js → nanites/AgentConnection.js} +7 -149
  356. package/dist/components/{AgentToolDetail.d.ts → nanites/AgentToolDetail.d.ts} +4 -4
  357. package/dist/components/{AgentToolDetail.js → nanites/AgentToolDetail.js} +8 -8
  358. package/dist/components/{GithubMotionMark.d.ts → nanites/GithubMotionMark.d.ts} +1 -1
  359. package/dist/components/{GithubMotionMark.js → nanites/GithubMotionMark.js} +2 -2
  360. package/dist/components/{NaniteScene.d.ts → nanites/NaniteScene.d.ts} +1 -1
  361. package/dist/components/{NaniteScene.js → nanites/NaniteScene.js} +2 -2
  362. package/dist/{copy-button-EBv_B9F6.d.ts → copy-button-C0JyjClr.d.ts} +1 -1
  363. package/dist/{copy-button-7ttJAorN.js → copy-button-CsNSSKYG.js} +2 -2
  364. package/dist/{format-S6uWyoSb.js → format-CmopcfqJ.js} +4 -1
  365. package/dist/mcp-server-U71zhxFF.js +26 -0
  366. package/dist/{navigation-link-Cob7KBlM.js → navigation-link-kqMa81v5.js} +5 -1
  367. package/dist/{progress-ring-BjqTZqBk.js → progress-ring-Dz_ztrW2.js} +1 -1
  368. package/dist/styles/activity-header.css +5 -1
  369. package/dist/styles/agent-activity-preview-overlay.css +43 -5
  370. package/dist/styles/app-frame.css +15 -0
  371. package/dist/styles/file-tree.css +16 -2
  372. package/dist/styles/index.css +2 -1
  373. package/dist/styles/message-scroller.css +2 -3
  374. package/dist/styles/sources.css +8 -0
  375. package/dist/styles/think-execution-status.css +57 -0
  376. package/dist/styles/think-execution-workbench.css +1 -50
  377. package/dist/styles/think-routine-library.css +0 -27
  378. package/dist/utils/structured-code.d.ts +1 -1
  379. package/package.json +2 -2
  380. package/dist/components/BrowserLiveView.d.ts +0 -2
  381. package/dist/components/BrowserReplay.d.ts +0 -2
  382. package/dist/components/CodeBlock.d.ts +0 -2
  383. package/dist/components/Collapsible.d.ts +0 -2
  384. package/dist/components/Combobox.d.ts +0 -2
  385. package/dist/components/IconButton.d.ts +0 -2
  386. package/dist/components/Message.js +0 -2
  387. package/dist/components/PromptInput.d.ts +0 -2
  388. package/dist/components/ResponsiveSidebarShell.d.ts +0 -2
  389. package/dist/components/SessionCompaction.d.ts +0 -2
  390. package/dist/components/ThinkChatToolParts.d.ts +0 -2
  391. package/dist/components/ThinkExecutionStatus.d.ts +0 -22
  392. package/dist/components/ThinkExecutionStatus.js +0 -36
  393. package/dist/components/ThinkRecoveryNotice.d.ts +0 -2
  394. package/dist/components/ThinkRoutineRuns.js +0 -76
  395. package/dist/components/ToggleGroup.d.ts +0 -2
  396. package/dist/components/WorkspaceFileView.js +0 -2
  397. package/dist/{icons-B4mGvCvc.js → icons-B1Qw05te.js} +1 -1
@@ -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-B1Qw05te.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-B1Qw05te.js";
4
3
  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";
4
+ import { ActivityHeader } from "../ai-sdk/Activity.js";
5
+ import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
6
+ import { AppIcon } from "../foundations/AppIcon.js";
7
+ import { Button } from "../foundations/Button.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 { 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-B1Qw05te.js";
3
+ import { ExpansionStateProvider } from "../ai-sdk/ExpansionState.js";
4
+ import { Button } from "../foundations/Button.js";
5
+ import { IconButton } from "../foundations/IconButton.js";
6
+ import { Message, MessageAction, MessageActions } from "../ai-sdk/Message.js";
7
+ import { AgentMessageParts } from "../ai-sdk/AgentMessageParts.js";
8
+ import { Context, ContextContent, ContextContentBody, ContextContentHeader, ContextTrigger, getContextUsage, getContextUsedTokens } from "../ai-sdk/Context.js";
9
+ import { EmptyState } from "../foundations/EmptyState.js";
10
+ import { VirtualMessageScroller } from "../ai-sdk/MessageScrollerVirtual.js";
11
+ import { Menu } from "../foundations/Menu.js";
12
+ 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";
13
+ import { AgentChatStartScreen } from "../ai-sdk/AgentChatStartScreen.js";
14
+ import { AgentChatMessageEditor } from "../ai-sdk/AgentChatMessageEditor.js";
15
+ import { Marker, MarkerContent } from "../foundations/Marker.js";
16
+ import { TransitionSurface } from "../foundations/TransitionSurface.js";
17
+ import { PromptInputApproval, getApprovalRequestId, getApprovalStateKey, getPendingToolApprovals } from "./PromptInputApproval.js";
18
+ import { t as CopyButton } from "../../copy-button-CsNSSKYG.js";
18
19
  import * as React from "react";
19
20
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
20
21
  import { isCompactionMessage } from "agents/experimental/memory/utils";
21
22
  import { isTextUIPart } from "ai";
22
- //#region src/components/AgentChat.tsx
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,
@@ -1,2 +1,2 @@
1
- import { i as useOptionalAgentToolRuns, n as AgentToolRunsProvider, r as AgentToolRunsProviderProps, t as AgentToolEventsValue } from "../AgentToolRunsContext-BVe4stgw.js";
1
+ import { i as useOptionalAgentToolRuns, n as AgentToolRunsProvider, r as AgentToolRunsProviderProps, t as AgentToolEventsValue } from "../../AgentToolRunsContext-Cgve-Upx.js";
2
2
  export { AgentToolEventsValue, AgentToolRunsProvider, AgentToolRunsProviderProps, useOptionalAgentToolRuns };
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import { jsx } from "react/jsx-runtime";
3
- //#region src/components/AgentToolRunsContext.tsx
3
+ //#region src/components/agents-sdk/AgentToolRunsContext.tsx
4
4
  const AgentToolRunsContext = React.createContext(null);
5
5
  /** Provides one parent connection's retained Agent Tool event projection. */
6
6
  function AgentToolRunsProvider({ agentTools, children }) {
@@ -0,0 +1,2 @@
1
+ import { n as BrowserLiveViewProps, t as BrowserLiveView } from "../../BrowserLiveView-tJTWkoyu.js";
2
+ export { BrowserLiveView, BrowserLiveViewProps };
@@ -1,12 +1,12 @@
1
- import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { Button } from "./Button.js";
3
- import { A as MaximizeIcon, J as SpinnerIcon } from "../icons-B4mGvCvc.js";
4
- import { Dialog } from "./Dialog.js";
5
- import { TransitionSurface } from "./TransitionSurface.js";
6
- import { StatusPill } from "./StatusPill.js";
1
+ import { t as cx } from "../../class-names-BiMDVpUo.js";
2
+ import { A as MaximizeIcon, J as SpinnerIcon } from "../../icons-B1Qw05te.js";
3
+ import { Button } from "../foundations/Button.js";
4
+ import { Dialog } from "../foundations/Dialog.js";
5
+ import { TransitionSurface } from "../foundations/TransitionSurface.js";
6
+ import { StatusPill } from "../foundations/StatusPill.js";
7
7
  import * as React from "react";
8
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
- //#region src/components/BrowserLiveView.tsx
9
+ //#region src/components/agents-sdk/BrowserLiveView.tsx
10
10
  const FRAME_LOAD_TIMEOUT_MS = 15e3;
11
11
  function EndedState({ title, detail }) {
12
12
  return /* @__PURE__ */ jsxs("div", {
@@ -0,0 +1,2 @@
1
+ import { n as BrowserReplayProps, t as BrowserReplay } from "../../BrowserReplay-B0BQZr-N.js";
2
+ export { BrowserReplay, BrowserReplayProps };
@@ -1,13 +1,13 @@
1
- import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { V as PlayIcon, z as PauseIcon } from "../icons-B4mGvCvc.js";
3
- import { IconButton } from "./IconButton.js";
4
- import { r as formatClock } from "../format-S6uWyoSb.js";
5
- import { EmptyState } from "./EmptyState.js";
6
- import { Slider } from "./Slider.js";
1
+ import { t as cx } from "../../class-names-BiMDVpUo.js";
2
+ import { V as PlayIcon, z as PauseIcon } from "../../icons-B1Qw05te.js";
3
+ import { IconButton } from "../foundations/IconButton.js";
4
+ import { r as formatClock } from "../../format-CmopcfqJ.js";
5
+ import { EmptyState } from "../foundations/EmptyState.js";
6
+ import { Slider } from "../foundations/Slider.js";
7
7
  import * as React from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { Replayer } from "@rrweb/replay";
10
- //#region src/components/BrowserReplay.tsx
10
+ //#region src/components/agents-sdk/BrowserReplay.tsx
11
11
  function labelReplayFrame(stage) {
12
12
  const frame = stage.querySelector("iframe");
13
13
  if (frame) frame.title = "Browser session replay";
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { BrowserLiveView } from "agents/browser";
3
3
 
4
- //#region src/components/BrowserRunPanel.d.ts
4
+ //#region src/components/agents-sdk/BrowserRunPanel.d.ts
5
5
  interface BrowserRunPanelProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
6
6
  /** Host-side Browser Run Live View data from `connector.liveView()`. */
7
7
  liveView?: BrowserLiveView;
@@ -1,12 +1,12 @@
1
- import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { Button } from "./Button.js";
3
- import { J as SpinnerIcon, rt as XIcon } from "../icons-B4mGvCvc.js";
4
- import { Tabs } from "./Tabs.js";
1
+ import { t as cx } from "../../class-names-BiMDVpUo.js";
2
+ import { J as SpinnerIcon, rt as XIcon } from "../../icons-B1Qw05te.js";
3
+ import { Button } from "../foundations/Button.js";
4
+ import { Tabs } from "../foundations/Tabs.js";
5
5
  import { BrowserLiveView } from "./BrowserLiveView.js";
6
- import { WebPreview, WebPreviewNavigation, WebPreviewNavigationButton, WebPreviewUrl } from "./WebPreview.js";
6
+ import { WebPreview, WebPreviewNavigation, WebPreviewNavigationButton, WebPreviewUrl } from "../general-purpose/WebPreview.js";
7
7
  import * as React from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
- //#region src/components/BrowserRunPanel.tsx
9
+ //#region src/components/agents-sdk/BrowserRunPanel.tsx
10
10
  function isInspectablePage(target) {
11
11
  const pageUrl = target.pageUrl;
12
12
  return Boolean(pageUrl && !pageUrl.startsWith("about:") && !pageUrl.startsWith("chrome:") && !pageUrl.startsWith("devtools:"));
@@ -1,9 +1,9 @@
1
- import { o as McpServerCard } from "../mcp-server-catalog-CO7GAl1f.js";
1
+ import { o as McpServerCard } from "../../mcp-server-catalog-CO7GAl1f.js";
2
2
  import * as React from "react";
3
3
  import { DynamicToolUIPart, ToolUIPart } from "ai";
4
4
  import { MCPServersState } from "agents";
5
5
 
6
- //#region src/components/McpConnectionRequest.d.ts
6
+ //#region src/components/agents-sdk/McpConnectionRequest.d.ts
7
7
  type McpConnectionRequestOutcome = "authorization-required" | "connected" | "declined" | "failed";
8
8
  interface McpConnectionRequestBaseProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children" | "part"> {
9
9
  /** Whole upstream AI SDK tool part whose lifecycle this card renders. */
@@ -31,19 +31,7 @@ type McpConnectionRequestProps = (McpConnectionRequestBaseProps & {
31
31
  * state. Failed and interrupted connections deliberately restart through the
32
32
  * same `onConnect` seam instead of introducing recovery operations.
33
33
  */
34
- declare function McpConnectionRequest({
35
- part,
36
- server,
37
- reason,
38
- mcp,
39
- serverId,
40
- outcome,
41
- onConnect,
42
- onDecline,
43
- className,
44
- ref,
45
- ...props
46
- }: McpConnectionRequestProps & {
34
+ declare function McpConnectionRequest(props: McpConnectionRequestProps & {
47
35
  ref?: React.Ref<HTMLDivElement>;
48
36
  }): React.JSX.Element;
49
37
  //#endregion
@@ -1,43 +1,71 @@
1
- import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { Button } from "./Button.js";
3
- import { J as SpinnerIcon, d as CheckIcon, j as McpIcon, tt as WarningIcon } from "../icons-B4mGvCvc.js";
4
- import { AgentAttention, AgentAttentionActions, AgentAttentionBody, AgentAttentionHeader } from "./AgentAttention.js";
5
- import { getMcpServerEntry, getMcpServerRuntimeState } from "../utils/mcp-server-catalog.js";
6
- import { DescriptionList } from "./DescriptionList.js";
1
+ import { getMcpServerEntry, getMcpServerRuntimeState } from "../../utils/mcp-server-catalog.js";
2
+ import { t as cx } from "../../class-names-BiMDVpUo.js";
3
+ import { J as SpinnerIcon, d as CheckIcon, j as McpIcon, tt as WarningIcon } from "../../icons-B1Qw05te.js";
4
+ import { Button } from "../foundations/Button.js";
5
+ import { i as formatErrorMessage } from "../../format-CmopcfqJ.js";
6
+ import { AgentAttention, AgentAttentionActions, AgentAttentionBody, AgentAttentionHeader } from "../ai-sdk/AgentAttention.js";
7
+ import { DescriptionList } from "../foundations/DescriptionList.js";
8
+ import { n as getMcpServerConnectionKind } from "../../mcp-server-U71zhxFF.js";
7
9
  import * as React from "react";
8
10
  import { jsx, jsxs } from "react/jsx-runtime";
9
11
  import { getToolPartState } from "@cloudflare/think/react";
10
- //#region src/components/McpConnectionRequest.tsx
12
+ //#region src/components/agents-sdk/McpConnectionRequest.tsx
11
13
  /**
12
14
  * In-chat MCP connection request backed by the AI SDK tool part and Agents MCP
13
15
  * state. Failed and interrupted connections deliberately restart through the
14
16
  * same `onConnect` seam instead of introducing recovery operations.
15
17
  */
16
- function McpConnectionRequest({ part, server, reason, mcp, serverId, outcome, onConnect, onDecline, className, ref, ...props }) {
18
+ function McpConnectionRequest(props) {
19
+ const { mcp, part, server, serverId } = props;
20
+ const entry = getMcpServerEntry(server, mcp);
21
+ const connectedServer = serverId === void 0 ? entry?.[1] : mcp?.servers[serverId];
22
+ const serverState = connectedServer ? getMcpServerRuntimeState(connectedServer) : void 0;
23
+ const actionStateKey = JSON.stringify([
24
+ part.toolCallId,
25
+ server.id,
26
+ server.url,
27
+ serverId ?? entry?.[0],
28
+ serverState,
29
+ connectedServer?.error
30
+ ]);
31
+ return /* @__PURE__ */ jsx(McpConnectionRequestContent, { ...props }, actionStateKey);
32
+ }
33
+ function McpConnectionRequestContent({ part, server, reason, mcp, serverId, outcome, onConnect, onDecline, className, ref, ...props }) {
17
34
  const [action, setAction] = React.useState(null);
18
35
  const entry = getMcpServerEntry(server, mcp);
19
36
  const connectedServer = serverId === void 0 ? entry?.[1] : mcp?.servers[serverId];
20
37
  const serverState = connectedServer ? getMcpServerRuntimeState(connectedServer) : void 0;
21
- const pendingAction = action && "pending" in action ? action.pending : null;
22
- const actionError = action && "error" in action ? action.error : null;
38
+ const connectionKind = getMcpServerConnectionKind(connectedServer);
39
+ const pendingAction = action?.status === "pending" ? action.kind : null;
40
+ const actionError = action?.status === "error" ? action.error : null;
41
+ const failedAction = action?.status === "error" ? action.kind : null;
23
42
  const toolState = part.state === "output-available" && part.preliminary === true ? "streaming" : getToolPartState(part);
24
43
  const authorizationPending = outcome === "authorization-required" && toolState === "complete";
25
44
  const settled = toolState === "error" || toolState === "denied" || toolState === "complete" && !authorizationPending;
26
45
  const preparing = !settled && (toolState === "streaming" || toolState === "waiting-approval" || toolState === "approved");
27
- const ready = serverState === "ready";
46
+ const ready = connectionKind === "connected";
28
47
  const authorizationFailed = authorizationPending && (serverState === "failed" || serverState === "not-connected" || Boolean(connectedServer?.error) || Boolean(actionError));
29
48
  const authorizing = authorizationPending && !ready && !authorizationFailed;
30
- const connecting = !authorizationPending && (pendingAction === "connect" || serverState === "connecting" || serverState === "discovering" || serverState === "connected" && !connectedServer?.error);
31
- const reconnect = Boolean(actionError) || serverState === "authenticating" || serverState === "failed" || serverState === "not-connected" || serverState === "connected" && Boolean(connectedServer?.error);
32
- const connectionError = actionError ?? connectedServer?.error ?? (serverState === "failed" ? "Connection failed. Reconnect to try again." : authorizationFailed ? "Connection did not complete." : void 0);
49
+ const connecting = !authorizationPending && (pendingAction === "connect" || connectionKind === "connecting");
50
+ const reconnect = failedAction === "connect" || connectionKind === "reconnect";
51
+ const connectionError = actionError ?? connectedServer?.error ?? (serverState === "failed" ? "The connection did not complete." : authorizationFailed ? "Connection did not complete." : void 0);
33
52
  async function runAction(kind, callback) {
34
53
  if (pendingAction) return;
35
- setAction({ pending: kind });
54
+ const nextAction = {
55
+ kind,
56
+ status: "pending"
57
+ };
58
+ setAction(nextAction);
36
59
  try {
37
60
  await callback();
38
- setAction(null);
61
+ setAction((current) => current === nextAction ? null : current);
39
62
  } catch (error) {
40
- setAction({ error: error instanceof Error ? error.message : String(error) });
63
+ const message = formatErrorMessage(error);
64
+ setAction((current) => current === nextAction ? {
65
+ error: message,
66
+ kind,
67
+ status: "error"
68
+ } : current);
41
69
  }
42
70
  }
43
71
  if (settled) {
@@ -61,7 +89,7 @@ function McpConnectionRequest({ part, server, reason, mcp, serverId, outcome, on
61
89
  }) }) : null]
62
90
  });
63
91
  }
64
- const title = preparing ? "Preparing connection request" : authorizationFailed ? `Couldn’t connect ${server.name}` : authorizing ? `Authorizing ${server.name}` : connecting ? `Connecting ${server.name}` : ready ? `Connected to ${server.name}` : reconnect ? `Reconnect ${server.name}` : `Connect ${server.name}`;
92
+ const title = preparing ? "Preparing connection request" : authorizationFailed ? `Couldn’t connect ${server.name}` : authorizing ? `Authorizing ${server.name}` : connecting ? `Connecting ${server.name}` : ready ? `Connected to ${server.name}` : reconnect ? `${server.name} connection needs attention` : `${server.name} connection requested`;
65
93
  const description = preparing ? "Reading assistant request" : authorizationFailed ? "Connection failed" : authorizing ? "The agent is completing sign-in" : connecting ? "Setting up connection" : ready ? "Connection is ready" : reconnect ? "The previous connection needs attention" : "Assistant requested access";
66
94
  const connectLabel = pendingAction === "connect" ? "Connecting…" : ready ? "Continue" : reconnect ? `Reconnect ${server.name}` : `Connect ${server.name}`;
67
95
  return /* @__PURE__ */ jsxs(AgentAttention, {