@mydot/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,14 @@
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{An as t,Cr as n,E as r,En as i,Er as a,Ht as o,In as s,Jn as c,Kr as l,Kt as u,Mt as d,Ot as f,Rr as p,Ur as m,Ut as h,Vn as g,Vr as _,Vt as v,Zn as y,_ as b,_n as x,br as S,cn as C,d as w,dt as T,ft as E,ht as D,jt as O,k as ee,kn as k,lt as A,n as te,nt as ne,q as re,rr as j,t as ie,vn as M,vt as ae,wr as N,xn as oe,xr as P,yt as se,zr as ce}from"./icons-CYDRRPKW.js";import{r as F}from"./react-vendor-CB4cLN-6.js";import{t as I}from"./useTranslation-B-mfApCn.js";import{E as le,c as L,d as R,h as ue,o as de,s as z}from"./ttsSettings-BwXYpDnk.js";import{a as fe,c as B,o as pe,r as me,s as V}from"./useConfirm-Da8iQ_DZ.js";import"./src-49LUQhkG.js";import{a as he,f as ge,l as H,n as U,r as W}from"./workspaceSemantics-RaIRer76.js";import{C as _e,St as G,_t as ve,bt as ye,ft as be,n as xe,pt as K,r as Se,t as Ce,vt as we,xt as Te,yt as Ee}from"./MessageBubble-CVGXupVH.js";import{a as De,i as Oe,n as ke,o as Ae,r as je,s as Me,t as Ne}from"./sttLanguages-CSNMgUTz.js";import{r as Pe,t as q}from"./api-plEYhRn0.js";import{r as Fe,t as Ie}from"./settingsStore-Xqln0d91.js";import{I as Le}from"./markdown-N5__3T-w.js";import{C as Re,S as ze,b as Be,c as Ve,x as He}from"./common-Bbatsa0-.js";import{U as Ue,W as We,a as Ge,c as Ke,l as qe,n as Je,o as Ye,q as Xe,r as Ze,s as J}from"./index-CTbLW314.js";var Qe=/\[Pasted text #(\d+)(?:\s*\+\d+ lines?)?\]/g,$e=0,et=new Map;function tt(e){let t=++$e;return et.set(t,e.replace(/\r\n?/g,`
2
+ `)),t}function nt(e){return et.get(e)}function rt(e){et.delete(e)}function it(e){return e.length>800||at(e)>0}function at(e){return(e.match(/\r\n|\r|\n/g)||[]).length}function ot(e){let t=tt(e),n=at(e);return n===0?{id:t,label:`[Pasted text #${t}]`}:{id:t,label:`[Pasted text #${t} +${n} lines]`}}function st(e){return Qe.lastIndex=0,e.replace(Qe,(e,t)=>{let n=parseInt(t,10),r=et.get(n);return r===void 0?e:r})}function ct(e){Qe.lastIndex=0;let t=[],n;for(;(n=Qe.exec(e))!==null;){let e=n[1];e!==void 0&&t.push(parseInt(e,10))}return Qe.lastIndex=0,t}function lt(e){for(let t of e)et.delete(t)}function ut(e){let t=e.match(/\[Pasted text #\d+(?:\s*\+\d+ lines?)?\]$/);return t?t[0]:null}function dt(e){let t=e.match(/^\[Pasted text #\d+(?:\s*\+\d+ lines?)?\]/);return t?t[0]:null}function ft(e){let t=e.match(/#(\d+)/);t&&rt(parseInt(t[1]??``,10))}var Y=e(l(),1),X=Le();function pt(e,t=28){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t)}…`:n}var mt=`cubic-bezier(0.34, 1.56, 0.64, 1)`,ht=14,gt=7,_t=.6,Z=160,vt=440;function yt(){let e=(0,Y.useCallback)(()=>typeof window>`u`?vt:Math.max(Z,Math.min(vt,Math.round(window.innerHeight*_t))),[]),[t,n]=(0,Y.useState)(e);return(0,Y.useEffect)(()=>{let t=()=>n(e());return window.addEventListener(`resize`,t),()=>window.removeEventListener(`resize`,t)},[e]),t}var bt=(0,Y.memo)(function({items:e,activeId:t,onJump:n}){let{t:r}=I(),[i,a]=(0,Y.useState)(!1),o=(0,Y.useRef)(null),s=yt(),c=(0,Y.useCallback)(()=>{o.current&&window.clearTimeout(o.current),a(!0)},[]),l=(0,Y.useCallback)(()=>{o.current&&window.clearTimeout(o.current),o.current=window.setTimeout(()=>a(!1),180)},[]),d=Math.max(gt,Math.min(ht,Math.floor(s/Math.max(1,e.length)))),f=Math.max(1,Math.floor(s/gt)),p=(0,Y.useMemo)(()=>{let n=e.length,r=Math.min(n,f),i=n/r,a=t?e.findIndex(e=>e.id===t):-1;return Array.from({length:r},(e,t)=>{let r=Math.round(t*i),o=Math.min(n,Math.max(r+1,Math.round((t+1)*i)));return{start:r,end:o,active:a>=r&&a<o}}).flatMap(t=>{let n=e[t.start];return n?[{...t,key:n.id,first:n}]:[]})},[e,t,f]),m=d>=12?6:d>=9?5:4,h=Math.min(m+2,Math.max(4,d-2)),g=d>=12?`ring-2 ring-accent-blue/25`:`ring-1 ring-accent-blue/30`;return e.length===0?null:(0,X.jsx)(`div`,{role:`list`,"aria-label":r(`chat.messageRail`),className:`pointer-events-none absolute end-4 top-1/2 z-30 hidden -translate-y-1/2 md:block`,children:(0,X.jsxs)(`div`,{onMouseEnter:c,onMouseLeave:l,"data-testid":`rail-trigger`,className:`pointer-events-auto relative flex items-center py-3`,children:[(0,X.jsxs)(`div`,{"aria-hidden":!i,inert:!i,"data-testid":`rail-panel`,className:`absolute end-full top-1/2 flex w-72 -translate-y-1/2 origin-right rtl:origin-left flex-col overflow-hidden rounded-xl border border-dark-border/70 bg-dark-bg/90 shadow-pop backdrop-blur-xl transition-all duration-300 ${i?`translate-x-0 scale-100 opacity-100`:`pointer-events-none translate-x-4 rtl:-translate-x-4 scale-95 opacity-0`}`,style:{transitionTimingFunction:i?mt:`ease`},children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b border-dark-border/60 px-3 py-2`,children:[(0,X.jsxs)(`span`,{className:`flex items-center gap-1.5 text-meta font-semibold uppercase tracking-[0.08em] text-dark-muted`,children:[(0,X.jsx)(u,{size:12,className:`text-accent-blue`,"aria-hidden":`true`}),r(`chat.messageIndex`)]}),(0,X.jsx)(`span`,{className:`rounded-full bg-dark-hover px-1.5 py-0.5 text-badge font-medium tabular-nums text-dark-muted`,children:e.length})]}),(0,X.jsx)(`div`,{className:`max-h-[55vh] overflow-y-auto p-1.5 custom-scrollbar`,children:e.map((e,r)=>{let a=e.id===t;return(0,X.jsxs)(`button`,{type:`button`,role:`listitem`,onClick:()=>n(e.id),title:e.content,"aria-current":a?`true`:void 0,tabIndex:i?0:-1,className:`group/item flex w-full items-start gap-2 rounded-lg px-2 py-1.5 text-start transition-all duration-200 ${i?`translate-x-0 opacity-100`:`translate-x-2 rtl:-translate-x-2 opacity-0`} ${a?`bg-accent-blue/10`:`hover:bg-dark-hover`}`,style:{transitionDelay:i?`${Math.min(r*24,264)}ms`:`0ms`},children:[(0,X.jsx)(`span`,{className:`mt-px flex h-4 w-4 shrink-0 items-center justify-center rounded text-badge font-semibold tabular-nums transition-colors duration-200 ${a?`bg-accent-blue text-accent-fg`:`bg-dark-hover text-dark-muted group-hover/item:bg-dark-border/80 group-hover/item:text-dark-text`}`,children:r+1}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,X.jsx)(`span`,{"data-testid":`rail-entry-content`,className:`block break-words text-xs leading-snug line-clamp-2 group-hover/item:line-clamp-none transition-colors duration-200 ${a?`font-medium text-accent-blue`:`text-dark-text/90`}`,children:e.content})}),(0,X.jsx)(P,{size:12,"aria-hidden":`true`,className:`mt-0.5 shrink-0 -translate-x-1 rtl:translate-x-1 rtl:rotate-180 text-dark-muted/50 opacity-0 transition-all duration-200 group-hover/item:translate-x-0 group-hover/item:opacity-100`})]},e.id)})})]}),(0,X.jsx)(`div`,{"data-testid":`rail-dots`,className:`flex flex-col items-end`,style:{maxHeight:s},children:p.map(e=>{let{first:t}=e,r=e.end-e.start>1,i=r?`${e.start+1}–${e.end} (${e.end-e.start})`:`${e.start+1}. ${pt(t.content)}`;return(0,X.jsx)(`button`,{type:`button`,role:`listitem`,onClick:()=>n(t.id),title:r?`${e.start+1}–${e.end}: ${t.content}`:t.content,"aria-label":i,"aria-current":e.active?`true`:void 0,className:`group/dot pointer-events-auto flex items-center justify-center rounded-full transition-colors duration-200 hover:bg-dark-surface/80`,style:{height:d,width:20},children:(0,X.jsx)(`span`,{style:{height:e.active?h:m,width:e.active?h:m},className:e.active?`rounded-full bg-accent-blue transition-all duration-300 ease-out group-hover/dot:scale-125 ${g}`:`rounded-full bg-dark-muted/35 transition-all duration-300 ease-out group-hover/dot:scale-125 group-hover/dot:bg-dark-muted`})},e.key)})})]})})});function xt(e){let t=ue(e=>e.activeSessionId);return!(t&&e&&t!==e)}function St({sessionId:e,suppressSummary:t=!1}){let n=de(e=>e.compactionProgress),r=de(e=>e.lastCompactSummary);return xt(e)?n?(0,X.jsx)(Tt,{progress:n}):r&&!t?(0,X.jsx)(Et,{summary:r,className:`chat-col px-4 pb-1.5 pt-1 sm:px-6`}):null:null}function Ct(e){return e<1e4?`${(e/1e3).toFixed(1)}s`:`${Math.round(e/1e3)}s`}function wt(e){return Math.max(0,Math.min(100,Math.round(e)))}function Tt({progress:e}){let t=e.percent>=100,n=wt(e.percent),{tokensBefore:r,startedAt:i}=e,[a,o]=(0,Y.useState)(()=>i===void 0?0:Date.now()-i);return(0,Y.useEffect)(()=>{if(i===void 0||t)return;let e=()=>o(Date.now()-i);e();let n=window.setInterval(e,1e3);return()=>window.clearInterval(n)},[i,t]),(0,X.jsx)(`div`,{"data-testid":`compaction-indicator`,className:`chat-col animate-fade-in px-4 py-1.5 text-xs text-dark-muted sm:px-6`,title:e.message||void 0,children:(0,X.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,X.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5 whitespace-nowrap text-dark-text`,children:[(0,X.jsx)(`span`,{className:`inline-block h-1.5 w-1.5 rounded-full ${t?`bg-accent-green`:`compact-live-dot bg-accent-blue`}`}),`compact`]}),e.stage&&(0,X.jsx)(`span`,{className:`hidden shrink-0 whitespace-nowrap text-meta uppercase tracking-wide text-dark-muted/80 sm:inline`,children:e.stage}),(0,X.jsxs)(`span`,{className:`w-9 shrink-0 text-right tabular-nums whitespace-nowrap text-dark-text`,children:[n,`%`]}),(0,X.jsx)(`span`,{role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":n,className:`relative h-2 min-w-0 flex-1 overflow-hidden rounded-full bg-dark-border/50`,children:(0,X.jsxs)(`span`,{className:`compact-progress-fill absolute inset-y-0 left-0 overflow-hidden rounded-full ${t?`bg-accent-green`:`bg-gradient-to-r from-accent-blue/70 to-accent-blue`}`,style:{width:`${n}%`},children:[!t&&(0,X.jsx)(`span`,{className:`compact-stripes absolute -inset-x-4 inset-y-0`}),!t&&(0,X.jsx)(`span`,{className:`animate-compact-sheen absolute inset-y-0 left-0 w-1/3 rounded-full bg-gradient-to-r from-transparent via-white/60 to-transparent`})]})}),r!==void 0&&(0,X.jsxs)(`span`,{className:`shrink-0 whitespace-nowrap tabular-nums text-dark-muted`,children:[H(r),` → …`]}),!t&&i!==void 0&&a>=1e3&&(0,X.jsx)(`span`,{className:`w-8 shrink-0 text-right whitespace-nowrap tabular-nums text-dark-muted/80`,children:Ct(a)})]})})}function Et({summary:e,className:t=``}){let{tokensBefore:n,tokensAfter:r,tokensSaved:i,messagesBefore:a,messagesAfter:o,durationMs:s}=e,c=n!==void 0&&r!==void 0&&n>0,l=c?Math.max(0,Math.min(100,Math.round(i/n*100))):void 0,u=c?Math.max(0,Math.min(100,r/n*100)):0,[d,f]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{f(!1);let e=window.requestAnimationFrame(()=>f(!0));return()=>window.cancelAnimationFrame(e)},[e.at]);let p=[a!==void 0&&o!==void 0?`${a} → ${o} msgs`:o===void 0?a===void 0?``:`${a} msgs`:`${o} msgs`,s!==void 0&&s>=300?Ct(s):``].filter(Boolean).join(` · `);return(0,X.jsx)(`div`,{"data-testid":`compaction-summary`,className:`animate-fade-in-up ${t}`.trim(),children:(0,X.jsxs)(`div`,{className:`rounded-lg border border-dark-border/60 bg-dark-surface/50 px-3 py-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,X.jsx)(`span`,{className:`text-accent-green`,children:`✓`}),(0,X.jsx)(`span`,{className:`whitespace-nowrap text-dark-text`,children:`compact`}),c?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`span`,{className:`tabular-nums whitespace-nowrap text-dark-muted`,children:[H(n),` → `,H(r)]}),l!==void 0&&l>0&&(0,X.jsxs)(`span`,{className:`whitespace-nowrap rounded-full bg-accent-green/[0.12] px-1.5 text-accent-green`,children:[`−`,l,`%`]})]}):i>0&&(0,X.jsxs)(`span`,{className:`tabular-nums whitespace-nowrap text-accent-green`,children:[`−`,H(i)]}),(0,X.jsx)(`span`,{className:`flex-1`}),(0,X.jsx)(`span`,{className:`whitespace-nowrap tabular-nums text-dark-muted`,children:p}),(0,X.jsx)(`button`,{type:`button`,onClick:()=>de.getState().setCompactSummary(null),"aria-label":`hide compaction summary`,title:`hide`,className:`-me-1 flex h-4 w-4 shrink-0 items-center justify-center rounded text-dark-muted/60 transition-colors hover:text-dark-text`,children:(0,X.jsx)(te,{size:12})})]}),c&&(0,X.jsxs)(`div`,{className:`mt-1.5 space-y-1`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`h-1.5 min-w-0 flex-1 rounded-full bg-dark-muted/35`}),(0,X.jsx)(`span`,{className:`min-w-10 shrink-0 text-right text-meta tabular-nums text-dark-muted`,children:H(n)})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`relative h-1.5 min-w-0 flex-1 overflow-hidden rounded-full bg-dark-border/40`,children:(0,X.jsx)(`span`,{className:`compact-bar-collapse absolute inset-y-0 left-0 rounded-full bg-accent-green/80`,style:{width:`${d?u:100}%`}})}),(0,X.jsx)(`span`,{className:`min-w-10 shrink-0 text-right text-meta tabular-nums text-accent-green`,children:H(r)})]})]})]})})}var Dt=24,Ot=2e3,kt=150,At=28;function jt({label:e}){let t=(0,Y.useRef)(Date.now()),n=(0,Y.useRef)(null),[r,i]=(0,Y.useState)(!1);return(0,Y.useEffect)(()=>{let e=window.setTimeout(()=>i(!0),15e3);return()=>window.clearTimeout(e)},[]),(0,Y.useEffect)(()=>{if(!r)return;let e=()=>{let e=n.current;if(!e)return;let r=Math.floor((Date.now()-t.current)/1e3);e.textContent=r>=60?`${Math.floor(r/60)}m ${r%60}s`:`${r}s`};e();let i=window.setInterval(e,1e3);return()=>window.clearInterval(i)},[r]),(0,X.jsxs)(`div`,{className:`chat-col flex items-center gap-2 px-4 py-3 text-xs text-dark-muted sm:px-6`,children:[(0,X.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,X.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-accent-blue animate-blink`}),(0,X.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-accent-blue animate-blink`,style:{animationDelay:`0.2s`}}),(0,X.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-accent-blue animate-blink`,style:{animationDelay:`0.4s`}})]}),(0,X.jsx)(`span`,{className:`text-shimmer`,children:e}),r&&(0,X.jsxs)(`span`,{className:`flex items-center gap-1 tabular-nums text-dark-muted/70`,children:[(0,X.jsx)(j,{size:10}),(0,X.jsx)(`span`,{ref:n,children:`15s`})]})]})}var Mt=(0,Y.memo)(function({messages:e,isGenerating:t,sessionId:r,onRegenerate:i,onRetryTurn:a,onDeleteMessage:o,onOpenSidebarView:s}){let{t:c}=I(),l=(0,Y.useRef)(null),u=de(e=>e.compactionProgress),d=de(e=>e.lastCompactSummary),f=(0,Y.useRef)(new Map),[p,m]=(0,Y.useState)(!0),[h,g]=(0,Y.useState)(null),_=(0,Y.useRef)(p),v=(0,Y.useRef)(h),y=(0,Y.useCallback)(e=>{_.current!==e&&(_.current=e,m(e))},[]),b=(0,Y.useCallback)(e=>{v.current!==e&&(v.current=e,g(e))},[]),[x,S]=(0,Y.useState)(null),[C,w]=(0,Y.useState)(0),T=(0,Y.useRef)(null),E=(0,Y.useRef)(!1),D=(0,Y.useRef)(null),O=(0,Y.useRef)(!1),ee=(0,Y.useRef)(null),k=(0,Y.useRef)(!1),A=(0,Y.useRef)(null),te=(0,Y.useRef)(null),ne=(0,Y.useRef)(t);ne.current=t;let re=(0,Y.useRef)(0),[j,ie]=(0,Y.useState)({top:0,bottom:0}),M=(0,Y.useRef)(j),ae=(0,Y.useCallback)((e,t)=>{(M.current.top!==e||M.current.bottom!==t)&&(M.current={top:e,bottom:t},ie({top:e,bottom:t}))},[]),N=(0,Y.useMemo)(()=>e.filter(e=>!e.deleted),[e]),oe=xt(r),P=d?.anchorMessageId,se=(0,Y.useMemo)(()=>oe&&!!P&&N.some(e=>e.id===P),[oe,P,N]),ce=(0,Y.useMemo)(()=>{if(!t)return!1;let e=N[N.length-1];return!e||e.type!==`assistant`?!1:!e.content},[t,N]),F=(0,Y.useMemo)(()=>N.filter(e=>le(e)).map(e=>({id:e.id,content:e.content})),[N]),L=(0,Y.useMemo)(()=>F.map(e=>e.id),[F]),R=(0,Y.useCallback)(e=>{if(e){let t=e.dataset.mid;t&&f.current.set(t,e)}},[]);(0,Y.useEffect)(()=>{let e=new Set(L);for(let t of f.current.keys())e.has(t)||f.current.delete(t)},[L]);let ue=(0,Y.useCallback)(()=>{let e=l.current;if(!e||L.length===0){b(null);return}let t=e.getBoundingClientRect(),n=t.top+t.height*.35,r=L[0]??null;for(let e of L){let t=f.current.get(e);if(t&&t.isConnected){if(t.getBoundingClientRect().top<=n)r=e;else break}}e.scrollHeight-e.scrollTop-e.clientHeight<Dt&&(r=L[L.length-1]??r),b(r)},[L,b]),z=(0,Y.useCallback)(()=>{let e=l.current;if(!e)return;let t=e.scrollTop<=2,n=e.scrollTop+e.clientHeight>=e.scrollHeight-2;ae(t?0:At,n?0:At)},[ae]),fe=(0,Y.useCallback)(()=>{let e=l.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight,n=t<Dt;O.current?n&&(O.current=!1):E.current?t>=Dt&&(E.current=!1):y(n),ue(),z()},[ue,z,y]),B=(0,Y.useCallback)(()=>{let e=l.current;if(!e||ne.current||E.current||O.current)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight;y(t<Dt),z()},[y,z]);(0,Y.useLayoutEffect)(()=>{k.current=!0,A.current&&window.clearTimeout(A.current),A.current=window.setTimeout(()=>{k.current=!1},Ot),D.current&&window.clearTimeout(D.current),E.current=!1,O.current=!1;let e=l.current;e&&(e.scrollTop=e.scrollHeight),y(!0),z()},[r,y,z]),(0,Y.useEffect)(()=>{let e=l.current,t=te.current;if(!e||!t||typeof ResizeObserver>`u`)return;let n=new ResizeObserver(()=>{k.current&&_.current&&(e.scrollTop=e.scrollHeight)});return n.observe(t),()=>n.disconnect()},[]),(0,Y.useEffect)(()=>{ue(),z()},[e,ue,z]),(0,Y.useEffect)(()=>{let e=l.current;if(!e)return;let t=()=>{z(),B()},n=()=>{re.current=performance.now(),O.current=!1,k.current=!1},r=e=>{(e.key===`PageUp`||e.key===`PageDown`||e.key===`ArrowUp`||e.key===`ArrowDown`||e.key===`Home`||e.key===`End`)&&n()};return e.addEventListener(`wheel`,n,{passive:!0}),e.addEventListener(`touchmove`,n,{passive:!0}),e.addEventListener(`keydown`,r),window.addEventListener(`resize`,t),()=>{e.removeEventListener(`wheel`,n),e.removeEventListener(`touchmove`,n),e.removeEventListener(`keydown`,r),window.removeEventListener(`resize`,t)}},[z,B]);let pe=(0,Y.useCallback)(e=>{let t=l.current,n=f.current.get(e);if(!t||!n||!n.isConnected)return;y(!1),S(e),w(e=>e+1),T.current&&window.clearTimeout(T.current),T.current=window.setTimeout(()=>S(null),1600);let r=t.getBoundingClientRect(),i=n.getBoundingClientRect(),a=t.scrollTop+(i.top-r.top)-t.clientHeight/2+i.height/2;D.current&&window.clearTimeout(D.current),E.current=!0,t.scrollTo({top:Math.max(0,a),behavior:`smooth`}),`onscrollend`in t&&t.addEventListener(`scrollend`,()=>{E.current=!1},{once:!0}),D.current=window.setTimeout(()=>{E.current=!1},1500)},[y]);(0,Y.useEffect)(()=>()=>{T.current&&window.clearTimeout(T.current),D.current&&window.clearTimeout(D.current),ee.current&&window.clearTimeout(ee.current),A.current&&window.clearTimeout(A.current)},[]);let me=(0,Y.useCallback)(()=>{D.current&&window.clearTimeout(D.current),E.current=!1;let e=l.current;e&&(e.scrollTop=e.scrollHeight)},[]),V=(0,Y.useCallback)(()=>{D.current&&window.clearTimeout(D.current),E.current=!1,y(!0);let e=l.current;e&&(O.current=!0,ee.current&&window.clearTimeout(ee.current),ee.current=window.setTimeout(()=>{O.current=!1},1e3),`onscrollend`in e&&e.addEventListener(`scrollend`,()=>{O.current=!1},{once:!0}),e.scrollTo({top:e.scrollHeight,behavior:`smooth`}))},[y]);(0,Y.useEffect)(()=>{t&&(y(!0),me())},[t,me,y]);let he=(0,Y.useMemo)(()=>{let e=N[N.length-1],t=u?`c:${Math.round(u.percent)}`:d?`s:${d.at}`:``;return`${N.length}:${e?.id??``}:${e?.content?.length??0}:${e?.textBlocks?.length??0}:${e?.toolCalls?.length??0}:${e?.thinkingBlocks?.length??0}:${e?.thinking?.length??0}:${t}`},[N,u,d]),ge=(0,Y.useRef)(he);return(0,Y.useEffect)(()=>{p?he!==ge.current&&(ge.current=he,!(performance.now()-re.current<=kt)&&me()):ge.current=he},[he,p,me]),(0,X.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[(0,X.jsxs)(`div`,{ref:l,onScroll:fe,style:{"--ui-fade-top":`${j.top}px`,"--ui-fade-bottom":`${j.bottom}px`},className:`fade-mask-y h-full overflow-y-auto custom-scrollbar`,children:[(0,X.jsx)(`div`,{ref:te,className:`chat-stack flex flex-col pb-8 pt-5`,children:N.map((e,t)=>{let n=N[t-1],c=n?n.type===e.type?`mt-2`:`mt-5`:``;return(0,X.jsxs)(Y.Fragment,{children:[(0,X.jsxs)(`div`,{"data-mid":e.id,ref:R,className:`relative w-full ${c}`,children:[x===e.id&&(0,X.jsx)(`div`,{className:`animate-rail-flash pointer-events-none absolute inset-0`},C),(0,X.jsx)(Ce,{message:e,sessionId:r,onRegenerate:i,onRetryTurn:a,onDeleteMessage:o,onOpenSidebarView:s})]}),se&&d&&e.id===P&&(0,X.jsx)(Et,{summary:d,className:`pb-1.5 pt-1`})]},e.id)})}),(0,X.jsx)(St,{sessionId:r,suppressSummary:se}),t&&!ce&&(0,X.jsx)(jt,{label:c(`chat.thinkingEllipsis`)},r)]}),F.length>0&&(0,X.jsx)(bt,{items:F,activeId:h,onJump:pe}),!p&&N.length>0&&(0,X.jsx)(`button`,{type:`button`,onClick:V,title:c(`chat.backToBottom`),"aria-label":c(`chat.backToBottom`),className:`absolute bottom-5 end-5 z-20 flex h-8 w-8 animate-fade-in-up items-center justify-center rounded-full border border-dark-border/70 bg-dark-surface/90 text-dark-muted shadow-lg backdrop-blur transition-all duration-200 hover:scale-110 hover:text-dark-text hover:shadow-xl`,children:(0,X.jsx)(n,{size:15})})]})}),Nt=(0,Y.memo)(function(){let{t:e}=I(),t=be(e=>e.mode),n=be(e=>e.setAutoLevel),r=K(e=>e.autoLevel),i=t!==`normal`&&ge(t),a=Te(i?r:0),o=(t===`normal`?`act`:he(t))===`chat`,s=ye[a],[c,l]=(0,Y.useState)(!1),[u,d]=(0,Y.useState)(null),f=(0,Y.useId)(),p=u??a,m=ye[p],h=(0,Y.useRef)(null),g=(0,Y.useRef)(null),_=e=>{o||(l(!0),h.current?.contains(e.target)||d(null))},v=e=>{let t=e.relatedTarget;t&&g.current?.contains(t)||(l(!1),d(null))},y=(0,Y.useCallback)(e=>{o||e!==a&&n(e)},[o,a,n]),b=(0,Y.useRef)(0);(0,Y.useEffect)(()=>{let e=g.current;if(!e||o)return;let t=e=>{let t=Math.abs(e.deltaY)>=Math.abs(e.deltaX)?e.deltaY:0;if(t===0||(e.preventDefault(),b.current+=t,Math.abs(b.current)<30))return;let n=b.current>0?1:-1;b.current=0,y(G(a,n>0?-1:1))};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[y,o,a]);let x=(0,Y.useCallback)(e=>{if(o)return;let t=t=>{e.preventDefault(),y(G(a,t))};switch(e.key){case`ArrowUp`:case`ArrowRight`:t(1);break;case`ArrowDown`:case`ArrowLeft`:t(-1);break;case`Home`:e.preventDefault(),y(0);break;case`End`:e.preventDefault(),y(4)}},[y,o,a]),S=t=>{let n=ye[t];return`${t}/4 · ${n.label} — ${n.hint}\n${e(`plan.autoAllows`)}: ${n.allows}\n${e(`plan.autoAsks`)}: ${n.asks}`},C=`${e(`plan.autoApprove`)} ${S(a)}`;return(0,X.jsxs)(`div`,{ref:g,role:`slider`,tabIndex:o?-1:0,"aria-label":e(`plan.autoApprove`),"aria-valuemin":0,"aria-valuemax":4,"aria-valuenow":a,"aria-valuetext":`${s.label} (${a}/4)`,"aria-describedby":c?f:void 0,"aria-disabled":o||void 0,onKeyDown:x,onMouseOver:_,onMouseOut:v,onFocus:()=>l(!o),onBlur:()=>{l(!1),d(null)},title:c?void 0:o?`${e(`plan.autoApprove`)} — chat · ${s.hint}`:C,className:V(`relative flex items-center gap-1.5 rounded-full border px-2 py-0.5 text-xs whitespace-nowrap transition-colors select-none`,o?`border-dark-border text-dark-muted opacity-50 cursor-not-allowed`:V(`cursor-pointer outline-none focus-visible:ring-1 focus-visible:ring-accent-yellow/60`,i?`border-accent-yellow/40 bg-accent-yellow/10 text-accent-yellow`:`border-dark-border text-dark-muted hover:bg-dark-hover`)),children:[(0,X.jsx)(`span`,{ref:h,className:`flex items-end gap-[2px]`,"aria-hidden":!0,children:Ee.map(e=>{let t=e>0&&a>=e;return(0,X.jsx)(`span`,{title:c?void 0:S(e),onMouseOver:()=>d(e),onMouseDown:t=>{t.preventDefault(),y(e)},className:V(`w-[3px] rounded-sm transition-colors`,t?`bg-accent-yellow`:i?`bg-accent-yellow/25 hover:bg-accent-yellow/60`:`bg-dark-border`,!o&&(i?`hover:bg-accent-yellow/70`:`hover:bg-dark-muted/50`)),style:{height:4+e*2.5}},e)})}),(0,X.jsx)(`span`,{className:`font-medium tabular-nums`,children:a}),(0,X.jsx)(`span`,{className:`uppercase tracking-wide`,children:s.label}),c&&(0,X.jsxs)(`div`,{id:f,role:`tooltip`,className:`pointer-events-none absolute bottom-full left-0 z-50 mb-2 w-max max-w-[min(80vw,30rem)] space-y-1 whitespace-normal break-words rounded-lg border border-dark-border bg-dark-surface px-2.5 py-2 text-start font-normal normal-case tracking-wide text-dark-text shadow-pop`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-1.5`,children:[(0,X.jsx)(`span`,{className:`font-medium tabular-nums`,children:p}),(0,X.jsx)(`span`,{className:`uppercase tracking-wide text-accent-yellow`,children:m.label}),(0,X.jsx)(`span`,{className:`text-dark-muted`,children:m.hint})]}),(0,X.jsxs)(`div`,{className:`grid grid-cols-[auto_minmax(0,1fr)] gap-x-1.5 gap-y-0.5`,children:[(0,X.jsx)(`span`,{className:`whitespace-nowrap text-accent-green`,children:e(`plan.autoAllows`)}),(0,X.jsx)(`span`,{className:`text-dark-muted`,children:m.allows}),(0,X.jsx)(`span`,{className:`whitespace-nowrap text-accent-yellow`,children:e(`plan.autoAsks`)}),(0,X.jsx)(`span`,{className:`text-dark-muted`,children:m.asks})]})]})]})}),Pt={act:`border-accent-green/30 text-accent-green bg-accent-green/10`,"auto-act":`border-accent-yellow/30 text-accent-yellow bg-accent-yellow/10`,goal:`border-accent-purple/30 text-accent-purple bg-accent-purple/10`,"auto-goal":`border-accent-red/30 text-accent-red bg-accent-red/10`,chat:`border-accent-cyan/30 text-accent-cyan bg-accent-cyan/10`,normal:`border-accent-green/30 text-accent-green`},Ft=(0,Y.memo)(function(){let{t:e}=I(),t=be(e=>e.mode),n=be(e=>e.modeSource),r=be(e=>e.setBaseMode),i=he(t===`normal`?`act`:t),a=n===`user_override`;return(0,X.jsxs)(`div`,{className:`flex items-center gap-1`,children:[U.map(n=>{let o=i===n,s=W[n],c=t!==`normal`&&o?Pt[t]??`border-dark-border text-dark-muted`:`border-dark-border text-dark-muted hover:bg-dark-hover`;return(0,X.jsxs)(`button`,{type:`button`,onClick:()=>r(n),className:V(`px-2 py-0.5 rounded-full border text-xs whitespace-nowrap transition-colors cursor-pointer`,c),title:e(`chat.clickToSwitchMode`),"aria-pressed":o,children:[s.label,o&&a&&(0,X.jsx)(v,{size:10,className:`ms-1 inline-block -mt-px`,"aria-hidden":!0})]},n)}),a&&(0,X.jsx)(`span`,{className:`flex items-center text-accent-yellow`,title:e(`plan.modeLocked`),"aria-label":e(`plan.modeLocked`),children:(0,X.jsx)(v,{size:11,"aria-hidden":!0})}),(0,X.jsx)(Nt,{})]})}),It=(0,Y.memo)(function(){let{t:e}=I(),t=ue(e=>e.activeSessionId),n=be(e=>t?e.pendingSuggestionsBySession[t]:void 0),r=be(e=>e.clearPendingSuggestion),i=be(e=>e.setBaseMode);if(!n)return null;let a=n.suggestedMode;if(a!==`act`&&a!==`goal`)return null;let o=a,s=W[o]?.label??o,c=W[he(n.currentMode)]?.label??n.currentMode,l=typeof n.confidence==`number`?` · ${e(`plan.modeSuggestionConfidence`)} ${Math.round(n.confidence*100)}%`:``;return(0,X.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-accent-cyan/20 bg-accent-cyan/10 px-4 py-1.5 text-xs`,role:`status`,children:[(0,X.jsx)(`span`,{className:`shrink-0 font-medium text-accent-cyan`,children:e(`plan.modeSuggestionTitle`)}),(0,X.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1 text-dark-muted`,children:[(0,X.jsx)(`span`,{className:`whitespace-nowrap`,children:c}),(0,X.jsx)(_,{size:11,className:`shrink-0`,"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`whitespace-nowrap text-dark-text`,children:s}),(0,X.jsx)(`span`,{className:`shrink-0`,children:l}),n.reason&&(0,X.jsxs)(`span`,{className:`hidden min-w-0 truncate md:inline`,title:n.reason,children:[`· `,n.reason]})]}),(0,X.jsxs)(`span`,{className:`ms-auto flex shrink-0 items-center gap-1.5`,children:[(0,X.jsxs)(`button`,{type:`button`,onClick:()=>{i(o),r(n.sessionId)},className:V(`flex items-center gap-1 rounded-full border border-accent-cyan/40 px-2.5 py-0.5`,`text-accent-cyan transition-colors hover:bg-accent-cyan/20 cursor-pointer`),children:[(0,X.jsx)(N,{size:11,"aria-hidden":!0}),e(`plan.modeSuggestionApply`,{mode:s})]}),(0,X.jsxs)(`button`,{type:`button`,onClick:()=>r(n.sessionId),className:V(`flex items-center gap-1 rounded-full border border-dark-border px-2.5 py-0.5`,`text-dark-muted transition-colors hover:bg-dark-hover cursor-pointer`),children:[(0,X.jsx)(te,{size:11,"aria-hidden":!0}),e(`plan.modeSuggestionKeep`,{mode:c})]})]})]})}),Q=F();function Lt(){return Pe.get(`/api/models/cached`)}var Rt=(0,Y.memo)(function(){let{t:e}=I(),t=de(e=>e.model),r=de(e=>e.modelRef),i=de(e=>e.setModel),a=de(e=>e.setModelRef),s=be(e=>e.mode),l=Fe(e=>e.effort),u=Fe(e=>e.setEffort),[d,f]=(0,Y.useState)([]),[p,h]=(0,Y.useState)(!1),{visible:g,phase:_}=pe(p),v=(0,Y.useRef)(null),y=(0,Y.useRef)(null),[b,S]=(0,Y.useState)(`session`),[C,w]=(0,Y.useState)(`user`),T=Ve(e=>e.kinds),E=Ve(e=>e.load),D=ue(e=>e.activeSessionId),[O,ee]=(0,Y.useState)(`models`),[k,A]=(0,Y.useState)(``),[te,ne]=(0,Y.useState)(``),[j,ie]=(0,Y.useState)({}),[M,ae]=(0,Y.useState)({}),[oe,P]=(0,Y.useState)(!1),[se,ce]=(0,Y.useState)(null),[F,le]=(0,Y.useState)([]),L=(0,Y.useMemo)(()=>Ke(Array.from(new Set(d.map(e=>e.provider).filter(Boolean))),d,F),[d,F]),R=(0,Y.useCallback)(async()=>{try{let e=await q.models.list();e.success&&e.data&&Array.isArray(e.data.models)&&f(e.data.models.filter(e=>e.enabled!==!1))}catch{}},[]),z=(0,Y.useCallback)(async()=>{try{let e=await Lt();e.success&&e.data?.providers&&ie(e.data.providers)}catch{}},[]),fe=(0,Y.useCallback)(async t=>{if(t){P(!0),ce(null);try{let n=await q.models.byProvider(t);if(n.success&&n.data){let e=n.data.models||[];ae(n=>({...n,[t]:e}))}else ce(n.error||e(`chat.loadModelsFailed`))}catch{ce(e(`chat.loadModelsFailed`))}finally{P(!1)}}},[e]);(0,Y.useEffect)(()=>{R()},[R]);let[me,ge]=(0,Y.useState)(0);(0,Y.useEffect)(()=>{let e=()=>{R(),z(),ge(e=>e+1)};return window.addEventListener(`models-updated`,e),()=>window.removeEventListener(`models-updated`,e)},[R,z]);let[H,U]=(0,Y.useState)(null),W=(0,Y.useCallback)(()=>{let e=v.current;if(!e)return;let t=e.getBoundingClientRect();U({left:Math.max(8,Math.min(t.left,window.innerWidth-400-8)),bottom:Math.max(8,window.innerHeight-t.top+6),maxHeight:Math.max(160,t.top-6-8)})},[]),_e=(0,Y.useCallback)(()=>{let e=J(r)||d.find(e=>e.isGlobalDefault)?.provider||L[0]||``;ee(`models`),A(e),ne(``),ce(null),W(),h(!0),z()},[r,d,L,z,W]);(0,Y.useEffect)(()=>{p&&k&&fe(k)},[p,k,me,fe]),(0,Y.useEffect)(()=>{p&&(k&&L.includes(k)||A(L[0]||``))},[p,k,L]),(0,Y.useEffect)(()=>{p&&E()},[p,E]),(0,Y.useEffect)(()=>{T.length!==0&&(T.some(e=>e.id===C)||w(T[0].id))},[T,C]);let G=(0,Y.useCallback)(()=>h(!1),[]);(0,Y.useEffect)(()=>{if(p)return W(),window.addEventListener(`resize`,W),window.addEventListener(`scroll`,W,!0),()=>{window.removeEventListener(`resize`,W),window.removeEventListener(`scroll`,W,!0)}},[p,W]),(0,Y.useEffect)(()=>{if(!p)return;let e=e=>{let t=e.target;v.current?.contains(t)||y.current?.contains(t)||G()},t=e=>{e.key===`Escape`&&G()};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[p,G]);let ve=(0,Y.useMemo)(()=>{let e=M[k];return e&&e.length>0?e:j[k]?.models??[]},[M,j,k]),ye=(0,Y.useMemo)(()=>qe(Ge(k,ve,d),F,k),[k,ve,d,F]),xe=(0,Y.useMemo)(()=>{let e=te.trim().toLowerCase();return e?ye.filter(t=>t.id.toLowerCase().includes(e)||t.name.toLowerCase().includes(e)):ye},[ye,te]),K=e=>{le(t=>[e,...t.filter(t=>t!==e)].slice(0,20))},Se=async n=>{if(G(),b===`session`&&!D){B.error(e(`chat.sessionModelNoSession`));return}let o=k,c=`${o}:${n.id}`,l=t,u=r;i(n.id),a(c);try{if(!n.configured){let t=await q.models.create({provider:o,model:{id:n.id,name:n.name||n.id}});if(!t.success){i(l),a(u),B.error(t.error||e(`chat.addModelFailed`));return}}if(b===`session`){let t=await q.models.setSessionModel(D,o,n.id);if(!t.success){i(l),a(u),B.error(t.error||e(`chat.switchModelFailed`));return}K(c),await R();return}if(b===`kind`){let t=Ve.getState(),r=T.find(e=>e.id===C)?.labelKey?e(T.find(e=>e.id===C).labelKey):C;if(!await t.saveEntry(C,{...t.entries[C]??{},model:n.id})){i(l),a(u),B.error(t.error||e(`chat.kindBindFailed`));return}if(D){let t=await q.models.setSessionModel(D,o,n.id);if(!t.success){i(l),a(u),B.error(t.error||e(`chat.switchModelFailed`));return}}K(c),B.success(e(`chat.kindBoundToast`,{kind:r,model:n.id})),await R();return}let t=he(s===`normal`?`act`:s)===`goal`?{goal:c}:{global:c,act:c},r=await q.models.setDefaults(t);if(!r.success){i(l),a(u),B.error(r.error||e(`chat.switchModelFailed`));return}K(c),await R()}catch{i(l),a(u),B.error(e(`chat.addModelFailed`))}},Ce=he(s===`normal`?`act`:s),we=Ce===`goal`?`isGoalDefault`:`isActDefault`,Te=e=>{let n=`${k}:${e.id}`;return r?r===n:t===n||t===e.id},Ee=d.some(e=>e[we]===!0),De=d.find(e=>e.isGlobalDefault),Oe=async()=>{G();let e=Ce===`goal`?{goal:null}:{act:null};try{(await q.models.setDefaults(e)).success&&(De?(i(De.id),a(`${De.provider}:${De.id}`)):(i(``),a(``)),await R())}catch{}},ke=Ye(t,r),Ae=te.trim().toLowerCase();return(0,X.jsxs)(`div`,{className:`relative min-w-0`,ref:v,children:[(0,X.jsxs)(`button`,{type:`button`,onClick:()=>p?G():_e(),className:`flex w-full items-center gap-1 px-2 py-0.5 rounded-full border border-dark-border text-dark-muted whitespace-nowrap transition-colors hover:bg-dark-hover cursor-pointer`,title:ke||e(`chat.clickToSelectModel`),"aria-haspopup":`listbox`,"aria-expanded":p,children:[(0,X.jsx)(c,{size:12,className:`shrink-0`}),(0,X.jsx)(`span`,{className:`font-medium max-w-[8rem] truncate`,children:ke||e(`chat.selectModel`)}),(0,X.jsx)(n,{size:12,className:V(`transition-transform`,p&&`rotate-180`)})]}),g&&(0,Q.createPortal)((0,X.jsxs)(`div`,{ref:y,role:`listbox`,"data-phase":_,"aria-label":e(`chat.selectModel`),style:H?{left:H.left,bottom:H.bottom,maxHeight:H.maxHeight}:void 0,className:`fixed z-50 flex w-[400px] max-w-[92vw] flex-col overflow-hidden rounded-lg border border-dark-border bg-dark-overlay ui-surface-overlay shadow-pop ui-overlay-panel-fade`,children:[(0,X.jsx)(`div`,{role:`tablist`,"aria-label":e(`chat.selectModel`),className:`flex shrink-0 items-center gap-1 px-2 py-1.5 border-b border-dark-border`,children:[{key:`models`,label:e(`chat.selectModel`),Icon:c},{key:`effort`,label:e(`chat.effort`),Icon:x}].map(({key:e,label:t,Icon:n})=>(0,X.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":O===e,onClick:()=>ee(e),className:V(`flex items-center gap-1 text-meta px-2 py-0.5 rounded-full border transition-colors cursor-pointer`,O===e?`border-accent-blue text-accent-blue bg-accent-blue/10 font-medium`:`border-dark-border text-dark-muted hover:text-dark-text hover:bg-dark-hover`),children:[(0,X.jsx)(n,{size:11,className:`shrink-0`}),t]},e))}),O===`models`?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:`flex shrink-0 items-center gap-1 px-2 py-1.5 border-b border-dark-border`,children:[{key:`session`,label:e(`chat.applyScopeSession`),hint:e(`chat.sessionScopeHint`)},{key:`kind`,label:e(`chat.applyScopeKind`),hint:e(`chat.kindScopeHint`)},{key:`global`,label:e(`chat.applyScopeGlobal`),hint:e(`chat.globalScopeHint`)}].map(({key:e,label:t,hint:n})=>(0,X.jsx)(`button`,{type:`button`,onClick:()=>S(e),title:n,className:V(`text-meta px-2 py-0.5 rounded-full border transition-colors cursor-pointer`,b===e?`border-accent-blue text-accent-blue bg-accent-blue/10 font-medium`:`border-dark-border text-dark-muted hover:text-dark-text hover:bg-dark-hover`),children:t},e))}),b===`kind`&&(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 px-2 py-1.5 border-b border-dark-border text-meta`,children:[(0,X.jsx)(`span`,{className:`text-dark-muted`,children:e(`chat.kindSelectLabel`)}),(0,X.jsx)(`select`,{value:C,onChange:e=>w(e.target.value),className:`rounded border border-dark-border bg-dark-surface px-1.5 py-0.5 text-meta text-dark-text`,children:T.map(t=>(0,X.jsx)(`option`,{value:t.id,children:t.labelKey?e(t.labelKey):t.id},t.id))})]}),Ee&&(0,X.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":!1,onClick:Oe,title:e(`chat.followGlobalDefaultHint`),className:`flex w-full shrink-0 items-center gap-2 px-3 py-2 text-start transition-colors hover:bg-dark-hover border-b border-dark-border/60`,children:[(0,X.jsx)(m,{size:11,className:`shrink-0 text-accent-green`}),(0,X.jsxs)(`span`,{className:`flex-1 min-w-0`,children:[(0,X.jsx)(`span`,{className:`text-xs font-semibold text-accent-green`,children:e(`chat.followGlobalDefault`)}),(0,X.jsx)(`span`,{className:`block text-badge text-dark-muted mt-0.5 truncate`,children:De?De.name||De.id:e(`chat.noGlobalDefault`)})]})]}),L.length>0?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{role:`tablist`,"aria-label":e(`chat.selectProvider`),className:`flex shrink-0 items-center gap-1 px-2 py-1.5 border-b border-dark-border overflow-x-auto custom-scrollbar`,children:L.map(e=>{let t=e===k,n=M[e]?.length||j[e]?.models.length||0;return(0,X.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t,onClick:()=>{A(e),ne(``),ce(null)},className:V(`shrink-0 flex items-center gap-1 text-meta px-2 py-0.5 rounded-full border transition-colors cursor-pointer`,t?`border-accent-blue text-accent-blue bg-accent-blue/10 font-medium`:`border-dark-border text-dark-muted hover:text-dark-text hover:bg-dark-hover`),children:[(0,X.jsx)(`span`,{className:`max-w-[7rem] truncate`,children:e}),n>0&&(0,X.jsx)(`span`,{className:`text-badge opacity-70`,children:n})]},e)})}),(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 px-2 py-1.5 border-b border-dark-border`,children:[(0,X.jsx)(re,{size:11,className:`shrink-0 text-dark-muted`}),(0,X.jsx)(`input`,{value:te,onChange:e=>ne(e.target.value),placeholder:e(`chat.searchModels`),"aria-label":e(`chat.searchModels`),className:`flex-1 min-w-0 bg-dark-surface text-dark-text text-xs px-2 py-1 rounded border border-dark-border placeholder-dark-muted/60 focus:outline-none focus:border-accent-blue`})]}),(0,X.jsxs)(`div`,{className:`min-h-0 overflow-y-auto py-1 custom-scrollbar`,style:{height:253},children:[oe&&xe.length===0&&(0,X.jsxs)(`div`,{className:`px-3 py-2 text-xs text-dark-muted flex items-center gap-1.5`,children:[(0,X.jsx)(o,{size:11,className:`animate-spin`}),e(`chat.loadingModels`)]}),!oe&&se&&xe.length===0&&(0,X.jsx)(`div`,{className:`px-3 py-2 text-xs text-accent-red`,children:se}),xe.map(t=>{let n=Te(t);return(0,X.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":n,onClick:()=>{Se(t)},className:V(`w-full shrink-0 flex items-center gap-2 px-3 py-2 text-start transition-colors`,n?`bg-dark-hover`:`hover:bg-dark-hover`),children:(0,X.jsxs)(`span`,{className:`flex-1 min-w-0`,children:[(0,X.jsxs)(`span`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,X.jsx)(`span`,{className:V(`flex h-3.5 w-3.5 items-center justify-center rounded-full border transition-colors shrink-0`,n?`border-accent-green bg-accent-green/20 text-accent-green`:`border-dark-border text-transparent`),children:(0,X.jsx)(N,{size:10,strokeWidth:3})}),(0,X.jsx)(`span`,{className:`text-xs font-semibold text-dark-text truncate`,children:t.name||t.id})]}),(0,X.jsxs)(`span`,{className:`flex items-center gap-1 mt-0.5 flex-wrap ps-[1.375rem]`,children:[(0,X.jsx)(`span`,{className:`text-badge text-dark-muted truncate`,children:t.id}),t.isGlobalDefault&&(0,X.jsx)(`span`,{className:`text-badge px-1 rounded bg-accent-red/20 text-accent-red`,children:e(`chat.globalDefault`)}),t.isActDefault&&!t.isGlobalDefault&&(0,X.jsx)(`span`,{className:`text-badge px-1 rounded bg-accent-yellow/20 text-accent-yellow`,children:e(`chat.actDefault`)}),t.isGoalDefault&&(0,X.jsx)(`span`,{className:`text-badge px-1 rounded bg-accent-purple/20 text-accent-purple`,children:e(`chat.goalDefault`)})]})]})},t.id)}),!oe&&!se&&xe.length===0&&(0,X.jsx)(`div`,{className:`px-3 py-2 text-xs text-dark-muted`,children:e(Ae?`chat.noModelsFound`:`chat.noProviderModels`)})]})]}):(0,X.jsx)(`div`,{className:`px-3 py-2 text-xs text-dark-muted`,children:e(`chat.noConfiguredProviders`)})]}):(0,X.jsx)(X.Fragment,{children:(0,X.jsx)(`div`,{className:`shrink-0 py-1`,children:Ie.map(t=>{let n=Me[t],r=t===l;return(0,X.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":r,onClick:()=>{u(t),G()},className:V(`w-full flex items-center gap-2 px-3 py-1.5 text-start transition-colors`,r?`bg-dark-hover`:`hover:bg-dark-hover`),children:[(0,X.jsx)(`span`,{className:V(`flex h-4 w-4 items-center justify-center rounded border transition-colors shrink-0`,r?`border-accent-green bg-accent-green/20 text-accent-green`:`border-dark-border text-transparent`),children:(0,X.jsx)(N,{size:11,strokeWidth:3})}),(0,X.jsx)(`span`,{className:`text-xs font-medium ${r?n.color:`text-dark-text`}`,children:e(n.labelKey)})]},t)})})})]}),document.body)]})});function zt(e){let t=(e??``).toLowerCase();return t?t.includes(`android`)?`android`:t.includes(`iphone`)||t.includes(`ipad`)||t.includes(`ipod`)?`ios`:t.includes(`mac`)||t.includes(`darwin`)?`macos`:t.includes(`win`)?`windows`:t.includes(`linux`)||t.includes(`x11`)||t.includes(`cros`)?`linux`:null:null}function Bt(){if(typeof navigator>`u`)return`unknown`;let e=typeof navigator.userAgent==`string`?navigator.userAgent:``,t=zt(e);if(t===`android`||t===`ios`)return t;let n=navigator.userAgentData,r=zt(n?.platform);if(r)return r;let i=typeof navigator.platform==`string`?navigator.platform:``;return zt(i)===`macos`&&(navigator.maxTouchPoints??0)>1?`ios`:zt(i)??zt(e)??`unknown`}function Vt(){if(typeof navigator>`u`)return`unknown`;let e=`${navigator.userAgentData?.architecture??``} ${navigator.userAgent??``} ${navigator.platform??``}`.toLowerCase();return/arm|aarch64|apple silicon/.test(e)?`arm64`:/x86_64|amd64|x64|win64|wow64|intel/.test(e)?`x64`:`unknown`}function Ht(){return typeof window<`u`&&window.__TAURI__!==void 0}var Ut={windows:`chat.desktopDownloadOsWindows`,macos:`chat.desktopDownloadOsMacos`,linux:`chat.desktopDownloadOsLinux`,android:`chat.desktopDownloadOsAndroid`,ios:`chat.desktopDownloadOsIos`,unknown:`chat.desktopDownloadOsUnknown`},Wt=[`windows`,`macos`,`linux`];function Gt(e){if(typeof e!=`number`||!Number.isFinite(e)||e<=0)return null;let t=e/1048576;return t>=10?`${Math.round(t)} MB`:`${t.toFixed(1)} MB`}function Kt(e){try{return new URL(e).host}catch{return e}}function qt(e){return e.url||e.mirrors[0]||``}function Jt(e,t){let n=document.createElement(`a`);n.href=e,n.download=t,n.target=`_blank`,n.rel=`noopener`,n.style.display=`none`,document.body.appendChild(n),n.click(),n.remove()}var Yt=(0,Y.memo)(function({onHandoffToAi:e}){let{t}=I(),[n,r]=(0,Y.useState)(`idle`),[i,a]=(0,Y.useState)(null),[o,s]=(0,Y.useState)(!1),c=(0,Y.useRef)(null),l=(0,Y.useRef)(!0),u=(0,Y.useRef)(!1),d=(0,Y.useRef)(!1);(0,Y.useEffect)(()=>(l.current=!0,()=>{l.current=!1}),[]);let p=(0,Y.useMemo)(()=>Bt(),[]),m=(0,Y.useMemo)(()=>Vt(),[]),_=(0,Y.useMemo)(()=>Ht(),[]),v=t(Ut[p]),y=p===`android`||p===`ios`,b=_?t(`chat.desktopDownloadOtherPlatforms`):t(`chat.desktopDownloadTitle`,{os:v}),x=t(_?`chat.desktopDownloadOtherPlatforms`:`chat.desktopDownloadRecommend`),C=i?.artifacts??{},w=C[p]?.[0],T=i?.page||we(),E=m===`arm64`&&(p===`windows`||p===`linux`),D=(0,Y.useCallback)(()=>{u.current||(u.current=!0,r(`loading`),q.system.desktopDownload().then(e=>{l.current&&(e.success&&e.data?(a(e.data),r(`ready`)):r(`failed`))}).catch(()=>{l.current&&r(`failed`)}))},[]);(0,Y.useEffect)(()=>{if(!o)return;let e=e=>{c.current?.contains(e.target)||s(!1)},t=e=>{e.key===`Escape`&&s(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[o]);let O=(0,Y.useCallback)(()=>{window.open(T,`_blank`,`noopener`)},[T]),k=(0,Y.useCallback)(e=>{let n=qt(e);s(!1),n?(Jt(n,e.name),e.url&&e.source===`mirror`&&B.info(t(`chat.desktopDownloadViaMirrorToast`))):(O(),B.warning(t(`chat.desktopDownloadUnavailable`)))},[O,t]),A=(0,Y.useCallback)(()=>{y?(O(),B.info(t(`chat.desktopDownloadMobileHint`))):n===`failed`?(O(),B.warning(t(`chat.desktopDownloadUnavailable`))):n===`ready`?w?k(w):(O(),B.warning(t(`chat.desktopDownloadUnavailable`))):(d.current=!0,D(),B.info(t(`chat.desktopDownloadFetching`)))},[k,y,O,w,D,n,t]);(0,Y.useEffect)(()=>{(n===`ready`||n===`failed`)&&d.current&&(d.current=!1,A())},[n,A]);let te=(0,Y.useCallback)(()=>{let n=w?qt(w):T,r=(w?.mirrors??[]).slice(0,3).join(` `);e(t(`chat.desktopDownloadPrompt`,{os:v,url:n||T,mirrors:r||t(`chat.desktopDownloadPromptNoMirror`)})),s(!1),B.success(t(`chat.desktopDownloadHandToAiHint`))},[e,v,w,T,t]),ne=(e,n,r)=>{let i=Gt(e.size),a=ve(e.name);return(0,X.jsxs)(`button`,{type:`button`,onClick:()=>k(e),className:`flex w-full items-center gap-2 px-3 py-1.5 text-start text-xs text-dark-text transition-colors hover:bg-dark-hover`,children:[(0,X.jsx)(f,{size:12,className:`shrink-0 text-dark-muted`,"aria-hidden":`true`}),(0,X.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,children:[(0,X.jsxs)(`span`,{className:`font-medium`,children:[r?`${t(Ut[n])} · `:``,a]}),e.source===`mirror`&&(0,X.jsx)(`span`,{className:`ms-1.5 rounded bg-accent-yellow/15 px-1 py-0.5 text-badge text-accent-yellow`,children:t(`chat.desktopDownloadFromMirror`)}),(0,X.jsx)(`span`,{className:`mt-0.5 block truncate text-badge text-dark-muted`,children:e.name})]}),i&&(0,X.jsx)(`span`,{className:`shrink-0 text-badge text-dark-muted`,children:t(`chat.desktopDownloadSize`,{size:i})})]},`${n}-${e.name}`)},re=Wt.filter(e=>e!==p&&(C[e]?.length??0)>0),j=w?.mirrors??[];return(0,X.jsxs)(`div`,{className:`relative flex shrink-0 items-center`,ref:c,onPointerEnter:D,onFocus:D,children:[(0,X.jsxs)(`button`,{type:`button`,onClick:A,className:`flex h-8 items-center gap-1.5 rounded-s-full ps-2.5 pe-1.5 text-meta font-medium text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,title:b,"aria-label":b,children:[(0,X.jsx)(f,{size:14,className:`shrink-0`,"aria-hidden":`true`}),(0,X.jsx)(`span`,{className:`hidden whitespace-nowrap sm:inline`,children:x})]}),(0,X.jsx)(`button`,{type:`button`,onClick:()=>{o||D(),s(!o)},className:`flex h-8 w-4 items-center justify-center rounded-e-full text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,title:t(`chat.desktopDownloadMenu`),"aria-label":t(`chat.desktopDownloadMenu`),"aria-haspopup":`menu`,"aria-expanded":o,children:(0,X.jsx)(S,{size:11,className:V(`transition-transform`,o&&`rotate-180`),"aria-hidden":`true`})}),o&&(0,X.jsxs)(`div`,{role:`menu`,"aria-label":t(`chat.desktopDownloadMenu`),className:`absolute bottom-full left-0 mb-1 z-50 w-72 overflow-hidden rounded-lg border border-dark-border bg-dark-overlay ui-surface-overlay shadow-pop`,children:[(0,X.jsx)(`div`,{className:`border-b border-dark-border px-3 py-1.5 text-badge font-semibold uppercase tracking-wide text-dark-muted`,children:t(`chat.desktopDownloadYourSystem`,{os:v})}),(0,X.jsx)(`div`,{className:`py-1`,children:(C[p]??[]).length>0?(C[p]??[]).map(e=>ne(e,p,!1)):(0,X.jsx)(`div`,{className:`px-3 py-1.5 text-meta leading-relaxed text-dark-muted`,children:t(y?`chat.desktopDownloadMobileMenuHint`:n===`failed`?`chat.desktopDownloadUnavailable`:`chat.desktopDownloadLoading`)})}),E&&(0,X.jsx)(`div`,{className:`border-t border-dark-border px-3 py-1.5 text-badge leading-relaxed text-accent-yellow`,children:t(`chat.desktopDownloadArmHint`)}),re.length>0&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:`border-y border-dark-border px-3 py-1.5 text-badge font-semibold uppercase tracking-wide text-dark-muted`,children:t(`chat.desktopDownloadOtherSystems`)}),(0,X.jsx)(`div`,{className:`py-1`,children:[...re].flatMap(e=>(C[e]??[]).map(t=>ne(t,e,!0)))})]}),(0,X.jsx)(`div`,{className:`border-y border-dark-border px-3 py-1.5 text-badge font-semibold uppercase tracking-wide text-dark-muted`,children:t(`chat.desktopDownloadTrouble`)}),(0,X.jsxs)(`div`,{className:`py-1`,children:[j.slice(0,2).map(e=>(0,X.jsxs)(`button`,{type:`button`,onClick:()=>{s(!1),Jt(e,w?.name??``)},className:`flex w-full items-center gap-2 px-3 py-1.5 text-start text-xs text-dark-text transition-colors hover:bg-dark-hover`,children:[(0,X.jsx)(g,{size:12,className:`shrink-0 text-dark-muted`,"aria-hidden":`true`}),(0,X.jsx)(`span`,{className:`truncate`,children:t(`chat.desktopDownloadViaMirror`,{host:Kt(e)})})]},e)),(0,X.jsxs)(`button`,{type:`button`,onClick:()=>{s(!1),O()},className:`flex w-full items-center gap-2 px-3 py-1.5 text-start text-xs text-dark-text transition-colors hover:bg-dark-hover`,children:[(0,X.jsx)(g,{size:12,className:`shrink-0 text-dark-muted`,"aria-hidden":`true`}),(0,X.jsx)(`span`,{className:`truncate`,children:t(`chat.desktopDownloadOpenRelease`)})]})]}),(0,X.jsx)(`div`,{className:`border-t border-dark-border`,children:(0,X.jsxs)(`button`,{type:`button`,onClick:te,className:`flex w-full items-center gap-2 px-3 py-2 text-start text-xs text-accent-blue transition-colors hover:bg-dark-hover`,children:[(0,X.jsx)(ee,{size:12,className:`shrink-0`,"aria-hidden":`true`}),(0,X.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,X.jsx)(`span`,{className:`font-medium`,children:t(`chat.desktopDownloadHandToAi`)}),(0,X.jsx)(`span`,{className:`mt-0.5 block text-badge text-dark-muted`,children:t(`chat.desktopDownloadHandToAiDesc`)})]})]})}),p===`macos`&&(0,X.jsx)(`div`,{className:`border-t border-dark-border px-3 py-1.5 text-badge leading-relaxed text-dark-muted/80`,children:t(`chat.desktopDownloadMacUnsignedHint`)}),n!==`ready`&&n!==`failed`&&(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5 border-t border-dark-border px-3 py-1.5 text-badge text-dark-muted`,children:[(0,X.jsx)(h,{size:10,className:`animate-spin`,"aria-hidden":`true`}),t(`chat.desktopDownloadFetching`)]})]})]})});function Xt(e,t){if(!e)return t;let n=e.includes(`\\`)?`\\`:`/`;return e.endsWith(n)?e+t:e+n+t}function Zt(e,t=48){let n=e.replace(/[\\/]+$/,``);if(n.length<=t)return n;let r=n.includes(`\\`)?`\\`:`/`;return`…${r}${n.split(/[\\/]+/).filter(Boolean).slice(-2).join(r)}`}function Qt(e){return e.replace(/[\\/]+/g,`/`).replace(/\/+$/,``).toLowerCase()}function $t({isOpen:e,initial:t,onClose:n,onConfirm:r}){let{t:i}=I(),{visible:a,phase:o}=pe(e),[s,c]=(0,Y.useState)(t),[l,u]=(0,Y.useState)(null),[d,f]=(0,Y.useState)([]),[m,g]=(0,Y.useState)(!1),[_,v]=(0,Y.useState)(``),[y,b]=(0,Y.useState)(t),x=(0,Y.useRef)(null),S=(0,Y.useCallback)(async e=>{g(!0),v(``);try{let t=await q.dirs.list(e);if(!t.success||!t.data){v(t.error||i(`chat.dirPickerLoadError`));return}c(t.data.path),u(t.data.parent),f(t.data.dirs||[]),b(t.data.path)}catch(e){v(e instanceof Error?e.message:i(`chat.dirPickerLoadError`))}finally{g(!1)}},[i]);(0,Y.useEffect)(()=>{e&&S(t)},[e,t,S]),(0,Y.useEffect)(()=>{x.current?.focus()},[]),(0,Y.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),n())};return document.addEventListener(`keydown`,t),document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,t),document.body.style.overflow=``}},[e,n]);let w=(0,Y.useCallback)(()=>{let e=y.trim();e&&S(e)},[y,S]),T=(0,Y.useCallback)(()=>{l&&S(l)},[l,S]);return a?(0,X.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center overflow-hidden p-4`,role:`dialog`,"aria-modal":`true`,children:[(0,X.jsx)(`div`,{className:`absolute inset-0 ui-scrim ui-overlay-backdrop`,"data-phase":o,onClick:n}),(0,X.jsxs)(`div`,{className:`relative w-full max-w-lg mx-4 bg-dark-overlay ui-surface-overlay border border-dark-border rounded-xl shadow-pop flex flex-col max-h-[70vh] ui-overlay-panel`,"data-phase":o,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2.5 border-b border-dark-border shrink-0`,children:[(0,X.jsxs)(`span`,{className:`flex items-center gap-2 text-compact font-semibold text-dark-text`,children:[(0,X.jsx)(oe,{size:15,className:`text-accent-blue`,"aria-hidden":`true`}),i(`chat.dirPickerTitle`)]}),(0,X.jsx)(`button`,{type:`button`,onClick:n,className:`rounded p-1 text-dark-muted hover:bg-dark-hover hover:text-dark-text transition-colors`,"aria-label":i(`a11y.close`),children:(0,X.jsx)(te,{size:15,"aria-hidden":`true`})})]}),(0,X.jsxs)(`div`,{className:`p-4 flex flex-col gap-3 min-h-0 flex-1`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsxs)(`div`,{className:`relative flex-1`,children:[(0,X.jsx)(C,{size:13,className:`absolute start-2.5 top-1/2 -translate-y-1/2 text-dark-muted/60`,"aria-hidden":`true`}),(0,X.jsx)(`input`,{ref:x,value:y,onChange:e=>b(e.target.value),onKeyDown:e=>{e.key===`Enter`&&w()},placeholder:i(`chat.dirPickerEnterPath`),spellCheck:!1,className:`w-full rounded-lg border border-dark-border bg-dark-surface ps-8 pe-2.5 py-1.5 text-xs font-mono text-dark-text
3
+ placeholder-dark-muted/50 focus:outline-none focus:border-accent-blue/50 focus:ring-2 focus:ring-accent-blue/10`})]}),(0,X.jsx)(`button`,{type:`button`,onClick:w,disabled:m||!y.trim(),className:`shrink-0 rounded-lg border border-dark-border px-2.5 py-1.5 text-xs text-dark-muted
4
+ hover:bg-dark-hover hover:text-dark-text disabled:opacity-40 transition-colors`,children:i(`chat.dirPickerGo`)})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`flex-1 truncate font-mono text-meta text-dark-muted bg-dark-surface rounded-md px-2 py-1 border border-dark-border`,title:s,children:s||i(`chat.noWorkspaceDir`)}),(0,X.jsxs)(`button`,{type:`button`,onClick:()=>void T(),disabled:m||!s,className:`shrink-0 flex items-center gap-1 rounded-md border border-dark-border px-2 py-1 text-meta text-dark-muted
5
+ hover:bg-dark-hover hover:text-dark-text disabled:opacity-40 transition-colors`,children:[(0,X.jsx)(p,{size:12,"aria-hidden":`true`}),i(`chat.dirPickerUp`)]})]}),(0,X.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto custom-scrollbar rounded-lg border border-dark-border bg-dark-surface divide-y divide-dark-border/60`,children:m?(0,X.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-xs text-dark-muted`,children:[(0,X.jsx)(h,{size:14,className:`animate-spin`,"aria-hidden":`true`}),i(`chat.loading`)]}):_?(0,X.jsx)(`div`,{className:`px-3 py-4 text-xs text-accent-red`,children:_}):d.length===0?(0,X.jsx)(`div`,{className:`px-3 py-4 text-xs text-dark-muted/60 text-center`,children:i(`chat.dirPickerNoDirs`)}):d.map(e=>{let t=Xt(s,e);return(0,X.jsxs)(`button`,{type:`button`,onClick:()=>void S(t),className:`w-full flex items-center gap-2 px-3 py-1.5 text-start text-xs text-dark-text
6
+ hover:bg-dark-hover transition-colors group`,children:[(0,X.jsx)(M,{size:13,className:`shrink-0 text-accent-yellow/80 group-hover:text-accent-yellow`,"aria-hidden":`true`}),(0,X.jsx)(`span`,{className:`truncate`,children:e}),(0,X.jsx)(P,{size:12,className:`shrink-0 ms-auto text-dark-muted/40`,"aria-hidden":`true`})]},e)})}),(0,X.jsx)(fe,{variant:`accent`,className:`w-full`,onClick:()=>r(s),disabled:!s,loading:m,children:i(`chat.dirPickerConfirm`)})]})]})]}):null}var en=(0,Y.memo)(function({workspaceDir:e,onSelect:t,onNewSessionInDir:r,compact:i=!1}){let{t:a}=I(),o=Fe(e=>e.recentDirs),s=We(e=>e.projects),c=We(e=>e.hidden),l=We(e=>e.sort),u=We(e=>e.disabled),d=We(e=>e.lastError),[f,p]=(0,Y.useState)(!1),[m,h]=(0,Y.useState)(!1),g=(0,Y.useRef)(null);(0,Y.useEffect)(()=>{if(!f)return;let e=We.getState();e.disabled||e.lastFetchedAt>0||e.refresh()},[f]),(0,Y.useEffect)(()=>{if(!f)return;let e=e=>{g.current&&!g.current.contains(e.target)&&p(!1)},t=e=>{e.key===`Escape`&&p(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[f]);let _=(0,Y.useCallback)(e=>{let n=e?.trim?.()||``;n&&(p(!1),h(!1),t(n))},[t]),v=(0,Y.useCallback)(e=>{let t=e?.trim?.()||``;t&&r&&(p(!1),h(!1),r(t))},[r]),y=new Set(c),b=u?[]:Ue(s.filter(e=>e.rootExists&&!y.has(e.projectId)),l),x=new Set(b.map(e=>Qt(e.root))),S=o.filter(e=>!x.has(Qt(e))),C=e?Qt(e):null,w=b.length>0||s.length===0&&!u&&d!==null;return(0,X.jsxs)(`div`,{className:V(`min-w-0`,i?`w-full`:`relative max-w-[min(70%,26rem)]`),ref:g,children:[(0,X.jsxs)(`button`,{type:`button`,onClick:()=>p(e=>!e),className:V(`flex w-full items-center gap-1 py-0.5 rounded-full border text-xs whitespace-nowrap transition-colors cursor-pointer`,i?`px-1.5`:`px-2`,f?`border-accent-blue/40 text-accent-blue bg-accent-blue/10`:`border-dark-border text-dark-muted hover:bg-dark-hover hover:text-dark-text`),title:e?`${e}\n${a(`chat.clickToSwitchDir`)}`:a(`chat.clickToSwitchDir`),"aria-label":a(`chat.clickToSwitchDir`),"aria-expanded":f,"aria-haspopup":`menu`,children:[(0,X.jsx)(oe,{size:12,className:`shrink-0 text-accent-blue/80`,"aria-hidden":`true`}),(0,X.jsx)(`span`,{className:V(`truncate font-mono text-meta`,i&&`max-sm:hidden`),children:e?Zt(e):a(`chat.noWorkspaceDir`)}),(0,X.jsx)(n,{size:11,className:V(`shrink-0 transition-transform`,f&&`rotate-180`),"aria-hidden":`true`})]}),f&&(0,X.jsxs)(`div`,{role:`menu`,className:`absolute bottom-full right-0 mb-2 w-72 max-w-[calc(100vw-1.5rem)] max-h-[70vh] overflow-y-auto custom-scrollbar rounded-xl border border-dark-border bg-dark-overlay ui-surface-overlay shadow-pop z-40 animate-fade-in`,children:[w&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:`px-3 pt-2.5 pb-1 text-badge font-semibold uppercase tracking-wide text-dark-muted/50 select-none`,children:a(`chat.projectDirs`)}),b.length===0?(0,X.jsx)(`div`,{className:`px-3 pb-2 text-meta text-accent-red/80 select-none`,children:a(`chat.projectsLoadFailed`)}):(0,X.jsx)(`div`,{className:`max-h-44 overflow-y-auto custom-scrollbar`,"data-testid":`dir-picker-projects`,children:b.map(e=>{let t=C!==null&&Qt(e.root)===C;return(0,X.jsxs)(`div`,{className:`flex items-stretch`,children:[(0,X.jsxs)(`button`,{type:`button`,role:`menuitem`,"data-testid":`dir-picker-project-row`,"data-project-id":e.projectId,onClick:()=>_(e.root),className:V(`min-w-0 flex-1 flex items-center gap-2 px-3 py-1.5 text-start text-xs transition-colors group`,t?`text-accent-blue bg-accent-blue/5`:`text-dark-text hover:bg-dark-hover`),title:`${a(`chat.dirSwitchHere`)}\n${e.root}`,children:[(0,X.jsx)(M,{size:12,className:V(`shrink-0`,t?`text-accent-blue`:`text-accent-yellow/80 group-hover:text-accent-yellow`),"aria-hidden":`true`}),(0,X.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,X.jsx)(`span`,{className:`block truncate`,children:e.name}),(0,X.jsx)(`span`,{className:`block truncate font-mono text-meta text-dark-muted/60`,children:e.root})]}),t&&(0,X.jsx)(`span`,{className:`shrink-0 text-badge text-accent-blue`,children:`✓`})]}),r&&(0,X.jsx)(`button`,{type:`button`,"data-testid":`dir-picker-project-new-session`,"data-project-id":e.projectId,onClick:t=>{t.stopPropagation(),v(e.root)},className:`shrink-0 px-2 text-dark-muted hover:text-accent-blue hover:bg-dark-hover transition-colors`,title:a(`chat.dirNewSessionHere`),"aria-label":`${a(`chat.dirNewSessionHere`)}:${e.name}`,children:(0,X.jsx)(A,{size:12,"aria-hidden":`true`})})]},e.projectId)})}),(0,X.jsx)(`div`,{className:`border-t border-dark-border`})]}),(0,X.jsx)(`div`,{className:`px-3 pt-2.5 pb-1 text-badge font-semibold uppercase tracking-wide text-dark-muted/50 select-none`,children:a(`chat.recentDirs`)}),S.length===0?(0,X.jsx)(`div`,{className:`px-3 pb-2 text-meta text-dark-muted/50 select-none`,children:a(`chat.noRecentDirs`)}):(0,X.jsx)(`div`,{className:`max-h-56 overflow-y-auto custom-scrollbar`,children:S.map(e=>{let t=C!==null&&Qt(e)===C;return(0,X.jsxs)(`div`,{className:`flex items-stretch`,children:[(0,X.jsxs)(`button`,{type:`button`,role:`menuitem`,"data-testid":`dir-picker-recent-row`,onClick:()=>_(e),className:V(`min-w-0 flex-1 flex items-center gap-2 px-3 py-1.5 text-start text-xs transition-colors group`,t?`text-accent-blue bg-accent-blue/5`:`text-dark-text hover:bg-dark-hover`),title:`${a(`chat.dirSwitchHere`)}\n${e}`,children:[(0,X.jsx)(M,{size:12,className:V(`shrink-0`,t?`text-accent-blue`:`text-accent-yellow/80 group-hover:text-accent-yellow`),"aria-hidden":`true`}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-meta`,children:e}),t&&(0,X.jsx)(`span`,{className:`ms-auto shrink-0 text-badge text-accent-blue`,children:`✓`})]}),r&&(0,X.jsx)(`button`,{type:`button`,"data-testid":`dir-picker-recent-new-session`,onClick:t=>{t.stopPropagation(),v(e)},className:`shrink-0 px-2 text-dark-muted hover:text-accent-blue hover:bg-dark-hover transition-colors`,title:a(`chat.dirNewSessionHere`),"aria-label":`${a(`chat.dirNewSessionHere`)}:${e}`,children:(0,X.jsx)(A,{size:12,"aria-hidden":`true`})})]},e)})}),(0,X.jsx)(`div`,{className:`border-t border-dark-border`}),(0,X.jsxs)(`button`,{type:`button`,role:`menuitem`,onClick:()=>{p(!1),h(!0)},className:`w-full flex items-center gap-2 px-3 py-2 text-start text-xs text-accent-blue hover:bg-dark-hover transition-colors`,children:[(0,X.jsx)(P,{size:13,"aria-hidden":`true`}),a(`chat.chooseOtherDir`)]})]}),(0,Q.createPortal)((0,X.jsx)($t,{isOpen:m,initial:e||``,onClose:()=>h(!1),onConfirm:_}),document.body)]})}),tn=`__files__`,nn=`__sessions__`;function rn(e){return e===`enqueue`?`summarize`:e===`summarize`?`next-step`:e===`next-step`?`direct`:`enqueue`}function an(e){return e.replace(/[\\/]+$/,``).replace(/\\/g,`/`).toLowerCase()}function on(e){return[{key:tn,label:e.files},{key:nn,label:e.sessions}]}function sn(e){return e?an(e):`￿`}function cn(e,t){return t===`__files__`?e.filter(e=>e.kind===`file`):[...e.filter(e=>e.kind===`session`)].sort((e,t)=>sn(e.kind===`session`?e.dir:``).localeCompare(sn(t.kind===`session`?t.dir:``)))}function ln(e,t,n){if(e.length===0)return t;let r=e.indexOf(t),i=r<0?-1:r;return n?e[(i+1)%e.length]:e[((i<0?e.length:i)-1+e.length)%e.length]}var un=new Set([`running`]);function dn(e){return un.has(String(e.status||``))?!0:e.live===!0}function fn(e,t){let n=[];for(let r of e){let e=String(r.id||r.sessionId||``);if(!e||e===t)continue;let i=String(r.title||e.slice(0,8));n.push({kind:`session`,key:e,label:i,detail:e.slice(0,8),dir:String(r.workspaceDir||``),status:r.status===void 0?void 0:String(r.status),updatedAt:r.updatedAt===void 0?void 0:String(r.updatedAt),messageCount:typeof r.messageCount==`number`?r.messageCount:void 0})}return n}function pn(e,t,n=`active`){let r=fn(e,t);if(n===`all`)return r;let i=new Map(e.map(e=>[String(e.id||e.sessionId||``),e]));return r.filter(e=>{let t=i.get(e.key);return t?dn(t):!1})}var mn={enqueue:`chat.mentionDeliveryEnqueue`,summarize:`chat.mentionDeliverySummarize`,"next-step":`chat.mentionDeliveryNextStep`,direct:`chat.mentionDeliveryDirect`},hn={enqueue:`text-dark-muted hover:text-dark-text hover:bg-dark-hover`,summarize:`text-dark-muted hover:text-dark-text hover:bg-dark-hover`,"next-step":`bg-accent-blue/20 text-accent-blue font-medium`,direct:`bg-accent-green/20 text-accent-green font-medium`};function gn(e){return e===`running`?`bg-accent-green/15 text-accent-green`:e===`paused`||e===`interrupted`||e===`error`?`bg-accent-yellow/15 text-accent-yellow`:`bg-dark-hover text-dark-muted`}function _n(e){return e===`running`?`chat.mentionStatusRunning`:e===`paused`||e===`interrupted`?`chat.mentionStatusPaused`:e===`error`?`chat.mentionStatusError`:e===`stopped`?`chat.mentionStatusStopped`:`chat.mentionStatusIdle`}function vn(e){return e?/^\d{12,}$/.test(e)?Number(e):e:0}function yn({isOpen:e,items:t,selectedIndex:n,query:r,isSearching:a,onSelect:o,onHover:s,selectedCount:c=0,onFinish:l,tabs:u,activeTab:d,onTabChange:f,scope:p=`active`,onToggleScope:m,deliveryMode:g=`enqueue`,onToggleDelivery:_}){let{t:v}=I(),{visible:y,phase:b}=pe(e);if(!y)return null;let x=!!(f&&u&&u.length>1);return(0,X.jsxs)(`div`,{className:`absolute bottom-full left-0 right-0 mb-2 bg-dark-overlay ui-surface-overlay border border-dark-border rounded-lg shadow-pop overflow-hidden z-50 ui-overlay-panel-fade`,"data-phase":b,children:[(0,X.jsxs)(`div`,{className:`max-h-60 overflow-y-auto custom-scrollbar`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 text-meta text-dark-muted border-b border-dark-border bg-dark-surface`,children:[(0,X.jsx)(`span`,{className:`font-medium text-dark-text`,children:r?`@${r}`:`@ ${v(`chat.mentionFilesGroup`)} / ${v(`chat.mentionSessionsGroup`)}`}),(0,X.jsxs)(`span`,{className:`opacity-70 flex items-center gap-2`,children:[c>0&&(0,X.jsx)(`span`,{className:`px-1.5 py-0.5 rounded-full bg-accent-blue/20 text-accent-blue font-medium`,children:v(`chat.selectedCountShort`,{n:c})}),(0,X.jsx)(`span`,{children:v(x?`chat.mentionTabHint`:`chat.fileMentionHelpMulti`)})]})]}),x&&(0,X.jsx)(`div`,{className:`flex items-center gap-1 px-3 py-1.5 border-b border-dark-border bg-dark-surface overflow-x-auto custom-scrollbar`,children:u.map(e=>{let t=e.key===d;return(0,X.jsx)(`button`,{type:`button`,onMouseDown:t=>{t.preventDefault(),f(e.key)},className:`px-2 py-0.5 rounded text-meta whitespace-nowrap transition-colors ${t?`bg-accent-blue/20 text-accent-blue font-medium`:`text-dark-muted hover:text-dark-text hover:bg-dark-hover`}`,children:e.label},e.key)})}),t.length===0?(0,X.jsx)(`div`,{className:`px-3 py-6 text-center text-dark-muted text-xs flex flex-col items-center gap-1`,children:a?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(h,{size:16,className:`animate-spin`}),(0,X.jsx)(`span`,{children:v(`chat.searchingFiles`)})]}):(0,X.jsx)(`span`,{children:v(x&&d!==`__files__`?`chat.mentionEmptySessions`:`chat.noMatchingFiles`)})}):t.map((e,r)=>{let a=t[r-1],c=a&&a.kind===`session`?a.dir||``:null,l=e.kind===`session`?e.dir||``:null,u=!a||a.kind!==e.kind||l!==null&&c!==l,d=l===null?v(`chat.mentionFilesGroup`):`📁 ${l||v(`chat.mentionTabUnknownDir`)}`;return(0,X.jsxs)(`div`,{children:[u&&(0,X.jsx)(`div`,{className:`px-3 pt-2 pb-1 text-badge uppercase tracking-wide text-dark-muted/70 bg-dark-surface/40 truncate`,title:d,children:d}),(0,X.jsxs)(`button`,{onClick:()=>o(e),onMouseEnter:()=>s(r),className:`w-full px-3 py-1.5 flex items-center gap-2 text-start text-xs transition-colors border-s-2 ${r===n?`bg-accent-blue/20 text-accent-blue border-accent-blue`:`hover:bg-dark-hover text-dark-text border-transparent`}`,children:[e.kind===`session`?(0,X.jsx)(w,{size:12,className:`text-accent-blue shrink-0`}):e.isDir?(0,X.jsx)(M,{size:12,className:`text-accent-yellow shrink-0`}):(0,X.jsx)(i,{size:12,className:`text-dark-muted shrink-0`}),(0,X.jsx)(`span`,{className:`truncate`,children:e.label}),e.kind===`session`?(0,X.jsxs)(`span`,{className:`ms-auto flex shrink-0 items-center gap-1.5`,children:[e.detail&&(0,X.jsx)(`span`,{className:`text-badge text-dark-muted truncate`,children:e.detail}),e.updatedAt&&(0,X.jsx)(`span`,{className:`text-badge text-dark-muted/70`,children:_e(vn(e.updatedAt),Date.now(),v)}),e.messageCount!==void 0&&(0,X.jsx)(`span`,{className:`text-badge text-dark-muted/70`,children:v(`chat.mentionMsgCount`,{count:e.messageCount})}),(0,X.jsx)(`span`,{className:`px-1.5 py-0.5 rounded-full text-badge whitespace-nowrap ${gn(e.status)}`,children:v(_n(e.status))})]}):e.detail&&(0,X.jsx)(`span`,{className:`text-badge text-dark-muted truncate ms-auto`,children:e.detail})]})]},e.key)})]}),l&&(0,X.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-t border-dark-border bg-dark-surface`,children:[(0,X.jsxs)(`span`,{className:`flex items-center gap-2 text-badge text-dark-muted`,children:[x&&m&&(0,X.jsxs)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:m,className:`px-1.5 py-0.5 rounded text-badge transition-colors ${p===`all`?`bg-accent-blue/20 text-accent-blue font-medium`:`text-dark-muted hover:text-dark-text hover:bg-dark-hover`}`,title:v(`chat.mentionScopeHint`),children:[v(`chat.mentionScopeLabel`),v(p===`all`?`chat.mentionScopeAll`:`chat.mentionScopeActive`)]}),x&&_&&(0,X.jsxs)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:_,className:`px-1.5 py-0.5 rounded text-badge transition-colors ${hn[g]}`,title:v(`chat.mentionDeliveryHint`),children:[v(`chat.mentionDeliveryLabel`),v(mn[g])]}),(0,X.jsx)(`span`,{children:c>0?v(`chat.selectedFilesCount`,{n:c}):v(`chat.enterInsertMulti`)})]}),(0,X.jsx)(fe,{variant:`accent`,size:`sm`,onClick:l,children:v(`chat.finishMention`)})]})]})}function bn({open:e,onClose:t,onSelect:n}){let{t:r}=I(),[i,a]=(0,Y.useState)([]),[o,s]=(0,Y.useState)(!1),[c,l]=(0,Y.useState)(``);(0,Y.useEffect)(()=>{e&&(l(``),s(!0),q.skills.list().then(e=>{let t=Array.isArray(e.data)?e.data:[];a(t.filter(e=>e.enabled!==!1))}).catch(()=>a([])).finally(()=>s(!1)))},[e]);let u=(0,Y.useMemo)(()=>{let e=c.trim().toLowerCase();return e?i.filter(t=>[t.id,t.name,t.description,t.category,...t.tags||[]].join(` `).toLowerCase().includes(e)):i},[i,c]);return(0,X.jsx)(me,{isOpen:e,onClose:t,title:r(`skills.pickTitle`),size:`lg`,children:(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 rounded-lg bg-dark-bg border border-dark-border focus-within:border-accent-blue`,children:[(0,X.jsx)(re,{size:14,className:`text-dark-muted shrink-0`}),(0,X.jsx)(`input`,{value:c,onChange:e=>l(e.target.value),placeholder:r(`skills.pickPlaceholder`),autoFocus:!0,className:`flex-1 bg-transparent outline-none text-sm placeholder-dark-muted/60`}),o&&(0,X.jsx)(ne,{size:13,className:`animate-spin text-dark-muted`})]}),o?(0,X.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,X.jsx)(ne,{size:20,className:`animate-spin text-accent-blue`})}):u.length===0?(0,X.jsx)(`div`,{className:`text-center py-12 text-sm text-dark-muted`,children:r(`skills.pickEmpty`)}):(0,X.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2`,children:u.map(e=>(0,X.jsxs)(`button`,{onClick:()=>n(e),className:`text-start rounded-lg border border-dark-border p-3 flex flex-col gap-1 transition-colors hover:border-accent-blue/50 hover:bg-dark-hover`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2 min-w-0`,children:[(0,X.jsxs)(`span`,{className:`font-medium text-sm truncate`,children:[e.icon||`⭐`,` `,e.name]}),(0,X.jsx)(`span`,{className:`text-badge px-1.5 py-0.5 rounded bg-dark-bg border border-dark-border text-dark-muted shrink-0`,children:e.injection||`lazy`})]}),(0,X.jsxs)(`div`,{className:`text-xs text-dark-muted truncate font-mono`,children:[`$`,e.id]}),e.description&&(0,X.jsx)(`div`,{className:`text-xs text-dark-muted line-clamp-2`,children:e.description}),(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-2 mt-1`,children:[(0,X.jsx)(`span`,{className:`text-badge px-1.5 py-0.5 rounded bg-dark-bg border border-dark-border text-dark-muted truncate`,children:e.category||`—`}),(0,X.jsxs)(`span`,{className:`flex items-center gap-1 text-meta text-accent-blue shrink-0`,children:[(0,X.jsx)(ie,{size:11}),r(`skills.pickUse`)]})]})]},e.id))})]})})}function xn({isOpen:e,items:t,selectedIndex:n,query:r,isLoading:i,onSelect:a,onHover:o}){let{t:s}=I(),{visible:c,phase:l}=pe(e);return c?(0,X.jsx)(`div`,{className:`absolute bottom-full left-0 right-0 mb-2 bg-dark-overlay ui-surface-overlay border border-dark-border rounded-lg shadow-pop overflow-hidden z-50 ui-overlay-panel-fade`,"data-phase":l,children:(0,X.jsxs)(`div`,{className:`max-h-60 overflow-y-auto custom-scrollbar`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 text-meta text-dark-muted border-b border-dark-border bg-dark-surface`,children:[(0,X.jsx)(`span`,{className:`font-medium text-dark-text truncate`,children:r?`$${r}`:s(`chat.skillMenuTitle`)}),(0,X.jsx)(`span`,{className:`opacity-70 shrink-0`,children:s(`chat.skillMenuHint`)})]}),t.length===0?(0,X.jsx)(`div`,{className:`px-3 py-6 text-center text-dark-muted text-xs flex flex-col items-center gap-1`,children:i?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(h,{size:16,className:`animate-spin`}),(0,X.jsx)(`span`,{children:s(`chat.skillMenuLoading`)})]}):(0,X.jsx)(`span`,{children:s(`chat.skillMenuEmpty`)})}):t.map((e,t)=>(0,X.jsxs)(`button`,{onClick:()=>a(e),onMouseEnter:()=>o(t),className:`w-full px-3 py-1.5 flex items-center gap-2 text-start text-xs transition-colors border-s-2 ${t===n?`bg-accent-blue/20 text-accent-blue border-accent-blue`:`hover:bg-dark-hover text-dark-text border-transparent`}`,children:[(0,X.jsx)(`span`,{className:`shrink-0`,"aria-hidden":`true`,children:e.icon||(0,X.jsx)(ee,{size:12,className:`text-accent-blue`})}),(0,X.jsx)(`span`,{className:`truncate`,children:e.name||e.id}),(0,X.jsxs)(`span`,{className:`text-badge font-mono text-dark-muted shrink-0`,children:[`$`,e.id]}),e.description&&(0,X.jsx)(`span`,{className:`text-badge text-dark-muted truncate ms-auto`,children:e.description})]},e.id))]})}):null}function Sn(e){for(let t=e.length-1;t>=0;t--)if(e[t]===`$`){if(t>0&&/\w/.test(e.charAt(t-1)))continue;return t}return-1}function Cn(e,t){let n=t.filter(e=>e.enabled!==!1);if(!e)return`prefix`;for(let t of n)if(t.id.toLowerCase()===e)return`exact`;for(let t of n)if(t.id.toLowerCase().startsWith(e))return`prefix`;return null}function wn(e,t,n){let r=e.slice(0,t),i=Sn(r);if(i===-1)return{active:!1,query:``,start:-1};let a=r.slice(i+1);if(a.length>=200||!/^[\w.\-\\/\s]*$/.test(a))return{active:!1,query:``,start:-1};let o=(a.split(/[\s/\\]/)[0]??``).toLowerCase();return(n.length===0?`prefix`:Cn(o,n))===`prefix`?{active:!0,query:a,start:i}:{active:!1,query:``,start:-1}}function Tn(e,t){let n=t.trim().toLowerCase();if(!n)return 1;let r=e.id.toLowerCase(),i=(e.name||``).toLowerCase(),a=(e.description||``).toLowerCase(),o=(e.tags||[]).join(` `).toLowerCase();return r===n||i===n?100:r.startsWith(n)?90:i.startsWith(n)?80:r.includes(n)?60:i.includes(n)?55:o.includes(n)?40:a.includes(n)?30:0}function En(e,t){let n=t.replace(/^\$/,``).trim().split(/\s+/)[0]??``;return e.filter(e=>e.enabled!==!1).map(e=>({skill:e,score:Tn(e,n)})).filter(e=>e.score>0).sort((e,t)=>t.score-e.score||e.skill.id.localeCompare(t.skill.id)).map(e=>e.skill)}var Dn=class extends Error{code;constructor(e,t){super(t??e),this.code=e,this.name=`ScreenshotError`}};function On(e){let t=document.createElement(`canvas`);t.width=e.videoWidth,t.height=e.videoHeight;let n=t.getContext(`2d`);if(!n)throw new Dn(`failed`,`Canvas 2D context unavailable`);return n.drawImage(e,0,0,t.width,t.height),new Promise((e,n)=>{t.toBlob(t=>t?e(t):n(new Dn(`failed`,`canvas.toBlob returned null`)),`image/png`)})}async function kn(){if(!navigator.mediaDevices?.getDisplayMedia)throw new Dn(`unsupported`,`Screen capture is not supported in this browser`);let e=await navigator.mediaDevices.getDisplayMedia({video:!0,audio:!1}).catch(e=>{let t=e instanceof DOMException?e.name:``;throw t===`NotAllowedError`||t===`AbortError`?new Dn(`cancelled`,`User dismissed the screen picker`):new Dn(`failed`,e instanceof Error?e.message:String(e))}),t=e.getTracks();try{let t=document.createElement(`video`);t.srcObject=e,t.muted=!0,t.playsInline=!0,await t.play().catch(()=>void 0),t.readyState<2&&await new Promise(e=>{let n=()=>e();t.addEventListener(`loadeddata`,n,{once:!0}),setTimeout(n,1e3)}),await new Promise(e=>requestAnimationFrame(()=>e()));let n=t.videoWidth,r=t.videoHeight;if(!n||!r)throw new Dn(`failed`,`Captured video frame has no pixels`);let i=await On(t);t.srcObject=null;let a=new Date().toISOString().replace(/[:.]/g,`-`).slice(0,19);return new File([i],`screenshot-${a}.png`,{type:`image/png`})}finally{for(let e of t)e.stop()}}var An=16e3;function jn(){let e=[`audio/webm;codecs=opus`,`audio/webm`,`audio/mp4`];if(typeof MediaRecorder>`u`)return``;for(let t of e)if(MediaRecorder.isTypeSupported(t))return t;return``}async function Mn(e){if(e.sampleRate===An&&e.numberOfChannels===1)return e.getChannelData(0);let t=Math.max(1,Math.ceil(e.length*An/e.sampleRate)),n=new OfflineAudioContext(1,t,An),r=n.createBufferSource();return r.buffer=e,r.connect(n.destination),r.start(0),(await n.startRendering()).getChannelData(0)}function Nn(e,t){let n=new ArrayBuffer(44+e.length*2),r=new DataView(n),i=(e,t)=>{for(let n=0;n<t.length;n++)r.setUint8(e+n,t.charCodeAt(n))};i(0,`RIFF`),r.setUint32(4,36+e.length*2,!0),i(8,`WAVE`),i(12,`fmt `),r.setUint32(16,16,!0),r.setUint16(20,1,!0),r.setUint16(22,1,!0),r.setUint32(24,t,!0),r.setUint32(28,t*2,!0),r.setUint16(32,2,!0),r.setUint16(34,16,!0),i(36,`data`),r.setUint32(40,e.length*2,!0);let a=44;for(let t=0;t<e.length;t++){let n=Math.max(-1,Math.min(1,e[t]??0));r.setInt16(a,n<0?n*32768:n*32767,!0),a+=2}return n}function Pn(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e=String(r.result||``),n=e.indexOf(`,`);t(n>=0?e.slice(n+1):e)},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function Fn(e){let[t,n]=(0,Y.useState)(`idle`),[r,i]=(0,Y.useState)(0),a=(0,Y.useRef)(null),o=(0,Y.useRef)(null),s=(0,Y.useRef)([]),c=(0,Y.useRef)(null),l=(0,Y.useRef)(0),u=(0,Y.useCallback)(()=>{o.current?.getTracks().forEach(e=>e.stop()),o.current=null},[]),d=(0,Y.useCallback)(()=>{c.current&&=(clearInterval(c.current),null)},[]);return(0,Y.useEffect)(()=>()=>{d(),a.current&&a.current.state!==`inactive`&&a.current.stop(),u()},[d,u]),{state:t,elapsedMs:r,start:(0,Y.useCallback)(async()=>{if(t!==`idle`)return;if(typeof MediaRecorder>`u`)throw Error(`当前浏览器不支持语音输入(需要 MediaRecorder)。请使用 Chrome/Edge/Firefox 或桌面版。`);let e;try{e=await navigator.mediaDevices.getUserMedia({audio:{channelCount:1,echoCancellation:!0,noiseSuppression:!0}})}catch(e){throw e instanceof DOMException&&e.name===`NotAllowedError`?Error(`麦克风权限被拒绝。请在浏览器地址栏允许麦克风权限后重试。`):Error(`无法访问麦克风:`+(e instanceof Error?e.message:String(e)))}o.current=e,s.current=[];let r=new MediaRecorder(e,jn()?{mimeType:jn()}:void 0);r.ondataavailable=e=>{e.data&&e.data.size>0&&s.current.push(e.data)},a.current=r,r.start(),l.current=Date.now(),i(0),n(`recording`),c.current=setInterval(()=>i(Date.now()-l.current),100)},[t]),stop:(0,Y.useCallback)(async()=>{let t=a.current;if(!t||t.state===`inactive`)throw Error(`当前没有进行中的录音。`);let r=new Promise(e=>{t.onstop=()=>e()});t.stop(),await r,d(),u(),a.current=null,n(`transcribing`);try{let t=new Blob(s.current,{type:jn()||`audio/webm`});s.current=[];let r=await t.arrayBuffer(),i=new AudioContext,a;try{a=await i.decodeAudioData(r)}finally{i.close()}if(a.duration<.25)return n(`idle`),``;let o=Nn(await Mn(a),An),c=await Pn(new Blob([o],{type:`audio/wav`})),l=await q.stt.transcribe(e,c,`wav`);if(!l.success)throw Error(l.error||`语音转写失败`);return l.data?.text??``}finally{n(`idle`)}},[e,d,u]),cancel:(0,Y.useCallback)(()=>{let e=a.current;e&&e.state!==`inactive`&&e.stop(),a.current=null,s.current=[],d(),u(),n(`idle`)},[d,u])}}var In=({isOpen:e,commands:t,selectedIndex:n,filter:r,onSelect:i,onHover:a,containerRef:o})=>{let{t:s}=I();return!e||t.length===0?null:(0,X.jsxs)(`div`,{ref:o,className:`absolute bottom-full left-0 right-0 mb-2 bg-dark-overlay ui-surface-overlay border border-dark-border rounded-lg shadow-pop overflow-hidden z-50 max-h-72 overflow-y-auto custom-scrollbar`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 text-meta text-dark-muted border-b border-dark-border bg-dark-surface`,children:[(0,X.jsx)(`span`,{className:`font-medium text-dark-text`,children:r?`/${r}`:s(`slashCommands.quickCommands`)}),(0,X.jsx)(`span`,{className:`opacity-70`,children:s(`slashCommands.help`)})]}),t.map((e,t)=>(0,X.jsxs)(`button`,{"data-index":t,onClick:()=>i(e),onMouseEnter:()=>a(t),className:`w-full px-3 py-2 flex items-start gap-3 text-start transition-colors border-s-2 ${t===n?`bg-accent-blue/10 border-accent-blue`:`border-transparent hover:bg-dark-hover`}`,children:[(0,X.jsx)(`span`,{className:`text-lg leading-none shrink-0`,"aria-hidden":`true`,children:e.icon}),(0,X.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsxs)(`span`,{className:`text-sm font-medium text-dark-text`,children:[`/`,e.name]}),e.args&&(0,X.jsx)(`span`,{className:`text-xs text-dark-muted`,children:e.args}),!e.local&&(0,X.jsx)(`span`,{className:`text-badge px-1.5 py-0.5 rounded bg-accent-blue/20 text-accent-blue shrink-0`,children:s(`slashCommands.backend`)})]}),(0,X.jsx)(`div`,{className:`text-xs text-dark-muted truncate`,children:e.description})]}),t===n&&(0,X.jsx)(y,{size:14,className:`text-dark-muted shrink-0 mt-0.5`,"aria-hidden":`true`})]},e.id))]})},Ln=`xlsx.xls.csv.docx.txt.md.mdx.rst.adoc.ts.tsx.js.jsx.mjs.cjs.mts.cts.json.jsonc.yaml.yml.toml.xml.html.css.scss.less.py.rb.go.rs.java.kt.swift.c.h.cpp.hpp.cc.cs.sh.bash.zsh.ps1.bat.cmd.sql.graphql.proto.vue.svelte.astro.env.gitignore.gitattributes.editorconfig`.split(`.`),Rn=RegExp(`(?:\\.(${Ln.join(`|`)})|dockerfile|makefile)$`,`i`),zn=[`png`,`jpg`,`jpeg`,`webp`,`gif`,`bmp`,`svg`],Bn=Object.freeze([]),Vn=RegExp(`\\.(${zn.join(`|`)})$`,`i`),Hn=10485760,Un=Ln.map(e=>`.${e}`).join(`,`)+`,.Dockerfile,.Makefile,`+zn.map(e=>`.${e}`).join(`,`),Wn=`.agent/attachments`,Gn=52428800,Kn=10,qn=`chat-col`,Jn=72,Yn=.7,Xn=`deepseekcode.composerPref`,Zn=550;function Qn(){try{let e=window.localStorage.getItem(Xn);return e===`collapsed`||e===`expanded`?e:`auto`}catch{return`auto`}}function $n(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(hover: hover) and (pointer: fine)`).matches}var er=/["<>]/g;function tr(e){return`<image name="${(e||`image`).replace(er,``)}" />`}var nr=e=>/\.xlsx?$/i.test(e)?t:/\.(csv|docx|txt|md|mdx|rst|adoc|json|jsonc|yaml|yml|toml|xml|html|css|scss|less|env|gitignore|gitattributes|editorconfig)$/i.test(e)?k:/\.(ts|tsx|js|jsx|mjs|cjs|mts|cts|py|rb|go|rs|java|kt|swift|c|h|cpp|hpp|cc|cs|sh|bash|zsh|ps1|bat|cmd|sql|graphql|proto|vue|svelte|astro|dockerfile|makefile)$/i.test(e)?s:i,rr=50,ir=5e3,ar={enqueue:`chat.mentionDeliveryEnqueue`,summarize:`chat.mentionDeliverySummarize`,"next-step":`chat.mentionDeliveryNextStep`,direct:`chat.mentionDeliveryDirect`},or={enqueue:`text-dark-muted hover:bg-dark-hover hover:text-dark-text`,summarize:`text-dark-muted hover:bg-dark-hover hover:text-dark-text`,"next-step":`bg-accent-blue/10 text-accent-blue`,direct:`bg-accent-blue/10 text-accent-blue`};function sr(e,t){let n=e.slice(0,t),r=n.lastIndexOf(`@`);if(r===-1)return{active:!1,query:``,start:-1};let i=n.slice(r+1);return/^[\p{L}\p{N}_\-./]*$/u.test(i)?{active:!0,query:i,start:r}:{active:!1,query:``,start:-1}}function cr(e,t){let n=e.lastIndexOf(`
7
+ `,t-1)+1,r=e.slice(n,t);return!r.startsWith(`/`)||/\s/.test(r)?{active:!1,query:``}:{active:!0,query:r.slice(1)}}var lr=(0,Y.memo)(function({sessionId:e,onSend:t,onRunShell:i,onStop:o,onPause:s,onResume:c,slashOptions:l,workspaceDir:u,onWorkspaceSelect:f,onNewSessionInDir:m,focusRequest:g,inputDisabled:_,inputDisabledHint:v}){let{t:y}=I(),x=R(t=>t.sessionInputs?.[e]??``),C=R(e=>e.setSessionInput),w=R(t=>t.generatingSessions?.includes(e)??!1),k=R(t=>t.pausedSessions?.includes(e)??!1),A=R(t=>t.sessionSuggestions?.[e]),ne=R(t=>t.sessionTurns?.[e]??``),re=R(e=>e.clearSessionSuggestion),j=!x&&!w&&!_&&A&&(A.turnId??``)===ne?A.text:``,M=R(t=>t.pendingBySession?.[e])??Bn,oe=M.length,P=(0,Y.useRef)(null),[F,le]=(0,Y.useState)(null),ue=(0,Y.useRef)(null),[fe,pe]=(0,Y.useState)(!1),me=(0,Y.useRef)(null),he=(0,Y.useRef)(!1),ge=(0,Y.useRef)(0),[H,U]=(0,Y.useState)([]),[W,_e]=(0,Y.useState)(!1),[G,ve]=(0,Y.useState)(!1),[ye,be]=(0,Y.useState)(!1),[K,Ce]=(0,Y.useState)(!1),[we,Te]=(0,Y.useState)(``),[Ee,Me]=(0,Y.useState)(0),[Pe,Fe]=(0,Y.useState)([]),[Ie,Le]=(0,Y.useState)(!1),Ve=(0,Y.useRef)(-1),Ue=(0,Y.useRef)([]);Ue.current=Pe;let We=(0,Y.useRef)(null),Ge=(0,Y.useCallback)(()=>{let t=R.getState().clearPending(e);t>0&&B.info(y(`toast.queueRevoked`,{count:t}))},[e,y]),Ke=(0,Y.useCallback)(t=>{let n=R.getState();n.promotePending(e,t),!n.isGenerating(e)&&!n.isPaused(e)?z(e):B.info(y(`toast.queuePromoted`))},[e,y]),qe=(0,Y.useCallback)(t=>{let n=R.getState(),r=n.removePending(e,t);r&&(L(e,r)?B.info(y(`toast.queueSteered`)):n.enqueuePending(e,r.content,r.files,r.images,r.display,r.skipAddUserMessage,r.requeuedFromMessageId))},[e,y]),Ye=(0,Y.useCallback)(t=>{R.getState().removePending(e,t)&&B.info(y(`toast.queueRemoved`))},[e,y]),J=(0,Y.useCallback)(t=>{C(e,t)},[e,C]),Qe=(0,Y.useCallback)(()=>{let e=A?.text??``;e&&(J(e),requestAnimationFrame(()=>{let t=P.current;t&&(t.focus(),t.selectionStart=t.selectionEnd=e.length)}))},[J,A]),$e=(0,Y.useCallback)(t=>{let n=R.getState().removePending(e,t);if(!n)return;let r=[],i=[],a=(n.display?.content??n.content).replace(/<attachment path="([^"]*)"\s*\/>/g,(e,t)=>(r.push(t),``)).replace(/<image name="([^"]*)"\s*\/>/g,(e,t)=>(i.push(t),``)).trim();if(n.display)for(let e of n.display.pastes){let t=tt(e.content),n=at(e.content),r=n>0?`[Pasted text #${t} +${n} lines]`:`[Pasted text #${t}]`;a=a.replace(RegExp(`\\[Pasted text #${e.id}(?:\\s*\\+\\d+ lines?)?\\]`,`g`),r)}for(let e of n.files??[])mn.current.add(e);let o=r.map((e,t)=>({id:`queued-att-${Date.now()}-${t}`,name:e.split(`/`).pop()||e,size:0,uploading:!1,path:e}));(n.images??[]).forEach((e,t)=>{o.push({id:`queued-img-${Date.now()}-${t}`,name:i[t]||`image-${t+1}.png`,size:Math.max(1,Math.round((e.length-e.indexOf(`,`)-1)*3/4)),uploading:!1,imageDataUri:e})}),o.length>0&&U(e=>[...e,...o].slice(-10));let s=R.getState().getSessionInput(e);J(s.trim()?`${s.trimEnd()}\n\n${a}`:a),requestAnimationFrame(()=>P.current?.focus())},[e,J]),et=(0,Y.useCallback)(e=>e.replace(/<attachment path="[^"]*"\s*\/>/g,``).replace(/<image name="[^"]*"\s*\/>/g,``).trim(),[]),[rt,pt]=(0,Y.useState)(Oe),[mt,ht]=(0,Y.useState)(!1),gt=(0,Y.useRef)(null),_t=(0,Y.useCallback)(e=>{pt(e),je(e),ht(!1)},[]);(0,Y.useEffect)(()=>{if(!mt)return;let e=e=>{gt.current&&!gt.current.contains(e.target)&&ht(!1)},t=e=>{e.key===`Escape`&&ht(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[mt]);let Z=Fn(rt),vt=(0,Y.useRef)(null),yt=(0,Y.useCallback)(async()=>{try{if(!vt.current){let e=await q.stt.status();e.success&&e.data&&(vt.current=e.data)}let e=vt.current;if(!e)return!0;if(e.service!==`ok`&&e.service!==`stopped`)return B.warning(y(`stt.backendMissing`)),window.dispatchEvent(new CustomEvent(`switch-tab`,{detail:{tab:`settings`,section:`stt`}})),!1;let t=e.backends?.[rt];return t&&!t.installed?(B.warning(y(`stt.backendMissing`)),window.dispatchEvent(new CustomEvent(`switch-tab`,{detail:{tab:`settings`,section:`stt`}})),!1):!0}catch{return!0}},[y,rt]);(0,Y.useEffect)(()=>{let e=()=>{vt.current=null};return window.addEventListener(`stt-backends-changed`,e),()=>window.removeEventListener(`stt-backends-changed`,e)},[]),(0,Y.useEffect)(()=>{let e=e=>{let t=ke(e.detail?.lang);pt(t)};return window.addEventListener(`stt-lang-changed`,e),()=>window.removeEventListener(`stt-lang-changed`,e)},[]);let bt=(0,Y.useCallback)(e=>{let t=P.current,n=t?.selectionStart??x.length,r=x.slice(0,n)+e+x.slice(n);J(r),requestAnimationFrame(()=>{t?.focus();let r=n+e.length;t&&(t.selectionStart=t.selectionEnd=r)})},[x,J]);(0,Y.useEffect)(()=>{if(!g)return;let e=P.current;if(!e)return;e.focus();let t=e.value.length;e.selectionStart=t,e.selectionEnd=t},[g]);let xt=(0,Y.useCallback)(async()=>{if(w)B.info(y(`stt.generatingTitle`));else if(Z.state===`recording`)try{let e=await Z.stop();e?bt(e):B.info(y(`stt.noSpeech`))}catch(e){B.error(e instanceof Error?e.message:String(e))}else if(Z.state===`idle`&&await yt())try{await Z.start()}catch(e){B.error(e instanceof Error?e.message:String(e))}},[Z,bt,yt,y,w]),{isOpen:St,filter:Ct,filteredCommands:wt,selectedIndex:Tt,setSelectedIndex:Et,selectNext:Dt,selectPrev:Ot,executeCommand:kt,openMenu:At,closeMenu:jt,setFilter:Mt,allCommands:Nt,containerRef:Pt}=Ze(l),[Q,Lt]=(0,Y.useState)(!1),[zt,Bt]=(0,Y.useState)(``),[Vt,Ht]=(0,Y.useState)([]),[Ut,Wt]=(0,Y.useState)(0),[Gt,Kt]=(0,Y.useState)(!1),[qt,Jt]=(0,Y.useState)(0),Xt=(0,Y.useRef)(-1),[Zt,Qt]=(0,Y.useState)(`active`),$t=(0,Y.useRef)(`active`),[nn,an]=(0,Y.useState)(`summarize`),sn=(0,Y.useRef)(`summarize`);sn.current=nn;let[un,dn]=(0,Y.useState)([]),fn=(0,Y.useCallback)(()=>{dn(Array.from(hn.current.values()))},[]);$t.current=Zt;let mn=(0,Y.useRef)(new Set),hn=(0,Y.useRef)(new Map),gn=(0,Y.useRef)([]),_n=(0,Y.useRef)(0),vn=(0,Y.useRef)(!1);(0,Y.useEffect)(()=>{let t=t=>{let n=R.getState().getSessionInput(e),r=`@${t} `,i=n.trim()?`${n.trimEnd()} ${r}`:r;mn.current.add(t),C(e,i),Jt(mn.current.size+hn.current.size),requestAnimationFrame(()=>P.current?.focus())};return Be(t),()=>ze(t)},[e,C]),(0,Y.useEffect)(()=>{let t=t=>{let n=R.getState().getSessionInput(e),r=n.trim()?`${n.trimEnd()}\n\n${t}`:t;C(e,r),requestAnimationFrame(()=>P.current?.focus())};return He(t),()=>Re(t)},[e,C]);let Sn=(0,Y.useCallback)(t=>{let n=R.getState().getSessionInput(e),r=n.trim()?`${n.trimEnd()}\n\n${t}`:t;C(e,r),requestAnimationFrame(()=>P.current?.focus())},[e,C]),Cn=(0,Y.useRef)([]),[Tn,On]=(0,Y.useState)(tn),An=(0,Y.useRef)([]),jn=(0,Y.useRef)([]),Mn=(0,Y.useRef)(0),Nn=(0,Y.useRef)(``);Nn.current=zt;let Pn=(0,Y.useCallback)((e,t)=>{let n=e.map(e=>({kind:`file`,key:e.path,label:e.name,detail:e.path,isDir:e.type===`directory`})),r=An.current,i=t.toLowerCase(),a=(i?r.filter(e=>e.label.toLowerCase().includes(i)||e.key.toLowerCase().includes(i)):r).slice(0,rr);return[...n,...a]},[]),Ln=(0,Y.useCallback)(async()=>{let e=Date.now();if(jn.current.length>0&&e-Mn.current<ir)return jn.current;try{let e=await q.sessions.list(),t=e.success&&e.data?e.data:[];(t.length>0||jn.current.length===0)&&(jn.current=t),Mn.current=Date.now()}catch{}return jn.current},[]),zn=(0,Y.useCallback)(async()=>{let t=await Ln();return An.current=pn(t,e,$t.current),An.current},[Ln,e]),er=(0,Y.useCallback)(e=>{Cn.current=e,Ht(e)},[]),lr=(0,Y.useCallback)((e,t)=>{er(Pn(e.slice(0,rr),t))},[er,Pn]),ur=(0,Y.useCallback)(()=>{let t=$t.current===`active`?`all`:`active`;$t.current=t,Qt(t),(async()=>{let n=await Ln();An.current=pn(n,e,t),lr(gn.current,Nn.current.toLowerCase())})()},[Ln,e,lr]),dr=(0,Y.useCallback)(()=>{let e=rn(sn.current);(e===`direct`||e===`summarize`)&&mn.current.size>0&&(e=`enqueue`),sn.current=e,an(e)},[]),fr=(0,Y.useMemo)(()=>on({files:y(`chat.mentionTabFiles`),sessions:y(`chat.mentionTabSessions`)}),[y]),pr=fr.some(e=>e.key===Tn)?Tn:tn,mr=(0,Y.useMemo)(()=>cn(Vt,pr),[Vt,pr]);(0,Y.useEffect)(()=>{mn.current=new Set,hn.current=new Map,fn(),vn.current=!1,On(tn),An.current=[],jn.current=[],Mn.current=0,_n.current++,Lt(!1),Bt(``),Ht([]),Cn.current=[],Jt(0),jt()},[e,jt,fn]);let hr=(0,Y.useDeferredValue)(x),gr=de(e=>e.estimateTokens),_r=(0,Y.useMemo)(()=>gr(hr),[hr,gr]),vr=(0,Y.useCallback)(()=>{let e=P.current;e&&(F==null?(e.style.maxHeight=``,e.style.height=`auto`,e.style.height=Math.min(e.scrollHeight,200)+`px`):(e.style.maxHeight=`${F}px`,e.style.height=`${F}px`))},[F]);(0,Y.useEffect)(()=>{vr()},[x,H.length,vr]),(0,Y.useEffect)(()=>()=>{document.body.style.userSelect=``},[]);let yr=(0,Y.useCallback)(e=>{let t=P.current;t&&e.button===0&&(e.preventDefault(),ue.current={startY:e.clientY,startHeight:t.getBoundingClientRect().height,current:0},e.currentTarget.setPointerCapture(e.pointerId),document.body.style.userSelect=`none`,pe(!0))},[]),br=(0,Y.useCallback)(e=>{let t=ue.current,n=P.current;if(!t||!n)return;t.movedY=e.clientY-t.startY;let r=Math.max(Jn,Math.min(Math.round(window.innerHeight*Yn),t.startHeight-(e.clientY-t.startY)));t.current=r,n.style.maxHeight=`${r}px`,n.style.height=`${r}px`},[]),xr=(0,Y.useCallback)(e=>{let t=ue.current;if(ue.current=null,document.body.style.userSelect=``,pe(!1),t){try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}t.current>0&&Math.abs(t.movedY??0)>3&&le(t.current)}},[]),Sr=(0,Y.useCallback)(()=>le(null),[]),Cr=(0,Y.useCallback)(e=>{let t=P.current;if(!t)return;let n=F??t.getBoundingClientRect().height,r=Math.max(Jn,Math.min(Math.round(window.innerHeight*Yn),n+e));le(r)},[F]),wr=(0,Y.useCallback)(async e=>{let t=++_n.current;Kt(!0);try{let n=await q.files.search(e);if(t!==_n.current)return null;let r=(n.success&&n.data?n.data.files:[]).map(e=>({id:e,name:e.slice(e.lastIndexOf(`/`)+1),path:e,type:`file`}));return gn.current=r,r}catch{return null}finally{t===_n.current&&Kt(!1)}},[]),Tr=(0,Y.useCallback)(async(e,t)=>{if(vn.current){let n=Xt.current;if(n<0||t<n){vn.current=!1,Lt(!1);return}let r=e.slice(n,t);if(/\s/.test(r)){vn.current=!1,Lt(!1);return}Xt.current=n,Bt(r),Lt(!0),Wt(0);let i=r.toLowerCase(),[a]=await Promise.all([wr(i),zn()]);if(!a)return;lr(a,i);return}let n=sr(e,t);if(!n.active){Q&&Lt(!1);return}Xt.current=n.start,Bt(n.query),Lt(!0),Wt(0);let r=n.query.toLowerCase(),[i]=await Promise.all([wr(r),zn()]);i&&lr(i,r)},[Q,wr,zn,lr]),Er=(0,Y.useCallback)(async()=>{if(Ue.current.length>0)return Ue.current;if(We.current)return We.current;Le(!0);let e=q.skills.list().then(e=>{let t=Array.isArray(e.data)?e.data:[];return Fe(t),t}).catch(()=>[]).finally(()=>{We.current=null,Le(!1)});return We.current=e,e},[]),Dr=(0,Y.useMemo)(()=>En(Pe,we),[Pe,we]),Or=(0,Y.useCallback)((e,t)=>{let n=wn(e,t,Ue.current);n.active?(Ve.current=n.start,Te(n.query),Me(0),Ce(!0),Ue.current.length===0&&Er()):K&&(Ce(!1),Te(``))},[K,Er]);(0,Y.useEffect)(()=>{if(!K||Pe.length===0)return;let e=P.current;if(!e)return;let t=wn(e.value,e.selectionStart??e.value.length,Pe);t.active?(Ve.current=t.start,Te(t.query)):(Ce(!1),Te(``))},[Pe,K]);let kr=(0,Y.useCallback)(e=>{let t=e.target.value,n=e.target.selectionStart??t.length;J(t),Tr(t,n),Or(t,n);let r=cr(t,n);r.active?(St||At(),Mt(r.query),Et(0)):St&&jt()},[J,Tr,Or,St,At,Mt,Et,jt]),Ar=(0,Y.useCallback)(e=>{let t=P.current,n=x,r=Xt.current>=0?Xt.current:t?.selectionStart??n.length,i=Math.min(n.length,r+1+zt.length),a,o;if(e.kind===`session`){let t=e.label||e.key;a=/\s/.test(t)?e.key:t,hn.current.set(e.key,t),fn(),o=`@${a} `}else a=e.key,mn.current.add(a),o=`@${a} `;let s=n.slice(0,r)+o+n.slice(i);J(s),Lt(!0),Bt(``),(async()=>{let e=await wr(``);e&&lr(e,``)})(),Wt(0),Jt(mn.current.size+hn.current.size),Xt.current=r+o.length,vn.current=!0,requestAnimationFrame(()=>{t?.focus(),t&&(t.selectionStart=t.selectionEnd=r+o.length)})},[x,zt,J,wr,lr]),jr=(0,Y.useCallback)(()=>{vn.current=!1,Lt(!1),Bt(``),Jt(0),On(tn)},[]),Mr=(0,Y.useCallback)(e=>{let t=P.current;if(!e.args){let n=kt(e,``);if(n?.message&&(n.success?B.success(n.message):B.error(n.message)),n?.draft){J(n.draft),le(null),requestAnimationFrame(()=>{t?.focus(),t&&(t.selectionStart=t.selectionEnd=n.draft.length)});return}J(``),le(null);return}let n=t?.selectionStart??x.length,r=x.lastIndexOf(`
8
+ `,n-1)+1,i=x.slice(0,r)+`/${e.name} `+x.slice(n);J(i),jt(),requestAnimationFrame(()=>{t?.focus();let n=r+e.name.length+2;t&&(t.selectionStart=t.selectionEnd=n)})},[x,J,kt,jt]),Nr=(0,Y.useCallback)(e=>{let t=P.current,n=Ve.current>=0?Ve.current:t?.selectionStart??x.length,r=Math.min(x.length,n+1+we.length),i=`$${e.id} `,a=x.slice(0,n)+i+x.slice(r);J(a),Ce(!1),Te(``),Ve.current=-1,requestAnimationFrame(()=>{t?.focus();let e=n+i.length;t&&(t.selectionStart=t.selectionEnd=e)})},[x,we,J]),Pr=(0,Y.useCallback)(()=>{Ce(!1),Te(``),Ve.current=-1},[]),Fr=(0,Y.useCallback)(e=>{let t=P.current,n=t?.selectionStart??x.length,r=`$${e.id} `,i=x.slice(0,n)+r+x.slice(n);J(i),be(!1),vn.current=!1,Lt(!1),Bt(``),Ce(!1),Te(``),requestAnimationFrame(()=>{t?.focus();let e=n+r.length;t&&(t.selectionStart=t.selectionEnd=e)})},[x,J]),Ir=2048,Lr=(0,Y.useCallback)(e=>new Promise((t,n)=>{let r=()=>{let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(Error(`Failed to read image`)),r.readAsDataURL(e)};(async()=>{let n=null;try{n=await createImageBitmap(e)}catch{r();return}try{let i=Math.max(n.width,n.height);if(i<=Ir){n.close(),r();return}let a=Ir/i,o=document.createElement(`canvas`);o.width=Math.max(1,Math.round(n.width*a)),o.height=Math.max(1,Math.round(n.height*a));let s=o.getContext(`2d`);if(!s){n.close(),r();return}s.drawImage(n,0,0,o.width,o.height),n.close();let c=e.type===`image/jpeg`?`image/jpeg`:`image/png`;t(o.toDataURL(c,c===`image/jpeg`?.9:void 0))}catch{n?.close(),r()}})()}),[]),Rr=(0,Y.useCallback)(e=>{let t=Array.from(e);U(e=>{let n=Kn-e.length,r=e.slice();for(let e of t.slice(0,n)){let t=Vn.test(e.name);if(!t&&!Rn.test(e.name)){B.warning(y(`fileJob.unsupportedType`,{name:e.name}));continue}if(e.size>(t?Hn:Gn)){B.error(y(`fileJob.fileTooLarge`,{name:e.name}));continue}if(r.some(t=>t.name===e.name&&t.size===e.size)){B.warning(y(`fileJob.duplicateFile`,{name:e.name}));continue}let n={id:`att-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,file:e,name:e.name,size:e.size,uploading:!1};t&&Lr(e).then(e=>{U(t=>t.map(t=>t.id===n.id?{...t,imageDataUri:e}:t))}).catch(()=>{U(e=>e.filter(e=>e.id!==n.id)),B.error(y(`fileJob.uploadFailed`,{name:e.name}))}),r.push(n)}return r.length>=Kn&&B.warning(y(`fileJob.maxAttachments`,{n:Kn})),r})},[y,Lr]),zr=(0,Y.useCallback)(e=>{e.target.files&&e.target.files.length>0&&(Rr(e.target.files),e.target.value=``)},[Rr]),Br=(0,Y.useCallback)(()=>{me.current?.click()},[]),Vr=(0,Y.useCallback)(async()=>{if(!(G||w)){ve(!0);try{let e=await kn();Rr([e])}catch(e){e instanceof Dn&&e.code===`cancelled`||B.error(y(`fileJob.screenshotFailed`))}finally{ve(!1)}}},[Rr,y,G,w]),Hr=(0,Y.useRef)(Vr);(0,Y.useEffect)(()=>{Hr.current=Vr},[Vr]),(0,Y.useEffect)(()=>{let e=e=>{(e.ctrlKey||e.metaKey)&&e.shiftKey&&(e.key===`s`||e.key===`S`)&&(e.preventDefault(),Hr.current())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);let Ur=(0,Y.useCallback)(e=>{U(t=>t.filter(t=>t.id!==e))},[]),Wr=(0,Y.useCallback)(e=>{e.preventDefault(),_e(!0)},[]),Gr=(0,Y.useCallback)(e=>{e.preventDefault(),_e(!1)},[]),Kr=(0,Y.useCallback)(e=>{e.preventDefault(),_e(!1),e.dataTransfer.files&&e.dataTransfer.files.length>0&&Rr(e.dataTransfer.files)},[Rr]),qr=(0,Y.useCallback)(async()=>{if(H.length===0)return``;let e=[];for(let t of H){if(t.imageDataUri)continue;if(t.path){e.push(`<attachment path="${t.path}" />`);continue}if(!t.file)continue;U(e=>e.map(e=>e.id===t.id?{...e,uploading:!0,error:void 0}:e));let n=`${Wn}/${t.name}`,r=await q.files.upload(t.file,n);if(r.success&&r.data?.path){let n=r.data.path.replace(/\\/g,`/`);U(e=>e.map(e=>e.id===t.id?{...e,uploading:!1,path:n}:e)),e.push(`<attachment path="${n}" />`)}else U(e=>e.map(e=>e.id===t.id?{...e,uploading:!1,error:r.error||y(`fileJob.uploadFailed`)}:e)),B.error(`${t.name}: ${r.error||y(`fileJob.uploadFailed`)}`)}return e.length>0?`${e.join(`
9
+ `)}\n\n`:``},[H,y]),Jr=(0,Y.useCallback)(e=>{let t=e.clipboardData.getData(`text/plain`);if(e.clipboardData.files&&e.clipboardData.files.length>0){e.preventDefault(),Rr(e.clipboardData.files);return}if(!t||!it(t))return;e.preventDefault();let{label:n}=ot(t),r=P.current;if(!r)return;let i=r.selectionStart,a=r.selectionEnd,o=r.value,s=o.slice(0,i)+n+o.slice(a);J(s),requestAnimationFrame(()=>{r.selectionStart=r.selectionEnd=i+n.length})},[J,Rr]),Yr=(0,Y.useCallback)(async()=>{let n=x.trim()?x:j,r=ct(n),a=r.map(e=>({id:e,content:nt(e)??``})).filter(e=>e.content!==``),o=st(n);lt(r),vn.current=!1,Lt(!1),jt();let s=o.trim(),c=H.length>0;if(!s&&!c)return;let l=o.trim();if(l.startsWith(`/`)&&!c){let e=Je(l);if(e){let t=Nt.find(t=>t.name===e.command);if(t){let n=kt(t,e.args);if(n?.message&&(n.success?B.success(n.message):B.error(n.message)),n?.draft){J(n.draft),le(null),requestAnimationFrame(()=>{let e=P.current;e&&(e.focus(),e.setSelectionRange(n.draft.length,n.draft.length))});return}J(``),le(null),U([]),mn.current=new Set,hn.current=new Map,fn(),Jt(0);return}B.error(y(`slashCommands.unknownCommand`,{cmd:`/${e.command}`}));return}}if(l.startsWith(`!`)&&!c){let e=l.slice(1).trim();if(!e)return;i?.(e),J(``),le(null),U([]),mn.current=new Set,hn.current=new Map,Jt(0);return}let u=Array.from(mn.current).filter(e=>o.includes(`@${e}`)),d=Array.from(hn.current.entries()).map(([e,t])=>({id:e,title:t})).filter(e=>o.includes(`@${e.title}`)||o.includes(`@${e.id}`)),f=``;if(c){if(H.some(e=>e.uploading)){B.warning(y(`fileJob.stillUploading`));return}f=await qr()}let p=H.filter(e=>e.imageDataUri),m=p.map(e=>e.imageDataUri);if(p.length>0){let e=p.map(e=>tr(e.name)).join(`
10
+ `);f=f?`${f}${e}\n\n`:`${e}\n\n`}let h=(f+o).trim();if(!h&&!c)return;let g=a.length>0?{content:`${f}${x}`,pastes:a}:void 0;t(h||f.trim(),u.length>0?u:void 0,m.length>0?m:void 0,d.length>0?d:void 0,d.length>0?sn.current:void 0,g),J(``),re(e),le(null),U([]),mn.current=new Set,hn.current=new Map,Jt(0),Ce(!1),Te(``)},[x,j,H,t,i,J,re,e,qr,y,jt,Nt,kt]),Xr=(0,Y.useCallback)(e=>{if(!e.nativeEvent.isComposing){if((e.key===`Backspace`||e.key===`Delete`)&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&!e.shiftKey){let t=P.current;if(t&&t.selectionStart===t.selectionEnd){let n=t.selectionStart,r=t.value;if(e.key===`Backspace`&&n>0){let i=ut(r.slice(0,n));if(i){e.preventDefault(),J(r.slice(0,n-i.length)+r.slice(n)),ft(i),requestAnimationFrame(()=>{t.focus();let e=n-i.length;t.selectionStart=t.selectionEnd=e});return}}else if(e.key===`Delete`&&n<r.length){let i=dt(r.slice(n));if(i){e.preventDefault(),J(r.slice(0,n)+r.slice(n+i.length)),ft(i),requestAnimationFrame(()=>{t.focus(),t.selectionStart=t.selectionEnd=n});return}}}}if(e.key===`Backspace`&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&!e.shiftKey&&H.length>0){let t=P.current;if(t&&t.selectionStart===0&&t.selectionEnd===0){let t=H[H.length-1];if(t){e.preventDefault(),Ur(t.id);return}}}if(Q&&fr.length>1&&e.key===`Tab`){e.preventDefault();let t=fr.map(e=>e.key);On(n=>ln(t,n,!e.shiftKey)),Wt(0)}else if(Q&&fr.length>1&&e.key===`S`&&!e.ctrlKey&&!e.metaKey&&!e.altKey)e.preventDefault(),ur();else if(Q&&fr.length>1&&e.key===`M`&&!e.ctrlKey&&!e.metaKey&&!e.altKey)e.preventDefault(),dr();else{if(Q&&mr.length>0){if(e.key===`ArrowDown`){e.preventDefault(),Wt(e=>(e+1)%mr.length);return}if(e.key===`ArrowUp`){e.preventDefault(),Wt(e=>(e-1+mr.length)%mr.length);return}if(e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey){let t=mr[Ut];t&&(e.preventDefault(),Ar(t));return}if(e.key===`Escape`){e.preventDefault(),jr();return}}else if(Q&&e.key===`Escape`){e.preventDefault(),jr();return}if(K&&Dr.length>0){if(e.key===`ArrowDown`){e.preventDefault(),Me(e=>(e+1)%Dr.length);return}if(e.key===`ArrowUp`){e.preventDefault(),Me(e=>(e-1+Dr.length)%Dr.length);return}if(e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey){let t=Dr[Ee];t&&(e.preventDefault(),Nr(t));return}if(e.key===`Escape`){e.preventDefault(),Pr();return}}else if(K&&e.key===`Escape`){e.preventDefault(),Pr();return}if(St&&wt.length>0){if(e.key===`ArrowDown`){e.preventDefault(),Dt();return}if(e.key===`ArrowUp`){e.preventDefault(),Ot();return}if(e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey){let t=wt[Tt];t&&(e.preventDefault(),Mr(t));return}if(e.key===`Escape`){e.preventDefault(),jt();return}}else if(St&&e.key===`Escape`){e.preventDefault(),jt();return}if(e.key===`Tab`&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&j)e.preventDefault(),Qe();else if(e.key===`Escape`&&w){e.preventDefault();let t=Date.now(),n=Xe(oe,k,ge.current,t);ge.current=t,n===`revokeQueue`?(Ge(),ge.current=0):n===`stop`?o():s()}else(e.key===`Enter`&&(e.ctrlKey||e.metaKey)||e.key===`Enter`&&!e.shiftKey)&&(e.preventDefault(),Yr())}}},[w,k,oe,Ge,Yr,s,c,o,Q,Vt,Ut,Ar,jr,fr,ur,dr,K,Dr,Ee,Nr,Pr,St,wt,Tt,Dt,Ot,Mr,jt,J,H,Ur,j,Qe]),Zr=(0,Y.useCallback)(()=>{he.current=!0},[]),Qr=(0,Y.useCallback)(()=>{he.current=!1},[]),[$r,ei]=(0,Y.useState)(()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 767px)`).matches);(0,Y.useEffect)(()=>{if(typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(max-width: 767px)`),t=()=>{ei(e.matches),e.matches||oi(!1)};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let[ti,ni]=(0,Y.useState)(()=>Qn()),[ri,ii]=(0,Y.useState)(()=>Qn()===`collapsed`),[ai,oi]=(0,Y.useState)(!1),[si,ci]=(0,Y.useState)(!1),li=(0,Y.useRef)(!1),ui=ti===`expanded`,di=(0,Y.useCallback)(e=>{ni(e);try{e===`auto`?window.localStorage.removeItem(Xn):window.localStorage.setItem(Xn,e)}catch{}},[]),fi=(0,Y.useRef)(null),$=(0,Y.useCallback)(()=>{fi.current!==null&&(clearTimeout(fi.current),fi.current=null)},[]);(0,Y.useEffect)(()=>$,[$]),(0,Y.useEffect)(()=>{$r&&w&&!ui&&oi(!0)},[$r,w,ui]);let[pi,mi]=(0,Y.useState)(()=>$n());(0,Y.useEffect)(()=>{if(typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(hover: hover) and (pointer: fine)`),t=()=>mi(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let hi=li.current||he.current||x.trim().length>0||H.length>0||oe>0||_||W||Q||St||K,gi=pi&&ti===`auto`&&!ri,_i=ri||$r&&ai||si,vi=si&&!ri&&!($r&&ai),yi=(0,Y.useCallback)(()=>{$(),ci(!1),ii(!0),di(`collapsed`)},[$,di]),bi=(0,Y.useCallback)(()=>{$(),oi(!1),ci(!1),ti===`collapsed`&&(ii(!1),di(`auto`))},[$,ti,di]),xi=(0,Y.useCallback)(()=>{$(),ui?di(`auto`):(ci(!1),oi(!1),ii(!1),di(`expanded`))},[$,ui,di]),Si=(0,Y.useCallback)(()=>{$(),ci(!1)},[$]),Ci=(0,Y.useCallback)(()=>{gi&&($(),fi.current=setTimeout(()=>{fi.current=null,!hi&&ci(!0)},Zn))},[hi,$,gi]),wi=(0,Y.useCallback)(()=>{$(),ci(!1)},[$]),Ti=_r>8e3,Ei=!_&&(x.trim().length>0||H.length>0),Di=w?y(`stt.generatingTitle`):Z.state===`recording`?y(`stt.stopTitle`):y(`stt.title`),Oi=Z.state===`transcribing`||w,ki=/mac/i.test(navigator.platform||``)?`⌘`:`Ctrl`;return(0,X.jsxs)(`div`,{className:`chat-composer-shell shrink-0 pb-3 pt-2 max-md:order-4 max-md:mt-auto`,onMouseEnter:Si,onMouseLeave:Ci,onDragOver:Wr,onDragLeave:Gr,onDrop:Kr,children:[M.length>0&&(0,X.jsxs)(`div`,{className:`${qn} mb-2 rounded-lg border border-dark-border bg-dark-surface px-2.5 py-1.5 text-xs text-dark-muted`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`⏳`}),(0,X.jsx)(`span`,{className:`font-medium text-dark-text`,children:y(`chat.queuedCount`,{count:M.length})}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1`}),(0,X.jsx)(`span`,{className:`shrink-0 text-badge text-dark-muted/60`,children:y(`chat.queuedEscHint`)}),(0,X.jsx)(`button`,{onClick:Ge,className:`flex h-5 w-5 shrink-0 items-center justify-center rounded-full text-dark-muted transition-colors hover:bg-dark-hover hover:text-accent-red`,title:y(`chat.queuedRevoke`),"aria-label":y(`chat.queuedRevoke`),children:(0,X.jsx)(te,{size:12,"aria-hidden":`true`})})]}),(0,X.jsx)(`ul`,{className:`mt-1 max-h-40 space-y-0.5 overflow-y-auto`,children:M.map((e,t)=>(0,X.jsxs)(`li`,{className:`group flex items-center gap-2 rounded px-1 py-0.5 transition-colors hover:bg-dark-hover/60`,children:[(0,X.jsx)(`span`,{className:`w-4 shrink-0 text-center text-badge tabular-nums text-dark-muted/60`,children:t+1}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-dark-muted/80`,title:et(e.content),children:et(e.content)||y(`chat.queuedEmptyPreview`)}),(0,X.jsxs)(`span`,{className:`flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100`,children:[(0,X.jsx)(`button`,{onClick:()=>qe(e.id),className:`flex h-5 w-5 items-center justify-center rounded text-dark-muted transition-colors hover:bg-dark-hover hover:text-accent-blue`,title:y(`chat.queuedSteerNow`),"aria-label":y(`chat.queuedSteerNow`),children:(0,X.jsx)(ie,{size:12,"aria-hidden":`true`})}),(0,X.jsx)(`button`,{onClick:()=>Ke(e.id),className:`flex h-5 w-5 items-center justify-center rounded text-dark-muted transition-colors hover:bg-dark-hover hover:text-accent-blue`,title:y(`chat.queuedSendNow`),"aria-label":y(`chat.queuedSendNow`),children:(0,X.jsx)(ce,{size:12,"aria-hidden":`true`})}),(0,X.jsx)(`button`,{onClick:()=>$e(e.id),className:`flex h-5 w-5 items-center justify-center rounded text-dark-muted transition-colors hover:bg-dark-hover hover:text-accent-blue`,title:y(`chat.queuedEdit`),"aria-label":y(`chat.queuedEdit`),children:(0,X.jsx)(D,{size:12,"aria-hidden":`true`})}),(0,X.jsx)(`button`,{onClick:()=>Ye(e.id),className:`flex h-5 w-5 items-center justify-center rounded text-dark-muted transition-colors hover:bg-dark-hover hover:text-accent-red`,title:y(`chat.queuedDelete`),"aria-label":y(`chat.queuedDelete`),children:(0,X.jsx)(b,{size:12,"aria-hidden":`true`})})]})]},e.id))})]}),H.length>0&&(0,X.jsx)(`div`,{className:`${qn} mb-2 flex flex-wrap gap-1.5`,children:H.map(e=>{let t=nr(e.name),n=e.imageDataUri,r=(0,X.jsxs)(X.Fragment,{children:[n?(0,X.jsx)(Se,{src:n,name:e.name,size:13,hoverPreview:!1,thumb:!0}):e.uploading?(0,X.jsx)(h,{size:13,className:`animate-spin`}):(0,X.jsx)(t,{size:13}),(0,X.jsx)(`span`,{className:`max-w-[140px] truncate`,children:e.name}),(0,X.jsx)(`span`,{className:`text-badge text-dark-muted`,children:e.size>1048576?`${(e.size/1024/1024).toFixed(1)} MB`:`${Math.max(1,Math.round(e.size/1024))} KB`}),!e.uploading&&(0,X.jsx)(`button`,{onClick:()=>Ur(e.id),className:`rounded p-0.5 text-dark-muted hover:text-accent-red hover:bg-accent-red/10 transition-colors`,"aria-label":y(`a11y.close`),children:(0,X.jsx)(te,{size:11})})]}),i=V(`flex items-center gap-1.5 rounded-lg border text-xs transition-colors ${n?`p-1 pe-2`:`px-2 py-1`}`,e.error?`border-accent-red/40 bg-accent-red/5 text-accent-red`:e.uploading?`border-accent-blue/40 bg-accent-blue/5 text-accent-blue`:`border-dark-border bg-dark-surface text-dark-text`,n&&`cursor-zoom-in hover:border-accent-blue/40`);return n?(0,X.jsx)(xe,{src:n,alt:e.name,className:`min-w-0`,children:(0,X.jsx)(`div`,{className:i,children:r})},e.id):(0,X.jsx)(`div`,{className:i,children:r},e.id)})}),W&&(0,X.jsx)(`div`,{className:`${qn} mb-2 rounded-xl border-2 border-dashed border-accent-blue/50 bg-accent-blue/5 py-3 text-center text-xs text-accent-blue`,children:y(`fileJob.dropHint`)}),(0,X.jsx)(It,{}),(0,X.jsxs)(`div`,{className:`chat-composer-card relative rounded-xl border ${fe?``:`transition-all duration-150`} ${qn} ${_i?`flex items-end gap-1 px-2 py-1.5`:``} ${vi?`pointer-events-none opacity-0`:``}`,children:[!_i&&(0,X.jsx)(`div`,{role:`separator`,"aria-orientation":`horizontal`,"aria-label":y(`chat.resizeHint`),title:y(`chat.resizeHint`),tabIndex:0,onPointerDown:yr,onPointerMove:br,onPointerUp:xr,onPointerCancel:xr,onDoubleClick:Sr,onKeyDown:e=>{e.key===`ArrowUp`?(e.preventDefault(),Cr(24)):e.key===`ArrowDown`&&(e.preventDefault(),Cr(-24))},className:`group absolute inset-x-0 top-0 z-10 flex h-2.5 cursor-row-resize touch-none items-center justify-center rounded-t-xl outline-none focus-visible:bg-accent-blue/10`,children:(0,X.jsx)(`span`,{"aria-hidden":`true`,className:`h-1 w-9 rounded-full bg-dark-border transition-colors group-hover:bg-accent-blue/70 group-focus-visible:bg-accent-blue/70`})}),!_i&&(0,X.jsx)(`div`,{className:`flex items-center justify-end gap-2 px-3 pt-2.5`,children:f&&(0,X.jsx)(en,{workspaceDir:u,onSelect:f,onNewSessionInDir:m})}),Q&&(0,X.jsx)(`div`,{onMouseDown:e=>e.preventDefault(),"aria-hidden":!Q,children:(0,X.jsx)(yn,{isOpen:Q,items:mr,selectedIndex:Ut,query:zt,isSearching:Gt,onSelect:Ar,onHover:Wt,selectedCount:qt,onFinish:jr,tabs:fr,activeTab:pr,onTabChange:On,scope:Zt,onToggleScope:ur,deliveryMode:nn,onToggleDelivery:dr})}),K&&(0,X.jsx)(`div`,{onMouseDown:e=>e.preventDefault(),"aria-hidden":!K,children:(0,X.jsx)(xn,{isOpen:K,items:Dr,selectedIndex:Ee,query:we,isLoading:Ie,onSelect:Nr,onHover:Me})}),St&&(0,X.jsx)(`div`,{onMouseDown:e=>e.preventDefault(),"aria-hidden":!St,children:(0,X.jsx)(In,{isOpen:St,commands:wt,selectedIndex:Tt,filter:Ct,onSelect:Mr,onHover:Et,containerRef:Pt})}),(0,X.jsxs)(`div`,{className:_i?`relative flex min-w-0 flex-1 items-start`:`relative`,children:[j&&(0,X.jsx)(`div`,{"aria-hidden":`true`,className:_i?`pointer-events-none absolute inset-0 overflow-hidden px-1.5 py-1.5 text-sm leading-relaxed`:`pointer-events-none absolute inset-0 overflow-hidden px-4 pt-2 pb-3 text-sm leading-relaxed`,children:(0,X.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,X.jsx)(`button`,{type:`button`,tabIndex:-1,onMouseDown:e=>e.preventDefault(),onClick:Qe,className:`pointer-events-auto relative z-20 min-w-0 cursor-pointer whitespace-pre-wrap break-words border-0 bg-transparent p-0 text-start text-dark-muted/70 transition-colors hover:text-dark-muted`,title:y(`chat.suggestionAccept`),"aria-label":y(`chat.suggestionAccept`),children:j}),(0,X.jsx)(`span`,{className:`mt-0.5 shrink-0 rounded border border-dark-border px-1.5 py-0.5 text-badge text-dark-muted/70`,"aria-hidden":`true`,children:y(`chat.suggestionAccept`)}),(0,X.jsx)(`button`,{type:`button`,tabIndex:-1,onMouseDown:e=>e.preventDefault(),onClick:()=>re(e),className:`pointer-events-auto relative z-20 mt-0.5 shrink-0 rounded border border-dark-border px-1.5 py-0.5 text-badge text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,title:y(`chat.suggestionDismiss`),"aria-label":y(`chat.suggestionDismiss`),children:y(`chat.suggestionDismiss`)})]})}),(0,X.jsx)(`textarea`,{ref:P,value:x,onChange:kr,onKeyDown:Xr,onPaste:Jr,onFocus:()=>{li.current=!0,wi()},onBlur:()=>{li.current=!1,Q&&jr(),jt(),K&&Pr()},onCompositionStart:Zr,onCompositionEnd:Qr,placeholder:j?``:_&&v?v:y(_i?`chat.inputPlaceholderCollapsed`:w?`chat.generatingPlaceholder`:`chat.inputPlaceholder`),rows:1,"aria-label":`Message input`,disabled:_,className:_i?`w-full flex-1 bg-transparent px-1.5 py-1.5 text-sm text-dark-text placeholder-dark-muted/60 resize-none focus:outline-none min-h-[36px] max-h-[28vh] leading-relaxed${j?` relative z-10`:``}`:`w-full bg-transparent px-4 pt-2 pb-3 text-sm text-dark-text placeholder-dark-muted/60
11
+ resize-none focus:outline-none min-h-[72px] max-h-[40vh] leading-relaxed${j?` relative z-10`:``}`})]}),_i&&f&&(0,X.jsx)(`div`,{className:`flex min-w-0 max-w-[min(45%,12rem)] shrink items-center pb-0.5`,children:(0,X.jsx)(en,{workspaceDir:u,onSelect:f,onNewSessionInDir:m,compact:!0})}),_i&&(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5 pb-0.5`,children:[(0,X.jsx)(`button`,{type:`button`,onClick:bi,className:`flex h-8 w-8 items-center justify-center rounded-full text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,title:y(`chat.composerExpand`),"aria-label":y(`chat.composerExpand`),children:(0,X.jsx)(S,{size:15,"aria-hidden":`true`})}),(0,X.jsx)(`button`,{type:`button`,onClick:()=>void xt(),disabled:Oi,className:V(`flex h-8 w-8 items-center justify-center rounded-full text-dark-muted transition-colors`,Z.state===`recording`?`bg-accent-red/15 text-accent-red animate-pulse`:`hover:bg-dark-hover hover:text-dark-text`,`disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-transparent`),title:Di,"aria-label":Di,children:Z.state===`transcribing`?(0,X.jsx)(h,{size:15,className:`animate-spin`,"aria-hidden":`true`}):Z.state===`recording`?(0,X.jsx)(d,{size:15,"aria-hidden":`true`}):(0,X.jsx)(O,{size:15,"aria-hidden":`true`})}),Z.state===`recording`&&(0,X.jsxs)(`span`,{className:`text-badge tabular-nums text-accent-red`,"aria-hidden":`true`,children:[(Z.elapsedMs/1e3).toFixed(0),`s`]}),w&&(0,X.jsx)(`button`,{onClick:o,className:`flex h-8 w-8 items-center justify-center rounded-full bg-accent-red/80 text-accent-fg transition-all hover:opacity-85 active:scale-95`,title:y(`chat.stopGen`),"aria-label":y(`chat.stopGen`),children:(0,X.jsx)(r,{size:13,"aria-hidden":`true`})}),(0,X.jsx)(`button`,{onClick:()=>void Yr(),disabled:!Ei,className:`flex h-8 w-8 items-center justify-center rounded-full bg-dark-text text-dark-bg transition-all
12
+ hover:opacity-80 active:scale-95 disabled:opacity-25 disabled:cursor-not-allowed`,title:y(w?`chat.sendQueuedBtn`:`chat.sendBtn`),"aria-label":y(w?`chat.sendQueuedBtn`:`chat.sendBtn`),children:(0,X.jsx)(p,{size:15,"aria-hidden":`true`})})]}),!_i&&(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1.5 px-3 pb-3 lg:flex-nowrap`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 items-center gap-x-2`,children:[(0,X.jsx)(`button`,{type:`button`,onClick:yi,className:`flex h-8 w-8 items-center justify-center rounded-full text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,title:y(`chat.composerCollapse`),"aria-label":y(`chat.composerCollapse`),children:(0,X.jsx)(n,{size:15,"aria-hidden":`true`})}),(0,X.jsx)(`button`,{type:`button`,onClick:xi,"aria-pressed":ui,className:`flex h-8 w-8 items-center justify-center rounded-full transition-colors ${ui?`bg-accent-blue/15 text-accent-blue hover:bg-accent-blue/25`:`text-dark-muted hover:bg-dark-hover hover:text-dark-text`}`,title:y(ui?`chat.composerUnpin`:`chat.composerPin`),"aria-label":y(ui?`chat.composerUnpin`:`chat.composerPin`),children:(0,X.jsx)(E,{size:15,"aria-hidden":`true`})}),(0,X.jsx)(Ft,{}),(0,X.jsx)(`span`,{className:`hidden min-w-0 sm:block`,children:(0,X.jsx)(Rt,{})}),(0,X.jsx)(Ae,{}),(0,X.jsx)(Yt,{onHandoffToAi:Sn}),un.length>0&&(0,X.jsx)(`button`,{type:`button`,onClick:dr,className:V(`flex h-8 min-w-0 items-center rounded-full px-2.5 text-meta font-medium transition-colors`,or[nn]),title:y(`chat.mentionDeliveryHint`),children:(0,X.jsx)(`span`,{className:`max-w-[180px] truncate`,children:y(`chat.mentionDeliveryChip`,{titles:un.join(`、`),mode:y(ar[nn])})})})]}),(0,X.jsx)(`div`,{className:`flex-1`}),(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[_r>0&&x.length>0&&(0,X.jsxs)(`span`,{className:`text-badge tabular-nums ${Ti?`text-accent-red font-medium`:`text-dark-muted/60`}`,children:[`~`,_r,` tokens`,Ti?` · ${y(`chat.nearLimit`)}`:``]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,X.jsxs)(`div`,{ref:gt,className:`relative`,children:[(0,X.jsxs)(`button`,{onClick:()=>ht(e=>!e),disabled:Z.state!==`idle`||w,className:`flex h-8 items-center justify-center gap-0.5 rounded-full px-2 text-meta font-semibold text-dark-muted transition-colors
13
+ hover:bg-dark-hover hover:text-dark-text disabled:opacity-40 disabled:hover:bg-transparent disabled:cursor-not-allowed`,title:y(w?`stt.generatingTitle`:`stt.langToggle`),"aria-label":y(w?`stt.generatingTitle`:`stt.langToggle`),"aria-haspopup":`listbox`,"aria-expanded":mt,children:[De(rt).short,(0,X.jsx)(S,{size:11,"aria-hidden":`true`})]}),mt&&(0,X.jsxs)(`div`,{role:`listbox`,"aria-label":y(`stt.langToggle`),className:`absolute bottom-full right-0 mb-2 z-50 w-44 rounded-lg border border-dark-border bg-dark-overlay ui-surface-overlay shadow-lg py-1 max-h-72 overflow-auto custom-scrollbar`,children:[Ne.map(e=>(0,X.jsxs)(`button`,{role:`option`,"aria-selected":e.code===rt,onClick:()=>_t(e.code),className:V(`flex w-full items-center justify-between gap-2 px-3 py-1.5 text-xs transition-colors`,e.code===rt?`text-accent-blue bg-accent-blue/10`:`text-dark-text hover:bg-dark-hover`),children:[(0,X.jsx)(`span`,{className:`font-medium`,children:e.label}),(0,X.jsxs)(`span`,{className:`flex items-center gap-1.5 text-badge text-dark-muted`,children:[`Whisper`,e.code===rt&&(0,X.jsx)(N,{size:12,"aria-hidden":`true`})]})]},e.code)),(0,X.jsx)(`div`,{className:`mt-1 border-t border-dark-border px-3 pt-1.5 pb-0.5 text-badge leading-relaxed text-dark-muted/70`,children:y(`stt.multiHint`)})]})]}),(0,X.jsx)(`button`,{onClick:()=>void xt(),disabled:Oi,className:V(`flex h-8 w-8 items-center justify-center rounded-full text-dark-muted transition-colors`,Z.state===`recording`?`bg-accent-red/15 text-accent-red animate-pulse`:`hover:bg-dark-hover hover:text-dark-text`,`disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-transparent`),title:Di,"aria-label":Di,children:Z.state===`transcribing`?(0,X.jsx)(h,{size:15,className:`animate-spin`,"aria-hidden":`true`}):Z.state===`recording`?(0,X.jsx)(d,{size:15,"aria-hidden":`true`}):(0,X.jsx)(O,{size:15,"aria-hidden":`true`})}),Z.state===`recording`&&(0,X.jsxs)(`span`,{className:`text-badge tabular-nums text-accent-red`,"aria-hidden":`true`,children:[(Z.elapsedMs/1e3).toFixed(0),`s`]})]}),!w&&(0,X.jsx)(`button`,{onClick:()=>be(!0),className:`flex h-8 w-8 items-center justify-center rounded-full text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,title:y(`skills.pickTitle`),"aria-label":y(`skills.pickTitle`),children:(0,X.jsx)(ee,{size:15,"aria-hidden":`true`})}),!w&&(0,X.jsx)(`button`,{onClick:()=>void Vr(),disabled:G,className:`flex h-8 w-8 items-center justify-center rounded-full text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text disabled:opacity-40 disabled:cursor-not-allowed`,title:`${y(`fileJob.screenshot`)} (${ki}+Shift+S)`,"aria-label":`${y(`fileJob.screenshot`)} (${ki}+Shift+S)`,children:G?(0,X.jsx)(h,{size:15,className:`animate-spin`,"aria-hidden":`true`}):(0,X.jsx)(a,{size:15,"aria-hidden":`true`})}),!w&&(0,X.jsx)(`button`,{onClick:()=>void Br(),className:`flex h-8 w-8 items-center justify-center rounded-full text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,title:y(`fileJob.attach`),"aria-label":y(`fileJob.attach`),children:(0,X.jsx)(se,{size:15,"aria-hidden":`true`})}),(0,X.jsx)(`input`,{ref:me,type:`file`,multiple:!0,accept:Un,className:`hidden`,onChange:zr}),w&&!Ei?(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[k?(0,X.jsx)(`button`,{onClick:c,className:`flex h-8 w-8 items-center justify-center rounded-full bg-accent-green text-accent-fg transition-all hover:opacity-85 active:scale-95`,title:y(`chat.resumeGen`),"aria-label":y(`chat.resumeGen`),children:(0,X.jsx)(T,{size:14,"aria-hidden":`true`})}):(0,X.jsx)(`button`,{onClick:s,className:`flex h-8 w-8 items-center justify-center rounded-full bg-accent-yellow text-accent-fg transition-all hover:opacity-85 active:scale-95`,title:y(`chat.pauseGen`),"aria-label":y(`chat.pauseGen`),children:(0,X.jsx)(ae,{size:14,"aria-hidden":`true`})}),(0,X.jsx)(`button`,{onClick:o,className:`flex h-8 w-8 items-center justify-center rounded-full bg-accent-red text-accent-fg transition-all hover:opacity-85 active:scale-95`,title:y(`chat.stopGen`),"aria-label":y(`chat.stopGen`),children:(0,X.jsx)(r,{size:13,"aria-hidden":`true`})})]}):(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[w&&(0,X.jsx)(`button`,{onClick:o,className:`flex h-8 w-8 items-center justify-center rounded-full bg-accent-red/80 text-accent-fg transition-all hover:opacity-85 active:scale-95`,title:y(`chat.stopGen`),"aria-label":y(`chat.stopGen`),children:(0,X.jsx)(r,{size:13,"aria-hidden":`true`})}),(0,X.jsx)(`button`,{onClick:()=>void Yr(),disabled:!Ei,className:`flex h-8 w-8 items-center justify-center rounded-full bg-dark-text text-dark-bg transition-all
14
+ hover:opacity-80 active:scale-95 disabled:opacity-25 disabled:cursor-not-allowed`,title:y(w?`chat.sendQueuedBtn`:`chat.sendBtn`),"aria-label":y(w?`chat.sendQueuedBtn`:`chat.sendBtn`),children:(0,X.jsx)(p,{size:15,"aria-hidden":`true`})})]})]})]})]}),(0,X.jsxs)(`div`,{className:`mt-1.5 hidden select-none items-center justify-center gap-3 text-badge text-dark-muted/55 transition-opacity duration-150 sm:flex ${vi?`opacity-0`:``}`,children:[(0,X.jsx)(`span`,{children:y(`chat.shiftEnter`)}),(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,X.jsx)(`span`,{children:y(`chat.escHint`)}),(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,X.jsx)(`span`,{children:`${ki}+Shift+S ${y(`shortcuts.screenshot`)}`}),(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,X.jsx)(`span`,{children:y(`chat.bangHint`)})]}),(0,X.jsx)(bn,{open:ye,onClose:()=>be(!1),onSelect:Fr})]})});export{$t as n,Mt as r,lr as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{Cr as t,Kn as n,Kr as r,Sr as i,_ as a,nt as ee,xr as o}from"./icons-CYDRRPKW.js";import{t as s}from"./useTranslation-B-mfApCn.js";import{r as c}from"./api-plEYhRn0.js";import{n as l,r as u}from"./settingsStore-Xqln0d91.js";import{I as d}from"./markdown-N5__3T-w.js";var f=e(r(),1),p=d(),m=[`fact`,`code_change`,`user_preference`,`error_fix`,`decision`,`convention`,`goal`,`interaction`],te=6e3,h=500;function g(e){if(!Number.isFinite(e))return 50;let t=Math.floor(e);return t>=5&&t<=h?t:50}function _(e){if(!Number.isFinite(e)||e<=0)return`—`;try{return new Date(e).toLocaleString()}catch{return`—`}}function v(){let{t:e}=s(),r=g(u(e=>e.memoryPageSize)),i=u(e=>e.setMemoryPageSize),a=(0,f.useMemo)(()=>l.includes(r)?l:[...l,r].sort((e,t)=>e-t),[r]),[d,_]=(0,f.useState)([]),[v,b]=(0,f.useState)(null),[x,re]=(0,f.useState)(null),[S,C]=(0,f.useState)(!1),[w,T]=(0,f.useState)(null),[E,ie]=(0,f.useState)(`all`),[D,ae]=(0,f.useState)(`all`),[O,oe]=(0,f.useState)(`time`),[k,A]=(0,f.useState)({}),[j,M]=(0,f.useState)(null),[N,P]=(0,f.useState)([]),[F,I]=(0,f.useState)([]),[L,R]=(0,f.useState)(1),z=(0,f.useRef)(null),B=(0,f.useRef)(null),V=(0,f.useRef)(null),[H,U]=(0,f.useState)(null),W=(0,f.useCallback)(e=>{R(e),V.current&&(V.current.scrollTop=0)},[]),G=(0,f.useCallback)(async()=>{C(!0),T(null);let[t,n]=await Promise.all([c.get(`/api/memory/status`),c.get(`/api/memory/list?limit=${h}`)]);t.success&&t.data?b(t.data):T(t.error??e(`memory.loadFailed`)),n.success&&n.data?(_(n.data.items??[]),re(n.data.stats??null),A(n.data.usage??{}),M(n.data.usageSummary??null),P([]),n.data.warnings?.length&&T(e(`memory.partialRead`,{reason:n.data.warnings[0]}))):T(n.error??e(`memory.loadFailed`)),C(!1)},[e]);(0,f.useEffect)(()=>{G()},[G]);let K=(0,f.useCallback)(async t=>{z.current!==null&&(window.clearTimeout(z.current),z.current=null),B.current=null,U(null);let n=await c.post(`/api/memory/delete`,{id:t});if(n.success&&n.data?.deleted===!0){T(e(`memory.deleted`));return}let r=n.success?n.data?.reason??e(`memory.deleteUnavailable`):n.error??``;P(e=>e.filter(e=>e!==t)),T(e(`memory.deleteFailed`,{reason:r}))},[e]),q=(0,f.useCallback)(e=>{B.current&&K(B.current.id),P(t=>t.includes(e.id)?t:[...t,e.id]);let t={id:e.id,content:e.content};B.current=t,U(t),z.current=window.setTimeout(()=>{K(e.id)},te)},[K]),se=(0,f.useCallback)(()=>{let t=B.current;t&&(z.current!==null&&(window.clearTimeout(z.current),z.current=null),B.current=null,U(null),P(e=>e.filter(e=>e!==t.id)),T(e(`memory.undoDone`)))},[e]);(0,f.useEffect)(()=>()=>{z.current!==null&&window.clearTimeout(z.current);let e=B.current;e&&c.post(`/api/memory/delete`,{id:e.id})},[]);let J=(0,f.useMemo)(()=>{let e=new Set(N);return d.filter(t=>!(e.has(t.id)||E!==`all`&&t.scope!==E||D!==`all`&&t.type!==D))},[d,N,E,D]),Y=(0,f.useMemo)(()=>{let e=new Map;for(let t of J){let n=t.subject?`s:${t.subject}|${t.layer??`fact`}`:`i:${t.id}`,r=e.get(n);r?r.push(t):e.set(n,[t])}let t=[];for(let[n,r]of e){let[e,...i]=[...r].sort((e,t)=>t.timestamp-e.timestamp);e&&t.push({key:n,head:e,rest:i})}return t.sort((e,t)=>{if(O===`usage`){let n=(k[t.head.id]?.count??0)-(k[e.head.id]?.count??0);if(n!==0)return n}return t.head.timestamp-e.head.timestamp})},[J,O,k]),X=Math.max(1,Math.ceil(Y.length/r)),Z=Math.min(L,X),ce=(0,f.useMemo)(()=>Y.slice((Z-1)*r,Z*r),[Y,Z,r]),le=e=>{I(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},Q=v!=null&&!v.tombstones,$=(0,f.useMemo)(()=>{let e=new Set(d.map(e=>e.scope));return[`global`,`workspace`].filter(t=>e.has(t))},[d]);return(0,p.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,p.jsxs)(`div`,{className:`flex h-12 shrink-0 items-center gap-3 border-b border-dark-border px-4`,children:[(0,p.jsx)(n,{size:16,className:`shrink-0 text-dark-muted`,"aria-hidden":`true`}),(0,p.jsx)(`span`,{className:`truncate text-sm font-medium text-dark-text`,children:e(`memory.title`)}),v?.workspaceHash?(0,p.jsx)(`span`,{className:`truncate text-meta text-dark-muted opacity-60`,children:v.workspaceHash}):null,(0,p.jsx)(`span`,{className:`ms-auto truncate text-meta text-dark-muted`,children:e(`memory.recallElsewhere`)})]}),v&&!v.active?(0,p.jsxs)(`div`,{className:`mx-4 mt-3 rounded border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-xs text-amber-200`,children:[(0,p.jsx)(`div`,{className:`font-medium`,children:e(`memory.disabled`)}),(0,p.jsx)(`div`,{className:`mt-1 text-amber-200/80`,children:v.reason??e(`memory.disabledHint`)}),(0,p.jsxs)(`div`,{className:`mt-1 text-amber-200/60`,children:[e(`memory.backendLabel`),`: `,v.backend,v.cause?` · ${v.cause}`:``]})]}):null,(0,p.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2 border-b border-dark-border px-4 py-2`,children:[(0,p.jsxs)(`label`,{className:`flex items-center gap-1 text-xs text-dark-muted`,children:[e(`memory.filterScope`),(0,p.jsxs)(`select`,{value:E,onChange:e=>{ie(e.target.value),W(1)},className:`rounded border border-dark-border bg-dark-surface px-1.5 py-1 text-xs text-dark-text`,children:[(0,p.jsx)(`option`,{value:`all`,children:e(`memory.all`)}),($.length>0?$:[`global`,`workspace`]).map(t=>(0,p.jsx)(`option`,{value:t,children:e(t===`global`?`memory.scopeGlobal`:`memory.scopeWorkspace`)},t))]})]}),(0,p.jsxs)(`label`,{className:`flex items-center gap-1 text-xs text-dark-muted`,children:[e(`memory.filterCategory`),(0,p.jsxs)(`select`,{value:D,onChange:e=>{ae(e.target.value),W(1)},className:`rounded border border-dark-border bg-dark-surface px-1.5 py-1 text-xs text-dark-text`,children:[(0,p.jsx)(`option`,{value:`all`,children:e(`memory.all`)}),m.map(t=>(0,p.jsx)(`option`,{value:t,children:e(`memory.category.${t}`)},t))]})]}),(0,p.jsxs)(`label`,{className:`flex items-center gap-1 text-xs text-dark-muted`,children:[e(`memory.sortBy`),(0,p.jsxs)(`select`,{value:O,onChange:e=>{oe(e.target.value),W(1)},className:`rounded border border-dark-border bg-dark-surface px-1.5 py-1 text-xs text-dark-text`,children:[(0,p.jsx)(`option`,{value:`time`,children:e(`memory.sortTime`)}),(0,p.jsx)(`option`,{value:`usage`,children:e(`memory.sortUsage`)})]})]}),(0,p.jsxs)(`label`,{className:`flex items-center gap-1 text-xs text-dark-muted`,children:[e(`memory.pageSize`),(0,p.jsx)(`select`,{"data-testid":`memory-page-size`,value:r,onChange:e=>{i(Number(e.target.value)),W(1)},className:`rounded border border-dark-border bg-dark-surface px-1.5 py-1 text-xs text-dark-text`,children:a.map(t=>(0,p.jsx)(`option`,{value:t,children:e(`memory.pageSizeOption`,{count:t})},t))})]}),(0,p.jsxs)(`span`,{className:`text-xs text-dark-muted`,children:[e(`memory.count`,{count:J.length}),x?` · ${e(`memory.totalCount`,{count:x.totalItems})}`:``,x?.truncated?` (${e(`memory.truncated`)})`:``]}),j?(0,p.jsx)(`span`,{className:`text-meta text-dark-muted opacity-70`,title:j.ledgerPath??void 0,children:j.enabled?e(`memory.usageSummary`,{events:j.totalEvents,ids:j.distinctIds}):e(`memory.usageOff`)}):null,(0,p.jsxs)(`button`,{type:`button`,onClick:()=>void G(),disabled:S,className:`ms-auto flex items-center gap-1 rounded px-2 py-1 text-xs text-dark-muted hover:bg-dark-hover hover:text-dark-text disabled:opacity-50`,children:[(0,p.jsx)(ee,{size:13,className:S?`animate-spin`:void 0,"aria-hidden":`true`}),e(`memory.refresh`)]})]}),Q?(0,p.jsxs)(`div`,{className:`mx-4 mt-2 rounded border border-dark-border bg-dark-surface px-3 py-2 text-xs text-dark-muted`,children:[(0,p.jsx)(`span`,{className:`text-dark-text`,children:e(`memory.localDeleteOff`)}),(0,p.jsx)(`span`,{className:`ms-1`,children:e(`memory.localDeleteOffHint`)})]}):null,w?(0,p.jsx)(`div`,{className:`mx-4 mt-2 rounded border border-dark-border bg-dark-surface px-3 py-2 text-xs text-dark-text`,children:w}):null,(0,p.jsx)(`div`,{ref:V,className:`flex-1 overflow-y-auto px-4 py-3`,children:S&&d.length===0?(0,p.jsx)(`div`,{className:`text-xs text-dark-muted`,children:e(`memory.loading`)}):Y.length===0?(0,p.jsxs)(`div`,{className:`text-xs text-dark-muted`,children:[(0,p.jsx)(`div`,{children:e(`memory.empty`)}),(0,p.jsx)(`div`,{className:`mt-1 text-dark-muted/70`,children:e(`memory.emptyHint`)})]}):(0,p.jsx)(`ul`,{className:`space-y-2`,children:ce.map(({key:n,head:r,rest:i})=>{let a=F.includes(n);return(0,p.jsxs)(`li`,{className:`rounded border border-dark-border bg-dark-surface p-3`,children:[(0,p.jsx)(y,{item:r,usage:k[r.id],onDelete:Q?void 0:q,muted:!1}),i.length>0?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`button`,{type:`button`,onClick:()=>le(n),className:`mt-2 flex items-center gap-1 text-xs text-dark-muted hover:text-dark-text`,children:[a?(0,p.jsx)(t,{size:12,"aria-hidden":`true`}):(0,p.jsx)(o,{size:12,"aria-hidden":`true`}),e(`memory.collapsed`,{count:i.length})]}),a?(0,p.jsx)(`ul`,{className:`mt-2 space-y-2 border-s border-dark-border ps-3`,children:i.map(e=>(0,p.jsx)(`li`,{children:(0,p.jsx)(y,{item:e,usage:k[e.id],onDelete:Q?void 0:q,muted:!0})},e.id))}):null]}):null]},n)})})}),X>1?(0,p.jsx)(ne,{page:Z,pageCount:X,onChange:W}):null,H?(0,p.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-3 border-t border-dark-border bg-dark-surface px-4 py-2`,children:[(0,p.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-dark-muted`,children:[e(`memory.pendingDelete`),`: `,H.content]}),(0,p.jsx)(`button`,{type:`button`,onClick:se,className:`shrink-0 rounded border border-dark-border px-2 py-1 text-xs text-dark-text hover:bg-dark-hover`,children:e(`memory.undo`)})]}):null]})}function y({item:e,usage:t,onDelete:n,muted:r}){let{t:i}=s();return(0,p.jsxs)(`div`,{className:r?`opacity-60`:void 0,children:[(0,p.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,p.jsx)(`p`,{className:`min-w-0 flex-1 whitespace-pre-wrap break-words text-sm text-dark-text`,children:e.content}),n?(0,p.jsx)(`button`,{type:`button`,onClick:()=>n(e),title:i(`memory.delete`),"aria-label":i(`memory.delete`),className:`shrink-0 rounded p-1 text-dark-muted hover:bg-dark-hover hover:text-red-400`,children:(0,p.jsx)(a,{size:13,"aria-hidden":`true`})}):null]}),(0,p.jsxs)(`div`,{className:`mt-1.5 flex flex-wrap items-center gap-x-2 gap-y-1 text-meta text-dark-muted`,children:[(0,p.jsx)(`span`,{className:`rounded bg-dark-hover px-1.5 py-0.5`,children:i(e.scope===`global`?`memory.scopeGlobal`:e.scope===`session`?`memory.scopeSession`:`memory.scopeWorkspace`)}),(0,p.jsx)(`span`,{className:`rounded bg-dark-hover px-1.5 py-0.5`,children:i(`memory.category.${e.type}`,{defaultValue:e.type})}),e.layer===`experience`?(0,p.jsxs)(`span`,{className:`rounded bg-dark-hover px-1.5 py-0.5 text-amber-300/90`,children:[i(`memory.layerExperience`),e.boundaryEnvs?.length?`: ${e.boundaryEnvs.join(`, `)}`:``]}):null,e.subject?(0,p.jsxs)(`span`,{className:`rounded bg-dark-hover px-1.5 py-0.5`,children:[`#`,e.subject]}):null,(0,p.jsx)(`span`,{children:i(`memory.confidenceShort`,{value:Math.round((e.confidence??0)*100)})}),(0,p.jsx)(`span`,{className:t?.count?`text-emerald-300/90`:`opacity-70`,children:t?.count?i(`memory.usageUsed`,{count:t.count}):i(`memory.usageNever`)}),t?.lastUsedAt?(0,p.jsx)(`span`,{className:`opacity-70`,children:i(`memory.usageLastAt`,{time:_(t.lastUsedAt)})}):null,(0,p.jsx)(`span`,{children:_(e.timestamp)}),e.id?(0,p.jsx)(`span`,{className:`truncate opacity-60`,children:e.id}):null]})]})}function b(e,t){if(t<=7)return Array.from({length:t},(e,t)=>t+1);let n=[1],r=Math.max(2,e-1),i=Math.min(t-1,e+1);r>2&&n.push(null);for(let e=r;e<=i;e+=1)n.push(e);return i<t-1&&n.push(null),n.push(t),n}function ne({page:e,pageCount:t,onChange:n}){let{t:r}=s(),a=`rounded border border-dark-border p-1 text-dark-muted hover:bg-dark-hover hover:text-dark-text disabled:cursor-not-allowed disabled:opacity-40`;return(0,p.jsxs)(`div`,{"data-testid":`memory-pager`,className:`flex shrink-0 items-center justify-end gap-1 border-t border-dark-border px-4 py-2`,children:[(0,p.jsx)(`button`,{type:`button`,onClick:()=>n(e-1),disabled:e<=1,"aria-label":r(`common.prevPage`),className:a,children:(0,p.jsx)(i,{size:13,"aria-hidden":`true`})}),b(e,t).map((t,r)=>t===null?(0,p.jsx)(`span`,{className:`px-1 text-xs text-dark-muted opacity-60`,children:`…`},`gap-${r}`):(0,p.jsx)(`button`,{type:`button`,"data-testid":`memory-page-${t}`,onClick:()=>n(t),"aria-current":t===e?`page`:void 0,className:t===e?`min-w-[1.75rem] rounded border border-accent-blue/60 bg-accent-blue/15 px-1.5 py-1 text-xs text-dark-text`:`min-w-[1.75rem] rounded border border-dark-border px-1.5 py-1 text-xs text-dark-muted hover:bg-dark-hover hover:text-dark-text`,children:t},t)),(0,p.jsx)(`button`,{type:`button`,onClick:()=>n(e+1),disabled:e>=t,"aria-label":r(`common.nextPage`),className:a,children:(0,p.jsx)(o,{size:13,"aria-hidden":`true`})})]})}export{v as MemoryView};
@@ -0,0 +1 @@
1
+ @font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2)format("woff2")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2)format("woff2")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,math,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.19.0"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{white-space:nowrap;width:min-content;position:relative}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .katex-vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .katex-thinbox{flex-direction:row;width:0;max-width:0;display:inline-flex}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.katex-root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .katex-stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .reflectbox{display:inline-block;transform:scaleX(-1)}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}