@hienlh/ppm 0.18.7 → 0.18.9

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 (510) hide show
  1. package/.spike/s.err +63 -0
  2. package/.spike/tunnel.err +42 -0
  3. package/.spike/w.err +96 -0
  4. package/CHANGELOG.md +16 -0
  5. package/CLAUDE.md +1 -0
  6. package/assets/skills/ppm/SKILL.md +1 -1
  7. package/assets/skills/ppm/references/http-api.md +5 -3
  8. package/dist/web/assets/{ai-resource-editor-DZQUyrsU.js → ai-resource-editor-DFCuNe-P.js} +1 -1
  9. package/dist/web/assets/{angular-html-jfMqUuRd.js → angular-html-Ctz0zN01.js} +1 -1
  10. package/dist/web/assets/{angular-ts-wytn9PMm.js → angular-ts-QXHpgB1C.js} +1 -1
  11. package/dist/web/assets/{api-settings-DlcoR5QT.js → api-settings-nblja3Rk.js} +1 -1
  12. package/dist/web/assets/{apl-i-ahKx6O.js → apl-b9KVk-O4.js} +1 -1
  13. package/dist/web/assets/architecture-PBZL5I3N-C7ra20CE.js +1 -0
  14. package/dist/web/assets/{astro-DVBCJfG6.js → astro-BlFEeGYr.js} +1 -1
  15. package/dist/web/assets/{audio-preview-GGksv6U8.js → audio-preview-CZLmhf__.js} +1 -1
  16. package/dist/web/assets/{blade-BHlL8SqU.js → blade-CGkj2MUI.js} +1 -1
  17. package/dist/web/assets/{bsl-D-UOfR1F.js → bsl-CVsbb6ap.js} +1 -1
  18. package/dist/web/assets/button-BA_fJOtX.js +1 -0
  19. package/dist/web/assets/{cairo-Bn6rucli.js → cairo-BbIHl2iE.js} +1 -1
  20. package/dist/web/assets/chat-tab-flMPLoKb.js +15 -0
  21. package/dist/web/assets/circle-hjUGru6R.js +1 -0
  22. package/dist/web/assets/circle-question-mark-CzR7YRc-.js +1 -0
  23. package/dist/web/assets/{cobol-Byn9FYKu.js → cobol-BWSGjmWb.js} +1 -1
  24. package/dist/web/assets/code-editor-C2VQbXzw.js +10 -0
  25. package/dist/web/assets/{coffee-DjBl4gm-.js → coffee-CWGNOxds.js} +1 -1
  26. package/dist/web/assets/{conflict-editor-Dg_JIcKq.js → conflict-editor-CdH_h0vD.js} +3 -3
  27. package/dist/web/assets/{context-menu-DkQdt6YA.js → context-menu-Cq0u3SK9.js} +1 -1
  28. package/dist/web/assets/{cpp-CKzic-3E.js → cpp-DHGV24J2.js} +1 -1
  29. package/dist/web/assets/{crystal-Bkg-Ly_g.js → crystal-Vlwf2UMP.js} +1 -1
  30. package/dist/web/assets/{csv-preview-DsJ_a2Op.js → csv-preview-CY_454vd.js} +1 -1
  31. package/dist/web/assets/{data-grid-overlay-editor-B1mTl3KS.js → data-grid-overlay-editor-D9il5DZS.js} +1 -1
  32. package/dist/web/assets/{database-viewer-CzjnrnMz.js → database-viewer-BCZOTrPT.js} +1 -1
  33. package/dist/web/assets/{diff-viewer-DUNkO-ll.js → diff-viewer-BwfMN-nW.js} +1 -1
  34. package/dist/web/assets/{docx-preview-DujpUDkE.js → docx-preview-D3Sdh_aT.js} +1 -1
  35. package/dist/web/assets/{edge-DVbZnd3Y.js → edge-Bhqk64zS.js} +1 -1
  36. package/dist/web/assets/{edit-diff-preview-BivQwZMD.js → edit-diff-preview-gq6ALf2B.js} +1 -1
  37. package/dist/web/assets/{elixir-Dwi8Wu7W.js → elixir-D466WCFm.js} +1 -1
  38. package/dist/web/assets/{elm-DtIv-HXJ.js → elm-Bfs2qNPR.js} +1 -1
  39. package/dist/web/assets/{erb-D3HEDz1x.js → erb-WI7jUaB6.js} +1 -1
  40. package/dist/web/assets/{erlang-2MjTCzGz.js → erlang-BCBe8nCc.js} +1 -1
  41. package/dist/web/assets/{esm-CZ8B8Ba2.js → esm-CZs9WVDO.js} +1 -1
  42. package/dist/web/assets/{explorer-body-DSDJUQs7.js → explorer-body-BKOMM566.js} +2 -2
  43. package/dist/web/assets/{explorer-window-content-CWYBapkj.js → explorer-window-content-Bbzijk8t.js} +1 -1
  44. package/dist/web/assets/{extension-webview-DBTFznQp.js → extension-webview-CuOQrHIS.js} +1 -1
  45. package/dist/web/assets/format-bytes-Dk7B73B7.js +1 -0
  46. package/dist/web/assets/{fortran-fixed-form-BLyAtyPM.js → fortran-fixed-form-CXLIv8Ox.js} +1 -1
  47. package/dist/web/assets/{fsharp-Bxbn_gbr.js → fsharp-CZsYmiw9.js} +1 -1
  48. package/dist/web/assets/{gdresource-sFMY4D2Q.js → gdresource-BGRvoWfC.js} +1 -1
  49. package/dist/web/assets/{git-commit-BzB9Lio5.js → git-commit-DH6mY3Km.js} +1 -1
  50. package/dist/web/assets/{git-log-panel-D8ZQdoYl.js → git-log-panel-DcV7PhqW.js} +1 -1
  51. package/dist/web/assets/{git-rebase-CKSVd848.js → git-rebase-C5Gql6Ma.js} +1 -1
  52. package/dist/web/assets/gitGraph-HDMCJU4V-D4hYLNJU.js +1 -0
  53. package/dist/web/assets/{glide-data-grid-uIjdTT7c.js → glide-data-grid-Cehfgrzc.js} +7 -7
  54. package/dist/web/assets/{glimmer-js-BY8aExAJ.js → glimmer-js-1-6JMJlj.js} +1 -1
  55. package/dist/web/assets/{glimmer-ts-Bak54dBX.js → glimmer-ts-C_Njj0nK.js} +1 -1
  56. package/dist/web/assets/{glsl-nR2eaJQe.js → glsl-DbkxE1TN.js} +1 -1
  57. package/dist/web/assets/{graphql-CGPPFAU6.js → graphql-BK75fiXl.js} +1 -1
  58. package/dist/web/assets/group-chat-tab-BVPYxjz-.js +1 -0
  59. package/dist/web/assets/{hack-CXIMX-Ol.js → hack-DG151vit.js} +1 -1
  60. package/dist/web/assets/{haml-tPY-9Pfm.js → haml-DKeIPQWM.js} +1 -1
  61. package/dist/web/assets/{handlebars-BuW1LT7T.js → handlebars-398uCI13.js} +1 -1
  62. package/dist/web/assets/{html-bgVcwZ-t.js → html-NLWdst5q.js} +1 -1
  63. package/dist/web/assets/{html-derivative-D6-IxTgn.js → html-derivative-CJf_Le2z.js} +1 -1
  64. package/dist/web/assets/{http-CJ1zyB-h.js → http-G1K2FozA.js} +1 -1
  65. package/dist/web/assets/{hurl-CmoT7l3T.js → hurl-WDC6sSBz.js} +1 -1
  66. package/dist/web/assets/{hxml-CztOsL8o.js → hxml-Dc3jBXuf.js} +1 -1
  67. package/dist/web/assets/{image-preview-B0VXSpYu.js → image-preview-D-Ok10eZ.js} +1 -1
  68. package/dist/web/assets/index-CerSxGdf.js +52 -0
  69. package/dist/web/assets/index-DRA_OpWY.css +2 -0
  70. package/dist/web/assets/info-3K5VOQVL-lRlrTlkb.js +1 -0
  71. package/dist/web/assets/{jinja-B1pq3jJq.js → jinja-CWsQj2y0.js} +1 -1
  72. package/dist/web/assets/{jison-D8B5pCwA.js → jison-CciJg2NW.js} +1 -1
  73. package/dist/web/assets/{julia-D0K3bwpU.js → julia-IOQNJAB7.js} +1 -1
  74. package/dist/web/assets/{just-B9Jlddu-.js → just-BGdHchwS.js} +1 -1
  75. package/dist/web/assets/{keybindings-store-FyolpNND.js → keybindings-store-aIY40k2o.js} +1 -1
  76. package/dist/web/assets/{latex-BPJSSE6j.js → latex-D6TOl-L2.js} +1 -1
  77. package/dist/web/assets/{liquid-lv10fo4U.js → liquid-CVSvu_Wn.js} +1 -1
  78. package/dist/web/assets/{lua-PNuaIBEF.js → lua-CcKiU6HW.js} +1 -1
  79. package/dist/web/assets/markdown-renderer-I89kyQhe.js +1 -0
  80. package/dist/web/assets/{markdown-renderer-BaBQ6Wm6.js → markdown-renderer-pVzBdkpl.js} +3 -3
  81. package/dist/web/assets/{marko-Du3frD6X.js → marko--UOicMGo.js} +1 -1
  82. package/dist/web/assets/{mdc-BeDVcFRl.js → mdc-D690aU2C.js} +1 -1
  83. package/dist/web/assets/media-url-CylYQld1.js +1 -0
  84. package/dist/web/assets/{mobile-explorer-sheet-Zxjl-e4c.js → mobile-explorer-sheet-5Uj9ZMM9.js} +1 -1
  85. package/dist/web/assets/{nextflow-DkcXP71s.js → nextflow-DR8PhpF8.js} +1 -1
  86. package/dist/web/assets/{nginx-C5n8N_bt.js → nginx-Qb9pUk1g.js} +1 -1
  87. package/dist/web/assets/{nim-CIhyfs-A.js → nim-DLa8R3NS.js} +1 -1
  88. package/dist/web/assets/{notification-store-DnGpxgkF.js → notification-store-DJ-OtAG3.js} +1 -1
  89. package/dist/web/assets/{number-overlay-editor-NgOsWJ7x.js → number-overlay-editor-D9SkFg1Y.js} +1 -1
  90. package/dist/web/assets/overview-panel-Cgi3UPY1.js +1 -0
  91. package/dist/web/assets/packet-RMMSAZCW-BIhk1mvp.js +1 -0
  92. package/dist/web/assets/{pdf-preview-xzAA4-kD.js → pdf-preview-Di5xHFyT.js} +1 -1
  93. package/dist/web/assets/{perl-Cf31sZYE.js → perl-AMNGIneF.js} +1 -1
  94. package/dist/web/assets/{php-Dzl_MDIW.js → php-CDsOOxXn.js} +1 -1
  95. package/dist/web/assets/pie-UPGHQEXC-SLS6i76l.js +1 -0
  96. package/dist/web/assets/{postgres-viewer-Dkec6GyK.js → postgres-viewer-CR6VpTrX.js} +3 -3
  97. package/dist/web/assets/process-table-DL6shbzt.js +1 -0
  98. package/dist/web/assets/{pug-CxSYHrB3.js → pug-C2kdkhQ6.js} +1 -1
  99. package/dist/web/assets/{qml-DlEjGhwN.js → qml-DRDkUp75.js} +1 -1
  100. package/dist/web/assets/radar-KQ55EAFF-JJ6O1Er_.js +1 -0
  101. package/dist/web/assets/{razor-KVt5uW14.js → razor-wY_6wUeC.js} +1 -1
  102. package/dist/web/assets/{rst-D5BwNTnw.js → rst-BRpofyNs.js} +1 -1
  103. package/dist/web/assets/{ruby-D5fejQwd.js → ruby-ieATBhWm.js} +1 -1
  104. package/dist/web/assets/{sas-Bj7B1CB2.js → sas-CoOOEbOO.js} +1 -1
  105. package/dist/web/assets/{scss-BB0CUoCL.js → scss-_nWV0bsb.js} +1 -1
  106. package/dist/web/assets/{settings-store-C9YT1Hir.js → settings-store-C20lqh0G.js} +2 -2
  107. package/dist/web/assets/settings-tab-jbiQwozX.js +1 -0
  108. package/dist/web/assets/{shaderlab-BdjEZUMc.js → shaderlab-XkqfIfO8.js} +1 -1
  109. package/dist/web/assets/{shellsession-Bp1OA1rR.js → shellsession-BKBIqTlM.js} +1 -1
  110. package/dist/web/assets/{soy-DlYz3wsC.js → soy-oVDnPzzh.js} +1 -1
  111. package/dist/web/assets/{sparql-CdfII5Jd.js → sparql-N2VclEsF.js} +1 -1
  112. package/dist/web/assets/{sql-query-editor-Bz1XrUqI.js → sql-query-editor-BPYsJDsn.js} +1 -1
  113. package/dist/web/assets/{sqlite-viewer-D5-NZw6b.js → sqlite-viewer-Bq9ZJA2y.js} +1 -1
  114. package/dist/web/assets/{stata-BvUA6GUW.js → stata-BuuClVDg.js} +1 -1
  115. package/dist/web/assets/{surrealql--DLNbTyI.js → surrealql-DE5_63MS.js} +1 -1
  116. package/dist/web/assets/{svelte-CBfSsG4n.js → svelte--YWjlOrK.js} +1 -1
  117. package/dist/web/assets/system-monitor-body-CKEYWyN9.js +2 -0
  118. package/dist/web/assets/system-monitor-tab-WjhFFHyM.js +1 -0
  119. package/dist/web/assets/system-monitor-window-content-CMiISeoC.js +1 -0
  120. package/dist/web/assets/team-member-sheet-oY5EkH53.js +2 -0
  121. package/dist/web/assets/{team-member-window-content-DSpZ2zhL.js → team-member-window-content-yCBeI_5X.js} +1 -1
  122. package/dist/web/assets/{templ-Dv8zpKZW.js → templ-MlpvJx4a.js} +1 -1
  123. package/dist/web/assets/{terminal-tab-DXazqejW.js → terminal-tab-BxHtMR7h.js} +3 -3
  124. package/dist/web/assets/{tex-CsrOiqh1.js → tex-0loAoXJG.js} +1 -1
  125. package/dist/web/assets/{tool-cards-Bgp8iceS.js → tool-cards-BcGrk1zk.js} +5 -5
  126. package/dist/web/assets/treemap-KZPCXAKY-Be3KNmns.js +1 -0
  127. package/dist/web/assets/{ts-tags-3T98k4EJ.js → ts-tags-pt-Ug0hK.js} +1 -1
  128. package/dist/web/assets/{twig-u6QZ45FH.js → twig-DOePpLOL.js} +1 -1
  129. package/dist/web/assets/{use-monaco-theme-CpF3A7JL.js → use-monaco-theme-CGucu3fb.js} +1 -1
  130. package/dist/web/assets/{use-open-team-member-CUvV02fA.js → use-open-team-member-DdrRXj-M.js} +1 -1
  131. package/dist/web/assets/{use-websocket-TnL2I1io.js → use-websocket-C-Rxv8JN.js} +1 -1
  132. package/dist/web/assets/{vendor-mermaid-Bg4vE8QA.js → vendor-mermaid-DrwG0NYt.js} +1 -1
  133. package/dist/web/assets/video-preview-DYAbbmd0.js +1 -0
  134. package/dist/web/assets/{vue-CxIsxtwn.js → vue-D6f-rprj.js} +1 -1
  135. package/dist/web/assets/{vue-html-BGL5qnuH.js → vue-html-DEYRkS1V.js} +1 -1
  136. package/dist/web/assets/{vue-vine-DHPh_gMr.js → vue-vine-CxSG2ojf.js} +1 -1
  137. package/dist/web/assets/{xml-C-vM2m7J.js → xml-DhrxbATj.js} +1 -1
  138. package/dist/web/assets/{xsl-DvTXNwuO.js → xsl-CU0ZndUO.js} +1 -1
  139. package/dist/web/index.html +18 -17
  140. package/dist/web/sw.js +1 -1
  141. package/docs/system-architecture.md +2 -2
  142. package/package.json +1 -1
  143. package/src/server/helpers/media-route-handlers.ts +22 -3
  144. package/src/server/index.ts +2 -8
  145. package/src/server/routes/files.ts +5 -2
  146. package/src/server/routes/fs-browse.ts +5 -2
  147. package/src/server/routes/resources.ts +119 -73
  148. package/src/services/autostart-generator.ts +79 -7
  149. package/src/services/autostart-register.ts +15 -2
  150. package/src/services/fs-path-guard.service.ts +17 -1
  151. package/src/services/media-transcode/transcode-stream.ts +27 -5
  152. package/src/services/proc-table-linux.ts +4 -0
  153. package/src/services/redact-secrets.ts +33 -0
  154. package/src/services/system-metrics/cpu-memory-collector.ts +101 -0
  155. package/src/services/system-metrics/disk-net-collector-darwin.ts +75 -0
  156. package/src/services/system-metrics/disk-net-collector-linux.ts +88 -0
  157. package/src/services/system-metrics/disk-net-collector-windows.ts +57 -0
  158. package/src/services/system-metrics/gpu-collector-nvidia.ts +78 -0
  159. package/src/services/system-metrics/gpu-process-memory-nvidia.ts +66 -0
  160. package/src/services/system-metrics/gpu-process-usage-windows.ts +138 -0
  161. package/src/services/system-metrics/kill-executor.ts +85 -0
  162. package/src/services/system-metrics/kill-guard.ts +124 -0
  163. package/src/services/system-metrics/kill-identity-resolver.ts +72 -0
  164. package/src/services/system-metrics/kill-request-handler.ts +79 -0
  165. package/src/services/system-metrics/metrics-collector-lock.ts +36 -0
  166. package/src/services/system-metrics/metrics-poll-scheduler.ts +83 -0
  167. package/src/services/system-metrics/metrics-subscriber-registry.ts +85 -0
  168. package/src/services/system-metrics/powershell-session-bootstrap.ts +48 -0
  169. package/src/services/system-metrics/powershell-session.ts +182 -0
  170. package/src/services/system-metrics/ppm-process-ownership.ts +34 -0
  171. package/src/services/system-metrics/ppm-protected-pids.ts +84 -0
  172. package/src/services/system-metrics/process-collector-darwin.ts +141 -0
  173. package/src/services/system-metrics/process-collector-linux.ts +85 -0
  174. package/src/services/system-metrics/process-collector-types.ts +80 -0
  175. package/src/services/system-metrics/process-collector-windows-parse.ts +153 -0
  176. package/src/services/system-metrics/process-collector-windows.ts +136 -0
  177. package/src/services/system-metrics/process-cpu-delta.ts +61 -0
  178. package/src/services/system-metrics/process-grouping.ts +142 -0
  179. package/src/services/system-metrics/process-io-delta.ts +84 -0
  180. package/src/services/system-metrics/process-io-linux.ts +46 -0
  181. package/src/services/system-metrics/process-net-collector-darwin.ts +103 -0
  182. package/src/services/system-metrics/process-rows-builder.ts +111 -0
  183. package/src/services/system-metrics/rate-delta.ts +47 -0
  184. package/src/services/system-metrics/system-metrics-platform.ts +51 -0
  185. package/src/services/system-metrics/system-metrics-tick.ts +178 -0
  186. package/src/services/system-metrics/system-metrics.service.ts +212 -0
  187. package/src/types/system-metrics.ts +199 -0
  188. package/src/web/components/editor/video-player/video-player.tsx +54 -22
  189. package/src/web/components/floating-window/window-content-registry.ts +2 -0
  190. package/src/web/components/floating-window/window-persistence.ts +1 -1
  191. package/src/web/components/floating-window/window-store-types.ts +1 -1
  192. package/src/web/components/system/build-kill-request.ts +9 -0
  193. package/src/web/components/system/chart-scale.ts +28 -0
  194. package/src/web/components/system/cpu-core-bars.tsx +33 -0
  195. package/src/web/components/system/kill-confirm-dialog.tsx +89 -0
  196. package/src/web/components/system/metric-chart-canvas.tsx +108 -0
  197. package/src/web/components/system/overview-cards/cpu-card.tsx +39 -0
  198. package/src/web/components/system/overview-cards/disk-card.tsx +41 -0
  199. package/src/web/components/system/overview-cards/gpu-card.tsx +33 -0
  200. package/src/web/components/system/overview-cards/mem-card.tsx +32 -0
  201. package/src/web/components/system/overview-cards/net-card.tsx +41 -0
  202. package/src/web/components/system/overview-panel.tsx +97 -0
  203. package/src/web/components/system/process-columns-grid.ts +93 -0
  204. package/src/web/components/system/process-group-row.tsx +71 -0
  205. package/src/web/components/system/process-row-format.ts +56 -0
  206. package/src/web/components/system/process-row.tsx +82 -0
  207. package/src/web/components/system/process-table-model.ts +127 -0
  208. package/src/web/components/system/process-table-sort.ts +90 -0
  209. package/src/web/components/system/process-table-toolbar.tsx +190 -0
  210. package/src/web/components/system/process-table-totals.ts +49 -0
  211. package/src/web/components/system/process-table.tsx +187 -0
  212. package/src/web/components/system/resolve-open-system-monitor-action.ts +29 -0
  213. package/src/web/components/system/resource-status-bar.tsx +17 -16
  214. package/src/web/components/system/sortable-header.tsx +65 -0
  215. package/src/web/components/system/sparkline-canvas.tsx +8 -9
  216. package/src/web/components/system/system-monitor-body.tsx +146 -0
  217. package/src/web/components/system/system-monitor-tab.tsx +2 -185
  218. package/src/web/components/system/system-monitor-window-content.tsx +18 -0
  219. package/src/web/components/system/use-open-system-monitor.ts +34 -0
  220. package/src/web/hooks/resource-monitor-lease.ts +55 -0
  221. package/src/web/hooks/use-element-width.ts +27 -0
  222. package/src/web/hooks/use-resource-monitor.ts +113 -35
  223. package/src/web/lib/format-bytes.ts +16 -0
  224. package/src/web/lib/media-url.ts +30 -4
  225. package/.release-run.sh +0 -5
  226. package/dist/web/assets/architecture-PBZL5I3N-Bs7wzj-W.js +0 -1
  227. package/dist/web/assets/arrow-right-DubGFkN8.js +0 -1
  228. package/dist/web/assets/button-B4MWPjWj.js +0 -1
  229. package/dist/web/assets/chat-tab-Xd2WMjdX.js +0 -15
  230. package/dist/web/assets/circle-question-mark-CENpx4oA.js +0 -1
  231. package/dist/web/assets/code-editor-DqXYJWAB.js +0 -10
  232. package/dist/web/assets/gitGraph-HDMCJU4V-D7i54kbM.js +0 -1
  233. package/dist/web/assets/group-chat-tab-B3sryFdA.js +0 -1
  234. package/dist/web/assets/index-DgbOF3xa.js +0 -52
  235. package/dist/web/assets/index-oxsyfDa0.css +0 -2
  236. package/dist/web/assets/info-3K5VOQVL-BV41AzR9.js +0 -1
  237. package/dist/web/assets/markdown-renderer-feiuhJ9n.js +0 -1
  238. package/dist/web/assets/media-url-CUpN5vI1.js +0 -1
  239. package/dist/web/assets/packet-RMMSAZCW-CaJoP44m.js +0 -1
  240. package/dist/web/assets/pie-UPGHQEXC-DSGZmNw2.js +0 -1
  241. package/dist/web/assets/radar-KQ55EAFF-Be4VUTs0.js +0 -1
  242. package/dist/web/assets/settings-tab-Bd8e6iqY.js +0 -1
  243. package/dist/web/assets/system-monitor-tab-A0jvt5Qw.js +0 -1
  244. package/dist/web/assets/team-member-sheet-5Oaqm8I_.js +0 -2
  245. package/dist/web/assets/treemap-KZPCXAKY-Cu2zgbxU.js +0 -1
  246. package/dist/web/assets/video-preview-CwtLPELG.js +0 -1
  247. package/src/services/resource-monitor-utils.ts +0 -141
  248. package/src/services/resource-monitor.service.ts +0 -147
  249. package/src/web/components/system/system-monitor-group-row.tsx +0 -153
  250. /package/dist/web/assets/{abap-C1K0-wzc.js → abap-MRbmsXOs.js} +0 -0
  251. /package/dist/web/assets/{actionscript-3-CJhQVjLA.js → actionscript-3-BDDHKqa4.js} +0 -0
  252. /package/dist/web/assets/{ada-Bt8r9fME.js → ada-DpuV9KwV.js} +0 -0
  253. /package/dist/web/assets/{andromeeda-DF1I8qi3.js → andromeeda-D6qUCKJo.js} +0 -0
  254. /package/dist/web/assets/{apache-CnlleE6P.js → apache-CX1NU_Tl.js} +0 -0
  255. /package/dist/web/assets/{apex-j0C6Xmk6.js → apex-B4-aoQ3K.js} +0 -0
  256. /package/dist/web/assets/{api-settings-DfNRPr1q.js → api-settings-kQHV6pYZ.js} +0 -0
  257. /package/dist/web/assets/{api-themes-8WTH6KpV.js → api-themes-CrK0tkW_.js} +0 -0
  258. /package/dist/web/assets/{applescript-DO7AnO8U.js → applescript-Dm9NI6KR.js} +0 -0
  259. /package/dist/web/assets/{apply-theme-CNj1iA-v.js → apply-theme-BH_d4amk.js} +0 -0
  260. /package/dist/web/assets/{ara-i83AydZj.js → ara-BGN8GAYn.js} +0 -0
  261. /package/dist/web/assets/{asciidoc-DbBA6-sF.js → asciidoc-s_yVuR3t.js} +0 -0
  262. /package/dist/web/assets/{asm-B5S47Rgr.js → asm-BzQdSvTe.js} +0 -0
  263. /package/dist/web/assets/{aurora-x-De_IaSKw.js → aurora-x-BJTLETG_.js} +0 -0
  264. /package/dist/web/assets/{awk-CfyLHXqS.js → awk-BQEGWxvX.js} +0 -0
  265. /package/dist/web/assets/{ayu-dark-DTLdZ1Si.js → ayu-dark-CpTORmLc.js} +0 -0
  266. /package/dist/web/assets/{ayu-light-DTOfkzhu.js → ayu-light-D8PVj-e6.js} +0 -0
  267. /package/dist/web/assets/{ayu-mirage-DsAECCMv.js → ayu-mirage-DyElQHtm.js} +0 -0
  268. /package/dist/web/assets/{ballerina-CumGp9A7.js → ballerina-C82NkRtj.js} +0 -0
  269. /package/dist/web/assets/{bat-Ca2SBbYN.js → bat-0X7DtGI-.js} +0 -0
  270. /package/dist/web/assets/{beancount-CqyXBwwF.js → beancount-Xgvy6YRl.js} +0 -0
  271. /package/dist/web/assets/{berry-yl-kJr_H.js → berry-CCT2pZcQ.js} +0 -0
  272. /package/dist/web/assets/{bibtex-DoFFszjV.js → bibtex-CpXgZ9M_.js} +0 -0
  273. /package/dist/web/assets/{bicep-CWPi4nfK.js → bicep-fkeSA62l.js} +0 -0
  274. /package/dist/web/assets/{bird2-DXew-ut0.js → bird2-Co7SeAI8.js} +0 -0
  275. /package/dist/web/assets/{c-clbySDvd.js → c-BpmrTvJh.js} +0 -0
  276. /package/dist/web/assets/{c3-B65jvSM1.js → c3-BZ_Z0RrR.js} +0 -0
  277. /package/dist/web/assets/{cadence-Cm8tQTHN.js → cadence-B0GBC8OF.js} +0 -0
  278. /package/dist/web/assets/{can-open-in-ppm-DXGOSUQc.js → can-open-in-ppm-omBzUBBq.js} +0 -0
  279. /package/dist/web/assets/{catppuccin-frappe-DLeGslh_.js → catppuccin-frappe-DIt_xR7m.js} +0 -0
  280. /package/dist/web/assets/{catppuccin-latte-CR5GeHws.js → catppuccin-latte-Dw40AcqA.js} +0 -0
  281. /package/dist/web/assets/{catppuccin-macchiato-p-XgjxhP.js → catppuccin-macchiato-BJ7DfVEF.js} +0 -0
  282. /package/dist/web/assets/{catppuccin-mocha-B8QOAZLl.js → catppuccin-mocha-NI2lfXzU.js} +0 -0
  283. /package/dist/web/assets/{clarity-DPulbvKH.js → clarity-F39L0xMJ.js} +0 -0
  284. /package/dist/web/assets/{clock-D493FU_D.js → clock-CvhF4DJP.js} +0 -0
  285. /package/dist/web/assets/{clojure-DFuWS20u.js → clojure-DloMkd8K.js} +0 -0
  286. /package/dist/web/assets/{cmake-DejCqcu4.js → cmake-CwerJun_.js} +0 -0
  287. /package/dist/web/assets/{code-CLF5x7KK.js → code-DDPoqVri.js} +0 -0
  288. /package/dist/web/assets/{codeowners-BwAyqWIH.js → codeowners-CQyVz4Qf.js} +0 -0
  289. /package/dist/web/assets/{codeql-DgSwFjqI.js → codeql-Bb229zuY.js} +0 -0
  290. /package/dist/web/assets/{common-lisp-CxIVJCtf.js → common-lisp-KMlIwq5I.js} +0 -0
  291. /package/dist/web/assets/{copy-BApI9v7Z.js → copy-DKn11Pye.js} +0 -0
  292. /package/dist/web/assets/{coq-DLSjSnmf.js → coq-DHX_3IIo.js} +0 -0
  293. /package/dist/web/assets/{csharp-C1HHzXBp.js → csharp-CEmCZv9Q.js} +0 -0
  294. /package/dist/web/assets/{css-VXsMY--y.js → css-CqZqBD05.js} +0 -0
  295. /package/dist/web/assets/{csv-BEbcJdHz.js → csv-l1g_V5MV.js} +0 -0
  296. /package/dist/web/assets/{csv-parser-BRtnJCfv.js → csv-parser-CnS0wqr6.js} +0 -0
  297. /package/dist/web/assets/{cue-BkDnFqUD.js → cue-BrxRmilg.js} +0 -0
  298. /package/dist/web/assets/{cypher-1cMqojSQ.js → cypher-rZkKwqZc.js} +0 -0
  299. /package/dist/web/assets/{d-BnYjRXtH.js → d-BALR-QuP.js} +0 -0
  300. /package/dist/web/assets/{dark-plus-XfbaH7kZ.js → dark-plus-Cj7rVwh-.js} +0 -0
  301. /package/dist/web/assets/{dart-Ca7s-8hK.js → dart-CWQcdkXk.js} +0 -0
  302. /package/dist/web/assets/{data-grid-types-BXwlFMzs.js → data-grid-types-CYvF-xK5.js} +0 -0
  303. /package/dist/web/assets/{database-B9okYLx6.js → database-BH0urvbs.js} +0 -0
  304. /package/dist/web/assets/{dax-CmuOw-mY.js → dax-BNHD-QBA.js} +0 -0
  305. /package/dist/web/assets/{desktop-C2gJ6Ovb.js → desktop-CN0IXPrP.js} +0 -0
  306. /package/dist/web/assets/{diff-BCEo1Ej7.js → diff-BtOXapES.js} +0 -0
  307. /package/dist/web/assets/{dist-CUPbqNnL.js → dist-DB1Oaqcc.js} +0 -0
  308. /package/dist/web/assets/{dist-DOlBnxFX.js → dist-Di6G_5jU.js} +0 -0
  309. /package/dist/web/assets/{docker-DN2jlyAh.js → docker-DNsAo_qO.js} +0 -0
  310. /package/dist/web/assets/{dotenv-NExMY2kS.js → dotenv-D6Pl6aOU.js} +0 -0
  311. /package/dist/web/assets/{download-D9UYwY0-.js → download-zCATy4x4.js} +0 -0
  312. /package/dist/web/assets/{dracula-B9lbE01y.js → dracula-C3m-w12D.js} +0 -0
  313. /package/dist/web/assets/{dracula-soft-CMBBfKF_.js → dracula-soft-BYqvXm6Z.js} +0 -0
  314. /package/dist/web/assets/{dream-maker-DEyDwFsd.js → dream-maker-DZAPbPTi.js} +0 -0
  315. /package/dist/web/assets/{emacs-lisp-D_qP2zS6.js → emacs-lisp-Ao5SW8ay.js} +0 -0
  316. /package/dist/web/assets/{everforest-dark-DbHa2U-p.js → everforest-dark-uC8QYotQ.js} +0 -0
  317. /package/dist/web/assets/{everforest-light-BISkJchP.js → everforest-light-CTgsVNMr.js} +0 -0
  318. /package/dist/web/assets/{fennel-6B22SfJR.js → fennel-WuBw6IR1.js} +0 -0
  319. /package/dist/web/assets/{file-exclamation-point-a8f3_w7a.js → file-exclamation-point-COAwgNGw.js} +0 -0
  320. /package/dist/web/assets/{fish-CubIIvJD.js → fish-Byy9dusu.js} +0 -0
  321. /package/dist/web/assets/{fluent-DF55zQ09.js → fluent-CDxb_sgw.js} +0 -0
  322. /package/dist/web/assets/{fortran-free-form-DvOu8jAt.js → fortran-free-form-DKWSTamT.js} +0 -0
  323. /package/dist/web/assets/{gdscript-DCPxdLpq.js → gdscript-prYHMgtD.js} +0 -0
  324. /package/dist/web/assets/{gdshader-CTZ381FO.js → gdshader-D-RM-SQk.js} +0 -0
  325. /package/dist/web/assets/{genie-C_QDtvgU.js → genie-CowkJhej.js} +0 -0
  326. /package/dist/web/assets/{gherkin-BcvK42tF.js → gherkin-CLFpoVYJ.js} +0 -0
  327. /package/dist/web/assets/{github-dark-default-CKGVrl3Z.js → github-dark-default-BK_1Qgb8.js} +0 -0
  328. /package/dist/web/assets/{github-dark-dimmed-C3dQZ_LC.js → github-dark-dimmed-Cv9lj6f-.js} +0 -0
  329. /package/dist/web/assets/{github-dark-high-contrast-DW78QukY.js → github-dark-high-contrast-CW5ZgIDh.js} +0 -0
  330. /package/dist/web/assets/{github-dark-C9afs_4w.js → github-dark-nW2F-RLd.js} +0 -0
  331. /package/dist/web/assets/{github-light-BnP2dznS.js → github-light-D4PqBHGZ.js} +0 -0
  332. /package/dist/web/assets/{github-light-default-C2fPZzPG.js → github-light-default-B-cHtJJV.js} +0 -0
  333. /package/dist/web/assets/{github-light-high-contrast-BzIuUFR2.js → github-light-high-contrast-Dt0HJq50.js} +0 -0
  334. /package/dist/web/assets/{gleam-BpeKwEIO.js → gleam-DwSyXJWP.js} +0 -0
  335. /package/dist/web/assets/{gn-nUb_Mit0.js → gn-Cv5WEzHc.js} +0 -0
  336. /package/dist/web/assets/{gnuplot-D7I0v20p.js → gnuplot-D7bRdY_M.js} +0 -0
  337. /package/dist/web/assets/{go-D7Qqska7.js → go-DiRVJ22U.js} +0 -0
  338. /package/dist/web/assets/{groovy-DS-pne5-.js → groovy-BHAgLTeO.js} +0 -0
  339. /package/dist/web/assets/{gruvbox-dark-hard-C0W01fsq.js → gruvbox-dark-hard-C8QZ3gzY.js} +0 -0
  340. /package/dist/web/assets/{gruvbox-dark-medium-Bqo6fQbg.js → gruvbox-dark-medium-Dp1eeid2.js} +0 -0
  341. /package/dist/web/assets/{gruvbox-dark-soft-D-XSM_fu.js → gruvbox-dark-soft-Cwq0dWVj.js} +0 -0
  342. /package/dist/web/assets/{gruvbox-light-hard-IVAwMJRl.js → gruvbox-light-hard-CLQCq2-w.js} +0 -0
  343. /package/dist/web/assets/{gruvbox-light-medium-38ATiG7i.js → gruvbox-light-medium-APHsh6Mo.js} +0 -0
  344. /package/dist/web/assets/{gruvbox-light-soft-DnZr3c_0.js → gruvbox-light-soft-CX-fYc64.js} +0 -0
  345. /package/dist/web/assets/{haskell-uQcywkDH.js → haskell-C4Tw-TDa.js} +0 -0
  346. /package/dist/web/assets/{haxe-c6bI4_GT.js → haxe-B7fSduTQ.js} +0 -0
  347. /package/dist/web/assets/{hcl-CQXTiEXq.js → hcl-Bi3ho6yC.js} +0 -0
  348. /package/dist/web/assets/{hjson-ChETf2bz.js → hjson-BXwae2M1.js} +0 -0
  349. /package/dist/web/assets/{hlsl-BMC4JGoE.js → hlsl-CRuQLBSa.js} +0 -0
  350. /package/dist/web/assets/{horizon-BusFlhLW.js → horizon-DtdQ6qjv.js} +0 -0
  351. /package/dist/web/assets/{horizon-bright-2oD0Mz7W.js → horizon-bright-BXSF_uKq.js} +0 -0
  352. /package/dist/web/assets/{houston-DdbbjqFg.js → houston-C6ASpUjT.js} +0 -0
  353. /package/dist/web/assets/{hy-D_SOuqw9.js → hy-BrWBHtHY.js} +0 -0
  354. /package/dist/web/assets/{image-gallery-CrM5fHKy.js → image-gallery-CGvlv8zR.js} +0 -0
  355. /package/dist/web/assets/{imba-BxLOHO5I.js → imba-C_JJXckG.js} +0 -0
  356. /package/dist/web/assets/{ini-ox-CFcg0.js → ini-DEE_vSHQ.js} +0 -0
  357. /package/dist/web/assets/{java-Bzo8yIal.js → java-CnmpcjcT.js} +0 -0
  358. /package/dist/web/assets/{javascript-DHuz9VXn.js → javascript-C-M7sa2e.js} +0 -0
  359. /package/dist/web/assets/{json-0_y80FD5.js → json-BjZ3dAk6.js} +0 -0
  360. /package/dist/web/assets/{json5-CEQ50pGM.js → json5-BQ2vpqjp.js} +0 -0
  361. /package/dist/web/assets/{jsonc-CfrLEAKA.js → jsonc-C5MjoWGx.js} +0 -0
  362. /package/dist/web/assets/{jsonl-fKbrANC2.js → jsonl-JvhrmQJI.js} +0 -0
  363. /package/dist/web/assets/{jsonnet-DKbkPaQ2.js → jsonnet-C5pdZVuo.js} +0 -0
  364. /package/dist/web/assets/{jssm-Dxxx1Hqu.js → jssm-Db17uybX.js} +0 -0
  365. /package/dist/web/assets/{jsx-DlJL-Oj3.js → jsx-tJp2Cyqu.js} +0 -0
  366. /package/dist/web/assets/{kanagawa-dragon-CwN4SV1c.js → kanagawa-dragon-BculT_Y1.js} +0 -0
  367. /package/dist/web/assets/{kanagawa-lotus-BHltayiE.js → kanagawa-lotus-yQgHUGwU.js} +0 -0
  368. /package/dist/web/assets/{kanagawa-wave-D-KXPjw6.js → kanagawa-wave-CyGoWN4d.js} +0 -0
  369. /package/dist/web/assets/{kdl-DvtoJdFo.js → kdl-Bn8R1REF.js} +0 -0
  370. /package/dist/web/assets/{kotlin-CTS4MLcx.js → kotlin-DWughK73.js} +0 -0
  371. /package/dist/web/assets/{kusto-HtSE_sKm.js → kusto--serPb0x.js} +0 -0
  372. /package/dist/web/assets/{laserwave-DaXZG9ge.js → laserwave-DfAPJ1tt.js} +0 -0
  373. /package/dist/web/assets/{lean-BYtGUfWx.js → lean-UAm1HOKl.js} +0 -0
  374. /package/dist/web/assets/{less-BoxmU_Mk.js → less-Xj6Ka0fF.js} +0 -0
  375. /package/dist/web/assets/{lib-B1clP4ai.js → lib-DgNcCtj3.js} +0 -0
  376. /package/dist/web/assets/{libesm-ah-mr-sh.js → libesm-CPh1Av0r.js} +0 -0
  377. /package/dist/web/assets/{light-plus-Bt5CyUuo.js → light-plus-BfS7gPcj.js} +0 -0
  378. /package/dist/web/assets/{llvm-CSdk9q9V.js → llvm-DvWiVwvU.js} +0 -0
  379. /package/dist/web/assets/{log-B-kp_3CL.js → log-Bo5z9bNz.js} +0 -0
  380. /package/dist/web/assets/{logo-DdIsXFDO.js → logo-CrIjcMZT.js} +0 -0
  381. /package/dist/web/assets/{luau-DUBpLlzQ.js → luau-C9TsYwNt.js} +0 -0
  382. /package/dist/web/assets/{make-B3JVjoW_.js → make-GYq4qVbx.js} +0 -0
  383. /package/dist/web/assets/{markdown-Seon0vHs.js → markdown-p5mNledS.js} +0 -0
  384. /package/dist/web/assets/{material-theme-Nq-ChX1P.js → material-theme-CWYOVxsP.js} +0 -0
  385. /package/dist/web/assets/{material-theme-darker-CPV4ayXJ.js → material-theme-darker-BDGty7YH.js} +0 -0
  386. /package/dist/web/assets/{material-theme-lighter-0kyjYqEd.js → material-theme-lighter-JbgOgV3n.js} +0 -0
  387. /package/dist/web/assets/{material-theme-ocean-DGpAp5co.js → material-theme-ocean-EMOpLpa2.js} +0 -0
  388. /package/dist/web/assets/{material-theme-palenight-B0AUn0NG.js → material-theme-palenight-CY5hgm7h.js} +0 -0
  389. /package/dist/web/assets/{matlab-C2waytxs.js → matlab-C-He_NTH.js} +0 -0
  390. /package/dist/web/assets/{mdx-DAis6R6I.js → mdx-Cr2TR5fj.js} +0 -0
  391. /package/dist/web/assets/{mermaid-_rnT2YGD.js → mermaid-BYc0-B0U.js} +0 -0
  392. /package/dist/web/assets/{min-dark-BSSjchUB.js → min-dark-CMJwqJqB.js} +0 -0
  393. /package/dist/web/assets/{min-light-DomAFQsa.js → min-light-Cx6vFiEX.js} +0 -0
  394. /package/dist/web/assets/{mipsasm-bBgtvPyG.js → mipsasm-Bjer5HwK.js} +0 -0
  395. /package/dist/web/assets/{mobile-bottom-sheet-CS3XMwFw.js → mobile-bottom-sheet-BUOJgiaZ.js} +0 -0
  396. /package/dist/web/assets/{mojo-Cp9BayW0.js → mojo-t90PR-Y2.js} +0 -0
  397. /package/dist/web/assets/{monokai-CL_9gbmn.js → monokai-dci_PdCm.js} +0 -0
  398. /package/dist/web/assets/{moonbit-BS_fcr-P.js → moonbit-AAzI-Hd-.js} +0 -0
  399. /package/dist/web/assets/{move-C79AH45U.js → move-kwBhnhrG.js} +0 -0
  400. /package/dist/web/assets/{narrat-CJ5s3BDf.js → narrat-CXww2YQL.js} +0 -0
  401. /package/dist/web/assets/{nextflow-groovy-ZHa4JrPJ.js → nextflow-groovy-CJXsuXGB.js} +0 -0
  402. /package/dist/web/assets/{night-owl-Jkf9zFQK.js → night-owl-_GD204Wr.js} +0 -0
  403. /package/dist/web/assets/{night-owl-light-DRPeaG5J.js → night-owl-light-DNgkw3kl.js} +0 -0
  404. /package/dist/web/assets/{nix-D2Jet9DN.js → nix-BgiorKFd.js} +0 -0
  405. /package/dist/web/assets/{nord-CREVs22j.js → nord-CaBmcxFC.js} +0 -0
  406. /package/dist/web/assets/{nushell-CAiDi_mR.js → nushell-DUh4UGx1.js} +0 -0
  407. /package/dist/web/assets/{objective-c-CVkmJkC1.js → objective-c-Cl9KU86S.js} +0 -0
  408. /package/dist/web/assets/{objective-cpp-DIKDO1Ly.js → objective-cpp-DVkIA8A0.js} +0 -0
  409. /package/dist/web/assets/{ocaml-R9qtGQhs.js → ocaml-vvoHTak0.js} +0 -0
  410. /package/dist/web/assets/{odin-DTYNQqVr.js → odin-Cyjw8woZ.js} +0 -0
  411. /package/dist/web/assets/{one-dark-pro-BSLWUJn5.js → one-dark-pro-B1cviILi.js} +0 -0
  412. /package/dist/web/assets/{one-light-DbkRXG3t.js → one-light-BPGUJeYI.js} +0 -0
  413. /package/dist/web/assets/{openscad-BlPcSnmT.js → openscad-BLMdTUU8.js} +0 -0
  414. /package/dist/web/assets/{pascal-B1Y46ZZB.js → pascal-i5niy3e7.js} +0 -0
  415. /package/dist/web/assets/{pkl-BhJSJbFv.js → pkl-CuOV7SsU.js} +0 -0
  416. /package/dist/web/assets/{plastic-BzxsCTpi.js → plastic-Bf_zE5KL.js} +0 -0
  417. /package/dist/web/assets/{plsql-DBba7dyP.js → plsql-cfqEtMD3.js} +0 -0
  418. /package/dist/web/assets/{plus-DmjC2iRB.js → plus-BM-Ty0fp.js} +0 -0
  419. /package/dist/web/assets/{po-BvgLlnNo.js → po-CFJcWgjr.js} +0 -0
  420. /package/dist/web/assets/{poimandres-DUaI_1JP.js → poimandres-G5YoaIFf.js} +0 -0
  421. /package/dist/web/assets/{polar-C7uILwJn.js → polar-rcjs3i9R.js} +0 -0
  422. /package/dist/web/assets/{postcss-BgJlpFdw.js → postcss-CBKY1FTZ.js} +0 -0
  423. /package/dist/web/assets/{powerquery-Dn1MIpZu.js → powerquery-Db7SXLbO.js} +0 -0
  424. /package/dist/web/assets/{powershell-Bo-DYzOS.js → powershell-LFy3MUTP.js} +0 -0
  425. /package/dist/web/assets/{prisma-CTLs5IdT.js → prisma-BE8GR1lH.js} +0 -0
  426. /package/dist/web/assets/{prolog-QRGun3eG.js → prolog-DOn5lR1e.js} +0 -0
  427. /package/dist/web/assets/{proto-B7PI7apn.js → proto-wr-TpAK_.js} +0 -0
  428. /package/dist/web/assets/{puppet-CBq0tLrP.js → puppet-D2Dkv62u.js} +0 -0
  429. /package/dist/web/assets/{purescript-DFewOQb2.js → purescript-DvgJgPdy.js} +0 -0
  430. /package/dist/web/assets/{python-iWuxKXvT.js → python-C7TlkHhK.js} +0 -0
  431. /package/dist/web/assets/{qmldir-cXiW3AsF.js → qmldir-CtZMwhcW.js} +0 -0
  432. /package/dist/web/assets/{qss-DASwAbBL.js → qss-dNZ2btnl.js} +0 -0
  433. /package/dist/web/assets/{r-TU2eaIPw.js → r-BlqnNkHS.js} +0 -0
  434. /package/dist/web/assets/{racket-SkRKqrLY.js → racket-CzRQrGc4.js} +0 -0
  435. /package/dist/web/assets/{raku-D31lthkZ.js → raku-BwutWhBF.js} +0 -0
  436. /package/dist/web/assets/{red-CTcQZevb.js → red-BMXMywmL.js} +0 -0
  437. /package/dist/web/assets/{reg-D8YAsTGf.js → reg-BqOKrIOw.js} +0 -0
  438. /package/dist/web/assets/{regexp-CD2uvAWx.js → regexp-Bero1BN2.js} +0 -0
  439. /package/dist/web/assets/{rel-CAaI-1fg.js → rel-BXKWIElA.js} +0 -0
  440. /package/dist/web/assets/{resolve-theme-CJvkL8hU.js → resolve-theme-IdhSR-gx.js} +0 -0
  441. /package/dist/web/assets/{riscv-DR-hJVIj.js → riscv-BbbBYJBo.js} +0 -0
  442. /package/dist/web/assets/{ron-CuUCJ0n4.js → ron-BtVTWW4b.js} +0 -0
  443. /package/dist/web/assets/{rose-pine-dawn-Bqz2sBRY.js → rose-pine-dawn-D7lwhUei.js} +0 -0
  444. /package/dist/web/assets/{rose-pine-aFHxW48i.js → rose-pine-hvkvQzvU.js} +0 -0
  445. /package/dist/web/assets/{rose-pine-moon-wqyh0an4.js → rose-pine-moon-CoHDmsIw.js} +0 -0
  446. /package/dist/web/assets/{rosmsg-CI1ywimO.js → rosmsg-CdaZFgI8.js} +0 -0
  447. /package/dist/web/assets/{run-in-terminal-CGW6o37_.js → run-in-terminal-CyS5Itj-.js} +0 -0
  448. /package/dist/web/assets/{rust-p7Imk4G_.js → rust-Dy2qsphD.js} +0 -0
  449. /package/dist/web/assets/{sass-C8JfaqCV.js → sass-Bz7NVxDb.js} +0 -0
  450. /package/dist/web/assets/{save-DRPrDfTt.js → save-C4z1p51e.js} +0 -0
  451. /package/dist/web/assets/{scala-DNxCW1By.js → scala-sXSwsNyq.js} +0 -0
  452. /package/dist/web/assets/{scheme-BYuUPJoL.js → scheme-DS7TUbN7.js} +0 -0
  453. /package/dist/web/assets/{sdbl-DbPeJPUr.js → sdbl-iISFvIep.js} +0 -0
  454. /package/dist/web/assets/{send-to-chat-YXHdAyLG.js → send-to-chat-BcO39BDR.js} +0 -0
  455. /package/dist/web/assets/{shellscript-DMiHlR3q.js → shellscript-BkIl4ApC.js} +0 -0
  456. /package/dist/web/assets/{shield-check-8GObuUAn.js → shield-check-C5laObJv.js} +0 -0
  457. /package/dist/web/assets/{shield-off-egKAZEwR.js → shield-off-DULFtyLS.js} +0 -0
  458. /package/dist/web/assets/{slack-dark-C4xGcQXI.js → slack-dark-B1eg0_m2.js} +0 -0
  459. /package/dist/web/assets/{slack-ochin-BzgRt_wm.js → slack-ochin-mdkc1ldu.js} +0 -0
  460. /package/dist/web/assets/{smalltalk-LDeL9PYH.js → smalltalk-CORtd03t.js} +0 -0
  461. /package/dist/web/assets/{snazzy-light-CXE7a5j_.js → snazzy-light-Bc6Q2G89.js} +0 -0
  462. /package/dist/web/assets/{solarized-dark-DgUhY74x.js → solarized-dark-CF83zRXM.js} +0 -0
  463. /package/dist/web/assets/{solarized-light-DD9C-H-9.js → solarized-light-BoKQZaYU.js} +0 -0
  464. /package/dist/web/assets/{solidity-CAbDB4D4.js → solidity-DOgi1N4w.js} +0 -0
  465. /package/dist/web/assets/{sparkles-n1hzh65o.js → sparkles-Dqsf3hq6.js} +0 -0
  466. /package/dist/web/assets/{splunk-kQREPfIc.js → splunk-BXfw5ZLy.js} +0 -0
  467. /package/dist/web/assets/{sql-CBzeNAD8.js → sql-BcVs-eX4.js} +0 -0
  468. /package/dist/web/assets/{ssh-config-L1euxrsM.js → ssh-config-CLCtNkkd.js} +0 -0
  469. /package/dist/web/assets/{stylus-DvBnYniP.js → stylus-DdP992aO.js} +0 -0
  470. /package/dist/web/assets/{swift-DF5NDQp6.js → swift-BnGb6Lgc.js} +0 -0
  471. /package/dist/web/assets/{synthwave-84-DbBhB_Hq.js → synthwave-84-cg9264l9.js} +0 -0
  472. /package/dist/web/assets/{system-verilog-D8s2ZW_k.js → system-verilog-GbHpszs3.js} +0 -0
  473. /package/dist/web/assets/{systemd-a5-XZJsG.js → systemd-Dz-bNsDQ.js} +0 -0
  474. /package/dist/web/assets/{table-BX2ZrJfM.js → table-CHmxuh6M.js} +0 -0
  475. /package/dist/web/assets/{talonscript-BLa0URTW.js → talonscript-CFIidoBA.js} +0 -0
  476. /package/dist/web/assets/{tasl-DIoV4XcC.js → tasl-Cu-TRTKx.js} +0 -0
  477. /package/dist/web/assets/{tcl-ztYAdXfQ.js → tcl-DwCHCB1K.js} +0 -0
  478. /package/dist/web/assets/{terraform-DvpCCiOZ.js → terraform-BzZw4T1z.js} +0 -0
  479. /package/dist/web/assets/{tokyo-night-BkHlYUv0.js → tokyo-night-RKsj2-tv.js} +0 -0
  480. /package/dist/web/assets/{toml-acIrxos6.js → toml-CirbOgDP.js} +0 -0
  481. /package/dist/web/assets/{tsv-BJB5EVCT.js → tsv-CraRcWdU.js} +0 -0
  482. /package/dist/web/assets/{tsx-B1MmXGT3.js → tsx-CjFg0lgw.js} +0 -0
  483. /package/dist/web/assets/{turtle-DFceTiqd.js → turtle-B-WBIOa6.js} +0 -0
  484. /package/dist/web/assets/{typescript-Dz9wU5Y1.js → typescript-MpLarYn1.js} +0 -0
  485. /package/dist/web/assets/{typespec-CPuYZijj.js → typespec-B7QlHMZ_.js} +0 -0
  486. /package/dist/web/assets/{typst-CfsCIYv8.js → typst-CcHSKFZj.js} +0 -0
  487. /package/dist/web/assets/{use-blob-url-BmlYYZ8L.js → use-blob-url-BKyVxOZw.js} +0 -0
  488. /package/dist/web/assets/{use-is-mobile-B8FA4kQf.js → use-is-mobile-BXGVvczu.js} +0 -0
  489. /package/dist/web/assets/{v-CGo0jcXA.js → v-xTGhWZuD.js} +0 -0
  490. /package/dist/web/assets/{vala-AsSR0hrb.js → vala-DwebjH3H.js} +0 -0
  491. /package/dist/web/assets/{vb-C7tvbXv1.js → vb-BxJT2RAy.js} +0 -0
  492. /package/dist/web/assets/{vendor-xterm-C1diXHJl.js → vendor-xterm-CU6zIYMB.js} +0 -0
  493. /package/dist/web/assets/{verilog--a33ND-p.js → verilog-CvV6RHPD.js} +0 -0
  494. /package/dist/web/assets/{vesper-B_Z0h4pn.js → vesper-CY3qd7E_.js} +0 -0
  495. /package/dist/web/assets/{vhdl-CWL5dZPN.js → vhdl-B9ZX-sUL.js} +0 -0
  496. /package/dist/web/assets/{viml-BglmT14Y.js → viml-Y42h_ExQ.js} +0 -0
  497. /package/dist/web/assets/{vitesse-black-RKFsSqQI.js → vitesse-black-DkXP6Sv-.js} +0 -0
  498. /package/dist/web/assets/{vitesse-dark-D7zDWNmc.js → vitesse-dark-B9CkIB6r.js} +0 -0
  499. /package/dist/web/assets/{vitesse-light-MAp87W5b.js → vitesse-light-C7DHrJCK.js} +0 -0
  500. /package/dist/web/assets/{vyper-CgCBYg1G.js → vyper-Cnd9s5j-.js} +0 -0
  501. /package/dist/web/assets/{wasm-Bwl4txwp.js → wasm-DQE71XTB.js} +0 -0
  502. /package/dist/web/assets/{wasm-BOG7ZeTT.js → wasm-iWe7Fzjc.js} +0 -0
  503. /package/dist/web/assets/{wenyan-DpShPKXZ.js → wenyan-Bc5Pnm9l.js} +0 -0
  504. /package/dist/web/assets/{wgsl-BakcCblK.js → wgsl-D-YUAWkP.js} +0 -0
  505. /package/dist/web/assets/{wikitext-NroRWVAO.js → wikitext-DYQDUYf2.js} +0 -0
  506. /package/dist/web/assets/{wit-B5CM2pg6.js → wit-P6u7mfwy.js} +0 -0
  507. /package/dist/web/assets/{wolfram-7MTFBJpR.js → wolfram-6SXLUqao.js} +0 -0
  508. /package/dist/web/assets/{yaml-Bwr01G2K.js → yaml-CQiMLVcZ.js} +0 -0
  509. /package/dist/web/assets/{zenscript-Dj8GATvi.js → zenscript-DFMywo_P.js} +0 -0
  510. /package/dist/web/assets/{zig-LAE-fbS-.js → zig-CtAjaIiF.js} +0 -0
