@museagent/cli 1.0.40 → 1.0.42

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 (600) hide show
  1. package/README.md +625 -38
  2. package/bin/stt/requirements.txt +7 -19
  3. package/bin/stt/stt_server.py +18 -93
  4. package/install.cjs +156 -2
  5. package/llms.txt +34 -7
  6. package/package.json +9 -9
  7. package/web/dist/assets/AssistantsView-Ct3BBpYf.js +1 -0
  8. package/web/dist/assets/AutomationView-CO-jVhee.js +3 -0
  9. package/web/dist/assets/ChannelConfigView-Ct1W584x.js +8 -0
  10. package/web/dist/assets/ChartsView-CAc37Sam.js +1 -0
  11. package/web/dist/assets/ConnectorsView-DP4bbh58.js +1 -0
  12. package/web/dist/assets/FileTreeView-DwsYfssO.js +1 -0
  13. package/web/dist/assets/HookConfigView-uFsqieii.js +2 -0
  14. package/web/dist/assets/InputArea-BY8quOiH.js +14 -0
  15. package/web/dist/assets/MemoryView-Bgd_lcTf.js +1 -0
  16. package/web/dist/assets/MessageBubble-CCTRbIMZ.css +1 -0
  17. package/web/dist/assets/MessageBubble-CVGXupVH.js +453 -0
  18. package/web/dist/assets/ModelsView-B271UV9L.js +1 -0
  19. package/web/dist/assets/PluginsView-Dz4fqQR1.js +2 -0
  20. package/web/dist/assets/ProjectsView-DF-YCV8y.js +1 -0
  21. package/web/dist/assets/SessionGrid-BIREstN2.js +4 -0
  22. package/web/dist/assets/SessionGrid-Bk5CAXEn.css +1 -0
  23. package/web/dist/assets/SettingsModal-ZJeoZcCd.js +4 -0
  24. package/web/dist/assets/SkillsView-CH2ghYL2.js +1 -0
  25. package/web/dist/assets/TemplatesTab-BGe7_67s.js +1 -0
  26. package/web/dist/assets/ThreadsView-XditIHZ4.js +2 -0
  27. package/web/dist/assets/ToolsView-BBzsFdVZ.js +1 -0
  28. package/web/dist/assets/abnfDiagram-WEYOIA3C-DGUPHfRO.js +1 -0
  29. package/web/dist/assets/agentIconSet-B5GUQwel.js +1 -0
  30. package/web/dist/assets/api-plEYhRn0.js +1 -0
  31. package/web/dist/assets/arc-Y1ARJVZ4.js +1 -0
  32. package/web/dist/assets/architecture-WOLXFQ4H-BUERx_-B.js +1 -0
  33. package/web/dist/assets/architectureDiagram-ZHVYKT53-BPsQL7O5.js +36 -0
  34. package/web/dist/assets/array-BifhSqXX.js +1 -0
  35. package/web/dist/assets/blockDiagram-RJAE7QA3-pB7EXp6p.js +140 -0
  36. package/web/dist/assets/c4Diagram-XDPPPE54-BnPeCq_L.js +38 -0
  37. package/web/dist/assets/channel-CSrLW66f.js +1 -0
  38. package/web/dist/assets/channelMeta-BGQXQxgj.js +1 -0
  39. package/web/dist/assets/chunk-2E7WHVMD-xX282MrC.js +88 -0
  40. package/web/dist/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  41. package/web/dist/assets/chunk-4EMNKR2T-BAQDLVqt.js +1 -0
  42. package/web/dist/assets/chunk-55XCU76K-BwAE3Eqq.js +1 -0
  43. package/web/dist/assets/{chunk-5VM5RSS4-CYl9mwa-.js → chunk-5VM5RSS4-ZNzvKenW.js} +2 -2
  44. package/web/dist/assets/chunk-7S6XSTFO-DwwaClMo.js +2 -0
  45. package/web/dist/assets/chunk-AQDTSKZB-DHG5Km_p.js +72 -0
  46. package/web/dist/assets/chunk-DSNLSHJZ-a6-B52h-.js +129 -0
  47. package/web/dist/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
  48. package/web/dist/assets/chunk-HAGFOTED-DZMcAj3o.js +62 -0
  49. package/web/dist/assets/chunk-HNE4Q36P-gl_4xI6B.js +1 -0
  50. package/web/dist/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
  51. package/web/dist/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  52. package/web/dist/assets/chunk-NGNAAXSQ-Bw6tHVuc.js +136 -0
  53. package/web/dist/assets/chunk-NQOKRVIF-B8Q-YmhL.js +213 -0
  54. package/web/dist/assets/chunk-UHW7PFBP-isP5lYMB.js +1 -0
  55. package/web/dist/assets/chunk-VQ5W62QI-Bn68syIc.js +1 -0
  56. package/web/dist/assets/chunk-WQQL4CDK-CdZpmEYA.js +10 -0
  57. package/web/dist/assets/chunk-XXDRQBXY-CnbRkih_.js +1 -0
  58. package/web/dist/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  59. package/web/dist/assets/chunk-YZO67HFG-DX9GhJkR.js +1 -0
  60. package/web/dist/assets/chunk-ZAUX2LTX-Ki22UlYp.js +1 -0
  61. package/web/dist/assets/chunk-ZCHMQSOR-BVj0Zx6L.js +2 -0
  62. package/web/dist/assets/classDiagram-v2-4MYWR3UA-C7PV1veb.js +217 -0
  63. package/web/dist/assets/common-Bbatsa0-.js +192 -0
  64. package/web/dist/assets/cose-bilkent-JH36ORCC-DHFtpmij.js +1 -0
  65. package/web/dist/assets/cynefin-EF2NZ3EQ-1rI2T0cc.js +1 -0
  66. package/web/dist/assets/cynefinDiagram-WF24UDRP-C8O_v8xU.js +62 -0
  67. package/web/dist/assets/cytoscape.esm-BY277UBX.js +321 -0
  68. package/web/dist/assets/dagre-NK4GIZVX-BWGoHIUd.js +4 -0
  69. package/web/dist/assets/defaultLocale-BFoDCU3G.js +1 -0
  70. package/web/dist/assets/diagram-CBK3MWTC-kf9v35RN.js +24 -0
  71. package/web/dist/assets/diagram-I5XIIV2D-Ro-ig56_.js +24 -0
  72. package/web/dist/assets/diagram-ODIL2UCW-CtGga01G.js +30 -0
  73. package/web/dist/assets/diagram-PFBEJUXE-C14lcR-6.js +3 -0
  74. package/web/dist/assets/diagram-RJA3I4VV-BBbqaSKU.js +41 -0
  75. package/web/dist/assets/diagram-TYUNFSNR-BynvjQsr.js +200 -0
  76. package/web/dist/assets/dist-CumnGVmJ.js +1 -0
  77. package/web/dist/assets/ebnfDiagram-V4P3TTPT-BdqUCZnk.js +1 -0
  78. package/web/dist/assets/elk-QONTBCTQ-CYCP_9Jy.js +27 -0
  79. package/web/dist/assets/erDiagram-KYQIGQAA-C3L55l_F.js +99 -0
  80. package/web/dist/assets/eventmodeling-K75KTNOO-CTQdA_1v.js +1 -0
  81. package/web/dist/assets/flowDiagram-IUGLLWBU-COLKOzBg.js +1 -0
  82. package/web/dist/assets/ganttDiagram-R7GPNTJY-Be4Qk8Hx.js +292 -0
  83. package/web/dist/assets/gitGraph-VSP46ZUC-B59HXvj1.js +1 -0
  84. package/web/dist/assets/gitGraphDiagram-PDYL7XHY-C2A0VA6q.js +106 -0
  85. package/web/dist/assets/graphlib-DS17s2tU.js +1 -0
  86. package/web/dist/assets/icons-CYDRRPKW.js +1 -0
  87. package/web/dist/assets/index-CTbLW314.js +133 -0
  88. package/web/dist/assets/index-DdzVrZye.css +1 -0
  89. package/web/dist/assets/info-OHQRW6UA-DWlkKvmi.js +1 -0
  90. package/web/dist/assets/infoDiagram-MVDRKAX5-B8e6dTjN.js +2 -0
  91. package/web/dist/assets/init-C-OQMol4.js +1 -0
  92. package/web/dist/assets/ishikawaDiagram-HPEHV2GE-udXPYi9H.js +70 -0
  93. package/web/dist/assets/journeyDiagram-BOSHW7O7-DTyDkf5d.js +139 -0
  94. package/web/dist/assets/kanban-definition-FNSA4HC5-BXgV20qe.js +89 -0
  95. package/web/dist/assets/katex-B940_AAO.js +257 -0
  96. package/web/dist/assets/line-DVabuQAu.js +1 -0
  97. package/web/dist/assets/linear-gLkGxN9m.js +1 -0
  98. package/web/dist/assets/markdown-N5__3T-w.js +14 -0
  99. package/web/dist/assets/mermaid-parser.core-BrXnuEs7.js +7 -0
  100. package/web/dist/assets/mermaid.core-BGbz3k1k.js +44 -0
  101. package/web/dist/assets/mindmap-definition-6OY57UG3-DbtP-bmk.js +98 -0
  102. package/web/dist/assets/ordinal-BDEzSJ7C.js +1 -0
  103. package/web/dist/assets/packet-JDAUHWVQ-iW8w3JF5.js +1 -0
  104. package/web/dist/assets/panels-CIPgN61N.js +1 -0
  105. package/web/dist/assets/path-fybaL0A-.js +1 -0
  106. package/web/dist/assets/pegDiagram-ECIUJNBX-rBWJbaq4.js +1 -0
  107. package/web/dist/assets/pie-XZMESJXO-KHXEq-Yx.js +1 -0
  108. package/web/dist/assets/pieDiagram-GNMPY74T-DsW7yHm0.js +39 -0
  109. package/web/dist/assets/preload-helper-BLdHbfdN.js +1 -0
  110. package/web/dist/assets/profileChange-xrd7jkii.js +1 -0
  111. package/web/dist/assets/quadrantDiagram-D57K4MC3-DF_pwNhM.js +7 -0
  112. package/web/dist/assets/radar-ABXABTNO-BkAUJ_Zd.js +1 -0
  113. package/web/dist/assets/railroad-I3PHUGI6-BdnWRdGt.js +1 -0
  114. package/web/dist/assets/railroad-abnf-LNEFI6M7-C8K36-8b.js +1 -0
  115. package/web/dist/assets/railroad-ebnf-DWYD2UWJ-BlS25T3f.js +1 -0
  116. package/web/dist/assets/railroad-peg-JR7BVNR7-CBKGDi75.js +1 -0
  117. package/web/dist/assets/railroadDiagram-Y72NRBL7-DmrlMIvv.js +1 -0
  118. package/web/dist/assets/react-vendor-CB4cLN-6.js +19 -0
  119. package/web/dist/assets/requirementDiagram-EQYSW5RA-cvUq9H3I.js +84 -0
  120. package/web/dist/assets/rolldown-runtime-COiEfhsA.js +1 -0
  121. package/web/dist/assets/rough.esm-Dy-Kn_BL.js +1 -0
  122. package/web/dist/assets/sankeyDiagram-SY24JHO5-BdxXAbER.js +40 -0
  123. package/web/dist/assets/sequenceDiagram-BLEHNHQU-Druumi0k.js +169 -0
  124. package/web/dist/assets/settingsStore-Xqln0d91.js +1 -0
  125. package/web/dist/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
  126. package/web/dist/assets/src-49LUQhkG.js +1 -0
  127. package/web/dist/assets/src-BWF7jMDv.js +1 -0
  128. package/web/dist/assets/state-CSZ50keL.js +1 -0
  129. package/web/dist/assets/stateDiagram-v2-A6IESKWZ-Jgh6qlrr.js +291 -0
  130. package/web/dist/assets/sttLanguages-CSNMgUTz.js +2 -0
  131. package/web/dist/assets/swimlanes-B3ENRKFQ-4xKumvXQ.js +1 -0
  132. package/web/dist/assets/swimlanesDiagram-AYQRV4AK-bHcLKL3d.js +8 -0
  133. package/web/dist/assets/timeline-definition-JXYKGLGB-BYKhga9x.js +120 -0
  134. package/web/dist/assets/treeView-D4JQ5SDB-6-eTVUuH.js +1 -0
  135. package/web/dist/assets/treemap-SAJKECNS-Dxl8yCLE.js +1 -0
  136. package/web/dist/assets/ttsSettings-BwXYpDnk.js +2 -0
  137. package/web/dist/assets/types-JssxRFJn.js +1 -0
  138. package/web/dist/assets/useConfirm-Da8iQ_DZ.js +1 -0
  139. package/web/dist/assets/useTranslation-B-mfApCn.js +1 -0
  140. package/web/dist/assets/usecaseDiagram-WPOLBNNX-BaQ8nAv9.js +328 -0
  141. package/web/dist/assets/vennDiagram-Q3Y3IDCW-DkPvfmfT.js +34 -0
  142. package/web/dist/assets/wardley-7MLQ67FV-CZtI22aa.js +1 -0
  143. package/web/dist/assets/wardleyDiagram-IVAIDKWA-Dgi2OWQ4.js +78 -0
  144. package/web/dist/assets/websocket-BnDwh01e.js +1 -0
  145. package/web/dist/assets/whatsNewStore-LpdLRLGl.js +1 -0
  146. package/web/dist/assets/workspaceSemantics-RaIRer76.js +3 -0
  147. package/web/dist/assets/xychartDiagram-4URNHDU4-Ch96dep-.js +7 -0
  148. package/web/dist/favicon.svg +18 -39
  149. package/web/dist/icons/icon-1024.png +0 -0
  150. package/web/dist/icons/icon-180.png +0 -0
  151. package/web/dist/icons/icon-192.png +0 -0
  152. package/web/dist/icons/icon-512.png +0 -0
  153. package/web/dist/icons/icon-maskable-512.png +0 -0
  154. package/web/dist/index.html +46 -12
  155. package/web/dist/logo.svg +25 -39
  156. package/web/dist/manifest.webmanifest +2 -2
  157. package/web/dist/vendor/MANIFEST.json +24 -0
  158. package/web/dist/vendor/d3.min.js +2 -0
  159. package/web/dist/vendor/echarts.min.js +45 -0
  160. package/web/dist/assets/AssistantsView-BiUiWjhF.js +0 -1
  161. package/web/dist/assets/AutomationView-Dcf_yNaI.js +0 -1
  162. package/web/dist/assets/ChannelConfigView-BLnxsMGm.js +0 -8
  163. package/web/dist/assets/ConnectorsView-CX3E6X6c.js +0 -1
  164. package/web/dist/assets/DesignSystemView--x-P-lpD.js +0 -1
  165. package/web/dist/assets/Drawer-CjAgqH3B.js +0 -1
  166. package/web/dist/assets/FileTreeView-Chb_fzTK.js +0 -11
  167. package/web/dist/assets/HookConfigView-EafYlWdN.js +0 -1
  168. package/web/dist/assets/InputArea-BbHslX7b.js +0 -50
  169. package/web/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  170. package/web/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  171. package/web/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  172. package/web/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  173. package/web/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  174. package/web/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  175. package/web/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  176. package/web/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  177. package/web/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  178. package/web/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  179. package/web/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  180. package/web/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  181. package/web/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  182. package/web/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  183. package/web/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  184. package/web/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  185. package/web/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  186. package/web/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  187. package/web/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  188. package/web/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  189. package/web/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  190. package/web/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  191. package/web/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  192. package/web/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  193. package/web/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  194. package/web/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  195. package/web/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  196. package/web/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  197. package/web/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  198. package/web/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  199. package/web/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  200. package/web/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  201. package/web/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  202. package/web/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  203. package/web/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  204. package/web/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  205. package/web/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  206. package/web/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  207. package/web/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  208. package/web/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  209. package/web/dist/assets/ModelsView-CGN5Nljr.js +0 -1
  210. package/web/dist/assets/PluginsView-CDiJgvI8.js +0 -2
  211. package/web/dist/assets/ProjectsView-C5Usmwqy.js +0 -1
  212. package/web/dist/assets/SessionGrid-BGpz0-op.css +0 -1
  213. package/web/dist/assets/SessionGrid-Drxg0r_u.js +0 -4
  214. package/web/dist/assets/SettingsModal-Cmts6aBG.js +0 -10
  215. package/web/dist/assets/Skeleton-Dsk6B0U3.js +0 -1
  216. package/web/dist/assets/SkillsView-TEDR_3XX.js +0 -1
  217. package/web/dist/assets/TemplatesTab-DtN5Kdgh.js +0 -1
  218. package/web/dist/assets/ToolsView-VukZnIt1.js +0 -1
  219. package/web/dist/assets/VizCardsSkeleton-C_GaEfXd.js +0 -1
  220. package/web/dist/assets/abap-BdImnpbu.js +0 -1
  221. package/web/dist/assets/abnfDiagram-YUKMZFIV-BIFw6B_N.js +0 -1
  222. package/web/dist/assets/actionscript-3-B3316cI-.js +0 -1
  223. package/web/dist/assets/ada-bCR0ucgS.js +0 -1
  224. package/web/dist/assets/ahk-CsyLZFj1.js +0 -1
  225. package/web/dist/assets/ahk2-8Zs4aa1G.js +0 -1
  226. package/web/dist/assets/andromeeda-C4gqWexZ.js +0 -1
  227. package/web/dist/assets/angular-html-DA-rfuFy.js +0 -1
  228. package/web/dist/assets/angular-ts-BrjP3tb8.js +0 -1
  229. package/web/dist/assets/apache-Pmp26Uib.js +0 -1
  230. package/web/dist/assets/apex-DhZFqWV2.js +0 -1
  231. package/web/dist/assets/apl-CORt7UWP.js +0 -1
  232. package/web/dist/assets/applescript-Co6uUVPk.js +0 -1
  233. package/web/dist/assets/ara-BRHolxvo.js +0 -1
  234. package/web/dist/assets/arc-BZQ951h9.js +0 -1
  235. package/web/dist/assets/architectureDiagram-47P4ROYG-BP5qiXzf.js +0 -36
  236. package/web/dist/assets/asciidoc-CSVQ5wI8.js +0 -1
  237. package/web/dist/assets/asm-D_Q5rh1f.js +0 -1
  238. package/web/dist/assets/astro-HNnZUWAn.js +0 -1
  239. package/web/dist/assets/aurora-x-D-2ljcwZ.js +0 -1
  240. package/web/dist/assets/awk-DMzUqQB5.js +0 -1
  241. package/web/dist/assets/ayu-dark-DYE7WIF3.js +0 -1
  242. package/web/dist/assets/ayu-light-BA47KaF1.js +0 -1
  243. package/web/dist/assets/ayu-mirage-32ctXXKs.js +0 -1
  244. package/web/dist/assets/ballerina-BFfxhgS-.js +0 -1
  245. package/web/dist/assets/bat-CickPsom.js +0 -1
  246. package/web/dist/assets/beancount-k_qm7-4y.js +0 -1
  247. package/web/dist/assets/berry-uYugtg8r.js +0 -1
  248. package/web/dist/assets/bibtex-CHM0blh-.js +0 -1
  249. package/web/dist/assets/bicep-Bmn6On1c.js +0 -1
  250. package/web/dist/assets/bird2-Bx8U0n9b.js +0 -1
  251. package/web/dist/assets/blade-2xfisSek.js +0 -1
  252. package/web/dist/assets/blockDiagram-E7TT5TSB-DtRpcE7F.js +0 -140
  253. package/web/dist/assets/bsl-DlhNcFeZ.js +0 -1
  254. package/web/dist/assets/c-BIGW1oBm.js +0 -1
  255. package/web/dist/assets/c3-Dp5svz6Z.js +0 -1
  256. package/web/dist/assets/c4Diagram-CRA5TL53-Gdzn8UBh.js +0 -38
  257. package/web/dist/assets/cadence-Bv_4Rxtq.js +0 -1
  258. package/web/dist/assets/cairo-KRGpt6FW.js +0 -1
  259. package/web/dist/assets/catppuccin-frappe-CZL1YF0i.js +0 -1
  260. package/web/dist/assets/catppuccin-latte-DH-8KZSZ.js +0 -1
  261. package/web/dist/assets/catppuccin-macchiato-B7yYVSCf.js +0 -1
  262. package/web/dist/assets/catppuccin-mocha-Ct7hS0mc.js +0 -1
  263. package/web/dist/assets/channel-BND6_KSH.js +0 -1
  264. package/web/dist/assets/chapel-DTp_pixX.js +0 -1
  265. package/web/dist/assets/chunk-2Q5K7J3B-3U6HMlsm.js +0 -1
  266. package/web/dist/assets/chunk-7TKQ45FW-Dn6ktcY5.js +0 -1
  267. package/web/dist/assets/chunk-AW2ZBBNX-De0QX6p1.js +0 -88
  268. package/web/dist/assets/chunk-FVRAUYC3-CpXDfvz4.js +0 -2
  269. package/web/dist/assets/chunk-HTAEGDNF-D1KDvcDd.js +0 -1
  270. package/web/dist/assets/chunk-JWPE2WC7-umm4A-fq.js +0 -1
  271. package/web/dist/assets/chunk-KQW6MTUR-JYH94hpE.js +0 -1
  272. package/web/dist/assets/chunk-XXDRQBXY-CSlCFByc.js +0 -1
  273. package/web/dist/assets/clarity-Dn5IMItf.js +0 -1
  274. package/web/dist/assets/classDiagram-v2-K4WV4PDN-DnFwS0qN.js +0 -217
  275. package/web/dist/assets/clojure-P80f7IUj.js +0 -1
  276. package/web/dist/assets/cmake-D1j8_8rp.js +0 -1
  277. package/web/dist/assets/cobol-nBiQ_Alo.js +0 -1
  278. package/web/dist/assets/codeowners-Bp6g37R7.js +0 -1
  279. package/web/dist/assets/codeql-DsOJ9woJ.js +0 -1
  280. package/web/dist/assets/coffee-Ch7k5sss.js +0 -1
  281. package/web/dist/assets/common-lisp-Cg-RD9OK.js +0 -1
  282. package/web/dist/assets/coq-C7JzOVbR.js +0 -1
  283. package/web/dist/assets/cose-bilkent-JH36ORCC-BxUTUyep.js +0 -1
  284. package/web/dist/assets/cpp-BMRokrvK.js +0 -1
  285. package/web/dist/assets/crystal-DGywbUpC.js +0 -1
  286. package/web/dist/assets/csharp-DSvCPggb.js +0 -1
  287. package/web/dist/assets/css-CLj8gQPS.js +0 -1
  288. package/web/dist/assets/csv-fuZLfV_i.js +0 -1
  289. package/web/dist/assets/cue-D82EKSYY.js +0 -1
  290. package/web/dist/assets/cynefin-EF2NZ3EQ-CiMvulJr.js +0 -141
  291. package/web/dist/assets/cynefinDiagram-3GCD6N5R-DuXFORdW.js +0 -62
  292. package/web/dist/assets/cypher-COkxafJQ.js +0 -1
  293. package/web/dist/assets/cytoscape.esm-Ix0LnXOy.js +0 -331
  294. package/web/dist/assets/d-85-TOEBH.js +0 -1
  295. package/web/dist/assets/dagre-W4DXFKR2-DzMZHXci.js +0 -4
  296. package/web/dist/assets/dark-plus-C3mMm8J8.js +0 -1
  297. package/web/dist/assets/dart-bE4Kk8sk.js +0 -1
  298. package/web/dist/assets/dax-CEL-wOlO.js +0 -1
  299. package/web/dist/assets/defaultLocale-DX6XiGOO.js +0 -1
  300. package/web/dist/assets/desktop-BmXAJ9_W.js +0 -1
  301. package/web/dist/assets/diagram-2UJZ2QOL-B6tO5G1v.js +0 -200
  302. package/web/dist/assets/diagram-OVF4WLC6-DRZt8tGc.js +0 -24
  303. package/web/dist/assets/diagram-PFPMY2P6-DGh6IecR.js +0 -30
  304. package/web/dist/assets/diagram-UMYRVEAY-BLbnt0yT.js +0 -24
  305. package/web/dist/assets/diagram-YEKJPTXX-C-S5DVhj.js +0 -41
  306. package/web/dist/assets/diagram-ZIFT7M5P-JrGHTWbo.js +0 -3
  307. package/web/dist/assets/diff-D97Zzqfu.js +0 -1
  308. package/web/dist/assets/docker-BcOcwvcX.js +0 -1
  309. package/web/dist/assets/dotenv-Da5cRb03.js +0 -1
  310. package/web/dist/assets/dracula-BzJJZx-M.js +0 -1
  311. package/web/dist/assets/dracula-soft-BXkSAIEj.js +0 -1
  312. package/web/dist/assets/dream-maker-BtqSS_iP.js +0 -1
  313. package/web/dist/assets/ebnfDiagram-VR2GEFS7-DPXA-YOi.js +0 -1
  314. package/web/dist/assets/edge-FbVlp4U3.js +0 -1
  315. package/web/dist/assets/elixir-CkH2-t6x.js +0 -1
  316. package/web/dist/assets/elk-IJKZMXRS-CINeWt2W.js +0 -27
  317. package/web/dist/assets/elm-DbKCFpqz.js +0 -1
  318. package/web/dist/assets/emacs-lisp-C_m_b--Z.js +0 -1
  319. package/web/dist/assets/erDiagram-O2IAPWRE-PPaHmqA1.js +0 -99
  320. package/web/dist/assets/erb-DXfck5VN.js +0 -1
  321. package/web/dist/assets/erlang-DsQrWhSR.js +0 -1
  322. package/web/dist/assets/everforest-dark-BgDCqdQA.js +0 -1
  323. package/web/dist/assets/everforest-light-C8M2exoo.js +0 -1
  324. package/web/dist/assets/fennel-BYunw83y.js +0 -1
  325. package/web/dist/assets/fish-BvzEVeQv.js +0 -1
  326. package/web/dist/assets/flowDiagram-OXPTDLAJ-t-u0QXEA.js +0 -213
  327. package/web/dist/assets/fluent-C4IJs8-o.js +0 -1
  328. package/web/dist/assets/fortran-fixed-form-CkoXwp7k.js +0 -1
  329. package/web/dist/assets/fortran-free-form-BxgE0vQu.js +0 -1
  330. package/web/dist/assets/fsharp-CXgrBDvD.js +0 -1
  331. package/web/dist/assets/ganttDiagram-R7TSEDQI-Bw49ZD_b.js +0 -292
  332. package/web/dist/assets/gdresource-TyuKm33G.js +0 -1
  333. package/web/dist/assets/gdscript-DqcFQ5yU.js +0 -1
  334. package/web/dist/assets/gdshader-DkwncUOv.js +0 -1
  335. package/web/dist/assets/genie-D0YGMca9.js +0 -1
  336. package/web/dist/assets/gherkin-DyxjwDmM.js +0 -1
  337. package/web/dist/assets/git-commit-F4YmCXRG.js +0 -1
  338. package/web/dist/assets/git-rebase-r7XF79zn.js +0 -1
  339. package/web/dist/assets/gitGraphDiagram-XJZIOB7I-BAfOqeeg.js +0 -106
  340. package/web/dist/assets/github-dark-DHJKELXO.js +0 -1
  341. package/web/dist/assets/github-dark-default-Cuk6v7N8.js +0 -1
  342. package/web/dist/assets/github-dark-dimmed-DH5Ifo-i.js +0 -1
  343. package/web/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -1
  344. package/web/dist/assets/github-light-DAi9KRSo.js +0 -1
  345. package/web/dist/assets/github-light-default-D7oLnXFd.js +0 -1
  346. package/web/dist/assets/github-light-high-contrast-BfjtVDDH.js +0 -1
  347. package/web/dist/assets/gleam-BspZqrRM.js +0 -1
  348. package/web/dist/assets/glimmer-js-ByusRIyA.js +0 -1
  349. package/web/dist/assets/glimmer-ts-BfAWNZQY.js +0 -1
  350. package/web/dist/assets/glsl-DplSGwfg.js +0 -1
  351. package/web/dist/assets/gn-n2N0HUVH.js +0 -1
  352. package/web/dist/assets/gnuplot-DdkO51Og.js +0 -1
  353. package/web/dist/assets/go-C27-OAKa.js +0 -1
  354. package/web/dist/assets/graph-Bn3Yngep.js +0 -1
  355. package/web/dist/assets/graphql-ChdNCCLP.js +0 -1
  356. package/web/dist/assets/groovy-gcz8RCvz.js +0 -1
  357. package/web/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -1
  358. package/web/dist/assets/gruvbox-dark-medium-GsRaNv29.js +0 -1
  359. package/web/dist/assets/gruvbox-dark-soft-CVdnzihN.js +0 -1
  360. package/web/dist/assets/gruvbox-light-hard-CH1njM8p.js +0 -1
  361. package/web/dist/assets/gruvbox-light-medium-DRw_LuNl.js +0 -1
  362. package/web/dist/assets/gruvbox-light-soft-hJgmCMqR.js +0 -1
  363. package/web/dist/assets/hack-BWmVpMyf.js +0 -1
  364. package/web/dist/assets/haml-D5jkg6IW.js +0 -1
  365. package/web/dist/assets/handlebars-BpdQsYii.js +0 -1
  366. package/web/dist/assets/haskell-Df6bDoY_.js +0 -1
  367. package/web/dist/assets/haxe-CfZj7gIn.js +0 -1
  368. package/web/dist/assets/hcl-BWvSN4gD.js +0 -1
  369. package/web/dist/assets/hjson-D5-asLiD.js +0 -1
  370. package/web/dist/assets/hlsl-D3lLCCz7.js +0 -1
  371. package/web/dist/assets/horizon-BUw7H-hv.js +0 -1
  372. package/web/dist/assets/horizon-bright-CUuTKBJd.js +0 -1
  373. package/web/dist/assets/houston-DnULxvSX.js +0 -1
  374. package/web/dist/assets/html-derivative-DlHx6ybY.js +0 -1
  375. package/web/dist/assets/html-pp8916En.js +0 -1
  376. package/web/dist/assets/http-jrhK8wxY.js +0 -1
  377. package/web/dist/assets/hurl-irOxFIW8.js +0 -1
  378. package/web/dist/assets/hxml-2-FPmUDs.js +0 -1
  379. package/web/dist/assets/hy-DFXneXwc.js +0 -1
  380. package/web/dist/assets/icons-Bm_ZzSAy.js +0 -964
  381. package/web/dist/assets/imba-DGztddWO.js +0 -1
  382. package/web/dist/assets/index-CeeLdENM.js +0 -677
  383. package/web/dist/assets/index-Ceez9lYk.css +0 -1
  384. package/web/dist/assets/infoDiagram-5W2HQ5XZ-Bv4RBxYW.js +0 -2
  385. package/web/dist/assets/ini-BEwlwnbL.js +0 -1
  386. package/web/dist/assets/init-Gi6I4Gst.js +0 -1
  387. package/web/dist/assets/ishikawaDiagram-K3B6WC7H-DEpj0bRp.js +0 -70
  388. package/web/dist/assets/java-CylS5w8V.js +0 -1
  389. package/web/dist/assets/javascript-wDzz0qaB.js +0 -1
  390. package/web/dist/assets/jinja-f2NsQr07.js +0 -1
  391. package/web/dist/assets/jison-wvAkD_A8.js +0 -1
  392. package/web/dist/assets/journeyDiagram-COXZFDF6-MJu84Iiz.js +0 -139
  393. package/web/dist/assets/json-Cp-IABpG.js +0 -1
  394. package/web/dist/assets/json5-C9tS-k6U.js +0 -1
  395. package/web/dist/assets/jsonc-Des-eS-w.js +0 -1
  396. package/web/dist/assets/jsonl-DcaNXYhu.js +0 -1
  397. package/web/dist/assets/jsonnet-DFQXde-d.js +0 -1
  398. package/web/dist/assets/jssm-C2t-YnRu.js +0 -1
  399. package/web/dist/assets/jsx-g9-lgVsj.js +0 -1
  400. package/web/dist/assets/julia-5Bft2YPA.js +0 -1
  401. package/web/dist/assets/just-Cwhn7H3k.js +0 -1
  402. package/web/dist/assets/kanagawa-dragon-BuwD2xS4.js +0 -1
  403. package/web/dist/assets/kanagawa-lotus-C3DzagqV.js +0 -1
  404. package/web/dist/assets/kanagawa-wave-DFGoQZhC.js +0 -1
  405. package/web/dist/assets/kanban-definition-P3RFRI5V-mlYSRALK.js +0 -89
  406. package/web/dist/assets/kdl-DV7GczEv.js +0 -1
  407. package/web/dist/assets/kotlin-BdnUsdx6.js +0 -1
  408. package/web/dist/assets/kusto-wEQ09or8.js +0 -1
  409. package/web/dist/assets/laserwave-DUszq2jm.js +0 -1
  410. package/web/dist/assets/latex-D5pSuvFb.js +0 -1
  411. package/web/dist/assets/lean-BZvkOJ9d.js +0 -1
  412. package/web/dist/assets/less-B1dDrJ26.js +0 -1
  413. package/web/dist/assets/light-plus-B7mTdjB0.js +0 -1
  414. package/web/dist/assets/linear-5j9gt8MV.js +0 -1
  415. package/web/dist/assets/liquid-C0sCDyMI.js +0 -1
  416. package/web/dist/assets/llvm-BZoOZj88.js +0 -1
  417. package/web/dist/assets/log-2UxHyX5q.js +0 -1
  418. package/web/dist/assets/logo-BtOb2qkB.js +0 -1
  419. package/web/dist/assets/lua-BaeVxFsk.js +0 -1
  420. package/web/dist/assets/luau-BnpPk5vE.js +0 -1
  421. package/web/dist/assets/make-CHLpvVh8.js +0 -1
  422. package/web/dist/assets/markdown-BWXjRrSw.js +0 -30
  423. package/web/dist/assets/markdown-Cvjx9yec.js +0 -1
  424. package/web/dist/assets/marko-DjSrsDqO.js +0 -1
  425. package/web/dist/assets/material-theme-D5KoaKCx.js +0 -1
  426. package/web/dist/assets/material-theme-darker-BfHTSMKl.js +0 -1
  427. package/web/dist/assets/material-theme-lighter-B0m2ddpp.js +0 -1
  428. package/web/dist/assets/material-theme-ocean-CyktbL80.js +0 -1
  429. package/web/dist/assets/material-theme-palenight-Csfq5Kiy.js +0 -1
  430. package/web/dist/assets/matlab-D7o27uSR.js +0 -1
  431. package/web/dist/assets/mdc-D1_yUvq7.js +0 -1
  432. package/web/dist/assets/mdx-Cmh6b_Ma.js +0 -1
  433. package/web/dist/assets/mermaid-CQcHuHx7.js +0 -1
  434. package/web/dist/assets/mermaid.core-DLb6eAON.js +0 -314
  435. package/web/dist/assets/min-dark-CafNBF8u.js +0 -1
  436. package/web/dist/assets/min-light-CTRr51gU.js +0 -1
  437. package/web/dist/assets/mindmap-definition-LZFPQGKD-C9v_57Ex.js +0 -96
  438. package/web/dist/assets/mipsasm-CKIfxQSi.js +0 -1
  439. package/web/dist/assets/mojo-DJz3ZmWd.js +0 -1
  440. package/web/dist/assets/monokai-BRVnQi9A.js +0 -1
  441. package/web/dist/assets/moonbit-CHtswR0a.js +0 -1
  442. package/web/dist/assets/move-el3G9tDJ.js +0 -1
  443. package/web/dist/assets/narrat-DRg8JJMk.js +0 -1
  444. package/web/dist/assets/nextflow-C-mBbutL.js +0 -1
  445. package/web/dist/assets/nextflow-groovy-vE_lwT2v.js +0 -1
  446. package/web/dist/assets/nginx-BpAMiNFr.js +0 -1
  447. package/web/dist/assets/night-owl-C39BiMTA.js +0 -1
  448. package/web/dist/assets/night-owl-light-CMTm3GFP.js +0 -1
  449. package/web/dist/assets/nim-BIad80T-.js +0 -1
  450. package/web/dist/assets/nix-CwoSXNpI.js +0 -1
  451. package/web/dist/assets/nord-Ddv68eIx.js +0 -1
  452. package/web/dist/assets/nsis-BlV79W_Q.js +0 -1
  453. package/web/dist/assets/nushell-D3jzshHO.js +0 -1
  454. package/web/dist/assets/objective-c-DXmwc3jG.js +0 -1
  455. package/web/dist/assets/objective-cpp-CLxacb5B.js +0 -1
  456. package/web/dist/assets/ocaml-C0hk2d4L.js +0 -1
  457. package/web/dist/assets/odin-BBf5iR-q.js +0 -1
  458. package/web/dist/assets/one-dark-pro-DVMEJ2y_.js +0 -1
  459. package/web/dist/assets/one-light-C3Wv6jpd.js +0 -1
  460. package/web/dist/assets/openscad-C4EeE6gA.js +0 -1
  461. package/web/dist/assets/ordinal-Cboi1Yqb.js +0 -1
  462. package/web/dist/assets/org-DM6o9KBp.js +0 -1
  463. package/web/dist/assets/panels-BQOvnbWH.js +0 -1
  464. package/web/dist/assets/pascal-D93ZcfNL.js +0 -1
  465. package/web/dist/assets/pegDiagram-BGZESJAR-KQP26s3-.js +0 -1
  466. package/web/dist/assets/perl-B9cMNwum.js +0 -1
  467. package/web/dist/assets/php-Csjmro_R.js +0 -1
  468. package/web/dist/assets/pieDiagram-CAPJLFHJ-DN3RQ_ih.js +0 -39
  469. package/web/dist/assets/pkl-u5AG7uiY.js +0 -1
  470. package/web/dist/assets/plastic-3e1v2bzS.js +0 -1
  471. package/web/dist/assets/plsql-ChMvpjG-.js +0 -1
  472. package/web/dist/assets/po-BTJTHyun.js +0 -1
  473. package/web/dist/assets/poimandres-CS3Unz2-.js +0 -1
  474. package/web/dist/assets/polar-C0HS_06l.js +0 -1
  475. package/web/dist/assets/postcss-CXtECtnM.js +0 -1
  476. package/web/dist/assets/powerquery-CEu0bR-o.js +0 -1
  477. package/web/dist/assets/powershell-BmBUJMz7.js +0 -1
  478. package/web/dist/assets/prisma-Vru482bI.js +0 -1
  479. package/web/dist/assets/profileChange-B7TaQ18u.js +0 -1
  480. package/web/dist/assets/prolog-CbFg5uaA.js +0 -1
  481. package/web/dist/assets/proto-C7zT0LnQ.js +0 -1
  482. package/web/dist/assets/pug-DKIMFp6K.js +0 -1
  483. package/web/dist/assets/puppet-BMWR74SV.js +0 -1
  484. package/web/dist/assets/purescript-CklMAg4u.js +0 -1
  485. package/web/dist/assets/python-B6aJPvgy.js +0 -1
  486. package/web/dist/assets/qml-3beO22l8.js +0 -1
  487. package/web/dist/assets/qmldir-C8lEn-DE.js +0 -1
  488. package/web/dist/assets/qss-IeuSbFQv.js +0 -1
  489. package/web/dist/assets/quadrantDiagram-GDMTTRAM-BpL_ZL76.js +0 -7
  490. package/web/dist/assets/r-Cf5RLm7j.js +0 -1
  491. package/web/dist/assets/racket-BqYA7rlc.js +0 -1
  492. package/web/dist/assets/railroadDiagram-SM67HX2B-DZ-fPU85.js +0 -1
  493. package/web/dist/assets/raku-DXvB9xmW.js +0 -1
  494. package/web/dist/assets/razor-BjBPvh-w.js +0 -1
  495. package/web/dist/assets/rbs-CpoqiR4B.js +0 -1
  496. package/web/dist/assets/react-vendor-C0HIWSpf.js +0 -9
  497. package/web/dist/assets/red-hvxz__6c.js +0 -1
  498. package/web/dist/assets/reg-C-SQnVFl.js +0 -1
  499. package/web/dist/assets/regexp-CDVJQ6XC.js +0 -1
  500. package/web/dist/assets/rel-C3B-1QV4.js +0 -1
  501. package/web/dist/assets/requirementDiagram-X7JNWC4A-mKPGj64L.js +0 -84
  502. package/web/dist/assets/riscv-BM1_JUlF.js +0 -1
  503. package/web/dist/assets/ron-D8l8udqQ.js +0 -1
  504. package/web/dist/assets/rose-pine-5qJOZa0Y.js +0 -1
  505. package/web/dist/assets/rose-pine-dawn-zx0QlTCp.js +0 -1
  506. package/web/dist/assets/rose-pine-moon-C9pEdX9L.js +0 -1
  507. package/web/dist/assets/rosmsg-BJDFO7_C.js +0 -1
  508. package/web/dist/assets/rst-bs7f0vWN.js +0 -1
  509. package/web/dist/assets/ruby-C0TQ7zu5.js +0 -1
  510. package/web/dist/assets/rust-B1yitclQ.js +0 -1
  511. package/web/dist/assets/sankeyDiagram-UM26HJRW-Bs4xfjQP.js +0 -40
  512. package/web/dist/assets/sas-DEy46yEz.js +0 -1
  513. package/web/dist/assets/sass-Cj5Yp3dK.js +0 -1
  514. package/web/dist/assets/scala-CqE71os6.js +0 -1
  515. package/web/dist/assets/scheme-C98Dy4si.js +0 -1
  516. package/web/dist/assets/scss-D5BDwBP9.js +0 -1
  517. package/web/dist/assets/sdbl-DVxCFoDh.js +0 -1
  518. package/web/dist/assets/sequenceDiagram-ZO4K6R2Y-BjUmzZaO.js +0 -169
  519. package/web/dist/assets/shaderlab-Dg9Lc6iA.js +0 -1
  520. package/web/dist/assets/shellscript-Yzrsuije.js +0 -1
  521. package/web/dist/assets/shellsession-BADoaaVG.js +0 -1
  522. package/web/dist/assets/sizeCapture-INFHLROL-BXBM3j_Q.js +0 -1
  523. package/web/dist/assets/slack-dark-BthQWCQV.js +0 -1
  524. package/web/dist/assets/slack-ochin-DqwNpetd.js +0 -1
  525. package/web/dist/assets/smalltalk-BOQMe2GC.js +0 -1
  526. package/web/dist/assets/smithy-cds9vsN8.js +0 -1
  527. package/web/dist/assets/snazzy-light-Bw305WKR.js +0 -1
  528. package/web/dist/assets/solarized-dark-CpvCGNkr.js +0 -1
  529. package/web/dist/assets/solarized-light-Dlz6yCKv.js +0 -1
  530. package/web/dist/assets/solidity-DijEV5ha.js +0 -1
  531. package/web/dist/assets/soy-8wufbnw4.js +0 -1
  532. package/web/dist/assets/sparql-rVzFXLq3.js +0 -1
  533. package/web/dist/assets/splunk-BtCnVYZw.js +0 -1
  534. package/web/dist/assets/sql-CRqJ_cUM.js +0 -1
  535. package/web/dist/assets/ssh-config-_ykCGR6B.js +0 -1
  536. package/web/dist/assets/stata-DI20mbqo.js +0 -1
  537. package/web/dist/assets/state-Kfon1nTr.js +0 -17
  538. package/web/dist/assets/stateDiagram-v2-TBUQTH76-FGgFDGUU.js +0 -291
  539. package/web/dist/assets/sttLanguages-C7kVulzY.js +0 -1
  540. package/web/dist/assets/stylus-BEDo0Tqx.js +0 -1
  541. package/web/dist/assets/surrealql-Cjom0U5J.js +0 -1
  542. package/web/dist/assets/svelte-Cy7k_4gC.js +0 -1
  543. package/web/dist/assets/swift-C2oV4EkX.js +0 -1
  544. package/web/dist/assets/swimlanes-N4OXWK64-wkd_n4HU.js +0 -1
  545. package/web/dist/assets/swimlanesDiagram-K3J5GTZL-CKnwEuq_.js +0 -8
  546. package/web/dist/assets/synthwave-84-CbfX1IO0.js +0 -1
  547. package/web/dist/assets/system-verilog-0hqHdDBg.js +0 -1
  548. package/web/dist/assets/systemd-4A_iFExJ.js +0 -1
  549. package/web/dist/assets/talonscript-CkByrt1z.js +0 -1
  550. package/web/dist/assets/tasl-QIJgUcNo.js +0 -1
  551. package/web/dist/assets/tcl-dwOrl1Do.js +0 -1
  552. package/web/dist/assets/templ-DhtptRzy.js +0 -1
  553. package/web/dist/assets/terraform-BETggiCN.js +0 -1
  554. package/web/dist/assets/tex-D96PA37w.js +0 -1
  555. package/web/dist/assets/timeline-definition-YOQAKGHF-DyBln1jw.js +0 -120
  556. package/web/dist/assets/tokyo-night-hegEt444.js +0 -1
  557. package/web/dist/assets/toml-vGWfd6FD.js +0 -1
  558. package/web/dist/assets/ts-tags-D351s5mN.js +0 -1
  559. package/web/dist/assets/tsv-B_m7g4N7.js +0 -1
  560. package/web/dist/assets/tsx-COt5Ahok.js +0 -1
  561. package/web/dist/assets/turtle-BsS91CYL.js +0 -1
  562. package/web/dist/assets/twig-27uCiNez.js +0 -1
  563. package/web/dist/assets/typescript-BPQ3VLAy.js +0 -1
  564. package/web/dist/assets/typespec-CAFt9gP4.js +0 -1
  565. package/web/dist/assets/typst-BUadGCkm.js +0 -1
  566. package/web/dist/assets/usecaseDiagram-VIAY4XPW-Cqis3XHX.js +0 -370
  567. package/web/dist/assets/v-BGw2Nkan.js +0 -1
  568. package/web/dist/assets/vala-CsfeWuGM.js +0 -1
  569. package/web/dist/assets/vb-Cu-pLBUe.js +0 -1
  570. package/web/dist/assets/vennDiagram-BLWOH2XV-BaiFLOVS.js +0 -34
  571. package/web/dist/assets/verilog-nZwndyjY.js +0 -1
  572. package/web/dist/assets/vesper-DRje8inN.js +0 -1
  573. package/web/dist/assets/vhdl-CeAyd5Ju.js +0 -1
  574. package/web/dist/assets/viml-CJc9bBzg.js +0 -1
  575. package/web/dist/assets/vitesse-black-Bkuqu6BP.js +0 -1
  576. package/web/dist/assets/vitesse-dark-D0r3Knsf.js +0 -1
  577. package/web/dist/assets/vitesse-light-CVO1_9PV.js +0 -1
  578. package/web/dist/assets/vue-BqiEGhQt.js +0 -1
  579. package/web/dist/assets/vue-html-AaS7Mt5G.js +0 -1
  580. package/web/dist/assets/vue-vine-BoDAl6tE.js +0 -1
  581. package/web/dist/assets/vyper-CDx5xZoG.js +0 -1
  582. package/web/dist/assets/wardleyDiagram-YMQ3BMBF-C4CzpJto.js +0 -78
  583. package/web/dist/assets/wasm-CG6Dc4jp.js +0 -1
  584. package/web/dist/assets/wasm-MzD3tlZU.js +0 -1
  585. package/web/dist/assets/wenyan-BV7otONQ.js +0 -1
  586. package/web/dist/assets/wgsl-Dx-B1_4e.js +0 -1
  587. package/web/dist/assets/wikitext-BhOHFoWU.js +0 -1
  588. package/web/dist/assets/wit-5i3qLPDT.js +0 -1
  589. package/web/dist/assets/wolfram-lXgVvXCa.js +0 -1
  590. package/web/dist/assets/xml-sdJ4AIDG.js +0 -1
  591. package/web/dist/assets/xsl-CtQFsRM5.js +0 -1
  592. package/web/dist/assets/xychartDiagram-TAQBALBS-Dp1hfe3-.js +0 -7
  593. package/web/dist/assets/yaml-Buea-lGh.js +0 -1
  594. package/web/dist/assets/zenscript-DVFEvuxE.js +0 -1
  595. package/web/dist/assets/zig-VOosw3JB.js +0 -1
  596. package/web/dist/figma-demo/product-1.jpg +0 -0
  597. package/web/dist/figma-demo/product-2.jpg +0 -0
  598. package/web/dist/figma-demo/trail-1.jpg +0 -0
  599. package/web/dist/figma-demo/trail-2.jpg +0 -0
  600. package/web/dist/figma-demo/trail-3.jpg +0 -0
