@mcp-b/react-components 0.28.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 (398) hide show
  1. package/dist/{AgentActivity-D3OvrC02.d.ts → AgentActivity-SP1WfLDW.d.ts} +2 -2
  2. package/dist/{AgentChat-CHEz8ts_.d.ts → AgentChat-CV-GuYA6.d.ts} +29 -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-C2uaL3el.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} +79 -41
  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} +18 -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/codex-model-catalog.d.ts +4 -4
  379. package/dist/utils/structured-code.d.ts +1 -1
  380. package/package.json +2 -2
  381. package/dist/components/BrowserLiveView.d.ts +0 -2
  382. package/dist/components/BrowserReplay.d.ts +0 -2
  383. package/dist/components/CodeBlock.d.ts +0 -2
  384. package/dist/components/Collapsible.d.ts +0 -2
  385. package/dist/components/Combobox.d.ts +0 -2
  386. package/dist/components/IconButton.d.ts +0 -2
  387. package/dist/components/Message.js +0 -2
  388. package/dist/components/PromptInput.d.ts +0 -2
  389. package/dist/components/ResponsiveSidebarShell.d.ts +0 -2
  390. package/dist/components/SessionCompaction.d.ts +0 -2
  391. package/dist/components/ThinkChatToolParts.d.ts +0 -2
  392. package/dist/components/ThinkExecutionStatus.d.ts +0 -22
  393. package/dist/components/ThinkExecutionStatus.js +0 -36
  394. package/dist/components/ThinkRecoveryNotice.d.ts +0 -2
  395. package/dist/components/ThinkRoutineRuns.js +0 -76
  396. package/dist/components/ToggleGroup.d.ts +0 -2
  397. package/dist/components/WorkspaceFileView.js +0 -2
  398. package/dist/{icons-B4mGvCvc.js → icons-B1Qw05te.js} +1 -1
@@ -1,7 +1,7 @@
1
- import { n as WorkspaceDestination } from "./WorkspaceLink-O-EBKUJ8.js";
1
+ import { n as WorkspaceDestination } from "./WorkspaceLink-DQogVe8E.js";
2
2
  import * as React from "react";
3
3
 
4
- //#region src/components/AgentActivity.d.ts
4
+ //#region src/components/agents-sdk/AgentActivity.d.ts
5
5
  type AgentActivityMode = "working" | "approval";
6
6
  type AgentActivityIconKind = "thought" | "read" | "edit" | "search" | "web" | "command" | "browser" | "tool" | "approval";
7
7
  /** Safe, serializable presentation state suitable for an Agents SDK state object. */
@@ -1,13 +1,13 @@
1
- import { i as AgentMessageRenderPartContext } from "./AgentMessageParts-CyD2UB3V.js";
2
- import { n as AgentChatStartScreenProps } from "./AgentChatStartScreen-DXZ0hAX0.js";
3
- import { $ as PromptInputDictationProps, A as PromptInputCommandDefinition, X as PromptInputContextSelectorProps, gt as PromptInputReference, n as PermissionMode, ut as PromptInputMessage } from "./PromptInput-B75Np5VB.js";
1
+ import { i as AgentMessageRenderPartContext } from "./AgentMessageParts-C7L-Mv9U.js";
2
+ import { n as AgentChatStartScreenProps } from "./AgentChatStartScreen-CO49yepa.js";
3
+ import { J as PromptInputContextSelectorProps, O as PromptInputCommandDefinition, Z as PromptInputDictationProps, ct as PromptInputMessage, mt as PromptInputReference, n as PermissionMode } from "./PromptInput-DOyee1kM.js";
4
4
  import * as React from "react";
5
5
  import { ChatAddToolApproveResponseFunction, ChatStatus, UIMessage } from "ai";
6
6
  import { PendingApproval, Think } from "@cloudflare/think";
7
7
  import { AgentStub } from "agents/client";
8
8
  import { UseVoiceInputReturn } from "@cloudflare/voice/react";
9
9
 
