@openav/cli 1.0.40 → 1.0.41

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 (597) hide show
  1. package/README.md +621 -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-dhdYVIy0.js +1 -0
  8. package/web/dist/assets/AutomationView-D1dU5ZV7.js +1 -0
  9. package/web/dist/assets/ChannelConfigView-CEPVZntU.js +8 -0
  10. package/web/dist/assets/ChartsView-DdN-beHW.js +1 -0
  11. package/web/dist/assets/ConnectorsView-CseCss9C.js +1 -0
  12. package/web/dist/assets/FileTreeView-Dnc3-gRF.js +1 -0
  13. package/web/dist/assets/HookConfigView-DA2h4HdJ.js +1 -0
  14. package/web/dist/assets/InputArea-DAgOOjOc.js +14 -0
  15. package/web/dist/assets/MemoryView-D6OUBi4-.js +1 -0
  16. package/web/dist/assets/MessageBubble-CCTRbIMZ.css +1 -0
  17. package/web/dist/assets/MessageBubble-CV16DZMG.js +453 -0
  18. package/web/dist/assets/ModelsView-BuqD9vWl.js +1 -0
  19. package/web/dist/assets/PluginsView-CIziDHFJ.js +2 -0
  20. package/web/dist/assets/ProjectsView-c6faWy32.js +1 -0
  21. package/web/dist/assets/SessionGrid-BZJHcklh.js +4 -0
  22. package/web/dist/assets/SessionGrid-Bk5CAXEn.css +1 -0
  23. package/web/dist/assets/SettingsModal-BqdGEGW-.js +4 -0
  24. package/web/dist/assets/SkillsView-CB6CKkmb.js +1 -0
  25. package/web/dist/assets/TemplatesTab-B8efVwVZ.js +1 -0
  26. package/web/dist/assets/ThreadsView-CDoM0aNb.js +2 -0
  27. package/web/dist/assets/ToolsView-BG-xsWsO.js +1 -0
  28. package/web/dist/assets/abnfDiagram-WEYOIA3C-DGUPHfRO.js +1 -0
  29. package/web/dist/assets/agentIconSet-Btsb_SC4.js +1 -0
  30. package/web/dist/assets/api-CCt9DRQm.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/cn-rx4uumOJ.js +1 -0
  64. package/web/dist/assets/common-BHXgEvgk.js +192 -0
  65. package/web/dist/assets/cose-bilkent-JH36ORCC-DHFtpmij.js +1 -0
  66. package/web/dist/assets/cynefin-EF2NZ3EQ-1rI2T0cc.js +1 -0
  67. package/web/dist/assets/cynefinDiagram-WF24UDRP-C8O_v8xU.js +62 -0
  68. package/web/dist/assets/cytoscape.esm-BY277UBX.js +321 -0
  69. package/web/dist/assets/dagre-NK4GIZVX-BWGoHIUd.js +4 -0
  70. package/web/dist/assets/defaultLocale-BFoDCU3G.js +1 -0
  71. package/web/dist/assets/diagram-CBK3MWTC-kf9v35RN.js +24 -0
  72. package/web/dist/assets/diagram-I5XIIV2D-Ro-ig56_.js +24 -0
  73. package/web/dist/assets/diagram-ODIL2UCW-CtGga01G.js +30 -0
  74. package/web/dist/assets/diagram-PFBEJUXE-C14lcR-6.js +3 -0
  75. package/web/dist/assets/diagram-RJA3I4VV-BBbqaSKU.js +41 -0
  76. package/web/dist/assets/diagram-TYUNFSNR-BynvjQsr.js +200 -0
  77. package/web/dist/assets/dist-CumnGVmJ.js +1 -0
  78. package/web/dist/assets/ebnfDiagram-V4P3TTPT-BdqUCZnk.js +1 -0
  79. package/web/dist/assets/elk-QONTBCTQ-CYCP_9Jy.js +27 -0
  80. package/web/dist/assets/erDiagram-KYQIGQAA-C3L55l_F.js +99 -0
  81. package/web/dist/assets/eventmodeling-K75KTNOO-CTQdA_1v.js +1 -0
  82. package/web/dist/assets/flowDiagram-IUGLLWBU-COLKOzBg.js +1 -0
  83. package/web/dist/assets/ganttDiagram-R7GPNTJY-Be4Qk8Hx.js +292 -0
  84. package/web/dist/assets/gitGraph-VSP46ZUC-B59HXvj1.js +1 -0
  85. package/web/dist/assets/gitGraphDiagram-PDYL7XHY-C2A0VA6q.js +106 -0
  86. package/web/dist/assets/graphlib-DS17s2tU.js +1 -0
  87. package/web/dist/assets/icons-BvYhTENi.js +1 -0
  88. package/web/dist/assets/index-BNI6CNsY.css +1 -0
  89. package/web/dist/assets/index-BX-d2OBW.js +130 -0
  90. package/web/dist/assets/info-OHQRW6UA-DWlkKvmi.js +1 -0
  91. package/web/dist/assets/infoDiagram-MVDRKAX5-B8e6dTjN.js +2 -0
  92. package/web/dist/assets/init-C-OQMol4.js +1 -0
  93. package/web/dist/assets/ishikawaDiagram-HPEHV2GE-udXPYi9H.js +70 -0
  94. package/web/dist/assets/journeyDiagram-BOSHW7O7-DTyDkf5d.js +139 -0
  95. package/web/dist/assets/kanban-definition-FNSA4HC5-BXgV20qe.js +89 -0
  96. package/web/dist/assets/katex-B940_AAO.js +257 -0
  97. package/web/dist/assets/line-DVabuQAu.js +1 -0
  98. package/web/dist/assets/linear-gLkGxN9m.js +1 -0
  99. package/web/dist/assets/markdown-DAQZeY5V.js +14 -0
  100. package/web/dist/assets/mermaid-parser.core-BrXnuEs7.js +7 -0
  101. package/web/dist/assets/mermaid.core-BGbz3k1k.js +44 -0
  102. package/web/dist/assets/mindmap-definition-6OY57UG3-DbtP-bmk.js +98 -0
  103. package/web/dist/assets/ordinal-BDEzSJ7C.js +1 -0
  104. package/web/dist/assets/packet-JDAUHWVQ-iW8w3JF5.js +1 -0
  105. package/web/dist/assets/panels-DYiQiVWh.js +1 -0
  106. package/web/dist/assets/path-fybaL0A-.js +1 -0
  107. package/web/dist/assets/pegDiagram-ECIUJNBX-rBWJbaq4.js +1 -0
  108. package/web/dist/assets/pie-XZMESJXO-KHXEq-Yx.js +1 -0
  109. package/web/dist/assets/pieDiagram-GNMPY74T-DsW7yHm0.js +39 -0
  110. package/web/dist/assets/preload-helper-BLdHbfdN.js +1 -0
  111. package/web/dist/assets/profileChange-xrd7jkii.js +1 -0
  112. package/web/dist/assets/quadrantDiagram-D57K4MC3-DF_pwNhM.js +7 -0
  113. package/web/dist/assets/radar-ABXABTNO-BkAUJ_Zd.js +1 -0
  114. package/web/dist/assets/railroad-I3PHUGI6-BdnWRdGt.js +1 -0
  115. package/web/dist/assets/railroad-abnf-LNEFI6M7-C8K36-8b.js +1 -0
  116. package/web/dist/assets/railroad-ebnf-DWYD2UWJ-BlS25T3f.js +1 -0
  117. package/web/dist/assets/railroad-peg-JR7BVNR7-CBKGDi75.js +1 -0
  118. package/web/dist/assets/railroadDiagram-Y72NRBL7-DmrlMIvv.js +1 -0
  119. package/web/dist/assets/react-vendor-BlngCquv.js +19 -0
  120. package/web/dist/assets/requirementDiagram-EQYSW5RA-cvUq9H3I.js +84 -0
  121. package/web/dist/assets/rolldown-runtime-COiEfhsA.js +1 -0
  122. package/web/dist/assets/rough.esm-Dy-Kn_BL.js +1 -0
  123. package/web/dist/assets/sankeyDiagram-SY24JHO5-BdxXAbER.js +40 -0
  124. package/web/dist/assets/sequenceDiagram-BLEHNHQU-Druumi0k.js +169 -0
  125. package/web/dist/assets/settingsStore-RLUAWgIk.js +1 -0
  126. package/web/dist/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
  127. package/web/dist/assets/src-49LUQhkG.js +1 -0
  128. package/web/dist/assets/src-BWF7jMDv.js +1 -0
  129. package/web/dist/assets/state-_ZfNVAsd.js +1 -0
  130. package/web/dist/assets/stateDiagram-v2-A6IESKWZ-Jgh6qlrr.js +291 -0
  131. package/web/dist/assets/sttLanguages-aqoVC79g.js +2 -0
  132. package/web/dist/assets/swimlanes-B3ENRKFQ-4xKumvXQ.js +1 -0
  133. package/web/dist/assets/swimlanesDiagram-AYQRV4AK-bHcLKL3d.js +8 -0
  134. package/web/dist/assets/timeline-definition-JXYKGLGB-BYKhga9x.js +120 -0
  135. package/web/dist/assets/treeView-D4JQ5SDB-6-eTVUuH.js +1 -0
  136. package/web/dist/assets/treemap-SAJKECNS-Dxl8yCLE.js +1 -0
  137. package/web/dist/assets/ttsSettings-DHo3OsOq.js +15 -0
  138. package/web/dist/assets/types-JssxRFJn.js +1 -0
  139. package/web/dist/assets/useTranslation-BGmCDuQI.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-C9e3h7VU.js +1 -0
  145. package/web/dist/assets/whatsNewStore-Bf_7lW8o.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/assets/AssistantsView-BiUiWjhF.js +0 -1
  158. package/web/dist/assets/AutomationView-Dcf_yNaI.js +0 -1
  159. package/web/dist/assets/ChannelConfigView-BLnxsMGm.js +0 -8
  160. package/web/dist/assets/ConnectorsView-CX3E6X6c.js +0 -1
  161. package/web/dist/assets/DesignSystemView--x-P-lpD.js +0 -1
  162. package/web/dist/assets/Drawer-CjAgqH3B.js +0 -1
  163. package/web/dist/assets/FileTreeView-Chb_fzTK.js +0 -11
  164. package/web/dist/assets/HookConfigView-EafYlWdN.js +0 -1
  165. package/web/dist/assets/InputArea-BbHslX7b.js +0 -50
  166. package/web/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  167. package/web/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  168. package/web/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  169. package/web/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  170. package/web/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  171. package/web/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  172. package/web/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  173. package/web/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  174. package/web/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  175. package/web/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  176. package/web/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  177. package/web/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  178. package/web/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  179. package/web/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  180. package/web/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  181. package/web/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  182. package/web/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  183. package/web/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  184. package/web/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  185. package/web/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  186. package/web/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  187. package/web/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  188. package/web/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  189. package/web/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  190. package/web/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  191. package/web/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  192. package/web/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  193. package/web/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  194. package/web/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  195. package/web/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  196. package/web/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  197. package/web/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  198. package/web/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  199. package/web/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  200. package/web/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  201. package/web/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  202. package/web/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  203. package/web/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  204. package/web/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  205. package/web/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  206. package/web/dist/assets/ModelsView-CGN5Nljr.js +0 -1
  207. package/web/dist/assets/PluginsView-CDiJgvI8.js +0 -2
  208. package/web/dist/assets/ProjectsView-C5Usmwqy.js +0 -1
  209. package/web/dist/assets/SessionGrid-BGpz0-op.css +0 -1
  210. package/web/dist/assets/SessionGrid-Drxg0r_u.js +0 -4
  211. package/web/dist/assets/SettingsModal-Cmts6aBG.js +0 -10
  212. package/web/dist/assets/Skeleton-Dsk6B0U3.js +0 -1
  213. package/web/dist/assets/SkillsView-TEDR_3XX.js +0 -1
  214. package/web/dist/assets/TemplatesTab-DtN5Kdgh.js +0 -1
  215. package/web/dist/assets/ToolsView-VukZnIt1.js +0 -1
  216. package/web/dist/assets/VizCardsSkeleton-C_GaEfXd.js +0 -1
  217. package/web/dist/assets/abap-BdImnpbu.js +0 -1
  218. package/web/dist/assets/abnfDiagram-YUKMZFIV-BIFw6B_N.js +0 -1
  219. package/web/dist/assets/actionscript-3-B3316cI-.js +0 -1
  220. package/web/dist/assets/ada-bCR0ucgS.js +0 -1
  221. package/web/dist/assets/ahk-CsyLZFj1.js +0 -1
  222. package/web/dist/assets/ahk2-8Zs4aa1G.js +0 -1
  223. package/web/dist/assets/andromeeda-C4gqWexZ.js +0 -1
  224. package/web/dist/assets/angular-html-DA-rfuFy.js +0 -1
  225. package/web/dist/assets/angular-ts-BrjP3tb8.js +0 -1
  226. package/web/dist/assets/apache-Pmp26Uib.js +0 -1
  227. package/web/dist/assets/apex-DhZFqWV2.js +0 -1
  228. package/web/dist/assets/apl-CORt7UWP.js +0 -1
  229. package/web/dist/assets/applescript-Co6uUVPk.js +0 -1
  230. package/web/dist/assets/ara-BRHolxvo.js +0 -1
  231. package/web/dist/assets/arc-BZQ951h9.js +0 -1
  232. package/web/dist/assets/architectureDiagram-47P4ROYG-BP5qiXzf.js +0 -36
  233. package/web/dist/assets/asciidoc-CSVQ5wI8.js +0 -1
  234. package/web/dist/assets/asm-D_Q5rh1f.js +0 -1
  235. package/web/dist/assets/astro-HNnZUWAn.js +0 -1
  236. package/web/dist/assets/aurora-x-D-2ljcwZ.js +0 -1
  237. package/web/dist/assets/awk-DMzUqQB5.js +0 -1
  238. package/web/dist/assets/ayu-dark-DYE7WIF3.js +0 -1
  239. package/web/dist/assets/ayu-light-BA47KaF1.js +0 -1
  240. package/web/dist/assets/ayu-mirage-32ctXXKs.js +0 -1
  241. package/web/dist/assets/ballerina-BFfxhgS-.js +0 -1
  242. package/web/dist/assets/bat-CickPsom.js +0 -1
  243. package/web/dist/assets/beancount-k_qm7-4y.js +0 -1
  244. package/web/dist/assets/berry-uYugtg8r.js +0 -1
  245. package/web/dist/assets/bibtex-CHM0blh-.js +0 -1
  246. package/web/dist/assets/bicep-Bmn6On1c.js +0 -1
  247. package/web/dist/assets/bird2-Bx8U0n9b.js +0 -1
  248. package/web/dist/assets/blade-2xfisSek.js +0 -1
  249. package/web/dist/assets/blockDiagram-E7TT5TSB-DtRpcE7F.js +0 -140
  250. package/web/dist/assets/bsl-DlhNcFeZ.js +0 -1
  251. package/web/dist/assets/c-BIGW1oBm.js +0 -1
  252. package/web/dist/assets/c3-Dp5svz6Z.js +0 -1
  253. package/web/dist/assets/c4Diagram-CRA5TL53-Gdzn8UBh.js +0 -38
  254. package/web/dist/assets/cadence-Bv_4Rxtq.js +0 -1
  255. package/web/dist/assets/cairo-KRGpt6FW.js +0 -1
  256. package/web/dist/assets/catppuccin-frappe-CZL1YF0i.js +0 -1
  257. package/web/dist/assets/catppuccin-latte-DH-8KZSZ.js +0 -1
  258. package/web/dist/assets/catppuccin-macchiato-B7yYVSCf.js +0 -1
  259. package/web/dist/assets/catppuccin-mocha-Ct7hS0mc.js +0 -1
  260. package/web/dist/assets/channel-BND6_KSH.js +0 -1
  261. package/web/dist/assets/chapel-DTp_pixX.js +0 -1
  262. package/web/dist/assets/chunk-2Q5K7J3B-3U6HMlsm.js +0 -1
  263. package/web/dist/assets/chunk-7TKQ45FW-Dn6ktcY5.js +0 -1
  264. package/web/dist/assets/chunk-AW2ZBBNX-De0QX6p1.js +0 -88
  265. package/web/dist/assets/chunk-FVRAUYC3-CpXDfvz4.js +0 -2
  266. package/web/dist/assets/chunk-HTAEGDNF-D1KDvcDd.js +0 -1
  267. package/web/dist/assets/chunk-JWPE2WC7-umm4A-fq.js +0 -1
  268. package/web/dist/assets/chunk-KQW6MTUR-JYH94hpE.js +0 -1
  269. package/web/dist/assets/chunk-XXDRQBXY-CSlCFByc.js +0 -1
  270. package/web/dist/assets/clarity-Dn5IMItf.js +0 -1
  271. package/web/dist/assets/classDiagram-v2-K4WV4PDN-DnFwS0qN.js +0 -217
  272. package/web/dist/assets/clojure-P80f7IUj.js +0 -1
  273. package/web/dist/assets/cmake-D1j8_8rp.js +0 -1
  274. package/web/dist/assets/cobol-nBiQ_Alo.js +0 -1
  275. package/web/dist/assets/codeowners-Bp6g37R7.js +0 -1
  276. package/web/dist/assets/codeql-DsOJ9woJ.js +0 -1
  277. package/web/dist/assets/coffee-Ch7k5sss.js +0 -1
  278. package/web/dist/assets/common-lisp-Cg-RD9OK.js +0 -1
  279. package/web/dist/assets/coq-C7JzOVbR.js +0 -1
  280. package/web/dist/assets/cose-bilkent-JH36ORCC-BxUTUyep.js +0 -1
  281. package/web/dist/assets/cpp-BMRokrvK.js +0 -1
  282. package/web/dist/assets/crystal-DGywbUpC.js +0 -1
  283. package/web/dist/assets/csharp-DSvCPggb.js +0 -1
  284. package/web/dist/assets/css-CLj8gQPS.js +0 -1
  285. package/web/dist/assets/csv-fuZLfV_i.js +0 -1
  286. package/web/dist/assets/cue-D82EKSYY.js +0 -1
  287. package/web/dist/assets/cynefin-EF2NZ3EQ-CiMvulJr.js +0 -141
  288. package/web/dist/assets/cynefinDiagram-3GCD6N5R-DuXFORdW.js +0 -62
  289. package/web/dist/assets/cypher-COkxafJQ.js +0 -1
  290. package/web/dist/assets/cytoscape.esm-Ix0LnXOy.js +0 -331
  291. package/web/dist/assets/d-85-TOEBH.js +0 -1
  292. package/web/dist/assets/dagre-W4DXFKR2-DzMZHXci.js +0 -4
  293. package/web/dist/assets/dark-plus-C3mMm8J8.js +0 -1
  294. package/web/dist/assets/dart-bE4Kk8sk.js +0 -1
  295. package/web/dist/assets/dax-CEL-wOlO.js +0 -1
  296. package/web/dist/assets/defaultLocale-DX6XiGOO.js +0 -1
  297. package/web/dist/assets/desktop-BmXAJ9_W.js +0 -1
  298. package/web/dist/assets/diagram-2UJZ2QOL-B6tO5G1v.js +0 -200
  299. package/web/dist/assets/diagram-OVF4WLC6-DRZt8tGc.js +0 -24
  300. package/web/dist/assets/diagram-PFPMY2P6-DGh6IecR.js +0 -30
  301. package/web/dist/assets/diagram-UMYRVEAY-BLbnt0yT.js +0 -24
  302. package/web/dist/assets/diagram-YEKJPTXX-C-S5DVhj.js +0 -41
  303. package/web/dist/assets/diagram-ZIFT7M5P-JrGHTWbo.js +0 -3
  304. package/web/dist/assets/diff-D97Zzqfu.js +0 -1
  305. package/web/dist/assets/docker-BcOcwvcX.js +0 -1
  306. package/web/dist/assets/dotenv-Da5cRb03.js +0 -1
  307. package/web/dist/assets/dracula-BzJJZx-M.js +0 -1
  308. package/web/dist/assets/dracula-soft-BXkSAIEj.js +0 -1
  309. package/web/dist/assets/dream-maker-BtqSS_iP.js +0 -1
  310. package/web/dist/assets/ebnfDiagram-VR2GEFS7-DPXA-YOi.js +0 -1
  311. package/web/dist/assets/edge-FbVlp4U3.js +0 -1
  312. package/web/dist/assets/elixir-CkH2-t6x.js +0 -1
  313. package/web/dist/assets/elk-IJKZMXRS-CINeWt2W.js +0 -27
  314. package/web/dist/assets/elm-DbKCFpqz.js +0 -1
  315. package/web/dist/assets/emacs-lisp-C_m_b--Z.js +0 -1
  316. package/web/dist/assets/erDiagram-O2IAPWRE-PPaHmqA1.js +0 -99
  317. package/web/dist/assets/erb-DXfck5VN.js +0 -1
  318. package/web/dist/assets/erlang-DsQrWhSR.js +0 -1
  319. package/web/dist/assets/everforest-dark-BgDCqdQA.js +0 -1
  320. package/web/dist/assets/everforest-light-C8M2exoo.js +0 -1
  321. package/web/dist/assets/fennel-BYunw83y.js +0 -1
  322. package/web/dist/assets/fish-BvzEVeQv.js +0 -1
  323. package/web/dist/assets/flowDiagram-OXPTDLAJ-t-u0QXEA.js +0 -213
  324. package/web/dist/assets/fluent-C4IJs8-o.js +0 -1
  325. package/web/dist/assets/fortran-fixed-form-CkoXwp7k.js +0 -1
  326. package/web/dist/assets/fortran-free-form-BxgE0vQu.js +0 -1
  327. package/web/dist/assets/fsharp-CXgrBDvD.js +0 -1
  328. package/web/dist/assets/ganttDiagram-R7TSEDQI-Bw49ZD_b.js +0 -292
  329. package/web/dist/assets/gdresource-TyuKm33G.js +0 -1
  330. package/web/dist/assets/gdscript-DqcFQ5yU.js +0 -1
  331. package/web/dist/assets/gdshader-DkwncUOv.js +0 -1
  332. package/web/dist/assets/genie-D0YGMca9.js +0 -1
  333. package/web/dist/assets/gherkin-DyxjwDmM.js +0 -1
  334. package/web/dist/assets/git-commit-F4YmCXRG.js +0 -1
  335. package/web/dist/assets/git-rebase-r7XF79zn.js +0 -1
  336. package/web/dist/assets/gitGraphDiagram-XJZIOB7I-BAfOqeeg.js +0 -106
  337. package/web/dist/assets/github-dark-DHJKELXO.js +0 -1
  338. package/web/dist/assets/github-dark-default-Cuk6v7N8.js +0 -1
  339. package/web/dist/assets/github-dark-dimmed-DH5Ifo-i.js +0 -1
  340. package/web/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -1
  341. package/web/dist/assets/github-light-DAi9KRSo.js +0 -1
  342. package/web/dist/assets/github-light-default-D7oLnXFd.js +0 -1
  343. package/web/dist/assets/github-light-high-contrast-BfjtVDDH.js +0 -1
  344. package/web/dist/assets/gleam-BspZqrRM.js +0 -1
  345. package/web/dist/assets/glimmer-js-ByusRIyA.js +0 -1
  346. package/web/dist/assets/glimmer-ts-BfAWNZQY.js +0 -1
  347. package/web/dist/assets/glsl-DplSGwfg.js +0 -1
  348. package/web/dist/assets/gn-n2N0HUVH.js +0 -1
  349. package/web/dist/assets/gnuplot-DdkO51Og.js +0 -1
  350. package/web/dist/assets/go-C27-OAKa.js +0 -1
  351. package/web/dist/assets/graph-Bn3Yngep.js +0 -1
  352. package/web/dist/assets/graphql-ChdNCCLP.js +0 -1
  353. package/web/dist/assets/groovy-gcz8RCvz.js +0 -1
  354. package/web/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -1
  355. package/web/dist/assets/gruvbox-dark-medium-GsRaNv29.js +0 -1
  356. package/web/dist/assets/gruvbox-dark-soft-CVdnzihN.js +0 -1
  357. package/web/dist/assets/gruvbox-light-hard-CH1njM8p.js +0 -1
  358. package/web/dist/assets/gruvbox-light-medium-DRw_LuNl.js +0 -1
  359. package/web/dist/assets/gruvbox-light-soft-hJgmCMqR.js +0 -1
  360. package/web/dist/assets/hack-BWmVpMyf.js +0 -1
  361. package/web/dist/assets/haml-D5jkg6IW.js +0 -1
  362. package/web/dist/assets/handlebars-BpdQsYii.js +0 -1
  363. package/web/dist/assets/haskell-Df6bDoY_.js +0 -1
  364. package/web/dist/assets/haxe-CfZj7gIn.js +0 -1
  365. package/web/dist/assets/hcl-BWvSN4gD.js +0 -1
  366. package/web/dist/assets/hjson-D5-asLiD.js +0 -1
  367. package/web/dist/assets/hlsl-D3lLCCz7.js +0 -1
  368. package/web/dist/assets/horizon-BUw7H-hv.js +0 -1
  369. package/web/dist/assets/horizon-bright-CUuTKBJd.js +0 -1
  370. package/web/dist/assets/houston-DnULxvSX.js +0 -1
  371. package/web/dist/assets/html-derivative-DlHx6ybY.js +0 -1
  372. package/web/dist/assets/html-pp8916En.js +0 -1
  373. package/web/dist/assets/http-jrhK8wxY.js +0 -1
  374. package/web/dist/assets/hurl-irOxFIW8.js +0 -1
  375. package/web/dist/assets/hxml-2-FPmUDs.js +0 -1
  376. package/web/dist/assets/hy-DFXneXwc.js +0 -1
  377. package/web/dist/assets/icons-Bm_ZzSAy.js +0 -964
  378. package/web/dist/assets/imba-DGztddWO.js +0 -1
  379. package/web/dist/assets/index-CeeLdENM.js +0 -677
  380. package/web/dist/assets/index-Ceez9lYk.css +0 -1
  381. package/web/dist/assets/infoDiagram-5W2HQ5XZ-Bv4RBxYW.js +0 -2
  382. package/web/dist/assets/ini-BEwlwnbL.js +0 -1
  383. package/web/dist/assets/init-Gi6I4Gst.js +0 -1
  384. package/web/dist/assets/ishikawaDiagram-K3B6WC7H-DEpj0bRp.js +0 -70
  385. package/web/dist/assets/java-CylS5w8V.js +0 -1
  386. package/web/dist/assets/javascript-wDzz0qaB.js +0 -1
  387. package/web/dist/assets/jinja-f2NsQr07.js +0 -1
  388. package/web/dist/assets/jison-wvAkD_A8.js +0 -1
  389. package/web/dist/assets/journeyDiagram-COXZFDF6-MJu84Iiz.js +0 -139
  390. package/web/dist/assets/json-Cp-IABpG.js +0 -1
  391. package/web/dist/assets/json5-C9tS-k6U.js +0 -1
  392. package/web/dist/assets/jsonc-Des-eS-w.js +0 -1
  393. package/web/dist/assets/jsonl-DcaNXYhu.js +0 -1
  394. package/web/dist/assets/jsonnet-DFQXde-d.js +0 -1
  395. package/web/dist/assets/jssm-C2t-YnRu.js +0 -1
  396. package/web/dist/assets/jsx-g9-lgVsj.js +0 -1
  397. package/web/dist/assets/julia-5Bft2YPA.js +0 -1
  398. package/web/dist/assets/just-Cwhn7H3k.js +0 -1
  399. package/web/dist/assets/kanagawa-dragon-BuwD2xS4.js +0 -1
  400. package/web/dist/assets/kanagawa-lotus-C3DzagqV.js +0 -1
  401. package/web/dist/assets/kanagawa-wave-DFGoQZhC.js +0 -1
  402. package/web/dist/assets/kanban-definition-P3RFRI5V-mlYSRALK.js +0 -89
  403. package/web/dist/assets/kdl-DV7GczEv.js +0 -1
  404. package/web/dist/assets/kotlin-BdnUsdx6.js +0 -1
  405. package/web/dist/assets/kusto-wEQ09or8.js +0 -1
  406. package/web/dist/assets/laserwave-DUszq2jm.js +0 -1
  407. package/web/dist/assets/latex-D5pSuvFb.js +0 -1
  408. package/web/dist/assets/lean-BZvkOJ9d.js +0 -1
  409. package/web/dist/assets/less-B1dDrJ26.js +0 -1
  410. package/web/dist/assets/light-plus-B7mTdjB0.js +0 -1
  411. package/web/dist/assets/linear-5j9gt8MV.js +0 -1
  412. package/web/dist/assets/liquid-C0sCDyMI.js +0 -1
  413. package/web/dist/assets/llvm-BZoOZj88.js +0 -1
  414. package/web/dist/assets/log-2UxHyX5q.js +0 -1
  415. package/web/dist/assets/logo-BtOb2qkB.js +0 -1
  416. package/web/dist/assets/lua-BaeVxFsk.js +0 -1
  417. package/web/dist/assets/luau-BnpPk5vE.js +0 -1
  418. package/web/dist/assets/make-CHLpvVh8.js +0 -1
  419. package/web/dist/assets/markdown-BWXjRrSw.js +0 -30
  420. package/web/dist/assets/markdown-Cvjx9yec.js +0 -1
  421. package/web/dist/assets/marko-DjSrsDqO.js +0 -1
  422. package/web/dist/assets/material-theme-D5KoaKCx.js +0 -1
  423. package/web/dist/assets/material-theme-darker-BfHTSMKl.js +0 -1
  424. package/web/dist/assets/material-theme-lighter-B0m2ddpp.js +0 -1
  425. package/web/dist/assets/material-theme-ocean-CyktbL80.js +0 -1
  426. package/web/dist/assets/material-theme-palenight-Csfq5Kiy.js +0 -1
  427. package/web/dist/assets/matlab-D7o27uSR.js +0 -1
  428. package/web/dist/assets/mdc-D1_yUvq7.js +0 -1
  429. package/web/dist/assets/mdx-Cmh6b_Ma.js +0 -1
  430. package/web/dist/assets/mermaid-CQcHuHx7.js +0 -1
  431. package/web/dist/assets/mermaid.core-DLb6eAON.js +0 -314
  432. package/web/dist/assets/min-dark-CafNBF8u.js +0 -1
  433. package/web/dist/assets/min-light-CTRr51gU.js +0 -1
  434. package/web/dist/assets/mindmap-definition-LZFPQGKD-C9v_57Ex.js +0 -96
  435. package/web/dist/assets/mipsasm-CKIfxQSi.js +0 -1
  436. package/web/dist/assets/mojo-DJz3ZmWd.js +0 -1
  437. package/web/dist/assets/monokai-BRVnQi9A.js +0 -1
  438. package/web/dist/assets/moonbit-CHtswR0a.js +0 -1
  439. package/web/dist/assets/move-el3G9tDJ.js +0 -1
  440. package/web/dist/assets/narrat-DRg8JJMk.js +0 -1
  441. package/web/dist/assets/nextflow-C-mBbutL.js +0 -1
  442. package/web/dist/assets/nextflow-groovy-vE_lwT2v.js +0 -1
  443. package/web/dist/assets/nginx-BpAMiNFr.js +0 -1
  444. package/web/dist/assets/night-owl-C39BiMTA.js +0 -1
  445. package/web/dist/assets/night-owl-light-CMTm3GFP.js +0 -1
  446. package/web/dist/assets/nim-BIad80T-.js +0 -1
  447. package/web/dist/assets/nix-CwoSXNpI.js +0 -1
  448. package/web/dist/assets/nord-Ddv68eIx.js +0 -1
  449. package/web/dist/assets/nsis-BlV79W_Q.js +0 -1
  450. package/web/dist/assets/nushell-D3jzshHO.js +0 -1
  451. package/web/dist/assets/objective-c-DXmwc3jG.js +0 -1
  452. package/web/dist/assets/objective-cpp-CLxacb5B.js +0 -1
  453. package/web/dist/assets/ocaml-C0hk2d4L.js +0 -1
  454. package/web/dist/assets/odin-BBf5iR-q.js +0 -1
  455. package/web/dist/assets/one-dark-pro-DVMEJ2y_.js +0 -1
  456. package/web/dist/assets/one-light-C3Wv6jpd.js +0 -1
  457. package/web/dist/assets/openscad-C4EeE6gA.js +0 -1
  458. package/web/dist/assets/ordinal-Cboi1Yqb.js +0 -1
  459. package/web/dist/assets/org-DM6o9KBp.js +0 -1
  460. package/web/dist/assets/panels-BQOvnbWH.js +0 -1
  461. package/web/dist/assets/pascal-D93ZcfNL.js +0 -1
  462. package/web/dist/assets/pegDiagram-BGZESJAR-KQP26s3-.js +0 -1
  463. package/web/dist/assets/perl-B9cMNwum.js +0 -1
  464. package/web/dist/assets/php-Csjmro_R.js +0 -1
  465. package/web/dist/assets/pieDiagram-CAPJLFHJ-DN3RQ_ih.js +0 -39
  466. package/web/dist/assets/pkl-u5AG7uiY.js +0 -1
  467. package/web/dist/assets/plastic-3e1v2bzS.js +0 -1
  468. package/web/dist/assets/plsql-ChMvpjG-.js +0 -1
  469. package/web/dist/assets/po-BTJTHyun.js +0 -1
  470. package/web/dist/assets/poimandres-CS3Unz2-.js +0 -1
  471. package/web/dist/assets/polar-C0HS_06l.js +0 -1
  472. package/web/dist/assets/postcss-CXtECtnM.js +0 -1
  473. package/web/dist/assets/powerquery-CEu0bR-o.js +0 -1
  474. package/web/dist/assets/powershell-BmBUJMz7.js +0 -1
  475. package/web/dist/assets/prisma-Vru482bI.js +0 -1
  476. package/web/dist/assets/profileChange-B7TaQ18u.js +0 -1
  477. package/web/dist/assets/prolog-CbFg5uaA.js +0 -1
  478. package/web/dist/assets/proto-C7zT0LnQ.js +0 -1
  479. package/web/dist/assets/pug-DKIMFp6K.js +0 -1
  480. package/web/dist/assets/puppet-BMWR74SV.js +0 -1
  481. package/web/dist/assets/purescript-CklMAg4u.js +0 -1
  482. package/web/dist/assets/python-B6aJPvgy.js +0 -1
  483. package/web/dist/assets/qml-3beO22l8.js +0 -1
  484. package/web/dist/assets/qmldir-C8lEn-DE.js +0 -1
  485. package/web/dist/assets/qss-IeuSbFQv.js +0 -1
  486. package/web/dist/assets/quadrantDiagram-GDMTTRAM-BpL_ZL76.js +0 -7
  487. package/web/dist/assets/r-Cf5RLm7j.js +0 -1
  488. package/web/dist/assets/racket-BqYA7rlc.js +0 -1
  489. package/web/dist/assets/railroadDiagram-SM67HX2B-DZ-fPU85.js +0 -1
  490. package/web/dist/assets/raku-DXvB9xmW.js +0 -1
  491. package/web/dist/assets/razor-BjBPvh-w.js +0 -1
  492. package/web/dist/assets/rbs-CpoqiR4B.js +0 -1
  493. package/web/dist/assets/react-vendor-C0HIWSpf.js +0 -9
  494. package/web/dist/assets/red-hvxz__6c.js +0 -1
  495. package/web/dist/assets/reg-C-SQnVFl.js +0 -1
  496. package/web/dist/assets/regexp-CDVJQ6XC.js +0 -1
  497. package/web/dist/assets/rel-C3B-1QV4.js +0 -1
  498. package/web/dist/assets/requirementDiagram-X7JNWC4A-mKPGj64L.js +0 -84
  499. package/web/dist/assets/riscv-BM1_JUlF.js +0 -1
  500. package/web/dist/assets/ron-D8l8udqQ.js +0 -1
  501. package/web/dist/assets/rose-pine-5qJOZa0Y.js +0 -1
  502. package/web/dist/assets/rose-pine-dawn-zx0QlTCp.js +0 -1
  503. package/web/dist/assets/rose-pine-moon-C9pEdX9L.js +0 -1
  504. package/web/dist/assets/rosmsg-BJDFO7_C.js +0 -1
  505. package/web/dist/assets/rst-bs7f0vWN.js +0 -1
  506. package/web/dist/assets/ruby-C0TQ7zu5.js +0 -1
  507. package/web/dist/assets/rust-B1yitclQ.js +0 -1
  508. package/web/dist/assets/sankeyDiagram-UM26HJRW-Bs4xfjQP.js +0 -40
  509. package/web/dist/assets/sas-DEy46yEz.js +0 -1
  510. package/web/dist/assets/sass-Cj5Yp3dK.js +0 -1
  511. package/web/dist/assets/scala-CqE71os6.js +0 -1
  512. package/web/dist/assets/scheme-C98Dy4si.js +0 -1
  513. package/web/dist/assets/scss-D5BDwBP9.js +0 -1
  514. package/web/dist/assets/sdbl-DVxCFoDh.js +0 -1
  515. package/web/dist/assets/sequenceDiagram-ZO4K6R2Y-BjUmzZaO.js +0 -169
  516. package/web/dist/assets/shaderlab-Dg9Lc6iA.js +0 -1
  517. package/web/dist/assets/shellscript-Yzrsuije.js +0 -1
  518. package/web/dist/assets/shellsession-BADoaaVG.js +0 -1
  519. package/web/dist/assets/sizeCapture-INFHLROL-BXBM3j_Q.js +0 -1
  520. package/web/dist/assets/slack-dark-BthQWCQV.js +0 -1
  521. package/web/dist/assets/slack-ochin-DqwNpetd.js +0 -1
  522. package/web/dist/assets/smalltalk-BOQMe2GC.js +0 -1
  523. package/web/dist/assets/smithy-cds9vsN8.js +0 -1
  524. package/web/dist/assets/snazzy-light-Bw305WKR.js +0 -1
  525. package/web/dist/assets/solarized-dark-CpvCGNkr.js +0 -1
  526. package/web/dist/assets/solarized-light-Dlz6yCKv.js +0 -1
  527. package/web/dist/assets/solidity-DijEV5ha.js +0 -1
  528. package/web/dist/assets/soy-8wufbnw4.js +0 -1
  529. package/web/dist/assets/sparql-rVzFXLq3.js +0 -1
  530. package/web/dist/assets/splunk-BtCnVYZw.js +0 -1
  531. package/web/dist/assets/sql-CRqJ_cUM.js +0 -1
  532. package/web/dist/assets/ssh-config-_ykCGR6B.js +0 -1
  533. package/web/dist/assets/stata-DI20mbqo.js +0 -1
  534. package/web/dist/assets/state-Kfon1nTr.js +0 -17
  535. package/web/dist/assets/stateDiagram-v2-TBUQTH76-FGgFDGUU.js +0 -291
  536. package/web/dist/assets/sttLanguages-C7kVulzY.js +0 -1
  537. package/web/dist/assets/stylus-BEDo0Tqx.js +0 -1
  538. package/web/dist/assets/surrealql-Cjom0U5J.js +0 -1
  539. package/web/dist/assets/svelte-Cy7k_4gC.js +0 -1
  540. package/web/dist/assets/swift-C2oV4EkX.js +0 -1
  541. package/web/dist/assets/swimlanes-N4OXWK64-wkd_n4HU.js +0 -1
  542. package/web/dist/assets/swimlanesDiagram-K3J5GTZL-CKnwEuq_.js +0 -8
  543. package/web/dist/assets/synthwave-84-CbfX1IO0.js +0 -1
  544. package/web/dist/assets/system-verilog-0hqHdDBg.js +0 -1
  545. package/web/dist/assets/systemd-4A_iFExJ.js +0 -1
  546. package/web/dist/assets/talonscript-CkByrt1z.js +0 -1
  547. package/web/dist/assets/tasl-QIJgUcNo.js +0 -1
  548. package/web/dist/assets/tcl-dwOrl1Do.js +0 -1
  549. package/web/dist/assets/templ-DhtptRzy.js +0 -1
  550. package/web/dist/assets/terraform-BETggiCN.js +0 -1
  551. package/web/dist/assets/tex-D96PA37w.js +0 -1
  552. package/web/dist/assets/timeline-definition-YOQAKGHF-DyBln1jw.js +0 -120
  553. package/web/dist/assets/tokyo-night-hegEt444.js +0 -1
  554. package/web/dist/assets/toml-vGWfd6FD.js +0 -1
  555. package/web/dist/assets/ts-tags-D351s5mN.js +0 -1
  556. package/web/dist/assets/tsv-B_m7g4N7.js +0 -1
  557. package/web/dist/assets/tsx-COt5Ahok.js +0 -1
  558. package/web/dist/assets/turtle-BsS91CYL.js +0 -1
  559. package/web/dist/assets/twig-27uCiNez.js +0 -1
  560. package/web/dist/assets/typescript-BPQ3VLAy.js +0 -1
  561. package/web/dist/assets/typespec-CAFt9gP4.js +0 -1
  562. package/web/dist/assets/typst-BUadGCkm.js +0 -1
  563. package/web/dist/assets/usecaseDiagram-VIAY4XPW-Cqis3XHX.js +0 -370
  564. package/web/dist/assets/v-BGw2Nkan.js +0 -1
  565. package/web/dist/assets/vala-CsfeWuGM.js +0 -1
  566. package/web/dist/assets/vb-Cu-pLBUe.js +0 -1
  567. package/web/dist/assets/vennDiagram-BLWOH2XV-BaiFLOVS.js +0 -34
  568. package/web/dist/assets/verilog-nZwndyjY.js +0 -1
  569. package/web/dist/assets/vesper-DRje8inN.js +0 -1
  570. package/web/dist/assets/vhdl-CeAyd5Ju.js +0 -1
  571. package/web/dist/assets/viml-CJc9bBzg.js +0 -1
  572. package/web/dist/assets/vitesse-black-Bkuqu6BP.js +0 -1
  573. package/web/dist/assets/vitesse-dark-D0r3Knsf.js +0 -1
  574. package/web/dist/assets/vitesse-light-CVO1_9PV.js +0 -1
  575. package/web/dist/assets/vue-BqiEGhQt.js +0 -1
  576. package/web/dist/assets/vue-html-AaS7Mt5G.js +0 -1
  577. package/web/dist/assets/vue-vine-BoDAl6tE.js +0 -1
  578. package/web/dist/assets/vyper-CDx5xZoG.js +0 -1
  579. package/web/dist/assets/wardleyDiagram-YMQ3BMBF-C4CzpJto.js +0 -78
  580. package/web/dist/assets/wasm-CG6Dc4jp.js +0 -1
  581. package/web/dist/assets/wasm-MzD3tlZU.js +0 -1
  582. package/web/dist/assets/wenyan-BV7otONQ.js +0 -1
  583. package/web/dist/assets/wgsl-Dx-B1_4e.js +0 -1
  584. package/web/dist/assets/wikitext-BhOHFoWU.js +0 -1
  585. package/web/dist/assets/wit-5i3qLPDT.js +0 -1
  586. package/web/dist/assets/wolfram-lXgVvXCa.js +0 -1
  587. package/web/dist/assets/xml-sdJ4AIDG.js +0 -1
  588. package/web/dist/assets/xsl-CtQFsRM5.js +0 -1
  589. package/web/dist/assets/xychartDiagram-TAQBALBS-Dp1hfe3-.js +0 -7
  590. package/web/dist/assets/yaml-Buea-lGh.js +0 -1
  591. package/web/dist/assets/zenscript-DVFEvuxE.js +0 -1
  592. package/web/dist/assets/zig-VOosw3JB.js +0 -1
  593. package/web/dist/figma-demo/product-1.jpg +0 -0
  594. package/web/dist/figma-demo/product-2.jpg +0 -0
  595. package/web/dist/figma-demo/trail-1.jpg +0 -0
  596. package/web/dist/figma-demo/trail-2.jpg +0 -0
  597. 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{$ as t,Br as n,Bt as r,Cn as i,Cr as a,Dn as o,En as s,Fr as c,Gn as l,Ir as u,Jn as d,Nn as f,O as p,Ot as m,Rn as h,Rr as g,Rt as _,T as v,Tt as y,Ur as b,Ut as x,W as S,_r as C,an as w,br as T,ct as E,er as D,ft as O,g as k,gt as ee,hn as A,ht as te,kt as ne,lt as re,mn as ie,n as ae,ot as j,t as M,u as oe,vn as N,vr as P,xr as se,zt as F}from"./icons-BvYhTENi.js";import{r as I}from"./react-vendor-BlngCquv.js";import{t as L}from"./useTranslation-BGmCDuQI.js";import{S as ce,f as le,l as R,o as ue,s as de}from"./ttsSettings-DHo3OsOq.js";import{n as z,t as B}from"./cn-rx4uumOJ.js";import"./src-49LUQhkG.js";import{a as fe,f as pe,n as me,r as he}from"./workspaceSemantics-RaIRer76.js";import{C as V,St as H,_t as ge,bt as U,ft as W,n as _e,pt as ve,r as ye,t as be,vt as xe,xt as G,yt as Se}from"./MessageBubble-CV16DZMG.js";import{a as Ce,i as we,n as Te,o as Ee,r as De,s as Oe,t as ke}from"./sttLanguages-aqoVC79g.js";import{r as Ae,t as je}from"./settingsStore-RLUAWgIk.js";import{r as Me,t as K}from"./api-CCt9DRQm.js";import{I as Ne}from"./markdown-DAQZeY5V.js";import{A as Pe,C as Fe,E as Ie,T as Le,c as Re,h as ze,j as Be,w as Ve}from"./common-BHXgEvgk.js";import{G as He,H as Ue,V as We,a as Ge,c as Ke,l as qe,n as Je,o as q,r as Ye,s as Xe}from"./index-BX-d2OBW.js";var Ze=/\[Pasted text #(\d+)(?:\s*\+\d+ lines?)?\]/g,Qe=0,$e=new Map;function et(e){let t=++Qe;return $e.set(t,e.replace(/\r\n?/g,`
2
+ `)),t}function tt(e){return $e.get(e)}function nt(e){$e.delete(e)}function rt(e){return e.length>800||it(e)>0}function it(e){return(e.match(/\r\n|\r|\n/g)||[]).length}function at(e){let t=et(e),n=it(e);return n===0?{id:t,label:`[Pasted text #${t}]`}:{id:t,label:`[Pasted text #${t} +${n} lines]`}}function ot(e){return Ze.lastIndex=0,e.replace(Ze,(e,t)=>{let n=parseInt(t,10),r=$e.get(n);return r===void 0?e:r})}function st(e){Ze.lastIndex=0;let t=[],n;for(;(n=Ze.exec(e))!==null;){let e=n[1];e!==void 0&&t.push(parseInt(e,10))}return Ze.lastIndex=0,t}function ct(e){for(let t of e)$e.delete(t)}function lt(e){let t=e.match(/\[Pasted text #\d+(?:\s*\+\d+ lines?)?\]$/);return t?t[0]:null}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(/#(\d+)/);t&&nt(parseInt(t[1]??``,10))}var J=e(b(),1),Y=Ne();function ft(e,t=28){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t)}…`:n}var pt=`cubic-bezier(0.34, 1.56, 0.64, 1)`,mt=14,ht=7,X=.6,gt=160,_t=440;function vt(){let e=(0,J.useCallback)(()=>typeof window>`u`?_t:Math.max(gt,Math.min(_t,Math.round(window.innerHeight*X))),[]),[t,n]=(0,J.useState)(e);return(0,J.useEffect)(()=>{let t=()=>n(e());return window.addEventListener(`resize`,t),()=>window.removeEventListener(`resize`,t)},[e]),t}var yt=(0,J.memo)(function({items:e,activeId:t,onJump:n}){let{t:r}=L(),[i,a]=(0,J.useState)(!1),o=(0,J.useRef)(null),s=vt(),c=(0,J.useCallback)(()=>{o.current&&window.clearTimeout(o.current),a(!0)},[]),l=(0,J.useCallback)(()=>{o.current&&window.clearTimeout(o.current),o.current=window.setTimeout(()=>a(!1),180)},[]),u=Math.max(ht,Math.min(mt,Math.floor(s/Math.max(1,e.length)))),d=Math.max(1,Math.floor(s/ht)),f=(0,J.useMemo)(()=>{let n=e.length,r=Math.min(n,d),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,d]),p=u>=12?6:u>=9?5:4,m=Math.min(p+2,Math.max(4,u-2)),h=u>=12?`ring-2 ring-accent-blue/25`:`ring-1 ring-accent-blue/30`;return e.length===0?null:(0,Y.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,Y.jsxs)(`div`,{onMouseEnter:c,onMouseLeave:l,"data-testid":`rail-trigger`,className:`pointer-events-auto relative flex items-center py-3`,children:[(0,Y.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?pt:`ease`},children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b border-dark-border/60 px-3 py-2`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-meta font-semibold uppercase tracking-[0.08em] text-dark-muted`,children:[(0,Y.jsx)(x,{size:12,className:`text-accent-blue`,"aria-hidden":`true`}),r(`chat.messageIndex`)]}),(0,Y.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,Y.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,Y.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,Y.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,Y.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,Y.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,Y.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,Y.jsx)(`div`,{"data-testid":`rail-dots`,className:`flex flex-col items-end`,style:{maxHeight:s},children:f.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}. ${ft(t.content)}`;return(0,Y.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:u,width:20},children:(0,Y.jsx)(`span`,{style:{height:e.active?m:p,width:e.active?m:p},className:e.active?`rounded-full bg-accent-blue transition-all duration-300 ease-out group-hover/dot:scale-125 ${h}`:`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 bt({sessionId:e}){let t=ue(e=>e.compactionProgress),n=le(e=>e.activeSessionId);if(!t||n&&e&&n!==e)return null;let r=t.percent<100;return(0,Y.jsxs)(`div`,{"data-testid":`compaction-indicator`,className:`chat-col flex items-center gap-2 px-4 py-1.5 text-xs text-dark-text sm:px-6`,title:t.message||void 0,children:[(0,Y.jsx)(`span`,{className:`whitespace-nowrap`,children:`compact`}),(0,Y.jsxs)(`span`,{className:`tabular-nums whitespace-nowrap`,children:[t.percent,`%`]}),(0,Y.jsx)(`span`,{className:`h-1.5 w-20 overflow-hidden rounded-full bg-dark-border/70`,children:(0,Y.jsx)(`span`,{className:`block h-full rounded-full bg-dark-text/70 transition-all${r?` animate-pulse-soft`:``}`,style:{width:`${t.percent}%`}})})]})}var xt=24,St=2e3,Ct=150,wt=28;function Tt({label:e}){let t=(0,J.useRef)(Date.now()),n=(0,J.useRef)(null),[r,i]=(0,J.useState)(!1);return(0,J.useEffect)(()=>{let e=window.setTimeout(()=>i(!0),15e3);return()=>window.clearTimeout(e)},[]),(0,J.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,Y.jsxs)(`div`,{className:`chat-col flex items-center gap-2 px-4 py-3 text-xs text-dark-muted sm:px-6`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-accent-blue animate-blink`}),(0,Y.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-accent-blue animate-blink`,style:{animationDelay:`0.2s`}}),(0,Y.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-accent-blue animate-blink`,style:{animationDelay:`0.4s`}})]}),(0,Y.jsx)(`span`,{className:`text-shimmer`,children:e}),r&&(0,Y.jsxs)(`span`,{className:`flex items-center gap-1 tabular-nums text-dark-muted/70`,children:[(0,Y.jsx)(D,{size:10}),(0,Y.jsx)(`span`,{ref:n,children:`15s`})]})]})}var Et=(0,J.memo)(function({messages:e,isGenerating:t,sessionId:n,onRegenerate:r,onRetryTurn:i,onDeleteMessage:a,onOpenSidebarView:o}){let{t:s}=L(),c=(0,J.useRef)(null),l=(0,J.useRef)(new Map),[u,d]=(0,J.useState)(!0),[f,p]=(0,J.useState)(null),m=(0,J.useRef)(u),h=(0,J.useRef)(f),g=(0,J.useCallback)(e=>{m.current!==e&&(m.current=e,d(e))},[]),_=(0,J.useCallback)(e=>{h.current!==e&&(h.current=e,p(e))},[]),[v,y]=(0,J.useState)(null),[b,x]=(0,J.useState)(0),S=(0,J.useRef)(null),C=(0,J.useRef)(!1),w=(0,J.useRef)(null),E=(0,J.useRef)(!1),D=(0,J.useRef)(null),O=(0,J.useRef)(!1),k=(0,J.useRef)(null),ee=(0,J.useRef)(null),A=(0,J.useRef)(t);A.current=t;let te=(0,J.useRef)(0),[ne,re]=(0,J.useState)({top:0,bottom:0}),ie=(0,J.useRef)(ne),ae=(0,J.useCallback)((e,t)=>{(ie.current.top!==e||ie.current.bottom!==t)&&(ie.current={top:e,bottom:t},re({top:e,bottom:t}))},[]),j=(0,J.useMemo)(()=>e.filter(e=>!e.deleted),[e]),M=(0,J.useMemo)(()=>{if(!t)return!1;let e=j[j.length-1];return!e||e.type!==`assistant`?!1:!e.content},[t,j]),oe=(0,J.useMemo)(()=>j.filter(e=>ce(e)).map(e=>({id:e.id,content:e.content})),[j]),N=(0,J.useMemo)(()=>oe.map(e=>e.id),[oe]),P=(0,J.useCallback)(e=>{if(e){let t=e.dataset.mid;t&&l.current.set(t,e)}},[]);(0,J.useEffect)(()=>{let e=new Set(N);for(let t of l.current.keys())e.has(t)||l.current.delete(t)},[N]);let se=(0,J.useCallback)(()=>{let e=c.current;if(!e||N.length===0){_(null);return}let t=e.getBoundingClientRect(),n=t.top+t.height*.35,r=N[0]??null;for(let e of N){let t=l.current.get(e);if(t&&t.isConnected){if(t.getBoundingClientRect().top<=n)r=e;else break}}e.scrollHeight-e.scrollTop-e.clientHeight<xt&&(r=N[N.length-1]??r),_(r)},[N,_]),F=(0,J.useCallback)(()=>{let e=c.current;if(!e)return;let t=e.scrollTop<=2,n=e.scrollTop+e.clientHeight>=e.scrollHeight-2;ae(t?0:wt,n?0:wt)},[ae]),I=(0,J.useCallback)(()=>{let e=c.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight,n=t<xt;E.current?n&&(E.current=!1):C.current?t>=xt&&(C.current=!1):g(n),se(),F()},[se,F,g]),le=(0,J.useCallback)(()=>{let e=c.current;if(!e||A.current||C.current||E.current)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight;g(t<xt),F()},[g,F]);(0,J.useLayoutEffect)(()=>{O.current=!0,k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{O.current=!1},St),w.current&&window.clearTimeout(w.current),C.current=!1,E.current=!1;let e=c.current;e&&(e.scrollTop=e.scrollHeight),g(!0),F()},[n,g,F]),(0,J.useEffect)(()=>{let e=c.current,t=ee.current;if(!e||!t||typeof ResizeObserver>`u`)return;let n=new ResizeObserver(()=>{O.current&&m.current&&(e.scrollTop=e.scrollHeight)});return n.observe(t),()=>n.disconnect()},[]),(0,J.useEffect)(()=>{se(),F()},[e,se,F]),(0,J.useEffect)(()=>{let e=c.current;if(!e)return;let t=()=>{F(),le()},n=()=>{te.current=performance.now(),E.current=!1,O.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)}},[F,le]);let R=(0,J.useCallback)(e=>{let t=c.current,n=l.current.get(e);if(!t||!n||!n.isConnected)return;g(!1),y(e),x(e=>e+1),S.current&&window.clearTimeout(S.current),S.current=window.setTimeout(()=>y(null),1600);let r=t.getBoundingClientRect(),i=n.getBoundingClientRect(),a=t.scrollTop+(i.top-r.top)-t.clientHeight/2+i.height/2;w.current&&window.clearTimeout(w.current),C.current=!0,t.scrollTo({top:Math.max(0,a),behavior:`smooth`}),`onscrollend`in t&&t.addEventListener(`scrollend`,()=>{C.current=!1},{once:!0}),w.current=window.setTimeout(()=>{C.current=!1},1500)},[g]);(0,J.useEffect)(()=>()=>{S.current&&window.clearTimeout(S.current),w.current&&window.clearTimeout(w.current),D.current&&window.clearTimeout(D.current),k.current&&window.clearTimeout(k.current)},[]);let ue=(0,J.useCallback)(()=>{w.current&&window.clearTimeout(w.current),C.current=!1;let e=c.current;e&&(e.scrollTop=e.scrollHeight)},[]),de=(0,J.useCallback)(()=>{w.current&&window.clearTimeout(w.current),C.current=!1,g(!0);let e=c.current;e&&(E.current=!0,D.current&&window.clearTimeout(D.current),D.current=window.setTimeout(()=>{E.current=!1},1e3),`onscrollend`in e&&e.addEventListener(`scrollend`,()=>{E.current=!1},{once:!0}),e.scrollTo({top:e.scrollHeight,behavior:`smooth`}))},[g]);(0,J.useEffect)(()=>{t&&(g(!0),ue())},[t,ue,g]);let z=(0,J.useMemo)(()=>{let e=j[j.length-1];return`${j.length}:${e?.id??``}:${e?.content?.length??0}:${e?.textBlocks?.length??0}:${e?.toolCalls?.length??0}:${e?.thinkingBlocks?.length??0}:${e?.thinking?.length??0}`},[j]),B=(0,J.useRef)(z);return(0,J.useEffect)(()=>{u?z!==B.current&&(B.current=z,!(performance.now()-te.current<=Ct)&&ue()):B.current=z},[z,u,ue]),(0,Y.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[(0,Y.jsxs)(`div`,{ref:c,onScroll:I,style:{"--ui-fade-top":`${ne.top}px`,"--ui-fade-bottom":`${ne.bottom}px`},className:`fade-mask-y h-full overflow-y-auto custom-scrollbar`,children:[(0,Y.jsx)(`div`,{ref:ee,className:`chat-stack flex flex-col pb-8 pt-5`,children:j.map((e,t)=>{let s=j[t-1],c=s?s.type===e.type?`mt-2`:`mt-5`:``;return(0,Y.jsxs)(`div`,{"data-mid":e.id,ref:P,className:`relative w-full ${c}`,children:[v===e.id&&(0,Y.jsx)(`div`,{className:`animate-rail-flash pointer-events-none absolute inset-0`},b),(0,Y.jsx)(be,{message:e,sessionId:n,onRegenerate:r,onRetryTurn:i,onDeleteMessage:a,onOpenSidebarView:o})]},e.id)})}),(0,Y.jsx)(bt,{sessionId:n}),t&&!M&&(0,Y.jsx)(Tt,{label:s(`chat.thinkingEllipsis`)},n)]}),oe.length>0&&(0,Y.jsx)(yt,{items:oe,activeId:f,onJump:R}),!u&&j.length>0&&(0,Y.jsx)(`button`,{type:`button`,onClick:de,title:s(`chat.backToBottom`),"aria-label":s(`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,Y.jsx)(T,{size:15})})]})}),Dt=(0,J.memo)(function(){let{t:e}=L(),t=W(e=>e.mode),n=W(e=>e.setAutoLevel),r=ve(e=>e.autoLevel),i=t!==`normal`&&pe(t),a=G(i?r:0),o=(t===`normal`?`act`:fe(t))===`chat`,s=U[a],[c,l]=(0,J.useState)(!1),[u,d]=(0,J.useState)(null),f=(0,J.useId)(),p=u??a,m=U[p],h=(0,J.useRef)(null),g=(0,J.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,J.useCallback)(e=>{o||e!==a&&n(e)},[o,a,n]),b=(0,J.useRef)(0);(0,J.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(H(a,n>0?-1:1))};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[y,o,a]);let x=(0,J.useCallback)(e=>{if(o)return;let t=t=>{e.preventDefault(),y(H(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=U[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,Y.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:B(`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`:B(`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,Y.jsx)(`span`,{ref:h,className:`flex items-end gap-[2px]`,"aria-hidden":!0,children:Se.map(e=>{let t=e>0&&a>=e;return(0,Y.jsx)(`span`,{title:c?void 0:S(e),onMouseOver:()=>d(e),onMouseDown:t=>{t.preventDefault(),y(e)},className:B(`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,Y.jsx)(`span`,{className:`font-medium tabular-nums`,children:a}),(0,Y.jsx)(`span`,{className:`uppercase tracking-wide`,children:s.label}),c&&(0,Y.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,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-1.5`,children:[(0,Y.jsx)(`span`,{className:`font-medium tabular-nums`,children:p}),(0,Y.jsx)(`span`,{className:`uppercase tracking-wide text-accent-yellow`,children:m.label}),(0,Y.jsx)(`span`,{className:`text-dark-muted`,children:m.hint})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-[auto_minmax(0,1fr)] gap-x-1.5 gap-y-0.5`,children:[(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-accent-green`,children:e(`plan.autoAllows`)}),(0,Y.jsx)(`span`,{className:`text-dark-muted`,children:m.allows}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-accent-yellow`,children:e(`plan.autoAsks`)}),(0,Y.jsx)(`span`,{className:`text-dark-muted`,children:m.asks})]})]})]})}),Ot={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`},kt=(0,J.memo)(function(){let{t:e}=L(),t=W(e=>e.mode),n=W(e=>e.modeSource),r=W(e=>e.setBaseMode),i=fe(t===`normal`?`act`:t),a=n===`user_override`;return(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[me.map(n=>{let o=i===n,s=he[n],c=t!==`normal`&&o?Ot[t]??`border-dark-border text-dark-muted`:`border-dark-border text-dark-muted hover:bg-dark-hover`;return(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>r(n),className:B(`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,Y.jsx)(_,{size:10,className:`ms-1 inline-block -mt-px`,"aria-hidden":!0})]},n)}),a&&(0,Y.jsx)(`span`,{className:`flex items-center text-accent-yellow`,title:e(`plan.modeLocked`),"aria-label":e(`plan.modeLocked`),children:(0,Y.jsx)(_,{size:11,"aria-hidden":!0})}),(0,Y.jsx)(Dt,{})]})}),At=(0,J.memo)(function(){let{t:e}=L(),t=le(e=>e.activeSessionId),n=W(e=>t?e.pendingSuggestionsBySession[t]:void 0),r=W(e=>e.clearPendingSuggestion),i=W(e=>e.setBaseMode);if(!n)return null;let a=n.suggestedMode;if(a!==`act`&&a!==`goal`)return null;let o=a,s=he[o]?.label??o,c=he[fe(n.currentMode)]?.label??n.currentMode,l=typeof n.confidence==`number`?` · ${e(`plan.modeSuggestionConfidence`)} ${Math.round(n.confidence*100)}%`:``;return(0,Y.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,Y.jsx)(`span`,{className:`shrink-0 font-medium text-accent-cyan`,children:e(`plan.modeSuggestionTitle`)}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1 text-dark-muted`,children:[(0,Y.jsx)(`span`,{className:`whitespace-nowrap`,children:c}),(0,Y.jsx)(g,{size:11,className:`shrink-0`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-dark-text`,children:s}),(0,Y.jsx)(`span`,{className:`shrink-0`,children:l}),n.reason&&(0,Y.jsxs)(`span`,{className:`hidden min-w-0 truncate md:inline`,title:n.reason,children:[`· `,n.reason]})]}),(0,Y.jsxs)(`span`,{className:`ms-auto flex shrink-0 items-center gap-1.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>{i(o),r(n.sessionId)},className:B(`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,Y.jsx)(se,{size:11,"aria-hidden":!0}),e(`plan.modeSuggestionApply`,{mode:s})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>r(n.sessionId),className:B(`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,Y.jsx)(ae,{size:11,"aria-hidden":!0}),e(`plan.modeSuggestionKeep`,{mode:c})]})]})]})}),Z=I();function jt(){return Me.get(`/api/models/cached`)}var Mt=(0,J.memo)(function(){let{t:e}=L(),t=ue(e=>e.model),r=ue(e=>e.modelRef),i=ue(e=>e.setModel),a=ue(e=>e.setModelRef),o=W(e=>e.mode),s=Ae(e=>e.effort),c=Ae(e=>e.setEffort),[u,d]=(0,J.useState)([]),[f,p]=(0,J.useState)(!1),{visible:m,phase:h}=Be(f),g=(0,J.useRef)(null),_=(0,J.useRef)(null),[v,y]=(0,J.useState)(`session`),[b,x]=(0,J.useState)(`user`),C=Re(e=>e.kinds),w=Re(e=>e.load),E=le(e=>e.activeSessionId),[D,O]=(0,J.useState)(`models`),[k,ee]=(0,J.useState)(``),[A,te]=(0,J.useState)(``),[ne,re]=(0,J.useState)({}),[ae,j]=(0,J.useState)({}),[M,oe]=(0,J.useState)(!1),[N,P]=(0,J.useState)(null),[I,ce]=(0,J.useState)([]),R=(0,J.useMemo)(()=>Ke(Array.from(new Set(u.map(e=>e.provider).filter(Boolean))),u,I),[u,I]),de=(0,J.useCallback)(async()=>{try{let e=await K.models.list();e.success&&e.data&&Array.isArray(e.data.models)&&d(e.data.models.filter(e=>e.enabled!==!1))}catch{}},[]),pe=(0,J.useCallback)(async()=>{try{let e=await jt();e.success&&e.data?.providers&&re(e.data.providers)}catch{}},[]),me=(0,J.useCallback)(async t=>{if(t){oe(!0),P(null);try{let n=await K.models.byProvider(t);if(n.success&&n.data){let e=n.data.models||[];j(n=>({...n,[t]:e}))}else P(n.error||e(`chat.loadModelsFailed`))}catch{P(e(`chat.loadModelsFailed`))}finally{oe(!1)}}},[e]);(0,J.useEffect)(()=>{de()},[de]);let[he,V]=(0,J.useState)(0);(0,J.useEffect)(()=>{let e=()=>{de(),pe(),V(e=>e+1)};return window.addEventListener(`models-updated`,e),()=>window.removeEventListener(`models-updated`,e)},[de,pe]);let[H,ge]=(0,J.useState)(null),U=(0,J.useCallback)(()=>{let e=g.current;if(!e)return;let t=e.getBoundingClientRect();ge({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,J.useCallback)(()=>{let e=Xe(r)||u.find(e=>e.isGlobalDefault)?.provider||R[0]||``;O(`models`),ee(e),te(``),P(null),U(),p(!0),pe()},[r,u,R,pe,U]);(0,J.useEffect)(()=>{f&&k&&me(k)},[f,k,he,me]),(0,J.useEffect)(()=>{f&&(k&&R.includes(k)||ee(R[0]||``))},[f,k,R]),(0,J.useEffect)(()=>{f&&w()},[f,w]),(0,J.useEffect)(()=>{C.length!==0&&(C.some(e=>e.id===b)||x(C[0].id))},[C,b]);let ve=(0,J.useCallback)(()=>p(!1),[]);(0,J.useEffect)(()=>{if(f)return U(),window.addEventListener(`resize`,U),window.addEventListener(`scroll`,U,!0),()=>{window.removeEventListener(`resize`,U),window.removeEventListener(`scroll`,U,!0)}},[f,U]),(0,J.useEffect)(()=>{if(!f)return;let e=e=>{let t=e.target;g.current?.contains(t)||_.current?.contains(t)||ve()},t=e=>{e.key===`Escape`&&ve()};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[f,ve]);let ye=(0,J.useMemo)(()=>{let e=ae[k];return e&&e.length>0?e:ne[k]?.models??[]},[ae,ne,k]),be=(0,J.useMemo)(()=>qe(Ge(k,ye,u),I,k),[k,ye,u,I]),xe=(0,J.useMemo)(()=>{let e=A.trim().toLowerCase();return e?be.filter(t=>t.id.toLowerCase().includes(e)||t.name.toLowerCase().includes(e)):be},[be,A]),G=e=>{ce(t=>[e,...t.filter(t=>t!==e)].slice(0,20))},Se=async n=>{if(ve(),v===`session`&&!E){z.error(e(`chat.sessionModelNoSession`));return}let s=k,c=`${s}:${n.id}`,l=t,u=r;i(n.id),a(c);try{if(!n.configured){let t=await K.models.create({provider:s,model:{id:n.id,name:n.name||n.id}});if(!t.success){i(l),a(u),z.error(t.error||e(`chat.addModelFailed`));return}}if(v===`session`){let t=await K.models.setSessionModel(E,s,n.id);if(!t.success){i(l),a(u),z.error(t.error||e(`chat.switchModelFailed`));return}G(c),await de();return}if(v===`kind`){let t=Re.getState(),r=C.find(e=>e.id===b)?.labelKey?e(C.find(e=>e.id===b).labelKey):b;if(!await t.saveEntry(b,{...t.entries[b]??{},model:n.id})){i(l),a(u),z.error(t.error||e(`chat.kindBindFailed`));return}if(E){let t=await K.models.setSessionModel(E,s,n.id);if(!t.success){i(l),a(u),z.error(t.error||e(`chat.switchModelFailed`));return}}G(c),z.success(e(`chat.kindBoundToast`,{kind:r,model:n.id})),await de();return}let t=fe(o===`normal`?`act`:o)===`goal`?{goal:c}:{global:c,act:c},r=await K.models.setDefaults(t);if(!r.success){i(l),a(u),z.error(r.error||e(`chat.switchModelFailed`));return}G(c),await de()}catch{i(l),a(u),z.error(e(`chat.addModelFailed`))}},Ce=fe(o===`normal`?`act`:o),we=Ce===`goal`?`isGoalDefault`:`isActDefault`,Te=e=>{let n=`${k}:${e.id}`;return r?r===n:t===n||t===e.id},Ee=u.some(e=>e[we]===!0),De=u.find(e=>e.isGlobalDefault),ke=async()=>{ve();let e=Ce===`goal`?{goal:null}:{act:null};try{(await K.models.setDefaults(e)).success&&(De?(i(De.id),a(`${De.provider}:${De.id}`)):(i(``),a(``)),await de())}catch{}},Me=q(t,r),Ne=A.trim().toLowerCase();return(0,Y.jsxs)(`div`,{className:`relative min-w-0`,ref:g,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>f?ve():_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:Me||e(`chat.clickToSelectModel`),"aria-haspopup":`listbox`,"aria-expanded":f,children:[(0,Y.jsx)(l,{size:12,className:`shrink-0`}),(0,Y.jsx)(`span`,{className:`font-medium max-w-[8rem] truncate`,children:Me||e(`chat.selectModel`)}),(0,Y.jsx)(T,{size:12,className:B(`transition-transform`,f&&`rotate-180`)})]}),m&&(0,Z.createPortal)((0,Y.jsxs)(`div`,{ref:_,role:`listbox`,"data-phase":h,"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,Y.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:l},{key:`effort`,label:e(`chat.effort`),Icon:ie}].map(({key:e,label:t,Icon:n})=>(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":D===e,onClick:()=>O(e),className:B(`flex items-center gap-1 text-meta px-2 py-0.5 rounded-full border transition-colors cursor-pointer`,D===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,Y.jsx)(n,{size:11,className:`shrink-0`}),t]},e))}),D===`models`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.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,Y.jsx)(`button`,{type:`button`,onClick:()=>y(e),title:n,className:B(`text-meta px-2 py-0.5 rounded-full border transition-colors cursor-pointer`,v===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))}),v===`kind`&&(0,Y.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,Y.jsx)(`span`,{className:`text-dark-muted`,children:e(`chat.kindSelectLabel`)}),(0,Y.jsx)(`select`,{value:b,onChange:e=>x(e.target.value),className:`rounded border border-dark-border bg-dark-surface px-1.5 py-0.5 text-meta text-dark-text`,children:C.map(t=>(0,Y.jsx)(`option`,{value:t.id,children:t.labelKey?e(t.labelKey):t.id},t.id))})]}),Ee&&(0,Y.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":!1,onClick:ke,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,Y.jsx)(n,{size:11,className:`shrink-0 text-accent-green`}),(0,Y.jsxs)(`span`,{className:`flex-1 min-w-0`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-semibold text-accent-green`,children:e(`chat.followGlobalDefault`)}),(0,Y.jsx)(`span`,{className:`block text-badge text-dark-muted mt-0.5 truncate`,children:De?De.name||De.id:e(`chat.noGlobalDefault`)})]})]}),R.length>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.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:R.map(e=>{let t=e===k,n=ae[e]?.length||ne[e]?.models.length||0;return(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t,onClick:()=>{ee(e),te(``),P(null)},className:B(`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,Y.jsx)(`span`,{className:`max-w-[7rem] truncate`,children:e}),n>0&&(0,Y.jsx)(`span`,{className:`text-badge opacity-70`,children:n})]},e)})}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 px-2 py-1.5 border-b border-dark-border`,children:[(0,Y.jsx)(S,{size:11,className:`shrink-0 text-dark-muted`}),(0,Y.jsx)(`input`,{value:A,onChange:e=>te(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,Y.jsxs)(`div`,{className:`min-h-0 overflow-y-auto py-1 custom-scrollbar`,style:{height:253},children:[M&&xe.length===0&&(0,Y.jsxs)(`div`,{className:`px-3 py-2 text-xs text-dark-muted flex items-center gap-1.5`,children:[(0,Y.jsx)(F,{size:11,className:`animate-spin`}),e(`chat.loadingModels`)]}),!M&&N&&xe.length===0&&(0,Y.jsx)(`div`,{className:`px-3 py-2 text-xs text-accent-red`,children:N}),xe.map(t=>{let n=Te(t);return(0,Y.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":n,onClick:()=>{Se(t)},className:B(`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,Y.jsxs)(`span`,{className:`flex-1 min-w-0`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,Y.jsx)(`span`,{className:B(`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,Y.jsx)(se,{size:10,strokeWidth:3})}),(0,Y.jsx)(`span`,{className:`text-xs font-semibold text-dark-text truncate`,children:t.name||t.id})]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1 mt-0.5 flex-wrap ps-[1.375rem]`,children:[(0,Y.jsx)(`span`,{className:`text-badge text-dark-muted truncate`,children:t.id}),t.isGlobalDefault&&(0,Y.jsx)(`span`,{className:`text-badge px-1 rounded bg-accent-red/20 text-accent-red`,children:e(`chat.globalDefault`)}),t.isActDefault&&!t.isGlobalDefault&&(0,Y.jsx)(`span`,{className:`text-badge px-1 rounded bg-accent-yellow/20 text-accent-yellow`,children:e(`chat.actDefault`)}),t.isGoalDefault&&(0,Y.jsx)(`span`,{className:`text-badge px-1 rounded bg-accent-purple/20 text-accent-purple`,children:e(`chat.goalDefault`)})]})]})},t.id)}),!M&&!N&&xe.length===0&&(0,Y.jsx)(`div`,{className:`px-3 py-2 text-xs text-dark-muted`,children:e(Ne?`chat.noModelsFound`:`chat.noProviderModels`)})]})]}):(0,Y.jsx)(`div`,{className:`px-3 py-2 text-xs text-dark-muted`,children:e(`chat.noConfiguredProviders`)})]}):(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(`div`,{className:`shrink-0 py-1`,children:je.map(t=>{let n=Oe[t],r=t===s;return(0,Y.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":r,onClick:()=>{c(t),ve()},className:B(`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,Y.jsx)(`span`,{className:B(`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,Y.jsx)(se,{size:11,strokeWidth:3})}),(0,Y.jsx)(`span`,{className:`text-xs font-medium ${r?n.color:`text-dark-text`}`,children:e(n.labelKey)})]},t)})})})]}),document.body)]})});function Nt(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 Pt(){if(typeof navigator>`u`)return`unknown`;let e=typeof navigator.userAgent==`string`?navigator.userAgent:``,t=Nt(e);if(t===`android`||t===`ios`)return t;let n=navigator.userAgentData,r=Nt(n?.platform);if(r)return r;let i=typeof navigator.platform==`string`?navigator.platform:``;return Nt(i)===`macos`&&(navigator.maxTouchPoints??0)>1?`ios`:Nt(i)??Nt(e)??`unknown`}function Q(){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 Ft(){return typeof window<`u`&&window.__TAURI__!==void 0}var It={windows:`chat.desktopDownloadOsWindows`,macos:`chat.desktopDownloadOsMacos`,linux:`chat.desktopDownloadOsLinux`,android:`chat.desktopDownloadOsAndroid`,ios:`chat.desktopDownloadOsIos`,unknown:`chat.desktopDownloadOsUnknown`},Lt=[`windows`,`macos`,`linux`];function Rt(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 zt(e){try{return new URL(e).host}catch{return e}}function Bt(e){return e.url||e.mirrors[0]||``}function Vt(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 Ht=(0,J.memo)(function({onHandoffToAi:e}){let{t}=L(),[n,i]=(0,J.useState)(`idle`),[a,o]=(0,J.useState)(null),[s,c]=(0,J.useState)(!1),l=(0,J.useRef)(null),u=(0,J.useRef)(!0),d=(0,J.useRef)(!1),f=(0,J.useRef)(!1);(0,J.useEffect)(()=>(u.current=!0,()=>{u.current=!1}),[]);let m=(0,J.useMemo)(()=>Pt(),[]),g=(0,J.useMemo)(()=>Q(),[]),_=(0,J.useMemo)(()=>Ft(),[]),v=t(It[m]),b=m===`android`||m===`ios`,x=_?t(`chat.desktopDownloadOtherPlatforms`):t(`chat.desktopDownloadTitle`,{os:v}),S=t(_?`chat.desktopDownloadOtherPlatforms`:`chat.desktopDownloadRecommend`),w=a?.artifacts??{},T=w[m]?.[0],E=a?.page||xe(),D=g===`arm64`&&(m===`windows`||m===`linux`),O=(0,J.useCallback)(()=>{d.current||(d.current=!0,i(`loading`),K.system.desktopDownload().then(e=>{u.current&&(e.success&&e.data?(o(e.data),i(`ready`)):i(`failed`))}).catch(()=>{u.current&&i(`failed`)}))},[]);(0,J.useEffect)(()=>{if(!s)return;let e=e=>{l.current?.contains(e.target)||c(!1)},t=e=>{e.key===`Escape`&&c(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[s]);let k=(0,J.useCallback)(()=>{window.open(E,`_blank`,`noopener`)},[E]),ee=(0,J.useCallback)(e=>{let n=Bt(e);c(!1),n?(Vt(n,e.name),e.url&&e.source===`mirror`&&z.info(t(`chat.desktopDownloadViaMirrorToast`))):(k(),z.warning(t(`chat.desktopDownloadUnavailable`)))},[k,t]),A=(0,J.useCallback)(()=>{b?(k(),z.info(t(`chat.desktopDownloadMobileHint`))):n===`failed`?(k(),z.warning(t(`chat.desktopDownloadUnavailable`))):n===`ready`?T?ee(T):(k(),z.warning(t(`chat.desktopDownloadUnavailable`))):(f.current=!0,O(),z.info(t(`chat.desktopDownloadFetching`)))},[ee,b,k,T,O,n,t]);(0,J.useEffect)(()=>{(n===`ready`||n===`failed`)&&f.current&&(f.current=!1,A())},[n,A]);let te=(0,J.useCallback)(()=>{let n=T?Bt(T):E,r=(T?.mirrors??[]).slice(0,3).join(` `);e(t(`chat.desktopDownloadPrompt`,{os:v,url:n||E,mirrors:r||t(`chat.desktopDownloadPromptNoMirror`)})),c(!1),z.success(t(`chat.desktopDownloadHandToAiHint`))},[e,v,T,E,t]),ne=(e,n,r)=>{let i=Rt(e.size),a=ge(e.name);return(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>ee(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,Y.jsx)(y,{size:12,className:`shrink-0 text-dark-muted`,"aria-hidden":`true`}),(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,children:[(0,Y.jsxs)(`span`,{className:`font-medium`,children:[r?`${t(It[n])} · `:``,a]}),e.source===`mirror`&&(0,Y.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,Y.jsx)(`span`,{className:`mt-0.5 block truncate text-badge text-dark-muted`,children:e.name})]}),i&&(0,Y.jsx)(`span`,{className:`shrink-0 text-badge text-dark-muted`,children:t(`chat.desktopDownloadSize`,{size:i})})]},`${n}-${e.name}`)},re=Lt.filter(e=>e!==m&&(w[e]?.length??0)>0),ie=T?.mirrors??[];return(0,Y.jsxs)(`div`,{className:`relative flex shrink-0 items-center`,ref:l,onPointerEnter:O,onFocus:O,children:[(0,Y.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:x,"aria-label":x,children:[(0,Y.jsx)(y,{size:14,className:`shrink-0`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`hidden whitespace-nowrap sm:inline`,children:S})]}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>{s||O(),c(!s)},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":s,children:(0,Y.jsx)(C,{size:11,className:B(`transition-transform`,s&&`rotate-180`),"aria-hidden":`true`})}),s&&(0,Y.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,Y.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,Y.jsx)(`div`,{className:`py-1`,children:(w[m]??[]).length>0?(w[m]??[]).map(e=>ne(e,m,!1)):(0,Y.jsx)(`div`,{className:`px-3 py-1.5 text-meta leading-relaxed text-dark-muted`,children:t(b?`chat.desktopDownloadMobileMenuHint`:n===`failed`?`chat.desktopDownloadUnavailable`:`chat.desktopDownloadLoading`)})}),D&&(0,Y.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,Y.jsxs)(Y.Fragment,{children:[(0,Y.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,Y.jsx)(`div`,{className:`py-1`,children:[...re].flatMap(e=>(w[e]??[]).map(t=>ne(t,e,!0)))})]}),(0,Y.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,Y.jsxs)(`div`,{className:`py-1`,children:[ie.slice(0,2).map(e=>(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>{c(!1),Vt(e,T?.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,Y.jsx)(h,{size:12,className:`shrink-0 text-dark-muted`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`truncate`,children:t(`chat.desktopDownloadViaMirror`,{host:zt(e)})})]},e)),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>{c(!1),k()},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,Y.jsx)(h,{size:12,className:`shrink-0 text-dark-muted`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`truncate`,children:t(`chat.desktopDownloadOpenRelease`)})]})]}),(0,Y.jsx)(`div`,{className:`border-t border-dark-border`,children:(0,Y.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,Y.jsx)(p,{size:12,className:`shrink-0`,"aria-hidden":`true`}),(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`span`,{className:`font-medium`,children:t(`chat.desktopDownloadHandToAi`)}),(0,Y.jsx)(`span`,{className:`mt-0.5 block text-badge text-dark-muted`,children:t(`chat.desktopDownloadHandToAiDesc`)})]})]})}),m===`macos`&&(0,Y.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,Y.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,Y.jsx)(r,{size:10,className:`animate-spin`,"aria-hidden":`true`}),t(`chat.desktopDownloadFetching`)]})]})]})});function Ut(e,t){if(!e)return t;let n=e.includes(`\\`)?`\\`:`/`;return e.endsWith(n)?e+t:e+n+t}function Wt(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 Gt(e){return e.replace(/[\\/]+/g,`/`).replace(/\/+$/,``).toLowerCase()}function Kt({isOpen:e,initial:t,onClose:n,onConfirm:i}){let{t:a}=L(),{visible:o,phase:s}=Be(e),[l,u]=(0,J.useState)(t),[d,f]=(0,J.useState)(null),[p,m]=(0,J.useState)([]),[h,g]=(0,J.useState)(!1),[_,v]=(0,J.useState)(``),[y,b]=(0,J.useState)(t),x=(0,J.useRef)(null),S=(0,J.useCallback)(async e=>{g(!0),v(``);try{let t=await K.dirs.list(e);if(!t.success||!t.data){v(t.error||a(`chat.dirPickerLoadError`));return}u(t.data.path),f(t.data.parent),m(t.data.dirs||[]),b(t.data.path)}catch(e){v(e instanceof Error?e.message:a(`chat.dirPickerLoadError`))}finally{g(!1)}},[a]);(0,J.useEffect)(()=>{e&&S(t)},[e,t,S]),(0,J.useEffect)(()=>{x.current?.focus()},[]),(0,J.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 C=(0,J.useCallback)(()=>{let e=y.trim();e&&S(e)},[y,S]),T=(0,J.useCallback)(()=>{d&&S(d)},[d,S]);return o?(0,Y.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center overflow-hidden p-4`,role:`dialog`,"aria-modal":`true`,children:[(0,Y.jsx)(`div`,{className:`absolute inset-0 ui-scrim ui-overlay-backdrop`,"data-phase":s,onClick:n}),(0,Y.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":s,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2.5 border-b border-dark-border shrink-0`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-2 text-compact font-semibold text-dark-text`,children:[(0,Y.jsx)(N,{size:15,className:`text-accent-blue`,"aria-hidden":`true`}),a(`chat.dirPickerTitle`)]}),(0,Y.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":a(`a11y.close`),children:(0,Y.jsx)(ae,{size:15,"aria-hidden":`true`})})]}),(0,Y.jsxs)(`div`,{className:`p-4 flex flex-col gap-3 min-h-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`relative flex-1`,children:[(0,Y.jsx)(w,{size:13,className:`absolute start-2.5 top-1/2 -translate-y-1/2 text-dark-muted/60`,"aria-hidden":`true`}),(0,Y.jsx)(`input`,{ref:x,value:y,onChange:e=>b(e.target.value),onKeyDown:e=>{e.key===`Enter`&&C()},placeholder:a(`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,Y.jsx)(`button`,{type:`button`,onClick:C,disabled:h||!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:a(`chat.dirPickerGo`)})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.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:l,children:l||a(`chat.noWorkspaceDir`)}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>void T(),disabled:h||!l,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,Y.jsx)(c,{size:12,"aria-hidden":`true`}),a(`chat.dirPickerUp`)]})]}),(0,Y.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:h?(0,Y.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-xs text-dark-muted`,children:[(0,Y.jsx)(r,{size:14,className:`animate-spin`,"aria-hidden":`true`}),a(`chat.loading`)]}):_?(0,Y.jsx)(`div`,{className:`px-3 py-4 text-xs text-accent-red`,children:_}):p.length===0?(0,Y.jsx)(`div`,{className:`px-3 py-4 text-xs text-dark-muted/60 text-center`,children:a(`chat.dirPickerNoDirs`)}):p.map(e=>{let t=Ut(l,e);return(0,Y.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,Y.jsx)(A,{size:13,className:`shrink-0 text-accent-yellow/80 group-hover:text-accent-yellow`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`truncate`,children:e}),(0,Y.jsx)(P,{size:12,className:`shrink-0 ms-auto text-dark-muted/40`,"aria-hidden":`true`})]},e)})}),(0,Y.jsx)(Pe,{variant:`accent`,className:`w-full`,onClick:()=>i(l),disabled:!l,loading:h,children:a(`chat.dirPickerConfirm`)})]})]})]}):null}var qt=(0,J.memo)(function({workspaceDir:e,onSelect:t,onNewSessionInDir:n}){let{t:r}=L(),i=Ae(e=>e.recentDirs),a=Ue(e=>e.projects),o=Ue(e=>e.hidden),s=Ue(e=>e.sort),c=Ue(e=>e.disabled),l=Ue(e=>e.lastError),[u,d]=(0,J.useState)(!1),[f,p]=(0,J.useState)(!1),m=(0,J.useRef)(null);(0,J.useEffect)(()=>{if(!u)return;let e=Ue.getState();e.disabled||e.lastFetchedAt>0||e.refresh()},[u]),(0,J.useEffect)(()=>{if(!u)return;let e=e=>{m.current&&!m.current.contains(e.target)&&d(!1)},t=e=>{e.key===`Escape`&&d(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[u]);let h=(0,J.useCallback)(e=>{let n=e?.trim?.()||``;n&&(d(!1),p(!1),t(n))},[t]),g=(0,J.useCallback)(e=>{let t=e?.trim?.()||``;t&&n&&(d(!1),p(!1),n(t))},[n]),_=new Set(o),v=c?[]:We(a.filter(e=>e.rootExists&&!_.has(e.projectId)),s),y=new Set(v.map(e=>Gt(e.root))),b=i.filter(e=>!y.has(Gt(e))),x=e?Gt(e):null,S=v.length>0||a.length===0&&!c&&l!==null;return(0,Y.jsxs)(`div`,{className:`relative min-w-0 max-w-[min(70%,26rem)]`,ref:m,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>d(e=>!e),className:B(`flex w-full items-center gap-1 px-2 py-0.5 rounded-full border text-xs whitespace-nowrap transition-colors cursor-pointer`,u?`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${r(`chat.clickToSwitchDir`)}`:r(`chat.clickToSwitchDir`),"aria-label":r(`chat.clickToSwitchDir`),"aria-expanded":u,"aria-haspopup":`menu`,children:[(0,Y.jsx)(N,{size:12,className:`shrink-0 text-accent-blue/80`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`truncate font-mono text-meta`,children:e?Wt(e):r(`chat.noWorkspaceDir`)}),(0,Y.jsx)(T,{size:11,className:B(`shrink-0 transition-transform`,u&&`rotate-180`),"aria-hidden":`true`})]}),u&&(0,Y.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:[S&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`px-3 pt-2.5 pb-1 text-badge font-semibold uppercase tracking-wide text-dark-muted/50 select-none`,children:r(`chat.projectDirs`)}),v.length===0?(0,Y.jsx)(`div`,{className:`px-3 pb-2 text-meta text-accent-red/80 select-none`,children:r(`chat.projectsLoadFailed`)}):(0,Y.jsx)(`div`,{className:`max-h-44 overflow-y-auto custom-scrollbar`,"data-testid":`dir-picker-projects`,children:v.map(e=>{let t=x!==null&&Gt(e.root)===x;return(0,Y.jsxs)(`div`,{className:`flex items-stretch`,children:[(0,Y.jsxs)(`button`,{type:`button`,role:`menuitem`,"data-testid":`dir-picker-project-row`,"data-project-id":e.projectId,onClick:()=>h(e.root),className:B(`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:`${r(`chat.dirSwitchHere`)}\n${e.root}`,children:[(0,Y.jsx)(A,{size:12,className:B(`shrink-0`,t?`text-accent-blue`:`text-accent-yellow/80 group-hover:text-accent-yellow`),"aria-hidden":`true`}),(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`span`,{className:`block truncate`,children:e.name}),(0,Y.jsx)(`span`,{className:`block truncate font-mono text-meta text-dark-muted/60`,children:e.root})]}),t&&(0,Y.jsx)(`span`,{className:`shrink-0 text-badge text-accent-blue`,children:`✓`})]}),n&&(0,Y.jsx)(`button`,{type:`button`,"data-testid":`dir-picker-project-new-session`,"data-project-id":e.projectId,onClick:t=>{t.stopPropagation(),g(e.root)},className:`shrink-0 px-2 text-dark-muted hover:text-accent-blue hover:bg-dark-hover transition-colors`,title:r(`chat.dirNewSessionHere`),"aria-label":`${r(`chat.dirNewSessionHere`)}:${e.name}`,children:(0,Y.jsx)(j,{size:12,"aria-hidden":`true`})})]},e.projectId)})}),(0,Y.jsx)(`div`,{className:`border-t border-dark-border`})]}),(0,Y.jsx)(`div`,{className:`px-3 pt-2.5 pb-1 text-badge font-semibold uppercase tracking-wide text-dark-muted/50 select-none`,children:r(`chat.recentDirs`)}),b.length===0?(0,Y.jsx)(`div`,{className:`px-3 pb-2 text-meta text-dark-muted/50 select-none`,children:r(`chat.noRecentDirs`)}):(0,Y.jsx)(`div`,{className:`max-h-56 overflow-y-auto custom-scrollbar`,children:b.map(e=>{let t=x!==null&&Gt(e)===x;return(0,Y.jsxs)(`div`,{className:`flex items-stretch`,children:[(0,Y.jsxs)(`button`,{type:`button`,role:`menuitem`,"data-testid":`dir-picker-recent-row`,onClick:()=>h(e),className:B(`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:`${r(`chat.dirSwitchHere`)}\n${e}`,children:[(0,Y.jsx)(A,{size:12,className:B(`shrink-0`,t?`text-accent-blue`:`text-accent-yellow/80 group-hover:text-accent-yellow`),"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-meta`,children:e}),t&&(0,Y.jsx)(`span`,{className:`ms-auto shrink-0 text-badge text-accent-blue`,children:`✓`})]}),n&&(0,Y.jsx)(`button`,{type:`button`,"data-testid":`dir-picker-recent-new-session`,onClick:t=>{t.stopPropagation(),g(e)},className:`shrink-0 px-2 text-dark-muted hover:text-accent-blue hover:bg-dark-hover transition-colors`,title:r(`chat.dirNewSessionHere`),"aria-label":`${r(`chat.dirNewSessionHere`)}:${e}`,children:(0,Y.jsx)(j,{size:12,"aria-hidden":`true`})})]},e)})}),(0,Y.jsx)(`div`,{className:`border-t border-dark-border`}),(0,Y.jsxs)(`button`,{type:`button`,role:`menuitem`,onClick:()=>{d(!1),p(!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,Y.jsx)(P,{size:13,"aria-hidden":`true`}),r(`chat.chooseOtherDir`)]})]}),(0,Z.createPortal)((0,Y.jsx)(Kt,{isOpen:f,initial:e||``,onClose:()=>p(!1),onConfirm:h}),document.body)]})}),Jt=`__files__`,Yt=`__sessions__`;function Xt(e){return e===`enqueue`?`summarize`:e===`summarize`?`next-step`:e===`next-step`?`direct`:`enqueue`}function Zt(e){return e.replace(/[\\/]+$/,``).replace(/\\/g,`/`).toLowerCase()}function Qt(e){return[{key:Jt,label:e.files},{key:Yt,label:e.sessions}]}function $t(e){return e?Zt(e):`￿`}function en(e,t){return t===`__files__`?e.filter(e=>e.kind===`file`):[...e.filter(e=>e.kind===`session`)].sort((e,t)=>$t(e.kind===`session`?e.dir:``).localeCompare($t(t.kind===`session`?t.dir:``)))}function tn(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 nn=new Set([`running`]);function rn(e){return nn.has(String(e.status||``))?!0:e.live===!0}function an(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 on(e,t,n=`active`){let r=an(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?rn(t):!1})}var sn={enqueue:`chat.mentionDeliveryEnqueue`,summarize:`chat.mentionDeliverySummarize`,"next-step":`chat.mentionDeliveryNextStep`,direct:`chat.mentionDeliveryDirect`},cn={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 ln(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 un(e){return e===`running`?`chat.mentionStatusRunning`:e===`paused`||e===`interrupted`?`chat.mentionStatusPaused`:e===`error`?`chat.mentionStatusError`:e===`stopped`?`chat.mentionStatusStopped`:`chat.mentionStatusIdle`}function dn(e){return e?/^\d{12,}$/.test(e)?Number(e):e:0}function fn({isOpen:e,items:t,selectedIndex:n,query:a,isSearching:o,onSelect:s,onHover:c,selectedCount:l=0,onFinish:u,tabs:d,activeTab:f,onTabChange:p,scope:m=`active`,onToggleScope:h,deliveryMode:g=`enqueue`,onToggleDelivery:_}){let{t:v}=L(),{visible:y,phase:b}=Be(e);if(!y)return null;let x=!!(p&&d&&d.length>1);return(0,Y.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,Y.jsxs)(`div`,{className:`max-h-60 overflow-y-auto custom-scrollbar`,children:[(0,Y.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,Y.jsx)(`span`,{className:`font-medium text-dark-text`,children:a?`@${a}`:`@ ${v(`chat.mentionFilesGroup`)} / ${v(`chat.mentionSessionsGroup`)}`}),(0,Y.jsxs)(`span`,{className:`opacity-70 flex items-center gap-2`,children:[l>0&&(0,Y.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:l})}),(0,Y.jsx)(`span`,{children:v(x?`chat.mentionTabHint`:`chat.fileMentionHelpMulti`)})]})]}),x&&(0,Y.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:d.map(e=>{let t=e.key===f;return(0,Y.jsx)(`button`,{type:`button`,onMouseDown:t=>{t.preventDefault(),p(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,Y.jsx)(`div`,{className:`px-3 py-6 text-center text-dark-muted text-xs flex flex-col items-center gap-1`,children:o?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(r,{size:16,className:`animate-spin`}),(0,Y.jsx)(`span`,{children:v(`chat.searchingFiles`)})]}):(0,Y.jsx)(`span`,{children:v(x&&f!==`__files__`?`chat.mentionEmptySessions`:`chat.noMatchingFiles`)})}):t.map((e,r)=>{let a=t[r-1],o=a&&a.kind===`session`?a.dir||``:null,l=e.kind===`session`?e.dir||``:null,u=!a||a.kind!==e.kind||l!==null&&o!==l,d=l===null?v(`chat.mentionFilesGroup`):`📁 ${l||v(`chat.mentionTabUnknownDir`)}`;return(0,Y.jsxs)(`div`,{children:[u&&(0,Y.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,Y.jsxs)(`button`,{onClick:()=>s(e),onMouseEnter:()=>c(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,Y.jsx)(oe,{size:12,className:`text-accent-blue shrink-0`}):e.isDir?(0,Y.jsx)(A,{size:12,className:`text-accent-yellow shrink-0`}):(0,Y.jsx)(i,{size:12,className:`text-dark-muted shrink-0`}),(0,Y.jsx)(`span`,{className:`truncate`,children:e.label}),e.kind===`session`?(0,Y.jsxs)(`span`,{className:`ms-auto flex shrink-0 items-center gap-1.5`,children:[e.detail&&(0,Y.jsx)(`span`,{className:`text-badge text-dark-muted truncate`,children:e.detail}),e.updatedAt&&(0,Y.jsx)(`span`,{className:`text-badge text-dark-muted/70`,children:V(dn(e.updatedAt),Date.now(),v)}),e.messageCount!==void 0&&(0,Y.jsx)(`span`,{className:`text-badge text-dark-muted/70`,children:v(`chat.mentionMsgCount`,{count:e.messageCount})}),(0,Y.jsx)(`span`,{className:`px-1.5 py-0.5 rounded-full text-badge whitespace-nowrap ${ln(e.status)}`,children:v(un(e.status))})]}):e.detail&&(0,Y.jsx)(`span`,{className:`text-badge text-dark-muted truncate ms-auto`,children:e.detail})]})]},e.key)})]}),u&&(0,Y.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-t border-dark-border bg-dark-surface`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-2 text-badge text-dark-muted`,children:[x&&h&&(0,Y.jsxs)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:h,className:`px-1.5 py-0.5 rounded text-badge transition-colors ${m===`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(m===`all`?`chat.mentionScopeAll`:`chat.mentionScopeActive`)]}),x&&_&&(0,Y.jsxs)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:_,className:`px-1.5 py-0.5 rounded text-badge transition-colors ${cn[g]}`,title:v(`chat.mentionDeliveryHint`),children:[v(`chat.mentionDeliveryLabel`),v(sn[g])]}),(0,Y.jsx)(`span`,{children:l>0?v(`chat.selectedFilesCount`,{n:l}):v(`chat.enterInsertMulti`)})]}),(0,Y.jsx)(Pe,{variant:`accent`,size:`sm`,onClick:u,children:v(`chat.finishMention`)})]})]})}function pn({open:e,onClose:n,onSelect:r}){let{t:i}=L(),[a,o]=(0,J.useState)([]),[s,c]=(0,J.useState)(!1),[l,u]=(0,J.useState)(``);(0,J.useEffect)(()=>{e&&(u(``),c(!0),K.skills.list().then(e=>{let t=Array.isArray(e.data)?e.data:[];o(t.filter(e=>e.enabled!==!1))}).catch(()=>o([])).finally(()=>c(!1)))},[e]);let d=(0,J.useMemo)(()=>{let e=l.trim().toLowerCase();return e?a.filter(t=>[t.id,t.name,t.description,t.category,...t.tags||[]].join(` `).toLowerCase().includes(e)):a},[a,l]);return(0,Y.jsx)(ze,{isOpen:e,onClose:n,title:i(`skills.pickTitle`),size:`lg`,children:(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.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,Y.jsx)(S,{size:14,className:`text-dark-muted shrink-0`}),(0,Y.jsx)(`input`,{value:l,onChange:e=>u(e.target.value),placeholder:i(`skills.pickPlaceholder`),autoFocus:!0,className:`flex-1 bg-transparent outline-none text-sm placeholder-dark-muted/60`}),s&&(0,Y.jsx)(t,{size:13,className:`animate-spin text-dark-muted`})]}),s?(0,Y.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Y.jsx)(t,{size:20,className:`animate-spin text-accent-blue`})}):d.length===0?(0,Y.jsx)(`div`,{className:`text-center py-12 text-sm text-dark-muted`,children:i(`skills.pickEmpty`)}):(0,Y.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2`,children:d.map(e=>(0,Y.jsxs)(`button`,{onClick:()=>r(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,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2 min-w-0`,children:[(0,Y.jsxs)(`span`,{className:`font-medium text-sm truncate`,children:[e.icon||`⭐`,` `,e.name]}),(0,Y.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,Y.jsxs)(`div`,{className:`text-xs text-dark-muted truncate font-mono`,children:[`$`,e.id]}),e.description&&(0,Y.jsx)(`div`,{className:`text-xs text-dark-muted line-clamp-2`,children:e.description}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2 mt-1`,children:[(0,Y.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,Y.jsxs)(`span`,{className:`flex items-center gap-1 text-meta text-accent-blue shrink-0`,children:[(0,Y.jsx)(M,{size:11}),i(`skills.pickUse`)]})]})]},e.id))})]})})}function mn({isOpen:e,items:t,selectedIndex:n,query:i,isLoading:a,onSelect:o,onHover:s}){let{t:c}=L(),{visible:l,phase:u}=Be(e);return l?(0,Y.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":u,children:(0,Y.jsxs)(`div`,{className:`max-h-60 overflow-y-auto custom-scrollbar`,children:[(0,Y.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,Y.jsx)(`span`,{className:`font-medium text-dark-text truncate`,children:i?`$${i}`:c(`chat.skillMenuTitle`)}),(0,Y.jsx)(`span`,{className:`opacity-70 shrink-0`,children:c(`chat.skillMenuHint`)})]}),t.length===0?(0,Y.jsx)(`div`,{className:`px-3 py-6 text-center text-dark-muted text-xs flex flex-col items-center gap-1`,children:a?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(r,{size:16,className:`animate-spin`}),(0,Y.jsx)(`span`,{children:c(`chat.skillMenuLoading`)})]}):(0,Y.jsx)(`span`,{children:c(`chat.skillMenuEmpty`)})}):t.map((e,t)=>(0,Y.jsxs)(`button`,{onClick:()=>o(e),onMouseEnter:()=>s(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,Y.jsx)(`span`,{className:`shrink-0`,"aria-hidden":`true`,children:e.icon||(0,Y.jsx)(p,{size:12,className:`text-accent-blue`})}),(0,Y.jsx)(`span`,{className:`truncate`,children:e.name||e.id}),(0,Y.jsxs)(`span`,{className:`text-badge font-mono text-dark-muted shrink-0`,children:[`$`,e.id]}),e.description&&(0,Y.jsx)(`span`,{className:`text-badge text-dark-muted truncate ms-auto`,children:e.description})]},e.id))]})}):null}function hn(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 gn(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 _n(e,t,n){let r=e.slice(0,t),i=hn(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`:gn(o,n))===`prefix`?{active:!0,query:a,start:i}:{active:!1,query:``,start:-1}}function vn(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 yn(e,t){let n=t.replace(/^\$/,``).trim().split(/\s+/)[0]??``;return e.filter(e=>e.enabled!==!1).map(e=>({skill:e,score:vn(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 bn=class extends Error{code;constructor(e,t){super(t??e),this.code=e,this.name=`ScreenshotError`}};function xn(e){let t=document.createElement(`canvas`);t.width=e.videoWidth,t.height=e.videoHeight;let n=t.getContext(`2d`);if(!n)throw new bn(`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 bn(`failed`,`canvas.toBlob returned null`)),`image/png`)})}async function Sn(){if(!navigator.mediaDevices?.getDisplayMedia)throw new bn(`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 bn(`cancelled`,`User dismissed the screen picker`):new bn(`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 bn(`failed`,`Captured video frame has no pixels`);let i=await xn(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 Cn=16e3;function wn(){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 Tn(e){if(e.sampleRate===Cn&&e.numberOfChannels===1)return e.getChannelData(0);let t=Math.max(1,Math.ceil(e.length*Cn/e.sampleRate)),n=new OfflineAudioContext(1,t,Cn),r=n.createBufferSource();return r.buffer=e,r.connect(n.destination),r.start(0),(await n.startRendering()).getChannelData(0)}function En(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 Dn(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 On(e){let[t,n]=(0,J.useState)(`idle`),[r,i]=(0,J.useState)(0),a=(0,J.useRef)(null),o=(0,J.useRef)(null),s=(0,J.useRef)([]),c=(0,J.useRef)(null),l=(0,J.useRef)(0),u=(0,J.useCallback)(()=>{o.current?.getTracks().forEach(e=>e.stop()),o.current=null},[]),d=(0,J.useCallback)(()=>{c.current&&=(clearInterval(c.current),null)},[]);return(0,J.useEffect)(()=>()=>{d(),a.current&&a.current.state!==`inactive`&&a.current.stop(),u()},[d,u]),{state:t,elapsedMs:r,start:(0,J.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,wn()?{mimeType:wn()}: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,J.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:wn()||`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=En(await Tn(a),Cn),c=await Dn(new Blob([o],{type:`audio/wav`})),l=await K.stt.transcribe(e,c,`wav`);if(!l.success)throw Error(l.error||`语音转写失败`);return l.data?.text??``}finally{n(`idle`)}},[e,d,u]),cancel:(0,J.useCallback)(()=>{let e=a.current;e&&e.state!==`inactive`&&e.stop(),a.current=null,s.current=[],d(),u(),n(`idle`)},[d,u])}}var kn=({isOpen:e,commands:t,selectedIndex:n,filter:r,onSelect:i,onHover:a,containerRef:o})=>{let{t:s}=L();return!e||t.length===0?null:(0,Y.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,Y.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,Y.jsx)(`span`,{className:`font-medium text-dark-text`,children:r?`/${r}`:s(`slashCommands.quickCommands`)}),(0,Y.jsx)(`span`,{className:`opacity-70`,children:s(`slashCommands.help`)})]}),t.map((e,t)=>(0,Y.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,Y.jsx)(`span`,{className:`text-lg leading-none shrink-0`,"aria-hidden":`true`,children:e.icon}),(0,Y.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsxs)(`span`,{className:`text-sm font-medium text-dark-text`,children:[`/`,e.name]}),e.args&&(0,Y.jsx)(`span`,{className:`text-xs text-dark-muted`,children:e.args}),!e.local&&(0,Y.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,Y.jsx)(`div`,{className:`text-xs text-dark-muted truncate`,children:e.description})]}),t===n&&(0,Y.jsx)(d,{size:14,className:`text-dark-muted shrink-0 mt-0.5`,"aria-hidden":`true`})]},e.id))]})},An=`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(`.`),jn=RegExp(`(?:\\.(${An.join(`|`)})|dockerfile|makefile)$`,`i`),Mn=[`png`,`jpg`,`jpeg`,`webp`,`gif`,`bmp`,`svg`],Nn=Object.freeze([]),Pn=RegExp(`\\.(${Mn.join(`|`)})$`,`i`),Fn=10485760,In=An.map(e=>`.${e}`).join(`,`)+`,.Dockerfile,.Makefile,`+Mn.map(e=>`.${e}`).join(`,`),Ln=`.agent/attachments`,Rn=52428800,zn=10,Bn=`chat-col`,Vn=72,Hn=.7,Un=`deepseekcode.composerPref`,Wn=550;function Gn(){try{let e=window.localStorage.getItem(Un);return e===`collapsed`||e===`expanded`?e:`auto`}catch{return`auto`}}function Kn(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(hover: hover) and (pointer: fine)`).matches}var qn=/["<>]/g;function Jn(e){return`<image name="${(e||`image`).replace(qn,``)}" />`}var Yn=e=>/\.xlsx?$/i.test(e)?o:/\.(csv|docx|txt|md|mdx|rst|adoc|json|jsonc|yaml|yml|toml|xml|html|css|scss|less|env|gitignore|gitattributes|editorconfig)$/i.test(e)?s:/\.(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)?f:i,Xn=50,Zn=5e3,Qn={enqueue:`chat.mentionDeliveryEnqueue`,summarize:`chat.mentionDeliverySummarize`,"next-step":`chat.mentionDeliveryNextStep`,direct:`chat.mentionDeliveryDirect`},$n={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 er(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 tr(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 nr=(0,J.memo)(function({sessionId:e,onSend:t,onRunShell:n,onStop:i,onPause:o,onResume:s,slashOptions:l,workspaceDir:d,onWorkspaceSelect:f,onNewSessionInDir:h,focusRequest:g,inputDisabled:_,inputDisabledHint:y}){let{t:b}=L(),x=R(t=>t.sessionInputs?.[e]??``),S=R(e=>e.setSessionInput),w=R(t=>t.generatingSessions?.includes(e)??!1),D=R(t=>t.pausedSessions?.includes(e)??!1),A=R(t=>t.sessionSuggestions?.[e]),ie=R(t=>t.sessionTurns?.[e]??``),j=R(e=>e.clearSessionSuggestion),M=!x&&!w&&!_&&A&&(A.turnId??``)===ie?A.text:``,oe=R(t=>t.pendingBySession?.[e])??Nn,N=oe.length,P=(0,J.useRef)(null),[F,I]=(0,J.useState)(null),ce=(0,J.useRef)(null),[le,fe]=(0,J.useState)(!1),pe=(0,J.useRef)(null),me=(0,J.useRef)(!1),he=(0,J.useRef)(0),[V,H]=(0,J.useState)([]),[ge,U]=(0,J.useState)(!1),[W,ve]=(0,J.useState)(!1),[be,xe]=(0,J.useState)(!1),[G,Se]=(0,J.useState)(!1),[Oe,Ae]=(0,J.useState)(``),[je,Me]=(0,J.useState)(0),[Ne,Pe]=(0,J.useState)([]),[Re,ze]=(0,J.useState)(!1),Be=(0,J.useRef)(-1),Ue=(0,J.useRef)([]);Ue.current=Ne;let We=(0,J.useRef)(null),Ge=(0,J.useCallback)(()=>{let t=R.getState().clearPending(e);t>0&&z.info(b(`toast.queueRevoked`,{count:t}))},[e,b]),Ke=(0,J.useCallback)(t=>{let n=R.getState();n.promotePending(e,t),!n.isGenerating(e)&&!n.isPaused(e)?de(e):z.info(b(`toast.queuePromoted`))},[e,b]),qe=(0,J.useCallback)(t=>{R.getState().removePending(e,t)&&z.info(b(`toast.queueRemoved`))},[e,b]),q=(0,J.useCallback)(t=>{S(e,t)},[e,S]),Xe=(0,J.useCallback)(()=>{let e=A?.text??``;e&&(q(e),requestAnimationFrame(()=>{let t=P.current;t&&(t.focus(),t.selectionStart=t.selectionEnd=e.length)}))},[q,A]),Ze=(0,J.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=et(e.content),n=it(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??[])dn.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&&H(e=>[...e,...o].slice(-10));let s=R.getState().getSessionInput(e);q(s.trim()?`${s.trimEnd()}\n\n${a}`:a),requestAnimationFrame(()=>P.current?.focus())},[e,q]),Qe=(0,J.useCallback)(e=>e.replace(/<attachment path="[^"]*"\s*\/>/g,``).replace(/<image name="[^"]*"\s*\/>/g,``).trim(),[]),[$e,nt]=(0,J.useState)(we),[ft,pt]=(0,J.useState)(!1),mt=(0,J.useRef)(null),ht=(0,J.useCallback)(e=>{nt(e),De(e),pt(!1)},[]);(0,J.useEffect)(()=>{if(!ft)return;let e=e=>{mt.current&&!mt.current.contains(e.target)&&pt(!1)},t=e=>{e.key===`Escape`&&pt(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[ft]);let X=On($e),gt=(0,J.useRef)(null),_t=(0,J.useCallback)(async()=>{try{if(!gt.current){let e=await K.stt.status();e.success&&e.data&&(gt.current=e.data)}let e=gt.current;if(!e)return!0;if(e.service!==`ok`&&e.service!==`stopped`)return z.warning(b(`stt.backendMissing`)),window.dispatchEvent(new CustomEvent(`switch-tab`,{detail:{tab:`settings`,section:`stt`}})),!1;let t=e.backends?.[$e];return t&&!t.installed?(z.warning(b(`stt.backendMissing`)),window.dispatchEvent(new CustomEvent(`switch-tab`,{detail:{tab:`settings`,section:`stt`}})),!1):!0}catch{return!0}},[b,$e]);(0,J.useEffect)(()=>{let e=()=>{gt.current=null};return window.addEventListener(`stt-backends-changed`,e),()=>window.removeEventListener(`stt-backends-changed`,e)},[]),(0,J.useEffect)(()=>{let e=e=>{let t=Te(e.detail?.lang);nt(t)};return window.addEventListener(`stt-lang-changed`,e),()=>window.removeEventListener(`stt-lang-changed`,e)},[]);let vt=(0,J.useCallback)(e=>{let t=P.current,n=t?.selectionStart??x.length,r=x.slice(0,n)+e+x.slice(n);q(r),requestAnimationFrame(()=>{t?.focus();let r=n+e.length;t&&(t.selectionStart=t.selectionEnd=r)})},[x,q]);(0,J.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 yt=(0,J.useCallback)(async()=>{if(w)z.info(b(`stt.generatingTitle`));else if(X.state===`recording`)try{let e=await X.stop();e?vt(e):z.info(b(`stt.noSpeech`))}catch(e){z.error(e instanceof Error?e.message:String(e))}else if(X.state===`idle`&&await _t())try{await X.start()}catch(e){z.error(e instanceof Error?e.message:String(e))}},[X,vt,_t,b,w]),{isOpen:bt,filter:xt,filteredCommands:St,selectedIndex:Ct,setSelectedIndex:wt,selectNext:Tt,selectPrev:Et,executeCommand:Dt,openMenu:Ot,closeMenu:Z,setFilter:jt,allCommands:Nt,containerRef:Pt}=Ye(l),[Q,Ft]=(0,J.useState)(!1),[It,Lt]=(0,J.useState)(``),[Rt,zt]=(0,J.useState)([]),[Bt,Vt]=(0,J.useState)(0),[Ut,Wt]=(0,J.useState)(!1),[Gt,Kt]=(0,J.useState)(0),Yt=(0,J.useRef)(-1),[Zt,$t]=(0,J.useState)(`active`),nn=(0,J.useRef)(`active`),[rn,an]=(0,J.useState)(`summarize`),sn=(0,J.useRef)(`summarize`);sn.current=rn;let[cn,ln]=(0,J.useState)([]),un=(0,J.useCallback)(()=>{ln(Array.from(hn.current.values()))},[]);nn.current=Zt;let dn=(0,J.useRef)(new Set),hn=(0,J.useRef)(new Map),gn=(0,J.useRef)([]),vn=(0,J.useRef)(0),xn=(0,J.useRef)(!1);(0,J.useEffect)(()=>{let t=t=>{let n=R.getState().getSessionInput(e),r=`@${t} `,i=n.trim()?`${n.trimEnd()} ${r}`:r;dn.current.add(t),S(e,i),Kt(dn.current.size+hn.current.size),requestAnimationFrame(()=>P.current?.focus())};return Fe(t),()=>Le(t)},[e,S]),(0,J.useEffect)(()=>{let t=t=>{let n=R.getState().getSessionInput(e),r=n.trim()?`${n.trimEnd()}\n\n${t}`:t;S(e,r),requestAnimationFrame(()=>P.current?.focus())};return Ve(t),()=>Ie(t)},[e,S]);let Cn=(0,J.useCallback)(t=>{let n=R.getState().getSessionInput(e),r=n.trim()?`${n.trimEnd()}\n\n${t}`:t;S(e,r),requestAnimationFrame(()=>P.current?.focus())},[e,S]),wn=(0,J.useRef)([]),[Tn,En]=(0,J.useState)(Jt),Dn=(0,J.useRef)([]),An=(0,J.useRef)([]),Mn=(0,J.useRef)(0),qn=(0,J.useRef)(``);qn.current=It;let nr=(0,J.useCallback)((e,t)=>{let n=e.map(e=>({kind:`file`,key:e.path,label:e.name,detail:e.path,isDir:e.type===`directory`})),r=Dn.current,i=t.toLowerCase(),a=(i?r.filter(e=>e.label.toLowerCase().includes(i)||e.key.toLowerCase().includes(i)):r).slice(0,Xn);return[...n,...a]},[]),rr=(0,J.useCallback)(async()=>{let e=Date.now();if(An.current.length>0&&e-Mn.current<Zn)return An.current;try{let e=await K.sessions.list(),t=e.success&&e.data?e.data:[];(t.length>0||An.current.length===0)&&(An.current=t),Mn.current=Date.now()}catch{}return An.current},[]),ir=(0,J.useCallback)(async()=>{let t=await rr();return Dn.current=on(t,e,nn.current),Dn.current},[rr,e]),ar=(0,J.useCallback)(e=>{wn.current=e,zt(e)},[]),or=(0,J.useCallback)((e,t)=>{ar(nr(e.slice(0,Xn),t))},[ar,nr]),sr=(0,J.useCallback)(()=>{let t=nn.current===`active`?`all`:`active`;nn.current=t,$t(t),(async()=>{let n=await rr();Dn.current=on(n,e,t),or(gn.current,qn.current.toLowerCase())})()},[rr,e,or]),cr=(0,J.useCallback)(()=>{let e=Xt(sn.current);(e===`direct`||e===`summarize`)&&dn.current.size>0&&(e=`enqueue`),sn.current=e,an(e)},[]),lr=(0,J.useMemo)(()=>Qt({files:b(`chat.mentionTabFiles`),sessions:b(`chat.mentionTabSessions`)}),[b]),ur=lr.some(e=>e.key===Tn)?Tn:Jt,dr=(0,J.useMemo)(()=>en(Rt,ur),[Rt,ur]);(0,J.useEffect)(()=>{dn.current=new Set,hn.current=new Map,un(),xn.current=!1,En(Jt),Dn.current=[],An.current=[],Mn.current=0,vn.current++,Ft(!1),Lt(``),zt([]),wn.current=[],Kt(0),Z()},[e,Z,un]);let fr=(0,J.useDeferredValue)(x),pr=ue(e=>e.estimateTokens),mr=(0,J.useMemo)(()=>pr(fr),[fr,pr]),hr=(0,J.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,J.useEffect)(()=>{hr()},[x,V.length,hr]),(0,J.useEffect)(()=>()=>{document.body.style.userSelect=``},[]);let gr=(0,J.useCallback)(e=>{let t=P.current;t&&e.button===0&&(e.preventDefault(),ce.current={startY:e.clientY,startHeight:t.getBoundingClientRect().height,current:0},e.currentTarget.setPointerCapture(e.pointerId),document.body.style.userSelect=`none`,fe(!0))},[]),_r=(0,J.useCallback)(e=>{let t=ce.current,n=P.current;if(!t||!n)return;t.movedY=e.clientY-t.startY;let r=Math.max(Vn,Math.min(Math.round(window.innerHeight*Hn),t.startHeight-(e.clientY-t.startY)));t.current=r,n.style.maxHeight=`${r}px`,n.style.height=`${r}px`},[]),vr=(0,J.useCallback)(e=>{let t=ce.current;if(ce.current=null,document.body.style.userSelect=``,fe(!1),t){try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}t.current>0&&Math.abs(t.movedY??0)>3&&I(t.current)}},[]),yr=(0,J.useCallback)(()=>I(null),[]),br=(0,J.useCallback)(e=>{let t=P.current;if(!t)return;let n=F??t.getBoundingClientRect().height,r=Math.max(Vn,Math.min(Math.round(window.innerHeight*Hn),n+e));I(r)},[F]),xr=(0,J.useCallback)(async e=>{let t=++vn.current;Wt(!0);try{let n=await K.files.search(e);if(t!==vn.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===vn.current&&Wt(!1)}},[]),Sr=(0,J.useCallback)(async(e,t)=>{if(xn.current){let n=Yt.current;if(n<0||t<n){xn.current=!1,Ft(!1);return}let r=e.slice(n,t);if(/\s/.test(r)){xn.current=!1,Ft(!1);return}Yt.current=n,Lt(r),Ft(!0),Vt(0);let i=r.toLowerCase(),[a]=await Promise.all([xr(i),ir()]);if(!a)return;or(a,i);return}let n=er(e,t);if(!n.active){Q&&Ft(!1);return}Yt.current=n.start,Lt(n.query),Ft(!0),Vt(0);let r=n.query.toLowerCase(),[i]=await Promise.all([xr(r),ir()]);i&&or(i,r)},[Q,xr,ir,or]),Cr=(0,J.useCallback)(async()=>{if(Ue.current.length>0)return Ue.current;if(We.current)return We.current;ze(!0);let e=K.skills.list().then(e=>{let t=Array.isArray(e.data)?e.data:[];return Pe(t),t}).catch(()=>[]).finally(()=>{We.current=null,ze(!1)});return We.current=e,e},[]),wr=(0,J.useMemo)(()=>yn(Ne,Oe),[Ne,Oe]),Tr=(0,J.useCallback)((e,t)=>{let n=_n(e,t,Ue.current);n.active?(Be.current=n.start,Ae(n.query),Me(0),Se(!0),Ue.current.length===0&&Cr()):G&&(Se(!1),Ae(``))},[G,Cr]);(0,J.useEffect)(()=>{if(!G||Ne.length===0)return;let e=P.current;if(!e)return;let t=_n(e.value,e.selectionStart??e.value.length,Ne);t.active?(Be.current=t.start,Ae(t.query)):(Se(!1),Ae(``))},[Ne,G]);let Er=(0,J.useCallback)(e=>{let t=e.target.value,n=e.target.selectionStart??t.length;q(t),Sr(t,n),Tr(t,n);let r=tr(t,n);r.active?(bt||Ot(),jt(r.query),wt(0)):bt&&Z()},[q,Sr,Tr,bt,Ot,jt,wt,Z]),Dr=(0,J.useCallback)(e=>{let t=P.current,n=x,r=Yt.current>=0?Yt.current:t?.selectionStart??n.length,i=Math.min(n.length,r+1+It.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),un(),o=`@${a} `}else a=e.key,dn.current.add(a),o=`@${a} `;let s=n.slice(0,r)+o+n.slice(i);q(s),Ft(!0),Lt(``),(async()=>{let e=await xr(``);e&&or(e,``)})(),Vt(0),Kt(dn.current.size+hn.current.size),Yt.current=r+o.length,xn.current=!0,requestAnimationFrame(()=>{t?.focus(),t&&(t.selectionStart=t.selectionEnd=r+o.length)})},[x,It,q,xr,or]),Or=(0,J.useCallback)(()=>{xn.current=!1,Ft(!1),Lt(``),Kt(0),En(Jt)},[]),kr=(0,J.useCallback)(e=>{let t=P.current;if(!e.args){let n=Dt(e,``);if(n?.message&&(n.success?z.success(n.message):z.error(n.message)),n?.draft){q(n.draft),I(null),requestAnimationFrame(()=>{t?.focus(),t&&(t.selectionStart=t.selectionEnd=n.draft.length)});return}q(``),I(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);q(i),Z(),requestAnimationFrame(()=>{t?.focus();let n=r+e.name.length+2;t&&(t.selectionStart=t.selectionEnd=n)})},[x,q,Dt,Z]),Ar=(0,J.useCallback)(e=>{let t=P.current,n=Be.current>=0?Be.current:t?.selectionStart??x.length,r=Math.min(x.length,n+1+Oe.length),i=`$${e.id} `,a=x.slice(0,n)+i+x.slice(r);q(a),Se(!1),Ae(``),Be.current=-1,requestAnimationFrame(()=>{t?.focus();let e=n+i.length;t&&(t.selectionStart=t.selectionEnd=e)})},[x,Oe,q]),jr=(0,J.useCallback)(()=>{Se(!1),Ae(``),Be.current=-1},[]),Mr=(0,J.useCallback)(e=>{let t=P.current,n=t?.selectionStart??x.length,r=`$${e.id} `,i=x.slice(0,n)+r+x.slice(n);q(i),xe(!1),xn.current=!1,Ft(!1),Lt(``),Se(!1),Ae(``),requestAnimationFrame(()=>{t?.focus();let e=n+r.length;t&&(t.selectionStart=t.selectionEnd=e)})},[x,q]),Nr=2048,Pr=(0,J.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<=Nr){n.close(),r();return}let a=Nr/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()}})()}),[]),Fr=(0,J.useCallback)(e=>{let t=Array.from(e);H(e=>{let n=zn-e.length,r=e.slice();for(let e of t.slice(0,n)){let t=Pn.test(e.name);if(!t&&!jn.test(e.name)){z.warning(b(`fileJob.unsupportedType`,{name:e.name}));continue}if(e.size>(t?Fn:Rn)){z.error(b(`fileJob.fileTooLarge`,{name:e.name}));continue}if(r.some(t=>t.name===e.name&&t.size===e.size)){z.warning(b(`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&&Pr(e).then(e=>{H(t=>t.map(t=>t.id===n.id?{...t,imageDataUri:e}:t))}).catch(()=>{H(e=>e.filter(e=>e.id!==n.id)),z.error(b(`fileJob.uploadFailed`,{name:e.name}))}),r.push(n)}return r.length>=zn&&z.warning(b(`fileJob.maxAttachments`,{n:zn})),r})},[b,Pr]),Ir=(0,J.useCallback)(e=>{e.target.files&&e.target.files.length>0&&(Fr(e.target.files),e.target.value=``)},[Fr]),Lr=(0,J.useCallback)(()=>{pe.current?.click()},[]),Rr=(0,J.useCallback)(async()=>{if(!(W||w)){ve(!0);try{let e=await Sn();Fr([e])}catch(e){e instanceof bn&&e.code===`cancelled`||z.error(b(`fileJob.screenshotFailed`))}finally{ve(!1)}}},[Fr,b,W,w]),zr=(0,J.useRef)(Rr);(0,J.useEffect)(()=>{zr.current=Rr},[Rr]),(0,J.useEffect)(()=>{let e=e=>{(e.ctrlKey||e.metaKey)&&e.shiftKey&&(e.key===`s`||e.key===`S`)&&(e.preventDefault(),zr.current())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);let Br=(0,J.useCallback)(e=>{H(t=>t.filter(t=>t.id!==e))},[]),Vr=(0,J.useCallback)(e=>{e.preventDefault(),U(!0)},[]),Hr=(0,J.useCallback)(e=>{e.preventDefault(),U(!1)},[]),Ur=(0,J.useCallback)(e=>{e.preventDefault(),U(!1),e.dataTransfer.files&&e.dataTransfer.files.length>0&&Fr(e.dataTransfer.files)},[Fr]),Wr=(0,J.useCallback)(async()=>{if(V.length===0)return``;let e=[];for(let t of V){if(t.imageDataUri)continue;if(t.path){e.push(`<attachment path="${t.path}" />`);continue}if(!t.file)continue;H(e=>e.map(e=>e.id===t.id?{...e,uploading:!0,error:void 0}:e));let n=`${Ln}/${t.name}`,r=await K.files.upload(t.file,n);if(r.success&&r.data?.path){let n=r.data.path.replace(/\\/g,`/`);H(e=>e.map(e=>e.id===t.id?{...e,uploading:!1,path:n}:e)),e.push(`<attachment path="${n}" />`)}else H(e=>e.map(e=>e.id===t.id?{...e,uploading:!1,error:r.error||b(`fileJob.uploadFailed`)}:e)),z.error(`${t.name}: ${r.error||b(`fileJob.uploadFailed`)}`)}return e.length>0?`${e.join(`
9
+ `)}\n\n`:``},[V,b]),Gr=(0,J.useCallback)(e=>{let t=e.clipboardData.getData(`text/plain`);if(e.clipboardData.files&&e.clipboardData.files.length>0){e.preventDefault(),Fr(e.clipboardData.files);return}if(!t||!rt(t))return;e.preventDefault();let{label:n}=at(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);q(s),requestAnimationFrame(()=>{r.selectionStart=r.selectionEnd=i+n.length})},[q,Fr]),Kr=(0,J.useCallback)(async()=>{let r=x.trim()?x:M,i=st(r),a=i.map(e=>({id:e,content:tt(e)??``})).filter(e=>e.content!==``),o=ot(r);ct(i),xn.current=!1,Ft(!1),Z();let s=o.trim(),c=V.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=Dt(t,e.args);if(n?.message&&(n.success?z.success(n.message):z.error(n.message)),n?.draft){q(n.draft),I(null),requestAnimationFrame(()=>{let e=P.current;e&&(e.focus(),e.setSelectionRange(n.draft.length,n.draft.length))});return}q(``),I(null),H([]),dn.current=new Set,hn.current=new Map,un(),Kt(0);return}z.error(b(`slashCommands.unknownCommand`,{cmd:`/${e.command}`}));return}}if(l.startsWith(`!`)&&!c){let e=l.slice(1).trim();if(!e)return;n?.(e),q(``),I(null),H([]),dn.current=new Set,hn.current=new Map,Kt(0);return}let u=Array.from(dn.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(V.some(e=>e.uploading)){z.warning(b(`fileJob.stillUploading`));return}f=await Wr()}let p=V.filter(e=>e.imageDataUri),m=p.map(e=>e.imageDataUri);if(p.length>0){let e=p.map(e=>Jn(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),q(``),j(e),I(null),H([]),dn.current=new Set,hn.current=new Map,Kt(0),Se(!1),Ae(``)},[x,M,V,t,n,q,j,e,Wr,b,Z,Nt,Dt]),qr=(0,J.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=lt(r.slice(0,n));if(i){e.preventDefault(),q(r.slice(0,n-i.length)+r.slice(n)),dt(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=ut(r.slice(n));if(i){e.preventDefault(),q(r.slice(0,n)+r.slice(n+i.length)),dt(i),requestAnimationFrame(()=>{t.focus(),t.selectionStart=t.selectionEnd=n});return}}}}if(e.key===`Backspace`&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&!e.shiftKey&&V.length>0){let t=P.current;if(t&&t.selectionStart===0&&t.selectionEnd===0){let t=V[V.length-1];if(t){e.preventDefault(),Br(t.id);return}}}if(Q&&lr.length>1&&e.key===`Tab`){e.preventDefault();let t=lr.map(e=>e.key);En(n=>tn(t,n,!e.shiftKey)),Vt(0)}else if(Q&&lr.length>1&&e.key===`S`&&!e.ctrlKey&&!e.metaKey&&!e.altKey)e.preventDefault(),sr();else if(Q&&lr.length>1&&e.key===`M`&&!e.ctrlKey&&!e.metaKey&&!e.altKey)e.preventDefault(),cr();else{if(Q&&dr.length>0){if(e.key===`ArrowDown`){e.preventDefault(),Vt(e=>(e+1)%dr.length);return}if(e.key===`ArrowUp`){e.preventDefault(),Vt(e=>(e-1+dr.length)%dr.length);return}if(e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey){let t=dr[Bt];t&&(e.preventDefault(),Dr(t));return}if(e.key===`Escape`){e.preventDefault(),Or();return}}else if(Q&&e.key===`Escape`){e.preventDefault(),Or();return}if(G&&wr.length>0){if(e.key===`ArrowDown`){e.preventDefault(),Me(e=>(e+1)%wr.length);return}if(e.key===`ArrowUp`){e.preventDefault(),Me(e=>(e-1+wr.length)%wr.length);return}if(e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey){let t=wr[je];t&&(e.preventDefault(),Ar(t));return}if(e.key===`Escape`){e.preventDefault(),jr();return}}else if(G&&e.key===`Escape`){e.preventDefault(),jr();return}if(bt&&St.length>0){if(e.key===`ArrowDown`){e.preventDefault(),Tt();return}if(e.key===`ArrowUp`){e.preventDefault(),Et();return}if(e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey){let t=St[Ct];t&&(e.preventDefault(),kr(t));return}if(e.key===`Escape`){e.preventDefault(),Z();return}}else if(bt&&e.key===`Escape`){e.preventDefault(),Z();return}if(e.key===`Tab`&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&M)e.preventDefault(),Xe();else if(e.key===`Escape`&&w){e.preventDefault();let t=Date.now(),n=He(N,D,he.current,t);he.current=t,n===`revokeQueue`?(Ge(),he.current=0):n===`stop`?i():o()}else(e.key===`Enter`&&(e.ctrlKey||e.metaKey)||e.key===`Enter`&&!e.shiftKey)&&(e.preventDefault(),Kr())}}},[w,D,N,Ge,Kr,o,s,i,Q,Rt,Bt,Dr,Or,lr,sr,cr,G,wr,je,Ar,jr,bt,St,Ct,Tt,Et,kr,Z,q,V,Br,M,Xe]),Jr=(0,J.useCallback)(()=>{me.current=!0},[]),Yr=(0,J.useCallback)(()=>{me.current=!1},[]),[Xr,Zr]=(0,J.useState)(()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 767px)`).matches);(0,J.useEffect)(()=>{if(typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(max-width: 767px)`),t=()=>{Zr(e.matches),e.matches||ri(!1)};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let[Qr,$r]=(0,J.useState)(()=>Gn()),[ei,ti]=(0,J.useState)(()=>Gn()===`collapsed`),[ni,ri]=(0,J.useState)(!1),[ii,ai]=(0,J.useState)(!1),oi=(0,J.useRef)(!1),si=Qr===`expanded`,ci=(0,J.useCallback)(e=>{$r(e);try{e===`auto`?window.localStorage.removeItem(Un):window.localStorage.setItem(Un,e)}catch{}},[]),li=(0,J.useRef)(null),$=(0,J.useCallback)(()=>{li.current!==null&&(clearTimeout(li.current),li.current=null)},[]);(0,J.useEffect)(()=>$,[$]),(0,J.useEffect)(()=>{Xr&&w&&!si&&ri(!0)},[Xr,w,si]);let[ui,di]=(0,J.useState)(()=>Kn());(0,J.useEffect)(()=>{if(typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(hover: hover) and (pointer: fine)`),t=()=>di(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let fi=oi.current||me.current||x.trim().length>0||V.length>0||N>0||_||ge||Q||bt||G,pi=ui&&Qr===`auto`&&!ei,mi=ei||Xr&&ni||ii,hi=ii&&!ei&&!(Xr&&ni),gi=(0,J.useCallback)(()=>{$(),ai(!1),ti(!0),ci(`collapsed`)},[$,ci]),_i=(0,J.useCallback)(()=>{$(),ri(!1),ai(!1),Qr===`collapsed`&&(ti(!1),ci(`auto`))},[$,Qr,ci]),vi=(0,J.useCallback)(()=>{$(),si?ci(`auto`):(ai(!1),ri(!1),ti(!1),ci(`expanded`))},[$,si,ci]),yi=(0,J.useCallback)(()=>{$(),ai(!1)},[$]),bi=(0,J.useCallback)(()=>{pi&&($(),li.current=setTimeout(()=>{li.current=null,!fi&&ai(!0)},Wn))},[fi,$,pi]),xi=(0,J.useCallback)(()=>{$(),ai(!1)},[$]),Si=mr>8e3,Ci=!_&&(x.trim().length>0||V.length>0),wi=w?b(`stt.generatingTitle`):X.state===`recording`?b(`stt.stopTitle`):b(`stt.title`),Ti=X.state===`transcribing`||w,Ei=/mac/i.test(navigator.platform||``)?`⌘`:`Ctrl`;return(0,Y.jsxs)(`div`,{className:`chat-composer-shell shrink-0 pb-3 pt-2 max-md:order-4 max-md:mt-auto`,onMouseEnter:yi,onMouseLeave:bi,onDragOver:Vr,onDragLeave:Hr,onDrop:Ur,children:[oe.length>0&&(0,Y.jsxs)(`div`,{className:`${Bn} mb-2 rounded-lg border border-dark-border bg-dark-surface px-2.5 py-1.5 text-xs text-dark-muted`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{"aria-hidden":`true`,children:`⏳`}),(0,Y.jsx)(`span`,{className:`font-medium text-dark-text`,children:b(`chat.queuedCount`,{count:oe.length})}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1`}),(0,Y.jsx)(`span`,{className:`shrink-0 text-badge text-dark-muted/60`,children:b(`chat.queuedEscHint`)}),(0,Y.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:b(`chat.queuedRevoke`),"aria-label":b(`chat.queuedRevoke`),children:(0,Y.jsx)(ae,{size:12,"aria-hidden":`true`})})]}),(0,Y.jsx)(`ul`,{className:`mt-1 max-h-40 space-y-0.5 overflow-y-auto`,children:oe.map((e,t)=>(0,Y.jsxs)(`li`,{className:`group flex items-center gap-2 rounded px-1 py-0.5 transition-colors hover:bg-dark-hover/60`,children:[(0,Y.jsx)(`span`,{className:`w-4 shrink-0 text-center text-badge tabular-nums text-dark-muted/60`,children:t+1}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-dark-muted/80`,title:Qe(e.content),children:Qe(e.content)||b(`chat.queuedEmptyPreview`)}),(0,Y.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,Y.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:b(`chat.queuedSendNow`),"aria-label":b(`chat.queuedSendNow`),children:(0,Y.jsx)(u,{size:12,"aria-hidden":`true`})}),(0,Y.jsx)(`button`,{onClick:()=>Ze(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:b(`chat.queuedEdit`),"aria-label":b(`chat.queuedEdit`),children:(0,Y.jsx)(O,{size:12,"aria-hidden":`true`})}),(0,Y.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-red`,title:b(`chat.queuedDelete`),"aria-label":b(`chat.queuedDelete`),children:(0,Y.jsx)(k,{size:12,"aria-hidden":`true`})})]})]},e.id))})]}),V.length>0&&(0,Y.jsx)(`div`,{className:`${Bn} mb-2 flex flex-wrap gap-1.5`,children:V.map(e=>{let t=Yn(e.name),n=e.imageDataUri,i=(0,Y.jsxs)(Y.Fragment,{children:[n?(0,Y.jsx)(ye,{src:n,name:e.name,size:13,hoverPreview:!1,thumb:!0}):e.uploading?(0,Y.jsx)(r,{size:13,className:`animate-spin`}):(0,Y.jsx)(t,{size:13}),(0,Y.jsx)(`span`,{className:`max-w-[140px] truncate`,children:e.name}),(0,Y.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,Y.jsx)(`button`,{onClick:()=>Br(e.id),className:`rounded p-0.5 text-dark-muted hover:text-accent-red hover:bg-accent-red/10 transition-colors`,"aria-label":b(`a11y.close`),children:(0,Y.jsx)(ae,{size:11})})]}),a=B(`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,Y.jsx)(_e,{src:n,alt:e.name,className:`min-w-0`,children:(0,Y.jsx)(`div`,{className:a,children:i})},e.id):(0,Y.jsx)(`div`,{className:a,children:i},e.id)})}),ge&&(0,Y.jsx)(`div`,{className:`${Bn} 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:b(`fileJob.dropHint`)}),(0,Y.jsx)(At,{}),(0,Y.jsxs)(`div`,{className:`chat-composer-card relative rounded-xl border ${le?``:`transition-all duration-150`} ${Bn} ${mi?`flex items-end gap-1 px-2 py-1.5`:``} ${hi?`pointer-events-none opacity-0`:``}`,children:[!mi&&(0,Y.jsx)(`div`,{role:`separator`,"aria-orientation":`horizontal`,"aria-label":b(`chat.resizeHint`),title:b(`chat.resizeHint`),tabIndex:0,onPointerDown:gr,onPointerMove:_r,onPointerUp:vr,onPointerCancel:vr,onDoubleClick:yr,onKeyDown:e=>{e.key===`ArrowUp`?(e.preventDefault(),br(24)):e.key===`ArrowDown`&&(e.preventDefault(),br(-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,Y.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`})}),!mi&&(0,Y.jsx)(`div`,{className:`flex items-center justify-end gap-2 px-3 pt-2.5`,children:f&&(0,Y.jsx)(qt,{workspaceDir:d,onSelect:f,onNewSessionInDir:h})}),Q&&(0,Y.jsx)(`div`,{onMouseDown:e=>e.preventDefault(),"aria-hidden":!Q,children:(0,Y.jsx)(fn,{isOpen:Q,items:dr,selectedIndex:Bt,query:It,isSearching:Ut,onSelect:Dr,onHover:Vt,selectedCount:Gt,onFinish:Or,tabs:lr,activeTab:ur,onTabChange:En,scope:Zt,onToggleScope:sr,deliveryMode:rn,onToggleDelivery:cr})}),G&&(0,Y.jsx)(`div`,{onMouseDown:e=>e.preventDefault(),"aria-hidden":!G,children:(0,Y.jsx)(mn,{isOpen:G,items:wr,selectedIndex:je,query:Oe,isLoading:Re,onSelect:Ar,onHover:Me})}),bt&&(0,Y.jsx)(`div`,{onMouseDown:e=>e.preventDefault(),"aria-hidden":!bt,children:(0,Y.jsx)(kn,{isOpen:bt,commands:St,selectedIndex:Ct,filter:xt,onSelect:kr,onHover:wt,containerRef:Pt})}),(0,Y.jsxs)(`div`,{className:mi?`relative flex min-w-0 flex-1 items-start`:`relative`,children:[M&&(0,Y.jsx)(`div`,{"aria-hidden":`true`,className:mi?`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,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(`button`,{type:`button`,tabIndex:-1,onMouseDown:e=>e.preventDefault(),onClick:Xe,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:b(`chat.suggestionAccept`),"aria-label":b(`chat.suggestionAccept`),children:M}),(0,Y.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:b(`chat.suggestionAccept`)}),(0,Y.jsx)(`button`,{type:`button`,tabIndex:-1,onMouseDown:e=>e.preventDefault(),onClick:()=>j(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:b(`chat.suggestionDismiss`),"aria-label":b(`chat.suggestionDismiss`),children:b(`chat.suggestionDismiss`)})]})}),(0,Y.jsx)(`textarea`,{ref:P,value:x,onChange:Er,onKeyDown:qr,onPaste:Gr,onFocus:()=>{oi.current=!0,xi()},onBlur:()=>{oi.current=!1,Q&&Or(),Z(),G&&jr()},onCompositionStart:Jr,onCompositionEnd:Yr,placeholder:M?``:_&&y?y:b(mi?`chat.inputPlaceholderCollapsed`:w?`chat.generatingPlaceholder`:`chat.inputPlaceholder`),rows:1,"aria-label":`Message input`,disabled:_,className:mi?`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${M?` 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${M?` relative z-10`:``}`})]}),mi&&(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5 pb-0.5`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:_i,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:b(`chat.composerExpand`),"aria-label":b(`chat.composerExpand`),children:(0,Y.jsx)(C,{size:15,"aria-hidden":`true`})}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>void yt(),disabled:Ti,className:B(`flex h-8 w-8 items-center justify-center rounded-full text-dark-muted transition-colors`,X.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:wi,"aria-label":wi,children:X.state===`transcribing`?(0,Y.jsx)(r,{size:15,className:`animate-spin`,"aria-hidden":`true`}):X.state===`recording`?(0,Y.jsx)(ne,{size:15,"aria-hidden":`true`}):(0,Y.jsx)(m,{size:15,"aria-hidden":`true`})}),X.state===`recording`&&(0,Y.jsxs)(`span`,{className:`text-badge tabular-nums text-accent-red`,"aria-hidden":`true`,children:[(X.elapsedMs/1e3).toFixed(0),`s`]}),w&&(0,Y.jsx)(`button`,{onClick:i,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:b(`chat.stopGen`),"aria-label":b(`chat.stopGen`),children:(0,Y.jsx)(v,{size:13,"aria-hidden":`true`})}),(0,Y.jsx)(`button`,{onClick:()=>void Kr(),disabled:!Ci,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:b(w?`chat.sendQueuedBtn`:`chat.sendBtn`),"aria-label":b(w?`chat.sendQueuedBtn`:`chat.sendBtn`),children:(0,Y.jsx)(c,{size:15,"aria-hidden":`true`})})]}),!mi&&(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1.5 px-3 pb-3 lg:flex-nowrap`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-x-2`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:gi,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:b(`chat.composerCollapse`),"aria-label":b(`chat.composerCollapse`),children:(0,Y.jsx)(T,{size:15,"aria-hidden":`true`})}),(0,Y.jsx)(`button`,{type:`button`,onClick:vi,"aria-pressed":si,className:`flex h-8 w-8 items-center justify-center rounded-full transition-colors ${si?`bg-accent-blue/15 text-accent-blue hover:bg-accent-blue/25`:`text-dark-muted hover:bg-dark-hover hover:text-dark-text`}`,title:b(si?`chat.composerUnpin`:`chat.composerPin`),"aria-label":b(si?`chat.composerUnpin`:`chat.composerPin`),children:(0,Y.jsx)(re,{size:15,"aria-hidden":`true`})}),(0,Y.jsx)(kt,{}),(0,Y.jsx)(`span`,{className:`hidden min-w-0 sm:block`,children:(0,Y.jsx)(Mt,{})}),(0,Y.jsx)(Ee,{}),(0,Y.jsx)(Ht,{onHandoffToAi:Cn}),cn.length>0&&(0,Y.jsx)(`button`,{type:`button`,onClick:cr,className:B(`flex h-8 min-w-0 items-center rounded-full px-2.5 text-meta font-medium transition-colors`,$n[rn]),title:b(`chat.mentionDeliveryHint`),children:(0,Y.jsx)(`span`,{className:`max-w-[180px] truncate`,children:b(`chat.mentionDeliveryChip`,{titles:cn.join(`、`),mode:b(Qn[rn])})})})]}),(0,Y.jsx)(`div`,{className:`flex-1`}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[mr>0&&x.length>0&&(0,Y.jsxs)(`span`,{className:`text-badge tabular-nums ${Si?`text-accent-red font-medium`:`text-dark-muted/60`}`,children:[`~`,mr,` tokens`,Si?` · ${b(`chat.nearLimit`)}`:``]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Y.jsxs)(`div`,{ref:mt,className:`relative`,children:[(0,Y.jsxs)(`button`,{onClick:()=>pt(e=>!e),disabled:X.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:b(w?`stt.generatingTitle`:`stt.langToggle`),"aria-label":b(w?`stt.generatingTitle`:`stt.langToggle`),"aria-haspopup":`listbox`,"aria-expanded":ft,children:[Ce($e).short,(0,Y.jsx)(C,{size:11,"aria-hidden":`true`})]}),ft&&(0,Y.jsxs)(`div`,{role:`listbox`,"aria-label":b(`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:[ke.map(e=>(0,Y.jsxs)(`button`,{role:`option`,"aria-selected":e.code===$e,onClick:()=>ht(e.code),className:B(`flex w-full items-center justify-between gap-2 px-3 py-1.5 text-xs transition-colors`,e.code===$e?`text-accent-blue bg-accent-blue/10`:`text-dark-text hover:bg-dark-hover`),children:[(0,Y.jsx)(`span`,{className:`font-medium`,children:e.label}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-badge text-dark-muted`,children:[`Whisper`,e.code===$e&&(0,Y.jsx)(se,{size:12,"aria-hidden":`true`})]})]},e.code)),(0,Y.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:b(`stt.multiHint`)})]})]}),(0,Y.jsx)(`button`,{onClick:()=>void yt(),disabled:Ti,className:B(`flex h-8 w-8 items-center justify-center rounded-full text-dark-muted transition-colors`,X.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:wi,"aria-label":wi,children:X.state===`transcribing`?(0,Y.jsx)(r,{size:15,className:`animate-spin`,"aria-hidden":`true`}):X.state===`recording`?(0,Y.jsx)(ne,{size:15,"aria-hidden":`true`}):(0,Y.jsx)(m,{size:15,"aria-hidden":`true`})}),X.state===`recording`&&(0,Y.jsxs)(`span`,{className:`text-badge tabular-nums text-accent-red`,"aria-hidden":`true`,children:[(X.elapsedMs/1e3).toFixed(0),`s`]})]}),!w&&(0,Y.jsx)(`button`,{onClick:()=>xe(!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:b(`skills.pickTitle`),"aria-label":b(`skills.pickTitle`),children:(0,Y.jsx)(p,{size:15,"aria-hidden":`true`})}),!w&&(0,Y.jsx)(`button`,{onClick:()=>void Rr(),disabled:W,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:`${b(`fileJob.screenshot`)} (${Ei}+Shift+S)`,"aria-label":`${b(`fileJob.screenshot`)} (${Ei}+Shift+S)`,children:W?(0,Y.jsx)(r,{size:15,className:`animate-spin`,"aria-hidden":`true`}):(0,Y.jsx)(a,{size:15,"aria-hidden":`true`})}),!w&&(0,Y.jsx)(`button`,{onClick:()=>void Lr(),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:b(`fileJob.attach`),"aria-label":b(`fileJob.attach`),children:(0,Y.jsx)(ee,{size:15,"aria-hidden":`true`})}),(0,Y.jsx)(`input`,{ref:pe,type:`file`,multiple:!0,accept:In,className:`hidden`,onChange:Ir}),w&&!Ci?(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[D?(0,Y.jsx)(`button`,{onClick:s,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:b(`chat.resumeGen`),"aria-label":b(`chat.resumeGen`),children:(0,Y.jsx)(E,{size:14,"aria-hidden":`true`})}):(0,Y.jsx)(`button`,{onClick:o,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:b(`chat.pauseGen`),"aria-label":b(`chat.pauseGen`),children:(0,Y.jsx)(te,{size:14,"aria-hidden":`true`})}),(0,Y.jsx)(`button`,{onClick:i,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:b(`chat.stopGen`),"aria-label":b(`chat.stopGen`),children:(0,Y.jsx)(v,{size:13,"aria-hidden":`true`})})]}):(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[w&&(0,Y.jsx)(`button`,{onClick:i,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:b(`chat.stopGen`),"aria-label":b(`chat.stopGen`),children:(0,Y.jsx)(v,{size:13,"aria-hidden":`true`})}),(0,Y.jsx)(`button`,{onClick:()=>void Kr(),disabled:!Ci,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:b(w?`chat.sendQueuedBtn`:`chat.sendBtn`),"aria-label":b(w?`chat.sendQueuedBtn`:`chat.sendBtn`),children:(0,Y.jsx)(c,{size:15,"aria-hidden":`true`})})]})]})]})]}),(0,Y.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 ${hi?`opacity-0`:``}`,children:[(0,Y.jsx)(`span`,{children:b(`chat.shiftEnter`)}),(0,Y.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,Y.jsx)(`span`,{children:b(`chat.escHint`)}),(0,Y.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,Y.jsx)(`span`,{children:`${Ei}+Shift+S ${b(`shortcuts.screenshot`)}`}),(0,Y.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,Y.jsx)(`span`,{children:b(`chat.bangHint`)})]}),(0,Y.jsx)(pn,{open:be,onClose:()=>xe(!1),onSelect:Mr})]})});export{Kt as n,Et as r,nr as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{$ as t,Un as n,Ur as r,br as i,g as a,vr as o,yr as s}from"./icons-BvYhTENi.js";import{t as c}from"./useTranslation-BGmCDuQI.js";import{n as l,r as u}from"./settingsStore-RLUAWgIk.js";import{r as d}from"./api-CCt9DRQm.js";import{I as f}from"./markdown-DAQZeY5V.js";var p=e(r(),1),m=f(),ee=[`fact`,`code_change`,`user_preference`,`error_fix`,`decision`,`convention`,`goal`,`interaction`],h=6e3,g=500;function te(e){if(!Number.isFinite(e))return 50;let t=Math.floor(e);return t>=5&&t<=g?t:50}function _(e){if(!Number.isFinite(e)||e<=0)return`—`;try{return new Date(e).toLocaleString()}catch{return`—`}}function v(){let{t:e}=c(),r=te(u(e=>e.memoryPageSize)),a=u(e=>e.setMemoryPageSize),s=(0,p.useMemo)(()=>l.includes(r)?l:[...l,r].sort((e,t)=>e-t),[r]),[f,_]=(0,p.useState)([]),[v,b]=(0,p.useState)(null),[x,re]=(0,p.useState)(null),[S,C]=(0,p.useState)(!1),[w,T]=(0,p.useState)(null),[E,ie]=(0,p.useState)(`all`),[D,ae]=(0,p.useState)(`all`),[O,oe]=(0,p.useState)(`time`),[k,A]=(0,p.useState)({}),[j,M]=(0,p.useState)(null),[N,P]=(0,p.useState)([]),[F,I]=(0,p.useState)([]),[L,R]=(0,p.useState)(1),z=(0,p.useRef)(null),B=(0,p.useRef)(null),V=(0,p.useRef)(null),[H,U]=(0,p.useState)(null),W=(0,p.useCallback)(e=>{R(e),V.current&&(V.current.scrollTop=0)},[]),G=(0,p.useCallback)(async()=>{C(!0),T(null);let[t,n]=await Promise.all([d.get(`/api/memory/status`),d.get(`/api/memory/list?limit=${g}`)]);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,p.useEffect)(()=>{G()},[G]);let K=(0,p.useCallback)(async t=>{z.current!==null&&(window.clearTimeout(z.current),z.current=null),B.current=null,U(null);let n=await d.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,p.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)},h)},[K]),se=(0,p.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,p.useEffect)(()=>()=>{z.current!==null&&window.clearTimeout(z.current);let e=B.current;e&&d.post(`/api/memory/delete`,{id:e.id})},[]);let J=(0,p.useMemo)(()=>{let e=new Set(N);return f.filter(t=>!(e.has(t.id)||E!==`all`&&t.scope!==E||D!==`all`&&t.type!==D))},[f,N,E,D]),Y=(0,p.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,p.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,p.useMemo)(()=>{let e=new Set(f.map(e=>e.scope));return[`global`,`workspace`].filter(t=>e.has(t))},[f]);return(0,m.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,m.jsxs)(`div`,{className:`flex h-12 shrink-0 items-center gap-3 border-b border-dark-border px-4`,children:[(0,m.jsx)(n,{size:16,className:`shrink-0 text-dark-muted`,"aria-hidden":`true`}),(0,m.jsx)(`span`,{className:`truncate text-sm font-medium text-dark-text`,children:e(`memory.title`)}),v?.workspaceHash?(0,m.jsx)(`span`,{className:`truncate text-[11px] text-dark-muted opacity-60`,children:v.workspaceHash}):null,(0,m.jsx)(`span`,{className:`ms-auto truncate text-[11px] text-dark-muted`,children:e(`memory.recallElsewhere`)})]}),v&&!v.active?(0,m.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,m.jsx)(`div`,{className:`font-medium`,children:e(`memory.disabled`)}),(0,m.jsx)(`div`,{className:`mt-1 text-amber-200/80`,children:v.reason??e(`memory.disabledHint`)}),(0,m.jsxs)(`div`,{className:`mt-1 text-amber-200/60`,children:[e(`memory.backendLabel`),`: `,v.backend,v.cause?` · ${v.cause}`:``]})]}):null,(0,m.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2 border-b border-dark-border px-4 py-2`,children:[(0,m.jsxs)(`label`,{className:`flex items-center gap-1 text-xs text-dark-muted`,children:[e(`memory.filterScope`),(0,m.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,m.jsx)(`option`,{value:`all`,children:e(`memory.all`)}),($.length>0?$:[`global`,`workspace`]).map(t=>(0,m.jsx)(`option`,{value:t,children:e(t===`global`?`memory.scopeGlobal`:`memory.scopeWorkspace`)},t))]})]}),(0,m.jsxs)(`label`,{className:`flex items-center gap-1 text-xs text-dark-muted`,children:[e(`memory.filterCategory`),(0,m.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,m.jsx)(`option`,{value:`all`,children:e(`memory.all`)}),ee.map(t=>(0,m.jsx)(`option`,{value:t,children:e(`memory.category.${t}`)},t))]})]}),(0,m.jsxs)(`label`,{className:`flex items-center gap-1 text-xs text-dark-muted`,children:[e(`memory.sortBy`),(0,m.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,m.jsx)(`option`,{value:`time`,children:e(`memory.sortTime`)}),(0,m.jsx)(`option`,{value:`usage`,children:e(`memory.sortUsage`)})]})]}),(0,m.jsxs)(`label`,{className:`flex items-center gap-1 text-xs text-dark-muted`,children:[e(`memory.pageSize`),(0,m.jsx)(`select`,{"data-testid":`memory-page-size`,value:r,onChange:e=>{a(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:s.map(t=>(0,m.jsx)(`option`,{value:t,children:e(`memory.pageSizeOption`,{count:t})},t))})]}),(0,m.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,m.jsx)(`span`,{className:`text-[11px] 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,m.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,m.jsx)(t,{size:13,className:S?`animate-spin`:void 0,"aria-hidden":`true`}),e(`memory.refresh`)]})]}),Q?(0,m.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,m.jsx)(`span`,{className:`text-dark-text`,children:e(`memory.localDeleteOff`)}),(0,m.jsx)(`span`,{className:`ms-1`,children:e(`memory.localDeleteOffHint`)})]}):null,w?(0,m.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,m.jsx)(`div`,{ref:V,className:`flex-1 overflow-y-auto px-4 py-3`,children:S&&f.length===0?(0,m.jsx)(`div`,{className:`text-xs text-dark-muted`,children:e(`memory.loading`)}):Y.length===0?(0,m.jsxs)(`div`,{className:`text-xs text-dark-muted`,children:[(0,m.jsx)(`div`,{children:e(`memory.empty`)}),(0,m.jsx)(`div`,{className:`mt-1 text-dark-muted/70`,children:e(`memory.emptyHint`)})]}):(0,m.jsx)(`ul`,{className:`space-y-2`,children:ce.map(({key:t,head:n,rest:r})=>{let a=F.includes(t);return(0,m.jsxs)(`li`,{className:`rounded border border-dark-border bg-dark-surface p-3`,children:[(0,m.jsx)(y,{item:n,usage:k[n.id],onDelete:Q?void 0:q,muted:!1}),r.length>0?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(`button`,{type:`button`,onClick:()=>le(t),className:`mt-2 flex items-center gap-1 text-xs text-dark-muted hover:text-dark-text`,children:[a?(0,m.jsx)(i,{size:12,"aria-hidden":`true`}):(0,m.jsx)(o,{size:12,"aria-hidden":`true`}),e(`memory.collapsed`,{count:r.length})]}),a?(0,m.jsx)(`ul`,{className:`mt-2 space-y-2 border-s border-dark-border ps-3`,children:r.map(e=>(0,m.jsx)(`li`,{children:(0,m.jsx)(y,{item:e,usage:k[e.id],onDelete:Q?void 0:q,muted:!0})},e.id))}):null]}):null]},t)})})}),X>1?(0,m.jsx)(ne,{page:Z,pageCount:X,onChange:W}):null,H?(0,m.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,m.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-dark-muted`,children:[e(`memory.pendingDelete`),`: `,H.content]}),(0,m.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}=c();return(0,m.jsxs)(`div`,{className:r?`opacity-60`:void 0,children:[(0,m.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,m.jsx)(`p`,{className:`min-w-0 flex-1 whitespace-pre-wrap break-words text-sm text-dark-text`,children:e.content}),n?(0,m.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,m.jsx)(a,{size:13,"aria-hidden":`true`})}):null]}),(0,m.jsxs)(`div`,{className:`mt-1.5 flex flex-wrap items-center gap-x-2 gap-y-1 text-[11px] text-dark-muted`,children:[(0,m.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,m.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,m.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,m.jsxs)(`span`,{className:`rounded bg-dark-hover px-1.5 py-0.5`,children:[`#`,e.subject]}):null,(0,m.jsx)(`span`,{children:i(`memory.confidenceShort`,{value:Math.round((e.confidence??0)*100)})}),(0,m.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,m.jsx)(`span`,{className:`opacity-70`,children:i(`memory.usageLastAt`,{time:_(t.lastUsedAt)})}):null,(0,m.jsx)(`span`,{children:_(e.timestamp)}),e.id?(0,m.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}=c(),i=`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,m.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,m.jsx)(`button`,{type:`button`,onClick:()=>n(e-1),disabled:e<=1,"aria-label":r(`common.prevPage`),className:i,children:(0,m.jsx)(s,{size:13,"aria-hidden":`true`})}),b(e,t).map((t,r)=>t===null?(0,m.jsx)(`span`,{className:`px-1 text-xs text-dark-muted opacity-60`,children:`…`},`gap-${r}`):(0,m.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,m.jsx)(`button`,{type:`button`,onClick:()=>n(e+1),disabled:e>=t,"aria-label":r(`common.nextPage`),className:i,children:(0,m.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}