@marimo-team/frontend 0.16.0 → 0.16.2

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 (284) hide show
  1. package/dist/assets/ConnectedDataExplorerComponent-B5cPvWoQ.js +19 -0
  2. package/dist/assets/{ImageComparisonComponent-fTHv1Ih0.js → ImageComparisonComponent-CqR26LSv.js} +1 -1
  3. package/dist/assets/{VegaLite-Bdi-TyfY.js → VegaLite-DvQDATwI.js} +1 -1
  4. package/dist/assets/_baseEach--KDTwKbG.js +1 -0
  5. package/dist/assets/_baseMap-Cu3o-eyO.js +1 -0
  6. package/dist/assets/{_baseUniq-CCgDNtZb.js → _baseUniq-y7ZXnMo1.js} +1 -1
  7. package/dist/assets/{_createAggregator-DcD0kTA5.js → _createAggregator-ZcHkHPNJ.js} +1 -1
  8. package/dist/assets/{agent-panel-Crv430aI.js → agent-panel-B91RoLct.js} +76 -57
  9. package/dist/assets/{any-language-editor-CQh552Wu.js → any-language-editor-CxfHcm5h.js} +1 -1
  10. package/dist/assets/{architectureDiagram-W76B3OCA-BAJeBxzt.js → architectureDiagram-W76B3OCA-BQsvK8uR.js} +1 -1
  11. package/dist/assets/{between-horizontal-start-Boxgxbt_.js → between-horizontal-start-BmYToIaM.js} +1 -1
  12. package/dist/assets/{blockDiagram-QIGZ2CNN-CL-1svEK.js → blockDiagram-QIGZ2CNN-r3HgCj4w.js} +1 -1
  13. package/dist/assets/{c4Diagram-FPNF74CW-BbEqbCTl.js → c4Diagram-FPNF74CW-BJbPNt41.js} +1 -1
  14. package/dist/assets/channel-DFaEx1fu.js +1 -0
  15. package/dist/assets/chat-panel-IoPMv8e2.js +3 -0
  16. package/dist/assets/{chunk-4BX2VUAB-C--8TXeE.js → chunk-4BX2VUAB-Dv4MZ9Hj.js} +1 -1
  17. package/dist/assets/{chunk-55IACEB6-Bj00HDqq.js → chunk-55IACEB6-CM4AHquB.js} +1 -1
  18. package/dist/assets/{chunk-FMBD7UC4-C-lhB6hN.js → chunk-FMBD7UC4-C_Zz0ENB.js} +1 -1
  19. package/dist/assets/{chunk-K7UQS3LO-B-pGTXPt.js → chunk-K7UQS3LO-DYSmiXYq.js} +1 -1
  20. package/dist/assets/{chunk-QN33PNHL-DqUzGhvm.js → chunk-QN33PNHL-QM4OPuQP.js} +1 -1
  21. package/dist/assets/{chunk-QZHKN3VN-TntJHfSk.js → chunk-QZHKN3VN-CfAsGyeB.js} +1 -1
  22. package/dist/assets/{chunk-TVAH2DTR-HUJb1psV.js → chunk-TVAH2DTR-6j_Cpjsi.js} +1 -1
  23. package/dist/assets/{chunk-TZMSLE5B-BK3C__t3.js → chunk-TZMSLE5B-BHslFJQE.js} +1 -1
  24. package/dist/assets/{circle-play-DBLOv1Yu.js → circle-play-CK3UZRYQ.js} +1 -1
  25. package/dist/assets/classDiagram-KNZD7YFC-BsZtvV5O.js +1 -0
  26. package/dist/assets/classDiagram-v2-RKCZMP56-BsZtvV5O.js +1 -0
  27. package/dist/assets/{clear-button-BeoFbEKH.js → clear-button-C4fDVSv8.js} +1 -1
  28. package/dist/assets/clone-YBEvPE-s.js +1 -0
  29. package/dist/assets/command-palette-D7hOfvf6.js +1 -0
  30. package/dist/assets/{common-C7oJcmCT.js → common-D-lbuUwz.js} +1 -1
  31. package/dist/assets/{compile-7L0MwhyI.js → compile-DVQe1Mzk.js} +1 -1
  32. package/dist/assets/{cose-bilkent-S5V4N54A-BMkGLcVC.js → cose-bilkent-S5V4N54A-D-IS7WC8.js} +1 -1
  33. package/dist/assets/{dagre-5GWH7T2D-BJtRienS.js → dagre-5GWH7T2D-lYu-tEWT.js} +1 -1
  34. package/dist/assets/{data-grid-overlay-editor-DBkmGtNs.js → data-grid-overlay-editor-C5peOCit.js} +1 -1
  35. package/dist/assets/datasources-panel-D3NA20uZ.js +1 -0
  36. package/dist/assets/{dependency-graph-panel-DEdOxp2X.js → dependency-graph-panel-BGVYOfkV.js} +1 -1
  37. package/dist/assets/{diagram-N5W7TBWH-CmECY3nb.js → diagram-N5W7TBWH-BnvIuYUp.js} +1 -1
  38. package/dist/assets/{diagram-QEK2KX5R-DMOVSNKD.js → diagram-QEK2KX5R-DemedRK3.js} +1 -1
  39. package/dist/assets/{diagram-S2PKOQOG-BiJ96PNQ.js → diagram-S2PKOQOG-iiY7AuyH.js} +1 -1
  40. package/dist/assets/{documentation-panel-xULhaEv3.js → documentation-panel-C3dSwOSQ.js} +1 -1
  41. package/dist/assets/edit-page-C5TsEeSo.js +129 -0
  42. package/dist/assets/{ellipsis-vertical-BBqXIlc2.js → ellipsis-vertical-CazJl8M7.js} +1 -1
  43. package/dist/assets/{empty-state-B3dA3G5P.js → empty-state-DW308mFO.js} +1 -1
  44. package/dist/assets/{erDiagram-AWTI2OKA-MP1DiFRo.js → erDiagram-AWTI2OKA-6wQ8Ugg0.js} +1 -1
  45. package/dist/assets/{error-panel-Cc1sv-Ag.js → error-panel-D1VnJ1yP.js} +1 -1
  46. package/dist/assets/file-explorer-panel-0oVd4t-D.js +1 -0
  47. package/dist/assets/{flowDiagram-PVAE7QVJ-BX7caPp7.js → flowDiagram-PVAE7QVJ-C55IUWjm.js} +1 -1
  48. package/dist/assets/{ganttDiagram-OWAHRB6G-B462g4Yf.js → ganttDiagram-OWAHRB6G-DmqCM6ME.js} +4 -4
  49. package/dist/assets/{gitGraphDiagram-NY62KEGX-CGgvZ9-9.js → gitGraphDiagram-NY62KEGX-DBvhAeM_.js} +1 -1
  50. package/dist/assets/{glide-data-editor-C0gUFZON.js → glide-data-editor-CHNuHidQ.js} +4 -4
  51. package/dist/assets/{graph-CHRVBzY5.js → graph-CG6BgUWQ.js} +1 -1
  52. package/dist/assets/home-page-dgivXuSR.js +9 -0
  53. package/dist/assets/{index-Clbi_Yaq.js → index-BTGpssVX.js} +1 -1
  54. package/dist/assets/{index-CQDrxQ0j.js → index-BYVZlBF8.js} +1 -1
  55. package/dist/assets/{index-lYa_leQE.js → index-BelfnXwL.js} +1 -1
  56. package/dist/assets/{index-DRMm6SNo.js → index-BneyUujp.js} +1 -1
  57. package/dist/assets/{index-BY93Ejhl.js → index-C02SqeRj.js} +1 -1
  58. package/dist/assets/{index-C-8WADat.js → index-C7dtgr9A.js} +1 -1
  59. package/dist/assets/{index-D9UKkrr2.js → index-CAQvMTzM.js} +1 -1
  60. package/dist/assets/index-CGDMlQfO.css +1 -0
  61. package/dist/assets/index-CelXfcd8.js +580 -0
  62. package/dist/assets/{index-vmICa5KN.js → index-Csd6QrCV.js} +1 -1
  63. package/dist/assets/{index-DoRmcrKM.js → index-CtPksxf0.js} +1 -1
  64. package/dist/assets/{index-C1v_Z9et.js → index-Cxyk7pt-.js} +1 -1
  65. package/dist/assets/{index-CpTPJo4k.js → index-DAZ-9ri2.js} +1 -1
  66. package/dist/assets/{index-DEQvTChO.js → index-DONRrmA2.js} +1 -1
  67. package/dist/assets/{index-C4Tn5NvJ.js → index-Db36XTG_.js} +1 -1
  68. package/dist/assets/{index-z9bohSQJ.js → index-DdIhdEVw.js} +1 -1
  69. package/dist/assets/{index-C-GhZ7ti.js → index-M_pBKDSe.js} +1 -1
  70. package/dist/assets/{index-C77h_TXN.js → index-_luCZMLM.js} +1 -1
  71. package/dist/assets/{index-D1vmG6DS.js → index-mkubqy9-.js} +1 -1
  72. package/dist/assets/{index-BVgAenPd.js → index-sbO9UaUU.js} +1 -1
  73. package/dist/assets/{index-CWMgowgL.js → index-z4krxQ4j.js} +1 -1
  74. package/dist/assets/infoDiagram-STP46IZ2-wTALjfPc.js +2 -0
  75. package/dist/assets/{isEmpty-DU_ogP_D.js → isEmpty-CqX_YTIf.js} +1 -1
  76. package/dist/assets/{journeyDiagram-BIP6EPQ6-C6EgLP_Q.js → journeyDiagram-BIP6EPQ6-Y5w_Tqe_.js} +1 -1
  77. package/dist/assets/{kanban-definition-6OIFK2YF-BXzYO1yj.js → kanban-definition-6OIFK2YF-DbXs5Rxi.js} +1 -1
  78. package/dist/assets/{layout-jihVw5-i.js → layout-BCNPDACj.js} +1 -1
  79. package/dist/assets/{linear-C4blANlC.js → linear-uO6UVhXt.js} +1 -1
  80. package/dist/assets/links-Drv7cJgN.js +7 -0
  81. package/dist/assets/{logs-panel-D401qzZh.js → logs-panel-BEQ1eRUp.js} +1 -1
  82. package/dist/assets/{markdown-renderer-Cd9eYyaL.js → markdown-renderer-Dmzbb00W.js} +20 -20
  83. package/dist/assets/{mermaid-BEVuRz_O.js → mermaid-qRc4MXIj.js} +1 -1
  84. package/dist/assets/{mermaid.core-CaSnaLH0.js → mermaid.core-CvvJtCRj.js} +4 -4
  85. package/dist/assets/min-DYUOb1RR.js +1 -0
  86. package/dist/assets/{mindmap-definition-Q6HEUPPD-BXUM5MT2.js → mindmap-definition-Q6HEUPPD-G5NognM-.js} +1 -1
  87. package/dist/assets/{number-overlay-editor-4uWXGlPG.js → number-overlay-editor-DPr5sHFu.js} +1 -1
  88. package/dist/assets/outline-panel-gxQXvVi4.js +1 -0
  89. package/dist/assets/{packages-panel-CJL0MVlj.js → packages-panel-B1T0VPlg.js} +1 -1
  90. package/dist/assets/{pieDiagram-ADFJNKIX-Dxt5PVNo.js → pieDiagram-ADFJNKIX-DK9SHkfc.js} +1 -1
  91. package/dist/assets/{quadrantDiagram-LMRXKWRM-D4pUaA31.js → quadrantDiagram-LMRXKWRM-D1DdWF8C.js} +1 -1
  92. package/dist/assets/{react-plotly-cJZ0VWBq.js → react-plotly-CTwajqCb.js} +1 -1
  93. package/dist/assets/{requirementDiagram-4UW4RH46-DVRTjgas.js → requirementDiagram-4UW4RH46-DnjDAypr.js} +1 -1
  94. package/dist/assets/{run-page-BUEnMC9w.js → run-page-CQY9im22.js} +1 -1
  95. package/dist/assets/{sankeyDiagram-GR3RE2ED-CVFnD9C-.js → sankeyDiagram-GR3RE2ED-B67Va-ER.js} +1 -1
  96. package/dist/assets/{scratchpad-panel-BIgRENkI.js → scratchpad-panel-DlDfcDtW.js} +1 -1
  97. package/dist/assets/{secrets-panel-xY5-V_BD.js → secrets-panel-BDGyuGZA.js} +1 -1
  98. package/dist/assets/{sequenceDiagram-C3RYC4MD-_lY4ZN_S.js → sequenceDiagram-C3RYC4MD-DiWgZPtN.js} +1 -1
  99. package/dist/assets/{slides-component-DMjQomc3.css → slides-component-C-LoGC1U.css} +1 -1
  100. package/dist/assets/{slides-component-Xjymwj7X.js → slides-component-DhpPRtQp.js} +1 -1
  101. package/dist/assets/snippets-panel-CLkBXhJ2.js +1 -0
  102. package/dist/assets/sortBy-D4OG7w4O.js +1 -0
  103. package/dist/assets/{state-C4NiC9tO.js → state-Dz_3JyED.js} +1 -1
  104. package/dist/assets/{stateDiagram-KXAO66HF-Da0JQWCn.js → stateDiagram-KXAO66HF-ByF2AULw.js} +1 -1
  105. package/dist/assets/stateDiagram-v2-UMBNRL4Z-CtBJqosP.js +1 -0
  106. package/dist/assets/storage-Dr0CC44z.js +26 -0
  107. package/dist/assets/{terminal-BPwTkXae.js → terminal-BtdissBf.js} +1 -1
  108. package/dist/assets/{time-Dv5_Ouz_.js → time-DKdOTnQg.js} +1 -1
  109. package/dist/assets/{timeline-definition-XQNQX7LJ-Dxh5Zu2e.js → timeline-definition-XQNQX7LJ-DzER9bf6.js} +1 -1
  110. package/dist/assets/tracing-Dpx5M-u3.js +2 -0
  111. package/dist/assets/{tracing-panel-DAzrzNmm.js → tracing-panel-hCjBkSER.js} +2 -2
  112. package/dist/assets/{trash-Dc6DSjz_.js → trash-C6Ko-g5q.js} +1 -1
  113. package/dist/assets/{tree-jheoerAX.js → tree-BHN2gcCF.js} +6 -6
  114. package/dist/assets/{treemap-75Q7IDZK-IgpxeGaf.js → treemap-75Q7IDZK-DR79Mhzt.js} +27 -27
  115. package/dist/assets/variable-panel-PFBCFz36.js +1 -0
  116. package/dist/assets/{vega-component-BpfpiPKI.js → vega-component-Db6-uY4C.js} +1 -1
  117. package/dist/assets/worker-fHbtoWvT.js +1 -0
  118. package/dist/assets/{xychartDiagram-6GGTOJPD-CmNigJ31.js → xychartDiagram-6GGTOJPD-DWzBP3tZ.js} +1 -1
  119. package/dist/index.html +2 -2
  120. package/package.json +5 -4
  121. package/src/__mocks__/requests.ts +1 -0
  122. package/src/components/app-config/user-config-form.tsx +46 -1
  123. package/src/components/chat/acp/__tests__/__snapshots__/prompt.test.ts.snap +62 -43
  124. package/src/components/chat/acp/__tests__/atoms.test.ts +1 -1
  125. package/src/components/chat/acp/__tests__/state.test.ts +36 -36
  126. package/src/components/chat/acp/agent-panel.tsx +24 -27
  127. package/src/components/chat/acp/blocks.tsx +6 -6
  128. package/src/components/chat/acp/prompt.ts +62 -43
  129. package/src/components/chat/chat-panel.tsx +5 -1
  130. package/src/components/chat/markdown-renderer.tsx +6 -10
  131. package/src/components/chat/tool-call-accordion.tsx +52 -20
  132. package/src/components/data-table/SearchBar.tsx +8 -7
  133. package/src/components/data-table/__tests__/column_formatting.test.ts +50 -35
  134. package/src/components/data-table/__tests__/columns.test.tsx +38 -0
  135. package/src/components/data-table/__tests__/data-table.test.tsx +39 -1
  136. package/src/components/data-table/cell-hover-template/feature.ts +14 -0
  137. package/src/components/data-table/cell-hover-template/types.ts +11 -0
  138. package/src/components/data-table/charts/components/form-fields.tsx +41 -37
  139. package/src/components/data-table/charts/forms/common-chart.tsx +2 -2
  140. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +5 -2
  141. package/src/components/data-table/column-formatting/feature.ts +62 -29
  142. package/src/components/data-table/column-formatting/types.ts +1 -0
  143. package/src/components/data-table/column-header.tsx +3 -1
  144. package/src/components/data-table/column-summary/chart-spec-model.tsx +24 -7
  145. package/src/components/data-table/column-summary/column-summary.tsx +18 -9
  146. package/src/components/data-table/columns.tsx +63 -20
  147. package/src/components/data-table/data-table.tsx +10 -2
  148. package/src/components/data-table/date-popover.tsx +85 -75
  149. package/src/components/data-table/filter-pills.tsx +14 -9
  150. package/src/components/data-table/header-items.tsx +5 -1
  151. package/src/components/data-table/pagination.tsx +20 -13
  152. package/src/components/data-table/renderers.tsx +36 -0
  153. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +10 -8
  154. package/src/components/data-table/schemas.ts +16 -0
  155. package/src/components/datasources/column-preview.tsx +6 -2
  156. package/src/components/datasources/datasources.tsx +8 -12
  157. package/src/components/editor/Cell.tsx +2 -0
  158. package/src/components/editor/ai/transport/chat-transport.tsx +4 -1
  159. package/src/components/editor/cell/CellStatus.tsx +23 -20
  160. package/src/components/editor/cell/CreateCellButton.tsx +3 -4
  161. package/src/components/editor/cell/code/language-toggle.tsx +3 -4
  162. package/src/components/editor/chrome/wrapper/footer-items/machine-stats.tsx +39 -28
  163. package/src/components/editor/controls/notebook-menu-dropdown.tsx +4 -2
  164. package/src/components/editor/errors/sql-validation-errors.tsx +34 -0
  165. package/src/components/editor/file-tree/requesting-tree.tsx +14 -8
  166. package/src/components/editor/output/ConsoleOutput.tsx +13 -1
  167. package/src/components/editor/output/MarimoErrorOutput.tsx +60 -1
  168. package/src/components/editor/renderers/CellArray.tsx +3 -4
  169. package/src/components/editor/renderers/slides-layout/slides-layout.tsx +3 -3
  170. package/src/components/editor/renderers/slides-layout/types.ts +1 -0
  171. package/src/components/pages/home-page.tsx +4 -1
  172. package/src/components/slides/slides-component.tsx +1 -1
  173. package/src/components/slides/slides.css +6 -0
  174. package/src/components/terminal/theme.tsx +1 -0
  175. package/src/components/tracing/tracing-spec.ts +5 -4
  176. package/src/components/ui/range-slider.tsx +4 -2
  177. package/src/components/ui/slider.tsx +3 -1
  178. package/src/components/variables/variables-table.tsx +3 -0
  179. package/src/core/MarimoApp.tsx +9 -6
  180. package/src/core/ai/context/__tests__/registry.test.ts +6 -4
  181. package/src/core/ai/context/providers/cell-output.ts +4 -20
  182. package/src/core/ai/context/providers/error.ts +3 -1
  183. package/src/core/ai/context/providers/file.ts +7 -2
  184. package/src/core/ai/context/providers/tables.ts +3 -2
  185. package/src/core/ai/context/providers/variable.ts +6 -4
  186. package/src/core/ai/staged-cells.ts +34 -1
  187. package/src/core/cells/__tests__/add-missing-import.test.ts +67 -22
  188. package/src/core/cells/add-missing-import.ts +24 -7
  189. package/src/core/cells/cells.ts +26 -27
  190. package/src/core/cells/logs.ts +1 -1
  191. package/src/core/codemirror/find-replace/search-highlight.ts +3 -1
  192. package/src/core/codemirror/language/LanguageAdapters.ts +9 -3
  193. package/src/core/codemirror/language/__tests__/extension.test.ts +24 -0
  194. package/src/core/codemirror/language/__tests__/sql-validation.test.ts +133 -0
  195. package/src/core/codemirror/language/languages/sql/sql-mode.ts +20 -0
  196. package/src/core/codemirror/language/languages/sql/sql.ts +90 -3
  197. package/src/core/codemirror/language/languages/sql/validation-errors.ts +79 -0
  198. package/src/core/codemirror/language/panel/panel.tsx +8 -2
  199. package/src/core/codemirror/language/panel/sql.tsx +81 -4
  200. package/src/core/codemirror/lsp/notebook-lsp.ts +8 -2
  201. package/src/core/codemirror/readonly/__tests__/extension.test.ts +1 -1
  202. package/src/core/codemirror/rtc/loro/awareness.ts +52 -17
  203. package/src/core/codemirror/rtc/loro/sync.ts +12 -4
  204. package/src/core/config/config-schema.ts +1 -0
  205. package/src/core/config/config.ts +4 -0
  206. package/src/core/config/feature-flag.tsx +3 -1
  207. package/src/core/datasets/request-registry.ts +17 -1
  208. package/src/core/hotkeys/hotkeys.ts +8 -4
  209. package/src/core/i18n/__tests__/locale-provider.test.tsx +176 -0
  210. package/src/core/i18n/locale-provider.tsx +35 -0
  211. package/src/core/i18n/with-locale.tsx +12 -0
  212. package/src/core/islands/bridge.ts +1 -0
  213. package/src/core/islands/components/web-components.tsx +13 -10
  214. package/src/core/islands/main.ts +1 -0
  215. package/src/core/kernel/RuntimeState.ts +4 -1
  216. package/src/core/kernel/messages.ts +3 -2
  217. package/src/core/network/DeferredRequestRegistry.ts +16 -4
  218. package/src/core/network/requests-network.ts +7 -0
  219. package/src/core/network/requests-static.ts +1 -0
  220. package/src/core/network/requests-toasting.ts +1 -0
  221. package/src/core/network/types.ts +2 -0
  222. package/src/core/runtime/runtime.ts +5 -4
  223. package/src/core/wasm/bridge.ts +10 -1
  224. package/src/core/wasm/store.ts +4 -1
  225. package/src/core/wasm/worker/message-buffer.ts +3 -2
  226. package/src/core/websocket/types.ts +22 -16
  227. package/src/core/websocket/useMarimoWebSocket.tsx +4 -0
  228. package/src/hooks/useFormatting.ts +97 -0
  229. package/src/hooks/useTimer.ts +8 -5
  230. package/src/plugins/core/registerReactComponent.tsx +39 -29
  231. package/src/plugins/impl/DataTablePlugin.tsx +15 -4
  232. package/src/plugins/impl/RangeSliderPlugin.tsx +5 -3
  233. package/src/plugins/impl/SliderPlugin.tsx +3 -1
  234. package/src/plugins/impl/anywidget/model.ts +16 -5
  235. package/src/plugins/impl/data-editor/types.ts +7 -5
  236. package/src/plugins/impl/data-explorer/components/column-summary.tsx +20 -13
  237. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +17 -5
  238. package/src/plugins/impl/panel/utils.ts +6 -4
  239. package/src/plugins/layout/OutlinePlugin.tsx +69 -0
  240. package/src/plugins/layout/StatPlugin.tsx +4 -1
  241. package/src/plugins/plugins.ts +2 -0
  242. package/src/stories/dataframe.stories.tsx +2 -0
  243. package/src/utils/__tests__/dates.test.ts +45 -24
  244. package/src/utils/__tests__/dom.test.ts +167 -0
  245. package/src/utils/__tests__/numbers.test.ts +42 -30
  246. package/src/utils/__tests__/once.test.ts +187 -0
  247. package/src/utils/dates.ts +15 -10
  248. package/src/utils/dom.ts +55 -0
  249. package/src/utils/edit-distance.ts +8 -6
  250. package/src/utils/errors.ts +1 -1
  251. package/src/utils/id-tree.tsx +21 -10
  252. package/src/utils/localStorage.ts +13 -4
  253. package/src/utils/numbers.ts +11 -11
  254. package/src/utils/once.ts +32 -0
  255. package/src/utils/paths.ts +4 -1
  256. package/src/utils/pluralize.ts +12 -5
  257. package/src/utils/python-poet/poet.ts +30 -15
  258. package/src/utils/time.ts +5 -1
  259. package/dist/assets/ConnectedDataExplorerComponent-BErMbWvG.js +0 -19
  260. package/dist/assets/_baseEach-CNBxBxvS.js +0 -1
  261. package/dist/assets/_baseMap-D1WHjKrd.js +0 -1
  262. package/dist/assets/channel-_2eNSz0n.js +0 -1
  263. package/dist/assets/chat-panel-CXh5Wl6C.js +0 -3
  264. package/dist/assets/classDiagram-KNZD7YFC-BGmh9POF.js +0 -1
  265. package/dist/assets/classDiagram-v2-RKCZMP56-BGmh9POF.js +0 -1
  266. package/dist/assets/clone-BFDSPAj3.js +0 -1
  267. package/dist/assets/command-palette-CXZiSv0I.js +0 -1
  268. package/dist/assets/datasources-panel-B7FbYLiy.js +0 -1
  269. package/dist/assets/edit-page-BrYda9VE.js +0 -129
  270. package/dist/assets/file-explorer-panel-Bw59Kva1.js +0 -1
  271. package/dist/assets/home-page-Fb2osjys.js +0 -9
  272. package/dist/assets/index-Cx0bsY1w.css +0 -1
  273. package/dist/assets/index-DKEudB02.js +0 -578
  274. package/dist/assets/infoDiagram-STP46IZ2-CVyrdLc8.js +0 -2
  275. package/dist/assets/links-D59GIweI.js +0 -7
  276. package/dist/assets/min-DUMu_zeK.js +0 -1
  277. package/dist/assets/outline-panel-DIzkvm2I.js +0 -1
  278. package/dist/assets/snippets-panel-CTPYW41n.js +0 -1
  279. package/dist/assets/sortBy-BNZKwiq_.js +0 -1
  280. package/dist/assets/stateDiagram-v2-UMBNRL4Z-D5lYZOOt.js +0 -1
  281. package/dist/assets/storage-CMdLzB_c.js +0 -26
  282. package/dist/assets/tracing-BCIurUfa.js +0 -2
  283. package/dist/assets/variable-panel-DYAiLBmF.js +0 -1
  284. package/dist/assets/worker-X5rxzQGQ.js +0 -1