10
- //#region src/components/AgentChat.d.ts
10
+ //#region src/components/agents-sdk/AgentChat.d.ts
11
11
  interface AgentChatRenderMessageContext<MessageT extends UIMessage = UIMessage> {
12
12
  message: MessageT;
13
13
  messageIndex: number;
@@ -76,6 +76,13 @@ interface AgentChatProps<MessageT extends UIMessage = UIMessage> {
76
76
  showComposer?: boolean;
77
77
  /** Called when the user hits stop while `status` is streaming/submitted. */
78
78
  onStop?: () => void;
79
+ /**
80
+ * Called when a submission lands in the pending queue instead of going out
81
+ * (the composer was busy). Hosts with an autonomous continuation mode (goal
82
+ * mode) pause it here: a user who queues a message expects it to run next,
83
+ * not to race the loop's own next turn.
84
+ */
85
+ onPromptQueued?: () => void;
79
86
  placeholder?: string;
80
87
  disabled?: boolean;
81
88
  /** Rendered in place of the transcript while `messages` is empty. */
@@ -95,14 +102,24 @@ interface AgentChatProps<MessageT extends UIMessage = UIMessage> {
95
102
  onSelect?: (command: PromptInputCommandDefinition, draft: AgentChatComposerDraft) => void;
96
103
  };
97
104
  /**
98
- * Manual session compaction. When set, a built-in `/compact` entry always
99
- * leads the slash menu; selecting it runs this action immediately — no
100
- * reference chip, no submitted text — bypassing `slashCommands.onSelect`.
101
- * A rejection renders in the composer's status notice region. The status
102
- * half (live "compacting" phase, post-compaction transcript reload) is
103
- * `useSessionCompaction` in `SessionCompaction` — wire both for full HITL.
105
+ * Manual session compaction. When set, a built-in `/compact` entry leads the
106
+ * slash menu whenever no turn is submitted or streaming; selecting it runs
107
+ * this action immediately — no reference chip, no submitted text — bypassing
108
+ * `slashCommands.onSelect`. The entry is withheld while busy so a
109
+ * maintenance call never queues behind an active turn.
110
+ *
111
+ * The resolved `compacted` boolean is the outcome, and every outcome renders
112
+ * in the composer's status notice region: pending shows synchronously,
113
+ * `true` acknowledges completion, `false` explains that nothing was eligible
114
+ * (Session's valid no-op), and a rejection keeps the retryable failure
115
+ * notice. A host `notice` supersedes the local copy, so a precise Session
116
+ * error is never relabelled as benign. The status half (live "compacting"
117
+ * phase, post-compaction transcript reload) is `useSessionCompaction` in
118
+ * `SessionCompaction` — wire both for full HITL.
104
119
  */
105
- onCompact?: () => Promise<unknown>;
120
+ onCompact?: () => Promise<{
121
+ compacted: boolean;
122
+ }>;
106
123
  /** Controlled MCP catalog revealed by `@`; selections become composer references. */
107
124
  mentionCommands?: {
108
125
  items: readonly PromptInputCommandDefinition[];
@@ -254,6 +271,7 @@ declare function AgentChat<MessageT extends UIMessage = UIMessage>({
254
271
  onSubmit,
255
272
  showComposer,
256
273
  onStop,
274
+ onPromptQueued,
257
275
  placeholder,
258
276
  disabled,
259
277
  emptyState,
@@ -1,7 +1,7 @@
1
- import { r as ButtonProps } from "./Button-SBIz6Lqi.js";
1
+ import { r as ButtonProps } from "./Button-CZt3yywF.js";
2
2
  import * as React from "react";
3
3
 
4
- //#region src/components/AgentChatStartScreen.d.ts
4
+ //#region src/components/ai-sdk/AgentChatStartScreen.d.ts
5
5
  interface AgentChatStarterItem {
6
6
  id: string;
7
7
  label: React.ReactNode;
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { ChatStatus, UIMessage } from "ai";
3
3
 
4
- //#region src/components/AgentMessageParts.d.ts
4
+ //#region src/components/ai-sdk/AgentMessageParts.d.ts
5
5
  type AgentMessagePart<MessageT extends UIMessage = UIMessage> = MessageT["parts"][number];
6
6
  interface AgentMessageRenderPartContext<MessageT extends UIMessage = UIMessage> {
7
7
  message: MessageT;
@@ -21,7 +21,7 @@ interface AgentMessagePartsProps<MessageT extends UIMessage = UIMessage> {
21
21
  *
22
22
  * The default renderer uses upstream helpers where available:
23
23
  * `isTextUIPart`, `isReasoningUIPart`, `isFileUIPart`, `isToolUIPart`,
24
- * `getToolName`, and Think's `getToolPartState`/input/output accessors. It
24
+ * `getToolName`, and the native AI SDK tool-part state fields. It
25
25
  * also renders native AI SDK `source-url`/`source-document` parts as a single
26
26
  * grouped `Sources` block when they appear consecutively, consolidates native
27
27
  * reasoning parts into one disclosure, and treats `step-start` as a silent
@@ -3,7 +3,7 @@ import { UIMessage } from "ai";
3
3
  import { useAgentToolEvents } from "agents/react";
4
4
  import { AgentToolRunPart } from "agents/agent-tools";
5
5
 
6
- //#region src/components/AgentToolRunsContext.d.ts
6
+ //#region src/components/agents-sdk/AgentToolRunsContext.d.ts
7
7
  /** The complete upstream retained-run hook result for one parent connection. */
8
8
  type AgentToolEventsValue<Part extends AgentToolRunPart = UIMessage["parts"][number]> = ReturnType<typeof useAgentToolEvents<Part>>;
9
9
  interface AgentToolRunsProviderProps<Part extends AgentToolRunPart = UIMessage["parts"][number]> {
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { BrowserLiveViewUrl } from "agents/browser";
3
3
 
4
- //#region src/components/BrowserLiveView.d.ts
4
+ //#region src/components/agents-sdk/BrowserLiveView.d.ts
5
5
  interface BrowserLiveViewProps extends React.HTMLAttributes<HTMLDivElement> {
6
6
  /** Complete upstream value returned by `cdp.getLiveViewUrl()`. */
7
7
  source: BrowserLiveViewUrl;
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { BrowserRecording } from "agents/browser";
3
3
 
4
- //#region src/components/BrowserReplay.d.ts
4
+ //#region src/components/agents-sdk/BrowserReplay.d.ts
5
5
  interface BrowserReplayProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
6
6
  /**
7
7
  * rrweb events for one tab, e.g. one
@@ -1,7 +1,7 @@
1
1
  import { ButtonHTMLAttributes, ComponentPropsWithoutRef } from "react";
2
2
  import { Button } from "@base-ui/react/button";
3
3
 
4
- //#region src/components/Button.d.ts
4
+ //#region src/components/foundations/Button.d.ts
5
5
  /**
6
6
  * The visual rendering style of the button.
7
7
  *
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "./class-names-BiMDVpUo.js";
2
- import { Select } from "./components/Select.js";
3
- import { t as CopyButton } from "./copy-button-7ttJAorN.js";
2
+ import { Select } from "./components/foundations/Select.js";
3
+ import { t as CopyButton } from "./copy-button-CsNSSKYG.js";
4
4
  import * as React from "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { createHighlighter } from "shiki";
@@ -62,72 +62,7 @@ function toShikiLang(lang) {
62
62
  return LANG_ALIAS[lang] ?? lang;
63
63
  }
64
64
  //#endregion
65
- //#region src/components/CodeBlock.tsx
66
- const tokensCache = /* @__PURE__ */ new Map();
67
- const subscribers = /* @__PURE__ */ new Map();
68
- function getTokensCacheKey(code, language) {
69
- return JSON.stringify([language, code]);
70
- }
71
- function createRawTokens(code) {
72
- return {
73
- bg: "transparent",
74
- fg: "inherit",
75
- tokens: code.split("\n").map((line) => line ? [{
76
- content: line,
77
- color: "inherit"
78
- }] : [])
79
- };
80
- }
81
- function resolveCodeBlockLanguage(language) {
82
- return CODE_BLOCK_LANGUAGES.includes(language) ? toShikiLang(language) : language;
83
- }
84
- function highlightCode(code, language, callback) {
85
- const tokensCacheKey = getTokensCacheKey(code, language);
86
- const cached = tokensCache.get(tokensCacheKey);
87
- if (cached) return cached;
88
- if (callback) {
89
- const tokenSubscribers = subscribers.get(tokensCacheKey) ?? /* @__PURE__ */ new Set();
90
- tokenSubscribers.add(callback);
91
- subscribers.set(tokensCacheKey, tokenSubscribers);
92
- }
93
- getHighlighterInstance().then(async (highlighter) => {
94
- const lang = resolveCodeBlockLanguage(language);
95
- let result;
96
- try {
97
- const loadedLang = await loadShikiLanguage(highlighter, lang);
98
- result = highlighter.codeToTokens(code, {
99
- lang: loadedLang,
100
- themes: {
101
- light: "github-light-high-contrast",
102
- dark: "github-dark-high-contrast"
103
- }
104
- });
105
- } catch {
106
- const raw = createRawTokens(code);
107
- tokensCache.set(tokensCacheKey, raw);
108
- notifyTokenSubscribers(tokensCacheKey, raw);
109
- return;
110
- }
111
- const tokenized = {
112
- tokens: result.tokens,
113
- fg: result.fg ?? "inherit",
114
- bg: result.bg ?? "transparent"
115
- };
116
- tokensCache.set(tokensCacheKey, tokenized);
117
- notifyTokenSubscribers(tokensCacheKey, tokenized);
118
- }).catch(() => {
119
- const raw = createRawTokens(code);
120
- tokensCache.set(tokensCacheKey, raw);
121
- notifyTokenSubscribers(tokensCacheKey, raw);
122
- });
123
- return null;
124
- }
125
- function notifyTokenSubscribers(tokensCacheKey, result) {
126
- const tokenSubscribers = subscribers.get(tokensCacheKey);
127
- if (!tokenSubscribers) return;
128
- for (const subscriber of tokenSubscribers) subscriber(result);
129
- subscribers.delete(tokensCacheKey);
130
- }
65
+ //#region src/components/ai-sdk/CodeBlock.tsx
131
66
  const CodeBlockContext = React.createContext(null);
132
67
  function useCodeBlockContext() {
133
68
  const ctx = React.useContext(CodeBlockContext);
@@ -377,4 +312,4 @@ function escapeHtml(s) {
377
312
  return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
378
313
  }
379
314
  //#endregion
380
- export { CodeBlockCopyButton as a, CodeBlockLanguageSelector as c, CodeBlockLanguageSelectorTrigger as d, CodeBlockLanguageSelectorValue as f, CODE_BLOCK_LANGUAGES as h, CodeBlockContent as i, CodeBlockLanguageSelectorContent as l, highlightCode as m, CodeBlockActions as n, CodeBlockFilename as o, CodeBlockTitle as p, CodeBlockContainer as r, CodeBlockHeader as s, CodeBlock as t, CodeBlockLanguageSelectorItem as u };
315
+ export { CodeBlockCopyButton as a, CodeBlockLanguageSelector as c, CodeBlockLanguageSelectorTrigger as d, CodeBlockLanguageSelectorValue as f, CodeBlockContent as i, CodeBlockLanguageSelectorContent as l, CODE_BLOCK_LANGUAGES as m, CodeBlockActions as n, CodeBlockFilename as o, CodeBlockTitle as p, CodeBlockContainer as r, CodeBlockHeader as s, CodeBlock as t, CodeBlockLanguageSelectorItem as u };
@@ -1,7 +1,7 @@
1
- import { m as SelectProps, t as Select } from "./Select-B_13gg_J.js";
2
- import { t as CopyButtonProps } from "./copy-button-EBv_B9F6.js";
1
+ import { m as SelectProps, t as Select } from "./Select-D96d09ww.js";
2
+ import { t as CopyButtonProps } from "./copy-button-C0JyjClr.js";
3
3
  import * as React from "react";
4
- import { BundledLanguage, ThemedToken } from "shiki";
4
+ import { BundledLanguage } from "shiki";
5
5
 
6
6
  //#region src/components/_internal/shiki.d.ts
7
7
  /**
@@ -13,13 +13,7 @@ import { BundledLanguage, ThemedToken } from "shiki";
13
13
  type CodeBlockLanguage = BundledLanguage | "ts" | "tsx" | "js" | "jsx" | "css" | "html" | "json" | "bash" | "md";
14
14
  declare const CODE_BLOCK_LANGUAGES: ReadonlyArray<CodeBlockLanguage>;
15
15
  //#endregion
16
- //#region src/components/CodeBlock.d.ts
17
- interface TokenizedCode {
18
- tokens: ThemedToken[][];
19
- fg: string;
20
- bg: string;
21
- }
22
- declare function highlightCode(code: string, language: CodeBlockLanguage | BundledLanguage, callback?: (result: TokenizedCode) => void): TokenizedCode | null;
16
+ //#region src/components/ai-sdk/CodeBlock.d.ts
23
17
  interface CodeBlockProps extends React.HTMLAttributes<HTMLDivElement> {
24
18
  /** The source code to display. */
25
19
  code: string;
@@ -170,4 +164,4 @@ declare function CodeBlockContent({
170
164
  ref?: React.Ref<HTMLElement>;
171
165
  }): React.JSX.Element;
172
166
  //#endregion
173
- export { CodeBlockLanguage as A, CodeBlockLanguageSelectorValueProps as C, TokenizedCode as D, CodeBlockTitleProps as E, highlightCode as O, CodeBlockLanguageSelectorValue as S, CodeBlockTitle as T, CodeBlockLanguageSelectorItem as _, CodeBlockContainerProps as a, CodeBlockLanguageSelectorTrigger as b, CodeBlockCopyButton as c, CodeBlockFilenameProps as d, CodeBlockHeader as f, CodeBlockLanguageSelectorContentProps as g, CodeBlockLanguageSelectorContent as h, CodeBlockContainer as i, CODE_BLOCK_LANGUAGES as k, CodeBlockCopyButtonProps as l, CodeBlockLanguageSelector as m, CodeBlockActions as n, CodeBlockContent as o, CodeBlockHeaderProps as p, CodeBlockActionsProps as r, CodeBlockContentProps as s, CodeBlock as t, CodeBlockFilename as u, CodeBlockLanguageSelectorItemProps as v, CodeBlockProps as w, CodeBlockLanguageSelectorTriggerProps as x, CodeBlockLanguageSelectorProps as y };
167
+ export { CodeBlockLanguageSelectorValueProps as C, CODE_BLOCK_LANGUAGES as D, CodeBlockTitleProps as E, CodeBlockLanguage as O, CodeBlockLanguageSelectorValue as S, CodeBlockTitle as T, CodeBlockLanguageSelectorItem as _, CodeBlockContainerProps as a, CodeBlockLanguageSelectorTrigger as b, CodeBlockCopyButton as c, CodeBlockFilenameProps as d, CodeBlockHeader as f, CodeBlockLanguageSelectorContentProps as g, CodeBlockLanguageSelectorContent as h, CodeBlockContainer as i, CodeBlockCopyButtonProps as l, CodeBlockLanguageSelector as m, CodeBlockActions as n, CodeBlockContent as o, CodeBlockHeaderProps as p, CodeBlockActionsProps as r, CodeBlockContentProps as s, CodeBlock as t, CodeBlockFilename as u, CodeBlockLanguageSelectorItemProps as v, CodeBlockProps as w, CodeBlockLanguageSelectorTriggerProps as x, CodeBlockLanguageSelectorProps as y };
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { Combobox } from "@base-ui/react/combobox";
3
3
 
4
- //#region src/components/Combobox.d.ts
4
+ //#region src/components/foundations/Combobox.d.ts
5
5
  declare function ComboboxInputGroup({
6
6
  className,
7
7
  ref,
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { Dialog } from "@base-ui/react/dialog";
3
3
 
4
- //#region src/components/Dialog.d.ts
4
+ //#region src/components/foundations/Dialog.d.ts
5
5
  interface DialogProps extends Dialog.Root.Props {}
6
6
  interface DialogTriggerProps extends Dialog.Trigger.Props {}
7
7
  interface DialogPortalProps extends Dialog.Portal.Props {}
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "./class-names-BiMDVpUo.js";
2
- import { C as FileIcon, T as FolderOpenIcon, m as ChevronRightIcon, w as FolderIcon } from "./icons-B4mGvCvc.js";
3
- import { t as NavigationLink } from "./navigation-link-Cob7KBlM.js";
2
+ import { C as FileIcon, T as FolderOpenIcon, m as ChevronRightIcon, w as FolderIcon } from "./icons-B1Qw05te.js";
3
+ import { t as NavigationLink } from "./navigation-link-kqMa81v5.js";
4
4
  import * as React from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/components/_internal/use-file-tree-nav.ts
@@ -89,7 +89,7 @@ function useFileTreeNav({ expanded, initialFocusedPath, selectedPath, onSelect,
89
89
  };
90
90
  }
91
91
  //#endregion
92
- //#region src/components/FileTree.tsx
92
+ //#region src/components/general-purpose/FileTree.tsx
93
93
  function getFirstFileTreePath(children) {
94
94
  let firstPath = null;
95
95
  React.Children.forEach(children, (child) => {
@@ -181,7 +181,14 @@ function getFileTreeNodeTabIndex(focusedPath, path) {
181
181
  function getFileTreeNodeStyle(level) {
182
182
  return { "--file-tree-level": level };
183
183
  }
184
- function FileTreeFolder({ className, path, name, level = 0, children, ref, ...props }) {
184
+ function FileTreeNodeRow({ actions, children }) {
185
+ if (actions == null) return children;
186
+ return /* @__PURE__ */ jsxs("div", {
187
+ className: "file-tree__row",
188
+ children: [children, /* @__PURE__ */ jsx(FileTreeActions, { children: actions })]
189
+ });
190
+ }
191
+ function FileTreeFolder({ className, path, name, icon, actions, level = 0, children, ref, ...props }) {
185
192
  const { expanded, focusedPath, selectedPath, onFocus, onSelect, handleKeyDown, onExpandedChange } = useFileTreeContext();
186
193
  const isExpanded = expanded.has(path);
187
194
  const isFocused = focusedPath === path;
@@ -208,33 +215,29 @@ function FileTreeFolder({ className, path, name, level = 0, children, ref, ...pr
208
215
  "aria-selected": isSelected,
209
216
  className: cx("file-tree__folder", className),
210
217
  ...props,
211
- children: [/* @__PURE__ */ jsxs("button", {
212
- type: "button",
213
- className: "file-tree__node file-tree__node--folder",
214
- "data-focused": dataFlag(isFocused),
215
- "data-selected": dataFlag(isSelected),
216
- "data-workspace-path": path,
217
- tabIndex: getFileTreeNodeTabIndex(focusedPath, path),
218
- onClick: handleClick,
219
- onFocus: () => onFocus(path),
220
- onKeyDown: (e) => handleKeyDown(e, path, "folder"),
221
- style: getFileTreeNodeStyle(level),
222
- children: [
223
- /* @__PURE__ */ jsx("span", {
224
- className: cx("file-tree__chevron", isExpanded && "file-tree__chevron--expanded"),
225
- "aria-hidden": "true",
226
- children: /* @__PURE__ */ jsx(ChevronRightIcon, {})
227
- }),
228
- /* @__PURE__ */ jsx("span", {
229
- className: "file-tree__icon",
230
- "aria-hidden": "true",
231
- children: isExpanded ? /* @__PURE__ */ jsx(FolderOpenIcon, {}) : /* @__PURE__ */ jsx(FolderIcon, {})
232
- }),
233
- /* @__PURE__ */ jsx("span", {
234
- className: "file-tree__name sigvelo-truncate sigvelo-truncate-grow",
235
- children: name
236
- })
237
- ]
218
+ children: [/* @__PURE__ */ jsx(FileTreeNodeRow, {
219
+ actions,
220
+ children: /* @__PURE__ */ jsxs("button", {
221
+ type: "button",
222
+ className: "file-tree__node file-tree__node--folder",
223
+ "data-focused": dataFlag(isFocused),
224
+ "data-selected": dataFlag(isSelected),
225
+ "data-workspace-path": path,
226
+ tabIndex: getFileTreeNodeTabIndex(focusedPath, path),
227
+ onClick: handleClick,
228
+ onFocus: () => onFocus(path),
229
+ onKeyDown: (e) => handleKeyDown(e, path, "folder"),
230
+ style: getFileTreeNodeStyle(level),
231
+ children: [
232
+ /* @__PURE__ */ jsx("span", {
233
+ className: cx("file-tree__chevron", isExpanded && "file-tree__chevron--expanded"),
234
+ "aria-hidden": "true",
235
+ children: /* @__PURE__ */ jsx(ChevronRightIcon, {})
236
+ }),
237
+ /* @__PURE__ */ jsx(FileTreeIcon, { children: icon ?? (isExpanded ? /* @__PURE__ */ jsx(FolderOpenIcon, {}) : /* @__PURE__ */ jsx(FolderIcon, {})) }),
238
+ /* @__PURE__ */ jsx(FileTreeName, { children: name })
239
+ ]
240
+ })
238
241
  }), /* @__PURE__ */ jsx("ul", {
239
242
  className: "file-tree__list file-tree__group",
240
243
  role: "group",
@@ -245,7 +248,7 @@ function FileTreeFolder({ className, path, name, level = 0, children, ref, ...pr
245
248
  })]
246
249
  });
247
250
  }
248
- function FileTreeFile({ className, path, name, icon, render, level = 0, ref, ...props }) {
251
+ function FileTreeFile({ className, path, name, icon, actions, render, level = 0, ref, ...props }) {
249
252
  const { selectedPath, focusedPath, onFocus, onSelect, handleKeyDown } = useFileTreeContext();
250
253
  const isSelected = selectedPath === path;
251
254
  const isFocused = focusedPath === path;
@@ -255,43 +258,32 @@ function FileTreeFile({ className, path, name, icon, render, level = 0, ref, ...
255
258
  "aria-selected": isSelected,
256
259
  className: cx("file-tree__file", className),
257
260
  ...props,
258
- children: render ? /* @__PURE__ */ jsxs(NavigationLink, {
259
- render,
260
- className: "file-tree__node file-tree__node--file",
261
- "data-selected": dataFlag(isSelected),
262
- "data-focused": dataFlag(isFocused),
263
- "data-workspace-path": path,
264
- tabIndex: getFileTreeNodeTabIndex(focusedPath, path),
265
- onFocus: () => onFocus(path),
266
- onKeyDown: (event) => handleKeyDown(event, path, "file-link"),
267
- style: getFileTreeNodeStyle(level),
268
- children: [/* @__PURE__ */ jsx("span", {
269
- className: "file-tree__icon",
270
- "aria-hidden": "true",
271
- children: icon ?? /* @__PURE__ */ jsx(FileIcon, {})
272
- }), /* @__PURE__ */ jsx("span", {
273
- className: "file-tree__name sigvelo-truncate sigvelo-truncate-grow",
274
- children: name
275
- })]
276
- }) : /* @__PURE__ */ jsxs("button", {
277
- type: "button",
278
- className: "file-tree__node file-tree__node--file",
279
- "data-selected": dataFlag(isSelected),
280
- "data-focused": dataFlag(isFocused),
281
- "data-workspace-path": path,
282
- tabIndex: getFileTreeNodeTabIndex(focusedPath, path),
283
- onClick: () => onSelect(path),
284
- onFocus: () => onFocus(path),
285
- onKeyDown: (event) => handleKeyDown(event, path, "file"),
286
- style: getFileTreeNodeStyle(level),
287
- children: [/* @__PURE__ */ jsx("span", {
288
- className: "file-tree__icon",
289
- "aria-hidden": "true",
290
- children: icon ?? /* @__PURE__ */ jsx(FileIcon, {})
291
- }), /* @__PURE__ */ jsx("span", {
292
- className: "file-tree__name sigvelo-truncate sigvelo-truncate-grow",
293
- children: name
294
- })]
261
+ children: /* @__PURE__ */ jsx(FileTreeNodeRow, {
262
+ actions,
263
+ children: render ? /* @__PURE__ */ jsxs(NavigationLink, {
264
+ render,
265
+ className: "file-tree__node file-tree__node--file",
266
+ "data-selected": dataFlag(isSelected),
267
+ "data-focused": dataFlag(isFocused),
268
+ "data-workspace-path": path,
269
+ tabIndex: getFileTreeNodeTabIndex(focusedPath, path),
270
+ onFocus: () => onFocus(path),
271
+ onKeyDown: (event) => handleKeyDown(event, path, "file-link"),
272
+ style: getFileTreeNodeStyle(level),
273
+ children: [/* @__PURE__ */ jsx(FileTreeIcon, { children: icon ?? /* @__PURE__ */ jsx(FileIcon, {}) }), /* @__PURE__ */ jsx(FileTreeName, { children: name })]
274
+ }) : /* @__PURE__ */ jsxs("button", {
275
+ type: "button",
276
+ className: "file-tree__node file-tree__node--file",
277
+ "data-selected": dataFlag(isSelected),
278
+ "data-focused": dataFlag(isFocused),
279
+ "data-workspace-path": path,
280
+ tabIndex: getFileTreeNodeTabIndex(focusedPath, path),
281
+ onClick: () => onSelect(path),
282
+ onFocus: () => onFocus(path),
283
+ onKeyDown: (event) => handleKeyDown(event, path, "file"),
284
+ style: getFileTreeNodeStyle(level),
285
+ children: [/* @__PURE__ */ jsx(FileTreeIcon, { children: icon ?? /* @__PURE__ */ jsx(FileIcon, {}) }), /* @__PURE__ */ jsx(FileTreeName, { children: name })]
286
+ })
295
287
  })
296
288
  });
297
289
  }
@@ -313,12 +305,13 @@ function FileTreeName({ className, children, ref, ...props }) {
313
305
  });
314
306
  }
315
307
  function FileTreeActions({ className, children, onClick, ref, ...props }) {
316
- const handleClick = React.useCallback((e) => {
317
- e.stopPropagation();
318
- onClick?.(e);
308
+ const handleClick = React.useCallback((event) => {
309
+ event.stopPropagation();
310
+ onClick?.(event);
319
311
  }, [onClick]);
320
312
  return /* @__PURE__ */ jsx("div", {
321
313
  ref,
314
+ role: "group",
322
315
  className: cx("file-tree__actions", className),
323
316
  onClick: handleClick,
324
317
  ...props,
@@ -1,7 +1,7 @@
1
- import { i as ButtonSize, r as ButtonProps } from "./Button-SBIz6Lqi.js";
1
+ import { i as ButtonSize, r as ButtonProps } from "./Button-CZt3yywF.js";
2
2
  import * as React from "react";
3
3
 
4
- //#region src/components/IconButton.d.ts
4
+ //#region src/components/foundations/IconButton.d.ts
5
5
  interface IconButtonProps extends Omit<ButtonProps, "aria-label" | "children" | "size"> {
6
6
  /** Decorative icon rendered inside the square button. */
7
7
  children: React.ReactNode;
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { Menu } from "@base-ui/react/menu";
3
3
 
4
- //#region src/components/Menu.d.ts
4
+ //#region src/components/foundations/Menu.d.ts
5
5
  /**
6
6
  * Props for the Menu.Root component.
7
7
  */
@@ -1,11 +1,11 @@
1
1
  import { t as cx } from "./class-names-BiMDVpUo.js";
2
- import { Button } from "./components/Button.js";
3
- import { G as SearchIcon, f as ChevronDownIcon } from "./icons-B4mGvCvc.js";
4
- import { Dialog } from "./components/Dialog.js";
5
- import { i as titleCase } from "./format-S6uWyoSb.js";
6
- import { Separator } from "./components/Separator.js";
7
- import { EmptyState } from "./components/EmptyState.js";
8
- import { Input } from "./components/Input.js";
2
+ import { G as SearchIcon, f as ChevronDownIcon } from "./icons-B1Qw05te.js";
3
+ import { Button } from "./components/foundations/Button.js";
4
+ import { Dialog } from "./components/foundations/Dialog.js";
5
+ import { a as titleCase } from "./format-CmopcfqJ.js";
6
+ import { Separator } from "./components/foundations/Separator.js";
7
+ import { EmptyState } from "./components/foundations/EmptyState.js";
8
+ import { Input } from "./components/foundations/Input.js";
9
9
  import * as React from "react";
10
10
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
11
  //#region src/components/_internal/provider-logos.tsx
@@ -79,7 +79,7 @@ function ProviderLogo({ provider, ...props }) {
79
79
  }
80
80
  }
81
81
  //#endregion
82
- //#region src/components/ModelSelector.tsx
82
+ //#region src/components/agents-sdk/ModelSelector.tsx
83
83
  const ModelSelectorContext = React.createContext(null);
84
84
  const cloudflareModelProviderLabels = {
85
85
  ai4bharat: "AI4Bharat",
@@ -284,10 +284,8 @@ function ModelSelector({ open, defaultOpen = false, onOpenChange, children, clas
284
284
  });
285
285
  }
286
286
  function CloudflareModelSelector({ models, selectedModelId = null, onSelectModel, disabled = false, placeholder = "Search or paste an AI Gateway model id...", triggerLabel = "Select a model", emptyLabel = "No models found", allowTypedModel = true, onOpenChange, ...props }) {
287
- const [query, setQuery] = React.useState("");
288
287
  const options = React.useMemo(() => normalizeCloudflareModelSelectorModels(models), [models]);
289
288
  const groups = React.useMemo(() => groupCloudflareModelOptions(options), [options]);
290
- const optionIds = React.useMemo(() => new Set(options.map((option) => option.id)), [options]);
291
289
  const selectedOption = selectedModelId ? options.find((option) => option.id === selectedModelId) ?? {
292
290
  id: selectedModelId,
293
291
  provider: getCloudflareModelProvider(selectedModelId),
@@ -295,14 +293,8 @@ function CloudflareModelSelector({ models, selectedModelId = null, onSelectModel
295
293
  source: selectedModelId.startsWith("@") ? "workers-ai" : "ai-gateway",
296
294
  description: null
297
295
  } : null;
298
- const typedModelId = query.trim();
299
- const showTypedModel = allowTypedModel && isCloudflareRunnableModelId(typedModelId) && typedModelId !== selectedModelId && !optionIds.has(typedModelId);
300
296
  return /* @__PURE__ */ jsxs(ModelSelector, {
301
- onOpenChange: React.useCallback((...args) => {
302
- const [nextOpen] = args;
303
- if (!nextOpen) setQuery("");
304
- onOpenChange?.(...args);
305
- }, [onOpenChange]),
297
+ onOpenChange,
306
298
  ...props,
307
299
  children: [/* @__PURE__ */ jsx(ModelSelectorTrigger, {
308
300
  disabled,
@@ -311,21 +303,14 @@ function CloudflareModelSelector({ models, selectedModelId = null, onSelectModel
311
303
  title: "Cloudflare model selector",
312
304
  children: /* @__PURE__ */ jsxs(ModelSelectorDialog, { children: [/* @__PURE__ */ jsx(ModelSelectorInput, {
313
305
  "aria-label": "Search Cloudflare AI models",
314
- placeholder,
315
- onInput: (event) => setQuery(event.currentTarget.value)
306
+ placeholder
316
307
  }), /* @__PURE__ */ jsxs(ModelSelectorList, { children: [
317
- showTypedModel ? /* @__PURE__ */ jsx(ModelSelectorGroup, {
318
- label: "AI Gateway",
319
- children: /* @__PURE__ */ jsxs(ModelSelectorItem, {
320
- value: typedModelId,
321
- onSelect: onSelectModel,
322
- children: [
323
- /* @__PURE__ */ jsx(ModelSelectorLogo, { provider: getCloudflareModelProvider(typedModelId) }),
324
- /* @__PURE__ */ jsx(ModelSelectorName, { children: typedModelId }),
325
- /* @__PURE__ */ jsx(ModelSelectorSource, { children: "Use" })
326
- ]
327
- })
328
- }) : null,
308
+ /* @__PURE__ */ jsx(CloudflareTypedModelOption, {
309
+ allowTypedModel,
310
+ onSelectModel,
311
+ options,
312
+ selectedModelId
313
+ }),
329
314
  groups.map((group) => /* @__PURE__ */ jsx(ModelSelectorGroup, {
330
315
  label: group.providerLabel,
331
316
  children: group.options.map((option) => /* @__PURE__ */ jsxs(ModelSelectorItem, {
@@ -345,6 +330,23 @@ function CloudflareModelSelector({ models, selectedModelId = null, onSelectModel
345
330
  })]
346
331
  });
347
332
  }
333
+ function CloudflareTypedModelOption({ allowTypedModel, onSelectModel, options, selectedModelId }) {
334
+ const { query } = useModelSelectorContext();
335
+ const typedModelId = query.trim();
336
+ if (!allowTypedModel || !isCloudflareRunnableModelId(typedModelId) || typedModelId === selectedModelId || options.some((option) => option.id === typedModelId)) return null;
337
+ return /* @__PURE__ */ jsx(ModelSelectorGroup, {
338
+ label: "AI Gateway",
339
+ children: /* @__PURE__ */ jsxs(ModelSelectorItem, {
340
+ value: typedModelId,
341
+ onSelect: onSelectModel,
342
+ children: [
343
+ /* @__PURE__ */ jsx(ModelSelectorLogo, { provider: getCloudflareModelProvider(typedModelId) }),
344
+ /* @__PURE__ */ jsx(ModelSelectorName, { children: typedModelId }),
345
+ /* @__PURE__ */ jsx(ModelSelectorSource, { children: "Use" })
346
+ ]
347
+ })
348
+ });
349
+ }
348
350
  function ModelSelectorTrigger({ className, children, ...props }) {
349
351
  return /* @__PURE__ */ jsx(Dialog.Trigger, { render: /* @__PURE__ */ jsxs(Button, {
350
352
  variant: "outline",