@@ -1,10 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/markdown-renderer-feiuhJ9n.js","assets/vendor-mermaid-Bg4vE8QA.js","assets/rolldown-runtime-FhOqtrmT.js","assets/vendor-ui-CaeeFO0B.js","assets/vendor-markdown-Ls5AcU91.js","assets/markdown-renderer-BaBQ6Wm6.js","assets/index-DgbOF3xa.js","assets/button-B4MWPjWj.js","assets/utils-DoY4yTP-.js","assets/createLucideIcon-D8pyde1A.js","assets/eye-off-CUdzgmX8.js","assets/bot-CunPuEdW.js","assets/context-menu-DkQdt6YA.js","assets/chevron-right-BLOtX8Vy.js","assets/clock-D493FU_D.js","assets/sparkles-n1hzh65o.js","assets/copy-BApI9v7Z.js","assets/database-B9okYLx6.js","assets/download-D9UYwY0-.js","assets/plus-DmjC2iRB.js","assets/x-BcqfTY_7.js","assets/api-client-BSB14J4w.js","assets/react-I_EwPIZi.js","assets/mobile-bottom-sheet-CS3XMwFw.js","assets/use-is-mobile-B8FA4kQf.js","assets/api-settings-DfNRPr1q.js","assets/project-store-B8BkHXy5.js","assets/panel-store-DCD82zc1.js","assets/settings-store-C9YT1Hir.js","assets/tab-store-DAsvpx4t.js","assets/apply-theme-CNj1iA-v.js","assets/resolve-theme-CJvkL8hU.js","assets/index-oxsyfDa0.css","assets/image-gallery-CrM5fHKy.js","assets/run-in-terminal-CGW6o37_.js","assets/csv-preview-DsJ_a2Op.js","assets/lib-B1clP4ai.js","assets/csv-parser-BRtnJCfv.js","assets/image-preview-B0VXSpYu.js","assets/file-exclamation-point-a8f3_w7a.js","assets/use-blob-url-BmlYYZ8L.js","assets/pdf-preview-xzAA4-kD.js","assets/video-preview-CwtLPELG.js","assets/can-open-in-ppm-DXGOSUQc.js","assets/media-url-CUpN5vI1.js","assets/audio-preview-GGksv6U8.js","assets/docx-preview-DujpUDkE.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{S as t,x as n}from"./vendor-markdown-Ls5AcU91.js";import"./vendor-ui-CaeeFO0B.js";import{t as r}from"./createLucideIcon-D8pyde1A.js";import{t as i}from"./chevron-right-BLOtX8Vy.js";import{t as a}from"./button-B4MWPjWj.js";import{t as o}from"./code-CLF5x7KK.js";import{t as s}from"./database-B9okYLx6.js";import{t as c}from"./download-D9UYwY0-.js";import{n as l}from"./plus-DmjC2iRB.js";import{t as u}from"./file-exclamation-point-a8f3_w7a.js";import{a as d,i as f,r as p,t as m}from"./glide-data-grid-uIjdTT7c.js";import{t as ee}from"./shield-check-8GObuUAn.js";import{t as te}from"./shield-off-egKAZEwR.js";import{t as ne}from"./table-BX2ZrJfM.js";import{t as h}from"./x-BcqfTY_7.js";import{i as g,n as _}from"./api-client-BSB14J4w.js";import{q as v}from"./vendor-mermaid-Bg4vE8QA.js";import{t as re}from"./settings-store-C9YT1Hir.js";import{t as y}from"./utils-DoY4yTP-.js";import{t as ie}from"./panel-store-DCD82zc1.js";import{i as b}from"./project-store-B8BkHXy5.js";import{t as ae}from"./tab-store-DAsvpx4t.js";import{$t as x,F as S,Gt as C,It as oe,Jt as w,Kt as T,Lt as se,On as E,P as ce,Qt as D,Rt as le,Sr as ue,Un as O,Wn as de,Wt as k,Yt as fe,Zt as pe,_r as A,er as j,hr as M,jn as me,mr as N,pn as P,pr as he,q as ge,qt as F,s as _e,sr as ve,tn as ye,ur as be,vr as I,yr as L,zt as R}from"./index-DgbOF3xa.js";import"./data-grid-types-BXwlFMzs.js";import{t as xe}from"./use-monaco-theme-CpF3A7JL.js";import{i as Se,n as Ce,r as we,t as Te}from"./can-open-in-ppm-DXGOSUQc.js";var Ee=r(`redo-2`,[[`path`,{d:`m15 14 5-5-5-5`,key:`12vg1m`}],[`path`,{d:`M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13`,key:`6uklza`}]]),z=e(t(),1),B=n();function De(e){let t=e.startsWith(`/`),n=e.split(/[/\\]/).filter(Boolean),r=e=>{let r=(t?`/`:``)+n.slice(0,e+1).join(`/`);return/^[A-Za-z]:$/.test(r)?r+`/`:r},i=t?`/`:(n[0]??``)+`/`;return n.map((e,t)=>({name:e,absPath:r(t),parentDir:t>0?r(t-1):i}))}async function Oe(e){return(await _.get(`/api/fs/browse?path=${encodeURIComponent(e)}`)).entries}function ke({filePath:e,projectName:t,tabId:n,className:r}){let{updateTab:a,openTab:o}=ae(oe(e=>({updateTab:e.updateTab,openTab:e.openTab}))),s=(0,z.useRef)(null),c=(0,z.useMemo)(()=>De(e),[e]);(0,z.useEffect)(()=>{s.current&&(s.current.scrollLeft=s.current.scrollWidth)},[c]);let l=(0,z.useCallback)((e,r)=>{let i=y(e),s={filePath:e,projectName:t};r.metaKey||r.ctrlKey?o({type:`editor`,title:i,metadata:s,projectId:t,closable:!0}):a(n,{title:i,metadata:s})},[t,n,o,a]);return(0,B.jsx)(`div`,{ref:s,className:r,children:c.map((e,t)=>(0,B.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[t>0&&(0,B.jsx)(i,{className:`size-3 text-muted-foreground shrink-0 mx-0.5`}),(0,B.jsx)(Ae,{segment:e,isLast:t===c.length-1,onFileClick:l})]},e.absPath))})}function Ae({segment:e,isLast:t,onFileClick:n}){let[r,i]=(0,z.useState)(null),[a,o]=(0,z.useState)(null);function s(t){t&&r===null&&Oe(e.parentDir).then(i).catch(e=>{o(e.message||`Failed to browse`),i([])})}return(0,B.jsxs)(se,{onOpenChange:s,children:[(0,B.jsx)(F,{asChild:!0,children:(0,B.jsx)(`button`,{type:`button`,className:`text-xs px-1 py-0.5 rounded hover:bg-muted transition-colors truncate max-w-[120px] ${t?`text-foreground font-medium`:`text-muted-foreground`}`,children:e.name})}),(0,B.jsx)(le,{align:`start`,className:`max-h-[300px] overflow-y-auto p-1`,children:r===null?(0,B.jsx)(R,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):a?(0,B.jsx)(R,{disabled:!0,className:`text-xs text-destructive`,children:a}):r.length===0?(0,B.jsx)(R,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Empty`}):r.map(t=>(0,B.jsx)(V,{entry:t,activePath:e.absPath,onFileClick:n},t.path))})]})}function V({entry:e,activePath:t,onFileClick:n}){let r=H(e.name,e.type===`directory`),i=e.path===t,[a,o]=(0,z.useState)(null);if(e.type===`directory`){function s(t){t&&a===null&&Oe(e.path).then(o).catch(()=>o([]))}return(0,B.jsxs)(k,{onOpenChange:s,children:[(0,B.jsxs)(T,{className:`text-xs gap-1.5 ${i?`bg-muted`:``}`,children:[(0,B.jsx)(r,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,B.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,B.jsx)(C,{className:`max-h-[300px] overflow-y-auto p-1`,children:a===null?(0,B.jsx)(R,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):a.length===0?(0,B.jsx)(R,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Empty`}):a.map(e=>(0,B.jsx)(V,{entry:e,activePath:t,onFileClick:n},e.path))})]})}return(0,B.jsxs)(R,{className:`text-xs gap-1.5 cursor-pointer ${i?`bg-muted`:``}`,onClick:t=>n(e.path,t),children:[(0,B.jsx)(r,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,B.jsx)(`span`,{className:`truncate`,children:e.name})]})}var je={ts:A,tsx:A,js:A,jsx:A,py:A,rs:A,go:A,html:A,css:A,scss:A,json:I,md:M,txt:M,yaml:N,yml:N};function H(e,t){return t?be:je[e.split(`.`).pop()?.toLowerCase()??``]??he}function U(e,t){let n=[],r=e,i=``;for(let e=0;e<t.length;e++){let a=t[e],o=t.slice(0,e+1).join(`/`),s=r.find(e=>e.name===a);if(n.push({name:a,fullPath:o,node:s??null,siblings:r,parentPath:i}),s?.children)i=s.path,r=s.children;else{for(let r=e+1;r<t.length;r++)n.push({name:t[r],fullPath:t.slice(0,r+1).join(`/`),node:null,siblings:[],parentPath:t.slice(0,r).join(`/`)});break}}return n}function Me(e){return[...e].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1)}function Ne({filePath:e,projectName:t,tabId:n,className:r}){let a=P(e=>e.tree),{updateTab:o,openTab:s}=ae(oe(e=>({updateTab:e.updateTab,openTab:e.openTab}))),c=b(e=>e.projects.find(e=>e.name===t)?.path??``),l=(0,z.useRef)(null),{prefixParts:u,relativePath:d,isExternal:f}=(0,z.useMemo)(()=>{let t=e.startsWith(`/`)?e.slice(1):e,n=c.startsWith(`/`)?c.slice(1):c;if(n&&t.startsWith(n+`/`)){let e=t.slice(n.length+1);return{prefixParts:n.split(`/`),relativePath:e,isExternal:!1}}return{prefixParts:[],relativePath:t,isExternal:/^(\/|[A-Za-z]:[/\\])/.test(e)}},[e,c]),p=(0,z.useMemo)(()=>U(a,d.split(`/`).filter(Boolean)),[a,d]);(0,z.useEffect)(()=>{l.current&&(l.current.scrollLeft=l.current.scrollWidth)},[p]);function m(e,r){let i=y(e);r.metaKey||r.ctrlKey?s({type:`editor`,title:i,metadata:{filePath:e,projectName:t},projectId:t,closable:!0}):o(n,{title:i,metadata:{filePath:e,projectName:t}})}return f?(0,B.jsx)(ke,{filePath:e,projectName:t,tabId:n,className:r}):(0,B.jsxs)(`div`,{ref:l,className:r,children:[u.map((e,t)=>(0,B.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[t>0&&(0,B.jsx)(i,{className:`size-3 text-muted-foreground shrink-0 mx-0.5`}),(0,B.jsx)(`span`,{className:`text-xs text-muted-foreground px-1 py-0.5`,children:e})]},`prefix-${t}`)),p.map((e,n)=>(0,B.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[(n>0||u.length>0)&&(0,B.jsx)(i,{className:`size-3 text-muted-foreground shrink-0 mx-0.5`}),(0,B.jsx)(W,{segment:e,isLast:n===p.length-1,projectName:t,onFileClick:m})]},e.fullPath))]})}function W({segment:e,isLast:t,projectName:n,onFileClick:r}){let i=P(e=>e.loadChildren),a=P(e=>e.loadedPaths),o=(0,z.useMemo)(()=>Me(e.siblings),[e.siblings]),s=a.has(e.parentPath);function c(t){if(t&&!s){let t=e.parentPath.split(`/`).filter(Boolean);(async()=>{for(let e=0;e<=t.length;e++)await i(n,t.slice(0,e).join(`/`))})()}}return(0,B.jsxs)(se,{onOpenChange:c,children:[(0,B.jsx)(F,{asChild:!0,children:(0,B.jsx)(`button`,{type:`button`,className:`text-xs px-1 py-0.5 rounded hover:bg-muted transition-colors truncate max-w-[120px] ${t?`text-foreground font-medium`:`text-muted-foreground`}`,children:e.name})}),(0,B.jsx)(le,{align:`start`,className:`max-h-[300px] p-1`,children:o.length===0?(0,B.jsx)(R,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):o.map(t=>(0,B.jsx)(G,{node:t,projectName:n,activePath:e.fullPath,onFileClick:r},t.path))})]})}function G({node:e,projectName:t,activePath:n,onFileClick:r}){let i=H(e.name,e.type===`directory`),a=e.path===n,o=P(e=>e.loadChildren),s=P(e=>e.loadedPaths);if(e.type===`directory`){let c=e.children??[],l=s.has(e.path);function u(n){n&&!l&&o(t,e.path)}return(0,B.jsxs)(k,{onOpenChange:u,children:[(0,B.jsxs)(T,{className:`text-xs gap-1.5 ${a?`bg-muted`:``}`,children:[(0,B.jsx)(i,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,B.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,B.jsx)(C,{className:`max-h-[300px] overflow-y-auto p-1`,children:c.length===0?(0,B.jsx)(R,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):Me(c).map(e=>(0,B.jsx)(G,{node:e,projectName:t,activePath:n,onFileClick:r},e.path))})]})}return(0,B.jsxs)(R,{className:`text-xs gap-1.5 cursor-pointer ${a?`bg-muted`:``}`,onSelect:e=>{},onClick:t=>{r(e.path,t)},children:[(0,B.jsx)(i,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,B.jsx)(`span`,{className:`truncate`,children:e.name})]})}function K({active:e,onClick:t,icon:n,label:r}){return(0,B.jsxs)(`button`,{type:`button`,onClick:t,className:`flex items-center gap-1 px-2 py-1 rounded text-xs transition-colors ${e?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`}`,children:[(0,B.jsx)(n,{className:`size-3`}),(0,B.jsx)(`span`,{className:`hidden sm:inline`,children:r})]})}function Pe({ext:e,mdMode:t,onMdModeChange:n,csvMode:r,onCsvModeChange:i,wordWrap:a,onToggleWordWrap:s,onRefresh:u,refreshing:d,filePath:f,projectName:p,className:m}){return(0,B.jsxs)(`div`,{className:m,children:[(e===`md`||e===`mdx`)&&n&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(K,{active:t===`edit`,onClick:()=>n(`edit`),icon:o,label:`Edit`}),(0,B.jsx)(K,{active:t===`preview`,onClick:()=>n(`preview`),icon:l,label:`Preview`})]}),e===`csv`&&i&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(K,{active:r===`table`,onClick:()=>i(`table`),icon:ne,label:`Table`}),(0,B.jsx)(K,{active:r===`raw`,onClick:()=>i(`raw`),icon:o,label:`Raw`})]}),(0,B.jsx)(K,{active:a,onClick:s,icon:me,label:`Wrap`}),u&&(0,B.jsxs)(`button`,{type:`button`,onClick:u,disabled:d,title:`Reload file from disk`,className:`flex items-center gap-1 px-2 py-1 rounded text-xs text-muted-foreground hover:text-foreground transition-colors disabled:opacity-50`,children:[(0,B.jsx)(O,{className:`size-3 ${d?`animate-spin`:``}`}),(0,B.jsx)(`span`,{className:`hidden sm:inline`,children:`Refresh`})]}),f&&p&&(0,B.jsx)(K,{active:!1,onClick:()=>ye(p,f),icon:c,label:`Download`})]})}var Fe=[{id:`plaintext`,label:`Plain Text`},{id:`javascript`,label:`JavaScript`},{id:`typescript`,label:`TypeScript`},{id:`sql`,label:`SQL`},{id:`json`,label:`JSON`},{id:`xml`,label:`XML`},{id:`html`,label:`HTML`},{id:`css`,label:`CSS`},{id:`python`,label:`Python`},{id:`markdown`,label:`Markdown`},{id:`yaml`,label:`YAML`},{id:`shell`,label:`Shell`}];function Ie({value:e,onChange:t}){return(0,B.jsxs)(`div`,{className:`shrink-0 flex items-center gap-1 px-2 border-l border-border`,children:[(0,B.jsx)(A,{className:`size-3 text-muted-foreground`}),(0,B.jsx)(`select`,{value:e,onChange:e=>t(e.target.value),className:`h-5 text-[10px] bg-transparent border border-border rounded px-1 text-foreground outline-none max-w-[120px]`,title:`Select editor language`,children:Fe.map(e=>(0,B.jsx)(`option`,{value:e.id,children:e.label},e.id))})]})}function Le({open:e,defaultName:t,content:n,onSave:r,onCancel:i}){let[o,s]=(0,z.useState)(t),[c,l]=(0,z.useState)(!1),[u,d]=(0,z.useState)(``),f=b(e=>e.activeProject),p=(0,z.useCallback)(()=>{let e=o.trim();if(!e){d(`Filename cannot be empty`);return}if(/[/\\]/.test(e)){d(`Filename cannot contain / or \\`);return}d(``),l(!0)},[o]),m=(0,z.useCallback)(e=>{let t=e.includes(`\\`)?`\\`:`/`;r(e.endsWith(t)?`${e}${o.trim()}`:`${e}${t}${o.trim()}`,n)},[o,n,r]);return c?(0,B.jsx)(S,{open:!0,mode:`folder`,root:f?.path,title:`Save "${o.trim()}" to...`,onSelect:m,onCancel:()=>l(!1)}):(0,B.jsx)(w,{open:e,onOpenChange:e=>{e||i()},children:(0,B.jsxs)(fe,{className:`sm:max-w-md`,children:[(0,B.jsx)(D,{children:(0,B.jsx)(x,{children:`Save As`})}),(0,B.jsxs)(`div`,{className:`flex flex-col gap-2 py-2`,children:[(0,B.jsx)(`label`,{className:`text-sm text-muted-foreground`,children:`Filename`}),(0,B.jsx)(ge,{value:o,onChange:e=>{s(e.target.value),d(``)},onKeyDown:e=>{e.key===`Enter`&&p()},placeholder:`e.g. my-file.ts`,autoFocus:!0}),u&&(0,B.jsx)(`p`,{className:`text-xs text-destructive`,children:u})]}),(0,B.jsxs)(pe,{children:[(0,B.jsx)(a,{variant:`outline`,onClick:i,children:`Cancel`}),(0,B.jsx)(a,{onClick:p,children:`Choose Folder...`})]})]})})}var q=typeof window<`u`&&window.isSecureContext,Re=[`(`,`)`,`{`,`}`,`[`,`]`,`<`,`>`,`;`,`:`,`=`,`"`,`'`,"`",`/`,`\\`,`_`,`#`],ze=`px-2 py-1.5 rounded text-xs min-w-[36px] min-h-[32px] bg-surface-elevated text-text-primary active:bg-primary active:text-primary-foreground transition-colors select-none`,Be=`px-3 py-1.5 rounded text-xs font-mono min-w-[36px] min-h-[32px] bg-surface-elevated text-text-primary active:bg-primary active:text-primary-foreground transition-colors select-none`,Ve=`w-px h-5 bg-border mx-0.5 shrink-0`;function He({editorRef:e,readOnly:t}){let n=(0,z.useCallback)(()=>e.current,[e]),r=(0,z.useCallback)(e=>{let t=n();if(!t)return;t.focus();let r=t.getSelection();r&&t.executeEdits(`mobile-toolbar`,[{range:r,text:e}])},[n]),[i,a]=(0,z.useState)(!1),o=(0,z.useRef)(null),s=(0,z.useCallback)(async()=>{try{let e=await navigator.clipboard.readText();e&&r(e)}catch{}},[r]),c=(0,z.useCallback)(()=>{a(!0),requestAnimationFrame(()=>o.current?.focus())},[]),l=(0,z.useCallback)(e=>{e.preventDefault();let t=e.clipboardData.getData(`text/plain`);t&&(a(!1),r(t))},[r]),u=(0,z.useCallback)(()=>{let e=n();e&&(e.focus(),e.trigger(`mobile-toolbar`,`undo`,null))},[n]),d=(0,z.useCallback)(()=>{let e=n();e&&(e.focus(),e.trigger(`mobile-toolbar`,`redo`,null))},[n]),f=(0,z.useCallback)(()=>{let e=n();e&&(e.focus(),e.trigger(`mobile-toolbar`,`tab`,null))},[n]);return t?null:(0,B.jsxs)(`div`,{className:`shrink-0 border-t border-border bg-surface`,children:[!q&&i&&(0,B.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1.5 border-b border-border bg-muted/50`,children:[(0,B.jsx)(`textarea`,{ref:o,onPaste:l,placeholder:`Long-press here → Paste`,className:`flex-1 h-8 rounded border border-border bg-background text-foreground text-xs px-2 py-1.5 resize-none focus:outline-none focus:ring-1 focus:ring-primary`}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>a(!1),className:`p-1.5 rounded text-muted-foreground active:bg-muted transition-colors`,children:(0,B.jsx)(h,{size:14})})]}),(0,B.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1.5 overflow-x-auto`,children:[(0,B.jsx)(`button`,{type:`button`,onClick:q?s:c,className:ze,title:`Paste`,children:(0,B.jsx)(ue,{size:14})}),(0,B.jsx)(`button`,{type:`button`,onClick:u,className:ze,title:`Undo`,children:(0,B.jsx)(E,{size:14})}),(0,B.jsx)(`button`,{type:`button`,onClick:d,className:ze,title:`Redo`,children:(0,B.jsx)(Ee,{size:14})}),(0,B.jsx)(`div`,{className:Ve}),(0,B.jsx)(`button`,{type:`button`,onClick:f,className:Be,children:`Tab`}),(0,B.jsx)(`div`,{className:Ve}),Re.map(e=>(0,B.jsx)(`button`,{type:`button`,onClick:()=>r(e),className:Be,children:e},e))]})]})}var J=(0,z.lazy)(()=>v(()=>import(`./markdown-renderer-feiuhJ9n.js`).then(e=>({default:e.MarkdownRenderer})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]))),Ue=(0,z.lazy)(()=>v(()=>import(`./csv-preview-DsJ_a2Op.js`).then(e=>({default:e.CsvPreview})),__vite__mapDeps([35,2,6,1,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,36,37]))),We=(0,z.lazy)(()=>v(()=>import(`./image-preview-B0VXSpYu.js`).then(e=>({default:e.ImagePreview})),__vite__mapDeps([38,6,2,1,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,39,40]))),Ge=(0,z.lazy)(()=>v(()=>import(`./pdf-preview-xzAA4-kD.js`).then(e=>({default:e.PdfPreview})),__vite__mapDeps([41,2,6,1,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,39]))),Ke=(0,z.lazy)(()=>v(()=>import(`./video-preview-CwtLPELG.js`).then(e=>({default:e.VideoPreview})),__vite__mapDeps([42,2,6,1,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,39,43,44]))),qe=(0,z.lazy)(()=>v(()=>import(`./audio-preview-GGksv6U8.js`).then(e=>({default:e.AudioPreview})),__vite__mapDeps([45,2,3,4,8,9,39,21,44]))),Je=(0,z.lazy)(()=>v(()=>import(`./docx-preview-DujpUDkE.js`).then(e=>({default:e.DocxPreview})),__vite__mapDeps([46,2,6,1,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,39])));function Ye(e){return e.split(`.`).pop()?.toLowerCase()??``}function Xe(e){return{js:`javascript`,jsx:`javascript`,ts:`typescript`,tsx:`typescript`,py:`python`,html:`html`,css:`css`,scss:`scss`,json:`json`,md:`markdown`,mdx:`markdown`,yaml:`yaml`,yml:`yaml`,sh:`shell`,bash:`shell`,sql:`sql`}[Ye(e)]??`plaintext`}var Ze=(0,z.memo)(function({metadata:e,tabId:t}){let n=e?.filePath,r=e?.projectName,i=e?.inlineContent,a=e?.inlineLanguage,[o,c]=(0,z.useState)(i??null),[l,m]=(0,z.useState)(`utf-8`),[ne,h]=(0,z.useState)(!0),[v,b]=(0,z.useState)(null),[x,S]=(0,z.useState)(!1),C=(0,z.useRef)(null),w=(0,z.useRef)(``),T=(0,z.useRef)(null),{tabs:se,updateTab:E}=ae(oe(e=>({tabs:e.tabs,updateTab:e.updateTab}))),{wordWrap:D,toggleWordWrap:le}=re(oe(e=>({wordWrap:e.wordWrap,toggleWordWrap:e.toggleWordWrap}))),ue=xe(),O=e?.isUntitled===!0,k=e?.unsavedContent,[fe,pe]=(0,z.useState)(!1),A=se.find(e=>e.id===t),M=n?Ye(n):``,me=Ce.has(M),N=M===`pdf`,P=M===`docx`,he=Se.has(M),ge=Te.has(M),F=we.has(M),ve=M===`md`||M===`mdx`,ye=M===`csv`,be=e?.language,I=a??be??Xe(n??``),L=I===`sql`,[R,Ee]=(0,z.useState)(`preview`),[De,Oe]=(0,z.useState)(`table`),{connections:ke,cachedTables:Ae,refreshTables:V,updateConnection:je}=ce(),H=n?`ppm:sql-conn:${n}`:t?`ppm:sql-conn:tab:${t}`:null,[U,Me]=(0,z.useState)(()=>{if(!H)return null;let e=localStorage.getItem(H);return e?Number(e):null}),W=(0,z.useRef)(null),G=(0,z.useRef)(null),K=(0,z.useMemo)(()=>ke.find(e=>e.id===U)??null,[ke,U]),Fe=i!=null&&(a===`json`||a===`xml`),[q,Re]=(0,z.useState)(!1),ze=(0,z.useCallback)(()=>{if(i)if(q)c(i),Re(!1);else{let e=i.trimStart();if(a===`json`)try{c(JSON.stringify(JSON.parse(e),null,2)),Re(!0)}catch{}else if(a===`xml`){let t=0;c(e.replace(/(>)(<)(\/*)/g,`$1
3
- $2$3`).split(`
4
- `).map(e=>{let n=e.trim();n.startsWith(`</`)&&(t=Math.max(0,t-1));let r=` `.repeat(t)+n;return n.startsWith(`<`)&&!n.startsWith(`</`)&&!n.endsWith(`/>`)&&!n.includes(`</`)&&t++,r}).join(`
5
- `)),Re(!0)}}},[i,a,q]),Be=(0,z.useCallback)(e=>{Me(e),H&&localStorage.setItem(H,String(e)),V(e).catch(()=>{})},[H,V]),Ve=(0,z.useCallback)(n=>{t&&E(t,{metadata:{...e,language:n}})},[t,e,E]),J=(0,z.useMemo)(()=>{if(!L||!U)return;let e=(Ae.get(U)??[]).map(e=>({name:e.tableName,schema:e.schemaName}));if(e.length!==0)return{tables:e,getColumns:async(e,t)=>_.get(`/api/db/connections/${U}/schema?table=${encodeURIComponent(e)}${t?`&schema=${encodeURIComponent(t)}`:``}`)}},[L,U,Ae]);(0,z.useEffect)(()=>{if(!(!W.current||!J))return G.current?.dispose(),p(),G.current=W.current.languages.registerCompletionItemProvider(`sql`,f(W.current,J)),()=>{G.current?.dispose()}},[J]);let Ze=ae(e=>e.openTab),[Y,et]=(0,z.useState)(null),[tt,nt]=(0,z.useState)(null),[rt,it]=(0,z.useState)(!1),[at,ot]=(0,z.useState)(``),st=(0,z.useCallback)(async e=>{if(K){it(!0),nt(null),ot(e);try{et(await _.post(`/api/db/connections/${K.id}/query`,{sql:e}))}catch(e){nt(e.message),et(null)}finally{it(!1)}}},[K]),ct=(0,z.useCallback)(()=>{!K||!at||Ze({type:`database`,title:`${K.name} · Query`,projectId:null,closable:!0,metadata:{connectionId:K.id,connectionName:K.name,dbType:K.type,initialSql:at}})},[K,Ze,at]),lt=(0,z.useCallback)(()=>{if(!T.current||!K)return;let e=T.current,t=e.getSelection();st(t&&!t.isEmpty()?e.getModel()?.getValueInRange(t)??e.getValue():e.getValue())},[K,st]),ut=typeof window<`u`&&`ontouchstart`in window,dt=(0,z.useRef)(null),[ft,pt]=(0,z.useState)(null);(0,z.useEffect)(()=>{if(!ut)return;let e=window.visualViewport;if(!e)return;let t=()=>{let t=dt.current;if(!t)return;let n=t.getBoundingClientRect().top;pt(e.height-Math.max(0,n))};return e.addEventListener(`resize`,t),e.addEventListener(`scroll`,t),()=>{e.removeEventListener(`resize`,t),e.removeEventListener(`scroll`,t)}},[ut]);let Z=(0,z.useRef)([]),mt=(0,z.useRef)(st);mt.current=st,(0,z.useEffect)(()=>()=>{Z.current.forEach(e=>e.dispose()),Z.current=[]},[]),(0,z.useEffect)(()=>{F&&t&&E(t,{type:`sqlite`})},[F,t,E]);let Q=n?/^(\/|[A-Za-z]:[/\\])/.test(n):!1;(0,z.useEffect)(()=>{if(i!=null){h(!1);return}if(O){c(k??``),w.current=k??``,h(!1),k&&S(!0);return}if(!n||!Q&&!r)return;if(me||N||P||he||ge){h(!1);return}h(!0),b(null);let e=Q?`/api/fs/read?path=${encodeURIComponent(n)}`:`${g(r)}/files/read?path=${encodeURIComponent(n)}`;return _.get(e).then(e=>{c(e.content),e.encoding&&m(e.encoding),w.current=e.content,h(!1)}).catch(e=>{b(e instanceof Error?e.message:`Failed to load file`),h(!1)}),()=>{C.current&&clearTimeout(C.current)}},[n,r,me,N,P,Q,O]);let[ht,gt]=(0,z.useState)(!1),_t=(0,z.useCallback)(()=>{if(!n||i!=null||O||!Q&&!r)return;let e=Q?`/api/fs/read?path=${encodeURIComponent(n)}`:`${g(r)}/files/read?path=${encodeURIComponent(n)}`;gt(!0),_.get(e).then(e=>{c(e.content),w.current=e.content,e.encoding&&m(e.encoding),S(!1),b(null)}).catch(e=>b(e instanceof Error?e.message:`Failed to reload file`)).finally(()=>gt(!1))},[n,r,Q,i,O]),vt=(0,z.useRef)(x);vt.current=x,(0,z.useEffect)(()=>{if(!n||!r||i!=null||O)return;let e=e=>{let t=e.detail;if(t.projectName!==r||t.path!==n||vt.current)return;let i=Q?`/api/fs/read?path=${encodeURIComponent(n)}`:`${g(r)}/files/read?path=${encodeURIComponent(n)}`;_.get(i).then(e=>{e.content!==w.current&&(c(e.content),w.current=e.content,e.encoding&&m(e.encoding))}).catch(()=>{})};return window.addEventListener(`file:changed`,e),()=>window.removeEventListener(`file:changed`,e)},[n,r,Q,i,O]),(0,z.useEffect)(()=>{if(!A||i!=null)return;let t=O?`Untitled-${e?.untitledNumber??1}`:n?y(n):`Untitled`,r=x?`${t} \u25CF`:t;A.title!==r&&E(A.id,{title:r})},[x]);let yt=(0,z.useCallback)(async e=>{if(n&&!(!Q&&!r))try{Q?await _.put(`/api/fs/write`,{path:n,content:e}):await _.put(`${g(r)}/files/write`,{path:n,content:e}),S(!1)}catch{}},[n,r,Q]);function bt(n){let r=n??``;c(r),w.current=r,S(!0),C.current&&clearTimeout(C.current),O?C.current=setTimeout(()=>{t&&E(t,{metadata:{...e,unsavedContent:w.current}})},2e3):C.current=setTimeout(()=>yt(w.current),1e3)}let xt=(0,z.useCallback)(async(e,n)=>{try{if(C.current&&clearTimeout(C.current),await _.put(`/api/fs/write`,{path:e,content:n}),t){let{closeTab:n,openTab:r}=ie.getState();n(t),r({type:`editor`,title:y(e),projectId:null,metadata:{filePath:e},closable:!0})}S(!1),pe(!1)}catch{}},[t]),$=e?.lineNumber,St=e?.endLine,Ct=e?.revealAt,wt=(0,z.useCallback)(()=>{let e=T.current;if(!(!e||!$||$<=0)){if(e.revealLineInCenter($),e.setPosition({lineNumber:$,column:1}),St&&St>=$){let t=e.getModel(),n=t?.getLineCount()??$,r=Math.min(St,n),i=t?.getLineMaxColumn(r)??1;e.setSelection({startLineNumber:$,startColumn:1,endLineNumber:r,endColumn:i})}e.focus()}},[$,St]);(0,z.useEffect)(()=>{Ct!=null&&wt()},[Ct,wt]);let Tt=(0,z.useCallback)((e,t)=>{if(T.current=e,W.current=t,$&&$>0&&setTimeout(()=>wt(),100),O&&e.addCommand(t.KeyMod.CtrlCmd|t.KeyCode.KeyS,()=>pe(!0)),e.addCommand(t.KeyMod.Alt|t.KeyCode.KeyZ,()=>re.getState().toggleWordWrap()),t.languages.typescript.typescriptDefaults.setDiagnosticsOptions({noSemanticValidation:!0,noSyntaxValidation:!0,noSuggestionDiagnostics:!0}),t.languages.typescript.javascriptDefaults.setDiagnosticsOptions({noSemanticValidation:!0,noSyntaxValidation:!0,noSuggestionDiagnostics:!0}),J&&(G.current?.dispose(),G.current=t.languages.registerCompletionItemProvider(`sql`,f(t,J))),L){e.addAction({id:`run-sql-at-cursor`,label:`Run Statement at Cursor`,keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.Enter],run:e=>{let t=e.getPosition();if(!t)return;let n=d(e.getValue(),t.lineNumber);n&&mt.current(n)}}),Z.current.forEach(e=>e.dispose()),Z.current=[];let n=e.getModel(),r=e.addCommand(0,(e,t)=>{t&&mt.current(t)});if(r&&n){let e=t.languages.registerCodeLensProvider(`sql`,{provideCodeLenses:e=>{if(e!==n)return{lenses:[],dispose:()=>{}};let t=[],i=e.getValue().split(`
6
- `),a=-1,o=[],s=!1,c=/^(BEGIN|COMMIT|ROLLBACK|END)(;|\s|$)/i,l=-1,u=[],d=(e,n,i=`▷ Run`)=>{let a=n.trim();!a||a.startsWith(`--`)||t.push({range:{startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1},command:{id:r,title:i,arguments:[a]}})};for(let e=0;e<i.length;e++){let t=i[e].trim();if(a===-1){if(!t||t.startsWith(`--`))continue;a=e+1,o=[]}if(o.push(i[e]),(t.match(/\$\$/g)||[]).length%2==1&&(s=!s),!s&&t.endsWith(`;`)){let e=o.join(`
7
- `).trim(),t=/^BEGIN(;|\s|$)/i.test(e),n=/^(COMMIT|ROLLBACK|END)(;|\s|$)/i.test(e);l===-1&&t?(l=a,u=[e]):l>-1?(u.push(e),!n&&!c.test(e)&&d(a,e),n&&(d(l,u.join(`
8
- `),`▷ Run Transaction`),l=-1,u=[])):d(a,e),a=-1,o=[]}}return l>-1&&u.length>1&&d(l,u.join(`
9
- `),`▷ Run Transaction`),a>0&&o.join(``).trim()&&d(a,o.join(`
10
- `)),{lenses:t,dispose:()=>{}}}});Z.current.push(e);let i=t.languages.registerFoldingRangeProvider(`sql`,{provideFoldingRanges:e=>{if(e!==n)return[];let r=[],i=e.getLineCount(),a=[];for(let n=1;n<=i;n++){let i=e.getLineContent(n).trim();if(/^BEGIN(;|\s|$)/i.test(i))a.push(n);else if(/^(COMMIT|ROLLBACK|END)(;|\s|$)/i.test(i)&&a.length>0){let e=a.pop();r.push({start:e,end:n,kind:t.languages.FoldingRangeKind.Region})}}return r}});Z.current.push(i)}}},[J,L]);if(!i&&!O&&(!n||!Q&&!r))return(0,B.jsx)(`div`,{className:`flex items-center justify-center h-full text-text-secondary text-sm`,children:`No file selected.`});if(ne)return(0,B.jsxs)(`div`,{className:`flex items-center justify-center h-full gap-2 text-text-secondary`,children:[(0,B.jsx)(j,{className:`size-5 animate-spin`}),(0,B.jsx)(`span`,{className:`text-sm`,children:`Loading file...`})]});if(v)return(0,B.jsx)(`div`,{className:`flex items-center justify-center h-full text-error text-sm`,children:v});if(me)return(0,B.jsx)(z.Suspense,{fallback:(0,B.jsx)(X,{}),children:(0,B.jsx)(We,{filePath:n,projectName:r})});if(N)return(0,B.jsx)(z.Suspense,{fallback:(0,B.jsx)(X,{}),children:(0,B.jsx)(Ge,{filePath:n,projectName:r})});if(P)return(0,B.jsx)(z.Suspense,{fallback:(0,B.jsx)(X,{}),children:(0,B.jsx)(Je,{filePath:n,projectName:r})});if(he)return(0,B.jsx)(z.Suspense,{fallback:(0,B.jsx)(X,{}),children:(0,B.jsx)(Ke,{filePath:n,projectName:r})});if(ge)return(0,B.jsx)(z.Suspense,{fallback:(0,B.jsx)(X,{}),children:(0,B.jsx)(qe,{filePath:n,projectName:r})});if(l===`base64`)return(0,B.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-text-secondary`,children:[(0,B.jsx)(u,{className:`size-10 text-text-subtle`}),(0,B.jsx)(`p`,{className:`text-sm`,children:`This file is a binary format and cannot be displayed.`}),(0,B.jsx)(`p`,{className:`text-xs text-text-subtle`,children:n})]});let Et=L?(0,B.jsxs)(`div`,{className:`shrink-0 flex items-center gap-1 px-2 border-l border-border`,children:[(0,B.jsx)(s,{className:`size-3 text-muted-foreground`}),(0,B.jsxs)(`select`,{value:U??``,onChange:e=>{let t=Number(e.target.value);t&&Be(t)},className:`h-5 text-[10px] bg-transparent border border-border rounded px-1 text-foreground outline-none max-w-[140px]`,title:`Select connection for autocomplete`,children:[(0,B.jsx)(`option`,{value:``,children:`Connection…`}),ke.map(e=>(0,B.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,B.jsx)(`button`,{type:`button`,onClick:lt,disabled:!K,className:`p-0.5 rounded text-muted-foreground hover:text-primary disabled:opacity-30 transition-colors`,title:`Run SQL`,children:(0,B.jsx)(de,{className:`size-3.5`})}),K&&(0,B.jsx)(`button`,{type:`button`,onClick:()=>je(K.id,{readonly:K.readonly?0:1}),className:`flex items-center gap-0.5 px-1 py-0.5 rounded text-[10px] transition-colors ${K.readonly?`text-muted-foreground hover:text-foreground`:`bg-destructive/15 text-destructive`}`,title:K.readonly?`Readonly — click to allow writes`:`WRITE mode — click to enable readonly`,children:K.readonly?(0,B.jsx)(ee,{className:`size-3`}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(te,{className:`size-3`}),(0,B.jsx)(`span`,{className:`font-medium`,children:`WRITE`})]})})]}):null;return(0,B.jsxs)(`div`,{ref:dt,className:`flex flex-col h-full w-full overflow-hidden`,style:ft?{height:`${ft}px`,maxHeight:`${ft}px`}:void 0,children:[i!=null&&Fe&&(0,B.jsx)(`div`,{className:`flex items-center h-7 border-b border-border bg-background shrink-0 px-2 gap-2`,children:(0,B.jsx)(`button`,{type:`button`,onClick:ze,className:`text-[10px] px-2 py-0.5 rounded border border-border hover:bg-muted transition-colors text-foreground`,children:q?`Raw`:`Beautify`})}),n&&r&&t&&(0,B.jsxs)(`div`,{className:`hidden md:flex items-center h-7 border-b border-border bg-background shrink-0`,children:[(0,B.jsx)(Ne,{filePath:n,projectName:r,tabId:t,className:`flex items-center flex-1 min-w-0 overflow-x-auto scrollbar-none px-2 gap-0.5`}),(0,B.jsx)(Ie,{value:I,onChange:Ve}),Et,(0,B.jsx)(Pe,{ext:M,mdMode:R,onMdModeChange:Ee,csvMode:De,onCsvModeChange:Oe,wordWrap:D,onToggleWordWrap:le,onRefresh:_t,refreshing:ht,filePath:n,projectName:r,className:`shrink-0 flex items-center gap-1 px-2`})]}),i==null&&t&&(O||n&&!r)&&(0,B.jsxs)(`div`,{className:`hidden md:flex items-center h-7 border-b border-border bg-background shrink-0 px-2`,children:[(0,B.jsx)(`span`,{className:`text-xs text-muted-foreground truncate flex-1`,children:O?`Untitled-${e?.untitledNumber??1}`:n?y(n):`Untitled`}),(0,B.jsx)(Ie,{value:I,onChange:Ve}),Et]}),ye&&De===`table`?(0,B.jsx)(z.Suspense,{fallback:(0,B.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,B.jsx)(j,{className:`size-5 animate-spin text-text-subtle`})}),children:(0,B.jsx)(Ue,{content:o??``,onContentChange:bt,wordWrap:D})}):ve&&R===`preview`?(0,B.jsx)($e,{content:o??``}):(0,B.jsx)(`div`,{className:`flex-1 overflow-hidden min-h-0`,children:(0,B.jsx)(_e,{height:`100%`,language:I,value:o??``,onChange:i==null?bt:void 0,onMount:Tt,theme:ue,options:{fontSize:13,fontFamily:`Menlo, Monaco, Consolas, monospace`,wordWrap:D?`on`:`off`,minimap:{enabled:!1},scrollBeyondLastLine:!1,automaticLayout:!0,lineNumbers:`on`,folding:!0,bracketPairColorization:{enabled:!0},readOnly:i!=null},loading:(0,B.jsx)(j,{className:`size-5 animate-spin text-text-subtle`})},I)}),L&&(Y||tt||rt)&&(0,B.jsx)(Qe,{result:Y,error:tt,loading:rt,connName:K?.name,onClose:()=>{et(null),nt(null),it(!1)},onOpenInTab:ct}),ut&&(0,B.jsx)(He,{editorRef:T,readOnly:i!=null}),fe&&(0,B.jsx)(Le,{open:fe,defaultName:`Untitled-${e?.untitledNumber??1}`,content:w.current,onSave:xt,onCancel:()=>pe(!1)})]})}),Y=()=>{};function Qe({result:e,error:t,loading:n,connName:r,onClose:i,onOpenInTab:a}){let o=(0,z.useMemo)(()=>e?.changeType===`select`&&e.rows.length>0?{columns:e.columns,rows:e.rows,total:e.rows.length,limit:e.rows.length}:null,[e]),c=(0,z.useMemo)(()=>(e?.columns??[]).map(e=>({name:e,type:`text`,nullable:!0,pk:!1,defaultValue:null})),[e?.columns]),[l,u]=(0,z.useState)(250),d=(0,z.useCallback)(e=>{e.preventDefault();let t=e.clientY,n=l,r=e=>u(Math.max(80,n+(t-e.clientY))),i=()=>{document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},[l]);return(0,B.jsxs)(`div`,{className:`shrink-0 border-t border-border flex flex-col`,style:{height:l},children:[(0,B.jsx)(`div`,{onMouseDown:d,className:`shrink-0 h-1.5 cursor-row-resize bg-border/50 hover:bg-primary/30 flex items-center justify-center transition-colors`,children:(0,B.jsx)(ve,{className:`size-3 text-muted-foreground/50`})}),(0,B.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1 bg-muted/50 border-b border-border shrink-0`,children:[(0,B.jsx)(s,{className:`size-3 text-muted-foreground`}),(0,B.jsxs)(`span`,{className:`text-xs font-medium text-foreground truncate flex-1`,children:[r?`${r} · Results`:`Query Results`,e?.executionTimeMs!=null&&(0,B.jsxs)(`span`,{className:`text-muted-foreground ml-1.5 font-normal`,children:[e.executionTimeMs,`ms`]})]}),(0,B.jsxs)(`button`,{type:`button`,onClick:a,title:`Open in DB Viewer tab`,className:`flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] text-muted-foreground hover:text-foreground hover:bg-muted transition-colors`,children:[(0,B.jsx)(L,{className:`size-3`}),(0,B.jsx)(`span`,{className:`hidden sm:inline`,children:`Open in Tab`})]}),(0,B.jsx)(`button`,{type:`button`,onClick:i,title:`Close results`,className:`p-0.5 rounded text-muted-foreground hover:text-foreground transition-colors`,children:(0,B.jsx)(h,{className:`size-3`})})]}),(0,B.jsxs)(`div`,{className:`flex-1 overflow-hidden min-h-0`,children:[n&&(0,B.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,B.jsx)(j,{className:`size-4 animate-spin text-muted-foreground`})}),t&&(0,B.jsx)(`div`,{className:`px-3 py-2 text-xs text-destructive bg-destructive/5`,children:t}),e?.changeType===`modify`&&(0,B.jsxs)(`div`,{className:`px-3 py-2 text-xs text-success`,children:[e.rowsAffected,` row(s) affected`]}),o&&(0,B.jsx)(m,{columns:o.columns,rows:o.rows,total:o.total,limit:o.limit,schema:c,loading:!1,page:1,onPageChange:Y,onCellUpdate:Y,orderBy:null,orderDir:`ASC`,onToggleSort:Y,connectionName:r}),e?.changeType===`select`&&e.rows.length===0&&(0,B.jsx)(`div`,{className:`px-3 py-2 text-xs text-muted-foreground`,children:`No results`})]})]})}function X(){return(0,B.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,B.jsx)(j,{className:`size-5 animate-spin text-text-subtle`})})}function $e({content:e}){return(0,B.jsx)(z.Suspense,{fallback:(0,B.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded m-4`}),children:(0,B.jsx)(J,{content:e,className:`flex-1 overflow-auto p-4`})})}export{Ze as CodeEditor};
@@ -1 +0,0 @@
1
- import{W as e}from"./vendor-mermaid-Bg4vE8QA.js";export{e as createGitGraphServices};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{S as t,x as n}from"./vendor-markdown-Ls5AcU91.js";import"./vendor-ui-CaeeFO0B.js";import{t as r}from"./createLucideIcon-D8pyde1A.js";import"./context-menu-DkQdt6YA.js";import{t as i}from"./chevron-right-BLOtX8Vy.js";import{n as a}from"./tool-cards-Bgp8iceS.js";import{t as o}from"./button-B4MWPjWj.js";import"./api-client-BSB14J4w.js";import"./vendor-mermaid-Bg4vE8QA.js";import"./settings-store-C9YT1Hir.js";import{n as s}from"./utils-DoY4yTP-.js";import"./panel-store-DCD82zc1.js";import{i as c}from"./project-store-B8BkHXy5.js";import"./tab-store-DAsvpx4t.js";import{n as l}from"./use-is-mobile-B8FA4kQf.js";import{t as u}from"./mobile-bottom-sheet-CS3XMwFw.js";import{$t as d,An as f,C as p,D as m,Dt as h,E as g,En as _,Et as v,Fn as y,It as b,Jt as x,Pt as S,Qt as C,Rn as w,S as T,T as E,Tt as D,Wn as O,Yt as k,_ as A,b as ee,er as j,jr as M,qn as N,v as te,w as P,x as F,y as I,zn as ne}from"./index-DgbOF3xa.js";import{t as L}from"./use-websocket-TnL2I1io.js";import"./use-blob-url-BmlYYZ8L.js";import{t as R}from"./markdown-renderer-BaBQ6Wm6.js";import"./run-in-terminal-CGW6o37_.js";var z=r(`scroll-text`,[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]),B=r(`user-plus`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}],[`line`,{x1:`19`,x2:`19`,y1:`8`,y2:`14`,key:`1bvyxn`}],[`line`,{x1:`22`,x2:`16`,y1:`11`,y2:`11`,key:`1shjgl`}]]),V=e(t(),1),H=8e3;function re(e,t){let[n,r]=(0,V.useState)([]),[i,a]=(0,V.useState)([]),[o,s]=(0,V.useState)(`idle`),[c,l]=(0,V.useState)({}),[u,d]=(0,V.useState)(!1),[f,m]=(0,V.useState)(!1),[h,g]=(0,V.useState)(!1),[_,v]=(0,V.useState)(null),y=(0,V.useRef)(new Map),b=(0,V.useCallback)(e=>{l(t=>{if(!t[e])return t;let n={...t};return delete n[e],n})},[]),x=(0,V.useCallback)(e=>{let t;try{t=JSON.parse(e.data)}catch{return}switch(t.type){case`ping`:return;case`group_state`:m(!0),s(t.status),a(t.members),g(t.status===`active`);return;case`group_message`:b(t.message.fromMember),r(e=>e.some(e=>e.id===t.message.id)?e:[...e,t.message]);return;case`member_status`:a(e=>e.map(e=>e.id===t.memberId?{...e,status:t.status}:e));return;case`typing`:{l(e=>({...e,[t.member]:!0}));let e=y.current,n=e.get(t.member);n&&clearTimeout(n),e.set(t.member,setTimeout(()=>b(t.member),H));return}case`turn_done`:return;case`group_done`:g(!1),s(`idle`),l({});return;case`error`:v(t.message),g(!1);return}},[b]),{send:S}=L({url:e&&t?`/ws/project/${encodeURIComponent(t)}/group/${encodeURIComponent(e)}`:``,onMessage:x,autoConnect:!!e&&!!t});return(0,V.useEffect)(()=>{let t=!1;r([]),a([]),l({}),s(`idle`),g(!1),v(null),m(!1);for(let e of y.current.values())clearTimeout(e);if(y.current.clear(),e)return d(!0),I(e,{limit:200}).then(e=>{t||r(t=>{let n=new Set(e.messages.map(e=>e.id)),r=t.filter(e=>!n.has(e.id));return[...e.messages,...r]})}).catch(e=>{t||v(e instanceof Error?e.message:`Failed to load feed`)}).finally(()=>{t||d(!1)}),()=>{t=!0}},[e]),{messages:n,members:i,status:o,typing:c,loading:u,isConnected:f,isRunning:h,error:_,sendMessage:(0,V.useCallback)(t=>{let n=t.trim();!n||!e||(v(null),g(!0),f?S(JSON.stringify({type:`message`,content:n})):P(e,n).catch(e=>{v(e instanceof Error?e.message:`Failed to send message`),g(!1)}))},[e,f,S]),stop:(0,V.useCallback)(()=>{e&&(f?S(JSON.stringify({type:`stop`})):E(e).catch(()=>{}),s(`paused`),g(!1))},[e,f,S]),resume:(0,V.useCallback)(()=>{e&&p(e).then(()=>{s(`active`),g(!0)}).catch(e=>v(e instanceof Error?e.message:`Failed to resume`))},[e])}}var U=n();function W(e){let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?`?`:t.length===1?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}function G(e){try{let t=e<0xe8d4a51000?e*1e3:e;return new Date(t).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}catch{return``}}function K(e,t){return e.split(/(@[\p{L}\p{N}_]+)/gu).map((e,n)=>{if(e.startsWith(`@`)&&e.length>1){let r=t(e.slice(1));return(0,U.jsx)(`span`,{className:s(`font-semibold`,!r&&`text-primary`),style:r?{color:r}:void 0,children:e},n)}return e})}var ie=(0,V.memo)(function({message:e,colorFor:t,isLeader:n,onViewFull:r}){let i=e.fromMember===`user`,a=i?`You`:e.fromMember,o=i?`var(--color-primary)`:t(e.fromMember)??`var(--accent)`,c=!i&&n(e.fromMember),l=e.summary??``,u=e.toMember&&e.toMember!==`all`?e.toMember:null,d=(0,U.jsxs)(`div`,{className:s(`group relative flex gap-2.5 px-3 py-2 transition-colors hover:bg-surface-elevated/50`,i&&`bg-primary/5`),style:{boxShadow:`inset 3px 0 0 0 ${o}`},children:[e.fullSessionRef&&(0,U.jsx)(`button`,{type:`button`,onClick:()=>r(e),title:`View full transcript (AI's raw thinking / debug)`,"aria-label":`View full transcript`,className:`absolute right-1.5 top-1.5 hidden items-center rounded p-1 text-text-subtle/60 hover:bg-surface-elevated hover:text-text-secondary can-hover:group-hover:inline-flex`,children:(0,U.jsx)(z,{className:`size-3.5`})}),(0,U.jsx)(`div`,{className:`mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-full text-[11px] font-semibold text-white ring-2 ring-background`,style:{backgroundColor:o},"aria-hidden":!0,children:W(a)}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 can-hover:pr-6`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-0.5`,children:[(0,U.jsx)(`span`,{className:`text-sm font-semibold`,style:{color:i?`var(--color-foreground)`:o},children:a}),c&&(0,U.jsx)(`span`,{className:`rounded bg-surface-elevated px-1.5 py-px text-[10px] font-medium text-text-secondary`,children:`leader`}),u&&(0,U.jsxs)(`span`,{className:`text-[11px] text-text-subtle`,children:[`→ `,u]}),(0,U.jsx)(`span`,{className:`text-[11px] text-text-subtle`,children:G(e.createdAt)})]}),(0,U.jsx)(`div`,{className:`mt-0.5 whitespace-pre-wrap break-words text-sm leading-relaxed text-text-secondary`,children:K(l,t)})]})]});return e.fullSessionRef?(0,U.jsxs)(D,{children:[(0,U.jsx)(S,{asChild:!0,children:d}),(0,U.jsx)(v,{children:(0,U.jsxs)(h,{onClick:()=>r(e),children:[(0,U.jsx)(z,{className:`size-4`}),` View full transcript`]})})]}):d}),q={idle:`bg-text-subtle`,working:`bg-primary animate-pulse`,done:`bg-emerald-500`,error:`bg-destructive`},J={idle:`Idle`,working:`Working`,done:`Done`,error:`Error`},ae=(0,V.memo)(function({members:e,liveStatus:t,typing:n,busy:r,onAdd:i,onEdit:a,onRemove:o}){return(0,U.jsxs)(`div`,{className:`flex flex-col gap-0.5 p-2`,children:[e.map(e=>{let i=n[e.name],c=t.get(e.id)??e.status;return(0,U.jsxs)(`div`,{className:`group flex items-center gap-2 rounded-md px-2 py-1.5`,children:[(0,U.jsx)(`span`,{className:`flex size-6 shrink-0 items-center justify-center rounded-full text-[10px] font-semibold text-white ring-2 ring-background`,style:{backgroundColor:e.color??`var(--accent)`},"aria-hidden":!0,children:e.name.slice(0,1).toUpperCase()}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,U.jsx)(`span`,{className:`truncate text-xs font-medium`,style:{color:e.color??`var(--color-foreground)`},children:e.name}),e.role===`leader`&&(0,U.jsx)(`span`,{className:`rounded-sm bg-accent-wash px-1 text-[9px] font-semibold uppercase text-primary`,children:`lead`})]}),(0,U.jsx)(`span`,{className:`block truncate text-[10px] text-text-subtle`,children:i?`typing…`:e.persona||J[c]})]}),(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5 can-hover:opacity-0 can-hover:group-hover:opacity-100`,children:[(0,U.jsx)(`button`,{type:`button`,onClick:()=>a(e),disabled:r,"aria-label":`Edit ${e.name}`,className:`flex size-8 items-center justify-center rounded-md text-text-subtle hover:bg-surface-elevated hover:text-foreground active:bg-surface-elevated disabled:opacity-40`,children:(0,U.jsx)(N,{className:`size-3.5`})}),(0,U.jsx)(`button`,{type:`button`,onClick:()=>o(e),disabled:r,"aria-label":`Remove ${e.name}`,className:`flex size-8 items-center justify-center rounded-md text-text-subtle hover:bg-surface-elevated hover:text-destructive active:bg-surface-elevated disabled:opacity-40`,children:(0,U.jsx)(f,{className:`size-3.5`})})]}),(0,U.jsx)(`span`,{className:s(`size-2 shrink-0 rounded-full`,q[c]),title:J[c],"aria-hidden":!0})]},e.id)}),(0,U.jsxs)(`button`,{type:`button`,onClick:i,disabled:r,className:`mt-1 flex items-center gap-2 rounded-md px-2 py-2 text-xs font-medium text-primary hover:bg-surface-elevated active:bg-surface-elevated disabled:opacity-40`,children:[(0,U.jsx)(B,{className:`size-4`}),` Add member`]})]})}),Y=`w-full min-h-[40px] rounded-md border border-border bg-background px-3 py-2 text-sm text-foreground placeholder:text-text-subtle focus:outline-none focus:ring-1 focus:ring-primary`;function oe({open:e,member:t,projectName:n,providerId:r=`claude`,onSubmit:i,onClose:a}){let s=l(),[c,f]=(0,V.useState)(t?.name??``),[p,m]=(0,V.useState)(t?.persona??``),[h,g]=(0,V.useState)(t?.model??null),[_,v]=(0,V.useState)(t?.role===`leader`),[y,b]=(0,V.useState)(!1),[S,w]=(0,V.useState)(null),T=(0,V.useCallback)(async()=>{let e=c.trim();if(!e){w(`Name is required`);return}b(!0),w(null);try{await i({name:e,persona:p.trim()||null,model:h,role:_?`leader`:`member`}),a()}catch(e){w(e instanceof Error?e.message:`Failed to save member`),b(!1)}},[c,p,h,_,i,a]),E=t?.role===`leader`,D=(0,U.jsxs)(`div`,{className:`flex flex-col gap-3 px-1 py-1`,children:[(0,U.jsx)(`input`,{className:Y,value:c,onChange:e=>f(e.target.value),placeholder:`Member name`,autoFocus:!0}),(0,U.jsx)(`input`,{className:Y,value:p,onChange:e=>m(e.target.value),placeholder:`Persona (optional)`}),(0,U.jsx)(A,{value:h,onChange:g,projectName:n,providerId:r}),(0,U.jsxs)(`label`,{className:X(E),children:[(0,U.jsx)(`input`,{type:`checkbox`,className:`size-4 accent-[var(--color-primary)]`,checked:_,disabled:E,onChange:e=>v(e.target.checked)}),(0,U.jsx)(`span`,{children:E?`Leader (reassign from another member)`:`Set as leader`})]}),S&&(0,U.jsx)(`p`,{className:`text-xs text-destructive`,children:S}),(0,U.jsxs)(`div`,{className:`flex justify-end gap-2 pt-1`,children:[(0,U.jsx)(o,{variant:`outline`,onClick:a,disabled:y,children:`Cancel`}),(0,U.jsxs)(o,{onClick:T,disabled:y,children:[y&&(0,U.jsx)(j,{className:`mr-1.5 size-4 animate-spin`}),t?`Save`:`Add member`]})]})]});if(!e)return null;let O=t?`Edit member`:`Add member`;return s?(0,U.jsx)(u,{open:!0,onClose:a,className:`flex max-h-[90vh] flex-col`,children:(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-col px-4 pb-2`,children:[(0,U.jsx)(`h2`,{className:`mb-2 text-base font-semibold text-foreground`,children:O}),D]})}):(0,U.jsx)(x,{open:!0,onOpenChange:e=>{e||a()},children:(0,U.jsxs)(k,{className:`flex flex-col sm:max-w-md`,children:[(0,U.jsx)(C,{children:(0,U.jsx)(d,{children:O})}),D]})})}function X(e){return`flex items-center gap-2 text-sm text-text-secondary ${e?`opacity-60`:``}`}function se({messages:e,config:t,projectName:n}){return(0,U.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[t&&(0,U.jsx)(Z,{config:t}),e.map(e=>(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wide text-text-subtle`,children:e.role===`user`?`User`:e.role===`assistant`?`Assistant`:e.role}),(0,U.jsx)(ce,{message:e,projectName:n})]},e.id)),e.length===0&&(0,U.jsx)(`p`,{className:`py-6 text-center text-sm text-text-subtle`,children:`Transcript is empty.`})]})}function ce({message:e,projectName:t}){let n=e.events??[];if(n.length===0)return e.content.trim()?(0,U.jsx)(R,{content:e.content}):null;let r=new Map;for(let e of n)e.type===`tool_result`&&e.toolUseId&&r.set(e.toolUseId,e);return(0,U.jsx)(`div`,{className:`flex flex-col gap-2`,children:n.map((e,n)=>{if(e.type===`text`)return e.content.trim()?(0,U.jsx)(R,{content:e.content},n):null;if(e.type===`thinking`)return(0,U.jsx)(le,{content:e.content},n);if(e.type===`tool_use`){let i=e.toolUseId?r.get(e.toolUseId):void 0;return(0,U.jsx)(a,{tool:e,result:i,completed:!!i,projectName:t},n)}return null})})}function le({content:e}){let[t,n]=(0,V.useState)(!1);return(0,U.jsxs)(`div`,{className:`rounded-md border border-border bg-surface-elevated/40`,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>n(e=>!e),className:`flex w-full items-center gap-1.5 px-2.5 py-1.5 text-xs text-text-subtle hover:text-text-secondary`,children:[(0,U.jsx)(i,{className:s(`size-3.5 transition-transform`,t&&`rotate-90`)}),(0,U.jsx)(M,{className:`size-3.5`}),(0,U.jsx)(`span`,{children:`Thinking`})]}),t&&(0,U.jsx)(`div`,{className:`border-t border-border px-3 py-2 text-xs leading-relaxed text-text-secondary`,children:(0,U.jsx)(R,{content:e})})]})}function Z({config:e}){let[t,n]=(0,V.useState)(!1),r=[[`Model`,e.model],[`Permission`,e.permissionMode],[`CWD`,e.cwd],[`Git branch`,e.gitBranch],[`CLI version`,e.version]].filter(([,e])=>e);return r.length===0?null:(0,U.jsxs)(`div`,{className:`rounded-md border border-border bg-surface-elevated/40`,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>n(e=>!e),className:`flex w-full items-center gap-1.5 px-2.5 py-1.5 text-xs font-medium text-text-secondary hover:text-foreground`,children:[(0,U.jsx)(i,{className:s(`size-3.5 transition-transform`,t&&`rotate-90`)}),(0,U.jsx)(w,{className:`size-3.5`}),(0,U.jsx)(`span`,{children:`Input config`})]}),t&&(0,U.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 border-t border-border px-3 py-2 text-xs`,children:r.map(([e,t])=>(0,U.jsxs)(`div`,{className:`contents`,children:[(0,U.jsx)(`dt`,{className:`text-text-subtle`,children:e}),(0,U.jsx)(`dd`,{className:`break-all font-mono text-text-secondary`,children:t})]},e))})]})}function ue({groupId:e,message:t,onClose:n}){let r=l(),[i,a]=(0,V.useState)(null),[o,s]=(0,V.useState)(!1),[c,f]=(0,V.useState)(null),p=t?.fullSessionRef??null;if((0,V.useEffect)(()=>{if(!t||!p)return;let n=!1;return a(null),f(null),s(!0),F(e,p).then(e=>{n||a(e)}).catch(e=>{n||f(e instanceof Error?e.message:`Failed to load transcript`)}).finally(()=>{n||s(!1)}),()=>{n=!0}},[e,p,t]),!t)return null;let m=(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[o&&(0,U.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,U.jsx)(j,{className:`size-5 animate-spin text-primary`})}),c&&(0,U.jsxs)(`div`,{className:`px-1 py-4 text-sm text-text-secondary`,children:[(0,U.jsx)(`p`,{className:`mb-2 font-medium text-foreground`,children:`Full transcript unavailable`}),(0,U.jsx)(`p`,{className:`text-xs text-text-subtle`,children:c}),t.summary&&(0,U.jsx)(`pre`,{className:`mt-4 whitespace-pre-wrap break-words rounded-md bg-surface-elevated p-3 text-xs leading-relaxed text-text-secondary`,children:t.summary})]}),!o&&!c&&i!=null&&(0,U.jsx)(`div`,{className:`px-1 py-1`,children:(0,U.jsx)(se,{messages:i.messages,config:i.config})})]}),h=`${t.fromMember} — full transcript`;return r?(0,U.jsx)(u,{open:!0,onClose:n,className:`max-h-[85vh] flex flex-col`,children:(0,U.jsxs)(`div`,{className:`flex flex-col min-h-0 px-4 pb-2`,children:[(0,U.jsx)(`h2`,{className:`mb-2 text-sm font-semibold text-foreground`,children:h}),m]})}):(0,U.jsx)(x,{open:!0,onOpenChange:e=>{e||n()},children:(0,U.jsxs)(k,{className:`flex max-h-[80vh] flex-col sm:max-w-2xl`,children:[(0,U.jsx)(C,{children:(0,U.jsx)(d,{className:`text-sm`,children:h})}),m]})})}function Q({metadata:e}){let t=e?.groupId??null,{activeProject:n}=c(b(e=>({activeProject:e.activeProject}))),r=e?.projectName??n?.name??``,i=l(),{messages:a,members:d,status:f,typing:p,loading:h,isRunning:v,error:x,sendMessage:S,stop:C,resume:w}=re(t,r),[E,D]=(0,V.useState)(``),[k,A]=(0,V.useState)(null),[M,N]=(0,V.useState)(!1),P=(0,V.useRef)(null),[F,I]=(0,V.useState)([]),[L,R]=(0,V.useState)(null),[z,B]=(0,V.useState)(!1),[H,W]=(0,V.useState)(null),[G,K]=(0,V.useState)(null),q=(0,V.useCallback)(async()=>{if(t)try{let e=await ee(t);I(e.members),R(e.maxTurns)}catch{}},[t]),J=(0,V.useCallback)(async e=>{if(!t)return;let n=Math.max(1,Math.min(50,Math.floor(e)||1));R(n);try{await m(t,{maxTurns:n})}catch{q()}},[t,q]);(0,V.useEffect)(()=>{I([]),q()},[t,q]),(0,V.useEffect)(()=>{P.current?.scrollIntoView({block:`end`})},[a.length,p]);let Y=(0,V.useMemo)(()=>new Map(d.map(e=>[e.id,e.status])),[d]),X=F.length?F:d,se=(0,V.useMemo)(()=>{let e=new Map(X.map(e=>[e.name,e.color]));return t=>e.get(t)??null},[X]),ce=(0,V.useMemo)(()=>{let e=new Set(X.filter(e=>e.role===`leader`).map(e=>e.name));return t=>e.has(t)},[X]),le=(0,V.useCallback)(async e=>{t&&(G?.member?await g(t,G.member.id,e):await te(t,e),await q())},[t,G,q]),Z=(0,V.useCallback)(async e=>{if(t){B(!0),W(null);try{await T(t,e.id),await q()}catch(e){W(e instanceof Error?e.message:`Failed to remove member`)}finally{B(!1)}}},[t,q]),Q=(0,V.useCallback)(()=>{let e=E.trim();e&&(S(e),D(``))},[E,S]),$=Object.keys(p).filter(e=>p[e]);return t?(0,U.jsxs)(`div`,{className:`flex h-full min-h-0`,children:[(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,U.jsxs)(`div`,{className:`flex h-11 shrink-0 items-center justify-between border-b border-border px-3`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-foreground`,children:[(0,U.jsx)(`span`,{className:s(`size-2 rounded-full`,f===`active`?`bg-primary animate-pulse`:f===`paused`?`bg-amber-500`:`bg-text-subtle`)}),(0,U.jsx)(`span`,{className:`capitalize`,children:f})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[v?(0,U.jsxs)(o,{size:`sm`,variant:`outline`,onClick:C,className:`h-8`,children:[(0,U.jsx)(y,{className:`mr-1 size-3.5`}),` Stop`]}):f===`paused`?(0,U.jsxs)(o,{size:`sm`,variant:`outline`,onClick:w,className:`h-8`,children:[(0,U.jsx)(O,{className:`mr-1 size-3.5`}),` Resume`]}):null,(0,U.jsx)(`button`,{type:`button`,onClick:()=>N(e=>!e),className:`flex size-8 items-center justify-center rounded-md text-text-subtle hover:bg-surface-elevated hover:text-foreground`,"aria-label":`Toggle roster`,children:(0,U.jsx)(_,{className:`size-4`})})]})]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:h?(0,U.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,U.jsx)(j,{className:`size-5 animate-spin text-primary`})}):a.length===0?(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center p-4 text-center text-sm text-text-subtle`,children:`Send a message to start the group.`}):(0,U.jsxs)(`div`,{className:`flex flex-col py-2`,children:[a.map(e=>(0,U.jsx)(ie,{message:e,colorFor:se,isLeader:ce,onViewFull:A},e.id)),$.length>0&&(0,U.jsxs)(`div`,{className:`px-3 py-1.5 text-xs italic text-text-subtle`,children:[$.join(`, `),` `,$.length===1?`is`:`are`,` typing…`]}),(0,U.jsx)(`div`,{ref:P})]})}),x&&(0,U.jsx)(`div`,{className:`shrink-0 border-t border-border bg-destructive/10 px-3 py-2 text-xs text-destructive`,children:x}),(0,U.jsx)(`div`,{className:`shrink-0 border-t border-border p-2`,children:(0,U.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,U.jsx)(`textarea`,{value:E,onChange:e=>D(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!i&&(e.preventDefault(),Q())},rows:1,placeholder:`Message the group…`,className:`max-h-32 min-h-[44px] flex-1 resize-none rounded-md border border-border bg-background px-3 py-2.5 text-sm text-foreground placeholder:text-text-subtle focus:outline-none focus:ring-1 focus:ring-primary`}),(0,U.jsx)(o,{onClick:Q,disabled:!E.trim(),className:`size-11 shrink-0 p-0`,"aria-label":`Send`,children:(0,U.jsx)(ne,{className:`size-4`})})]})})]}),i?(0,U.jsxs)(u,{open:M,onClose:()=>N(!1),className:`flex max-h-[72vh] flex-col`,children:[(0,U.jsx)(`div`,{className:`flex h-11 shrink-0 items-center px-4 text-sm font-medium text-foreground`,children:`Members`}),(0,U.jsxs)(`div`,{className:`min-h-0 overflow-y-auto`,children:[L!==null&&(0,U.jsxs)(`label`,{className:`flex items-center gap-2 px-4 py-2 text-xs text-text-secondary`,children:[(0,U.jsx)(`span`,{children:`Reply cap`}),(0,U.jsx)(`input`,{type:`number`,min:1,max:50,value:L,onChange:e=>J(Number(e.target.value)),className:`w-14 rounded border border-border bg-background px-1.5 py-1 text-xs text-foreground`}),(0,U.jsx)(`span`,{className:`text-text-subtle`,children:`turns/msg`})]}),H&&(0,U.jsx)(`p`,{className:`px-3 py-1 text-xs text-destructive`,children:H}),(0,U.jsx)(ae,{members:F,liveStatus:Y,typing:p,busy:z,onAdd:()=>K({member:null}),onEdit:e=>K({member:e}),onRemove:Z})]})]}):M&&(0,U.jsxs)(`div`,{className:`flex w-60 shrink-0 flex-col border-l border-border bg-panel`,children:[(0,U.jsx)(`div`,{className:`flex h-11 shrink-0 items-center border-b border-border px-3 text-sm font-medium text-foreground`,children:`Members`}),(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[L!==null&&(0,U.jsxs)(`label`,{className:`flex items-center gap-2 px-3 py-2 text-xs text-text-secondary`,children:[(0,U.jsx)(`span`,{children:`Reply cap`}),(0,U.jsx)(`input`,{type:`number`,min:1,max:50,value:L,onChange:e=>J(Number(e.target.value)),className:`w-14 rounded border border-border bg-background px-1.5 py-1 text-xs text-foreground`}),(0,U.jsx)(`span`,{className:`text-text-subtle`,children:`turns/msg`})]}),H&&(0,U.jsx)(`p`,{className:`px-3 py-1 text-xs text-destructive`,children:H}),(0,U.jsx)(ae,{members:F,liveStatus:Y,typing:p,busy:z,onAdd:()=>K({member:null}),onEdit:e=>K({member:e}),onRemove:Z})]})]}),G&&(0,U.jsx)(oe,{open:!0,member:G.member,projectName:r,onSubmit:le,onClose:()=>K(null)},G.member?.id??`add`),(0,U.jsx)(ue,{groupId:t,message:k,onClose:()=>A(null)})]}):(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center p-4 text-sm text-text-subtle`,children:`No group selected.`})}export{Q as GroupChatTab};