@@ -1,10 +1,10 @@
1
- var xo=Object.defineProperty;var Nn=P=>{throw TypeError(P)};var fo=(P,F,W)=>F in P?xo(P,F,{enumerable:!0,configurable:!0,writable:!0,value:W}):P[F]=W;var Q=(P,F,W)=>fo(P,typeof F!="symbol"?F+"":F,W),bt=(P,F,W)=>F.has(P)||Nn("Cannot "+W);var X=(P,F,W)=>(bt(P,F,"read from private field"),W?W.call(P):F.get(P)),_e=(P,F,W)=>F.has(P)?Nn("Cannot add the same private member more than once"):F instanceof WeakSet?F.add(P):F.set(P,W),Ae=(P,F,W,Pe)=>(bt(P,F,"write to private field"),Pe?Pe.call(P,W):F.set(P,W),W),we=(P,F,W)=>(bt(P,F,"access private method"),W);var Sn=(P,F,W,Pe)=>({set _(lt){Ae(P,F,lt,W)},get _(){return X(P,F,Pe)}});import{c as Re,d1 as b,d2 as h,fL as v,fM as y,fN as pe,fO as Y,fP as D,fQ as w,d4 as je,fR as Cn,d as ze,r as k,a as T,fS as yt,j as o,aX as se,bk as In,c1 as vt,fT as kn,d5 as go,fU as bo,T as me,bF as Tn,am as yo,an as vo,al as _o,eW as wo,fV as jo,fW as No,W as So,fX as Co,dS as Io,_ as ko,d6 as To,cY as Mo,c_ as Ao,c$ as Ro,d0 as Uo,fY as Eo,as as Po,cF as Fo,N as qo,K as Mn,fZ as $o,ay as it,f_ as _t,C as zo,aT as Do,cl as rt,av as An,cI as ae,ee as wt,dU as Wo,aD as Oo,dV as Lo,f4 as Vo,dY as Bo,dX as Ho,f$ as Yo,b7 as jt,L as De,g0 as Go,au as Jo,g1 as Nt,a0 as St,bq as Qo,cZ as Ct,cL as Rn,dD as Xo,a1 as Zo,dz as Ko,dn as ei,du as ti,dv as ni,bN as si,dw as ai,dx as oi,dy as ii,dp as ri,dk as li,ds as ci,dd as di,de as mi,dq as ui,__tla as pi}from"./index-DKEudB02.js";import{M as Un,F as hi,__tla as xi}from"./markdown-renderer-Cd9eYyaL.js";import{R as En,k as fi,__tla as gi}from"./edit-page-BrYda9VE.js";import{C as Pn}from"./links-D59GIweI.js";import{P as Fn}from"./empty-state-B3dA3G5P.js";import{a as bi}from"./state-C4NiC9tO.js";import{__tla as yi}from"./storage-CMdLzB_c.js";import"./index-CQDrxQ0j.js";import"./index-C77h_TXN.js";import"./index-D1vmG6DS.js";import"./index-lYa_leQE.js";import"./index-DRMm6SNo.js";import"./index-vmICa5KN.js";import"./index-BY93Ejhl.js";import"./index-C-GhZ7ti.js";import"./index-C-8WADat.js";import"./index-DoRmcrKM.js";import"./index-DEQvTChO.js";import"./index-CWMgowgL.js";import"./index-D9UKkrr2.js";import"./apl-CXdQSnD-.js";import"./asciiarmor-D5V0T9Cu.js";import"./asn1-DWPaVWf6.js";import"./brainfuck-CtZaYBKt.js";import"./cobol-stawOqaz.js";import"./clike-BgBwzOhw.js";import"./clojure-DiuoqK-z.js";import"./css-ZjFoif2m.js";import"./cmake-DXn5xaP-.js";import"./coffeescript-BTDxI-eT.js";import"./commonlisp-vq6DHwts.js";import"./cypher-gJDei3ni.js";import"./python-DD-Q2bae.js";import"./crystal-CRzZ78HM.js";import"./d-BShv7fp-.js";import"./diff-UJJ5BM9S.js";import"./dtd-DI9Herc-.js";import"./dylan-DkEP81N9.js";import"./ecl-DPFc0Uaf.js";import"./eiffel-DR5c0IrL.js";import"./elm-DompmV0j.js";import"./erlang-BuqgqA5h.js";import"./factor-CFXhaUWb.js";import"./simple-mode-C3vEBAcb.js";import"./forth-POgR1ypr.js";import"./fortran-DL7KluxX.js";import"./mllike-3c2dg9RT.js";import"./gas-bV0CklSb.js";import"./gherkin-B6X1vGSW.js";import"./groovy-DnIzCrpZ.js";import"./haskell-CLQs6EAM.js";import"./haxe-D25e-2l-.js";import"./idl-pcmmZuaN.js";import"./javascript-BpzJj0-u.js";import"./jinja2-DhgKlfW7.js";import"./julia-DjdwvFuI.js";import"./livescript-HO6ttBFx.js";import"./lua-8DXOpKDz.js";import"./mirc-DkvFAiy5.js";import"./mathematica-IIbmv7SK.js";import"./modelica-DSrSSXCg.js";import"./mumps-zvxmGV4l.js";import"./mbox-z_N2Mo3d.js";import"./nsis-BvKfQ9lQ.js";import"./ntriples-BSwWqoLa.js";import"./octave-C4hdQ5Hf.js";import"./oz-qQq7irPq.js";import"./pascal-CafrKXZF.js";import"./perl-tdMlh9QA.js";import"./pig-CwGJVRC4.js";import"./powershell-D1ly3AHC.js";import"./properties-_nPj978X.js";import"./protobuf-B4y9do6W.js";import"./pug-BTvK5tSS.js";import"./puppet-Bc-yJKzi.js";import"./q-B0kTJ4cI.js";import"./r-BA4EbLKE.js";import"./rpm-DI_rRufH.js";import"./ruby-CR-u2WLS.js";import"./sas-Bqaci40L.js";import"./scheme-qjP0V5Ag.js";import"./shell-BLav31RL.js";import"./sieve-r025o_jW.js";import"./smalltalk-C7J3IyEP.js";import"./sparql-BRLJFz69.js";import"./stylus-Bdo_Aemu.js";import"./swift-B_XXVlXX.js";import"./verilog-B4LBqg_1.js";import"./tcl-B2fODqDH.js";import"./textile-BuVhTOzU.js";import"./toml-wcPdHu67.js";import"./troff-Ce85hlLp.js";import"./ttcn-BxnYHtq8.js";import"./ttcn-cfg-CKJxb-l2.js";import"./turtle-BkSuIpt-.js";import"./webidl-CGwyPRYs.js";import"./vb-BHgjm0DN.js";import"./vbscript-Dawdd5GZ.js";import"./velocity-BdD_26Jv.js";import"./vhdl-CWWH2SUo.js";import"./xquery-CVDBqZPY.js";import"./yacas-I8QjZlxf.js";import"./z80-D8p3gKXp.js";import"./mscgen-B2igx18G.js";import"./index-BVgAenPd.js";import"./trash-Dc6DSjz_.js";import"./katex-LV4FpwlL.js";import"./between-horizontal-start-Boxgxbt_.js";import"./_createAggregator-DcD0kTA5.js";import"./_baseEach-CNBxBxvS.js";import{__tla as vi}from"./loro_wasm_bg-C1ks32Vm.js";let qn,_i=Promise.all([(()=>{try{return pi}catch{}})(),(()=>{try{return xi}catch{}})(),(()=>{try{return gi}catch{}})(),(()=>{try{return yi}catch{}})(),(()=>{try{return vi}catch{}})()]).then(async()=>{var le,Fe,tt,Le,Ve,Be,qe,He,te,$n,zn,Dn,Wn,On,Je;const P=Re("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),F=Re("circle-stop",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]),W=Re("file-audio-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2",key:"17k7jt"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"3",cy:"17",r:"1",key:"vo6nti"}],["path",{d:"M2 17v-3a4 4 0 0 1 8 0v3",key:"1ggdre"}],["circle",{cx:"9",cy:"17",r:"1",key:"bc1fq4"}]]),Pe=Re("plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]]),lt=Re("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),Ln=Re("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]),We=Re("wifi-off",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),ct=Re("wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]),Vn="authenticate",Bn="initialize",Hn="session/cancel",Yn="session/load",Gn="session/new",Jn="session/prompt",Qn="session/set_mode",Xn="fs/read_text_file",Zn="fs/write_text_file",Kn="session/request_permission",es="session/update",ts="terminal/create",ns="terminal/kill",ss="terminal/output",as="terminal/release",os="terminal/wait_for_exit",It=b({_meta:v(y()).optional(),content:h(),path:h(),sessionId:h()}),kt=b({_meta:v(y()).optional(),limit:pe().optional().nullable(),line:pe().optional().nullable(),path:h(),sessionId:h()}),Tt=b({_meta:v(y()).optional(),sessionId:h(),terminalId:h()}),Mt=b({_meta:v(y()).optional(),sessionId:h(),terminalId:h()}),At=b({_meta:v(y()).optional(),sessionId:h(),terminalId:h()}),Rt=b({_meta:v(y()).optional(),sessionId:h(),terminalId:h()}),is=v(y()),rs=D([w("assistant"),w("user")]),ls=b({_meta:v(y()).optional(),mimeType:h().optional().nullable(),text:h(),uri:h()}),cs=b({_meta:v(y()).optional(),blob:h(),mimeType:h().optional().nullable(),uri:h()}),Ut=D([w("read"),w("edit"),w("delete"),w("move"),w("search"),w("execute"),w("think"),w("fetch"),w("switch_mode"),w("other")]),Et=D([w("pending"),w("in_progress"),w("completed"),w("failed")]),ds=b({_meta:v(y()).optional()}),ms=b({_meta:v(y()).optional(),content:h()}),us=b({_meta:v(y()).optional(),outcome:D([b({outcome:w("cancelled")}),b({optionId:h(),outcome:w("selected")})])}),ps=b({_meta:v(y()).optional(),terminalId:h()}),hs=b({_meta:v(y()).optional()}),xs=b({_meta:v(y()).optional(),exitCode:pe().optional().nullable(),signal:h().optional().nullable()}),fs=b({_meta:v(y()).optional()}),gs=v(y()),bs=b({_meta:v(y()).optional(),sessionId:h()}),ys=v(y()),vs=b({_meta:v(y()).optional(),methodId:h()}),_s=b({_meta:v(y()).optional(),modeId:h(),sessionId:h()}),ws=v(y()),Pt=b({_meta:v(y()).optional(),name:h(),value:h()}),he=b({_meta:v(y()).optional(),audience:Y(rs).optional().nullable(),lastModified:h().optional().nullable(),priority:pe().optional().nullable()}),Ft=D([ls,cs]),js=b({_meta:v(y()).optional()}),Ns=b({meta:y().optional()}),Ss=b({_meta:v(y()).optional(),stopReason:D([w("end_turn"),w("max_tokens"),w("max_turn_requests"),w("refusal"),w("cancelled")])}),Cs=v(y()),qt=h(),Is=v(y()),ks=b({hint:h()}),Ts=b({_meta:v(y()).optional(),kind:D([w("allow_once"),w("allow_always"),w("reject_once"),w("reject_always")]),name:h(),optionId:h()}),dt=D([b({content:D([b({_meta:v(y()).optional(),annotations:he.optional().nullable(),text:h(),type:w("text")}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),data:h(),mimeType:h(),type:w("image"),uri:h().optional().nullable()}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),data:h(),mimeType:h(),type:w("audio")}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),description:h().optional().nullable(),mimeType:h().optional().nullable(),name:h(),size:pe().optional().nullable(),title:h().optional().nullable(),type:w("resource_link"),uri:h()}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),resource:Ft,type:w("resource")})]),type:w("content")}),b({_meta:v(y()).optional(),newText:h(),oldText:h().optional().nullable(),path:h(),type:w("diff")}),b({terminalId:h(),type:w("terminal")})]),mt=b({_meta:v(y()).optional(),line:pe().optional().nullable(),path:h()}),$t=b({_meta:v(y()).optional(),name:h(),value:h()}),Ms=b({_meta:v(y()).optional(),exitCode:pe().optional().nullable(),signal:h().optional().nullable()}),As=b({_meta:v(y()).optional(),readTextFile:je().optional(),writeTextFile:je().optional()}),Rs=b({args:Y(h()),command:h(),env:Y($t),name:h()}),zt=D([b({headers:Y(Pt),name:h(),type:w("http"),url:h()}),b({headers:Y(Pt),name:h(),type:w("sse"),url:h()}),Rs]),Qe=D([b({_meta:v(y()).optional(),annotations:he.optional().nullable(),text:h(),type:w("text")}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),data:h(),mimeType:h(),type:w("image"),uri:h().optional().nullable()}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),data:h(),mimeType:h(),type:w("audio")}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),description:h().optional().nullable(),mimeType:h().optional().nullable(),name:h(),size:pe().optional().nullable(),title:h().optional().nullable(),type:w("resource_link"),uri:h()}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),resource:Ft,type:w("resource")})]),Us=b({_meta:v(y()).optional(),description:h().optional().nullable(),id:h(),name:h()}),Es=b({_meta:v(y()).optional(),http:je().optional(),sse:je().optional()}),Ps=b({_meta:v(y()).optional(),audio:je().optional(),embeddedContext:je().optional(),image:je().optional()}),Fs=b({_meta:v(y()).optional(),description:h().optional().nullable(),id:qt,name:h()}),Dt=b({_meta:v(y()).optional(),availableModes:Y(Fs),currentModeId:h()}),qs=b({_meta:v(y()).optional(),content:h(),priority:D([w("high"),w("medium"),w("low")]),status:D([w("pending"),w("in_progress"),w("completed")])}),$s=ks,zs=D([bs,ys]),Wt=b({_meta:v(y()).optional(),args:Y(h()).optional(),command:h(),cwd:h().optional().nullable(),env:Y($t).optional(),outputByteLimit:pe().optional().nullable(),sessionId:h()}),Ds=b({_meta:v(y()).optional(),exitStatus:Ms.optional().nullable(),output:h(),truncated:je()}),Ws=b({_meta:v(y()).optional(),cwd:h(),mcpServers:Y(zt)}),Os=b({_meta:v(y()).optional(),cwd:h(),mcpServers:Y(zt),sessionId:h()}),Ls=b({_meta:v(y()).optional(),prompt:Y(Qe),sessionId:h()}),Vs=b({_meta:v(y()).optional(),modes:Dt.optional().nullable(),sessionId:h()}),Bs=b({_meta:v(y()).optional(),modes:Dt.optional().nullable()}),Hs=b({_meta:v(y()).optional(),content:Y(dt).optional().nullable(),kind:Ut.optional().nullable(),locations:Y(mt).optional().nullable(),rawInput:v(y()).optional(),rawOutput:v(y()).optional(),status:Et.optional().nullable(),title:h().optional().nullable(),toolCallId:h()}),Ys=b({_meta:v(y()).optional(),fs:As.optional(),terminal:je().optional()}),Gs=b({_meta:v(y()).optional(),loadSession:je().optional(),mcpCapabilities:Es.optional(),promptCapabilities:Ps.optional()}),Js=b({_meta:v(y()).optional(),description:h(),input:$s.optional().nullable(),name:h()}),Qs=D([ds,ms,us,ps,Ds,hs,xs,fs,gs]),Ot=b({_meta:v(y()).optional(),options:Y(Ts),sessionId:h(),toolCall:Hs}),Xs=b({_meta:v(y()).optional(),clientCapabilities:Ys.optional(),protocolVersion:pe()}),Zs=b({_meta:v(y()).optional(),agentCapabilities:Gs.optional(),authMethods:Y(Us).optional(),protocolVersion:pe()}),Lt=b({_meta:v(y()).optional(),sessionId:h(),update:D([b({content:Qe,sessionUpdate:w("user_message_chunk")}),b({content:Qe,sessionUpdate:w("agent_message_chunk")}),b({content:Qe,sessionUpdate:w("agent_thought_chunk")}),b({_meta:v(y()).optional(),content:Y(dt).optional(),kind:D([w("read"),w("edit"),w("delete"),w("move"),w("search"),w("execute"),w("think"),w("fetch"),w("switch_mode"),w("other")]).optional(),locations:Y(mt).optional(),rawInput:v(y()).optional(),rawOutput:v(y()).optional(),sessionUpdate:w("tool_call"),status:D([w("pending"),w("in_progress"),w("completed"),w("failed")]).optional(),title:h(),toolCallId:h()}),b({_meta:v(y()).optional(),content:Y(dt).optional().nullable(),kind:Ut.optional().nullable(),locations:Y(mt).optional().nullable(),rawInput:v(y()).optional(),rawOutput:v(y()).optional(),sessionUpdate:w("tool_call_update"),status:Et.optional().nullable(),title:h().optional().nullable(),toolCallId:h()}),b({_meta:v(y()).optional(),entries:Y(qs),sessionUpdate:w("plan")}),b({availableCommands:Y(Js),sessionUpdate:w("available_commands_update")}),b({currentModeId:qt,sessionUpdate:w("current_mode_update")})])}),Ks=D([It,kt,Ot,Wt,Tt,Mt,At,Rt,is]),ea=D([Xs,vs,Ws,Os,_s,Ls,ws]),ta=D([Zs,js,Vs,Bs,Ns,Ss,Cs]),na=D([Lt,Is]);D([Ks,Qs,zs,ea,ta,na]);class sa{constructor(e,t,n){_e(this,le);const s=e(this);Ae(this,le,new aa(async(i,l)=>{var r,c,d,m,u;switch(i){case Zn:{const p=It.parse(l);return s.writeTextFile(p)}case Xn:{const p=kt.parse(l);return s.readTextFile(p)}case Kn:{const p=Ot.parse(l);return s.requestPermission(p)}case ts:{const p=Wt.parse(l);return(r=s.createTerminal)==null?void 0:r.call(s,p)}case ss:{const p=Tt.parse(l);return(c=s.terminalOutput)==null?void 0:c.call(s,p)}case as:{const p=Mt.parse(l);return await((d=s.releaseTerminal)==null?void 0:d.call(s,p))??{}}case os:{const p=At.parse(l);return(m=s.waitForTerminalExit)==null?void 0:m.call(s,p)}case ns:{const p=Rt.parse(l);return await((u=s.killTerminal)==null?void 0:u.call(s,p))??{}}default:if(i.startsWith("_")){const p=i.substring(1);if(!s.extMethod)throw ee.methodNotFound(i);return s.extMethod(p,l)}throw ee.methodNotFound(i)}},async(i,l)=>{if(i===es){const r=Lt.parse(l);return s.sessionUpdate(r)}if(i.startsWith("_")){const r=i.substring(1);return s.extNotification?s.extNotification(r,l):void 0}throw ee.methodNotFound(i)},t,n))}async initialize(e){return await X(this,le).sendRequest(Bn,e)}async newSession(e){return await X(this,le).sendRequest(Gn,e)}async loadSession(e){return await X(this,le).sendRequest(Yn,e)??{}}async setSessionMode(e){return await X(this,le).sendRequest(Qn,e)??{}}async authenticate(e){return await X(this,le).sendRequest(Vn,e)??{}}async prompt(e){return await X(this,le).sendRequest(Jn,e)}async cancel(e){return await X(this,le).sendNotification(Hn,e)}async extMethod(e,t){return await X(this,le).sendRequest(`_${e}`,t)}async extNotification(e,t){return await X(this,le).sendNotification(`_${e}`,t)}}le=new WeakMap;class aa{constructor(e,t,n,s){_e(this,te);_e(this,Fe,new Map);_e(this,tt,0);_e(this,Le);_e(this,Ve);_e(this,Be);_e(this,qe,Promise.resolve());_e(this,He);Ae(this,Le,e),Ae(this,Ve,t),Ae(this,Be,n),Ae(this,He,new TextEncoder),we(this,te,$n).call(this,s)}async sendRequest(e,t){const n=Sn(this,tt)._++,s=new Promise((i,l)=>{X(this,Fe).set(n,{resolve:i,reject:l})});return await we(this,te,Je).call(this,{jsonrpc:"2.0",id:n,method:e,params:t}),s}async sendNotification(e,t){await we(this,te,Je).call(this,{jsonrpc:"2.0",method:e,params:t})}}Fe=new WeakMap,tt=new WeakMap,Le=new WeakMap,Ve=new WeakMap,Be=new WeakMap,qe=new WeakMap,He=new WeakMap,te=new WeakSet,$n=async function(e){let t="";const n=new TextDecoder,s=e.getReader();try{for(;;){const{value:i,done:l}=await s.read();if(l)break;if(!i)continue;t+=n.decode(i,{stream:!0});const r=t.split(`
2
- `);t=r.pop()||"";for(const c of r){const d=c.trim();if(d){let m;try{const u=JSON.parse(d);m=u.id,we(this,te,zn).call(this,u)}catch(u){console.error("Unexpected error during message processing:",d,u),m&&we(this,te,Je).call(this,{jsonrpc:"2.0",id:m,error:{code:-32700,message:"Parse error"}})}}}}}finally{s.releaseLock()}},zn=async function(e){if("method"in e&&"id"in e){const t=await we(this,te,Dn).call(this,e.method,e.params);"error"in t&&console.error("Error handling request",e,t.error),await we(this,te,Je).call(this,{jsonrpc:"2.0",id:e.id,...t})}else if("method"in e){const t=await we(this,te,Wn).call(this,e.method,e.params);"error"in t&&console.error("Error handling notification",e,t.error)}else"id"in e?we(this,te,On).call(this,e):console.error("Invalid message",{message:e})},Dn=async function(e,t){try{return{result:await X(this,Le).call(this,e,t)??null}}catch(n){if(n instanceof ee)return n.toResult();if(n instanceof Cn)return ee.invalidParams(n.format()).toResult();let s;(n instanceof Error||typeof n=="object"&&n!=null&&"message"in n&&typeof n.message=="string")&&(s=n.message);try{return ee.internalError(s?JSON.parse(s):{}).toResult()}catch{return ee.internalError({details:s}).toResult()}}},Wn=async function(e,t){try{return await X(this,Ve).call(this,e,t),{result:null}}catch(n){if(n instanceof ee)return n.toResult();if(n instanceof Cn)return ee.invalidParams(n.format()).toResult();let s;(n instanceof Error||typeof n=="object"&&n!=null&&"message"in n&&typeof n.message=="string")&&(s=n.message);try{return ee.internalError(s?JSON.parse(s):{}).toResult()}catch{return ee.internalError({details:s}).toResult()}}},On=function(e){const t=X(this,Fe).get(e.id);t?("result"in e?t.resolve(e.result):"error"in e&&t.reject(e.error),X(this,Fe).delete(e.id)):console.error("Got response to unknown request",e.id)},Je=async function(e){const t=JSON.stringify(e)+`
3
- `;return Ae(this,qe,X(this,qe).then(async()=>{const n=X(this,Be).getWriter();try{await n.write(X(this,He).encode(t))}finally{n.releaseLock()}}).catch(n=>{console.error("ACP write error:",n)})),X(this,qe)};class ee extends Error{constructor(t,n,s){super(n);Q(this,"code");Q(this,"data");this.code=t,this.name="RequestError",this.data=s}static parseError(t){return new ee(-32700,"Parse error",t)}static invalidRequest(t){return new ee(-32600,"Invalid request",t)}static methodNotFound(t){return new ee(-32601,"Method not found",{method:t})}static invalidParams(t){return new ee(-32602,"Invalid params",t)}static internalError(t){return new ee(-32603,"Internal error",t)}static authRequired(t){return new ee(-32e3,"Authentication required",t)}toResult(){return{error:{code:this.code,message:this.message,data:this.data}}}toErrorResponse(){return{code:this.code,message:this.message,data:this.data}}}class oa{constructor(){Q(this,"promise");Q(this,"resolve");Q(this,"reject");this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class ia{constructor(e,t){Q(this,"agent");Q(this,"options");Q(this,"pendingPermissions",new Map);this.agent=e,this.options=t}async sessionUpdate(e){this.options.onSessionNotification(e)}async writeTextFile(e){if(this.options.writeTextFile)return this.options.writeTextFile(e);throw new Error("Write text file handler not implemented")}async readTextFile(e){if(this.options.readTextFile)return this.options.readTextFile(e);throw new Error("Read text file handler not implemented")}async requestPermission(e){const t=`${Date.now()}-${Math.random()}`,n=new oa;return this.pendingPermissions.set(t,n),this.options.onRequestPermission({...e,deferredId:t}),n.promise}resolvePermission(e,t){const n=this.pendingPermissions.get(e);n&&(this.pendingPermissions.delete(e),n.resolve(t))}rejectPermission(e,t){const n=this.pendingPermissions.get(e);n&&(this.pendingPermissions.delete(e),n.reject(t))}}class ra{constructor(e,t){Q(this,"agent");Q(this,"callbacks");this.agent=e,this.callbacks=t}extMethod(e,t){return this.agent.extMethod?this.agent.extMethod(e,t):Promise.resolve({})}extNotification(e,t){return this.agent.extNotification?this.agent.extNotification(e,t):Promise.resolve()}async setSessionMode(e){var t,n,s,i;return(n=(t=this.callbacks).on_setSessionMode_start)==null||n.call(t,e),(i=(s=this.agent).setSessionMode)==null?void 0:i.call(s,e).then(l=>{var r,c;return(c=(r=this.callbacks).on_setSessionMode_response)==null||c.call(r,l,e),l})}async initialize(e){var t,n;return(n=(t=this.callbacks).on_initialize_start)==null||n.call(t,e),this.agent.initialize(e).then(s=>{var i,l;return(l=(i=this.callbacks).on_initialize_response)==null||l.call(i,s,e),s})}async newSession(e){var t,n;return(n=(t=this.callbacks).on_newSession_start)==null||n.call(t,e),this.agent.newSession(e).then(s=>{var i,l;return(l=(i=this.callbacks).on_newSession_response)==null||l.call(i,s,e),s})}async loadSession(e){var t,n;if((n=(t=this.callbacks).on_loadSession_start)==null||n.call(t,e),this.agent.loadSession)return this.agent.loadSession(e).then(s=>{var i,l;return(l=(i=this.callbacks).on_loadSession_response)==null||l.call(i,s,e),s});throw new Error("Agent does not support loadSession capability")}async authenticate(e){var t,n;return(n=(t=this.callbacks).on_authenticate_start)==null||n.call(t,e),this.agent.authenticate(e).then(()=>{var s,i;(i=(s=this.callbacks).on_authenticate_response)==null||i.call(s,void 0,e)})}async prompt(e){var t,n;return(n=(t=this.callbacks).on_prompt_start)==null||n.call(t,e),this.agent.prompt(e).then(s=>{var i,l;return(l=(i=this.callbacks).on_prompt_response)==null||l.call(i,s,e),s})}async cancel(e){var t,n;return(n=(t=this.callbacks).on_cancel_start)==null||n.call(t,e),this.agent.cancel(e).then(()=>{var s,i;(i=(s=this.callbacks).on_cancel_response)==null||i.call(s,void 0,e)})}}const la=globalThis.ReadableStream,ca=globalThis.WritableStream;globalThis.ReadableStream!==void 0&&globalThis.WritableStream!==void 0||console.warn("Streams API not supported in this browser. Consider using a polyfill.");class da{constructor(e){Q(this,"managers",new Map);Q(this,"options");Q(this,"currentUrl",null);this.options=e}async connect(e){this.currentUrl=e;let t=this.managers.get(e);if(t){if(t.getConnectionState()==="connected"){const n=t.getStreams();if(n)return n}}else t=new ma({url:e,onConnectionStateChange:n=>this.options.onConnectionStateChange(n,e),onError:n=>this.options.onError(n,e),reconnectAttempts:this.options.reconnectAttempts,reconnectDelay:this.options.reconnectDelay}),this.managers.set(e,t);return await t.connect()}disconnect(e){if(e){const t=this.managers.get(e);t&&(t.disconnect(),this.managers.delete(e))}else{for(const[t,n]of this.managers.entries())n.disconnect(),this.managers.delete(t);this.currentUrl=null}}getCurrentUrl(){return this.currentUrl}getConnectionState(e){const t=e||this.currentUrl;if(!t)return"disconnected";const n=this.managers.get(t);return n?n.getConnectionState():"disconnected"}getActiveConnections(){return Array.from(this.managers.keys()).filter(e=>{var t;return((t=this.managers.get(e))==null?void 0:t.getConnectionState())==="connected"})}}class ma{constructor(e){Q(this,"ws",null);Q(this,"options");Q(this,"reconnectCount",0);Q(this,"reconnectTimer",null);Q(this,"readableStream",null);Q(this,"writableStream",null);this.options={reconnectAttempts:3,reconnectDelay:1e3,...e}}async connect(){this.updateConnectionState({status:"connecting",url:this.options.url});try{return this.ws=new WebSocket(this.options.url),new Promise((e,t)=>{this.ws?(this.ws.onopen=()=>{var n;this.reconnectCount=0,this.updateConnectionState({status:"connected",url:this.options.url}),this.ws&&(this.readableStream=(function(s){const i=new la({start(r){s.onmessage=c=>{if(c.data instanceof ArrayBuffer)r.enqueue(new Uint8Array(c.data));else if(c.data instanceof Uint8Array)r.enqueue(c.data);else{const d=new TextEncoder;r.enqueue(d.encode(`${c.data}
4
- `))}},s.onclose=()=>{r.close()},s.onerror=c=>{r.error(c)}},cancel(){s.close()}}),l=async function*(){const r=i.getReader();try{for(;;){const{value:c,done:d}=await r.read();if(d)break;yield c}}finally{r.releaseLock()}};return i.values=l,i[Symbol.asyncIterator]=l,i})(this.ws),this.writableStream=(n=this.ws,new ca({write(s){n.readyState===WebSocket.OPEN&&n.send(s)},close(){n.close()},abort(){n.close()}})),e({readable:this.readableStream,writable:this.writableStream}))},this.ws.onerror=n=>{const s=new Error("WebSocket connection error");this.options.onError(s),this.updateConnectionState({status:"error",error:s.message,url:this.options.url}),t(s)},this.ws.onclose=()=>{this.updateConnectionState({status:"disconnected",url:this.options.url}),this.attemptReconnect()}):t(new Error("WebSocket not initialized"))})}catch(e){const t=e instanceof Error?e:new Error(String(e));throw this.options.onError(t),this.updateConnectionState({status:"error",error:t.message,url:this.options.url}),t}}disconnect(){this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.ws&&(this.ws.close(),this.ws=null),this.readableStream=null,this.writableStream=null,this.updateConnectionState({status:"disconnected"})}attemptReconnect(){this.reconnectCount<(this.options.reconnectAttempts||3)&&(this.reconnectCount++,this.reconnectTimer=setTimeout(async()=>{try{await this.connect()}catch{}},this.options.reconnectDelay))}updateConnectionState(e){this.options.onConnectionStateChange(e)}getConnectionState(){if(!this.ws)return"disconnected";switch(this.ws.readyState){case WebSocket.CONNECTING:return"connecting";case WebSocket.OPEN:return"connected";case WebSocket.CLOSING:case WebSocket.CLOSED:return"disconnected";default:return"error"}}getStreams(){return this.readableStream&&this.writableStream?{readable:this.readableStream,writable:this.writableStream}:null}}const Vt=a=>{let e;const t=new Set,n=(r,c)=>{const d=typeof r=="function"?r(e):r;if(!Object.is(d,e)){const m=e;e=c??(typeof d!="object"||d===null)?d:Object.assign({},e,d),t.forEach(u=>u(e,m))}},s=()=>e,i={setState:n,getState:s,getInitialState:()=>l,subscribe:r=>(t.add(r),()=>t.delete(r))},l=e=a(n,s,i);return i},ua=a=>a,Bt=a=>{const e=(n=>n?Vt(n):Vt)(a),t=n=>(function(s,i=ua){const l=ze.useSyncExternalStore(s.subscribe,ze.useCallback(()=>i(s.getState()),[s,i]),ze.useCallback(()=>i(s.getInitialState()),[s,i]));return ze.useDebugValue(l),l})(e,n);return Object.assign(t,e),t},pa=(Ht=(a,e)=>({connections:{},activeConnectionUrl:null,connectionState:{status:"disconnected"},agentCapabilities:null,activeSessionId:null,notifications:{},sessionModes:{},setConnection:(t,n,s)=>{a(i=>{var l,r;return{connections:{...i.connections,[t]:{url:t,state:n,capabilities:s??((l=i.connections[t])==null?void 0:l.capabilities)??null}},...i.activeConnectionUrl===t&&{connectionState:n,agentCapabilities:s??((r=i.connections[t])==null?void 0:r.capabilities)??null}}})},setActiveConnection:t=>{a(n=>{const s=t?n.connections[t]:null;return{activeConnectionUrl:t,connectionState:(s==null?void 0:s.state)??{status:"disconnected"},agentCapabilities:(s==null?void 0:s.capabilities)??null}})},removeConnection:t=>{a(n=>{const s={...n.connections};delete s[t];const i=n.activeConnectionUrl===t?null:n.activeConnectionUrl,l=i?s[i]:null;return{connections:s,activeConnectionUrl:i,connectionState:(l==null?void 0:l.state)??{status:"disconnected"},agentCapabilities:(l==null?void 0:l.capabilities)??null}})},setConnectionState:t=>{a({connectionState:t});const{activeConnectionUrl:n}=e();n&&e().setConnection(n,t)},setAgentCapabilities:t=>{a({agentCapabilities:t});const{activeConnectionUrl:n}=e();n&&e().setConnection(n,e().connectionState,t)},setActiveSessionId:t=>{a({activeSessionId:t})},setActiveModeId:(t,n)=>{a(s=>{const i=s.sessionModes[t];return{sessionModes:{...s.sessionModes,[t]:{...i,currentModeId:n}}}})},setModeState:(t,n)=>{a(s=>({sessionModes:{...s.sessionModes,[t]:n}}))},addNotification:t=>{const n=e().notifications,s=e().activeSessionId;if(!s)return;const i={...t,id:`${Date.now()}-${Math.random()}`,timestamp:Date.now()},l=n[s]||[],r={...n,[s]:[...l,i]};a({notifications:r})},clearNotifications:t=>{if(t){const n={...e().notifications};delete n[t],a({notifications:n})}else a({notifications:{}})},getActiveNotifications:()=>{const{activeSessionId:t,notifications:n}=e();return t&&n[t]||[]},getActiveConnection:()=>{const{activeConnectionUrl:t,connections:n}=e();return t&&n[t]||null},getConnection:t=>{const{connections:n}=e();return n[t]||{url:t,state:{status:"disconnected"},capabilities:null}}}))?Bt(Ht):Bt;var Ht;const ha=typeof window<"u"?k.useLayoutEffect:k.useEffect;function Ce(a){const e=k.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return ha(()=>{e.current=a},[a]),k.useCallback((...t)=>{var n;return(n=e.current)==null?void 0:n.call(e,...t)},[e])}const Yt=["tool_call","tool_call_update"];function xa(a,e){return!!a&&(a.type==="session_notification"&&e.type==="session_notification"?!(!Yt.includes(a.data.update.sessionUpdate)||!Yt.includes(e.data.update.sessionUpdate))||a.data.update.sessionUpdate===e.data.update.sessionUpdate:a.type===e.type)}function fa(a){var t;const e=new Map;for(const n of a)e.has(n.toolCallId)||e.set(n.toolCallId,[]),(t=e.get(n.toolCallId))==null||t.push(n);return Array.from(e.values()).map(n=>{var i;const s=n.at(0);return(function(l,r){if(!l)throw new Error(r)})(!!(s!=null&&s.toolCallId),"Tool call ID is required"),{...s,toolCallId:s.toolCallId,status:(i=n.at(-1))==null?void 0:i.status,rawOutput:Object.assign({},...n.map(l=>l.rawOutput)),locations:n.flatMap(l=>l.locations||[]),content:n.flatMap(l=>l.content||[])}})}const ga=a=>{const e=T.c(14),{message:t}=a.data;if(t.includes("WebSocket"))return null;let n,s,i,l,r,c,d;return e[0]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx("div",{className:"flex-shrink-0",children:o.jsx(vt,{className:"h-5 w-5 text-[var(--red-11)]"})}),e[0]=n):n=e[0],e[1]===Symbol.for("react.memo_cache_sentinel")?(s=o.jsx("div",{className:"flex items-center gap-2 mb-2",children:o.jsx("h4",{className:"text-sm font-medium text-[var(--red-11)]",children:"Agent Error"})}),e[1]=s):s=e[1],e[2]!==t?(i=o.jsx("div",{className:"text-sm text-[var(--red-11)] leading-relaxed mb-3",children:t}),e[2]=t,e[3]=i):i=e[3],e[4]!==a.onRetry?(l=a.onRetry&&o.jsxs(se,{size:"xs",variant:"outline",onClick:a.onRetry,className:"text-[var(--red-11)] border-[var(--red-6)] hover:bg-[var(--red-3)]",children:[o.jsx(En,{className:"h-3 w-3 mr-1"}),"Retry"]}),e[4]=a.onRetry,e[5]=l):l=e[5],e[6]!==a.onDismiss?(r=a.onDismiss&&o.jsxs(se,{size:"xs",variant:"ghost",onClick:a.onDismiss,className:"text-[var(--red-10)] hover:bg-[var(--red-3)]",children:[o.jsx(In,{className:"h-3 w-3 mr-1"}),"Dismiss"]}),e[6]=a.onDismiss,e[7]=r):r=e[7],e[8]!==l||e[9]!==r?(c=o.jsxs("div",{className:"flex items-center gap-2",children:[l,r]}),e[8]=l,e[9]=r,e[10]=c):c=e[10],e[11]!==i||e[12]!==c?(d=o.jsx("div",{className:"border border-[var(--red-6)] bg-[var(--red-2)] rounded-lg p-4 my-2","data-block-type":"error",children:o.jsxs("div",{className:"flex items-start gap-3",children:[n,o.jsxs("div",{className:"flex-1 min-w-0",children:[s,i,c]})]})}),e[11]=i,e[12]=c,e[13]=d):d=e[13],d},ba=a=>{const e=T.c(33),{status:t}=a.data;if(a.isConnected)return null;let n;e[0]!==t?(n=(()=>{switch(t){case"connected":return{icon:o.jsx(ct,{className:"h-4 w-4"}),title:"Connected to Agent",message:"Successfully established connection with the AI agent",bgColor:"bg-[var(--blue-2)]",borderColor:"border-[var(--blue-6)]",textColor:"text-[var(--blue-11)]",iconColor:"text-[var(--blue-10)]"};case"disconnected":return{icon:o.jsx(We,{className:"h-4 w-4"}),title:"Disconnected from Agent",message:"Connection to the AI agent has been lost",bgColor:"bg-[var(--amber-2)]",borderColor:"border-[var(--amber-6)]",textColor:"text-[var(--amber-11)]",iconColor:"text-[var(--amber-10)]"};case"connecting":return{icon:o.jsx(ct,{className:"h-4 w-4 animate-pulse"}),title:"Connecting to Agent",message:"Establishing connection with the AI agent...",bgColor:"bg-[var(--gray-2)]",borderColor:"border-[var(--gray-6)]",textColor:"text-[var(--gray-11)]",iconColor:"text-[var(--gray-10)]"};case"error":return{icon:o.jsx(We,{className:"h-4 w-4"}),title:"Connection Error",message:"Failed to connect to the AI agent",bgColor:"bg-[var(--red-2)]",borderColor:"border-[var(--red-6)]",textColor:"text-[var(--red-11)]",iconColor:"text-[var(--red-10)]"};default:return{icon:o.jsx(We,{className:"h-4 w-4"}),title:"Connection Status Changed",message:`Agent connection status: ${t}`,bgColor:"bg-[var(--gray-2)]",borderColor:"border-[var(--gray-6)]",textColor:"text-[var(--gray-11)]",iconColor:"text-[var(--gray-10)]"}}})(),e[0]=t,e[1]=n):n=e[1];const s=n,i=t==="disconnected"||t==="error",l=`border ${s.borderColor} ${s.bgColor} rounded-lg p-3 my-2`,r=`flex-shrink-0 ${s.iconColor}`;let c;e[2]!==s.icon||e[3]!==r?(c=o.jsx("div",{className:r,children:s.icon}),e[2]=s.icon,e[3]=r,e[4]=c):c=e[4];const d=`text-sm font-medium ${s.textColor}`;let m,u,p;e[5]!==s.title||e[6]!==d?(m=o.jsx("h4",{className:d,children:s.title}),e[5]=s.title,e[6]=d,e[7]=m):m=e[7],e[8]!==a.timestamp?(u=a.timestamp&&o.jsx("span",{className:"text-xs text-muted-foreground",children:new Date(a.timestamp).toLocaleTimeString()}),e[8]=a.timestamp,e[9]=u):u=e[9],e[10]!==m||e[11]!==u?(p=o.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[m,u]}),e[10]=m,e[11]=u,e[12]=p):p=e[12];const _=`text-sm ${s.textColor} opacity-90 mb-2`;let x,f,g,j,N;return e[13]!==s.message||e[14]!==_?(x=o.jsx("div",{className:_,children:s.message}),e[13]=s.message,e[14]=_,e[15]=x):x=e[15],e[16]!==s.bgColor||e[17]!==s.borderColor||e[18]!==s.textColor||e[19]!==a.onRetry||e[20]!==i?(f=i&&a.onRetry&&o.jsxs(se,{size:"xs",variant:"outline",onClick:a.onRetry,className:`${s.textColor} ${s.borderColor} hover:${s.bgColor}`,children:[o.jsx(En,{className:"h-3 w-3 mr-1"}),"Retry Connection"]}),e[16]=s.bgColor,e[17]=s.borderColor,e[18]=s.textColor,e[19]=a.onRetry,e[20]=i,e[21]=f):f=e[21],e[22]!==f||e[23]!==p||e[24]!==x?(g=o.jsxs("div",{className:"flex-1 min-w-0",children:[p,x,f]}),e[22]=f,e[23]=p,e[24]=x,e[25]=g):g=e[25],e[26]!==g||e[27]!==c?(j=o.jsxs("div",{className:"flex items-start gap-3",children:[c,g]}),e[26]=g,e[27]=c,e[28]=j):j=e[28],e[29]!==t||e[30]!==l||e[31]!==j?(N=o.jsx("div",{className:l,"data-block-type":"connection-change","data-status":t,children:j}),e[29]=t,e[30]=l,e[31]=j,e[32]=N):N=e[32],N},ya=a=>{const e=T.c(7),t=a.startTimestamp/1e3,n=a.endTimestamp/1e3,s=`Thought for ${Math.round(n-t)||"1"}s`;let i,l,r;return e[0]!==a.data?(i=a.data.map(Aa),e[0]=a.data,e[1]=i):i=e[1],e[2]!==i?(l=o.jsx("div",{className:"flex flex-col gap-2 text-muted-foreground",children:o.jsx(Xe,{data:i})}),e[2]=i,e[3]=l):l=e[3],e[4]!==s||e[5]!==l?(r=o.jsx("div",{className:"text-xs text-muted-foreground",children:o.jsx(pt,{title:s,children:l})}),e[4]=s,e[5]=l,e[6]=r):r=e[6],r},va=a=>{const e=T.c(14);let t,n,s,i,l,r;if(e[0]!==a.data){const c=a.data.flatMap(Ra);s="rounded-lg border bg-background p-2 text-xs";const d=o.jsxs("span",{className:"font-medium text-muted-foreground",children:["To-dos"," ",o.jsx("span",{className:"font-normal text-muted-foreground",children:c.length})]});e[5]!==d?(i=o.jsx("div",{className:"flex items-center justify-between mb-2",children:d}),e[5]=d,e[6]=i):i=e[6],t="flex flex-col gap-1",n=c.map(Ua),e[0]=a.data,e[1]=t,e[2]=n,e[3]=s,e[4]=i}else t=e[1],n=e[2],s=e[3],i=e[4];return e[7]!==t||e[8]!==n?(l=o.jsx("ul",{className:t,children:n}),e[7]=t,e[8]=n,e[9]=l):l=e[9],e[10]!==s||e[11]!==i||e[12]!==l?(r=o.jsxs("div",{className:s,children:[i,l]}),e[10]=s,e[11]=i,e[12]=l,e[13]=r):r=e[13],r},_a=a=>{const e=T.c(4);let t,n;return e[0]!==a.data?(t=a.data.map(Ea),e[0]=a.data,e[1]=t):t=e[1],e[2]!==t?(n=o.jsx("div",{className:"flex flex-col gap-2 text-muted-foreground border p-2 bg-background rounded break-words",children:o.jsx(Xe,{data:t})}),e[2]=t,e[3]=n):n=e[3],n},wa=a=>{const e=T.c(4);let t,n;return e[0]!==a.data?(t=a.data.map(Pa),e[0]=a.data,e[1]=t):t=e[1],e[2]!==t?(n=o.jsx("div",{className:"flex flex-col gap-2",children:o.jsx(Xe,{data:t})}),e[2]=t,e[3]=n):n=e[3],n},Xe=a=>{const e=T.c(5),t=Fa;let n,s;if(e[0]!==a.data){let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=(l,r)=>o.jsx(ze.Fragment,{children:t(l)},`${l.type}-${r}`),e[2]=i):i=e[2],n=a.data.map(i),e[0]=a.data,e[1]=n}else n=e[1];return e[3]!==n?(s=o.jsx("div",{children:n}),e[3]=n,e[4]=s):s=e[4],s},Gt=a=>{const e=T.c(3),t=`data:${a.data.mimeType};base64,${a.data.data}`,n=a.data.uri??"";let s;return e[0]!==t||e[1]!==n?(s=o.jsx("img",{src:t,alt:n}),e[0]=t,e[1]=n,e[2]=s):s=e[2],s},Jt=a=>{const e=T.c(3),t=`data:${a.data.mimeType};base64,${a.data.data}`;let n,s;return e[0]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx("track",{kind:"captions"}),e[0]=n):n=e[0],e[1]!==t?(s=o.jsx("audio",{src:t,controls:!0,children:n}),e[1]=t,e[2]=s):s=e[2],s},ja=a=>{var t,n;const e=T.c(25);if("text"in a.data.resource){let s,i,l,r;return e[0]!==a.data.resource.mimeType?(s=a.data.resource.mimeType&&o.jsx(ut,{mimeType:a.data.resource.mimeType}),e[0]=a.data.resource.mimeType,e[1]=s):s=e[1],e[2]!==a.data.resource.uri||e[3]!==s?(i=o.jsx(yo,{children:o.jsxs("span",{className:"flex items-center gap-1",children:[s,a.data.resource.uri]})}),e[2]=a.data.resource.uri,e[3]=s,e[4]=i):i=e[4],e[5]!==a.data.resource.text?(l=o.jsx(vo,{className:"max-h-96 overflow-y-auto scrollbar-thin",children:o.jsx(Un,{content:a.data.resource.text})}),e[5]=a.data.resource.text,e[6]=l):l=e[6],e[7]!==i||e[8]!==l?(r=o.jsxs(_o,{children:[i,l]}),e[7]=i,e[8]=l,e[9]=r):r=e[9],r}if("blob"in a.data.resource){if((t=a.data.resource.mimeType)!=null&&t.startsWith("image/")){let m;return e[10]!==a.data.resource.blob||e[11]!==a.data.resource.mimeType?(m=o.jsx(Gt,{data:{type:"image",mimeType:a.data.resource.mimeType,data:a.data.resource.blob}}),e[10]=a.data.resource.blob,e[11]=a.data.resource.mimeType,e[12]=m):m=e[12],m}if((n=a.data.resource.mimeType)!=null&&n.startsWith("audio/")){let m;return e[13]!==a.data.resource.blob||e[14]!==a.data.resource.mimeType?(m=o.jsx(Jt,{data:{type:"audio",mimeType:a.data.resource.mimeType,data:a.data.resource.blob}}),e[13]=a.data.resource.blob,e[14]=a.data.resource.mimeType,e[15]=m):m=e[15],m}const s=a.data.resource.blob,i=a.data.resource.mimeType??"";let l;e[16]!==s||e[17]!==i?(l=wo(s,i),e[16]=s,e[17]=i,e[18]=l):l=e[18];const r=l;let c,d;return e[19]!==a.data.resource.mimeType?(c=a.data.resource.mimeType&&o.jsx(ut,{mimeType:a.data.resource.mimeType}),e[19]=a.data.resource.mimeType,e[20]=c):c=e[20],e[21]!==r||e[22]!==a.data.resource.uri||e[23]!==c?(d=o.jsxs("a",{href:r,className:"flex items-center gap-1",download:!0,children:[c,a.data.resource.uri]}),e[21]=r,e[22]=a.data.resource.uri,e[23]=c,e[24]=d):d=e[24],d}return Tn(a.data.resource),null},Na=a=>{const e=T.c(8);if(a.data.uri.startsWith("http")){let i;return e[0]!==a.data.name||e[1]!==a.data.uri?(i=o.jsx("a",{href:a.data.uri,target:"_blank",rel:"noopener noreferrer",className:"text-link hover:underline",children:a.data.name}),e[0]=a.data.name,e[1]=a.data.uri,e[2]=i):i=e[2],i}let t;e[3]!==a.data.mimeType?(t=a.data.mimeType&&o.jsx(ut,{mimeType:a.data.mimeType}),e[3]=a.data.mimeType,e[4]=t):t=e[4];const n=a.data.name||a.data.title||a.data.uri;let s;return e[5]!==t||e[6]!==n?(s=o.jsxs("span",{className:"flex items-center gap-1",children:[t,n]}),e[5]=t,e[6]=n,e[7]=s):s=e[7],s},ut=a=>{const e=T.c(6);if(a.mimeType.startsWith("image/")){let n;return e[0]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx(jo,{className:"h-2 w-2"}),e[0]=n):n=e[0],n}if(a.mimeType.startsWith("audio/")){let n;return e[1]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx(W,{className:"h-2 w-2"}),e[1]=n):n=e[1],n}if(a.mimeType.startsWith("video/")){let n;return e[2]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx(No,{className:"h-2 w-2"}),e[2]=n):n=e[2],n}if(a.mimeType.startsWith("text/")){let n;return e[3]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx(So,{className:"h-2 w-2"}),e[3]=n):n=e[3],n}if(a.mimeType.startsWith("application/")){let n;return e[4]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx(Co,{className:"h-2 w-2"}),e[4]=n):n=e[4],n}let t;return e[5]===Symbol.for("react.memo_cache_sentinel")?(t=o.jsx(Io,{className:"h-2 w-2"}),e[5]=t):t=e[5],t},Sa=a=>{const e=T.c(10);if(a.data.length===0)return null;const t=a.data[0].sessionUpdate;let n;e[0]!==t||e[1]!==a.endTimestamp||e[2]!==a.startTimestamp?(n=r=>{if((function(c){const d=c[0];return d.sessionUpdate==="tool_call"||d.sessionUpdate==="tool_call_update"})(r))return o.jsx(Ia,{data:r});if(r[0].sessionUpdate==="agent_thought_chunk")return o.jsx(ya,{startTimestamp:a.startTimestamp,endTimestamp:a.endTimestamp,data:r});if((function(c){return c[0].sessionUpdate==="user_message_chunk"})(r))return o.jsx(_a,{data:r});if((function(c){return c[0].sessionUpdate==="agent_message_chunk"})(r))return o.jsx(wa,{data:r});if((function(c){return c[0].sessionUpdate==="plan"})(r))return o.jsx(va,{data:r});if(t==="available_commands_update")return null;if(t==="current_mode_update"){const c=r.at(-1);return(c==null?void 0:c.sessionUpdate)!=="current_mode_update"?null:o.jsx(Ca,{data:c})}return o.jsx(pt,{title:r[0].sessionUpdate,children:o.jsx(kn,{data:r,format:"tree",className:"max-h-64"})})},e[0]=t,e[1]=a.endTimestamp,e[2]=a.startTimestamp,e[3]=n):n=e[3];const s=n;let i,l;return e[4]!==a.data||e[5]!==s?(i=s(a.data),e[4]=a.data,e[5]=s,e[6]=i):i=e[6],e[7]!==t||e[8]!==i?(l=o.jsx("div",{className:"flex flex-col text-sm gap-2","data-block-type":t,children:i}),e[7]=t,e[8]=i,e[9]=l):l=e[9],l},Ca=a=>{const e=T.c(2),{currentModeId:t}=a.data;let n;return e[0]!==t?(n=o.jsxs("div",{children:["Mode: ",t]}),e[0]=t,e[1]=n):n=e[1],n},Ia=a=>{const e=T.c(6);let t,n,s;return e[0]!==a.data?(t="flex flex-col text-muted-foreground",n=fa(a.data).map(qa),e[0]=a.data,e[1]=t,e[2]=n):(t=e[1],n=e[2]),e[3]!==t||e[4]!==n?(s=o.jsx("div",{className:t,children:n}),e[3]=t,e[4]=n,e[5]=s):s=e[5],s},ka=a=>{const e=T.c(4);let t,n;return e[0]!==a.data?(t=a.data.map($a),e[0]=a.data,e[1]=t):t=e[1],e[2]!==t?(n=o.jsx("div",{className:"flex flex-col gap-2 text-muted-foreground",children:t}),e[2]=t,e[3]=n):n=e[3],n};function Ta(a){var n;const e=a.title||bo.startCase(a.kind||"")||"Tool call",t=(n=a.locations)==null?void 0:n[0];return t&&!e.includes(t.path)?`${e}: ${t.path}`:e}const Ma=a=>{const e=T.c(6);if(a.data.length<=1)return null;let t,n,s;return e[0]!==a.data?(t="flex flex-col gap-2",n=a.data.map(za).join(`
5
- `),e[0]=a.data,e[1]=t,e[2]=n):(t=e[1],n=e[2]),e[3]!==t||e[4]!==n?(s=o.jsx("div",{className:t,children:n}),e[3]=t,e[4]=n,e[5]=s):s=e[5],s},Qt=a=>{const e=T.c(24),{content:t,locations:n,status:s,kind:i,rawInput:l}=a.data;let r;e[0]!==t?(r=t==null?void 0:t.filter(Da).map(Wa),e[0]=t,e[1]=r):r=e[1];const c=r;let d;e[2]!==t?(d=t==null?void 0:t.filter(Oa),e[2]=t,e[3]=d):d=e[3];const m=d,u=s==="failed",p=n&&n.length>0;if(!t&&!p&&l){let j;return e[4]!==l?(j=o.jsx("pre",{className:"bg-[var(--slate-2)] p-1 text-muted-foreground border border-[var(--slate-4)] rounded text-xs overflow-auto scrollbar-thin max-h-64",children:o.jsx(kn,{data:l,format:"tree"})}),e[4]=l,e[5]=j):j=e[5],j}if(t!=null&&t.length&&p){const j=i||"";let N,S,I;return e[6]!==j?(N=yt(j),e[6]=j,e[7]=N):N=e[7],e[8]!==n?(S=n==null?void 0:n.map(La).join(", "),e[8]=n,e[9]=S):S=e[9],e[10]!==N||e[11]!==S?(I=o.jsx("div",{className:"flex flex-col gap-2 pr-2",children:o.jsxs("span",{className:"text-xs text-muted-foreground",children:[N," ",S]})}),e[10]=N,e[11]=S,e[12]=I):I=e[12],I}let _,x,f,g;return e[13]!==n?(_=n&&o.jsx(Ma,{data:n}),e[13]=n,e[14]=_):_=e[14],e[15]!==c?(x=c&&o.jsx(Xe,{data:c}),e[15]=c,e[16]=x):x=e[16],e[17]!==m||e[18]!==u?(f=m&&!u&&o.jsx(ka,{data:m}),e[17]=m,e[18]=u,e[19]=f):f=e[19],e[20]!==_||e[21]!==x||e[22]!==f?(g=o.jsxs("div",{className:"flex flex-col gap-2 pr-2",children:[_,x,f]}),e[20]=_,e[21]=x,e[22]=f,e[23]=g):g=e[23],g};function Aa(a){return a.content}function Ra(a){return a.entries}function Ua(a,e){return o.jsxs("li",{className:`
1
+ var xo=Object.defineProperty;var Nn=P=>{throw TypeError(P)};var fo=(P,F,O)=>F in P?xo(P,F,{enumerable:!0,configurable:!0,writable:!0,value:O}):P[F]=O;var G=(P,F,O)=>fo(P,typeof F!="symbol"?F+"":F,O),bt=(P,F,O)=>F.has(P)||Nn("Cannot "+O);var J=(P,F,O)=>(bt(P,F,"read from private field"),O?O.call(P):F.get(P)),ve=(P,F,O)=>F.has(P)?Nn("Cannot add the same private member more than once"):F instanceof WeakSet?F.add(P):F.set(P,O),Te=(P,F,O,Ue)=>(bt(P,F,"write to private field"),Ue?Ue.call(P,O):F.set(P,O),O),we=(P,F,O)=>(bt(P,F,"access private method"),O);var Sn=(P,F,O,Ue)=>({set _(lt){Te(P,F,lt,O)},get _(){return J(P,F,Ue)}});import{c as Ae,d7 as b,d8 as h,fR as v,fS as y,fT as pe,fU as Y,fV as z,fW as w,da as _e,fX as Cn,d as De,r as k,a as A,fY as yt,j as o,a_ as se,bn as In,c7 as vt,fZ as kn,db as go,f_ as bo,T as ue,bK as Tn,am as yo,an as vo,al as wo,f0 as _o,f$ as jo,g0 as No,W as So,g1 as Co,dY as Io,_ as ko,dc as To,d2 as Ao,d4 as Mo,d5 as Ro,d6 as Uo,g2 as Eo,av as Po,cL as Fo,N as Do,K as An,g3 as qo,aB as it,g4 as wt,C as $o,aW as zo,cr as rt,ay as Mn,cO as ae,ek as _t,d_ as Wo,aG as Oo,d$ as Lo,fa as Bo,e2 as Vo,e1 as Yo,g5 as Ho,ba as jt,L as qe,g6 as Go,ax as Jo,g7 as Nt,a0 as St,bt as Qo,d3 as Ct,cR as Rn,dJ as Xo,a1 as Ko,dF as Zo,du as ei,dA as ti,dB as ni,bS as si,dC as ai,dD as oi,dE as ii,dv as ri,dr as li,dy as ci,dj as di,dk as mi,dw as ui,__tla as pi}from"./index-CelXfcd8.js";import{M as Un,F as hi,__tla as xi}from"./markdown-renderer-Dmzbb00W.js";import{R as En,k as fi,__tla as gi}from"./edit-page-C5TsEeSo.js";import{C as Pn}from"./links-Drv7cJgN.js";import{P as Fn}from"./empty-state-DW308mFO.js";import{a as bi}from"./state-Dz_3JyED.js";import{__tla as yi}from"./storage-Dr0CC44z.js";import"./index-BYVZlBF8.js";import"./index-_luCZMLM.js";import"./index-mkubqy9-.js";import"./index-BelfnXwL.js";import"./index-BneyUujp.js";import"./index-Csd6QrCV.js";import"./index-C02SqeRj.js";import"./index-M_pBKDSe.js";import"./index-C7dtgr9A.js";import"./index-CtPksxf0.js";import"./index-DONRrmA2.js";import"./index-z4krxQ4j.js";import"./index-CAQvMTzM.js";import"./apl-CXdQSnD-.js";import"./asciiarmor-D5V0T9Cu.js";import"./asn1-DWPaVWf6.js";import"./brainfuck-CtZaYBKt.js";import"./cobol-stawOqaz.js";import"./clike-BgBwzOhw.js";import"./clojure-DiuoqK-z.js";import"./css-ZjFoif2m.js";import"./cmake-DXn5xaP-.js";import"./coffeescript-BTDxI-eT.js";import"./commonlisp-vq6DHwts.js";import"./cypher-gJDei3ni.js";import"./python-DD-Q2bae.js";import"./crystal-CRzZ78HM.js";import"./d-BShv7fp-.js";import"./diff-UJJ5BM9S.js";import"./dtd-DI9Herc-.js";import"./dylan-DkEP81N9.js";import"./ecl-DPFc0Uaf.js";import"./eiffel-DR5c0IrL.js";import"./elm-DompmV0j.js";import"./erlang-BuqgqA5h.js";import"./factor-CFXhaUWb.js";import"./simple-mode-C3vEBAcb.js";import"./forth-POgR1ypr.js";import"./fortran-DL7KluxX.js";import"./mllike-3c2dg9RT.js";import"./gas-bV0CklSb.js";import"./gherkin-B6X1vGSW.js";import"./groovy-DnIzCrpZ.js";import"./haskell-CLQs6EAM.js";import"./haxe-D25e-2l-.js";import"./idl-pcmmZuaN.js";import"./javascript-BpzJj0-u.js";import"./jinja2-DhgKlfW7.js";import"./julia-DjdwvFuI.js";import"./livescript-HO6ttBFx.js";import"./lua-8DXOpKDz.js";import"./mirc-DkvFAiy5.js";import"./mathematica-IIbmv7SK.js";import"./modelica-DSrSSXCg.js";import"./mumps-zvxmGV4l.js";import"./mbox-z_N2Mo3d.js";import"./nsis-BvKfQ9lQ.js";import"./ntriples-BSwWqoLa.js";import"./octave-C4hdQ5Hf.js";import"./oz-qQq7irPq.js";import"./pascal-CafrKXZF.js";import"./perl-tdMlh9QA.js";import"./pig-CwGJVRC4.js";import"./powershell-D1ly3AHC.js";import"./properties-_nPj978X.js";import"./protobuf-B4y9do6W.js";import"./pug-BTvK5tSS.js";import"./puppet-Bc-yJKzi.js";import"./q-B0kTJ4cI.js";import"./r-BA4EbLKE.js";import"./rpm-DI_rRufH.js";import"./ruby-CR-u2WLS.js";import"./sas-Bqaci40L.js";import"./scheme-qjP0V5Ag.js";import"./shell-BLav31RL.js";import"./sieve-r025o_jW.js";import"./smalltalk-C7J3IyEP.js";import"./sparql-BRLJFz69.js";import"./stylus-Bdo_Aemu.js";import"./swift-B_XXVlXX.js";import"./verilog-B4LBqg_1.js";import"./tcl-B2fODqDH.js";import"./textile-BuVhTOzU.js";import"./toml-wcPdHu67.js";import"./troff-Ce85hlLp.js";import"./ttcn-BxnYHtq8.js";import"./ttcn-cfg-CKJxb-l2.js";import"./turtle-BkSuIpt-.js";import"./webidl-CGwyPRYs.js";import"./vb-BHgjm0DN.js";import"./vbscript-Dawdd5GZ.js";import"./velocity-BdD_26Jv.js";import"./vhdl-CWWH2SUo.js";import"./xquery-CVDBqZPY.js";import"./yacas-I8QjZlxf.js";import"./z80-D8p3gKXp.js";import"./mscgen-B2igx18G.js";import"./index-sbO9UaUU.js";import"./trash-C6Ko-g5q.js";import"./katex-LV4FpwlL.js";import"./between-horizontal-start-BmYToIaM.js";import"./_createAggregator-ZcHkHPNJ.js";import"./_baseEach--KDTwKbG.js";import{__tla as vi}from"./loro_wasm_bg-C1ks32Vm.js";let Dn,wi=Promise.all([(()=>{try{return pi}catch{}})(),(()=>{try{return xi}catch{}})(),(()=>{try{return gi}catch{}})(),(()=>{try{return yi}catch{}})(),(()=>{try{return vi}catch{}})()]).then(async()=>{var le,Ee,tt,We,Oe,Le,Pe,Be,te,qn,$n,zn,Wn,On,Je;const P=Ae("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),F=Ae("circle-stop",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]),O=Ae("file-audio-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2",key:"17k7jt"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"3",cy:"17",r:"1",key:"vo6nti"}],["path",{d:"M2 17v-3a4 4 0 0 1 8 0v3",key:"1ggdre"}],["circle",{cx:"9",cy:"17",r:"1",key:"bc1fq4"}]]),Ue=Ae("plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]]),lt=Ae("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),Ln=Ae("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]),$e=Ae("wifi-off",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),ct=Ae("wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]),Bn="authenticate",Vn="initialize",Yn="session/cancel",Hn="session/load",Gn="session/new",Jn="session/prompt",Qn="session/set_mode",Xn="fs/read_text_file",Kn="fs/write_text_file",Zn="session/request_permission",es="session/update",ts="terminal/create",ns="terminal/kill",ss="terminal/output",as="terminal/release",os="terminal/wait_for_exit",It=b({_meta:v(y()).optional(),content:h(),path:h(),sessionId:h()}),kt=b({_meta:v(y()).optional(),limit:pe().optional().nullable(),line:pe().optional().nullable(),path:h(),sessionId:h()}),Tt=b({_meta:v(y()).optional(),sessionId:h(),terminalId:h()}),At=b({_meta:v(y()).optional(),sessionId:h(),terminalId:h()}),Mt=b({_meta:v(y()).optional(),sessionId:h(),terminalId:h()}),Rt=b({_meta:v(y()).optional(),sessionId:h(),terminalId:h()}),is=v(y()),rs=z([w("assistant"),w("user")]),ls=b({_meta:v(y()).optional(),mimeType:h().optional().nullable(),text:h(),uri:h()}),cs=b({_meta:v(y()).optional(),blob:h(),mimeType:h().optional().nullable(),uri:h()}),Ut=z([w("read"),w("edit"),w("delete"),w("move"),w("search"),w("execute"),w("think"),w("fetch"),w("switch_mode"),w("other")]),Et=z([w("pending"),w("in_progress"),w("completed"),w("failed")]),ds=b({_meta:v(y()).optional()}),ms=b({_meta:v(y()).optional(),content:h()}),us=b({_meta:v(y()).optional(),outcome:z([b({outcome:w("cancelled")}),b({optionId:h(),outcome:w("selected")})])}),ps=b({_meta:v(y()).optional(),terminalId:h()}),hs=b({_meta:v(y()).optional()}),xs=b({_meta:v(y()).optional(),exitCode:pe().optional().nullable(),signal:h().optional().nullable()}),fs=b({_meta:v(y()).optional()}),gs=v(y()),bs=b({_meta:v(y()).optional(),sessionId:h()}),ys=v(y()),vs=b({_meta:v(y()).optional(),methodId:h()}),ws=b({_meta:v(y()).optional(),modeId:h(),sessionId:h()}),_s=v(y()),Pt=b({_meta:v(y()).optional(),name:h(),value:h()}),he=b({_meta:v(y()).optional(),audience:Y(rs).optional().nullable(),lastModified:h().optional().nullable(),priority:pe().optional().nullable()}),Ft=z([ls,cs]),js=b({_meta:v(y()).optional()}),Ns=b({meta:y().optional()}),Ss=b({_meta:v(y()).optional(),stopReason:z([w("end_turn"),w("max_tokens"),w("max_turn_requests"),w("refusal"),w("cancelled")])}),Cs=v(y()),Dt=h(),Is=v(y()),ks=b({hint:h()}),Ts=b({_meta:v(y()).optional(),kind:z([w("allow_once"),w("allow_always"),w("reject_once"),w("reject_always")]),name:h(),optionId:h()}),dt=z([b({content:z([b({_meta:v(y()).optional(),annotations:he.optional().nullable(),text:h(),type:w("text")}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),data:h(),mimeType:h(),type:w("image"),uri:h().optional().nullable()}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),data:h(),mimeType:h(),type:w("audio")}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),description:h().optional().nullable(),mimeType:h().optional().nullable(),name:h(),size:pe().optional().nullable(),title:h().optional().nullable(),type:w("resource_link"),uri:h()}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),resource:Ft,type:w("resource")})]),type:w("content")}),b({_meta:v(y()).optional(),newText:h(),oldText:h().optional().nullable(),path:h(),type:w("diff")}),b({terminalId:h(),type:w("terminal")})]),mt=b({_meta:v(y()).optional(),line:pe().optional().nullable(),path:h()}),qt=b({_meta:v(y()).optional(),name:h(),value:h()}),As=b({_meta:v(y()).optional(),exitCode:pe().optional().nullable(),signal:h().optional().nullable()}),Ms=b({_meta:v(y()).optional(),readTextFile:_e().optional(),writeTextFile:_e().optional()}),Rs=b({args:Y(h()),command:h(),env:Y(qt),name:h()}),$t=z([b({headers:Y(Pt),name:h(),type:w("http"),url:h()}),b({headers:Y(Pt),name:h(),type:w("sse"),url:h()}),Rs]),Qe=z([b({_meta:v(y()).optional(),annotations:he.optional().nullable(),text:h(),type:w("text")}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),data:h(),mimeType:h(),type:w("image"),uri:h().optional().nullable()}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),data:h(),mimeType:h(),type:w("audio")}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),description:h().optional().nullable(),mimeType:h().optional().nullable(),name:h(),size:pe().optional().nullable(),title:h().optional().nullable(),type:w("resource_link"),uri:h()}),b({_meta:v(y()).optional(),annotations:he.optional().nullable(),resource:Ft,type:w("resource")})]),Us=b({_meta:v(y()).optional(),description:h().optional().nullable(),id:h(),name:h()}),Es=b({_meta:v(y()).optional(),http:_e().optional(),sse:_e().optional()}),Ps=b({_meta:v(y()).optional(),audio:_e().optional(),embeddedContext:_e().optional(),image:_e().optional()}),Fs=b({_meta:v(y()).optional(),description:h().optional().nullable(),id:Dt,name:h()}),zt=b({_meta:v(y()).optional(),availableModes:Y(Fs),currentModeId:h()}),Ds=b({_meta:v(y()).optional(),content:h(),priority:z([w("high"),w("medium"),w("low")]),status:z([w("pending"),w("in_progress"),w("completed")])}),qs=ks,$s=z([bs,ys]),Wt=b({_meta:v(y()).optional(),args:Y(h()).optional(),command:h(),cwd:h().optional().nullable(),env:Y(qt).optional(),outputByteLimit:pe().optional().nullable(),sessionId:h()}),zs=b({_meta:v(y()).optional(),exitStatus:As.optional().nullable(),output:h(),truncated:_e()}),Ws=b({_meta:v(y()).optional(),cwd:h(),mcpServers:Y($t)}),Os=b({_meta:v(y()).optional(),cwd:h(),mcpServers:Y($t),sessionId:h()}),Ls=b({_meta:v(y()).optional(),prompt:Y(Qe),sessionId:h()}),Bs=b({_meta:v(y()).optional(),modes:zt.optional().nullable(),sessionId:h()}),Vs=b({_meta:v(y()).optional(),modes:zt.optional().nullable()}),Ys=b({_meta:v(y()).optional(),content:Y(dt).optional().nullable(),kind:Ut.optional().nullable(),locations:Y(mt).optional().nullable(),rawInput:v(y()).optional(),rawOutput:v(y()).optional(),status:Et.optional().nullable(),title:h().optional().nullable(),toolCallId:h()}),Hs=b({_meta:v(y()).optional(),fs:Ms.optional(),terminal:_e().optional()}),Gs=b({_meta:v(y()).optional(),loadSession:_e().optional(),mcpCapabilities:Es.optional(),promptCapabilities:Ps.optional()}),Js=b({_meta:v(y()).optional(),description:h(),input:qs.optional().nullable(),name:h()}),Qs=z([ds,ms,us,ps,zs,hs,xs,fs,gs]),Ot=b({_meta:v(y()).optional(),options:Y(Ts),sessionId:h(),toolCall:Ys}),Xs=b({_meta:v(y()).optional(),clientCapabilities:Hs.optional(),protocolVersion:pe()}),Ks=b({_meta:v(y()).optional(),agentCapabilities:Gs.optional(),authMethods:Y(Us).optional(),protocolVersion:pe()}),Lt=b({_meta:v(y()).optional(),sessionId:h(),update:z([b({content:Qe,sessionUpdate:w("user_message_chunk")}),b({content:Qe,sessionUpdate:w("agent_message_chunk")}),b({content:Qe,sessionUpdate:w("agent_thought_chunk")}),b({_meta:v(y()).optional(),content:Y(dt).optional(),kind:z([w("read"),w("edit"),w("delete"),w("move"),w("search"),w("execute"),w("think"),w("fetch"),w("switch_mode"),w("other")]).optional(),locations:Y(mt).optional(),rawInput:v(y()).optional(),rawOutput:v(y()).optional(),sessionUpdate:w("tool_call"),status:z([w("pending"),w("in_progress"),w("completed"),w("failed")]).optional(),title:h(),toolCallId:h()}),b({_meta:v(y()).optional(),content:Y(dt).optional().nullable(),kind:Ut.optional().nullable(),locations:Y(mt).optional().nullable(),rawInput:v(y()).optional(),rawOutput:v(y()).optional(),sessionUpdate:w("tool_call_update"),status:Et.optional().nullable(),title:h().optional().nullable(),toolCallId:h()}),b({_meta:v(y()).optional(),entries:Y(Ds),sessionUpdate:w("plan")}),b({availableCommands:Y(Js),sessionUpdate:w("available_commands_update")}),b({currentModeId:Dt,sessionUpdate:w("current_mode_update")})])}),Zs=z([It,kt,Ot,Wt,Tt,At,Mt,Rt,is]),ea=z([Xs,vs,Ws,Os,ws,Ls,_s]),ta=z([Ks,js,Bs,Vs,Ns,Ss,Cs]),na=z([Lt,Is]);z([Zs,Qs,$s,ea,ta,na]);class sa{constructor(e,t,n){ve(this,le);const s=e(this);Te(this,le,new aa(async(i,l)=>{var r,c,d,m,u;switch(i){case Kn:{const p=It.parse(l);return s.writeTextFile(p)}case Xn:{const p=kt.parse(l);return s.readTextFile(p)}case Zn:{const p=Ot.parse(l);return s.requestPermission(p)}case ts:{const p=Wt.parse(l);return(r=s.createTerminal)==null?void 0:r.call(s,p)}case ss:{const p=Tt.parse(l);return(c=s.terminalOutput)==null?void 0:c.call(s,p)}case as:{const p=At.parse(l);return await((d=s.releaseTerminal)==null?void 0:d.call(s,p))??{}}case os:{const p=Mt.parse(l);return(m=s.waitForTerminalExit)==null?void 0:m.call(s,p)}case ns:{const p=Rt.parse(l);return await((u=s.killTerminal)==null?void 0:u.call(s,p))??{}}default:if(i.startsWith("_")){const p=i.substring(1);if(!s.extMethod)throw Z.methodNotFound(i);return s.extMethod(p,l)}throw Z.methodNotFound(i)}},async(i,l)=>{if(i===es){const r=Lt.parse(l);return s.sessionUpdate(r)}if(i.startsWith("_")){const r=i.substring(1);return s.extNotification?s.extNotification(r,l):void 0}throw Z.methodNotFound(i)},t,n))}async initialize(e){return await J(this,le).sendRequest(Vn,e)}async newSession(e){return await J(this,le).sendRequest(Gn,e)}async loadSession(e){return await J(this,le).sendRequest(Hn,e)??{}}async setSessionMode(e){return await J(this,le).sendRequest(Qn,e)??{}}async authenticate(e){return await J(this,le).sendRequest(Bn,e)??{}}async prompt(e){return await J(this,le).sendRequest(Jn,e)}async cancel(e){return await J(this,le).sendNotification(Yn,e)}async extMethod(e,t){return await J(this,le).sendRequest(`_${e}`,t)}async extNotification(e,t){return await J(this,le).sendNotification(`_${e}`,t)}}le=new WeakMap;class aa{constructor(e,t,n,s){ve(this,te);ve(this,Ee,new Map);ve(this,tt,0);ve(this,We);ve(this,Oe);ve(this,Le);ve(this,Pe,Promise.resolve());ve(this,Be);Te(this,We,e),Te(this,Oe,t),Te(this,Le,n),Te(this,Be,new TextEncoder),we(this,te,qn).call(this,s)}async sendRequest(e,t){const n=Sn(this,tt)._++,s=new Promise((i,l)=>{J(this,Ee).set(n,{resolve:i,reject:l})});return await we(this,te,Je).call(this,{jsonrpc:"2.0",id:n,method:e,params:t}),s}async sendNotification(e,t){await we(this,te,Je).call(this,{jsonrpc:"2.0",method:e,params:t})}}Ee=new WeakMap,tt=new WeakMap,We=new WeakMap,Oe=new WeakMap,Le=new WeakMap,Pe=new WeakMap,Be=new WeakMap,te=new WeakSet,qn=async function(e){let t="";const n=new TextDecoder,s=e.getReader();try{for(;;){const{value:i,done:l}=await s.read();if(l)break;if(!i)continue;t+=n.decode(i,{stream:!0});const r=t.split(`
2
+ `);t=r.pop()||"";for(const c of r){const d=c.trim();if(d){let m;try{const u=JSON.parse(d);m=u.id,we(this,te,$n).call(this,u)}catch(u){console.error("Unexpected error during message processing:",d,u),m&&we(this,te,Je).call(this,{jsonrpc:"2.0",id:m,error:{code:-32700,message:"Parse error"}})}}}}}finally{s.releaseLock()}},$n=async function(e){if("method"in e&&"id"in e){const t=await we(this,te,zn).call(this,e.method,e.params);"error"in t&&console.error("Error handling request",e,t.error),await we(this,te,Je).call(this,{jsonrpc:"2.0",id:e.id,...t})}else if("method"in e){const t=await we(this,te,Wn).call(this,e.method,e.params);"error"in t&&console.error("Error handling notification",e,t.error)}else"id"in e?we(this,te,On).call(this,e):console.error("Invalid message",{message:e})},zn=async function(e,t){try{return{result:await J(this,We).call(this,e,t)??null}}catch(n){if(n instanceof Z)return n.toResult();if(n instanceof Cn)return Z.invalidParams(n.format()).toResult();let s;(n instanceof Error||typeof n=="object"&&n!=null&&"message"in n&&typeof n.message=="string")&&(s=n.message);try{return Z.internalError(s?JSON.parse(s):{}).toResult()}catch{return Z.internalError({details:s}).toResult()}}},Wn=async function(e,t){try{return await J(this,Oe).call(this,e,t),{result:null}}catch(n){if(n instanceof Z)return n.toResult();if(n instanceof Cn)return Z.invalidParams(n.format()).toResult();let s;(n instanceof Error||typeof n=="object"&&n!=null&&"message"in n&&typeof n.message=="string")&&(s=n.message);try{return Z.internalError(s?JSON.parse(s):{}).toResult()}catch{return Z.internalError({details:s}).toResult()}}},On=function(e){const t=J(this,Ee).get(e.id);t?("result"in e?t.resolve(e.result):"error"in e&&t.reject(e.error),J(this,Ee).delete(e.id)):console.error("Got response to unknown request",e.id)},Je=async function(e){const t=JSON.stringify(e)+`
3
+ `;return Te(this,Pe,J(this,Pe).then(async()=>{const n=J(this,Le).getWriter();try{await n.write(J(this,Be).encode(t))}finally{n.releaseLock()}}).catch(n=>{console.error("ACP write error:",n)})),J(this,Pe)};class Z extends Error{constructor(t,n,s){super(n);G(this,"code");G(this,"data");this.code=t,this.name="RequestError",this.data=s}static parseError(t){return new Z(-32700,"Parse error",t)}static invalidRequest(t){return new Z(-32600,"Invalid request",t)}static methodNotFound(t){return new Z(-32601,"Method not found",{method:t})}static invalidParams(t){return new Z(-32602,"Invalid params",t)}static internalError(t){return new Z(-32603,"Internal error",t)}static authRequired(t){return new Z(-32e3,"Authentication required",t)}toResult(){return{error:{code:this.code,message:this.message,data:this.data}}}toErrorResponse(){return{code:this.code,message:this.message,data:this.data}}}class oa{constructor(){G(this,"promise");G(this,"resolve");G(this,"reject");this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class ia{constructor(e,t){G(this,"agent");G(this,"options");G(this,"pendingPermissions",new Map);this.agent=e,this.options=t}async sessionUpdate(e){this.options.onSessionNotification(e)}async writeTextFile(e){if(this.options.writeTextFile)return this.options.writeTextFile(e);throw new Error("Write text file handler not implemented")}async readTextFile(e){if(this.options.readTextFile)return this.options.readTextFile(e);throw new Error("Read text file handler not implemented")}async requestPermission(e){const t=`${Date.now()}-${Math.random()}`,n=new oa;return this.pendingPermissions.set(t,n),this.options.onRequestPermission({...e,deferredId:t}),n.promise}resolvePermission(e,t){const n=this.pendingPermissions.get(e);n&&(this.pendingPermissions.delete(e),n.resolve(t))}rejectPermission(e,t){const n=this.pendingPermissions.get(e);n&&(this.pendingPermissions.delete(e),n.reject(t))}}class ra{constructor(e,t){G(this,"agent");G(this,"callbacks");this.agent=e,this.callbacks=t}extMethod(e,t){return this.agent.extMethod?this.agent.extMethod(e,t):Promise.resolve({})}extNotification(e,t){return this.agent.extNotification?this.agent.extNotification(e,t):Promise.resolve()}async setSessionMode(e){var t,n,s,i;return(n=(t=this.callbacks).on_setSessionMode_start)==null||n.call(t,e),(i=(s=this.agent).setSessionMode)==null?void 0:i.call(s,e).then(l=>{var r,c;return(c=(r=this.callbacks).on_setSessionMode_response)==null||c.call(r,l,e),l})}async initialize(e){var t,n;return(n=(t=this.callbacks).on_initialize_start)==null||n.call(t,e),this.agent.initialize(e).then(s=>{var i,l;return(l=(i=this.callbacks).on_initialize_response)==null||l.call(i,s,e),s})}async newSession(e){var t,n;return(n=(t=this.callbacks).on_newSession_start)==null||n.call(t,e),this.agent.newSession(e).then(s=>{var i,l;return(l=(i=this.callbacks).on_newSession_response)==null||l.call(i,s,e),s})}async loadSession(e){var t,n;if((n=(t=this.callbacks).on_loadSession_start)==null||n.call(t,e),this.agent.loadSession)return this.agent.loadSession(e).then(s=>{var i,l;return(l=(i=this.callbacks).on_loadSession_response)==null||l.call(i,s,e),s});throw new Error("Agent does not support loadSession capability")}async authenticate(e){var t,n;return(n=(t=this.callbacks).on_authenticate_start)==null||n.call(t,e),this.agent.authenticate(e).then(()=>{var s,i;(i=(s=this.callbacks).on_authenticate_response)==null||i.call(s,void 0,e)})}async prompt(e){var t,n;return(n=(t=this.callbacks).on_prompt_start)==null||n.call(t,e),this.agent.prompt(e).then(s=>{var i,l;return(l=(i=this.callbacks).on_prompt_response)==null||l.call(i,s,e),s})}async cancel(e){var t,n;return(n=(t=this.callbacks).on_cancel_start)==null||n.call(t,e),this.agent.cancel(e).then(()=>{var s,i;(i=(s=this.callbacks).on_cancel_response)==null||i.call(s,void 0,e)})}}const la=globalThis.ReadableStream,ca=globalThis.WritableStream;globalThis.ReadableStream!==void 0&&globalThis.WritableStream!==void 0||console.warn("Streams API not supported in this browser. Consider using a polyfill.");class da{constructor(e){G(this,"managers",new Map);G(this,"options");G(this,"currentUrl",null);this.options=e}async connect(e){this.currentUrl=e;let t=this.managers.get(e);if(t){if(t.getConnectionState()==="connected"){const n=t.getStreams();if(n)return n}}else t=new ma({url:e,onConnectionStateChange:n=>this.options.onConnectionStateChange(n,e),onError:n=>this.options.onError(n,e),reconnectAttempts:this.options.reconnectAttempts,reconnectDelay:this.options.reconnectDelay}),this.managers.set(e,t);return await t.connect()}disconnect(e){if(e){const t=this.managers.get(e);t&&(t.disconnect(),this.managers.delete(e))}else{for(const[t,n]of this.managers.entries())n.disconnect(),this.managers.delete(t);this.currentUrl=null}}getCurrentUrl(){return this.currentUrl}getConnectionState(e){const t=e||this.currentUrl;if(!t)return"disconnected";const n=this.managers.get(t);return n?n.getConnectionState():"disconnected"}getActiveConnections(){return Array.from(this.managers.keys()).filter(e=>{var t;return((t=this.managers.get(e))==null?void 0:t.getConnectionState())==="connected"})}}class ma{constructor(e){G(this,"ws",null);G(this,"options");G(this,"reconnectCount",0);G(this,"reconnectTimer",null);G(this,"readableStream",null);G(this,"writableStream",null);this.options={reconnectAttempts:3,reconnectDelay:1e3,...e}}async connect(){this.updateConnectionState({status:"connecting",url:this.options.url});try{return this.ws=new WebSocket(this.options.url),new Promise((e,t)=>{this.ws?(this.ws.onopen=()=>{var n;this.reconnectCount=0,this.updateConnectionState({status:"connected",url:this.options.url}),this.ws&&(this.readableStream=(function(s){const i=new la({start(r){s.onmessage=c=>{if(c.data instanceof ArrayBuffer)r.enqueue(new Uint8Array(c.data));else if(c.data instanceof Uint8Array)r.enqueue(c.data);else{const d=new TextEncoder;r.enqueue(d.encode(`${c.data}
4
+ `))}},s.onclose=()=>{r.close()},s.onerror=c=>{r.error(c)}},cancel(){s.close()}}),l=async function*(){const r=i.getReader();try{for(;;){const{value:c,done:d}=await r.read();if(d)break;yield c}}finally{r.releaseLock()}};return i.values=l,i[Symbol.asyncIterator]=l,i})(this.ws),this.writableStream=(n=this.ws,new ca({write(s){n.readyState===WebSocket.OPEN&&n.send(s)},close(){n.close()},abort(){n.close()}})),e({readable:this.readableStream,writable:this.writableStream}))},this.ws.onerror=n=>{const s=new Error("WebSocket connection error");this.options.onError(s),this.updateConnectionState({status:"error",error:s.message,url:this.options.url}),t(s)},this.ws.onclose=()=>{this.updateConnectionState({status:"disconnected",url:this.options.url}),this.attemptReconnect()}):t(new Error("WebSocket not initialized"))})}catch(e){const t=e instanceof Error?e:new Error(String(e));throw this.options.onError(t),this.updateConnectionState({status:"error",error:t.message,url:this.options.url}),t}}disconnect(){this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.ws&&(this.ws.close(),this.ws=null),this.readableStream=null,this.writableStream=null,this.updateConnectionState({status:"disconnected"})}attemptReconnect(){this.reconnectCount<(this.options.reconnectAttempts||3)&&(this.reconnectCount++,this.reconnectTimer=setTimeout(async()=>{try{await this.connect()}catch{}},this.options.reconnectDelay))}updateConnectionState(e){this.options.onConnectionStateChange(e)}getConnectionState(){if(!this.ws)return"disconnected";switch(this.ws.readyState){case WebSocket.CONNECTING:return"connecting";case WebSocket.OPEN:return"connected";case WebSocket.CLOSING:case WebSocket.CLOSED:return"disconnected";default:return"error"}}getStreams(){return this.readableStream&&this.writableStream?{readable:this.readableStream,writable:this.writableStream}:null}}const Bt=a=>{let e;const t=new Set,n=(r,c)=>{const d=typeof r=="function"?r(e):r;if(!Object.is(d,e)){const m=e;e=c??(typeof d!="object"||d===null)?d:Object.assign({},e,d),t.forEach(u=>u(e,m))}},s=()=>e,i={setState:n,getState:s,getInitialState:()=>l,subscribe:r=>(t.add(r),()=>t.delete(r))},l=e=a(n,s,i);return i},ua=a=>a,Vt=a=>{const e=(n=>n?Bt(n):Bt)(a),t=n=>(function(s,i=ua){const l=De.useSyncExternalStore(s.subscribe,De.useCallback(()=>i(s.getState()),[s,i]),De.useCallback(()=>i(s.getInitialState()),[s,i]));return De.useDebugValue(l),l})(e,n);return Object.assign(t,e),t},pa=(Yt=(a,e)=>({connections:{},activeConnectionUrl:null,connectionState:{status:"disconnected"},agentCapabilities:null,activeSessionId:null,notifications:{},sessionModes:{},setConnection:(t,n,s)=>{a(i=>{var l,r;return{connections:{...i.connections,[t]:{url:t,state:n,capabilities:s??((l=i.connections[t])==null?void 0:l.capabilities)??null}},...i.activeConnectionUrl===t&&{connectionState:n,agentCapabilities:s??((r=i.connections[t])==null?void 0:r.capabilities)??null}}})},setActiveConnection:t=>{a(n=>{const s=t?n.connections[t]:null;return{activeConnectionUrl:t,connectionState:(s==null?void 0:s.state)??{status:"disconnected"},agentCapabilities:(s==null?void 0:s.capabilities)??null}})},removeConnection:t=>{a(n=>{const s={...n.connections};delete s[t];const i=n.activeConnectionUrl===t?null:n.activeConnectionUrl,l=i?s[i]:null;return{connections:s,activeConnectionUrl:i,connectionState:(l==null?void 0:l.state)??{status:"disconnected"},agentCapabilities:(l==null?void 0:l.capabilities)??null}})},setConnectionState:t=>{a({connectionState:t});const{activeConnectionUrl:n}=e();n&&e().setConnection(n,t)},setAgentCapabilities:t=>{a({agentCapabilities:t});const{activeConnectionUrl:n}=e();n&&e().setConnection(n,e().connectionState,t)},setActiveSessionId:t=>{a({activeSessionId:t})},setActiveModeId:(t,n)=>{a(s=>{const i=s.sessionModes[t];return{sessionModes:{...s.sessionModes,[t]:{...i,currentModeId:n}}}})},setModeState:(t,n)=>{a(s=>({sessionModes:{...s.sessionModes,[t]:n}}))},addNotification:t=>{const n=e().notifications,s=e().activeSessionId;if(!s)return;const i={...t,id:`${Date.now()}-${Math.random()}`,timestamp:Date.now()},l=n[s]||[],r={...n,[s]:[...l,i]};a({notifications:r})},clearNotifications:t=>{if(t){const n={...e().notifications};delete n[t],a({notifications:n})}else a({notifications:{}})},getActiveNotifications:()=>{const{activeSessionId:t,notifications:n}=e();return t&&n[t]||[]},getActiveConnection:()=>{const{activeConnectionUrl:t,connections:n}=e();return t&&n[t]||null},getConnection:t=>{const{connections:n}=e();return n[t]||{url:t,state:{status:"disconnected"},capabilities:null}}}))?Vt(Yt):Vt;var Yt;const ha=typeof window<"u"?k.useLayoutEffect:k.useEffect;function Se(a){const e=k.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return ha(()=>{e.current=a},[a]),k.useCallback((...t)=>{var n;return(n=e.current)==null?void 0:n.call(e,...t)},[e])}const Ht=["tool_call","tool_call_update"];function xa(a,e){return!!a&&(a.type==="session_notification"&&e.type==="session_notification"?!(!Ht.includes(a.data.update.sessionUpdate)||!Ht.includes(e.data.update.sessionUpdate))||a.data.update.sessionUpdate===e.data.update.sessionUpdate:a.type===e.type)}function fa(a){var t;const e=new Map;for(const n of a)e.has(n.toolCallId)||e.set(n.toolCallId,[]),(t=e.get(n.toolCallId))==null||t.push(n);return Array.from(e.values()).map(n=>{var i;const s=n.at(0);return(function(l,r){if(!l)throw new Error(r)})(!!(s!=null&&s.toolCallId),"Tool call ID is required"),{...s,toolCallId:s.toolCallId,status:(i=n.at(-1))==null?void 0:i.status,rawOutput:Object.assign({},...n.map(l=>l.rawOutput)),locations:n.flatMap(l=>l.locations||[]),content:n.flatMap(l=>l.content||[])}})}const ga=a=>{const e=A.c(14),{message:t}=a.data;if(t.includes("WebSocket"))return null;let n,s,i,l,r,c,d;return e[0]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx("div",{className:"flex-shrink-0",children:o.jsx(vt,{className:"h-5 w-5 text-[var(--red-11)]"})}),e[0]=n):n=e[0],e[1]===Symbol.for("react.memo_cache_sentinel")?(s=o.jsx("div",{className:"flex items-center gap-2 mb-2",children:o.jsx("h4",{className:"text-sm font-medium text-[var(--red-11)]",children:"Agent Error"})}),e[1]=s):s=e[1],e[2]!==t?(i=o.jsx("div",{className:"text-sm text-[var(--red-11)] leading-relaxed mb-3",children:t}),e[2]=t,e[3]=i):i=e[3],e[4]!==a.onRetry?(l=a.onRetry&&o.jsxs(se,{size:"xs",variant:"outline",onClick:a.onRetry,className:"text-[var(--red-11)] border-[var(--red-6)] hover:bg-[var(--red-3)]",children:[o.jsx(En,{className:"h-3 w-3 mr-1"}),"Retry"]}),e[4]=a.onRetry,e[5]=l):l=e[5],e[6]!==a.onDismiss?(r=a.onDismiss&&o.jsxs(se,{size:"xs",variant:"ghost",onClick:a.onDismiss,className:"text-[var(--red-10)] hover:bg-[var(--red-3)]",children:[o.jsx(In,{className:"h-3 w-3 mr-1"}),"Dismiss"]}),e[6]=a.onDismiss,e[7]=r):r=e[7],e[8]!==l||e[9]!==r?(c=o.jsxs("div",{className:"flex items-center gap-2",children:[l,r]}),e[8]=l,e[9]=r,e[10]=c):c=e[10],e[11]!==i||e[12]!==c?(d=o.jsx("div",{className:"border border-[var(--red-6)] bg-[var(--red-2)] rounded-lg p-4 my-2","data-block-type":"error",children:o.jsxs("div",{className:"flex items-start gap-3",children:[n,o.jsxs("div",{className:"flex-1 min-w-0",children:[s,i,c]})]})}),e[11]=i,e[12]=c,e[13]=d):d=e[13],d},ba=a=>{const e=A.c(33),{status:t}=a.data;if(a.isConnected)return null;let n;e[0]!==t?(n=(()=>{switch(t){case"connected":return{icon:o.jsx(ct,{className:"h-4 w-4"}),title:"Connected to Agent",message:"Successfully established connection with the AI agent",bgColor:"bg-[var(--blue-2)]",borderColor:"border-[var(--blue-6)]",textColor:"text-[var(--blue-11)]",iconColor:"text-[var(--blue-10)]"};case"disconnected":return{icon:o.jsx($e,{className:"h-4 w-4"}),title:"Disconnected from Agent",message:"Connection to the AI agent has been lost",bgColor:"bg-[var(--amber-2)]",borderColor:"border-[var(--amber-6)]",textColor:"text-[var(--amber-11)]",iconColor:"text-[var(--amber-10)]"};case"connecting":return{icon:o.jsx(ct,{className:"h-4 w-4 animate-pulse"}),title:"Connecting to Agent",message:"Establishing connection with the AI agent...",bgColor:"bg-[var(--gray-2)]",borderColor:"border-[var(--gray-6)]",textColor:"text-[var(--gray-11)]",iconColor:"text-[var(--gray-10)]"};case"error":return{icon:o.jsx($e,{className:"h-4 w-4"}),title:"Connection Error",message:"Failed to connect to the AI agent",bgColor:"bg-[var(--red-2)]",borderColor:"border-[var(--red-6)]",textColor:"text-[var(--red-11)]",iconColor:"text-[var(--red-10)]"};default:return{icon:o.jsx($e,{className:"h-4 w-4"}),title:"Connection Status Changed",message:`Agent connection status: ${t}`,bgColor:"bg-[var(--gray-2)]",borderColor:"border-[var(--gray-6)]",textColor:"text-[var(--gray-11)]",iconColor:"text-[var(--gray-10)]"}}})(),e[0]=t,e[1]=n):n=e[1];const s=n,i=t==="disconnected"||t==="error",l=`border ${s.borderColor} ${s.bgColor} rounded-lg p-3 my-2`,r=`flex-shrink-0 ${s.iconColor}`;let c;e[2]!==s.icon||e[3]!==r?(c=o.jsx("div",{className:r,children:s.icon}),e[2]=s.icon,e[3]=r,e[4]=c):c=e[4];const d=`text-sm font-medium ${s.textColor}`;let m,u,p;e[5]!==s.title||e[6]!==d?(m=o.jsx("h4",{className:d,children:s.title}),e[5]=s.title,e[6]=d,e[7]=m):m=e[7],e[8]!==a.timestamp?(u=a.timestamp&&o.jsx("span",{className:"text-xs text-muted-foreground",children:new Date(a.timestamp).toLocaleTimeString()}),e[8]=a.timestamp,e[9]=u):u=e[9],e[10]!==m||e[11]!==u?(p=o.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[m,u]}),e[10]=m,e[11]=u,e[12]=p):p=e[12];const _=`text-sm ${s.textColor} opacity-90 mb-2`;let f,x,g,j,N;return e[13]!==s.message||e[14]!==_?(f=o.jsx("div",{className:_,children:s.message}),e[13]=s.message,e[14]=_,e[15]=f):f=e[15],e[16]!==s.bgColor||e[17]!==s.borderColor||e[18]!==s.textColor||e[19]!==a.onRetry||e[20]!==i?(x=i&&a.onRetry&&o.jsxs(se,{size:"xs",variant:"outline",onClick:a.onRetry,className:`${s.textColor} ${s.borderColor} hover:${s.bgColor}`,children:[o.jsx(En,{className:"h-3 w-3 mr-1"}),"Retry Connection"]}),e[16]=s.bgColor,e[17]=s.borderColor,e[18]=s.textColor,e[19]=a.onRetry,e[20]=i,e[21]=x):x=e[21],e[22]!==x||e[23]!==p||e[24]!==f?(g=o.jsxs("div",{className:"flex-1 min-w-0",children:[p,f,x]}),e[22]=x,e[23]=p,e[24]=f,e[25]=g):g=e[25],e[26]!==g||e[27]!==c?(j=o.jsxs("div",{className:"flex items-start gap-3",children:[c,g]}),e[26]=g,e[27]=c,e[28]=j):j=e[28],e[29]!==t||e[30]!==l||e[31]!==j?(N=o.jsx("div",{className:l,"data-block-type":"connection-change","data-status":t,children:j}),e[29]=t,e[30]=l,e[31]=j,e[32]=N):N=e[32],N},ya=a=>{const e=A.c(7),t=a.startTimestamp/1e3,n=a.endTimestamp/1e3,s=`Thought for ${Math.round(n-t)||"1"}s`;let i,l,r;return e[0]!==a.data?(i=a.data.map(Ma),e[0]=a.data,e[1]=i):i=e[1],e[2]!==i?(l=o.jsx("div",{className:"flex flex-col gap-2 text-muted-foreground",children:o.jsx(Xe,{data:i})}),e[2]=i,e[3]=l):l=e[3],e[4]!==s||e[5]!==l?(r=o.jsx("div",{className:"text-xs text-muted-foreground",children:o.jsx(pt,{title:s,children:l})}),e[4]=s,e[5]=l,e[6]=r):r=e[6],r},va=a=>{const e=A.c(14);let t,n,s,i,l,r;if(e[0]!==a.data){const c=a.data.flatMap(Ra);s="rounded-lg border bg-background p-2 text-xs";const d=o.jsxs("span",{className:"font-medium text-muted-foreground",children:["To-dos"," ",o.jsx("span",{className:"font-normal text-muted-foreground",children:c.length})]});e[5]!==d?(i=o.jsx("div",{className:"flex items-center justify-between mb-2",children:d}),e[5]=d,e[6]=i):i=e[6],t="flex flex-col gap-1",n=c.map(Ua),e[0]=a.data,e[1]=t,e[2]=n,e[3]=s,e[4]=i}else t=e[1],n=e[2],s=e[3],i=e[4];return e[7]!==t||e[8]!==n?(l=o.jsx("ul",{className:t,children:n}),e[7]=t,e[8]=n,e[9]=l):l=e[9],e[10]!==s||e[11]!==i||e[12]!==l?(r=o.jsxs("div",{className:s,children:[i,l]}),e[10]=s,e[11]=i,e[12]=l,e[13]=r):r=e[13],r},wa=a=>{const e=A.c(4);let t,n;return e[0]!==a.data?(t=a.data.map(Ea),e[0]=a.data,e[1]=t):t=e[1],e[2]!==t?(n=o.jsx("div",{className:"flex flex-col gap-2 text-muted-foreground border p-2 bg-background rounded break-words",children:o.jsx(Xe,{data:t})}),e[2]=t,e[3]=n):n=e[3],n},_a=a=>{const e=A.c(4);let t,n;return e[0]!==a.data?(t=a.data.map(Pa),e[0]=a.data,e[1]=t):t=e[1],e[2]!==t?(n=o.jsx("div",{className:"flex flex-col gap-2",children:o.jsx(Xe,{data:t})}),e[2]=t,e[3]=n):n=e[3],n},Xe=a=>{const e=A.c(5),t=Fa;let n,s;if(e[0]!==a.data){let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=(l,r)=>o.jsx(De.Fragment,{children:t(l)},`${l.type}-${r}`),e[2]=i):i=e[2],n=a.data.map(i),e[0]=a.data,e[1]=n}else n=e[1];return e[3]!==n?(s=o.jsx("div",{children:n}),e[3]=n,e[4]=s):s=e[4],s},Gt=a=>{const e=A.c(3),t=`data:${a.data.mimeType};base64,${a.data.data}`,n=a.data.uri??"";let s;return e[0]!==t||e[1]!==n?(s=o.jsx("img",{src:t,alt:n}),e[0]=t,e[1]=n,e[2]=s):s=e[2],s},Jt=a=>{const e=A.c(3),t=`data:${a.data.mimeType};base64,${a.data.data}`;let n,s;return e[0]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx("track",{kind:"captions"}),e[0]=n):n=e[0],e[1]!==t?(s=o.jsx("audio",{src:t,controls:!0,children:n}),e[1]=t,e[2]=s):s=e[2],s},ja=a=>{var t,n;const e=A.c(25);if("text"in a.data.resource){let s,i,l,r;return e[0]!==a.data.resource.mimeType?(s=a.data.resource.mimeType&&o.jsx(ut,{mimeType:a.data.resource.mimeType}),e[0]=a.data.resource.mimeType,e[1]=s):s=e[1],e[2]!==a.data.resource.uri||e[3]!==s?(i=o.jsx(yo,{children:o.jsxs("span",{className:"flex items-center gap-1",children:[s,a.data.resource.uri]})}),e[2]=a.data.resource.uri,e[3]=s,e[4]=i):i=e[4],e[5]!==a.data.resource.text?(l=o.jsx(vo,{className:"max-h-96 overflow-y-auto scrollbar-thin",children:o.jsx(Un,{content:a.data.resource.text})}),e[5]=a.data.resource.text,e[6]=l):l=e[6],e[7]!==i||e[8]!==l?(r=o.jsxs(wo,{children:[i,l]}),e[7]=i,e[8]=l,e[9]=r):r=e[9],r}if("blob"in a.data.resource){if((t=a.data.resource.mimeType)!=null&&t.startsWith("image/")){let m;return e[10]!==a.data.resource.blob||e[11]!==a.data.resource.mimeType?(m=o.jsx(Gt,{data:{type:"image",mimeType:a.data.resource.mimeType,data:a.data.resource.blob}}),e[10]=a.data.resource.blob,e[11]=a.data.resource.mimeType,e[12]=m):m=e[12],m}if((n=a.data.resource.mimeType)!=null&&n.startsWith("audio/")){let m;return e[13]!==a.data.resource.blob||e[14]!==a.data.resource.mimeType?(m=o.jsx(Jt,{data:{type:"audio",mimeType:a.data.resource.mimeType,data:a.data.resource.blob}}),e[13]=a.data.resource.blob,e[14]=a.data.resource.mimeType,e[15]=m):m=e[15],m}const s=a.data.resource.blob,i=a.data.resource.mimeType??"";let l;e[16]!==s||e[17]!==i?(l=_o(s,i),e[16]=s,e[17]=i,e[18]=l):l=e[18];const r=l;let c,d;return e[19]!==a.data.resource.mimeType?(c=a.data.resource.mimeType&&o.jsx(ut,{mimeType:a.data.resource.mimeType}),e[19]=a.data.resource.mimeType,e[20]=c):c=e[20],e[21]!==r||e[22]!==a.data.resource.uri||e[23]!==c?(d=o.jsxs("a",{href:r,className:"flex items-center gap-1",download:!0,children:[c,a.data.resource.uri]}),e[21]=r,e[22]=a.data.resource.uri,e[23]=c,e[24]=d):d=e[24],d}return Tn(a.data.resource),null},Na=a=>{const e=A.c(8);if(a.data.uri.startsWith("http")){let i;return e[0]!==a.data.name||e[1]!==a.data.uri?(i=o.jsx("a",{href:a.data.uri,target:"_blank",rel:"noopener noreferrer",className:"text-link hover:underline",children:a.data.name}),e[0]=a.data.name,e[1]=a.data.uri,e[2]=i):i=e[2],i}let t;e[3]!==a.data.mimeType?(t=a.data.mimeType&&o.jsx(ut,{mimeType:a.data.mimeType}),e[3]=a.data.mimeType,e[4]=t):t=e[4];const n=a.data.name||a.data.title||a.data.uri;let s;return e[5]!==t||e[6]!==n?(s=o.jsxs("span",{className:"flex items-center gap-1",children:[t,n]}),e[5]=t,e[6]=n,e[7]=s):s=e[7],s},ut=a=>{const e=A.c(6);if(a.mimeType.startsWith("image/")){let n;return e[0]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx(jo,{className:"h-2 w-2"}),e[0]=n):n=e[0],n}if(a.mimeType.startsWith("audio/")){let n;return e[1]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx(O,{className:"h-2 w-2"}),e[1]=n):n=e[1],n}if(a.mimeType.startsWith("video/")){let n;return e[2]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx(No,{className:"h-2 w-2"}),e[2]=n):n=e[2],n}if(a.mimeType.startsWith("text/")){let n;return e[3]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx(So,{className:"h-2 w-2"}),e[3]=n):n=e[3],n}if(a.mimeType.startsWith("application/")){let n;return e[4]===Symbol.for("react.memo_cache_sentinel")?(n=o.jsx(Co,{className:"h-2 w-2"}),e[4]=n):n=e[4],n}let t;return e[5]===Symbol.for("react.memo_cache_sentinel")?(t=o.jsx(Io,{className:"h-2 w-2"}),e[5]=t):t=e[5],t},Sa=a=>{const e=A.c(10);if(a.data.length===0)return null;const t=a.data[0].sessionUpdate;let n;e[0]!==t||e[1]!==a.endTimestamp||e[2]!==a.startTimestamp?(n=r=>{if((function(c){const d=c[0];return d.sessionUpdate==="tool_call"||d.sessionUpdate==="tool_call_update"})(r))return o.jsx(Ia,{data:r});if(r[0].sessionUpdate==="agent_thought_chunk")return o.jsx(ya,{startTimestamp:a.startTimestamp,endTimestamp:a.endTimestamp,data:r});if((function(c){return c[0].sessionUpdate==="user_message_chunk"})(r))return o.jsx(wa,{data:r});if((function(c){return c[0].sessionUpdate==="agent_message_chunk"})(r))return o.jsx(_a,{data:r});if((function(c){return c[0].sessionUpdate==="plan"})(r))return o.jsx(va,{data:r});if(t==="available_commands_update")return null;if(t==="current_mode_update"){const c=r.at(-1);return(c==null?void 0:c.sessionUpdate)==="current_mode_update"?o.jsx(Ca,{data:c}):null}return o.jsx(pt,{title:r[0].sessionUpdate,children:o.jsx(kn,{data:r,format:"tree",className:"max-h-64"})})},e[0]=t,e[1]=a.endTimestamp,e[2]=a.startTimestamp,e[3]=n):n=e[3];const s=n;let i,l;return e[4]!==a.data||e[5]!==s?(i=s(a.data),e[4]=a.data,e[5]=s,e[6]=i):i=e[6],e[7]!==t||e[8]!==i?(l=o.jsx("div",{className:"flex flex-col text-sm gap-2","data-block-type":t,children:i}),e[7]=t,e[8]=i,e[9]=l):l=e[9],l},Ca=a=>{const e=A.c(2),{currentModeId:t}=a.data;let n;return e[0]!==t?(n=o.jsxs("div",{children:["Mode: ",t]}),e[0]=t,e[1]=n):n=e[1],n},Ia=a=>{const e=A.c(6);let t,n,s;return e[0]!==a.data?(t="flex flex-col text-muted-foreground",n=fa(a.data).map(Da),e[0]=a.data,e[1]=t,e[2]=n):(t=e[1],n=e[2]),e[3]!==t||e[4]!==n?(s=o.jsx("div",{className:t,children:n}),e[3]=t,e[4]=n,e[5]=s):s=e[5],s},ka=a=>{const e=A.c(4);let t,n;return e[0]!==a.data?(t=a.data.map(qa),e[0]=a.data,e[1]=t):t=e[1],e[2]!==t?(n=o.jsx("div",{className:"flex flex-col gap-2 text-muted-foreground",children:t}),e[2]=t,e[3]=n):n=e[3],n};function Ta(a){var n;const e=a.title||bo.startCase(a.kind||"")||"Tool call",t=(n=a.locations)==null?void 0:n[0];return t&&!e.includes(t.path)?`${e}: ${t.path}`:e}const Aa=a=>{const e=A.c(6);if(a.data.length<=1)return null;let t,n,s;return e[0]!==a.data?(t="flex flex-col gap-2",n=a.data.map($a).join(`
5
+ `),e[0]=a.data,e[1]=t,e[2]=n):(t=e[1],n=e[2]),e[3]!==t||e[4]!==n?(s=o.jsx("div",{className:t,children:n}),e[3]=t,e[4]=n,e[5]=s):s=e[5],s},Qt=a=>{const e=A.c(24),{content:t,locations:n,status:s,kind:i,rawInput:l}=a.data;let r;e[0]!==t?(r=t==null?void 0:t.filter(za).map(Wa),e[0]=t,e[1]=r):r=e[1];const c=r;let d;e[2]!==t?(d=t==null?void 0:t.filter(Oa),e[2]=t,e[3]=d):d=e[3];const m=d,u=s==="failed",p=n&&n.length>0;if(!t&&!p&&l){let S;return e[4]!==l?(S=o.jsx("pre",{className:"bg-[var(--slate-2)] p-1 text-muted-foreground border border-[var(--slate-4)] rounded text-xs overflow-auto scrollbar-thin max-h-64",children:o.jsx(kn,{data:l,format:"tree"})}),e[4]=l,e[5]=S):S=e[5],S}const _=!c||c.length===0,f=!m||m.length===0;if(_&&f&&p){const S=i||"";let I,T,U;return e[6]!==S?(I=yt(S),e[6]=S,e[7]=I):I=e[7],e[8]!==n?(T=n==null?void 0:n.map(La).join(", "),e[8]=n,e[9]=T):T=e[9],e[10]!==I||e[11]!==T?(U=o.jsx("div",{className:"flex flex-col gap-2 pr-2",children:o.jsxs("span",{className:"text-xs text-muted-foreground",children:[I," ",T]})}),e[10]=I,e[11]=T,e[12]=U):U=e[12],U}let x,g,j,N;return e[13]!==n?(x=n&&o.jsx(Aa,{data:n}),e[13]=n,e[14]=x):x=e[14],e[15]!==c?(g=c&&o.jsx(Xe,{data:c}),e[15]=c,e[16]=g):g=e[16],e[17]!==m||e[18]!==u?(j=m&&!u&&o.jsx(ka,{data:m}),e[17]=m,e[18]=u,e[19]=j):j=e[19],e[20]!==x||e[21]!==g||e[22]!==j?(N=o.jsxs("div",{className:"flex flex-col gap-2 pr-2",children:[x,g,j]}),e[20]=x,e[21]=g,e[22]=j,e[23]=N):N=e[23],N};function Ma(a){return a.content}function Ra(a){return a.entries}function Ua(a,e){return o.jsxs("li",{className:`
6
6
  flex items-center gap-2 px-2 py-1 rounded
7
- `,children:[o.jsx("input",{type:"checkbox",checked:a.status==="completed",readOnly:!0,className:"accent-primary h-4 w-4 rounded border border-muted-foreground/30",tabIndex:-1}),o.jsx("span",{className:me("text-xs",a.status==="completed"&&"line-through text-muted-foreground"),children:a.content})]},`${a.status}-${e}`)}function Ea(a){return a.content}function Pa(a){return a.content}function Fa(a){return a.type==="text"?o.jsx(Un,{content:a.text}):a.type==="image"?o.jsx(Gt,{data:a}):a.type==="audio"?o.jsx(Jt,{data:a}):a.type==="resource"?o.jsx(ja,{data:a}):a.type==="resource_link"?o.jsx(Na,{data:a}):(Tn(a),null)}function qa(a){return o.jsx(pt,{status:a.status==="completed"?"success":a.status==="failed"?"error":a.status==="in_progress"||a.status==="pending"?"loading":void 0,title:o.jsx("span",{"data-tool-data":JSON.stringify(a),children:(e=Ta(a),e.startsWith("`")&&e.endsWith("`")?o.jsx("i",{children:e.slice(1,-1)}):e)}),defaultIcon:o.jsx(go,{className:"h-3 w-3"}),children:o.jsx(Qt,{data:a})},a.toolCallId);var e}function $a(a){return o.jsxs("div",{className:"border rounded-md overflow-hidden bg-[var(--gray-2)] max-h-64 overflow-y-auto scrollbar-thin",children:[o.jsx("div",{className:"px-2 py-1 bg-[var(--gray-2)] border-b text-xs font-medium text-[var(--gray-11)]",children:a.path}),o.jsxs("div",{className:"font-mono text-xs",children:[a.oldText&&o.jsx("div",{className:"px-3 py-1 border-b bg-[var(--red-2)] border-b-[var(--red-6)]",children:o.jsxs("div",{className:"flex",children:[o.jsx("span",{className:"text-[var(--red-11)] select-none mr-2",children:"-"}),o.jsx("pre",{className:"text-[var(--red-11)] px-1 rounded whitespace-pre-wrap break-words flex-1 line-through opacity-80",children:a.oldText})]})}),a.newText&&o.jsx("div",{className:"px-3 py-1 bg-[var(--grass-2)] border-b-[var(--grass-6)]",children:o.jsxs("div",{className:"flex",children:[o.jsx("span",{className:"text-[var(--grass-11)] select-none mr-2",children:"+"}),o.jsx("pre",{className:"text-[var(--grass-11)] px-1 rounded whitespace-pre-wrap break-words flex-1 italic opacity-90",children:a.newText})]})})]})]},a.path)}function za(a){return a.line?`${a.path}:${a.line}`:a.path}function Da(a){return a.type==="content"}function Wa(a){return a.content}function Oa(a){return a.type==="diff"}function La(a){return a.path}const pt=a=>{const e=T.c(31),{title:t,children:n,status:s,index:i,defaultIcon:l}=a,r=i===void 0?0:i;let c;e[0]!==l||e[1]!==s?(c=()=>{switch(s){case"loading":return o.jsx(To,{className:"h-3 w-3 animate-spin"});case"error":return o.jsx(vt,{className:"h-3 w-3 text-destructive"});case"success":return o.jsx(Pn,{className:"h-3 w-3 text-[var(--blue-9)]"});default:return l}},e[0]=l,e[1]=s,e[2]=c):c=e[2];const d=c,m=`tool-${r}`,u=s==="error"&&"text-destructive/80",p=s==="success"&&"text-[var(--blue-8)]";let _,x,f,g,j,N,S,I,R,U;return e[3]!==u||e[4]!==p?(_=me("py-1 text-xs border-border shadow-none! ring-0! bg-muted hover:bg-muted/30 px-2 gap-1 rounded-sm [&[data-state=open]>svg]:rotate-180",u,p),e[3]=u,e[4]=p,e[5]=_):_=e[5],e[6]!==d?(x=d(),e[6]=d,e[7]=x):x=e[7],e[8]!==t?(f=o.jsx("code",{className:"font-mono text-xs",children:t}),e[8]=t,e[9]=f):f=e[9],e[10]!==x||e[11]!==f?(g=o.jsxs("span",{className:"flex items-center gap-1",children:[x,f]}),e[10]=x,e[11]=f,e[12]=g):g=e[12],e[13]!==_||e[14]!==g?(j=o.jsx(Mo,{className:_,children:g}),e[13]=_,e[14]=g,e[15]=j):j=e[15],e[16]!==n||e[17]!==s?(N=s!=="error"&&o.jsx("div",{className:"text-xs font-medium text-muted-foreground mb-1",children:n}),e[16]=n,e[17]=s,e[18]=N):N=e[18],e[19]!==n||e[20]!==s?(S=s==="error"&&o.jsx("div",{className:"bg-destructive/10 border border-destructive/20 rounded-md p-3 text-xs text-destructive",children:n}),e[19]=n,e[20]=s,e[21]=S):S=e[21],e[22]!==N||e[23]!==S?(I=o.jsx(Ao,{className:"p-2",children:o.jsxs("div",{className:"space-y-3 max-h-64 overflow-y-auto scrollbar-thin",children:[N,S]})}),e[22]=N,e[23]=S,e[24]=I):I=e[24],e[25]!==j||e[26]!==I?(R=o.jsxs(Ro,{value:"tool-call",className:"border-0",children:[j,I]}),e[25]=j,e[26]=I,e[27]=R):R=e[27],e[28]!==R||e[29]!==m?(U=o.jsx(Uo,{type:"single",collapsible:!0,className:"w-full",children:R},m),e[28]=R,e[29]=m,e[30]=U):U=e[30],U},Xt=k.memo(a=>{const e=T.c(16),{status:t,className:n}=a;let s;e[0]!==t?(s=()=>{switch(t){case"connected":return{icon:o.jsx(ct,{className:"h-3 w-3"}),label:"Connected",variant:"default",className:"bg-[var(--blue-3)] text-[var(--blue-11)] border-[var(--blue-5)]"};case"connecting":return{icon:o.jsx(Pe,{className:"h-3 w-3 animate-pulse"}),label:"Connecting",variant:"secondary",className:"bg-[var(--yellow-3)] text-[var(--yellow-11)] border-[var(--yellow-5)]"};case"disconnected":return{icon:o.jsx(We,{className:"h-3 w-3"}),label:"Disconnected",variant:"outline",className:"bg-[var(--red-3)] text-[var(--red-11)] border-[var(--red-5)]"};default:return{icon:o.jsx(We,{className:"h-3 w-3"}),label:t||"Unknown",variant:"outline",className:"bg-[var(--gray-3)] text-[var(--gray-11)] border-[var(--gray-5)]"}}},e[0]=t,e[1]=s):s=e[1];const i=s;let l,r,c,d,m,u;return e[2]!==n||e[3]!==i?(r=i(),l=ko,c=r.variant,d=me(r.className,n),e[2]=n,e[3]=i,e[4]=l,e[5]=r,e[6]=c,e[7]=d):(l=e[4],r=e[5],c=e[6],d=e[7]),e[8]!==r.label?(m=o.jsx("span",{className:"ml-1 text-xs font-medium",children:r.label}),e[8]=r.label,e[9]=m):m=e[9],e[10]!==l||e[11]!==r.icon||e[12]!==c||e[13]!==d||e[14]!==m?(u=o.jsxs(l,{variant:c,className:d,children:[r.icon,m]}),e[10]=l,e[11]=r.icon,e[12]=c,e[13]=d,e[14]=m,e[15]=u):u=e[15],u});Xt.displayName="ConnectionStatus";const Zt=k.memo(a=>{const e=T.c(14),{permission:t,onResolve:n}=a;let s,i,l,r,c,d;if(e[0]===Symbol.for("react.memo_cache_sentinel")?(s=o.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[o.jsx(lt,{className:"h-4 w-4 text-[var(--amber-11)]"}),o.jsx("h3",{className:"text-sm font-medium text-[var(--amber-11)]",children:"Permission Request"})]}),i=o.jsx("p",{className:"text-sm text-[var(--amber-11)] mb-3",children:"The AI agent is requesting permission to proceed:"}),e[0]=s,e[1]=i):(s=e[0],i=e[1]),e[2]!==t.toolCall?(l=o.jsx(Qt,{data:t.toolCall}),e[2]=t.toolCall,e[3]=l):l=e[3],e[4]!==n||e[5]!==t.options){let m;e[7]!==n?(m=u=>o.jsxs(se,{size:"xs",variant:"text",className:u.kind.startsWith("allow")?"text-[var(--blue-10)]":"text-[var(--red-10)]",onClick:()=>n({outcome:{outcome:"selected",optionId:u.optionId}}),children:[u.kind.startsWith("allow")&&o.jsx(Pn,{className:"h-3 w-3 mr-1"}),u.kind.startsWith("reject")&&o.jsx(vt,{className:"h-3 w-3 mr-1"}),u.name]},u.optionId),e[7]=n,e[8]=m):m=e[8],r=t.options.map(m),e[4]=n,e[5]=t.options,e[6]=r}else r=e[6];return e[9]!==r?(c=o.jsx("div",{className:"flex gap-2",children:r}),e[9]=r,e[10]=c):c=e[10],e[11]!==l||e[12]!==c?(d=o.jsxs("div",{className:"border border-[var(--amber-8)] bg-[var(--amber-2)] rounded-lg p-2",children:[s,i,l,c]}),e[11]=l,e[12]=c,e[13]=d):d=e[13],d});Zt.displayName="PermissionRequest";const Oe=Fo("marimo:acp:sessions:v1",{sessions:[],activeTabId:null}),ht=Po(a=>{const e=a(Oe);return e.activeTabId&&e.sessions.find(t=>t.tabId===e.activeTabId)||null},(a,e,t)=>{e(Oe,n=>({...n,activeTabId:t}))});function Kt(a,e=20){return a.length<=e?a:`${a.slice(0,e-3)}...`}function Va(a,e){const t=tn(e.agentId),n=Date.now(),s=e.firstMessage?Kt(e.firstMessage.trim()):`New ${e.agentId} session`,i=`tab_${qo()}`;if(t==="single"){const l=a.sessions.filter(c=>c.agentId===e.agentId),r=a.sessions.filter(c=>c.agentId!==e.agentId);if(l.length>0){const c=l[0],d={agentId:e.agentId,title:s,createdAt:n,lastUsedAt:n,tabId:c.tabId,externalAgentSessionId:null};return{...a,sessions:[...r.slice(0,0),d],activeTabId:d.tabId}}}return{...a,sessions:[...a.sessions.slice(0,0),{agentId:e.agentId,tabId:i,title:s,createdAt:n,lastUsedAt:n,externalAgentSessionId:null}],activeTabId:i}}function en(a,e){const t=a.activeTabId;return t?{...a,sessions:a.sessions.map(n=>n.tabId===t?{...n,externalAgentSessionId:e,lastUsedAt:Date.now()}:n)}:a}const Ze={claude:{port:3017,command:"npx @zed-industries/claude-code-acp",webSocketUrl:"ws://localhost:3017/message",sessionSupport:"single"},gemini:{port:3019,command:"npx @google/gemini-cli --experimental-acp",webSocketUrl:"ws://localhost:3019/message",sessionSupport:"single"}};function tn(a){return Ze[a].sessionSupport}const nn=k.memo(a=>{const e=T.c(35),{agentId:t,showCopy:n,className:s}=a,i=n===void 0||n;let l;e[0]!==t?(l=(function(C){const z=Ze[C].port;return`npx stdio-to-ws "${Ze[C].command}" --port ${z}`})(t),e[0]=t,e[1]=l):l=e[1];const r=l;let c;e[2]!==t?(c=(function(C){return yt(C)})(t),e[2]=t,e[3]=c):c=e[3];const d=c,m=Mn($o),{sendCommand:u}=(function(){const C=T.c(3),{addCommand:z}=bi(),{setIsTerminalOpen:Z}=Eo();let K;return C[0]!==z||C[1]!==Z?(K={sendCommand:O=>{Z(!0),z(O)}},C[0]=z,C[1]=Z,C[2]=K):K=C[2],K})();let p;e[4]!==r||e[5]!==u?(p=()=>{u(r)},e[4]=r,e[5]=u,e[6]=p):p=e[6];const _=p;let x,f,g,j,N,S,I,R,U,q,A;return e[7]!==s?(x=me("space-y-2",s),e[7]=s,e[8]=x):x=e[8],e[9]!==t?(f=o.jsx(_t,{provider:t,className:"h-4 w-4"}),e[9]=t,e[10]=f):f=e[10],e[11]!==d?(g=o.jsx("span",{className:"font-medium text-sm",children:d}),e[11]=d,e[12]=g):g=e[12],e[13]!==f||e[14]!==g?(j=o.jsxs("div",{className:"flex items-center gap-2",children:[f,g]}),e[13]=f,e[14]=g,e[15]=j):j=e[15],e[16]===Symbol.for("react.memo_cache_sentinel")?(N=o.jsx(Ln,{className:"h-4 w-4 mt-0.5 text-muted-foreground flex-shrink-0"}),e[16]=N):N=e[16],e[17]!==r?(S=o.jsx("code",{className:"text-xs font-mono break-words flex-1 whitespace-pre-wrap",children:r}),e[17]=r,e[18]=S):S=e[18],e[19]!==r||e[20]!==i?(I=i&&o.jsx(se,{size:"xs",variant:"outline",className:"border",children:o.jsx(zo,{value:r,className:"h-3 w-3"})}),e[19]=r,e[20]=i,e[21]=I):I=e[21],e[22]!==m.terminal||e[23]!==_?(R=m.terminal&&o.jsx(it,{content:"Run in terminal",delayDuration:100,children:o.jsx(se,{onClick:_,title:"Send to terminal",size:"xs",variant:"outline",children:o.jsx(fi,{className:"h-3 w-3"})})}),e[22]=m.terminal,e[23]=_,e[24]=R):R=e[24],e[25]!==I||e[26]!==R?(U=o.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[I,R]}),e[25]=I,e[26]=R,e[27]=U):U=e[27],e[28]!==S||e[29]!==U?(q=o.jsx("div",{className:"bg-muted/50 rounded-md p-2 border",children:o.jsxs("div",{className:"flex items-start gap-2 text-xs",children:[N,S,U]})}),e[28]=S,e[29]=U,e[30]=q):q=e[30],e[31]!==q||e[32]!==x||e[33]!==j?(A=o.jsxs("div",{className:x,children:[j,q]}),e[31]=q,e[32]=x,e[33]=j,e[34]=A):A=e[34],A});nn.displayName="AgentDocItem";const Ke=k.memo(a=>{const e=T.c(22),{title:t,description:n,agents:s,showCopy:i,className:l}=a;let r;e[0]!==s?(r=s===void 0?["claude","gemini"]:s,e[0]=s,e[1]=r):r=e[1];const c=r,d=i===void 0||i;let m,u,p,_,x,f,g;if(e[2]!==l?(m=me("space-y-4",l),e[2]=l,e[3]=m):m=e[3],e[4]!==t?(u=o.jsx("h3",{className:"font-medium text-sm",children:t}),e[4]=t,e[5]=u):u=e[5],e[6]!==n?(p=o.jsx("p",{className:"text-xs text-muted-foreground",children:n}),e[6]=n,e[7]=p):p=e[7],e[8]!==u||e[9]!==p?(_=o.jsxs("div",{className:"space-y-2",children:[u,p]}),e[8]=u,e[9]=p,e[10]=_):_=e[10],e[11]!==c||e[12]!==d){let j;e[14]!==d?(j=N=>o.jsx(nn,{agentId:N,showCopy:d},N),e[14]=d,e[15]=j):j=e[15],x=c.map(j),e[11]=c,e[12]=d,e[13]=x}else x=e[13];return e[16]!==x?(f=o.jsx("div",{className:"space-y-3",children:x}),e[16]=x,e[17]=f):f=e[17],e[18]!==m||e[19]!==_||e[20]!==f?(g=o.jsxs("div",{className:m,children:[_,f]}),e[18]=m,e[19]=_,e[20]=f,e[21]=g):g=e[21],g});Ke.displayName="AgentDocs";const sn=[{id:"claude",displayName:"Claude",iconId:"anthropic"},{id:"gemini",displayName:"Gemini",iconId:"google"}],an=k.memo(a=>{const e=T.c(24),{agent:t,onSelect:n,existingSessions:s}=a;let i;e[0]!==t.id?(i=tn(t.id),e[0]=t.id,e[1]=i):i=e[1];const l=i;let r;if(e[2]!==t.id||e[3]!==s){let j;e[5]!==t.id?(j=N=>N.agentId===t.id,e[5]=t.id,e[6]=j):j=e[6],r=s.some(j),e[2]=t.id,e[3]=s,e[4]=r}else r=e[4];const c=r;let d;e[7]!==t.displayName||e[8]!==c||e[9]!==l?(d=()=>l==="single"&&c?`Reset ${t.displayName} session`:`New ${t.displayName} session`,e[7]=t.displayName,e[8]=c,e[9]=l,e[10]=d):d=e[10];const m=d;let u,p;e[11]!==t.id||e[12]!==n?(u=()=>n(t.id),e[11]=t.id,e[12]=n,e[13]=u):u=e[13],e[14]!==t.iconId?(p=o.jsx(_t,{provider:t.iconId,className:"h-3 w-3 mr-2"}),e[14]=t.iconId,e[15]=p):p=e[15];const _=m();let x,f,g;return e[16]!==_?(x=o.jsx("span",{children:_}),e[16]=_,e[17]=x):x=e[17],e[18]!==p||e[19]!==x?(f=o.jsxs("div",{className:"flex items-center w-full",children:[p,x]}),e[18]=p,e[19]=x,e[20]=f):f=e[20],e[21]!==u||e[22]!==f?(g=o.jsx(Wo,{onClick:u,className:"cursor-pointer",children:f}),e[21]=u,e[22]=f,e[23]=g):g=e[23],g});an.displayName="AgentMenuItem";const et=k.memo(a=>{const e=T.c(30),{onSessionCreated:t,className:n}=a,s=Do(),[i,l]=rt(Oe),r=An(ht),[c,d]=k.useState(!1);let m;e[0]!==t||e[1]!==i||e[2]!==r||e[3]!==l?(m=async C=>{const z=Va(i,{agentId:C});l(z),r(z.activeTabId),d(!1),t==null||t(C)},e[0]=t,e[1]=i,e[2]=r,e[3]=l,e[4]=m):m=e[4];const u=ae(m);let p,_,x,f,g,j,N,S,I,R,U,q,A;return e[5]!==n?(p=me("h-6 gap-1 px-2 text-xs bg-muted/30 hover:bg-muted/50 border border-border border-y-0 rounded-none focus-visible:ring-0",n),e[5]=n,e[6]=p):p=e[6],e[7]===Symbol.for("react.memo_cache_sentinel")?(_=o.jsx("span",{children:"New session"}),x=o.jsx(Oo,{className:"h-3 w-3"}),e[7]=_,e[8]=x):(_=e[7],x=e[8]),e[9]!==p?(f=o.jsx(Lo,{asChild:!0,children:o.jsxs(se,{variant:"ghost",size:"sm",className:p,children:[_,x]})}),e[9]=p,e[10]=f):f=e[10],e[11]!==u||e[12]!==i?(g=sn.map(C=>o.jsx(an,{agent:C,onSelect:u,existingSessions:i.sessions},C.id)),e[11]=u,e[12]=i,e[13]=g):g=e[13],e[14]===Symbol.for("react.memo_cache_sentinel")?(j=o.jsx(Vo,{}),e[14]=j):j=e[14],e[15]===Symbol.for("react.memo_cache_sentinel")?(N=o.jsx("br",{}),e[15]=N):N=e[15],e[16]!==s?(S=wt.dirname(s??""),e[16]=s,e[17]=S):S=e[17],e[18]!==S?(I=o.jsxs("div",{className:"text-xs font-medium text-muted-foreground mb-3",children:["To start an external agent, run the following command in your terminal.",N,"Note: This must be in the directory"," ",S]}),e[18]=S,e[19]=I):I=e[19],e[20]===Symbol.for("react.memo_cache_sentinel")?(R=o.jsx(Ke,{agents:sn.map(Ba),showCopy:!0}),e[20]=R):R=e[20],e[21]!==I?(U=o.jsxs("div",{className:"px-2 py-2",children:[I,R]}),e[21]=I,e[22]=U):U=e[22],e[23]!==U||e[24]!==g?(q=o.jsxs(Bo,{align:"start",className:"w-fit",children:[g,j,U]}),e[23]=U,e[24]=g,e[25]=q):q=e[25],e[26]!==c||e[27]!==q||e[28]!==f?(A=o.jsxs(Ho,{open:c,onOpenChange:d,children:[f,q]}),e[26]=c,e[27]=q,e[28]=f,e[29]=A):A=e[29],A});function Ba(a){return a.id}et.displayName="AgentSelector";const on=k.memo(a=>{const e=T.c(10),{isVisible:t,onScrollToBottom:n,className:s}=a;if(!t)return null;let i,l,r,c,d,m;return e[0]!==s?(i=me("absolute bottom-2 right-6 z-10 animate-in fade-in-0 zoom-in-95 duration-200",s),e[0]=s,e[1]=i):i=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(l=me("h-8 w-8 p-0 rounded-full","bg-background/90 backdrop-blur-sm","border border-border/50","shadow-md shadow-black/10","hover:bg-background hover:shadow-black/15","transition-all duration-200","focus:outline-none focus:ring-2 focus:ring-primary/50"),r=o.jsx(P,{className:"h-4 w-4"}),c=o.jsx("span",{className:"sr-only",children:"Scroll to bottom"}),e[2]=l,e[3]=r,e[4]=c):(l=e[2],r=e[3],c=e[4]),e[5]!==n?(d=o.jsxs(se,{variant:"secondary",size:"sm",onClick:n,className:l,children:[r,c]}),e[5]=n,e[6]=d):d=e[6],e[7]!==i||e[8]!==d?(m=o.jsx("div",{className:i,children:d}),e[7]=i,e[8]=d,e[9]=m):m=e[9],m});on.displayName="ScrollToBottomButton";const rn=k.memo(a=>{const e=T.c(23),{session:t,isActive:n,onSelect:s,onClose:i}=a,l=n&&"bg-background border-b-0 relative z-10";let r,c,d,m,u,p,_,x,f;return e[0]!==l?(r=me("flex items-center gap-1 px-2 py-1 text-xs border-r border-border bg-muted/30 hover:bg-muted/50 cursor-pointer min-w-0",l),e[0]=l,e[1]=r):r=e[1],e[2]!==s||e[3]!==t.tabId?(c=()=>s(t.tabId),e[2]=s,e[3]=t.tabId,e[4]=c):c=e[4],e[5]!==t.agentId?(d=o.jsx("span",{className:"text-muted-foreground text-[10px] font-medium",children:o.jsx(_t,{provider:t.agentId,className:"h-3 w-3"})}),e[5]=t.agentId,e[6]=d):d=e[6],e[7]!==t.title?(m=o.jsx("span",{className:"truncate",title:t.title,children:t.title}),e[7]=t.title,e[8]=m):m=e[8],e[9]!==d||e[10]!==m?(u=o.jsxs("div",{className:"flex items-center gap-1 min-w-0 flex-1",children:[d,m]}),e[9]=d,e[10]=m,e[11]=u):u=e[11],e[12]!==i||e[13]!==t.tabId?(p=g=>{g.stopPropagation(),i(t.tabId)},e[12]=i,e[13]=t.tabId,e[14]=p):p=e[14],e[15]===Symbol.for("react.memo_cache_sentinel")?(_=o.jsx(In,{className:"h-3 w-3"}),e[15]=_):_=e[15],e[16]!==p?(x=o.jsx(se,{variant:"ghost",size:"sm",className:"h-4 w-4 p-0 hover:bg-destructive/20 hover:text-destructive flex-shrink-0",onClick:p,children:_}),e[16]=p,e[17]=x):x=e[17],e[18]!==r||e[19]!==c||e[20]!==u||e[21]!==x?(f=o.jsxs("div",{className:r,onClick:c,children:[u,x]}),e[18]=r,e[19]=c,e[20]=u,e[21]=x,e[22]=f):f=e[22],f});rn.displayName="SessionTab";const ln=k.memo(a=>{const e=T.c(11),{sessions:t,activeTabId:n,onSelectSession:s,onCloseSession:i}=a;let l,r;if(e[0]!==n||e[1]!==i||e[2]!==s||e[3]!==t){let c;e[5]!==n||e[6]!==i||e[7]!==s?(c=d=>o.jsx(rn,{session:d,isActive:d.tabId===n,onSelect:s,onClose:i},d.tabId),e[5]=n,e[6]=i,e[7]=s,e[8]=c):c=e[8],l=t.map(c),e[0]=n,e[1]=i,e[2]=s,e[3]=t,e[4]=l}else l=e[4];return e[9]!==l?(r=o.jsx("div",{className:"flex min-w-0 flex-1 overflow-x-auto",children:l}),e[9]=l,e[10]=r):r=e[10],r});ln.displayName="SessionList";const cn=k.memo(a=>{const e=T.c(5),{className:t}=a;let n,s,i;return e[0]!==t?(n=me("flex items-center border-b bg-muted/20",t),e[0]=t,e[1]=n):n=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(s=o.jsx(et,{className:"h-6"}),e[2]=s):s=e[2],e[3]!==n?(i=o.jsx("div",{className:n,children:s}),e[3]=n,e[4]=i):i=e[4],i});cn.displayName="EmptySessionTabs";const xt=k.memo(a=>{const e=T.c(18),{className:t}=a,[n,s]=rt(Oe),i=An(ht);let l;e[0]!==i||e[1]!==s?(l=g=>{i(g),s(j=>(function(N,S){return{...N,sessions:N.sessions.map(I=>I.tabId===S?{...I,lastUsedAt:Date.now()}:I)}})(j,g))},e[0]=i,e[1]=s,e[2]=l):l=e[2];const r=ae(l);let c;e[3]!==s?(c=g=>{s(j=>(function(N,S){const I=N.sessions.filter(R=>R.tabId!==S);return{sessions:I,activeTabId:N.activeTabId===S?I.length>0?I[I.length-1].tabId:null:N.activeTabId}})(j,g))},e[3]=s,e[4]=c):c=e[4];const d=ae(c),{sessions:m,activeTabId:u}=n;if(m.length===0){let g;return e[5]!==t?(g=o.jsx(cn,{className:t}),e[5]=t,e[6]=g):g=e[6],g}let p,_,x,f;return e[7]!==t?(p=me("flex items-center border-b bg-muted/20 overflow-hidden",t),e[7]=t,e[8]=p):p=e[8],e[9]!==u||e[10]!==d||e[11]!==r||e[12]!==m?(_=o.jsx(ln,{sessions:m,activeTabId:u,onSelectSession:r,onCloseSession:d}),e[9]=u,e[10]=d,e[11]=r,e[12]=m,e[13]=_):_=e[13],e[14]===Symbol.for("react.memo_cache_sentinel")?(x=o.jsx(et,{className:"h-6 flex-shrink-0"}),e[14]=x):x=e[14],e[15]!==p||e[16]!==_?(f=o.jsxs("div",{className:p,children:[_,x]}),e[15]=p,e[16]=_,e[17]=f):f=e[17],f});xt.displayName="SessionTabs";const Ha=a=>{const e=T.c(17),{notifications:t,isConnected:n,onRetryConnection:s,onRetryLastAction:i,onDismissError:l}=a;let r,c,d;if(e[0]!==n||e[1]!==t||e[2]!==l||e[3]!==s||e[4]!==i){let m,u=(function(x){const f=[];for(const g of x){const j=f[f.length-1];j&&xa(j.at(0),g)?j.push(g):f.push([g])}return f})(t);u=u.filter((x,f)=>f===u.length-1||!dn(x)),e[7]!==n||e[8]!==l||e[9]!==s||e[10]!==i?(m=x=>{if(x.length===0)return null;if(x[0].type==="error"){const f=x[x.length-1];return o.jsx(ga,{data:f.data,onRetry:i,onDismiss:l?()=>l(f.id):void 0},f.id)}if(dn(x)){const f=x[x.length-1];return o.jsx(ba,{data:f.data,isConnected:n,onRetry:s,timestamp:f.timestamp},f.id)}if((function(f){return f[0].type==="session_notification"})(x)){const f=x[0].timestamp,g=x[x.length-1].timestamp,j=x.map(Ya);return o.jsx(Sa,{data:j,startTimestamp:f,endTimestamp:g})}return"Unknown notification type"},e[7]=n,e[8]=l,e[9]=s,e[10]=i,e[11]=m):m=e[11];const p=m;let _;r="flex flex-col gap-4 px-2 pb-10",e[12]!==p?(_=x=>o.jsx(ze.Fragment,{children:p(x)},x[0].id),e[12]=p,e[13]=_):_=e[13],c=u.map(_),e[0]=n,e[1]=t,e[2]=l,e[3]=s,e[4]=i,e[5]=r,e[6]=c}else r=e[5],c=e[6];return e[14]!==r||e[15]!==c?(d=o.jsx("div",{className:r,children:c}),e[14]=r,e[15]=c,e[16]=d):d=e[16],d};function dn(a){return a[0].type==="connection_change"}function Ya(a){return a.data.update}function Ga(a){return`
7
+ `,children:[o.jsx("input",{type:"checkbox",checked:a.status==="completed",readOnly:!0,className:"accent-primary h-4 w-4 rounded border border-muted-foreground/30",tabIndex:-1}),o.jsx("span",{className:ue("text-xs",a.status==="completed"&&"line-through text-muted-foreground"),children:a.content})]},`${a.status}-${e}`)}function Ea(a){return a.content}function Pa(a){return a.content}function Fa(a){return a.type==="text"?o.jsx(Un,{content:a.text}):a.type==="image"?o.jsx(Gt,{data:a}):a.type==="audio"?o.jsx(Jt,{data:a}):a.type==="resource"?o.jsx(ja,{data:a}):a.type==="resource_link"?o.jsx(Na,{data:a}):(Tn(a),null)}function Da(a){return o.jsx(pt,{status:a.status==="completed"?"success":a.status==="failed"?"error":a.status==="in_progress"||a.status==="pending"?"loading":void 0,title:o.jsx("span",{"data-tool-data":JSON.stringify(a),children:(e=Ta(a),e.startsWith("`")&&e.endsWith("`")?o.jsx("i",{children:e.slice(1,-1)}):e)}),defaultIcon:o.jsx(go,{className:"h-3 w-3"}),children:o.jsx(Qt,{data:a})},a.toolCallId);var e}function qa(a){return o.jsxs("div",{className:"border rounded-md overflow-hidden bg-[var(--gray-2)] max-h-64 overflow-y-auto scrollbar-thin",children:[o.jsx("div",{className:"px-2 py-1 bg-[var(--gray-2)] border-b text-xs font-medium text-[var(--gray-11)]",children:a.path}),o.jsxs("div",{className:"font-mono text-xs",children:[a.oldText&&o.jsx("div",{className:"px-3 py-1 border-b bg-[var(--red-2)] border-b-[var(--red-6)]",children:o.jsxs("div",{className:"flex",children:[o.jsx("span",{className:"text-[var(--red-11)] select-none mr-2",children:"-"}),o.jsx("pre",{className:"text-[var(--red-11)] px-1 rounded whitespace-pre-wrap break-words flex-1 line-through opacity-80",children:a.oldText})]})}),a.newText&&o.jsx("div",{className:"px-3 py-1 bg-[var(--grass-2)] border-b-[var(--grass-6)]",children:o.jsxs("div",{className:"flex",children:[o.jsx("span",{className:"text-[var(--grass-11)] select-none mr-2",children:"+"}),o.jsx("pre",{className:"text-[var(--grass-11)] px-1 rounded whitespace-pre-wrap break-words flex-1 italic opacity-90",children:a.newText})]})})]})]},a.path)}function $a(a){return a.line?`${a.path}:${a.line}`:a.path}function za(a){return a.type==="content"}function Wa(a){return a.content}function Oa(a){return a.type==="diff"}function La(a){return a.path}const pt=a=>{const e=A.c(31),{title:t,children:n,status:s,index:i,defaultIcon:l}=a,r=i===void 0?0:i;let c;e[0]!==l||e[1]!==s?(c=()=>{switch(s){case"loading":return o.jsx(To,{className:"h-3 w-3 animate-spin"});case"error":return o.jsx(vt,{className:"h-3 w-3 text-destructive"});case"success":return o.jsx(Pn,{className:"h-3 w-3 text-[var(--blue-9)]"});default:return l}},e[0]=l,e[1]=s,e[2]=c):c=e[2];const d=c,m=`tool-${r}`,u=s==="error"&&"text-destructive/80",p=s==="success"&&"text-[var(--blue-8)]";let _,f,x,g,j,N,S,I,T,U;return e[3]!==u||e[4]!==p?(_=ue("py-1 text-xs border-border shadow-none! ring-0! bg-muted hover:bg-muted/30 px-2 gap-1 rounded-sm [&[data-state=open]>svg]:rotate-180",u,p),e[3]=u,e[4]=p,e[5]=_):_=e[5],e[6]!==d?(f=d(),e[6]=d,e[7]=f):f=e[7],e[8]!==t?(x=o.jsx("code",{className:"font-mono text-xs",children:t}),e[8]=t,e[9]=x):x=e[9],e[10]!==f||e[11]!==x?(g=o.jsxs("span",{className:"flex items-center gap-1",children:[f,x]}),e[10]=f,e[11]=x,e[12]=g):g=e[12],e[13]!==_||e[14]!==g?(j=o.jsx(Ao,{className:_,children:g}),e[13]=_,e[14]=g,e[15]=j):j=e[15],e[16]!==n||e[17]!==s?(N=s!=="error"&&o.jsx("div",{className:"text-xs font-medium text-muted-foreground mb-1",children:n}),e[16]=n,e[17]=s,e[18]=N):N=e[18],e[19]!==n||e[20]!==s?(S=s==="error"&&o.jsx("div",{className:"bg-destructive/10 border border-destructive/20 rounded-md p-3 text-xs text-destructive",children:n}),e[19]=n,e[20]=s,e[21]=S):S=e[21],e[22]!==N||e[23]!==S?(I=o.jsx(Mo,{className:"p-2",children:o.jsxs("div",{className:"space-y-3 max-h-64 overflow-y-auto scrollbar-thin",children:[N,S]})}),e[22]=N,e[23]=S,e[24]=I):I=e[24],e[25]!==j||e[26]!==I?(T=o.jsxs(Ro,{value:"tool-call",className:"border-0",children:[j,I]}),e[25]=j,e[26]=I,e[27]=T):T=e[27],e[28]!==T||e[29]!==m?(U=o.jsx(Uo,{type:"single",collapsible:!0,className:"w-full",children:T},m),e[28]=T,e[29]=m,e[30]=U):U=e[30],U},Xt=k.memo(a=>{const e=A.c(16),{status:t,className:n}=a;let s;e[0]!==t?(s=()=>{switch(t){case"connected":return{icon:o.jsx(ct,{className:"h-3 w-3"}),label:"Connected",variant:"default",className:"bg-[var(--blue-3)] text-[var(--blue-11)] border-[var(--blue-5)]"};case"connecting":return{icon:o.jsx(Ue,{className:"h-3 w-3 animate-pulse"}),label:"Connecting",variant:"secondary",className:"bg-[var(--yellow-3)] text-[var(--yellow-11)] border-[var(--yellow-5)]"};case"disconnected":return{icon:o.jsx($e,{className:"h-3 w-3"}),label:"Disconnected",variant:"outline",className:"bg-[var(--red-3)] text-[var(--red-11)] border-[var(--red-5)]"};default:return{icon:o.jsx($e,{className:"h-3 w-3"}),label:t||"Unknown",variant:"outline",className:"bg-[var(--gray-3)] text-[var(--gray-11)] border-[var(--gray-5)]"}}},e[0]=t,e[1]=s):s=e[1];const i=s;let l,r,c,d,m,u;return e[2]!==n||e[3]!==i?(r=i(),l=ko,c=r.variant,d=ue(r.className,n),e[2]=n,e[3]=i,e[4]=l,e[5]=r,e[6]=c,e[7]=d):(l=e[4],r=e[5],c=e[6],d=e[7]),e[8]!==r.label?(m=o.jsx("span",{className:"ml-1 text-xs font-medium",children:r.label}),e[8]=r.label,e[9]=m):m=e[9],e[10]!==l||e[11]!==r.icon||e[12]!==c||e[13]!==d||e[14]!==m?(u=o.jsxs(l,{variant:c,className:d,children:[r.icon,m]}),e[10]=l,e[11]=r.icon,e[12]=c,e[13]=d,e[14]=m,e[15]=u):u=e[15],u});Xt.displayName="ConnectionStatus";const Kt=k.memo(a=>{const e=A.c(14),{permission:t,onResolve:n}=a;let s,i,l,r,c,d;if(e[0]===Symbol.for("react.memo_cache_sentinel")?(s=o.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[o.jsx(lt,{className:"h-4 w-4 text-[var(--amber-11)]"}),o.jsx("h3",{className:"text-sm font-medium text-[var(--amber-11)]",children:"Permission Request"})]}),i=o.jsx("p",{className:"text-sm text-[var(--amber-11)] mb-3",children:"The AI agent is requesting permission to proceed:"}),e[0]=s,e[1]=i):(s=e[0],i=e[1]),e[2]!==t.toolCall?(l=o.jsx(Qt,{data:t.toolCall}),e[2]=t.toolCall,e[3]=l):l=e[3],e[4]!==n||e[5]!==t.options){let m;e[7]!==n?(m=u=>o.jsxs(se,{size:"xs",variant:"text",className:u.kind.startsWith("allow")?"text-[var(--blue-10)]":"text-[var(--red-10)]",onClick:()=>n({outcome:{outcome:"selected",optionId:u.optionId}}),children:[u.kind.startsWith("allow")&&o.jsx(Pn,{className:"h-3 w-3 mr-1"}),u.kind.startsWith("reject")&&o.jsx(vt,{className:"h-3 w-3 mr-1"}),u.name]},u.optionId),e[7]=n,e[8]=m):m=e[8],r=t.options.map(m),e[4]=n,e[5]=t.options,e[6]=r}else r=e[6];return e[9]!==r?(c=o.jsx("div",{className:"flex gap-2",children:r}),e[9]=r,e[10]=c):c=e[10],e[11]!==l||e[12]!==c?(d=o.jsxs("div",{className:"border border-[var(--amber-8)] bg-[var(--amber-2)] rounded-lg p-2",children:[s,i,l,c]}),e[11]=l,e[12]=c,e[13]=d):d=e[13],d});Kt.displayName="PermissionRequest";const ze=Fo("marimo:acp:sessions:v1",{sessions:[],activeTabId:null}),ht=Po(a=>{const e=a(ze);return e.activeTabId&&e.sessions.find(t=>t.tabId===e.activeTabId)||null},(a,e,t)=>{e(ze,n=>({...n,activeTabId:t}))});function Zt(a,e=20){return a.length<=e?a:`${a.slice(0,e-3)}...`}function Ba(a,e){const t=tn(e.agentId),n=Date.now(),s=e.firstMessage?Zt(e.firstMessage.trim()):`New ${e.agentId} session`,i=`tab_${Do()}`;if(t==="single"){const l=a.sessions.filter(c=>c.agentId===e.agentId),r=a.sessions.filter(c=>c.agentId!==e.agentId);if(l.length>0){const c=l[0],d={agentId:e.agentId,title:s,createdAt:n,lastUsedAt:n,tabId:c.tabId,externalAgentSessionId:null};return{...a,sessions:[...r.slice(0,0),d],activeTabId:d.tabId}}}return{...a,sessions:[...a.sessions.slice(0,0),{agentId:e.agentId,tabId:i,title:s,createdAt:n,lastUsedAt:n,externalAgentSessionId:null}],activeTabId:i}}function en(a,e){const t=a.activeTabId;return t?{...a,sessions:a.sessions.map(n=>n.tabId===t?{...n,externalAgentSessionId:e,lastUsedAt:Date.now()}:n)}:a}const Ke={claude:{port:3017,command:"npx @zed-industries/claude-code-acp",webSocketUrl:"ws://localhost:3017/message",sessionSupport:"single"},gemini:{port:3019,command:"npx @google/gemini-cli --experimental-acp",webSocketUrl:"ws://localhost:3019/message",sessionSupport:"single"}};function tn(a){return Ke[a].sessionSupport}const nn=k.memo(a=>{const e=A.c(35),{agentId:t,showCopy:n,className:s}=a,i=n===void 0||n;let l;e[0]!==t?(l=(function(C){const $=Ke[C].port;return`npx stdio-to-ws "${Ke[C].command}" --port ${$}`})(t),e[0]=t,e[1]=l):l=e[1];const r=l;let c;e[2]!==t?(c=(function(C){return yt(C)})(t),e[2]=t,e[3]=c):c=e[3];const d=c,m=An(qo),{sendCommand:u}=(function(){const C=A.c(3),{addCommand:$}=bi(),{setIsTerminalOpen:Q}=Eo();let X;return C[0]!==$||C[1]!==Q?(X={sendCommand:L=>{Q(!0),$(L)}},C[0]=$,C[1]=Q,C[2]=X):X=C[2],X})();let p;e[4]!==r||e[5]!==u?(p=()=>{u(r)},e[4]=r,e[5]=u,e[6]=p):p=e[6];const _=p;let f,x,g,j,N,S,I,T,U,q,R;return e[7]!==s?(f=ue("space-y-2",s),e[7]=s,e[8]=f):f=e[8],e[9]!==t?(x=o.jsx(wt,{provider:t,className:"h-4 w-4"}),e[9]=t,e[10]=x):x=e[10],e[11]!==d?(g=o.jsx("span",{className:"font-medium text-sm",children:d}),e[11]=d,e[12]=g):g=e[12],e[13]!==x||e[14]!==g?(j=o.jsxs("div",{className:"flex items-center gap-2",children:[x,g]}),e[13]=x,e[14]=g,e[15]=j):j=e[15],e[16]===Symbol.for("react.memo_cache_sentinel")?(N=o.jsx(Ln,{className:"h-4 w-4 mt-0.5 text-muted-foreground flex-shrink-0"}),e[16]=N):N=e[16],e[17]!==r?(S=o.jsx("code",{className:"text-xs font-mono break-words flex-1 whitespace-pre-wrap",children:r}),e[17]=r,e[18]=S):S=e[18],e[19]!==r||e[20]!==i?(I=i&&o.jsx(se,{size:"xs",variant:"outline",className:"border",children:o.jsx($o,{value:r,className:"h-3 w-3"})}),e[19]=r,e[20]=i,e[21]=I):I=e[21],e[22]!==m.terminal||e[23]!==_?(T=m.terminal&&o.jsx(it,{content:"Run in terminal",delayDuration:100,children:o.jsx(se,{onClick:_,title:"Send to terminal",size:"xs",variant:"outline",children:o.jsx(fi,{className:"h-3 w-3"})})}),e[22]=m.terminal,e[23]=_,e[24]=T):T=e[24],e[25]!==I||e[26]!==T?(U=o.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[I,T]}),e[25]=I,e[26]=T,e[27]=U):U=e[27],e[28]!==S||e[29]!==U?(q=o.jsx("div",{className:"bg-muted/50 rounded-md p-2 border",children:o.jsxs("div",{className:"flex items-start gap-2 text-xs",children:[N,S,U]})}),e[28]=S,e[29]=U,e[30]=q):q=e[30],e[31]!==q||e[32]!==f||e[33]!==j?(R=o.jsxs("div",{className:f,children:[j,q]}),e[31]=q,e[32]=f,e[33]=j,e[34]=R):R=e[34],R});nn.displayName="AgentDocItem";const Ze=k.memo(a=>{const e=A.c(22),{title:t,description:n,agents:s,showCopy:i,className:l}=a;let r;e[0]!==s?(r=s===void 0?["claude","gemini"]:s,e[0]=s,e[1]=r):r=e[1];const c=r,d=i===void 0||i;let m,u,p,_,f,x,g;if(e[2]!==l?(m=ue("space-y-4",l),e[2]=l,e[3]=m):m=e[3],e[4]!==t?(u=o.jsx("h3",{className:"font-medium text-sm",children:t}),e[4]=t,e[5]=u):u=e[5],e[6]!==n?(p=o.jsx("p",{className:"text-xs text-muted-foreground",children:n}),e[6]=n,e[7]=p):p=e[7],e[8]!==u||e[9]!==p?(_=o.jsxs("div",{className:"space-y-2",children:[u,p]}),e[8]=u,e[9]=p,e[10]=_):_=e[10],e[11]!==c||e[12]!==d){let j;e[14]!==d?(j=N=>o.jsx(nn,{agentId:N,showCopy:d},N),e[14]=d,e[15]=j):j=e[15],f=c.map(j),e[11]=c,e[12]=d,e[13]=f}else f=e[13];return e[16]!==f?(x=o.jsx("div",{className:"space-y-3",children:f}),e[16]=f,e[17]=x):x=e[17],e[18]!==m||e[19]!==_||e[20]!==x?(g=o.jsxs("div",{className:m,children:[_,x]}),e[18]=m,e[19]=_,e[20]=x,e[21]=g):g=e[21],g});Ze.displayName="AgentDocs";const sn=[{id:"claude",displayName:"Claude",iconId:"anthropic"},{id:"gemini",displayName:"Gemini",iconId:"google"}],an=k.memo(a=>{const e=A.c(24),{agent:t,onSelect:n,existingSessions:s}=a;let i;e[0]!==t.id?(i=tn(t.id),e[0]=t.id,e[1]=i):i=e[1];const l=i;let r;if(e[2]!==t.id||e[3]!==s){let j;e[5]!==t.id?(j=N=>N.agentId===t.id,e[5]=t.id,e[6]=j):j=e[6],r=s.some(j),e[2]=t.id,e[3]=s,e[4]=r}else r=e[4];const c=r;let d;e[7]!==t.displayName||e[8]!==c||e[9]!==l?(d=()=>l==="single"&&c?`Reset ${t.displayName} session`:`New ${t.displayName} session`,e[7]=t.displayName,e[8]=c,e[9]=l,e[10]=d):d=e[10];const m=d;let u,p;e[11]!==t.id||e[12]!==n?(u=()=>n(t.id),e[11]=t.id,e[12]=n,e[13]=u):u=e[13],e[14]!==t.iconId?(p=o.jsx(wt,{provider:t.iconId,className:"h-3 w-3 mr-2"}),e[14]=t.iconId,e[15]=p):p=e[15];const _=m();let f,x,g;return e[16]!==_?(f=o.jsx("span",{children:_}),e[16]=_,e[17]=f):f=e[17],e[18]!==p||e[19]!==f?(x=o.jsxs("div",{className:"flex items-center w-full",children:[p,f]}),e[18]=p,e[19]=f,e[20]=x):x=e[20],e[21]!==u||e[22]!==x?(g=o.jsx(Wo,{onClick:u,className:"cursor-pointer",children:x}),e[21]=u,e[22]=x,e[23]=g):g=e[23],g});an.displayName="AgentMenuItem";const et=k.memo(a=>{const e=A.c(30),{onSessionCreated:t,className:n}=a,s=zo(),[i,l]=rt(ze),r=Mn(ht),[c,d]=k.useState(!1);let m;e[0]!==t||e[1]!==i||e[2]!==r||e[3]!==l?(m=async C=>{const $=Ba(i,{agentId:C});l($),r($.activeTabId),d(!1),t==null||t(C)},e[0]=t,e[1]=i,e[2]=r,e[3]=l,e[4]=m):m=e[4];const u=ae(m);let p,_,f,x,g,j,N,S,I,T,U,q,R;return e[5]!==n?(p=ue("h-6 gap-1 px-2 text-xs bg-muted/30 hover:bg-muted/50 border border-border border-y-0 rounded-none focus-visible:ring-0",n),e[5]=n,e[6]=p):p=e[6],e[7]===Symbol.for("react.memo_cache_sentinel")?(_=o.jsx("span",{children:"New session"}),f=o.jsx(Oo,{className:"h-3 w-3"}),e[7]=_,e[8]=f):(_=e[7],f=e[8]),e[9]!==p?(x=o.jsx(Lo,{asChild:!0,children:o.jsxs(se,{variant:"ghost",size:"sm",className:p,children:[_,f]})}),e[9]=p,e[10]=x):x=e[10],e[11]!==u||e[12]!==i?(g=sn.map(C=>o.jsx(an,{agent:C,onSelect:u,existingSessions:i.sessions},C.id)),e[11]=u,e[12]=i,e[13]=g):g=e[13],e[14]===Symbol.for("react.memo_cache_sentinel")?(j=o.jsx(Bo,{}),e[14]=j):j=e[14],e[15]===Symbol.for("react.memo_cache_sentinel")?(N=o.jsx("br",{}),e[15]=N):N=e[15],e[16]!==s?(S=_t.dirname(s??""),e[16]=s,e[17]=S):S=e[17],e[18]!==S?(I=o.jsxs("div",{className:"text-xs font-medium text-muted-foreground mb-3",children:["To start an external agent, run the following command in your terminal.",N,"Note: This must be in the directory"," ",S]}),e[18]=S,e[19]=I):I=e[19],e[20]===Symbol.for("react.memo_cache_sentinel")?(T=o.jsx(Ze,{agents:sn.map(Va),showCopy:!0}),e[20]=T):T=e[20],e[21]!==I?(U=o.jsxs("div",{className:"px-2 py-2",children:[I,T]}),e[21]=I,e[22]=U):U=e[22],e[23]!==U||e[24]!==g?(q=o.jsxs(Vo,{align:"start",className:"w-fit",children:[g,j,U]}),e[23]=U,e[24]=g,e[25]=q):q=e[25],e[26]!==c||e[27]!==q||e[28]!==x?(R=o.jsxs(Yo,{open:c,onOpenChange:d,children:[x,q]}),e[26]=c,e[27]=q,e[28]=x,e[29]=R):R=e[29],R});function Va(a){return a.id}et.displayName="AgentSelector";const on=k.memo(a=>{const e=A.c(10),{isVisible:t,onScrollToBottom:n,className:s}=a;if(!t)return null;let i,l,r,c,d,m;return e[0]!==s?(i=ue("absolute bottom-2 right-6 z-10 animate-in fade-in-0 zoom-in-95 duration-200",s),e[0]=s,e[1]=i):i=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(l=ue("h-8 w-8 p-0 rounded-full","bg-background/90 backdrop-blur-sm","border border-border/50","shadow-md shadow-black/10","hover:bg-background hover:shadow-black/15","transition-all duration-200","focus:outline-none focus:ring-2 focus:ring-primary/50"),r=o.jsx(P,{className:"h-4 w-4"}),c=o.jsx("span",{className:"sr-only",children:"Scroll to bottom"}),e[2]=l,e[3]=r,e[4]=c):(l=e[2],r=e[3],c=e[4]),e[5]!==n?(d=o.jsxs(se,{variant:"secondary",size:"sm",onClick:n,className:l,children:[r,c]}),e[5]=n,e[6]=d):d=e[6],e[7]!==i||e[8]!==d?(m=o.jsx("div",{className:i,children:d}),e[7]=i,e[8]=d,e[9]=m):m=e[9],m});on.displayName="ScrollToBottomButton";const rn=k.memo(a=>{const e=A.c(23),{session:t,isActive:n,onSelect:s,onClose:i}=a,l=n&&"bg-background border-b-0 relative z-10";let r,c,d,m,u,p,_,f,x;return e[0]!==l?(r=ue("flex items-center gap-1 px-2 py-1 text-xs border-r border-border bg-muted/30 hover:bg-muted/50 cursor-pointer min-w-0",l),e[0]=l,e[1]=r):r=e[1],e[2]!==s||e[3]!==t.tabId?(c=()=>s(t.tabId),e[2]=s,e[3]=t.tabId,e[4]=c):c=e[4],e[5]!==t.agentId?(d=o.jsx("span",{className:"text-muted-foreground text-[10px] font-medium",children:o.jsx(wt,{provider:t.agentId,className:"h-3 w-3"})}),e[5]=t.agentId,e[6]=d):d=e[6],e[7]!==t.title?(m=o.jsx("span",{className:"truncate",title:t.title,children:t.title}),e[7]=t.title,e[8]=m):m=e[8],e[9]!==d||e[10]!==m?(u=o.jsxs("div",{className:"flex items-center gap-1 min-w-0 flex-1",children:[d,m]}),e[9]=d,e[10]=m,e[11]=u):u=e[11],e[12]!==i||e[13]!==t.tabId?(p=g=>{g.stopPropagation(),i(t.tabId)},e[12]=i,e[13]=t.tabId,e[14]=p):p=e[14],e[15]===Symbol.for("react.memo_cache_sentinel")?(_=o.jsx(In,{className:"h-3 w-3"}),e[15]=_):_=e[15],e[16]!==p?(f=o.jsx(se,{variant:"ghost",size:"sm",className:"h-4 w-4 p-0 hover:bg-destructive/20 hover:text-destructive flex-shrink-0",onClick:p,children:_}),e[16]=p,e[17]=f):f=e[17],e[18]!==r||e[19]!==c||e[20]!==u||e[21]!==f?(x=o.jsxs("div",{className:r,onClick:c,children:[u,f]}),e[18]=r,e[19]=c,e[20]=u,e[21]=f,e[22]=x):x=e[22],x});rn.displayName="SessionTab";const ln=k.memo(a=>{const e=A.c(11),{sessions:t,activeTabId:n,onSelectSession:s,onCloseSession:i}=a;let l,r;if(e[0]!==n||e[1]!==i||e[2]!==s||e[3]!==t){let c;e[5]!==n||e[6]!==i||e[7]!==s?(c=d=>o.jsx(rn,{session:d,isActive:d.tabId===n,onSelect:s,onClose:i},d.tabId),e[5]=n,e[6]=i,e[7]=s,e[8]=c):c=e[8],l=t.map(c),e[0]=n,e[1]=i,e[2]=s,e[3]=t,e[4]=l}else l=e[4];return e[9]!==l?(r=o.jsx("div",{className:"flex min-w-0 flex-1 overflow-x-auto",children:l}),e[9]=l,e[10]=r):r=e[10],r});ln.displayName="SessionList";const cn=k.memo(a=>{const e=A.c(5),{className:t}=a;let n,s,i;return e[0]!==t?(n=ue("flex items-center border-b bg-muted/20",t),e[0]=t,e[1]=n):n=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(s=o.jsx(et,{className:"h-6"}),e[2]=s):s=e[2],e[3]!==n?(i=o.jsx("div",{className:n,children:s}),e[3]=n,e[4]=i):i=e[4],i});cn.displayName="EmptySessionTabs";const xt=k.memo(a=>{const e=A.c(18),{className:t}=a,[n,s]=rt(ze),i=Mn(ht);let l;e[0]!==i||e[1]!==s?(l=g=>{i(g),s(j=>(function(N,S){return{...N,sessions:N.sessions.map(I=>I.tabId===S?{...I,lastUsedAt:Date.now()}:I)}})(j,g))},e[0]=i,e[1]=s,e[2]=l):l=e[2];const r=ae(l);let c;e[3]!==s?(c=g=>{s(j=>(function(N,S){const I=N.sessions.filter(T=>T.tabId!==S);return{sessions:I,activeTabId:N.activeTabId===S?I.length>0?I[I.length-1].tabId:null:N.activeTabId}})(j,g))},e[3]=s,e[4]=c):c=e[4];const d=ae(c),{sessions:m,activeTabId:u}=n;if(m.length===0){let g;return e[5]!==t?(g=o.jsx(cn,{className:t}),e[5]=t,e[6]=g):g=e[6],g}let p,_,f,x;return e[7]!==t?(p=ue("flex items-center border-b bg-muted/20 overflow-hidden",t),e[7]=t,e[8]=p):p=e[8],e[9]!==u||e[10]!==d||e[11]!==r||e[12]!==m?(_=o.jsx(ln,{sessions:m,activeTabId:u,onSelectSession:r,onCloseSession:d}),e[9]=u,e[10]=d,e[11]=r,e[12]=m,e[13]=_):_=e[13],e[14]===Symbol.for("react.memo_cache_sentinel")?(f=o.jsx(et,{className:"h-6 flex-shrink-0"}),e[14]=f):f=e[14],e[15]!==p||e[16]!==_?(x=o.jsxs("div",{className:p,children:[_,f]}),e[15]=p,e[16]=_,e[17]=x):x=e[17],x});xt.displayName="SessionTabs";const Ya=a=>{const e=A.c(17),{notifications:t,isConnected:n,onRetryConnection:s,onRetryLastAction:i,onDismissError:l}=a;let r,c,d;if(e[0]!==n||e[1]!==t||e[2]!==l||e[3]!==s||e[4]!==i){let m,u=(function(f){const x=[];for(const g of f){const j=x[x.length-1];j&&xa(j.at(0),g)?j.push(g):x.push([g])}return x})(t);u=u.filter((f,x)=>x===u.length-1||!dn(f)),e[7]!==n||e[8]!==l||e[9]!==s||e[10]!==i?(m=f=>{if(f.length===0)return null;if(f[0].type==="error"){const x=f[f.length-1];return o.jsx(ga,{data:x.data,onRetry:i,onDismiss:l?()=>l(x.id):void 0},x.id)}if(dn(f)){const x=f[f.length-1];return o.jsx(ba,{data:x.data,isConnected:n,onRetry:s,timestamp:x.timestamp},x.id)}if((function(x){return x[0].type==="session_notification"})(f)){const x=f[0].timestamp,g=f[f.length-1].timestamp,j=f.map(Ha);return o.jsx(Sa,{data:j,startTimestamp:x,endTimestamp:g})}return"Unknown notification type"},e[7]=n,e[8]=l,e[9]=s,e[10]=i,e[11]=m):m=e[11];const p=m;let _;r="flex flex-col gap-4 px-2 pb-10",e[12]!==p?(_=f=>o.jsx(De.Fragment,{children:p(f)},f[0].id),e[12]=p,e[13]=_):_=e[13],c=u.map(_),e[0]=n,e[1]=t,e[2]=l,e[3]=s,e[4]=i,e[5]=r,e[6]=c}else r=e[5],c=e[6];return e[14]!==r||e[15]!==c?(d=o.jsx("div",{className:r,children:c}),e[14]=r,e[15]=c,e[16]=d):d=e[16],d};function dn(a){return a[0].type==="connection_change"}function Ha(a){return a.data.update}function Ga(a){return`
8
8
  I am currently editing a marimo notebook.
9
9
  You can read or write to the notebook at ${a}
10
10
 
@@ -55,7 +55,7 @@ var xo=Object.defineProperty;var Nn=P=>{throw TypeError(P)};var fo=(P,F,W)=>F in
55
55
  ## Best Practices
56
56
 
57
57
  <data_handling>
58
- - Use pandas for data manipulation
58
+ - Use polars for data manipulation
59
59
  - Implement proper data validation
60
60
  - Handle missing values appropriately
61
61
  - Use efficient data structures
@@ -65,7 +65,7 @@ var xo=Object.defineProperty;var Nn=P=>{throw TypeError(P)};var fo=(P,F,W)=>F in
65
65
  <visualization>
66
66
  - For matplotlib: use plt.gca() as the last expression instead of plt.show()
67
67
  - For plotly: return the figure object directly
68
- - For altair: return the chart object directly
68
+ - For altair: return the chart object directly. Add tooltips where appropriate. You can pass polars dataframes directly to altair.
69
69
  - Include proper labels, titles, and color schemes
70
70
  - Make visualizations interactive where appropriate
71
71
  </visualization>
@@ -79,7 +79,7 @@ var xo=Object.defineProperty;var Nn=P=>{throw TypeError(P)};var fo=(P,F,W)=>F in
79
79
  </ui_elements>
80
80
 
81
81
  <sql>
82
- - When writing duckdb, prefer using marimo's SQL cells, which start with _df = mo.sql(query)
82
+ - When writing duckdb, prefer using marimo's SQL cells, which start with df = mo.sql(f"""<your query>""") for DuckDB, or df = mo.sql(f"""<your query>""", engine=engine) for other SQL engines.
83
83
  - See the SQL with duckdb example for an example on how to do this
84
84
  - Don't add comments in cells that use mo.sql()
85
85
  - Consider using \`vega_datasets\` for common example datasets
@@ -133,7 +133,7 @@ var xo=Object.defineProperty;var Nn=P=>{throw TypeError(P)};var fo=(P,F,W)=>F in
133
133
  ## Examples
134
134
 
135
135
  <example title="Markdown ccell">
136
- ${Ie([`
136
+ ${Ce([`
137
137
  mo.md("""
138
138
  # Hello world
139
139
  This is a _markdown_ **cell**.
@@ -142,9 +142,10 @@ var xo=Object.defineProperty;var Nn=P=>{throw TypeError(P)};var fo=(P,F,W)=>F in
142
142
  </example>
143
143
 
144
144
  <example title="Basic UI with reactivity">
145
- ${Ie([`
145
+ ${Ce([`
146
146
  import marimo as mo
147
- import matplotlib.pyplot as plt
147
+ import altair as alt
148
+ import polars as pl
148
149
  import numpy as np
149
150
  `,`
150
151
  n_points = mo.ui.slider(10, 100, value=50, label="Number of points")
@@ -153,68 +154,75 @@ var xo=Object.defineProperty;var Nn=P=>{throw TypeError(P)};var fo=(P,F,W)=>F in
153
154
  x = np.random.rand(n_points.value)
154
155
  y = np.random.rand(n_points.value)
155
156
 
156
- plt.figure(figsize=(8, 6))
157
- plt.scatter(x, y, alpha=0.7)
158
- plt.title(f"Scatter plot with {n_points.value} points")
159
- plt.xlabel("X axis")
160
- plt.ylabel("Y axis")
161
- plt.gca()
157
+ df = pl.DataFrame({"x": x, "y": y})
158
+
159
+ chart = alt.Chart(df).mark_circle(opacity=0.7).encode(
160
+ x=alt.X('x', title='X axis'),
161
+ y=alt.Y('y', title='Y axis')
162
+ ).properties(
163
+ title=f"Scatter plot with {n_points.value} points",
164
+ width=400,
165
+ height=300
166
+ )
167
+
168
+ chart
162
169
  `])}
163
170
  </example>
164
171
 
165
172
  <example title="Data explorer">
166
- ${Ie([`
173
+ ${Ce([`
167
174
  import marimo as mo
168
- import pandas as pd
175
+ import polars as pl
169
176
  from vega_datasets import data
170
177
  `,`
171
- cars_df = data.cars()
178
+ cars_df = pl.DataFrame(data.cars())
172
179
  mo.ui.data_explorer(cars_df)
173
180
  `])}
174
181
  </example>
175
182
 
176
183
  <example title="Multiple UI elements">
177
- ${Ie([`
184
+ ${Ce([`
178
185
  import marimo as mo
179
- import pandas as pd
180
- import matplotlib.pyplot as plt
181
- import seaborn as sns
186
+ import polars as pl
187
+ import altair as alt
182
188
  `,`
183
- iris = sns.load_dataset('iris')
189
+ iris = pl.read_csv("hf://datasets/scikit-learn/iris/Iris.csv")
184
190
  `,`
185
191
  species_selector = mo.ui.dropdown(
186
- options=["All"] + iris["species"].unique().tolist(),
192
+ options=["All"] + iris["Species"].unique().to_list(),
187
193
  value="All",
188
- label="Species"
194
+ label="Species",
189
195
  )
190
196
  x_feature = mo.ui.dropdown(
191
- options=iris.select_dtypes('number').columns.tolist(),
192
- value="sepal_length",
193
- label="X Feature"
197
+ options=iris.select(pl.col(pl.Float64, pl.Int64)).columns,
198
+ value="SepalLengthCm",
199
+ label="X Feature",
194
200
  )
195
201
  y_feature = mo.ui.dropdown(
196
- options=iris.select_dtypes('number').columns.tolist(),
197
- value="sepal_width",
198
- label="Y Feature"
202
+ options=iris.select(pl.col(pl.Float64, pl.Int64)).columns,
203
+ value="SepalWidthCm",
204
+ label="Y Feature",
199
205
  )
200
206
  mo.hstack([species_selector, x_feature, y_feature])
201
207
  `,`
202
- filtered_data = iris if species_selector.value == "All" else iris[iris["species"] == species_selector.value]
203
-
204
- plt.figure(figsize=(10, 6))
205
- sns.scatterplot(
206
- data=filtered_data,
207
- x=x_feature.value,
208
- y=y_feature.value,
209
- hue="species"
208
+ filtered_data = iris if species_selector.value == "All" else iris.filter(pl.col("Species") == species_selector.value)
209
+
210
+ chart = alt.Chart(filtered_data).mark_circle().encode(
211
+ x=alt.X(x_feature.value, title=x_feature.value),
212
+ y=alt.Y(y_feature.value, title=y_feature.value),
213
+ color='Species'
214
+ ).properties(
215
+ title=f"{y_feature.value} vs {x_feature.value}",
216
+ width=500,
217
+ height=400
210
218
  )
211
- plt.title(f"{y_feature.value} vs {x_feature.value}")
212
- plt.gca()
219
+
220
+ chart
213
221
  `])}
214
222
  </example>
215
223
 
216
224
  <example title="Conditional Outputs">
217
- ${Ie([`
225
+ ${Ce([`
218
226
  mo.stop(not data.value, mo.md("No data to display"))
219
227
 
220
228
  if mode.value == "scatter":
@@ -225,16 +233,23 @@ var xo=Object.defineProperty;var Nn=P=>{throw TypeError(P)};var fo=(P,F,W)=>F in
225
233
  </example>
226
234
 
227
235
  <example title="Interactive chart with Altair">
228
- ${Ie([`
236
+ ${Ce([`
229
237
  import marimo as mo
230
238
  import altair as alt
231
- import pandas as pd
239
+ import polars as pl
232
240
  `,`# Load dataset
233
- cars_df = pd.read_csv('<https://raw.githubusercontent.com/vega/vega-datasets/master/data/cars.json>')
234
- _chart = alt.Chart(cars_df).mark_point().encode(
235
- x='Horsepower',
236
- y='Miles_per_Gallon',
237
- color='Origin',
241
+ weather = pl.read_csv("https://raw.githubusercontent.com/vega/vega-datasets/refs/heads/main/data/weather.csv")
242
+ weather_dates = weather.with_columns(
243
+ pl.col("date").str.strptime(pl.Date, format="%Y-%m-%d")
244
+ )
245
+ _chart = (
246
+ alt.Chart(weather_dates)
247
+ .mark_point()
248
+ .encode(
249
+ x="date:T",
250
+ y="temp_max",
251
+ color="location",
252
+ )
238
253
  )
239
254
  `,`chart = mo.ui.altair_chart(_chart)
240
255
  chart`,`
@@ -243,7 +258,7 @@ chart`,`
243
258
  </example>
244
259
 
245
260
  <example title="Run Button Example">
246
- ${Ie(["import marimo as mo",`
261
+ ${Ce(["import marimo as mo",`
247
262
  first_button = mo.ui.run_button(label="Option 1")
248
263
  second_button = mo.ui.run_button(label="Option 2")
249
264
  [first_button, second_button]`,`
@@ -256,13 +271,17 @@ chart`,`
256
271
  </example>
257
272
 
258
273
  <example title="SQL with duckdb">
259
- ${Ie([`import marimo as mo
260
- import pandas as pd`,"cars_df = pd.read_csv('<https://raw.githubusercontent.com/vega/vega-datasets/master/data/cars.json>')",'_df = mo.sql("SELECT * from cars_df WHERE Miles_per_Gallon > 20")'])}
261
- </example>`}function Ie(a){return a.map(e=>{return`
274
+ ${Ce([`import marimo as mo
275
+ import polars as pl`,"weather = pl.read_csv('https://raw.githubusercontent.com/vega/vega-datasets/refs/heads/main/data/weather.csv')",`seattle_weather_df = mo.sql(
276
+ f"""
277
+ SELECT * FROM weather WHERE location = 'Seattle';
278
+ """
279
+ )`])}
280
+ </example>`}function Ce(a){return a.map(e=>{return`
262
281
  @app.cell
263
282
  def _():
264
283
  ${t=e,t.trim().split(`
265
284
  `).map(n=>(" "+n).trimEnd()).join(`
266
285
  `)}
267
286
  return
268
- `;var t}).join("")}const ie=De.get("agents"),Ja=["image/*","text/*"],mn=k.memo(a=>{const e=T.c(4),{currentAgentId:t}=a;let n,s;return e[0]!==t?(n=t?yt(t):"Agents",e[0]=t,e[1]=n):n=e[1],e[2]!==n?(s=o.jsx("span",{className:"text-sm font-medium",children:n}),e[2]=n,e[3]=s):s=e[3],s});mn.displayName="AgentTitle";const un=k.memo(a=>{const e=T.c(4),{connectionState:t,onConnect:n,onDisconnect:s}=a,i=t.status==="connected",l=i?s:n,r=t.status==="connecting",c=i?"Disconnect":"Connect";let d;return e[0]!==l||e[1]!==r||e[2]!==c?(d=o.jsx(se,{variant:"outline",size:"xs",onClick:l,disabled:r,children:c}),e[0]=l,e[1]=r,e[2]=c,e[3]=d):d=e[3],d});un.displayName="ConnectionControl";const pn=k.memo(a=>{const e=T.c(9),{currentAgentId:t,connectionStatus:n,shouldShowConnectionControl:s}=a;let i,l,r,c;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx(Ct,{className:"h-4 w-4 text-muted-foreground"}),e[0]=i):i=e[0],e[1]!==t?(l=o.jsx(mn,{currentAgentId:t}),e[1]=t,e[2]=l):l=e[2],e[3]!==n||e[4]!==s?(r=s&&o.jsx(Xt,{status:n}),e[3]=n,e[4]=s,e[5]=r):r=e[5],e[6]!==l||e[7]!==r?(c=o.jsxs("div",{className:"flex items-center gap-2",children:[i,l,r]}),e[6]=l,e[7]=r,e[8]=c):c=e[8],c});pn.displayName="HeaderInfo";const ft=k.memo(a=>{const e=T.c(19),{connectionState:t,currentAgentId:n,onConnect:s,onDisconnect:i,onRestartThread:l,hasActiveSession:r,shouldShowConnectionControl:c}=a;let d,m,u,p,_;return e[0]!==t.status||e[1]!==n||e[2]!==c?(d=o.jsx(pn,{currentAgentId:n,connectionStatus:t.status,shouldShowConnectionControl:c}),e[0]=t.status,e[1]=n,e[2]=c,e[3]=d):d=e[3],e[4]!==t.status||e[5]!==r||e[6]!==l?(m=r&&t.status==="connected"&&l&&o.jsxs(se,{variant:"outline",size:"xs",onClick:l,title:"Restart thread (create new session)",children:[o.jsx(Qo,{className:"h-3 w-3 mr-1"}),"Restart"]}),e[4]=t.status,e[5]=r,e[6]=l,e[7]=m):m=e[7],e[8]!==t||e[9]!==s||e[10]!==i||e[11]!==c?(u=c&&o.jsx(un,{connectionState:t,onConnect:s,onDisconnect:i}),e[8]=t,e[9]=s,e[10]=i,e[11]=c,e[12]=u):u=e[12],e[13]!==m||e[14]!==u?(p=o.jsxs("div",{className:"flex items-center gap-2",children:[m,u]}),e[13]=m,e[14]=u,e[15]=p):p=e[15],e[16]!==d||e[17]!==p?(_=o.jsxs("div",{className:"flex border-b px-3 py-2 justify-between shrink-0 items-center",children:[d,p]}),e[16]=d,e[17]=p,e[18]=_):_=e[18],_});ft.displayName="AgentPanelHeader";const hn=k.memo(a=>{const e=T.c(15),{currentAgentId:t,connectionState:n,onConnect:s,onDisconnect:i}=a,l=Mn(Nt);let r,c,d,m,u,p;return e[0]!==n||e[1]!==t||e[2]!==s||e[3]!==i?(r=o.jsx(ft,{connectionState:n,currentAgentId:t,onConnect:s,onDisconnect:i,hasActiveSession:!1}),e[0]=n,e[1]=t,e[2]=s,e[3]=i,e[4]=r):r=e[4],e[5]===Symbol.for("react.memo_cache_sentinel")?(c=o.jsx(xt,{}),e[5]=c):c=e[5],e[6]===Symbol.for("react.memo_cache_sentinel")?(d=o.jsx(Fn,{title:"No Agent Sessions",description:"Create a new session to start a conversation",action:o.jsx(et,{className:"border-y-1 rounded"}),icon:o.jsx(Ct,{})}),e[6]=d):d=e[6],e[7]!==n.status||e[8]!==l?(m=n.status==="disconnected"&&o.jsx(Ke,{className:"border-t pt-6",title:"Connect to an agent",description:o.jsxs(o.Fragment,{children:["Start agents by running these commands in your terminal:",o.jsx("br",{}),"Note: This must be in the directory"," ",wt.dirname(l??"")]})}),e[7]=n.status,e[8]=l,e[9]=m):m=e[9],e[10]!==m?(u=o.jsx("div",{className:"flex-1 flex items-center justify-center p-6",children:o.jsxs("div",{className:"max-w-md w-full space-y-6",children:[d,m]})}),e[10]=m,e[11]=u):u=e[11],e[12]!==r||e[13]!==u?(p=o.jsxs("div",{className:"flex flex-col h-full",children:[r,c,u]}),e[12]=r,e[13]=u,e[14]=p):p=e[14],p});hn.displayName="EmptyState";const xn=k.memo(a=>{const e=T.c(10),{isLoading:t,isRequestingPermission:n,onStop:s}=a;if(!t)return null;let i,l,r,c,d,m;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx(Zo,{size:"small",className:"text-primary"}),e[0]=i):i=e[0],e[1]!==n?(l=o.jsxs("div",{className:"flex items-center gap-2",children:[i,n?o.jsx("span",{children:"Waiting for permission to continue..."}):o.jsx("span",{children:"Agent is working..."})]}),e[1]=n,e[2]=l):l=e[2],e[3]===Symbol.for("react.memo_cache_sentinel")?(r=o.jsx(F,{className:"h-3 w-3 mr-1"}),c=o.jsx("span",{className:"text-xs",children:"Stop"}),e[3]=r,e[4]=c):(r=e[3],c=e[4]),e[5]!==s?(d=o.jsx("div",{className:"flex items-center gap-2",children:o.jsxs(se,{size:"sm",variant:"outline",onClick:s,className:"h-6 px-2",children:[r,c]})}),e[5]=s,e[6]=d):d=e[6],e[7]!==l||e[8]!==d?(m=o.jsx("div",{className:"px-3 py-2 border-t bg-muted/30 flex-shrink-0",children:o.jsxs("div",{className:"flex items-center justify-between text-xs text-muted-foreground",children:[l,d]})}),e[7]=l,e[8]=d,e[9]=m):m=e[9],m});xn.displayName="LoadingIndicator";const fn=k.memo(a=>{const e=T.c(63),{isLoading:t,activeSessionId:n,promptValue:s,commands:i,onPromptValueChange:l,onPromptSubmit:r,onAddFiles:c,onStop:d,fileInputRef:m,sessionMode:u,onModeChange:p}=a,_=k.useRef(null);let x;e:{if(!i){x=void 0;break e}let $,B,ye;e[0]===Symbol.for("react.memo_cache_sentinel")?($=/^\/(\w+)?/,e[0]=$):$=e[0],e[1]!==i?(B=i.map(Qa),e[1]=i,e[2]=B):B=e[2],e[3]!==B?(ye={triggerCompletionRegex:$,completions:B},e[3]=B,e[4]=ye):ye=e[4],x=ye}const f=x;let g;e[5]!==r||e[6]!==s?(g=()=>{s.trim()&&r(void 0,s)},e[5]=r,e[6]=s,e[7]=g):g=e[7];const j=ae(g);let N;e[8]===Symbol.for("react.memo_cache_sentinel")?(N=()=>{Ko(_)},e[8]=N):N=e[8];const S=ae(N),I=(t||!n)&&"opacity-50 pointer-events-none";let R;e[9]!==I?(R=me("px-3 py-2 min-h-[80px]",I),e[9]=I,e[10]=R):R=e[10];const U=t?Rn.NOOP:l,q=t?"Processing...":`Ask anything, ${Xo} to include context about tables or dataframes`,A=t?"opacity-50 pointer-events-none":"";let C,z,Z,K,O,xe,ce,Ne,fe,ge,Ue,ke,Te;e[11]!==c||e[12]!==r||e[13]!==f||e[14]!==s||e[15]!==U||e[16]!==q||e[17]!==A?(C=o.jsx(ei,{inputRef:_,value:s,onChange:U,onSubmit:r,additionalCompletions:f,onClose:Rn.NOOP,onAddFiles:c,placeholder:q,className:A,maxHeight:"120px"}),e[11]=c,e[12]=r,e[13]=f,e[14]=s,e[15]=U,e[16]=q,e[17]=A,e[18]=C):C=e[18],e[19]!==R||e[20]!==C?(z=o.jsx("div",{className:R,children:C}),e[19]=R,e[20]=C,e[21]=z):z=e[21],e[22]!==p||e[23]!==u?(Z=u&&p&&o.jsx(gn,{sessionMode:u,onModeChange:p}),e[22]=p,e[23]=u,e[24]=Z):Z=e[24],e[25]!==Z?(K=o.jsx("div",{className:"flex items-center gap-2",children:Z}),e[25]=Z,e[26]=K):K=e[26],e[27]===Symbol.for("react.memo_cache_sentinel")?(O=o.jsx(ti,{className:"h-3.5 w-3.5"}),e[27]=O):O=e[27],e[28]!==S?(xe=o.jsx(it,{content:"Add context",children:o.jsx(se,{variant:"text",size:"icon",onClick:S,children:O})}),e[28]=S,e[29]=xe):xe=e[29],e[30]!==m?(ce=()=>{var $;return($=m.current)==null?void 0:$.click()},e[30]=m,e[31]=ce):ce=e[31],e[32]===Symbol.for("react.memo_cache_sentinel")?(Ne=o.jsx(ni,{className:"h-3.5 w-3.5"}),e[32]=Ne):Ne=e[32],e[33]!==ce?(fe=o.jsx(it,{content:"Attach a file",children:o.jsx(se,{variant:"text",size:"icon",className:"cursor-pointer",onClick:ce,title:"Attach a file",children:Ne})}),e[33]=ce,e[34]=fe):fe=e[34],e[35]!==c?(ge=$=>{$.target.files&&c([...$.target.files])},e[35]=c,e[36]=ge):ge=e[36],e[37]===Symbol.for("react.memo_cache_sentinel")?(Ue=Ja.join(","),e[37]=Ue):Ue=e[37],e[38]!==m||e[39]!==ge?(ke=o.jsx(si,{ref:m,type:"file",multiple:!0,hidden:!0,onChange:ge,accept:Ue}),e[38]=m,e[39]=ge,e[40]=ke):ke=e[40],e[41]!==fe||e[42]!==ke?(Te=o.jsxs(o.Fragment,{children:[fe,ke]}),e[41]=fe,e[42]=ke,e[43]=Te):Te=e[43];const M=t?"Stop":"Submit",E=t?d:j,ue=!t&&!s.trim();let re,be,G,L,J,V;return e[44]!==t?(re=t?o.jsx(ai,{className:"h-3 w-3 fill-current"}):o.jsx(oi,{className:"h-3 w-3"}),e[44]=t,e[45]=re):re=e[45],e[46]!==E||e[47]!==ue||e[48]!==re?(be=o.jsx(se,{variant:"text",size:"sm",className:"h-6 w-6 p-0 hover:bg-muted/30 cursor-pointer",onClick:E,disabled:ue,children:re}),e[46]=E,e[47]=ue,e[48]=re,e[49]=be):be=e[49],e[50]!==M||e[51]!==be?(G=o.jsx(it,{content:M,children:be}),e[50]=M,e[51]=be,e[52]=G):G=e[52],e[53]!==xe||e[54]!==Te||e[55]!==G?(L=o.jsxs("div",{className:"flex flex-row",children:[xe,Te,G]}),e[53]=xe,e[54]=Te,e[55]=G,e[56]=L):L=e[56],e[57]!==K||e[58]!==L?(J=o.jsx(ii,{children:o.jsxs("div",{className:"px-3 py-2 border-t border-border/20 flex flex-row items-center justify-between",children:[K,L]})}),e[57]=K,e[58]=L,e[59]=J):J=e[59],e[60]!==z||e[61]!==J?(V=o.jsxs("div",{className:"border-t bg-background flex-shrink-0",children:[z,J]}),e[60]=z,e[61]=J,e[62]=V):V=e[62],V});fn.displayName="PromptArea";const gn=k.memo(a=>{const e=T.c(28),{sessionMode:t,onModeChange:n}=a;let s,i,l,r,c,d,m,u,p,_,x,f;if(e[0]!==n||e[1]!==(t==null?void 0:t.availableModes)||e[2]!==(t==null?void 0:t.currentModeId)){p=Symbol.for("react.early_return_sentinel");e:{const g=(t==null?void 0:t.availableModes)||[],j=t==null?void 0:t.currentModeId;if(g.length===0){p=null;break e}const N=g.map(Xa);let S;e[12]!==j?(S=R=>R.value===j,e[12]=j,e[13]=S):S=e[13];const I=N.find(S);l=ci,d=j,m=n,u=o.jsx(ri,{className:"h-6 text-xs border-border shadow-none! ring-0! bg-muted hover:bg-muted/30 py-0 px-2 gap-1 capitalize",children:(I==null?void 0:I.label)??j}),i=di,s=mi,e[14]===Symbol.for("react.memo_cache_sentinel")?(r=o.jsx(ui,{children:"Agent Mode"}),e[14]=r):r=e[14],c=N.map(Za)}e[0]=n,e[1]=t==null?void 0:t.availableModes,e[2]=t==null?void 0:t.currentModeId,e[3]=s,e[4]=i,e[5]=l,e[6]=r,e[7]=c,e[8]=d,e[9]=m,e[10]=u,e[11]=p}else s=e[3],i=e[4],l=e[5],r=e[6],c=e[7],d=e[8],m=e[9],u=e[10],p=e[11];return p!==Symbol.for("react.early_return_sentinel")?p:(e[15]!==s||e[16]!==r||e[17]!==c?(_=o.jsxs(s,{children:[r,c]}),e[15]=s,e[16]=r,e[17]=c,e[18]=_):_=e[18],e[19]!==i||e[20]!==_?(x=o.jsx(i,{children:_}),e[19]=i,e[20]=_,e[21]=x):x=e[21],e[22]!==l||e[23]!==d||e[24]!==m||e[25]!==u||e[26]!==x?(f=o.jsxs(l,{value:d,onValueChange:m,children:[u,x]}),e[22]=l,e[23]=d,e[24]=m,e[25]=u,e[26]=x,e[27]=f):f=e[27],f)});gn.displayName="ModeSelector";const bn=k.memo(a=>{const e=T.c(32),{hasNotifications:t,agentId:n,connectionState:s,notifications:i,pendingPermission:l,onResolvePermission:r,onRetryConnection:c,onRetryLastAction:d,onDismissError:m,sessionId:u}=a,[p,_]=k.useState(!0),x=k.useRef(null),f=s.status==="disconnected";let g;e[0]===Symbol.for("react.memo_cache_sentinel")?(g=()=>{const O=x.current;if(!O)return;const{scrollTop:xe,scrollHeight:ce,clientHeight:Ne}=O,fe=!(ce>Ne)||Math.abs(ce-Ne-xe)<5;_(fe)},e[0]=g):g=e[0];const j=ae(g);let N;e[1]===Symbol.for("react.memo_cache_sentinel")?(N=()=>{const O=x.current;O&&O.scrollTo({top:O.scrollHeight,behavior:"smooth"})},e[1]=N):N=e[1];const S=ae(N);let I,R,U,q,A,C;e[2]!==p||e[3]!==i.length||e[4]!==S?(I=()=>{if(p&&i.length>0){const O=setTimeout(S,100);return()=>clearTimeout(O)}},R=[i.length,p,S],e[2]=p,e[3]=i.length,e[4]=S,e[5]=I,e[6]=R):(I=e[5],R=e[6]),k.useEffect(I,R),e[7]!==r||e[8]!==l?(U=l&&o.jsx("div",{className:"p-3 border-b",children:o.jsx(Zt,{permission:l,onResolve:r})}),e[7]=r,e[8]=l,e[9]=U):U=e[9],e[10]!==u?(q=u&&o.jsxs("div",{className:"text-xs text-muted-foreground mb-2 px-2",children:["Session ID: ",u]}),e[10]=u,e[11]=q):q=e[11],e[12]!==n||e[13]!==s.status||e[14]!==t||e[15]!==f||e[16]!==i||e[17]!==m||e[18]!==c||e[19]!==d?(A=t?o.jsx("div",{className:"space-y-2",children:o.jsx(Ha,{isConnected:s.status==="connected",notifications:i,onRetryConnection:c,onRetryLastAction:d,onDismissError:m})}):o.jsxs("div",{className:"flex items-center justify-center h-full min-h-[200px] flex-col",children:[o.jsx(Fn,{title:"Waiting for agent",description:"Your AI agent will appear here when active",icon:o.jsx(Ct,{})}),f&&n&&o.jsx(Ke,{className:"border-t pt-6 px-5",title:"Make sure you're connected to an agent",description:"Run this command in your terminal:",agents:[n]}),f&&o.jsx(se,{variant:"outline",onClick:c,type:"button",className:"mt-4",children:"Retry"})]}),e[12]=n,e[13]=s.status,e[14]=t,e[15]=f,e[16]=i,e[17]=m,e[18]=c,e[19]=d,e[20]=A):A=e[20],e[21]!==j||e[22]!==q||e[23]!==A?(C=o.jsxs("div",{ref:x,className:"flex-1 bg-muted/20 w-full flex flex-col overflow-y-auto p-2",onScroll:j,children:[q,A]}),e[21]=j,e[22]=q,e[23]=A,e[24]=C):C=e[24];const z=!p&&t;let Z,K;return e[25]!==S||e[26]!==z?(Z=o.jsx(on,{isVisible:z,onScrollToBottom:S}),e[25]=S,e[26]=z,e[27]=Z):Z=e[27],e[28]!==Z||e[29]!==U||e[30]!==C?(K=o.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden flex-shrink-0 relative",children:[U,C,Z]}),e[28]=Z,e[29]=U,e[30]=C,e[31]=K):K=e[31],K});bn.displayName="ChatContent";const gt="_skip_auto_connect_";function yn(){const a=jt.get(Nt);return a?wt.dirname(a):""}qn=()=>{const[a,e]=k.useState(!1),[t,n]=k.useState(""),[s,i]=k.useState(),l=k.useRef(null),[r]=rt(ht),[c,d]=rt(Oe),m=r?(u=r.agentId,Ze[u].webSocketUrl):gt;var u;const{sendUpdateFile:p,sendFileDetails:_}=Jo(),x=k.useRef(!1),f=(function(M){const{wsUrl:E,autoConnect:ue=!0,reconnectAttempts:re=3,reconnectDelay:be=2e3,clientOptions:G={}}=M,{getConnection:L,notifications:J,activeSessionId:V,agentCapabilities:$,sessionModes:B,setActiveModeId:ye,setModeState:Me,setActiveSessionId:nt,setConnection:st,setActiveConnection:at,addNotification:Se,clearNotifications:Ka}=pa(),[Ye,ot]=k.useState(null),[eo,vn]=k.useState(null),[to,no]=k.useState(!1),[so,_n]=k.useState([]),Ee=k.useRef(null),$e=k.useRef(null),ao=k.useRef(null),oo=k.useRef(!1),io=Ce((H,de)=>{st(de,H),Se({type:"connection_change",data:H})}),ro=Ce((H,de)=>{Se({type:"error",data:H})}),lo=Ce(H=>{Se({type:"session_notification",data:H}),H.update.sessionUpdate==="available_commands_update"&&_n(H.update.availableCommands)}),co=Ce(H=>{ot(H)}),wn=Ce(async()=>{Ee.current||(Ee.current=new da({onConnectionStateChange:io,onError:ro,reconnectAttempts:re,reconnectDelay:be})),at(E);const{readable:H,writable:de}=await Ee.current.connect(E),po=new sa(ne=>{const oe=new ia(ne,{...G,onRequestPermission:ve=>{var Ge;(Ge=G==null?void 0:G.onRequestPermission)==null||Ge.call(G,ve),co(ve)},onSessionNotification:ve=>{var Ge;(Ge=G==null?void 0:G.onSessionNotification)==null||Ge.call(G,ve),lo(ve)}});return $e.current=oe,oe},de,H),ho=new ra(po,{on_initialize_response:ne=>{const oe=ne.agentCapabilities;console.log("[acp] Agent capabilities",oe);const ve=L(E);st(E,ve.state,oe)},on_newSession_response:ne=>{console.log("[acp] New session created",ne);const oe=ne.sessionId;nt(oe),Me(oe,ne.modes)},on_loadSession_response:(ne,oe)=>{console.log("[acp] Session resumed",oe);const ve=oe.sessionId;nt(ve),Me(ve,ne.modes)},on_prompt_start:ne=>{for(const oe of ne.prompt)Se({type:"session_notification",data:{sessionId:ne.sessionId,update:{sessionUpdate:"user_message_chunk",content:oe}}})},on_setSessionMode_start:ne=>{console.log("[acp] Session mode set",ne);const oe=ne.sessionId;ye(oe,ne.modeId)}});vn(ho)}),jn=Ce(H=>{const de=H||E;Ee.current&&(H?Ee.current.disconnect(H):(Ee.current.disconnect(de),Ee.current=null,$e.current=null,vn(null))),H||(ot(null),_n([]),oo.current=!1,ao.current=null,no(!1))}),mo=Ce(H=>{if(Ye&&$e.current){const de=Ye.deferredId;de&&$e.current.resolvePermission(de,H)}ot(null)}),uo=Ce(H=>{if(Ye&&$e.current){const de=Ye.deferredId;de&&$e.current.rejectPermission(de,H)}ot(null)});return k.useEffect(()=>(ue&&wn().catch(console.error),()=>{jn()}),[ue,E]),{connect:wn,disconnect:jn,connectionState:L(E).state,activeSessionId:V,notifications:V&&J[V]||[],isSessionLoading:to,clearNotifications:Ka,pendingPermission:Ye,resolvePermission:mo,rejectPermission:uo,agent:eo,agentCapabilities:$,sessionMode:V?B[V]:null,availableCommands:so}})({wsUrl:m,clientOptions:{readTextFile:M=>(ie.debug("Agent requesting file read",{path:M.path}),_({path:M.path}).then(E=>({content:E.contents||""}))),writeTextFile:M=>(ie.debug("Agent requesting file write",{path:M.path,contentLength:M.content.length}),p({path:M.path,contents:M.content}).then(()=>({})))},autoConnect:!1}),{connect:g,disconnect:j,connectionState:N,notifications:S,pendingPermission:I,availableCommands:R,resolvePermission:U,sessionMode:q,activeSessionId:A,agent:C}=f;k.useEffect(()=>{C==null||C.initialize({protocolVersion:1,clientCapabilities:{fs:{readTextFile:!0,writeTextFile:!0}}})},[C]),k.useEffect(()=>{if(m!==gt)return ie.debug("Auto-connecting to agent",{sessionId:A}),g(),()=>{}},[m]);const z=ae(async()=>{if(x.current||!C)return;A&&await C.cancel({sessionId:A}).catch(E=>{ie.error("Failed to cancel active session",{error:E})}),ie.debug("Creating new agent session",{}),x.current=!0;const M=await C.newSession({cwd:yn(),mcpServers:[]}).finally(()=>{x.current=!1});d(E=>en(E,M.sessionId))}),Z=ae(async M=>{if(C){if(ie.debug("Resuming agent session",{sessionId:M}),!C.loadSession)throw new Error("Agent does not support loading sessions");await C.loadSession({sessionId:M,cwd:yn(),mcpServers:[]}),d(E=>en(E,M))}}),K=N.status==="connected",O=r==null?void 0:r.externalAgentSessionId;k.useEffect(()=>{!K||!r||!C||A&&O||(async()=>{try{if(O)try{await Z(O)}catch(M){ie.debug("Failed to resume session, creating new session",{externalSessionId:O,error:M}),await z()}else await z()}catch(M){ie.error("Failed to create or resume session:",M)}})()},[K,C,O,A]);const xe=ae(async(M,E)=>{if(!A||!C||a)return;ie.debug("Submitting prompt to agent",{sessionId:A}),e(!0),n(""),i(void 0),r!=null&&r.title.startsWith("New ")&&d(L=>(function(J,V){const $=J.activeTabId;return $?{...J,sessions:J.sessions.map(B=>B.tabId===$?{...B,title:Kt(V)}:B)}:J})(L,E));const ue=jt.get(Nt);if(!ue)return void St({title:"Notebook must be named",description:"Please name the notebook to use the agent",variant:"danger"});const re=[{type:"text",text:E}],{contextBlocks:be,attachmentBlocks:G}=await(async function(L){const J=[],V=[];if(!L.includes("@"))return{contextBlocks:J,attachmentBlocks:V};try{const $=Yo(jt),B=$.parseAllContextIds(L);if(B.length===0)return{contextBlocks:J,attachmentBlocks:V};const ye=$.formatContextForAI(B);ye.trim()&&J.push({type:"resource",resource:{uri:"context.md",mimeType:"text/markdown",text:ye}});try{const Me=await $.getAttachmentsForContext(B);if(Me.length>0){const nt=await(async function(st){const at=[];for(const Se of st)at.push({type:"resource_link",uri:Se.url,mimeType:Se.mediaType,name:Se.filename??Se.url});return at})(Me);V.push(...nt),De.debug("Added AI context attachments",{count:Me.length})}}catch(Me){De.error("Error getting AI context attachments",{error:Me})}De.debug("Parsed context for agent",{contextIds:B,contextLength:ye.length,attachmentCount:V.length})}catch($){De.error("Error parsing context for agent",{error:$})}return{contextBlocks:J,attachmentBlocks:V}})(E);if(re.push(...be),re.push(...G),s&&s.length>0){const L=await(async function(J){const V=[];for(const $ of J)try{const B=await Go($,"dataUrl");V.push({type:"resource_link",uri:B,mimeType:$.type,name:$.name})}catch(B){De.error("Error converting file to resource link",{fileName:$.name,error:B})}return V})(s);re.push(...L)}S.some(L=>L.type==="session_notification"&&L.data.update.sessionUpdate==="user_message_chunk")||re.push({type:"resource_link",uri:ue,mimeType:"text/x-python",name:ue},{type:"resource",resource:{uri:"marimo_rules.md",mimeType:"text/markdown",text:Ga(ue)}});try{await C.prompt({sessionId:A,prompt:re})}catch(L){ie.error("Failed to send prompt",{error:L})}finally{e(!1)}}),ce=ae(async()=>{A&&C&&(await C.cancel({sessionId:A}),e(!1))}),Ne=ae(M=>{M.length!==0&&i(E=>[...E??[],...M])}),fe=ae(M=>{s&&i(s.filter(E=>E!==M))}),ge=ae(()=>{ie.debug("Manual connect requested",{currentStatus:N.status}),g()}),Ue=ae(()=>{ie.debug("Manual disconnect requested",{sessionId:A,currentStatus:N.status}),j()}),ke=ae(M=>{var E;ie.debug("Mode change requested",{sessionId:A,mode:M}),C?C.setSessionMode?(E=C.setSessionMode)==null||E.call(C,{sessionId:A,modeId:M}):St({title:"Mode change not supported",description:"The agent does not support mode changes",variant:"danger"}):St({title:"Agent not connected",description:"Please connect to an agent to change the mode",variant:"danger"})}),Te=S.length>0;return c.sessions.length>0?o.jsxs("div",{className:"flex flex-col flex-1 overflow-hidden mo-agent-panel",children:[o.jsx(ft,{connectionState:N,currentAgentId:r==null?void 0:r.agentId,onConnect:ge,onDisconnect:Ue,onRestartThread:z,hasActiveSession:!0,shouldShowConnectionControl:m!==gt}),o.jsx(xt,{}),o.jsx(bn,{agentId:r==null?void 0:r.agentId,sessionId:A,hasNotifications:Te,connectionState:N,notifications:S,pendingPermission:I,onResolvePermission:M=>{ie.debug("Resolving permission request",{sessionId:A,option:M}),U(M)},onRetryConnection:ge}),o.jsx(xn,{isLoading:a,isRequestingPermission:!!I,onStop:ce}),s&&s.length>0&&o.jsx("div",{className:"flex flex-row gap-1 flex-wrap p-3 border-t",children:s.map(M=>o.jsx(hi,{file:M,onRemove:()=>fe(M)},M.name))}),o.jsx(fn,{isLoading:a,activeSessionId:A,promptValue:t,onPromptValueChange:n,onPromptSubmit:xe,onAddFiles:Ne,onStop:ce,fileInputRef:l,commands:R,sessionMode:q,onModeChange:ke})]}):o.jsx(hn,{currentAgentId:r==null?void 0:r.agentId,connectionState:N,onConnect:ge,onDisconnect:Ue})};function Qa(a){return{label:`/${a.name}`,info:a.description}}function Xa(a){return{value:a.id,label:a.name,subtitle:a.description??""}}function Za(a){return o.jsx(li,{value:a.value,className:"text-xs",children:o.jsxs("div",{className:"flex flex-col",children:[a.label,a.subtitle&&o.jsx("div",{className:"text-muted-foreground text-xs pt-1 block",children:a.subtitle})]})},a.value)}});export{_i as __tla,qn as default};
287
+ `;var t}).join("")}const ie=qe.get("agents"),Ja=["image/*","text/*"],mn=k.memo(a=>{const e=A.c(4),{currentAgentId:t}=a;let n,s;return e[0]!==t?(n=t?yt(t):"Agents",e[0]=t,e[1]=n):n=e[1],e[2]!==n?(s=o.jsx("span",{className:"text-sm font-medium",children:n}),e[2]=n,e[3]=s):s=e[3],s});mn.displayName="AgentTitle";const un=k.memo(a=>{const e=A.c(4),{connectionState:t,onConnect:n,onDisconnect:s}=a,i=t.status==="connected",l=i?s:n,r=t.status==="connecting",c=i?"Disconnect":"Connect";let d;return e[0]!==l||e[1]!==r||e[2]!==c?(d=o.jsx(se,{variant:"outline",size:"xs",onClick:l,disabled:r,children:c}),e[0]=l,e[1]=r,e[2]=c,e[3]=d):d=e[3],d});un.displayName="ConnectionControl";const pn=k.memo(a=>{const e=A.c(9),{currentAgentId:t,connectionStatus:n,shouldShowConnectionControl:s}=a;let i,l,r,c;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx(Ct,{className:"h-4 w-4 text-muted-foreground"}),e[0]=i):i=e[0],e[1]!==t?(l=o.jsx(mn,{currentAgentId:t}),e[1]=t,e[2]=l):l=e[2],e[3]!==n||e[4]!==s?(r=s&&o.jsx(Xt,{status:n}),e[3]=n,e[4]=s,e[5]=r):r=e[5],e[6]!==l||e[7]!==r?(c=o.jsxs("div",{className:"flex items-center gap-2",children:[i,l,r]}),e[6]=l,e[7]=r,e[8]=c):c=e[8],c});pn.displayName="HeaderInfo";const ft=k.memo(a=>{const e=A.c(19),{connectionState:t,currentAgentId:n,onConnect:s,onDisconnect:i,onRestartThread:l,hasActiveSession:r,shouldShowConnectionControl:c}=a;let d,m,u,p,_;return e[0]!==t.status||e[1]!==n||e[2]!==c?(d=o.jsx(pn,{currentAgentId:n,connectionStatus:t.status,shouldShowConnectionControl:c}),e[0]=t.status,e[1]=n,e[2]=c,e[3]=d):d=e[3],e[4]!==t.status||e[5]!==r||e[6]!==l?(m=r&&t.status==="connected"&&l&&o.jsxs(se,{variant:"outline",size:"xs",onClick:l,title:"Restart thread (create new session)",children:[o.jsx(Qo,{className:"h-3 w-3 mr-1"}),"Restart"]}),e[4]=t.status,e[5]=r,e[6]=l,e[7]=m):m=e[7],e[8]!==t||e[9]!==s||e[10]!==i||e[11]!==c?(u=c&&o.jsx(un,{connectionState:t,onConnect:s,onDisconnect:i}),e[8]=t,e[9]=s,e[10]=i,e[11]=c,e[12]=u):u=e[12],e[13]!==m||e[14]!==u?(p=o.jsxs("div",{className:"flex items-center gap-2",children:[m,u]}),e[13]=m,e[14]=u,e[15]=p):p=e[15],e[16]!==d||e[17]!==p?(_=o.jsxs("div",{className:"flex border-b px-3 py-2 justify-between shrink-0 items-center",children:[d,p]}),e[16]=d,e[17]=p,e[18]=_):_=e[18],_});ft.displayName="AgentPanelHeader";const hn=k.memo(a=>{const e=A.c(15),{currentAgentId:t,connectionState:n,onConnect:s,onDisconnect:i}=a,l=An(Nt);let r,c,d,m,u,p;return e[0]!==n||e[1]!==t||e[2]!==s||e[3]!==i?(r=o.jsx(ft,{connectionState:n,currentAgentId:t,onConnect:s,onDisconnect:i,hasActiveSession:!1}),e[0]=n,e[1]=t,e[2]=s,e[3]=i,e[4]=r):r=e[4],e[5]===Symbol.for("react.memo_cache_sentinel")?(c=o.jsx(xt,{}),e[5]=c):c=e[5],e[6]===Symbol.for("react.memo_cache_sentinel")?(d=o.jsx(Fn,{title:"No Agent Sessions",description:"Create a new session to start a conversation",action:o.jsx(et,{className:"border-y-1 rounded"}),icon:o.jsx(Ct,{})}),e[6]=d):d=e[6],e[7]!==n.status||e[8]!==l?(m=n.status==="disconnected"&&o.jsx(Ze,{className:"border-t pt-6",title:"Connect to an agent",description:o.jsxs(o.Fragment,{children:["Start agents by running these commands in your terminal:",o.jsx("br",{}),"Note: This must be in the directory"," ",_t.dirname(l??"")]})}),e[7]=n.status,e[8]=l,e[9]=m):m=e[9],e[10]!==m?(u=o.jsx("div",{className:"flex-1 flex items-center justify-center p-6",children:o.jsxs("div",{className:"max-w-md w-full space-y-6",children:[d,m]})}),e[10]=m,e[11]=u):u=e[11],e[12]!==r||e[13]!==u?(p=o.jsxs("div",{className:"flex flex-col h-full",children:[r,c,u]}),e[12]=r,e[13]=u,e[14]=p):p=e[14],p});hn.displayName="EmptyState";const xn=k.memo(a=>{const e=A.c(10),{isLoading:t,isRequestingPermission:n,onStop:s}=a;if(!t)return null;let i,l,r,c,d,m;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx(Ko,{size:"small",className:"text-primary"}),e[0]=i):i=e[0],e[1]!==n?(l=o.jsxs("div",{className:"flex items-center gap-2",children:[i,n?o.jsx("span",{children:"Waiting for permission to continue..."}):o.jsx("span",{children:"Agent is working..."})]}),e[1]=n,e[2]=l):l=e[2],e[3]===Symbol.for("react.memo_cache_sentinel")?(r=o.jsx(F,{className:"h-3 w-3 mr-1"}),c=o.jsx("span",{className:"text-xs",children:"Stop"}),e[3]=r,e[4]=c):(r=e[3],c=e[4]),e[5]!==s?(d=o.jsx("div",{className:"flex items-center gap-2",children:o.jsxs(se,{size:"sm",variant:"outline",onClick:s,className:"h-6 px-2",children:[r,c]})}),e[5]=s,e[6]=d):d=e[6],e[7]!==l||e[8]!==d?(m=o.jsx("div",{className:"px-3 py-2 border-t bg-muted/30 flex-shrink-0",children:o.jsxs("div",{className:"flex items-center justify-between text-xs text-muted-foreground",children:[l,d]})}),e[7]=l,e[8]=d,e[9]=m):m=e[9],m});xn.displayName="LoadingIndicator";const fn=k.memo(a=>{const e=A.c(61),{isLoading:t,activeSessionId:n,promptValue:s,commands:i,onPromptValueChange:l,onPromptSubmit:r,onAddFiles:c,onStop:d,fileInputRef:m,sessionMode:u,onModeChange:p}=a,_=k.useRef(null);let f;e:{if(!i){f=void 0;break e}let D,W,K;e[0]===Symbol.for("react.memo_cache_sentinel")?(D=/^\/(\w+)?/,e[0]=D):D=e[0],e[1]!==i?(W=i.map(Qa),e[1]=i,e[2]=W):W=e[2],e[3]!==W?(K={triggerCompletionRegex:D,completions:W},e[3]=W,e[4]=K):K=e[4],f=K}const x=f;let g;e[5]!==r||e[6]!==s?(g=()=>{s.trim()&&r(void 0,s)},e[5]=r,e[6]=s,e[7]=g):g=e[7];const j=ae(g);let N;e[8]===Symbol.for("react.memo_cache_sentinel")?(N=()=>{Zo(_)},e[8]=N):N=e[8];const S=ae(N),I=(t||!n)&&"opacity-50 pointer-events-none";let T;e[9]!==I?(T=ue("px-3 py-2 min-h-[80px]",I),e[9]=I,e[10]=T):T=e[10];const U=t?Rn.NOOP:l,q=t?"Processing...":`Ask anything, ${Xo} to include context about tables or dataframes`,R=t?"opacity-50 pointer-events-none":"";let C,$,Q,X,L,xe,de,je,fe,ge,Me,Ie;e[11]!==c||e[12]!==r||e[13]!==x||e[14]!==s||e[15]!==U||e[16]!==q||e[17]!==R?(C=o.jsx(ei,{inputRef:_,value:s,onChange:U,onSubmit:r,additionalCompletions:x,onClose:Rn.NOOP,onAddFiles:c,placeholder:q,className:R,maxHeight:"120px"}),e[11]=c,e[12]=r,e[13]=x,e[14]=s,e[15]=U,e[16]=q,e[17]=R,e[18]=C):C=e[18],e[19]!==T||e[20]!==C?($=o.jsx("div",{className:T,children:C}),e[19]=T,e[20]=C,e[21]=$):$=e[21],e[22]!==p||e[23]!==u?(Q=u&&p&&o.jsx(gn,{sessionMode:u,onModeChange:p}),e[22]=p,e[23]=u,e[24]=Q):Q=e[24],e[25]!==Q?(X=o.jsx("div",{className:"flex items-center gap-2",children:Q}),e[25]=Q,e[26]=X):X=e[26],e[27]===Symbol.for("react.memo_cache_sentinel")?(L=o.jsx(ti,{className:"h-3.5 w-3.5"}),e[27]=L):L=e[27],e[28]!==S?(xe=o.jsx(it,{content:"Add context",children:o.jsx(se,{variant:"text",size:"icon",onClick:S,children:L})}),e[28]=S,e[29]=xe):xe=e[29],e[30]!==m?(de=()=>{var D;return(D=m.current)==null?void 0:D.click()},e[30]=m,e[31]=de):de=e[31],e[32]===Symbol.for("react.memo_cache_sentinel")?(je=o.jsx(ni,{className:"h-3.5 w-3.5"}),e[32]=je):je=e[32],e[33]!==de?(fe=o.jsx(it,{content:"Attach a file",children:o.jsx(se,{variant:"text",size:"icon",className:"cursor-pointer",onClick:de,title:"Attach a file",children:je})}),e[33]=de,e[34]=fe):fe=e[34],e[35]!==c?(ge=D=>{D.target.files&&c([...D.target.files])},e[35]=c,e[36]=ge):ge=e[36],e[37]===Symbol.for("react.memo_cache_sentinel")?(Me=Ja.join(","),e[37]=Me):Me=e[37],e[38]!==m||e[39]!==ge?(Ie=o.jsx(si,{ref:m,type:"file",multiple:!0,hidden:!0,onChange:ge,accept:Me}),e[38]=m,e[39]=ge,e[40]=Ie):Ie=e[40];const Ve=t?"Stop":"Submit",M=t?d:j,E=!t&&!s.trim();let re,ce,be,H,B,ee;return e[41]!==t?(re=t?o.jsx(ai,{className:"h-3 w-3 fill-current"}):o.jsx(oi,{className:"h-3 w-3"}),e[41]=t,e[42]=re):re=e[42],e[43]!==M||e[44]!==E||e[45]!==re?(ce=o.jsx(se,{variant:"text",size:"sm",className:"h-6 w-6 p-0 hover:bg-muted/30 cursor-pointer",onClick:M,disabled:E,children:re}),e[43]=M,e[44]=E,e[45]=re,e[46]=ce):ce=e[46],e[47]!==Ve||e[48]!==ce?(be=o.jsx(it,{content:Ve,children:ce}),e[47]=Ve,e[48]=ce,e[49]=be):be=e[49],e[50]!==xe||e[51]!==fe||e[52]!==Ie||e[53]!==be?(H=o.jsxs("div",{className:"flex flex-row",children:[xe,fe,Ie,be]}),e[50]=xe,e[51]=fe,e[52]=Ie,e[53]=be,e[54]=H):H=e[54],e[55]!==X||e[56]!==H?(B=o.jsx(ii,{children:o.jsxs("div",{className:"px-3 py-2 border-t border-border/20 flex flex-row items-center justify-between",children:[X,H]})}),e[55]=X,e[56]=H,e[57]=B):B=e[57],e[58]!==$||e[59]!==B?(ee=o.jsxs("div",{className:"border-t bg-background flex-shrink-0",children:[$,B]}),e[58]=$,e[59]=B,e[60]=ee):ee=e[60],ee});fn.displayName="PromptArea";const gn=k.memo(a=>{const e=A.c(28),{sessionMode:t,onModeChange:n}=a;let s,i,l,r,c,d,m,u,p,_,f,x;if(e[0]!==n||e[1]!==(t==null?void 0:t.availableModes)||e[2]!==(t==null?void 0:t.currentModeId)){p=Symbol.for("react.early_return_sentinel");e:{const g=(t==null?void 0:t.availableModes)||[],j=t==null?void 0:t.currentModeId;if(g.length===0){p=null;break e}const N=g.map(Xa);let S;e[12]!==j?(S=T=>T.value===j,e[12]=j,e[13]=S):S=e[13];const I=N.find(S);l=ci,d=j,m=n,u=o.jsx(ri,{className:"h-6 text-xs border-border shadow-none! ring-0! bg-muted hover:bg-muted/30 py-0 px-2 gap-1 capitalize",children:(I==null?void 0:I.label)??j}),i=di,s=mi,e[14]===Symbol.for("react.memo_cache_sentinel")?(r=o.jsx(ui,{children:"Agent Mode"}),e[14]=r):r=e[14],c=N.map(Ka)}e[0]=n,e[1]=t==null?void 0:t.availableModes,e[2]=t==null?void 0:t.currentModeId,e[3]=s,e[4]=i,e[5]=l,e[6]=r,e[7]=c,e[8]=d,e[9]=m,e[10]=u,e[11]=p}else s=e[3],i=e[4],l=e[5],r=e[6],c=e[7],d=e[8],m=e[9],u=e[10],p=e[11];return p!==Symbol.for("react.early_return_sentinel")?p:(e[15]!==s||e[16]!==r||e[17]!==c?(_=o.jsxs(s,{children:[r,c]}),e[15]=s,e[16]=r,e[17]=c,e[18]=_):_=e[18],e[19]!==i||e[20]!==_?(f=o.jsx(i,{children:_}),e[19]=i,e[20]=_,e[21]=f):f=e[21],e[22]!==l||e[23]!==d||e[24]!==m||e[25]!==u||e[26]!==f?(x=o.jsxs(l,{value:d,onValueChange:m,children:[u,f]}),e[22]=l,e[23]=d,e[24]=m,e[25]=u,e[26]=f,e[27]=x):x=e[27],x)});gn.displayName="ModeSelector";const bn=k.memo(a=>{const e=A.c(32),{hasNotifications:t,agentId:n,connectionState:s,notifications:i,pendingPermission:l,onResolvePermission:r,onRetryConnection:c,onRetryLastAction:d,onDismissError:m,sessionId:u}=a,[p,_]=k.useState(!0),f=k.useRef(null),x=s.status==="disconnected";let g;e[0]===Symbol.for("react.memo_cache_sentinel")?(g=()=>{const L=f.current;if(!L)return;const{scrollTop:xe,scrollHeight:de,clientHeight:je}=L,fe=!(de>je)||Math.abs(de-je-xe)<5;_(fe)},e[0]=g):g=e[0];const j=ae(g);let N;e[1]===Symbol.for("react.memo_cache_sentinel")?(N=()=>{const L=f.current;L&&L.scrollTo({top:L.scrollHeight,behavior:"smooth"})},e[1]=N):N=e[1];const S=ae(N);let I,T,U,q,R,C;e[2]!==p||e[3]!==i.length||e[4]!==S?(I=()=>{if(p&&i.length>0){const L=setTimeout(S,100);return()=>clearTimeout(L)}},T=[i.length,p,S],e[2]=p,e[3]=i.length,e[4]=S,e[5]=I,e[6]=T):(I=e[5],T=e[6]),k.useEffect(I,T),e[7]!==r||e[8]!==l?(U=l&&o.jsx("div",{className:"p-3 border-b",children:o.jsx(Kt,{permission:l,onResolve:r})}),e[7]=r,e[8]=l,e[9]=U):U=e[9],e[10]!==u?(q=u&&o.jsxs("div",{className:"text-xs text-muted-foreground mb-2 px-2",children:["Session ID: ",u]}),e[10]=u,e[11]=q):q=e[11],e[12]!==n||e[13]!==s.status||e[14]!==t||e[15]!==x||e[16]!==i||e[17]!==m||e[18]!==c||e[19]!==d?(R=t?o.jsx("div",{className:"space-y-2",children:o.jsx(Ya,{isConnected:s.status==="connected",notifications:i,onRetryConnection:c,onRetryLastAction:d,onDismissError:m})}):o.jsxs("div",{className:"flex items-center justify-center h-full min-h-[200px] flex-col",children:[o.jsx(Fn,{title:"Waiting for agent",description:"Your AI agent will appear here when active",icon:o.jsx(Ct,{})}),x&&n&&o.jsx(Ze,{className:"border-t pt-6 px-5",title:"Make sure you're connected to an agent",description:"Run this command in your terminal:",agents:[n]}),x&&o.jsx(se,{variant:"outline",onClick:c,type:"button",className:"mt-4",children:"Retry"})]}),e[12]=n,e[13]=s.status,e[14]=t,e[15]=x,e[16]=i,e[17]=m,e[18]=c,e[19]=d,e[20]=R):R=e[20],e[21]!==j||e[22]!==q||e[23]!==R?(C=o.jsxs("div",{ref:f,className:"flex-1 bg-muted/20 w-full flex flex-col overflow-y-auto p-2",onScroll:j,children:[q,R]}),e[21]=j,e[22]=q,e[23]=R,e[24]=C):C=e[24];const $=!p&&t;let Q,X;return e[25]!==S||e[26]!==$?(Q=o.jsx(on,{isVisible:$,onScrollToBottom:S}),e[25]=S,e[26]=$,e[27]=Q):Q=e[27],e[28]!==Q||e[29]!==U||e[30]!==C?(X=o.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden flex-shrink-0 relative",children:[U,C,Q]}),e[28]=Q,e[29]=U,e[30]=C,e[31]=X):X=e[31],X});bn.displayName="ChatContent";const gt="_skip_auto_connect_";function yn(){const a=jt.get(Nt);return a?_t.dirname(a):""}Dn=()=>{const[a,e]=k.useState(!1),[t,n]=k.useState(""),[s,i]=k.useState(),l=k.useRef(null),[r]=rt(ht),[c,d]=rt(ze),m=r?(u=r.agentId,Ke[u].webSocketUrl):gt;var u;const{sendUpdateFile:p,sendFileDetails:_}=Jo(),f=k.useRef(!1),x=(function(M){const{wsUrl:E,autoConnect:re=!0,reconnectAttempts:ce=3,reconnectDelay:be=2e3,clientOptions:H={}}=M,{getConnection:B,notifications:ee,activeSessionId:D,agentCapabilities:W,sessionModes:K,setActiveModeId:Ye,setModeState:ke,setActiveSessionId:nt,setConnection:st,setActiveConnection:at,addNotification:Ne,clearNotifications:Za}=pa(),[He,ot]=k.useState(null),[eo,vn]=k.useState(null),[to,no]=k.useState(!1),[so,wn]=k.useState([]),Re=k.useRef(null),Fe=k.useRef(null),ao=k.useRef(null),oo=k.useRef(!1),io=Se((V,me)=>{st(me,V),Ne({type:"connection_change",data:V})}),ro=Se((V,me)=>{Ne({type:"error",data:V})}),lo=Se(V=>{Ne({type:"session_notification",data:V}),V.update.sessionUpdate==="available_commands_update"&&wn(V.update.availableCommands)}),co=Se(V=>{ot(V)}),_n=Se(async()=>{Re.current||(Re.current=new da({onConnectionStateChange:io,onError:ro,reconnectAttempts:ce,reconnectDelay:be})),at(E);const{readable:V,writable:me}=await Re.current.connect(E),po=new sa(ne=>{const oe=new ia(ne,{...H,onRequestPermission:ye=>{var Ge;(Ge=H==null?void 0:H.onRequestPermission)==null||Ge.call(H,ye),co(ye)},onSessionNotification:ye=>{var Ge;(Ge=H==null?void 0:H.onSessionNotification)==null||Ge.call(H,ye),lo(ye)}});return Fe.current=oe,oe},me,V),ho=new ra(po,{on_initialize_response:ne=>{const oe=ne.agentCapabilities;console.log("[acp] Agent capabilities",oe);const ye=B(E);st(E,ye.state,oe)},on_newSession_response:ne=>{console.log("[acp] New session created",ne);const oe=ne.sessionId;nt(oe),ke(oe,ne.modes)},on_loadSession_response:(ne,oe)=>{console.log("[acp] Session resumed",oe);const ye=oe.sessionId;nt(ye),ke(ye,ne.modes)},on_prompt_start:ne=>{for(const oe of ne.prompt)Ne({type:"session_notification",data:{sessionId:ne.sessionId,update:{sessionUpdate:"user_message_chunk",content:oe}}})},on_setSessionMode_start:ne=>{console.log("[acp] Session mode set",ne);const oe=ne.sessionId;Ye(oe,ne.modeId)}});vn(ho)}),jn=Se(V=>{const me=V||E;Re.current&&(V?Re.current.disconnect(V):(Re.current.disconnect(me),Re.current=null,Fe.current=null,vn(null))),V||(ot(null),wn([]),oo.current=!1,ao.current=null,no(!1))}),mo=Se(V=>{if(He&&Fe.current){const me=He.deferredId;me&&Fe.current.resolvePermission(me,V)}ot(null)}),uo=Se(V=>{if(He&&Fe.current){const me=He.deferredId;me&&Fe.current.rejectPermission(me,V)}ot(null)});return k.useEffect(()=>(re&&_n().catch(console.error),()=>{jn()}),[re,E]),{connect:_n,disconnect:jn,connectionState:B(E).state,activeSessionId:D,notifications:D&&ee[D]||[],isSessionLoading:to,clearNotifications:Za,pendingPermission:He,resolvePermission:mo,rejectPermission:uo,agent:eo,agentCapabilities:W,sessionMode:D?K[D]:null,availableCommands:so}})({wsUrl:m,clientOptions:{readTextFile:M=>(ie.debug("Agent requesting file read",{path:M.path}),_({path:M.path}).then(E=>({content:E.contents||""}))),writeTextFile:M=>(ie.debug("Agent requesting file write",{path:M.path,contentLength:M.content.length}),p({path:M.path,contents:M.content}).then(()=>({})))},autoConnect:!1}),{connect:g,disconnect:j,connectionState:N,notifications:S,pendingPermission:I,availableCommands:T,resolvePermission:U,sessionMode:q,activeSessionId:R,agent:C}=x;k.useEffect(()=>{C==null||C.initialize({protocolVersion:1,clientCapabilities:{fs:{readTextFile:!0,writeTextFile:!0}}})},[C]),k.useEffect(()=>{if(m!==gt)return ie.debug("Auto-connecting to agent",{sessionId:R}),g(),()=>{}},[m]);const $=ae(async()=>{if(f.current||!C)return;R&&await C.cancel({sessionId:R}).catch(E=>{ie.error("Failed to cancel active session",{error:E})}),ie.debug("Creating new agent session",{}),f.current=!0;const M=await C.newSession({cwd:yn(),mcpServers:[]}).finally(()=>{f.current=!1});d(E=>en(E,M.sessionId))}),Q=ae(async M=>{if(C){if(ie.debug("Resuming agent session",{sessionId:M}),!C.loadSession)throw new Error("Agent does not support loading sessions");await C.loadSession({sessionId:M,cwd:yn(),mcpServers:[]}),d(E=>en(E,M))}}),X=N.status==="connected",L=r==null?void 0:r.externalAgentSessionId;k.useEffect(()=>{!X||!r||!C||R&&L||(async()=>{try{if(L)try{await Q(L)}catch(M){ie.debug("Failed to resume session, creating new session",{externalSessionId:L,error:M}),await $()}else await $()}catch(M){ie.error("Failed to create or resume session:",M)}})()},[X,C,L,R]);const xe=ae(async(M,E)=>{if(!R||!C||a)return;ie.debug("Submitting prompt to agent",{sessionId:R}),e(!0),n(""),i(void 0),r!=null&&r.title.startsWith("New ")&&d(B=>(function(ee,D){const W=ee.activeTabId;return W?{...ee,sessions:ee.sessions.map(K=>K.tabId===W?{...K,title:Zt(D)}:K)}:ee})(B,E));const re=jt.get(Nt);if(!re)return void St({title:"Notebook must be named",description:"Please name the notebook to use the agent",variant:"danger"});const ce=[{type:"text",text:E}],{contextBlocks:be,attachmentBlocks:H}=await(async function(B){const ee=[],D=[];if(!B.includes("@"))return{contextBlocks:ee,attachmentBlocks:D};try{const W=Ho(jt),K=W.parseAllContextIds(B);if(K.length===0)return{contextBlocks:ee,attachmentBlocks:D};const Ye=W.formatContextForAI(K);Ye.trim()&&ee.push({type:"resource",resource:{uri:"context.md",mimeType:"text/markdown",text:Ye}});try{const ke=await W.getAttachmentsForContext(K);if(ke.length>0){const nt=await(async function(st){const at=[];for(const Ne of st)at.push({type:"resource_link",uri:Ne.url,mimeType:Ne.mediaType,name:Ne.filename??Ne.url});return at})(ke);D.push(...nt),qe.debug("Added AI context attachments",{count:ke.length})}}catch(ke){qe.error("Error getting AI context attachments",{error:ke})}qe.debug("Parsed context for agent",{contextIds:K,contextLength:Ye.length,attachmentCount:D.length})}catch(W){qe.error("Error parsing context for agent",{error:W})}return{contextBlocks:ee,attachmentBlocks:D}})(E);if(ce.push(...be,...H),s&&s.length>0){const B=await(async function(ee){const D=[];for(const W of ee)try{const K=await Go(W,"dataUrl");D.push({type:"resource_link",uri:K,mimeType:W.type,name:W.name})}catch(K){qe.error("Error converting file to resource link",{fileName:W.name,error:K})}return D})(s);ce.push(...B)}S.some(B=>B.type==="session_notification"&&B.data.update.sessionUpdate==="user_message_chunk")||ce.push({type:"resource_link",uri:re,mimeType:"text/x-python",name:re},{type:"resource",resource:{uri:"marimo_rules.md",mimeType:"text/markdown",text:Ga(re)}});try{await C.prompt({sessionId:R,prompt:ce})}catch(B){ie.error("Failed to send prompt",{error:B})}finally{e(!1)}}),de=ae(async()=>{R&&C&&(await C.cancel({sessionId:R}),e(!1))}),je=ae(M=>{M.length!==0&&i(E=>[...E??[],...M])}),fe=ae(M=>{s&&i(s.filter(E=>E!==M))}),ge=ae(()=>{ie.debug("Manual connect requested",{currentStatus:N.status}),g()}),Me=ae(()=>{ie.debug("Manual disconnect requested",{sessionId:R,currentStatus:N.status}),j()}),Ie=ae(M=>{var E;ie.debug("Mode change requested",{sessionId:R,mode:M}),C?C.setSessionMode?(E=C.setSessionMode)==null||E.call(C,{sessionId:R,modeId:M}):St({title:"Mode change not supported",description:"The agent does not support mode changes",variant:"danger"}):St({title:"Agent not connected",description:"Please connect to an agent to change the mode",variant:"danger"})}),Ve=S.length>0;return c.sessions.length>0?o.jsxs("div",{className:"flex flex-col flex-1 overflow-hidden mo-agent-panel",children:[o.jsx(ft,{connectionState:N,currentAgentId:r==null?void 0:r.agentId,onConnect:ge,onDisconnect:Me,onRestartThread:$,hasActiveSession:!0,shouldShowConnectionControl:m!==gt}),o.jsx(xt,{}),o.jsx(bn,{agentId:r==null?void 0:r.agentId,sessionId:R,hasNotifications:Ve,connectionState:N,notifications:S,pendingPermission:I,onResolvePermission:M=>{ie.debug("Resolving permission request",{sessionId:R,option:M}),U(M)},onRetryConnection:ge}),o.jsx(xn,{isLoading:a,isRequestingPermission:!!I,onStop:de}),s&&s.length>0&&o.jsx("div",{className:"flex flex-row gap-1 flex-wrap p-3 border-t",children:s.map(M=>o.jsx(hi,{file:M,onRemove:()=>fe(M)},M.name))}),o.jsx(fn,{isLoading:a,activeSessionId:R,promptValue:t,onPromptValueChange:n,onPromptSubmit:xe,onAddFiles:je,onStop:de,fileInputRef:l,commands:T,sessionMode:q,onModeChange:Ie})]}):o.jsx(hn,{currentAgentId:r==null?void 0:r.agentId,connectionState:N,onConnect:ge,onDisconnect:Me})};function Qa(a){return{label:`/${a.name}`,info:a.description}}function Xa(a){return{value:a.id,label:a.name,subtitle:a.description??""}}function Ka(a){return o.jsx(li,{value:a.value,className:"text-xs",children:o.jsxs("div",{className:"flex flex-col",children:[a.label,a.subtitle&&o.jsx("div",{className:"text-muted-foreground text-xs pt-1 block",children:a.subtitle})]})},a.value)}});export{wi as __tla,Dn as default};