@@ -0,0 +1,4 @@
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{B as t,Bn as n,Cr as r,K as i,Kr as a,Nt as o,Q as s,R as c,Sr as l,T as u,Ut as d,Vn as f,Vr as p,Vt as m,Y as h,b as g,br as _,d as v,gr as y,h as b,lr as x,lt as S,n as C,p as w,pr as T,q as E,qt as D,rr as O,sn as k,tt as A,wr as j,xr as M,yr as N,zn as P}from"./icons-CYDRRPKW.js";import{r as F}from"./react-vendor-CB4cLN-6.js";import{t as I}from"./useTranslation-B-mfApCn.js";import{D as L,E as R,_ as z,d as B,h as ee,i as V,r as H,v as U}from"./ttsSettings-BwXYpDnk.js";import{n as W,t as G}from"./state-CSZ50keL.js";import{a as K,s as q}from"./useConfirm-Da8iQ_DZ.js";import"./src-49LUQhkG.js";import{f as J,i as te,t as ne}from"./workspaceSemantics-RaIRer76.js";import{S as re,a as Y,c as ie,d as ae,f as oe,ft as se,h as ce,i as le,l as ue,m as de,o as fe,p as pe,pt as me,s as he,u as ge}from"./MessageBubble-CVGXupVH.js";import{r as _e,t as ve}from"./InputArea-BY8quOiH.js";import{t as ye}from"./api-plEYhRn0.js";import{j as be}from"./settingsStore-Xqln0d91.js";import{I as xe}from"./markdown-N5__3T-w.js";import{n as X}from"./websocket-BnDwh01e.js";import"./common-Bbatsa0-.js";import{D as Se,G as Ce,g as we,t as Te}from"./index-CTbLW314.js";import{t as Ee}from"./profileChange-xrd7jkii.js";var Z=e(a(),1);function De(e){return e.recordId===void 0?e.callId===void 0?e.sourceSeq===void 0?`${e.kind}\u0000index\u0000${e.index}`:`${e.kind}\u0000seq\u0000${e.sourceSeq}`:`${e.kind}\u0000call\u0000${e.callId}`:e.recordId}function Oe(e){return re(e===null?null:e*1e3)}var ke=2048,Ae=512;function je(e){return e.replace(/```[^\n]*\n([\s\S]*?)```/g,`$1`).replace(/`([^`]+)`/g,`$1`).replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]+)\]\([^)]*\)/g,`$1`).replace(/^#{1,6}\s+/gm,``).replace(/^[ \t]*[-*+]\s+/gm,``).replace(/^[ \t]*>\s?/gm,``).replace(/(\*\*|__)(.*?)\1/g,`$2`).replace(/(\*|_)(.*?)\1/g,`$2`).replace(/~~(.*?)~~/g,`$1`)}function Me(e){let t=e.slice(0,ke),n=je(t).replace(/\s+/g,` `).trim(),r=n.slice(0,Ae).trimEnd();return t.length<e.length||r.length<n.length?`${r}…`:r}function Ne(e){if(Number.isFinite(e))return Oe(e)}function Pe(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function Fe(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return``}}function Ie(e){if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function Le(e){if(e.status===`error`)return{result:e.result===void 0?`error`:Ie(e.result)};let t=Ie(e.result);return t===``?{result:`No output`}:{result:``,resultPreviewMarkdown:t}}function Re(e,t){let n=t?.get(e.id)??null,r=e.summary?.durationMs===void 0?null:(n??e.timestamp)+e.summary.durationMs,i=n!==null||r!==null;if(i)return{timingRecorded:i,stepStartTime:e.timestamp,firstTokenTime:n,completedTime:r,usageProvided:!1,outputTokens:null}}function ze(e,t,n){let r=e.thinkingBlocks?e.thinkingBlocks.map(e=>e.text).join(`
2
+ `):e.thinking??``,i=Re(e,n),a=e.summary?.durationMs;return{index:t,kind:`message`,text:``,...e.content===``?{}:{previewMarkdown:e.content},sourceSeq:t,inputDetail:e.content,...r===``?{}:{thinkingDetail:r},...i===void 0?{}:{assistantMetrics:i},timeSeconds:a===void 0?null:a/1e3,startedAt:e.timestamp}}function Be(e,t){let n=Fe(e.args),r=Ie(e.result),i=Le(e);return{index:t,kind:`tool`,text:e.name,...n===``?{}:{previewMarkdown:n},sourceSeq:t,callId:e.id,...n===``?{}:{inputDetail:n},...r===``?{}:{outputDetail:r},...i,isError:e.status===`error`,timeSeconds:e.duration===void 0?null:e.duration/1e3,startedAt:e.timestamp}}function Ve(e,t){return{index:t,kind:`user`,text:``,...e.content===``?{}:{previewMarkdown:e.content},sourceSeq:t,inputDetail:e.content,opensTurn:!0,timeSeconds:0,startedAt:e.timestamp}}function He(e,t){let n=[e.originalCount===void 0?``:`original ${e.originalCount} msgs`,e.compressedCount===void 0?``:`compressed ${e.compressedCount} msgs`,e.tokensSaved===void 0?``:`freed ${e.tokensSaved} tokens`].filter(Boolean).join(`, `);return{index:t,kind:`compacted`,text:`Context compressed`,sourceSeq:e.seq,...n===``?{}:{outputDetail:n},timeSeconds:0,startedAt:e.timestamp}}function Ue(e){let t=[],n=[];for(let t of e)t.absTime!==null&&Number.isFinite(t.absTime)&&(n.push(t.absTime),t.cell.kind===`tool`&&t.cell.timeSeconds!==null&&Number.isFinite(t.cell.timeSeconds)&&n.push(t.absTime+t.cell.timeSeconds*1e3));if(n.length>=2){let e=Ne((Math.max(...n)-Math.min(...n))/1e3);e!==void 0&&t.push(e)}else if(n.length===1){let r=e.find(e=>e.absTime===n[0])?.cell.timeSeconds,i=r==null?void 0:Ne(r);i!==void 0&&t.push(i)}let r=new Map;for(let t of e)t.toolName!==void 0&&t.cell.kind===`tool`&&r.set(t.toolName,(r.get(t.toolName)??0)+1);for(let[e,n]of r)t.push(n>1?`${e}×${n}`:e);return t.length===0?void 0:t.join(` `)}function We(e,t){return{turn:e,groups:t.groups.map(({title:e,laid:t})=>{let n=Ue(t);return{title:e,...n===void 0?{}:{description:n},cells:t.map(e=>e.cell)}})}}function Ge(e){return Math.min(...e.groups.flatMap(e=>e.cells.map(e=>e.index)),1/0)}function Ke(e){let{messages:t,compacted:n=[],ttft:r}=e,i=new Map,a=[],o=0,s=0,c=null,l=e=>{let t=i.get(e);return t===void 0&&(t={groups:[]},i.set(e,t)),t},u=(e,t)=>{let n=l(e).groups,r=n[n.length-1];r?.title===`Message`?r.laid.push(t):n.push({title:`Message`,laid:[t]})},d=(e,t,n)=>{if(n.length===0)return;let r=l(e).groups,i=`Step ${t}`,a=r.find(e=>e.title===i);a===void 0?r.push({title:i,laid:[...n]}):a.laid.push(...n)},f=[...t.map(e=>({kind:`message`,message:e})),...n.map(e=>({kind:`compacted`,record:e}))].sort((e,t)=>(e.kind===`message`?e.message.timestamp:e.record.timestamp)-(t.kind===`message`?t.message.timestamp:t.record.timestamp));for(let e of f){if(e.kind===`compacted`){let t=He(e.record,++o);a.push({groups:[{title:`Compaction ${e.record.seq}`,laid:[{absTime:Pe(e.record.timestamp),cell:t}]}]});continue}let t=e.message;if(R(t)){s+=1;let e=Ve(t,++o);u(s,{absTime:Pe(t.timestamp),cell:e});continue}let n=s>0?s:c??1,i=L(t)?Ve(t,++o):ze(t,++o,r);u(n,{absTime:Pe(t.timestamp),cell:i}),c=n;for(let e of t.toolCalls??[]){let t=Be(e,++o);u(n,{absTime:Pe(e.timestamp),toolName:e.name,callId:e.id,cell:t})}for(let[e,r]of(t.steps??[]).entries()){let t=(r.toolCalls??[]).map(e=>{let t=Be(e,++o);return{absTime:Pe(e.timestamp),toolName:e.name,callId:e.id,cell:t}});d(n,e+1,t)}}return[...[...i.entries()].map(([e,t])=>We(e,t)),...a.map(e=>We(null,e))].sort((e,t)=>Ge(e)-Ge(t))}function qe(e){if(e.text!==``)return e.text;if(e.previewMarkdown!==void 0){let t=Me(e.previewMarkdown);if(t!==``)return t}if(e.result!==void 0&&e.result!==``)return e.result;if(e.resultPreviewMarkdown!==void 0){let t=Me(e.resultPreviewMarkdown);if(t!==``)return t}return e.kind}function Je(e){return re(e)}function Ye(e){return e===`tool`||e===`subtool`?2:+(e===`message`||e===`compacted`)}function Xe(e){return e!=null&&Number.isFinite(e)}function Ze(e){if(!Xe(e.startedAt))return null;let t=Xe(e.timeSeconds)?Math.max(0,e.timeSeconds*1e3):0;return{start:e.startedAt,end:e.startedAt+t}}function Qe(e,t=`sequence`){if(t!==`sequence`)return $e(e,t===`duration`);let n=[],r=[];for(let t of e){let e=t.groups.flatMap(e=>e.cells.filter(e=>e.requestOnly!==!0));e.length!==0&&(t.turn!==null&&r.push({turn:t.turn,time:n.length}),n.push(...e.map((e,t)=>({start:n.length+t,end:n.length+t+1,index:e.index,isError:e.isError===!0,kind:e.kind,label:e.text,lane:Ye(e.kind)}))))}return n.length===0?null:{start:0,end:n.length,spans:n,turnBoundaries:r}}function $e(e,t){let n=e.flatMap(e=>{let t=e.groups.flatMap(e=>e.cells.flatMap(e=>{if(e.requestOnly===!0)return[];let t=Ze(e);return t===null?[]:[{...t,index:e.index,isError:e.isError===!0,kind:e.kind,label:e.text,lane:Ye(e.kind)}]}));return t.length===0?[]:[{turn:e.turn,rawSpans:t}]}),r=n.flatMap(e=>e.rawSpans);if(r.length===0)return null;let i=new Map,a=0,o=null;for(let e of[...r].sort((e,t)=>e.start-t.start||e.end-t.end))t&&o!==null&&e.start>o&&(a+=e.start-o),i.set(e,a),o=o===null?e.end:Math.max(o,e.end);let s=[],c=[];for(let e of n){let t=e.rawSpans.map(e=>{let t=i.get(e)??0;return{...e,start:e.start-t,end:e.end-t}});s.push(...t),e.turn!==null&&c.push({turn:e.turn,time:Math.min(...t.map(e=>e.start))})}return{start:Math.min(...s.map(e=>e.start)),end:Math.max(...s.map(e=>e.end)),spans:s,turnBoundaries:c}}function et(e,t,n=`sequence`){let r=Qe(e,n);return new Set(r?.spans.filter(e=>e.start<=t.end&&e.end>=t.start).map(e=>e.index))}function tt(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function nt(e){if(e.previewMarkdown===void 0)return``;let t=Me(e.previewMarkdown);return e.text===``?t:t===``?e.text:`${e.text} · ${t}`}function rt(e){return e.resultPreviewMarkdown===void 0?e.result??``:Me(e.resultPreviewMarkdown)}function it(e,t,n){let r=[...n.sourceBlocks??[],...n.outputBlocks??[]];return[e===null?`between turns`:`turn ${e}`,t,n.kind,n.kind===`message`?`assistant`:``,n.text,n.previewMarkdown??``,n.inputDetail??``,n.outputDetail??``,n.thinkingDetail??``,n.schemaDetail??``,n.result??``,n.resultPreviewMarkdown??``,n.callId??``,...r.flatMap(e=>[e.type,e.content,e.callId??``,e.toolName??``,e.imageAlt??``])]}var at=class{entries=new Map;layouts;update(e){if(this.layouts===e)return!1;this.layouts=e;let t=new Set;for(let n of e)for(let e of n)for(let n of e.groups)for(let r of n.cells){if(r.requestOnly===!0)continue;let i=De(r),a=it(e.turn,n.title,r),o=this.entries.get(i),s=o!==void 0&&tt(o.sources,a)?o:{sources:a,text:[...a,nt(r),rt(r)].join(`
3
+ `).toLocaleLowerCase()};this.entries.set(i,s),t.add(i)}for(let e of this.entries.keys())t.has(e)||this.entries.delete(e);return!0}search(e){let t=e.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);if(t.length===0)return null;let n=new Set;for(let[e,r]of this.entries)t.every(e=>r.text.includes(e))&&n.add(e);return n}},Q=xe(),ot=(0,Z.memo)(function({actualDuration:e,onActualDurationChange:t,allTurnsCollapsed:n,onToggleAllTurns:r,allAssistantsCollapsed:i,onToggleAllAssistants:a,searchQuery:o,onSearchQueryChange:s}){let{t:c}=I();return(0,Q.jsxs)(`div`,{className:`flex h-9 shrink-0 items-center gap-1 border-b border-dark-border/40 px-2`,role:`toolbar`,children:[(0,Q.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1.5 rounded px-2 py-1 text-xs text-dark-muted hover:bg-dark-surface/60`,"aria-pressed":e,title:c(e?`trajectory.toolbar.equalWidth`:`trajectory.toolbar.actualDuration`),onClick:()=>t(!e),children:[(0,Q.jsx)(g,{size:13}),c(`trajectory.toolbar.duration`)]}),(0,Q.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1.5 rounded px-2 py-1 text-xs text-dark-muted hover:bg-dark-surface/60`,"aria-pressed":n,title:c(n?`trajectory.toolbar.expandTurns`:`trajectory.toolbar.collapseTurns`),onClick:r,children:[n?(0,Q.jsx)(N,{size:13}):(0,Q.jsx)(y,{size:13}),c(`trajectory.toolbar.turns`)]}),(0,Q.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1.5 rounded px-2 py-1 text-xs text-dark-muted hover:bg-dark-surface/60`,"aria-pressed":i,title:c(i?`trajectory.toolbar.expandCalls`:`trajectory.toolbar.collapseCalls`),onClick:a,children:[(0,Q.jsx)(D,{size:13}),c(`trajectory.toolbar.calls`)]}),(0,Q.jsx)(`div`,{className:`ms-auto flex min-w-0 flex-1 items-center justify-end`,children:(0,Q.jsxs)(`div`,{className:`relative flex w-56 items-center`,children:[(0,Q.jsx)(E,{size:12,className:`pointer-events-none absolute start-2 text-dark-muted/50`}),(0,Q.jsx)(`input`,{type:`search`,className:`h-7 w-full rounded border border-dark-border/40 bg-dark-surface/60 ps-7 pe-2 text-xs text-dark-text outline-none placeholder:text-dark-muted/40 focus:border-accent-blue/50`,"aria-label":c(`trajectory.toolbar.search`),placeholder:c(`trajectory.toolbar.searchPlaceholder`),value:o,onChange:e=>s(e.currentTarget.value)})]})})]})}),st=3,ct=500,lt=8,ut=8;function dt(e){let t=e?.stepStartTime,n=e?.firstTokenTime,r=e?.completedTime;return e?.timingRecorded!==!0||typeof t!=`number`||typeof n!=`number`||typeof r!=`number`||!Number.isFinite(t)||!Number.isFinite(n)||!Number.isFinite(r)||n<t||r<n?{}:{ttftMs:n-t,decodingMs:r-n}}function ft(e){let t=e.timeSeconds===null||!Number.isFinite(e.timeSeconds)?void 0:Math.max(0,e.timeSeconds*1e3),n=e.startedAt===null||!Number.isFinite(e.startedAt)?void 0:e.startedAt;return{...t===void 0?{}:{durationMs:t},...n===void 0?{}:{startedAt:n},...dt(e.assistantMetrics)}}function pt(e){switch(e){case`system`:return`SYSTEM`;case`user`:return`USER`;case`context`:return`CONTEXT`;case`compacted`:return`COMPACTED`;case`message`:return`ASSISTANT`;case`tool`:return`TOOL`;case`subtool`:return`SUBTOOL`}}function mt(e){let t=new Date(e),n=e=>String(e).padStart(2,`0`);return`${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}.${(e=>String(e).padStart(3,`0`))(t.getMilliseconds())}`}function ht(e,t){let n=pt(e);if(t===void 0)return n;let r=t.durationMs===void 0?null:`Total ${Je(t.durationMs)}`;return[n,t.startedAt===void 0?null:t.durationMs===void 0?`Started ${mt(t.startedAt)}`:`${mt(t.startedAt)} → ${mt(t.startedAt+t.durationMs)}`,[r,t.ttftMs===void 0||t.decodingMs===void 0?null:`TTFT ${Je(t.ttftMs)} · Decoding ${Je(t.decodingMs)}`].filter(e=>e!==null).join(` · `)].filter(e=>e!==null&&e!==``).join(`
4
+ `)}function gt(e,t){return e<=t?{start:e,end:t}:{start:t,end:e}}function _t(e){return Math.min(1,Math.max(0,e))}var vt=(0,Z.memo)(function({turns:e,mode:t,range:n,selectedIndex:r=null,searchMatchIndexes:i=null,onRangeChange:a,onRecordSelect:o}){let s=(0,Z.useMemo)(()=>Qe(e,t),[t,e]),c=(0,Z.useMemo)(()=>new Map(e.flatMap(e=>e.groups.flatMap(e=>e.cells.map(e=>[e.index,ft(e)])))),[e]),l=(0,Z.useMemo)(()=>new Map(e.flatMap(e=>e.groups.flatMap(e=>e.cells.map(e=>[e.index,qe(e)])))),[e]),u=(0,Z.useRef)(null),d=(0,Z.useRef)(null),[f,p]=(0,Z.useState)(null),[m,h]=(0,Z.useState)(null),g=(0,Z.useRef)(null),_=(0,Z.useRef)(null),[v,y]=(0,Z.useState)(1),b=(0,Z.useRef)(null);(0,Z.useEffect)(()=>{s!==null&&n!==null&&(n.end<s.start||n.start>s.end)&&a(null)},[s,a,n]),(0,Z.useLayoutEffect)(()=>{let e=b.current,t=_.current;b.current=null,e!==null&&t!==null&&(t.scrollLeft=e.fraction*t.scrollWidth-e.contentOffsetPx)},[v]);let x=(0,Z.useRef)(()=>{});if((0,Z.useEffect)(()=>{let e=u.current;if(!e)return;let t=e=>{e.preventDefault(),x.current(e)};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[s]),s===null)return(0,Q.jsxs)(`div`,{className:`traj-root`,"data-empty":``,children:[(0,Q.jsxs)(`div`,{className:`traj-labels`,"aria-hidden":`true`,children:[(0,Q.jsx)(`span`,{children:`Input`}),(0,Q.jsx)(`span`,{children:`Model`}),(0,Q.jsx)(`span`,{children:`Tools`})]}),(0,Q.jsx)(`div`,{className:`traj-track`})]});let S=Math.max(1,s.end-s.start),C=Math.max(1,s.spans.length)*lt*v,w=e=>{let t=u.current;if(!t)return 0;let n=t.getBoundingClientRect();return _t((e-n.left)/Math.max(1,n.width))},T=e=>s.start+e*S,E=e=>{if(e.button===2){a(null);return}let t=e.target.closest(`[data-timeline-record-index]`),n=t===null?null:Number(t.dataset.timelineRecordIndex);n!==null&&Number.isFinite(n)?o?.(n):(d.current={pointerId:e.pointerId,anchorFraction:w(e.clientX),anchorClientX:e.clientX,recordIndex:null},e.currentTarget.setPointerCapture(e.pointerId))},D=e=>{let t=d.current;if(t!==null&&e.pointerId===t.pointerId){let n=w(e.clientX);if(Math.abs(e.clientX-t.anchorClientX)>=st){let e=T(t.anchorFraction),r=T(n);p(gt(e,r))}return}let n=w(e.clientX),r=e.target.closest(`[data-timeline-record-index]`),i=r===null?null:Number(r.dataset.timelineRecordIndex);g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{h({fraction:n,recordIndex:Number.isFinite(i)?i:null})},ct)},O=e=>{let t=d.current;t!==null&&e.pointerId===t.pointerId&&(d.current=null,f!==null&&(a(f),p(null)))},k=e=>{d.current?.pointerId===e.pointerId&&(d.current=null,p(null))};x.current=e=>{if(s===null)return;let t=_.current;if(t===null)return;if(e.ctrlKey||e.metaKey||e.altKey){let n=Math.min(ut,Math.max(1,v*(e.deltaY<0?1.25:.8)));if(n===v)return;let r=u.current;if(r!==null){let n=r.getBoundingClientRect();b.current={fraction:_t((e.clientX-n.left)/Math.max(1,n.width)),contentOffsetPx:e.clientX-t.getBoundingClientRect().left}}y(n);return}let n=e.deltaX===0?e.deltaY:e.deltaX;n!==0&&(t.scrollLeft+=n)};let A=f??n,j=m?.recordIndex;return(0,Q.jsxs)(`div`,{ref:_,className:`traj-root`,children:[(0,Q.jsxs)(`div`,{className:`traj-labels`,"aria-hidden":`true`,children:[(0,Q.jsx)(`span`,{children:`Input`}),(0,Q.jsx)(`span`,{children:`Model`}),(0,Q.jsx)(`span`,{children:`Tools`})]}),(0,Q.jsxs)(`div`,{ref:u,className:`traj-track`,style:{width:`max(100%, ${C}px)`},role:`slider`,"aria-label":`Trajectory timeline`,tabIndex:0,onKeyDown:e=>{e.key===`Escape`&&a(null)},onPointerDown:E,onPointerMove:D,onPointerUp:O,onPointerCancel:k,onPointerLeave:()=>{g.current&&clearTimeout(g.current),g.current=null,d.current===null&&h(null)},onDoubleClick:e=>{e.preventDefault(),a(null)},onContextMenu:e=>{e.preventDefault(),a(null)},children:[m!==null&&m.recordIndex===null&&f===null&&(0,Q.jsx)(`div`,{className:`traj-hoverLine`,"aria-hidden":`true`,style:{"--trajectory-hover-left":`${m.fraction*100}%`}}),A!==null&&(0,Q.jsx)(`div`,{className:`traj-selection`,"data-dragging":f===null?void 0:`true`,"aria-hidden":`true`,style:{"--trajectory-selection-left":`${(A.start-s.start)/S*100}%`,"--trajectory-selection-width":`${(A.end-A.start)/S*100}%`}}),(0,Q.jsx)(`div`,{className:`traj-turnBoundaries`,"aria-hidden":`true`,children:s.turnBoundaries.filter(e=>e.time>s.start).map(e=>(0,Q.jsx)(`span`,{className:`traj-turnBoundary`,"data-turn":e.turn,style:{"--trajectory-turn-left":`${(e.time-s.start)/S*100}%`}},e.turn))}),(0,Q.jsx)(`div`,{className:`traj-lanes`,"data-timeline-domain":``,children:s.spans.map(e=>{let t=(e.start-s.start)/S,n=(e.end-e.start)/S*100,a=c.get(e.index),o=a?.ttftMs,u=a?.decodingMs,d=o===void 0||u===void 0||o+u<=0?null:o/(o+u),f=l.get(e.index)??e.label;return(0,Q.jsx)(`span`,{"aria-hidden":`true`,className:`traj-span`,"data-timeline-span":e.kind,"data-timeline-record-index":e.index,"data-assistant-timing":d===null?void 0:`true`,"data-error":e.isError||void 0,"data-current":e.index===r||void 0,"data-hovered":j===e.index||void 0,"data-search-match":i===null?void 0:i.has(e.index)?`true`:`false`,"data-selected":A===null?void 0:e.start<=A.end&&e.end>=A.start?`true`:`false`,title:ht(e.kind,a),style:{"--trajectory-span-left":`${t*100}%`,"--trajectory-span-width":`${n}%`,"--trajectory-span-lane":e.lane,...d===null?{}:{"--trajectory-assistant-ttft":`${d*100}%`}},children:(0,Q.jsx)(`span`,{className:`traj-spanLabel`,children:f})},e.index)})})]})]})}),yt=F();function bt(e){return typeof e==`object`?e.key:e}function xt(e,t){let n=e.length;return new Proxy(e,{get(e,r,i){if(typeof r==`string`){let i=r.charCodeAt(0);if(i>=48&&i<=57){let i=+r;if(Number.isInteger(i)&&i>=0&&i<n){let n=e[i];if(typeof n!=`object`){let r=t[i*2];n=e[i]={index:i,key:n,start:r,size:t[i*2+1],end:r+t[i*2+1],lane:0}}return n}}if(r===`length`)return n}return Reflect.get(e,r,i)}})}function St(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=e();return(o.length!==r.length||o.some((e,t)=>r[t]!==e))&&(r=o,i=t(...o),n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1),i}return o.updateDeps=e=>{r=e},o}function Ct(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var wt=(e,t)=>Math.abs(e-t)<1.01,Tt=(e,t,n)=>{let r;return Object.assign(function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)},{cancel:()=>{e.clearTimeout(r)}})};function Et({offset:e,isScrolling:t,elementMax:n,holdOffset:r,scrollOffset:i,pendingWrite:a,clampedMaxAtWrite:o}){return t&&a===null&&e===i?`spurious`:a!==null&&Math.abs(e-a.target)<1.5?`readBack`:a!==null&&!a.smooth&&n!==null&&a.target>n+r+.5&&Math.abs(e-(n+r))<1.5||a!==null&&!a.smooth&&a.lowMaxes?.some(t=>Math.abs(e-t)<1.5)?`clampedReadBack`:o!==null&&Math.abs(e-o)<1.5?`clampedEcho`:`external`}var Dt=e=>e===`smooth`||e===`smoothFinishing`;function Ot({kind:e,offset:t,command:n,target:r}){return e!==`spurious`&&e!==`readBack`&&e!==`clampedReadBack`&&n?.index!=null&&n.phase!==`queued`&&!Dt(n.phase)&&!wt(t,n.lastTargetOffset)&&!wt(t,r())&&e!==`clampedEcho`}var kt=40;function At(e){let t=e[e.length-1];if(t===void 0)return!1;let n=e.length-2;for(;n>=0&&t.t-e[n].t<kt;)n--;if(n<0)return!1;let r=e[n],i=n-1;for(;i>=0&&r.t-e[i].t<kt;)i--;if(i<0)return!1;let a=e[i],o=(t.offset-r.offset)/(t.t-r.t),s=(r.offset-a.offset)/(r.t-a.t);return o*s>=0&&Math.abs(o)>=2*Math.abs(s)&&Math.abs(o)-Math.abs(s)>=.8}function jt(e){let t=e[e.length-1];if(t===void 0)return!1;let n=e.length-2;for(;n>=0&&t.t-e[n].t<kt;)n--;if(n<0)return!1;let r=e[n];return Math.abs(t.offset-r.offset)/(t.t-r.t)>=.05}var Mt,Nt=()=>{if(Mt!==void 0)return Mt;if(typeof navigator>`u`)return Mt=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return Mt=!0;let e=navigator.maxTouchPoints;return Mt=navigator.platform===`MacIntel`&&e!==void 0&&e>0},Pt,Ft=()=>Pt===void 0?Pt=Nt()&&typeof CSS<`u`&&typeof CSS.supports==`function`&&CSS.supports(`overflow-anchor: auto`):Pt,It={capture:!0,passive:!0},Lt=class{constructor(e){this.host=e,this._touch=null,this.inMotion=()=>this._touch!==null&&this._touch.phase!==`lateFling`,this.dragging=()=>this._touch?.phase===`down`&&this._touch.moved,this.tail=()=>this._touch?.phase===`tail`?this._touch.moved?`fling`:`tap`:null,this.onScroll=({isScrolling:e,ownReadBack:t,moved:n,external:r})=>(e&&this._touch?.phase===`tail`?this._openTail(this._touch.moved||!t,!1):this._touch?.phase===`lateFling`&&(this.host.now()>this._touch.until?this._touch=null:r&&e&&n&&this._openTail(!0,!1)),!t&&e&&n&&this._touch?.phase===`down`?(this._touch.moved=!0,!0):!1),this.touchStart=()=>{this.end(),this._touch={phase:`down`,moved:!1}},this.touchEnd=()=>{let e=this._touch?.phase===`down`&&this._touch.moved;this.end(),this._openTail(e,e)},this.end=()=>{let e=this.host.getWindow();this._touch?.phase===`tail`&&e!=null&&e.clearTimeout(this._touch.timerId),this._touch=null},this.listen=e=>{let t=()=>this.touchStart(),n=()=>this.touchEnd();return e.addEventListener(`touchstart`,t,It),e.addEventListener(`touchend`,n,It),e.addEventListener(`touchcancel`,n,It),()=>{e.removeEventListener(`touchstart`,t,It),e.removeEventListener(`touchend`,n,It),e.removeEventListener(`touchcancel`,n,It),this.end()}},this._openTail=(e,t)=>{let n=this.host.getWindow();if(!Nt()||n==null)return;this.end();let r={phase:`tail`,moved:e,awaitingFling:t,timerId:n.setTimeout(()=>{this.host.tailStillMoving()?this._openTail(r.moved,r.awaitingFling):(this._touch=r.awaitingFling?{phase:`lateFling`,until:this.host.now()+1e3}:null,this.host.onTailClosed())},150)};this._touch=r}}get touch(){return this._touch}},Rt=e=>{let{clientWidth:t,clientHeight:n}=e;return{width:t,height:n}},zt=e=>{let t=new Set;return{schedule:n=>{let r=e.requestAnimationFrame(()=>{t.delete(r),n()});t.add(r)},cancel:()=>{t.forEach(t=>e.cancelAnimationFrame(t)),t.clear()}}},Bt=e=>e,Vt=e=>{let t=e.overscan*Math.max(e.lanes??1,1),n=Math.max(e.startIndex-t,0),r=Math.min(e.endIndex+t,e.count-1)-n+1,i=Array(r);for(let e=0;e<r;e++)i[e]=n+e;return i},Ht=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(Rt(n)),!r.ResizeObserver)return()=>{};let a=zt(r),o=new r.ResizeObserver(()=>{let t=()=>{i(Rt(n))};e.options.useAnimationFrameWithResizeObserver?a.schedule(t):t()});return o.observe(n,{box:`content-box`}),()=>{o.unobserve(n),a.cancel()}},Ut={passive:!0},Wt=typeof window>`u`||`onscrollend`in window,Gt=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&Wt,o=0,s=a?null:Tt(i,()=>t(n(r),!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,Ut),a&&r.addEventListener(`scrollend`,u,Ut),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u),s?.cancel()}},Kt=(e,t)=>Gt(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),qt=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},Jt=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},Yt=(e,t)=>e===`smooth`?t?`smoothLanded`:`smooth`:`instant`,Xt=e=>e?.phase===`smooth`||e?.phase===`smoothLanded`;function Zt(e,t,n,r){if(t===0)return!1;let i=r(0),a=new Set,o=0;for(;o<e;){let e=n(o);if(e===i)break;a.add(e),o++}let s=e-o;if(s===0||s>=t)return!1;for(let e=0;e<s;e++)if(r(e)!==n(o+e))return!1;for(let e=s;e<t;e++)if(a.has(r(e)))return!1;return!0}var Qt=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this._holdOffset=0,this._reportedOverscroll=!1,this._iosGesture=new Lt({getWindow:()=>this.targetWindow,now:()=>this.now(),tailStillMoving:()=>{let e=this.scrollState;if(e?.phase!==`queued`||this.pendingWrite!==null)return!1;let t=this._readElementOffset();return t===null||this._lastElementOffset===null||Math.abs(t-this._lastElementOffset)<1?!1:(this._lastElementOffset=t,e.samples=[...e.samples??[],{t:this.now(),offset:t}],!0)},onTailClosed:()=>{let e=this.scrollState;e?.phase===`queued`&&jt(e.samples??[])&&(this.scrollState=null),this._flushHoldIfReady(!0),this._writeAwaitingCommand()}}),this._lastElementOffset=null,this.pendingWrite=null,this._clampedAdjustment=null,this.elementsCache=new Map,this._resizeBatch=null,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=null,n=()=>{if(e)return e;let n=this.targetWindow;if(!n||!n.ResizeObserver)return null;let i=t=zt(n);return e=new n.ResizeObserver(e=>{let t=()=>{let t={sync:!1};this._resizeBatch=t;try{e.forEach(r)}finally{this._resizeBatch=null,t.notify&&(this.notify(t.sync),this._noteClampMax(),this._flushHoldIfReady(!0),this._retryClampedAdjustment())}};this.options.useAnimationFrameWithResizeObserver?i.schedule(t):t()})},r=e=>{let t=e.target,n=this.indexFromElement(t);if(t.isConnected)this.isIndexInRange(n)&&this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this));else{this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}}};return{disconnect:()=>{var r;(r=n())==null||r.disconnect(),t?.cancel(),e=null,t=null},observe:e=>n()?.observe(e,{box:`border-box`}),unobserve:e=>n()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:Bt,rangeExtractor:Vt,onChange:()=>{},measureElement:qt,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=this._singleLaneMeasurements?.items??s,l=e=>bt(c[e]),u=e>0?l(0):null,d=e>0?l(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==u||t.getItemKey(o-1)!==d)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>0&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==d)&&(o>e||Zt(e,o,l,t.getItemKey))&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=null;if(r&&this.scrollOffset!==null&&!this._awaitingCommandReadBack()){let[e,t]=r,n=this.getMeasurements(),{count:a,getItemKey:s}=this.options,c=0;for(;c<a&&s(c)!==e;)c++;if(c<a){let e=n[c];if(e){let n=Math.max(0,e.start+t);!i&&n!==this.scrollOffset&&(o=n-this.scrollOffset,this.scrollOffset=n)}}}i?this.pendingScrollAnchor={kind:`follow`,behavior:i}:o!==null&&(this._canWriteScroll()?this.pendingScrollAnchor={kind:`anchor`,delta:o}:(this._holdOffset+=o,this._followOffsetTarget(o)))},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=St(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{var e;this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,(e=this._momentumStop)==null||e.restore(),this._momentumStop=null,this.isScrolling=!1,this.scrollDirection=null,this._holdOffset=0,this._reportedOverscroll=!1,this._clampedAdjustment=null,this.pendingWrite=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}this.scrollElement=e,this.targetWindow=this.scrollElement&&`ownerDocument`in this.scrollElement?this.scrollElement.ownerDocument.defaultView:this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{let n=t?this._elementMaxScrollOffset():null,r=this._reportedOverscroll;this._reportedOverscroll=e<0||n!==null&&e>n+1;let i=e;this._lastElementOffset=i,e=this._toLayoutOffset(e);let a=this._classifyScrollEvent(e,t,n);if(a===`spurious`)return;a===`readBack`?e=this.pendingWrite.target:a===`clampedReadBack`&&this.scrollState?.index!=null&&e<this.getMaxScrollOffset()-1.5?this.scrollState.lastTargetOffset=e:Ot({kind:a,offset:e,command:this.scrollState,target:()=>this.getScrollStateTarget(this.scrollState)})&&(this.scrollState=null),this.pendingWrite=null,this._clampedAdjustment!==null&&Math.abs(e-this._clampedAdjustment.maxAtWrite)>=1.5&&(this._clampedAdjustment=null);let o=this.getScrollOffset(),s=this.scrollDirection;this.scrollDirection=t?o===e?this.scrollDirection:o<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t;let c=this.scrollState;if(c?.phase===`queued`&&a===`external`&&t){if(r||this._reportedOverscroll)c.samples=[];else{let e=this.now();c.samples=[...(c.samples??[]).filter(t=>e-t.t<=200),{t:e,offset:i}],(s!==null&&this.scrollDirection!==s||At(c.samples))&&(this.scrollState=null)}}this._iosGesture.onScroll({isScrolling:t,ownReadBack:a===`readBack`,moved:e!==o,external:a===`external`&&this.scrollState?.phase!==`smooth`&&this.scrollState?.phase!==`smoothFinishing`})&&this.scrollState?.phase===`queued`&&(this.scrollState=null),this._flushHoldIfReady(!0),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement&&this.unsubs.push(this._iosGesture.listen(this.scrollElement)),this._scrollToOffset(this.getScrollOffset())}this._noteClampMax();let t=this.pendingScrollAnchor;this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled&&(t.kind===`anchor`?this._canWriteScroll()?Xt(this.scrollState)&&!wt(this.getScrollOffset()-t.delta,this.scrollState.lastTargetOffset)||(this._followOffsetTarget(t.delta),this._scrollToOffset(this.getScrollOffset())):(this._holdOffset+=t.delta,this._followOffsetTarget(t.delta),this.notify(!1)):this.scrollToEnd({behavior:t.behavior})),this._flushHoldIfReady(!1),this._retryClampedAdjustment()},this._classifyScrollEvent=(e,t,n)=>Et({offset:e,isScrolling:t,elementMax:n,holdOffset:this._holdOffset,scrollOffset:this.scrollOffset,pendingWrite:this.pendingWrite,clampedMaxAtWrite:this._clampedAdjustment?.maxAtWrite??null}),this._retryClampedAdjustment=()=>{if(this._clampedAdjustment===null||!this.scrollElement||!this.options.enabled)return;let{target:e,maxAtWrite:t}=this._clampedAdjustment,n=this.getMaxScrollOffset();n>t+.5&&(this._clampedAdjustment=e>n+.5?{target:e,maxAtWrite:n}:null,this._scrollToOffset(e))},this._writeAwaitingCommand=()=>{let e=this.scrollState;if(e===null||e.phase!==`queued`)return;let{behavior:t}=e;this.getMeasurements();let n=this.getScrollStateTarget(e);e.lastTargetOffset=n,this._clampedAdjustment=null,e.phase=Yt(t,e.index!=null&&wt(n,this.getScrollOffset())),this._scrollToOffset(n,{behavior:t}),this.scheduleScrollReconcile()},this._readElementOffset=()=>{let e=this.scrollElement;if(e==null)return null;let{horizontal:t,isRtl:n}=this.options;return typeof e.scrollTop==`number`?t?e.scrollLeft*(n&&-1||1):e.scrollTop:typeof e.scrollY==`number`?t?e.scrollX:e.scrollY:null},this._canWriteScroll=()=>!(Nt()&&this._iosGesture.inMotion())&&!this._reportedOverscroll,this._flushHoldIfReady=e=>{if(this._holdOffset===0||!this.scrollElement||!this.options.enabled||!this._canWriteScroll()||this.scrollState?.phase===`smooth`)return;this._holdOffset=0,this.scrollOffset!==null&&this.scrollOffset<0&&(this.scrollOffset=0),this.notify(e);let t=this.getCommandWrittenOffset()??this.getScrollOffset();this._clampedAdjustment=this._clampedBy(t),this._scrollToOffset(t)},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=St(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(e,t,n,r,i,a,o,s)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s}),{key:!1}),this.isIndexInRange=e=>e>=0&&e<this.options.count,this.getMeasurements=St(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s},c)=>{let l=this.itemSizeCache;if(!i)return this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=e*2,a=this._singleLaneMeasurements?.flat;if(!a||a.length<i){let e=new Float64Array(i);a&&u>0&&e.set(a.subarray(0,u*2)),a=e}let o=u===0?Array(e):this._singleLaneMeasurements.items.slice(),c;if(u===0)c=t+n;else{let e=u-1;c=a[e*2]+a[e*2+1]+s}for(let t=u;t<e;t++){let e=r(t);o[t]=e;let n=l.get(e),i=typeof n==`number`?n:this.options.estimateSize(t);a[t*2]=c,a[t*2+1]=i,c+=i+s}this._singleLaneMeasurements={flat:a,items:o};let d=xt(o,a);return this.measurementsCache=d,d}let d=this.measurementsCache.slice(0,u),f=Array(a).fill(void 0),p=new Float64Array(a),m=0;for(let e=0;e<u;e++){let t=d[e];t&&(f[t.lane]===void 0&&m++,f[t.lane]=e,p[t.lane]=t.end)}for(let i=u;i<e;i++){let e=r(i),c=this.laneAssignments.get(i),u,h,g=o===`estimate`||l.has(e);if(c!==void 0&&this.options.lanes>1){u=c;let e=f[u],r=e===void 0?void 0:d[e];h=r?r.end+s:t+n}else if(m===a){let e=0,t=p[0],n=f[0];for(let r=1;r<a;r++){let i=p[r];(i<t||i===t&&f[r]<n)&&(e=r,t=i,n=f[r])}u=e,h=t+s,g&&this.laneAssignments.set(i,u)}else u=i%this.options.lanes,h=t+n,g&&this.laneAssignments.set(i,u);let _=l.get(e),v=typeof _==`number`?_:this.options.estimateSize(i),y=h+v;d[i]={index:i,start:h,size:v,end:y,key:e,lane:u},f[u]===void 0&&m++,f[u]=i,p[u]=y}return this.measurementsCache=d,d},{key:!1,debug:()=>this.options.debug}),this.calculateRange=St(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>e.length===0||t===0?(this.range=null,null):(this.range=tn(e,t,n,r,r===1&&this._singleLaneMeasurements!==null?this._singleLaneMeasurements.flat:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=St(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t,this.options.lanes]},(e,t,n,r,i,a)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n,lanes:a}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!Xt(this.scrollState))return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e);if(!this.isIndexInRange(t))return;let n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),e.isConnected&&(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{var n;if(!this.isIndexInRange(e))return;this._resizeBatch?.sync&&this.getMeasurements();let r,i,a,o=this._singleLaneMeasurements?.flat;if(this.options.lanes===1&&o!=null)a=this.options.getItemKey(e),i=o[e*2],r=o[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;a=t.key,i=t.start,r=t.size}let s=this.itemSizeCache.get(a)??r,c=t-s;if(c!==0){let o=this.options.anchorTo===`end`&&!Xt(this.scrollState)&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,l=o?this._getLayoutTotalSize():0,u=this.getScrollOffset(),d=this.itemSizeCache.has(a)?i+s<=u&&this.scrollDirection!==`backward`:i<u,f=!Xt(this.scrollState)&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?d:this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:a,start:i,size:r,end:i+r,lane:0},c,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(a,t),this.itemSizeCacheVersion++;let p=!1;if(this._awaitingCommandReadBack()||(o?p=this.applyScrollAdjustment(this._getLayoutTotalSize()-l):f&&(p=this.applyScrollAdjustment(c))),this._resizeBatch){this._resizeBatch.notify=!0,(n=this._resizeBatch).sync||(n.sync=p);return}this.notify(p),this._noteClampMax(),this._flushHoldIfReady(!0),this._retryClampedAdjustment()}},this.getVirtualItems=St(()=>[this.getVirtualIndexes(),this.getMeasurements(),this._holdOffset],(e,t,n)=>{let r=[];for(let i=0,a=e.length;i<a;i++){let a=t[e[i]];r.push(n===0?a:{...a,start:a.start-n,end:a.end-n})}return r},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._singleLaneMeasurements?.flat,r=this.options.lanes===1&&n!=null;return Ct(t[$t(0,t.length-1,r?e=>n[e*2]:e=>Ct(t[e]).start,e)])},this._noteClampMax=()=>{if(!this._awaitingCommandReadBack())return;let e=this._elementMaxScrollOffset();if(e===null)return;let t=this.pendingWrite,n=Math.max(e,0)+this._holdOffset;if(n>=t.target)return;let r=t.lowMaxes??=[];r[r.length-1]!==n&&r.push(n)},this.getMaxScrollOffset=()=>(this._elementMaxScrollOffset()??0)+this._holdOffset,this._toLayoutOffset=e=>{let t=e+this._holdOffset;return this.pendingScrollAnchor?.kind===`anchor`&&(t+=this.pendingScrollAnchor.delta),t},this._elementMaxScrollOffset=()=>{let e=this.scrollElement;if(e===null)return null;if(`scrollHeight`in e)return this.options.horizontal?e.scrollWidth-e.clientWidth:e.scrollHeight-e.clientHeight;if(`document`in e){let t=e.document.documentElement;return this.options.horizontal?t.scrollWidth-e.innerWidth:t.scrollHeight-e.innerHeight}return null},this._momentumStop=null,this._stopMomentum=e=>{let t=this.scrollElement,n=this.targetWindow;if(t===null||n===null)return;let r=`document`in t?t.document.scrollingElement:t;if(!r?.style)return;if(this._momentumStop){this._momentumStop.done=e;return}let{style:i}=r,a=this.options.horizontal?`overflow-x`:`overflow-y`,o=i.getPropertyValue(a),s=i.getPropertyPriority(a);i.setProperty(a,`hidden`,`important`);let c={restore:()=>i.getPropertyValue(a)!==`hidden`||i.getPropertyPriority(a)!==`important`?!1:(i.setProperty(a,o,s),!0),done:e};this._momentumStop=c,n.requestAnimationFrame(()=>n.requestAnimationFrame(()=>{this._momentumStop===c&&(this._momentumStop=null,c.restore()&&c.done())}))},this._clampedBy=e=>{let t=this._elementMaxScrollOffset();if(t===null)return null;let n=t+this._holdOffset;return e>n+.5?{target:e,maxAtWrite:n}:null},this.getVirtualDistanceFromEnd=()=>Math.max(this._getLayoutTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`){if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t]}if(t===`end`&&e===this.options.count-1){let e=this.getMaxScrollOffset(),n=e-this.options.paddingEnd+this.options.scrollPaddingEnd;return[Math.max(Math.min(n,e),0),t]}let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{this._startScroll({index:null,align:t},this.getOffsetForAlignment(e,t),n,`absolute`)},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r;this._startScroll({index:e,align:a},i,n,`absolute`)},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getOffsetForAlignment((this.getCommandWrittenOffset()??this.getScrollOffset())+e,`start`);this._startScroll({index:null,align:`start`},n,t,`relative`)},this.scrollToEnd=({behavior:e=`auto`}={})=>{this.options.count>0?this._startScroll({index:this.options.count-1,align:`end`,toEnd:!0},Math.max(this.getMaxScrollOffset(),0),e,`absolute`):this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.cancelScroll=()=>{this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null},this.getTotalSize=()=>Math.max(this._getLayoutTotalSize()-this._holdOffset,0),this._getLayoutTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._singleLaneMeasurements?.flat;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n}={})=>{let r={target:e+(t??0),smooth:n===`smooth`};return this.pendingWrite=r,this.options.scrollToFn(e-this._holdOffset,{behavior:n,adjustments:t},this),r},this.getCommandWrittenOffset=()=>this.scrollState!==null&&this.pendingWrite!==null&&!this.pendingWrite.smooth?this.pendingWrite.target:null,this._awaitingCommandReadBack=()=>{let e=this.getCommandWrittenOffset();return!(Nt()&&this._iosGesture.dragging())&&e!==null&&!wt(e,this.getScrollOffset())},this._followOffsetTarget=e=>{this.scrollState!==null&&this.scrollState.index==null&&(this.scrollState.lastTargetOffset+=e)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}get scrollAdjustments(){return 0}applyScrollAdjustment(e,t){if(e===0)return!1;if(this._followOffsetTarget(e),this._canWriteScroll()){let n=this.getScrollOffset();this._clampedAdjustment=this._clampedBy(n+e);let r=this._scrollToOffset(n,{adjustments:e,behavior:t});return this.scrollOffset!==null&&(this.pendingWrite===r&&(this.scrollOffset+=e),this.scrollOffset<0&&(this.scrollOffset=0)),!0}return this._holdOffset+=e,this.scrollOffset!==null&&(this.scrollOffset+=e),!0}scheduleScrollReconcile(){this.targetWindow?this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}):this.scrollState=null}getScrollStateTarget(e){let t=e.toEnd?[Math.max(this.getMaxScrollOffset(),0)]:e.index==null?void 0:this.getOffsetForIndex(e.index,e.align);return t?t[0]:e.lastTargetOffset}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}if(this.scrollState.phase===`queued`){this.scheduleScrollReconcile();return}this.getMeasurements();let e=this.getScrollStateTarget(this.scrollState),t=this.scrollState.index==null?1:this.options.useAnimationFrameWithResizeObserver?3:2,n=e!==this.scrollState.lastTargetOffset;if(!n&&wt(e,this.getScrollOffset())){if(this.scrollState.phase===`smooth`?this.scrollState.phase=`smoothLanded`:this.scrollState.phase===`smoothFinishing`&&(this.scrollState.phase=`instant`),this.scrollState.stableFrames++,this.scrollState.stableFrames>=t){this.getScrollOffset()!==e&&this._scrollToOffset(e,{behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let t=this.getSize()||600,n=Math.abs(e-this.getScrollOffset()),r=Xt(this.scrollState)&&n>t;this.scrollState.lastTargetOffset=e,r?this.scrollState.phase=`smooth`:this.scrollState.phase===`smooth`?this.scrollState.phase=`smoothFinishing`:this.scrollState.phase===`smoothLanded`&&(this.scrollState.phase=`instant`),this._scrollToOffset(e,{behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}_startScroll(e,t,n,r){let i=this._iosGesture.tail();if(r===`absolute`&&i!==null){if(i===`fling`&&Ft()){this._stopMomentum(()=>{this.scrollState?.phase!==`queued`||this._iosGesture.tail()!==`fling`||this._reportedOverscroll||(this._iosGesture.end(),this._flushHoldIfReady(!0),this._writeAwaitingCommand())}),this.scrollState={...e,startedAt:this.now(),lastTargetOffset:t,stableFrames:0,phase:`queued`,behavior:n,samples:[]},this.scheduleScrollReconcile();return}this._iosGesture.end()}this.scrollState={...e,startedAt:this.now(),lastTargetOffset:t,stableFrames:0,behavior:n,phase:Yt(n,e.index!=null&&wt(t,this.getScrollOffset()))},this._scrollToOffset(t,{behavior:n}),this.scheduleScrollReconcile()}},$t=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function en(e,t,n){let r=0;for(;r<=t;){let i=(r+t)/2|0,a=e[i*2];if(a<n)r=i+1;else if(a>n)t=i-1;else return i}return r>0?r-1:0}function tn(e,t,n,r,i){let a=e.length-1;if(e.length<=r)return{startIndex:0,endIndex:a};if(r===1&&i!==null){let e=en(i,a,n),r=e,o=n+t;for(;r<a&&i[r*2]+i[r*2+1]<o;)r++;return{startIndex:e,endIndex:r}}let o=$t(0,a,t=>e[t].start,n),s=o;if(r===1)for(;s<a&&e[s].end<n+t;)s++;else if(r>1){let i=Array(r).fill(0);for(;s<a&&i.some(e=>e<n+t);){let t=e[s];i[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(a,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}var nn=typeof document<`u`?Z.useLayoutEffect:Z.useEffect;function rn({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:n=`transform`,...r}){let i=Z.useReducer(e=>e+1,0)[1],a=Z.useRef({enabled:t,mode:n,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});a.current.enabled=t,a.current.mode=n;let o=Z.useRef(!1),s=e=>{let t=a.current;if(!t.enabled||!t.container)return;let n=e.getTotalSize();if(n!==t.lastSize){t.lastSize=n;let r=e.options.horizontal?`width`:`height`;t.container.style[r]=`${n}px`}},c=(e,t,n)=>{let r=a.current,i=!!e.options.horizontal,o=t.start-e.options.scrollMargin;r.lastPositions.get(n)!==o&&(r.lastPositions.set(n,o),r.mode===`transform`?n.style.transform=i?`translate3d(${o}px, 0, 0)`:`translate3d(0, ${o}px, 0)`:n.style[i?`left`:`top`]=`${o}px`)},l=e=>{let t=a.current;if(t.enabled&&t.container){s(e);for(let t of e.getVirtualItems()){let n=e.elementsCache.get(t.key);n&&c(e,t,n)}}},u={...r,onChange:(t,n)=>{var s;let c=a.current,u=!0;if(c.enabled){l(t);let e=t.range,n=c.prevRange;u=!n||n.isScrolling!==t.isScrolling||n.startIndex!==e?.startIndex||n.endIndex!==e?.endIndex,u&&(c.prevRange=e?{startIndex:e.startIndex,endIndex:e.endIndex,isScrolling:t.isScrolling}:null)}u&&(e&&n&&!o.current?(0,yt.flushSync)(i):i()),(s=r.onChange)==null||s.call(r,t,n)}},[d]=Z.useState(()=>{let e=new Qt(u),t=e.measureElement;return e.measureElement=n=>{o.current=!0;try{t(n)}finally{o.current=!1}let r=a.current;if(n!==null&&r.enabled&&r.container){let t=e.measurementsCache[e.indexFromElement(n)];t&&c(e,t,n)}},Object.assign(e,{containerRef:t=>{let n=a.current;n.container=t,n.lastSize=null,t!==null&&l(e)}})});return d.setOptions(u),nn(()=>d._didMount(),[]),nn(()=>(s(d),d._willUpdate())),nn(()=>{l(d)}),d}function an(e){return rn({observeElementRect:Ht,observeElementOffset:Kt,scrollToFn:Jt,...e})}var on=30,sn=20,cn=26,ln=22,un=9;function dn(e){let t=encodeURIComponent(De(e.cell));return e.collapsedSummaryKind===void 0?t:`${t}\u0000summary\u0000${e.collapsedSummaryKind}`}function fn(e){if(e.collapsedSummaryKind!==void 0)return sn;let t=on;return e.turnStart===!0&&e.turn!==null&&e.turn!==void 0&&(t+=cn),e.groupStart===!0&&(t+=ln),t}function pn(e){let t=[],n=[];for(let[r,i]of e.entries()){let e={logicalIndex:r,record:i};if(i.cell.requestOnly===!0){n.push(e);continue}let a=[...n,e];n=[],t.push({entries:a,height:a.reduce((e,t)=>e+fn(t.record),0),key:dn(i)})}return n.length>0&&t.push({entries:n,height:un,key:n.map(e=>dn(e.record)).join(`|`)}),t}var mn=[`Input`,`Output`,`Think`,`Time`],hn=(0,Z.memo)(function({turn:e}){return(0,Q.jsxs)(`div`,{className:`sticky top-0 z-10 flex h-[26px] items-center border-b border-dark-border/40 bg-dark-surface/95 px-2 backdrop-blur`,children:[(0,Q.jsxs)(`span`,{className:`text-meta font-semibold text-dark-text`,children:[`Turn `,e]}),(0,Q.jsx)(`div`,{className:`ms-auto flex items-center gap-3 pe-1 text-badge text-dark-muted/50`,"aria-hidden":`true`,children:mn.map(e=>(0,Q.jsx)(`span`,{className:`w-12 text-end`,children:e},e))})]})}),gn=(0,Z.memo)(function({title:e,description:t}){return(0,Q.jsxs)(`div`,{className:`flex h-[22px] items-center gap-2 px-2 text-meta`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-dark-muted`,children:e}),t!==void 0&&t!==``&&(0,Q.jsx)(`span`,{className:`truncate text-dark-muted/50`,children:t})]})}),_n={system:`System`,user:`User`,context:`Context`,compacted:`Compacted`,message:`Message`,tool:`Tool`,subtool:`Sub`},vn={system:`bg-dark-surface text-dark-muted border-dark-border/40`,user:`bg-accent-blue/10 text-accent-blue border-accent-blue/30`,context:`bg-dark-surface text-dark-muted border-dark-border/40`,compacted:`bg-accent-yellow/15 text-accent-yellow border-accent-yellow`,message:`bg-accent-green/10 text-accent-green border-accent-green/30`,tool:`bg-accent-purple/10 text-accent-purple border-accent-purple/30`,subtool:`bg-dark-surface text-dark-muted border-dark-border/40`},yn=(0,Z.memo)(function({cell:e,selected:t=!1,onClick:n}){let{index:r,kind:i,timeSeconds:a,input:o,output:s,think:c}=e,l=qe(e),u=i===`message`;return(0,Q.jsxs)(`div`,{className:[`flex h-[30px] items-center gap-2 border-b border-dark-border/20 px-2 text-xs cursor-pointer select-none`,t?`bg-accent-blue/10`:`hover:bg-dark-surface/40`].join(` `),"data-kind":i,"data-selected":t||void 0,onClick:()=>n?.(r),children:[(0,Q.jsxs)(`span`,{className:`w-10 shrink-0 text-end tabular-nums text-dark-muted/50`,children:[`#`,r]}),(0,Q.jsx)(`span`,{className:`w-[74px] shrink-0`,children:(0,Q.jsx)(`span`,{className:[`inline-block rounded border px-1 py-px text-badge leading-none`,vn[i]].join(` `),children:_n[i]})}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-dark-text`,title:l,children:l}),(0,Q.jsxs)(`span`,{className:`flex shrink-0 items-center gap-2 tabular-nums text-dark-muted/60`,children:[u&&(0,Q.jsxs)(Q.Fragment,{children:[o!==void 0&&(0,Q.jsx)(`span`,{title:`Input tokens`,children:o}),s!==void 0&&(0,Q.jsx)(`span`,{title:`Output tokens`,children:s}),c!==void 0&&(0,Q.jsx)(`span`,{title:`Reasoning tokens`,children:c})]}),(0,Q.jsx)(`span`,{className:`w-16 text-end`,children:Oe(a)})]})]})}),bn=100,xn=12,Sn=600,Cn=2;function wn(e){let t=(0,Z.useRef)({rows:[],structure:[]});if(t.current.rows===e)return t.current.structure;let n=t.current.structure.length===e.length&&e.every((e,n)=>{let r=t.current.structure[n];return r?.key===e.key&&r.height===e.height})?t.current.structure:e.map(e=>({key:e.key,height:e.height}));return t.current={rows:e,structure:n},n}function Tn(e){let t=[];for(let n of e){let e=[];for(let t of n.groups)t.cells.forEach((r,i)=>{e.push({turn:n.turn,group:t.title,groupDescription:t.description,groupStart:i===0,turnStart:e.length===0,cell:r,turnEnd:!1})});if(e.length>0){let t=e[e.length-1];t&&(t.turnEnd=!0)}t.push(...e)}return t}function En(e,t){let n=[],r=[],i=null,a=()=>{if(r.length!==0){if(i!==null&&t.has(i)){let e=r.filter(e=>e.cell.requestOnly!==!0&&e.cell.kind!==`system`),t=r[0];n.push({...t,groupStart:!0,turnStart:!0,turnEnd:!0,collapsedSummary:`Turn ${i} · ${e.length} records`,collapsedSummaryKind:`turn`,cell:{...t.cell,index:t.cell.index}})}else n.push(...r);r=[],i=null}};for(let t of e)t.turnStart&&a(),i=t.turn,r.push(t);return a(),n}function Dn(e,t){let n=[],r=0;for(;r<e.length;){let i=e[r],a=e[r+1];if(i.cell.kind===`message`&&a!==void 0&&(a.cell.kind===`tool`||a.cell.kind===`subtool`)&&t.has(De(i.cell))){let t=r+1;for(;t<e.length&&(e[t].cell.kind===`tool`||e[t].cell.kind===`subtool`);)t+=1;let a=t-r-1;n.push({...i,groupStart:!0,turnEnd:e[t-1]?.turnEnd??i.turnEnd,collapsedSummary:`${qe(i.cell)||`Message`} · ${a} tool call${a>1?`s`:``}`,collapsedSummaryKind:`assistant`}),r=t}else n.push(i),r+=1}return n}function On(e,t){let n=[],r=null,i=null;for(let a of e){if(a.turnStart&&(r=a),a.groupStart&&(i=a),!t.has(a.cell.index))continue;let e=a;r!==null&&n.length===0&&(r===a?e={...e,groupStart:!0,turnStart:!0}:n.push({...r,groupStart:!0,turnStart:!0}),r=null),i!==null&&n.length>0&&n[n.length-1].group!==a.group&&(i===a?e={...e,groupStart:!0}:n.push({...i,groupStart:!0,turnStart:!1}),i=null),n.push(e)}return n}function kn(e){if(e===null||!Number.isFinite(e))return`Not available`;let t=new Date(e),n=e=>String(e).padStart(2,`0`),r=`${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}.${(e=>String(e).padStart(3,`0`))(t.getMilliseconds())}`;return`${`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}`} ${r}`}function An(e){let t=[{id:`overview`,label:`Summary`}];return e.inputDetail!==void 0&&e.inputDetail!==``&&t.push({id:`input`,label:`Input`}),e.outputDetail!==void 0&&e.outputDetail!==``&&t.push({id:`output`,label:`Output`}),e.thinkingDetail!==void 0&&e.thinkingDetail!==``&&t.push({id:`thinking`,label:`Thinking`}),e.assistantMetrics!==void 0&&t.push({id:`timing`,label:`Timing`}),(e.input!==void 0||e.output!==void 0||e.think!==void 0)&&t.push({id:`usage`,label:`Usage`}),t}function jn({cell:e,onClose:t}){let n=An(e),[r,i]=(0,Z.useState)(n[0]?.id??`overview`),a=qe(e);return(0,Q.jsxs)(`div`,{className:`flex h-full w-[360px] shrink-0 flex-col border-s border-dark-border/40 bg-dark-surface/40`,children:[(0,Q.jsxs)(`div`,{className:`flex h-9 shrink-0 items-center justify-between border-b border-dark-border/40 px-3`,children:[(0,Q.jsxs)(`span`,{className:`text-xs font-medium text-dark-text`,children:[`Record #`,e.index]}),(0,Q.jsx)(`button`,{type:`button`,className:`rounded p-1 text-dark-muted hover:bg-dark-surface/60`,onClick:t,"aria-label":`Close details`,children:(0,Q.jsx)(C,{size:14})})]}),(0,Q.jsx)(`div`,{className:`flex shrink-0 flex-wrap gap-1 border-b border-dark-border/40 px-2 py-1.5`,children:n.map(e=>(0,Q.jsx)(`button`,{type:`button`,className:`traj-detailTab`,"data-active":r===e.id||void 0,onClick:()=>i(e.id),children:e.label},e.id))}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto p-3`,children:(()=>{switch(r){case`overview`:return(0,Q.jsxs)(`dl`,{className:`space-y-1.5`,children:[(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey w-20 shrink-0`,children:`Kind`}),(0,Q.jsx)(`dd`,{className:`traj-detailValue`,children:e.kind})]}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey w-20 shrink-0`,children:`Index`}),(0,Q.jsxs)(`dd`,{className:`traj-detailValue`,children:[`#`,e.index]})]}),e.callId!==void 0&&(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey w-20 shrink-0`,children:`Call ID`}),(0,Q.jsx)(`dd`,{className:`traj-detailValue break-all`,children:e.callId})]}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey w-20 shrink-0`,children:`Duration`}),(0,Q.jsx)(`dd`,{className:`traj-detailValue`,children:Oe(e.timeSeconds)})]}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey w-20 shrink-0`,children:`Started`}),(0,Q.jsx)(`dd`,{className:`traj-detailValue`,children:kn(e.startedAt??null)})]}),e.isError===!0&&(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey w-20 shrink-0`,children:`Status`}),(0,Q.jsx)(`dd`,{className:`traj-detailValue text-accent-red`,children:`error`})]}),a!==``&&(0,Q.jsxs)(`div`,{className:`pt-1`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey mb-1`,children:`Summary`}),(0,Q.jsx)(`dd`,{className:`traj-detailBody`,children:a})]})]});case`input`:return(0,Q.jsx)(`div`,{className:`traj-detailBody`,children:e.inputDetail});case`output`:return(0,Q.jsx)(`div`,{className:`traj-detailBody`,children:e.outputDetail});case`thinking`:return(0,Q.jsx)(`div`,{className:`traj-detailBody`,children:e.thinkingDetail});case`timing`:{let t=e.assistantMetrics;if(!t)return null;let n=t.firstTokenTime!==null&&t.stepStartTime!==null?t.firstTokenTime-t.stepStartTime:null,r=t.completedTime!==null&&t.firstTokenTime!==null?t.completedTime-t.firstTokenTime:null;return(0,Q.jsxs)(`dl`,{className:`space-y-1.5`,children:[(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey w-24 shrink-0`,children:`Step start`}),(0,Q.jsx)(`dd`,{className:`traj-detailValue`,children:kn(t.stepStartTime)})]}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey w-24 shrink-0`,children:`First token`}),(0,Q.jsx)(`dd`,{className:`traj-detailValue`,children:kn(t.firstTokenTime)})]}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey w-24 shrink-0`,children:`TTFT`}),(0,Q.jsx)(`dd`,{className:`traj-detailValue`,children:n===null?`—`:`${n} ms`})]}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey w-24 shrink-0`,children:`Decoding`}),(0,Q.jsx)(`dd`,{className:`traj-detailValue`,children:r===null?`—`:`${r} ms`})]})]})}case`usage`:return(0,Q.jsxs)(`dl`,{className:`space-y-1.5`,children:[e.input!==void 0&&(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey w-24 shrink-0`,children:`Input`}),(0,Q.jsx)(`dd`,{className:`traj-detailValue`,children:e.input})]}),e.output!==void 0&&(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey w-24 shrink-0`,children:`Output`}),(0,Q.jsx)(`dd`,{className:`traj-detailValue`,children:e.output})]}),e.think!==void 0&&(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`dt`,{className:`traj-detailKey w-24 shrink-0`,children:`Reasoning`}),(0,Q.jsx)(`dd`,{className:`traj-detailValue`,children:e.think})]}),e.input===void 0&&e.output===void 0&&e.think===void 0&&(0,Q.jsx)(`div`,{className:`traj-detailValue`,children:`Token usage not reported by provider yet.`})]});default:return null}})()})]})}function Mn({turns:e,searchMatchIndexes:t=null,selectedIndex:n,onSelectIndex:r,onDeselect:i,onClearSelection:a,collapsedTurns:o,onToggleTurn:s,collapsedAssistants:c,onToggleAssistant:l}){let u=(0,Z.useRef)(null),d=(0,Z.useMemo)(()=>Tn(e),[e]),f=(0,Z.useMemo)(()=>n===null?void 0:d.find(e=>e.cell.index===n),[d,n]),p=(0,Z.useMemo)(()=>{if(t!==null)return On(d,t);let e=o.size===0?d:En(d,o);return c.size===0?e:Dn(e,c)},[d,c,o,t]),m=(0,Z.useMemo)(()=>pn(p),[p]),h=wn(m),g=p.length>bn,_=(0,Z.useCallback)(e=>h[e]?.height??30,[h]),v=(0,Z.useCallback)(e=>h[e]?.key??e,[h]),y=(0,Z.useCallback)(()=>u.current,[]),b=an({count:g?h.length:0,enabled:g,estimateSize:_,getItemKey:v,getScrollElement:y,initialRect:{width:0,height:Sn},overscan:xn,scrollEndThreshold:Cn}),x=g?b.getVirtualItems():[],S=g?b.getTotalSize():0,C=(0,Z.useRef)(!1);(0,Z.useLayoutEffect)(()=>{if(C.current||t!==null)return;let e=u.current;e!==null&&p.length!==0&&(e.scrollHeight>e.clientHeight&&(e.scrollTop=e.scrollHeight),C.current=!0)},[p.length,t]),(0,Z.useLayoutEffect)(()=>{if(t===null)return;let e=u.current;e!==null&&p.length!==0&&(e.scrollTop=0,C.current=!0)},[t,p.length]);let w=e=>{r(e)},T=e=>e.collapsedSummary===void 0?(0,Q.jsxs)(Q.Fragment,{children:[e.turnStart&&e.turn!==null&&(0,Q.jsx)(hn,{turn:e.turn}),e.groupStart&&(0,Q.jsx)(gn,{title:e.group,description:e.groupDescription}),(0,Q.jsx)(yn,{cell:e.cell,selected:n===e.cell.index,onClick:w})]}):(0,Q.jsxs)(`div`,{className:`flex h-[20px] cursor-pointer items-center gap-2 px-2 text-xs text-dark-muted hover:bg-dark-surface/40`,onClick:()=>{e.collapsedSummaryKind===`turn`&&e.turn!==null?s(e.turn):e.collapsedSummaryKind===`assistant`&&l(De(e.cell))},children:[(0,Q.jsx)(`span`,{className:`text-dark-muted/50`,children:`▸`}),(0,Q.jsx)(`span`,{className:`truncate`,children:e.collapsedSummary})]});return(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,Q.jsx)(`div`,{ref:u,className:`min-w-0 flex-1 overflow-auto`,onClick:e=>{e.target===e.currentTarget&&a?.()},children:g?(0,Q.jsx)(`div`,{style:{height:S,position:`relative`},children:x.map(e=>{let t=m[e.index];return t?(0,Q.jsx)(`div`,{"data-virtual-row-key":t.key,style:{position:`absolute`,top:0,left:0,width:`100%`,transform:`translateY(${e.start}px)`,height:t.height},children:t.entries.map(e=>(0,Q.jsx)(`div`,{children:T(e.record)},dn(e.record)))},t.key):null})}):p.map(e=>(0,Q.jsx)(`div`,{children:T(e)},dn(e)))}),f!==void 0&&(0,Q.jsx)(jn,{cell:f.cell,onClose:i},f.cell.index)]})}function Nn(e){let t=new Date(e),n=e=>String(e).padStart(2,`0`);return`${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}var Pn=(0,Z.memo)(function({errors:e,onOpenLogs:t}){let{t:n}=I(),[i,a]=(0,Z.useState)(!1),[o,s]=(0,Z.useState)(null),c=(0,Z.useMemo)(()=>e.filter(e=>e.level===`error`),[e]);if((0,Z.useEffect)(()=>{s(e=>e!==null&&c.length>e?null:e)},[c.length]),c.length===0||o!==null)return null;let l=c[c.length-1];if(l===void 0)return null;let u=c.slice(-20).reverse();return(0,Q.jsxs)(`div`,{"data-trajectory-error-banner":``,className:`mx-2 mt-1 shrink-0 rounded-md border border-accent-red/50 bg-accent-red/10 text-xs`,role:`alert`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1.5 text-accent-red`,children:[(0,Q.jsx)(b,{size:14,className:`shrink-0`,"aria-hidden":`true`}),(0,Q.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-2 text-start`,onClick:()=>a(e=>!e),title:n(i?`trajectory.errorBanner.collapse`:`trajectory.errorBanner.expand`),children:[(0,Q.jsxs)(`span`,{className:`shrink-0 font-semibold`,children:[n(`trajectory.errorBanner.title`),c.length>1&&(0,Q.jsxs)(`span`,{className:`ms-1.5 rounded bg-accent-red px-1.5 py-0.5 text-badge font-semibold text-accent-fg`,children:[`×`,c.length]})]}),(0,Q.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-dark-text`,children:[Nn(l.timestamp),` · `,l.message]}),i?(0,Q.jsx)(_,{size:14,className:`shrink-0`,"aria-hidden":`true`}):(0,Q.jsx)(r,{size:14,className:`shrink-0`,"aria-hidden":`true`})]}),t&&(0,Q.jsxs)(`button`,{type:`button`,className:`flex shrink-0 items-center gap-1 rounded px-1.5 py-0.5 text-accent-red hover:bg-accent-red/15`,onClick:t,title:n(`trajectory.errorBanner.viewLogs`),children:[(0,Q.jsx)(h,{size:12,"aria-hidden":`true`}),n(`trajectory.errorBanner.viewLogs`)]}),(0,Q.jsx)(`button`,{type:`button`,className:`shrink-0 rounded p-0.5 text-dark-muted hover:bg-accent-red/15 hover:text-accent-red`,onClick:()=>{s(c.length),a(!1)},title:n(`trajectory.errorBanner.dismiss`),children:(0,Q.jsx)(C,{size:14,"aria-hidden":`true`})})]}),i&&(0,Q.jsx)(`div`,{className:`max-h-40 overflow-y-auto border-t border-accent-red/30 px-2 py-1.5 font-mono text-meta custom-scrollbar`,children:u.map(e=>(0,Q.jsxs)(`div`,{className:`flex items-start gap-2 py-0.5`,children:[(0,Q.jsx)(`span`,{className:`shrink-0 text-dark-muted`,children:Nn(e.timestamp)}),(0,Q.jsx)(`span`,{className:`shrink-0 rounded bg-accent-red px-1 py-0.5 text-avatar font-semibold uppercase leading-none text-accent-fg`,children:e.source}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 whitespace-pre-wrap break-all text-dark-text`,children:e.message})]},e.id))})]})}),Fn=new Set,In=new Set,Ln=[],Rn=3e3;function zn({sessionId:e,messages:t,errorLogs:n,onOpenLogs:r}){let[i,a]=(0,Z.useState)(Fn),[o,s]=(0,Z.useState)(In),[c,l]=(0,Z.useState)(null),[u,d]=(0,Z.useState)(!1),[f,p]=(0,Z.useState)(``),[m]=(0,Z.useState)(()=>new at),[h,g]=(0,Z.useState)(0),_=(0,Z.useRef)(null),v=(0,Z.useRef)(!1),[y,b]=(0,Z.useState)(null),x=we(t=>t.compactedBySession[e]??Bn),S=we(t=>t.ttftBySession[e]),C=(0,Z.useMemo)(()=>{if(S!==void 0)return new Map(Object.entries(S))},[S]),w=(0,Z.useMemo)(()=>Ke({messages:t,compacted:x,ttft:C}),[t,x,C]),T=u?`duration`:`sequence`;(0,Z.useEffect)(()=>(_.current&&clearTimeout(_.current),_.current=setTimeout(()=>{m.update([w]),g(e=>e+1),v.current=!0},v.current?Rn:0),()=>{_.current&&clearTimeout(_.current)}),[w,m]);let E=(0,Z.useMemo)(()=>f.trim()===``?null:m.search(f),[f,h]),D=(0,Z.useMemo)(()=>{if(E===null)return null;let e=new Set;for(let t of w)for(let n of t.groups)for(let t of n.cells)E.has(De(t))&&e.add(t.index);return e},[w,E]),O=(0,Z.useMemo)(()=>c===null?null:et(w,c,T),[w,T,c]),k=(0,Z.useMemo)(()=>(n??Ln).filter(t=>t.sessionId===e),[n,e]),A=(0,Z.useMemo)(()=>r?()=>r(e):void 0,[r,e]),j=(0,Z.useMemo)(()=>w.filter(e=>e.turn!==null&&e.groups.reduce((e,t)=>e+t.cells.filter(e=>e.requestOnly!==!0&&e.kind!==`system`).length,0)>1).flatMap(e=>e.turn===null?[]:[e.turn]),[w]),M=j.length>0&&j.every(e=>i.has(e)),N=(0,Z.useMemo)(()=>{let e=[];for(let t of w){let n=t.groups.flatMap(e=>e.cells);for(let t=0;t<n.length;t++){let r=n[t];if(r?.kind!==`message`)continue;let i=n[t+1];(i?.kind===`tool`||i?.kind===`subtool`)&&e.push(De(r))}}return e},[w]),P=N.length>0&&N.every(e=>o.has(e)),F=(0,Z.useCallback)(e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),I=(0,Z.useCallback)(()=>{a(e=>{let t=new Set(e);if(M)for(let e of j)t.delete(e);else for(let e of j)t.add(e);return t})},[M,j]),L=(0,Z.useCallback)(e=>{s(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),R=(0,Z.useCallback)(()=>{s(e=>{let t=new Set(e);if(P)for(let e of N)t.delete(e);else for(let e of N)t.add(e);return t})},[P,N]),z=(0,Z.useCallback)(e=>{l(e)},[]),B=(0,Z.useCallback)(e=>{O!==null&&!O.has(e)&&l(null),b(t=>t===e?null:e)},[O]),ee=(0,Z.useCallback)(()=>{b(null)},[]),V=(0,Z.useCallback)(()=>{l(null),b(null)},[]);return(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,"data-conversation-composer-overlay":``,children:[(0,Q.jsx)(ot,{actualDuration:u,onActualDurationChange:e=>{d(e),l(null)},allTurnsCollapsed:M,onToggleAllTurns:I,allAssistantsCollapsed:P,onToggleAllAssistants:R,searchQuery:f,onSearchQueryChange:p}),(0,Q.jsx)(Pn,{errors:k,onOpenLogs:A}),(0,Q.jsx)(vt,{turns:w,mode:T,range:c,selectedIndex:y,searchMatchIndexes:D,onRangeChange:z,onRecordSelect:B}),(0,Q.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:(0,Q.jsx)(Mn,{turns:w,searchMatchIndexes:D,selectedIndex:y,onSelectIndex:B,onDeselect:ee,onClearSelection:V,collapsedTurns:i,onToggleTurn:F,collapsedAssistants:o,onToggleAssistant:L})})]})}var Bn=[],Vn=(0,Z.memo)(function({activeSessionId:e}){let{t}=I(),n=Ce(e=>e.observed).filter(t=>t.id!==e);return n.length===0?null:(0,Q.jsxs)(`div`,{className:`mb-2 flex flex-col gap-1.5`,children:[n.map(e=>(0,Q.jsx)(Hn,{id:e.id,title:e.title},e.id)),(0,Q.jsx)(`span`,{className:`sr-only`,children:t(`chat.observedTitle`)})]})});function Hn({id:e,title:t}){let{t:n}=I(),r=B(t=>t.generatingSessions?.includes(e)??!1),i=B(t=>{let n=t.messagesBySession[e];return!!(n&&n.length>0?n[n.length-1]:void 0)?.errorCard}),a=B(t=>{let n=t.messagesBySession[e];if(!n||n.length===0)return``;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t.type===`user`)continue;let r=t.content||``;if(r.trim())return r.trim().slice(-160)}return``}),o=n(r?`chat.observedRunning`:i?`chat.observedFailed`:`chat.observedDone`);return(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-dark-border bg-dark-surface px-2.5 py-1.5 text-xs`,children:[(0,Q.jsx)(v,{size:13,className:`shrink-0 text-accent-blue`,"aria-hidden":`true`}),(0,Q.jsx)(`span`,{className:`max-w-[180px] truncate font-medium text-dark-text`,title:t,children:t}),(0,Q.jsx)(`span`,{className:`shrink-0 text-badge text-dark-muted`,children:e.slice(0,8)}),r?(0,Q.jsx)(d,{size:12,className:`shrink-0 animate-spin text-accent-yellow`,"aria-hidden":`true`}):i?(0,Q.jsx)(x,{size:12,className:`shrink-0 text-accent-red`,"aria-hidden":`true`}):(0,Q.jsx)(T,{size:12,className:`shrink-0 text-accent-green`,"aria-hidden":`true`}),(0,Q.jsx)(`span`,{className:`shrink-0 text-badge ${i?`text-accent-red`:r?`text-accent-yellow`:`text-accent-green`}`,children:o}),a&&(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-dark-muted/80`,title:a,children:a})]})}function Un(e,t){if(!e||!t||t.length===0)return;let n=e.find(e=>e.switchMode&&t.includes(e.label));n?.switchMode&&se.getState().setBaseMode(n.switchMode)}var Wn=15e3,Gn=300,Kn=4,qn=8388608;function Jn(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(typeof r.result==`string`?r.result:``),r.onerror=()=>n(r.error instanceof Error?r.error:Error(`image read failed`)),r.readAsDataURL(e)})}function Yn(e){let t=[];for(let n of Array.from(e.items??[])){if(n.kind!==`file`||!n.type.startsWith(`image/`))continue;let e=n.getAsFile();e&&t.push(e)}if(t.length===0)for(let n of Array.from(e.files??[]))n.type.startsWith(`image/`)&&t.push(n);return t}function Xn(e){let{t}=I();return(0,Z.useMemo)(()=>{if(e.secret)return{allItems:[],otherIdx:-1,proceedIdx:-1,displayItems:[]};let n=t(`chat.askOtherLabel`),r=t(`chat.askProceedLabel`),i=e.options||[],a=i.some(e=>e.label===n),o=i.some(e=>e.label===r),s=[...i];return o||s.push({label:r,description:t(`chat.askProceedDesc`)}),a||s.push({label:n,description:t(`chat.askCustomDesc`)}),{allItems:s,otherIdx:a?s.findIndex(e=>e.label===n):s.length-1,proceedIdx:o?s.findIndex(e=>e.label===r):s.length-(a?1:2),displayItems:s}},[e,t])}function Zn(e){let t=(0,Z.useRef)(null),[n,r]=(0,Z.useState)({top:!1,bottom:!1}),i=(0,Z.useCallback)(()=>{let e=t.current;if(!e)return;let n=e.scrollHeight-e.clientHeight,i=n>2&&e.scrollTop>2,a=n>2&&e.scrollTop<n-2;r(e=>e.top===i&&e.bottom===a?e:{top:i,bottom:a})},[]);return(0,Z.useEffect)(()=>{i();let e=t.current;if(!e)return;e.addEventListener(`scroll`,i,{passive:!0});let n=typeof ResizeObserver<`u`?new ResizeObserver(i):null;return n?.observe(e),()=>{e.removeEventListener(`scroll`,i),n?.disconnect()}},[i,e]),{ref:t,style:{"--ui-fade-top":n.top?`14px`:`0px`,"--ui-fade-bottom":n.bottom?`14px`:`0px`}}}function Qn({ms:e}){let{t}=I();return(0,Q.jsx)(`span`,{className:`inline-flex items-center self-start text-xs leading-relaxed tabular-nums text-accent-yellow`,children:t(`chat.askAutoContinue`,{seconds:Math.max(1,Math.round(e/1e3))})})}function $n({children:e,tone:t}){return(0,Q.jsx)(`span`,{className:q(`shrink-0 rounded-full px-1.5 py-0.5 text-meta leading-none`,t===`green`?`bg-accent-green/10 text-accent-green`:`bg-dark-hover text-dark-muted`),children:e})}function er({label:e,description:t,index:n,multi:r,active:i,checked:a,tag:o,onSelect:s}){let c=r?a:i;return(0,Q.jsxs)(`button`,{type:`button`,role:r?`checkbox`:`radio`,"aria-checked":c,onClick:s,className:q(`w-full min-h-11 flex items-start gap-3 rounded-lg border px-3 py-2.5 text-start`,`transition duration-snap ease-expo`,c?`border-accent-blue/40 bg-accent-blue/10`:`border-dark-border/60 bg-transparent hover:border-dark-border hover:bg-dark-hover`),children:[(0,Q.jsx)(`span`,{className:q(`shrink-0 w-5 h-5 inline-flex items-center justify-center text-meta font-medium tabular-nums`,`transition duration-snap ease-expo`,r?`rounded-md`:`rounded-full`,c?`border border-accent-blue bg-accent-blue text-accent-fg`:r?`border border-dark-border text-transparent`:`border border-dark-border text-dark-muted`),children:r?(0,Q.jsx)(j,{size:12}):n}),(0,Q.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Q.jsxs)(`span`,{className:`flex flex-wrap items-center gap-x-1.5 gap-y-1`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium text-dark-text`,children:e}),o]}),t&&(0,Q.jsx)(`span`,{className:`block mt-0.5 text-xs leading-snug text-dark-muted`,children:t})]}),!r&&(0,Q.jsx)(j,{size:15,"aria-hidden":`true`,className:q(`shrink-0 mt-0.5 transition-opacity duration-snap ease-expo`,c?`text-accent-blue opacity-100`:`opacity-0`)})]})}function tr({value:e,onChange:t,onSubmit:r}){let{t:a}=I(),[o,s]=(0,Z.useState)(!1);return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsx)(`span`,{"aria-hidden":`true`,className:`pointer-events-none absolute start-3 top-1/2 -translate-y-1/2 text-dark-muted`,children:(0,Q.jsx)(m,{size:14})}),(0,Q.jsx)(`input`,{type:o?`text`:`password`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,className:`input ps-9 pe-11 font-mono`,value:e,onChange:e=>t(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),r())},placeholder:a(`chat.askSecretPlaceholder`),autoFocus:!0}),(0,Q.jsx)(`button`,{type:`button`,onClick:()=>s(e=>!e),"aria-label":a(o?`chat.askSecretHide`:`chat.askSecretReveal`),"aria-pressed":o,className:q(`absolute end-1 top-1/2 -translate-y-1/2 inline-flex h-8 w-8 items-center justify-center`,`rounded-md text-dark-muted transition-colors duration-snap ease-expo`,`hover:bg-dark-hover hover:text-dark-text`),children:o?(0,Q.jsx)(n,{size:14,"aria-hidden":`true`}):(0,Q.jsx)(P,{size:14,"aria-hidden":`true`})})]}),(0,Q.jsx)(`p`,{className:`text-xs leading-relaxed text-dark-muted`,children:a(`chat.askSecretHint`)}),(0,Q.jsx)(K,{variant:`primary`,shape:`pill`,leftIcon:(0,Q.jsx)(i,{size:15}),onClick:r,disabled:!e,className:`w-full min-h-11 sm:w-auto sm:self-start`,children:a(`chat.askSubmit`)})]})}function nr({item:e,answered:t,selectedIdx:n,multiSelected:r,customInput:a,showCustomInput:o,onSelect:s,onToggleMulti:c,onProceed:l,onEnterCustom:u,onCancelCustom:d,onSubmitCustom:f,onCustomChange:p,inputRef:m}){let{t:h}=I(),{otherIdx:g,proceedIdx:_,displayItems:v}=Xn(e),y=!!e.multiSelect,{ref:b,style:x}=Zn(v.length);if(e.secret)return(0,Q.jsx)(tr,{value:a,onChange:p,onSubmit:f});let S=e=>{e===_?l():e===g?u():y?c(e):s(e)};return(0,Q.jsxs)(`div`,{ref:b,style:x,role:y?`group`:`radiogroup`,"aria-label":e.question,className:`fade-mask-y flex flex-col gap-2 pe-1 overflow-y-auto custom-scrollbar sm:max-h-72`,children:[v.map((e,t)=>{let s=n===t,c=t===g;return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(er,{label:e.label,description:e.description,index:t+1,multi:y,active:s,checked:r.has(t),tag:t===_?(0,Q.jsx)($n,{tone:`green`,children:h(`chat.askDirectTag`)}):c?(0,Q.jsx)($n,{tone:`muted`,children:h(`chat.askCustomTag`)}):null,onSelect:()=>S(t)}),c&&s&&o&&(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 ps-8`,children:[(0,Q.jsx)(`textarea`,{ref:m,className:`input resize-none`,rows:3,value:a,onChange:e=>p(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),f()),e.key===`Escape`&&d()},placeholder:h(`chat.askAnswerPlaceholder`),autoFocus:!0}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(K,{variant:`primary`,size:`sm`,shape:`pill`,leftIcon:(0,Q.jsx)(i,{size:13}),onClick:f,children:h(`chat.askSubmit`)}),(0,Q.jsx)(K,{variant:`ghost`,size:`sm`,shape:`pill`,leftIcon:(0,Q.jsx)(C,{size:13}),onClick:d,children:h(`common.cancel`)})]})]})]},`opt-${t}`)}),t&&(0,Q.jsx)(`div`,{className:`text-xs font-medium text-accent-green`,children:h(`chat.askAnswered`)})]})}var rr=(e,t)=>e?.secret===!0||t?.secret===!0;function ir({images:e,notice:t,onRemove:n}){let{t:r}=I();return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[e.length>0&&(0,Q.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:e.map((e,t)=>(0,Q.jsxs)(`div`,{className:`relative overflow-hidden rounded-lg border border-dark-border bg-dark-surface`,children:[(0,Q.jsx)(`img`,{src:e,alt:r(`chat.askImageAlt`,{index:t+1}),className:`h-14 w-14 object-cover`}),(0,Q.jsx)(`button`,{type:`button`,"aria-label":r(`chat.askImageRemove`),onClick:()=>n(t),className:`absolute end-0.5 top-0.5 inline-flex h-5 w-5 items-center justify-center rounded-full bg-dark-bg/80 text-dark-muted transition-colors hover:bg-accent-red/80 hover:text-dark-bg`,children:(0,Q.jsx)(C,{size:11})})]},`ask-img-${t}`))}),t?(0,Q.jsxs)(`p`,{className:`flex items-center gap-1.5 text-meta text-accent-yellow`,children:[(0,Q.jsx)(b,{size:11,className:`shrink-0`}),(0,Q.jsx)(`span`,{children:t})]}):(0,Q.jsxs)(`p`,{className:`flex items-center gap-1.5 text-meta text-dark-muted`,children:[(0,Q.jsx)(k,{size:11,className:`shrink-0`}),(0,Q.jsx)(`span`,{children:r(`chat.askImagePasteHint`)})]})]})}function ar({isOpen:e,onClose:t}){let{t:n}=I(),[r,a]=(0,Z.useState)(null),[o,s]=(0,Z.useState)(-1),[c,u]=(0,Z.useState)(new Set),[d,f]=(0,Z.useState)(``),[p,m]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(!1),[y,x]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(0),[w,T]=(0,Z.useState)([]),[E,D]=(0,Z.useState)(!1),[O,A]=(0,Z.useState)([]),[N,P]=(0,Z.useState)(null),F=(0,Z.useRef)(null),L=(0,Z.useRef)(null),R=(0,Z.useMemo)(()=>r?r.questions&&r.questions.length>0?r.questions:[{question:r.question,header:r.header,options:r.options,multiSelect:r.multiSelect,secret:r.secret}]:[],[r]),z=R.length>1,B=(0,Z.useCallback)(e=>{a(e),s(e.multiSelect?-1:0),u(new Set),f(``);let t=e.questions&&e.questions.length>0?e.questions:[e];m(rr(t[0],e)),g(!1),v(!1),x(!1),C(0),D(!1),T(t.map(()=>null)),A([]),P(null)},[]);(0,Z.useEffect)(()=>{L.current=r}),(0,Z.useEffect)(()=>{if(e){let e=window.__pendingQuestion;e&&B(e)}},[e,B]),(0,Z.useEffect)(()=>{let e=e=>{let n=e.detail,r=L.current?.questionId??null;if(n&&r&&n!==r)return;let i=r;g(!0),setTimeout(()=>{let e=L.current?.questionId??null;i&&e&&e!==i||(t(),a(null),g(!1))},Gn)};return window.addEventListener(`ask-question-dismiss`,e),()=>window.removeEventListener(`ask-question-dismiss`,e)},[t]),(0,Z.useEffect)(()=>{if(!h)return;let e=setTimeout(()=>{g(!1),v(!0)},Wn);return()=>clearTimeout(e)},[h]),(0,Z.useEffect)(()=>{let e=()=>{v(!1),x(!1)};return window.addEventListener(`ask-question-dismiss`,e),()=>window.removeEventListener(`ask-question-dismiss`,e)},[]),(0,Z.useEffect)(()=>{let e=e=>{let t=e.detail,n=L.current?.questionId??null;t&&n&&t!==n||(g(!1),v(!0),x(!0))};return window.addEventListener(`ask-question-ack-failed`,e),()=>window.removeEventListener(`ask-question-ack-failed`,e)},[]),(0,Z.useEffect)(()=>{let e=e=>{let t=e.detail,n=ee.getState().activeSessionId;if(t&&n&&t!==n)return;let r=window.__pendingQuestion;r&&B(r)};return window.addEventListener(`ask-question-required`,e),()=>window.removeEventListener(`ask-question-required`,e)},[B]),(0,Z.useEffect)(()=>{s(0),u(new Set),f(``),m(rr(R[S],r))},[S,E,r,R]);let V=R[S]||null,{allItems:H,otherIdx:U}=Xn(V||{question:``}),W=rr(V,r),G=O[S]??[],J=(0,Z.useCallback)((e,t)=>{!h&&r&&(v(!1),g(!0),Un(r.options,t),X.send({type:`question_answer`,sessionId:r.sessionId||X.getSessionId()||void 0,data:JSON.stringify({questionId:r.questionId,answer:e,selectedOptions:t,...G.length>0?{images:G}:{}})}))},[h,r,G]),te=(0,Z.useCallback)(()=>{!h&&r&&(v(!1),g(!0),X.send({type:`question_answer`,sessionId:r.sessionId||X.getSessionId()||void 0,data:JSON.stringify({questionId:r.questionId,answers:R.map((e,t)=>{let r=w[t]||{answer:n(`chat.askUnansweredValue`)},i=O[t]??[];return i.length>0?{...r,images:i}:r})})}))},[h,r,R,w,O,n]),ne=(0,Z.useCallback)(e=>{A(t=>{let n=t.slice();return n[S]=(n[S]??[]).filter((t,n)=>n!==e),n}),P(null)},[S]),re=(0,Z.useCallback)(e=>{if(h||W||E)return;let t=e.clipboardData;if(!t)return;let r=Yn(t);if(r.length===0)return;e.preventDefault();let i=S,a=O[i]?.length??0;(async()=>{let e=[],t=0,o=0;for(let n of r)if(n.size>qn)t++;else if(a+e.length>=Kn)o++;else try{let t=await Jn(n);t.startsWith(`data:image/`)&&e.push(t)}catch{}e.length>0&&A(t=>{let n=t.slice();return n[i]=[...n[i]??[],...e].slice(0,Kn),n}),t>0?P(n(`chat.askImageTooLarge`)):o>0?P(n(`chat.askImageTooMany`,{count:Kn})):e.length>0&&P(null)})()},[h,W,E,S,O,n]),Y=(0,Z.useCallback)((e,t,n)=>{Un(R[e]?.options,n),T(r=>{let i=r.slice();return i[e]={answer:t,selectedOptions:n},i}),e<R.length-1?C(e+1):D(!0)},[R]),ie=(0,Z.useCallback)(e=>{if(h||!r)return;let t=H[e];t&&(s(e),J(t.label,[t.label]))},[h,r,H,J]),ae=(0,Z.useCallback)(()=>{if(h||!r||o<0)return;let e=H[o];e&&J(e.label,[e.label])},[h,r,o,H,J]),oe=(0,Z.useCallback)(()=>{if(h||o<0)return;let e=H[o];e&&Y(S,e.label,[e.label])},[h,o,H,Y,S]),se=(0,Z.useCallback)(e=>{if(h)return;let t=H[e];t&&Y(S,t.label,[t.label])},[h,H,Y,S]),ce=(0,Z.useCallback)(e=>{h||u(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[h]),le=(0,Z.useCallback)(()=>{if(h)return;let e=[...c].map(e=>H[e]?.label||``);z?Y(S,e.join(`, `),e):J(e.join(`, `),e)},[h,c,H,z,Y,S,J]),ue=(0,Z.useCallback)(()=>{if(h)return;let e=n(`chat.askProceedLabel`);z?Y(S,e,[e]):J(e,[e])},[h,z,Y,S,J,n]),de=(0,Z.useCallback)(()=>{h||(s(U),m(!0),setTimeout(()=>F.current?.focus(),100))},[h,U]),fe=(0,Z.useCallback)(()=>{m(!1),f(``)},[]),pe=(0,Z.useCallback)(()=>{if(h)return;let e=d||n(`chat.askEmptyInputValue`);z?Y(S,e):J(e)},[h,d,z,Y,S,J,n]),me=(0,Z.useCallback)(()=>{!h&&r&&(v(!1),g(!0),X.send({type:`question_answer`,sessionId:r.sessionId||X.getSessionId()||void 0,data:JSON.stringify({questionId:r.questionId,answers:R.map(()=>({answer:`(cancelled)`}))})}))},[h,r,R]),he=(0,Z.useCallback)(()=>{if(!h){if(y)t();else if(z){if(p&&!W){m(!1),f(``);return}if(E){D(!1),C(R.length-1);return}me()}else p&&!W?(m(!1),f(``)):J(`(cancelled)`)}},[h,z,p,E,R.length,me,J,y,t,W]);if(!e||!r)return null;let ge=w.filter(e=>!e).length,_e=w.filter(Boolean).length,ve=h||_||p,ye=h?(0,Q.jsx)(`span`,{children:n(`chat.askSubmitting`)}):_?(0,Q.jsxs)(`span`,{className:`flex items-center gap-1.5 text-accent-yellow`,children:[(0,Q.jsx)(b,{size:12}),n(`chat.askSubmitRetry`)]}):p?W?null:(0,Q.jsx)(`span`,{children:n(`chat.askEnterHint`)}):r.multiSelect?(0,Q.jsx)(`span`,{children:n(`chat.askMultiHintSingle`)}):(0,Q.jsx)(`span`,{children:n(`chat.askSingleHintSingle`)});return(0,Q.jsx)(Te,{isOpen:e,onClose:he,title:r.header||n(z?`chat.askBatchTitle`:`chat.askSingleTitle`),badge:z?(0,Q.jsxs)(`span`,{className:`shrink-0 inline-flex items-center rounded-full bg-dark-hover px-2 py-0.5 text-meta font-medium tabular-nums text-dark-muted`,children:[_e,`/`,R.length]}):void 0,collapsedSummary:(0,Q.jsx)(`span`,{className:`truncate`,children:V?.question||r.question}),maxHeight:`min(85dvh, 40rem)`,alignToComposer:!0,children:z?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,onPaste:re,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-wrap`,children:[R.map((e,t)=>{let n=!!w[t],r=!E&&S===t;return(0,Q.jsxs)(`button`,{type:`button`,"aria-current":r?`step`:void 0,onClick:()=>{C(t),D(!1)},className:q(`inline-flex items-center gap-1 rounded-full px-3 min-h-9 text-xs font-medium tabular-nums`,`transition duration-snap ease-expo`,r?`bg-dark-text text-dark-bg`:n?`border border-accent-green/40 bg-accent-green/10 text-accent-green`:`border border-dark-border bg-dark-surface text-dark-muted hover:bg-dark-hover`),children:[`Q`,t+1,n&&(0,Q.jsx)(j,{size:11})]},`nav-${t}`)}),(0,Q.jsx)(`button`,{type:`button`,"aria-current":E?`step`:void 0,onClick:()=>D(!0),className:q(`inline-flex items-center rounded-full px-3 min-h-9 text-xs font-medium`,`transition duration-snap ease-expo`,E?`bg-dark-text text-dark-bg`:`border border-dark-border bg-dark-surface text-dark-muted hover:bg-dark-hover`),children:n(`chat.askSubmit`)})]}),r.autoResolutionMs&&r.autoResolutionMs>0&&(0,Q.jsx)(Qn,{ms:r.autoResolutionMs}),E?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsx)(`div`,{className:`text-sm font-medium text-dark-text`,children:n(`chat.askReviewTitle`)}),(0,Q.jsx)(`div`,{className:`overflow-hidden rounded-lg border border-dark-border`,children:R.map((e,t)=>{let r=w[t];return(0,Q.jsxs)(`div`,{className:q(`flex items-start gap-3 px-3 py-2.5`,t>0&&`border-t border-dark-border`),children:[(0,Q.jsx)(`span`,{className:`shrink-0 w-5 h-5 rounded-full border border-dark-border text-meta font-medium tabular-nums text-dark-muted inline-flex items-center justify-center`,children:t+1}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`text-sm leading-snug text-dark-text`,children:e.question}),(0,Q.jsxs)(`div`,{className:q(`mt-1 text-xs break-words`,r?`text-accent-green`:`text-accent-yellow`),children:[r?r.answer:n(`chat.askNotAnswered`),(O[t]??[]).length>0&&(0,Q.jsxs)(`span`,{className:`ms-2 inline-flex items-center gap-0.5 text-meta text-dark-muted`,children:[(0,Q.jsx)(k,{size:11}),`${(O[t]??[]).length}`]})]})]})]},`rev-${t}`)})}),ge>0&&(0,Q.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-accent-yellow/30 bg-accent-yellow/10 px-3 py-2 text-xs leading-relaxed text-accent-yellow`,children:[(0,Q.jsx)(b,{size:14,className:`shrink-0 mt-0.5`}),(0,Q.jsx)(`span`,{children:n(`chat.askUnansweredWarning`,{count:ge})})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center`,children:[(0,Q.jsx)(K,{variant:`primary`,shape:`pill`,leftIcon:(0,Q.jsx)(i,{size:15}),onClick:te,disabled:h,className:`w-full min-h-11 sm:w-auto`,children:n(`chat.askSubmitAll`)}),(0,Q.jsx)(K,{variant:`secondary`,shape:`pill`,leftIcon:(0,Q.jsx)(l,{size:14}),onClick:()=>{D(!1),C(R.length-1)},disabled:h,className:`w-full min-h-11 sm:w-auto`,children:n(`chat.askBackToEdit`)})]})]}):V?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between sm:gap-3`,children:[(0,Q.jsx)(`p`,{className:`min-w-0 text-base leading-relaxed text-dark-text text-pretty`,children:V.question}),(0,Q.jsxs)(`div`,{className:`hidden sm:flex items-center gap-1.5 shrink-0`,children:[(0,Q.jsx)(K,{variant:`secondary`,size:`sm`,shape:`pill`,leftIcon:(0,Q.jsx)(l,{size:13}),onClick:()=>{C(e=>Math.max(0,e-1)),D(!1)},disabled:S===0,children:n(`chat.askPrevQuestion`)}),S<R.length-1?(0,Q.jsx)(K,{variant:`secondary`,size:`sm`,shape:`pill`,rightIcon:(0,Q.jsx)(M,{size:13}),onClick:()=>{C(e=>Math.min(R.length-1,e+1)),D(!1)},children:n(`chat.askNextQuestion`)}):(0,Q.jsx)(K,{variant:`secondary`,size:`sm`,shape:`pill`,rightIcon:(0,Q.jsx)(M,{size:13}),onClick:()=>D(!0),children:n(`chat.askViewSubmit`)})]})]}),(0,Q.jsx)(nr,{item:V,answered:!!w[S],selectedIdx:o,multiSelected:c,customInput:d,showCustomInput:p,onSelect:se,onToggleMulti:ce,onProceed:ue,onEnterCustom:de,onCancelCustom:fe,onSubmitCustom:pe,onCustomChange:f,inputRef:F}),!W&&(G.length>0||p)&&(0,Q.jsx)(ir,{images:G,notice:N,onRemove:ne}),(0,Q.jsxs)(`div`,{className:`flex flex-col-reverse gap-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,Q.jsx)(`p`,{className:q(`text-xs leading-relaxed text-dark-muted`,!ve&&`hidden sm:block`),children:p?(0,Q.jsx)(`span`,{children:n(`chat.askEnterHint`)}):V.multiSelect?(0,Q.jsx)(`span`,{children:n(`chat.askMultiHintBatch`)}):(0,Q.jsx)(`span`,{children:n(`chat.askSingleHintBatch`)})}),!p&&(0,Q.jsx)(K,{variant:V.multiSelect?`primary`:`secondary`,shape:`pill`,leftIcon:(0,Q.jsx)(j,{size:15}),onClick:V.multiSelect?le:oe,disabled:h||(V.multiSelect?c.size===0:o<0),className:`w-full min-h-11 sm:w-auto sm:shrink-0`,children:V.multiSelect?n(`chat.askFinishQuestion`,{count:c.size}):n(`chat.askConfirmQuestion`)})]})]}):null]}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,onPaste:re,children:[(0,Q.jsx)(`p`,{className:`text-base leading-relaxed text-dark-text text-pretty`,children:r.question}),r.autoResolutionMs&&r.autoResolutionMs>0&&(0,Q.jsx)(Qn,{ms:r.autoResolutionMs}),(0,Q.jsx)(nr,{item:R[0],answered:!1,selectedIdx:o,multiSelected:c,customInput:d,showCustomInput:p,onSelect:ie,onToggleMulti:ce,onProceed:ue,onEnterCustom:de,onCancelCustom:fe,onSubmitCustom:pe,onCustomChange:f,inputRef:F}),!W&&(G.length>0||p)&&(0,Q.jsx)(ir,{images:G,notice:N,onRemove:ne}),(0,Q.jsxs)(`div`,{className:`flex flex-col-reverse gap-2 sm:flex-row sm:items-center sm:justify-between`,children:[ye?(0,Q.jsx)(`p`,{className:q(`text-xs leading-relaxed text-dark-muted`,!ve&&`hidden sm:block`),children:ye}):(0,Q.jsx)(`span`,{className:`hidden sm:block`}),!p&&(0,Q.jsx)(K,{variant:r.multiSelect?`primary`:`secondary`,shape:`pill`,leftIcon:(0,Q.jsx)(j,{size:15}),onClick:r.multiSelect?le:ae,disabled:h||(r.multiSelect?c.size===0:o<0),className:`w-full min-h-11 sm:w-auto sm:shrink-0`,children:r.multiSelect?n(`chat.askSubmitSelected`,{count:c.size}):n(`chat.askSubmit`)})]})]})})}var or=15;function sr({isOpen:e,onCloseModal:t}){let{t:n}=I(`hook`),r=me(),i=r.pendingApprovals,a=r.autoMode,o=r.setAutoMode,[s,l]=(0,Z.useState)(0),[u,d]=(0,Z.useState)(!1),[p,m]=(0,Z.useState)(or),[h,g]=(0,Z.useState)(!0),_=(0,Z.useRef)(null),v=(0,Z.useRef)(!1);(0,Z.useEffect)(()=>{i.length!==0&&(a?(i.forEach(e=>{X.send({type:`hook_allow`,data:JSON.stringify({approvalId:e.approvalId})})}),r.clearApprovals()):l(e=>Math.min(e,i.length-1)))},[i.length,a]);let y=i[s]??null,x=i.length>0&&y!==null,S=i.length,C=x?S-s-1:0;(0,Z.useEffect)(()=>{if(x&&!u&&e&&y)return m(or),_.current=setInterval(()=>{m(e=>e<=1?(_.current&&clearInterval(_.current),0):e-1)},1e3),()=>{_.current&&clearInterval(_.current)}},[x,u,e,y?.approvalId]);let w=y?ae(y.toolName,y.askPayload):{level:`MEDIUM`,reasonKey:`risk_default`},T=ge[w.level],E=te[w.level===`CRITICAL`?`critical`:w.level===`HIGH`?`high`:w.level===`LOW`?`low`:`medium`],D=y?fe(y.toolName,y.askPayload):null,k=y?pe(y.toolName,y.askPayload):null,A=y?{verb:ue(y.toolName),target:ie(y.toolName,y.askPayload)}:null,j=y?oe(y.askPayload)!==null:!1,M=y?he(y.toolName,y.askPayload):null,N=p/or*100,P=p<=5,F=re((or-p)*1e3),L=(0,Z.useCallback)((e,t)=>{let n=ee.getState().activeSessionId;n&&B.getState().updateHookApprovalStatus(n,e,t)},[]),R=(0,Z.useCallback)(e=>{y&&(e&&L(y.approvalId,e),d(!0),setTimeout(()=>{r.removeApproval(y.approvalId),l(0),d(!1),v.current=!1,m(or)},200))},[y?.approvalId,r,L]),z=(0,Z.useCallback)(()=>{!y||u||v.current||(v.current=!0,_.current&&clearInterval(_.current),X.send({type:`hook_allow`,data:JSON.stringify({approvalId:y.approvalId})}),R(`approved`))},[y,R,u]),V=(0,Z.useCallback)(()=>{!y||u||v.current||(v.current=!0,_.current&&clearInterval(_.current),X.send({type:`hook_deny`,data:JSON.stringify({approvalId:y.approvalId})}),R(`denied`))},[y,R,u]),H=(0,Z.useCallback)(()=>{if(!y||u||v.current)return;v.current=!0,_.current&&clearInterval(_.current);let e=oe(y.askPayload);e?(r.addToSessionAllowList(y.toolName,e),X.send({type:`hook_allow`,data:JSON.stringify({approvalId:y.approvalId,sessionAllow:!0})})):(r.addToSessionAllowList(y.toolName),X.send({type:`hook_allow`,data:JSON.stringify({approvalId:y.approvalId})})),R(`approved`)},[y,R,r,u]),U=(0,Z.useCallback)(()=>{!y||u||v.current||(v.current=!0,_.current&&clearInterval(_.current),o(!0),se.getState().setAuto(!0),X.send({type:`hook_allow`,data:JSON.stringify({approvalId:y.approvalId})}),R(`approved`))},[y,R,u,o]),W=(y?.timeoutMs??15e3)>0,G=y?.timeoutAction===`deny`?V:z;if((0,Z.useEffect)(()=>{p===0&&e&&!u&&y&&W&&G()},[p,e,u,y,G,W]),(0,Z.useEffect)(()=>{if(!e||!h)return;let t=e=>{let t=e.target;t&&typeof t.closest==`function`&&t.closest(`input, textarea, select, [contenteditable="true"]`)||(e.key===`Escape`?(e.preventDefault(),e.stopPropagation(),V()):e.key===`Enter`?(e.preventDefault(),z()):e.key===`1`?z():e.key===`2`?V():e.key===`3`?H():e.key===`4`&&U())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,h,z,V,H,U]),!x||!y)return null;let q=n(`optionAllowHint`),J=n(`optionDenyHint`),ce=j?n(`optionAllowPathHint`):n(`optionAllowAlwaysHint`,{tool:y.toolName}),de=n(`optionAutoModeHint`),_e=D?.text??k??null,ve=_e?(0,Q.jsxs)(`span`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,Q.jsx)(`code`,{className:`font-mono text-meta bg-dark-surface text-accent-blue px-1 py-0.5 rounded shrink-0`,children:y.toolName}),(0,Q.jsx)(`span`,{className:`truncate`,children:_e})]}):null;return(0,Q.jsx)(Te,{isOpen:e,onClose:()=>t?.(),title:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(c,{className:`w-4 h-4 text-accent-yellow`}),(0,Q.jsx)(`span`,{children:n(`hookApproval`)}),(0,Q.jsxs)(`span`,{className:`text-xs text-dark-muted`,children:[`(`,s+1,`/`,S,`)`]})]}),badge:(0,Q.jsxs)(`span`,{className:`px-1.5 py-0.5 rounded text-badge font-bold border shrink-0 ${T.badge}`,children:[T.icon,` `,w.level]}),collapsedSummary:ve,onExpandedChange:g,maxHeight:`50vh`,alignToComposer:!0,children:(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 rounded-lg ${T.bg} border ${T.border}`,children:[(0,Q.jsxs)(`span`,{className:`px-1.5 py-0.5 rounded text-xs font-bold border ${T.badge}`,children:[T.icon,` `,w.level]}),(0,Q.jsx)(`span`,{className:`text-xs text-dark-muted truncate`,children:n(w.reasonKey)}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5 ms-auto shrink-0`,children:[(0,Q.jsx)(O,{size:12,className:P?`text-accent-red`:`text-dark-muted`}),(0,Q.jsx)(`span`,{className:`text-xs font-mono ${P?`text-accent-red animate-pulse`:`text-dark-muted`}`,children:W?`${p}s`:`∞`}),(0,Q.jsx)(`div`,{className:`w-12 h-1.5 bg-dark-border rounded-full overflow-hidden`,children:(0,Q.jsx)(`div`,{className:`h-full rounded-full transition-all duration-700 ${P?`bg-accent-red`:p<=8?`bg-accent-yellow`:`bg-accent-green`}`,style:{width:`${N}%`}})})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2.5 min-w-0`,children:[(0,Q.jsx)(`span`,{className:`flex-none w-7 h-7 rounded-lg bg-accent-blue/10 text-accent-blue inline-flex items-center justify-center`,children:(0,Q.jsx)(c,{size:15})}),A&&(0,Q.jsx)(Y,{pre:n(A.verb),obj:A.target})]}),M&&(M.external&&M.path?(0,Q.jsxs)(`span`,{className:`flex items-center gap-1 text-meta px-1.5 py-0.5 rounded bg-accent-yellow/15 text-accent-yellow border border-accent-yellow shrink-0`,title:M.path,children:[(0,Q.jsx)(f,{size:10}),n(`scopeExternal`),`: `,M.path.length>48?`${M.path.slice(0,47)}…`:M.path]}):(0,Q.jsx)(`span`,{className:`text-meta text-dark-muted/60 shrink-0`,children:n(`scopeLocal`)}))]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,Q.jsx)(`span`,{className:`text-dark-muted shrink-0`,children:n(`tool`)}),(0,Q.jsx)(`code`,{className:`text-accent-blue font-mono text-xs bg-dark-surface px-1.5 py-0.5 rounded truncate`,children:y.toolName}),(0,Q.jsx)(`span`,{className:`text-dark-muted/50`,children:F}),(0,Q.jsx)(`span`,{className:`text-dark-muted/50`,children:E.label}),y.timeoutAction&&(0,Q.jsxs)(`span`,{className:`text-xs ${y.timeoutAction===`deny`?`text-accent-red`:`text-accent-green`}`,children:[`timeout: `,W?`${y.timeoutAction===`allow`?`auto-allow`:`auto-deny`}${y.timeoutMs?` (${(y.timeoutMs/1e3).toFixed(0)}s)`:``}`:n(`timeoutWaitUser`)]})]}),D?(0,Q.jsx)(le,{text:D.text,mono:D.mono}):k?(0,Q.jsx)(le,{text:k}):null,(w.level===`CRITICAL`||w.level===`HIGH`)&&(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs px-2 py-1.5 rounded ${T.bg} ${T.text}`,children:[(0,Q.jsx)(b,{size:13}),(0,Q.jsx)(`span`,{children:w.level===`CRITICAL`?n(`highRiskWarning`):n(`mediumRiskConfirm`)})]}),(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Q.jsxs)(K,{variant:`accent`,onClick:z,disabled:u,children:[(0,Q.jsx)(`span`,{className:`text-badge font-mono bg-accent-fg/20 rounded px-1`,children:`1`}),(0,Q.jsx)(`span`,{children:ne.allow.label}),(0,Q.jsx)(`span`,{className:`text-meta text-accent-fg/70 hidden sm:inline`,children:q})]}),(0,Q.jsxs)(`button`,{onClick:H,disabled:u,className:`inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-dark-border bg-dark-bg text-dark-text hover:bg-dark-hover text-sm transition-colors disabled:opacity-50`,children:[(0,Q.jsx)(`span`,{className:`text-badge font-mono text-dark-muted bg-dark-surface rounded px-1`,children:`3`}),(0,Q.jsx)(`span`,{children:ne.allow_session.label}),(0,Q.jsx)(`span`,{className:`text-meta text-dark-muted/60 hidden sm:inline`,children:ce})]}),(0,Q.jsxs)(`button`,{onClick:U,disabled:u,className:`inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-dark-border bg-dark-bg text-dark-text hover:bg-dark-hover text-sm transition-colors disabled:opacity-50`,children:[(0,Q.jsx)(`span`,{className:`text-badge font-mono text-dark-muted bg-dark-surface rounded px-1`,children:`4`}),(0,Q.jsx)(`span`,{children:ne.auto.label}),(0,Q.jsx)(`span`,{className:`text-meta text-dark-muted/60 hidden sm:inline`,children:de})]}),(0,Q.jsx)(`span`,{className:`flex-1`}),(0,Q.jsxs)(`button`,{onClick:V,disabled:u,className:`inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-dark-muted hover:bg-accent-red/15 hover:text-accent-red text-sm transition-colors disabled:opacity-50`,children:[(0,Q.jsx)(`span`,{className:`text-badge font-mono text-dark-muted/60 rounded px-1`,children:`2`}),(0,Q.jsx)(`span`,{children:ne.deny.label}),(0,Q.jsx)(`span`,{className:`text-meta text-dark-muted/60 hidden sm:inline`,children:J})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-dark-muted/60`,children:[(0,Q.jsx)(`span`,{children:n(`shortcutHint`)}),(0,Q.jsx)(`span`,{children:C>0?n(`morePending`,{n:C}):n(`lastItem`)})]})]})})}var cr=`dsc-auto-access-banner-dismissed`,lr=(0,Z.memo)(function(){let{t:e}=I(),n=se(e=>e.mode),[r,i]=(0,Z.useState)(()=>localStorage.getItem(cr)===`1`);(0,Z.useEffect)(()=>{J(n===`normal`?`act`:n)||localStorage.getItem(cr)===`1`&&i(!1)},[n]);let a=(0,Z.useCallback)(e=>{e&&localStorage.setItem(cr,`1`),i(!0)},[]);return!(n!==`normal`&&J(n))||r?null:(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5 px-4 py-1 text-meta leading-snug text-accent-yellow/75 bg-accent-yellow/[0.05] border-b border-accent-yellow/10 select-none`,role:`note`,title:e(`autoAccess.desc`),children:[(0,Q.jsx)(t,{size:11,className:`shrink-0 text-accent-yellow/70`}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1 truncate`,children:[(0,Q.jsx)(`span`,{className:`font-medium`,children:e(`autoAccess.title`)}),(0,Q.jsxs)(`span`,{className:`text-accent-yellow/60`,children:[` · `,e(`autoAccess.desc`)]})]}),(0,Q.jsx)(`button`,{onClick:()=>a(!1),className:`shrink-0 rounded p-0.5 text-accent-yellow/50 hover:text-accent-yellow hover:bg-accent-yellow/10 transition-colors`,title:e(`autoAccess.dismiss`),"aria-label":e(`autoAccess.dismiss`),children:(0,Q.jsx)(C,{size:11})}),(0,Q.jsx)(`button`,{onClick:()=>a(!0),className:`shrink-0 rounded px-1 py-px text-badge text-accent-yellow/50 hover:text-accent-yellow hover:bg-accent-yellow/10 transition-colors whitespace-nowrap`,children:e(`autoAccess.neverShow`)})]})});function ur(e,t){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t)}…`:n}function dr(e){return ur(e,12)}function fr(){return`custom-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function pr(e,t){return e.some(e=>e.kind===`scenario`&&e.id===t)}function mr(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id!=`string`||t.id===``||typeof t.label!=`string`||t.label===``||typeof t.hint!=`string`?!1:t.kind===`template`?typeof t.templateId==`string`&&t.templateId!==``:t.kind!==void 0&&t.kind!==`prompt`?!1:typeof t.prompt==`string`&&t.prompt!==``}function hr(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&t.id!==``&&typeof t.label==`string`&&t.label!==``&&Array.isArray(t.scenarios)&&t.scenarios.length>0&&t.scenarios.every(mr)}function gr(e){let t=e(`chat.start.categories`,{returnObjects:!0,defaultValue:[]});return Array.isArray(t)?t.filter(hr):[]}var _r=`tpl:`,vr=`tpl-`;function yr(e){return e.trim().toLowerCase()}function br(e){let t=new Map;for(let n of e){let e=(n.category??``).trim();if(!e)continue;let r=(n.name??``).trim();if(!r)continue;let i={id:`${vr}${n.id}`,label:r,hint:n.description??``,prompt:``,kind:`template`,templateId:n.id},a=t.get(e);a?a.push(i):t.set(e,[i])}return[...t].map(([e,t])=>({id:`${_r}${e}`,label:e,scenarios:t}))}function xr(e,t){if(t.length===0)return e;let n=e.map(e=>({...e})),r=new Set(n.map(e=>e.id)),i=new Map(n.map((e,t)=>[yr(e.label),t]));for(let e of t){let t=yr(e.label),a=i.get(t);if(a!==void 0){let t=n[a];n[a]={...t,scenarios:[...t.scenarios,...e.scenarios]}}else r.has(e.id)||(r.add(e.id),i.set(t,n.length),n.push(e))}return n}function Sr(e,t,n){let r=new Map;for(let t of e)for(let e of t.scenarios)r.set(e.id,e);let i=new Set,a=[];for(let e of t){if(i.has(e.id))continue;if(i.add(e.id),e.kind===`custom`){a.push({id:e.id,label:e.label,hint:ur(e.prompt,56),prompt:e.prompt});continue}let t=r.get(e.id);t&&a.push(t)}return Tr(a,n).slice(0,6)}function Cr(e){return e<5?`chat.start.greetingDawn`:e<11?`chat.start.greetingMorning`:e<13?`chat.start.greetingNoon`:e<18?`chat.start.greetingAfternoon`:`chat.start.greetingEvening`}function wr(e,t,n){let r=e(Cr(t)),i=(n??``).trim();return i?e(`chat.start.withName`,{greeting:r,name:i}):r}function Tr(e,t){return e.map((e,n)=>({scenario:e,index:n,count:t[e.id]??0})).sort((e,t)=>t.count-e.count||e.index-t.index).map(e=>e.scenario)}function Er(e,t){return e.length===0||!t?null:e.find(e=>e.id===t)??null}var $=W()(G((e,t)=>({categoryId:null,clickCounts:{},favorites:[],suggestionsHidden:!0,prefillNonce:0,setCategoryId:t=>e({categoryId:t,suggestionsHidden:!1}),recordUse:t=>e(e=>({clickCounts:{...e.clickCounts,[t]:(e.clickCounts[t]??0)+1},favorites:e.favorites.some(e=>e.id===t)?e.favorites:[{kind:`scenario`,id:t},...e.favorites]})),toggleFavorite:t=>e(e=>({favorites:e.favorites.some(e=>e.kind===`scenario`&&e.id===t)?e.favorites.filter(e=>e.kind!==`scenario`||e.id!==t):[{kind:`scenario`,id:t},...e.favorites]})),removeFavorite:t=>e(e=>({favorites:e.favorites.filter(e=>e.id!==t)})),addCustomFavorite:(n,r)=>{let i=r.trim();if(!i)return null;let a=fr(),o=new Set(t().favorites.map(e=>e.id));for(;o.has(a);)a=fr();let s={kind:`custom`,id:a,label:n.trim()||dr(i),prompt:i};return e(e=>({favorites:[s,...e.favorites]})),s},toggleSuggestions:()=>e(e=>({suggestionsHidden:!e.suggestionsHidden})),requestFocus:()=>e(e=>({prefillNonce:e.prefillNonce+1})),reset:()=>e({categoryId:null,clickCounts:{},favorites:[],suggestionsHidden:!0,prefillNonce:0})}),{name:`deepseekcode-start-page-storage`,partialize:e=>({categoryId:e.categoryId,clickCounts:e.clickCounts,favorites:e.favorites,suggestionsHidden:e.suggestionsHidden}),version:2,migrate:(e,t)=>{let n=t??0;if(n>=2||!e||typeof e!=`object`)return e;let r=e,i=n<1||r.suggestionsHidden,a=n<1?Object.entries(r.clickCounts??{}).sort((e,t)=>t[1]-e[1]).slice(0,6).map(([e])=>e):r.favoriteIds??[];return{categoryId:r.categoryId??null,clickCounts:r.clickCounts??{},suggestionsHidden:i,favorites:a.map(e=>({kind:`scenario`,id:e}))}}}));function Dr(e){return typeof e!=`string`||!e?null:e.split(/[\\/]+/).pop()||null}var Or={enabled:!0,exists:!1,name:null,file:null};function kr(){let[e,t]=(0,Z.useState)(Or);return(0,Z.useEffect)(()=>{let e=!1,n=()=>{ye.profile.get().then(n=>{if(e||!n.success||!n.data)return;let r=n.data,i=r.enabled!==!1,a=r.exists===!0,o={enabled:i,exists:a,name:i&&r.name?r.name:null,file:i&&a?Dr(r.path):null};t(e=>e.enabled===o.enabled&&e.exists===o.exists&&e.name===o.name&&e.file===o.file?e:o)}).catch(()=>{})};return n(),window.addEventListener(Ee,n),()=>{e=!0,window.removeEventListener(Ee,n)}},[]),e}var Ar=(0,Z.memo)(function(){return(0,Q.jsxs)(`div`,{className:`relative isolate flex min-h-[8.5rem] w-full flex-col justify-end pb-1`,children:[(0,Q.jsx)(jr,{}),(0,Q.jsx)(Pr,{})]})}),jr=(0,Z.memo)(function(){let{t:e}=I(),{enabled:t,exists:n,name:r,file:i}=kr(),a=(0,Z.useMemo)(()=>wr(e,new Date().getHours(),r),[e,r]);return(0,Q.jsxs)(`div`,{className:`chat-col px-4 pt-2 sm:px-6`,children:[(0,Q.jsxs)(`h1`,{className:`text-2xl font-semibold leading-snug tracking-tight text-dark-text`,children:[(0,Q.jsx)(`span`,{className:`block`,children:a}),(0,Q.jsx)(`span`,{className:`block`,children:e(`chat.start.question`)})]}),(0,Q.jsx)(Mr,{enabled:t,exists:n,name:r,file:i})]})});function Mr({enabled:e,exists:t,name:n,file:r}){let{t:i}=I(),a=e?n?i(`chat.start.profileOn`,{name:n}):t?r?i(`chat.start.profileFile`,{file:r}):i(`chat.start.profileSet`):i(`chat.start.profileAnonymous`):i(`chat.start.profileDisabled`),o=(0,Z.useCallback)(()=>{typeof window<`u`&&window.dispatchEvent(new CustomEvent(`switch-tab`,{detail:{tab:`settings`,section:`profile`}}))},[]);return(0,Q.jsx)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:(0,Q.jsxs)(`button`,{type:`button`,onClick:o,title:i(`chat.start.profileHint`),className:`inline-flex min-w-0 items-center gap-1.5 rounded-full border border-dark-border/70 bg-dark-surface/50 px-2.5 py-1 text-meta text-dark-muted transition-colors hover:border-accent-blue/40 hover:text-dark-text`,children:[(0,Q.jsx)(w,{size:11,"aria-hidden":`true`,className:`shrink-0`}),(0,Q.jsx)(`span`,{className:`truncate`,children:a}),(0,Q.jsxs)(`span`,{className:`shrink-0 text-dark-muted/70`,children:[`· `,i(`chat.start.profileEdit`)]})]})})}var Nr=[{glyph:`/`,labelKey:`shortcuts.slashCommand`},{glyph:`@`,labelKey:`shortcuts.fileRef`},{glyph:`!`,labelKey:`shortcuts.shellCommand`},{glyph:`$`,labelKey:`shortcuts.skillRef`}],Pr=(0,Z.memo)(function(){let{t:e}=I();return(0,Q.jsx)(`ul`,{"data-testid":`start-tips`,"aria-label":e(`shortcuts.title`),className:`chat-col mt-3 flex flex-wrap items-center gap-x-4 gap-y-1.5 px-4 sm:px-6`,children:Nr.map(t=>(0,Q.jsxs)(`li`,{className:`inline-flex items-center gap-1.5 text-badge text-dark-muted/60`,children:[(0,Q.jsx)(`kbd`,{className:`rounded border border-dark-border bg-dark-bg px-1.5 py-0.5 font-mono text-badge leading-none text-dark-muted`,children:t.glyph}),(0,Q.jsx)(`span`,{children:e(t.labelKey)})]},t.glyph))})}),Fr=(0,Z.memo)(function({sessionId:e,onStartTemplate:t}){let{t:r}=I(),[i,a]=(0,Z.useState)([]);(0,Z.useEffect)(()=>{if(!t)return;let e=!1;return ye.templates.list().then(t=>{!e&&t.success&&t.data&&a(t.data)}).catch(()=>{}),()=>{e=!0}},[t]);let o=(0,Z.useMemo)(()=>xr(gr(r),br(i)),[r,i]),s=$(e=>e.categoryId),c=$(e=>e.setCategoryId),l=$(e=>e.clickCounts),d=$(e=>e.favorites),f=$(e=>e.recordUse),m=$(e=>e.toggleFavorite),h=$(e=>e.removeFavorite),g=$(e=>e.addCustomFavorite),_=$(e=>e.suggestionsHidden),v=$(e=>e.toggleSuggestions),y=$(e=>e.requestFocus),b=(0,Z.useMemo)(()=>Er(o,s),[o,s]),x=(0,Z.useCallback)(()=>c(null),[c]),w=(0,Z.useMemo)(()=>b?Tr(b.scenarios,l):Sr(o,d,l),[b,o,d,l]),[T,E]=(0,Z.useState)(!1),[D,O]=(0,Z.useState)(``),[k,A]=(0,Z.useState)(``),j=(0,Z.useCallback)(()=>{E(!1),O(``),A(``)},[]),N=(0,Z.useCallback)(()=>{E(!0),_&&v()},[_,v]),F=(0,Z.useCallback)(e=>{e.preventDefault(),g(D,k)&&j()},[g,j,D,k]),L=(0,Z.useCallback)(t=>{e&&(B.getState().setSessionInput(e,t.prompt),f(t.id),y())},[e,f,y]),[R,z]=(0,Z.useState)(null),[ee,V]=(0,Z.useState)(``),H=(0,Z.useCallback)(async e=>{V(``);let t=await ye.templates.get(e);!t.success||!t.data?V(r(`templates.loadFailed`)):(z(t.data),_&&v())},[r,_,v]),U=(0,Z.useCallback)(e=>{e.kind===`template`&&e.templateId?t&&H(e.templateId):L(e)},[t,H,L]),W=(0,Z.useRef)([]),[G,K]=(0,Z.useState)(0),q=(0,Z.useCallback)((e,t,n)=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let n=e.key===`ArrowDown`?Math.min(t+1,w.length-1):Math.max(t-1,0);K(n),W.current[n]?.focus()}else e.key===`Tab`&&(e.preventDefault(),U(n))},[U,w.length]);return o.length===0?null:(0,Q.jsxs)(`div`,{className:`start-col max-md:order-3 px-4 pb-4 sm:px-6`,children:[(0,Q.jsxs)(`div`,{role:`tablist`,"aria-label":r(`chat.start.categoriesLabel`),onKeyDown:e=>{e.key===`Escape`&&s&&(e.preventDefault(),x())},className:`snap-row mt-5 flex items-center gap-2 overflow-x-auto pb-1`,children:[o.map(e=>{let t=e.id===s;return(0,Q.jsxs)(`span`,{"data-testid":`start-chip`,"data-category-id":e.id,"data-selected":t?`true`:void 0,className:`inline-flex shrink-0 items-center overflow-hidden rounded-full border transition-colors focus-within:ring-1 focus-within:ring-accent-blue/60 ${t?`border-transparent bg-gradient-to-r rtl:bg-gradient-to-l from-accent-blue to-accent-purple text-accent-fg shadow-sm`:`border-dark-border/70 text-dark-muted hover:border-accent-blue/40 hover:text-dark-text`}`,children:[(0,Q.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,"data-testid":`start-chip-label`,onClick:()=>c(t?null:e.id),className:`py-1 text-meta transition-colors focus-visible:outline-none ${t?`ps-3 pe-1.5`:`px-3`}`,children:e.label}),t&&(0,Q.jsx)(`button`,{type:`button`,"data-testid":`start-chip-clear`,"aria-label":r(`chat.start.clearCategory`,{label:e.label}),title:r(`chat.start.clearCategory`,{label:e.label}),onClick:x,className:`py-1 pl-0 pe-2 text-accent-fg/75 transition-colors hover:text-accent-fg focus-visible:outline-none`,children:(0,Q.jsx)(C,{size:12,"aria-hidden":`true`})})]},e.id)}),(0,Q.jsx)(M,{size:13,"aria-hidden":`true`,className:`shrink-0 text-dark-muted/50`})]}),(0,Q.jsxs)(`div`,{className:`mt-2.5`,children:[(0,Q.jsxs)(`div`,{className:`mb-1 flex items-center justify-between gap-3`,children:[(0,Q.jsxs)(`span`,{className:`min-w-0 truncate text-meta text-dark-muted/60`,children:[b?r(`chat.start.categoryTitle`,{label:b.label}):r(`chat.start.frequentTitle`),(0,Q.jsx)(`span`,{className:`ms-2 text-dark-muted/40`,children:r(b?`chat.start.selectedHint`:`chat.start.frequentHint`)})]}),(0,Q.jsxs)(`span`,{className:`flex shrink-0 items-center gap-3`,children:[!b&&!T&&(0,Q.jsxs)(`button`,{type:`button`,"data-testid":`start-custom-add`,onClick:N,className:`inline-flex items-center gap-1 text-meta text-dark-muted/60 transition-colors hover:text-dark-text`,children:[(0,Q.jsx)(S,{size:11,"aria-hidden":`true`}),r(`chat.start.customAdd`)]}),(0,Q.jsx)(`button`,{type:`button`,onClick:v,className:`inline-flex items-center gap-1 text-meta text-dark-muted/60 transition-colors hover:text-dark-text`,children:_?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(P,{size:11,"aria-hidden":`true`}),r(`chat.start.show`)]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(n,{size:11,"aria-hidden":`true`}),r(`chat.start.hide`)]})})]})]}),ee&&(0,Q.jsx)(`div`,{"data-testid":`start-template-error`,className:`mb-2 text-meta text-accent-red`,children:ee}),R&&(0,Q.jsxs)(`div`,{"data-testid":`start-template-form`,className:`mb-2 rounded-xl border border-dark-border/60 bg-dark-surface/40 p-3`,children:[(0,Q.jsx)(`div`,{className:`mb-2 text-xs font-medium text-dark-text`,children:R.name}),(0,Q.jsx)(Se,{template:R,onCancel:()=>z(null),onSubmit:e=>{let n=R;z(null),t?.(n,e)},submitLabel:r(`templates.launch`)})]}),T&&!b&&(0,Q.jsxs)(`form`,{"data-testid":`start-custom-form`,onSubmit:F,className:`mb-2 flex flex-col gap-2 rounded-xl border border-dark-border/60 bg-dark-surface/40 p-3`,children:[(0,Q.jsx)(`input`,{"data-testid":`start-custom-label`,value:D,onChange:e=>O(e.target.value),placeholder:r(`chat.start.customLabelPlaceholder`),maxLength:40,className:`w-full rounded-md border border-dark-border/60 bg-dark-bg/60 px-2.5 py-1.5 text-xs text-dark-text placeholder:text-dark-muted/50 focus:border-accent-blue/50 focus-visible:outline-none`}),(0,Q.jsx)(`textarea`,{"data-testid":`start-custom-prompt`,value:k,onChange:e=>A(e.target.value),placeholder:r(`chat.start.customPromptPlaceholder`),rows:2,autoFocus:!0,className:`w-full resize-none rounded-md border border-dark-border/60 bg-dark-bg/60 px-2.5 py-1.5 text-xs leading-snug text-dark-text placeholder:text-dark-muted/50 focus:border-accent-blue/50 focus-visible:outline-none`}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,Q.jsx)(`button`,{type:`button`,"data-testid":`start-custom-cancel`,onClick:j,className:`rounded-md px-2.5 py-1 text-meta text-dark-muted transition-colors hover:text-dark-text`,children:r(`chat.start.customCancel`)}),(0,Q.jsx)(`button`,{type:`submit`,"data-testid":`start-custom-save`,disabled:!k.trim(),className:`rounded-md border border-accent-blue/40 bg-accent-blue/10 px-2.5 py-1 text-meta font-medium text-accent-blue transition-colors hover:bg-accent-blue/20 disabled:cursor-not-allowed disabled:border-dark-border/60 disabled:bg-transparent disabled:text-dark-muted/40`,children:r(`chat.start.customSave`)})]})]}),!_&&!R&&(w.length===0?T?null:(0,Q.jsx)(`p`,{"data-testid":`start-frequent-empty`,className:`rounded-xl border border-dashed border-dark-border/60 px-4 py-3 text-xs leading-relaxed text-dark-muted/70`,children:r(`chat.start.frequentEmpty`)}):(0,Q.jsx)(`div`,{className:`overflow-hidden rounded-xl border border-dark-border/60 bg-dark-surface/40`,children:w.map((e,t)=>{let n=pr(d,e.id);return(0,Q.jsxs)(`div`,{"data-testid":`start-row-shell`,className:`group flex items-center transition-colors hover:bg-dark-hover/40 focus-within:bg-dark-hover/40 ${t>0?`border-t border-dark-border/40`:``}`,children:[(0,Q.jsxs)(`button`,{ref:e=>{W.current[t]=e},type:`button`,"data-testid":`start-row`,"data-scenario-id":e.id,tabIndex:t===G?0:-1,onClick:()=>U(e),onKeyDown:n=>q(n,t,e),className:`flex min-w-0 flex-1 items-baseline gap-3 py-2.5 ps-4 pe-2 text-start transition-colors focus-visible:outline-none`,children:[(0,Q.jsx)(`span`,{className:`w-[84px] shrink-0 text-compact font-medium leading-snug text-dark-text`,children:e.label}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 border-s border-dark-border/50 ps-3 text-compact leading-snug text-dark-muted`,children:e.hint}),(0,Q.jsx)(p,{size:12,"aria-hidden":`true`,className:`mt-0.5 shrink-0 text-dark-muted/40`})]}),b?(0,Q.jsx)(`button`,{type:`button`,"data-testid":`start-row-favorite`,"aria-pressed":n,"aria-label":r(n?`chat.start.removeFavorite`:`chat.start.addFavorite`,{label:e.label}),title:r(n?`chat.start.removeFavorite`:`chat.start.addFavorite`,{label:e.label}),onClick:()=>m(e.id),className:`me-2 shrink-0 rounded-md p-1.5 transition-colors focus-visible:outline-none ${n?`text-accent-yellow`:`text-dark-muted/40 hover:text-dark-text`}`,children:(0,Q.jsx)(u,{size:13,"aria-hidden":`true`,className:n?`fill-current`:``})}):(0,Q.jsx)(`button`,{type:`button`,"data-testid":`start-row-remove`,"aria-label":r(`chat.start.removeFavorite`,{label:e.label}),title:r(`chat.start.removeFavorite`,{label:e.label}),onClick:()=>h(e.id),className:`me-2 shrink-0 rounded-md p-1.5 text-dark-muted/40 transition-colors hover:text-dark-text focus-visible:outline-none`,children:(0,Q.jsx)(C,{size:13,"aria-hidden":`true`})})]},e.id)})}))]})]})}),Ir=(0,Z.memo)(function({currentSessionId:e}){let{t}=I(),[n]=(0,Z.useState)(z),r=(0,Z.useCallback)(()=>{if(!n)return;let e=ee.getState();e.sessionTabs.some(e=>e.id===n.id)?e.setActiveSession(n.id):e.historySessions.some(e=>e.id===n.id)?e.restoreHistorySession(n.id):e.addSessionTab(n.title||void 0,n.dir||void 0,n.id),X.setSessionId(n.id)},[n]);if(!n||n.id===e)return null;let i=n.title.trim();return i?(0,Q.jsx)(`div`,{className:`mb-1 flex shrink-0 justify-center px-4 max-md:justify-start`,children:(0,Q.jsxs)(`button`,{type:`button`,onClick:r,title:t(`chat.resumeLastTitle`),"data-testid":`resume-last-session`,className:`group flex max-w-full items-center gap-1.5 rounded-full border border-dark-border/70 bg-dark-surface/50 px-2.5 py-1 text-meta leading-none text-dark-muted transition-colors hover:border-accent-blue/40 hover:bg-accent-blue/10 hover:text-dark-text focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent-blue/60`,children:[(0,Q.jsx)(A,{size:11,className:`shrink-0 text-dark-muted/70 group-hover:text-accent-blue`}),(0,Q.jsx)(`span`,{className:`truncate`,children:t(`chat.resumeLast`,{title:i})})]})}):null});function Lr(e){let{sessionId:t,isGenerating:n,messages:r}=e,{i18n:i}=I(),a=(0,Z.useRef)(n),o=(0,Z.useRef)(t);(0,Z.useEffect)(()=>{let e=a.current,s=o.current!==t;if(a.current=n,o.current=t,s||!e||n)return;let c=V();if(c.enabled&&c.autoPlay)for(let e=r.length-1;e>=0;e--){let t=r[e];if(!t||t.type!==`assistant`)continue;let n=(t.content||``).trim();if(n){if(!H(n))return;de(n,be(i.language));return}}},[n,t,r,i.language]),(0,Z.useEffect)(()=>()=>ce(),[t])}var Rr=[{mode:`chat`,Icon:o,labelKey:`trajectory.viewChat`},{mode:`trajectory`,Icon:s,labelKey:`trajectory.viewTrajectory`}],zr=[],Br=(0,Z.memo)(function({tabs:e,activeSessionId:t,onSend:n,onStop:r,onPause:i,onResume:a,activeTab:o,setActiveTab:s,createNewSession:c,clearMessages:l,setTheme:u,setThemePreset:d,setLogs:f,setUnreadLogs:p,onRegenerate:m,onRetryTurn:h,onDeleteMessage:g,onOpenSidebarView:_,hookDrawerOpen:v,onCloseHookDrawer:y,questionDrawerOpen:b,onCloseQuestionDrawer:x,workspaceDir:S,onWorkspaceSelect:C,onNewSessionInDir:w,errorLogs:T,onOpenLogs:E,onStartTemplate:D}){let O=(0,Z.useMemo)(()=>({setActiveTab:s,createNewSession:c,clearMessages:l,setTheme:u,setThemePreset:d,setLogs:f,setUnreadLogs:p}),[s,c,l,u,d,f,p]),[k,A]=(0,Z.useState)(`chat`),{t:j}=I(),M=B(e=>t?e.messagesBySession[t]??zr:zr),N=B(e=>t?e.generatingSessions.includes(t):!1),P=B(e=>t?e.pausedSessions.includes(t):!1);Lr({sessionId:t,isGenerating:N,messages:M});let F=e.find(e=>e.id===t)||null,L=(0,Z.useMemo)(()=>M.filter(e=>!e.deleted).length===0,[M]);(0,Z.useEffect)(()=>{F&&!L&&U({id:F.id,title:F.title,dir:S})},[F,L,S]);let R=$(e=>e.prefillNonce),z=(0,Z.useCallback)((e,r,i,a,o,s)=>{t&&n(t,e,r,i,a||s?{...a?{mentions:a,mentionDeliveryMode:o}:{},...s?{display:s}:{}}:void 0)},[n,t]),ee=(0,Z.useCallback)(async e=>{let n=t;if(!n)return;let r=`shell_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,i=Date.now();B.getState().addMessage(n,{id:r,type:`user`,content:`!${e}`,timestamp:i,noTruncate:!0,shellRun:{command:e,stdout:``,stderr:``,exitCode:null,durationMs:0,running:!0}});let a=await ye.shell.exec(e,S),o=a.success&&a.data?{...a.data,running:!1}:{command:e,stdout:``,stderr:``,exitCode:null,durationMs:Date.now()-i,running:!1,error:a.error||j(`chat.shellRequestFailedGeneric`)};B.getState().updateMessage(n,r,{shellRun:o})},[t,S,j]),V=(0,Z.useCallback)(e=>{t&&m&&m(t,e)},[m,t]),H=(0,Z.useCallback)(e=>{t&&g&&g(t,e)},[g,t]);return(0,Q.jsx)(`div`,{className:`flex-1 flex min-h-0`,children:(0,Q.jsxs)(`div`,{className:`flex-1 flex flex-col min-w-0 min-h-0`,children:[(0,Q.jsx)(lr,{}),F&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`flex h-7 shrink-0 items-center justify-end px-3`,children:(0,Q.jsxs)(`div`,{role:`radiogroup`,"aria-label":j(`trajectory.viewToggleTitle`),className:`relative inline-grid grid-cols-2 items-center rounded-full border border-dark-border bg-dark-surface/60 p-0.5 text-meta leading-none`,children:[(0,Q.jsx)(`span`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-y-0.5 left-0.5 w-[calc(50%-2px)] rounded-full ring-1 transition-transform duration-200 ease-out motion-reduce:transition-none ${k===`trajectory`?`translate-x-full bg-accent-blue/20 ring-accent-blue/40`:`translate-x-0 bg-dark-hover ring-dark-border`}`}),Rr.map(({mode:e,Icon:t,labelKey:n})=>{let r=k===e;return(0,Q.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":r,title:j(`trajectory.viewToggleTitle`),onClick:()=>A(e),className:`relative z-10 flex items-center justify-center gap-1 whitespace-nowrap rounded-full px-2.5 py-1 transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent-blue/60 ${r?`text-dark-text`:`text-dark-muted hover:text-dark-text`}`,children:[(0,Q.jsx)(t,{size:11}),j(n)]},e)})]})}),(0,Q.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col ${L&&k===`chat`?`justify-center overflow-y-auto custom-scrollbar py-2 max-md:justify-start`:``}`,children:[k===`chat`?(0,Q.jsx)(Q.Fragment,{children:L?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Ir,{currentSessionId:F.id}),(0,Q.jsx)(Ar,{})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(_e,{messages:M,isGenerating:N,isPaused:P,sessionId:F.id,onRegenerate:m?V:void 0,onRetryTurn:h,onDeleteMessage:g?H:void 0,onOpenSidebarView:_}),(0,Q.jsx)(sr,{isOpen:!!v,onCloseModal:y}),(0,Q.jsx)(ar,{isOpen:!!b,onClose:x??(()=>{})})]})}):(0,Q.jsx)(zn,{sessionId:F.id,messages:M,errorLogs:T,onOpenLogs:E}),(0,Q.jsx)(Q.Fragment,{children:(0,Q.jsx)(Vn,{activeSessionId:F.id})}),(0,Q.jsx)(ve,{sessionId:F.id,onSend:z,onRunShell:ee,onStop:()=>r(F.id),onPause:()=>i(F.id),onResume:()=>a(F.id),slashOptions:O,workspaceDir:S,onWorkspaceSelect:C?e=>C(e,F.id):void 0,onNewSessionInDir:w,focusRequest:R}),k===`chat`&&L&&(0,Q.jsx)(Fr,{sessionId:F.id,onStartTemplate:D})]})]})]})})});export{Br as SessionGrid};
@@ -0,0 +1 @@
1
+ .traj-root{border-bottom:1px solid var(--color-border,#80808040);background:var(--color-surface,#14161c99);-webkit-user-select:none;user-select:none;scrollbar-width:thin;flex-direction:column;flex-shrink:0;display:flex;position:relative;overflow:auto hidden}.traj-root::-webkit-scrollbar{height:8px}.traj-root::-webkit-scrollbar-thumb{background:#80808059;border-radius:4px}.traj-labels{z-index:1;height:16px;color:var(--color-muted,#969ba599);align-items:center;gap:8px;padding:0 8px;font-size:10px;display:flex;position:sticky;left:0}.traj-track{cursor:crosshair;touch-action:none;height:52px;position:relative;overflow:hidden}.traj-hoverLine{background:var(--color-accent,#5a8cff80);pointer-events:none;width:1px;top:0;bottom:0;left:var(--trajectory-hover-left);position:absolute}.traj-selection{pointer-events:none;top:0;bottom:0;left:var(--trajectory-selection-left);width:var(--trajectory-selection-width);background:#5a8cff24;border:1px solid #5a8cff66;position:absolute}.traj-selection[data-dragging]{background:#5a8cff38}.traj-turnBoundaries{pointer-events:none;position:absolute;inset:0}.traj-turnBoundary{width:1px;top:0;bottom:0;left:var(--trajectory-turn-left);background:#ffffff1f;position:absolute}.traj-lanes{position:absolute;inset:0}.traj-span{top:calc(var(--trajectory-span-lane) * 17px + 2px);white-space:nowrap;color:#ffffffbf;height:13px;left:var(--trajectory-span-left);width:var(--trajectory-span-width);cursor:pointer;background:#6e788c8c;border-radius:2px;padding:0 3px;font-size:9px;line-height:13px;position:absolute;overflow:hidden;container-type:inline-size}@container (width<=26px){.traj-spanLabel{display:none}}.traj-spanLabel{text-overflow:ellipsis;display:block;overflow:hidden}.traj-span[data-timeline-span=user]{background:#5a8cff8c}.traj-span[data-timeline-span=message]{background:#46be828c}.traj-span[data-timeline-span=tool],.traj-span[data-timeline-span=subtool]{background:#aa78f08c}.traj-span[data-timeline-span=compacted]{background:#e6aa3c8c}.traj-span[data-error]{background:#e65050a6}.traj-span[data-current]{outline:1px solid #ffffffb3}.traj-span[data-hovered]{filter:brightness(1.25)}.traj-span[data-search-match=true]{outline:1px solid #5ac8ffcc}.traj-span[data-search-match=false]{opacity:.35}.traj-span[data-selected=true]{outline:1px solid #5a8cffe6}.traj-span[data-assistant-timing]{background:linear-gradient(to right, #46be82d9 0%, #46be82d9 var(--trajectory-assistant-ttft), #46be8266 var(--trajectory-assistant-ttft), #46be8266 100%)}.traj-detailTab{color:var(--color-muted,#969ba5cc);cursor:pointer;border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;display:inline-flex}.traj-detailTab:hover{background:#8080801f}.traj-detailTab[data-active=true]{color:var(--color-text,#e6e8eef2);background:#5a8cff29}.traj-detailBody{white-space:pre-wrap;word-break:break-word;color:var(--color-text,#e6e8eee6);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.5}.traj-detailKey{color:var(--color-muted,#969ba5b3)}.traj-detailValue{color:var(--color-text,#e6e8eee6)}
@@ -0,0 +1,4 @@
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{A as t,Cr as n,Ct as r,Et as i,G as a,Hn as o,In as s,Jn as c,Kn as l,Kr as u,Lr as d,M as f,Qn as p,R as m,Ut as h,Vn as g,W as _,Wn as v,Z as y,_n as b,a as x,cr as S,en as C,et as w,h as T,ht as E,in as D,jt as O,k,kn as A,l as j,lr as M,mn as N,n as ee,nt as P,pr as F,q as I,st as L,ut as te,wr as R,wt as ne,x as re,xr as ie,zn as ae}from"./icons-CYDRRPKW.js";import{t as z}from"./useTranslation-B-mfApCn.js";import{a as oe,i as se,n as ce,o as le,t as ue}from"./ttsSettings-BwXYpDnk.js";import{a as B,c as V,i as de,o as fe,s as H,t as U}from"./useConfirm-Da8iQ_DZ.js";import{D as pe,O as me}from"./src-49LUQhkG.js";import{a as he,i as ge,o as _e,r as ve,t as ye}from"./sttLanguages-CSNMgUTz.js";import{r as W,t as G}from"./api-plEYhRn0.js";import{A as be,C as xe,D as Se,M as Ce,O as we,S as Te,T as Ee,r as De,v as K,y as Oe}from"./settingsStore-Xqln0d91.js";import{I as ke}from"./markdown-N5__3T-w.js";import"./common-Bbatsa0-.js";import{t as Ae}from"./whatsNewStore-LpdLRLGl.js";import{E as je,p as q}from"./index-CTbLW314.js";import{n as J}from"./profileChange-xrd7jkii.js";var Y=e(u(),1),X=ke();function Me(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function Ne(e){return new Date(e).toLocaleString()}function Pe(){let[e,t]=(0,Y.useState)([]),[n,r]=(0,Y.useState)(null),[i,a]=(0,Y.useState)(``),[o,s]=(0,Y.useState)(``),[c,l]=(0,Y.useState)(!1),[u,d]=(0,Y.useState)(!1),f=(0,Y.useCallback)(async()=>{l(!0);try{let e=await G.config.files.list();e.success&&Array.isArray(e.data)&&t(e.data)}catch{V.error(`Failed to load config files`)}finally{l(!1)}},[]),p=(0,Y.useCallback)(async e=>{try{let t=await G.config.files.read(e);if(t.success&&t.data){let e=t.data;r(e.name),a(e.content),s(e.content)}}catch{V.error(`Failed to read ${e}`)}},[]);(0,Y.useEffect)(()=>{f()},[f]);let m=(0,Y.useCallback)(async()=>{if(n){d(!0);try{let e=await G.config.files.write(n,i);e.success?(s(i),V.success(`${n} saved`),f()):V.error(e.error||`Failed to save`)}catch{V.error(`Failed to save file`)}finally{d(!1)}}},[n,i,f]),h=i!==o,g=n?.endsWith(`.yaml`)||n?.endsWith(`.yml`),_=n?.endsWith(`.json`);return(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsx)(`h4`,{className:`text-sm font-medium text-dark-text`,children:`Config Files`}),(0,X.jsx)(`button`,{onClick:f,disabled:c,className:`p-1.5 rounded hover:bg-dark-hover transition-colors text-dark-muted`,title:`Refresh file list`,children:(0,X.jsx)(P,{size:14,className:c?`animate-spin`:``})})]}),e.length===0&&!c&&(0,X.jsx)(`p`,{className:`text-xs text-dark-muted`,children:`No config files found in ~/.agent/`}),e.length>0&&(0,X.jsxs)(`div`,{className:`flex gap-3`,children:[(0,X.jsx)(`div`,{className:`w-48 shrink-0 space-y-0.5 max-h-[300px] overflow-y-auto custom-scrollbar`,children:e.map(e=>(0,X.jsxs)(`button`,{onClick:()=>p(e.name),className:`w-full text-start px-2.5 py-1.5 rounded text-xs flex items-center gap-2 transition-colors ${n===e.name?`bg-accent-blue/10 text-accent-blue`:`text-dark-text hover:bg-dark-hover`}`,children:[(0,X.jsx)(A,{size:12,className:`shrink-0`}),(0,X.jsx)(`span`,{className:`truncate flex-1`,children:e.name}),!e.editable&&(0,X.jsx)(`span`,{className:`text-badge text-dark-muted shrink-0`,title:`Read-only`,children:`read`})]},e.name))}),n?(0,X.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between mb-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-dark-muted`,children:[(0,X.jsx)(`span`,{className:`text-dark-text font-medium`,children:n}),e.find(e=>e.name===n)&&(0,X.jsxs)(`span`,{children:[Me(e.find(e=>e.name===n).size),` · `,Ne(e.find(e=>e.name===n).modified)]}),h&&(0,X.jsxs)(`span`,{className:`text-accent-yellow flex items-center gap-1`,children:[(0,X.jsx)(T,{size:10}),`unsaved changes`]})]}),(0,X.jsx)(B,{variant:`accent`,size:`sm`,leftIcon:(0,X.jsx)(y,{size:12}),loading:u,disabled:!h,onClick:m,children:`Save`})]}),(0,X.jsxs)(`div`,{className:`relative`,children:[(0,X.jsx)(`pre`,{className:`w-full h-[260px] p-3 rounded-lg bg-dark-bg border border-dark-border font-mono text-xs leading-relaxed overflow-auto custom-scrollbar pointer-events-none`,dangerouslySetInnerHTML:{__html:i.split(`
2
+ `).map(e=>g?e.replace(/(#.*)$/,`<span class="text-dark-muted">$1</span>`).replace(/^(\s*)([\w-]+)(:)/,`$1<span class="text-accent-blue">$2</span>$3`).replace(/:\s+(true|false|null|~)(\s*)$/,`: <span class="text-accent-purple">$1</span>$2`).replace(/:\s+(\d+\.?\d*)(\s*)$/,`: <span class="text-accent-green">$1</span>$2`).replace(/:\s+"([^"]*)"(\s*)$/,`: <span class="text-accent-yellow">"$1"</span>$2`):_?e.replace(/(\s*"[^"]*")(\s*:)/g,`<span class="text-accent-blue">$1</span>$2`).replace(/:\s+(true|false|null)/g,`: <span class="text-accent-purple">$1</span>`).replace(/:\s+(\d+\.?\d*)/g,`: <span class="text-accent-green">$1</span>`).replace(/:\s+"([^"]*)"/g,`: <span class="text-accent-yellow">"$1"</span>`):e).join(`
3
+ `)||`&nbsp;`}}),(0,X.jsx)(`textarea`,{value:i,onChange:e=>a(e.target.value),className:`absolute inset-0 w-full h-full p-3 rounded-lg bg-transparent border border-dark-border font-mono text-xs leading-relaxed resize-none overflow-auto custom-scrollbar text-transparent caret-dark-text focus:outline-none focus:border-accent-blue/50`,style:{color:`transparent`},spellCheck:!1})]})]}):(0,X.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-xs text-dark-muted`,children:`Select a file to edit`})]})]})}var Fe=[{key:`pipIndexUrl`,labelKey:`stt.sources.pipIndexUrl`,placeholderKey:`stt.sources.phPipIndex`,preset:`pipIndexUrl`},{key:`pipExtraIndexUrl`,labelKey:`stt.sources.pipExtraIndexUrl`,placeholderKey:`stt.sources.phPipExtra`},{key:`proxy`,labelKey:`stt.sources.proxy`,placeholderKey:`stt.sources.phProxy`},{key:`hfEndpoint`,labelKey:`stt.sources.hfEndpoint`,placeholderKey:`stt.sources.phHub`,preset:`hfEndpoint`}],Ie=`w-full bg-dark-bg border border-dark-border rounded-lg px-3 py-1.5 text-sm text-dark-text font-mono focus:border-accent-blue/60 focus:ring-2 focus:ring-accent-blue/15 outline-none transition-all disabled:opacity-50`;function Le(){let{t:e}=z(),[t,r]=(0,Y.useState)(!1),[i,a]=(0,Y.useState)(!1),[o,s]=(0,Y.useState)(!1),[c,l]=(0,Y.useState)(!1),[u,d]=(0,Y.useState)(null),[f,p]=(0,Y.useState)({pipIndexUrl:``,pipExtraIndexUrl:``,proxy:``,hfEndpoint:``}),m=(0,Y.useCallback)(e=>{d(e),p({pipIndexUrl:e.settings.pipIndexUrl??``,pipExtraIndexUrl:e.settings.pipExtraIndexUrl??``,proxy:e.settings.proxy??``,hfEndpoint:e.settings.hfEndpoint??``})},[]),g=(0,Y.useCallback)(async()=>{s(!0);try{let e=await G.stt.getConfig();e.success&&e.data?m(e.data):e.error&&V.error(e.error)}catch{}s(!1),a(!0)},[m]);(0,Y.useEffect)(()=>{t&&!i&&g()},[t,i,g]);let _=u?.envKeys,v=u?.resolved.fromEnv??[],b=e=>v.includes(e),x=Object.keys(f).filter(e=>{let t=f[e].trim();return!t||b(e)?!1:e===`pipExtraIndexUrl`||e===`proxy`||t!==u?.official[e]}),S=Object.keys(f).some(e=>!b(e)&&f[e].trim()!==(u?.settings[e]??``)),C=(0,Y.useCallback)(async()=>{l(!0);try{let t={};for(let{key:e}of Fe)b(e)||(t[e]=f[e].trim()||null);let n=await G.stt.setConfig(t);n.success&&n.data?(V.success(e(`stt.sources.saved`)),await g()):V.error(n.error||e(`stt.sources.saveFailed`))}catch(e){V.error(e instanceof Error?e.message:String(e))}l(!1)},[f,b,g,e]),E=(0,Y.useCallback)(async()=>{l(!0);try{let t=await G.stt.setConfig({pipIndexUrl:null,pipExtraIndexUrl:null,proxy:null,hfEndpoint:null});t.success&&t.data?(V.success(e(`stt.sources.resetDone`)),await g()):V.error(t.error||e(`stt.sources.saveFailed`))}catch(e){V.error(e instanceof Error?e.message:String(e))}l(!1)},[g,e]);return(0,X.jsxs)(`div`,{className:`rounded-lg border border-dark-border bg-dark-surface overflow-hidden`,children:[(0,X.jsxs)(`button`,{type:`button`,className:`w-full flex items-center gap-2 px-3 py-2.5 text-start hover:bg-dark-hover transition-colors`,onClick:()=>r(e=>!e),children:[t?(0,X.jsx)(n,{size:14,className:`text-dark-muted`}):(0,X.jsx)(ie,{size:14,className:`text-dark-muted`}),(0,X.jsx)(N,{size:14,className:`text-accent-blue`}),(0,X.jsx)(`span`,{className:`text-sm font-medium text-dark-text flex-1`,children:e(`stt.sources.title`)}),x.length>0&&!t&&(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-accent-orange/15 text-accent-orange`,children:[(0,X.jsx)(T,{size:11}),e(`stt.sources.badgeCustom`,{count:x.length})]})]}),t&&(0,X.jsxs)(`div`,{className:`px-3 pb-3 space-y-3 border-t border-dark-border pt-3`,children:[(0,X.jsx)(`p`,{className:`text-meta text-dark-muted`,children:e(`stt.sources.hint`)}),o&&!u?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-dark-muted py-2`,children:[(0,X.jsx)(h,{size:13,className:`animate-spin`}),e(`stt.sources.loading`)]}):(0,X.jsxs)(X.Fragment,{children:[Fe.map(({key:t,labelKey:n,placeholderKey:r,preset:i})=>{let a=b(t),o=(_?.[t]??[]).join(` / `)||`ENV`,s=i?u?.presets?.[i]??[]:[];return(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-dark-muted mb-1`,children:[e(n),a&&(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-badge text-accent-yellow`,title:e(`stt.sources.envTitle`,{name:o}),children:[(0,X.jsx)(T,{size:11}),`env: `,o]})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`input`,{type:`text`,value:a?u?.resolved[t]??``:f[t],disabled:a,spellCheck:!1,placeholder:e(r),onChange:e=>p(n=>({...n,[t]:e.target.value})),className:Ie}),s.length>0&&(0,X.jsxs)(`select`,{value:``,disabled:a,title:e(`stt.sources.preset`),onChange:e=>{let n=s.find(t=>t.id===e.target.value);n&&p(e=>({...e,[t]:n.url}))},className:`shrink-0 bg-dark-bg border border-dark-border rounded-lg px-2 py-1.5 text-xs text-dark-text focus:border-accent-blue/60 outline-none transition-all disabled:opacity-50`,children:[(0,X.jsx)(`option`,{value:``,children:e(`stt.sources.preset`)}),s.map(e=>(0,X.jsx)(`option`,{value:e.id,children:e.label},e.id))]})]})]},t)}),x.length>0&&(0,X.jsxs)(`div`,{className:`rounded-md border border-accent-orange/30 bg-accent-orange/5 px-2.5 py-2 text-meta text-accent-orange flex items-start gap-1.5`,children:[(0,X.jsx)(T,{size:12,className:`mt-0.5 shrink-0`}),(0,X.jsx)(`span`,{children:e(`stt.sources.warning`)})]}),u&&!u.allowPrivateHosts&&(0,X.jsx)(`p`,{className:`text-badge text-dark-muted`,children:e(`stt.sources.privateBlocked`)}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2 pt-0.5`,children:[(0,X.jsx)(B,{variant:`accent`,size:`sm`,leftIcon:(0,X.jsx)(y,{size:13}),loading:c,disabled:!S,onClick:()=>void C(),children:e(`stt.sources.save`)}),(0,X.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm border border-dark-border text-dark-muted hover:border-dark-hover hover:text-dark-text transition-colors disabled:opacity-50`,disabled:c,onClick:()=>void E(),children:[(0,X.jsx)(w,{size:13}),e(`stt.sources.reset`)]}),(0,X.jsx)(`span`,{className:`text-badge text-dark-muted`,children:e(`stt.sources.httpsOnly`)})]})]})]})]})}function Re(){let{t:e}=z(),[t,n]=(0,Y.useState)(null),[r,i]=(0,Y.useState)(null),[a,o]=(0,Y.useState)({running:!1,logs:[]}),[s,l]=(0,Y.useState)(!1),u=(0,Y.useRef)(null),d=(0,Y.useRef)(a),f=(0,Y.useRef)(null),[m,g]=(0,Y.useState)(ge),_=(0,Y.useCallback)(e=>{g(e),ve(e),window.dispatchEvent(new CustomEvent(`stt-lang-changed`,{detail:{lang:e}}))},[]);(0,Y.useEffect)(()=>{d.current=a},[a]);let y=(0,Y.useCallback)(async()=>{l(!0);let e=await G.stt.status();e.success&&e.data?(n(e.data),e.data.env&&i(e.data.env)):e.error&&V.error(e.error),l(!1)},[]);(0,Y.useEffect)(()=>{y()},[y]);let b=(0,Y.useCallback)(async()=>{let e=await G.stt.installStatus();if(e.success&&e.data){let t=d.current.running;o(e.data),e.data.running?u.current=window.setTimeout(()=>void b(),1e3):(y(),t&&e.data.status===`done`&&window.dispatchEvent(new CustomEvent(`stt-backends-changed`)))}},[y]);(0,Y.useEffect)(()=>()=>{u.current&&window.clearTimeout(u.current)},[]),(0,Y.useEffect)(()=>{f.current&&(f.current.scrollTop=f.current.scrollHeight)},[a.logs]);let x=(0,Y.useCallback)(async()=>{let t=await G.stt.install();t.success&&t.data?.started?(o({running:!0,logs:[],status:`running`}),b()):t.data?.alreadyRunning?(V.info(e(`stt.setup.jobInProgress`)),b()):o({running:!1,logs:[],status:`error`,error:t.error||t.data?.error||`install failed`,manualCommand:t.data?.manualCommand})},[b,e]),S=(0,Y.useCallback)(async()=>{await G.stt.cancelInstall(),b()},[b]),w=(0,Y.useCallback)(t=>{navigator.clipboard.writeText(t).then(()=>V.success(e(`stt.setup.copySuccess`)),()=>V.error(e(`stt.setup.copyFailed`)))},[e]),E=a.running,D=!E&&a.status===`done`?t?.backends?.en:void 0,O=D?!D.installed:!1,A=t=>t?(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-accent-green/15 text-accent-green`,children:[(0,X.jsx)(F,{size:12}),e(`stt.setup.installed`)]}):(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-dark-hover text-dark-muted`,children:[(0,X.jsx)(M,{size:12}),e(`stt.setup.notInstalled`)]}),j=m===`en`?`base.en`:`base`,N=he(m),ee=()=>{let n=t?.backends?.en??{installed:!1,loaded:!1,model:`base.en`};return(0,X.jsxs)(`div`,{className:`rounded-lg border border-dark-border bg-dark-bg p-3 flex items-start justify-between gap-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-start gap-3 min-w-0`,children:[(0,X.jsx)(`div`,{className:`w-9 h-9 shrink-0 rounded-lg flex items-center justify-center text-sm font-semibold bg-accent-blue/15 text-accent-blue`,children:`W`}),(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,X.jsx)(`span`,{className:`text-sm font-medium text-dark-text`,children:e(`stt.setup.whisperTitle`)}),A(n.installed),(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-accent-blue/15 text-accent-blue`,children:[(0,X.jsx)(C,{size:12}),e(`stt.setup.inUse`)]})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2 mt-1 text-meta text-dark-muted`,children:[(0,X.jsx)(`code`,{className:`text-badge bg-dark-hover px-1.5 py-0.5 rounded`,children:`base.en / base`}),(0,X.jsx)(`span`,{children:e(`stt.setup.whisperDesc`)})]}),!n.installed&&(0,X.jsxs)(`p`,{className:`mt-1 text-meta text-accent-orange flex items-center gap-1`,children:[(0,X.jsx)(T,{size:11}),e(`stt.setup.engineNotInstalledHint`)]}),!n.installed&&n.error&&(0,X.jsxs)(`p`,{className:`mt-1 text-meta text-accent-orange break-all`,title:n.error,children:[(0,X.jsx)(T,{size:11}),e(`stt.setup.probeError`),n.error]})]})]}),(0,X.jsx)(`div`,{className:`shrink-0`,onClick:e=>e.stopPropagation(),children:E?(0,X.jsxs)(`button`,{className:`btn btn-secondary cursor-not-allowed opacity-70`,disabled:!0,children:[(0,X.jsx)(h,{size:14,className:`animate-spin`}),e(`stt.setup.installing`)]}):n.installed?(0,X.jsxs)(`button`,{className:`btn btn-ghost`,onClick:()=>void y(),title:e(`stt.setup.recheck`),children:[(0,X.jsx)(P,{size:14}),e(`stt.setup.recheck`)]}):(0,X.jsxs)(`button`,{className:`btn btn-accent`,onClick:()=>void x(),children:[(0,X.jsx)(v,{size:14}),e(`stt.setup.install`)]})})]})},I=r?.pythonAvailable&&r?.pipAvailable,L=a.error||t?.backends?.en?.error||null,te=!!r&&!I,R=(0,Y.useCallback)(()=>{q(e(`stt.setup.askAiPrompt`,{python:r?.pythonAvailable?`ok`:`missing`,pip:r?.pipAvailable?`ok`:`missing`,error:L||`—`})),V.info(e(`stt.setup.askAiHint`))},[r?.pipAvailable,r?.pythonAvailable,L,e]);return(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsxs)(`div`,{className:`rounded-lg border border-dark-border bg-dark-bg p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-dark-text`,children:[(0,X.jsx)(re,{size:14,className:`text-accent-blue`}),e(`stt.setup.envCard`)]}),(0,X.jsxs)(`button`,{className:`btn btn-ghost`,onClick:()=>void y(),disabled:s,children:[(0,X.jsx)(P,{size:13,className:s?`animate-spin`:``}),e(`stt.setup.recheck`)]})]}),(0,X.jsxs)(`div`,{className:`mt-2.5 space-y-2`,children:[r?r.pythonAvailable?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-dark-text`,children:[(0,X.jsx)(F,{size:13,className:`text-accent-green`}),e(`stt.setup.pythonOk`,{version:(r.pythonVersion||``).replace(/^Python\s*/i,``)||r.pythonPath||`Python`}),r.pythonPath?(0,X.jsx)(`code`,{className:`text-badge text-dark-muted`,children:r.pythonPath}):null]}):(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2 rounded-md border border-accent-red/30 bg-accent-red/5 px-2.5 py-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-accent-red`,children:[(0,X.jsx)(T,{size:13}),e(`stt.setup.pythonMissing`)]}),(0,X.jsx)(`a`,{className:`btn btn-secondary !py-1 !px-2 text-xs`,href:`https://www.python.org/downloads/`,target:`_blank`,rel:`noreferrer`,children:e(`stt.setup.pythonGuide`)})]}):(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-dark-muted`,children:[(0,X.jsx)(h,{size:13,className:`animate-spin`}),e(`stt.setup.envChecking`)]}),r&&!r.pipAvailable&&(0,X.jsxs)(`div`,{className:`rounded-md border border-accent-red/30 bg-accent-red/5 px-2.5 py-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-accent-red`,children:[(0,X.jsx)(T,{size:13}),e(`stt.setup.pipMissing`)]}),(0,X.jsxs)(`div`,{className:`mt-1.5`,children:[(0,X.jsx)(`div`,{className:`text-badge text-dark-muted mb-1`,children:e(`stt.setup.pipGuide`)}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsxs)(`code`,{className:`flex-1 rounded bg-dark-bg border border-dark-border px-2 py-1 font-mono text-badge text-dark-text break-all select-all`,children:[r.pythonPath||`python`,` -m ensurepip --upgrade`]}),(0,X.jsx)(`button`,{className:`btn btn-ghost !py-1 !px-2 text-xs`,onClick:()=>w(`${r.pythonPath||`python`} -m ensurepip --upgrade`),children:(0,X.jsx)(p,{size:12})})]})]})]})]})]}),(te||!!L)&&(0,X.jsx)(`div`,{className:`px-1`,children:(0,X.jsx)(B,{variant:`secondary`,size:`sm`,leftIcon:(0,X.jsx)(k,{size:13,"aria-hidden":`true`}),onClick:R,children:e(`stt.setup.askAi`)})}),(0,X.jsxs)(`div`,{className:`rounded-lg border border-dark-border bg-dark-surface p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-dark-text`,children:[(0,X.jsx)(C,{size:14,className:`text-accent-blue`}),e(`stt.setup.defaultLang`)]}),(0,X.jsx)(`p`,{className:`mt-1 text-meta text-dark-muted`,children:e(`stt.setup.defaultLangHint`)}),(0,X.jsxs)(`div`,{className:`mt-2 flex items-center gap-2`,children:[(0,X.jsx)(`select`,{value:m,onChange:e=>_(e.target.value),className:`bg-dark-bg border border-dark-border rounded-lg px-2 py-1.5 text-xs text-dark-text focus:border-accent-blue/60 outline-none transition-all`,"aria-label":e(`stt.setup.defaultLang`),children:ye.map(e=>(0,X.jsx)(`option`,{value:e.code,children:e.label},e.code))}),(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-meta text-dark-muted`,children:[(0,X.jsx)(c,{size:11}),e(`stt.setup.modelForLang`,{lang:N.label,model:j})]})]})]}),ee(),(0,X.jsx)(Le,{}),E&&(0,X.jsxs)(`div`,{className:`rounded-lg border border-dark-border bg-dark-bg p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2 mb-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-accent-blue font-medium`,children:[(0,X.jsx)(h,{size:13,className:`animate-spin`}),e(`stt.setup.installing`),(0,X.jsx)(`span`,{className:`text-dark-muted font-normal`,children:`(faster-whisper)`})]}),(0,X.jsx)(`button`,{className:`btn btn-danger !py-1 !px-2 text-xs`,onClick:()=>void S(),children:e(`stt.setup.cancel`)})]}),(0,X.jsx)(`div`,{ref:f,className:`rounded-md border border-dark-border bg-dark-bg p-2.5 font-mono text-meta text-dark-muted overflow-auto max-h-48 whitespace-pre-wrap custom-scrollbar`,children:a.logs.length===0?(0,X.jsx)(`span`,{className:`text-dark-muted/70`,children:e(`stt.setup.logWaiting`)}):a.logs.join(`
4
+ `)})]}),!E&&a.status&&a.status!==`done`&&(0,X.jsxs)(`div`,{className:`rounded-lg border border-accent-red/30 bg-accent-red/5 p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-accent-red font-medium`,children:[(0,X.jsx)(T,{size:13}),a.status===`timeout`?e(`stt.setup.installTimeout`):a.status===`cancelled`?e(`stt.setup.installCancelled`):e(`stt.setup.installFailed`)]}),a.error?(0,X.jsx)(`p`,{className:`mt-1 text-xs text-accent-red/90 break-all`,children:a.error}):null,a.manualCommand&&(0,X.jsxs)(`div`,{className:`mt-2`,children:[(0,X.jsxs)(`div`,{className:`text-badge text-dark-muted mb-1 flex items-center gap-1`,children:[(0,X.jsx)(ne,{size:11}),e(`stt.setup.manualCommand`)]}),(0,X.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,X.jsx)(`code`,{className:`flex-1 rounded bg-dark-bg border border-dark-border px-2 py-1.5 font-mono text-badge text-dark-text break-all whitespace-pre-wrap select-all`,children:a.manualCommand}),(0,X.jsxs)(`button`,{className:`btn btn-ghost !py-1 !px-2 text-xs shrink-0`,onClick:()=>w(a.manualCommand),children:[(0,X.jsx)(p,{size:12}),e(`stt.setup.copyCommand`)]})]})]})]}),!E&&a.status===`done`&&!O&&(0,X.jsxs)(`div`,{className:`rounded-lg border border-accent-green/30 bg-accent-green/5 px-3 py-2.5 flex items-center gap-2 text-xs text-accent-green`,children:[(0,X.jsx)(F,{size:14}),e(`stt.setup.installDone`)]}),!E&&a.status===`done`&&O&&(0,X.jsxs)(`div`,{className:`rounded-lg border border-accent-orange/30 bg-accent-orange/5 p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-accent-orange font-medium`,children:[(0,X.jsx)(T,{size:13}),e(`stt.setup.installDoneButMissing`)]}),D?.error&&(0,X.jsx)(`p`,{className:`mt-1 text-xs text-accent-orange/90 break-all`,children:D.error}),(0,X.jsx)(`p`,{className:`mt-1 text-meta text-dark-muted`,children:e(`stt.setup.installDoneButMissingHint`)})]}),!E&&I&&t&&!t.backends.en?.installed&&(0,X.jsx)(`p`,{className:`text-meta text-dark-muted px-1`,children:e(`stt.setup.chooseHint`)})]})}function ze(){let{t:e}=z(),[t,n]=(0,Y.useState)(null),[r,i]=(0,Y.useState)({running:!1,logs:[]}),[a,o]=(0,Y.useState)(!1),[s,c]=(0,Y.useState)(ue),l=(0,Y.useRef)(null),u=(0,Y.useRef)(r),d=(0,Y.useRef)(null);(0,Y.useEffect)(()=>{u.current=r},[r]),(0,Y.useEffect)(()=>{c(se())},[]),(0,Y.useEffect)(()=>()=>{l.current&&window.clearTimeout(l.current)},[]),(0,Y.useEffect)(()=>{d.current&&(d.current.scrollTop=d.current.scrollHeight)},[r.logs]);let f=(0,Y.useCallback)(async()=>{o(!0);let e=await G.tts.status();e.success&&e.data?n(e.data):e.error&&V.error(e.error),o(!1)},[]);(0,Y.useEffect)(()=>{f()},[f]);let m=(0,Y.useCallback)(async()=>{let e=await G.tts.installStatus();if(!e.success||!e.data)return;let t=u.current.running;i(e.data),e.data.running?l.current=window.setTimeout(()=>void m(),1e3):t&&f()},[f]),g=(0,Y.useCallback)(async()=>{let t=await G.tts.install();t.success&&t.data?.started?(i({running:!0,logs:[],status:`running`}),m()):t.data?.alreadyRunning?(V.info(e(`tts.setup.jobInProgress`)),m()):i({running:!1,logs:[],status:`error`,error:t.error||t.data?.error||`install failed`,manualCommand:t.data?.manualCommand})},[m,e]),_=(0,Y.useCallback)(async()=>{await G.tts.cancelInstall(),m()},[m]),y=(0,Y.useCallback)(t=>{navigator.clipboard.writeText(t).then(()=>V.success(e(`tts.setup.copySuccess`)),()=>V.error(e(`tts.setup.copyFailed`)))},[e]),x=(0,Y.useCallback)(e=>{c(oe(e))},[]),S=t?.engine,C=t?.service===`ok`,w=S?.voiceNames??[],E=t?.env,D=E?!E.pythonAvailable:!1,O=t?.missingWeights??S?.missingWeights??[];return(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsxs)(`div`,{className:`rounded-lg border border-dark-border p-3 space-y-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,X.jsx)(`span`,{className:`text-sm font-medium`,children:e(`tts.setup.engine`)}),((e,t)=>(0,X.jsxs)(`span`,{className:H(`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium`,e?`bg-accent-green/15 text-accent-green`:`bg-dark-hover text-dark-muted`),children:[e?(0,X.jsx)(F,{size:12}):(0,X.jsx)(M,{size:12}),t]}))(C,e(C?`tts.setup.ready`:`tts.setup.notReady`))]}),(0,X.jsx)(`button`,{type:`button`,className:`p-1.5 rounded-md hover:bg-dark-hover text-dark-muted`,onClick:()=>void f(),disabled:a,title:e(`tts.setup.refresh`),children:(0,X.jsx)(P,{size:14,className:H(a&&`animate-spin`)})})]}),t?.error&&(0,X.jsxs)(`div`,{className:`flex items-start gap-2 text-xs text-accent-red`,children:[(0,X.jsx)(T,{size:12,className:`mt-0.5 shrink-0`}),(0,X.jsx)(`span`,{className:`break-all`,children:t.error})]}),O.length>0&&(0,X.jsx)(`div`,{className:`text-xs text-dark-muted`,children:e(`tts.setup.missingWeights`,{files:O.join(`、`)})}),D&&(0,X.jsx)(`div`,{className:`text-xs text-accent-yellow`,children:e(`tts.setup.envMissing`)}),S?.model&&(0,X.jsx)(`div`,{className:`text-xs text-dark-muted`,children:e(`tts.setup.model`,{model:S.model})}),r.running?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(h,{size:14,className:`animate-spin text-accent-blue`}),(0,X.jsxs)(`span`,{className:`text-xs text-dark-muted`,children:[e(`tts.setup.installing`),r.phase?` · ${r.phase}`:``]}),(0,X.jsx)(`button`,{type:`button`,className:`ms-auto text-xs text-accent-red hover:underline`,onClick:()=>void _(),children:e(`tts.setup.cancel`)})]}):(0,X.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-2 px-3 py-1.5 rounded-md text-xs bg-accent-blue/15 text-accent-blue hover:bg-accent-blue/25 disabled:opacity-50`,onClick:()=>void g(),disabled:C,children:[(0,X.jsx)(v,{size:14}),e(C?`tts.setup.installed`:`tts.setup.install`)]}),r.status===`error`&&r.error&&!r.running&&(0,X.jsxs)(`div`,{className:`flex items-start gap-2 text-xs text-accent-red`,children:[(0,X.jsx)(T,{size:12,className:`mt-0.5 shrink-0`}),(0,X.jsx)(`span`,{className:`break-all`,children:r.error})]}),r.manualCommand&&!r.running&&(0,X.jsxs)(`div`,{className:`rounded-md bg-dark-bg border border-dark-border p-2 space-y-1`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs text-dark-muted`,children:[(0,X.jsx)(re,{size:12}),e(`tts.setup.manualCommand`)]}),(0,X.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-1 text-xs text-accent-blue hover:underline`,onClick:()=>y(r.manualCommand),children:[(0,X.jsx)(p,{size:12}),e(`tts.setup.copy`)]})]}),(0,X.jsx)(`code`,{className:`block text-xs break-all text-dark-text`,children:r.manualCommand})]}),r.logs.length>0&&(0,X.jsx)(`div`,{ref:d,className:`max-h-40 overflow-auto rounded-md bg-dark-bg border border-dark-border p-2`,children:r.logs.map((e,t)=>(0,X.jsx)(`div`,{className:`text-xs font-mono text-dark-muted whitespace-pre-wrap break-all`,children:e},t))})]}),(0,X.jsxs)(`div`,{className:`rounded-lg border border-dark-border p-3 space-y-3`,children:[(0,X.jsxs)(`label`,{className:`flex items-center justify-between gap-3 cursor-pointer`,children:[(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-sm`,children:[(0,X.jsx)(j,{size:14,className:`text-accent-blue`}),e(`tts.setup.enabled`)]}),(0,X.jsx)(`input`,{type:`checkbox`,className:`accent-accent-blue`,checked:s.enabled,onChange:e=>x({enabled:e.target.checked})})]}),(0,X.jsxs)(`label`,{className:H(`flex items-center justify-between gap-3 cursor-pointer`,!s.enabled&&`opacity-50`),children:[(0,X.jsxs)(`span`,{className:`text-sm`,children:[e(`tts.setup.autoPlay`),(0,X.jsx)(`span`,{className:`block text-xs text-dark-muted`,children:e(`tts.setup.autoPlayHint`)})]}),(0,X.jsx)(`input`,{type:`checkbox`,className:`accent-accent-blue`,checked:s.autoPlay,disabled:!s.enabled,onChange:e=>x({autoPlay:e.target.checked})})]}),(0,X.jsxs)(`div`,{className:H(`flex items-center justify-between gap-3`,!s.enabled&&`opacity-50`),children:[(0,X.jsx)(`span`,{className:`text-sm`,children:e(`tts.setup.voice`)}),(0,X.jsxs)(`select`,{className:`bg-dark-bg border border-dark-border rounded-md px-2 py-1 text-xs max-w-[60%]`,value:s.voice??``,disabled:!s.enabled||w.length===0,onChange:e=>x({voice:e.target.value||null}),children:[(0,X.jsx)(`option`,{value:``,children:e(`tts.setup.voiceAuto`)}),w.map(e=>(0,X.jsx)(`option`,{value:e,children:e},e))]})]}),(0,X.jsxs)(`label`,{className:H(`flex items-center justify-between gap-3`,!s.enabled&&`opacity-50`),children:[(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-sm`,children:[(0,X.jsx)(b,{size:14,className:`text-accent-blue`}),e(`tts.setup.speed`)]}),(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[(0,X.jsx)(`input`,{type:`range`,min:ce,max:2,step:.1,value:s.speed,disabled:!s.enabled,onChange:e=>x({speed:Number(e.target.value)})}),(0,X.jsx)(`span`,{className:`text-xs text-dark-muted w-8 text-end`,children:s.speed.toFixed(1)})]})]})]})]})}function Z({label:e,value:t,onChange:n,min:r,max:i,disabled:a,envOverridden:o,hint:s}){return(0,X.jsxs)(`div`,{className:`mb-3`,children:[(0,X.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-dark-muted mb-1`,children:[e,o&&(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs text-accent-yellow`,title:s,children:[(0,X.jsx)(T,{size:12}),` env`]})]}),(0,X.jsx)(`input`,{type:`number`,value:t,onChange:e=>n(e.target.value),min:r,max:i,disabled:a||o,className:`w-40 bg-dark-bg border border-dark-border rounded-lg px-3 py-1.5 text-sm text-dark-text font-mono focus:border-accent-blue/60 focus:ring-2 focus:ring-accent-blue/15 outline-none transition-all disabled:opacity-50`})]})}function Be(){let{t:e}=z(),[t,n]=(0,Y.useState)(!0),[r,i]=(0,Y.useState)(!1),[a,o]=(0,Y.useState)({}),[s,c]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)(``),[d,f]=(0,Y.useState)(null),[p,m]=(0,Y.useState)(!1),[g,_]=(0,Y.useState)(``),[v,y]=(0,Y.useState)(``),[b,x]=(0,Y.useState)(``),[S,C]=(0,Y.useState)(``),[w,E]=(0,Y.useState)(``),D=(0,Y.useCallback)(async()=>{n(!0);try{let e=await G.config.context.get();if(e.success&&e.data){let t=e.data.values??{};o(e.data.envOverridden??{}),c(e.data.effective.offload),u(e.data.defaultArtifactRoot??``),f(e.data.stats??null),m(typeof t.artifactOffload==`boolean`?t.artifactOffload:e.data.effective.offload),_(typeof t.artifactDir==`string`?t.artifactDir:``),y(t.artifactMaxTotalMb==null?``:String(t.artifactMaxTotalMb)),x(t.artifactTtlDays==null?``:String(t.artifactTtlDays)),C(t.outboundToolBytes==null?``:String(t.outboundToolBytes)),E(t.turnBudgetTokens==null?``:String(t.turnBudgetTokens))}}catch{}n(!1)},[]);return(0,Y.useEffect)(()=>{D()},[D]),t?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-dark-muted py-2`,children:[(0,X.jsx)(h,{size:14,className:`animate-spin`}),e(`common.loading`)]}):(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`p`,{className:`text-sm text-dark-muted mb-3`,children:e(`settings.contextOffload.desc`)}),(0,X.jsxs)(`label`,{className:`flex items-center justify-between mb-4 cursor-pointer`,children:[(0,X.jsxs)(`span`,{className:`text-sm`,children:[e(`settings.contextOffload.enableLabel`),(0,X.jsxs)(`span`,{className:`ms-2 text-xs ${s?`text-accent-green`:`text-dark-muted`}`,children:[`(`,e(`settings.contextOffload.currently`),`: `,s?`ON`:`OFF`,`)`]})]}),(0,X.jsx)(`button`,{role:`switch`,"aria-checked":p,onClick:()=>m(!p),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${p?`bg-accent-green`:`bg-dark-border`}`,children:(0,X.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${p?`translate-x-6`:`translate-x-1`}`})})]}),(0,X.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-x-6`,children:[(0,X.jsx)(Z,{label:e(`settings.contextOffload.maxTotalMb`),value:v,onChange:y,min:1,envOverridden:a.artifactMaxTotalMb}),(0,X.jsx)(Z,{label:e(`settings.contextOffload.ttlDays`),value:b,onChange:x,min:1,max:365,envOverridden:a.artifactTtlDays}),(0,X.jsx)(Z,{label:`${e(`settings.contextOffload.outboundBytes`)} (${e(`settings.contextOffload.optional`)})`,value:S,onChange:C,min:1024,envOverridden:a.outboundToolBytes}),(0,X.jsx)(Z,{label:e(`settings.contextOffload.turnBudget`),value:w,onChange:E,min:1e3,envOverridden:a.turnBudgetTokens})]}),(0,X.jsxs)(`div`,{className:`mb-3`,children:[(0,X.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-dark-muted mb-1`,children:[e(`settings.contextOffload.dir`),` (`,e(`settings.contextOffload.optional`),`)`,a.artifactDir&&(0,X.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs text-accent-yellow`,children:[(0,X.jsx)(T,{size:12}),` env`]})]}),(0,X.jsx)(`input`,{type:`text`,value:g,onChange:e=>_(e.target.value),disabled:a.artifactDir,placeholder:l,className:`w-full bg-dark-bg border border-dark-border rounded-lg px-3 py-1.5 text-sm text-dark-text font-mono focus:border-accent-blue/60 focus:ring-2 focus:ring-accent-blue/15 outline-none transition-all disabled:opacity-50`})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,X.jsx)(B,{variant:`accent`,size:`sm`,onClick:async()=>{i(!0);try{let t={artifactOffload:p};a.artifactDir||(t.artifactDir=g.trim()||null),!a.artifactMaxTotalMb&&v.trim()&&(t.artifactMaxTotalMb=parseInt(v,10)),!a.artifactTtlDays&&b.trim()&&(t.artifactTtlDays=parseInt(b,10)),!a.outboundToolBytes&&S.trim()&&(t.outboundToolBytes=parseInt(S,10)),!a.turnBudgetTokens&&w.trim()&&(t.turnBudgetTokens=parseInt(w,10));for(let n of[`artifactMaxTotalMb`,`artifactTtlDays`,`outboundToolBytes`,`turnBudgetTokens`])if(n in t&&(isNaN(t[n])||t[n]<=0)){V.error(e(`settings.contextOffload.invalidNumber`)),i(!1);return}let n=await G.config.context.save(t);n.success?(V.success(e(`settings.contextOffload.saved`)),await D()):V.error(n.error||e(`settings.contextOffload.saveFailed`))}catch(e){V.error(e instanceof Error?e.message:String(e))}i(!1)},loading:r,disabled:t,children:e(`common.save`)}),(0,X.jsx)(`span`,{className:`text-xs text-dark-muted`,children:e(`settings.contextOffload.envHint`)})]}),d&&d.count>0&&(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-2`,children:e(`settings.contextOffload.stats`,{count:d.count,size:(d.totalBytes/1024/1024).toFixed(1)})})]})}var Ve=[32e3,64e3,128e3,256e3,512e3,1e6,2e6],He=1e3;function Ue(){let{t:e}=z(),t=le(e=>e.maxContextTokens),n=le(e=>e.setMaxContextTokens),[r,i]=(0,Y.useState)(String(t)),[a,o]=(0,Y.useState)(null),[s,c]=(0,Y.useState)(!0),[l,u]=(0,Y.useState)(!1),d=(0,Y.useCallback)(async()=>{c(!0);try{let e=await G.config.provider.get();if(e.success&&e.data){o(e.data.defaultProvider??null);let t=e.data.active?.contextWindow;typeof t==`number`&&t>0&&(n(t),i(String(t)))}}catch{}c(!1)},[n]);(0,Y.useEffect)(()=>{d()},[d]);let f=(0,Y.useCallback)(async t=>{let n=Number.parseInt(t,10);if(!Number.isFinite(n)||n<He)V.error(e(`settings.contextWindow.invalid`));else if(!a)V.error(e(`settings.contextWindow.noProvider`));else{u(!0);try{let t=await G.config.provider.save({provider:a,contextWindow:n});t.success?(V.success(e(`settings.contextWindow.saved`)),await d()):V.error(t.error||e(`settings.contextWindow.saveFailed`))}catch(e){V.error(e instanceof Error?e.message:String(e))}u(!1)}},[a,d,e]),p=e=>e>=1e6?`${(e/1e6).toFixed(0)}M`:`${(e/1e3).toFixed(0)}K`;return s?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-dark-muted py-2`,children:[(0,X.jsx)(h,{size:14,className:`animate-spin`}),e(`common.loading`)]}):(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`p`,{className:`text-sm text-dark-muted mb-3`,children:e(`settings.contextWindow.desc`)}),(0,X.jsxs)(`div`,{className:`flex items-center gap-3 mb-3`,children:[(0,X.jsx)(`input`,{type:`number`,"aria-label":e(`settings.contextWindow.label`),"data-testid":`context-window-input`,value:r,onChange:e=>i(e.target.value),min:He,max:1e7,step:1e3,className:`w-32 bg-dark-bg border border-dark-border rounded-lg px-3 py-1.5 text-sm text-dark-text font-mono focus:border-accent-blue/60 focus:ring-2 focus:ring-accent-blue/15 outline-none transition-all`}),(0,X.jsx)(`span`,{className:`text-sm text-dark-muted`,children:e(`settings.contextWindow.tokens`)}),(0,X.jsx)(B,{variant:`accent`,size:`sm`,onClick:()=>void f(r),loading:l,"data-testid":`context-window-apply`,children:e(`settings.contextWindow.apply`)})]}),(0,X.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:Ve.map(e=>(0,X.jsx)(`button`,{type:`button`,"data-testid":`context-window-preset-${e}`,onClick:()=>{i(String(e)),f(String(e))},className:`px-3 py-1 rounded-lg text-xs border border-dark-border text-dark-muted hover:bg-dark-hover hover:text-dark-text transition-colors`,children:p(e)},e))}),(0,X.jsxs)(`p`,{className:`text-xs text-dark-muted mt-2`,children:[e(`settings.contextWindow.current`),`:`,` `,(0,X.jsx)(`span`,{className:`font-mono text-dark-text tabular-nums`,"data-testid":`context-window-current`,children:Number.parseInt(r,10).toLocaleString()}),` `,e(`settings.contextWindow.tokens`),a?` · ${e(`settings.contextWindow.provider`,{provider:a})}`:``]}),(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-1`,children:e(`settings.contextWindow.catalogHint`)})]})}var We=`bg-dark-bg border border-dark-border rounded-lg px-3 py-1.5 text-sm text-dark-text focus:border-accent-blue/60 focus:ring-2 focus:ring-accent-blue/15 outline-none transition-all disabled:opacity-50`;function Q({checked:e,onChange:t,disabled:n}){return(0,X.jsx)(`button`,{role:`switch`,"aria-checked":e,disabled:n,onClick:()=>t(!e),className:`relative inline-flex h-6 w-11 shrink-0 items-center rounded-full transition-colors disabled:opacity-40 ${e?`bg-accent-green`:`bg-dark-border`}`,children:(0,X.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${e?`translate-x-6`:`translate-x-1`}`})})}function Ge(){let{t:e}=z(),[t,n]=(0,Y.useState)(!0),[r,i]=(0,Y.useState)(!1),[a,o]=(0,Y.useState)(null),[s,c]=(0,Y.useState)(`none`),[l,u]=(0,Y.useState)(``),[d,f]=(0,Y.useState)(!0),[p,m]=(0,Y.useState)(!1),[g,_]=(0,Y.useState)(!1),v=(0,Y.useCallback)(async()=>{n(!0);try{let e=await G.config.sandbox.get();if(e.success&&e.data){let t=e.data;o(t);let n=t.values??{};c(n.backend??`none`),u(n.policy??``),f(n.networkAccess!==!1),m(n.excludeTmpdirEnvVar===!0),_(n.excludeSlashTmp===!0)}}catch{}n(!1)},[]);(0,Y.useEffect)(()=>{v()},[v]);let y=l===`danger-full-access`,b=s!==`none`&&l!==``&&!y,x=b&&l===`workspace-write`,S=e=>{e?(c(`auto`),u(l===`read-only`||l===`workspace-write`?l:`workspace-write`)):(c(`none`),u(``))},C=e=>{u(e),e===`danger-full-access`&&c(`none`)},w=async()=>{if(s!==`none`&&l===``)V.error(e(`settings.sandbox.needPolicy`));else{i(!0);try{let t=await G.config.sandbox.save({backend:s,policy:s===`none`?null:l,networkAccess:d,excludeTmpdirEnvVar:p,excludeSlashTmp:g});t.success?(V.success(e(`settings.sandbox.saved`)),await v()):V.error(t.error||e(`settings.sandbox.saveFailed`))}catch(e){V.error(e instanceof Error?e.message:String(e))}i(!1)}};if(t)return(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-dark-muted py-2`,children:[(0,X.jsx)(h,{size:14,className:`animate-spin`}),e(`common.loading`)]});let E=a?.status,D=E?.backendId===`docker`,O=E!==void 0&&E.status===`enabled`&&E.backendId===null,k=E!==void 0&&E.status===`enabled`&&E.backendId!==null||D,A=k?F:E?.status===`invalid`?M:T,j=k?`text-accent-green`:E?.status===`invalid`?`text-accent-red`:O?`text-accent-yellow`:`text-dark-muted`,N=D?e(`settings.sandbox.statusDocker`):O?e(`settings.sandbox.statusNoBackend`):E?.status===`enabled`?e(`settings.sandbox.statusOn`,{backend:E.backendId??`—`}):E?.status===`invalid`?e(`settings.sandbox.statusInvalid`):e(`settings.sandbox.statusOff`);return(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`p`,{className:`text-sm text-dark-muted mb-3`,children:e(`settings.sandbox.desc`)}),(0,X.jsxs)(`div`,{className:`mb-4 rounded-lg border border-dark-border bg-dark-bg/40 px-3 py-2.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-sm ${j}`,children:[(0,X.jsx)(A,{size:14}),(0,X.jsx)(`span`,{children:N}),(0,X.jsxs)(`span`,{className:`text-xs text-dark-muted`,children:[`(`,e(`settings.sandbox.restartNotice`),`)`]})]}),E?.policyDescription&&(0,X.jsx)(`p`,{className:`mt-1 text-xs text-dark-muted`,children:E.policyDescription}),E?.reason&&(0,X.jsx)(`p`,{className:`mt-1 text-xs text-dark-muted`,children:E.reason}),E?.error&&(0,X.jsx)(`p`,{className:`mt-1 text-xs text-accent-red whitespace-pre-wrap`,children:E.error}),E&&E.capabilityGaps.length>0&&(0,X.jsx)(`p`,{className:`mt-1 text-xs text-accent-yellow`,children:e(`settings.sandbox.gaps`,{fields:E.capabilityGaps.join(`, `)})})]}),a?.envOverride.active&&(0,X.jsxs)(`p`,{className:`mb-3 flex items-start gap-1.5 text-xs text-accent-yellow`,children:[(0,X.jsx)(T,{size:12,className:`mt-0.5 shrink-0`}),a.envOverride.note||e(`settings.sandbox.envOverride`,{value:a.envOverride.value})]}),a?.status.platform===`win32`&&(0,X.jsxs)(`p`,{className:`mb-3 flex items-start gap-1.5 text-xs text-accent-yellow`,children:[(0,X.jsx)(T,{size:12,className:`mt-0.5 shrink-0`}),e(`settings.sandbox.win32Warn`)]}),a?.status.legacySource&&(0,X.jsx)(`p`,{className:`mb-3 text-xs text-accent-blue`,children:e(`settings.sandbox.legacySource`)}),a?.status.bothPresent&&(0,X.jsxs)(`p`,{className:`mb-3 flex items-start gap-1.5 text-xs text-accent-yellow`,children:[(0,X.jsx)(T,{size:12,className:`mt-0.5 shrink-0`}),e(`settings.sandbox.bothPresent`)]}),(0,X.jsxs)(`label`,{className:`flex items-center justify-between mb-4 cursor-pointer`,children:[(0,X.jsxs)(`span`,{className:`text-sm`,children:[e(`settings.sandbox.enableLabel`),(0,X.jsxs)(`span`,{className:`ms-2 text-xs ${b?`text-accent-green`:`text-dark-muted`}`,children:[`(`,e(`settings.sandbox.currently`),`: `,b?`ON`:`OFF`,`)`]})]}),(0,X.jsx)(Q,{checked:b,onChange:S})]}),(0,X.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-x-6`,children:[(0,X.jsxs)(`div`,{className:`mb-3`,children:[(0,X.jsx)(`label`,{className:`block text-sm text-dark-muted mb-1`,children:e(`settings.sandbox.backend`)}),(0,X.jsxs)(`select`,{value:s,onChange:e=>c(e.target.value),className:`w-full ${We}`,children:[(0,X.jsx)(`option`,{value:`auto`,children:e(`settings.sandbox.backendAuto`)}),(0,X.jsx)(`option`,{value:`bubblewrap`,children:e(`settings.sandbox.backendBubblewrap`)}),(0,X.jsx)(`option`,{value:`macos-sandbox`,children:e(`settings.sandbox.backendMacos`)}),(0,X.jsx)(`option`,{value:`windows-mxc`,children:e(`settings.sandbox.backendWindows`)}),(0,X.jsx)(`option`,{value:`none`,children:e(`settings.sandbox.backendNone`)})]})]}),(0,X.jsxs)(`div`,{className:`mb-3`,children:[(0,X.jsx)(`label`,{className:`block text-sm text-dark-muted mb-1`,children:e(`settings.sandbox.policy`)}),(0,X.jsxs)(`select`,{value:l,onChange:e=>C(e.target.value),disabled:s===`none`,className:`w-full ${We}`,children:[(0,X.jsx)(`option`,{value:``,children:e(`settings.sandbox.policyEmpty`)}),(0,X.jsx)(`option`,{value:`read-only`,children:e(`settings.sandbox.policyReadOnly`)}),(0,X.jsx)(`option`,{value:`workspace-write`,children:e(`settings.sandbox.policyWorkspaceWrite`)}),(0,X.jsx)(`option`,{value:`danger-full-access`,children:e(`settings.sandbox.policyDanger`)})]}),y&&(0,X.jsx)(`p`,{className:`mt-1 text-xs text-accent-yellow`,children:e(`settings.sandbox.policyDangerHint`)})]})]}),(0,X.jsxs)(`label`,{className:`flex items-center justify-between mb-4 cursor-pointer`,children:[(0,X.jsxs)(`span`,{className:`text-sm`,children:[e(`settings.sandbox.networkAccess`),(0,X.jsx)(`span`,{className:`block text-xs text-dark-muted mt-0.5`,children:e(`settings.sandbox.networkAccessHint`)})]}),(0,X.jsx)(Q,{checked:d,onChange:f,disabled:!b})]}),x&&(0,X.jsxs)(`div`,{className:`mb-4 rounded-lg border border-dark-border px-3 py-2.5`,children:[(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mb-2`,children:e(`settings.sandbox.advancedHint`)}),(0,X.jsxs)(`label`,{className:`flex items-center justify-between mb-2 cursor-pointer`,children:[(0,X.jsx)(`span`,{className:`text-sm`,children:e(`settings.sandbox.excludeTmpdir`)}),(0,X.jsx)(Q,{checked:p,onChange:m})]}),(0,X.jsxs)(`label`,{className:`flex items-center justify-between cursor-pointer`,children:[(0,X.jsx)(`span`,{className:`text-sm`,children:e(`settings.sandbox.excludeSlashTmp`)}),(0,X.jsx)(Q,{checked:g,onChange:_})]})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,X.jsx)(B,{variant:`accent`,size:`sm`,onClick:w,loading:r,children:e(`common.save`)}),(0,X.jsx)(`span`,{className:`text-xs text-dark-muted`,children:e(`settings.sandbox.restartHint`)})]})]})}function $({icon:e,iconColor:t,title:n,children:r}){return(0,X.jsxs)(`div`,{className:`rounded-xl border border-dark-border bg-dark-bg/40 p-4 mb-4`,children:[(0,X.jsxs)(`h3`,{className:`font-medium mb-3 flex items-center gap-2`,children:[(0,X.jsx)(e,{size:16,className:t}),n]}),r]})}var Ke=8e3,qe=[`assistant`,`pet`,`lover`];function Je(){let[e,t]=U(),{t:n}=z(),[r,i]=(0,Y.useState)(void 0),[a,s]=(0,Y.useState)(!0),[c,l]=(0,Y.useState)(!1),[u,d]=(0,Y.useState)(!1),[f,p]=(0,Y.useState)(``),[m,h]=(0,Y.useState)(``),[g,_]=(0,Y.useState)(!1),v=(0,Y.useCallback)(async()=>{s(!0);try{let e=await G.profile.get();e.success&&e.data?i(e.data):V.error(e.error||n(`settings.profile.loadFailed`))}catch(e){V.error(`${n(`settings.profile.loadFailed`)}: ${e instanceof Error?e.message:String(e)}`)}s(!1)},[n]);(0,Y.useEffect)(()=>{v()},[v]);let y=r?.maxBytes??Ke,b=(0,Y.useMemo)(()=>{let e=f.trim(),t=m.trim(),n=e?`---\nname: ${e}\n---\n\n${t}\n`:t?`${t}\n`:``;return new TextEncoder().encode(n).length},[f,m]),x=async()=>{if(!r||c)return;let e=!r.enabled;l(!0),i({...r,enabled:e});try{let t=await G.config.profile.set({enabled:e});t.success?J():(i(t=>t&&{...t,enabled:!e}),V.error(t.error||n(`settings.profile.saveFailed`)))}catch(t){i(t=>t&&{...t,enabled:!e}),V.error(`${n(`settings.profile.saveFailed`)}: ${t instanceof Error?t.message:String(t)}`)}l(!1)},C=async()=>{if(!g){_(!0);try{let e=await G.profile.raw();e.success&&e.data?(p(e.data.name??``),h(e.data.content),d(!0)):V.error(e.error||n(`settings.profile.loadFailed`))}catch(e){V.error(`${n(`settings.profile.loadFailed`)}: ${e instanceof Error?e.message:String(e)}`)}_(!1)}},w=()=>{d(!1),p(``),h(``)},D=async e=>{let r=n(`settings.profile.templates.${e}Body`),i=m.trim();(!i||i===r.trim()||await t({message:n(`settings.profile.templates.overwriteConfirm`)}))&&h(r)},O=async()=>{if(!c){if(!f.trim()&&!m.trim())V.error(n(`settings.profile.empty`));else{l(!0);try{let e=await G.profile.set({name:f.trim()?f.trim():null,body:m});e.success?(V.success(n(`settings.profile.saveOk`)),d(!1),p(``),h(``),J(),await v()):V.error(e.error||n(`settings.profile.saveFailed`))}catch(e){V.error(`${n(`settings.profile.saveFailed`)}: ${e instanceof Error?e.message:String(e)}`)}l(!1)}}},k=async()=>{if(!c&&await t({message:n(`settings.profile.clearConfirm`),variant:`danger`})){l(!0);try{let e=await G.profile.clear();e.success?(V.success(n(`settings.profile.clearOk`)),w(),J(),await v()):V.error(e.error||n(`settings.profile.clearFailed`))}catch(e){V.error(`${n(`settings.profile.clearFailed`)}: ${e instanceof Error?e.message:String(e)}`)}l(!1)}};return a?(0,X.jsx)(`div`,{className:`text-sm text-dark-muted`,children:n(`settings.profile.loading`)}):r?(0,X.jsxs)(X.Fragment,{children:[e,(0,X.jsxs)(`div`,{className:`flex items-start justify-between gap-3 py-1 mb-3`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsxs)(`div`,{className:`text-sm text-dark-text font-medium flex items-center gap-2`,children:[(0,X.jsx)(S,{size:15,className:`text-accent-purple shrink-0`}),n(`settings.profile.enabled`)]}),(0,X.jsx)(`div`,{className:`text-xs text-dark-muted mt-1`,children:n(`settings.profile.enabledHint`)})]}),(0,X.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":r.enabled,"aria-label":n(`settings.profile.enabled`),disabled:c,onClick:()=>void x(),className:`relative w-9 h-5 rounded-full transition-colors shrink-0 mt-0.5 ${r.enabled?`bg-accent-blue`:`bg-dark-border`} ${c?`opacity-60`:``}`,children:(0,X.jsx)(`span`,{className:`absolute top-0.5 left-0 w-4 h-4 rounded-full bg-white shadow transition-transform ${r.enabled?`translate-x-[18px]`:`translate-x-0.5`}`})})]}),(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mb-4 leading-relaxed`,children:n(`settings.profile.hint`)}),(0,X.jsxs)(`div`,{className:`mb-4`,children:[(0,X.jsxs)(`div`,{className:`text-xs font-medium text-dark-text mb-1.5 flex items-center gap-1.5`,children:[(0,X.jsx)(A,{size:13,className:`text-dark-muted`}),n(`settings.profile.path`)]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,X.jsx)(`code`,{className:`flex-1 min-w-0 truncate bg-dark-bg border border-dark-border rounded px-2 py-1 text-meta font-mono text-dark-text`,title:r.path,children:r.path}),(0,X.jsx)(`span`,{className:`shrink-0 px-1.5 py-0.5 rounded text-badge border ${r.exists?`bg-accent-green/10 text-accent-green border-accent-green/30`:`bg-dark-hover text-dark-muted border-dark-border`}`,children:r.exists?n(`settings.profile.exists`):n(`settings.profile.missing`)})]}),(0,X.jsx)(`div`,{className:`mt-1.5 text-meta text-dark-muted font-mono`,children:n(`settings.profile.size`,{used:r.bytes,max:r.maxBytes})}),r.truncated&&(0,X.jsxs)(`div`,{className:`mt-1.5 flex items-start gap-1.5 text-meta text-accent-yellow`,children:[(0,X.jsx)(T,{size:12,className:`mt-[1px] shrink-0`}),(0,X.jsx)(`span`,{children:n(`settings.profile.truncated`)})]})]}),u?(0,X.jsxs)(`div`,{className:`border-t border-dark-border pt-3`,children:[(0,X.jsxs)(`div`,{className:`mb-4`,children:[(0,X.jsx)(`div`,{className:`text-xs font-medium text-dark-text mb-1.5`,children:n(`settings.profile.templates.title`)}),(0,X.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:qe.map(e=>(0,X.jsx)(`button`,{type:`button`,onClick:()=>void D(e),className:`px-2.5 py-1 rounded-lg text-xs text-dark-muted bg-dark-hover border border-dark-border hover:text-dark-text hover:bg-accent-blue/10 hover:border-accent-blue/40 transition-colors`,children:n(`settings.profile.templates.${e}`)},e))}),(0,X.jsx)(`div`,{className:`text-meta text-dark-muted mt-1.5 leading-relaxed`,children:n(`settings.profile.templates.hint`)})]}),(0,X.jsxs)(`label`,{className:`block mb-3`,children:[(0,X.jsx)(`div`,{className:`text-xs font-medium text-dark-text mb-1`,children:n(`settings.profile.name`)}),(0,X.jsx)(`input`,{type:`text`,value:f,onChange:e=>p(e.target.value),placeholder:n(`settings.profile.namePlaceholder`),maxLength:200,className:`w-full bg-dark-bg border border-dark-border rounded-lg px-3 py-1.5 text-sm text-dark-text placeholder-dark-muted focus:border-accent-blue/60 focus:ring-2 focus:ring-accent-blue/15 outline-none transition-all`})]}),(0,X.jsx)(`div`,{className:`text-xs font-medium text-dark-text mb-1`,children:n(`settings.profile.body`)}),(0,X.jsx)(`textarea`,{value:m,onChange:e=>h(e.target.value),placeholder:n(`settings.profile.bodyPlaceholder`),rows:10,className:`w-full bg-dark-bg border border-dark-border rounded-lg px-3 py-2 text-sm text-dark-text placeholder-dark-muted focus:border-accent-blue/60 focus:ring-2 focus:ring-accent-blue/15 outline-none transition-all resize-y font-mono leading-relaxed`}),(0,X.jsx)(`div`,{className:`mt-1 text-meta font-mono ${b>y?`text-accent-yellow`:`text-dark-muted`}`,children:n(`settings.profile.size`,{used:b,max:y})}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2 mt-3`,children:[(0,X.jsx)(B,{variant:`accent`,size:`sm`,onClick:()=>void O(),loading:c,children:n(`settings.profile.save`)}),(0,X.jsx)(`button`,{onClick:w,disabled:c,className:`px-3 py-1.5 rounded-lg text-sm text-dark-muted hover:text-dark-text hover:bg-dark-hover transition-colors disabled:opacity-50`,children:n(`settings.profile.cancel`)})]})]}):(0,X.jsxs)(`div`,{className:`border-t border-dark-border pt-3`,children:[r.preview?(0,X.jsx)(`p`,{className:`text-xs text-dark-muted whitespace-pre-wrap break-words mb-3 leading-relaxed max-h-40 overflow-y-auto custom-scrollbar`,children:r.preview}):(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mb-3`,children:n(`settings.profile.empty`)}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsxs)(`button`,{onClick:()=>void C(),disabled:g||c,className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm bg-accent-blue/10 text-accent-blue hover:bg-accent-blue/20 border border-accent-blue/30 transition-colors disabled:opacity-50`,children:[(0,X.jsx)(E,{size:13}),n(`settings.profile.edit`)]}),r.exists&&(0,X.jsxs)(`button`,{onClick:()=>void k(),disabled:c,className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm bg-accent-red/10 text-accent-red hover:bg-accent-red/20 border border-accent-red/30 transition-colors disabled:opacity-50`,children:[(0,X.jsx)(o,{size:13}),n(`settings.profile.clear`)]})]})]})]}):(0,X.jsxs)(`button`,{onClick:()=>void v(),className:`text-sm text-accent-blue hover:underline`,children:[n(`settings.profile.loadFailed`),` — `,n(`common.retry`)]})}async function Ye(e){try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch{}try{let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.top=`-1000px`,t.style.opacity=`0`,document.body.appendChild(t),t.select();let n=document.execCommand(`copy`);return document.body.removeChild(t),n}catch{return!1}}var Xe=e=>new Promise(t=>setTimeout(t,e));function Ze(){let{t:e}=z(),[t,n]=(0,Y.useState)(null),[r,i]=(0,Y.useState)(!1),[a,o]=(0,Y.useState)(null),[s,c]=(0,Y.useState)(null),[l,u]=U(),d=(0,Y.useCallback)(async()=>{let t=await G.system.network();return t.success&&t.data?(n(t.data),o(t.data.lastError)):o(t.error||e(`settings.network.loadFailed`)),t},[e]);(0,Y.useEffect)(()=>{d()},[d]);let f=t?!t.loopbackOnly:!1,m=(0,Y.useCallback)(async()=>{if(!t||r)return;let a=!f;if(!await u({message:e(a?`settings.network.confirmEnable`:`settings.network.confirmDisable`),variant:a?`default`:`danger`}))return;i(!0),o(null);let s=await G.system.setNetwork(a);if(!s.success)o(s.error||e(`settings.network.applyFailed`)),i(!1);else{V.info(e(a?`settings.network.enabledToast`:`settings.network.disabledToast`)),await Xe(900);for(let e=0;e<8;e++){let e=await G.system.network();if(e.success&&e.data&&(n(e.data),o(e.data.lastError),e.data.loopbackOnly===!a&&!e.data.lastError)){i(!1);return}await Xe(600)}o(e(`settings.network.applyFailed`)),i(!1)}},[r,u,f,t,e]),h=(0,Y.useCallback)(async e=>{await Ye(e)&&(c(e),setTimeout(()=>c(t=>t===e?null:t),1800))},[]),g=t?.lockedByHostOverride?e(`settings.network.lockedByHost`,{host:t.hostOverride||``}):t?.fromEnv?e(`settings.network.lockedByEnv`,{env:t.envKey}):null;return(0,X.jsxs)(X.Fragment,{children:[l,(0,X.jsx)(`p`,{className:`text-sm text-dark-muted mb-3`,children:e(`settings.network.description`)}),a&&(0,X.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-accent-red/40 bg-accent-red/10 px-3 py-2 mb-3`,children:[(0,X.jsx)(T,{size:14,className:`text-accent-red mt-0.5 shrink-0`}),(0,X.jsx)(`span`,{className:`text-xs text-accent-red break-all`,children:a})]}),(0,X.jsxs)(`label`,{className:`flex items-center justify-between gap-3 py-1 ${g?`cursor-not-allowed opacity-60`:`cursor-pointer`}`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`text-sm text-dark-text`,children:e(`settings.network.toggleLabel`)}),(0,X.jsx)(`div`,{className:`text-xs text-dark-muted mt-0.5`,children:e(`settings.network.toggleHint`)})]}),(0,X.jsx)(Qe,{checked:f,disabled:r||!t||!!g,onToggle:()=>void m(),label:e(`settings.network.toggleLabel`)})]}),r&&(0,X.jsx)(`p`,{className:`text-xs text-accent-blue mt-2`,children:e(`settings.network.pendingHint`)}),g&&(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-2`,children:g}),t&&(0,X.jsxs)(`div`,{className:`mt-3 pt-3 border-t border-dark-border space-y-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,X.jsx)(`span`,{className:`text-dark-muted`,children:e(f?`settings.network.stateLan`:`settings.network.stateLocal`)}),(0,X.jsxs)(`span`,{className:`text-dark-text font-mono`,children:[t.bindHost,`:`,t.httpPort]})]}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`div`,{className:`text-xs text-dark-muted mb-1`,children:e(`settings.network.addresses`)}),(0,X.jsx)(`div`,{className:`space-y-1`,children:(f&&t.lanUrls.length?t.lanUrls:[t.loopbackUrl]).map(t=>(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`code`,{className:`flex-1 min-w-0 break-all text-xs text-dark-text bg-dark-surface border border-dark-border rounded px-2 py-1 font-mono`,children:t}),(0,X.jsxs)(`button`,{type:`button`,onClick:()=>void h(t),title:e(`settings.network.copy`),className:`shrink-0 flex items-center gap-1 px-2 py-1 rounded text-xs text-dark-muted hover:text-dark-text hover:bg-dark-hover transition-colors`,children:[s===t?(0,X.jsx)(R,{size:13,className:`text-accent-green`}):(0,X.jsx)(p,{size:13}),e(s===t?`settings.network.copied`:`settings.network.copy`)]})]},t))}),f&&t.lanUrls.length===0&&(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-1`,children:e(`settings.network.noLanAddress`)})]})]}),f&&(0,X.jsxs)(`div`,{className:`mt-3 rounded-lg border border-accent-yellow/40 bg-accent-yellow/10 px-3 py-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs font-medium text-accent-yellow`,children:[(0,X.jsx)(T,{size:13}),e(`settings.network.warningTitle`)]}),(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-1`,children:e(`settings.network.warning`)}),(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-1`,children:t?.authTokenRequired?e(`settings.network.tokenHint`):e(`settings.network.noTokenHint`)})]}),(0,X.jsx)($e,{state:t,onState:n})]})}function Qe({checked:e,disabled:t,onToggle:n,label:r}){return(0,X.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":r,disabled:t,onClick:n,className:`relative w-9 h-5 rounded-full transition-colors shrink-0 disabled:cursor-not-allowed ${e?`bg-accent-green`:`bg-dark-border`}`,children:(0,X.jsx)(`span`,{className:`absolute top-0.5 left-0 w-4 h-4 rounded-full bg-white shadow transition-transform ${e?`translate-x-[18px]`:`translate-x-0.5`}`})})}function $e({state:e,onState:t}){let{t:n}=z(),[r,i]=(0,Y.useState)(!1),[a,o]=(0,Y.useState)(null),[s,c]=(0,Y.useState)(null),[l,u]=U(),d=e?.tailscale,f=(0,Y.useCallback)(async()=>{if(!d||r)return;let e=!d.serving;if(!await u({message:n(e?`settings.network.tailscale.confirmEnable`:`settings.network.tailscale.confirmDisable`),variant:e?`default`:`danger`}))return;i(!0),o(null);let a=await G.system.setTailscale(e);i(!1),!a.success||!a.data?o(a.error||n(`settings.network.tailscale.applyFailed`)):(t(a.data),V.info(a.data.message))},[r,u,t,n,d]),m=(0,Y.useCallback)(async e=>{await Ye(e)&&(c(e),setTimeout(()=>c(t=>t===e?null:t),1800))},[]),h=a||d?.lastError||d?.probeError,g=(0,Y.useCallback)(()=>{q(n(`settings.network.tailscale.askAiPrompt`,{state:d?.backendState||`unknown`,error:h||`—`})),V.info(n(`settings.network.tailscale.askAiHint`))},[h,n,d?.backendState]);if(!d)return null;let _=d.installed&&d.running,v=d.fromEnv?n(`settings.network.tailscale.lockedByEnv`,{env:d.envKey}):null;return(0,X.jsxs)(`div`,{className:`mt-4 pt-4 border-t border-dark-border`,children:[l,(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`text-sm text-dark-text`,children:n(`settings.network.tailscale.title`)}),(0,X.jsx)(`div`,{className:`text-xs text-dark-muted mt-0.5`,children:n(`settings.network.tailscale.hint`)})]}),(0,X.jsx)(Qe,{checked:d.serving,disabled:r||!_||!!v,onToggle:()=>void f(),label:n(`settings.network.tailscale.title`)})]}),!d.installed&&(0,X.jsxs)(`p`,{className:`text-xs text-accent-yellow mt-2`,children:[n(`settings.network.tailscale.notInstalled`),` `,(0,X.jsx)(`a`,{href:`https://tailscale.com/download`,target:`_blank`,rel:`noreferrer`,className:`underline hover:text-accent-blue`,children:`tailscale.com/download`})]}),d.installed&&!d.running&&(0,X.jsx)(`p`,{className:`text-xs text-accent-yellow mt-2`,children:n(`settings.network.tailscale.notRunning`,{state:d.backendState||`unknown`})}),r&&(0,X.jsx)(`p`,{className:`text-xs text-accent-blue mt-2`,children:n(`settings.network.tailscale.pendingHint`)}),h&&(0,X.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-accent-red/40 bg-accent-red/10 px-3 py-2 mt-2`,children:[(0,X.jsx)(T,{size:14,className:`text-accent-red mt-0.5 shrink-0`}),(0,X.jsx)(`span`,{className:`text-xs text-accent-red break-all`,children:h})]}),(!_||!!h)&&(0,X.jsx)(`div`,{className:`mt-2`,children:(0,X.jsx)(B,{variant:`secondary`,size:`sm`,leftIcon:(0,X.jsx)(k,{size:13,"aria-hidden":`true`}),onClick:g,children:n(`settings.network.tailscale.askAi`)})}),v&&(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-2`,children:v}),d.serving&&d.url&&(0,X.jsxs)(`div`,{className:`mt-2`,children:[(0,X.jsx)(`div`,{className:`text-xs text-dark-muted mb-1`,children:n(`settings.network.tailscale.address`)}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`code`,{className:`flex-1 min-w-0 break-all text-xs text-dark-text bg-dark-surface border border-dark-border rounded px-2 py-1 font-mono`,children:d.url}),(0,X.jsxs)(`button`,{type:`button`,onClick:()=>void m(d.url),title:n(`settings.network.copy`),className:`shrink-0 flex items-center gap-1 px-2 py-1 rounded text-xs text-dark-muted hover:text-dark-text hover:bg-dark-hover transition-colors`,children:[s===d.url?(0,X.jsx)(R,{size:13,className:`text-accent-green`}):(0,X.jsx)(p,{size:13}),s===d.url?n(`settings.network.copied`):n(`settings.network.copy`)]})]}),d.allServeUrls.length>1&&(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-1`,children:n(`settings.network.tailscale.otherEntries`,{n:d.allServeUrls.length-1})})]}),d.serving&&(0,X.jsxs)(`div`,{className:`mt-2 rounded-lg border border-accent-yellow/40 bg-accent-yellow/10 px-3 py-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs font-medium text-accent-yellow`,children:[(0,X.jsx)(T,{size:13}),n(`settings.network.tailscale.warningTitle`)]}),(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-1`,children:n(`settings.network.tailscale.warning`)})]})]})}function et(){let{t:e}=z(),[t,n]=U(),[r,i]=(0,Y.useState)(null),[a,o]=(0,Y.useState)(!1),[s,c]=(0,Y.useState)(null),l=(0,Y.useCallback)(async()=>{let t=await G.system.daemon();return t.success&&t.data?i(t.data):c(t.error||e(`settings.daemon.loadFailed`)),t},[e]);(0,Y.useEffect)(()=>{l()},[l]);let u=r?.daemonEnabled??!1,d=r?.fromEnv?e(`settings.daemon.lockedByEnv`,{env:r.envKey}):null,f=(0,Y.useCallback)(()=>{q(e(`settings.daemon.askAiPrompt`,{enabled:String(u),env:r?.envKey||`—`,error:s||`—`})),V.info(e(`settings.daemon.askAiHint`))},[u,s,r?.envKey,e]),p=(0,Y.useCallback)(async()=>{if(!r||a)return;let t=!u;if(!await n({message:e(t?`settings.daemon.confirmEnable`:`settings.daemon.confirmDisable`)}))return;o(!0),c(null);let s=await G.system.setDaemon(t);o(!1),s.success?(s.data&&i(s.data),V.info(e(t?`settings.daemon.enabledToast`:`settings.daemon.disabledToast`))):c(s.error||e(`settings.daemon.applyFailed`))},[a,n,u,r,e]);return(0,X.jsxs)(X.Fragment,{children:[t,(0,X.jsx)(`p`,{className:`text-sm text-dark-muted mb-3`,children:e(`settings.daemon.description`)}),s&&(0,X.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-accent-red/40 bg-accent-red/10 px-3 py-2 mb-3`,children:[(0,X.jsx)(T,{size:14,className:`text-accent-red mt-0.5 shrink-0`}),(0,X.jsx)(`span`,{className:`text-xs text-accent-red break-all`,children:s})]}),s&&(0,X.jsx)(`div`,{className:`mb-3`,children:(0,X.jsx)(B,{variant:`secondary`,size:`sm`,leftIcon:(0,X.jsx)(k,{size:13,"aria-hidden":`true`}),onClick:f,children:e(`settings.daemon.askAi`)})}),(0,X.jsxs)(`label`,{className:`flex items-center justify-between gap-3 py-1 ${d?`cursor-not-allowed opacity-60`:`cursor-pointer`}`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`text-sm text-dark-text`,children:e(`settings.daemon.toggleLabel`)}),(0,X.jsx)(`div`,{className:`text-xs text-dark-muted mt-0.5`,children:e(`settings.daemon.toggleHint`)})]}),(0,X.jsx)(tt,{checked:u,disabled:a||!r||!!d,onToggle:()=>void p(),label:e(`settings.daemon.toggleLabel`)})]}),d&&(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-2`,children:d})]})}function tt({checked:e,disabled:t,onToggle:n,label:r}){return(0,X.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":r,disabled:t,onClick:n,className:`relative w-9 h-5 rounded-full transition-colors shrink-0 disabled:cursor-not-allowed ${e?`bg-accent-green`:`bg-dark-border`}`,children:(0,X.jsx)(`span`,{className:`absolute top-0.5 left-0 w-4 h-4 rounded-full bg-white shadow transition-transform ${e?`translate-x-[18px]`:`translate-x-0.5`}`})})}function nt(){let{t:e}=z(),[t,n]=(0,Y.useState)(null),[r,i]=(0,Y.useState)(!0),[a,o]=(0,Y.useState)(null),[s,c]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)(``),[d,f]=(0,Y.useState)(!1),p=(0,Y.useCallback)(async()=>{let t=await G.config.desktop();t.success&&t.data?(n(t.data),o(null),u(t.data.values.port===null?``:String(t.data.values.port)),f(!1)):o(t.error||e(`settings.desktop.loadFailed`))},[e]);(0,Y.useEffect)(()=>{(async()=>{await p(),i(!1)})()},[p]);let m=!!t?.envOverridden.autoLaunch,g=!!t?.envOverridden.closeToTray,_=!!t?.envOverridden.port,v=(0,Y.useCallback)(async t=>{if(s)return;c(!0),o(null);let r=await G.config.setDesktop(t);c(!1),r.success?(r.data&&(n(r.data),u(r.data.values.port===null?``:String(r.data.values.port)),f(!1)),V.info(e(`settings.desktop.savedRestartHint`))):o(r.error||e(`settings.desktop.applyFailed`))},[s,e]),y=(0,Y.useCallback)(()=>{t&&!m&&v({autoLaunch:!t.values.autoLaunch})},[m,v,t]),b=(0,Y.useCallback)(()=>{t&&!g&&v({closeToTray:!t.values.closeToTray})},[g,v,t]),x=(0,Y.useCallback)(()=>{let e=l.trim();if(!e)return{ok:!0,value:null};if(!/^\d+$/.test(e))return{ok:!1};let t=Number(e);return t<1||t>65534?{ok:!1}:{ok:!0,value:t}},[l]),S=d&&!x().ok,C=t?.values.port??null,w=x(),E=!d||w.ok&&w.value===C,O=(0,Y.useCallback)(()=>{let e=x();e.ok&&v({port:e.value})},[x,v]),k=(0,Y.useCallback)(()=>{u(``),f(!1),C!==null&&v({port:null})},[C,v]);return r?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 py-4 text-sm text-dark-muted`,children:[(0,X.jsx)(h,{size:14,className:`animate-spin`}),e(`settings.desktop.loading`)]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`p`,{className:`text-sm text-dark-muted mb-3`,children:e(`settings.desktop.description`)}),a&&(0,X.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-accent-red/40 bg-accent-red/10 px-3 py-2 mb-3`,children:[(0,X.jsx)(T,{size:14,className:`text-accent-red mt-0.5 shrink-0`}),(0,X.jsx)(`span`,{className:`text-xs text-accent-red break-all`,children:a})]}),(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-3 py-1`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`text-sm text-dark-text`,children:e(`settings.desktop.autoLaunchLabel`)}),(0,X.jsx)(`div`,{className:`text-xs text-dark-muted mt-0.5`,children:e(`settings.desktop.autoLaunchHint`)})]}),(0,X.jsx)(rt,{checked:!!t?.values.autoLaunch,disabled:s||m,onToggle:y,label:e(`settings.desktop.autoLaunchLabel`)})]}),m&&(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-1`,children:e(`settings.desktop.lockedByEnv`,{env:t?.envKeys.autoLaunch||``})}),(0,X.jsxs)(`div`,{className:`mt-4 pt-4 border-t border-dark-border flex items-center justify-between gap-3`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`text-sm text-dark-text`,children:e(`settings.desktop.closeToTrayLabel`)}),(0,X.jsx)(`div`,{className:`text-xs text-dark-muted mt-0.5`,children:e(`settings.desktop.closeToTrayHint`)})]}),(0,X.jsx)(rt,{checked:!!t?.values.closeToTray,disabled:s||g,onToggle:b,label:e(`settings.desktop.closeToTrayLabel`)})]}),g&&(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-1`,children:e(`settings.desktop.lockedByEnv`,{env:t?.envKeys.closeToTray||``})}),(0,X.jsxs)(`div`,{className:`mt-4 pt-4 border-t border-dark-border`,children:[(0,X.jsx)(`div`,{className:`text-sm text-dark-text`,children:e(`settings.desktop.portLabel`)}),(0,X.jsx)(`div`,{className:`text-xs text-dark-muted mt-0.5 mb-2`,children:e(`settings.desktop.portHint`)}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`input`,{type:`number`,inputMode:`numeric`,min:1,max:65534,value:l,disabled:s||_,placeholder:e(`settings.desktop.portAuto`),onChange:e=>{u(e.target.value),f(!0)},onKeyDown:e=>{e.key===`Enter`&&!S&&!E&&O()},className:`flex-1 min-w-0 rounded-lg bg-dark-surface border px-3 py-2 text-sm text-dark-text font-mono focus:outline-none disabled:opacity-60 ${S?`border-accent-red`:`border-dark-border focus:border-accent-blue`}`}),(0,X.jsx)(`button`,{type:`button`,onClick:O,disabled:s||_||S||E,className:`shrink-0 px-3 py-2 rounded-lg text-sm bg-accent-blue/10 text-accent-blue hover:bg-accent-blue/20 border border-accent-blue/30 disabled:opacity-40 disabled:cursor-not-allowed`,children:e(`settings.desktop.save`)}),C!==null&&(0,X.jsx)(`button`,{type:`button`,onClick:k,disabled:s||_,className:`shrink-0 px-3 py-2 rounded-lg text-sm text-dark-muted hover:text-dark-text hover:bg-dark-hover border border-dark-border disabled:opacity-40`,children:e(`settings.desktop.portAuto`)})]}),S&&(0,X.jsx)(`p`,{className:`text-xs text-accent-red mt-1`,children:e(`settings.desktop.portInvalid`)}),_&&(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-1`,children:e(`settings.desktop.lockedByEnv`,{env:t?.envKeys.port||``})}),C!==null&&!S&&(0,X.jsxs)(`div`,{className:`mt-2 rounded-lg border border-accent-yellow/40 bg-accent-yellow/10 px-3 py-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs font-medium text-accent-yellow`,children:[(0,X.jsx)(T,{size:13}),e(`settings.desktop.pinnedWarningTitle`)]}),(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-1`,children:e(`settings.desktop.pinnedWarning`,{port:C})})]})]}),(0,X.jsxs)(`div`,{className:`mt-4 pt-3 border-t border-dark-border flex items-start gap-2`,children:[(0,X.jsx)(D,{size:13,className:`text-dark-muted mt-0.5 shrink-0`}),(0,X.jsxs)(`p`,{className:`text-xs text-dark-muted`,children:[e(`settings.desktop.restartHint`),t?.configPath&&(0,X.jsx)(`span`,{className:`block mt-1 font-mono break-all`,children:t.configPath})]})]})]})}function rt({checked:e,disabled:t,onToggle:n,label:r}){return(0,X.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":r,disabled:t,onClick:n,className:`relative w-9 h-5 rounded-full transition-colors shrink-0 disabled:cursor-not-allowed ${e?`bg-accent-green`:`bg-dark-border`}`,children:(0,X.jsx)(`span`,{className:`absolute top-0.5 left-0 w-4 h-4 rounded-full bg-white shadow transition-transform ${e?`translate-x-[18px]`:`translate-x-0.5`}`})})}var it={get:()=>W.get(`/api/config/attention`),set:e=>W.post(`/api/config/attention`,{sound:e})};function at(){let{t:e}=z(),[t,n]=(0,Y.useState)(!0),[r,i]=(0,Y.useState)(!1),[a,o]=(0,Y.useState)(null),s=(0,Y.useCallback)(async()=>{try{let t=await it.get();t.success&&t.data?(n(t.data.sound),o(null)):o(t.error||e(`settings.notifications.loadFailed`))}catch{o(e(`settings.notifications.loadFailed`))}},[e]);(0,Y.useEffect)(()=>{s()},[s]);let c=(0,Y.useCallback)(async()=>{if(r)return;let a=!t;i(!0),o(null),n(a);try{let t=await it.set(a);!t.success||!t.data?(n(!a),o(t.error||e(`settings.notifications.saveFailed`))):n(t.data.sound)}catch{n(!a),o(e(`settings.notifications.saveFailed`))}finally{i(!1)}},[r,t,e]);return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`label`,{className:`flex items-center justify-between gap-3 py-1 cursor-pointer`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`text-sm text-dark-text`,children:e(`settings.notifications.soundLabel`)}),(0,X.jsx)(`div`,{className:`text-xs text-dark-muted mt-0.5`,children:e(`settings.notifications.soundHint`)})]}),(0,X.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":t,disabled:r,onClick:c,className:`relative w-9 h-5 rounded-full transition-colors shrink-0 disabled:cursor-not-allowed ${t?`bg-accent-blue`:`bg-dark-border`}`,children:(0,X.jsx)(`span`,{className:`absolute top-0.5 left-0 w-4 h-4 rounded-full bg-white shadow transition-transform ${t?`translate-x-[18px]`:`translate-x-0.5`}`})})]}),a&&(0,X.jsxs)(`div`,{className:`mt-2 flex items-start gap-2 text-xs text-accent-red`,children:[(0,X.jsx)(T,{size:13,className:`mt-0.5 shrink-0`}),(0,X.jsx)(`span`,{className:`break-all`,children:a})]})]})}var ot=(0,Y.memo)(function({label:e,description:t,colors:n,pattern:r,isSelected:i,onClick:a}){return(0,X.jsxs)(`button`,{onClick:a,className:`relative flex w-full flex-col items-center rounded-xl p-2 transition-all focus:outline-none focus:ring-2 focus:ring-accent-blue/50 ${i?`ring-2 ring-accent-blue/60 bg-dark-bg border border-accent-blue/40 shadow-sm`:`border border-dark-border hover:border-accent-blue/30 bg-dark-bg hover:shadow-sm`}`,title:t||e,"aria-pressed":i,"aria-label":e,children:[(0,X.jsxs)(`div`,{className:`relative flex gap-0.5 rounded-md overflow-hidden w-full h-8 mb-1.5 border border-dark-border/40`,children:[[`bg`,`surface`,`border`,`text`,`muted`,`accentBlue`,`accentGreen`,`accentRed`,`accentYellow`,`accentPurple`].map(e=>(0,X.jsx)(`div`,{className:`flex-1`,style:{backgroundColor:n[e]},title:e},e)),r===`grid`&&(0,X.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0`,style:{backgroundImage:`linear-gradient(${n.border} 1px, transparent 1px), linear-gradient(90deg, ${n.border} 1px, transparent 1px)`,backgroundSize:`7px 7px`}})]}),(0,X.jsx)(`span`,{className:`text-meta font-medium truncate w-full text-center ${i?`text-accent-blue`:`text-dark-text`}`,children:e}),i&&(0,X.jsx)(`span`,{className:`absolute top-1 end-1 w-4 h-4 bg-accent-blue rounded-full flex items-center justify-center shadow-sm`,children:(0,X.jsx)(`svg`,{width:`8`,height:`8`,viewBox:`0 0 8 8`,fill:`none`,children:(0,X.jsx)(`path`,{d:`M1.5 4L3.5 6L6.5 2`,stroke:`white`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`})})})]})}),st={name:`deepseekcode-web`,private:!0,version:`1.0.0`,type:`module`,scripts:{dev:`vite`,build:`tsc && vite build`,typecheck:`tsc -p tsconfig.json --noEmit`,preview:`vite preview`,icons:`node scripts/generate-pwa-icons.mjs`,test:`vitest run`,"test:watch":`vitest`},dependencies:{"@deepseekcode/protocol":`*`,"@deepseekcode/shared":`*`,"@milkdown/core":`7.22.3`,"@milkdown/preset-commonmark":`7.22.3`,"@milkdown/preset-gfm":`7.22.3`,"@milkdown/utils":`7.22.3`,"@monaco-editor/react":`4.7.0`,"@tanstack/react-virtual":`3.14.21`,clsx:`2.1.1`,"date-fns":`4.4.0`,diff:`9.0.0`,i18next:`26.5.4`,katex:`0.19.0`,"lucide-react":`1.61.0`,mermaid:`12.2.0`,prismjs:`1.30.0`,qrcode:`1.5.4`,react:`19.3.1`,"react-dom":`19.3.1`,"react-i18next":`17.1.0`,"react-markdown":`10.1.0`,"react-resizable-panels":`4.14.8`,"rehype-katex":`7.0.1`,"rehype-remark":`10.0.1`,"remark-math":`6.0.0`,shiki:`4.5.0`,zustand:`5.0.15`},devDependencies:{"@testing-library/jest-dom":`7.0.1`,"@testing-library/react":`16.3.3`,"@types/prismjs":`1.26.6`,"@types/qrcode":`1.5.6`,"@types/react":`19.3.0`,"@types/react-dom":`19.3.0`,"@vitejs/plugin-react":`6.1.2`,autoprefixer:`10.6.1`,jsdom:`30.1.3`,postcss:`8.5.31`,tailwindcss:`3.4.19`,typescript:`5.9.3`,vite:`8.3.5`,vitest:`5.0.5`}},ct=[{labelKey:`settings.groups.general`,items:[{id:`general`,icon:_,labelKey:`settings.nav.general`,searchKeys:[`language`,`display`,`developer`,`general`,`语言`,`界面`,`开发者`,`通用`]},{id:`appearance`,icon:r,labelKey:`settings.nav.appearance`,searchKeys:[`theme`,`color`,`palette`,`custom`,`ripple`,`effect`,`icon`,`blob`,`brand`,`主题`,`颜色`,`波纹`,`动效`,`背景`,`图标`,`品牌`,`团子`]},{id:`profile`,icon:S,labelKey:`settings.nav.profile`,searchKeys:[`profile`,`soul`,`persona`,`identity`,`name`,`画像`,`个性化`,`身份`,`称呼`,`soul.md`]},{id:`voice`,icon:O,labelKey:`settings.nav.voice`,searchKeys:[`voice`,`stt`,`whisper`,`speech`,`语音`,`安装`]}]},{labelKey:`settings.groups.features`,items:[{id:`models`,icon:c,labelKey:`settings.nav.models`,searchKeys:[`provider`,`model`,`api`,`key`,`openai`,`anthropic`,`deepseek`,`模型`]},{id:`connectors`,icon:te,labelKey:`settings.nav.connectors`,searchKeys:[`connector`,`capabilities`,`computer use`,`gmail`,`grok`,`连接器`,`能力`]},{id:`context`,icon:l,labelKey:`settings.nav.context`,searchKeys:[`context`,`token`,`offload`,`artifact`,`上下文`,`外置`]},{id:`configFiles`,icon:s,labelKey:`settings.nav.configFiles`,searchKeys:[`config`,`file`,`yaml`,`json`,`editor`,`配置文件`]}]},{labelKey:`settings.groups.system`,items:[{id:`sandbox`,icon:m,labelKey:`settings.nav.sandbox`,searchKeys:[`sandbox`,`sandbox-exec`,`bwrap`,`bubblewrap`,`isolation`,`seccomp`,`permission`,`沙箱`,`隔离`,`命令`,`权限`]},{id:`network`,icon:x,labelKey:`settings.nav.network`,searchKeys:[`network`,`lan`,`wifi`,`port`,`share`,`access`,`server`,`bind`,`网络`,`局域网`,`内网`,`多人`,`共享`,`访问`,`端口`]},{id:`daemon`,icon:a,labelKey:`settings.nav.daemon`,searchKeys:[`daemon`,`background`,`persistent`,`server`,`backend`,`service`,`常驻`,`后台`,`守护`,`进程`,`服务`]},{id:`desktop`,icon:i,labelKey:`settings.nav.desktop`,searchKeys:[`desktop`,`autolaunch`,`autostart`,`startup`,`boot`,`launch`,`port`,`backend`,`桌面`,`客户端`,`开机`,`自启`,`启动`,`端口`,`后台`]},{id:`system`,icon:a,labelKey:`settings.nav.system`,searchKeys:[`system`,`server`,`uptime`,`restart`,`reboot`,`系统`,`重启`]},{id:`about`,icon:D,labelKey:`settings.nav.about`,searchKeys:[`about`,`version`,`info`,`关于`,`版本`]}]}],lt=[{key:`bg`,labelKey:`settings.colorBg`},{key:`surface`,labelKey:`settings.colorSurface`},{key:`border`,labelKey:`settings.colorBorder`},{key:`text`,labelKey:`settings.colorText`},{key:`muted`,labelKey:`settings.colorMuted`},{key:`accentBlue`,labelKey:`settings.colorAccentBlue`},{key:`accentGreen`,labelKey:`settings.colorAccentGreen`},{key:`accentRed`,labelKey:`settings.colorAccentRed`},{key:`accentYellow`,labelKey:`settings.colorAccentYellow`},{key:`accentPurple`,labelKey:`settings.colorAccentPurple`}],ut=(0,Y.memo)(function({isOpen:e,onClose:t,onNavigate:n,focusSection:r}){let{t:o}=z(),[s,c]=(0,Y.useState)(`general`),[l,u]=(0,Y.useState)(``);de({isOpen:e,onClose:t});let d=(0,Y.useRef)(null);(0,Y.useEffect)(()=>{e&&r?.section===`stt`&&(c(`voice`),requestAnimationFrame(()=>{d.current?.scrollIntoView({behavior:`smooth`,block:`start`})}))},[r?.nonce,e]);let f=(0,Y.useRef)(null);(0,Y.useEffect)(()=>{e&&r?.section===`profile`&&(c(`profile`),requestAnimationFrame(()=>{f.current?.scrollIntoView({behavior:`smooth`,block:`start`})}))},[r?.nonce,e]),(0,Y.useEffect)(()=>{e&&u(``)},[e]);let p=(0,Y.useMemo)(()=>{if(!l.trim())return ct;let e=l.toLowerCase().trim();return ct.map(t=>({...t,items:t.items.filter(t=>o(t.labelKey).toLowerCase().includes(e)||t.searchKeys.some(t=>t.toLowerCase().includes(e)))})).filter(e=>e.items.length>0)},[l,o]),{visible:m,phase:h}=fe(e);return m?(0,X.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center overflow-hidden p-4`,role:`dialog`,"aria-modal":`true`,"aria-label":o(`settings.title`),children:[(0,X.jsx)(`div`,{className:`absolute inset-0 ui-scrim ui-overlay-backdrop`,"data-phase":h,onClick:t}),(0,X.jsxs)(`div`,{className:`relative w-full max-w-4xl h-[80vh] bg-dark-overlay ui-surface-overlay border border-dark-border rounded-2xl shadow-pop flex flex-col overflow-hidden ui-overlay-panel`,"data-phase":h,children:[(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between ps-5 pe-3 py-3 border-b border-dark-border`,children:[(0,X.jsx)(`h2`,{className:`text-base font-semibold text-dark-text`,children:o(`settings.title`)}),(0,X.jsx)(`button`,{onClick:t,"aria-label":`Close`,className:`p-1.5 rounded-lg text-dark-muted hover:text-dark-text hover:bg-dark-hover transition-colors`,children:(0,X.jsx)(ee,{size:18,"aria-hidden":`true`})})]}),(0,X.jsxs)(`div`,{className:`flex flex-1 min-h-0`,children:[(0,X.jsxs)(`nav`,{className:`w-52 shrink-0 border-e border-dark-border bg-dark-surface/40 flex flex-col min-h-0`,children:[(0,X.jsx)(`div`,{className:`p-3 pb-1`,children:(0,X.jsxs)(`div`,{className:`relative`,children:[(0,X.jsx)(I,{size:13,className:`absolute start-2.5 top-1/2 -translate-y-1/2 text-dark-muted pointer-events-none`}),(0,X.jsx)(`input`,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:o(`settings.searchPlaceholder`),className:`w-full bg-dark-surface border border-dark-border rounded-lg ps-8 pe-2 py-1.5 text-xs text-dark-text placeholder-dark-muted focus:border-accent-blue/60 focus:ring-2 focus:ring-accent-blue/15 outline-none transition-all`})]})}),(0,X.jsxs)(`div`,{className:`flex-1 min-h-0 overflow-y-auto custom-scrollbar px-3 pb-3`,children:[p.map(e=>(0,X.jsxs)(`div`,{className:`mt-3 first:mt-1`,children:[(0,X.jsx)(`div`,{className:`px-2 mb-1 text-badge font-medium uppercase tracking-wide text-dark-muted/80`,children:o(e.labelKey)}),(0,X.jsx)(`div`,{className:`space-y-0.5`,children:e.items.map(e=>{let t=e.icon,n=s===e.id;return(0,X.jsxs)(`button`,{onClick:()=>c(e.id),"aria-current":n?`page`:void 0,className:`w-full flex items-center gap-2.5 px-2.5 py-1.5 rounded-lg text-sm transition-colors ${n?`bg-accent-blue/10 text-accent-blue font-medium`:`text-dark-text/90 hover:bg-dark-hover`}`,children:[(0,X.jsx)(t,{size:15,className:n?`text-accent-blue`:`text-dark-muted`}),(0,X.jsx)(`span`,{className:`truncate`,children:o(e.labelKey)})]},e.id)})})]},e.labelKey)),p.length===0&&(0,X.jsx)(`div`,{className:`mt-6 text-center text-xs text-dark-muted`,children:o(`settings.noResults`)})]})]}),(0,X.jsx)(`div`,{className:`flex-1 min-w-0 min-h-0 overflow-y-auto custom-scrollbar`,children:(0,X.jsxs)(`div`,{className:`max-w-2xl px-6 py-5`,children:[s===`general`&&(0,X.jsx)(dt,{}),s===`appearance`&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(ft,{}),(0,X.jsx)($,{icon:k,iconColor:`text-accent-purple`,title:o(`brand.title`),children:(0,X.jsx)(je,{dense:!0})})]}),s===`profile`&&(0,X.jsx)(`div`,{ref:f,id:`settings-section-profile`,className:`scroll-mt-5`,children:(0,X.jsx)(mt,{})}),s===`voice`&&(0,X.jsx)(`div`,{ref:d,id:`settings-section-stt`,className:`scroll-mt-5`,children:(0,X.jsx)(pt,{})}),s===`models`&&(0,X.jsx)(ht,{onNavigate:n}),s===`connectors`&&(0,X.jsx)(gt,{onNavigate:n}),s===`context`&&(0,X.jsx)(_t,{}),s===`configFiles`&&(0,X.jsx)(vt,{}),s===`sandbox`&&(0,X.jsx)(yt,{}),s===`network`&&(0,X.jsx)($,{icon:x,iconColor:`text-accent-green`,title:o(`settings.nav.network`),children:(0,X.jsx)(Ze,{})}),s===`daemon`&&(0,X.jsx)($,{icon:a,iconColor:`text-accent-green`,title:o(`settings.daemon.title`),children:(0,X.jsx)(et,{})}),s===`desktop`&&(0,X.jsx)($,{icon:i,iconColor:`text-accent-blue`,title:o(`settings.nav.desktop`),children:(0,X.jsx)(nt,{})}),s===`system`&&(0,X.jsx)(bt,{}),s===`about`&&(0,X.jsx)(xt,{})]})})]})]})]}):null});function dt(){let{t:e}=z(),{language:t,setLanguage:n,developerView:r,setDeveloperView:i,effort:a}=De(),o=pe[me(a)],s=we(t),c=[{code:Ee,label:e(`settings.languageAuto`)},...Se.map(e=>({code:e.code,label:e.label}))];return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)($,{icon:N,iconColor:`text-accent-blue`,title:e(`settings.language`),children:[(0,X.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:c.map(({code:e,label:t})=>(0,X.jsx)(`button`,{lang:e===`auto`?void 0:e,onClick:()=>{n(e),e!==s&&G.config.language.set(Ce(be(e))).catch(()=>{})},className:`px-4 py-2 rounded-lg transition-all ${s===e?`bg-accent-blue text-accent-fg`:`bg-dark-hover text-dark-text hover:bg-dark-border`}`,children:t},e))}),(0,X.jsx)(`p`,{className:`text-xs text-dark-muted mt-2`,children:e(`settings.languageHint`)})]}),(0,X.jsx)($,{icon:ae,iconColor:`text-accent-blue`,title:e(`settings.display`),children:(0,X.jsxs)(`label`,{className:`flex items-center justify-between gap-3 py-1 cursor-pointer`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`text-sm text-dark-text`,children:e(`settings.developerView`)}),(0,X.jsx)(`div`,{className:`text-xs text-dark-muted mt-0.5`,children:e(`settings.developerViewHint`)})]}),(0,X.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":r,onClick:()=>i(!r),className:`relative w-9 h-5 rounded-full transition-colors shrink-0 ${r?`bg-accent-blue`:`bg-dark-border`}`,children:(0,X.jsx)(`span`,{className:`absolute top-0.5 left-0 w-4 h-4 rounded-full bg-white shadow transition-transform ${r?`translate-x-[18px]`:`translate-x-0.5`}`})})]})}),(0,X.jsx)($,{icon:b,iconColor:`text-accent-yellow`,title:e(`settings.effort`),children:(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-4 py-1`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`text-xs text-dark-muted`,children:e(`settings.effortHint`)}),(0,X.jsx)(`div`,{className:`text-xs text-dark-muted mt-1`,children:o.hint})]}),(0,X.jsx)(_e,{syncSession:!1})]})}),(0,X.jsx)($,{icon:d,iconColor:`text-accent-yellow`,title:e(`settings.notifications.title`),children:(0,X.jsx)(at,{})})]})}function ft(){let{t:e}=z(),{theme:t,setTheme:n,themePresetId:i,setThemePreset:a,customTheme:o,customThemeEnabled:s,setCustomTheme:c,setCustomThemeEnabled:l,resetCustomTheme:u}=De(),d=K(e=>e.customThemes),f=K(e=>e.rejected),p=K(e=>e.error),m=K(e=>e.loading),h=K(e=>e.load),g=K(e=>e.removeCustomTheme),[_,v]=(0,Y.useState)(s),y=(0,Y.useMemo)(()=>t===`dark`?`dark`:t===`light`?`light`:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`,[t]),b=(0,Y.useMemo)(()=>Oe(d),[d]);return(0,X.jsxs)($,{icon:r,iconColor:`text-accent-purple`,title:e(`settings.theme`),children:[(0,X.jsx)(`div`,{className:`flex gap-2 mb-4`,children:[`dark`,`light`,`auto`].map(r=>(0,X.jsx)(`button`,{onClick:()=>n(r),className:`px-4 py-2 rounded-lg transition-all ${t===r?`bg-accent-blue text-accent-fg`:`bg-dark-hover text-dark-text hover:bg-dark-border`}`,children:e(r===`dark`?`settings.themeDark`:r===`light`?`settings.themeLight`:`settings.themeAuto`)},r))}),(0,X.jsxs)(`div`,{className:`mb-4`,children:[(0,X.jsx)(`h4`,{className:`text-xs font-semibold text-dark-text mb-2`,children:e(`settings.themePresets`)}),(0,X.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 gap-2`,children:b.map(t=>{let n=(i||`graph`)===t.id,r=y===`dark`?t.dark:t.light,o=xe(t,e);return(0,X.jsxs)(`div`,{className:`relative`,children:[(0,X.jsx)(ot,{id:t.id,label:o,description:Te(t,e),colors:r,pattern:t.pattern,isSelected:n,onClick:()=>a(t.id)}),t.custom&&(0,X.jsx)(`button`,{type:`button`,title:e(`settings.themeCustomDelete`,{name:o}),"aria-label":e(`settings.themeCustomDelete`,{name:o}),onClick:()=>{g(t.id)},className:`absolute top-1 start-1 flex h-4 w-4 items-center justify-center rounded-full border border-dark-border bg-dark-surface/90 text-badge leading-none text-dark-muted transition-colors hover:border-accent-red/50 hover:text-accent-red`,children:`×`})]},t.id)})}),(0,X.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-x-3 gap-y-1 text-meta text-dark-muted`,children:[(0,X.jsxs)(`button`,{type:`button`,onClick:()=>{h(!0)},disabled:m,className:`inline-flex items-center gap-1 transition-colors hover:text-dark-text disabled:opacity-50`,children:[(0,X.jsx)(P,{size:12,className:m?`animate-spin`:void 0}),e(`settings.themeCustomReload`)]}),(0,X.jsx)(`span`,{children:e(`settings.themeCustomHint`)})]}),p&&(0,X.jsx)(`p`,{className:`mt-1 text-meta text-accent-red`,children:e(`settings.themeCustomError`,{error:p})}),f.length>0&&(0,X.jsx)(`ul`,{className:`mt-1 space-y-0.5 text-meta text-accent-yellow`,children:f.map((t,n)=>(0,X.jsx)(`li`,{children:e(`settings.themeCustomRejected`,{index:t.index>=0?t.index+1:`-`,reason:t.reason})},`${t.index}-${n}`))})]}),(0,X.jsxs)(`div`,{className:`pt-4 border-t border-dark-border`,children:[(0,X.jsxs)(`button`,{onClick:()=>{let e=!_;v(e),l(e)},className:`flex items-center gap-2 text-sm text-dark-muted hover:text-dark-text transition-colors`,children:[(0,X.jsx)(r,{size:14}),(0,X.jsx)(`span`,{children:e(`settings.customOverrides`)}),(0,X.jsx)(`span`,{className:`w-8 h-4 rounded-full transition-colors ${_?`bg-accent-blue`:`bg-dark-border`}`,children:(0,X.jsx)(`span`,{className:`block w-3 h-3 rounded-full bg-white transition-transform mt-0.5 ${_?`ms-4`:`ms-0.5`}`})})]}),_&&(0,X.jsx)(`p`,{className:`text-badge text-dark-muted mt-1 mb-2`,children:e(`settings.customOverridesHint`)}),_&&(0,X.jsxs)(`div`,{className:`mt-3`,children:[(0,X.jsx)(`div`,{className:`flex gap-1 mb-3 rounded-lg overflow-hidden h-6`,children:lt.map(({key:e})=>(0,X.jsx)(`div`,{className:`flex-1`,style:{backgroundColor:o[e]},title:e},e))}),(0,X.jsx)(`div`,{className:`grid grid-cols-2 gap-x-4 gap-y-2`,children:lt.map(({key:t,labelKey:n})=>(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`input`,{type:`color`,value:o[t],onChange:e=>c({[t]:e.target.value}),className:`w-8 h-8 rounded border border-dark-border cursor-pointer bg-transparent p-0.5 shrink-0`}),(0,X.jsx)(`span`,{className:`text-xs text-dark-muted flex-1 truncate`,children:e(n)}),(0,X.jsx)(`input`,{type:`text`,value:o[t],onChange:e=>{let n=e.target.value;/^#[0-9a-fA-F]{0,6}$/.test(n)&&c({[t]:n})},className:`w-16 bg-dark-bg border border-dark-border rounded px-1 py-0.5 text-xs text-dark-text font-mono text-center`,maxLength:7})]},t))}),(0,X.jsx)(`button`,{onClick:u,className:`mt-2 text-xs text-dark-muted hover:text-accent-red transition-colors`,children:e(`settings.resetColors`)})]})]})]})}function pt(){let{t:e}=z();return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)($,{icon:O,iconColor:`text-accent-blue`,title:e(`stt.setup.title`),children:(0,X.jsx)(Re,{})}),(0,X.jsx)($,{icon:t,iconColor:`text-accent-purple`,title:e(`tts.setup.title`),children:(0,X.jsx)(ze,{})})]})}function mt(){let{t:e}=z();return(0,X.jsx)($,{icon:S,iconColor:`text-accent-purple`,title:e(`settings.profile.title`),children:(0,X.jsx)(Je,{})})}function ht({onNavigate:e}){return(0,X.jsxs)($,{icon:c,iconColor:`text-accent-yellow`,title:`Provider & Models`,children:[(0,X.jsx)(`p`,{className:`text-sm text-dark-muted mb-3`,children:`Configure AI providers, API keys, and model settings. Add or remove providers like OpenAI, Anthropic, DeepSeek, and more.`}),(0,X.jsx)(B,{variant:`accent`,leftIcon:(0,X.jsx)(g,{size:14}),onClick:()=>e?.(`models`),className:`w-fit`,children:`Manage Providers & Models`})]})}function gt({onNavigate:e}){let{t}=z();return(0,X.jsxs)($,{icon:i,iconColor:`text-accent-green`,title:t(`settings.capabilities.title`),children:[(0,X.jsx)(`p`,{className:`text-sm text-dark-muted mb-3`,children:`Computer Use、外部服务连接器(X/Twitter、Gmail、Google Workspace、Microsoft 365 等)与 xAI (Grok) 统一在连接器页集中管理。`}),(0,X.jsx)(B,{variant:`accent`,leftIcon:(0,X.jsx)(g,{size:14}),onClick:()=>e?.(`connectors`),className:`w-fit`,children:`Manage Connectors & Capabilities`})]})}function _t(){let{t:e}=z();return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)($,{icon:f,iconColor:`text-accent-blue`,title:e(`settings.contextWindow.title`),children:(0,X.jsx)(Ue,{})}),(0,X.jsx)($,{icon:ae,iconColor:`text-accent-purple`,title:e(`settings.contextOffload.title`),children:(0,X.jsx)(Be,{})})]})}function vt(){return(0,X.jsx)($,{icon:s,iconColor:`text-accent-green`,title:`Config Files (~/.agent/)`,children:(0,X.jsx)(Pe,{})})}function yt(){let{t:e}=z();return(0,X.jsx)($,{icon:m,iconColor:`text-accent-green`,title:e(`settings.sandbox.title`),children:(0,X.jsx)(Ge,{})})}function bt(){let[e,t]=U(),[n,r]=(0,Y.useState)(0),[i,o]=(0,Y.useState)(!1),[s,c]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{let e=!0,t=async()=>{try{let t=await G.system.status();e&&t.success&&t.data&&r(t.data.uptime)}catch{}};t();let n=setInterval(t,i?2e3:1e4);return()=>{e=!1,clearInterval(n)}},[i]);let l=(0,Y.useCallback)(async()=>{if(await t({message:`Restart the server? All active sessions will be disconnected.`,variant:`danger`})){o(!0);try{let e=await G.system.restart();e.success?V.info(`Server restarting...`):(V.error(e.error||`Restart failed`),o(!1))}catch{V.error(`Failed to send restart request`),o(!1)}}},[t]),u=(0,Y.useCallback)(async()=>{if(await t({title:`Shutdown server`,message:`This stops the entire backend process. All active sessions and unsaved work will be lost.`,confirmText:`Shut down`,variant:`danger`})){c(!0);try{let e=await G.system.shutdown();e.success?V.info(`Server shutting down...`):(V.error(e.error||`Shutdown failed`),c(!1))}catch{V.error(`Failed to send shutdown request`),c(!1)}}},[t]);return(0,Y.useEffect)(()=>{i&&n<1e4&&(o(!1),V.success(`Server restarted`))},[n,i]),(0,X.jsxs)($,{icon:a,iconColor:`text-dark-muted`,title:`System`,children:[e,(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between text-sm`,children:[(0,X.jsx)(`span`,{className:`text-dark-muted`,children:`Server Uptime`}),(0,X.jsx)(`span`,{className:`text-dark-text font-mono`,children:(e=>{let t=Math.floor(e/1e3),n=Math.floor(t/60),r=Math.floor(n/60);return r>0?`${r}h ${n%60}m`:n>0?`${n}m ${t%60}s`:`${t}s`})(n)})]}),(0,X.jsxs)(`button`,{onClick:l,disabled:i,className:`flex items-center gap-2 px-4 py-2 rounded-lg text-sm transition-all ${i?`bg-dark-hover text-dark-muted cursor-wait`:`bg-accent-red/10 text-accent-red hover:bg-accent-red/20 border border-accent-red/30`}`,children:[(0,X.jsx)(P,{size:14,className:i?`animate-spin`:``}),i?`Restarting...`:`Restart Server`]}),(0,X.jsxs)(`button`,{onClick:u,disabled:s,className:`flex items-center gap-2 px-4 py-2 rounded-lg text-sm transition-all ${s?`bg-dark-hover text-dark-muted cursor-wait`:`bg-accent-red/10 text-accent-red hover:bg-accent-red/20 border border-accent-red/30`}`,children:[(0,X.jsx)(L,{size:14,className:s?`animate-pulse`:``}),s?`Shutting Down...`:`Shutdown Server`]})]})]})}function xt(){let{t:e}=z();return(0,X.jsx)($,{icon:D,iconColor:`text-accent-blue`,title:e(`settings.about`),children:(0,X.jsxs)(`div`,{className:`text-sm text-dark-muted space-y-2`,children:[(0,X.jsxs)(`p`,{children:[(0,X.jsx)(`span`,{className:`text-dark-text`,children:`DeepSeekCode Web`}),` v`,st.version]}),(0,X.jsx)(`p`,{children:e(`settings.aboutDesc`)}),(0,X.jsx)(`p`,{className:`text-xs`,children:`Powered by React + TypeScript + TailwindCSS`}),(0,X.jsx)(`p`,{className:`text-xs`,children:`联系:ngwlh2026@gmail.com`}),(0,X.jsxs)(`button`,{onClick:()=>Ae.getState().openWhatsNew(),className:`mt-2 flex items-center gap-2 px-4 py-2 rounded-lg text-sm transition-all bg-accent-blue/10 text-accent-blue hover:bg-accent-blue/20 border border-accent-blue/30`,children:[(0,X.jsx)(k,{size:14}),e(`settings.whatsNew`)]})]})})}export{ut as SettingsModal};