@museagent/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 @@
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{$ as t,Bt as n,Dr as r,Er as i,Fr as a,Gn as o,L as s,O as c,Pr as l,Tr as u,Ur as d,Vt as f,an as p,b as m,ct as h,er as g,ft as _,g as ee,gt as v,hn as te,it as y,m as ne,n as b,ot as x,st as S,ur as re,vn as ie,vr as ae,yr as oe}from"./icons-BvYhTENi.js";import{r as se}from"./react-vendor-BlngCquv.js";import{t as C}from"./useTranslation-BGmCDuQI.js";import{n as w}from"./cn-rx4uumOJ.js";import{t as T}from"./api-CCt9DRQm.js";import{I as ce}from"./markdown-DAQZeY5V.js";import{A as le,j as ue}from"./common-BHXgEvgk.js";import{m as de}from"./index-BX-d2OBW.js";var fe=6048e5,pe=864e5,me=Symbol.for(`constructDateFrom`);function E(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&me in e?e[me](t):e instanceof Date?new e.constructor(t):new Date(t)}function D(e,t){return E(t||e,e)}function he(e,t,n){let r=D(e,n?.in);return isNaN(t)?E(n?.in||e,NaN):(t&&r.setDate(r.getDate()+t),r)}function ge(e,t,n){let r=D(e,n?.in);if(isNaN(t))return E(n?.in||e,NaN);if(!t)return r;let i=r.getDate(),a=E(n?.in||e,r.getTime());return a.setMonth(r.getMonth()+t+1,0),i>=a.getDate()?a:(r.setFullYear(a.getFullYear(),a.getMonth(),i),r)}var _e={};function O(){return _e}function k(e,t){let n=O(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=D(e,t?.in),a=i.getDay(),o=(a<r?7:0)+a-r;return i.setDate(i.getDate()-o),i.setHours(0,0,0,0),i}function A(e,t){return k(e,{...t,weekStartsOn:1})}function ve(e,t){let n=D(e,t?.in),r=n.getFullYear(),i=E(n,0);i.setFullYear(r+1,0,4),i.setHours(0,0,0,0);let a=A(i),o=E(n,0);o.setFullYear(r,0,4),o.setHours(0,0,0,0);let s=A(o);return n.getTime()>=a.getTime()?r+1:n.getTime()>=s.getTime()?r:r-1}function ye(e){let t=D(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-n}function j(e,...t){let n=E.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}function M(e,t){let n=D(e,t?.in);return n.setHours(0,0,0,0),n}function be(e,t,n){let[r,i]=j(n?.in,e,t),a=M(r),o=M(i),s=+a-ye(a),c=+o-ye(o);return Math.round((s-c)/pe)}function xe(e,t){let n=ve(e,t),r=E(t?.in||e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),A(r)}function Se(e,t,n){return he(e,t*7,n)}function Ce(e){return E(e,Date.now())}function N(e,t,n){let[r,i]=j(n?.in,e,t);return+M(r)==+M(i)}function P(e){return e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`}function we(e){return!(!P(e)&&typeof e!=`number`||isNaN(+D(e)))}function F(e,t){let n=D(e,t?.in);return n.setHours(23,59,59,999),n}function Te(e,t){let[n,r]=j(e,t.start,t.end);return{start:n,end:r}}function I(e,t){let{start:n,end:r}=Te(t?.in,e),i=+n>+r,a=i?+n:+r,o=i?r:n;o.setHours(0,0,0,0);let s=t?.step??1;if(!s)return[];s<0&&(s=-s,i=!i);let c=[];for(;+o<=a;)c.push(E(n,o)),o.setDate(o.getDate()+s),o.setHours(0,0,0,0);return i?c.reverse():c}function Ee(e,t){let n=D(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function De(e,t){let n=D(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}var Oe={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},L=(e,t,n)=>{let r,i=Oe[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r};function R(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var ke={date:R({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:R({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:R({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},z={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},Ae=(e,t,n,r)=>z[e];function B(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}var je={ordinalNumber:(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},era:B({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:B({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:B({values:{narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},defaultWidth:`wide`}),day:B({values:{narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},defaultWidth:`wide`}),dayPeriod:B({values:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},defaultFormattingWidth:`wide`})};function V(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?Ne(s,e=>e.test(o)):Me(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}function Me(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function Ne(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function Pe(e){return(t,n={})=>{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}var Fe={code:`en-US`,formatDistance:L,formatLong:ke,formatRelative:Ae,localize:je,match:{ordinalNumber:Pe({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:V({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:V({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:V({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:V({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:V({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function Ie(e,t){let n=D(e,t?.in);return be(n,De(n))+1}function Le(e,t){let n=D(e,t?.in),r=+A(n)-xe(n);return Math.round(r/fe)+1}function Re(e,t){let n=D(e,t?.in),r=n.getFullYear(),i=O(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=E(t?.in||e,0);o.setFullYear(r+1,0,a),o.setHours(0,0,0,0);let s=k(o,t),c=E(t?.in||e,0);c.setFullYear(r,0,a),c.setHours(0,0,0,0);let l=k(c,t);return+n>=+s?r+1:+n>=+l?r:r-1}function ze(e,t){let n=O(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=Re(e,t),a=E(t?.in||e,0);return a.setFullYear(i,0,r),a.setHours(0,0,0,0),k(a,t)}function Be(e,t){let n=D(e,t?.in),r=+k(n,t)-ze(n,t);return Math.round(r/fe)+1}function H(e,t){return(e<0?`-`:``)+Math.abs(e).toString().padStart(t,`0`)}var U={y(e,t){let n=e.getFullYear(),r=n>0?n:1-n;return H(t===`yy`?r%100:r,t.length)},M(e,t){let n=e.getMonth();return t===`M`?String(n+1):H(n+1,2)},d(e,t){return H(e.getDate(),t.length)},a(e,t){let n=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.toUpperCase();case`aaa`:return n;case`aaaaa`:return n[0];default:return n===`am`?`a.m.`:`p.m.`}},h(e,t){return H(e.getHours()%12||12,t.length)},H(e,t){return H(e.getHours(),t.length)},m(e,t){return H(e.getMinutes(),t.length)},s(e,t){return H(e.getSeconds(),t.length)},S(e,t){let n=t.length,r=e.getMilliseconds();return H(Math.trunc(r*10**(n-3)),t.length)}},W={am:`am`,pm:`pm`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},Ve={G:function(e,t,n){let r=+(e.getFullYear()>0);switch(t){case`G`:case`GG`:case`GGG`:return n.era(r,{width:`abbreviated`});case`GGGGG`:return n.era(r,{width:`narrow`});default:return n.era(r,{width:`wide`})}},y:function(e,t,n){if(t===`yo`){let t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:`year`})}return U.y(e,t)},Y:function(e,t,n,r){let i=Re(e,r),a=i>0?i:1-i;return t===`YY`?H(a%100,2):t===`Yo`?n.ordinalNumber(a,{unit:`year`}):H(a,t.length)},R:function(e,t){return H(ve(e),t.length)},u:function(e,t){return H(e.getFullYear(),t.length)},Q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`Q`:return String(r);case`QQ`:return H(r,2);case`Qo`:return n.ordinalNumber(r,{unit:`quarter`});case`QQQ`:return n.quarter(r,{width:`abbreviated`,context:`formatting`});case`QQQQQ`:return n.quarter(r,{width:`narrow`,context:`formatting`});default:return n.quarter(r,{width:`wide`,context:`formatting`})}},q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`q`:return String(r);case`qq`:return H(r,2);case`qo`:return n.ordinalNumber(r,{unit:`quarter`});case`qqq`:return n.quarter(r,{width:`abbreviated`,context:`standalone`});case`qqqqq`:return n.quarter(r,{width:`narrow`,context:`standalone`});default:return n.quarter(r,{width:`wide`,context:`standalone`})}},M:function(e,t,n){let r=e.getMonth();switch(t){case`M`:case`MM`:return U.M(e,t);case`Mo`:return n.ordinalNumber(r+1,{unit:`month`});case`MMM`:return n.month(r,{width:`abbreviated`,context:`formatting`});case`MMMMM`:return n.month(r,{width:`narrow`,context:`formatting`});default:return n.month(r,{width:`wide`,context:`formatting`})}},L:function(e,t,n){let r=e.getMonth();switch(t){case`L`:return String(r+1);case`LL`:return H(r+1,2);case`Lo`:return n.ordinalNumber(r+1,{unit:`month`});case`LLL`:return n.month(r,{width:`abbreviated`,context:`standalone`});case`LLLLL`:return n.month(r,{width:`narrow`,context:`standalone`});default:return n.month(r,{width:`wide`,context:`standalone`})}},w:function(e,t,n,r){let i=Be(e,r);return t===`wo`?n.ordinalNumber(i,{unit:`week`}):H(i,t.length)},I:function(e,t,n){let r=Le(e);return t===`Io`?n.ordinalNumber(r,{unit:`week`}):H(r,t.length)},d:function(e,t,n){return t===`do`?n.ordinalNumber(e.getDate(),{unit:`date`}):U.d(e,t)},D:function(e,t,n){let r=Ie(e);return t===`Do`?n.ordinalNumber(r,{unit:`dayOfYear`}):H(r,t.length)},E:function(e,t,n){let r=e.getDay();switch(t){case`E`:case`EE`:case`EEE`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`EEEEE`:return n.day(r,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},e:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`e`:return String(a);case`ee`:return H(a,2);case`eo`:return n.ordinalNumber(a,{unit:`day`});case`eee`:return n.day(i,{width:`abbreviated`,context:`formatting`});case`eeeee`:return n.day(i,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(i,{width:`short`,context:`formatting`});default:return n.day(i,{width:`wide`,context:`formatting`})}},c:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`c`:return String(a);case`cc`:return H(a,t.length);case`co`:return n.ordinalNumber(a,{unit:`day`});case`ccc`:return n.day(i,{width:`abbreviated`,context:`standalone`});case`ccccc`:return n.day(i,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(i,{width:`short`,context:`standalone`});default:return n.day(i,{width:`wide`,context:`standalone`})}},i:function(e,t,n){let r=e.getDay(),i=r===0?7:r;switch(t){case`i`:return String(i);case`ii`:return H(i,t.length);case`io`:return n.ordinalNumber(i,{unit:`day`});case`iii`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`iiiii`:return n.day(r,{width:`narrow`,context:`formatting`});case`iiiiii`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},a:function(e,t,n){let r=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`});case`aaa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`aaaaa`:return n.dayPeriod(r,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(r,{width:`wide`,context:`formatting`})}},b:function(e,t,n){let r=e.getHours(),i;switch(i=r===12?W.noon:r===0?W.midnight:r/12>=1?`pm`:`am`,t){case`b`:case`bb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`bbb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`bbbbb`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},B:function(e,t,n){let r=e.getHours(),i;switch(i=r>=17?W.evening:r>=12?W.afternoon:r>=4?W.morning:W.night,t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`BBBBB`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},h:function(e,t,n){if(t===`ho`){let t=e.getHours()%12;return t===0&&(t=12),n.ordinalNumber(t,{unit:`hour`})}return U.h(e,t)},H:function(e,t,n){return t===`Ho`?n.ordinalNumber(e.getHours(),{unit:`hour`}):U.H(e,t)},K:function(e,t,n){let r=e.getHours()%12;return t===`Ko`?n.ordinalNumber(r,{unit:`hour`}):H(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t===`ko`?n.ordinalNumber(r,{unit:`hour`}):H(r,t.length)},m:function(e,t,n){return t===`mo`?n.ordinalNumber(e.getMinutes(),{unit:`minute`}):U.m(e,t)},s:function(e,t,n){return t===`so`?n.ordinalNumber(e.getSeconds(),{unit:`second`}):U.s(e,t)},S:function(e,t){return U.S(e,t)},X:function(e,t,n){let r=e.getTimezoneOffset();if(r===0)return`Z`;switch(t){case`X`:return G(r);case`XXXX`:case`XX`:return K(r);default:return K(r,`:`)}},x:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`x`:return G(r);case`xxxx`:case`xx`:return K(r);default:return K(r,`:`)}},O:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`O`:case`OO`:case`OOO`:return`GMT`+He(r,`:`);default:return`GMT`+K(r,`:`)}},z:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`z`:case`zz`:case`zzz`:return`GMT`+He(r,`:`);default:return`GMT`+K(r,`:`)}},t:function(e,t,n){return H(Math.trunc(e/1e3),t.length)},T:function(e,t,n){return H(+e,t.length)}};function He(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=Math.trunc(r/60),a=r%60;return a===0?n+String(i):n+String(i)+t+H(a,2)}function G(e,t){return e%60==0?(e>0?`-`:`+`)+H(Math.abs(e)/60,2):K(e,t)}function K(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=H(Math.trunc(r/60),2),a=H(r%60,2);return n+i+t+a}var Ue=(e,t)=>{switch(e){case`P`:return t.date({width:`short`});case`PP`:return t.date({width:`medium`});case`PPP`:return t.date({width:`long`});default:return t.date({width:`full`})}},q=(e,t)=>{switch(e){case`p`:return t.time({width:`short`});case`pp`:return t.time({width:`medium`});case`ppp`:return t.time({width:`long`});default:return t.time({width:`full`})}},We={p:q,P:(e,t)=>{let n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return Ue(e,t);let a;switch(r){case`P`:a=t.dateTime({width:`short`});break;case`PP`:a=t.dateTime({width:`medium`});break;case`PPP`:a=t.dateTime({width:`long`});break;default:a=t.dateTime({width:`full`})}return a.replace(`{{date}}`,Ue(r,t)).replace(`{{time}}`,q(i,t))}},Ge=/^D+$/,Ke=/^Y+$/,qe=[`D`,`DD`,`YY`,`YYYY`];function Je(e){return Ge.test(e)}function Ye(e){return Ke.test(e)}function Xe(e,t,n){let r=Ze(e,t,n);if(console.warn(r),qe.includes(e))throw RangeError(r)}function Ze(e,t,n){let r=e[0]===`Y`?`years`:`days of the month`;return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}var Qe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,$e=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,et=/^'([^]*?)'?$/,tt=/''/g,nt=/[a-zA-Z]/;function J(e,t,n){let r=O(),i=n?.locale??r.locale??Fe,a=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=D(e,n?.in);if(!we(s))throw RangeError(`Invalid time value`);let c=t.match($e).map(e=>{let t=e[0];if(t===`p`||t===`P`){let n=We[t];return n(e,i.formatLong)}return e}).join(``).match(Qe).map(e=>{if(e===`''`)return{isToken:!1,value:`'`};let t=e[0];if(t===`'`)return{isToken:!1,value:rt(e)};if(Ve[t])return{isToken:!0,value:e};if(t.match(nt))throw RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));let l={firstWeekContainsDate:a,weekStartsOn:o,locale:i};return c.map(r=>{if(!r.isToken)return r.value;let a=r.value;(!n?.useAdditionalWeekYearTokens&&Ye(a)||!n?.useAdditionalDayOfYearTokens&&Je(a))&&Xe(a,t,String(e));let o=Ve[a[0]];return o(s,a,i.localize,l)}).join(``)}function rt(e){let t=e.match(et);return t?t[1].replace(tt,`'`):e}function it(e,t,n){let[r,i]=j(n?.in,e,t);return+k(r,n)==+k(i,n)}function at(e,t,n){let[r,i]=j(n?.in,e,t);return r.getFullYear()===i.getFullYear()&&r.getMonth()===i.getMonth()}function ot(e,t){return N(E(t?.in||e,e),Ce(t?.in||e))}var Y=e(d(),1),st=se(),ct=2e3;function lt(e){return`${e.getFullYear()}-${e.getMonth()+1}-${e.getDate()}`}function X(e,t,n){return Number.isInteger(e)&&e>=t&&e<=n}function ut(e,t,n){let r=e.trim();if(!r)return null;let i=new Set;for(let e of r.split(`,`)){let r=e.trim();if(!r)return null;if(r===`*`||r===`?`){for(let e=t;e<=n;e++)i.add(e);continue}let a=r.match(/^(\*|\d+|\d+-\d+)\/(\d+)$/);if(a){let e=parseInt(a[2]??``,10);if(!X(e,1,n))return null;let r=a[1]??``,o,s;if(r===`*`)o=t,s=n;else if(r.includes(`-`)){let[e,t]=r.split(`-`).map(Number);o=e??NaN,s=t??NaN}else o=Number(r),s=n;if(!X(o,t,n)||!X(s,t,n)||o>s)return null;for(let t=o;t<=s;t+=e)i.add(t);continue}let o=r.match(/^(\d+)-(\d+)$/);if(o){let e=parseInt(o[1]??``,10),r=parseInt(o[2]??``,10);if(!X(e,t,n)||!X(r,t,n)||e>r)return null;for(let t=e;t<=r;t++)i.add(t);continue}let s=Number(r);if(!X(s,t,n))return null;i.add(s)}return i.size>0?[...i].sort((e,t)=>e-t):null}function dt(e){let t=e.trim().split(/\s+/);if(t.length!==5)return null;let n=ut(t[0]??``,0,59),r=ut(t[1]??``,0,23),i=ut(t[2]??``,1,31),a=ut(t[3]??``,1,12),o=ut(t[4]??``,0,7);return!n||!r||!i||!a||!o?null:{minutes:n,hours:r,daysOfMonth:i,months:a,daysOfWeek:[...new Set(o.map(e=>e===7?0:e))].sort((e,t)=>e-t)}}function ft(e,t){return e.months.includes(t.getMonth()+1)&&e.daysOfMonth.includes(t.getDate())&&e.daysOfWeek.includes(t.getDay())}function pt(e,t){if(e.kind===`once`){if(!e.fireAt)return[];let n=new Date(e.fireAt);return Number.isNaN(n.getTime())?[]:N(n,t)?[n]:[]}let n=dt(e.cron??``);if(!n||!ft(n,t))return[];let r=[];for(let e of n.hours)for(let i of n.minutes)r.push(new Date(t.getFullYear(),t.getMonth(),t.getDate(),e,i,0,0));return r}function mt(e,t,n){let r=M(t),i=F(n);if(r.getTime()>i.getTime())return[];let a=[],o=I({start:r,end:i});for(let t of e){let e=0;for(let n of o){if(e>=ct)break;for(let o of pt(t.schedule,n))if(!(o.getTime()<r.getTime()||o.getTime()>i.getTime())&&(a.push({key:`${t.id}@${o.toISOString()}`,automationId:t.id,at:o,automation:t}),e+=1,e>=ct))break}}return a.sort((e,t)=>e.at.getTime()-t.at.getTime()||e.automation.name.localeCompare(t.automation.name)),a}var ht=e=>e===`*`||e===`?`;function gt(e,t){let n=e.schedule;if(n.kind===`once`){let e=n.fireAt?new Date(n.fireAt):null;if(!e||Number.isNaN(e.getTime()))return{ok:!1,reason:`unparsable`};if(N(e,t))return{ok:!1,reason:`noop-day`};let r=new Date(t.getFullYear(),t.getMonth(),t.getDate(),e.getHours(),e.getMinutes(),0,0);return{ok:!0,schedule:{...n,kind:`once`,fireAt:r.toISOString()}}}let r=(n.cron??``).trim().split(/\s+/);if(r.length!==5)return{ok:!1,reason:`unparsable`};let i=r[2]??``,a=r[3]??``,o=r[4]??``;if(!ht(i)||!ht(a))return{ok:!1,reason:`locked-cron`};let s=t.getDay();if(!ht(o)){if(/^\d+$/.test(o)){if(Number(o)%7===s)return{ok:!1,reason:`noop-day`}}else if(o===`1-5`){if(s>=1&&s<=5)return{ok:!1,reason:`noop-day`}}else return{ok:!1,reason:`locked-cron`}}let c=[...r];return c[4]=String(s),{ok:!0,schedule:{...n,kind:`cron`,cron:c.join(` `)}}}function _t(e){return lt(e)}function vt(e){let t=new Map;for(let n of e){let e=lt(n.at),r=t.get(e);r?r.push(n):t.set(e,[n])}return t}var yt=[`automation.dow.monday`,`automation.dow.tuesday`,`automation.dow.wednesday`,`automation.dow.thursday`,`automation.dow.friday`,`automation.dow.saturday`,`automation.dow.sunday`],bt=e=>(e.getDay()+6)%7;function xt(e){let t=k(Ee(e),{weekStartsOn:1});return Array.from({length:42},(e,n)=>he(t,n))}function St(e){let t=k(e,{weekStartsOn:1});return Array.from({length:7},(e,n)=>he(t,n))}var Z=ce(),Ct=3,wt=e=>J(e,`HH:mm`),Tt=e=>`${e.getFullYear()}-${e.getMonth()+1}-${e.getDate()}`;function Et(e){return e.status===`enabled`?e.schedule.kind===`once`?`once`:`enabled`:`disabled`}var Dt={enabled:`border-accent-blue bg-accent-blue/10 text-dark-text`,once:`border-accent-yellow bg-accent-yellow/10 text-dark-text`,disabled:`border-dark-border bg-dark-hover text-dark-muted`};function Ot({occurrence:e,onSelectDay:t,extra:n,onUnpack:r,onDragStart:i,onDragEnd:a}){let{t:o}=C(),s=n=>{n.stopPropagation(),r?r():t(e.at)},c=!!i,l=c?o(`automation.dragHint`):r?o(`automation.unpackHint`):``;return(0,Z.jsxs)(`button`,{type:`button`,onClick:s,draggable:c,onDragStart:t=>{i&&(t.stopPropagation(),t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`,t.dataTransfer.setData(`text/plain`,e.key)),i(e))},onDragEnd:()=>a?.(),title:`${wt(e.at)} ${e.automation.name}${l?` · ${l}`:``}`,className:`flex w-full items-center gap-1 truncate rounded border-s-2 px-1 py-0.5 text-start text-meta hover:brightness-110 ${Dt[Et(e.automation)]} ${c?`cursor-grab active:cursor-grabbing`:``}`,children:[(0,Z.jsx)(`span`,{className:`shrink-0 tabular-nums opacity-70`,children:wt(e.at)}),(0,Z.jsx)(`span`,{className:`truncate`,children:e.automation.name}),n!==void 0&&n>0&&(0,Z.jsx)(`span`,{className:`shrink-0 opacity-70`,children:o(`automation.moreCount`,{count:n})})]})}function kt({anchor:e,selectedDay:t,byDay:n,onSelectDay:r,onMoveOccurrence:i}){let{t:a}=C(),o=(0,Y.useMemo)(()=>xt(e),[e]),[s,c]=(0,Y.useState)(null),[l,u]=(0,Y.useState)(null),d=()=>{c(null),u(null)};return(0,Z.jsxs)(`div`,{className:`overflow-hidden rounded-xl border border-dark-border bg-dark-surface`,children:[(0,Z.jsx)(`div`,{className:`grid grid-cols-7 border-b border-dark-border bg-dark-hover/40`,children:yt.map(e=>(0,Z.jsx)(`div`,{className:`px-2 py-1.5 text-center text-meta font-medium text-dark-muted`,children:a(e)},e))}),(0,Z.jsx)(`div`,{className:`grid grid-cols-7`,children:o.map((o,f)=>{let p=Tt(o),m=n.get(p)??[],h=m.slice(0,Ct),g=m.length-h.length,_=at(o,e),ee=N(o,t),v=ot(o),te=l===p;return(0,Z.jsxs)(`div`,{"data-day":p,role:`button`,tabIndex:0,onClick:()=>r(o),onDragOver:e=>{s&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),u(p))},onDragLeave:()=>u(e=>e===p?null:e),onDrop:e=>{if(!s)return;e.preventDefault();let t=s;d(),i?.(t,o)},onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),r(o))},className:[`flex min-h-28 cursor-pointer flex-col gap-1 border-b border-e border-dark-border p-1.5`,f%7==6?`border-e-0`:``,f>=35?`border-b-0`:``,_?`bg-dark-surface`:`bg-dark-bg/50`,te?`bg-accent-blue/10 ring-2 ring-inset ring-accent-blue/70`:ee?`ring-1 ring-inset ring-accent-blue/50`:`hover:bg-dark-hover/40`].join(` `),children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:[`flex h-5 w-5 items-center justify-center rounded-full text-meta tabular-nums`,v?`bg-accent-blue font-semibold text-accent-fg`:_?`text-dark-text`:`text-dark-muted/60`].join(` `),children:o.getDate()}),m.length>0&&(0,Z.jsx)(`span`,{className:`text-badge tabular-nums text-dark-muted`,children:m.length})]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[h.map(e=>(0,Z.jsx)(Ot,{occurrence:e,onSelectDay:r,onDragStart:i?c:void 0,onDragEnd:d},e.key)),g>0&&(0,Z.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),r(o)},className:`px-1 text-start text-badge text-dark-muted hover:text-accent-blue`,children:a(`automation.moreCount`,{count:g})})]})]},o.toISOString())})})]})}function At(e){let t=new Map;for(let n of e){let e=wt(n.at),r=t.get(e);r?r.items.push(n):t.set(e,{at:n.at,items:[n]})}return[...t.values()].sort((e,t)=>e.at.getTime()-t.at.getTime())}function jt({anchor:e,selectedDay:t,byDay:n,onSelectDay:r,onFocusSlot:i,onMoveOccurrence:a}){let{t:o}=C(),s=(0,Y.useMemo)(()=>St(e),[e]),c=(0,Y.useMemo)(()=>Array.from({length:24},(e,t)=>t),[]),[l,u]=(0,Y.useState)(null),[d,f]=(0,Y.useState)(null),p=()=>{u(null),f(null)};return(0,Z.jsxs)(`div`,{className:`overflow-hidden rounded-xl border border-dark-border bg-dark-surface`,children:[(0,Z.jsxs)(`div`,{className:`grid grid-cols-[3rem_repeat(7,minmax(0,1fr))] border-b border-dark-border bg-dark-hover/40`,children:[(0,Z.jsx)(`div`,{}),s.map(e=>{let n=ot(e),i=N(e,t);return(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>r(e),className:[`border-s border-dark-border px-1 py-1.5 text-center`,i?`bg-accent-blue/10`:`hover:bg-dark-hover/60`].join(` `),children:[(0,Z.jsx)(`div`,{className:`text-meta text-dark-muted`,children:o(yt[bt(e)]??``)}),(0,Z.jsx)(`div`,{className:[`mx-auto mt-0.5 flex h-5 w-5 items-center justify-center rounded-full text-meta tabular-nums`,n?`bg-accent-blue font-semibold text-accent-fg`:`text-dark-text`].join(` `),children:e.getDate()})]},e.toISOString())})]}),(0,Z.jsxs)(`div`,{className:`custom-scrollbar grid max-h-[62vh] grid-cols-[3rem_repeat(7,minmax(0,1fr))] overflow-y-auto`,children:[(0,Z.jsx)(`div`,{className:`relative`,style:{height:`72rem`},children:c.map(e=>(0,Z.jsx)(`div`,{className:`absolute end-1 -translate-y-1/2 text-badge tabular-nums text-dark-muted`,style:{top:`${e/24*100}%`},children:e===0?``:`${String(e).padStart(2,`0`)}:00`},e))}),s.map(e=>{let o=Tt(e),s=At(n.get(o)??[]),m=N(e,t);return(0,Z.jsxs)(`div`,{"data-day":o,onDragOver:e=>{l&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),f(o))},onDragLeave:()=>f(e=>e===o?null:e),onDrop:t=>{if(!l)return;t.preventDefault();let n=l;p(),a?.(n,e)},className:[`relative border-s border-dark-border`,d===o?`bg-accent-blue/15 ring-2 ring-inset ring-accent-blue/70`:m?`bg-accent-blue/5`:``].join(` `),style:{height:`72rem`},children:[c.map(e=>(0,Z.jsx)(`div`,{className:`absolute inset-x-0 border-t ${e===0?`border-transparent`:`border-dark-border/60`}`,style:{top:`${e/24*100}%`}},e)),s.map(t=>{let n=t.items[0],o=t.at.getHours()*60+t.at.getMinutes();return(0,Z.jsx)(`div`,{className:`absolute inset-x-0.5 z-10`,style:{top:`${o/1440*100}%`},children:(0,Z.jsx)(Ot,{occurrence:n,onSelectDay:r,extra:t.items.length-1,onDragStart:a&&t.items.length===1?u:void 0,onDragEnd:p,onUnpack:i&&t.items.length>1?()=>i(e,wt(t.at)):void 0})},`${e.toISOString()}-${wt(t.at)}`)})]},e.toISOString())})]})]})}var Mt=e=>J(e,`HH:mm`);function Nt({day:e,occurrences:t,focusSlot:n,onClearFocus:i,onEdit:a,onRun:o,onToggle:s,onCreate:c}){let{t:l}=C(),u=n??null,d=u?t.filter(e=>Mt(e.at)===u).length:0,f=u?t.findIndex(e=>Mt(e.at)===u):-1,p=(0,Y.useRef)(null);return(0,Y.useEffect)(()=>{u&&p.current?.scrollIntoView?.({block:`nearest`})},[u]),(0,Z.jsxs)(`aside`,{className:`flex w-full shrink-0 flex-col overflow-hidden rounded-xl border border-dark-border bg-dark-surface lg:w-80`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start justify-between border-b border-dark-border px-3 py-2`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsxs)(`div`,{className:`truncate text-sm font-semibold`,children:[l(yt[bt(e)]??``),` · `,J(e,`yyyy-MM-dd`)]}),(0,Z.jsxs)(`div`,{className:`text-meta text-dark-muted`,children:[l(`automation.tasksCount`,{count:t.length}),ot(e)?` · ${l(`automation.today`)}`:``]})]}),(0,Z.jsx)(`button`,{type:`button`,onClick:c,title:l(`automation.new`),className:`rounded-lg p-1.5 text-dark-muted hover:bg-dark-hover hover:text-dark-text`,children:(0,Z.jsx)(x,{size:15})})]}),u&&(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 border-b border-dark-border bg-accent-blue/10 px-3 py-1.5 text-meta`,children:[(0,Z.jsx)(`span`,{className:`shrink-0 font-medium tabular-nums`,children:u}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-dark-muted`,children:l(`automation.slotFocus`,{count:d})}),i&&(0,Z.jsx)(`button`,{type:`button`,onClick:i,title:l(`automation.clearFocus`),className:`rounded p-0.5 text-dark-muted hover:bg-dark-hover hover:text-dark-text`,children:(0,Z.jsx)(b,{size:12})})]}),(0,Z.jsx)(`div`,{className:`custom-scrollbar flex-1 overflow-y-auto p-2`,children:t.length===0?(0,Z.jsxs)(`div`,{className:`flex flex-col items-center gap-1 px-2 py-8 text-center`,children:[(0,Z.jsx)(r,{size:22,className:`text-dark-muted`}),(0,Z.jsx)(`p`,{className:`text-xs text-dark-muted`,children:l(`automation.dayEmpty`)}),(0,Z.jsx)(`p`,{className:`text-meta text-dark-muted/70`,children:l(`automation.dayEmptyHint`)})]}):(0,Z.jsx)(`div`,{className:`space-y-1.5`,children:t.map((e,t)=>{let n=e.automation,r=n.status===`enabled`,i=u!==null&&Mt(e.at)===u;return(0,Z.jsxs)(`div`,{ref:t===f?p:void 0,"data-focus-slot":i?u:void 0,className:[`rounded-lg border bg-dark-bg/50 p-2`,i?`border-accent-blue/60 ring-1 ring-inset ring-accent-blue/50`:`border-dark-border`].join(` `),children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(`span`,{className:`shrink-0 text-meta tabular-nums text-dark-muted`,children:Mt(e.at)}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-medium`,title:n.name,children:n.name}),(0,Z.jsx)(`span`,{className:`shrink-0 rounded px-1 py-0.5 text-badge ${r?`bg-accent-green/20 text-accent-green`:`bg-dark-hover text-dark-muted`}`,children:l(r?`automation.enabled`:`automation.disabled`)})]}),(0,Z.jsxs)(`div`,{className:`mt-1 flex items-center gap-1`,children:[n.nextRunAt&&(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-badge text-dark-muted`,children:[l(`automation.nextRun`),`: `,new Date(n.nextRunAt).toLocaleString()]}),(0,Z.jsxs)(`div`,{className:`ms-auto flex shrink-0 items-center gap-0.5`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>a(n),title:l(`automation.edit`),className:`rounded p-1 text-dark-muted hover:bg-dark-hover hover:text-dark-text`,children:(0,Z.jsx)(_,{size:13})}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>s(n),title:l(r?`automation.disable`:`automation.enable`),className:`rounded p-1 text-dark-muted hover:bg-dark-hover hover:text-dark-text`,children:(0,Z.jsx)(y,{size:13})}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>o(n.id),title:l(`automation.runNow`),className:`rounded p-1 text-accent-green hover:bg-dark-hover`,children:(0,Z.jsx)(h,{size:13})})]})]})]},e.key)})})})]})}var Q={name:``,instructions:``,freq:`daily`,time:`09:00`,dow:`1`,onceAt:``,cron:`0 9 * * *`,modelRef:``,connectorIds:[],channelIds:[],workspaceDir:``,readAutoAllow:!0,runSessionMode:`home`,runSessionId:``},Pt=`.agent/automation-attachments`,Ft=`deepseekcode:automation-view`,It=[{id:`month`,key:`automation.viewMonth`,Icon:i},{id:`week`,key:`automation.viewWeek`,Icon:u},{id:`list`,key:`automation.viewList`,Icon:f}];function Lt(){try{let e=localStorage.getItem(Ft);if(e===`month`||e===`week`||e===`list`)return e}catch{}return`month`}function Rt(e){try{localStorage.setItem(Ft,e)}catch{}}var $=e=>String(e).padStart(2,`0`);function zt(e){let t=e.schedule,n={modelRef:e.modelRef??``,connectorIds:Array.isArray(e.connectorIds)?[...e.connectorIds]:[],channelIds:Array.isArray(e.notificationChannelIds)?[...e.notificationChannelIds]:[],workspaceDir:e.workspaceDir??``,readAutoAllow:e.readAutoAllow,runSessionMode:e.runSessionMode??`home`,runSessionId:e.runSessionId??``};if(t.kind===`once`&&t.fireAt){let r=new Date(t.fireAt);return{...Q,name:e.name,instructions:e.instructions,freq:`once`,time:`${$(r.getHours())}:${$(r.getMinutes())}`,onceAt:`${r.getFullYear()}-${$(r.getMonth()+1)}-${$(r.getDate())}T${$(r.getHours())}:${$(r.getMinutes())}`,...n}}let r=(t.cron||``).trim().split(/\s+/),i={...Q,name:e.name,instructions:e.instructions,...n};if(r.length===5){let e=r[0]??``,t=r[1]??``,n=r[4]??``,a=`${$(parseInt(t,10)||0)}:${$(parseInt(e,10)||0)}`;if(n===`*`)return{...i,freq:`daily`,time:a};if(n===`1-5`)return{...i,freq:`weekdays`,time:a};if(/^\d+$/.test(n))return{...i,freq:`weekly`,time:a,dow:n}}return{...i,freq:`custom`,cron:t.cron||``}}function Bt(e){let[t,n]=e.time.split(`:`),r=parseInt(t??``,10),i=parseInt(n??``,10);switch(e.freq){case`daily`:return Number.isInteger(r)&&Number.isInteger(i)?{kind:`cron`,cron:`${i} ${r} * * *`}:null;case`weekdays`:return Number.isInteger(r)&&Number.isInteger(i)?{kind:`cron`,cron:`${i} ${r} * * 1-5`}:null;case`weekly`:return Number.isInteger(r)&&Number.isInteger(i)?{kind:`cron`,cron:`${i} ${r} * * ${e.dow}`}:null;case`once`:return e.onceAt?{kind:`once`,fireAt:new Date(e.onceAt).toISOString()}:null;case`custom`:return e.cron.trim()?{kind:`cron`,cron:e.cron.trim()}:null}}function Vt(e,t){if(e.kind===`once`&&e.fireAt){let n=new Date(e.fireAt);return`${t(`automation.badgeOnce`)} ${n.toLocaleString()}`}let n=(e.cron||``).trim().split(/\s+/);if(n.length!==5)return e.cron||``;let r=n[0]??``,i=n[1]??``,a=n[4]??``,o=`${$(parseInt(i,10)||0)}:${$(parseInt(r,10)||0)}`;return a===`*`?t(`automation.badgeDaily`,{time:o}):a===`1-5`?t(`automation.badgeWeekdays`,{time:o}):/^\d+$/.test(a)?t(`automation.badgeWeekly`,{day:t(`automation.dow.${[`sunday`,`monday`,`tuesday`,`wednesday`,`thursday`,`friday`,`saturday`][parseInt(a,10)%7]}`),time:o}):e.cron||``}var Ht=[{value:`1`,key:`automation.dow.monday`},{value:`2`,key:`automation.dow.tuesday`},{value:`3`,key:`automation.dow.wednesday`},{value:`4`,key:`automation.dow.thursday`},{value:`5`,key:`automation.dow.friday`},{value:`6`,key:`automation.dow.saturday`},{value:`0`,key:`automation.dow.sunday`}];function Ut(e){let t=e.replace(/[\\/]+$/,``),n=Math.max(t.lastIndexOf(`\\`),t.lastIndexOf(`/`));return n===-1?t:t.slice(n+1)}function Wt({isOpen:e,initial:t,onClose:r,onConfirm:i}){let{t:o}=C(),{visible:s,phase:c}=ue(e),[l,u]=(0,Y.useState)(t),[d,f]=(0,Y.useState)(null),[m,h]=(0,Y.useState)([]),[g,_]=(0,Y.useState)(!1),[ee,v]=(0,Y.useState)(``),[y,ne]=(0,Y.useState)(t),x=(0,Y.useRef)(null),S=async e=>{_(!0),v(``);try{let t=await T.dirs.list(e);if(!t.success||!t.data){v(t.error||`加载目录失败`);return}u(t.data.path),f(t.data.parent),h(t.data.dirs||[]),ne(t.data.path)}catch(e){v(e instanceof Error?e.message:`加载目录失败`)}finally{_(!1)}};return(0,Y.useEffect)(()=>{e&&S(t)},[e,t]),(0,Y.useEffect)(()=>{x.current?.focus()},[]),(0,Y.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),r())};return document.addEventListener(`keydown`,t),document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,t),document.body.style.overflow=``}},[e,r]),s?(0,Z.jsxs)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center overflow-hidden p-4`,role:`dialog`,"aria-modal":`true`,children:[(0,Z.jsx)(`div`,{className:`absolute inset-0 ui-scrim ui-overlay-backdrop`,"data-phase":c,onClick:r}),(0,Z.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":c,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2.5 border-b border-dark-border shrink-0`,children:[(0,Z.jsxs)(`span`,{className:`flex items-center gap-2 text-compact font-semibold text-dark-text`,children:[(0,Z.jsx)(ie,{size:15,className:`text-accent-blue`}),o(`automation.workspacePick`)]}),(0,Z.jsx)(`button`,{type:`button`,onClick:r,className:`rounded p-1 text-dark-muted hover:bg-dark-hover`,children:(0,Z.jsx)(b,{size:15})})]}),(0,Z.jsxs)(`div`,{className:`p-4 flex flex-col gap-3 min-h-0 flex-1`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,Z.jsx)(p,{size:13,className:`absolute start-2.5 top-1/2 -translate-y-1/2 text-dark-muted/60`}),(0,Z.jsx)(`input`,{ref:x,value:y,onChange:e=>ne(e.target.value),onKeyDown:e=>{e.key===`Enter`&&S(y.trim())},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 focus:outline-none focus:border-accent-blue/50`})]}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void S(y.trim()),disabled:g||!y.trim(),className:`shrink-0 rounded-lg border border-dark-border px-2.5 py-1.5 text-xs text-dark-muted hover:bg-dark-hover disabled:opacity-40`,children:o(`chat.dirPickerGo`)})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.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||`—`}),(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>d&&void S(d),disabled:g||!d,className:`shrink-0 flex items-center gap-1 rounded-md border border-dark-border px-2 py-1 text-meta text-dark-muted hover:bg-dark-hover disabled:opacity-40`,children:[(0,Z.jsx)(a,{size:12}),o(`chat.dirPickerUp`)]})]}),(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto rounded-lg border border-dark-border bg-dark-surface divide-y divide-dark-border/60`,children:g?(0,Z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-xs text-dark-muted`,children:[(0,Z.jsx)(n,{size:14,className:`animate-spin`}),o(`chat.loading`)]}):ee?(0,Z.jsx)(`div`,{className:`px-3 py-4 text-xs text-accent-red`,children:ee}):m.length===0?(0,Z.jsx)(`div`,{className:`px-3 py-4 text-xs text-dark-muted/60 text-center`,children:`—`}):m.map(e=>{let t=l.includes(`\\`)?`\\`:`/`,n=l.endsWith(t)?l+e:l+t+e;return(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>void S(n),className:`w-full flex items-center gap-2 px-3 py-1.5 text-start text-xs text-dark-text hover:bg-dark-hover`,children:[(0,Z.jsx)(te,{size:13,className:`shrink-0 text-accent-yellow/80`}),(0,Z.jsx)(`span`,{className:`truncate`,children:e})]},e)})}),(0,Z.jsx)(le,{variant:`accent`,className:`w-full`,onClick:()=>i(l),disabled:!l,loading:g,children:o(`chat.dirPickerConfirm`)})]})]})]}):null}function Gt(){let{t:e}=C(),{automations:i,runsByAutomation:a,fetchAutomations:u,createAutomation:d,updateAutomation:f,deleteAutomation:te,toggleAutomation:se,runAutomation:ce,fetchRuns:fe,error:pe}=de(),[me,E]=(0,Y.useState)(!1),{visible:D,phase:he}=ue(me),[_e,O]=(0,Y.useState)(null),[k,A]=(0,Y.useState)(Q),[ve,ye]=(0,Y.useState)(null),[j,M]=(0,Y.useState)(``),[be,xe]=(0,Y.useState)(!1),[Ce,N]=(0,Y.useState)(!1),[P,we]=(0,Y.useState)(Lt),[F,Te]=(0,Y.useState)(()=>new Date),[I,Ee]=(0,Y.useState)(()=>new Date),[De,Oe]=(0,Y.useState)(null),L=e=>{Ee(e),Oe(null)};(0,Y.useEffect)(()=>{Rt(P)},[P]);let R=(0,Y.useMemo)(()=>{if(P===`month`){let e=xt(F);return{from:e[0],to:e[e.length-1]}}if(P===`week`){let e=St(F);return{from:e[0],to:e[e.length-1]}}return null},[P,F]),ke=(0,Y.useMemo)(()=>R?mt(i,R.from,R.to):[],[i,R]),z=(0,Y.useMemo)(()=>vt(ke),[ke]),Ae=(0,Y.useMemo)(()=>z.get(_t(I))??[],[z,I]),B=e=>{let t=P===`week`?Se(F,e):ge(F,e);Te(t),(P===`week`?it(I,t,{weekStartsOn:1}):at(I,t))||L(t)},je=()=>{let e=new Date;Te(e),L(e)},V=async(t,n)=>{let r=gt(t.automation,n);if(!r.ok){r.reason===`noop-day`?w.info(e(`automation.dragNoop`)):w.warning(e(`automation.dragLocked`));return}let i=Vt(t.automation.schedule,e);await f(t.automation.id,{schedule:r.schedule})&&(L(n),w.success(e(`automation.dragMoved`,{name:t.automation.name,from:i,to:Vt(r.schedule,e)})))},Me=(0,Y.useMemo)(()=>{if(P===`week`){let e=St(F);return`${J(e[0],`yyyy-MM-dd`)} → ${J(e[e.length-1],`MM-dd`)}`}return J(F,`yyyy-MM`)},[P,F]),[Ne,Pe]=(0,Y.useState)([]),[Fe,Ie]=(0,Y.useState)([]),[Le,Re]=(0,Y.useState)([]),[ze,Be]=(0,Y.useState)([]),[H,U]=(0,Y.useState)(!1),[W,Ve]=(0,Y.useState)(!1),He=async()=>{if(H)return;U(!0);let e=await T.sessions.list().catch(()=>({success:!1,data:void 0}));e.success&&Array.isArray(e.data)&&Be(e.data.filter(e=>!e.id.startsWith(`__automation_run__`)))},[G,K]=(0,Y.useState)([]),Ue=(0,Y.useRef)(null);(0,Y.useEffect)(()=>{u()},[u]);let q=async e=>{O(null),A(e?{...e.form}:{...Q}),K([]),E(!0),await Ke()},We=async e=>{O(e.id),A(zt(e)),K((e.attachments??[]).map((e,t)=>({id:`existing-${t}-${e}`,name:Ut(e),file:null,uploading:!1,path:e}))),E(!0),await Ke(),e.runSessionMode===`fixed`&&He()},Ge=()=>{E(!1),O(null),A(Q),K([]),N(!1)},Ke=async()=>{Ve(!0);try{let[e,t,n]=await Promise.all([T.models.list().catch(()=>({success:!1,data:void 0})),T.connectors.list().catch(()=>({success:!1,data:void 0})),T.channels.list().catch(()=>({success:!1,data:void 0}))]);e.success&&e.data?.models?Pe(e.data.models.filter(e=>e.enabled!==!1)):Pe([]),t.success&&t.data?.connectors?Ie(t.data.connectors.filter(e=>e.installed)):Ie([]),n.success&&Array.isArray(n.data)?Re(n.data):Re([])}finally{Ve(!1)}},qe=async()=>{let e=Bt(k);if(!k.name.trim()||!k.instructions.trim()||!e)return;if(G.some(e=>e.uploading)){w.warning(`附件上传中,请稍候…`);return}let t=G.filter(e=>e.error).map(e=>e.name);if(t.length>0){w.warning(`附件上传失败:${t.join(`, `)}`);return}xe(!0);let n={name:k.name.trim(),instructions:k.instructions.trim(),schedule:e,workspaceDir:k.workspaceDir.trim(),readAutoAllow:k.readAutoAllow,modelRef:k.modelRef.trim()||null,attachments:G.map(e=>e.path).filter(e=>!!e),connectorIds:[...k.connectorIds],notificationChannelIds:[...k.channelIds],runSessionMode:k.runSessionMode,runSessionId:k.runSessionMode===`fixed`&&k.runSessionId.trim()||null},r=_e?await f(_e,n):await d(n)!==null;xe(!1),r&&Ge()},Je=async e=>{let t=j.trim();if(!t)return;let[n,...r]=t.split(/\s+/),i=r.join(` `);n&&i&&(await fetch(`/api/automations/${encodeURIComponent(e)}/permissions`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({tool:n,target:i})})).ok&&(M(``),await u())},Ye=async(e,t)=>{(await fetch(`/api/automations/${encodeURIComponent(e)}/permissions`,{method:`DELETE`,headers:{"content-type":`application/json`},body:JSON.stringify({entry:t})})).ok&&await u()},Xe=async e=>{let t=ve===e?null:e;ye(t),t&&await fe(e)},Ze=async e=>{if(!e||e.length===0)return;let t=Array.from(e).map(e=>({id:`f-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,name:e.name,file:e,uploading:!0}));K(e=>[...e,...t]);for(let e of t){let t=`${Pt}/${e.name}`;try{let n=await T.files.upload(e.file,t);if(n.success&&n.data?.path){let t=n.data.path.replace(/\\/g,`/`);K(n=>n.map(n=>n.id===e.id?{...n,uploading:!1,path:t}:n))}else K(t=>t.map(t=>t.id===e.id?{...t,uploading:!1,error:n.error||`upload failed`}:t))}catch(t){let n=t instanceof Error?t.message:`upload failed`;K(t=>t.map(t=>t.id===e.id?{...t,uploading:!1,error:n}:t))}}},Qe=e=>{K(t=>t.filter(t=>t.id!==e))},$e=[{id:`movie`,nameKey:`automation.tplMovieName`,descKey:`automation.tplMovieDesc`,form:{...Q,name:e(`automation.tplMovieName`),instructions:e(`automation.tplMovieInstr`),freq:`daily`,time:`20:00`}},{id:`health`,nameKey:`automation.tplHealthName`,descKey:`automation.tplHealthDesc`,form:{...Q,name:e(`automation.tplHealthName`),instructions:e(`automation.tplHealthInstr`),freq:`daily`,time:`14:00`}},{id:`why`,nameKey:`automation.tplWhyName`,descKey:`automation.tplWhyDesc`,form:{...Q,name:e(`automation.tplWhyName`),instructions:e(`automation.tplWhyInstr`),freq:`daily`,time:`16:00`}},{id:`git`,nameKey:`automation.tplGitName`,descKey:`automation.tplGitDesc`,form:{...Q,name:e(`automation.tplGitName`),instructions:e(`automation.tplGitInstr`),freq:`weekdays`,time:`09:00`}}],et=k.name.trim()&&k.instructions.trim()&&(k.freq===`custom`?!!k.cron.trim():k.freq!==`once`||!!k.onceAt);return(0,Z.jsxs)(`div`,{className:`flex-1 min-h-0 flex flex-col overflow-y-auto p-6`,children:[(0,Z.jsxs)(`div`,{className:`max-w-6xl w-full mx-auto`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start justify-between mb-1`,children:[(0,Z.jsxs)(`h2`,{className:`text-xl font-semibold flex items-center gap-2`,children:[(0,Z.jsx)(g,{size:20,className:`text-accent-blue`}),e(`automation.title`)]}),(0,Z.jsx)(`button`,{onClick:()=>void u(),className:`p-2 rounded-lg hover:bg-dark-hover text-dark-muted`,title:e(`automation.refresh`),children:(0,Z.jsx)(t,{size:16})})]}),(0,Z.jsx)(`p`,{className:`text-sm text-dark-muted mb-4`,children:e(`automation.subtitle`)}),pe&&(0,Z.jsxs)(`div`,{className:`mb-4 p-3 rounded-lg bg-accent-red/10 text-accent-red text-sm flex items-center gap-2`,children:[(0,Z.jsx)(ne,{size:16}),` `,pe]}),(0,Z.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`div`,{className:`flex items-center rounded-lg border border-dark-border bg-dark-surface p-0.5`,children:It.map(({id:t,key:n,Icon:r})=>(0,Z.jsxs)(`button`,{onClick:()=>we(t),"aria-pressed":P===t,className:`flex items-center gap-1 rounded-md px-2.5 py-1 text-xs transition-colors ${P===t?`bg-accent-blue/15 text-accent-blue font-medium`:`text-dark-muted hover:text-dark-text`}`,children:[(0,Z.jsx)(r,{size:13}),` `,e(n)]},t))}),P!==`list`&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Z.jsx)(`button`,{onClick:()=>B(-1),title:e(`automation.prevPeriod`),className:`rounded-lg border border-dark-border bg-dark-surface p-1.5 text-dark-muted hover:text-dark-text`,children:(0,Z.jsx)(oe,{size:14})}),(0,Z.jsx)(`button`,{onClick:je,className:`rounded-lg border border-dark-border bg-dark-surface px-2 py-1.5 text-xs text-dark-muted hover:text-dark-text`,children:e(`automation.today`)}),(0,Z.jsx)(`button`,{onClick:()=>B(1),title:e(`automation.nextPeriod`),className:`rounded-lg border border-dark-border bg-dark-surface p-1.5 text-dark-muted hover:text-dark-text`,children:(0,Z.jsx)(ae,{size:14})})]}),(0,Z.jsx)(`span`,{className:`text-sm font-medium tabular-nums`,children:Me})]}),(0,Z.jsxs)(`div`,{className:`ms-auto flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`text-xs text-dark-muted`,children:e(`automation.tasksCount`,{count:i.length})}),(0,Z.jsxs)(`button`,{onClick:()=>void q(),className:`flex items-center gap-1 rounded-lg bg-accent-blue px-3 py-1.5 text-xs font-medium text-accent-fg hover:brightness-110`,children:[(0,Z.jsx)(x,{size:14}),` `,e(`automation.new`)]})]})]}),P!==`list`&&(0,Z.jsxs)(`div`,{className:`mb-6 flex flex-col gap-3 lg:flex-row lg:items-start`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[P===`month`?(0,Z.jsx)(kt,{anchor:F,selectedDay:I,byDay:z,onSelectDay:L,onMoveOccurrence:(e,t)=>void V(e,t)}):(0,Z.jsx)(jt,{anchor:F,selectedDay:I,byDay:z,onSelectDay:L,onFocusSlot:(e,t)=>{Ee(e),Oe(t)},onMoveOccurrence:(e,t)=>void V(e,t)}),i.length===0&&(0,Z.jsxs)(`div`,{className:`mt-3 flex items-center gap-2 rounded-lg border border-dashed border-dark-border px-3 py-2 text-xs text-dark-muted`,children:[(0,Z.jsx)(r,{size:14}),e(`automation.emptyTitle`),` · `,e(`automation.emptyDesc`)]})]}),(0,Z.jsx)(Nt,{day:I,occurrences:Ae,focusSlot:De,onClearFocus:()=>Oe(null),onEdit:e=>void We(e),onRun:e=>void ce(e),onToggle:e=>void se(e.id,e.status!==`enabled`),onCreate:()=>void q()})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,Z.jsx)(c,{size:16,className:`text-accent-yellow`}),(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:e(`automation.recommendedTitle`)})]}),(0,Z.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-2 mb-6`,children:$e.map(t=>(0,Z.jsxs)(`button`,{onClick:()=>void q(t),className:`text-start rounded-xl border border-dark-border bg-dark-surface p-2.5 hover:border-accent-blue/60 hover:bg-dark-hover/50 transition-colors flex flex-col gap-1`,children:[(0,Z.jsx)(`span`,{className:`text-xs font-semibold`,children:e(t.nameKey)}),(0,Z.jsx)(`span`,{className:`text-meta text-dark-muted leading-relaxed line-clamp-1`,children:e(t.descKey)}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 self-start rounded bg-dark-hover px-1.5 py-0.5 text-badge text-dark-muted`,children:[(0,Z.jsx)(g,{size:11}),` `,Vt(Bt(t.form),e)]})]},t.id))}),P===`list`&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:e(`automation.mineTitle`)}),(0,Z.jsx)(`span`,{className:`text-xs text-dark-muted`,children:i.length})]}),i.length===0?(0,Z.jsxs)(`div`,{className:`rounded-xl border border-dashed border-dark-border py-12 flex flex-col items-center gap-2 text-center`,children:[(0,Z.jsx)(r,{size:32,className:`text-dark-muted`}),(0,Z.jsx)(`p`,{className:`text-sm font-medium`,children:e(`automation.emptyTitle`)}),(0,Z.jsx)(`p`,{className:`text-xs text-dark-muted`,children:e(`automation.emptyDesc`)}),(0,Z.jsxs)(`button`,{onClick:()=>void q(),className:`mt-2 flex items-center gap-1 px-4 py-1.5 rounded-lg border border-dark-border bg-dark-surface hover:bg-dark-hover text-sm font-medium`,children:[(0,Z.jsx)(x,{size:15}),` `,e(`automation.new`)]})]}):(0,Z.jsx)(`div`,{className:`space-y-2`,children:i.map(t=>(0,Z.jsxs)(`div`,{className:`rounded-xl border border-dark-border bg-dark-surface`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between p-3`,children:[(0,Z.jsxs)(`button`,{onClick:()=>void Xe(t.id),className:`flex items-center gap-2 min-w-0 text-start`,children:[(0,Z.jsx)(g,{size:16,className:`text-accent-blue shrink-0`}),(0,Z.jsx)(`span`,{className:`font-medium text-sm truncate`,children:t.name}),(0,Z.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded shrink-0 ${t.status===`enabled`?`bg-accent-green/20 text-accent-green`:`bg-dark-hover text-dark-muted`}`,children:t.status===`enabled`?e(`automation.enabled`):e(`automation.disabled`)}),(0,Z.jsx)(`span`,{className:`text-xs text-dark-muted shrink-0 hidden md:inline`,children:Vt(t.schedule,e)})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[t.nextRunAt&&(0,Z.jsxs)(`span`,{className:`text-xs text-dark-muted hidden lg:inline me-1`,children:[e(`automation.nextRun`),`: `,new Date(t.nextRunAt).toLocaleString()]}),(0,Z.jsx)(`button`,{onClick:()=>void We(t),className:`p-1.5 rounded-lg hover:bg-dark-hover text-dark-muted`,title:e(`automation.edit`),children:(0,Z.jsx)(_,{size:15})}),(0,Z.jsx)(`button`,{onClick:()=>void se(t.id,t.status!==`enabled`),className:`p-1.5 rounded-lg hover:bg-dark-hover text-dark-muted`,title:t.status===`enabled`?e(`automation.disable`):e(`automation.enable`),children:(0,Z.jsx)(y,{size:15})}),(0,Z.jsx)(`button`,{onClick:()=>void ce(t.id),className:`p-1.5 rounded-lg hover:bg-dark-hover text-accent-green`,title:e(`automation.runNow`),children:(0,Z.jsx)(h,{size:15})}),(0,Z.jsx)(`button`,{onClick:()=>void te(t.id),className:`p-1.5 rounded-lg hover:bg-dark-hover text-accent-red`,title:e(`automation.delete`),children:(0,Z.jsx)(ee,{size:15})})]})]}),ve===t.id&&(0,Z.jsxs)(`div`,{className:`px-3 pb-3 space-y-3 border-t border-dark-border pt-3`,children:[(0,Z.jsx)(`p`,{className:`text-xs text-dark-muted whitespace-pre-wrap`,children:t.instructions}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`h4`,{className:`text-xs font-semibold text-dark-muted mb-1 flex items-center gap-1`,children:[(0,Z.jsx)(m,{size:12}),` `,e(`automation.historyTitle`)]}),(a[t.id]||[]).length===0&&(0,Z.jsx)(`p`,{className:`text-xs text-dark-muted`,children:e(`automation.noRuns`)}),(a[t.id]||[]).slice(0,10).map(e=>(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 text-xs py-1`,children:[(0,Z.jsxs)(`span`,{className:`px-1.5 py-0.5 rounded flex items-center gap-1 ${e.status===`ok`?`bg-accent-green/20 text-accent-green`:e.status===`error`?`bg-accent-red/20 text-accent-red`:`bg-accent-yellow/20 text-accent-yellow`}`,children:[e.status===`ok`&&(0,Z.jsx)(re,{size:11}),e.status]}),(0,Z.jsx)(`span`,{className:`text-dark-muted`,children:new Date(e.startedAt).toLocaleString()}),(0,Z.jsxs)(`span`,{className:`text-dark-muted truncate flex-1`,children:[`#`,e.id.slice(0,8),` · `,e.trigger]})]},e.id))]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h4`,{className:`text-xs font-semibold text-dark-muted mb-1`,children:e(`automation.permissionsTitle`)}),t.permissions.length===0&&(0,Z.jsx)(`p`,{className:`text-xs text-dark-muted`,children:e(`automation.permissionsEmpty`)}),(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1 mb-1`,children:t.permissions.map(e=>(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded bg-accent-blue/10 text-accent-blue text-xs`,children:[e,(0,Z.jsx)(`button`,{onClick:()=>void Ye(t.id,e),className:`hover:text-accent-red`,children:(0,Z.jsx)(b,{size:12})})]},e))}),(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(`input`,{value:j,onChange:e=>M(e.target.value),placeholder:e(`automation.permissionPlaceholder`),className:`flex-1 px-2 py-1.5 rounded-lg bg-dark-bg border border-dark-border text-xs focus:outline-none focus:border-accent-blue`}),(0,Z.jsx)(`button`,{onClick:()=>void Je(t.id),className:`px-3 py-1.5 rounded-lg bg-dark-hover text-dark-muted hover:text-dark-text text-xs`,children:e(`automation.add`)})]})]})]})]},t.id))})]})]}),D&&(0,Z.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4`,onClick:Ge,children:[(0,Z.jsx)(`div`,{className:`absolute inset-0 ui-scrim ui-overlay-backdrop`,"data-phase":he,"aria-hidden":`true`}),(0,Z.jsxs)(`div`,{className:`relative w-full max-w-2xl rounded-xl border border-dark-border bg-dark-overlay ui-surface-overlay p-5 space-y-4 shadow-pop max-h-[90vh] overflow-y-auto custom-scrollbar ui-overlay-panel`,"data-phase":he,onClick:e=>e.stopPropagation(),children:[(0,Z.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`text-base font-semibold`,children:e(_e?`automation.editTitle`:`automation.createTitle`)}),(0,Z.jsx)(`p`,{className:`text-xs text-dark-muted mt-0.5`,children:e(`automation.subtitle`)})]}),(0,Z.jsx)(`button`,{onClick:Ge,className:`p-1.5 rounded-lg hover:bg-dark-hover text-dark-muted`,children:(0,Z.jsx)(b,{size:16})})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:`block text-xs font-medium text-dark-muted mb-1.5`,children:e(`automation.nameLabel`)}),(0,Z.jsx)(`input`,{autoFocus:!0,value:k.name,onChange:e=>A(t=>({...t,name:e.target.value})),placeholder:e(`automation.namePlaceholder`),className:`w-full px-3 py-2 rounded-lg bg-dark-surface border border-dark-border text-sm focus:outline-none focus:border-accent-blue`})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:`block text-xs font-medium text-dark-muted mb-1.5`,children:e(`automation.scheduleLabel`)}),(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsxs)(`select`,{value:k.freq,onChange:e=>A(t=>({...t,freq:e.target.value})),className:`px-2.5 py-2 rounded-lg bg-dark-surface border border-dark-border text-sm focus:outline-none focus:border-accent-blue`,children:[(0,Z.jsx)(`option`,{value:`daily`,children:e(`automation.freqDaily`)}),(0,Z.jsx)(`option`,{value:`weekly`,children:e(`automation.freqWeekly`)}),(0,Z.jsx)(`option`,{value:`weekdays`,children:e(`automation.freqWeekdays`)}),(0,Z.jsx)(`option`,{value:`once`,children:e(`automation.freqOnce`)}),(0,Z.jsx)(`option`,{value:`custom`,children:e(`automation.freqCustom`)})]}),k.freq===`weekly`&&(0,Z.jsx)(`select`,{value:k.dow,onChange:e=>A(t=>({...t,dow:e.target.value})),className:`px-2.5 py-2 rounded-lg bg-dark-surface border border-dark-border text-sm focus:outline-none focus:border-accent-blue`,children:Ht.map(t=>(0,Z.jsx)(`option`,{value:t.value,children:e(t.key)},t.value))}),(k.freq===`daily`||k.freq===`weekly`||k.freq===`weekdays`)&&(0,Z.jsx)(`input`,{type:`time`,value:k.time,onChange:e=>A(t=>({...t,time:e.target.value})),className:`flex-1 px-3 py-2 rounded-lg bg-dark-surface border border-dark-border text-sm focus:outline-none focus:border-accent-blue`}),k.freq===`once`&&(0,Z.jsx)(`input`,{type:`datetime-local`,value:k.onceAt,onChange:e=>A(t=>({...t,onceAt:e.target.value})),className:`flex-1 px-3 py-2 rounded-lg bg-dark-surface border border-dark-border text-sm focus:outline-none focus:border-accent-blue`}),k.freq===`custom`&&(0,Z.jsx)(`input`,{value:k.cron,onChange:e=>A(t=>({...t,cron:e.target.value})),placeholder:`*/30 * * * *`,className:`flex-1 px-3 py-2 rounded-lg bg-dark-bg border border-dark-border text-sm font-mono focus:outline-none focus:border-accent-blue`})]})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{className:`block text-xs font-medium text-dark-muted mb-1.5`,children:e(`automation.instructionLabel`)}),(0,Z.jsx)(`textarea`,{value:k.instructions,onChange:e=>A(t=>({...t,instructions:e.target.value})),placeholder:e(`automation.instructionsPlaceholder`),rows:4,className:`w-full px-3 py-2 rounded-lg bg-dark-bg border border-dark-border text-sm focus:outline-none focus:border-accent-blue resize-none`})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs font-medium text-dark-muted mb-1.5`,children:[(0,Z.jsx)(v,{size:12}),` `,e(`automation.attachmentsLabel`)]}),(0,Z.jsx)(`p`,{className:`text-badge text-dark-muted/70 mb-1.5`,children:e(`automation.attachmentsHint`)}),G.length===0?(0,Z.jsx)(`div`,{className:`text-xs text-dark-muted/60 italic`,children:e(`automation.attachmentsEmpty`)}):(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mb-2`,children:G.map(e=>(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-xs ${e.error?`bg-accent-red/10 text-accent-red`:e.uploading?`bg-dark-hover text-dark-muted`:`bg-accent-blue/10 text-accent-blue`}`,title:e.path??e.error,children:[(0,Z.jsx)(v,{size:11}),(0,Z.jsx)(`span`,{className:`truncate max-w-[180px]`,children:e.name}),e.uploading&&(0,Z.jsx)(n,{size:11,className:`animate-spin`}),e.error&&(0,Z.jsx)(ne,{size:11}),(0,Z.jsx)(`button`,{onClick:()=>Qe(e.id),className:`hover:text-accent-red ms-0.5`,children:(0,Z.jsx)(b,{size:11})})]},e.id))}),(0,Z.jsx)(`input`,{ref:Ue,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{Ze(e.target.files),e.target.value=``}}),(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>Ue.current?.click(),className:`inline-flex items-center gap-1 px-2.5 py-1 rounded-lg border border-dashed border-dark-border text-xs text-dark-muted hover:border-accent-blue/60 hover:text-accent-blue`,children:[(0,Z.jsx)(x,{size:12}),` `,e(`automation.attachmentsAdd`)]})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs font-medium text-dark-muted mb-1.5`,children:[(0,Z.jsx)(o,{size:12}),` `,e(`automation.modelLabel`)]}),(0,Z.jsxs)(`select`,{value:k.modelRef,onChange:e=>A(t=>({...t,modelRef:e.target.value})),className:`w-full px-3 py-2 rounded-lg bg-dark-bg border border-dark-border text-sm focus:outline-none focus:border-accent-blue disabled:opacity-50 disabled:cursor-not-allowed`,disabled:W||k.runSessionMode!==`new`,children:[(0,Z.jsx)(`option`,{value:``,children:e(`automation.modelAuto`)}),Ne.map(e=>(0,Z.jsxs)(`option`,{value:`${e.provider}:${e.id}`,children:[e.name,` · `,e.provider]},`${e.provider}:${e.id}`))]}),k.runSessionMode!==`new`&&(0,Z.jsx)(`p`,{className:`text-badge text-dark-muted/70 mt-1`,children:e(`automation.modelFollowsSession`)}),!W&&Ne.length===0&&(0,Z.jsx)(`p`,{className:`text-badge text-dark-muted/70 mt-1`,children:e(`automation.modelNoModels`)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs font-medium text-dark-muted mb-1.5`,children:[(0,Z.jsx)(p,{size:12}),` `,e(`automation.runSessionLabel`)]}),(0,Z.jsxs)(`select`,{value:k.runSessionMode,onChange:e=>{let t=e.target.value;A(e=>({...e,runSessionMode:t})),t===`fixed`&&He()},className:`w-full px-3 py-2 rounded-lg bg-dark-bg border border-dark-border text-sm focus:outline-none focus:border-accent-blue`,children:[(0,Z.jsx)(`option`,{value:`home`,children:e(`automation.runSessionHome`)}),(0,Z.jsx)(`option`,{value:`new`,children:e(`automation.runSessionNew`)}),(0,Z.jsx)(`option`,{value:`fixed`,children:e(`automation.runSessionFixed`)})]}),k.runSessionMode===`fixed`&&(0,Z.jsxs)(`select`,{value:k.runSessionId,onChange:e=>A(t=>({...t,runSessionId:e.target.value})),className:`mt-2 w-full px-3 py-2 rounded-lg bg-dark-bg border border-dark-border text-sm focus:outline-none focus:border-accent-blue`,disabled:W,children:[(0,Z.jsx)(`option`,{value:``,children:e(`automation.runSessionPick`)}),ze.map(e=>(0,Z.jsx)(`option`,{value:e.id,children:e.title||e.id},e.id))]}),(0,Z.jsx)(`p`,{className:`text-badge text-dark-muted/70 mt-1`,children:e(`automation.runSessionHint`)})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs font-medium text-dark-muted mb-1.5`,children:[(0,Z.jsx)(S,{size:12}),` `,e(`automation.connectorsLabel`)]}),(0,Z.jsx)(`p`,{className:`text-badge text-dark-muted/70 mb-1.5`,children:e(`automation.connectorsHint`)}),Fe.length===0?(0,Z.jsx)(`div`,{className:`text-xs text-dark-muted/60 italic`,children:e(`automation.connectorsEmpty`)}):(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:Fe.map(e=>{let t=k.connectorIds.includes(e.id);return(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>A(n=>({...n,connectorIds:t?n.connectorIds.filter(t=>t!==e.id):[...n.connectorIds,e.id]})),className:`inline-flex items-center gap-1 px-2 py-1 rounded-md text-xs transition-colors ${t?`bg-accent-blue/15 text-accent-blue border border-accent-blue/40`:`bg-dark-bg text-dark-muted border border-dark-border hover:border-accent-blue/40 hover:text-accent-blue`}`,children:[(0,Z.jsx)(S,{size:11}),e.name]},e.id)})})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs font-medium text-dark-muted mb-1.5`,children:[(0,Z.jsx)(l,{size:12}),` `,e(`automation.channelsLabel`)]}),(0,Z.jsx)(`p`,{className:`text-badge text-dark-muted/70 mb-1.5`,children:e(`automation.channelsHint`)}),Le.length===0?(0,Z.jsx)(`div`,{className:`text-xs text-dark-muted/60 italic`,children:e(`automation.channelsEmpty`)}):(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:Le.map(e=>{let t=k.channelIds.includes(e.id);return(0,Z.jsxs)(`button`,{type:`button`,disabled:!e.enabled,onClick:()=>A(n=>({...n,channelIds:t?n.channelIds.filter(t=>t!==e.id):[...n.channelIds,e.id]})),className:`inline-flex items-center gap-1 px-2 py-1 rounded-md text-xs transition-colors ${t?`bg-accent-blue/15 text-accent-blue border border-accent-blue/40`:e.enabled?`bg-dark-bg text-dark-muted border border-dark-border hover:border-accent-blue/40 hover:text-accent-blue`:`bg-dark-bg text-dark-muted/50 border border-dark-border opacity-60 cursor-not-allowed`}`,children:[(0,Z.jsx)(l,{size:11}),e.name,!e.enabled&&(0,Z.jsx)(`span`,{className:`text-avatar`,children:`·off`})]},e.id)})})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs font-medium text-dark-muted mb-1.5`,children:[(0,Z.jsx)(ie,{size:12}),` `,e(`automation.workspaceLabel`)]}),(0,Z.jsx)(`p`,{className:`text-badge text-dark-muted/70 mb-1.5`,children:e(`automation.workspaceHint`)}),(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(`input`,{value:k.workspaceDir,onChange:e=>A(t=>({...t,workspaceDir:e.target.value})),placeholder:`留空使用当前工作目录`,className:`flex-1 px-3 py-2 rounded-lg bg-dark-bg border border-dark-border text-sm font-mono focus:outline-none focus:border-accent-blue`}),(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>N(!0),className:`shrink-0 inline-flex items-center gap-1 px-3 py-2 rounded-lg border border-dark-border text-xs text-dark-muted hover:bg-dark-hover hover:text-dark-text`,children:[(0,Z.jsx)(ie,{size:12}),` `,e(`automation.workspacePick`)]}),k.workspaceDir&&(0,Z.jsx)(`button`,{type:`button`,onClick:()=>A(e=>({...e,workspaceDir:``})),className:`shrink-0 inline-flex items-center gap-1 px-2 py-2 rounded-lg border border-dark-border text-xs text-dark-muted hover:bg-dark-hover hover:text-accent-red`,title:e(`automation.workspaceClear`),children:(0,Z.jsx)(b,{size:12})})]})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs font-medium text-dark-muted mb-1.5`,children:[(0,Z.jsx)(s,{size:12}),` `,e(`automation.permissionAccess`)]}),(0,Z.jsxs)(`div`,{className:`flex items-start gap-2 p-2.5 rounded-lg border border-dark-border bg-dark-bg`,children:[(0,Z.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":k.readAutoAllow,onClick:()=>A(e=>({...e,readAutoAllow:!e.readAutoAllow})),className:`relative shrink-0 mt-0.5 inline-flex h-5 w-9 items-center rounded-full transition-colors ${k.readAutoAllow?`bg-accent-blue`:`bg-dark-hover`}`,children:(0,Z.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${k.readAutoAllow?`translate-x-4`:`translate-x-0.5`}`})}),(0,Z.jsxs)(`div`,{className:`flex-1`,children:[(0,Z.jsx)(`div`,{className:`text-xs font-medium text-dark-text`,children:e(`automation.fullAccessLabel`)}),(0,Z.jsx)(`p`,{className:`text-badge text-dark-muted/80 mt-0.5`,children:e(`automation.fullAccessHint`)})]})]})]}),(0,Z.jsxs)(`div`,{className:`flex justify-end gap-2 pt-1`,children:[(0,Z.jsx)(`button`,{onClick:Ge,className:`px-4 py-2 rounded-lg bg-dark-hover text-dark-muted hover:text-dark-text text-sm`,children:e(`automation.cancel`)}),(0,Z.jsx)(le,{variant:`accent`,onClick:()=>void qe(),disabled:!et,loading:be,children:e(`automation.save`)})]})]})]}),(0,st.createPortal)((0,Z.jsx)(Wt,{isOpen:Ce&&me,initial:k.workspaceDir||``,onClose:()=>N(!1),onConfirm:e=>{A(t=>({...t,workspaceDir:e})),N(!1)}}),document.body)]})}export{Gt as AutomationView};
@@ -0,0 +1,8 @@
1
+ import{i as e,t}from"./rolldown-runtime-COiEfhsA.js";import{$ as n,Hr as r,J as i,Ur as a,a as o,g as s,i as c,m as l,nt as u,ot as d,st as f,xn as p}from"./icons-BvYhTENi.js";import{t as m}from"./useTranslation-BGmCDuQI.js";import{n as h}from"./cn-rx4uumOJ.js";import{t as g}from"./api-CCt9DRQm.js";import{I as _}from"./markdown-DAQZeY5V.js";import{A as v,h as y}from"./common-BHXgEvgk.js";import{n as b,r as x,t as S}from"./channelMeta-BGQXQxgj.js";import{p as C}from"./index-BX-d2OBW.js";var w=e(a(),1),T=_(),E=[{labelKey:`im`,types:[`wechat`,`feishu`,`dingtalk`]},{labelKey:`international`,types:[`telegram`,`discord`,`slack`,`signal`,`whatsapp`]},{labelKey:`eastAsia`,types:[`line`,`qqbot`]},{labelKey:`collaboration`,types:[`matrix`,`mattermost`,`msteams`,`googlechat`]},{labelKey:`classic`,types:[`irc`,`imessage`,`sms`]},{labelKey:`other`,types:[`nextcloud-talk`,`nostr`,`synology-chat`,`tlon`,`twitch`,`zalo`,`zalouser`]},{labelKey:`builtin`,types:[`clickclack`,`raft`,`qa-channel`]}];function D(){let{t:e}=m(),{channels:t,availableTypes:n,typesLoaded:r,selectedType:i,selectType:a,loadTypes:o}=C();(0,w.useEffect)(()=>{o()},[o]);let s=(0,w.useMemo)(()=>{if(n.length===0)return[];let e=new Set(n),t=E.map(t=>({...t,types:t.types.filter(t=>e.has(t))})).filter(e=>e.types.length>0),r=new Set(E.flatMap(e=>e.types)),i=n.filter(e=>!r.has(e));return i.length>0?[...t,{labelKey:`plugins`,types:i}]:t},[n]),c=(0,w.useMemo)(()=>{let e=new Map;for(let n of t){let t=e.get(n.type)??{count:0,connected:0};e.set(n.type,{count:t.count+1,connected:t.connected+ +!!n.connected})}return e},[t]),l=n.length>0,u=(0,w.useMemo)(()=>l?t.filter(e=>n.includes(e.type)):[],[l,t,n]);return(0,T.jsxs)(`div`,{className:`flex flex-col h-full min-h-0 border-e border-dark-border bg-dark-surface`,children:[(0,T.jsxs)(`div`,{className:`shrink-0 px-4 py-3 border-b border-dark-border`,children:[(0,T.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-dark-muted`,children:e(`channels.sidebar.title`)}),(0,T.jsx)(`p`,{className:`text-meta text-dark-muted mt-0.5`,children:u.length>0?e(`channels.sidebar.configuredCount`,{n:u.length}):e(l?`channels.sidebar.clickToConfigure`:`channels.sidebar.emptyHint`)})]}),(0,T.jsxs)(`div`,{className:`flex-1 min-h-0 overflow-y-auto custom-scrollbar`,children:[r&&!l&&(0,T.jsxs)(`div`,{className:`px-4 py-10 text-center`,children:[(0,T.jsx)(`p`,{className:`text-xs text-dark-muted`,children:e(`channels.sidebar.empty`)}),(0,T.jsx)(`p`,{className:`text-meta text-dark-muted/70 mt-1.5 leading-relaxed`,children:e(`channels.sidebar.emptyHint`)})]}),s.map(t=>{let n=t.types.filter(e=>c.has(e));return n.length===0?null:(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`div`,{className:`sticky top-0 bg-dark-surface/95 backdrop-blur px-4 py-1.5 text-badge font-semibold uppercase tracking-wider text-dark-muted/60`,children:e(`channels.categories.${t.labelKey}`)}),n.map(e=>{let t=c.get(e);return(0,T.jsx)(O,{label:b(e),icon:S(e),isSelected:i===e,experimental:x(e),info:t,onClick:()=>a(e)},e)})]},t.labelKey)}),(()=>{let t=s.flatMap(e=>e.types).filter(e=>!c.has(e));return t.length===0?null:(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`div`,{className:`sticky top-0 bg-dark-surface/95 backdrop-blur px-4 py-1.5 text-badge font-semibold uppercase tracking-wider text-dark-muted/60`,children:e(`channels.sidebar.unconfigured`)}),t.map(e=>(0,T.jsx)(O,{label:b(e),icon:S(e),isSelected:i===e,experimental:x(e),onClick:()=>a(e)},e))]})})()]})]})}function O({label:e,icon:t,isSelected:n,experimental:r,info:i,onClick:a}){let{t:s}=m();return(0,T.jsxs)(`button`,{onClick:a,className:`w-full flex items-center gap-2.5 px-4 py-2.5 text-start transition-colors hover:bg-dark-hover ${n?`bg-accent-blue/10 border-s-2 border-accent-blue`:`border-s-2 border-transparent`}`,children:[(0,T.jsx)(`span`,{className:`text-lg shrink-0 w-7 h-7 flex items-center justify-center rounded-md bg-dark-bg`,children:t}),(0,T.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,T.jsx)(`span`,{className:`text-sm font-medium text-dark-text truncate`,children:e}),r&&(0,T.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 text-avatar text-accent-yellow bg-accent-yellow/15 px-1 py-0.5 rounded shrink-0`,title:s(`channels.experimentalTip`),children:[(0,T.jsx)(p,{className:`w-2.5 h-2.5`}),` `,s(`channels.experimentalShort`)]}),i&&(0,T.jsx)(`span`,{className:`text-badge text-dark-muted bg-dark-hover px-1.5 py-0.5 rounded shrink-0`,children:i.count})]}),(0,T.jsx)(`div`,{className:`flex items-center gap-1 mt-0.5`,children:i?i.connected>0?(0,T.jsxs)(`span`,{className:`flex items-center gap-1 text-meta text-accent-green`,children:[(0,T.jsx)(c,{className:`w-3 h-3`}),i.connected===i.count?s(`channels.status.connected`):s(`channels.sidebar.partialConnected`,{connected:i.connected,count:i.count})]}):(0,T.jsxs)(`span`,{className:`flex items-center gap-1 text-meta text-dark-muted`,children:[(0,T.jsx)(o,{className:`w-3 h-3`}),s(`channels.status.disconnected`)]}):(0,T.jsx)(`span`,{className:`text-meta text-dark-muted`,children:s(`channels.sidebar.unconfigured`)})})]})]})}var k={name:``,type:`wechat`,appId:``,appSecret:``,token:``,encodingAESKey:``,enabled:!0};function A(){let{t:e}=m(),{channels:t,selectedType:n,availableTypes:r,create:i,update:a,remove:o,toggle:s,error:c,clearError:h,openQr:g,load:_,test:y,testResult:E,testing:D}=C(),O=(0,w.useMemo)(()=>r.length>0&&!!n&&!r.includes(n),[r,n]),A=(0,w.useMemo)(()=>n?t.filter(e=>e.type===n):[],[t,n]),[M,N]=(0,w.useState)(``),[P,F]=(0,w.useState)(k),[I,L]=(0,w.useState)(!1),R=M===`__new__`,z=(0,w.useMemo)(()=>R?null:A.find(e=>e.id===M)??null,[A,M,R]);(0,w.useEffect)(()=>{N(``),F(k),L(!1),h()},[n]),(0,w.useEffect)(()=>{n===`wechat`&&A.length===0&&!O&&g(null)},[n,A.length,O,g]),(0,w.useEffect)(()=>{z?F({name:z.name,type:z.type,appId:z.appId||``,appSecret:``,token:``,encodingAESKey:z.encodingAESKey||``,enabled:z.enabled}):R&&F(e=>({...e,type:n}))},[M]);let B=(e,t)=>{h(),F(n=>({...n,[e]:t}))},V=e=>{N(e),h()},H=()=>{N(`__new__`),F({...k,type:n}),h()},U=()=>{N(``),F(k),h()},W=async()=>{if(!P.name.trim())return;L(!0);let e=z?await a(z.id,P):await i(P);L(!1),e&&(N(``),F(k))},G=async t=>{confirm(e(`channels.actions.deleteConfirmShort`))&&await o(t)&&M===t&&(N(``),F(k))},K=(e,t)=>{s(e,t)};return n?(0,T.jsxs)(`div`,{className:`flex-1 flex flex-col min-h-0 overflow-hidden`,children:[(0,T.jsx)(`div`,{className:`shrink-0 px-6 py-4 border-b border-dark-border`,children:(0,T.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,T.jsx)(`span`,{className:`text-2xl`,children:S(n)}),(0,T.jsxs)(`div`,{children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`h2`,{className:`font-semibold text-base text-dark-text`,children:b(n)}),x(n)&&(0,T.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 text-badge text-accent-yellow bg-accent-yellow/15 px-1.5 py-0.5 rounded`,title:e(`channels.experimentalTip`),children:[(0,T.jsx)(p,{className:`w-3 h-3`}),` `,e(`channels.experimentalLabel`)]})]}),(0,T.jsx)(`p`,{className:`text-xs text-dark-muted mt-0.5`,children:A.length>0?e(`channels.instancesCount`,{n:A.length}):e(`channels.notConfiguredYet`)}),x(n)&&(0,T.jsx)(`p`,{className:`text-badge text-accent-yellow mt-1`,children:e(`channels.experimentalDesc`)})]})]}),(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`button`,{onClick:()=>_(),className:`text-xs px-3 py-1.5 rounded-lg border border-dark-border text-dark-muted hover:text-dark-text hover:bg-dark-hover transition-colors`,children:e(`channels.actions.refresh`)}),(0,T.jsx)(v,{size:`sm`,variant:`accent`,onClick:H,leftIcon:(0,T.jsx)(d,{className:`w-3.5 h-3.5`}),children:e(`channels.createInstance`)})]})]})}),c&&(0,T.jsxs)(`div`,{className:`shrink-0 mx-6 mt-3 bg-accent-red/15 border border-accent-red text-accent-red px-3 py-2 rounded-lg text-sm flex justify-between items-center`,children:[(0,T.jsx)(`span`,{children:c}),(0,T.jsx)(`button`,{onClick:h,className:`text-accent-red hover:text-accent-red`,children:(0,T.jsx)(`span`,{className:`w-4 h-4 inline-flex items-center justify-center`,children:`×`})})]}),O&&(0,T.jsxs)(`div`,{className:`shrink-0 mx-6 mt-3 flex items-start gap-2 bg-accent-yellow/15 border border-accent-yellow text-accent-yellow px-3 py-2 rounded-lg text-xs`,children:[(0,T.jsx)(l,{className:`w-3.5 h-3.5 mt-0.5 shrink-0`}),(0,T.jsx)(`span`,{children:e(`channels.pluginMissingWarning`,{name:n===`wechat`?` WeChat Channel`:` ${b(n)}`})})]}),(0,T.jsxs)(`div`,{className:`flex-1 min-h-0 overflow-y-auto custom-scrollbar p-6`,children:[A.length>1&&!R&&(0,T.jsxs)(`div`,{className:`mb-4`,children:[(0,T.jsx)(`label`,{className:`block text-xs text-dark-muted mb-1.5`,children:e(`channels.selectInstance`)}),(0,T.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[A.map(e=>(0,T.jsxs)(`button`,{onClick:()=>V(e.id),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs border transition-colors ${M===e.id?`bg-accent-blue/10 border-accent-blue/40 text-accent-blue`:`border-dark-border text-dark-muted hover:text-dark-text hover:bg-dark-hover`}`,children:[(0,T.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full ${e.connected?`bg-accent-green`:`bg-dark-muted`}`}),e.name]},e.id)),(0,T.jsxs)(`button`,{onClick:H,className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs border border-dashed border-dark-border text-dark-muted hover:text-dark-text hover:bg-dark-hover transition-colors`,children:[(0,T.jsx)(d,{className:`w-3 h-3`}),` `,e(`channels.createShort`)]})]})]}),A.length===0&&M===``&&(0,T.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 text-center`,children:[(0,T.jsx)(`div`,{className:`text-4xl mb-3`,children:S(n)}),(0,T.jsx)(`p`,{className:`text-dark-text font-medium`,children:e(`channels.emptyWithType`,{type:b(n)})}),(0,T.jsx)(`p`,{className:`text-sm text-dark-muted mt-1 mb-4`,children:e(n===`wechat`?`channels.wechatBindHint`:`channels.startWithCreate`)}),n===`wechat`&&(0,T.jsxs)(`button`,{onClick:()=>g(null),className:`flex items-center gap-1.5 text-sm px-4 py-2 rounded-lg bg-accent-green/15 hover:bg-accent-green/15 text-accent-green border border-accent-green transition-colors mb-3`,children:[(0,T.jsx)(u,{className:`w-4 h-4`}),` `,e(`channels.scanToBind`)]}),(0,T.jsx)(v,{variant:`accent`,onClick:H,leftIcon:(0,T.jsx)(d,{className:`w-4 h-4`}),children:e(`channels.createInstance`)})]}),A.length===1&&M===``&&A[0]&&(0,T.jsx)(j,{channel:A[0],onEdit:()=>V(A[0].id),onDelete:()=>G(A[0].id),onToggle:e=>K(A[0].id,e),onQr:()=>g(A[0]),onTest:()=>y(A[0].id),testResult:E[A[0].id],testing:D===A[0].id}),A.length>1&&M===``&&(0,T.jsx)(`div`,{className:`space-y-3`,children:A.map(e=>(0,T.jsx)(j,{channel:e,onEdit:()=>V(e.id),onDelete:()=>G(e.id),onToggle:t=>K(e.id,t),onQr:()=>g(e),onTest:()=>y(e.id),testResult:E[e.id],testing:D===e.id},e.id))}),M!==``&&(R||z)&&(0,T.jsx)(ee,{form:P,upd:B,saving:I,editing:!!z,channel:z??void 0,onSave:W,onCancel:U,onDelete:z?()=>G(z.id):void 0,onQr:z?()=>g(z):void 0})]})]}):(0,T.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,T.jsxs)(`div`,{className:`text-center`,children:[(0,T.jsx)(f,{className:`w-12 h-12 mx-auto mb-3 text-dark-muted/40`}),(0,T.jsx)(`p`,{className:`text-dark-muted text-sm`,children:e(`channels.selectTypeHint`)})]})})}function j({channel:e,onEdit:t,onDelete:n,onToggle:i,onQr:a,onTest:d,testResult:f,testing:p}){let{t:h}=m();return(0,T.jsxs)(`div`,{className:`border border-dark-border rounded-lg bg-dark-surface overflow-hidden`,children:[(0,T.jsx)(`div`,{className:`p-5`,children:(0,T.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h3`,{className:`font-medium text-dark-text`,children:e.name}),(0,T.jsxs)(`div`,{className:`flex items-center gap-3 mt-2`,children:[(0,T.jsx)(`span`,{className:`flex items-center gap-1 text-xs ${e.connected?`text-accent-green`:`text-dark-muted`}`,children:e.connected?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(c,{className:`w-3 h-3`}),` `,h(`channels.status.connected`)]}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(o,{className:`w-3 h-3`}),` `,h(`channels.status.disconnected`)]})}),(0,T.jsxs)(`span`,{className:`text-xs text-dark-muted`,children:[`AppID: `,e.appId||`—`]}),e.implementationStatus===`OUTBOUND_ONLY`&&(0,T.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 text-badge text-accent-yellow bg-accent-yellow/15 px-1.5 py-0.5 rounded`,title:h(`channels.outboundOnlyTip`),children:[(0,T.jsx)(l,{className:`w-3 h-3`}),` `,h(`channels.outboundOnlyLabel`)]})]}),f&&(0,T.jsxs)(`p`,{className:`mt-1.5 text-xs ${f.ok?`text-accent-green`:`text-accent-red`}`,children:[f.detail??(f.ok?h(`channels.actions.testPassed`):h(`channels.actions.testFailed`)),typeof f.latencyMs==`number`&&f.ok?` · ${f.latencyMs}ms`:``]})]}),(0,T.jsx)(`button`,{onClick:()=>i(!e.enabled),className:`w-9 h-5 rounded-full relative transition-colors shrink-0 ${e.enabled?`bg-accent-green`:`bg-dark-muted`}`,children:(0,T.jsx)(`span`,{className:`absolute top-0.5 w-4 h-4 bg-white rounded-full transition-all ${e.enabled?`start-[18px]`:`start-0.5`}`})})]})}),(0,T.jsxs)(`div`,{className:`flex items-center gap-1 px-5 py-2.5 bg-dark-bg/50 border-t border-dark-border`,children:[e.type===`wechat`&&(0,T.jsxs)(`button`,{onClick:a,className:`flex items-center gap-1.5 text-xs px-3 py-1.5 rounded-md text-accent-green hover:bg-accent-green/15 transition-colors`,children:[(0,T.jsx)(u,{className:`w-3.5 h-3.5`}),` `,h(`channels.actions.qrLogin`)]}),(0,T.jsxs)(`button`,{onClick:t,className:`flex items-center gap-1.5 text-xs px-3 py-1.5 rounded-md text-accent-blue hover:bg-accent-blue/10 transition-colors`,children:[(0,T.jsx)(`span`,{className:`w-3.5 h-3.5 inline-flex items-center justify-center`,children:`✎`}),` `,h(`channels.actions.edit`)]}),e.enabled&&d&&(0,T.jsxs)(`button`,{onClick:d,disabled:p,className:`flex items-center gap-1.5 text-xs px-3 py-1.5 rounded-md text-accent-blue hover:bg-accent-blue/10 transition-colors disabled:opacity-50`,children:[(0,T.jsx)(r,{className:`w-3.5 h-3.5`}),` `,h(`channels.actions.test`)]}),(0,T.jsxs)(`button`,{onClick:n,className:`flex items-center gap-1.5 text-xs px-3 py-1.5 rounded-md text-accent-red hover:bg-accent-red/15 transition-colors ms-auto`,children:[(0,T.jsx)(s,{className:`w-3.5 h-3.5`}),` `,h(`channels.actions.delete`)]})]})]})}function ee({form:e,upd:t,saving:n,editing:r,channel:a,onSave:o,onCancel:c,onDelete:l,onQr:d}){let{t:f}=m();return(0,T.jsxs)(`div`,{className:`border border-dark-border rounded-lg bg-dark-surface overflow-hidden`,children:[(0,T.jsx)(`div`,{className:`px-5 py-4 border-b border-dark-border`,children:(0,T.jsx)(`h3`,{className:`font-medium text-dark-text`,children:f(r?`channels.editConfig`:`channels.createConfig`)})}),(0,T.jsxs)(`div`,{className:`p-5 space-y-4`,children:[(0,T.jsx)(M,{label:f(`channels.form.name`),required:!0,children:(0,T.jsx)(`input`,{value:e.name,onChange:e=>t(`name`,e.target.value),placeholder:f(`channels.form.namePlaceholderDev`),className:N})}),(0,T.jsxs)(M,{label:f(`channels.form.credentials`),children:[(0,T.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`label`,{className:`block text-badge text-dark-muted mb-1`,children:f(`channels.form.appId`)}),(0,T.jsx)(`input`,{value:e.appId,onChange:e=>t(`appId`,e.target.value),placeholder:`AppID`,className:N})]}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`label`,{className:`block text-badge text-dark-muted mb-1`,children:`AppSecret`}),(0,T.jsx)(`input`,{type:`password`,value:e.appSecret,onChange:e=>t(`appSecret`,e.target.value),placeholder:f(r?`channels.form.leaveBlankUnchanged`:`channels.form.appSecretValue`),className:N})]}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`label`,{className:`block text-badge text-dark-muted mb-1`,children:`Token`}),(0,T.jsx)(`input`,{value:e.token,onChange:e=>t(`token`,e.target.value),placeholder:f(r?`channels.form.leaveBlankUnchanged`:`channels.form.tokenCallback`),className:N})]}),e.type===`wechat`&&(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`label`,{className:`block text-badge text-dark-muted mb-1`,children:`EncodingAESKey`}),(0,T.jsx)(`input`,{value:e.encodingAESKey,onChange:e=>t(`encodingAESKey`,e.target.value),placeholder:f(`channels.form.optionalShort`),className:N})]})]}),e.type===`wechat`&&(0,T.jsx)(`p`,{className:`text-xs text-dark-muted mt-2`,children:f(`channels.form.wechatIlinkHint`)})]}),(0,T.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border border-dark-border px-3 py-2.5`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`p`,{className:`text-sm text-dark-text`,children:f(`channels.form.enabled`)}),(0,T.jsx)(`p`,{className:`text-xs text-dark-muted`,children:f(`channels.form.enabledOffHint`)})]}),(0,T.jsx)(`button`,{onClick:()=>t(`enabled`,!e.enabled),className:`w-9 h-5 rounded-full relative transition-colors shrink-0 ${e.enabled?`bg-accent-green`:`bg-dark-muted`}`,children:(0,T.jsx)(`span`,{className:`absolute top-0.5 w-4 h-4 bg-white rounded-full transition-all ${e.enabled?`start-[18px]`:`start-0.5`}`})})]}),r&&a?.type===`wechat`&&d&&(0,T.jsxs)(`button`,{onClick:d,className:`w-full flex items-center justify-center gap-2 text-sm bg-accent-green/15 hover:bg-accent-green/15 text-accent-green border border-accent-green px-3 py-2.5 rounded-lg transition-colors`,children:[(0,T.jsx)(u,{className:`w-4 h-4`}),` `,f(`channels.qrLoginReauth`)]})]}),(0,T.jsxs)(`div`,{className:`flex items-center justify-between px-5 py-3 bg-dark-bg/50 border-t border-dark-border`,children:[(0,T.jsx)(`div`,{children:r&&l&&(0,T.jsxs)(`button`,{onClick:l,className:`flex items-center gap-1.5 text-xs px-3 py-1.5 rounded-md text-accent-red hover:bg-accent-red/15 transition-colors`,children:[(0,T.jsx)(s,{className:`w-3.5 h-3.5`}),` `,f(`channels.actions.delete`)]})}),(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`button`,{onClick:c,className:`px-4 py-2 text-sm text-dark-muted hover:text-dark-text transition-colors`,children:f(`channels.actions.cancel`)}),(0,T.jsx)(v,{variant:`accent`,onClick:o,loading:n,disabled:!e.name.trim(),leftIcon:(0,T.jsx)(i,{className:`w-3.5 h-3.5`}),children:f(`channels.save`)})]})]})]})}function M({label:e,required:t,children:n}){return(0,T.jsxs)(`div`,{children:[(0,T.jsxs)(`label`,{className:`block text-xs text-dark-muted mb-1.5`,children:[e,t&&(0,T.jsx)(`span`,{className:`text-accent-red ms-0.5`,children:`*`})]}),n]})}var N=`w-full bg-dark-bg border border-dark-border rounded-lg px-3 py-2 text-sm text-dark-text placeholder-dark-muted/60 focus:outline-none focus:border-accent-blue transition-colors`,P=t(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),F=t((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),I=t((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),L=t(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),R=t(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),z=t((e=>{var t=F().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),B=t((e=>{var t=F().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),V=t((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),H=t((e=>{var t=I(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),U=t((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),W=t((e=>{var t=U();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),G=t(((e,t)=>{var n=W();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),K=t((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),q=t((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r
2
+ ]))+`;e.KANJI=new RegExp(r,`g`),e.BYTE_KANJI=RegExp(`[^A-Z0-9 $%*+\\-./:]+`,`g`),e.BYTE=new RegExp(i,`g`),e.NUMERIC=new RegExp(t,`g`),e.ALPHANUMERIC=new RegExp(n,`g`);var a=RegExp(`^`+r+`$`),o=RegExp(`^[0-9]+$`),s=RegExp(`^[A-Z0-9 $%*+\\-./:]+$`);e.testKanji=function(e){return a.test(e)},e.testNumeric=function(e){return o.test(e)},e.testAlphanumeric=function(e){return s.test(e)}})),J=t((e=>{var t=K(),n=q();e.NUMERIC={id:`Numeric`,bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:`Alphanumeric`,bit:2,ccBits:[9,11,13]},e.BYTE={id:`Byte`,bit:4,ccBits:[8,16,16]},e.KANJI={id:`Kanji`,bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw Error(`Invalid mode: `+e);if(!t.isValid(n))throw Error(`Invalid version: `+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw Error(`Invalid mode`)},e.isValid=function(e){return e&&e.bit&&e.ccBits};function r(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`numeric`:return e.NUMERIC;case`alphanumeric`:return e.ALPHANUMERIC;case`kanji`:return e.KANJI;case`byte`:return e.BYTE;default:throw Error(`Unknown mode: `+t)}}e.from=function(t,n){if(e.isValid(t))return t;try{return r(t)}catch{return n}}})),te=t((e=>{var t=F(),n=H(),r=I(),i=J(),a=K(),o=7973,s=t.getBCHDigit(o);function c(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}function l(e,t){return i.getCharCountIndicator(e,t)+4}function u(e,t){let n=0;return e.forEach(function(e){let r=l(e.mode,t);n+=r+e.getBitsLength()}),n}function d(t,n){for(let r=1;r<=40;r++)if(u(t,r)<=e.getCapacity(r,n,i.MIXED))return r}e.from=function(e,t){return a.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,o){if(!a.isValid(e))throw Error(`Invalid QR Code version`);o===void 0&&(o=i.BYTE);let s=(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r))*8;if(o===i.MIXED)return s;let c=s-l(o,e);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(e,t){let n,i=r.from(t,r.M);if(Array.isArray(e)){if(e.length>1)return d(e,i);if(e.length===0)return 1;n=e[0]}else n=e;return c(n.mode,n.getLength(),i)},e.getEncodedBits=function(e){if(!a.isValid(e)||e<7)throw Error(`Invalid QR Code version`);let n=e<<12;for(;t.getBCHDigit(n)-s>=0;)n^=o<<t.getBCHDigit(n)-s;return e<<12|n}})),Y=t((e=>{var t=F(),n=1335,r=21522,i=t.getBCHDigit(n);e.getEncodedBits=function(e,a){let o=e.bit<<3|a,s=o<<10;for(;t.getBCHDigit(s)-i>=0;)s^=n<<t.getBCHDigit(s)-i;return(o<<10|s)^r}})),X=t(((e,t)=>{var n=J();function r(e){this.mode=n.NUMERIC,this.data=e.toString()}r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);let i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))},t.exports=r})),Z=t(((e,t)=>{var n=J(),r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`.split(``);function i(e){this.mode=n.ALPHANUMERIC,this.data=e}i.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t=0;for(;t+2<=this.data.length;t+=2){let n=r.indexOf(this.data[t])*45;n+=r.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(r.indexOf(this.data[t]),6)},t.exports=i})),ne=t(((e,t)=>{var n=J();function r(e){this.mode=n.BYTE,this.data=typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e)}r.getBitsLength=function(e){return e*8},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){for(let t=0,n=this.data.length;t<n;t++)e.put(this.data[t],8)},t.exports=r})),re=t(((e,t)=>{var n=J(),r=F();function i(e){this.mode=n.KANJI,this.data=e}i.getBitsLength=function(e){return e*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t=0;for(;t<this.data.length;t++){let n=r.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw Error(`Invalid SJIS character: `+this.data[t]+`
3
+ Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.exports=i})),ie=t(((e,t)=>{var n={single_source_shortest_paths:function(e,t,r){var i={},a={};a[t]=0;var o=n.PriorityQueue.make();o.push(t,0);for(var s,c,l,u,d,f,p,m,h;!o.empty();)for(l in s=o.pop(),c=s.value,u=s.cost,d=e[c]||{},d)d.hasOwnProperty(l)&&(f=d[l],p=u+f,m=a[l],h=a[l]===void 0,(h||m>p)&&(a[l]=p,o.push(l,p),i[l]=c));if(r!==void 0&&a[r]===void 0){var g=[`Could not find a path from `,t,` to `,r,`.`].join(``);throw Error(g)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,t,r){var i=n.single_source_shortest_paths(e,t,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var t=n.PriorityQueue,r={},i;for(i in e||={},t)t.hasOwnProperty(i)&&(r[i]=t[i]);return r.queue=[],r.sorter=e.sorter||t.default_sorter,r},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};t!==void 0&&(t.exports=n)})),ae=t((e=>{var t=J(),n=X(),r=Z(),i=ne(),a=re(),o=q(),s=F(),c=ie();function l(e){return unescape(encodeURIComponent(e)).length}function u(e,t,n){let r=[],i;for(;(i=e.exec(n))!==null;)r.push({data:i[0],index:i.index,mode:t,length:i[0].length});return r}function d(e){let n=u(o.NUMERIC,t.NUMERIC,e),r=u(o.ALPHANUMERIC,t.ALPHANUMERIC,e),i,a;return s.isKanjiModeEnabled()?(i=u(o.BYTE,t.BYTE,e),a=u(o.KANJI,t.KANJI,e)):(i=u(o.BYTE_KANJI,t.BYTE,e),a=[]),n.concat(r,i,a).sort(function(e,t){return e.index-t.index}).map(function(e){return{data:e.data,mode:e.mode,length:e.length}})}function f(e,o){switch(o){case t.NUMERIC:return n.getBitsLength(e);case t.ALPHANUMERIC:return r.getBitsLength(e);case t.KANJI:return a.getBitsLength(e);case t.BYTE:return i.getBitsLength(e)}}function p(e){return e.reduce(function(e,t){let n=e.length-1>=0?e[e.length-1]:null;return n&&n.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[])}function m(e){let n=[];for(let r=0;r<e.length;r++){let i=e[r];switch(i.mode){case t.NUMERIC:n.push([i,{data:i.data,mode:t.ALPHANUMERIC,length:i.length},{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.ALPHANUMERIC:n.push([i,{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.KANJI:n.push([i,{data:i.data,mode:t.BYTE,length:l(i.data)}]);break;case t.BYTE:n.push([{data:i.data,mode:t.BYTE,length:l(i.data)}])}}return n}function h(e,n){let r={},i={start:{}},a=[`start`];for(let o=0;o<e.length;o++){let s=e[o],c=[];for(let e=0;e<s.length;e++){let l=s[e],u=``+o+e;c.push(u),r[u]={node:l,lastCount:0},i[u]={};for(let e=0;e<a.length;e++){let o=a[e];r[o]&&r[o].node.mode===l.mode?(i[o][u]=f(r[o].lastCount+l.length,l.mode)-f(r[o].lastCount,l.mode),r[o].lastCount+=l.length):(r[o]&&(r[o].lastCount=l.length),i[o][u]=f(l.length,l.mode)+4+t.getCharCountIndicator(l.mode,n))}}a=c}for(let e=0;e<a.length;e++)i[a[e]].end=0;return{map:i,table:r}}function g(e,o){let c,l=t.getBestModeForData(e);if(c=t.from(o,l),c!==t.BYTE&&c.bit<l.bit)throw Error(`"`+e+`" cannot be encoded with mode `+t.toString(c)+`.
4
+ Suggested mode is: `+t.toString(l));switch(c===t.KANJI&&!s.isKanjiModeEnabled()&&(c=t.BYTE),c){case t.NUMERIC:return new n(e);case t.ALPHANUMERIC:return new r(e);case t.KANJI:return new a(e);case t.BYTE:return new i(e)}}e.fromArray=function(e){return e.reduce(function(e,t){return typeof t==`string`?e.push(g(t,null)):t.data&&e.push(g(t.data,t.mode)),e},[])},e.fromString=function(t,n){let r=h(m(d(t,s.isKanjiModeEnabled())),n),i=c.find_path(r.map,`start`,`end`),a=[];for(let e=1;e<i.length-1;e++)a.push(r.table[i[e]].node);return e.fromArray(p(a))},e.rawSplit=function(t){return e.fromArray(d(t,s.isKanjiModeEnabled()))}})),oe=t((e=>{var t=F(),n=I(),r=L(),i=R(),a=z(),o=B(),s=V(),c=H(),l=G(),u=te(),d=Y(),f=J(),p=ae();function m(e,t){let n=e.size,r=o.getPositions(t);for(let t=0;t<r.length;t++){let i=r[t][0],a=r[t][1];for(let t=-1;t<=7;t++)if(!(i+t<=-1||n<=i+t))for(let r=-1;r<=7;r++)a+r<=-1||n<=a+r||(t>=0&&t<=6&&(r===0||r===6)||r>=0&&r<=6&&(t===0||t===6)||t>=2&&t<=4&&r>=2&&r<=4?e.set(i+t,a+r,!0,!0):e.set(i+t,a+r,!1,!0))}}function h(e){let t=e.size;for(let n=8;n<t-8;n++){let t=n%2==0;e.set(n,6,t,!0),e.set(6,n,t,!0)}}function g(e,t){let n=a.getPositions(t);for(let t=0;t<n.length;t++){let r=n[t][0],i=n[t][1];for(let t=-2;t<=2;t++)for(let n=-2;n<=2;n++)t===-2||t===2||n===-2||n===2||t===0&&n===0?e.set(r+t,i+n,!0,!0):e.set(r+t,i+n,!1,!0)}}function _(e,t){let n=e.size,r=u.getEncodedBits(t),i,a,o;for(let t=0;t<18;t++)i=Math.floor(t/3),a=t%3+n-8-3,o=(r>>t&1)==1,e.set(i,a,o,!0),e.set(a,i,o,!0)}function v(e,t,n){let r=e.size,i=d.getEncodedBits(t,n),a,o;for(a=0;a<15;a++)o=(i>>a&1)==1,a<6?e.set(a,8,o,!0):a<8?e.set(a+1,8,o,!0):e.set(r-15+a,8,o,!0),a<8?e.set(8,r-a-1,o,!0):a<9?e.set(8,15-a-1+1,o,!0):e.set(8,15-a-1,o,!0);e.set(r-8,8,1,!0)}function y(e,t){let n=e.size,r=-1,i=n-1,a=7,o=0;for(let s=n-1;s>0;s-=2)for(s===6&&s--;;){for(let n=0;n<2;n++)if(!e.isReserved(i,s-n)){let r=!1;o<t.length&&(r=(t[o]>>>a&1)==1),e.set(i,s-n,r),a--,a===-1&&(o++,a=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}function b(e,n,i){let a=new r;i.forEach(function(t){a.put(t.mode.bit,4),a.put(t.getLength(),f.getCharCountIndicator(t.mode,e)),t.write(a)});let o=(t.getSymbolTotalCodewords(e)-c.getTotalCodewordsCount(e,n))*8;for(a.getLengthInBits()+4<=o&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(0);let s=(o-a.getLengthInBits())/8;for(let e=0;e<s;e++)a.put(e%2?17:236,8);return x(a,e,n)}function x(e,n,r){let i=t.getSymbolTotalCodewords(n),a=i-c.getTotalCodewordsCount(n,r),o=c.getBlocksCount(n,r),s=o-i%o,u=Math.floor(i/o),d=Math.floor(a/o),f=d+1,p=u-d,m=new l(p),h=0,g=Array(o),_=Array(o),v=0,y=new Uint8Array(e.buffer);for(let e=0;e<o;e++){let t=e<s?d:f;g[e]=y.slice(h,h+t),_[e]=m.encode(g[e]),h+=t,v=Math.max(v,t)}let b=new Uint8Array(i),x=0,S,C;for(S=0;S<v;S++)for(C=0;C<o;C++)S<g[C].length&&(b[x++]=g[C][S]);for(S=0;S<p;S++)for(C=0;C<o;C++)b[x++]=_[C][S];return b}function S(e,n,r,a){let o;if(Array.isArray(e))o=p.fromArray(e);else if(typeof e==`string`){let t=n;if(!t){let n=p.rawSplit(e);t=u.getBestVersionForData(n,r)}o=p.fromString(e,t||40)}else throw Error(`Invalid data`);let c=u.getBestVersionForData(o,r);if(!c)throw Error(`The amount of data is too big to be stored in a QR Code`);if(!n)n=c;else if(n<c)throw Error(`
5
+ The chosen QR Code version cannot contain this amount of data.
6
+ Minimum version required to store current data is: `+c+`.
7
+ `);let l=b(n,r,o),d=new i(t.getSymbolSize(n));return m(d,n),h(d),g(d,n),v(d,r,0),n>=7&&_(d,n),y(d,l),isNaN(a)&&(a=s.getBestMask(d,v.bind(null,d,r))),s.applyMask(a,d),v(d,r,a),{modules:d,version:n,errorCorrectionLevel:r,maskPattern:a,segments:o}}e.create=function(e,r){if(e===void 0||e===``)throw Error(`No input text`);let i=n.M,a,o;return r!==void 0&&(i=n.from(r.errorCorrectionLevel,n.M),a=u.from(r.version),o=s.from(r.maskPattern),r.toSJISFunc&&t.setToSJISFunction(r.toSJISFunc)),S(e,a,i,o)}})),Q=t((e=>{function t(e){if(typeof e==`number`&&(e=e.toString()),typeof e!=`string`)throw Error(`Color should be defined as hex string`);let t=e.slice().replace(`#`,``).split(``);if(t.length<3||t.length===5||t.length>8)throw Error(`Invalid hex color: `+e);(t.length===3||t.length===4)&&(t=Array.prototype.concat.apply([],t.map(function(e){return[e,e]}))),t.length===6&&t.push(`F`,`F`);let n=parseInt(t.join(``),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:`#`+t.slice(0,6).join(``)}}e.getOptions=function(e){e||={},e.color||(e.color={});let n=e.margin===void 0||e.margin===null||e.margin<0?4:e.margin,r=e.width&&e.width>=21?e.width:void 0,i=e.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:t(e.color.dark||`#000000ff`),light:t(e.color.light||`#ffffffff`)},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale},e.getImageWidth=function(t,n){let r=e.getScale(t,n);return Math.floor((t+n.margin*2)*r)},e.qrToImageData=function(t,n,r){let i=n.modules.size,a=n.modules.data,o=e.getScale(i,r),s=Math.floor((i+r.margin*2)*o),c=r.margin*o,l=[r.color.light,r.color.dark];for(let e=0;e<s;e++)for(let n=0;n<s;n++){let u=(e*s+n)*4,d=r.color.light;if(e>=c&&n>=c&&e<s-c&&n<s-c){let t=Math.floor((e-c)/o),r=Math.floor((n-c)/o);d=l[+!!a[t*i+r]]}t[u++]=d.r,t[u++]=d.g,t[u++]=d.b,t[u]=d.a}}})),$=t((e=>{var t=Q();function n(e,t,n){e.clearRect(0,0,t.width,t.height),t.style||={},t.height=n,t.width=n,t.style.height=n+`px`,t.style.width=n+`px`}function r(){try{return document.createElement(`canvas`)}catch{throw Error(`You need to specify a canvas element`)}}e.render=function(e,i,a){let o=a,s=i;o!==void 0||i&&i.getContext||(o=i,i=void 0),i||(s=r()),o=t.getOptions(o);let c=t.getImageWidth(e.modules.size,o),l=s.getContext(`2d`),u=l.createImageData(c,c);return t.qrToImageData(u.data,e,o),n(l,s,c),l.putImageData(u,0,0),s},e.renderToDataURL=function(t,n,r){let i=r;i!==void 0||n&&n.getContext||(i=n,n=void 0),i||={};let a=e.render(t,n,i),o=i.type||`image/png`,s=i.rendererOpts||{};return a.toDataURL(o,s.quality)}})),se=t((e=>{var t=Q();function n(e,t){let n=e.a/255,r=t+`="`+e.hex+`"`;return n<1?r+` `+t+`-opacity="`+n.toFixed(2).slice(1)+`"`:r}function r(e,t,n){let r=e+t;return n!==void 0&&(r+=` `+n),r}function i(e,t,n){let i=``,a=0,o=!1,s=0;for(let c=0;c<e.length;c++){let l=Math.floor(c%t),u=Math.floor(c/t);!l&&!o&&(o=!0),e[c]?(s++,c>0&&l>0&&e[c-1]||(i+=o?r(`M`,l+n,.5+u+n):r(`m`,a,0),a=0,o=!1),l+1<t&&e[c+1]||(i+=r(`h`,s),s=0)):a++}return i}e.render=function(e,r,a){let o=t.getOptions(r),s=e.modules.size,c=e.modules.data,l=s+o.margin*2,u=o.color.light.a?`<path `+n(o.color.light,`fill`)+` d="M0 0h`+l+`v`+l+`H0z"/>`:``,d=`<path `+n(o.color.dark,`stroke`)+` d="`+i(c,s,o.margin)+`"/>`,f=`viewBox="0 0 `+l+` `+l+`"`,p=`<svg xmlns="http://www.w3.org/2000/svg" `+(o.width?`width="`+o.width+`" height="`+o.width+`" `:``)+f+` shape-rendering="crispEdges">`+u+d+`</svg>
8
+ `;return typeof a==`function`&&a(null,p),p}})),ce=e(t((e=>{var t=P(),n=oe(),r=$(),i=se();function a(e,r,i,a,o){let s=[].slice.call(arguments,1),c=s.length,l=typeof s[c-1]==`function`;if(!l&&!t())throw Error(`Callback required as last argument`);if(l){if(c<2)throw Error(`Too few arguments provided`);c===2?(o=i,i=r,r=a=void 0):c===3&&(r.getContext&&o===void 0?(o=a,a=void 0):(o=a,a=i,i=r,r=void 0))}else{if(c<1)throw Error(`Too few arguments provided`);return c===1?(i=r,r=a=void 0):c===2&&!r.getContext&&(a=i,i=r,r=void 0),new Promise(function(t,o){try{t(e(n.create(i,a),r,a))}catch(e){o(e)}})}try{let t=n.create(i,a);o(null,e(t,r,a))}catch(e){o(e)}}e.create=n.create,e.toCanvas=a.bind(null,r.render),e.toDataURL=a.bind(null,r.renderToDataURL),e.toString=a.bind(null,function(e,t,n){return i.render(e,n)})}))(),1),le=2e3,ue=5;function de({channel:e,onClose:t}){let{t:n}=m(),[r,i]=(0,w.useState)(`loading`),[a,o]=(0,w.useState)(null),[s,c]=(0,w.useState)(null),[l,u]=(0,w.useState)(``),d=(0,w.useRef)(null),f=(0,w.useRef)(0),p=(0,w.useRef)(null),_=(0,w.useRef)(!1),v=()=>{p.current&&=(clearTimeout(p.current),null),_.current=!0},b=async e=>{if(d.current)try{await ce.toCanvas(d.current,e,{width:240,margin:2,color:{dark:`#000000ff`,light:`#ffffffff`}})}catch(e){console.warn(`[WechatQr] Canvas QR generation failed, falling back to URL:`,e)}},x=async()=>{if(!_.current&&s)try{let r=await g.channels.weixin.bindStatus(s),a=r?.data??r,o=a?.status??``;if(f.current=0,o===`confirmed`){if(!a?.channel_id){i(`error`),u(n(`channels.bindNoInstance`)),h.error(n(`channels.bindNoInstance`));return}i(`confirmed`),h.success(e?n(`channels.toastReauthSuccess`,{name:e.name}):n(`channels.toastBindSuccess`)),setTimeout(t,2400);return}if(o===`scaned`)i(`scanned`);else if(o===`expired`){i(`expired`);return}_.current||(p.current=setTimeout(x,le))}catch(e){if(f.current++,console.warn(`[WechatQr] poll error (`+f.current+`/5)`,e),f.current>=ue)i(`error`),u(n(`channels.pollFailedRefresh`)),h.error(n(`channels.pollFailedToast`));else if(!_.current){let e=Math.min(1e3*2**f.current,1e4);p.current=setTimeout(x,e)}}},S=()=>{v(),_.current=!1,f.current=0,p.current=setTimeout(x,1e3)},C=async()=>{i(`loading`),o(null),c(null),u(``),f.current=0;try{let e=await g.channels.weixin.bind(),t=e?.data??e,r=t?.qrcode_img_content??``,a=t?.qrcode??``;if(!r||!a){i(`error`),u(n(`channels.qrDataMissing`,{data:JSON.stringify(t)}));return}o(r),c(a),await b(r),i(`waiting`)}catch(e){i(`error`);let t=String(e?.message??e);u(t),h.error(n(`channels.fetchWechatQrFailed`,{error:t}))}},E=()=>{C()};return(0,w.useEffect)(()=>(C(),v),[]),(0,w.useEffect)(()=>(s&&S(),v),[s]),(0,T.jsx)(y,{isOpen:!0,onClose:t,title:n(`channels.bindTitle`,{name:e?.name??n(`channels.typeLabels.wechat`)}),size:`sm`,children:(0,T.jsxs)(`div`,{className:`flex flex-col items-center gap-4 py-2`,children:[(0,T.jsxs)(`div`,{className:`relative w-60 h-60 rounded-lg bg-white flex items-center justify-center overflow-hidden`,children:[r===`loading`&&(0,T.jsx)(`span`,{className:`text-dark-muted text-sm`,children:n(`channels.qr.generating`)}),r!==`error`&&r!==`expired`&&(0,T.jsx)(`canvas`,{ref:d,width:240,height:240,className:`w-full h-full object-contain ${r===`waiting`?``:`opacity-30`}`}),r===`scanned`&&(0,T.jsxs)(`div`,{className:`absolute inset-0 bg-black/70 flex flex-col items-center justify-center text-overlay-fg gap-1`,children:[(0,T.jsx)(`span`,{className:`text-2xl`,children:`✓`}),(0,T.jsx)(`span`,{className:`text-sm`,children:n(`channels.qr.scanned`)})]}),r===`confirmed`&&(0,T.jsxs)(`div`,{className:`absolute inset-0 bg-accent-green/15 flex flex-col items-center justify-center text-accent-fg gap-2 px-4 text-center`,children:[(0,T.jsx)(`span`,{className:`text-2xl`,children:`🎉`}),(0,T.jsx)(`span`,{className:`text-sm font-medium`,children:n(`channels.bindSuccess`)}),(0,T.jsx)(`span`,{className:`text-xs opacity-90`,children:e?n(`channels.connectedReady`,{name:e.name}):n(`channels.createdConnectedReady`)}),(0,T.jsx)(`button`,{onClick:t,className:`mt-1 text-xs bg-white/20 hover:bg-white/30 px-3 py-1.5 rounded-md transition-colors`,children:n(`channels.startUsing`)})]}),r===`expired`&&(0,T.jsxs)(`div`,{className:`absolute inset-0 bg-black/80 flex flex-col items-center justify-center text-overlay-fg gap-2`,children:[(0,T.jsx)(`span`,{className:`text-sm`,children:n(`channels.qr.expired`)}),(0,T.jsx)(`button`,{onClick:E,className:`text-xs bg-accent-green hover:bg-accent-green px-3 py-1 rounded`,children:n(`channels.clickToRefresh`)})]}),r===`error`&&(0,T.jsxs)(`div`,{className:`absolute inset-0 bg-black/80 flex flex-col items-center justify-center text-accent-red gap-2 px-4 text-center`,children:[(0,T.jsx)(`span`,{className:`text-xs`,children:l||n(`channels.unknownError`)}),(0,T.jsx)(`button`,{onClick:E,className:`text-xs bg-accent-blue hover:bg-accent-blue px-3 py-1 rounded text-accent-fg`,children:n(`channels.retry`)})]})]}),(0,T.jsxs)(`p`,{className:`text-sm text-dark-muted text-center`,children:[r===`waiting`&&n(`channels.waitingAuthorize`),r===`scanned`&&n(`channels.scannedConfirming`),r===`confirmed`&&n(`channels.confirmedClosing`),r===`loading`&&n(`channels.connectingIlink`),(r===`expired`||r===`error`)&&(r===`expired`?n(`channels.qr.expired`):``)]}),a&&r===`waiting`&&(0,T.jsxs)(`button`,{onClick:()=>window.open(a,`_blank`,`width=480,height=600,noopener`),className:`w-full flex items-center justify-center gap-2 text-sm bg-accent-green/15 hover:bg-accent-green/15 text-accent-green border border-accent-green px-3 py-2.5 rounded-lg transition-colors`,children:[(0,T.jsx)(`span`,{children:`🔔`}),` `,n(`channels.openInNewTabFallback`)]})]})})}function fe(){let{t:e}=m(),{load:t,loading:r,qrOpen:i,qrChannel:a,closeQr:o}=C();return(0,w.useEffect)(()=>{t()},[]),(0,T.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-dark-bg text-dark-text`,children:[(0,T.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-dark-border shrink-0`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{className:`font-semibold text-base`,children:e(`channels.title`)}),(0,T.jsx)(`p`,{className:`text-xs text-dark-muted mt-0.5`,children:e(`channels.viewSubtitle`)})]}),(0,T.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,T.jsx)(`button`,{onClick:()=>t(),title:e(`channels.actions.refresh`),className:`p-2 rounded-lg text-dark-muted hover:text-dark-text hover:bg-dark-hover transition-colors`,children:(0,T.jsx)(n,{className:`w-4 h-4 ${r?`animate-spin`:``}`})})})]}),(0,T.jsxs)(`div`,{className:`flex-1 flex min-h-0 overflow-hidden`,children:[(0,T.jsx)(`div`,{className:`w-[260px] shrink-0`,children:(0,T.jsx)(D,{})}),(0,T.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,T.jsx)(A,{})})]}),i&&(0,T.jsx)(de,{channel:a,onClose:o})]})}export{fe as ChannelConfigView};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{$ as t,Bt as n,Dt as r,Ft as i,Sr as a,Ur as o,br as s,g as c,h as l,m as u,n as d,un as f,vr as p,xr as m}from"./icons-BvYhTENi.js";import{t as h}from"./useTranslation-BGmCDuQI.js";import{t as g}from"./cn-rx4uumOJ.js";import{C as _}from"./MessageBubble-CV16DZMG.js";import{t as v}from"./api-CCt9DRQm.js";import{I as y}from"./markdown-DAQZeY5V.js";import{A as b,F as x,I as S,L as C,M as w,N as T,P as E,R as ee,j as D,z as te}from"./index-BX-d2OBW.js";var O=e(o(),1),k=y(),A=[];function j(e){let t=[];return e.query?t.push(e.query):e.connector&&t.push(e.connector),e.detail&&t.push(e.detail),t.join(` — `)}function ne({onApproved:e,refreshToken:t=0}){let{t:r}=h(),[i,a]=(0,O.useState)(A),[o,c]=(0,O.useState)(!0),[l,f]=(0,O.useState)(!0),[y,b]=(0,O.useState)(null),[x,S]=(0,O.useState)(null),C=(0,O.useCallback)(async()=>{c(!0);try{let e=await v.pendingArtifacts.list(`pending`);if(!e?.success)throw Error(e?.error||r(`charts.pending.loadFailed`));a(e.data?.items??A),S(null)}catch(e){S(e instanceof Error?e.message:String(e))}finally{c(!1)}},[r]);(0,O.useEffect)(()=>{C()},[C,t]);let w=(0,O.useCallback)(async(t,n)=>{b(t),S(null);try{let i=n===`approve`?await v.pendingArtifacts.approve(t):await v.pendingArtifacts.reject(t);if(!i?.success)throw Error(i?.error||r(`charts.pending.decideFailed`));a(e=>e.filter(e=>e.id!==t)),n===`approve`&&e?.(),C()}catch(e){S(e instanceof Error?e.message:String(e))}finally{b(null)}},[e,C,r]);return o&&i.length===0||i.length===0&&!x?null:(0,k.jsxs)(`div`,{"data-testid":`pending-artifacts`,className:`mx-4 mt-3 shrink-0 rounded-lg border border-accent-yellow/40 bg-accent-yellow/5`,children:[(0,k.jsxs)(`button`,{type:`button`,"data-testid":`pending-artifacts-toggle`,onClick:()=>f(e=>!e),"aria-expanded":l,className:`flex w-full items-center gap-2 px-3 py-2 text-start`,children:[(0,k.jsx)(l?s:p,{size:13,className:`shrink-0 text-accent-yellow`}),(0,k.jsx)(`span`,{className:`shrink-0 text-xs font-medium text-accent-yellow`,children:r(`charts.pending.title`,{n:i.length})}),(0,k.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-badge text-dark-muted`,children:r(`charts.pending.subtitle`)}),o&&(0,k.jsx)(n,{size:12,className:`animate-spin text-dark-muted`})]}),l&&(0,k.jsxs)(`div`,{className:`border-t border-accent-yellow/20`,children:[x&&(0,k.jsxs)(`div`,{className:`flex items-start gap-2 px-3 py-2 text-xs text-accent-red`,children:[(0,k.jsx)(u,{size:13,className:`mt-0.5 shrink-0`}),(0,k.jsx)(`span`,{className:`min-w-0 break-words`,children:x})]}),i.map(e=>{let t=y===e.id;return(0,k.jsxs)(`div`,{"data-testid":`pending-artifact-item`,className:`flex items-start gap-2.5 border-b border-accent-yellow/15 px-3 py-2 last:border-b-0`,children:[(0,k.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,k.jsx)(`p`,{className:`text-xs leading-relaxed text-dark-text`,children:e.summary}),(0,k.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-x-2 gap-y-0.5 text-badge text-dark-muted/80`,children:[(0,k.jsx)(`span`,{className:`truncate font-mono`,children:e.targetPath}),(0,k.jsx)(`span`,{className:`shrink-0 rounded bg-dark-hover px-1 py-px`,children:e.artifactType}),(0,k.jsx)(`span`,{className:`shrink-0`,children:_(e.createdAt,Date.now(),r)})]}),e.sources.length>0?(0,k.jsx)(`ul`,{className:`mt-1 space-y-0.5`,"data-testid":`pending-artifact-sources`,children:e.sources.map((t,n)=>(0,k.jsx)(`li`,{className:`truncate font-mono text-badge text-dark-muted/70`,title:j(t),children:j(t)},`${e.id}-src-${n}`))}):(0,k.jsx)(`p`,{className:`mt-1 text-badge text-accent-yellow/80`,children:r(`charts.pending.noSources`)})]}),(0,k.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,k.jsxs)(`button`,{type:`button`,"data-testid":`pending-artifact-approve`,disabled:t,onClick:()=>void w(e.id,`approve`),title:r(`charts.pending.approveHint`),className:g(`flex items-center gap-1 rounded-md border border-accent-green/40 bg-accent-green/10 px-2 py-1 text-badge text-accent-green transition-colors hover:bg-accent-green/20`,t&&`opacity-60`),children:[t?(0,k.jsx)(n,{size:11,className:`animate-spin`}):(0,k.jsx)(m,{size:11}),r(`charts.pending.approve`)]}),(0,k.jsxs)(`button`,{type:`button`,"data-testid":`pending-artifact-reject`,disabled:t,onClick:()=>void w(e.id,`reject`),title:r(`charts.pending.rejectHint`),className:g(`flex items-center gap-1 rounded-md border border-dark-border px-2 py-1 text-badge text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,t&&`opacity-60`),children:[(0,k.jsx)(d,{size:11}),r(`charts.pending.reject`)]})]})]},e.id)})]})]})}var M=`.agent/dashboards/insights.dashboard.json`,N=`q_costs`;function P(){let{t:e}=h(),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(null),[s,c]=(0,O.useState)(null),[l,d]=(0,O.useState)(!1),[f,p]=(0,O.useState)(!0),[m,g]=(0,O.useState)(0),_=(0,O.useCallback)(async()=>{p(!0),c(null);let[t,n]=await Promise.allSettled([v.files.read(M),v.observability.costs()]),r=t.status===`fulfilled`&&t.value.success&&typeof t.value.data==`string`;i(r?t.value.data:null),d(!r),n.status===`fulfilled`&&n.value?.success?o(n.value.data??null):c(n.status===`fulfilled`?n.value?.error||e(`insights.loadFailed`):n.reason instanceof Error?n.reason.message:String(n.reason)),p(!1)},[e]);(0,O.useEffect)(()=>{_()},[_,m]);let y=(0,O.useMemo)(()=>a?{lastUpdatedAt:new Date().toISOString(),values:{[N]:a}}:void 0,[a]);return(0,k.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto px-4 pb-4`,children:[(0,k.jsxs)(`header`,{className:`mb-2 flex flex-wrap items-center gap-2`,children:[(0,k.jsx)(`h2`,{className:`text-sm font-medium text-dark-text`,children:e(`insights.title`)}),(0,k.jsx)(`span`,{className:`min-w-0 truncate text-badge text-dark-tertiary`,children:e(`insights.subtitle`)}),(0,k.jsx)(`span`,{className:`flex-1`}),(0,k.jsxs)(`button`,{type:`button`,"data-testid":`insights-refresh`,onClick:()=>g(e=>e+1),className:`flex shrink-0 items-center gap-1 rounded-md border border-dark-border px-2 py-1 text-xs text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,title:e(`insights.refresh`),children:[f?(0,k.jsx)(n,{size:12,className:`animate-spin`}):(0,k.jsx)(t,{size:12}),e(`insights.refresh`)]})]}),s&&(0,k.jsxs)(`div`,{"data-testid":`insights-error`,className:`mb-2 flex items-start gap-1.5 rounded-md border border-amber-500/30 bg-amber-500/5 px-2 py-1.5 text-badge text-amber-300`,children:[(0,k.jsx)(u,{size:11,className:`mt-0.5 shrink-0`}),(0,k.jsx)(`span`,{className:`min-w-0`,children:s})]}),l?(0,k.jsxs)(`div`,{"data-testid":`insights-missing`,className:`flex min-h-0 flex-1 flex-col items-center justify-center gap-1.5 rounded-lg border border-dashed border-dark-border px-6 text-center`,children:[(0,k.jsx)(`p`,{className:`max-w-md text-xs leading-relaxed text-dark-muted`,children:e(`insights.missing`,{path:M})}),(0,k.jsx)(`code`,{className:`rounded bg-dark-hover px-1.5 py-0.5 font-mono text-badge text-accent-blue`,children:M})]}):r===null?(0,k.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-xs text-dark-muted`,children:[(0,k.jsx)(n,{size:14,className:`animate-spin text-accent-blue`}),e(`insights.loading`)]}):(0,k.jsx)(E,{path:M,content:r,freshness:y})]})}var F=`dsc.charts.artifactOrder`,I=1;function re(){try{let e=localStorage.getItem(F);if(!e)return[];let t=JSON.parse(e);if(typeof t!=`object`||!t)return[];let n=t;return n.v!==I||!Array.isArray(n.order)?[]:n.order.filter(e=>typeof e==`string`&&e!==``)}catch{return[]}}function ie(e){try{localStorage.setItem(F,JSON.stringify({v:I,order:e}))}catch{}}function ae(e,t,n){if(t.length===0)return[...e];let r=new Map(e.map(e=>[n(e),e])),i=[];for(let e of t){let t=r.get(e);t!==void 0&&(i.push(t),r.delete(e))}for(let t of e)r.has(n(t))&&i.push(t);return i}function L(e,t,n,r){return S(e,t,n,r)}var R=[],oe=[{command:`dashboard`,hintKey:`chat.visualArtifactsEmptyHint_dashboard`},{command:`analysis`,hintKey:`chat.visualArtifactsEmptyHint_analysis`},{command:`motion`,hintKey:`chat.visualArtifactsEmptyHint_motion`}];function se(e){let t=new Map;for(let n of e){if(!n.locator?.path)continue;let e=t.get(n.logicalId);(!e||n.version>e.version)&&t.set(n.logicalId,n)}return[...t.values()].sort((e,t)=>e.createdAt===t.createdAt?0:e.createdAt<t.createdAt?1:-1)}function z({text:e}){return(0,k.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-accent-red/30 bg-accent-red/5 px-3 py-2.5 text-xs text-accent-red`,children:[(0,k.jsx)(u,{size:14,className:`mt-0.5 shrink-0`}),(0,k.jsx)(`span`,{className:`min-w-0 break-words`,children:e})]})}function B({path:e,content:t,readError:n,freshness:r}){let{t:i}=h();if(n)return(0,k.jsx)(z,{text:n});let a=w(e);return a===`motion`?(0,k.jsx)(D,{path:e,content:t}):a===`dashboard`?(0,k.jsx)(E,{path:e,content:t,freshness:r}):a===`analysis`?(0,k.jsx)(T,{path:e,content:t}):(0,k.jsxs)(`div`,{"data-testid":`charts-no-renderer`,className:`px-1 py-2 text-xs leading-relaxed text-dark-muted`,children:[i(`charts.noRenderer`),(0,k.jsx)(`span`,{className:`mt-1 block truncate font-mono text-badge text-dark-muted/70`,children:e})]})}function V({onOpenInsights:e}){let{t:o}=h(),[s,u]=(0,O.useState)(R),[d,p]=(0,O.useState)(!0),[m,y]=(0,O.useState)(null),[S,T]=(0,O.useState)(0),[E,D]=(0,O.useState)(null),[A,j]=(0,O.useState)(!1),[M,N]=(0,O.useState)(null),[P,F]=(0,O.useState)(null),[I,V]=(0,O.useState)(()=>re()),[H,U]=(0,O.useState)(null),[W,G]=(0,O.useState)(null),[ce,K]=(0,O.useState)(!1),q=(0,O.useCallback)(async()=>{p(!0),y(null);try{let e=await v.visualArtifacts.list();if(!e?.success)throw Error(e?.error||o(`charts.loadFailed`));u(se(e.data?.items??R))}catch(e){y(e instanceof Error?e.message:String(e))}finally{p(!1)}},[o]);(0,O.useEffect)(()=>{q()},[q]);let J=(0,O.useMemo)(()=>ae(s,I,e=>e.logicalId),[s,I]),Y=(0,O.useCallback)(e=>{V(e),ie(e)},[]),le=(0,O.useCallback)(async e=>{K(!0),G(null);try{let t=await v.visualArtifacts.remove(e);if(!t?.success)throw Error(t?.error||o(`charts.removeFailed`));u(t=>t.filter(t=>t.logicalId!==e)),Y(I.filter(t=>t!==e)),U(null)}catch(e){G(e instanceof Error?e.message:String(e))}finally{K(!1)}},[Y,I,o]),ue=(0,O.useCallback)((e,t)=>{let n=J.map(e=>e.logicalId),r=L(n,e,t.id,t.side);r.join()!==n.join()&&Y(r)},[Y,J]),X=x(ue,{vertical:!0}),de=(0,O.useCallback)((e,t)=>{let n=J.map(e=>e.logicalId),r=n.indexOf(e);if(r<0)return;let i=n[r+t];i&&Y(L(n,e,i,t<0?`before`:`after`))},[Y,J]),Z=(0,O.useMemo)(()=>E&&s.some(e=>e.locator.path===E)?E:J[0]?.locator.path??null,[J,s,E]);(0,O.useEffect)(()=>{if(!Z){N(null),F(null);return}let e=!1;return N(null),F(null),(async()=>{try{let t=await v.files.read(Z);if(e)return;t.success&&t.data!==void 0&&t.data!==null?N(String(t.data)):F(t.error||o(`charts.readFailed`))}catch(t){e||F(t instanceof Error?t.message:String(t))}})(),()=>{e=!0}},[Z,o]),(0,O.useEffect)(()=>{if(!A)return;let e=e=>{e.key===`Escape`&&j(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[A]);let Q=(0,O.useMemo)(()=>s.find(e=>e.locator.path===Z)??null,[s,Z]),fe=(0,O.useMemo)(()=>s.map(e=>({path:e.locator.path??``,metadata:e.metadata,version:e.version})),[s]),pe=C(fe),$=e=>e.locator.path?pe(e.locator.path):``,me=Q?$(Q):null,he=X.draggingId?s.find(e=>e.logicalId===X.draggingId)??null:null,ge=Q?.locator.path===void 0?null:(0,k.jsx)(B,{path:Q.locator.path,content:M,readError:P,freshness:Q.freshness});return(0,k.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,k.jsxs)(`div`,{className:`flex shrink-0 items-start gap-3 px-4 pt-3`,children:[(0,k.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,k.jsxs)(`h1`,{className:`flex items-center gap-1.5 text-lg font-semibold text-dark-text`,children:[(0,k.jsx)(a,{size:16,className:`shrink-0 text-accent-blue`}),o(`charts.title`)]}),(0,k.jsx)(`p`,{className:`mt-0.5 text-xs leading-relaxed text-dark-muted`,children:o(`charts.subtitle`)})]}),(0,k.jsxs)(`button`,{type:`button`,"data-testid":`charts-refresh`,onClick:()=>{q(),T(e=>e+1)},className:`mt-0.5 flex shrink-0 items-center gap-1 rounded-md border border-dark-border px-2 py-1 text-xs text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,title:o(`charts.refresh`),children:[d?(0,k.jsx)(n,{size:12,className:`animate-spin`}):(0,k.jsx)(t,{size:12}),o(`charts.refresh`)]})]}),m&&(0,k.jsx)(`div`,{className:`shrink-0 px-4 pt-2`,children:(0,k.jsx)(z,{text:m})}),(0,k.jsx)(ne,{refreshToken:S,onApproved:()=>void q()}),(0,k.jsx)(`div`,{className:`flex min-h-0 flex-1 gap-3 p-4`,children:s.length===0?(0,k.jsx)(`div`,{"data-testid":`charts-empty`,className:`flex min-h-0 flex-1 items-center justify-center rounded-lg border border-dashed border-dark-border px-6`,children:d?(0,k.jsx)(n,{size:18,className:`animate-spin text-accent-blue`}):(0,k.jsxs)(`div`,{className:`max-w-md space-y-2`,children:[(0,k.jsx)(`p`,{className:`text-xs leading-relaxed text-dark-muted`,children:o(`charts.empty`)}),(0,k.jsx)(`ul`,{className:`space-y-1`,children:oe.map(({command:e,hintKey:t})=>(0,k.jsxs)(`li`,{className:`flex items-baseline gap-1.5 text-badge text-dark-muted/80`,children:[(0,k.jsxs)(`code`,{className:`shrink-0 rounded bg-dark-hover px-1 py-px font-mono text-accent-blue`,children:[`/`,e]}),(0,k.jsx)(`span`,{className:`min-w-0`,children:o(t)})]},e))}),e&&(0,k.jsxs)(`button`,{type:`button`,"data-testid":`charts-empty-insights`,onClick:e,className:`mt-1 inline-flex items-center gap-1 rounded-md border border-dark-border px-2 py-1 text-badge text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,children:[(0,k.jsx)(l,{size:11}),o(`charts.goInsights`)]})]})}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(`aside`,{"data-testid":`charts-list`,className:`flex w-64 shrink-0 flex-col overflow-y-auto rounded-lg border border-dark-border bg-dark-surface`,children:[W&&(0,k.jsx)(`div`,{className:`border-b border-dark-border/60 p-1.5`,children:(0,k.jsx)(z,{text:`${o(`charts.removeFailed`)} — ${W}`})}),J.map(e=>{let t=e.locator.path,n=t===Z,r=te(e.type),i=r?o(r):e.type,a=X.draggingId===e.logicalId,s=X.dropTarget?.id===e.logicalId?X.dropTarget.side:null,l=H===e.logicalId;return(0,k.jsxs)(`div`,{"data-panel-id":e.logicalId,"data-testid":`charts-item-row`,"data-dragging":a?`true`:`false`,"data-drop-side":s??void 0,onPointerDown:t=>X.startFromCard(t,e.logicalId),onPointerMove:X.onPointerMove,onPointerUp:X.onPointerUp,onPointerCancel:X.onPointerCancel,className:g(`flex items-stretch border-b border-dark-border/60 transition-colors`,n?`bg-accent-blue/10`:`hover:bg-dark-hover`,a&&`opacity-40`,s===`before`&&`shadow-[inset_0_2px_0_0_theme(colors.accent-blue)]`,s===`after`&&`shadow-[inset_0_-2px_0_0_theme(colors.accent-blue)]`),children:[(0,k.jsx)(`button`,{type:`button`,"data-testid":`charts-item-grab`,"aria-label":o(`charts.dragHandle`),title:o(`charts.dragHandle`),onPointerDown:t=>X.startFromGrip(t,e.logicalId),onKeyDown:t=>{let n=t.key===`ArrowUp`,r=t.key===`ArrowDown`;(n||r)&&(t.preventDefault(),de(e.logicalId,n?-1:1))},style:{touchAction:`none`},className:`flex shrink-0 cursor-grab items-center px-1 text-dark-tertiary transition-colors hover:text-dark-text active:cursor-grabbing`,children:(0,k.jsx)(f,{size:12})}),l?(0,k.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5 py-2 pe-2`,children:[(0,k.jsx)(`span`,{className:`min-w-0 flex-1 text-badge leading-snug text-amber-300`,children:o(`charts.removeConfirm`)}),(0,k.jsx)(`button`,{type:`button`,"data-testid":`charts-item-remove-confirm`,disabled:ce,onClick:()=>void le(e.logicalId),className:`shrink-0 rounded border border-accent-red/40 px-1.5 py-0.5 text-badge text-accent-red transition-colors hover:bg-accent-red/10 disabled:opacity-50`,children:o(`charts.remove`)}),(0,k.jsx)(`button`,{type:`button`,"data-testid":`charts-item-remove-cancel`,onClick:()=>U(null),className:`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`,children:o(`common.cancel`)})]}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(`button`,{type:`button`,"data-testid":`charts-item`,"aria-current":n,onClick:()=>D(t),title:`${t}\n${e.producer.sessionId}`,className:`flex min-w-0 flex-1 items-center gap-2 py-2 pe-1 text-start`,children:[(0,k.jsx)(b,{kind:w(t),size:14}),(0,k.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,k.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,k.jsx)(`span`,{"data-testid":`charts-item-name`,className:g(`truncate text-xs`,n?`text-accent-blue`:`text-dark-text`),children:$(e)}),(0,k.jsxs)(`span`,{className:`shrink-0 rounded bg-dark-hover px-1 py-px text-badge text-dark-muted`,children:[i,` v`,e.version]})]}),(0,k.jsxs)(`span`,{className:`mt-0.5 block truncate font-mono text-badge text-dark-muted/70`,children:[ee(t),` · `,_(e.createdAt,Date.now(),o)]})]})]}),(0,k.jsx)(`button`,{type:`button`,"data-testid":`charts-item-remove`,onClick:()=>{G(null),U(e.logicalId)},title:o(`charts.removeHint`),"aria-label":o(`charts.removeHint`),className:`flex shrink-0 items-center px-1.5 text-dark-tertiary transition-colors hover:text-accent-red`,children:(0,k.jsx)(c,{size:12})})]})]},e.logicalId)})]}),(0,k.jsxs)(`section`,{"data-testid":`charts-canvas`,className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden rounded-lg border border-dark-border bg-dark-surface`,children:[(0,k.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-dark-border px-3 py-1.5`,children:[(0,k.jsx)(`span`,{"data-testid":`charts-canvas-name`,className:`min-w-0 flex-1 truncate text-xs text-dark-text`,title:Z??``,children:me??Z??``}),(0,k.jsx)(`button`,{type:`button`,"data-testid":`charts-fullscreen-toggle`,onClick:()=>j(!0),className:`shrink-0 rounded p-1 text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,title:o(`charts.fullscreen`),"aria-label":o(`charts.fullscreen`),children:(0,k.jsx)(i,{size:13})})]}),(0,k.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-3`,children:ge})]})]})}),he&&(0,k.jsx)(`div`,{ref:X.ghost.setElement,"data-testid":`charts-drag-ghost`,"aria-hidden":!0,className:`pointer-events-none fixed left-0 top-0 z-50 w-56 will-change-transform`,children:(0,k.jsxs)(`div`,{className:g(`flex w-full rotate-1 items-center gap-2 overflow-hidden rounded-lg border bg-dark-surface/95 px-2 py-1.5 shadow-pop`,X.dropTarget?`border-accent-blue/70 ring-1 ring-accent-blue/30`:`border-dark-border`),children:[(0,k.jsx)(f,{size:12,className:`shrink-0 text-dark-muted`}),(0,k.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-dark-text`,children:$(he)})]})}),A&&Q?.locator.path!==void 0&&(0,k.jsxs)(`div`,{"data-testid":`charts-fullscreen`,className:`fixed inset-0 z-50 flex flex-col bg-dark-bg`,children:[(0,k.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-dark-border px-4 py-2`,children:[(0,k.jsx)(a,{size:14,className:`shrink-0 text-accent-blue`}),(0,k.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-dark-text`,title:Q.locator.path,children:me??Q.locator.path}),(0,k.jsxs)(`button`,{type:`button`,onClick:()=>j(!1),className:`flex shrink-0 items-center gap-1 rounded-md border border-dark-border px-2 py-1 text-xs text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,title:o(`charts.exitFullscreen`),children:[(0,k.jsx)(r,{size:12}),o(`charts.exitFullscreen`)]})]}),(0,k.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-4`,children:(0,k.jsx)(B,{path:Q.locator.path,content:M,readError:P,freshness:Q.freshness})})]})]})}function H(){let{t:e}=h(),[t,n]=(0,O.useState)(`artifacts`);return(0,k.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,k.jsxs)(`div`,{"data-testid":`charts-view-switch`,role:`tablist`,className:`flex shrink-0 items-center gap-1 px-4 pt-3`,children:[(0,k.jsx)(`button`,{type:`button`,role:`tab`,"data-testid":`charts-view-artifacts`,"aria-selected":t===`artifacts`,onClick:()=>n(`artifacts`),className:g(`rounded-md px-2.5 py-1 text-xs transition-colors`,t===`artifacts`?`bg-accent-blue/15 text-accent-blue`:`text-dark-muted hover:bg-dark-hover hover:text-dark-text`),children:e(`charts.viewArtifacts`)}),(0,k.jsx)(`button`,{type:`button`,role:`tab`,"data-testid":`charts-view-insights`,"aria-selected":t===`insights`,onClick:()=>n(`insights`),className:g(`rounded-md px-2.5 py-1 text-xs transition-colors`,t===`insights`?`bg-accent-blue/15 text-accent-blue`:`text-dark-muted hover:bg-dark-hover hover:text-dark-text`),children:e(`charts.viewInsights`)})]}),(0,k.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:t===`insights`?(0,k.jsx)(P,{}):(0,k.jsx)(V,{onOpenInsights:()=>n(`insights`)})})]})}export{H as ChartsView};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{$ as t,$t as n,A as r,Bt as i,Ct as a,H as o,Lt as s,Rn as c,Rr as l,Ur as u,Vn as d,W as f,dn as p,ft as m,g as ee,m as h,ot as te,r as ne,st as g,t as re,ur as _,w as v}from"./icons-BvYhTENi.js";import{t as ie}from"./useTranslation-BGmCDuQI.js";import{t as y}from"./api-CCt9DRQm.js";import{I as b}from"./markdown-DAQZeY5V.js";import{A as x,f as ae}from"./common-BHXgEvgk.js";import{B as S}from"./index-BX-d2OBW.js";var C=e(u(),1),w=b();function T(e){return e.split(/[,,、]/).map(e=>e.trim()).filter(Boolean)}function E({connector:e,onRefresh:t}){let{t:r}=ie(),[a,o]=(0,C.useState)(null),[s,c]=(0,C.useState)(null),[l,u]=(0,C.useState)(null),[d,f]=(0,C.useState)(null),p=e.accounts??[],ne=(e.requiresEnv??[]).filter(e=>!e.optional),g=async(e,n)=>{o(e),c(null);let r=await n();r&&c(r),o(null),r||t()},re=()=>u({mode:`add`,label:``,tags:``,env:{}}),v=e=>u({mode:`creds`,accountId:e.id,label:e.label,tags:e.tags.join(`, `),env:{}}),b=()=>{if(!l)return;let t=T(l.tags),n=Object.fromEntries(Object.entries(l.env).filter(([,e])=>e.trim().length>0)),r=l.accountId??`new`;g(r,async()=>{if(l.mode===`add`){let r=await y.connectors.addAccount(e.id,{...l.label.trim()?{label:l.label.trim()}:{},tags:t,...Object.keys(n).length?{env:n}:{}});if(!r.success)return r.error||`新增账号失败`}else{let r=p.find(e=>e.id===l.accountId);if(!r)return`账号已不存在,请刷新`;let i=await y.connectors.updateAccount(e.id,r.id,{label:l.label.trim()||r.label,tags:t});if(!i.success)return i.error||`保存账号失败`;if(Object.keys(n).length){let e=await y.connectors.connect(r.stateId,n);if(!e.success)return e.error||`连接账号失败`}}return u(null),null})},ae=e=>{!e.enabled&&e.missingEnv?.length?v(e):g(e.id,async()=>{let t=await y.connectors.toggle(e.stateId,!e.enabled);return t.success?null:t.error||`切换 ${e.label} 失败`})},S=(t,n)=>{g(t.id,async()=>{let r=await y.connectors.updateAccount(e.id,t.id,{tags:T(n)});return r.success?null:r.error||`保存标签失败`}),f(null)},E=t=>{window.confirm(r(`connectors.accountsRemoveConfirm`,{label:t.label}))&&g(t.id,async()=>{let n=await y.connectors.removeAccount(e.id,t.id);return n.success?n.data?.removed===!1?`账号已不存在`:null:n.error||`删除账号失败`})},oe=e=>e.enabled&&e.status===`ready`?(0,w.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-badge text-accent-green`,children:[(0,w.jsx)(_,{size:10}),e.toolCount?r(`connectors.toolCount`,{count:e.toolCount}):`ready`]}):e.status===`error`?(0,w.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-badge text-accent-red`,title:e.error,children:[(0,w.jsx)(h,{size:10}),e.error||r(`connectors.missing`)]}):e.missingEnv?.length?(0,w.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-badge text-accent-yellow`,children:[(0,w.jsx)(h,{size:10}),e.missingEnv.join(`, `),` `,r(`connectors.missing`)]}):(0,w.jsx)(`span`,{className:`text-badge text-dark-muted`,children:e.status});return(0,w.jsxs)(`div`,{className:`mt-3 pt-3 border-t border-dark-border`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between gap-2 mb-2`,children:[(0,w.jsxs)(`span`,{className:`text-xs text-dark-muted inline-flex items-center gap-1`,children:[(0,w.jsx)(n,{size:12}),r(`connectors.accountsTitle`),(0,w.jsxs)(`span`,{className:`text-badge`,children:[`(`,p.length,`)`]})]}),(0,w.jsxs)(`button`,{type:`button`,onClick:re,className:`inline-flex items-center gap-1 text-meta text-accent-blue hover:underline`,children:[(0,w.jsx)(te,{size:11}),r(`connectors.accountsAdd`)]})]}),p.length===0?(0,w.jsx)(`p`,{className:`text-badge text-dark-muted`,children:r(`connectors.accountsEmpty`)}):(0,w.jsx)(`ul`,{className:`space-y-1.5`,children:p.map(e=>(0,w.jsxs)(`li`,{className:`flex items-center gap-2 flex-wrap bg-dark-bg/60 border border-dark-border rounded-lg px-2.5 py-1.5`,children:[(0,w.jsx)(`span`,{className:`text-sm`,children:e.label}),d?.id===e.id?(0,w.jsx)(`input`,{autoFocus:!0,value:d.value,onChange:t=>f({id:e.id,value:t.target.value}),onBlur:()=>S(e,d.value),onKeyDown:t=>{t.key===`Enter`&&S(e,d.value),t.key===`Escape`&&f(null)},placeholder:r(`connectors.accountsTagsHint`),className:`px-1.5 py-0.5 bg-dark-surface border border-dark-border rounded text-badge w-40`}):(0,w.jsxs)(w.Fragment,{children:[e.tags.length?e.tags.map(e=>(0,w.jsx)(`span`,{className:`text-badge px-1.5 py-0.5 rounded bg-accent-blue/15 text-accent-blue`,children:e},e)):(0,w.jsx)(`span`,{className:`text-badge text-dark-muted`,children:r(`connectors.accountsNoTags`)}),(0,w.jsx)(`button`,{type:`button`,title:r(`connectors.accountsEditTags`),onClick:()=>f({id:e.id,value:e.tags.join(`, `)}),className:`text-dark-muted hover:text-accent-blue`,children:(0,w.jsx)(m,{size:11})})]}),e.hint?(0,w.jsx)(`span`,{className:`text-badge text-dark-muted`,children:e.hint}):null,a===e.id?(0,w.jsx)(i,{size:11,className:`animate-spin text-dark-muted`}):oe(e),(0,w.jsxs)(`span`,{className:`ms-auto flex items-center gap-1.5`,children:[(0,w.jsx)(`button`,{type:`button`,title:r(`connectors.accountsCreds`),onClick:()=>v(e),className:`p-1 rounded text-dark-muted hover:text-accent-blue hover:bg-dark-hover`,children:(0,w.jsx)(n,{size:12})}),(0,w.jsx)(`button`,{type:`button`,title:r(`connectors.accountsRemove`),onClick:()=>E(e),disabled:a!==null,className:`p-1 rounded text-dark-muted hover:text-accent-red hover:bg-accent-red/10 disabled:opacity-40`,children:(0,w.jsx)(ee,{size:12})}),(0,w.jsx)(`button`,{role:`switch`,"aria-checked":e.enabled,disabled:a!==null,onClick:()=>ae(e),className:`relative w-9 h-5 rounded-full transition-colors disabled:opacity-50 ${e.enabled?`bg-accent-green`:`bg-dark-border`}`,children:(0,w.jsx)(`span`,{className:`absolute top-0.5 w-4 h-4 bg-white rounded-full transition-transform ${e.enabled?`start-4`:`start-0.5`}`})})]})]},e.id))}),s?(0,w.jsx)(`p`,{className:`text-badge text-accent-red mt-2`,children:s}):null,l?(0,w.jsxs)(`div`,{className:`mt-2 border border-dark-border rounded-lg p-2.5 bg-dark-bg/60 space-y-2`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`label`,{className:`block text-meta text-dark-muted mb-1`,children:r(`connectors.accountsLabel`)}),(0,w.jsx)(`input`,{autoFocus:!0,value:l.label,onChange:e=>u({...l,label:e.target.value}),placeholder:r(`connectors.accountsLabelHint`),className:`w-full px-2 py-1 bg-dark-surface border border-dark-border rounded text-sm focus:border-accent-blue focus:outline-none`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`label`,{className:`block text-meta text-dark-muted mb-1`,children:r(`connectors.accountsTags`)}),(0,w.jsx)(`input`,{value:l.tags,onChange:e=>u({...l,tags:e.target.value}),placeholder:r(`connectors.accountsTagsHint`),className:`w-full px-2 py-1 bg-dark-surface border border-dark-border rounded text-sm focus:border-accent-blue focus:outline-none`})]}),ne.map(e=>(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`label`,{className:`block text-meta text-dark-muted mb-1`,children:e.label}),(0,w.jsx)(`input`,{type:e.secret?`password`:`text`,value:l.env[e.key]??``,onChange:t=>u({...l,env:{...l.env,[e.key]:t.target.value}}),placeholder:e.key,className:`w-full px-2 py-1 bg-dark-surface border border-dark-border rounded text-sm focus:border-accent-blue focus:outline-none`}),e.hint?(0,w.jsx)(`p`,{className:`text-badge text-dark-muted mt-0.5`,children:e.hint}):null]},e.key)),(0,w.jsxs)(`div`,{className:`flex gap-2`,children:[(0,w.jsx)(x,{variant:`accent`,disabled:a!==null,onClick:b,children:l.mode===`add`?r(`connectors.accountsAdd`):r(`common.save`)}),(0,w.jsx)(`button`,{type:`button`,onClick:()=>u(null),className:`px-3 py-1.5 bg-dark-surface border border-dark-border rounded-lg text-sm`,children:r(`common.cancel`)})]})]}):null]})}var oe={"code-intelligence":`🧠 代码智能`,filesystem:`📂 文件系统`,databases:`🗄️ 数据库`,"browser-automation":`🌐 浏览器自动化`,"knowledge-memory":`🧠 知识/记忆`,"search-web":`🔎 搜索/网页`,"cloud-platforms":`☁️ 云平台`,communication:`💬 通讯`,"developer-tools":`🛠️ 开发者工具`,security:`🔒 安全`,"test-demo":`🧪 测试/Demo`,other:`📦 其他`},D=`email-imap`;function se(e){return(e.missingEnv?.length??0)>0||!!e.supportsOAuth&&!e.authorized}var ce=[`phone_use`,`phone_inspect`];function O(){let{t:e}=ie(),[u,m]=(0,C.useState)([]),[b,T]=(0,C.useState)(!0),[O,le]=(0,C.useState)(null),[k,A]=(0,C.useState)({}),[ue,j]=(0,C.useState)(null),[M,de]=(0,C.useState)(``),[N,fe]=(0,C.useState)(null),[P,pe]=(0,C.useState)(`all`),[me,F]=(0,C.useState)(null),[he,ge]=(0,C.useState)({}),[_e,I]=(0,C.useState)(!1),[L,R]=(0,C.useState)({name:``,command:``,args:``,env:``,transport:`stdio`,url:``,headers:``}),[z,ve]=(0,C.useState)(null),[ye,B]=(0,C.useState)(!1),[be,V]=(0,C.useState)(null),[H,xe]=(0,C.useState)(null),[Se,U]=(0,C.useState)(!1),[Ce,W]=(0,C.useState)(null),[G,we]=(0,C.useState)(null),[K,Te]=(0,C.useState)(!1),[Ee,De]=(0,C.useState)(null),Oe=async()=>{B(!0),V(null);try{let e=await y.tools.get(`computer_use`);ve(e.success&&e.data?!!e.data.enabled:!1)}catch(e){V(e instanceof Error?e.message:String(e))}B(!1)},ke=async()=>{if(z===null)return;let e=!z;B(!0),V(null);try{let t=await y.tools.toggle(`computer_use`,e);t.success?ve(e):V(t.error||`切换 Computer Use 失败`)}catch(e){V(e instanceof Error?e.message:String(e))}B(!1)},Ae=async()=>{U(!0),W(null);try{let e=await y.tools.get(`phone_use`);xe(e.success&&e.data?!!e.data.enabled:!1)}catch(e){W(e instanceof Error?e.message:String(e))}U(!1)},je=async()=>{if(H===null)return;let t=!H;U(!0),W(null);try{let n=(await Promise.all(ce.map(e=>y.tools.toggle(e,t)))).find(e=>!e.success);n?W(n.error||e(`connectors.phoneToggleFailed`)):(xe(t),t&&Me())}catch(e){W(e instanceof Error?e.message:String(e))}U(!1)},Me=async()=>{Te(!0),W(null);try{let t=await y.device.androidStatus();t.success&&t.data?we(t.data):W(t.error||e(`connectors.phoneCheckFailed`))}catch(e){W(e instanceof Error?e.message:String(e))}Te(!1)},Ne=()=>{window.dispatchEvent(new CustomEvent(`switch-tab`,{detail:`tools`}))},Pe=()=>R({name:``,command:``,args:``,env:``,transport:`stdio`,url:``,headers:``}),Fe=e=>Object.fromEntries(e.split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e.indexOf(`=`);return t>0?[e.slice(0,t).trim(),e.slice(t+1).trim()]:[e,``]})),Ie=async()=>{let t=L.transport!==`stdio`;if(!L.name.trim()||!t&&!L.command.trim()||t&&!L.url.trim())j(e(`connectors.customFormRequired`));else{A(e=>({...e,__add:!0})),j(null);try{let e=await y.connectors.addCustom({name:L.name.trim(),command:t?void 0:L.command.trim(),args:t?void 0:L.args.split(/\s+/).filter(Boolean),env:Fe(L.env),url:t?L.url.trim():void 0,transport:t?L.transport:void 0,headers:t?Fe(L.headers):void 0});e.success&&e.data?(m(t=>[...t,e.data]),I(!1),Pe()):j(e.error||`添加失败`)}catch(e){j(e instanceof Error?e.message:String(e))}finally{A(e=>({...e,__add:!1}))}}},Le=async e=>{A(t=>({...t,[e.id]:!0}));try{let t=await y.connectors.removeCustom(e.id);t.success?m(t=>t.filter(t=>t.id!==e.id)):j(t.error||`删除失败`)}finally{A(t=>({...t,[e.id]:!1}))}},q=async()=>{T(!0),le(null);let e=await y.connectors.list();e.success&&Array.isArray(e.data?.connectors)?m(e.data.connectors):le(e.error||`加载连接器失败`),T(!1)};(0,C.useEffect)(()=>{q(),Oe(),Ae()},[]),S(()=>void q(),{filterServer:e=>/^(managed|custom)-connector-/.test(e)});let J=(e,t,n,r)=>{j(n||null),m(n=>n.map(n=>n.id===e?t??{...n,enabled:!!r,status:`error`}:n))},Re=async(e,t,n)=>{j(null),A(t=>({...t,[e.id]:!0})),m(n=>n.map(n=>n.id===e.id?{...n,enabled:t,status:t?`connecting`:`installed`}:n));try{let r=await y.connectors.toggle(e.id,t,n);r.success&&r.data?m(t=>t.map(t=>t.id===e.id?r.data:t)):J(e.id,void 0,r.error||`切换 ${e.name} 失败`,!t)}catch(n){J(e.id,void 0,n instanceof Error?n.message:String(n),!t)}finally{A(t=>({...t,[e.id]:!1}))}},ze=e=>{!e.enabled&&e.requiresEnv?.length&&e.missingEnv?.length?F(e.id):(F(null),Re(e,!e.enabled))},Be=async(e,t)=>{F(null),j(null),A(t=>({...t,[e.id]:!0})),m(t=>t.map(t=>t.id===e.id?{...t,enabled:!0,status:`connecting`}:t));try{let n=await y.connectors.connect(e.id,t);n.success&&n.data?(m(t=>t.map(t=>t.id===e.id?n.data:t)),ge(t=>({...t,[e.id]:{}}))):J(e.id,void 0,n.error||`连接 ${e.name} 失败`,!1)}catch(t){J(e.id,void 0,t instanceof Error?t.message:String(t),!1)}finally{A(t=>({...t,[e.id]:!1}))}},Ve=async t=>{j(null),De(t.id);try{let n=await y.connectors.authorize(t.id);if(!n.success||!n.data?.authUrl){j(n.error||e(`connectors.authorizeFailed`));return}window.open(n.data.authUrl,`_blank`,`noopener,noreferrer`);let r=Date.now()+12e4;for(;Date.now()<r;){await new Promise(e=>setTimeout(e,2e3));let e=(await y.connectors.list()).data?.connectors?.find(e=>e.id===t.id);if(e){if(m(n=>n.map(n=>n.id===t.id?e:n)),e.error){j(e.error);break}if(e.authorized&&e.status===`ready`)break}}}catch(e){j(e instanceof Error?e.message:String(e))}finally{De(null)}},He=t=>{let n=`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-badge`;return t.stage===`ready`?(0,w.jsxs)(`span`,{className:`${n} bg-accent-green/15 text-accent-green`,children:[(0,w.jsx)(_,{size:9}),e(`connectors.phoneBadgeReady`)]}):t.stage===`adb-missing`||t.stage===`adb-error`?(0,w.jsxs)(`span`,{className:`${n} bg-accent-red/15 text-accent-red`,children:[(0,w.jsx)(h,{size:9}),t.stage===`adb-error`?e(`connectors.phoneBadgeAdbError`):e(`connectors.phoneBadgeNoAdb`)]}):(0,w.jsxs)(`span`,{className:`${n} bg-accent-yellow/15 text-accent-yellow`,children:[(0,w.jsx)(h,{size:9}),e(`connectors.phoneBadgeWaiting`)]})},Ue=e=>e===`adb-error`?0:e===`adb-missing`?1:e===`no-device`?2:e===`unauthorized`||e===`device-offline`?3:e===`multiple`?4:0,We=t=>{switch(t.stage){case`ready`:return e(`connectors.phoneReady`,{device:t.selected?`${t.selected.serial}${t.selected.model?` · ${t.selected.model}`:``}`:`—`});case`adb-missing`:return e(`connectors.phoneAdbMissing`,{env:t.envKeys.binary});case`adb-error`:return e(`connectors.phoneAdbError`,{env:t.envKeys.binary});case`no-device`:return e(`connectors.phoneNoDevice`);case`unauthorized`:return e(`connectors.phoneUnauthorized`);case`device-offline`:return e(`connectors.phoneOffline`);case`multiple`:return e(`connectors.phoneMultiple`,{count:t.devices.filter(e=>e.state===`device`).length,serials:t.devices.filter(e=>e.state===`device`).map(e=>e.serial).join(`, `),env:t.envKeys.serial});default:return e(`connectors.phoneNoDevice`)}},Ge=t=>{let n=`inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-medium`;if(!t.installed)return(0,w.jsxs)(`span`,{className:`${n} bg-dark-hover text-dark-muted`,children:[(0,w.jsx)(d,{size:12}),e(`connectors.notInstalled`)]});switch(t.status){case`ready`:return(0,w.jsxs)(`span`,{className:`${n} bg-accent-green/15 text-accent-green`,children:[(0,w.jsx)(_,{size:12}),e(`connectors.ready`)]});case`connecting`:return(0,w.jsxs)(`span`,{className:`${n} bg-accent-blue/15 text-accent-blue`,children:[(0,w.jsx)(i,{size:12,className:`animate-spin`}),e(`connectors.connecting`)]});case`error`:return(0,w.jsxs)(`span`,{className:`${n} bg-accent-red/15 text-accent-red`,children:[(0,w.jsx)(h,{size:12}),e(`connectors.error`)]});case`disabled`:return(0,w.jsx)(`span`,{className:`${n} bg-dark-hover text-dark-muted`,children:e(`connectors.disabled`)});default:return(0,w.jsx)(`span`,{className:`${n} bg-dark-hover text-dark-muted`,children:e(`connectors.installed`)})}},Y=u.find(e=>e.id===D)??null,X=u.filter(e=>e.featured&&e.id!==D&&se(e)),Ke=new Set(X.map(e=>e.id)),Z=u.filter(e=>e.id!==D&&!Ke.has(e.id)),qe=Y?.missingEnv??[],Q=qe.length>0,Je=!!(Y&&me===Y.id),$=Z.filter(e=>P===`all`||e.kind===P),Ye=$.filter(e=>{if(M){let t=M.toLowerCase();if(![e.name,e.id,e.description,e.category??``,e.kind,...e.languages??[]].join(` `).toLowerCase().includes(t))return!1}return!(N&&e.category!==N)}).sort((e,t)=>e.enabled===t.enabled?e.name.localeCompare(t.name):e.enabled?-1:1),Xe=[...new Set($.map(e=>e.category).filter(Boolean))];if(b)return(0,w.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,role:`status`,"aria-label":e(`common.loading`),children:(0,w.jsx)(ae,{count:5})});if(O)return(0,w.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,w.jsxs)(`div`,{className:`text-center`,children:[(0,w.jsx)(h,{size:32,className:`mx-auto mb-2 text-accent-red`}),(0,w.jsx)(`p`,{className:`text-accent-red mb-4`,children:O}),(0,w.jsx)(x,{variant:`accent`,onClick:()=>void q(),children:e(`common.retry`)})]})});let Ze=t=>{let r=he[t.id]??{},i=(e,n)=>ge(r=>({...r,[t.id]:{...r[t.id]??{},[e]:n}})),a=t.requiresEnv??[],o=a.filter(e=>!e.optional),s=a.filter(e=>e.optional),c=new Set(t.configuredEnv??[]),l=Object.fromEntries(Object.entries(r).filter(([,e])=>e.trim().length>0)),u=o.filter(e=>!l[e.key]&&!c.has(e.key)),d=t=>(0,w.jsxs)(`div`,{children:[(0,w.jsxs)(`label`,{className:`flex items-center gap-1.5 text-meta text-dark-muted mb-1`,children:[(0,w.jsx)(`span`,{children:t.label}),t.optional?(0,w.jsx)(`span`,{className:`text-badge px-1 py-0.5 rounded bg-dark-hover text-dark-muted`,children:e(`connectors.envOptional`)}):null,c.has(t.key)?(0,w.jsx)(`span`,{className:`text-badge px-1 py-0.5 rounded bg-accent-green/15 text-accent-green`,children:e(`connectors.envAlreadySet`)}):null]}),(0,w.jsx)(`input`,{type:t.secret?`password`:`text`,value:r[t.key]??``,onChange:e=>i(t.key,e.target.value),placeholder:c.has(t.key)?e(`connectors.envKeepPlaceholder`):t.key,className:`w-full px-3 py-1.5 bg-dark-bg border border-dark-border rounded-lg text-sm text-dark-text placeholder-dark-muted focus:border-accent-blue focus:outline-none`}),t.hint?(0,w.jsx)(`p`,{className:`text-badge text-dark-muted mt-1`,children:t.hint}):null]},t.key);return(0,w.jsxs)(`div`,{className:`mt-3 pt-3 border-t border-dark-border`,children:[(0,w.jsxs)(`div`,{className:`text-xs text-dark-muted mb-2 flex items-center gap-1`,children:[(0,w.jsx)(n,{size:12}),o.length?e(`connectors.needCredentials`):e(`connectors.envOptionalOnly`)]}),(0,w.jsx)(`div`,{className:`space-y-2`,children:o.map(d)}),s.length?(0,w.jsxs)(`details`,{className:`mt-2`,open:u.length===0&&o.length===0,children:[(0,w.jsx)(`summary`,{className:`text-meta text-dark-muted cursor-pointer select-none`,children:e(`connectors.envOptionalSection`,{count:s.length})}),(0,w.jsx)(`div`,{className:`space-y-2 mt-2`,children:s.map(d)})]}):null,u.length?(0,w.jsx)(`p`,{className:`text-badge text-accent-yellow mt-2`,children:e(`connectors.envMissingRequired`,{keys:u.map(e=>e.key).join(`, `)})}):null,(0,w.jsxs)(`div`,{className:`flex gap-2 mt-2`,children:[(0,w.jsx)(x,{variant:`accent`,disabled:u.length>0,onClick:()=>void Be(t,l),children:e(`connectors.connect`)}),(0,w.jsx)(`button`,{onClick:()=>F(null),className:`px-3 py-1.5 bg-dark-surface border border-dark-border rounded-lg text-sm`,children:e(`common.cancel`)})]})]})},Qe=(t,r=!1)=>{let i=!!k[t.id],a=me===t.id,s=new Set(t.configuredEnv??[]),l=(t.requiresEnv??[]).filter(e=>e.optional&&!s.has(e.key)).length;return(0,w.jsxs)(`div`,{className:r?``:`bg-dark-surface border border-dark-border rounded-lg p-4 transition-opacity ${t.enabled?``:`opacity-80`}`,children:[(0,w.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,w.jsxs)(`div`,{className:`flex items-start gap-3 flex-1 min-w-0`,children:[(0,w.jsx)(`span`,{className:`mt-0.5 shrink-0 px-2 py-1 rounded-md text-meta font-semibold uppercase ${t.kind===`lsp`?`bg-accent-purple/15 text-accent-purple`:`bg-accent-green/15 text-accent-green`}`,children:t.kind===`lsp`?`LSP`:`MCP`}),(0,w.jsxs)(`div`,{className:`min-w-0`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,w.jsx)(`span`,{className:`font-medium text-sm truncate`,children:t.name}),t.custom?(0,w.jsx)(`span`,{className:`text-badge px-1.5 py-0.5 rounded bg-accent-purple/15 text-accent-purple`,children:e(`connectors.custom`)}):null,t.official?(0,w.jsxs)(`span`,{title:`Official`,className:`text-badge px-1.5 py-0.5 rounded bg-accent-yellow/15 text-accent-yellow`,children:[`🎖️ `,e(`connectors.official`)]}):null,t.scope===`cloud`?(0,w.jsxs)(`span`,{title:`Cloud`,className:`inline-flex items-center gap-0.5 text-badge px-1.5 py-0.5 rounded bg-accent-blue/15 text-accent-blue`,children:[(0,w.jsx)(p,{size:9}),e(`connectors.cloud`)]}):(0,w.jsxs)(`span`,{title:`Local`,className:`inline-flex items-center gap-0.5 text-badge px-1.5 py-0.5 rounded bg-dark-hover text-dark-muted`,children:[(0,w.jsx)(o,{size:9}),e(`connectors.local`)]}),t.language?(0,w.jsx)(`span`,{className:`text-badge`,children:t.language}):null,Ge(t)]}),(0,w.jsx)(`p`,{className:`text-xs text-dark-muted mt-1 line-clamp-2`,children:t.description}),(0,w.jsxs)(`div`,{className:`flex items-center gap-3 mt-2 text-meta text-dark-muted flex-wrap`,children:[(0,w.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,w.jsx)(o,{size:11}),(0,w.jsx)(`code`,{className:`text-badge`,children:t.installHint})]}),t.transport&&t.transport!==`stdio`?(0,w.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-accent-blue`,children:[(0,w.jsx)(p,{size:11}),t.transport===`sse`?`SSE`:`Streamable HTTP`]}):null,t.languages?.length?(0,w.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,w.jsx)(re,{size:11}),t.languages.join(`, `)]}):null,t.kind===`mcp`&&t.toolCount!==void 0?(0,w.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,w.jsx)(g,{size:11}),e(`connectors.toolCount`,{count:t.toolCount})]}):null,t.requiresEnv?.length?(0,w.jsxs)(`button`,{type:`button`,onClick:()=>F(a?null:t.id),className:`inline-flex items-center gap-1 hover:text-accent-blue ${t.missingEnv?.length?`text-accent-yellow`:`text-dark-muted`}`,children:[(0,w.jsx)(n,{size:11}),t.missingEnv?.length?`${t.missingEnv.join(`, `)} ${e(`connectors.missing`)}`:e(`connectors.envConfigured`),l?` · ${e(`connectors.envOptionalUnset`,{count:l})}`:null]}):null,t.docsUrl?(0,w.jsxs)(`a`,{href:t.docsUrl,target:`_blank`,rel:`noreferrer`,className:`inline-flex items-center gap-1 hover:text-accent-blue`,onClick:e=>e.stopPropagation(),children:[(0,w.jsx)(c,{size:11}),e(`connectors.docs`)]}):null]}),t.error?(0,w.jsx)(`p`,{className:`text-meta text-accent-red mt-1`,children:t.error}):null,t.supportsOAuth&&!t.authorized&&!t.error?(0,w.jsx)(`p`,{className:`text-meta text-accent-yellow mt-1`,children:e(`connectors.oauthNotAuthorized`)}):null]})]}),(0,w.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[t.supportsOAuth?(0,w.jsx)(x,{variant:t.authorized?`ghost`:`accent`,size:`sm`,disabled:i||Ee===t.id,onClick:()=>void Ve(t),children:Ee===t.id?e(`connectors.authorizing`):t.authorized?e(`connectors.reauthorize`):e(`connectors.authorize`)}):null,t.custom?(0,w.jsx)(`button`,{onClick:()=>void Le(t),disabled:i,title:e(`connectors.removeCustom`),className:`p-1.5 rounded-lg text-dark-muted hover:text-accent-red hover:bg-accent-red/10 transition-colors disabled:opacity-40`,children:(0,w.jsx)(ee,{size:14})}):null,!t.installed&&t.enabled?(0,w.jsxs)(`span`,{className:`text-meta text-accent-blue flex items-center gap-1`,children:[(0,w.jsx)(d,{size:11,className:`animate-pulse`}),e(`connectors.installing`)]}):null,(0,w.jsx)(`button`,{role:`switch`,"aria-checked":t.enabled,disabled:i,onClick:()=>ze(t),className:`relative w-12 h-6 rounded-full transition-colors disabled:opacity-50 ${t.enabled?`bg-accent-green`:`bg-dark-border`}`,children:(0,w.jsx)(`span`,{className:`absolute top-1 w-4 h-4 bg-white rounded-full transition-transform ${t.enabled?`start-7`:`start-1`}`})})]})]}),a?Ze(t):null,t.supportsAccounts?(0,w.jsx)(E,{connector:t,onRefresh:()=>void q()}):null]},t.id)};return(0,w.jsxs)(`div`,{className:`flex-1 min-h-0 overflow-y-auto custom-scrollbar p-4`,children:[(0,w.jsxs)(`div`,{className:`sticky top-0 z-20 -mx-4 -mt-4 flex items-center justify-between bg-dark-bg/90 px-4 pb-3 pt-4 backdrop-blur`,children:[(0,w.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,w.jsx)(g,{size:20}),e(`nav.connectors`),(0,w.jsxs)(`span`,{className:`text-sm font-normal text-dark-muted`,children:[`· `,Z.filter(e=>e.enabled).length,`/`,Z.length]})]}),(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(x,{variant:`accent`,leftIcon:(0,w.jsx)(te,{size:14}),onClick:()=>I(e=>!e),children:e(`connectors.addCustom`)}),(0,w.jsxs)(`button`,{onClick:()=>void q(),className:`flex items-center gap-2 px-3 py-1.5 bg-dark-surface border border-dark-border rounded hover:bg-dark-hover transition-colors`,children:[(0,w.jsx)(t,{size:14}),e(`common.refresh`)]})]})]}),(0,w.jsxs)(`div`,{className:`mb-4 px-3 py-2 rounded-lg bg-accent-blue/10 border border-accent-blue/20 text-xs text-dark-muted space-y-1`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-x-2 gap-y-1 flex-wrap`,children:[(0,w.jsx)(`span`,{children:e(`connectors.scopeHint`)}),(0,w.jsxs)(`button`,{type:`button`,onClick:Ne,className:`inline-flex items-center gap-1 text-accent-blue hover:underline`,children:[e(`connectors.scopeHintToolsLink`),(0,w.jsx)(l,{size:11})]})]}),(0,w.jsx)(`div`,{children:e(`connectors.builtinCardHint`)})]}),(0,w.jsxs)(`div`,{className:`mb-4 p-4 bg-dark-surface border border-dark-border rounded-lg space-y-3`,children:[Y?(0,w.jsxs)(`div`,{children:[(0,w.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,w.jsxs)(`div`,{className:`min-w-0 flex items-start gap-2`,children:[(0,w.jsx)(s,{size:16,className:`mt-0.5 shrink-0 ${Q?`text-accent-yellow`:`text-accent-green`}`}),(0,w.jsxs)(`div`,{className:`min-w-0`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,w.jsx)(`span`,{className:`text-sm text-dark-text`,children:e(`connectors.emailTitle`)}),Ge(Y),Q?(0,w.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-badge px-1.5 py-0.5 rounded bg-accent-yellow/15 text-accent-yellow`,children:[(0,w.jsx)(h,{size:9}),e(`connectors.emailNeedsSetup`)]}):null]}),(0,w.jsx)(`div`,{className:`text-xs text-dark-muted mt-0.5`,children:e(`connectors.emailDesc`)})]})]}),(0,w.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>F(Je?null:Y.id),className:`inline-flex items-center gap-1 px-2.5 py-1 rounded-lg text-meta border transition-colors ${Q?`bg-accent-yellow/15 border-accent-yellow/40 text-accent-yellow hover:bg-accent-yellow/25`:`bg-dark-bg border-dark-border text-dark-muted hover:bg-dark-hover`}`,children:[(0,w.jsx)(n,{size:11}),e(Q?`connectors.emailConfigure`:`connectors.emailEditCredentials`)]}),(0,w.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":Y.enabled,disabled:!!k[Y.id],onClick:()=>ze(Y),className:`relative w-9 h-5 rounded-full transition-colors shrink-0 disabled:opacity-50 ${Y.enabled?`bg-accent-green`:`bg-dark-border`}`,children:k[Y.id]?(0,w.jsx)(i,{size:12,className:`absolute start-[7px] top-[3px] animate-spin text-accent-fg`}):(0,w.jsx)(`span`,{className:`absolute top-0.5 left-0 w-4 h-4 rounded-full bg-white shadow transition-transform ${Y.enabled?`translate-x-[18px]`:`translate-x-0.5`}`})})]})]}),Q?(0,w.jsxs)(`div`,{className:`mt-2 flex items-start gap-2 rounded-lg bg-accent-yellow/10 border border-accent-yellow/30 px-3 py-2`,children:[(0,w.jsx)(h,{size:13,className:`text-accent-yellow mt-0.5 shrink-0`}),(0,w.jsxs)(`div`,{className:`text-xs text-accent-yellow space-y-0.5`,children:[(0,w.jsx)(`div`,{children:e(`connectors.emailNeedsSetupHint`,{keys:qe.join(`, `)})}),(0,w.jsx)(`div`,{className:`text-dark-muted`,children:e(`connectors.emailPriorityHint`)})]})]}):null,Je?Ze(Y):null,Y.supportsAccounts?(0,w.jsx)(E,{connector:Y,onRefresh:()=>void q()}):null]}):null,X.length?(0,w.jsxs)(`div`,{className:`space-y-2 ${Y?`pt-3 border-t border-dark-border`:``}`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-1.5 text-meta text-dark-muted`,children:[(0,w.jsx)(v,{size:11}),e(`connectors.featuredSetup`)]}),X.map(e=>(0,w.jsx)(`div`,{children:Qe(e,!0)},e.id))]}):null,(0,w.jsxs)(`div`,{className:`flex items-center justify-between gap-3 ${Y?`pt-3 border-t border-dark-border`:``}`,children:[(0,w.jsxs)(`div`,{className:`min-w-0 flex items-start gap-2`,children:[(0,w.jsx)(a,{size:16,className:`text-accent-blue mt-0.5 shrink-0`}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`div`,{className:`text-sm text-dark-text`,children:`Computer Use`}),(0,w.jsx)(`div`,{className:`text-xs text-dark-muted mt-0.5`,children:`GUI 截屏 + 鼠标键盘操控(Windows)。每次调用需审批;需要视觉模型读屏。`})]})]}),(0,w.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":!!z,disabled:ye,onClick:()=>void ke(),className:`relative w-9 h-5 rounded-full transition-colors shrink-0 disabled:opacity-50 ${z?`bg-accent-blue`:`bg-dark-border`}`,children:ye?(0,w.jsx)(i,{size:12,className:`absolute start-[7px] top-[3px] animate-spin text-accent-fg`}):(0,w.jsx)(`span`,{className:`absolute top-0.5 left-0 w-4 h-4 rounded-full bg-white shadow transition-transform ${z?`translate-x-[18px]`:`translate-x-0.5`}`})})]}),be?(0,w.jsx)(`div`,{className:`text-xs text-accent-red bg-accent-red/10 border border-accent-red/30 rounded-lg px-3 py-2`,children:be}):null,(0,w.jsxs)(`div`,{className:`pt-3 border-t border-dark-border space-y-2`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,w.jsxs)(`div`,{className:`min-w-0 flex items-start gap-2`,children:[(0,w.jsx)(r,{size:16,className:`text-accent-blue mt-0.5 shrink-0`}),(0,w.jsxs)(`div`,{className:`min-w-0`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,w.jsx)(`span`,{className:`text-sm text-dark-text`,children:e(`connectors.phoneTitle`)}),G?He(G):null]}),(0,w.jsx)(`div`,{className:`text-xs text-dark-muted mt-0.5`,children:e(`connectors.phoneDesc`)})]})]}),(0,w.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>void Me(),disabled:K,className:`inline-flex items-center gap-1 px-2.5 py-1 rounded-lg text-meta bg-dark-bg border border-dark-border text-dark-muted hover:bg-dark-hover transition-colors disabled:opacity-50`,children:[K?(0,w.jsx)(i,{size:11,className:`animate-spin`}):(0,w.jsx)(f,{size:11}),e(K?`connectors.phoneChecking`:G?`connectors.phoneRecheck`:`connectors.phoneCheck`)]}),(0,w.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":!!H,disabled:Se,onClick:()=>void je(),className:`relative w-9 h-5 rounded-full transition-colors shrink-0 disabled:opacity-50 ${H?`bg-accent-blue`:`bg-dark-border`}`,children:Se?(0,w.jsx)(i,{size:12,className:`absolute start-[7px] top-[3px] animate-spin text-accent-fg`}):(0,w.jsx)(`span`,{className:`absolute top-0.5 left-0 w-4 h-4 rounded-full bg-white shadow transition-transform ${H?`translate-x-[18px]`:`translate-x-0.5`}`})})]})]}),G?(0,w.jsx)(`div`,{className:`rounded-lg border px-3 py-2 text-xs ${G.stage===`ready`?`bg-accent-green/10 border-accent-green/30 text-accent-green`:G.stage===`adb-missing`||G.stage===`adb-error`?`bg-accent-red/10 border-accent-red/30 text-accent-red`:`bg-accent-yellow/10 border-accent-yellow/30 text-accent-yellow`}`,children:(0,w.jsxs)(`div`,{className:`flex items-start gap-2`,children:[G.stage===`ready`?(0,w.jsx)(_,{size:13,className:`mt-0.5 shrink-0`}):(0,w.jsx)(h,{size:13,className:`mt-0.5 shrink-0`}),(0,w.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,w.jsx)(`div`,{children:We(G)}),Ue(G.stage)>0?(0,w.jsx)(`ol`,{className:`space-y-0.5`,children:[1,2,3,4].map(t=>{let n=Ue(G.stage),r=t===1?{env:G.envKeys.binary}:t===4?{env:G.envKeys.serial}:{};return(0,w.jsxs)(`li`,{className:`flex items-start gap-1.5 ${t===n?`text-accent-yellow`:`text-dark-muted`}`,children:[(0,w.jsx)(`span`,{className:`shrink-0 tabular-nums`,children:t===n?`▶`:t+`.`}),(0,w.jsx)(`span`,{children:e(`connectors.phoneStep${t}`,r)})]},t)})}):null,G.devices.length>0?(0,w.jsx)(`div`,{className:`text-dark-muted`,children:e(`connectors.phoneDevices`,{list:G.devices.map(e=>`${e.serial} [${e.state}]${e.model?` · ${e.model}`:``}`).join(` | `)})}):null,G.stage!==`ready`&&G.reason?(0,w.jsx)(`div`,{className:`text-dark-muted break-words opacity-80`,children:G.reason}):null]})]})}):(0,w.jsx)(`div`,{className:`text-xs text-dark-muted ps-6`,children:e(`connectors.phoneConnectHint`)}),Ce?(0,w.jsx)(`div`,{className:`text-xs text-accent-red bg-accent-red/10 border border-accent-red/30 rounded-lg px-3 py-2`,children:Ce}):null]})]}),_e?(0,w.jsxs)(`div`,{className:`mb-4 p-4 bg-dark-surface border border-dark-border rounded-lg`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium`,children:[(0,w.jsx)(ne,{size:15,className:`text-accent-purple`}),e(`connectors.customTitle`)]}),(0,w.jsx)(`div`,{className:`flex gap-1`,children:[[`stdio`,`🖥️ `+e(`connectors.customLocal`)],[`http`,`🌐 HTTP`],[`sse`,`📡 SSE`]].map(([e,t])=>(0,w.jsx)(`button`,{onClick:()=>R(t=>({...t,transport:e})),className:`px-3 py-1.5 rounded-lg text-xs transition-colors ${L.transport===e?`bg-accent-blue text-accent-fg`:`bg-dark-bg border border-dark-border hover:bg-dark-hover`}`,children:t},e))})]}),(0,w.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`label`,{className:`block text-meta text-dark-muted mb-1`,children:e(`connectors.customName`)}),(0,w.jsx)(`input`,{value:L.name,onChange:e=>R(t=>({...t,name:e.target.value})),placeholder:`my-server`,className:`w-full px-3 py-1.5 bg-dark-bg border border-dark-border rounded-lg text-sm text-dark-text placeholder-dark-muted focus:border-accent-blue focus:outline-none`})]}),L.transport===`stdio`?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`label`,{className:`block text-meta text-dark-muted mb-1`,children:e(`connectors.customCommand`)}),(0,w.jsx)(`input`,{value:L.command,onChange:e=>R(t=>({...t,command:e.target.value})),placeholder:`npx -y @some/mcp-server`,className:`w-full px-3 py-1.5 bg-dark-bg border border-dark-border rounded-lg text-sm text-dark-text placeholder-dark-muted focus:border-accent-blue focus:outline-none`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`label`,{className:`block text-meta text-dark-muted mb-1`,children:e(`connectors.customArgs`)}),(0,w.jsx)(`input`,{value:L.args,onChange:e=>R(t=>({...t,args:e.target.value})),placeholder:`--arg value`,className:`w-full px-3 py-1.5 bg-dark-bg border border-dark-border rounded-lg text-sm text-dark-text placeholder-dark-muted focus:border-accent-blue focus:outline-none`})]})]}):(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`label`,{className:`block text-meta text-dark-muted mb-1`,children:e(`connectors.customUrl`)}),(0,w.jsx)(`input`,{value:L.url,onChange:e=>R(t=>({...t,url:e.target.value})),placeholder:`https://mcp.example.com/mcp`,className:`w-full px-3 py-1.5 bg-dark-bg border border-dark-border rounded-lg text-sm text-dark-text placeholder-dark-muted focus:border-accent-blue focus:outline-none`})]}),L.transport===`stdio`?(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`label`,{className:`block text-meta text-dark-muted mb-1`,children:e(`connectors.customEnv`)}),(0,w.jsx)(`input`,{value:L.env,onChange:e=>R(t=>({...t,env:e.target.value})),placeholder:`KEY=value, KEY2=value2`,className:`w-full px-3 py-1.5 bg-dark-bg border border-dark-border rounded-lg text-sm text-dark-text placeholder-dark-muted focus:border-accent-blue focus:outline-none`})]}):(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`label`,{className:`block text-meta text-dark-muted mb-1`,children:e(`connectors.customHeaders`)}),(0,w.jsx)(`input`,{value:L.headers,onChange:e=>R(t=>({...t,headers:e.target.value})),placeholder:`Authorization=Bearer xxx`,className:`w-full px-3 py-1.5 bg-dark-bg border border-dark-border rounded-lg text-sm text-dark-text placeholder-dark-muted focus:border-accent-blue focus:outline-none`})]})]}),(0,w.jsxs)(`div`,{className:`flex gap-2 mt-3`,children:[(0,w.jsx)(x,{variant:`accent`,onClick:()=>void Ie(),loading:!!k.__add,children:e(`connectors.add`)}),(0,w.jsx)(`button`,{onClick:()=>I(!1),className:`px-3 py-1.5 bg-dark-surface border border-dark-border rounded-lg text-sm`,children:e(`common.cancel`)})]})]}):null,(0,w.jsx)(`div`,{className:`flex gap-1 mb-3`,children:[[`all`,`${e(`connectors.all`)} (${Z.length})`],[`lsp`,`LSP (${Z.filter(e=>e.kind===`lsp`).length})`],[`mcp`,`MCP (${Z.filter(e=>e.kind===`mcp`).length})`]].map(([e,t])=>(0,w.jsx)(`button`,{onClick:()=>pe(e),className:`px-3 py-1.5 rounded-lg text-sm transition-colors ${P===e?`bg-accent-blue text-accent-fg`:`bg-dark-surface border border-dark-border hover:bg-dark-hover`}`,children:t},e))}),(0,w.jsx)(`div`,{className:`flex gap-3 mb-3`,children:(0,w.jsxs)(`div`,{className:`flex-1 relative`,children:[(0,w.jsx)(f,{size:16,className:`absolute start-3 top-1/2 -translate-y-1/2 text-dark-muted`}),(0,w.jsx)(`input`,{type:`text`,value:M,onChange:e=>de(e.target.value),placeholder:e(`connectors.searchPlaceholder`),className:`w-full ps-10 pe-4 py-2 bg-dark-surface border border-dark-border rounded-lg text-dark-text placeholder-dark-muted focus:border-accent-blue focus:outline-none`})]})}),(0,w.jsxs)(`div`,{className:`flex gap-1 mb-4 flex-wrap`,children:[(0,w.jsxs)(`button`,{onClick:()=>fe(null),className:`px-3 py-1.5 rounded-lg text-sm transition-colors ${N?`bg-dark-surface border border-dark-border hover:bg-dark-hover`:`bg-accent-blue text-accent-fg`}`,children:[e(`connectors.all`),` `,(0,w.jsxs)(`span`,{className:`opacity-70 text-xs`,children:[`(`,$.length,`)`]})]}),Xe.map(e=>{let t=$.filter(t=>t.category===e).length;return(0,w.jsxs)(`button`,{onClick:()=>fe(N===e?null:e),className:`px-3 py-1.5 rounded-lg text-sm transition-colors ${N===e?`bg-accent-blue text-accent-fg`:`bg-dark-surface border border-dark-border hover:bg-dark-hover`}`,children:[oe[e]??e,` `,(0,w.jsxs)(`span`,{className:`opacity-70 text-xs`,children:[`(`,t,`)`]})]},e)})]}),ue?(0,w.jsx)(`div`,{className:`mb-4 px-3 py-2 bg-accent-red/10 border border-accent-red/30 rounded-lg text-accent-red text-sm`,children:ue}):null,(0,w.jsx)(`div`,{children:Ye.length===0?(0,w.jsxs)(`div`,{className:`text-center text-dark-muted text-sm py-10`,children:[(0,w.jsx)(f,{size:24,className:`mx-auto mb-2 opacity-50`}),e(`connectors.noResults`)]}):(0,w.jsx)(`div`,{className:`space-y-2`,children:Ye.map(e=>Qe(e))})})]})}export{O as ConnectorsView};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{$ as t,Cn as n,J as r,Ur as i,Vn as a,W as o,an as s,br as c,hn as l,p as u,vr as d,yr as f}from"./icons-BvYhTENi.js";import{t as ee}from"./react-vendor-BlngCquv.js";import{t as p}from"./useTranslation-BGmCDuQI.js";import{n as m,t as h}from"./cn-rx4uumOJ.js";import{t as g}from"./api-CCt9DRQm.js";import{I as _}from"./markdown-DAQZeY5V.js";var v=e(i(),1),y=_();function b(e){return{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,py:`python`,rs:`rust`,go:`go`,rb:`ruby`,json:`json`,xml:`xml`,html:`html`,css:`css`,scss:`scss`,md:`markdown`,yaml:`yaml`,yml:`yaml`,toml:`toml`,sql:`sql`,sh:`shell`,bat:`bat`,ps1:`powershell`,dockerfile:`dockerfile`,properties:`properties`,c:`c`,cpp:`cpp`,h:`c`,hpp:`cpp`,cs:`csharp`,vue:`html`,svelte:`html`,svg:`xml`}[e.split(`.`).pop()?.toLowerCase()||``]||`plaintext`}function x(){let{t:e}=p(),[i,_]=(0,v.useState)([]),[x,S]=(0,v.useState)(null),[C,w]=(0,v.useState)(``),[T,E]=(0,v.useState)(``),[te,D]=(0,v.useState)(!1),[O,k]=(0,v.useState)(``),[A,j]=(0,v.useState)(!1),[M,N]=(0,v.useState)(!1),[P,F]=(0,v.useState)(!1),[I,L]=(0,v.useState)(``),R=(0,v.useRef)(null);(0,v.useEffect)(()=>{x?(D(!0),g.files.read(x).then(t=>{if(t.success&&t.data){let e=typeof t.data==`string`?t.data:JSON.stringify(t.data);w(e),E(e)}else m.error(t.error||e(`fileTree.readFail`))}).catch(()=>m.error(e(`fileTree.readFail`))).finally(()=>D(!1))):(w(``),E(``))},[x]);let z=async e=>{j(!0);try{let t=await g.files.list(e);t.success&&Array.isArray(t.data)&&_(t.data.map(e=>({...e,expanded:!1})))}finally{j(!1)}},B=async e=>{if(e.type===`directory`)try{let t=await g.files.list(e.path);if(t.success&&Array.isArray(t.data)){let n=t.data.map(e=>({...e,expanded:!1}));_(t=>V(t,e.id,n))}}catch{}},V=(e,t,n)=>e.map(e=>e.id===t?{...e,children:n,expanded:!0}:e.children?{...e,children:V(e.children,t,n)}:e);(0,v.useEffect)(()=>{z()},[]);let H=e=>{let t=W(i,e);t&&t.type===`directory`&&!t.children?B(t):_(t=>U(t,e))},U=(e,t)=>e.map(e=>e.id===t&&e.type===`directory`?{...e,expanded:!e.expanded}:e.children?{...e,children:U(e.children,t)}:e),W=(e,t)=>{for(let n of e){if(n.id===t)return n;if(n.children){let e=W(n.children,t);if(e)return e}}return null},G=(e,t)=>t?e.reduce((e,n)=>{if(n.name.toLowerCase().includes(t.toLowerCase()))e.push(n);else if(n.children){let r=G(n.children,t);r.length>0&&e.push({...n,children:r,expanded:!0})}return e},[]):e,K=(0,v.useCallback)(async()=>{if(x){N(!0);try{let t=await g.files.update(x,C);t.success?(E(C),m.success(e(`fileTree.saved`))):m.error(t.error||e(`fileTree.saveFail`))}catch{m.error(e(`fileTree.saveFail`))}finally{N(!1)}}},[x,C,e]),q=()=>{S(null),w(``),E(``)},J=(0,v.useCallback)(async t=>{let n=await g.files.download(t);n.success?m.success(e(`fileTree.downloadStarted`)):m.error(n.error||e(`fileTree.downloadFail`))},[e]),Y=()=>R.current?.click(),X=(0,v.useCallback)(async t=>{if(!t||t.length===0)return;let n=I||(x?x.replace(/[\\/][^\\/]+$/,``):``);F(!0);let r=0,i=0;for(let e of Array.from(t)){let t=n?`${n}/${e.name}`:e.name;(await g.files.upload(e,t)).success?r++:i++}F(!1),r>0&&m.success(e(`fileTree.uploadedCount`,{count:r})),i>0&&m.error(e(`fileTree.uploadFailedCount`,{count:i})),await z()},[I,x,e]),Z=C!==T,Q=()=>Z?typeof window>`u`||typeof window.confirm!=`function`?!1:window.confirm(e(`fileTree.discardConfirm`,{file:x||``})):!0,ne=()=>{Q()&&q()},$=(t,n=0)=>{let r=t.type===`directory`,i=x===t.path,o=I===t.path;return(0,y.jsxs)(`div`,{children:[(0,y.jsxs)(`div`,{className:`group flex items-center gap-1 px-2 py-0.5 cursor-pointer rounded text-xs transition-colors ${i?`bg-accent-blue/20 text-accent-blue`:o?`bg-accent-blue/10`:`hover:bg-dark-hover`}`,style:{paddingLeft:`${n*14+6}px`},onClick:()=>r?(L(t.path),H(t.id)):S(t.path),title:r?e(`fileTree.setUploadDirHint`):t.path,children:[r&&(0,y.jsx)(`span`,{className:`text-dark-muted shrink-0`,children:t.expanded?(0,y.jsx)(c,{size:12}):(0,y.jsx)(d,{size:12})}),r?(0,y.jsx)(l,{size:12,className:`text-accent-yellow shrink-0`}):(0,y.jsx)(`span`,{className:`w-3`}),(0,y.jsx)(`span`,{className:`truncate flex-1`,children:t.name}),!r&&(0,y.jsx)(`button`,{onClick:e=>{e.stopPropagation(),J(t.path)},className:`opacity-0 group-hover:opacity-100 p-0.5 rounded hover:bg-dark-border text-dark-muted hover:text-dark-text shrink-0`,title:e(`fileTree.download`),children:(0,y.jsx)(a,{size:11})})]}),r&&t.expanded&&t.children?.map(e=>$(e,n+1))]},t.id)},re=O?G(i,O):i;return(0,y.jsxs)(`div`,{className:`flex-1 flex overflow-hidden`,children:[(0,y.jsxs)(`div`,{className:h(`flex flex-col overflow-hidden flex-1 min-h-0`,x&&`hidden`),children:[(0,y.jsx)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b border-dark-border`,children:(0,y.jsxs)(`div`,{className:`flex items-center gap-0.5 ms-auto`,children:[(0,y.jsx)(`button`,{onClick:Y,disabled:P,className:`p-1 rounded hover:bg-dark-hover disabled:opacity-50`,title:I?e(`fileTree.uploadTo`,{dir:I}):e(`fileTree.uploadToRoot`),children:(0,y.jsx)(u,{size:12,className:P?`animate-pulse`:``})}),(0,y.jsx)(`button`,{onClick:()=>z(),disabled:A,className:`p-1 rounded hover:bg-dark-hover`,title:e(`fileTree.refresh`),children:(0,y.jsx)(t,{size:12,className:A?`animate-spin`:``})}),(0,y.jsx)(`button`,{onClick:()=>{Q()&&(_(i.map(e=>({...e,expanded:!1}))),q())},className:`p-1 rounded hover:bg-dark-hover`,title:e(`fileTree.collapse`),children:(0,y.jsx)(s,{size:12})})]})}),(0,y.jsx)(`div`,{className:`p-1.5 border-b border-dark-border`,children:(0,y.jsxs)(`div`,{className:`relative`,children:[(0,y.jsx)(o,{size:12,className:`absolute start-2 top-1/2 -translate-y-1/2 text-dark-muted`}),(0,y.jsx)(`input`,{type:`text`,value:O,onChange:e=>k(e.target.value),placeholder:e(`fileTree.searchPlaceholder`),className:`w-full ps-6 pe-2 py-1 text-xs bg-dark-bg border border-dark-border rounded focus:border-accent-blue focus:outline-none`})]})}),(0,y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto custom-scrollbar py-1`,children:re.map(e=>$(e))}),(0,y.jsx)(`input`,{ref:R,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{X(e.target.files),e.currentTarget.value=``}})]}),(0,y.jsx)(`div`,{className:h(`flex-1 flex flex-col min-w-0 bg-dark-bg`,!x&&`hidden`),children:x?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-1.5 border-b border-dark-border bg-dark-surface`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-2 text-xs min-w-0`,children:[(0,y.jsx)(`button`,{onClick:ne,className:`p-0.5 -ms-1 rounded hover:bg-dark-hover text-dark-muted hover:text-dark-text shrink-0`,title:e(`fileTree.backToList`),"aria-label":e(`fileTree.backToList`),"data-testid":`file-tree-back`,children:(0,y.jsx)(f,{size:13})}),(0,y.jsx)(n,{size:12,className:`text-dark-muted shrink-0`}),(0,y.jsx)(`span`,{className:`truncate`,children:x}),Z&&(0,y.jsxs)(`span`,{className:`text-accent-yellow text-badge shrink-0`,children:[`● `,e(`fileTree.modified`)]})]}),(0,y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,y.jsxs)(`button`,{onClick:K,disabled:!Z||M,className:`px-2 py-0.5 text-badge rounded flex items-center gap-1 transition-colors ${Z?`bg-accent-green text-accent-fg hover:opacity-90`:`bg-dark-border text-dark-muted cursor-not-allowed`}`,children:[(0,y.jsx)(r,{size:10}),e(M?`fileTree.saving`:`fileTree.save`)]}),(0,y.jsx)(`button`,{onClick:()=>void J(x),className:`p-1 rounded hover:bg-dark-hover`,title:e(`fileTree.download`),children:(0,y.jsx)(a,{size:12})})]})]}),(0,y.jsx)(`div`,{className:`flex-1 min-h-0`,children:te?(0,y.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,y.jsx)(`div`,{className:`w-4 h-4 border-2 border-accent-blue border-t-transparent rounded-full animate-spin`})}):(0,y.jsx)(ee,{language:b(x),value:C,onChange:e=>w(e||``),theme:`vs-dark`,options:{fontSize:13,fontFamily:`"Cascadia Code", "Fira Code", Consolas, monospace`,minimap:{enabled:!0,renderCharacters:!1,maxColumn:80,showSlider:`mouseover`},lineNumbers:`on`,scrollBeyondLastLine:!1,wordWrap:`on`,automaticLayout:!0,tabSize:2}})})]}):(0,y.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,y.jsxs)(`div`,{className:`text-center`,children:[(0,y.jsx)(n,{size:32,className:`text-dark-muted mx-auto mb-2`}),(0,y.jsx)(`p`,{className:`text-sm text-dark-muted`,children:e(`fileTree.selectFileHint`)})]})})})]})}export{x as FileTreeView};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{$ as t,D as n,K as r,Kt as i,O as a,T as o,Ur as s,Vn as c,_ as l,ct as u,g as d,n as f,ot as p,p as m,pt as h,v as g,vr as _,yr as v,z as y}from"./icons-BvYhTENi.js";import{t as b}from"./useTranslation-BGmCDuQI.js";import{n as x}from"./state-_ZfNVAsd.js";import{t as S}from"./api-CCt9DRQm.js";import{I as C}from"./markdown-DAQZeY5V.js";import{A as w,j as T}from"./common-BHXgEvgk.js";var E=e(s(),1),D=x((e,t)=>({rules:[],templates:[],stats:null,events:[],agents:[],loading:!1,error:null,fieldErrors:null,formOpen:!1,editingRule:null,draftRule:null,dryRunResult:null,loadRules:async()=>{let t=await S.hooks.list();t.success&&Array.isArray(t.data)?e({rules:t.data}):t.success&&t.data&&!Array.isArray(t.data)?e({error:`服务端返回的规则数据格式异常`}):e({error:t.error||`Failed to load rules`})},loadTemplates:async()=>{let t=await S.hooks.templates();t.success&&Array.isArray(t.data)?e({templates:t.data}):t.success&&t.data&&!Array.isArray(t.data)&&e({error:`服务端返回的模板数据格式异常`})},loadStats:async()=>{let t=await S.hooks.stats();t.success&&t.data&&e({stats:t.data})},loadEvents:async()=>{let t=await S.hooks.events();t.success&&Array.isArray(t.data)?e({events:t.data}):t.success&&t.data&&!Array.isArray(t.data)&&e({error:`服务端返回的事件数据格式异常`})},loadAgents:async()=>{let t=await S.hooks.agents();t.success&&Array.isArray(t.data)?e({agents:t.data}):t.success&&t.data&&!Array.isArray(t.data)&&e({error:`服务端返回的Agent数据格式异常`})},loadAll:async()=>{e({loading:!0,error:null});try{await Promise.all([t().loadRules(),t().loadTemplates(),t().loadStats(),t().loadEvents(),t().loadAgents()])}catch(t){e({error:String(t)})}finally{e({loading:!1})}},createRule:async n=>{e({fieldErrors:null});let r=await S.hooks.create(n);if(r.success)return await t().loadRules(),await t().loadStats(),e({formOpen:!1,editingRule:null}),!0;if(r.error){e({error:r.error});try{let t=JSON.parse(r.error);t.fieldErrors&&e({fieldErrors:t.fieldErrors})}catch{}}return!1},updateRule:async(n,r)=>{e({fieldErrors:null});let i=await S.hooks.update(n,r);return i.success?(await t().loadRules(),e({formOpen:!1,editingRule:null}),!0):(e({error:i.error||`Update failed`}),!1)},deleteRule:async n=>{let r=await S.hooks.delete(n);return r.success?(await t().loadRules(),await t().loadStats(),!0):(e({error:r.error||`Delete failed`}),!1)},batchDelete:async n=>{let r=await S.hooks.batchDelete(n);return r.success?(await t().loadRules(),await t().loadStats(),!0):(e({error:r.error||`Batch delete failed`}),!1)},toggleRule:async(n,r)=>(await S.hooks.toggle(n,r)).success?(e(e=>({rules:e.rules.map(e=>e.name===n?{...e,enabled:r}:e)})),!0):(await t().loadRules(),!1),batchToggle:async(n,r)=>(await S.hooks.batchToggle(n,r)).success?(e(e=>({rules:e.rules.map(e=>n.includes(e.name)?{...e,enabled:r}:e)})),!0):(await t().loadRules(),!1),dryRun:async t=>{let n=await S.hooks.dryRun(t);return n.success&&n.data?(e({dryRunResult:n.data}),n.data):(e({error:n.error||`Dry-run failed`}),null)},openForm:t=>e({formOpen:!0,editingRule:t||null,draftRule:null,dryRunResult:null,fieldErrors:null}),openFormFromTemplate:(t,n)=>e({formOpen:!0,editingRule:null,draftRule:{...t.rule,description:n||t.rule.description},dryRunResult:null,fieldErrors:null}),closeForm:()=>e({formOpen:!1,editingRule:null,draftRule:null,dryRunResult:null,fieldErrors:null}),setDryRunResult:t=>e({dryRunResult:t}),clearError:()=>e({error:null}),clearFieldErrors:()=>e({fieldErrors:null})})),O=C(),k={SYSTEM:`bg-accent-red/15 text-accent-red`,SECURITY:`bg-accent-orange/15 text-accent-orange`,PROJECT:`bg-accent-blue/15 text-accent-blue`,USER:`bg-accent-green/15 text-accent-green`,PLUGIN:`bg-accent-purple/15 text-accent-purple`},A={SHELL:`bg-accent-yellow/15 text-accent-yellow`,HTTP:`bg-accent-cyan/15 text-accent-cyan`,PROMPT:`bg-accent-purple/15 text-accent-purple`,AGENT:`bg-accent-blue/15 text-accent-blue`};function j({rules:e,onEdit:t}){let{t:r}=b(),{toggleRule:i,deleteRule:a,batchDelete:s,batchToggle:c}=D(),[l,u]=(0,E.useState)(new Set),[f,p]=(0,E.useState)(!1),m=Array.isArray(e)?e:[];if(m.length===0)return(0,O.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-3 py-16 text-dark-muted`,children:[(0,O.jsx)(`div`,{className:`text-4xl opacity-60`,children:`🪝`}),(0,O.jsx)(`p`,{className:`text-sm`,children:r(`hook.noRules`)}),(0,O.jsx)(`p`,{className:`text-xs text-dark-muted/70`,children:r(`hook.noRulesHint`)})]});let g=e=>{let t=new Set(l);t.has(e)?t.delete(e):t.add(e),u(t),p(t.size===m.length)},_=()=>{f?(u(new Set),p(!1)):(u(new Set(m.map(e=>e.name))),p(!0))},v=()=>{l.size!==0&&confirm(r(`hook.batchDeleteConfirm`,{n:l.size}))&&(s(Array.from(l)),u(new Set),p(!1))},y=e=>{l.size!==0&&(c(Array.from(l),e),u(new Set),p(!1))};return(0,O.jsxs)(`div`,{className:`flex flex-1 flex-col min-h-0`,children:[l.size>0&&(0,O.jsxs)(`div`,{className:`mb-2 flex items-center gap-2 rounded-lg border border-accent-blue/30 bg-accent-blue/5 px-3 py-1.5 text-sm`,children:[(0,O.jsx)(`span`,{className:`text-dark-muted`,children:r(`hook.selectedItems`,{n:l.size})}),(0,O.jsx)(`button`,{onClick:()=>y(!0),className:`rounded bg-accent-green/15 px-2 py-0.5 text-accent-green transition-colors hover:bg-accent-green/25`,children:r(`hook.enableAll`)}),(0,O.jsx)(`button`,{onClick:()=>y(!1),className:`rounded bg-dark-hover px-2 py-0.5 text-dark-text transition-colors hover:bg-dark-border`,children:r(`hook.disableAll`)}),(0,O.jsx)(`button`,{onClick:v,className:`rounded bg-accent-red/15 px-2 py-0.5 text-accent-red transition-colors hover:bg-accent-red/25`,children:r(`common.delete`)})]}),(0,O.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto custom-scrollbar rounded-xl border border-dark-border`,children:(0,O.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,O.jsx)(`thead`,{className:`sticky top-0 bg-dark-hover text-dark-muted`,children:(0,O.jsxs)(`tr`,{children:[(0,O.jsx)(`th`,{className:`w-8 p-2.5`,children:(0,O.jsx)(`button`,{onClick:_,children:f?(0,O.jsx)(n,{size:14}):(0,O.jsx)(o,{size:14})})}),(0,O.jsx)(`th`,{className:`p-2.5 text-start font-medium`,children:r(`hook.colName`)}),(0,O.jsx)(`th`,{className:`p-2.5 text-start font-medium`,children:r(`hook.colEvents`)}),(0,O.jsx)(`th`,{className:`p-2.5 text-start font-medium`,children:r(`hook.colType`)}),(0,O.jsx)(`th`,{className:`p-2.5 text-start font-medium`,children:r(`hook.fieldPriority`)}),(0,O.jsx)(`th`,{className:`p-2.5 text-start font-medium`,children:r(`hook.colStatus`)}),(0,O.jsx)(`th`,{className:`p-2.5 text-end font-medium`,children:r(`hook.colActions`)})]})}),(0,O.jsx)(`tbody`,{className:`divide-y divide-dark-border`,children:m.map(e=>(0,O.jsxs)(`tr`,{className:`transition-colors hover:bg-dark-hover/50`,children:[(0,O.jsx)(`td`,{className:`p-2.5`,children:(0,O.jsx)(`button`,{onClick:()=>g(e.name),children:l.has(e.name)?(0,O.jsx)(n,{size:14,className:`text-accent-blue`}):(0,O.jsx)(o,{size:14,className:`text-dark-muted`})})}),(0,O.jsxs)(`td`,{className:`p-2.5`,children:[(0,O.jsx)(`div`,{className:`font-medium text-dark-text`,children:e.name}),e.description&&(0,O.jsx)(`div`,{className:`mt-0.5 max-w-[220px] truncate text-xs text-dark-muted`,children:e.description})]}),(0,O.jsx)(`td`,{className:`p-2.5`,children:(0,O.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[Array.isArray(e.events)&&e.events.slice(0,3).map(e=>(0,O.jsx)(`span`,{className:`rounded bg-dark-hover px-1.5 py-0.5 text-xs text-dark-text`,children:e},e)),Array.isArray(e.events)&&e.events.length>3&&(0,O.jsxs)(`span`,{className:`px-1 py-0.5 text-xs text-dark-muted`,children:[`+`,e.events.length-3]})]})}),(0,O.jsx)(`td`,{className:`p-2.5`,children:(0,O.jsx)(`span`,{className:`rounded px-1.5 py-0.5 text-xs font-medium ${A[e.implementationType]||`bg-dark-hover text-dark-muted`}`,children:e.implementationType})}),(0,O.jsx)(`td`,{className:`p-2.5`,children:(0,O.jsx)(`span`,{className:`rounded px-1.5 py-0.5 text-xs font-medium ${k[e.priority]||`bg-dark-hover text-dark-muted`}`,children:e.priority})}),(0,O.jsx)(`td`,{className:`p-2.5`,children:(0,O.jsx)(`button`,{onClick:()=>i(e.name,!e.enabled),className:`relative h-5 w-9 rounded-full transition-colors ${e.enabled?`bg-accent-green`:`bg-dark-border`}`,title:e.enabled?r(`hook.clickToDisable`):r(`hook.clickToEnable`),children:(0,O.jsx)(`span`,{className:`absolute top-0.5 block h-3.5 w-3.5 rounded-full bg-white transition-all ${e.enabled?`start-[18px]`:`start-[2px]`}`})})}),(0,O.jsx)(`td`,{className:`p-2.5`,children:(0,O.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,O.jsx)(`button`,{onClick:()=>t(e),className:`rounded p-1 text-dark-muted transition-colors hover:bg-dark-hover hover:text-accent-blue`,title:r(`hook.actionEdit`),children:(0,O.jsx)(h,{size:14})}),(0,O.jsx)(`button`,{onClick:()=>{confirm(r(`hook.deleteRuleConfirm`,{name:e.name}))&&a(e.name)},className:`rounded p-1 text-dark-muted transition-colors hover:bg-dark-hover hover:text-accent-red`,title:r(`common.delete`),children:(0,O.jsx)(d,{size:14})})]})})]},e.name))})]})})]})}var M={name:``,description:``,events:[],implementationType:`SHELL`,command:``,url:``,promptTemplate:``,agentName:``,priority:`USER`,tools:[],matcherToolNamePattern:``,matcherFromState:``,matcherToState:``,timeoutMs:3e4,enabled:!0,failOpen:!0,onFailure:`fail-open`,scope:`project`},N=[{value:`SYSTEM`,label:`SYSTEM (100)`},{value:`SECURITY`,label:`SECURITY (80)`},{value:`PROJECT`,label:`PROJECT (60)`},{value:`USER`,label:`USER (40)`},{value:`PLUGIN`,label:`PLUGIN (20)`}],P=e=>`w-full rounded-lg border bg-dark-bg px-3 py-2 text-sm text-dark-text placeholder-dark-muted/60 transition-colors focus:outline-none focus:ring-2 ${e?`border-accent-red focus:border-accent-red focus:ring-accent-red/20`:`border-dark-border focus:border-accent-blue focus:ring-accent-blue/20`}`,F=`mb-1 block text-xs font-medium text-dark-muted`;function I({isOpen:e,events:t,agents:n}){let{t:r}=b(),{editingRule:i,draftRule:a,fieldErrors:o,dryRunResult:s,createRule:c,updateRule:l,closeForm:d,dryRun:p,setDryRunResult:m,clearFieldErrors:h}=D(),{visible:g,phase:y}=T(e),x=[{value:`SHELL`,label:r(`hook.implShell`),desc:r(`hook.implShellDesc`)},{value:`HTTP`,label:r(`hook.implHttp`),desc:r(`hook.implHttpDesc`)},{value:`PROMPT`,label:`LLM Prompt`,desc:r(`hook.implPromptDesc`)},{value:`AGENT`,label:`AI Agent`,desc:r(`hook.implAgentDesc`)}],S=Array.isArray(t)?t:[],C=Array.isArray(n)?n:[],[k,A]=(0,E.useState)(0),[j,I]=(0,E.useState)(M),[L,R]=(0,E.useState)(``),z=i??a;(0,E.useEffect)(()=>{e&&(A(0),R(``),I(z?{name:z.name,description:z.description||``,events:z.events,implementationType:z.implementationType,command:z.command||``,url:z.url||``,promptTemplate:z.promptTemplate||``,agentName:z.agentName||``,priority:z.priority,tools:z.tools||[],matcherToolNamePattern:z.matchers?.toolNamePattern||``,matcherFromState:z.matchers?.fromState||``,matcherToState:z.matchers?.toState||``,timeoutMs:z.timeoutMs,enabled:z.enabled,failOpen:z.failOpen,onFailure:z.onFailure||(z.failOpen?`fail-open`:`block`),scope:z.scope||`project`}:M))},[e,z]);let B=(e,t)=>{I(n=>({...n,[e]:t})),h()},V=e=>{I(t=>({...t,events:t.events.includes(e)?t.events.filter(t=>t!==e):[...t.events,e]}))},H=e=>{e.every(e=>j.events.includes(e))?I(t=>({...t,events:t.events.filter(t=>!e.includes(t))})):I(t=>({...t,events:[...new Set([...t.events,...e])]}))},U=async()=>{let e={};j.matcherToolNamePattern&&(e.toolNamePattern=j.matcherToolNamePattern),j.matcherFromState&&(e.fromState=j.matcherFromState),j.matcherToState&&(e.toState=j.matcherToState);let t={...j,tools:j.tools.length>0?j.tools:[]};t.matchers=e,delete t.matcherToolNamePattern,delete t.matcherFromState,delete t.matcherToState,i?await l(i.name,t):await c(t)},W=async()=>{m(null);let e={};j.matcherToolNamePattern&&(e.toolNamePattern=j.matcherToolNamePattern),await p({hook:{name:j.name||`dry-run`,description:j.description,events:j.events,implementationType:j.implementationType,command:j.command,url:j.url,promptTemplate:j.promptTemplate,agentName:j.agentName,priority:j.priority,tools:j.tools,matchers:e,timeoutMs:j.timeoutMs,enabled:!0,failOpen:j.failOpen,onFailure:j.onFailure,scope:j.scope},eventType:j.events[0]||`PRE_TOOL_USE`,toolName:``,toolInput:``})},G=L?S.map(e=>({...e,events:Array.isArray(e.events)?e.events.filter(e=>e.name.toLowerCase().includes(L.toLowerCase())||e.summary.includes(L)):[]})).filter(e=>e.events.length>0):S,K=[{title:r(`hook.stepBasicTitle`),desc:r(`hook.stepBasicDesc`)},{title:r(`hook.stepImplTitle`),desc:r(`hook.stepImplDesc`)},{title:r(`hook.stepAdvancedTitle`),desc:r(`hook.stepAdvancedDesc`)}];return g?(0,O.jsxs)(`div`,{className:`fixed inset-0 z-50 flex justify-end`,children:[(0,O.jsx)(`div`,{className:`absolute inset-0 ui-scrim ui-overlay-backdrop`,"data-phase":y,onClick:d}),(0,O.jsxs)(`div`,{className:`relative flex h-full w-[560px] flex-col border-s border-dark-border bg-dark-bg shadow-2xl ui-overlay-panel-edge`,"data-phase":y,children:[(0,O.jsxs)(`div`,{className:`flex flex-shrink-0 items-center justify-between border-b border-dark-border px-4 py-3.5`,children:[(0,O.jsx)(`h3`,{className:`text-base font-semibold text-dark-text`,children:i?r(`hook.editRule`,{name:i.name}):r(`hook.addRule`)}),(0,O.jsx)(`button`,{onClick:d,className:`rounded-lg p-1 text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,children:(0,O.jsx)(f,{size:18})})]}),(0,O.jsx)(`div`,{className:`flex flex-shrink-0 border-b border-dark-border`,children:K.map((e,t)=>{let n=t===k,r=t<k;return(0,O.jsxs)(`button`,{onClick:()=>A(t),className:`relative flex-1 border-b-2 px-2 py-2.5 text-center text-xs transition-colors ${n?`border-accent-blue bg-accent-blue/5 text-accent-blue`:r?`border-transparent text-dark-text`:`border-transparent text-dark-muted hover:text-dark-text`}`,children:[(0,O.jsx)(`span`,{className:`me-1 inline-flex h-4 w-4 items-center justify-center rounded-full text-badge ${n?`bg-accent-blue text-accent-fg`:r?`bg-accent-green text-accent-fg`:`bg-dark-hover text-dark-muted`}`,children:r?`✓`:t+1}),(0,O.jsx)(`span`,{className:`font-medium`,children:e.title})]},e.title)})}),(0,O.jsxs)(`div`,{className:`flex-1 min-h-0 space-y-4 overflow-auto custom-scrollbar p-4`,children:[o&&Object.keys(o).length>0&&(0,O.jsx)(`div`,{className:`rounded-lg border border-accent-red/40 bg-accent-red/10 p-2.5 text-xs text-accent-red`,children:Object.entries(o).map(([e,t])=>(0,O.jsxs)(`div`,{children:[(0,O.jsxs)(`strong`,{children:[e,`:`]}),` `,t]},e))}),k===0&&(0,O.jsxs)(`div`,{className:`space-y-4`,children:[(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:F,children:r(`hook.fieldName`)}),(0,O.jsx)(`input`,{value:j.name,onChange:e=>B(`name`,e.target.value),placeholder:`my-custom-hook`,className:P(o?.name)})]}),(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:F,children:r(`hook.fieldDescription`)}),(0,O.jsx)(`textarea`,{value:j.description,onChange:e=>B(`description`,e.target.value),placeholder:r(`hook.descriptionPlaceholder`),rows:2,className:P()})]}),(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:F,children:`Scope`}),(0,O.jsxs)(`select`,{value:j.scope,onChange:e=>B(`scope`,e.target.value),className:P(),children:[(0,O.jsx)(`option`,{value:`project`,children:`project (.agent/hooks.json)`}),(0,O.jsx)(`option`,{value:`user`,children:`user (~/.agent/hooks.json)`}),(0,O.jsx)(`option`,{value:`local`,children:`local (.agent/hooks.local.json)`})]})]}),(0,O.jsxs)(`div`,{children:[(0,O.jsxs)(`div`,{className:`mb-1 flex items-center justify-between`,children:[(0,O.jsx)(`label`,{className:`text-xs font-medium text-dark-muted`,children:r(`hook.fieldEvents`)}),(0,O.jsx)(`span`,{className:`text-xs text-accent-blue`,children:r(`hook.eventsSelected`,{n:j.events.length})})]}),(0,O.jsx)(`input`,{value:L,onChange:e=>R(e.target.value),placeholder:r(`hook.searchEventsPlaceholder`),className:P()+` mb-2`}),(0,O.jsx)(`div`,{className:`max-h-[280px] space-y-2 overflow-auto custom-scrollbar rounded-lg border border-dark-border bg-dark-surface p-2`,children:G.map(e=>(0,O.jsxs)(`div`,{children:[(0,O.jsxs)(`button`,{onClick:()=>H(e.events.map(e=>e.name)),className:`mb-1 text-xs font-medium text-dark-muted transition-colors hover:text-dark-text`,children:[e.category,` — `,r(`hook.toggleAllEvents`)]}),e.events.map(e=>{let t=j.events.includes(e.name);return(0,O.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2 rounded px-1 py-1 transition-colors hover:bg-dark-hover`,children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:t,onChange:()=>V(e.name),className:`h-3.5 w-3.5 accent-accent-blue`}),(0,O.jsx)(`span`,{className:`text-xs text-dark-text`,children:e.name}),(0,O.jsxs)(`span`,{className:`truncate text-xs text-dark-muted`,children:[`— `,e.summary]})]},e.name)})]},e.category))})]})]}),k===1&&(0,O.jsxs)(`div`,{className:`space-y-4`,children:[(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:F,children:r(`hook.fieldImplType`)}),(0,O.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:x.map(e=>{let t=j.implementationType===e.value;return(0,O.jsxs)(`button`,{onClick:()=>B(`implementationType`,e.value),className:`rounded-lg border p-3 text-start transition-colors ${t?`border-accent-blue bg-accent-blue/10 ring-1 ring-accent-blue/30`:`border-dark-border bg-dark-surface hover:bg-dark-hover`}`,children:[(0,O.jsx)(`div`,{className:`text-sm font-medium ${t?`text-accent-blue`:`text-dark-text`}`,children:e.label}),(0,O.jsx)(`div`,{className:`mt-1 text-xs text-dark-muted`,children:e.desc})]},e.value)})})]}),j.implementationType===`SHELL`&&(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:F,children:r(`hook.fieldCommand`)}),(0,O.jsx)(`input`,{value:j.command,onChange:e=>B(`command`,e.target.value),placeholder:`python3 .agent/hooks/audit.py`,className:`font-mono ${P(o?.command)}`})]}),j.implementationType===`HTTP`&&(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:F,children:`URL *`}),(0,O.jsx)(`input`,{value:j.url,onChange:e=>B(`url`,e.target.value),placeholder:`https://example.com/hooks/audit`,className:P(o?.url)})]}),j.implementationType===`PROMPT`&&(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:F,children:r(`hook.fieldPromptTemplate`)}),(0,O.jsx)(`textarea`,{value:j.promptTemplate,onChange:e=>B(`promptTemplate`,e.target.value),placeholder:r(`hook.promptTemplatePlaceholder`),rows:5,className:`font-mono ${P(o?.promptTemplate)}`})]}),j.implementationType===`AGENT`&&(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:F,children:`Agent *`}),(0,O.jsxs)(`select`,{value:j.agentName,onChange:e=>B(`agentName`,e.target.value),className:P(o?.agentName),children:[(0,O.jsx)(`option`,{value:``,children:r(`hook.selectAgentPlaceholder`)}),C.map(e=>(0,O.jsxs)(`option`,{value:e.id,children:[e.name,` (`,e.description,`)`]},e.id))]}),(0,O.jsx)(`p`,{className:`mt-1 text-xs text-dark-muted`,children:r(`hook.agentReadOnlyHint`)})]})]}),k===2&&(0,O.jsxs)(`div`,{className:`space-y-4`,children:[(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:F,children:r(`hook.fieldPriority`)}),(0,O.jsx)(`select`,{value:j.priority,onChange:e=>B(`priority`,e.target.value),className:P(),children:N.map(e=>(0,O.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),(0,O.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:F,children:r(`hook.fieldTimeout`)}),(0,O.jsx)(`input`,{type:`number`,value:j.timeoutMs,onChange:e=>B(`timeoutMs`,parseInt(e.target.value)||3e4),min:100,max:3e5,step:1e3,className:P()})]}),(0,O.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,O.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-dark-text`,children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:j.enabled,onChange:e=>B(`enabled`,e.target.checked),className:`h-3.5 w-3.5 accent-accent-blue`}),r(`hook.labelEnabled`)]}),(0,O.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-dark-text`,children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:j.failOpen,onChange:e=>B(`failOpen`,e.target.checked),className:`h-3.5 w-3.5 accent-accent-blue`}),r(`hook.failOpenLabel`)]}),(0,O.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-dark-text`,title:r(`hook.onFailureHint`),children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:j.onFailure===`block`,onChange:e=>{let t=e.target.checked;I(e=>({...e,onFailure:t?`block`:`fail-open`,failOpen:!t&&e.failOpen})),h()},className:`h-3.5 w-3.5 accent-accent-blue`}),r(`hook.onFailureLabel`)]})]})]}),(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:F,children:r(`hook.fieldToolFilter`)}),(0,O.jsx)(`input`,{value:j.matcherToolNamePattern,onChange:e=>B(`matcherToolNamePattern`,e.target.value),placeholder:`Bash.*|FileWrite.*`,className:`font-mono ${P()}`})]}),j.events.some(e=>e.includes(`STATE`))&&(0,O.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:F,children:`From State`}),(0,O.jsx)(`input`,{value:j.matcherFromState,onChange:e=>B(`matcherFromState`,e.target.value),className:P()})]}),(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:F,children:`To State`}),(0,O.jsx)(`input`,{value:j.matcherToState,onChange:e=>B(`matcherToState`,e.target.value),className:P()})]})]}),s&&(0,O.jsxs)(`div`,{className:`rounded-lg border border-dark-border bg-dark-surface p-3`,children:[(0,O.jsx)(`div`,{className:`mb-2 text-xs font-medium text-dark-text`,children:r(`hook.dryRunResultTitle`)}),(0,O.jsxs)(`div`,{className:`space-y-1 text-xs`,children:[(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`span`,{className:`text-dark-muted`,children:r(`hook.dryRunDecision`)}),(0,O.jsx)(`span`,{className:s.decision===`ALLOW`?`text-accent-green`:s.decision===`DENY`?`text-accent-red`:`text-accent-yellow`,children:s.decision})]}),(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`span`,{className:`text-dark-muted`,children:r(`hook.dryRunReason`)}),(0,O.jsx)(`span`,{className:`text-dark-text`,children:s.reason})]}),s.contextOutput&&(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`span`,{className:`text-dark-muted`,children:r(`hook.dryRunOutput`)}),(0,O.jsx)(`span`,{className:`text-dark-text`,children:s.contextOutput})]})]})]}),(0,O.jsxs)(`button`,{onClick:W,className:`inline-flex items-center gap-1.5 rounded-lg border border-dark-border bg-dark-surface px-3 py-1.5 text-xs text-dark-text transition-colors hover:bg-dark-hover`,children:[(0,O.jsx)(u,{size:12}),` `,r(`hook.dryRunButton`)]})]})]}),(0,O.jsxs)(`div`,{className:`flex flex-shrink-0 items-center justify-between border-t border-dark-border px-4 py-3`,children:[(0,O.jsx)(`div`,{className:`flex gap-2`,children:k>0&&(0,O.jsx)(w,{size:`sm`,onClick:()=>A(k-1),leftIcon:(0,O.jsx)(v,{size:14}),children:r(`hook.prevStep`)})}),(0,O.jsxs)(`div`,{className:`flex gap-2`,children:[(0,O.jsx)(w,{size:`sm`,onClick:d,children:r(`common.cancel`)}),k<2?(0,O.jsx)(w,{size:`sm`,variant:`accent`,onClick:()=>A(k+1),rightIcon:(0,O.jsx)(_,{size:14}),children:r(`hook.nextStep`)}):(0,O.jsx)(w,{size:`sm`,variant:`accent`,onClick:U,children:r(i?`hook.saveChanges`:`hook.createRule`)})]})]})]})]}):null}function L({stats:e}){let{t}=b();if(!e)return null;let n=[{id:`total`,label:t(`hook.statTotal`),value:e.totalHooks,icon:i,iconWrap:`bg-accent-blue/15 text-accent-blue`},{id:`enabled`,label:t(`common.enabled`),value:e.enabledCount,icon:l,iconWrap:`bg-accent-green/15 text-accent-green`},{id:`disabled`,label:t(`common.disabled`),value:e.disabledCount,icon:g,iconWrap:`bg-dark-hover text-dark-muted`}];return(0,O.jsx)(`div`,{className:`grid grid-cols-3 gap-3`,children:n.map(e=>{let t=e.icon;return(0,O.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl border border-dark-border bg-dark-surface px-4 py-3`,children:[(0,O.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg ${e.iconWrap}`,children:(0,O.jsx)(t,{size:18})}),(0,O.jsxs)(`div`,{className:`min-w-0`,children:[(0,O.jsx)(`div`,{className:`text-xl font-bold text-dark-text`,children:e.value}),(0,O.jsx)(`div`,{className:`text-xs text-dark-muted`,children:e.label})]})]},e.id)})})}var R={safety:{Icon:y,cls:`text-accent-red`},quality:{Icon:a,cls:`text-accent-blue`},audit:{Icon:r,cls:`text-accent-purple`}},z={Icon:r,cls:`text-dark-muted`};function B({templates:e,existingNames:t,onPick:n}){let{t:r}=b(),i=Array.isArray(e)?e:[];if(i.length===0)return null;let a=new Set(t);return(0,O.jsxs)(`section`,{className:`mt-4 min-w-0 rounded-xl border border-dark-border bg-dark-surface p-4`,children:[(0,O.jsxs)(`div`,{className:`mb-3`,children:[(0,O.jsx)(`h3`,{className:`text-sm font-semibold text-dark-text`,children:r(`hook.templatesTitle`)}),(0,O.jsx)(`p`,{className:`mt-0.5 text-xs text-dark-muted`,children:r(`hook.templatesDesc`)})]}),(0,O.jsx)(`div`,{className:`grid grid-cols-1 gap-2 md:grid-cols-2 xl:grid-cols-3`,children:i.map(e=>{let{Icon:t,cls:i}=R[e.category]??z,o=r(`hook.template.${e.id}.title`),s=r(`hook.template.${e.id}.desc`),c=a.has(e.id);return(0,O.jsxs)(`button`,{type:`button`,onClick:()=>n(e),className:`group rounded-lg border border-dark-border bg-dark-bg p-3 text-start transition-colors hover:border-accent-blue/40 hover:bg-dark-hover`,children:[(0,O.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,O.jsx)(t,{size:13,className:i}),(0,O.jsx)(`span`,{className:`text-meta uppercase tracking-wider text-dark-muted`,children:r(`hook.templateCategory.${e.category}`)}),c&&(0,O.jsx)(`span`,{className:`ms-auto rounded bg-dark-raised px-1.5 text-badge text-dark-muted`,children:r(`hook.templateExists`)})]}),(0,O.jsx)(`div`,{className:`mt-1 text-sm font-medium text-dark-text`,children:o}),(0,O.jsx)(`p`,{className:`mt-1 line-clamp-2 text-xs leading-relaxed text-dark-muted`,children:s}),(0,O.jsx)(`div`,{className:`mt-2 text-xs text-accent-blue opacity-0 transition-opacity group-hover:opacity-100`,children:r(`hook.templateUse`)})]},e.id)})})]})}function V(){let{t:e}=b(),{rules:n,templates:r,stats:i,events:a,agents:o,loading:s,error:l,formOpen:u,loadAll:d,openForm:h,openFormFromTemplate:g,clearError:_}=D();(0,E.useEffect)(()=>{d()},[]);let v=(0,E.useCallback)(async()=>{let e=await S.hooks.export();if(e.success&&e.data){let t=new Blob([JSON.stringify(e.data,null,2)],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`hooks-export.json`,r.click(),URL.revokeObjectURL(n)}},[]),y=(0,E.useCallback)(()=>{let t=document.createElement(`input`);t.type=`file`,t.accept=`.json`,t.onchange=async t=>{let n=t.target.files?.[0];if(!n)return;let r=await n.text();try{let t=JSON.parse(r),n=confirm(e(`hook.importMergeConfirm`))?`merge`:`replace`;(await S.hooks.import({...t,mergeMode:n})).success&&d()}catch(e){console.error(`Import failed:`,e)}},t.click()},[d,e]);return(0,O.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-dark-bg text-dark-text`,children:[(0,O.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-between gap-3 border-b border-dark-border px-6 py-4`,children:[(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`h2`,{className:`text-base font-semibold text-dark-text`,children:e(`hook.configTitle`)}),(0,O.jsx)(`p`,{className:`mt-0.5 text-xs text-dark-muted`,children:e(`hook.configDesc`)})]}),(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(`button`,{onClick:d,title:e(`common.refresh`),className:`rounded-lg p-2 text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,children:(0,O.jsx)(t,{size:16,className:s?`animate-spin`:``})}),(0,O.jsx)(w,{onClick:y,leftIcon:(0,O.jsx)(m,{size:14}),children:e(`hook.import`)}),(0,O.jsx)(w,{onClick:v,leftIcon:(0,O.jsx)(c,{size:14}),children:e(`hook.export`)}),(0,O.jsx)(w,{variant:`accent`,onClick:()=>h(),leftIcon:(0,O.jsx)(p,{size:14}),children:e(`hook.newRule`)})]})]}),(0,O.jsxs)(`div`,{className:`flex-1 min-h-0 overflow-auto custom-scrollbar px-6 py-4`,children:[l&&(0,O.jsxs)(`div`,{className:`mb-3 flex items-center justify-between rounded-lg border border-accent-red/40 bg-accent-red/10 px-4 py-2 text-sm text-accent-red`,children:[(0,O.jsx)(`span`,{children:l}),(0,O.jsx)(`button`,{onClick:_,className:`text-accent-red/70 transition-colors hover:text-accent-red`,children:(0,O.jsx)(f,{size:16})})]}),(0,O.jsx)(L,{stats:i}),(0,O.jsx)(B,{templates:r,existingNames:n.map(e=>e.name),onPick:t=>g(t,e(`hook.template.${t.id}.desc`))}),(0,O.jsxs)(`section`,{className:`mt-4 min-w-0 rounded-xl border border-dark-border bg-dark-surface p-4`,children:[(0,O.jsxs)(`div`,{className:`mb-3 flex items-center justify-between`,children:[(0,O.jsx)(`h3`,{className:`text-sm font-semibold text-dark-text`,children:e(`hook.ruleList`)}),(0,O.jsx)(`span`,{className:`text-xs text-dark-muted`,children:e(`hook.ruleCount`,{n:n.length})})]}),s&&n.length===0?(0,O.jsx)(`div`,{className:`flex h-[520px] items-center justify-center text-dark-muted`,children:e(`common.loading`)}):(0,O.jsx)(`div`,{className:`min-h-[520px]`,children:(0,O.jsx)(j,{rules:n,onEdit:e=>h(e)})})]})]}),(0,O.jsx)(I,{isOpen:u,events:a,agents:o})]})}export{V as HookConfigView};