@mydot/cli 1.0.40 → 1.0.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +625 -38
- package/bin/stt/requirements.txt +7 -19
- package/bin/stt/stt_server.py +18 -93
- package/install.cjs +156 -2
- package/llms.txt +34 -7
- package/package.json +9 -9
- package/web/dist/assets/AssistantsView-Ct3BBpYf.js +1 -0
- package/web/dist/assets/AutomationView-CO-jVhee.js +3 -0
- package/web/dist/assets/ChannelConfigView-Ct1W584x.js +8 -0
- package/web/dist/assets/ChartsView-CAc37Sam.js +1 -0
- package/web/dist/assets/ConnectorsView-DP4bbh58.js +1 -0
- package/web/dist/assets/FileTreeView-DwsYfssO.js +1 -0
- package/web/dist/assets/HookConfigView-uFsqieii.js +2 -0
- package/web/dist/assets/InputArea-BY8quOiH.js +14 -0
- package/web/dist/assets/MemoryView-Bgd_lcTf.js +1 -0
- package/web/dist/assets/MessageBubble-CCTRbIMZ.css +1 -0
- package/web/dist/assets/MessageBubble-CVGXupVH.js +453 -0
- package/web/dist/assets/ModelsView-B271UV9L.js +1 -0
- package/web/dist/assets/PluginsView-Dz4fqQR1.js +2 -0
- package/web/dist/assets/ProjectsView-DF-YCV8y.js +1 -0
- package/web/dist/assets/SessionGrid-BIREstN2.js +4 -0
- package/web/dist/assets/SessionGrid-Bk5CAXEn.css +1 -0
- package/web/dist/assets/SettingsModal-ZJeoZcCd.js +4 -0
- package/web/dist/assets/SkillsView-CH2ghYL2.js +1 -0
- package/web/dist/assets/TemplatesTab-BGe7_67s.js +1 -0
- package/web/dist/assets/ThreadsView-XditIHZ4.js +2 -0
- package/web/dist/assets/ToolsView-BBzsFdVZ.js +1 -0
- package/web/dist/assets/abnfDiagram-WEYOIA3C-DGUPHfRO.js +1 -0
- package/web/dist/assets/agentIconSet-B5GUQwel.js +1 -0
- package/web/dist/assets/api-plEYhRn0.js +1 -0
- package/web/dist/assets/arc-Y1ARJVZ4.js +1 -0
- package/web/dist/assets/architecture-WOLXFQ4H-BUERx_-B.js +1 -0
- package/web/dist/assets/architectureDiagram-ZHVYKT53-BPsQL7O5.js +36 -0
- package/web/dist/assets/array-BifhSqXX.js +1 -0
- package/web/dist/assets/blockDiagram-RJAE7QA3-pB7EXp6p.js +140 -0
- package/web/dist/assets/c4Diagram-XDPPPE54-BnPeCq_L.js +38 -0
- package/web/dist/assets/channel-CSrLW66f.js +1 -0
- package/web/dist/assets/channelMeta-BGQXQxgj.js +1 -0
- package/web/dist/assets/chunk-2E7WHVMD-xX282MrC.js +88 -0
- package/web/dist/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/web/dist/assets/chunk-4EMNKR2T-BAQDLVqt.js +1 -0
- package/web/dist/assets/chunk-55XCU76K-BwAE3Eqq.js +1 -0
- package/web/dist/assets/{chunk-5VM5RSS4-CYl9mwa-.js → chunk-5VM5RSS4-ZNzvKenW.js} +2 -2
- package/web/dist/assets/chunk-7S6XSTFO-DwwaClMo.js +2 -0
- package/web/dist/assets/chunk-AQDTSKZB-DHG5Km_p.js +72 -0
- package/web/dist/assets/chunk-DSNLSHJZ-a6-B52h-.js +129 -0
- package/web/dist/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
- package/web/dist/assets/chunk-HAGFOTED-DZMcAj3o.js +62 -0
- package/web/dist/assets/chunk-HNE4Q36P-gl_4xI6B.js +1 -0
- package/web/dist/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
- package/web/dist/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/web/dist/assets/chunk-NGNAAXSQ-Bw6tHVuc.js +136 -0
- package/web/dist/assets/chunk-NQOKRVIF-B8Q-YmhL.js +213 -0
- package/web/dist/assets/chunk-UHW7PFBP-isP5lYMB.js +1 -0
- package/web/dist/assets/chunk-VQ5W62QI-Bn68syIc.js +1 -0
- package/web/dist/assets/chunk-WQQL4CDK-CdZpmEYA.js +10 -0
- package/web/dist/assets/chunk-XXDRQBXY-CnbRkih_.js +1 -0
- package/web/dist/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/web/dist/assets/chunk-YZO67HFG-DX9GhJkR.js +1 -0
- package/web/dist/assets/chunk-ZAUX2LTX-Ki22UlYp.js +1 -0
- package/web/dist/assets/chunk-ZCHMQSOR-BVj0Zx6L.js +2 -0
- package/web/dist/assets/classDiagram-v2-4MYWR3UA-C7PV1veb.js +217 -0
- package/web/dist/assets/common-Bbatsa0-.js +192 -0
- package/web/dist/assets/cose-bilkent-JH36ORCC-DHFtpmij.js +1 -0
- package/web/dist/assets/cynefin-EF2NZ3EQ-1rI2T0cc.js +1 -0
- package/web/dist/assets/cynefinDiagram-WF24UDRP-C8O_v8xU.js +62 -0
- package/web/dist/assets/cytoscape.esm-BY277UBX.js +321 -0
- package/web/dist/assets/dagre-NK4GIZVX-BWGoHIUd.js +4 -0
- package/web/dist/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/web/dist/assets/diagram-CBK3MWTC-kf9v35RN.js +24 -0
- package/web/dist/assets/diagram-I5XIIV2D-Ro-ig56_.js +24 -0
- package/web/dist/assets/diagram-ODIL2UCW-CtGga01G.js +30 -0
- package/web/dist/assets/diagram-PFBEJUXE-C14lcR-6.js +3 -0
- package/web/dist/assets/diagram-RJA3I4VV-BBbqaSKU.js +41 -0
- package/web/dist/assets/diagram-TYUNFSNR-BynvjQsr.js +200 -0
- package/web/dist/assets/dist-CumnGVmJ.js +1 -0
- package/web/dist/assets/ebnfDiagram-V4P3TTPT-BdqUCZnk.js +1 -0
- package/web/dist/assets/elk-QONTBCTQ-CYCP_9Jy.js +27 -0
- package/web/dist/assets/erDiagram-KYQIGQAA-C3L55l_F.js +99 -0
- package/web/dist/assets/eventmodeling-K75KTNOO-CTQdA_1v.js +1 -0
- package/web/dist/assets/flowDiagram-IUGLLWBU-COLKOzBg.js +1 -0
- package/web/dist/assets/ganttDiagram-R7GPNTJY-Be4Qk8Hx.js +292 -0
- package/web/dist/assets/gitGraph-VSP46ZUC-B59HXvj1.js +1 -0
- package/web/dist/assets/gitGraphDiagram-PDYL7XHY-C2A0VA6q.js +106 -0
- package/web/dist/assets/graphlib-DS17s2tU.js +1 -0
- package/web/dist/assets/icons-CYDRRPKW.js +1 -0
- package/web/dist/assets/index-CTbLW314.js +133 -0
- package/web/dist/assets/index-DdzVrZye.css +1 -0
- package/web/dist/assets/info-OHQRW6UA-DWlkKvmi.js +1 -0
- package/web/dist/assets/infoDiagram-MVDRKAX5-B8e6dTjN.js +2 -0
- package/web/dist/assets/init-C-OQMol4.js +1 -0
- package/web/dist/assets/ishikawaDiagram-HPEHV2GE-udXPYi9H.js +70 -0
- package/web/dist/assets/journeyDiagram-BOSHW7O7-DTyDkf5d.js +139 -0
- package/web/dist/assets/kanban-definition-FNSA4HC5-BXgV20qe.js +89 -0
- package/web/dist/assets/katex-B940_AAO.js +257 -0
- package/web/dist/assets/line-DVabuQAu.js +1 -0
- package/web/dist/assets/linear-gLkGxN9m.js +1 -0
- package/web/dist/assets/markdown-N5__3T-w.js +14 -0
- package/web/dist/assets/mermaid-parser.core-BrXnuEs7.js +7 -0
- package/web/dist/assets/mermaid.core-BGbz3k1k.js +44 -0
- package/web/dist/assets/mindmap-definition-6OY57UG3-DbtP-bmk.js +98 -0
- package/web/dist/assets/ordinal-BDEzSJ7C.js +1 -0
- package/web/dist/assets/packet-JDAUHWVQ-iW8w3JF5.js +1 -0
- package/web/dist/assets/panels-CIPgN61N.js +1 -0
- package/web/dist/assets/path-fybaL0A-.js +1 -0
- package/web/dist/assets/pegDiagram-ECIUJNBX-rBWJbaq4.js +1 -0
- package/web/dist/assets/pie-XZMESJXO-KHXEq-Yx.js +1 -0
- package/web/dist/assets/pieDiagram-GNMPY74T-DsW7yHm0.js +39 -0
- package/web/dist/assets/preload-helper-BLdHbfdN.js +1 -0
- package/web/dist/assets/profileChange-xrd7jkii.js +1 -0
- package/web/dist/assets/quadrantDiagram-D57K4MC3-DF_pwNhM.js +7 -0
- package/web/dist/assets/radar-ABXABTNO-BkAUJ_Zd.js +1 -0
- package/web/dist/assets/railroad-I3PHUGI6-BdnWRdGt.js +1 -0
- package/web/dist/assets/railroad-abnf-LNEFI6M7-C8K36-8b.js +1 -0
- package/web/dist/assets/railroad-ebnf-DWYD2UWJ-BlS25T3f.js +1 -0
- package/web/dist/assets/railroad-peg-JR7BVNR7-CBKGDi75.js +1 -0
- package/web/dist/assets/railroadDiagram-Y72NRBL7-DmrlMIvv.js +1 -0
- package/web/dist/assets/react-vendor-CB4cLN-6.js +19 -0
- package/web/dist/assets/requirementDiagram-EQYSW5RA-cvUq9H3I.js +84 -0
- package/web/dist/assets/rolldown-runtime-COiEfhsA.js +1 -0
- package/web/dist/assets/rough.esm-Dy-Kn_BL.js +1 -0
- package/web/dist/assets/sankeyDiagram-SY24JHO5-BdxXAbER.js +40 -0
- package/web/dist/assets/sequenceDiagram-BLEHNHQU-Druumi0k.js +169 -0
- package/web/dist/assets/settingsStore-Xqln0d91.js +1 -0
- package/web/dist/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
- package/web/dist/assets/src-49LUQhkG.js +1 -0
- package/web/dist/assets/src-BWF7jMDv.js +1 -0
- package/web/dist/assets/state-CSZ50keL.js +1 -0
- package/web/dist/assets/stateDiagram-v2-A6IESKWZ-Jgh6qlrr.js +291 -0
- package/web/dist/assets/sttLanguages-CSNMgUTz.js +2 -0
- package/web/dist/assets/swimlanes-B3ENRKFQ-4xKumvXQ.js +1 -0
- package/web/dist/assets/swimlanesDiagram-AYQRV4AK-bHcLKL3d.js +8 -0
- package/web/dist/assets/timeline-definition-JXYKGLGB-BYKhga9x.js +120 -0
- package/web/dist/assets/treeView-D4JQ5SDB-6-eTVUuH.js +1 -0
- package/web/dist/assets/treemap-SAJKECNS-Dxl8yCLE.js +1 -0
- package/web/dist/assets/ttsSettings-BwXYpDnk.js +2 -0
- package/web/dist/assets/types-JssxRFJn.js +1 -0
- package/web/dist/assets/useConfirm-Da8iQ_DZ.js +1 -0
- package/web/dist/assets/useTranslation-B-mfApCn.js +1 -0
- package/web/dist/assets/usecaseDiagram-WPOLBNNX-BaQ8nAv9.js +328 -0
- package/web/dist/assets/vennDiagram-Q3Y3IDCW-DkPvfmfT.js +34 -0
- package/web/dist/assets/wardley-7MLQ67FV-CZtI22aa.js +1 -0
- package/web/dist/assets/wardleyDiagram-IVAIDKWA-Dgi2OWQ4.js +78 -0
- package/web/dist/assets/websocket-BnDwh01e.js +1 -0
- package/web/dist/assets/whatsNewStore-LpdLRLGl.js +1 -0
- package/web/dist/assets/workspaceSemantics-RaIRer76.js +3 -0
- package/web/dist/assets/xychartDiagram-4URNHDU4-Ch96dep-.js +7 -0
- package/web/dist/favicon.svg +18 -39
- package/web/dist/icons/icon-1024.png +0 -0
- package/web/dist/icons/icon-180.png +0 -0
- package/web/dist/icons/icon-192.png +0 -0
- package/web/dist/icons/icon-512.png +0 -0
- package/web/dist/icons/icon-maskable-512.png +0 -0
- package/web/dist/index.html +46 -12
- package/web/dist/logo.svg +25 -39
- package/web/dist/manifest.webmanifest +2 -2
- package/web/dist/vendor/MANIFEST.json +24 -0
- package/web/dist/vendor/d3.min.js +2 -0
- package/web/dist/vendor/echarts.min.js +45 -0
- package/web/dist/assets/AssistantsView-BiUiWjhF.js +0 -1
- package/web/dist/assets/AutomationView-Dcf_yNaI.js +0 -1
- package/web/dist/assets/ChannelConfigView-BLnxsMGm.js +0 -8
- package/web/dist/assets/ConnectorsView-CX3E6X6c.js +0 -1
- package/web/dist/assets/DesignSystemView--x-P-lpD.js +0 -1
- package/web/dist/assets/Drawer-CjAgqH3B.js +0 -1
- package/web/dist/assets/FileTreeView-Chb_fzTK.js +0 -11
- package/web/dist/assets/HookConfigView-EafYlWdN.js +0 -1
- package/web/dist/assets/InputArea-BbHslX7b.js +0 -50
- package/web/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/web/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/web/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/web/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/web/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/web/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/web/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/web/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/web/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/web/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/web/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/web/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/web/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/web/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/web/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/web/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/web/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/web/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/web/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/web/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/web/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/web/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/web/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/web/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/web/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/web/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/web/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/web/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/web/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/web/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/web/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/web/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/web/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/web/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/web/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/web/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/web/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/web/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/web/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/web/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/web/dist/assets/ModelsView-CGN5Nljr.js +0 -1
- package/web/dist/assets/PluginsView-CDiJgvI8.js +0 -2
- package/web/dist/assets/ProjectsView-C5Usmwqy.js +0 -1
- package/web/dist/assets/SessionGrid-BGpz0-op.css +0 -1
- package/web/dist/assets/SessionGrid-Drxg0r_u.js +0 -4
- package/web/dist/assets/SettingsModal-Cmts6aBG.js +0 -10
- package/web/dist/assets/Skeleton-Dsk6B0U3.js +0 -1
- package/web/dist/assets/SkillsView-TEDR_3XX.js +0 -1
- package/web/dist/assets/TemplatesTab-DtN5Kdgh.js +0 -1
- package/web/dist/assets/ToolsView-VukZnIt1.js +0 -1
- package/web/dist/assets/VizCardsSkeleton-C_GaEfXd.js +0 -1
- package/web/dist/assets/abap-BdImnpbu.js +0 -1
- package/web/dist/assets/abnfDiagram-YUKMZFIV-BIFw6B_N.js +0 -1
- package/web/dist/assets/actionscript-3-B3316cI-.js +0 -1
- package/web/dist/assets/ada-bCR0ucgS.js +0 -1
- package/web/dist/assets/ahk-CsyLZFj1.js +0 -1
- package/web/dist/assets/ahk2-8Zs4aa1G.js +0 -1
- package/web/dist/assets/andromeeda-C4gqWexZ.js +0 -1
- package/web/dist/assets/angular-html-DA-rfuFy.js +0 -1
- package/web/dist/assets/angular-ts-BrjP3tb8.js +0 -1
- package/web/dist/assets/apache-Pmp26Uib.js +0 -1
- package/web/dist/assets/apex-DhZFqWV2.js +0 -1
- package/web/dist/assets/apl-CORt7UWP.js +0 -1
- package/web/dist/assets/applescript-Co6uUVPk.js +0 -1
- package/web/dist/assets/ara-BRHolxvo.js +0 -1
- package/web/dist/assets/arc-BZQ951h9.js +0 -1
- package/web/dist/assets/architectureDiagram-47P4ROYG-BP5qiXzf.js +0 -36
- package/web/dist/assets/asciidoc-CSVQ5wI8.js +0 -1
- package/web/dist/assets/asm-D_Q5rh1f.js +0 -1
- package/web/dist/assets/astro-HNnZUWAn.js +0 -1
- package/web/dist/assets/aurora-x-D-2ljcwZ.js +0 -1
- package/web/dist/assets/awk-DMzUqQB5.js +0 -1
- package/web/dist/assets/ayu-dark-DYE7WIF3.js +0 -1
- package/web/dist/assets/ayu-light-BA47KaF1.js +0 -1
- package/web/dist/assets/ayu-mirage-32ctXXKs.js +0 -1
- package/web/dist/assets/ballerina-BFfxhgS-.js +0 -1
- package/web/dist/assets/bat-CickPsom.js +0 -1
- package/web/dist/assets/beancount-k_qm7-4y.js +0 -1
- package/web/dist/assets/berry-uYugtg8r.js +0 -1
- package/web/dist/assets/bibtex-CHM0blh-.js +0 -1
- package/web/dist/assets/bicep-Bmn6On1c.js +0 -1
- package/web/dist/assets/bird2-Bx8U0n9b.js +0 -1
- package/web/dist/assets/blade-2xfisSek.js +0 -1
- package/web/dist/assets/blockDiagram-E7TT5TSB-DtRpcE7F.js +0 -140
- package/web/dist/assets/bsl-DlhNcFeZ.js +0 -1
- package/web/dist/assets/c-BIGW1oBm.js +0 -1
- package/web/dist/assets/c3-Dp5svz6Z.js +0 -1
- package/web/dist/assets/c4Diagram-CRA5TL53-Gdzn8UBh.js +0 -38
- package/web/dist/assets/cadence-Bv_4Rxtq.js +0 -1
- package/web/dist/assets/cairo-KRGpt6FW.js +0 -1
- package/web/dist/assets/catppuccin-frappe-CZL1YF0i.js +0 -1
- package/web/dist/assets/catppuccin-latte-DH-8KZSZ.js +0 -1
- package/web/dist/assets/catppuccin-macchiato-B7yYVSCf.js +0 -1
- package/web/dist/assets/catppuccin-mocha-Ct7hS0mc.js +0 -1
- package/web/dist/assets/channel-BND6_KSH.js +0 -1
- package/web/dist/assets/chapel-DTp_pixX.js +0 -1
- package/web/dist/assets/chunk-2Q5K7J3B-3U6HMlsm.js +0 -1
- package/web/dist/assets/chunk-7TKQ45FW-Dn6ktcY5.js +0 -1
- package/web/dist/assets/chunk-AW2ZBBNX-De0QX6p1.js +0 -88
- package/web/dist/assets/chunk-FVRAUYC3-CpXDfvz4.js +0 -2
- package/web/dist/assets/chunk-HTAEGDNF-D1KDvcDd.js +0 -1
- package/web/dist/assets/chunk-JWPE2WC7-umm4A-fq.js +0 -1
- package/web/dist/assets/chunk-KQW6MTUR-JYH94hpE.js +0 -1
- package/web/dist/assets/chunk-XXDRQBXY-CSlCFByc.js +0 -1
- package/web/dist/assets/clarity-Dn5IMItf.js +0 -1
- package/web/dist/assets/classDiagram-v2-K4WV4PDN-DnFwS0qN.js +0 -217
- package/web/dist/assets/clojure-P80f7IUj.js +0 -1
- package/web/dist/assets/cmake-D1j8_8rp.js +0 -1
- package/web/dist/assets/cobol-nBiQ_Alo.js +0 -1
- package/web/dist/assets/codeowners-Bp6g37R7.js +0 -1
- package/web/dist/assets/codeql-DsOJ9woJ.js +0 -1
- package/web/dist/assets/coffee-Ch7k5sss.js +0 -1
- package/web/dist/assets/common-lisp-Cg-RD9OK.js +0 -1
- package/web/dist/assets/coq-C7JzOVbR.js +0 -1
- package/web/dist/assets/cose-bilkent-JH36ORCC-BxUTUyep.js +0 -1
- package/web/dist/assets/cpp-BMRokrvK.js +0 -1
- package/web/dist/assets/crystal-DGywbUpC.js +0 -1
- package/web/dist/assets/csharp-DSvCPggb.js +0 -1
- package/web/dist/assets/css-CLj8gQPS.js +0 -1
- package/web/dist/assets/csv-fuZLfV_i.js +0 -1
- package/web/dist/assets/cue-D82EKSYY.js +0 -1
- package/web/dist/assets/cynefin-EF2NZ3EQ-CiMvulJr.js +0 -141
- package/web/dist/assets/cynefinDiagram-3GCD6N5R-DuXFORdW.js +0 -62
- package/web/dist/assets/cypher-COkxafJQ.js +0 -1
- package/web/dist/assets/cytoscape.esm-Ix0LnXOy.js +0 -331
- package/web/dist/assets/d-85-TOEBH.js +0 -1
- package/web/dist/assets/dagre-W4DXFKR2-DzMZHXci.js +0 -4
- package/web/dist/assets/dark-plus-C3mMm8J8.js +0 -1
- package/web/dist/assets/dart-bE4Kk8sk.js +0 -1
- package/web/dist/assets/dax-CEL-wOlO.js +0 -1
- package/web/dist/assets/defaultLocale-DX6XiGOO.js +0 -1
- package/web/dist/assets/desktop-BmXAJ9_W.js +0 -1
- package/web/dist/assets/diagram-2UJZ2QOL-B6tO5G1v.js +0 -200
- package/web/dist/assets/diagram-OVF4WLC6-DRZt8tGc.js +0 -24
- package/web/dist/assets/diagram-PFPMY2P6-DGh6IecR.js +0 -30
- package/web/dist/assets/diagram-UMYRVEAY-BLbnt0yT.js +0 -24
- package/web/dist/assets/diagram-YEKJPTXX-C-S5DVhj.js +0 -41
- package/web/dist/assets/diagram-ZIFT7M5P-JrGHTWbo.js +0 -3
- package/web/dist/assets/diff-D97Zzqfu.js +0 -1
- package/web/dist/assets/docker-BcOcwvcX.js +0 -1
- package/web/dist/assets/dotenv-Da5cRb03.js +0 -1
- package/web/dist/assets/dracula-BzJJZx-M.js +0 -1
- package/web/dist/assets/dracula-soft-BXkSAIEj.js +0 -1
- package/web/dist/assets/dream-maker-BtqSS_iP.js +0 -1
- package/web/dist/assets/ebnfDiagram-VR2GEFS7-DPXA-YOi.js +0 -1
- package/web/dist/assets/edge-FbVlp4U3.js +0 -1
- package/web/dist/assets/elixir-CkH2-t6x.js +0 -1
- package/web/dist/assets/elk-IJKZMXRS-CINeWt2W.js +0 -27
- package/web/dist/assets/elm-DbKCFpqz.js +0 -1
- package/web/dist/assets/emacs-lisp-C_m_b--Z.js +0 -1
- package/web/dist/assets/erDiagram-O2IAPWRE-PPaHmqA1.js +0 -99
- package/web/dist/assets/erb-DXfck5VN.js +0 -1
- package/web/dist/assets/erlang-DsQrWhSR.js +0 -1
- package/web/dist/assets/everforest-dark-BgDCqdQA.js +0 -1
- package/web/dist/assets/everforest-light-C8M2exoo.js +0 -1
- package/web/dist/assets/fennel-BYunw83y.js +0 -1
- package/web/dist/assets/fish-BvzEVeQv.js +0 -1
- package/web/dist/assets/flowDiagram-OXPTDLAJ-t-u0QXEA.js +0 -213
- package/web/dist/assets/fluent-C4IJs8-o.js +0 -1
- package/web/dist/assets/fortran-fixed-form-CkoXwp7k.js +0 -1
- package/web/dist/assets/fortran-free-form-BxgE0vQu.js +0 -1
- package/web/dist/assets/fsharp-CXgrBDvD.js +0 -1
- package/web/dist/assets/ganttDiagram-R7TSEDQI-Bw49ZD_b.js +0 -292
- package/web/dist/assets/gdresource-TyuKm33G.js +0 -1
- package/web/dist/assets/gdscript-DqcFQ5yU.js +0 -1
- package/web/dist/assets/gdshader-DkwncUOv.js +0 -1
- package/web/dist/assets/genie-D0YGMca9.js +0 -1
- package/web/dist/assets/gherkin-DyxjwDmM.js +0 -1
- package/web/dist/assets/git-commit-F4YmCXRG.js +0 -1
- package/web/dist/assets/git-rebase-r7XF79zn.js +0 -1
- package/web/dist/assets/gitGraphDiagram-XJZIOB7I-BAfOqeeg.js +0 -106
- package/web/dist/assets/github-dark-DHJKELXO.js +0 -1
- package/web/dist/assets/github-dark-default-Cuk6v7N8.js +0 -1
- package/web/dist/assets/github-dark-dimmed-DH5Ifo-i.js +0 -1
- package/web/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -1
- package/web/dist/assets/github-light-DAi9KRSo.js +0 -1
- package/web/dist/assets/github-light-default-D7oLnXFd.js +0 -1
- package/web/dist/assets/github-light-high-contrast-BfjtVDDH.js +0 -1
- package/web/dist/assets/gleam-BspZqrRM.js +0 -1
- package/web/dist/assets/glimmer-js-ByusRIyA.js +0 -1
- package/web/dist/assets/glimmer-ts-BfAWNZQY.js +0 -1
- package/web/dist/assets/glsl-DplSGwfg.js +0 -1
- package/web/dist/assets/gn-n2N0HUVH.js +0 -1
- package/web/dist/assets/gnuplot-DdkO51Og.js +0 -1
- package/web/dist/assets/go-C27-OAKa.js +0 -1
- package/web/dist/assets/graph-Bn3Yngep.js +0 -1
- package/web/dist/assets/graphql-ChdNCCLP.js +0 -1
- package/web/dist/assets/groovy-gcz8RCvz.js +0 -1
- package/web/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -1
- package/web/dist/assets/gruvbox-dark-medium-GsRaNv29.js +0 -1
- package/web/dist/assets/gruvbox-dark-soft-CVdnzihN.js +0 -1
- package/web/dist/assets/gruvbox-light-hard-CH1njM8p.js +0 -1
- package/web/dist/assets/gruvbox-light-medium-DRw_LuNl.js +0 -1
- package/web/dist/assets/gruvbox-light-soft-hJgmCMqR.js +0 -1
- package/web/dist/assets/hack-BWmVpMyf.js +0 -1
- package/web/dist/assets/haml-D5jkg6IW.js +0 -1
- package/web/dist/assets/handlebars-BpdQsYii.js +0 -1
- package/web/dist/assets/haskell-Df6bDoY_.js +0 -1
- package/web/dist/assets/haxe-CfZj7gIn.js +0 -1
- package/web/dist/assets/hcl-BWvSN4gD.js +0 -1
- package/web/dist/assets/hjson-D5-asLiD.js +0 -1
- package/web/dist/assets/hlsl-D3lLCCz7.js +0 -1
- package/web/dist/assets/horizon-BUw7H-hv.js +0 -1
- package/web/dist/assets/horizon-bright-CUuTKBJd.js +0 -1
- package/web/dist/assets/houston-DnULxvSX.js +0 -1
- package/web/dist/assets/html-derivative-DlHx6ybY.js +0 -1
- package/web/dist/assets/html-pp8916En.js +0 -1
- package/web/dist/assets/http-jrhK8wxY.js +0 -1
- package/web/dist/assets/hurl-irOxFIW8.js +0 -1
- package/web/dist/assets/hxml-2-FPmUDs.js +0 -1
- package/web/dist/assets/hy-DFXneXwc.js +0 -1
- package/web/dist/assets/icons-Bm_ZzSAy.js +0 -964
- package/web/dist/assets/imba-DGztddWO.js +0 -1
- package/web/dist/assets/index-CeeLdENM.js +0 -677
- package/web/dist/assets/index-Ceez9lYk.css +0 -1
- package/web/dist/assets/infoDiagram-5W2HQ5XZ-Bv4RBxYW.js +0 -2
- package/web/dist/assets/ini-BEwlwnbL.js +0 -1
- package/web/dist/assets/init-Gi6I4Gst.js +0 -1
- package/web/dist/assets/ishikawaDiagram-K3B6WC7H-DEpj0bRp.js +0 -70
- package/web/dist/assets/java-CylS5w8V.js +0 -1
- package/web/dist/assets/javascript-wDzz0qaB.js +0 -1
- package/web/dist/assets/jinja-f2NsQr07.js +0 -1
- package/web/dist/assets/jison-wvAkD_A8.js +0 -1
- package/web/dist/assets/journeyDiagram-COXZFDF6-MJu84Iiz.js +0 -139
- package/web/dist/assets/json-Cp-IABpG.js +0 -1
- package/web/dist/assets/json5-C9tS-k6U.js +0 -1
- package/web/dist/assets/jsonc-Des-eS-w.js +0 -1
- package/web/dist/assets/jsonl-DcaNXYhu.js +0 -1
- package/web/dist/assets/jsonnet-DFQXde-d.js +0 -1
- package/web/dist/assets/jssm-C2t-YnRu.js +0 -1
- package/web/dist/assets/jsx-g9-lgVsj.js +0 -1
- package/web/dist/assets/julia-5Bft2YPA.js +0 -1
- package/web/dist/assets/just-Cwhn7H3k.js +0 -1
- package/web/dist/assets/kanagawa-dragon-BuwD2xS4.js +0 -1
- package/web/dist/assets/kanagawa-lotus-C3DzagqV.js +0 -1
- package/web/dist/assets/kanagawa-wave-DFGoQZhC.js +0 -1
- package/web/dist/assets/kanban-definition-P3RFRI5V-mlYSRALK.js +0 -89
- package/web/dist/assets/kdl-DV7GczEv.js +0 -1
- package/web/dist/assets/kotlin-BdnUsdx6.js +0 -1
- package/web/dist/assets/kusto-wEQ09or8.js +0 -1
- package/web/dist/assets/laserwave-DUszq2jm.js +0 -1
- package/web/dist/assets/latex-D5pSuvFb.js +0 -1
- package/web/dist/assets/lean-BZvkOJ9d.js +0 -1
- package/web/dist/assets/less-B1dDrJ26.js +0 -1
- package/web/dist/assets/light-plus-B7mTdjB0.js +0 -1
- package/web/dist/assets/linear-5j9gt8MV.js +0 -1
- package/web/dist/assets/liquid-C0sCDyMI.js +0 -1
- package/web/dist/assets/llvm-BZoOZj88.js +0 -1
- package/web/dist/assets/log-2UxHyX5q.js +0 -1
- package/web/dist/assets/logo-BtOb2qkB.js +0 -1
- package/web/dist/assets/lua-BaeVxFsk.js +0 -1
- package/web/dist/assets/luau-BnpPk5vE.js +0 -1
- package/web/dist/assets/make-CHLpvVh8.js +0 -1
- package/web/dist/assets/markdown-BWXjRrSw.js +0 -30
- package/web/dist/assets/markdown-Cvjx9yec.js +0 -1
- package/web/dist/assets/marko-DjSrsDqO.js +0 -1
- package/web/dist/assets/material-theme-D5KoaKCx.js +0 -1
- package/web/dist/assets/material-theme-darker-BfHTSMKl.js +0 -1
- package/web/dist/assets/material-theme-lighter-B0m2ddpp.js +0 -1
- package/web/dist/assets/material-theme-ocean-CyktbL80.js +0 -1
- package/web/dist/assets/material-theme-palenight-Csfq5Kiy.js +0 -1
- package/web/dist/assets/matlab-D7o27uSR.js +0 -1
- package/web/dist/assets/mdc-D1_yUvq7.js +0 -1
- package/web/dist/assets/mdx-Cmh6b_Ma.js +0 -1
- package/web/dist/assets/mermaid-CQcHuHx7.js +0 -1
- package/web/dist/assets/mermaid.core-DLb6eAON.js +0 -314
- package/web/dist/assets/min-dark-CafNBF8u.js +0 -1
- package/web/dist/assets/min-light-CTRr51gU.js +0 -1
- package/web/dist/assets/mindmap-definition-LZFPQGKD-C9v_57Ex.js +0 -96
- package/web/dist/assets/mipsasm-CKIfxQSi.js +0 -1
- package/web/dist/assets/mojo-DJz3ZmWd.js +0 -1
- package/web/dist/assets/monokai-BRVnQi9A.js +0 -1
- package/web/dist/assets/moonbit-CHtswR0a.js +0 -1
- package/web/dist/assets/move-el3G9tDJ.js +0 -1
- package/web/dist/assets/narrat-DRg8JJMk.js +0 -1
- package/web/dist/assets/nextflow-C-mBbutL.js +0 -1
- package/web/dist/assets/nextflow-groovy-vE_lwT2v.js +0 -1
- package/web/dist/assets/nginx-BpAMiNFr.js +0 -1
- package/web/dist/assets/night-owl-C39BiMTA.js +0 -1
- package/web/dist/assets/night-owl-light-CMTm3GFP.js +0 -1
- package/web/dist/assets/nim-BIad80T-.js +0 -1
- package/web/dist/assets/nix-CwoSXNpI.js +0 -1
- package/web/dist/assets/nord-Ddv68eIx.js +0 -1
- package/web/dist/assets/nsis-BlV79W_Q.js +0 -1
- package/web/dist/assets/nushell-D3jzshHO.js +0 -1
- package/web/dist/assets/objective-c-DXmwc3jG.js +0 -1
- package/web/dist/assets/objective-cpp-CLxacb5B.js +0 -1
- package/web/dist/assets/ocaml-C0hk2d4L.js +0 -1
- package/web/dist/assets/odin-BBf5iR-q.js +0 -1
- package/web/dist/assets/one-dark-pro-DVMEJ2y_.js +0 -1
- package/web/dist/assets/one-light-C3Wv6jpd.js +0 -1
- package/web/dist/assets/openscad-C4EeE6gA.js +0 -1
- package/web/dist/assets/ordinal-Cboi1Yqb.js +0 -1
- package/web/dist/assets/org-DM6o9KBp.js +0 -1
- package/web/dist/assets/panels-BQOvnbWH.js +0 -1
- package/web/dist/assets/pascal-D93ZcfNL.js +0 -1
- package/web/dist/assets/pegDiagram-BGZESJAR-KQP26s3-.js +0 -1
- package/web/dist/assets/perl-B9cMNwum.js +0 -1
- package/web/dist/assets/php-Csjmro_R.js +0 -1
- package/web/dist/assets/pieDiagram-CAPJLFHJ-DN3RQ_ih.js +0 -39
- package/web/dist/assets/pkl-u5AG7uiY.js +0 -1
- package/web/dist/assets/plastic-3e1v2bzS.js +0 -1
- package/web/dist/assets/plsql-ChMvpjG-.js +0 -1
- package/web/dist/assets/po-BTJTHyun.js +0 -1
- package/web/dist/assets/poimandres-CS3Unz2-.js +0 -1
- package/web/dist/assets/polar-C0HS_06l.js +0 -1
- package/web/dist/assets/postcss-CXtECtnM.js +0 -1
- package/web/dist/assets/powerquery-CEu0bR-o.js +0 -1
- package/web/dist/assets/powershell-BmBUJMz7.js +0 -1
- package/web/dist/assets/prisma-Vru482bI.js +0 -1
- package/web/dist/assets/profileChange-B7TaQ18u.js +0 -1
- package/web/dist/assets/prolog-CbFg5uaA.js +0 -1
- package/web/dist/assets/proto-C7zT0LnQ.js +0 -1
- package/web/dist/assets/pug-DKIMFp6K.js +0 -1
- package/web/dist/assets/puppet-BMWR74SV.js +0 -1
- package/web/dist/assets/purescript-CklMAg4u.js +0 -1
- package/web/dist/assets/python-B6aJPvgy.js +0 -1
- package/web/dist/assets/qml-3beO22l8.js +0 -1
- package/web/dist/assets/qmldir-C8lEn-DE.js +0 -1
- package/web/dist/assets/qss-IeuSbFQv.js +0 -1
- package/web/dist/assets/quadrantDiagram-GDMTTRAM-BpL_ZL76.js +0 -7
- package/web/dist/assets/r-Cf5RLm7j.js +0 -1
- package/web/dist/assets/racket-BqYA7rlc.js +0 -1
- package/web/dist/assets/railroadDiagram-SM67HX2B-DZ-fPU85.js +0 -1
- package/web/dist/assets/raku-DXvB9xmW.js +0 -1
- package/web/dist/assets/razor-BjBPvh-w.js +0 -1
- package/web/dist/assets/rbs-CpoqiR4B.js +0 -1
- package/web/dist/assets/react-vendor-C0HIWSpf.js +0 -9
- package/web/dist/assets/red-hvxz__6c.js +0 -1
- package/web/dist/assets/reg-C-SQnVFl.js +0 -1
- package/web/dist/assets/regexp-CDVJQ6XC.js +0 -1
- package/web/dist/assets/rel-C3B-1QV4.js +0 -1
- package/web/dist/assets/requirementDiagram-X7JNWC4A-mKPGj64L.js +0 -84
- package/web/dist/assets/riscv-BM1_JUlF.js +0 -1
- package/web/dist/assets/ron-D8l8udqQ.js +0 -1
- package/web/dist/assets/rose-pine-5qJOZa0Y.js +0 -1
- package/web/dist/assets/rose-pine-dawn-zx0QlTCp.js +0 -1
- package/web/dist/assets/rose-pine-moon-C9pEdX9L.js +0 -1
- package/web/dist/assets/rosmsg-BJDFO7_C.js +0 -1
- package/web/dist/assets/rst-bs7f0vWN.js +0 -1
- package/web/dist/assets/ruby-C0TQ7zu5.js +0 -1
- package/web/dist/assets/rust-B1yitclQ.js +0 -1
- package/web/dist/assets/sankeyDiagram-UM26HJRW-Bs4xfjQP.js +0 -40
- package/web/dist/assets/sas-DEy46yEz.js +0 -1
- package/web/dist/assets/sass-Cj5Yp3dK.js +0 -1
- package/web/dist/assets/scala-CqE71os6.js +0 -1
- package/web/dist/assets/scheme-C98Dy4si.js +0 -1
- package/web/dist/assets/scss-D5BDwBP9.js +0 -1
- package/web/dist/assets/sdbl-DVxCFoDh.js +0 -1
- package/web/dist/assets/sequenceDiagram-ZO4K6R2Y-BjUmzZaO.js +0 -169
- package/web/dist/assets/shaderlab-Dg9Lc6iA.js +0 -1
- package/web/dist/assets/shellscript-Yzrsuije.js +0 -1
- package/web/dist/assets/shellsession-BADoaaVG.js +0 -1
- package/web/dist/assets/sizeCapture-INFHLROL-BXBM3j_Q.js +0 -1
- package/web/dist/assets/slack-dark-BthQWCQV.js +0 -1
- package/web/dist/assets/slack-ochin-DqwNpetd.js +0 -1
- package/web/dist/assets/smalltalk-BOQMe2GC.js +0 -1
- package/web/dist/assets/smithy-cds9vsN8.js +0 -1
- package/web/dist/assets/snazzy-light-Bw305WKR.js +0 -1
- package/web/dist/assets/solarized-dark-CpvCGNkr.js +0 -1
- package/web/dist/assets/solarized-light-Dlz6yCKv.js +0 -1
- package/web/dist/assets/solidity-DijEV5ha.js +0 -1
- package/web/dist/assets/soy-8wufbnw4.js +0 -1
- package/web/dist/assets/sparql-rVzFXLq3.js +0 -1
- package/web/dist/assets/splunk-BtCnVYZw.js +0 -1
- package/web/dist/assets/sql-CRqJ_cUM.js +0 -1
- package/web/dist/assets/ssh-config-_ykCGR6B.js +0 -1
- package/web/dist/assets/stata-DI20mbqo.js +0 -1
- package/web/dist/assets/state-Kfon1nTr.js +0 -17
- package/web/dist/assets/stateDiagram-v2-TBUQTH76-FGgFDGUU.js +0 -291
- package/web/dist/assets/sttLanguages-C7kVulzY.js +0 -1
- package/web/dist/assets/stylus-BEDo0Tqx.js +0 -1
- package/web/dist/assets/surrealql-Cjom0U5J.js +0 -1
- package/web/dist/assets/svelte-Cy7k_4gC.js +0 -1
- package/web/dist/assets/swift-C2oV4EkX.js +0 -1
- package/web/dist/assets/swimlanes-N4OXWK64-wkd_n4HU.js +0 -1
- package/web/dist/assets/swimlanesDiagram-K3J5GTZL-CKnwEuq_.js +0 -8
- package/web/dist/assets/synthwave-84-CbfX1IO0.js +0 -1
- package/web/dist/assets/system-verilog-0hqHdDBg.js +0 -1
- package/web/dist/assets/systemd-4A_iFExJ.js +0 -1
- package/web/dist/assets/talonscript-CkByrt1z.js +0 -1
- package/web/dist/assets/tasl-QIJgUcNo.js +0 -1
- package/web/dist/assets/tcl-dwOrl1Do.js +0 -1
- package/web/dist/assets/templ-DhtptRzy.js +0 -1
- package/web/dist/assets/terraform-BETggiCN.js +0 -1
- package/web/dist/assets/tex-D96PA37w.js +0 -1
- package/web/dist/assets/timeline-definition-YOQAKGHF-DyBln1jw.js +0 -120
- package/web/dist/assets/tokyo-night-hegEt444.js +0 -1
- package/web/dist/assets/toml-vGWfd6FD.js +0 -1
- package/web/dist/assets/ts-tags-D351s5mN.js +0 -1
- package/web/dist/assets/tsv-B_m7g4N7.js +0 -1
- package/web/dist/assets/tsx-COt5Ahok.js +0 -1
- package/web/dist/assets/turtle-BsS91CYL.js +0 -1
- package/web/dist/assets/twig-27uCiNez.js +0 -1
- package/web/dist/assets/typescript-BPQ3VLAy.js +0 -1
- package/web/dist/assets/typespec-CAFt9gP4.js +0 -1
- package/web/dist/assets/typst-BUadGCkm.js +0 -1
- package/web/dist/assets/usecaseDiagram-VIAY4XPW-Cqis3XHX.js +0 -370
- package/web/dist/assets/v-BGw2Nkan.js +0 -1
- package/web/dist/assets/vala-CsfeWuGM.js +0 -1
- package/web/dist/assets/vb-Cu-pLBUe.js +0 -1
- package/web/dist/assets/vennDiagram-BLWOH2XV-BaiFLOVS.js +0 -34
- package/web/dist/assets/verilog-nZwndyjY.js +0 -1
- package/web/dist/assets/vesper-DRje8inN.js +0 -1
- package/web/dist/assets/vhdl-CeAyd5Ju.js +0 -1
- package/web/dist/assets/viml-CJc9bBzg.js +0 -1
- package/web/dist/assets/vitesse-black-Bkuqu6BP.js +0 -1
- package/web/dist/assets/vitesse-dark-D0r3Knsf.js +0 -1
- package/web/dist/assets/vitesse-light-CVO1_9PV.js +0 -1
- package/web/dist/assets/vue-BqiEGhQt.js +0 -1
- package/web/dist/assets/vue-html-AaS7Mt5G.js +0 -1
- package/web/dist/assets/vue-vine-BoDAl6tE.js +0 -1
- package/web/dist/assets/vyper-CDx5xZoG.js +0 -1
- package/web/dist/assets/wardleyDiagram-YMQ3BMBF-C4CzpJto.js +0 -78
- package/web/dist/assets/wasm-CG6Dc4jp.js +0 -1
- package/web/dist/assets/wasm-MzD3tlZU.js +0 -1
- package/web/dist/assets/wenyan-BV7otONQ.js +0 -1
- package/web/dist/assets/wgsl-Dx-B1_4e.js +0 -1
- package/web/dist/assets/wikitext-BhOHFoWU.js +0 -1
- package/web/dist/assets/wit-5i3qLPDT.js +0 -1
- package/web/dist/assets/wolfram-lXgVvXCa.js +0 -1
- package/web/dist/assets/xml-sdJ4AIDG.js +0 -1
- package/web/dist/assets/xsl-CtQFsRM5.js +0 -1
- package/web/dist/assets/xychartDiagram-TAQBALBS-Dp1hfe3-.js +0 -7
- package/web/dist/assets/yaml-Buea-lGh.js +0 -1
- package/web/dist/assets/zenscript-DVFEvuxE.js +0 -1
- package/web/dist/assets/zig-VOosw3JB.js +0 -1
- package/web/dist/figma-demo/product-1.jpg +0 -0
- package/web/dist/figma-demo/product-2.jpg +0 -0
- package/web/dist/figma-demo/trail-1.jpg +0 -0
- package/web/dist/figma-demo/trail-2.jpg +0 -0
- package/web/dist/figma-demo/trail-3.jpg +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{Dn as t,Kr as n,S as r,Sr as i,Wn as a,Z as o,_ as s,fn as c,h as l,lt as u,m as d,n as f,nt as p,t as m,v as h,w as g,wr as _,xr as v,y}from"./icons-CYDRRPKW.js";import{t as b}from"./useTranslation-B-mfApCn.js";import{a as x,n as ee,r as S,s as C}from"./useConfirm-Da8iQ_DZ.js";import{t as w}from"./api-plEYhRn0.js";import{I as T}from"./markdown-N5__3T-w.js";import{a as te,c as E,f as ne,o as D,s as re}from"./common-Bbatsa0-.js";var O=e(n(),1),k=T();function ie(){let{t:e}=b(),[t,n]=(0,O.useState)([]),[r,i]=(0,O.useState)(!0),[a,o]=(0,O.useState)(null),[s,d]=(0,O.useState)(null),[m,h]=(0,O.useState)(!1),[g,v]=(0,O.useState)({skillName:``,description:``,trigger:``,content:``}),[y,ee]=(0,O.useState)(!1),[S,C]=(0,O.useState)(null),T=(0,O.useCallback)(async()=>{i(!0);try{let e=await w.skills.workshop.list();n(e.data??[]),o(null)}catch(e){o(e instanceof Error?e.message:String(e))}finally{i(!1)}},[]);(0,O.useEffect)(()=>{T()},[T]);let te=async e=>{d(e);try{await w.skills.workshop.apply(e),await T()}catch(e){o(e instanceof Error?e.message:String(e))}finally{d(null)}},E=async e=>{d(e);try{await w.skills.workshop.reject(e),await T()}catch(e){o(e instanceof Error?e.message:String(e))}finally{d(null)}};return(0,k.jsxs)(`div`,{className:`flex-1 min-h-0 overflow-y-auto custom-scrollbar pe-1 space-y-3`,children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,k.jsx)(`div`,{className:`text-xs text-dark-muted`,children:e(`skills.workshopHint`)||`技能提案:从会话/手动生成,审核后一键应用为技能`}),(0,k.jsx)(x,{variant:`accent`,leftIcon:(0,k.jsx)(u,{size:14}),onClick:()=>{h(e=>!e),C(null)},children:e(`skills.workshopPropose`)||`新建提案`})]}),m&&(0,k.jsxs)(`div`,{className:`rounded-xl border border-dark-border bg-dark-surface p-3 space-y-2`,children:[(0,k.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,k.jsx)(`input`,{value:g.skillName,onChange:e=>v(t=>({...t,skillName:e.target.value})),placeholder:e(`skills.workshopName`)||`技能名 (skill-name) 如 format-json`,className:`px-3 py-2 rounded-lg bg-dark-bg border border-dark-border outline-none focus:border-accent-blue text-sm`}),(0,k.jsx)(`input`,{value:g.trigger,onChange:e=>v(t=>({...t,trigger:e.target.value})),placeholder:e(`skills.workshopTrigger`)||`触发关键词(可选)`,className:`px-3 py-2 rounded-lg bg-dark-bg border border-dark-border outline-none focus:border-accent-blue text-sm`})]}),(0,k.jsx)(`input`,{value:g.description,onChange:e=>v(t=>({...t,description:e.target.value})),placeholder:e(`skills.workshopDescription`)||`一句话描述`,className:`w-full px-3 py-2 rounded-lg bg-dark-bg border border-dark-border outline-none focus:border-accent-blue text-sm`}),(0,k.jsx)(`textarea`,{value:g.content,onChange:e=>v(t=>({...t,content:e.target.value})),placeholder:e(`skills.workshopContent`)||`技能正文(系统提示 / 工作流指令)`,rows:5,className:`w-full px-3 py-2 rounded-lg bg-dark-bg border border-dark-border outline-none focus:border-accent-blue text-sm resize-y`}),S&&(0,k.jsx)(`div`,{className:`text-xs text-accent-red`,children:S}),(0,k.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,k.jsx)(`button`,{onClick:()=>h(!1),className:`px-3 py-1.5 rounded-lg text-sm border border-dark-border hover:bg-dark-hover`,children:e(`common.cancel`)||`取消`}),(0,k.jsx)(x,{variant:`accent`,leftIcon:(0,k.jsx)(_,{size:14}),loading:y,onClick:async()=>{if(!g.skillName.trim()||!g.content.trim())C(e(`skills.workshopFormRequired`)||`skillName and content are required`);else{ee(!0),C(null);try{await w.skills.workshop.propose({skillName:g.skillName.trim(),description:g.description.trim(),trigger:g.trigger.trim(),content:g.content.trim(),reason:`manual proposal`}),v({skillName:``,description:``,trigger:``,content:``}),h(!1),await T()}catch(e){C(e instanceof Error?e.message:String(e))}finally{ee(!1)}}},children:e(`skills.workshopSubmit`)||`提交提案`})]})]}),a&&(0,k.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 rounded-lg bg-accent-red/10 text-accent-red text-sm`,children:[(0,k.jsx)(l,{size:14,className:`shrink-0`}),(0,k.jsx)(`span`,{className:`min-w-0 flex-1`,children:a}),(0,k.jsx)(`button`,{onClick:()=>o(null),className:`shrink-0 p-0.5 rounded hover:bg-dark-hover`,children:(0,k.jsx)(f,{size:14})})]}),r?(0,k.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,k.jsx)(p,{size:24,className:`animate-spin text-accent-blue`})}):t.length===0?(0,k.jsx)(`div`,{className:`text-sm text-dark-muted py-10 text-center`,children:e(`skills.workshopEmpty`)||`暂无技能提案`}):t.map(t=>(0,k.jsxs)(`div`,{className:`rounded-xl border border-dark-border bg-dark-surface p-3 space-y-1.5`,children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,k.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,k.jsx)(c,{size:14,className:`text-accent-blue shrink-0`}),(0,k.jsx)(`span`,{className:`font-medium text-sm truncate`,children:t.skillName}),(0,k.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded-full shrink-0 ${t.status===`applied`?`bg-accent-green/15 text-accent-green`:t.status===`rejected`?`bg-dark-hover text-dark-muted`:`bg-accent-yellow/15 text-accent-yellow`}`,children:t.status})]}),(0,k.jsx)(`div`,{className:`flex items-center gap-1 shrink-0`,children:t.status===`pending`&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(`button`,{onClick:()=>te(t.id),disabled:s===t.id,className:`px-2 py-1 bg-accent-green text-accent-fg rounded text-xs flex items-center gap-1 disabled:opacity-50`,children:[(0,k.jsx)(_,{size:12}),e(`skills.workshopApply`)||`应用`]}),(0,k.jsx)(`button`,{onClick:()=>E(t.id),disabled:s===t.id,className:`px-2 py-1 rounded text-xs border border-dark-border hover:bg-dark-hover disabled:opacity-50`,children:(0,k.jsx)(f,{size:12})})]})})]}),t.description&&(0,k.jsx)(`div`,{className:`text-xs text-dark-muted truncate`,children:t.description}),t.trigger&&(0,k.jsxs)(`div`,{className:`text-xs text-accent-blue`,children:[`trigger: `,t.trigger]}),(0,k.jsx)(`div`,{className:`text-xs text-dark-muted line-clamp-3 whitespace-pre-wrap`,children:t.content}),(0,k.jsxs)(`div`,{className:`text-meta text-dark-muted/70 flex items-center justify-between`,children:[(0,k.jsx)(`span`,{children:t.reason}),(0,k.jsx)(`span`,{children:new Date(t.createdAt).toLocaleString()})]})]},t.id))]})}var ae=/^(https?:|data:)/i;function A({icon:e,className:t=`w-4 h-4 rounded object-cover shrink-0`}){return e&&ae.test(e)?(0,k.jsx)(`img`,{src:e,alt:``,loading:`lazy`,className:t}):(0,k.jsx)(`span`,{children:e||`⭐`})}function oe({marketplaces:e,value:t,onChange:n}){let{t:r}=b(),i=Array.from(new Map(e.filter(e=>e.domain).map(e=>[e.domain,e.domainIcon||`📁`])).entries());return i.length===0?null:(0,k.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[{id:``,icon:`🗂️`},...i.map(([e,t])=>({id:e,icon:t}))].map(e=>(0,k.jsxs)(`button`,{onClick:()=>n(e.id),className:`flex items-center gap-1 px-2.5 py-1 rounded-full border text-xs transition-colors ${t===e.id?`border-accent-blue bg-accent-blue/15 text-accent-blue`:`border-dark-border bg-dark-surface text-dark-muted hover:bg-dark-hover`}`,children:[(0,k.jsx)(A,{icon:e.icon,className:`w-3.5 h-3.5 rounded-sm object-cover shrink-0`}),(0,k.jsx)(`span`,{children:e.id||r(`skills.marketDomainAll`)})]},e.id||`__all__`))})}function se({id:e,installed:t=!0,className:n}){let{t:r}=b(),{configured:i,settingFor:a,effectiveFor:o}=D(`skills`);if(!i)return null;let s=a(e),c=o(e),l=s===`inherit`&&!c,u=r(s===`inherit`?l?`settings.kindCapability.excluded`:`settings.kindCapability.inherit`:`settings.kindCapability.${s}`);return(0,k.jsxs)(`span`,{title:r(`settings.kindCapability.hint`),className:C(`inline-flex w-fit items-center gap-1 rounded-full border px-2 py-0.5 text-xs`,s===`allow`&&`border-accent-green/40 bg-accent-green/15 text-accent-green`,s===`deny`&&`border-accent-red/40 bg-accent-red/15 text-accent-red`,s===`inherit`&&!l&&`border-dark-border text-dark-muted`,l&&`border-dark-border text-dark-tertiary line-through`,n),children:[(0,k.jsx)(`span`,{children:u}),!t&&(0,k.jsx)(`span`,{className:`text-dark-tertiary no-underline`,children:r(`skills.kindTagUninstalled`)})]})}function ce({ids:e,className:t}){let{t:n}=b(),r=E(e=>e.kinds),i=E(e=>e.activeKind),{configured:a,effectiveFor:o}=D(`skills`);if(e.length===0)return null;let s=r.find(e=>e.id===i),c=s?s.labelKey?n(s.labelKey):s.id:i||`—`,l=e.filter(e=>o(e)).length;return(0,k.jsxs)(`p`,{className:C(`text-xs`,a?`text-dark-muted`:`text-dark-tertiary`,t),children:[a?n(`skills.kindAvailabilityNarrowed`,{kind:c,available:l,total:e.length}):n(`skills.kindAvailabilityInherit`,{kind:c,total:e.length}),(0,k.jsx)(`span`,{className:`ms-1 text-dark-tertiary`,children:n(`skills.kindAvailabilityHint`)})]})}function le({index:e,children:t}){let n=E(e=>e.activeKind),r=Math.min(e,10)*70;return(0,k.jsx)(`div`,{className:`animate-fade-in h-full [&>*]:h-full`,style:{animationDelay:`${r}ms`},children:t},n)}var ue={id:``,name:``,description:``,category:``,trigger:``,systemPrompt:``,injection:`lazy`,tags:``,requiredTools:``},j=8,de=(e,t)=>`${e}::${t}`;function fe({onUseSkill:e}){let{t:n}=b(),[C,T]=(0,O.useState)(`marketplace`),[E,D]=(0,O.useState)([]),[ae,fe]=(0,O.useState)(!0),[me,N]=(0,O.useState)(null),[P,he]=(0,O.useState)(``),[ge,F]=(0,O.useState)(!1),[_e,ve]=(0,O.useState)(null),[ye,be]=(0,O.useState)(!1),[xe,I]=(0,O.useState)(null),[L,R]=(0,O.useState)(ue),[Se,z]=(0,O.useState)(!1),[Ce,we]=(0,O.useState)(!1),[Te,B]=(0,O.useState)(null),V=(0,O.useRef)(null),[H,U]=(0,O.useState)([]),[Ee,W]=(0,O.useState)([]),[De,G]=(0,O.useState)({}),[Oe,K]=(0,O.useState)(!1),[ke,q]=(0,O.useState)(null),[Ae,je]=(0,O.useState)([]),J=(0,O.useRef)(new Set),[Me,Ne]=(0,O.useState)({}),[Pe,Fe]=(0,O.useState)({}),[Ie,Le]=(0,O.useState)({}),[Re,ze]=(0,O.useState)({}),[Be,Ve]=(0,O.useState)(``),[He,Ue]=(0,O.useState)(``),[We,Ge]=(0,O.useState)(``),[Ke,qe]=(0,O.useState)(!1),[Y,Je]=(0,O.useState)(null),X=(0,O.useMemo)(()=>E.filter(e=>e.source===`marketplace`||e.provenance===`marketplace`),[E]),Z=(0,O.useMemo)(()=>E.filter(e=>e.source!==`marketplace`&&e.provenance!==`marketplace`),[E]),Ye=e=>{let t=De[e]?.skills||[];return Math.max(1,Math.ceil(t.length/j))},Xe=(e,t)=>{Fe(n=>({...n,[e]:Math.max(0,Math.min(Ye(e)-1,t))}))},Ze=async()=>{K(!0),q(null);let e=await w.skills.marketplaces.list();e.success?(U(e.data?.marketplaces||[]),W(e.data?.installed||[]),G(e.data?.indexes||{}),K(!1)):(q(e.error||n(`skills.loadMarketplaceFail`)),K(!1))},Qe=async()=>{let e=He.trim();if(!e)return;qe(!0),q(null);let t=await w.skills.marketplaces.add({url:e,name:We.trim()||void 0});if(t.success&&t.data){Ue(``),Ge(``);let e=t.data.marketplace;U(t=>[...t.filter(t=>t.id!==e.id),e]),G(n=>({...n,[e.id]:t.data.index}))}else q(t.error||n(`skills.addFail`));qe(!1)},$e=async e=>{q(null);let t=await w.skills.marketplaces.refresh(e);t.success&&t.data?G(n=>({...n,[e]:t.data.index})):q(t.error||n(`skills.loadMarketplaceFail`))},et=async e=>{await w.skills.marketplaces.remove(e),U(t=>t.filter(t=>t.id!==e)),G(t=>{let n={...t};return delete n[e],n})},tt=async()=>{let e=await w.skills.list();e.success&&Array.isArray(e.data)&&D(e.data)},nt=async(e,t)=>{let r=de(e,t);if(!J.current.has(r)){J.current.add(r),je(e=>[...e,r]),Ne(e=>{if(!(r in e))return e;let t={...e};return delete t[r],t}),q(null);try{let i=await w.skills.marketplaces.install(e,t);if(i.success&&i.data){let e=i.data;W(t=>[...t.filter(t=>t!==e.id),e.id]),D(t=>[...t.filter(t=>t.id!==e.id),e]),tt()}else Ne(e=>({...e,[r]:i.error||n(`skills.installFail`)}))}catch(e){Ne(t=>({...t,[r]:e instanceof Error?e.message:n(`skills.installFail`)}))}finally{J.current.delete(r),je(e=>e.filter(e=>e!==r))}}},rt=async e=>{q(null);let t=await w.skills.delete(e);t.success?(W(t=>t.filter(t=>t!==e)),D(t=>t.filter(t=>t.id!==e)),tt()):q(t.error||n(`skills.uninstallFail`)),Je(null)},Q=async()=>{fe(!0),N(null);let e=await w.skills.list();if(e.success){let t=Array.isArray(e.data)?e.data:[];D(t),e.data!==null&&e.data!==void 0&&!Array.isArray(e.data)&&N(`服务端返回的技能数据格式异常`)}else N(e.error||n(`skills.loadFailedFallback`));fe(!1)};(0,O.useEffect)(()=>{Q(),Ze()},[]);let it=(0,O.useMemo)(()=>{let e=P.trim().toLowerCase();return e?Z.filter(t=>[t.id,t.name,t.description,t.category,...t.tags||[]].join(` `).toLowerCase().includes(e)):Z},[Z,P]),at=()=>{ve(null),R(ue),I(null),F(!0)},ot=e=>{ve(e.id),R({id:e.id,name:e.name,description:e.description,category:e.category,trigger:e.trigger||``,systemPrompt:e.systemPrompt||``,injection:e.injection||`lazy`,tags:(e.tags||[]).join(`, `),requiredTools:(e.requiredTools||[]).join(`, `)}),I(null),F(!0)},st=async()=>{let e=L.id.trim();if(!e){I(n(`skills.fieldId`)+` is required`);return}be(!0),I(null);let t={id:e,name:L.name.trim(),description:L.description.trim(),category:L.category.trim(),trigger:L.trigger.trim(),systemPrompt:L.systemPrompt,injection:L.injection.trim(),tags:pe(L.tags),requiredTools:pe(L.requiredTools)},r=_e?await w.skills.update(_e,t):await w.skills.create(t);r.success?(F(!1),ve(null),R(ue),await Q()):I(r.error||n(`skills.save`)),be(!1)},ct=async e=>{(await w.skills.toggle(e.id,!e.enabled)).success&&D(t=>t.map(t=>t.id===e.id?{...t,enabled:!t.enabled}:t))},lt=async e=>{we(!0),B(null);try{let t=await e.text(),r=await w.skills.import({fileName:e.name,content:t});r.success?(z(!1),await Q()):B(r.error||n(`skills.import`))}catch(e){B(e instanceof Error?e.message:n(`skills.import`))}finally{we(!1),V.current&&(V.current.value=``)}};if(ae)return(0,k.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,role:`status`,children:(0,k.jsx)(ne,{count:5})});if(me)return(0,k.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,k.jsxs)(`div`,{className:`text-center`,children:[(0,k.jsx)(l,{size:32,className:`mx-auto mb-2 text-accent-red`}),(0,k.jsx)(`p`,{className:`text-accent-red mb-4`,children:me}),(0,k.jsx)(x,{variant:`accent`,onClick:Q,children:n(`skills.retry`)})]})});let $=e=>`flex items-center gap-2 px-4 py-1.5 rounded-lg text-sm font-medium transition-colors ${e?`bg-accent-blue/20 text-accent-blue`:`text-dark-muted hover:bg-dark-hover`}`;return(0,k.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden p-4 gap-3`,children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,k.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2 shrink-0`,children:[(0,k.jsx)(r,{size:20}),n(`skills.title`),(0,k.jsxs)(`span`,{className:`text-sm font-normal text-dark-muted`,children:[`(`,E.length,`)`]})]}),(0,k.jsxs)(`div`,{className:`flex items-center gap-1 bg-dark-surface border border-dark-border rounded-xl p-1`,children:[(0,k.jsxs)(`button`,{onClick:()=>T(`marketplace`),className:$(C===`marketplace`),children:[(0,k.jsx)(g,{size:14}),n(`skills.marketplaceTab`)]}),(0,k.jsxs)(`button`,{onClick:()=>T(`mine`),className:$(C===`mine`),children:[(0,k.jsx)(r,{size:14}),n(`skills.mineTab`)]}),(0,k.jsxs)(`button`,{onClick:()=>T(`installed`),className:$(C===`installed`),children:[(0,k.jsx)(_,{size:14}),n(`skills.installedTab`),(0,k.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded-full bg-dark-bg border border-dark-border`,children:X.length})]}),(0,k.jsxs)(`button`,{onClick:()=>T(`workshop`),className:$(C===`workshop`),children:[(0,k.jsx)(c,{size:14}),n(`skills.workshopTab`)]})]})]}),(0,k.jsx)(re,{slot:n(`nav.skills`)}),ke&&(0,k.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 rounded-lg bg-accent-red/10 text-accent-red text-sm`,children:[(0,k.jsx)(l,{size:14,className:`shrink-0`}),(0,k.jsx)(`span`,{className:`min-w-0 flex-1`,children:ke}),(0,k.jsx)(`button`,{onClick:()=>q(null),className:`shrink-0 p-0.5 rounded hover:bg-dark-hover`,children:(0,k.jsx)(f,{size:14})})]}),C===`marketplace`&&(0,k.jsxs)(`div`,{className:`flex-1 min-h-0 overflow-y-auto custom-scrollbar pe-1 space-y-4`,children:[(0,k.jsxs)(`div`,{className:`flex gap-2`,children:[(0,k.jsx)(`input`,{value:He,onChange:e=>Ue(e.target.value),placeholder:n(`skills.marketplaceUrlPlaceholder`),className:`flex-1 px-3 py-2 rounded-lg bg-dark-surface border border-dark-border outline-none focus:border-accent-blue text-sm`}),(0,k.jsx)(`input`,{value:We,onChange:e=>Ge(e.target.value),placeholder:n(`skills.marketplaceName`),className:`w-40 px-3 py-2 rounded-lg bg-dark-surface border border-dark-border outline-none focus:border-accent-blue text-sm`}),(0,k.jsx)(x,{variant:`accent`,onClick:Qe,disabled:!He.trim(),loading:Ke,leftIcon:(0,k.jsx)(u,{size:14}),children:n(Ke?`skills.adding`:`skills.addMarketplace`)})]}),(0,k.jsx)(`div`,{className:`text-xs text-dark-muted`,children:n(`skills.marketplaceHint`)}),(0,k.jsx)(oe,{marketplaces:H,value:Be,onChange:Ve}),Oe?(0,k.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,k.jsx)(p,{size:24,className:`animate-spin text-accent-blue`})}):(0,k.jsxs)(k.Fragment,{children:[H.length===0&&(0,k.jsx)(`div`,{className:`text-sm text-dark-muted py-10 text-center`,children:n(`skills.noMarketplaces`)}),H.filter(e=>!Be||e.domain===Be).map(e=>{let t=De[e.id],r=t?.skills||[],o=(Ie[e.id]||``).trim().toLowerCase(),s=Re[e.id]||``,c=Array.from(new Set(r.map(e=>e.category).filter(Boolean))).sort(),l=r.filter(e=>(!o||[e.name,e.id,e.description,...e.tags||[]].join(` `).toLowerCase().includes(o))&&(!s||e.category===s)),u=Math.max(1,Math.ceil(l.length/j)),d=Math.min(Pe[e.id]||0,u-1),m=l.slice(d*j,(d+1)*j),h=o||s?`${l.length}/${r.length}`:String(r.length);return(0,k.jsxs)(`div`,{className:`border border-dark-border rounded-lg overflow-hidden`,children:[(0,k.jsxs)(`div`,{className:`px-3 py-2 border-b border-dark-border bg-dark-surface flex items-center justify-between gap-2`,children:[(0,k.jsxs)(`div`,{className:`min-w-0`,children:[(0,k.jsxs)(`div`,{className:`font-medium flex items-center gap-2`,children:[e.builtin&&(0,k.jsx)(`span`,{className:`text-badge px-1.5 py-0.5 rounded bg-accent-blue/20 text-accent-blue`,children:n(`skills.presets`)}),(0,k.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,k.jsx)(`div`,{className:`text-xs text-dark-muted truncate`,children:e.url})]}),(0,k.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,k.jsx)(`span`,{className:`text-xs text-dark-muted whitespace-nowrap`,children:n(`skills.skillCount`,{count:h})}),(0,k.jsx)(`button`,{onClick:()=>$e(e.id),className:`p-1.5 rounded hover:bg-dark-hover`,title:n(`skills.refreshMarketplace`),children:(0,k.jsx)(p,{size:14})}),!e.builtin&&(0,k.jsx)(`button`,{onClick:()=>et(e.id),className:`p-1.5 rounded hover:bg-dark-hover text-accent-red`,title:n(`skills.removeMarketplace`),children:(0,k.jsx)(f,{size:14})})]})]}),t?.error?(0,k.jsxs)(`div`,{className:`flex items-center justify-between gap-2 px-3 py-2 bg-accent-red/10 text-accent-red text-xs`,children:[(0,k.jsx)(`span`,{className:`min-w-0 truncate`,title:t.error,children:n(`skills.marketplaceError`,{error:t.error})}),(0,k.jsxs)(`button`,{onClick:()=>$e(e.id),className:`flex items-center gap-1 px-2 py-1 rounded bg-dark-surface border border-dark-border whitespace-nowrap shrink-0`,children:[(0,k.jsx)(p,{size:12}),n(`skills.retryMarket`)]})]}):r.length===0?(0,k.jsx)(`div`,{className:`text-xs text-dark-muted py-4 text-center`,children:n(`skills.noSkillsInMarket`)}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 border-b border-dark-border/60 bg-dark-surface/40`,children:[(0,k.jsx)(`input`,{value:Ie[e.id]||``,onChange:t=>Le(n=>({...n,[e.id]:t.target.value})),placeholder:n(`skills.marketFilterPlaceholder`),className:`flex-1 px-2.5 py-1.5 rounded-lg bg-dark-bg border border-dark-border outline-none focus:border-accent-blue text-xs`}),c.length>1&&(0,k.jsxs)(`select`,{value:Re[e.id]||``,onChange:t=>ze(n=>({...n,[e.id]:t.target.value})),className:`px-2.5 py-1.5 rounded-lg bg-dark-bg border border-dark-border outline-none text-xs`,children:[(0,k.jsx)(`option`,{value:``,children:n(`skills.marketCategoryAll`)}),c.map(e=>(0,k.jsx)(`option`,{value:e,children:e},e))]})]}),(0,k.jsx)(ce,{ids:l.map(e=>e.id),className:`px-3 pt-2`}),l.length===0?(0,k.jsx)(`div`,{className:`text-xs text-dark-muted py-4 text-center`,children:n(`skills.noSkillsInMarket`)}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-2 p-3`,children:m.map((t,r)=>{let i=de(e.id,t.id),o=Ee.includes(t.id),s=Ae.includes(i),c=Me[i];return(0,k.jsx)(le,{index:r,children:(0,k.jsxs)(`div`,{className:`border border-dark-border rounded-lg p-3 flex flex-col gap-2`,children:[(0,k.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,k.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,k.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,k.jsxs)(`span`,{className:`font-medium text-sm truncate`,children:[(0,k.jsx)(A,{icon:t.icon}),` `,t.name]}),t.risk===`critical`&&(0,k.jsx)(`span`,{className:`text-badge px-1.5 py-0.5 rounded bg-accent-red/20 text-accent-red shrink-0`,children:n(`skills.riskCritical`)})]}),(0,k.jsxs)(`div`,{className:`text-xs text-dark-muted truncate`,children:[t.category,t.author?` · ${t.author}`:``,t.version?` · v${t.version}`:``]})]}),(0,k.jsxs)(`button`,{disabled:o||s,onClick:()=>nt(e.id,t.id),className:`flex items-center gap-1 px-2.5 py-1.5 rounded-lg text-xs font-medium whitespace-nowrap shrink-0 disabled:opacity-60 ${o?`bg-accent-green/20 text-accent-green`:`bg-accent-blue text-accent-fg hover:bg-accent-blue/80`}`,children:[o?(0,k.jsx)(_,{size:12}):s?(0,k.jsx)(p,{size:12,className:`animate-spin`}):(0,k.jsx)(a,{size:12}),n(o?`skills.installed`:s?`skills.installing`:`skills.installSkill`)]})]}),s&&(0,k.jsx)(`div`,{className:`install-progress-track h-1 rounded-full`,role:`progressbar`,"aria-label":n(`skills.installing`)}),t.description&&(0,k.jsx)(`p`,{className:`text-xs text-dark-muted line-clamp-2`,children:t.description}),c&&(0,k.jsx)(`p`,{className:`text-xs text-accent-red line-clamp-2`,children:c}),(0,k.jsx)(se,{id:t.id,installed:o,className:`mt-auto`})]})},t.id)})}),u>1&&(0,k.jsxs)(`div`,{className:`flex items-center justify-center gap-3 pb-3 text-xs text-dark-muted`,children:[(0,k.jsxs)(`button`,{disabled:d<=0,onClick:()=>Xe(e.id,d-1),className:`flex items-center gap-1 px-2 py-1 rounded border border-dark-border hover:bg-dark-hover disabled:opacity-40`,children:[(0,k.jsx)(i,{size:14}),n(`skills.pagePrev`)]}),(0,k.jsx)(`span`,{className:`whitespace-nowrap`,children:n(`skills.pageOf`,{page:d+1,total:u})}),(0,k.jsxs)(`button`,{disabled:d>=u-1,onClick:()=>Xe(e.id,d+1),className:`flex items-center gap-1 px-2 py-1 rounded border border-dark-border hover:bg-dark-hover disabled:opacity-40`,children:[n(`skills.pageNext`),(0,k.jsx)(v,{size:14})]})]})]})]})]},e.id)})]})]}),C===`installed`&&(0,k.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto custom-scrollbar pe-1`,children:X.length===0?(0,k.jsxs)(`div`,{className:`text-center py-16 text-dark-muted`,children:[(0,k.jsx)(`p`,{className:`mb-1`,children:n(`skills.emptyInstalled`)}),(0,k.jsx)(`p`,{className:`text-xs mb-4`,children:n(`skills.emptyInstalledHint`)}),(0,k.jsx)(x,{variant:`accent`,leftIcon:(0,k.jsx)(g,{size:14}),onClick:()=>T(`marketplace`),children:n(`skills.browseMarket`)})]}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(ce,{ids:X.map(e=>e.id),className:`px-1 pb-2`}),(0,k.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-2`,children:X.map((t,r)=>(0,k.jsx)(le,{index:r,children:(0,k.jsxs)(`div`,{className:`border border-dark-border rounded-lg p-3 flex flex-col gap-2`,children:[(0,k.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,k.jsxs)(`div`,{className:`min-w-0`,children:[(0,k.jsxs)(`div`,{className:`font-medium text-sm truncate`,children:[(0,k.jsx)(A,{icon:t.icon}),` `,t.name]}),(0,k.jsxs)(`div`,{className:`text-xs text-dark-muted truncate`,children:[t.id,` · `,t.category]})]}),(0,k.jsxs)(`button`,{onClick:()=>ct(t),className:`flex items-center gap-1 px-2 py-1 rounded text-xs font-medium whitespace-nowrap shrink-0 transition-colors ${t.enabled?`bg-accent-green/20 text-accent-green hover:bg-accent-green/30`:`bg-accent-red/20 text-accent-red hover:bg-accent-red/30`}`,title:t.enabled?n(`skills.disable`):n(`skills.enable`),children:[t.enabled?(0,k.jsx)(h,{size:14}):(0,k.jsx)(y,{size:14}),t.enabled?n(`skills.enabled`):n(`skills.disabled`)]})]}),t.description&&(0,k.jsx)(`p`,{className:`text-xs text-dark-muted line-clamp-2`,children:t.description}),(0,k.jsx)(se,{id:t.id}),(0,k.jsxs)(`div`,{className:`flex items-center justify-between gap-2 mt-auto`,children:[(0,k.jsx)(`span`,{className:`text-badge px-1.5 py-0.5 rounded bg-dark-bg border border-dark-border text-dark-muted truncate`,children:t.marketplace||t.source||n(`skills.marketplace`)}),(0,k.jsxs)(`div`,{className:`flex gap-2 shrink-0`,children:[e&&(0,k.jsxs)(`button`,{onClick:()=>e(t),className:`flex items-center gap-1 px-2 py-1 rounded bg-accent-blue/15 text-accent-blue text-xs hover:bg-accent-blue/25 transition-colors`,title:n(`skills.useHint`),children:[(0,k.jsx)(m,{size:12}),n(`skills.use`)]}),(0,k.jsxs)(`button`,{onClick:()=>ot(t),className:`flex items-center gap-1 px-2 py-1 rounded border border-dark-border text-xs hover:bg-dark-hover`,children:[(0,k.jsx)(o,{size:12}),n(`skills.edit`)]}),(0,k.jsxs)(`button`,{onClick:()=>Je(t.id),className:`flex items-center gap-1 px-2 py-1 rounded border border-dark-border text-accent-red text-xs hover:bg-accent-red/10`,children:[(0,k.jsx)(s,{size:12}),n(`skills.uninstall`)]})]})]})]})},t.id))})]})}),C===`workshop`&&(0,k.jsx)(ie,{}),C===`mine`&&(0,k.jsxs)(`div`,{className:`flex-1 min-h-0 flex flex-col gap-3`,children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,k.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,k.jsx)(`input`,{value:P,onChange:e=>he(e.target.value),placeholder:`Search skills`,className:`w-56 px-3 py-2 bg-dark-surface border border-dark-border rounded-lg text-sm outline-none focus:border-accent-blue`}),(0,k.jsx)(`span`,{className:`text-sm text-dark-muted shrink-0`,children:it.length})]}),(0,k.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,k.jsx)(x,{variant:`accent`,leftIcon:(0,k.jsx)(u,{size:14}),onClick:at,children:n(`skills.new`)}),(0,k.jsxs)(`button`,{onClick:()=>z(!0),className:`flex items-center gap-2 px-3 py-2 bg-dark-surface border border-dark-border rounded-lg`,children:[(0,k.jsx)(d,{size:14}),n(`skills.import`)]}),(0,k.jsxs)(`button`,{onClick:Q,className:`flex items-center gap-2 px-3 py-2 bg-dark-surface border border-dark-border rounded-lg`,children:[(0,k.jsx)(p,{size:14}),n(`skills.refresh`)]})]})]}),it.length===0?(0,k.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center text-dark-muted gap-3`,children:[(0,k.jsx)(`p`,{children:n(`skills.noSkills`)}),(0,k.jsx)(x,{variant:`accent`,leftIcon:(0,k.jsx)(u,{size:14}),onClick:at,children:n(`skills.new`)})]}):(0,k.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto custom-scrollbar pe-1`,children:(0,k.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 2xl:grid-cols-4 gap-3`,children:it.map((t,r)=>(0,k.jsx)(le,{index:r,children:(0,k.jsxs)(`div`,{className:`border border-dark-border rounded-lg p-3 flex flex-col gap-2 bg-dark-surface`,children:[(0,k.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,k.jsxs)(`div`,{className:`min-w-0`,children:[(0,k.jsxs)(`div`,{className:`font-medium text-sm truncate`,children:[(0,k.jsx)(A,{icon:t.icon}),` `,t.name]}),(0,k.jsx)(`div`,{className:`text-xs text-dark-muted truncate`,children:t.id})]}),(0,k.jsxs)(`button`,{onClick:()=>ct(t),className:`flex items-center gap-1 px-2 py-1 rounded text-xs font-medium whitespace-nowrap shrink-0 transition-colors ${t.enabled?`bg-accent-green/20 text-accent-green hover:bg-accent-green/30`:`bg-accent-red/20 text-accent-red hover:bg-accent-red/30`}`,title:t.enabled?n(`skills.disable`):n(`skills.enable`),children:[t.enabled?(0,k.jsx)(h,{size:14}):(0,k.jsx)(y,{size:14}),t.enabled?n(`skills.enabled`):n(`skills.disabled`)]})]}),t.description&&(0,k.jsx)(`p`,{className:`text-xs text-dark-muted line-clamp-2`,children:t.description}),(0,k.jsxs)(`div`,{className:`flex items-center justify-between gap-2 mt-auto`,children:[(0,k.jsx)(`span`,{className:`text-badge px-1.5 py-0.5 rounded bg-dark-bg border border-dark-border text-dark-muted truncate`,children:t.category}),(0,k.jsxs)(`div`,{className:`flex gap-2 shrink-0`,children:[(0,k.jsx)(te,{slot:`skills`,id:t.id}),e&&(0,k.jsxs)(`button`,{onClick:()=>e(t),className:`flex items-center gap-1 px-2 py-1 rounded bg-accent-blue/15 text-accent-blue text-xs hover:bg-accent-blue/25 transition-colors`,title:n(`skills.useHint`),children:[(0,k.jsx)(m,{size:12}),n(`skills.use`)]}),(0,k.jsxs)(`button`,{onClick:()=>ot(t),className:`flex items-center gap-1 px-2 py-1 rounded border border-dark-border text-xs hover:bg-dark-hover shrink-0`,children:[(0,k.jsx)(o,{size:12}),n(`skills.edit`)]})]})]})]})},t.id))})})]}),(0,k.jsx)(S,{isOpen:ge,onClose:()=>F(!1),title:n(_e?`skills.edit`:`skills.new`),size:`xl`,children:(0,k.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,k.jsx)(M,{label:n(`skills.fieldId`),value:L.id,onChange:e=>R(t=>({...t,id:e}))}),(0,k.jsx)(M,{label:n(`skills.fieldName`),value:L.name,onChange:e=>R(t=>({...t,name:e}))}),(0,k.jsx)(M,{label:n(`skills.fieldCategory`),value:L.category,onChange:e=>R(t=>({...t,category:e}))}),(0,k.jsx)(M,{label:n(`skills.fieldTrigger`),value:L.trigger,onChange:e=>R(t=>({...t,trigger:e}))}),(0,k.jsx)(M,{label:n(`skills.tags`),value:L.tags,onChange:e=>R(t=>({...t,tags:e}))}),(0,k.jsx)(M,{label:n(`skills.fieldTools`),value:L.requiredTools,onChange:e=>R(t=>({...t,requiredTools:e}))}),(0,k.jsxs)(`div`,{className:`col-span-2`,children:[(0,k.jsx)(`label`,{className:`block text-sm mb-1 text-dark-muted`,children:n(`skills.description`)}),(0,k.jsx)(`textarea`,{value:L.description,onChange:e=>R(t=>({...t,description:e.target.value})),className:`w-full h-20 px-3 py-2 rounded-lg bg-dark-bg border border-dark-border outline-none resize-none`})]}),(0,k.jsxs)(`div`,{className:`col-span-2`,children:[(0,k.jsx)(`label`,{className:`block text-sm mb-1 text-dark-muted`,children:n(`skills.systemPrompt`)}),(0,k.jsx)(`textarea`,{value:L.systemPrompt,onChange:e=>R(t=>({...t,systemPrompt:e.target.value})),className:`w-full h-40 px-3 py-2 rounded-lg bg-dark-bg border border-dark-border outline-none resize-none font-mono text-sm`})]}),xe&&(0,k.jsx)(`div`,{className:`col-span-2 text-sm text-accent-red`,children:xe}),(0,k.jsxs)(`div`,{className:`col-span-2 flex justify-end gap-2`,children:[(0,k.jsx)(x,{variant:`secondary`,onClick:()=>F(!1),children:n(`skills.cancel`)}),(0,k.jsx)(x,{variant:`accent`,leftIcon:(0,k.jsx)(o,{size:14}),loading:ye,onClick:st,children:n(`skills.save`)})]})]})}),(0,k.jsx)(S,{isOpen:Se,onClose:()=>z(!1),title:n(`skills.importTitle`),size:`md`,children:(0,k.jsxs)(`div`,{className:`space-y-3`,children:[(0,k.jsx)(`input`,{ref:V,type:`file`,accept:`.md,.skill.md,.txt`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&<(t)}}),(0,k.jsxs)(`button`,{onClick:()=>V.current?.click(),disabled:Ce,className:`w-full py-6 border border-dashed border-dark-border rounded-lg flex items-center justify-center gap-2`,children:[(0,k.jsx)(t,{size:16}),n(`skills.chooseFile`)]}),Te&&(0,k.jsx)(`div`,{className:`text-sm text-accent-red`,children:Te}),(0,k.jsx)(`div`,{className:`text-xs text-dark-muted`,children:n(`skills.importHint`)})]})}),(0,k.jsx)(ee,{isOpen:Y!==null,onClose:()=>Je(null),onConfirm:()=>{Y&&rt(Y)},title:n(`skills.uninstall`),message:n(`skills.uninstallConfirm`,{name:X.find(e=>e.id===Y)?.name||Y||``}),confirmText:n(`skills.uninstall`),cancelText:n(`skills.cancel`),variant:`danger`})]})}function pe(e){return e.split(`,`).map(e=>e.trim()).filter(Boolean)}function M({label:e,value:t,onChange:n}){return(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`label`,{className:`block text-sm mb-1 text-dark-muted`,children:e}),(0,k.jsx)(`input`,{value:t,onChange:e=>n(e.target.value),className:`w-full px-3 py-2 rounded-lg bg-dark-bg border border-dark-border outline-none focus:border-accent-blue`})]})}export{fe as SkillsView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{$t as t,B as n,Kr as r,Qn as i,Un as a,Ut as o,Vr as s,Wn as c,Z as l,_ as ee,_t as u,dr as d,dt as te,h as f,hn as ne,k as re,lt as p,n as m,nr as h,nt as ie,q as ae,rr as oe,tt as se,wr as ce,z as le,zn as ue}from"./icons-CYDRRPKW.js";import{t as g}from"./useTranslation-B-mfApCn.js";import{a as _,n as de,r as fe,s as v}from"./useConfirm-Da8iQ_DZ.js";import{t as y}from"./api-plEYhRn0.js";import{I as pe}from"./markdown-N5__3T-w.js";import{l as b,u as me}from"./common-Bbatsa0-.js";import{A as he,D as ge,O as _e,k as ve}from"./index-CTbLW314.js";var x=e(r(),1),S=new Set([`read_file`,`grep`,`glob`,`list_dir`,`web_fetch`,`web_search`,`git_status`,`git_diff`,`git_log`,`code_intel_lookup`,`lsp_diagnostics`,`artifact_query`,`artifact_read`]),C=new Set([`write_file`,`edit_file`,`file_delete`,`apply_patch`,`bash`,`git_commit`,`git_apply_patch`,`notebook_edit`,`git_branch`,`git_pr`]);function w(e){let t=(e.metadata??{}).primitive?.options;return Array.isArray(t?.tools)?t.tools.map(String):null}var ye=new Set([`explore`,`plan`,`verify`]);function T(e){let t=w(e);if(t!==null)return t;let n=e.metadata??{},r=typeof n.role==`string`?n.role:e.type;return ye.has(r)?[]:null}function be(e){if(Se(e))return!1;let t=T(e);return t===null||t.length!==0&&t.some(e=>C.has(e))}var xe=new Set([`parallel`,`pipeline`,`phase`,`condition`,`loop`,`synthesize`,`checkpoint`,`retry`]);function Se(e){let t=(e.metadata??{}).primitive,n=typeof t?.kind==`string`?t.kind:void 0;return n===void 0?xe.has(e.type):n!==`agent`&&n!==`tool`}function E(e){let t=[];for(let n of e)t.push(n),Array.isArray(n.children)&&n.children.length&&t.push(...E(n.children));return t}function Ce(e){let t=new Map(e.map(e=>[e.id,e])),n=new Set,r=[],i=[...e];for(;i.length>0;){let e=i.filter(e=>(e.dependencies??[]).every(e=>n.has(e)||!t.has(e)));if(e.length===0){r.push(i);break}r.push(e);for(let t of e)n.add(t.id);i=i.filter(e=>!n.has(e.id))}return r}function we(e){return Ce(e).reduce((e,t)=>Math.max(e,t.length),1)}function Te(e){let t=e.children??[];if(t.length===0)return 1;let n=Math.max(...t.map(e=>Te(e)));return e.type===`parallel`?Math.max(t.length,n):Math.max(1,n)}function Ee(e){let t=we(e),n=e.reduce((e,t)=>Math.max(e,Te(t)),1);return Math.max(t,n)}function D(e,t=0){if(!e||!Array.isArray(e.nodes)||e.nodes.length===0)return{readonly:!0,risk:`low`,maxParallel:0,nodeCount:0,inputCount:t||0,roles:[]};let n=E(e.nodes),r=[],i=!0;for(let e of n){let t=typeof(e.metadata??{}).role==`string`?String(e.metadata.role):e.type;r.includes(t)||r.push(t),be(e)&&(i=!1)}return{readonly:i,risk:i?`low`:`medium`,maxParallel:Ee(e.nodes),nodeCount:n.length,inputCount:t||0,roles:r}}var O={parallel:`templates.nodeParallel`,pipeline:`templates.nodePipeline`,phase:`templates.nodePhase`,synthesize:`templates.nodeSynthesize`,condition:`templates.nodeCondition`,loop:`templates.nodeLoop`,checkpoint:`templates.nodeCheckpoint`},k={retry:`templates.nodeRetry`};function De(e){let t=e.metadata?.primitive,n=typeof t?.kind==`string`?t.kind:void 0;return n&&k[n]?k[n]:O[e.type]}var A=pe(),j={explore:`info`,plan:`default`,execute:`success`,verify:`warning`,summarize:`info`,generic:`default`},Oe={explore:`templates.roleExplore`,plan:`templates.rolePlan`,execute:`templates.roleExecute`,verify:`templates.roleVerify`,summarize:`templates.roleSummarize`,generic:`templates.roleGeneric`},M={explore:`text-accent-blue`,plan:`text-dark-muted`,execute:`text-accent-green`,verify:`text-accent-yellow`,summarize:`text-dark-muted`};function ke(e){let t=e.metadata?.role;return typeof t==`string`?t:e.type}function Ae({definition:e}){let{t}=g(),n=(0,x.useMemo)(()=>E(e.nodes||[]),[e.nodes]),r=(0,x.useMemo)(()=>Ce(n),[n]),i=(0,x.useMemo)(()=>new Map(n.map(e=>[e.id,e])),[n]);return r.length===0?(0,A.jsx)(`p`,{className:`text-xs text-dark-muted`,children:t(`templates.noNodes`)}):(0,A.jsxs)(`div`,{className:`space-y-0`,children:[r.map((e,n)=>(0,A.jsxs)(`div`,{className:`flex`,children:[(0,A.jsxs)(`div`,{className:`flex flex-col items-center shrink-0 w-6 me-2`,children:[n>0&&(0,A.jsx)(`span`,{className:`w-px h-3 bg-dark-border/60`}),e.length>1&&(0,A.jsx)(`span`,{className:`inline-flex items-center gap-0.5 mt-0.5 mb-0.5`,children:e.map((e,t)=>(0,A.jsx)(`span`,{className:`w-[2px] h-2 rounded bg-accent-blue/40`},t))}),n<r.length-1&&(0,A.jsx)(`span`,{className:`w-px flex-1 bg-dark-border/60 my-0.5`})]}),(0,A.jsx)(`div`,{className:v(`flex-1 min-w-0`,e.length>1?`grid grid-cols-2 gap-2 py-1`:`py-0.5`),children:e.map(e=>{let n=ke(e),r=M[n]||`text-dark-muted`,a=(e.dependencies??[]).map(e=>i.get(e)?.title||e),o=De(e);return(0,A.jsxs)(`div`,{className:`rounded-lg border border-dark-border bg-dark-bg/60 overflow-hidden`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-2 px-2.5 py-1.5`,children:[(0,A.jsx)(d,{size:12,className:v(`shrink-0`,r)}),(0,A.jsx)(`span`,{className:`text-xs font-medium text-dark-text truncate flex-1`,title:e.title,children:e.title}),(0,A.jsx)(b,{size:`sm`,variant:j[n]||`default`,children:t(o||Oe[n]||`templates.roleGeneric`)})]}),e.description&&(0,A.jsx)(`p`,{className:`px-2.5 pb-1.5 text-meta text-dark-muted leading-relaxed`,children:e.description}),a.length>0&&(0,A.jsx)(`div`,{className:`px-2.5 pb-1.5 flex items-center flex-wrap gap-1`,children:a.map(e=>(0,A.jsxs)(`span`,{className:`text-badge px-1.5 py-0.5 rounded bg-dark-hover text-dark-muted truncate max-w-[14rem]`,children:[`← `,e]},e))})]},e.id)})})]},n)),(0,A.jsxs)(`div`,{className:`flex items-center gap-3 mt-3 pt-2 border-t border-dark-border text-badge text-dark-muted`,children:[(0,A.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,A.jsx)(le,{size:11,className:`text-accent-yellow`}),` `,t(`templates.roleVerify`)]}),(0,A.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,A.jsx)(d,{size:11,className:`text-accent-blue`}),` `,t(`templates.roleExplore`)]})]})]})}function N(e){let t=e.metadata?.role;return typeof t==`string`?t:e.type}function je({definition:e}){let{t}=g(),r=(0,x.useMemo)(()=>E(e.nodes||[]),[e.nodes]),{readonly:i,allowList:a,toolSet:o}=(0,x.useMemo)(()=>{let e=new Set,t=!1;for(let n of r){let r=w(n);if(r!==null){for(let t of r)e.add(t);r.some(e=>C.has(e))&&(t=!0)}else N(n)!==`explore`&&N(n)!==`plan`&&N(n)!==`verify`&&(t=!0)}let n=[...e].filter(e=>S.has(e));return{readonly:!t,allowList:n,toolSet:e}},[r]),s=(0,x.useMemo)(()=>[...C].filter(e=>!o.has(e)),[o]);return(0,A.jsxs)(`div`,{className:`space-y-3`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i?(0,A.jsx)(le,{size:16,className:`text-accent-green`}):(0,A.jsx)(n,{size:16,className:`text-accent-yellow`}),(0,A.jsx)(`span`,{className:`text-sm text-dark-text`,children:t(i?`templates.readonly`:`templates.writable`)}),(0,A.jsx)(b,{size:`sm`,variant:i?`success`:`warning`,children:t(i?`templates.riskLow`:`templates.riskMedium`)})]}),(0,A.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,A.jsxs)(`div`,{className:`rounded-lg border border-dark-border p-3`,children:[(0,A.jsx)(`div`,{className:`text-meta uppercase tracking-wider text-dark-muted/70 mb-2`,children:t(`templates.allowDuringReplay`)}),a.length>0?(0,A.jsx)(`ul`,{className:`space-y-1`,children:a.map(e=>(0,A.jsxs)(`li`,{className:`flex items-center gap-1.5 text-xs text-dark-muted`,children:[(0,A.jsx)(ce,{size:12,className:`text-accent-green shrink-0`}),` `,e]},e))}):(0,A.jsx)(`p`,{className:`text-xs text-dark-muted/70`,children:t(`templates.noToolsRestriction`)})]}),(0,A.jsxs)(`div`,{className:`rounded-lg border border-dark-border p-3`,children:[(0,A.jsx)(`div`,{className:`text-meta uppercase tracking-wider text-dark-muted/70 mb-2`,children:t(`templates.denyDuringReplay`)}),i?(0,A.jsx)(`ul`,{className:`space-y-1`,children:s.map(e=>(0,A.jsxs)(`li`,{className:`flex items-center gap-1.5 text-xs text-dark-muted`,children:[(0,A.jsx)(m,{size:12,className:`text-accent-red shrink-0`}),` `,e]},e))}):(0,A.jsx)(`p`,{className:`text-xs text-dark-muted/70`,children:`—`})]})]}),o.size>0&&(0,A.jsxs)(`div`,{className:`rounded-lg border border-dark-border p-3`,children:[(0,A.jsx)(`div`,{className:`text-meta uppercase tracking-wider text-dark-muted/70 mb-1.5`,children:t(`templates.toolWhitelist`)}),(0,A.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:[...o].map(e=>(0,A.jsx)(`span`,{className:`text-badge px-1.5 py-0.5 rounded bg-dark-hover text-dark-muted`,children:e},e))})]})]})}function Me(e){let{t:r,detail:o,sourceLabelKey:l,detailTab:d,onTabChange:f,onReplay:re,onPreflight:p,onEdit:m,onDelete:ae,onExport:oe,onCopyId:ce,onToggleAdvanced:g,onToggleVersions:de,onReRecord:fe,versions:y,historyView:pe,onLoadVersion:me,onClearHistory:he,onRefresh:ge,menuOpen:_e,setMenuOpen:ve,saveMsg:S}=e,C=(0,x.useMemo)(()=>D(o.definition,o.inputs?.length??0),[o.definition,o.inputs]),w=l?r(l):o.source.type,ye=C.inputCount,T=[{id:`overview`,label:r(`templates.overviewTab`)},{id:`flow`,label:r(`templates.flowTab`)},{id:`permissions`,label:r(`templates.permissionsTab`)},{id:`history`,label:r(`templates.historyTab`)}];return(0,A.jsx)(`div`,{className:`flex-1 min-w-0 flex flex-col overflow-y-auto custom-scrollbar`,children:(0,A.jsxs)(`div`,{className:`p-5 space-y-4`,children:[(0,A.jsxs)(`div`,{className:`flex items-start gap-3 flex-wrap`,children:[(0,A.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,A.jsx)(`h2`,{className:`text-lg font-semibold text-dark-text truncate`,children:o.name}),(0,A.jsxs)(b,{variant:`info`,children:[`v`,o.version]}),o.status===`degraded`&&(0,A.jsxs)(b,{variant:`warning`,children:[`⚠ `,r(`templates.degradedBadge`)]}),(0,A.jsx)(b,{variant:o.source.type===`saved`?`success`:`default`,children:w})]}),o.description&&(0,A.jsx)(`p`,{className:`text-sm text-dark-muted mt-1`,children:o.description})]}),(0,A.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,A.jsx)(_,{variant:`accent`,leftIcon:(0,A.jsx)(te,{className:`w-4 h-4`}),onClick:re,children:r(`templates.replay`)}),(0,A.jsx)(_,{variant:`secondary`,leftIcon:(0,A.jsx)(ue,{className:`w-4 h-4`}),onClick:p,children:r(`templates.preflight`)}),(0,A.jsxs)(`button`,{onClick:m,className:`px-3 py-2 rounded-lg border border-dark-border text-dark-text hover:bg-dark-hover transition-colors inline-flex items-center gap-1.5`,children:[(0,A.jsx)(u,{className:`w-4 h-4`}),` `,r(`templates.edit`)]}),(0,A.jsxs)(`div`,{className:`relative`,children:[(0,A.jsx)(`button`,{onClick:()=>ve(!_e),className:`p-2 rounded-lg text-dark-muted hover:bg-dark-hover transition-colors`,"aria-label":r(`templates.more`),children:(0,A.jsx)(a,{className:`w-4 h-4`})}),_e&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>ve(!1)}),(0,A.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 z-50 w-52 rounded-lg border border-dark-border bg-dark-overlay ui-surface-overlay shadow-pop p-1.5 space-y-0.5 text-compact`,children:[(0,A.jsx)(P,{icon:(0,A.jsx)(c,{size:13}),label:r(`templates.exportJson`),onClick:oe}),(0,A.jsx)(P,{icon:(0,A.jsx)(i,{size:13}),label:r(`templates.copyId`),onClick:ce}),(0,A.jsx)(P,{icon:(0,A.jsx)(se,{size:13}),label:r(`templates.versionHistory`),onClick:de}),(0,A.jsx)(P,{icon:(0,A.jsx)(h,{size:13}),label:r(`templates.advancedJson`),onClick:g}),(0,A.jsx)(`div`,{className:`border-t border-dark-border my-1`}),(0,A.jsx)(P,{icon:(0,A.jsx)(ee,{size:13}),label:r(`templates.deleteTemplate`),onClick:ae,danger:!0})]})]})]})]})]}),(0,A.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[o.category&&(0,A.jsxs)(b,{size:`sm`,variant:`info`,className:`gap-1`,children:[(0,A.jsx)(t,{size:11}),o.category]}),(0,A.jsxs)(b,{size:`sm`,variant:C.readonly?`success`:`warning`,className:`gap-1`,children:[C.readonly?(0,A.jsx)(le,{size:11}):(0,A.jsx)(n,{size:11}),C.readonly?`${r(`templates.readonly`)} · ${r(`templates.riskLow`)}`:`${r(`templates.writable`)} · ${r(`templates.riskMedium`)}`]}),(0,A.jsxs)(b,{size:`sm`,variant:`default`,className:`gap-1`,children:[(0,A.jsx)(ne,{size:11}),C.maxParallel>1?r(`templates.parallelCount`,{n:C.nodeCount,p:C.maxParallel}):r(`templates.stepCount`,{n:C.nodeCount})]}),(0,A.jsxs)(b,{size:`sm`,variant:`default`,className:`gap-1`,children:[(0,A.jsx)(s,{size:11}),ye>0?r(`templates.confirmCount`,{n:ye}):r(`templates.confirmCountNone`)]}),S&&(0,A.jsx)(`span`,{className:`text-xs text-dark-muted`,children:S})]}),(0,A.jsxs)(`div`,{className:`flex items-center gap-1 border-b border-dark-border pb-1.5`,children:[T.map(e=>(0,A.jsx)(`button`,{onClick:()=>f(e.id),className:v(`px-3 py-1.5 rounded-md text-xs transition-colors`,d===e.id?`bg-accent-blue/10 text-accent-blue font-medium`:`text-dark-muted hover:text-dark-text hover:bg-dark-hover`),children:e.label},e.id)),(0,A.jsx)(`div`,{className:`ms-auto flex items-center gap-1`,children:(0,A.jsx)(`button`,{onClick:ge,className:`p-1.5 rounded-md text-dark-muted hover:text-dark-text hover:bg-dark-hover`,title:r(`templates.refresh`),children:(0,A.jsx)(ie,{className:`w-3.5 h-3.5`})})})]}),(0,A.jsxs)(`div`,{children:[d===`overview`&&(0,A.jsx)(F,{t:r,detail:o,meta:C,inputCount:ye}),d===`flow`&&(0,A.jsx)(Ae,{definition:o.definition}),d===`permissions`&&(0,A.jsx)(je,{definition:o.definition}),d===`history`&&(0,A.jsx)(I,{t:r,versions:y,currentVersion:o.version,historyView:pe,onLoadVersion:me,onClearHistory:he,onReRecord:fe})]})]})})}function P({icon:e,label:t,onClick:n,danger:r}){return(0,A.jsxs)(`button`,{onClick:n,className:v(`w-full flex items-center gap-2 px-2 py-1.5 rounded-md hover:bg-dark-hover text-start transition-colors`,r?`text-accent-red hover:text-accent-red`:`text-dark-muted hover:text-dark-text`),children:[e,` `,t]})}function F({t:e,detail:t,meta:n,inputCount:r}){let i=t.inputs??[],a=t.outputs??[];return(0,A.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,A.jsxs)(`div`,{className:`rounded-lg border border-dark-border p-3`,children:[(0,A.jsx)(`div`,{className:`text-meta uppercase tracking-wider text-dark-muted/70 mb-2`,children:e(`templates.inputsNeeded`)}),r>0?(0,A.jsx)(`ul`,{className:`space-y-1.5`,children:i.map(e=>(0,A.jsxs)(`li`,{className:`flex items-center justify-between gap-2 text-xs`,children:[(0,A.jsx)(`span`,{className:`text-dark-text truncate`,children:e.label||e.name}),e.required&&(0,A.jsx)(`span`,{className:`text-accent-red shrink-0`,children:`*`})]},e.name))}):(0,A.jsx)(`p`,{className:`text-xs text-dark-muted/70`,children:e(`templates.confirmCountNone`)})]}),(0,A.jsxs)(`div`,{className:`rounded-lg border border-dark-border p-3`,children:[(0,A.jsx)(`div`,{className:`text-meta uppercase tracking-wider text-dark-muted/70 mb-2`,children:e(`templates.outputsProduced`)}),a.length>0?(0,A.jsx)(`ul`,{className:`space-y-1.5`,children:a.map(e=>(0,A.jsxs)(`li`,{className:`flex items-center justify-between gap-2 text-xs`,children:[(0,A.jsx)(`span`,{className:`text-dark-text truncate`,children:e.label||e.name}),e.kind&&(0,A.jsx)(b,{size:`sm`,children:e.kind})]},e.name))}):(0,A.jsx)(`p`,{className:`text-xs text-dark-muted/70`,children:e(`templates.noOutputsDeclared`)})]}),(0,A.jsxs)(`div`,{className:`col-span-2 text-meta text-dark-muted/70`,children:[e(`templates.replayNewSession`),` · `,n.readonly?e(`templates.readonlyHint`):e(`templates.writable`)]})]})}function I({t:e,versions:t,currentVersion:n,historyView:r,onLoadVersion:i,onClearHistory:a,onReRecord:o}){return(0,A.jsxs)(`div`,{className:`space-y-2`,children:[t.length===0&&(0,A.jsx)(`p`,{className:`text-xs text-dark-muted/70`,children:e(`templates.noVersions`)}),[...t].reverse().map(t=>(0,A.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-dark-border px-3 py-2`,children:[(0,A.jsxs)(b,{variant:t===n?`success`:`default`,children:[`v`,t]}),t===n&&(0,A.jsx)(`span`,{className:`text-meta text-accent-green`,children:e(`templates.statusReady`)}),(0,A.jsx)(`span`,{className:`text-meta text-dark-muted/60`,children:t===n?e(`templates.reRecordHint`,{v:t}):``}),(0,A.jsxs)(`div`,{className:`ms-auto flex items-center gap-1.5`,children:[(0,A.jsx)(`button`,{onClick:()=>i(t),className:`text-meta px-2 py-1 rounded border border-dark-border hover:border-accent-blue/50 transition-colors`,children:e(`templates.compare`)}),t!==n&&(0,A.jsxs)(`button`,{onClick:()=>o(t),className:`text-meta px-2 py-1 rounded border border-accent-blue/40 text-accent-blue hover:bg-accent-blue/10 transition-colors inline-flex items-center gap-1`,children:[(0,A.jsx)(ie,{className:`w-3 h-3`}),` `,e(`templates.reRecordAsNew`)]})]})]},t)),r&&(0,A.jsxs)(`div`,{className:`rounded-lg border border-dark-border p-3`,children:[(0,A.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,A.jsxs)(`span`,{className:`text-xs text-dark-muted`,children:[e(`templates.viewingVersion`),` v`,r.version]}),(0,A.jsx)(`button`,{onClick:a,className:`text-meta text-dark-muted hover:text-dark-text`,children:e(`templates.cancel`)})]}),(0,A.jsx)(`pre`,{className:`p-3 rounded-lg bg-dark-bg text-badge font-mono text-dark-muted max-h-60 overflow-y-auto custom-scrollbar`,children:JSON.stringify({version:r.version,inputs:r.inputs,definition:r.definition},null,2)})]})]})}var L={explore:`info`,plan:`default`,execute:`success`,verify:`warning`,summarize:`info`,generic:`default`},R={explore:`templates.roleExplore`,plan:`templates.rolePlan`,execute:`templates.roleExecute`,verify:`templates.roleVerify`,summarize:`templates.roleSummarize`,generic:`templates.roleGeneric`};function z(e){let t=e.metadata?.role;return typeof t==`string`?t:e.type}function Ne(e){let t=new Map(e.map(e=>[e.id,e])),n=new Set,r=[],i=[...e];for(;i.length>0;){let e=i.filter(e=>(e.dependencies??[]).every(e=>n.has(e)||!t.has(e)));if(e.length===0){r.push(...i);break}for(let t of e)r.push(t),n.add(t.id);i=i.filter(e=>!n.has(e.id))}return r}function B(e){let t=[];for(let n of e)t.push(n),Array.isArray(n.children)&&n.children.length&&t.push(...B(n.children));return t}function Pe(e,t){for(let n of e)t.set(n.id,t.size+1),Array.isArray(n.children)&&n.children.length&&Pe(n.children,t)}function Fe({nodes:e,allById:t,indexById:n}){let{t:r}=g();return(0,A.jsx)(A.Fragment,{children:e.map((i,a)=>{let o=z(i),s=L[o]||`default`,c=De(i),l=R[o],ee=c?r(c):l?r(l):o,u=(i.dependencies??[]).map(e=>t.get(e)?.title||e).filter((e,t,n)=>n.indexOf(e)===t);return(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(`div`,{className:`flex gap-2.5`,children:[(0,A.jsxs)(`div`,{className:`flex flex-col items-center shrink-0`,children:[(0,A.jsx)(`span`,{className:`w-6 h-6 rounded-full grid place-items-center bg-dark-border/60 text-dark-muted text-badge font-semibold shrink-0`,children:n.get(i.id)??a+1}),a<e.length-1&&(0,A.jsx)(`span`,{className:`w-px flex-1 bg-dark-border/70 my-0.5`})]}),(0,A.jsxs)(`div`,{className:`flex-1 min-w-0 mb-1.5 rounded-lg border border-dark-border bg-dark-bg/60 overflow-hidden`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-2 px-2.5 py-1.5`,children:[(0,A.jsx)(d,{size:12,className:v(`shrink-0`,o===`verify`?`text-accent-yellow`:o===`explore`?`text-accent-blue`:`text-dark-muted`)}),(0,A.jsx)(`span`,{className:`text-xs font-medium text-dark-text truncate flex-1`,children:i.title}),(0,A.jsx)(b,{size:`sm`,variant:s,children:ee})]}),i.description&&(0,A.jsx)(`p`,{className:`px-2.5 pb-1.5 text-meta text-dark-muted leading-relaxed`,children:i.description}),u.length>0&&(0,A.jsxs)(`div`,{className:`px-2.5 pb-2 flex items-center flex-wrap gap-1`,children:[(0,A.jsx)(ne,{size:11,className:`text-dark-muted/60 shrink-0`}),u.map(e=>(0,A.jsx)(`span`,{className:`text-badge px-1.5 py-0.5 rounded bg-dark-hover text-dark-muted truncate max-w-[16rem]`,children:e},e))]})]})]}),Array.isArray(i.children)&&i.children.length>0&&(0,A.jsx)(`div`,{className:`ms-3 ps-3 border-s-2 border-dark-border/60`,children:(0,A.jsx)(Fe,{nodes:i.children,allById:t,indexById:n})})]},i.id)})})}function Ie({definition:e}){let{t}=g(),n=(0,x.useMemo)(()=>Ne(e.nodes||[]),[e.nodes]),r=(0,x.useMemo)(()=>new Map(B(e.nodes||[]).map(e=>[e.id,e])),[e.nodes]),i=(0,x.useMemo)(()=>{let t=new Map;return Pe(e.nodes||[],t),t},[e.nodes]);return n.length===0?(0,A.jsx)(`p`,{className:`text-xs text-dark-muted`,children:t(`templates.noNodes`)}):(0,A.jsx)(`div`,{className:`space-y-0`,children:(0,A.jsx)(Fe,{nodes:n,allById:r,indexById:i})})}function V(e){let t=[];for(let n of e)t.push(n),Array.isArray(n.children)&&n.children.length&&t.push(...V(n.children));return t}function Le(e,t){let n=new Set,r=(e,i)=>{for(let a of e){let e=i||a.id===t;e&&n.add(a.id),Array.isArray(a.children)&&a.children.length&&r(a.children,e)}};return r(e,!1),n}function Re(e){let t=new Set(V(e).map(e=>e.id)),n=1;for(;t.has(`task-${n}`);)n++;return`task-${n}`}function H(e,t,n){return e.map(e=>e.id===t?{...e,...n}:Array.isArray(e.children)&&e.children.length?{...e,children:H(e.children,t,n)}:e)}function ze(e,t){let n=e=>e.filter(e=>e.id!==t).map(e=>({...e,dependencies:(e.dependencies??[]).filter(e=>e!==t),children:Array.isArray(e.children)&&e.children.length?n(e.children):e.children}));return n(e)}function U(e,t,n){let r=new Date().toISOString(),i={id:Re(e),title:n?.title??``,description:n?.description??``,type:n?.type??`task`,status:`pending`,dependencies:[],priority:5,createdAt:r,updatedAt:r};if(!t)return[...e,i];let a=e=>e.map(e=>e.id===t?{...e,children:[...Array.isArray(e.children)?e.children:[],i]}:Array.isArray(e.children)&&e.children.length?{...e,children:a(e.children)}:e);return a(e)}var Be=[`task`,`agent`,`parallel`,`pipeline`,`phase`,`condition`,`loop`,`checkpoint`],W=new Set([`parallel`,`pipeline`,`phase`,`condition`,`loop`,`checkpoint`]),Ve=[`string`,`number`,`select`,`boolean`,`folder`,`connector`];function G(e){return O[e]??(e===`agent`?`templates.editorTypeAgent`:`templates.editorTypeTask`)}function He(e,t){return W.has(t)?e(O[t]??t):e(G(t))}function K(e){let{t}=g(),{node:n,index:r,depth:i,depOptions:a,definition:o,onChange:s,onRemove:c,onAddChild:l,onDepAdd:u,onDepRemove:d}=e,te=n.dependencies??[],f=Array.isArray(n.children)&&n.children.length>0,re=W.has(n.type);return(0,A.jsxs)(`div`,{className:Ue(i)+` rounded-lg border border-dark-border bg-dark-bg/60`,"data-node-id":n.id,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-2 px-2.5 py-1.5`,children:[(0,A.jsx)(`span`,{className:`text-badge text-dark-muted/70 shrink-0 w-4 text-end`,children:r}),(0,A.jsx)(`input`,{value:n.title,onChange:e=>s({title:e.target.value}),placeholder:t(`templates.editorNodeTitlePlaceholder`),"aria-label":t(`templates.editorNodeTitlePlaceholder`),className:`flex-1 min-w-[120px] px-2 py-1 rounded-md bg-dark-surface border border-dark-border text-xs text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`}),(0,A.jsx)(`span`,{className:`text-badge font-mono text-dark-muted/50 shrink-0 hidden xl:inline`,title:n.id,children:n.id}),(0,A.jsx)(`select`,{value:n.type,onChange:e=>s({type:e.target.value}),"aria-label":t(`templates.editorInputType`),className:`shrink-0 px-1.5 py-1 rounded-md bg-dark-surface border border-dark-border text-meta text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`,children:Be.map(e=>(0,A.jsx)(`option`,{value:e,children:He(t,e)},e))}),(0,A.jsx)(`button`,{onClick:c,className:`p-1 rounded-md text-dark-muted hover:text-accent-red hover:bg-dark-hover transition-colors shrink-0`,title:t(`templates.editorDeleteNode`),"aria-label":`${t(`templates.editorDeleteNode`)} ${n.title||n.id}`,children:(0,A.jsx)(ee,{size:12})})]}),(0,A.jsxs)(`div`,{className:`px-2.5 pb-2 space-y-1.5`,children:[(0,A.jsx)(`textarea`,{value:n.description,onChange:e=>s({description:e.target.value}),rows:2,placeholder:t(`templates.editorNodeDescPlaceholder`),"aria-label":`${t(`templates.editorNodeDescPlaceholder`)} ${n.id}`,className:`w-full px-2 py-1 rounded-md bg-dark-surface border border-dark-border text-meta text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue placeholder:text-dark-muted/40`}),(0,A.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-wrap`,children:[(0,A.jsx)(ne,{size:11,className:`text-dark-muted/60 shrink-0`}),(0,A.jsx)(`span`,{className:`text-meta text-dark-muted shrink-0`,children:t(`templates.editorDepsLabel`)}),te.length===0&&(0,A.jsx)(`span`,{className:`text-meta text-dark-muted/50`,children:t(`templates.editorDepsNone`)}),te.map(e=>{let n=B(o.nodes??[]).find(t=>t.id===e);return(0,A.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-meta px-1.5 py-0.5 rounded bg-accent-blue/10 text-accent-blue`,children:[n?.title||e,(0,A.jsx)(`button`,{onClick:()=>d(e),className:`hover:text-accent-red`,"aria-label":`${t(`templates.editorDepsRemove`)} ${n?.title||e}`,children:`✕`})]},e)}),(0,A.jsxs)(`select`,{value:``,onChange:e=>{e.target.value&&u(e.target.value)},"aria-label":t(`templates.editorDepsAdd`),className:`ms-auto px-1.5 py-0.5 rounded-md bg-dark-surface border border-dark-border text-meta text-dark-muted focus:outline-none focus:ring-1 focus:ring-accent-blue`,children:[(0,A.jsx)(`option`,{value:``,children:t(`templates.editorDepsAdd`)}),a.filter(e=>!te.includes(e.id)).map(e=>(0,A.jsx)(`option`,{value:e.id,children:e.title||e.id},e.id))]}),(0,A.jsxs)(`label`,{className:`ms-auto inline-flex items-center gap-1 text-meta text-dark-muted`,children:[t(`templates.editorPriority`),(0,A.jsx)(`input`,{type:`number`,value:n.priority,onChange:e=>s({priority:Number(e.target.value)||0}),className:`w-14 px-1.5 py-0.5 rounded-md bg-dark-surface border border-dark-border text-meta text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`})]})]})]}),(re||f)&&(0,A.jsxs)(`div`,{className:`ms-3 ps-3 pb-2 border-s-2 border-dark-border/60`,children:[f&&(0,A.jsx)(q,{nodes:n.children,depth:i+1,definition:o,onChangeNodes:e=>s({children:e})}),(0,A.jsxs)(`button`,{onClick:l,className:`mt-1 inline-flex items-center gap-1 text-meta text-dark-muted hover:text-accent-blue transition-colors`,children:[(0,A.jsx)(p,{size:11}),` `,t(`templates.editorAddChild`)]})]})]})}function Ue(e){return e>0?`ms-3`:``}function q({nodes:e,depth:t,definition:n,onChangeNodes:r}){let{t:i}=g(),a=(0,x.useMemo)(()=>B(n.nodes??[]),[n.nodes]);return(0,A.jsxs)(`div`,{className:`space-y-2`,children:[e.map((i,o)=>{let s=Le(n.nodes??[],i.id),c=a.filter(e=>!s.has(e.id));return(0,A.jsx)(`div`,{children:(0,A.jsx)(K,{node:i,index:o+1,depth:t,depOptions:c,definition:n,onChange:t=>r(H(e,i.id,t)),onRemove:()=>r(ze(e,i.id)),onAddChild:()=>r(U(e,i.id)),onDepAdd:t=>r(H(e,i.id,{dependencies:[...i.dependencies??[],t]})),onDepRemove:t=>r(H(e,i.id,{dependencies:(i.dependencies??[]).filter(e=>e!==t)}))})},i.id)}),e.length===0&&(0,A.jsx)(`p`,{className:`text-meta text-dark-muted/50`,children:i(`templates.editorEmptyLevel`)})]})}function We({inputs:e,onChange:t}){let{t:n}=g(),r=(n,r)=>{t(e.map((e,t)=>t===n?{...e,...r}:e))},i=()=>{let n=new Set(e.map(e=>e.name)),r=1;for(;n.has(`input_${r}`);)r++;t([...e,{name:`input_${r}`,label:``,type:`string`}])},a=n=>t(e.filter((e,t)=>t!==n));return(0,A.jsxs)(`div`,{className:`border border-dark-border rounded-lg overflow-hidden`,children:[(0,A.jsxs)(`div`,{className:`px-3 py-2 bg-dark-surface border-b border-dark-border flex items-center gap-2`,children:[(0,A.jsx)(`span`,{className:`text-xs font-semibold text-dark-text`,children:n(`templates.editorInputsTitle`)}),(0,A.jsx)(`span`,{className:`ms-auto text-badge text-dark-muted`,children:n(`templates.confirmCount`,{n:e.length})})]}),(0,A.jsxs)(`div`,{className:`p-2.5 space-y-1.5`,children:[e.length===0&&(0,A.jsx)(`p`,{className:`text-meta text-dark-muted/50`,children:n(`templates.editorInputsEmpty`)}),e.map((e,t)=>(0,A.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-wrap`,children:[(0,A.jsx)(`input`,{value:e.name,onChange:e=>r(t,{name:e.target.value}),placeholder:n(`templates.editorInputName`),"aria-label":`${n(`templates.editorInputName`)} ${t+1}`,className:`w-28 px-2 py-1 rounded-md bg-dark-surface border border-dark-border text-meta font-mono text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`}),(0,A.jsx)(`input`,{value:e.label,onChange:e=>r(t,{label:e.target.value}),placeholder:n(`templates.editorInputLabel`),"aria-label":`${n(`templates.editorInputLabel`)} ${t+1}`,className:`flex-1 min-w-[80px] px-2 py-1 rounded-md bg-dark-surface border border-dark-border text-meta text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`}),(0,A.jsx)(`select`,{value:e.type,onChange:e=>r(t,{type:e.target.value}),"aria-label":`${n(`templates.editorInputType`)} ${t+1}`,className:`px-1.5 py-1 rounded-md bg-dark-surface border border-dark-border text-meta text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`,children:Ve.map(e=>(0,A.jsx)(`option`,{value:e,children:e},e))}),(0,A.jsxs)(`label`,{className:`inline-flex items-center gap-1 text-meta text-dark-muted shrink-0`,children:[(0,A.jsx)(`input`,{type:`checkbox`,checked:!!e.required,onChange:e=>r(t,{required:e.target.checked}),"aria-label":`${n(`templates.editorInputRequired`)} ${t+1}`}),n(`templates.editorInputRequired`)]}),(0,A.jsx)(`input`,{value:e.default===void 0||e.default===null?``:String(e.default),onChange:n=>{let i=n.target.value;i===``?r(t,{default:void 0}):e.type===`number`&&Number.isFinite(Number(i))?r(t,{default:Number(i)}):e.type===`boolean`?r(t,{default:i===`true`}):r(t,{default:i})},placeholder:n(`templates.editorInputDefault`),"aria-label":`${n(`templates.editorInputDefault`)} ${t+1}`,className:`w-24 px-2 py-1 rounded-md bg-dark-surface border border-dark-border text-meta text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`}),(0,A.jsx)(`button`,{onClick:()=>a(t),className:`p-1 rounded-md text-dark-muted hover:text-accent-red hover:bg-dark-hover transition-colors`,title:n(`templates.editorInputRemove`),"aria-label":`${n(`templates.editorInputRemove`)} ${e.name||t+1}`,children:(0,A.jsx)(ee,{size:12})})]},t)),(0,A.jsxs)(`button`,{onClick:i,className:`inline-flex items-center gap-1 text-meta text-dark-muted hover:text-accent-blue transition-colors`,children:[(0,A.jsx)(p,{size:11}),` `,n(`templates.editorInputsAdd`)]})]})]})}function Ge({definition:e,inputs:n,issues:r,onDefinitionChange:i,onInputsChange:a}){let{t:o}=g(),s=e.nodes??[],c=(0,x.useMemo)(()=>B(s),[s]),l=t=>{i({...e,nodes:t,updatedAt:new Date().toISOString()})};return(0,A.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-[3fr_2fr] gap-4 items-start`,children:[(0,A.jsxs)(`section`,{className:`border border-dark-border rounded-lg overflow-hidden`,children:[(0,A.jsxs)(`div`,{className:`px-3 py-2 bg-dark-surface border-b border-dark-border flex items-center gap-2`,children:[(0,A.jsx)(t,{size:13,className:`text-accent-blue shrink-0`}),(0,A.jsx)(`span`,{className:`text-xs font-semibold text-dark-text`,children:o(`templates.editorNodesTitle`)}),(0,A.jsx)(`span`,{className:`text-badge text-dark-muted`,children:o(`templates.editorNodeCount`,{n:c.length})}),(0,A.jsxs)(`button`,{onClick:()=>l(U(s)),className:`ms-auto inline-flex items-center gap-1 text-meta px-2 py-1 rounded-md border border-dark-border text-dark-muted hover:text-accent-blue hover:border-accent-blue/40 transition-colors`,children:[(0,A.jsx)(p,{size:11}),` `,o(`templates.editorAddNode`)]})]}),(0,A.jsxs)(`div`,{className:`p-2.5 space-y-2`,children:[(0,A.jsx)(q,{nodes:s,depth:0,definition:e,onChangeNodes:l}),s.length===0&&(0,A.jsxs)(`button`,{onClick:()=>l(U(s)),className:`w-full border border-dashed border-dark-border rounded-lg py-3 text-xs text-dark-muted hover:text-accent-blue hover:border-accent-blue/40 transition-colors`,children:[(0,A.jsx)(p,{size:12,className:`inline me-1`}),` `,o(`templates.editorAddNode`)]})]})]}),(0,A.jsxs)(`section`,{className:`space-y-3 min-w-0`,children:[(0,A.jsxs)(`div`,{className:`border border-dark-border rounded-lg overflow-hidden`,children:[(0,A.jsx)(`div`,{className:`px-3 py-2 bg-dark-surface border-b border-dark-border`,children:(0,A.jsx)(`span`,{className:`text-xs font-semibold text-dark-text`,children:o(`templates.editorPreviewTitle`)})}),(0,A.jsx)(`div`,{className:`p-2.5`,children:(0,A.jsx)(Ie,{definition:e})})]}),r.length>0&&(0,A.jsxs)(`div`,{className:`rounded-lg border border-accent-yellow/40 bg-accent-yellow/5 px-3 py-2 space-y-1`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs text-accent-yellow font-medium`,children:[(0,A.jsx)(f,{size:13}),` `,o(`templates.editorValidationIssues`)]}),r.map((e,t)=>(0,A.jsx)(`div`,{className:`text-meta text-dark-muted`,children:o(e.key,e.params)},t))]}),r.length===0&&c.length>0&&(0,A.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,A.jsx)(b,{size:`sm`,variant:`success`,children:o(`templates.editorValidationOk`)}),(0,A.jsx)(`span`,{className:`text-meta text-dark-muted/60`,children:o(`templates.editorAdvancedSyncHint`)})]}),(0,A.jsx)(We,{inputs:n,onChange:a})]})]})}var Ke=/<<input:([A-Za-z][A-Za-z0-9_]*)>>/g;function qe(e){let t=[];for(let n of e)n&&typeof n==`object`&&(t.push(n),Array.isArray(n.children)&&n.children.length&&t.push(...qe(n.children)));return t}function Je(e){let t=new Map(e.map(e=>[e.id,e])),n=new Map(e.map(e=>[e.id,0]));for(let r of e)for(let e of r.dependencies||[])t.has(e)&&n.set(r.id,(n.get(r.id)??0)+1);let r=e.filter(e=>(n.get(e.id)??0)===0).map(e=>e.id),i=0;for(;r.length;){let t=r.pop();i++;for(let i of e)if((i.dependencies||[]).includes(t)){let e=(n.get(i.id)??0)-1;n.set(i.id,e),e===0&&r.push(i.id)}}return i<e.length}function Ye(e,t){let n=[];if(!e||!Array.isArray(e.nodes)||e.nodes.length===0)return n.push({key:`templates.validateNoNodes`}),n;let r=qe(e.nodes);if(r.length===0)return n.push({key:`templates.validateNoNodes`}),n;let i=new Set;for(let e of r)typeof e.id!=`string`||e.id===``?n.push({key:`templates.validateNodeNoId`}):(i.has(e.id)&&n.push({key:`templates.validateDupNodeId`,params:{id:e.id}}),i.add(e.id));let a=new Map(r.map(e=>[e.id,e]));for(let e of r)for(let t of e.dependencies||[])a.has(t)||n.push({key:`templates.validateDanglingDep`,params:{node:e.id,dep:t}});Je(r)&&n.push({key:`templates.validateCycle`});let o=new Set((t??[]).map(e=>e?.name).filter(e=>typeof e==`string`)),s=new Set;for(let e of r)for(let t of[e.title,e.description])if(typeof t==`string`)for(let e of t.matchAll(Ke)){let t=e[1];t&&!o.has(t)&&s.add(t)}for(let e of s)n.push({key:`templates.validateUndeclaredInput`,params:{name:e}});return n}function Xe(e,t,n){let r=new Date().toISOString();return{id:`wf_${Date.now()}`,title:e,description:``,nodes:[{id:`task-1`,title:t,description:n,type:`task`,status:`pending`,dependencies:[],priority:5,createdAt:r,updatedAt:r}],createdAt:r,updatedAt:r}}function J(e){let t=(e.nodes??[]).map(e=>({...e,dependencies:Array.isArray(e.dependencies)?e.dependencies:[]}));return{...e,nodes:t}}var Y=`__all__`;function Ze(e,t){if(!t)return;let n={};for(let r of e.inputs??[])r.type===`folder`&&r.default===void 0&&t&&(n[r.name]={value:t,label:t});return Object.keys(n).length>0?n:void 0}function Qe({t:e,detail:t,workspaceDir:n}){let r=(0,x.useMemo)(()=>D(t.definition,t.inputs?.length??0),[t.definition,t.inputs]);return r.nodeCount===0?null:(0,A.jsxs)(`div`,{className:`rounded-lg border border-dark-border bg-dark-bg/50 px-3 py-2.5 space-y-1.5`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap text-xs`,children:[(0,A.jsxs)(`span`,{className:`inline-flex items-center gap-1 font-medium text-dark-text`,children:[(0,A.jsx)(le,{size:13,className:r.readonly?`text-accent-green`:`text-accent-yellow`}),r.readonly?e(`templates.readonly`):e(`templates.writable`),` · `,r.readonly?e(`templates.riskLow`):e(`templates.riskMedium`)]}),(0,A.jsx)(`span`,{className:`text-dark-muted`,children:r.maxParallel>1?e(`templates.parallelCount`,{n:r.nodeCount,p:r.maxParallel}):e(`templates.stepCount`,{n:r.nodeCount})}),(0,A.jsx)(`span`,{className:`text-dark-muted`,children:r.inputCount>0?e(`templates.confirmCount`,{n:r.inputCount}):e(`templates.confirmCountNone`)})]}),n&&!r.readonly&&(0,A.jsxs)(`div`,{className:`text-meta text-dark-muted/70 truncate`,title:n,children:[e(`templates.writable`),`: `,n]})]})}var $e={saved:`templates.sourceSaved`,script:`templates.sourceScript`,handwritten:`templates.sourceHandwritten`};function et({onLaunch:e,workspaceDir:r}){let{t:i}=g(),[a,c]=(0,x.useState)([]),[u,d]=(0,x.useState)(null),[f,m]=(0,x.useState)(null),[ce,pe]=(0,x.useState)(!1),[S,C]=(0,x.useState)(``),[w,ye]=(0,x.useState)(``),[T,be]=(0,x.useState)(Y),[xe,Se]=(0,x.useState)(``),[E,Ce]=(0,x.useState)(``),[we,Te]=(0,x.useState)(``),[Ee,D]=(0,x.useState)(``),[O,k]=(0,x.useState)(``),[De,j]=(0,x.useState)(!1),[Oe,M]=(0,x.useState)(``),[ke,Ae]=(0,x.useState)(!1),[N,je]=(0,x.useState)([]),[P,F]=(0,x.useState)(!1),[I,L]=(0,x.useState)(null),[R,z]=(0,x.useState)(null),[Ne,B]=(0,x.useState)(null),[Pe,Fe]=(0,x.useState)(!1),[Ie,V]=(0,x.useState)(!1),[Le,Re]=(0,x.useState)(null),[H,ze]=(0,x.useState)(!1),U=(0,x.useRef)(u);U.current=u;let[Be,W]=(0,x.useState)(!0),[Ve,G]=(0,x.useState)(`overview`),[He,K]=(0,x.useState)(!1),[Ue,q]=(0,x.useState)([]),[We,Ke]=(0,x.useState)(null),qe=()=>{f&&(q(f.inputs??[]),Ke(J(f.definition))),W(!1)},Je=e=>{Ke(e),k(JSON.stringify(e,null,2)),j(!0),M(``)},et=e=>{q(e),D(JSON.stringify(e,null,2)),j(!0),M(``)},tt=e=>{try{let t=JSON.parse(e);t&&typeof t==`object`&&Array.isArray(t.nodes)&&Ke(J(t))}catch{}},nt=e=>{try{let t=JSON.parse(e);Array.isArray(t)&&q(t)}catch{}},rt=(0,x.useMemo)(()=>Ye(We??void 0,Ue),[We,Ue]),[it,at]=(0,x.useState)(!1),[ot,st]=(0,x.useState)(``),[ct,lt]=(0,x.useState)(``),[ut,dt]=(0,x.useState)(`general`),[ft,pt]=(0,x.useState)(`[]`),[mt,ht]=(0,x.useState)(()=>JSON.stringify(Xe(i(`templates.starterTitle`),i(`templates.starterNodeTitle`),i(`templates.starterNodeDesc`)),null,2)),[gt,X]=(0,x.useState)(``),[_t,vt]=(0,x.useState)([]),[yt,bt]=(0,x.useState)(null),[xt,St]=(0,x.useState)(!1),[Ct,wt]=(0,x.useState)(!1),[Tt,Et]=(0,x.useState)(``),[Dt,Ot]=(0,x.useState)(!1),[kt,Z]=(0,x.useState)(``),At=()=>{let e=Xe(i(`templates.starterTitle`),i(`templates.starterNodeTitle`),i(`templates.starterNodeDesc`));st(``),lt(``),dt(`general`),pt(`[]`),ht(JSON.stringify(e,null,2)),bt(e),vt([]),St(!1),X(``),wt(!1),Et(``),Ot(!1),Z(``),at(!0)},jt=async()=>{if(!Tt.trim())Z(i(`templates.aiPromptRequired`));else{Ot(!0),Z(``);try{let e=await y.workflows.synthesize(Tt.trim());if(e.success&&e.data){let t=J(e.data);st(e.data.title||``),lt(e.data.description||``),bt(t),vt([]),pt(`[]`),ht(JSON.stringify(t,null,2)),St(!1),wt(!1),X(``)}else Z(e.error||i(`templates.aiDraftFailed`))}catch(e){Z(e instanceof Error?e.message:String(e))}finally{Ot(!1)}}},Mt=e=>{bt(e),ht(JSON.stringify(e,null,2)),X(``)},Nt=e=>{vt(e),pt(JSON.stringify(e,null,2))},Pt=e=>{try{let t=JSON.parse(e);t&&typeof t==`object`&&Array.isArray(t.nodes)&&bt(J(t))}catch{}},Ft=e=>{try{let t=JSON.parse(e);Array.isArray(t)&&vt(t)}catch{}},It=(0,x.useMemo)(()=>Ye(yt??void 0,_t),[yt,_t]),Lt=async()=>{if(!ot.trim()){X(i(`templates.nameRequired`));return}let e,t;try{e=JSON.parse(ft),t=JSON.parse(mt)}catch(e){X(i(`templates.jsonParseFailed`,{error:e instanceof Error?e.message:String(e)}));return}if(!t||typeof t!=`object`||!Array.isArray(t.nodes)){X(i(`templates.invalidDefinition`));return}let n=Ye(t,Array.isArray(e)?e:[]);if(n.length>0){X(n.map(e=>i(e.key,e.params)).join(`;`));return}X(``);let r=await y.templates.create({name:ot.trim(),description:ct.trim(),category:ut.trim()||`general`,inputs:Array.isArray(e)?e:[],definition:J(t),source:{type:`handwritten`}});r.success&&r.data?(at(!1),d(r.data.id),Q()):X(r.error||i(`templates.createFailed`))},Q=(0,x.useCallback)(async()=>{let e=await y.templates.list();e.success&&e.data&&(c(e.data),u&&!e.data.some(e=>e.id===u)&&(d(null),m(null)))},[u]);(0,x.useEffect)(()=>{Q()},[]),(0,x.useEffect)(()=>{if(!u){m(null);return}let e=!1;return pe(!0),y.templates.get(u).then(t=>{e||(t.success&&t.data?(m(t.data),Se(t.data.name),Ce(t.data.description),Te(t.data.category),D(JSON.stringify(t.data.inputs,null,2)),k(JSON.stringify(t.data.definition,null,2)),q(t.data.inputs??[]),Ke(J(t.data.definition)),j(!1),M(``),F(!1),L(null),y.templates.versions(u).then(t=>{!e&&t.success&&t.data&&je(t.data)})):C(t.error||i(`templates.loadFailed`)))}).catch(()=>C(i(`templates.loadFailed`))).finally(()=>pe(!1)),()=>{e=!0}},[u]);let Rt=(0,x.useCallback)((e,t)=>i(e,{defaultValue:t}),[i]),zt=(0,x.useMemo)(()=>a.map(e=>ve(e,Rt)),[a,Rt]),Bt=(0,x.useMemo)(()=>{let e=new Set;for(let t of zt)t.builtin||e.add(t.category||i(`templates.uncategorized`));return[Y,...[...e].sort()]},[zt,i]),Vt=(0,x.useMemo)(()=>{let e=w.trim().toLowerCase();return zt.filter(t=>T!==Y&&_e(t,Rt)!==T?!1:!e||`${t.name} ${t.description} ${t.category}`.toLowerCase().includes(e))},[zt,w,T,Rt]),Ht=(0,x.useMemo)(()=>Bt.filter(e=>e!==Y),[Bt]),Ut=(0,x.useMemo)(()=>{let{userGroups:e,builtin:t}=he(Vt,e=>i(e));return t.length===0?e:[...e,[i(`templates.builtinGroup`),t]]},[Vt,i]),Wt=e=>{d(e),W(!0),Ae(!1),F(!1),L(null),B(null),z(null),K(!1),j(!1),M(``),G(`overview`)},Gt=e=>{e!==u&&(!Be&&De?Re(e):Wt(e))},$=e=>t=>{e(t),j(!0),M(``)},Kt=async()=>{if(!u||!f||H)return;let e=u,t,n;try{t=JSON.parse(Ee),n=JSON.parse(O)}catch(e){M(i(`templates.jsonParseFailed`,{error:e instanceof Error?e.message:String(e)}));return}let r=Ye(n,Array.isArray(t)?t:[]);if(r.length>0)M(r.map(e=>i(e.key,e.params)).join(`;`));else{M(``),ze(!0);try{let r=await y.templates.update(e,{name:xe,description:E,category:we,inputs:Array.isArray(t)?t:[],definition:J(n)});if(U.current!==e)return;r.success&&r.data?(m(r.data),j(!1),M(i(`templates.savedVersion`,{version:r.data.version})),Q(),y.templates.versions(e).then(t=>{U.current===e&&t.success&&t.data&&je(t.data)})):M(r.error||i(`templates.saveFailed`))}finally{ze(!1)}}},qt=async e=>{if(!u)return;let t=u;Fe(!0);try{let n=await y.templates.render(t,e);if(U.current!==t)return;B({ok:n.success,json:n.success?JSON.stringify(n.data,null,2):void 0,error:n.success?void 0:n.error||i(`templates.renderFailed`)})}catch(e){B({ok:!1,error:e instanceof Error?e.message:i(`templates.renderFailed`)})}finally{Fe(!1)}},Jt=t=>{f&&(e(f,t),z(null))},Yt=e=>{f&&(B(null),z({mode:e}))},Xt=async e=>{if(!u)return;let t=await y.templates.getVersion(u,e);t.success&&t.data&&L(t.data)};return(0,A.jsxs)(`div`,{className:`flex flex-1 min-h-0 bg-dark-bg`,children:[(0,A.jsxs)(`div`,{className:`w-80 shrink-0 border-e border-dark-border overflow-y-auto custom-scrollbar p-3`,children:[(0,A.jsxs)(`div`,{className:`flex items-center justify-between mb-2 px-1`,children:[(0,A.jsx)(`span`,{className:`text-xs uppercase tracking-wider text-dark-muted font-medium`,children:i(`templates.workflowLibraryTitle`)}),(0,A.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,A.jsxs)(`button`,{onClick:At,className:`p-1.5 rounded-lg text-accent-blue hover:bg-accent-blue/10 transition-colors inline-flex items-center gap-1 text-xs`,title:i(`templates.manualCreateTitle`),children:[(0,A.jsx)(p,{className:`w-4 h-4`}),(0,A.jsx)(`span`,{className:`hidden xl:inline`,children:i(`templates.manualCreate`)})]}),(0,A.jsx)(`button`,{onClick:()=>{C(``),Q()},className:`p-1.5 rounded-lg text-dark-muted hover:text-dark-text hover:bg-dark-hover transition-colors`,title:i(`templates.refresh`),children:(0,A.jsx)(ie,{className:`w-4 h-4`})})]})]}),(0,A.jsxs)(`div`,{className:`relative mb-2`,children:[(0,A.jsx)(ae,{size:13,className:`absolute start-2.5 top-1/2 -translate-y-1/2 text-dark-muted/60`}),(0,A.jsx)(`input`,{value:w,onChange:e=>ye(e.target.value),placeholder:i(`templates.searchPlaceholder`),className:`w-full ps-8 pe-3 py-1.5 rounded-lg bg-dark-bg border border-dark-border text-xs text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue placeholder:text-dark-muted/50`})]}),(0,A.jsx)(`div`,{className:`flex items-center gap-1.5 mb-3 flex-wrap`,children:Bt.map(e=>(0,A.jsx)(`button`,{onClick:()=>be(e),className:v(`text-meta px-2 py-0.5 rounded-full border transition-colors`,T===e?`border-accent-blue text-accent-blue bg-accent-blue/10`:`border-dark-border text-dark-muted hover:border-dark-muted/50 hover:text-dark-text`),children:e===Y?i(`templates.filterAll`):e},e))}),S&&(0,A.jsx)(`div`,{className:`text-xs text-accent-red mb-2`,children:S}),Ut.length===0&&!S&&(0,A.jsx)(`div`,{className:`text-xs text-dark-muted px-1 py-4 text-center`,children:i(w||T!==Y?`templates.noMatchTemplates`:`templates.emptyTemplates`)}),Ut.map(([e,t])=>(0,A.jsxs)(`div`,{className:`mb-4`,children:[(0,A.jsx)(`div`,{className:`px-1 mb-1.5 text-badge uppercase tracking-wider text-dark-muted/70`,children:e}),(0,A.jsx)(`div`,{className:`space-y-1.5`,children:t.map(e=>{let t=u===e.id,r=e.status&&e.status!==`ready`?e.status:null,a=r===`degraded`?`templates.degradedBadge`:r===`draft`?`templates.statusDraft`:r===`deprecated`?`templates.statusDeprecated`:r===`archived`?`templates.statusArchived`:null;return(0,A.jsxs)(`button`,{onClick:()=>Gt(e.id),className:v(`w-full text-start px-3 py-2.5 rounded-lg border transition-colors`,t?`bg-accent-blue/10 border-accent-blue/30 text-dark-text`:`border-transparent hover:bg-dark-hover text-dark-muted`),children:[(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,A.jsx)(`span`,{className:`text-sm font-medium truncate`,children:e.name}),(0,A.jsxs)(`span`,{className:`flex items-center gap-1 shrink-0`,children:[a&&(0,A.jsx)(b,{size:`sm`,variant:r===`degraded`?`warning`:`default`,children:i(a)}),(0,A.jsxs)(b,{size:`sm`,variant:`info`,children:[`v`,e.version]})]})]}),e.description&&(0,A.jsx)(`div`,{className:`text-meta text-dark-muted/70 truncate mt-0.5`,children:e.description}),(0,A.jsxs)(`div`,{className:`flex items-center gap-1.5 mt-2 flex-wrap`,children:[e.summary&&(0,A.jsxs)(b,{size:`sm`,variant:e.summary.readonly?`success`:`warning`,className:`gap-1`,children:[e.summary.readonly?(0,A.jsx)(le,{size:10}):(0,A.jsx)(n,{size:10}),e.summary.readonly?`${i(`templates.readonly`)} · ${i(`templates.riskLow`)}`:`${i(`templates.writable`)} · ${i(`templates.riskMedium`)}`]}),(0,A.jsx)(b,{size:`sm`,variant:`default`,children:e.inputs.length>0?i(`templates.confirmCount`,{n:e.inputs.length}):i(`templates.confirmCountNone`)}),(0,A.jsxs)(`span`,{className:`ms-auto inline-flex items-center gap-0.5 text-badge text-accent-blue`,children:[i(t?`templates.viewing`:`templates.view`),!t&&(0,A.jsx)(s,{size:10})]})]})]},e.id)})})]},e))]}),(()=>{if(!u)return(0,A.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-sm text-dark-muted`,children:(0,A.jsxs)(`div`,{className:`text-center px-8`,children:[(0,A.jsx)(t,{size:36,className:`mx-auto mb-2 opacity-30 text-dark-muted`}),(0,A.jsx)(`p`,{children:i(`templates.selectTemplateHint`)}),(0,A.jsx)(`p`,{className:`text-xs text-dark-muted/60 mt-1`,children:i(`templates.workflowLibraryHint`)})]})});if(ce||!f)return(0,A.jsxs)(`div`,{className:`flex-1 flex items-center justify-center text-dark-muted`,children:[(0,A.jsx)(o,{className:`w-4 h-4 animate-spin me-2`}),` `,i(`templates.loading`)]});let e=f.definition?.nodes?.length??0,n=f.inputs?.length??0,r=$e[f.source.type];return Be?(0,A.jsx)(Me,{t:i,detail:ve(f,Rt),nodeCount:e,inputCount:n,sourceLabelKey:r,detailTab:Ve,onTabChange:G,onReplay:()=>{z({mode:`launch`}),K(!1)},onPreflight:()=>{z({mode:`preview`}),K(!1)},onEdit:()=>{qe(),K(!1)},onDelete:()=>V(!0),onExport:()=>{let e=new Blob([JSON.stringify(f,null,2)],{type:`application/json`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`${f.id}.template.json`,n.click(),URL.revokeObjectURL(t)},onCopyId:async()=>{try{await navigator.clipboard.writeText(f.id),M(i(`templates.copied`))}catch{}},onToggleAdvanced:()=>{qe(),Ae(!0),K(!1)},onToggleVersions:()=>{G(`history`),K(!1),F(!1)},onReRecord:async e=>{let t=await y.templates.getVersion(u,e);if(t.success&&t.data){let e=t.data,n=await y.templates.update(u,{name:e.name,description:e.description,category:e.category,inputs:e.inputs,definition:e.definition});n.success&&n.data&&(m(n.data),G(`history`),Q(),y.templates.versions(u).then(e=>{e.success&&e.data&&je(e.data)}))}},versions:N,historyView:I,onLoadVersion:Xt,onClearHistory:()=>L(null),onRefresh:Q,menuOpen:He,setMenuOpen:K,saveMsg:Oe}):(0,A.jsx)(`div`,{className:`flex-1 min-w-0 flex flex-col overflow-y-auto custom-scrollbar`,children:(0,A.jsxs)(`div`,{className:`p-5 space-y-4`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,A.jsxs)(`button`,{onClick:()=>{W(!0),j(!1),Ae(!1),F(!1)},className:`inline-flex items-center gap-1 text-xs text-dark-muted hover:text-dark-text transition-colors shrink-0`,children:[`← `,i(`templates.backToView`)]}),(0,A.jsx)(`input`,{value:xe,onChange:e=>$(Se)(e.target.value),className:`flex-1 min-w-[200px] px-3 py-1.5 rounded-lg bg-dark-bg border border-dark-border text-sm text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`}),(0,A.jsxs)(b,{variant:`info`,children:[`v`,f.version]}),(0,A.jsx)(b,{variant:f.source.type===`saved`?`success`:`default`,children:r?i(r):f.source.type}),(0,A.jsx)(`button`,{onClick:()=>V(!0),className:`p-2 rounded-lg text-dark-muted hover:text-accent-red hover:bg-dark-hover transition-colors`,title:i(`templates.deleteTemplate`),children:(0,A.jsx)(ee,{className:`w-4 h-4`})})]}),(0,A.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,A.jsxs)(`label`,{className:`block`,children:[(0,A.jsxs)(`span`,{className:`text-xs text-dark-muted mb-1 block`,children:[i(`templates.categoryLabel`),(0,A.jsx)(`span`,{className:`text-badge text-dark-muted/60 ms-1.5`,children:i(`templates.categoryCreateHint`)})]}),(0,A.jsx)(`input`,{value:we,onChange:e=>$(Te)(e.target.value),list:`template-category-suggestions`,className:`w-full px-3 py-1.5 rounded-lg bg-dark-bg border border-dark-border text-sm text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`}),(0,A.jsx)(`datalist`,{id:`template-category-suggestions`,children:Ht.map(e=>(0,A.jsx)(`option`,{value:e},e))})]}),(0,A.jsxs)(`label`,{className:`block`,children:[(0,A.jsx)(`span`,{className:`text-xs text-dark-muted mb-1 block`,children:i(`templates.descriptionLabel`)}),(0,A.jsx)(`input`,{value:E,onChange:e=>$(Ce)(e.target.value),className:`w-full px-3 py-1.5 rounded-lg bg-dark-bg border border-dark-border text-sm text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`})]})]}),(0,A.jsxs)(`div`,{className:`flex items-center gap-4 flex-wrap text-xs text-dark-muted`,children:[(0,A.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,A.jsx)(ne,{size:13,className:`text-accent-blue`}),i(`templates.nodeCount`,{n:e})]}),(0,A.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,A.jsx)(s,{size:13,className:`text-accent-green`}),i(`templates.topologyHint`)]}),n>0&&(0,A.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,A.jsx)(h,{size:13,className:`text-accent-yellow`}),i(`templates.inputCount`,{n})]}),(0,A.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,A.jsx)(oe,{size:13,className:`text-dark-muted/60`}),new Date(f.updatedAt).toLocaleString()]})]}),We&&(0,A.jsx)(Ge,{definition:We,inputs:Ue,issues:rt,onDefinitionChange:Je,onInputsChange:et}),(0,A.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,A.jsx)(_,{variant:`accent`,leftIcon:(0,A.jsx)(te,{className:`w-4 h-4`}),onClick:()=>Yt(`launch`),children:i(`templates.launchWithTemplate`)}),(0,A.jsxs)(`button`,{onClick:()=>Yt(`preview`),className:`px-4 py-2 rounded-lg border border-dark-border text-dark-text hover:bg-dark-hover transition-colors inline-flex items-center gap-1.5`,children:[(0,A.jsx)(ue,{className:`w-4 h-4`}),` `,i(`templates.testRun`)]}),(0,A.jsxs)(`button`,{onClick:()=>F(e=>!e),className:`px-4 py-2 rounded-lg border border-dark-border text-dark-text hover:bg-dark-hover transition-colors inline-flex items-center gap-1.5`,children:[(0,A.jsx)(se,{className:`w-4 h-4`}),` `,i(`templates.versionHistory`)]}),(0,A.jsx)(_,{variant:`accent`,leftIcon:(0,A.jsx)(l,{className:`w-4 h-4`}),onClick:Kt,loading:H,disabled:!De||rt.length>0,title:rt.length>0?i(`templates.editorValidationIssues`):void 0,children:i(`templates.saveChanges`)}),(0,A.jsxs)(`button`,{onClick:()=>Ae(e=>!e),className:`px-4 py-2 rounded-lg border border-dark-border text-dark-text hover:bg-dark-hover transition-colors inline-flex items-center gap-1.5`,children:[(0,A.jsx)(h,{className:`w-4 h-4`}),` `,i(`templates.advancedJson`)]}),(0,A.jsx)(`button`,{onClick:Q,className:`p-2 rounded-lg text-dark-muted hover:text-dark-text hover:bg-dark-hover transition-colors`,title:i(`templates.refresh`),children:(0,A.jsx)(ie,{className:`w-4 h-4`})}),Oe&&(0,A.jsx)(`span`,{className:`text-xs text-dark-muted`,children:Oe})]}),ke&&(0,A.jsxs)(`div`,{className:`border border-dark-border rounded-lg p-3 space-y-3`,children:[(0,A.jsxs)(`label`,{className:`block`,children:[(0,A.jsx)(`span`,{className:`text-xs text-dark-muted mb-1 block`,children:i(`templates.inputsSchemaLabel`)}),(0,A.jsx)(`textarea`,{value:Ee,onChange:e=>{$(D)(e.target.value),nt(e.target.value)},rows:5,spellCheck:!1,className:`w-full px-3 py-2 rounded-lg bg-dark-bg border border-dark-border text-xs font-mono text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`})]}),(0,A.jsxs)(`label`,{className:`block`,children:[(0,A.jsx)(`span`,{className:`text-xs text-dark-muted mb-1 block`,children:i(`templates.definitionLabel`)}),(0,A.jsx)(`textarea`,{value:O,onChange:e=>{$(k)(e.target.value),tt(e.target.value)},rows:10,spellCheck:!1,className:`w-full px-3 py-2 rounded-lg bg-dark-bg border border-dark-border text-xs font-mono text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`})]}),(0,A.jsx)(`p`,{className:`text-meta text-dark-muted/60`,children:i(`templates.editorAdvancedSyncHint`)})]}),P&&(0,A.jsxs)(`div`,{className:`border border-dark-border rounded-lg p-3 space-y-1.5`,children:[(0,A.jsx)(`div`,{className:`text-xs text-dark-muted mb-1`,children:i(`templates.versionSnapshotLabel`)}),N.length===0&&(0,A.jsx)(`div`,{className:`text-xs text-dark-muted/60`,children:i(`templates.noVersions`)}),N.map(e=>(0,A.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,A.jsxs)(`button`,{onClick:()=>Xt(e),className:`text-xs px-2 py-1 rounded border border-dark-border hover:border-accent-blue/50 transition-colors`,children:[`v`,e]}),I&&I.version===e&&(0,A.jsx)(`span`,{className:`text-xs text-dark-muted/60`,children:i(`templates.viewingVersion`)})]},e)),I&&(0,A.jsx)(`pre`,{className:`mt-2 p-3 rounded-lg bg-dark-bg text-badge font-mono text-dark-muted max-h-60 overflow-y-auto custom-scrollbar`,children:JSON.stringify({version:I.version,inputs:I.inputs,definition:I.definition},null,2)})]})]})})})(),R&&f&&(0,A.jsxs)(me,{isOpen:!0,onClose:()=>z(null),title:R.mode===`launch`?i(`templates.replayDrawerTitle`,{name:f.name}):i(`templates.previewModalTitle`,{name:f.name}),size:`md`,children:[(0,A.jsx)(ge,{template:f,onCancel:()=>z(null),onSubmit:R.mode===`launch`?Jt:qt,submitLabel:R.mode===`launch`?i(`templates.replayStart`):i(`templates.renderPreview`),submitIcon:R.mode===`launch`?(0,A.jsx)(s,{className:`w-3.5 h-3.5`}):void 0,busy:Pe,autoValues:Ze(f,r),preflightSummary:(0,A.jsx)(Qe,{t:i,detail:f,workspaceDir:r})}),R.mode===`preview`&&Ne&&(0,A.jsx)(`div`,{className:`mt-4`,children:Ne.ok?(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`div`,{className:`text-xs text-accent-green mb-1.5`,children:i(`templates.renderSuccess`)}),(0,A.jsx)(`pre`,{className:`p-3 rounded-lg bg-dark-bg text-badge font-mono text-dark-muted max-h-72 overflow-y-auto custom-scrollbar`,children:Ne.json})]}):(0,A.jsx)(`div`,{className:`text-xs text-accent-red`,children:Ne.error})})]}),(0,A.jsx)(fe,{isOpen:it,onClose:()=>at(!1),title:i(`templates.newTemplate`),size:`lg`,children:(0,A.jsxs)(`div`,{className:`space-y-4`,children:[(0,A.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,A.jsxs)(`label`,{className:`block`,children:[(0,A.jsx)(`span`,{className:`text-xs text-dark-muted mb-1 block`,children:i(`templates.nameLabel`)}),(0,A.jsx)(`input`,{value:ot,onChange:e=>st(e.target.value),placeholder:i(`templates.namePlaceholder`),className:`w-full px-3 py-1.5 rounded-lg bg-dark-bg border border-dark-border text-sm text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`})]}),(0,A.jsxs)(`label`,{className:`block`,children:[(0,A.jsx)(`span`,{className:`text-xs text-dark-muted mb-1 block`,children:i(`templates.categoryField`)}),(0,A.jsx)(`input`,{value:ut,onChange:e=>dt(e.target.value),className:`w-full px-3 py-1.5 rounded-lg bg-dark-bg border border-dark-border text-sm text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`})]})]}),(0,A.jsxs)(`label`,{className:`block`,children:[(0,A.jsx)(`span`,{className:`text-xs text-dark-muted mb-1 block`,children:i(`templates.descriptionField`)}),(0,A.jsx)(`input`,{value:ct,onChange:e=>lt(e.target.value),className:`w-full px-3 py-1.5 rounded-lg bg-dark-bg border border-dark-border text-sm text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`})]}),(0,A.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,A.jsxs)(`button`,{type:`button`,onClick:()=>{wt(!0),Z(``)},className:v(`px-3 py-1.5 rounded-lg border text-xs transition-colors inline-flex items-center gap-1.5`,Ct?`border-accent-blue text-accent-blue bg-accent-blue/10`:`border-dark-border text-dark-muted hover:border-dark-muted/50 hover:text-dark-text`),children:[(0,A.jsx)(re,{size:12}),` `,i(`templates.aiDraftTab`)]}),(0,A.jsxs)(`button`,{type:`button`,onClick:()=>wt(!1),className:v(`px-3 py-1.5 rounded-lg border text-xs transition-colors inline-flex items-center gap-1.5`,Ct?`border-dark-border text-dark-muted hover:border-dark-muted/50 hover:text-dark-text`:`border-accent-blue text-accent-blue bg-accent-blue/10`),children:[(0,A.jsx)(h,{size:12}),` `,i(`templates.editorManualTab`)]})]}),Ct?(0,A.jsxs)(`div`,{className:`space-y-2`,children:[(0,A.jsxs)(`label`,{className:`block`,children:[(0,A.jsx)(`span`,{className:`text-xs text-dark-muted mb-1 block`,children:i(`templates.aiPromptLabel`)}),(0,A.jsx)(`textarea`,{value:Tt,onChange:e=>Et(e.target.value),rows:4,spellCheck:!1,placeholder:i(`templates.aiPromptPlaceholder`),className:`w-full px-3 py-2 rounded-lg bg-dark-bg border border-dark-border text-xs text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`})]}),(0,A.jsx)(_,{variant:`accent`,onClick:()=>void jt(),loading:Dt,leftIcon:Dt?void 0:(0,A.jsx)(re,{className:`w-4 h-4`}),children:i(Dt?`templates.aiWorking`:`templates.generateWorkflow`)}),Dt&&(0,A.jsx)(`div`,{className:`text-xs text-dark-muted`,children:i(`templates.aiTimeHint`)}),kt&&(0,A.jsx)(`div`,{className:`text-xs text-accent-red`,children:kt})]}):(0,A.jsxs)(A.Fragment,{children:[yt&&(0,A.jsx)(Ge,{definition:yt,inputs:_t,issues:It,onDefinitionChange:Mt,onInputsChange:Nt}),(0,A.jsx)(`div`,{children:(0,A.jsxs)(`button`,{type:`button`,onClick:()=>St(e=>!e),className:`inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-dark-border text-xs text-dark-muted hover:text-dark-text hover:bg-dark-hover transition-colors`,children:[(0,A.jsx)(h,{size:12}),` `,i(`templates.advancedJson`)]})}),xt&&(0,A.jsxs)(`div`,{className:`space-y-3`,children:[(0,A.jsxs)(`label`,{className:`block`,children:[(0,A.jsx)(`span`,{className:`text-xs text-dark-muted mb-1 block`,children:i(`templates.inputsSchemaLabel`)}),(0,A.jsx)(`textarea`,{value:ft,onChange:e=>{pt(e.target.value),Ft(e.target.value)},rows:4,spellCheck:!1,className:`w-full px-3 py-2 rounded-lg bg-dark-bg border border-dark-border text-xs font-mono text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`})]}),(0,A.jsxs)(`label`,{className:`block`,children:[(0,A.jsx)(`span`,{className:`text-xs text-dark-muted mb-1 block`,children:i(`templates.definitionLabel`)}),(0,A.jsx)(`textarea`,{value:mt,onChange:e=>{ht(e.target.value),Pt(e.target.value)},rows:10,spellCheck:!1,className:`w-full px-3 py-2 rounded-lg bg-dark-bg border border-dark-border text-xs font-mono text-dark-text focus:outline-none focus:ring-1 focus:ring-accent-blue`})]}),(0,A.jsx)(`p`,{className:`text-meta text-dark-muted/60`,children:i(`templates.editorAdvancedSyncHint`)})]})]}),gt&&(0,A.jsx)(`div`,{className:`text-xs text-accent-red`,children:gt}),(0,A.jsxs)(`div`,{className:`flex justify-end gap-3`,children:[(0,A.jsx)(`button`,{onClick:()=>at(!1),className:`px-4 py-2 rounded-lg border border-dark-border text-dark-text hover:bg-dark-hover transition-colors`,children:i(`templates.cancel`)}),(0,A.jsx)(_,{variant:`accent`,onClick:()=>void Lt(),children:i(`templates.create`)})]})]})}),(0,A.jsx)(de,{isOpen:Ie,onClose:()=>V(!1),onConfirm:async()=>{if(!u)return;let e=u;(await y.templates.remove(e)).success&&U.current===e&&(je([]),F(!1),L(null),B(null),z(null),G(`overview`),W(!0),M(``),j(!1),d(null),V(!1),Q())},title:i(`templates.deleteTemplate`),message:i(`templates.deleteConfirm`,{name:f?.name||u||``}),confirmText:i(`templates.delete`),variant:`danger`}),(0,A.jsx)(de,{isOpen:Le!==null,onClose:()=>Re(null),onConfirm:()=>{let e=Le;Re(null),e&&Wt(e)},title:i(`templates.discardEditsTitle`),message:i(`templates.discardEditsMessage`,{name:f?.name||u||``}),confirmText:i(`templates.discardEditsConfirm`),variant:`danger`})]})}export{et as TemplatesTab};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{Cr as t,E as n,G as r,Gt as i,Hr as a,Kr as o,Rn as s,S as c,Vn as l,an as u,ct as d,dt as f,h as p,n as m,nt as h,o as g,q as _,vt as v,wr as y,xr as b,yn as x}from"./icons-CYDRRPKW.js";import{t as S}from"./useTranslation-B-mfApCn.js";import{n as C}from"./state-CSZ50keL.js";import{n as w,s as T}from"./useConfirm-Da8iQ_DZ.js";import{C as E,T as D,g as O,r as k,v as A,w as j,y as M}from"./src-49LUQhkG.js";import{$ as N,_ as P,ht as F,mt as ee,t as te}from"./MessageBubble-CVGXupVH.js";import{r as I}from"./api-plEYhRn0.js";import{I as ne}from"./markdown-N5__3T-w.js";import{n as L}from"./websocket-BnDwh01e.js";var R=400,z=`sessions-changed`;function re(){window.dispatchEvent(new CustomEvent(z))}function ie(e,t={}){let n=t.runChanges??!0,r=-1/0,i=null,a=()=>{let t=Date.now(),n=R-(t-r);n<=0?(r=t,e()):i||=setTimeout(()=>{i=null,r=Date.now(),e()},n)},o=()=>{document.visibilityState===`visible`&&a()};n&&window.addEventListener(z,a),window.addEventListener(`focus`,a),document.addEventListener(`visibilitychange`,o);let s=L.onOpen(a);return()=>{i&&clearTimeout(i),i=null,n&&window.removeEventListener(z,a),window.removeEventListener(`focus`,a),document.removeEventListener(`visibilitychange`,o),s()}}var B=e(o(),1),V=ne(),H=16,ae=2,U=7,oe=2*Math.PI*U,se=(0,B.memo)(function({round:e,maxRounds:t,className:n}){let r=Math.max(0,Math.min(1,t>0?e/t:0));return(0,V.jsxs)(`span`,{className:T(`inline-flex items-center gap-1 shrink-0`,n),children:[(0,V.jsxs)(`svg`,{width:H,height:H,viewBox:`0 0 ${H} ${H}`,"aria-hidden":`true`,className:`shrink-0`,children:[(0,V.jsx)(`circle`,{cx:H/2,cy:H/2,r:U,fill:`none`,strokeWidth:ae,className:`stroke-dark-border`}),(0,V.jsx)(`circle`,{cx:H/2,cy:H/2,r:U,fill:`none`,strokeWidth:ae,strokeLinecap:`round`,strokeDasharray:oe,strokeDashoffset:oe*(1-r),transform:`rotate(-90 ${H/2} ${H/2})`,className:`stroke-accent-blue transition-[stroke-dashoffset] duration-500`})]}),(0,V.jsxs)(`span`,{className:`font-mono text-meta tabular-nums text-dark-muted`,children:[e,`/`,t]})]})}),ce={waiting:`bg-accent-yellow`,review:`bg-accent-blue`,working:`bg-accent-blue`,paused:`bg-accent-yellow`,done:`bg-dark-muted`};function le(e,t){return e===`done`?t===`FAILED`?`bg-accent-red`:t===`CANCELLED`?`bg-dark-muted`:`bg-accent-green`:ce[e]??`bg-dark-muted`}function ue(e,t){return e===`done`?t===`FAILED`?`failed`:t===`CANCELLED`?`erased`:`committed`:`draft`}var de={blocked:`text-accent-yellow`,review:`text-dark-muted`,working:`text-dark-muted`,coordinating:`text-dark-muted`,"claim-blocked":`text-dark-muted`,paused:`text-accent-yellow`,interrupted:`text-accent-yellow`,failed:`text-accent-red`,cancelled:`text-dark-muted`,completed:`text-dark-muted`};function fe(e){return`threads.group.${e}`}function pe(e){return`threads.verb.${e}`}function me(e){return`threads.detail.${e}`}function he(e){return e===`done`}function W(e){return e.slice(0,7)}function ge(e){return/\/(?:pull|pulls)\/(\d+)(?:$|[/?#])/.exec(e??``)?.[1]}function _e(e){if(!e)return[];let t=[];e.branch&&e.commit?t.push(`${e.branch}@${W(e.commit)}`):e.branch?t.push(e.branch):e.commit&&t.push(W(e.commit));let n=ge(e.prUrl);return n?t.push(`PR #${n}`):e.prUrl&&t.push(`PR`),t}function ve(e){return e===`review`||e===`done`}function ye(e,t,n,r){return e===`waiting`||t===`WAITING_COORDINATOR`||t===`BLOCKED_CLAIM`?!1:typeof n==`number`&&typeof r==`number`&&r>0}function be(e,t){if(e!==`done`)return t;let n=t.filter(e=>e.status===`FAILED`);return n.length===0?t:[...n,...t.filter(e=>e.status!==`FAILED`)]}function xe(e){return e.workspaceId?.trim()||`\0unknown-project`}function Se(e){let t=e=>{let t=O.indexOf(e.group);return t===-1?O.length:t};return[...e].sort((e,n)=>t(e)-t(n)||(e.createdAt<n.createdAt?1:e.createdAt>n.createdAt?-1:0))}function Ce(e){let t=new Map;for(let n of e){let e=xe(n),r=t.get(e);r?r.rows.push(n):t.set(e,{key:e,...n.workspaceId?{workspaceId:n.workspaceId}:{},rows:[n]})}let n=e=>e.rows.reduce((e,t)=>{let n=O.indexOf(t.group);return Math.min(e,n===-1?O.length:n)},O.length);for(let e of t.values())e.rows=Se(e.rows);return[...t.values()].sort((e,t)=>n(e)-n(t)||(e.key<t.key?-1:+(e.key>t.key)))}function we(e){return D(e)}var Te=(0,B.memo)(function({thread:e,summary:t,onOpen:n,now:r}){let{t:i}=S(),a=j(e),o=E(e),s=o?i(me(o)):e.group===`working`&&t?.trim()||void 0,c=A(e.createdAt,r),l=ve(e.group)?_e(e.delivery):[],u=ye(e.group,e.status,e.progress?.round,e.progress?.maxRounds),d=ue(e.group,e.status),f=e.title?.trim()||e.alias,p=(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:T(`mt-[5px] h-1.5 w-1.5 shrink-0 rounded-full`,le(e.group,e.status)),"aria-hidden":`true`}),(0,V.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,V.jsx)(`span`,{className:`block truncate text-xs text-dark-text`,children:f}),a&&(0,V.jsx)(`span`,{className:`ui-fold`,"data-collapsed":d===`erased`||void 0,children:(0,V.jsxs)(`span`,{className:`block truncate text-meta`,children:[(0,V.jsx)(`span`,{className:T(`font-medium`,de[a]),children:i(pe(a))}),s&&(0,V.jsx)(`span`,{className:`text-dark-muted`,children:` · ${s}`}),l.map(e=>(0,V.jsx)(`span`,{className:`text-dark-muted`,children:` · ${e}`},e))]})})]}),(0,V.jsxs)(`span`,{className:`flex shrink-0 items-center gap-2 pt-0.5`,children:[u&&e.progress&&(0,V.jsx)(se,{round:e.progress.round??0,maxRounds:e.progress.maxRounds??0}),c&&(0,V.jsx)(`span`,{className:`font-mono text-meta tabular-nums text-dark-muted`,children:c})]})]});return n?(0,V.jsx)(`button`,{type:`button`,onClick:()=>n(e.threadId),"aria-label":i(`threads.openThread`,{alias:e.alias}),title:e.title?.trim()||e.alias,className:T(`ui-gram ui-gram--wash flex w-full items-start gap-2 rounded-lg px-2 py-1.5 text-start transition-colors hover:bg-dark-hover`,P[d]),"data-testid":`thread-row`,children:p}):(0,V.jsx)(`div`,{className:T(`ui-gram ui-gram--wash flex items-start gap-2 rounded-lg px-2 py-1.5`,P[d]),"data-testid":`thread-row`,children:p})}),Ee=6e4;function De(e={}){let t=e.enabled!==!1,n=F(e=>e.rows),r=F(e=>e.stats),i=F(e=>e.progressSummaries),a=F(e=>e.stale),o=F(e=>e.live),s=F(e=>e.loading),c=F(e=>e.lastError),l=F(e=>e.query),u=F(e=>e.setQuery),d=F(e=>e.disabled),f=F(e=>e.refresh);(0,B.useEffect)(()=>{if(!t)return;let e=F.getState();(e.stale||e.lastFetchedAt===0)&&e.refresh()},[t]),(0,B.useEffect)(()=>{t&&a&&F.getState().scheduleRefresh()},[t,a]),(0,B.useEffect)(()=>{if(!t||typeof document>`u`)return;let e=()=>{document.visibilityState===`visible`&&F.getState().refresh()};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[t]);let p=Object.values(n).some(e=>e.group!==`done`);return(0,B.useEffect)(()=>{if(!t||!p)return;let e=setInterval(()=>{(typeof document>`u`||document.visibilityState===`visible`)&&F.getState().refresh()},Ee);return()=>clearInterval(e)},[t,p]),{groups:ee(n),order:O,rows:Object.values(n),stats:r,progressSummaries:i,stale:a,live:o,loading:s,lastError:c,query:l,setQuery:u,disabled:d,refresh:()=>void f()}}var Oe=(0,B.memo)(function({label:e,title:n,rows:r,defaultCollapsed:i=!1,testId:a,progressSummaries:o,now:s,onOpen:c}){let{t:l}=S(),[u,d]=(0,B.useState)(i);if(r.length===0)return null;let f=r.filter(e=>e.status===`FAILED`).length;return(0,V.jsxs)(`section`,{className:`select-none`,"data-testid":a,children:[(0,V.jsxs)(`button`,{type:`button`,onClick:()=>d(e=>!e),"aria-expanded":!u,title:n??l(u?`threads.expandGroup`:`threads.collapseGroup`,{group:e}),className:`flex w-full items-center gap-1.5 rounded-lg px-2 py-1.5 text-start transition-colors hover:bg-dark-hover`,children:[(0,V.jsx)(t,{size:13,className:T(`shrink-0 text-dark-muted transition-transform`,u&&`-rotate-90`),"aria-hidden":`true`}),(0,V.jsx)(`span`,{className:`truncate text-xs font-medium text-dark-text`,children:e}),(0,V.jsx)(`span`,{className:`font-mono text-meta tabular-nums text-dark-muted`,children:r.length}),f>0&&(0,V.jsx)(`span`,{className:`font-mono text-meta tabular-nums text-accent-red`,children:f})]}),!u&&(0,V.jsx)(`div`,{className:`space-y-0.5 ps-1`,children:r.map(e=>(0,V.jsx)(Te,{thread:e,summary:o[e.threadId],onOpen:c,now:s},e.threadId))})]})}),ke={open:[],recent:[],loading:!1,stale:!0,live:!1,lastError:null,lastFetchedAt:0,disabled:!1,resolving:{},resolveErrors:{}},Ae=400,G=null;function je(){G!==null&&(clearTimeout(G),G=null)}var K=C()((e,t)=>({...ke,refresh:async()=>{if(!t().loading){e({loading:!0});try{let t=await I.get(`/api/threads/escalations`);if(!t?.success){if(t?.code===`THREADS_DISABLED`){e({disabled:!0,open:[],recent:[],loading:!1,stale:!1,lastError:null,lastFetchedAt:Date.now()});return}throw Error(t?.error||`Escalations query failed`)}e({open:t.data?.open??[],recent:t.data?.recent??[],stale:!1,loading:!1,lastError:null,lastFetchedAt:Date.now(),disabled:!1})}catch(t){e({loading:!1,stale:!0,lastError:t instanceof Error?t.message:String(t),lastFetchedAt:Date.now()})}}},scheduleRefresh:()=>{G===null&&(G=setTimeout(()=>{G=null,t().refresh()},Ae))},resolve:async(n,r,i)=>{if(t().resolving[n])return{ok:!1,error:`already-submitting`};if(!i.trim())return{ok:!1,error:`instruction-required`};e(e=>({resolving:{...e.resolving,[n]:!0}}));try{let a=await I.post(`/api/threads/escalations/${encodeURIComponent(n)}/resolve`,{action:r,instruction:i.trim(),decidedBy:`web-ui`});if(!a?.success){let t=a?.error||`Resolve failed`;return e(e=>({resolving:q(e.resolving,n),resolveErrors:{...e.resolveErrors,[n]:t}})),{ok:!1,error:t}}return e(e=>({resolving:q(e.resolving,n),resolveErrors:q(e.resolveErrors,n)})),t().refresh(),F.getState().scheduleRefresh(),{ok:!0}}finally{t().resolving[n]&&e(e=>({resolving:q(e.resolving,n)}))}},setLive:t=>{e(t?{live:!0}:{live:!1,stale:!0})},reset:()=>{je(),e({...ke})}}));function q(e,t){let n={};for(let[r,i]of Object.entries(e))r!==t&&(n[r]=i);return n}function Me(e={}){let t=e.enabled!==!1,n=K(e=>e.open),r=K(e=>e.recent),i=K(e=>e.loading),a=K(e=>e.lastError),o=K(e=>e.resolving),s=K(e=>e.resolveErrors),c=K(e=>e.disabled),l=K(e=>e.refresh),u=K(e=>e.resolve),d=F(e=>e.stale);return(0,B.useEffect)(()=>{if(!t)return;let e=K.getState();(e.stale||e.lastFetchedAt===0)&&e.refresh()},[t]),(0,B.useEffect)(()=>{t&&d&&K.getState().scheduleRefresh()},[t,d]),(0,B.useEffect)(()=>{if(!t||typeof document>`u`)return;let e=()=>{document.visibilityState===`visible`&&K.getState().refresh()};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[t]),{open:n,recent:r,loading:i,lastError:a,resolving:o,resolveErrors:s,disabled:c,resolve:u,refresh:()=>void l()}}var Ne=(0,B.memo)(function({onOpenThread:e,className:n}){let{t:r}=S(),{open:i,recent:a,loading:o,lastError:s,resolving:c,resolveErrors:l,resolve:d,refresh:f}=Me(),[m,g]=(0,B.useState)(null),[_,v]=(0,B.useState)(!1),y=(e,t)=>{g({escalationId:e,action:t,instruction:``})},x=async()=>{m&&m.instruction.trim()&&(await d(m.escalationId,m.action,m.instruction)).ok&&g(null)};return(0,V.jsxs)(`section`,{className:T(`shrink-0 rounded-2xl border border-dark-border/60 bg-dark-surface`,`transition-all duration-200 hover:border-accent-blue/40 hover:bg-dark-raised`,n),"data-testid":`escalation-inbox`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,V.jsx)(u,{size:13,className:`text-dark-muted`}),(0,V.jsx)(`span`,{className:`text-xs font-medium text-dark-text`,children:r(`threads.escalation.title`)}),i.length>0&&(0,V.jsx)(`span`,{className:`rounded-full bg-accent-blue px-1.5 py-0.5 font-mono text-badge tabular-nums text-accent-fg`,"data-testid":`escalation-inbox-badge`,children:i.length}),(0,V.jsx)(`div`,{className:`ms-auto`,children:(0,V.jsx)(`button`,{type:`button`,onClick:f,disabled:o,className:`rounded p-1 text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text disabled:opacity-50`,title:r(`common.refresh`),"aria-label":r(`common.refresh`),"data-testid":`escalation-inbox-refresh`,children:(0,V.jsx)(h,{size:12,className:T(o&&`animate-spin`)})})})]}),s&&(0,V.jsx)(`div`,{className:`px-3 pb-2`,"data-testid":`escalation-inbox-error`,children:(0,V.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-md bg-dark-hover/60 px-2 py-1.5 text-meta text-dark-muted`,children:[(0,V.jsx)(p,{size:12,className:`shrink-0 text-accent-red`}),(0,V.jsx)(`span`,{className:`truncate`,children:r(`threads.escalation.error`,{message:s})})]})}),i.length===0?(0,V.jsx)(`p`,{className:`px-3 pb-3 text-meta text-dark-muted`,"data-testid":`escalation-inbox-empty`,children:r(`threads.escalation.empty`)}):(0,V.jsx)(`ul`,{className:`px-3 pb-2`,children:i.map(t=>(0,V.jsx)(Pe,{entry:t,draft:m?.escalationId===t.request.escalationId?m:null,resolving:!!c[t.request.escalationId],resolveError:l[t.request.escalationId],onBeginDecide:y,onDraftChange:e=>g(t=>t&&{...t,instruction:e}),onSubmitDraft:x,onCancelDraft:()=>g(null),onOpenThread:e},t.request.escalationId))}),(0,V.jsxs)(`div`,{className:`border-t border-dark-border px-3 py-1.5`,children:[(0,V.jsxs)(`button`,{type:`button`,onClick:()=>v(e=>!e),"aria-expanded":_,className:`flex w-full items-center gap-1 text-meta text-dark-muted transition-colors hover:text-dark-text`,"data-testid":`escalation-recent-toggle`,children:[_?(0,V.jsx)(t,{size:11}):(0,V.jsx)(b,{size:11}),r(`threads.escalation.recent`),a.length>0&&(0,V.jsxs)(`span`,{className:`font-mono tabular-nums`,children:[`(`,a.length,`)`]})]}),_&&(0,V.jsx)(Fe,{recent:a,onOpenThread:e})]})]})}),Pe=(0,B.memo)(function({entry:e,draft:t,resolving:n,resolveError:r,onBeginDecide:i,onDraftChange:a,onSubmitDraft:o,onCancelDraft:s,onOpenThread:c}){let{t:l}=S(),u=e.request.escalationId,d=t!==null;return(0,V.jsxs)(`li`,{className:`rounded-md bg-dark-hover/40 px-2.5 py-2`,"data-testid":`escalation-item-${u}`,children:[(0,V.jsx)(`p`,{className:`text-xs leading-relaxed text-dark-text`,children:e.request.question}),(0,V.jsxs)(`div`,{className:`mt-1 flex items-center gap-2 text-meta text-dark-muted`,children:[c?(0,V.jsx)(`button`,{type:`button`,onClick:()=>c(e.request.threadId),className:`font-mono underline-offset-2 hover:text-dark-text hover:underline`,"data-testid":`escalation-thread-${u}`,children:e.request.threadId}):(0,V.jsx)(`span`,{className:`font-mono`,"data-testid":`escalation-thread-${u}`,children:e.request.threadId}),(0,V.jsx)(`span`,{children:`·`}),(0,V.jsx)(`span`,{children:l(`threads.escalation.since`,{time:Ie(e.request.createdAt)})})]}),e.request.context&&(0,V.jsx)(`p`,{className:`mt-1 border-s border-dark-border ps-2 text-meta leading-relaxed text-dark-muted`,children:e.request.context}),r&&(0,V.jsxs)(`p`,{className:`mt-1.5 flex items-center gap-1 text-meta text-accent-red`,"data-testid":`escalation-error-${u}`,children:[(0,V.jsx)(p,{size:11,className:`shrink-0`}),l(`threads.escalation.resolveFailed`,{message:r})]}),d&&t?(0,V.jsxs)(`div`,{className:`mt-2`,"data-testid":`escalation-form-${u}`,children:[(0,V.jsx)(`textarea`,{value:t.instruction,onChange:e=>a(e.target.value),placeholder:l(`threads.escalation.instructionPlaceholder`),rows:2,autoFocus:!0,disabled:n,className:`w-full resize-none rounded-md bg-dark-hover/60 px-2 py-1.5 text-meta text-dark-text placeholder:text-dark-muted focus:outline-none focus:ring-1 focus:ring-accent-blue`,"data-testid":`escalation-instruction-${u}`}),(0,V.jsxs)(`div`,{className:`mt-1 flex items-center gap-1.5`,children:[(0,V.jsxs)(`button`,{type:`button`,onClick:o,disabled:n||!t.instruction.trim(),className:T(`flex items-center gap-1 rounded px-2 py-0.5 text-meta text-accent-fg transition-colors disabled:opacity-50`,t.action===`proceed`?`bg-accent-green`:`bg-accent-red`),"data-testid":`escalation-confirm-${u}`,children:[t.action===`proceed`?(0,V.jsx)(y,{size:10}):(0,V.jsx)(m,{size:10}),n?l(`threads.escalation.deciding`):t.action===`proceed`?l(`threads.escalation.confirmProceed`):l(`threads.escalation.confirmAbort`)]}),(0,V.jsx)(`button`,{type:`button`,onClick:s,disabled:n,className:`rounded px-2 py-0.5 text-meta text-dark-muted transition-colors hover:text-dark-text disabled:opacity-50`,"data-testid":`escalation-cancel-${u}`,children:l(`threads.escalation.cancel`)})]})]}):(0,V.jsxs)(`div`,{className:`mt-1.5 flex items-center gap-1.5`,children:[(0,V.jsxs)(`button`,{type:`button`,onClick:()=>i(u,`proceed`),disabled:n,className:`flex items-center gap-1 rounded bg-accent-green px-2 py-0.5 text-meta text-accent-fg transition-colors hover:opacity-90 disabled:opacity-50`,"data-testid":`escalation-proceed-${u}`,children:[(0,V.jsx)(y,{size:10}),l(`threads.escalation.proceed`)]}),(0,V.jsxs)(`button`,{type:`button`,onClick:()=>i(u,`abort`),disabled:n,className:`flex items-center gap-1 rounded bg-accent-red px-2 py-0.5 text-meta text-accent-fg transition-colors hover:opacity-90 disabled:opacity-50`,"data-testid":`escalation-abort-${u}`,children:[(0,V.jsx)(m,{size:10}),l(`threads.escalation.abort`)]})]})]})}),Fe=(0,B.memo)(function({recent:e,onOpenThread:t}){let{t:n}=S();return e.length===0?(0,V.jsx)(`p`,{className:`py-1.5 text-meta text-dark-muted`,"data-testid":`escalation-recent-empty`,children:n(`threads.escalation.recentEmpty`)}):(0,V.jsx)(`ul`,{className:`py-1.5`,children:e.map(e=>{let r=e.request.escalationId,i=e.status===`cancelled`?`resolvedCancelled`:e.outcome?.action===`proceed`?`resolvedProceed`:`resolvedAbort`,a=e.status===`cancelled`?`text-dark-muted`:e.outcome?.action===`proceed`?`text-accent-green`:`text-accent-red`;return(0,V.jsxs)(`li`,{className:`py-1`,"data-testid":`escalation-recent-${r}`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-1.5 text-meta`,children:[(0,V.jsx)(`span`,{className:T(`shrink-0 font-medium`,a),children:n(`threads.escalation.${i}`)}),(0,V.jsx)(`span`,{className:`truncate text-dark-muted`,children:e.request.question})]}),(0,V.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-2 text-badge text-dark-muted`,children:[e.outcome&&(0,V.jsx)(`span`,{children:n(`threads.escalation.decidedBy`,{by:e.outcome.decidedBy})}),(0,V.jsx)(`span`,{className:`font-mono`,children:t?(0,V.jsx)(`button`,{type:`button`,onClick:()=>t(e.request.threadId),className:`underline-offset-2 hover:text-dark-text hover:underline`,children:e.request.threadId}):e.request.threadId})]})]},r)})})});function Ie(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}var Le={items:[],loading:!1,stale:!0,live:!1,lastError:null,lastFetchedAt:0,disabled:!1,deciding:{},decideErrors:{}},Re=400,J=null;function ze(){J!==null&&(clearTimeout(J),J=null)}function Y(e,t){let n={};for(let r of Object.keys(e))r!==t&&(n[r]=e[r]);return n}var X=C()((e,t)=>({...Le,refresh:async()=>{if(!t().loading){e({loading:!0});try{let t=await I.get(`/api/threads/reviews`);if(!t?.success){if(t?.code===`THREADS_DISABLED`){e({disabled:!0,items:[],loading:!1,stale:!1,lastError:null,lastFetchedAt:Date.now()});return}throw Error(t?.error||`Reviews query failed`)}e({items:t.data?.reviews??[],stale:!1,loading:!1,lastError:null,lastFetchedAt:Date.now(),disabled:!1})}catch(t){e({loading:!1,stale:!0,lastError:t instanceof Error?t.message:String(t),lastFetchedAt:Date.now()})}}},scheduleRefresh:()=>{J===null&&(J=setTimeout(()=>{J=null,t().refresh()},Re))},decide:async(n,r)=>{if(t().deciding[n])return{ok:!1,error:`already-submitting`};e(e=>({deciding:{...e.deciding,[n]:!0}}));try{let i=await I.post(`/api/threads/reviews/${encodeURIComponent(n)}/${r}`,{});if(!i?.success){let t=i?.error||`Decision failed`;return e(e=>({deciding:Y(e.deciding,n),decideErrors:{...e.decideErrors,[n]:t}})),{ok:!1,error:t}}return e(e=>({deciding:Y(e.deciding,n),decideErrors:Y(e.decideErrors,n)})),t().refresh(),F.getState().scheduleRefresh(),{ok:!0}}finally{t().deciding[n]&&e(e=>({deciding:Y(e.deciding,n)}))}},setLive:t=>{e(t?{live:!0}:{live:!1,stale:!0})},reset:()=>{ze(),e({...Le})}}));function Be(e={}){let t=e.enabled!==!1,n=X(e=>e.items),r=X(e=>e.loading),i=X(e=>e.lastError),a=X(e=>e.deciding),o=X(e=>e.decideErrors),s=X(e=>e.disabled),c=X(e=>e.refresh),l=X(e=>e.decide),u=F(e=>e.stale);return(0,B.useEffect)(()=>{if(!t)return;let e=X.getState();(e.stale||e.lastFetchedAt===0)&&e.refresh()},[t]),(0,B.useEffect)(()=>{t&&u&&X.getState().scheduleRefresh()},[t,u]),(0,B.useEffect)(()=>{if(!t||typeof document>`u`)return;let e=()=>{document.visibilityState===`visible`&&X.getState().refresh()};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[t]),{items:n,loading:r,lastError:i,deciding:a,decideErrors:o,disabled:s,decide:l,refresh:()=>void c()}}var Ve=(0,B.memo)(function({onOpenThread:e,className:t}){let{t:n}=S(),{items:r,loading:i,lastError:a,deciding:o,decideErrors:c,decide:l,refresh:u}=Be();return(0,V.jsxs)(`section`,{className:T(`shrink-0 rounded-2xl border border-dark-border/60 bg-dark-surface`,`transition-all duration-200 hover:border-accent-blue/40 hover:bg-dark-raised`,t),"data-testid":`review-inbox`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,V.jsx)(s,{size:13,className:`text-dark-muted`}),(0,V.jsx)(`span`,{className:`text-xs font-medium text-dark-text`,children:n(`threads.reviewQueue.title`)}),r.length>0&&(0,V.jsx)(`span`,{className:`rounded-full bg-accent-blue px-1.5 py-0.5 font-mono text-badge tabular-nums text-accent-fg`,"data-testid":`review-inbox-badge`,children:r.length}),(0,V.jsx)(`div`,{className:`ms-auto`,children:(0,V.jsx)(`button`,{type:`button`,onClick:u,disabled:i,className:`rounded p-1 text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text disabled:opacity-50`,title:n(`common.refresh`),"aria-label":n(`common.refresh`),"data-testid":`review-inbox-refresh`,children:(0,V.jsx)(h,{size:12,className:T(i&&`animate-spin`)})})})]}),a&&(0,V.jsx)(`div`,{className:`px-3 pb-2`,"data-testid":`review-inbox-error`,children:(0,V.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded-md bg-dark-hover/60 px-2 py-1.5 text-meta text-dark-muted`,children:[(0,V.jsx)(p,{size:12,className:`shrink-0 text-accent-red`}),(0,V.jsx)(`span`,{className:`truncate`,children:n(`threads.reviewQueue.error`,{message:a})})]})}),r.length===0?(0,V.jsx)(`p`,{className:`px-3 pb-3 text-meta text-dark-muted`,"data-testid":`review-inbox-empty`,children:n(`threads.reviewQueue.empty`)}):(0,V.jsx)(`ul`,{className:`px-3 pb-2`,children:r.map(t=>(0,V.jsx)(He,{item:t,deciding:!!o[t.artifactId],decideError:c[t.artifactId],onDecide:l,onOpenThread:e},t.artifactId))})]})}),He=(0,B.memo)(function({item:e,deciding:t,decideError:n,onDecide:r,onOpenThread:i}){let{t:a}=S(),o=e.artifactId;return(0,V.jsxs)(`li`,{className:`rounded-md bg-dark-hover/40 px-2.5 py-2`,"data-testid":`review-item-${o}`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsxs)(`span`,{className:`font-mono text-xs text-dark-text`,"data-testid":`review-logical-${o}`,children:[e.logicalId,`#`,e.version]}),(0,V.jsx)(`span`,{className:T(`rounded px-1 py-0.5 font-mono text-badge`,e.type===`patch`?`bg-accent-amber/15 text-accent-amber`:`bg-dark-hover text-dark-muted`),"data-testid":`review-type-${o}`,children:e.type})]}),(0,V.jsxs)(`div`,{className:`mt-1 flex items-center gap-2 text-meta text-dark-muted`,children:[i?(0,V.jsx)(`button`,{type:`button`,onClick:()=>i(e.producerThreadId),className:`font-mono underline-offset-2 hover:text-dark-text hover:underline`,"data-testid":`review-thread-${o}`,children:e.producerThreadId}):(0,V.jsx)(`span`,{className:`font-mono`,"data-testid":`review-thread-${o}`,children:e.producerThreadId}),e.createdAt&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{children:`·`}),(0,V.jsx)(`span`,{children:a(`threads.reviewQueue.registered`,{time:Ue(e.createdAt)})})]})]}),n&&(0,V.jsxs)(`p`,{className:`mt-1.5 flex items-center gap-1 text-meta text-accent-red`,"data-testid":`review-error-${o}`,children:[(0,V.jsx)(p,{size:11,className:`shrink-0`}),a(`threads.reviewQueue.decideFailed`,{message:n})]}),(0,V.jsxs)(`div`,{className:`mt-1.5 flex items-center gap-1.5`,children:[(0,V.jsxs)(`button`,{type:`button`,onClick:()=>void r(o,`approve`),disabled:t,className:`flex items-center gap-1 rounded bg-accent-green px-2 py-0.5 text-meta text-accent-fg transition-colors hover:opacity-90 disabled:opacity-50`,"data-testid":`review-approve-${o}`,children:[(0,V.jsx)(y,{size:10}),a(t?`threads.reviewQueue.deciding`:`threads.reviewQueue.approve`)]}),(0,V.jsxs)(`button`,{type:`button`,onClick:()=>void r(o,`reject`),disabled:t,className:`flex items-center gap-1 rounded bg-accent-red px-2 py-0.5 text-meta text-accent-fg transition-colors hover:opacity-90 disabled:opacity-50`,"data-testid":`review-reject-${o}`,children:[(0,V.jsx)(m,{size:10}),a(`threads.reviewQueue.reject`)]})]})]})});function Ue(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}var We=3e4,Ge=250,Ke=(0,B.memo)(function({onClose:e,onOpenThread:t,workspaceId:n,className:r}){let{t:a}=S(),o=De(),{order:s,stats:c,progressSummaries:l,live:u,loading:f,lastError:v,query:y,setQuery:b,disabled:C,refresh:w}=o,E=(0,B.useMemo)(()=>n?o.rows.filter(e=>e.workspaceId===n):o.rows,[o.rows,n]),D=(0,B.useMemo)(()=>{if(!n)return o.groups;let e={};for(let t of E)e[t.threadId]=t;return ee(e)},[o.groups,E,n]),[O,k]=(0,B.useState)(`status`),[A,j]=(0,B.useState)(y),M=(0,B.useRef)(null);(0,B.useEffect)(()=>{j(y)},[y]),(0,B.useEffect)(()=>()=>{M.current&&clearTimeout(M.current)},[]);let N=e=>{j(e),M.current&&clearTimeout(M.current),M.current=setTimeout(()=>b(e),Ge)},P=(0,B.useMemo)(()=>s.some(e=>e!==`done`&&(D[e]?.length??0)>0),[D,s]),[F,te]=(0,B.useState)(()=>Date.now());(0,B.useEffect)(()=>{if(!P)return;let e=setInterval(()=>te(Date.now()),We);return()=>clearInterval(e)},[P]);let I=(0,B.useMemo)(()=>O===`project`?Ce(E):[],[O,E]),ne=Object.values(D).reduce((e,t)=>e+t.length,0),L=D.waiting.length,R=c&&typeof c.inflight?.threads==`number`&&typeof c.limits?.maxThreads==`number`?a(`threads.running`,{inflight:c.inflight.threads,max:c.limits.maxThreads}):void 0,z=typeof c?.queued?.threads==`number`?c.queued.threads:0;return(0,V.jsxs)(`div`,{className:T(`flex h-full min-h-0 flex-col`,r),children:[(0,V.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 px-3 py-2.5`,children:[L>0&&(0,V.jsx)(`span`,{className:`rounded-full bg-accent-blue px-1.5 py-0.5 font-mono text-badge tabular-nums text-accent-fg`,"data-testid":`threads-waiting-badge`,children:L}),(0,V.jsxs)(`div`,{className:`ms-auto flex items-center gap-0.5`,children:[!n&&(0,V.jsxs)(`div`,{className:`me-0.5 flex items-center rounded-md bg-dark-hover/60 p-0.5`,role:`group`,children:[(0,V.jsx)(`button`,{type:`button`,onClick:()=>k(`status`),"aria-pressed":O===`status`,className:T(`shrink-0 rounded p-1 transition-colors`,O===`status`?`bg-dark-surface text-dark-text`:`text-dark-muted hover:text-dark-text`),title:a(`threads.groupByStatus`),"aria-label":a(`threads.groupByStatus`),"data-testid":`threads-groupby-status`,children:(0,V.jsx)(i,{size:13})}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>k(`project`),"aria-pressed":O===`project`,className:T(`shrink-0 rounded p-1 transition-colors`,O===`project`?`bg-dark-surface text-dark-text`:`text-dark-muted hover:text-dark-text`),title:a(`threads.groupByProject`),"aria-label":a(`threads.groupByProject`),"data-testid":`threads-groupby-project`,children:(0,V.jsx)(x,{size:13})})]}),(0,V.jsx)(`button`,{type:`button`,onClick:w,disabled:f,className:`shrink-0 rounded p-1 text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text disabled:opacity-50`,title:a(`common.refresh`),"aria-label":a(`common.refresh`),"data-testid":`threads-refresh`,children:(0,V.jsx)(h,{size:14,className:T(f&&`animate-spin`)})}),e&&(0,V.jsx)(`button`,{type:`button`,onClick:e,className:`shrink-0 rounded p-1 text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,title:a(`common.close`),"aria-label":a(`common.close`),children:(0,V.jsx)(m,{size:14})})]})]}),C&&(0,V.jsx)(`div`,{className:`shrink-0 px-3 pb-3`,"data-testid":`threads-disabled`,children:(0,V.jsx)(Z,{tone:`info`,icon:(0,V.jsx)(d,{size:12}),text:a(`threads.disabled`)})}),!C&&(0,V.jsxs)(`div`,{className:`shrink-0 px-3 pb-2`,children:[!n&&(0,V.jsxs)(`div`,{className:`relative`,children:[(0,V.jsx)(_,{size:13,className:`pointer-events-none absolute start-2 top-1/2 -translate-y-1/2 text-dark-muted`}),(0,V.jsx)(`input`,{type:`text`,value:A,onChange:e=>N(e.target.value),placeholder:a(`threads.searchPlaceholder`),"aria-label":a(`threads.searchPlaceholder`),"data-testid":`threads-search`,className:`w-full rounded-md bg-dark-hover/60 py-1 ps-7 pe-7 text-xs text-dark-text placeholder:text-dark-muted focus:outline-none focus:ring-1 focus:ring-accent-blue`}),A&&(0,V.jsx)(`button`,{type:`button`,onClick:()=>N(``),title:a(`threads.searchClear`),"aria-label":a(`threads.searchClear`),"data-testid":`threads-search-clear`,className:`absolute end-1.5 top-1/2 -translate-y-1/2 rounded p-0.5 text-dark-muted transition-colors hover:text-dark-text`,children:(0,V.jsx)(m,{size:12})})]}),y.trim()&&(0,V.jsx)(`p`,{className:`mt-1 text-badge text-dark-muted`,"data-testid":`threads-search-note`,children:a(`threads.searchActive`,{q:y.trim()})})]}),!C&&(0,V.jsxs)(`div`,{className:`shrink-0 px-3 pb-2 pt-3`,children:[(0,V.jsx)(`p`,{className:`text-sm text-dark-text`,children:a(`threads.greeting`)}),(0,V.jsx)(`p`,{className:`mt-0.5 text-xs text-dark-muted`,"data-testid":`threads-waiting-line`,children:L>0?a(`threads.waitingOnYou`,{count:L}):a(`threads.nothingWaiting`)}),R&&(0,V.jsxs)(`p`,{className:`mt-1.5 font-mono text-meta tabular-nums text-dark-muted`,children:[R,z>0&&` · ${a(`threads.queued`,{count:z})}`]})]}),!C&&(0,V.jsx)(Ne,{onOpenThread:t,className:`mx-3 mb-4`}),!C&&(0,V.jsx)(Ve,{onOpenThread:t,className:`mx-3 mb-4`}),!C&&(!u||v)&&(0,V.jsx)(`div`,{className:`shrink-0 px-3 pb-2`,"data-testid":`threads-status-banner`,children:u?(0,V.jsx)(Z,{tone:`error`,icon:(0,V.jsx)(p,{size:12}),text:a(`threads.refreshFailed`,{message:v??``}),action:(0,V.jsx)(`button`,{type:`button`,onClick:w,className:`underline hover:no-underline`,children:a(`threads.retry`)})}):(0,V.jsx)(Z,{tone:`warn`,icon:(0,V.jsx)(g,{size:12}),text:a(`threads.offline`)})}),(0,V.jsx)(`div`,{className:`min-h-0 flex-1 space-y-1 overflow-y-auto px-2 pb-3 custom-scrollbar`,children:ne===0?C?null:(0,V.jsxs)(`div`,{className:`px-3 py-8 text-center`,"data-testid":`threads-empty`,children:[(0,V.jsx)(`p`,{className:`text-xs text-dark-text`,children:a(`threads.empty`)}),(0,V.jsx)(`p`,{className:`mt-1 text-meta leading-relaxed text-dark-muted`,children:a(`threads.emptyHint`)})]}):O===`status`?s.map(e=>(0,V.jsx)(Oe,{label:a(fe(e)),rows:be(e,D[e]??[]),defaultCollapsed:he(e),testId:`threads-section-${e}`,progressSummaries:l,now:F,onOpen:t},e)):I.map(e=>{let n=we(e.workspaceId);return(0,V.jsx)(Oe,{label:n??a(`threads.noWorkspace`),title:e.workspaceId??a(`threads.noWorkspace`),rows:e.rows,testId:`threads-project-${e.key}`,progressSummaries:l,now:F,onOpen:t},e.key)})})]})});function Z({tone:e,icon:t,text:n,action:r}){return(0,V.jsxs)(`div`,{className:T(`flex items-start gap-1.5 rounded-lg border px-2 py-1.5 text-meta leading-relaxed`,e===`error`?`border-accent-red/40 bg-accent-red/10 text-accent-red`:e===`info`?`border-dark-border bg-dark-hover/50 text-dark-muted`:`border-accent-yellow/40 bg-accent-yellow/10 text-accent-yellow`),children:[(0,V.jsx)(`span`,{className:`mt-[1px] shrink-0`,children:t}),(0,V.jsx)(`span`,{className:`min-w-0 flex-1`,children:n}),r&&(0,V.jsx)(`span`,{className:`shrink-0`,children:r})]})}function qe(){return{activities:{},order:[],taskTitles:{},artifacts:[]}}var Je=C()(e=>({bySession:{},applyEvent:(t,n)=>e(e=>{let r=e.bySession[t]??qe();switch(n.type){case`activity_started`:return r.activities[n.activity.id]?e:{...e,bySession:{...e.bySession,[t]:{...r,activities:{...r.activities,[n.activity.id]:n.activity},order:[...r.order,n.activity.id]}}};case`activity_updated`:{let i=r.activities[n.activityId];return i?{...e,bySession:{...e.bySession,[t]:{...r,activities:{...r.activities,[n.activityId]:{...i,...n.patch}}}}}:e}case`activity_finalized`:{let i=r.activities[n.activityId];return i?{...e,bySession:{...e.bySession,[t]:{...r,activities:{...r.activities,[n.activityId]:{...i,status:n.status,endedAt:n.endedAt}}}}}:e}case`artifact_produced`:return r.artifacts.some(e=>e.id===n.artifact.id)?e:{...e,bySession:{...e.bySession,[t]:{...r,artifacts:[...r.artifacts,n.artifact]}}};case`task_title_set`:return{...e,bySession:{...e.bySession,[t]:{...r,taskTitles:{...r.taskTitles,[n.messageId]:n.title}}}};case`next_action_set`:return{...e,bySession:{...e.bySession,[t]:{...r,nextAction:n.text??void 0}}};default:return e}}),resetSession:t=>e(e=>{if(!e.bySession[t])return e;let n={...e.bySession};return delete n[t],{bySession:n}}),finalizeSession:(t,n)=>e(e=>{let r=e.bySession[t];if(!r)return e;let i=Date.now(),a=[`pending`,`running`,`paused`,`waiting_user`],o=!1,s={};for(let[e,t]of Object.entries(r.activities))a.includes(t.status)?(s[e]={...t,status:n,endedAt:i},o=!0):s[e]=t;return o?{...e,bySession:{...e.bySession,[t]:{...r,activities:s}}}:e}),markStatus:(t,n,r)=>e(e=>{let i=e.bySession[t];if(!i)return e;let a=!1,o={};for(let[e,t]of Object.entries(i.activities))n.includes(t.status)?(o[e]={...t,status:r},a=!0):o[e]=t;return a?{...e,bySession:{...e.bySession,[t]:{...i,activities:o}}}:e})}));function Ye(e,t){if(!t)return;let n=e.bySession[t];if(n)for(let e=n.order.length-1;e>=0;e--){let t=n.order[e];if(!t)continue;let r=n.activities[t];if(r&&(r.status===`running`||r.status===`waiting_user`||r.status===`paused`||r.status===`blocked`))return r}}function Xe(e){return e===`running`||e===`waiting`}function Ze({sessionId:e,status:t,fallback:n}){let r=Je(t=>{let n=t.bySession[e];if(n)for(let e=n.order.length-1;e>=0;e--){let t=n.order[e],r=t?n.activities[t]:void 0;if(r)return r.title}});return Xe(t)&&r?(0,V.jsx)(`span`,{"data-session-activity":`live`,className:`line-clamp-2 min-w-0 flex-1 text-dark-muted/70`,title:r,children:r}):n?(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n}):null}var Qe=[`pause`,`resume`,`cancel`];function $e(e){return Qe.includes(e)}function et(e){return Qe.filter(t=>e.allowedActions.includes(t))}var tt=(0,B.memo)(function({thread:e,onControlled:t,className:r}){let{t:i}=S(),[a,o]=(0,B.useState)(null),[s,c]=(0,B.useState)(null),[l,u]=(0,B.useState)(!1);(0,B.useEffect)(()=>{o(null),c(null),u(!1)},[e.threadId]);let d=(0,B.useCallback)(async n=>{if(a)return;o(n),c(null);let r=await I.post(`/api/threads/${encodeURIComponent(e.threadId)}/${n}`,{expectedStatus:e.status});o(null),t(),r?.success||c(r?.error||i(`threads.controlFailed`))},[a,e.threadId,e.status,t,i]),p=et(e),m=e.allowedActions.filter(e=>!$e(e));if(p.length===0&&m.length===0)return(0,V.jsx)(`p`,{className:T(`text-meta text-dark-muted`,r),children:i(`threads.factNoActions`)});let h={pause:v,resume:f,cancel:n},g={pause:i(`threads.action.pause`),resume:i(`threads.action.resume`),cancel:i(`threads.action.cancel`)};return(0,V.jsxs)(`div`,{className:T(`space-y-1.5`,r),children:[p.length>0&&(0,V.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:p.map(e=>{let t=h[e],n=e===`cancel`;return(0,V.jsxs)(`button`,{type:`button`,"data-testid":`thread-action-${e}`,disabled:a!==null,onClick:()=>n?u(!0):void d(e),className:T(`inline-flex items-center gap-1 rounded border px-2 py-1 text-meta transition-colors`,`disabled:cursor-not-allowed disabled:opacity-50`,n?`border-accent-red/40 text-accent-red hover:bg-accent-red/10`:`border-dark-border text-dark-text hover:bg-dark-hover`),children:[(0,V.jsx)(t,{size:11}),g[e]]},e)})}),m.length>0&&(0,V.jsx)(`p`,{className:`text-badge text-dark-muted`,"data-testid":`thread-actions-elsewhere`,children:i(`threads.actionsElsewhere`,{actions:m.join(` · `)})}),s&&(0,V.jsx)(`p`,{className:`text-meta text-accent-red`,role:`alert`,"data-testid":`thread-control-error`,children:s}),(0,V.jsx)(w,{isOpen:l,onClose:()=>u(!1),onConfirm:()=>void d(`cancel`),title:i(`threads.cancelConfirmTitle`),message:i(`threads.cancelConfirm`),confirmText:i(`threads.cancelConfirmAction`),variant:`danger`})]})}),nt={claim:`threads.goal.blockerClaim`,escalation:`threads.goal.blockerEscalation`,approval:`threads.goal.blockerApproval`},rt=(0,B.memo)(function({snapshot:e,className:t}){let{t:n}=S(),r=new Map(e.nodes.map(e=>[e.id,e.title])),i=e=>r.get(e)??e;return(0,V.jsxs)(`section`,{"data-testid":`thread-goal-snapshot`,className:T(`rounded-lg border border-dark-border px-2 py-2`,t),children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,V.jsx)(c,{size:13,className:`shrink-0 text-dark-muted`,"aria-hidden":`true`}),(0,V.jsx)(`span`,{className:`truncate text-xs font-medium text-dark-text`,children:e.goal}),(0,V.jsx)(`span`,{className:`ms-auto shrink-0 font-mono text-meta tabular-nums text-dark-muted`,"data-testid":`thread-goal-revision`,title:n(`threads.goal.revisionTitle`),children:n(`threads.goal.revision`,{n:e.revision})})]}),(0,V.jsx)(`ul`,{className:`mt-1.5 space-y-1 ps-4`,children:e.nodes.map(e=>{let t=e.parentIds??[];return(0,V.jsxs)(`li`,{"data-testid":`thread-goal-node`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs`,children:[(0,V.jsx)(`span`,{className:`truncate text-dark-text`,children:e.title}),(0,V.jsx)(`span`,{className:`shrink-0 font-mono text-meta tabular-nums text-dark-muted`,children:e.status}),(0,V.jsx)(`span`,{className:`ms-auto flex shrink-0 items-center gap-1`,children:e.threadIds.map(e=>(0,V.jsx)(N,{threadId:e},e))})]}),t.length>0&&(0,V.jsx)(`div`,{className:`mt-0.5 truncate text-meta text-dark-muted`,"data-testid":`thread-goal-node-deps`,title:t.map(i).join(`, `),children:n(`threads.goal.dependsOn`,{names:t.map(i).join(`, `)})})]},e.id)})}),(0,V.jsxs)(`div`,{className:`mt-1.5 flex flex-wrap items-center gap-x-3 gap-y-0.5 text-meta text-dark-muted`,children:[(0,V.jsx)(`span`,{"data-testid":`thread-goal-active`,children:n(`threads.goal.activeThreads`,{n:e.activeThreads.length})}),(0,V.jsx)(`span`,{"data-testid":`thread-goal-blockers`,children:n(`threads.goal.blockers`,{n:e.blockers.length})}),e.openEscalations>0&&(0,V.jsx)(`span`,{className:`text-accent-red`,"data-testid":`thread-goal-escalations`,children:n(`threads.goal.openEscalations`,{n:e.openEscalations})})]}),e.blockers.length>0&&(0,V.jsx)(`ul`,{className:`mt-1 space-y-0.5 ps-4`,children:e.blockers.map(e=>(0,V.jsx)(`li`,{className:`text-meta text-dark-muted`,children:n(nt[e.kind]??`threads.goal.blockerUnknown`,{ref:e.ref})},`${e.kind}:${e.ref}:${e.threadId}`))})]})});function it({tail:e,path:t}){let{t:n}=S();return e?e.missing||e.lines.length===0?(0,V.jsxs)(`div`,{className:`mt-0.5 ps-4 text-meta text-dark-muted`,"data-testid":`thread-worktree-service-log`,children:[(0,V.jsx)(`div`,{children:n(`threads.services.logMissing`)}),(0,V.jsx)(`div`,{className:`truncate font-mono`,title:t,children:t})]}):(0,V.jsxs)(`div`,{className:`mt-0.5 ps-4`,"data-testid":`thread-worktree-service-log`,children:[(0,V.jsx)(`pre`,{className:`max-h-40 overflow-auto whitespace-pre-wrap break-all rounded bg-dark-surface p-1 font-mono text-meta leading-snug text-dark-muted`,children:e.lines.join(`
|
|
2
|
+
`)}),e.truncated&&(0,V.jsx)(`div`,{className:`mt-0.5 text-meta text-dark-muted`,children:n(`threads.services.logTruncated`)})]}):(0,V.jsx)(`div`,{className:`mt-0.5 ps-4 text-meta text-dark-muted`,children:n(`threads.services.logLoading`)})}var at={running:`bg-accent-green`,exited:`bg-accent-yellow`,stopped:`bg-dark-muted`},ot=(0,B.memo)(function({ownerKey:e,services:n,className:i}){let{t:a}=S(),[o,s]=(0,B.useState)(null),[c,l]=(0,B.useState)({}),u=t=>{o===t.name?s(null):(s(t.name),!c[t.name]&&I.get(`/api/worktree-services/log?sessionId=${encodeURIComponent(e)}&name=${encodeURIComponent(t.name)}&tail=200`).then(e=>{l(n=>({...n,[t.name]:e?.success&&e.data?e.data:{lines:[],truncated:!1,missing:!0}}))}))};return(0,V.jsxs)(`section`,{"data-testid":`thread-worktree-services`,className:T(`rounded-lg border border-dark-border px-2 py-2`,i),children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,V.jsx)(r,{size:13,className:`shrink-0 text-dark-muted`,"aria-hidden":`true`}),(0,V.jsx)(`span`,{className:`truncate text-xs font-medium text-dark-text`,children:a(`threads.services.title`)}),(0,V.jsx)(`span`,{className:`ms-auto shrink-0 font-mono text-meta tabular-nums text-dark-muted`,children:n.length})]}),(0,V.jsx)(`ul`,{className:`mt-1.5 space-y-1`,children:n.map(e=>{let n=o===e.name;return(0,V.jsxs)(`li`,{"data-testid":`thread-worktree-service`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs`,children:[(0,V.jsx)(`span`,{className:T(`h-1.5 w-1.5 shrink-0 rounded-full`,at[e.status]??`bg-dark-muted`),"aria-hidden":`true`}),(0,V.jsx)(`span`,{className:`truncate text-dark-text`,children:e.name}),(0,V.jsx)(`span`,{className:`shrink-0 font-mono text-meta text-dark-muted`,"data-testid":`thread-worktree-service-status`,children:e.status}),(0,V.jsx)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,className:`ms-auto shrink-0 truncate font-mono text-meta text-accent-blue hover:underline`,"data-testid":`thread-worktree-service-url`,children:e.url}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>u(e),"aria-expanded":n,"aria-label":a(`threads.services.toggleLog`),title:a(`threads.services.toggleLog`),className:`shrink-0 rounded p-0.5 text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,"data-testid":`thread-worktree-service-log-toggle`,children:n?(0,V.jsx)(t,{size:12}):(0,V.jsx)(b,{size:12})})]}),n&&(0,V.jsx)(it,{tail:c[e.name],path:e.resultPath})]},e.name)})})]})});function st(e){let t=[];return e.forEach((e,n)=>{if(k(e.kind))return;let r=e.type===`user`?`user`:e.type===`assistant`?`assistant`:null;if(!r)return;let i=typeof e.content==`string`?e.content:``,a=typeof e.thinking==`string`&&e.thinking?e.thinking:void 0;(i.trim()||a)&&t.push({id:e.id||`thread-msg-${n}`,type:r,content:i,timestamp:typeof e.timestamp==`number`?e.timestamp:0,thinking:a})}),t}var ct=(0,B.memo)(function({sessionId:e,reloadKey:t=0,className:n}){let{t:r}=S(),[i,a]=(0,B.useState)(null),[o,s]=(0,B.useState)(!1),[c,l]=(0,B.useState)(null);(0,B.useEffect)(()=>{if(!e){a(null);return}let t=!1;return s(!0),(async()=>{let n=await I.get(`/api/sessions/${encodeURIComponent(e)}/messages`);t||(n?.success?(a(Array.isArray(n.data)?n.data:[]),l(null)):(l(n?.error||`request failed`),a(null)),s(!1))})(),()=>{t=!0}},[e,t]);let u=(0,B.useMemo)(()=>i?st(i):[],[i]);return e?c?(0,V.jsx)(`p`,{className:T(`mt-3 text-meta text-accent-red`,n),"data-testid":`thread-conversation-error`,children:r(`threads.conversationFailed`,{message:c})}):i===null?(0,V.jsx)(`p`,{className:T(`mt-3 text-meta text-dark-muted`,n),"data-testid":`thread-conversation-loading`,children:o?r(`threads.conversationLoading`):null}):u.length===0?(0,V.jsx)(`p`,{className:T(`mt-3 text-meta text-dark-muted`,n),"data-testid":`thread-conversation-empty`,children:r(`threads.conversationEmpty`)}):(0,V.jsx)(`div`,{className:T(`mt-3 min-w-0`,n),"data-testid":`thread-conversation`,children:u.map(t=>(0,V.jsx)(te,{message:t,sessionId:e},t.id))}):null});function lt({detail:e,className:t}){let{t:n}=S(),r=e.thread;return(0,V.jsxs)(`div`,{className:T(`min-w-0`,t),children:[(0,V.jsxs)(`dl`,{className:`mt-3 space-y-1.5 text-meta`,"data-testid":`thread-detail-facts`,children:[(0,V.jsx)(Q,{label:n(`threads.factWorkspace`),value:r.workspaceId,mono:!0}),(0,V.jsx)(Q,{label:n(`threads.factIsolation`),value:r.isolation.mode===`shared`?n(`threads.isolationShared`):r.isolation.branch?n(`threads.isolationBranch`,{branch:r.isolation.branch}):n(`threads.isolationIsolated`)}),r.model&&(0,V.jsx)(Q,{label:n(`threads.factModel`),value:r.model,mono:!0}),r.delivery?.branch&&(0,V.jsx)(Q,{label:n(`threads.factBranch`),value:r.delivery.branch,mono:!0}),r.delivery?.commit&&(0,V.jsx)(Q,{label:n(`threads.factCommit`),value:W(r.delivery.commit),mono:!0}),r.delivery?.prUrl&&(0,V.jsx)(ut,{label:n(`threads.factPr`),url:r.delivery.prUrl}),r.parentThreadId&&(0,V.jsx)(Q,{label:n(`threads.factParent`),value:r.parentThreadId,mono:!0}),r.detached&&(0,V.jsx)(Q,{label:n(`threads.factDetached`),value:n(`threads.detachedValue`)}),(0,V.jsx)(Q,{label:n(`threads.factCreated`),value:A(r.createdAt)??r.createdAt})]}),(0,V.jsxs)($,{title:n(`threads.sectionBudget`),testId:`thread-detail-budget`,children:[r.progress?.maxRounds==null?(0,V.jsx)(`p`,{className:`text-meta text-dark-muted`,children:n(`threads.noBudget`)}):(0,V.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,V.jsx)(se,{round:r.progress.round??0,maxRounds:r.progress.maxRounds})}),e.usage?(0,V.jsxs)(`p`,{className:`mt-1 font-mono text-meta text-dark-muted`,children:[n(`threads.usageTokens`,{in:e.usage.tokensIn,out:e.usage.tokensOut}),e.budgetVerdict&&(0,V.jsxs)(`span`,{className:T(`ms-2`,e.budgetVerdict.level===`exceeded`?`text-accent-red`:e.budgetVerdict.level===`warn`?`text-accent-yellow`:`text-dark-muted`),children:[n(`threads.usageUtilization`,{percent:Math.round(e.budgetVerdict.utilization*100)}),e.budgetVerdict.reason?` (${e.budgetVerdict.reason})`:``]})]}):(0,V.jsx)(`p`,{className:`mt-1 text-meta text-dark-muted`,children:n(`threads.noActiveRun`)})]}),(0,V.jsx)($,{title:n(`threads.sectionArtifacts`),testId:`thread-detail-artifacts`,children:(0,V.jsx)(dt,{artifacts:e.artifacts})})]})}function Q({label:e,value:t,mono:n}){return t?(0,V.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,V.jsx)(`dt`,{className:`w-[74px] shrink-0 text-dark-muted`,children:e}),(0,V.jsx)(`dd`,{className:T(`min-w-0 flex-1 break-words text-dark-text`,n&&`font-mono text-meta`),children:t})]}):null}function ut({label:e,url:t}){return(0,V.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,V.jsx)(`dt`,{className:`w-[74px] shrink-0 text-dark-muted`,children:e}),(0,V.jsx)(`dd`,{className:`min-w-0 flex-1 break-words`,children:(0,V.jsx)(`a`,{href:t,target:`_blank`,rel:`noreferrer noopener`,className:`font-mono text-meta text-accent-blue underline-offset-2 hover:underline`,children:t})})]})}function $({title:e,testId:t,children:n}){return(0,V.jsxs)(`section`,{className:`mt-4`,"data-testid":t,children:[(0,V.jsx)(`h3`,{className:`mb-1.5 text-meta font-medium text-dark-text`,children:e}),n]})}function dt({artifacts:e}){let{t}=S();return e.length===0?(0,V.jsx)(`p`,{className:`text-meta text-dark-muted`,children:t(`threads.noArtifacts`)}):(0,V.jsx)(`ul`,{className:`space-y-1`,children:M(e).map(e=>{let n=e[0];return(0,V.jsxs)(`li`,{className:`rounded-lg border border-dark-border px-2 py-1.5`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-meta text-dark-text`,children:n.logicalId}),(0,V.jsxs)(`span`,{className:`shrink-0 font-mono text-meta text-dark-muted`,children:[`v`,n.version]})]}),(0,V.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-x-2 text-meta text-dark-muted`,children:[(0,V.jsx)(`span`,{children:n.type}),(0,V.jsx)(`span`,{children:n.status}),n.reviewRequired&&(0,V.jsxs)(`span`,{children:[`review: `,n.reviewState]}),e.length>1&&(0,V.jsx)(`span`,{children:t(`threads.artifactVersions`,{count:e.length})})]})]},n.logicalId)})})}var ft=(0,B.memo)(function({threadId:e,onBack:t,onOpenSession:n,className:r}){let{t:i}=S(),[o,s]=(0,B.useState)(null),[c,u]=(0,B.useState)(null),[d,f]=(0,B.useState)([]),[m,g]=(0,B.useState)(!1),[_,v]=(0,B.useState)(null),y=(0,B.useCallback)(async()=>{g(!0);try{let[t,n,r]=await Promise.all([I.get(`/api/threads/${encodeURIComponent(e)}`),I.get(`/api/threads/goal-snapshot?thread=${encodeURIComponent(e)}`),I.get(`/api/worktree-services?sessionId=${encodeURIComponent(e)}`)]);if(u(n?.success&&n.data&&Array.isArray(n.data.nodes)?n.data:null),f(r?.success&&r.data&&Array.isArray(r.data.services)?r.data.services:[]),!t?.success||!t.data)throw Error(t?.error||`not found`);s(t.data),v(null);let i=F.getState().rows[t.data.thread.threadId];i&&i.status!==t.data.thread.status&&F.getState().refresh()}catch(e){s(null),v(e instanceof Error?e.message:String(e))}finally{g(!1)}},[e]);(0,B.useEffect)(()=>{y()},[y]),(0,B.useEffect)(()=>{let e=()=>void y();return window.addEventListener(`worktree-services-changed`,e),()=>window.removeEventListener(`worktree-services-changed`,e)},[y]);let b=(0,B.useCallback)(()=>{y(),F.getState().refresh()},[y]),x=o?.thread,C=x?j(x):void 0;return(0,V.jsxs)(`div`,{className:T(`flex h-full min-h-0 flex-col`,r),children:[(0,V.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 border-b border-dark-border px-2 py-2.5`,children:[(0,V.jsx)(`button`,{type:`button`,onClick:t,className:`shrink-0 rounded p-1 text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text`,title:i(`common.back`),"aria-label":i(`common.back`),"data-testid":`thread-detail-back`,children:(0,V.jsx)(a,{size:14})}),(0,V.jsx)(`span`,{className:`shrink-0 text-xs text-dark-muted`,children:i(`threads.title`)}),(0,V.jsx)(`span`,{className:`shrink-0 text-xs text-dark-muted`,"aria-hidden":`true`,children:`›`}),(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm text-dark-text`,title:x?.title,"data-testid":`thread-detail-title`,children:x?.title?.trim()||x?.alias||e}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>void y(),disabled:m,className:`shrink-0 rounded p-1 text-dark-muted transition-colors hover:bg-dark-hover hover:text-dark-text disabled:opacity-50`,title:i(`common.refresh`),"aria-label":i(`common.refresh`),"data-testid":`thread-detail-refresh`,children:(0,V.jsx)(h,{size:13,className:T(m&&`animate-spin`)})})]}),(0,V.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-3 py-3 custom-scrollbar`,children:[_&&(0,V.jsxs)(`div`,{className:`flex items-start gap-1.5 rounded-lg border border-accent-red/40 bg-accent-red/10 px-2 py-1.5 text-meta leading-relaxed text-accent-red`,"data-testid":`thread-detail-error`,children:[(0,V.jsx)(p,{size:12,className:`mt-[1px] shrink-0`}),(0,V.jsx)(`span`,{className:`min-w-0 flex-1`,children:i(`threads.detailLoadFailed`,{message:_})})]}),!o&&m&&!_&&(0,V.jsx)(`p`,{className:`text-meta text-dark-muted`,"data-testid":`thread-detail-loading`,children:i(`common.loading`)}),x&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,V.jsx)(`span`,{className:T(`mt-[5px] h-1.5 w-1.5 shrink-0 rounded-full`,le(x.group,x.status)),"aria-hidden":`true`}),(0,V.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[C&&(0,V.jsx)(`p`,{className:T(`text-xs font-medium`,de[C]),children:i(pe(C))}),(0,V.jsx)(`p`,{className:`mt-0.5 font-mono text-meta text-dark-muted`,children:x.status})]}),(0,V.jsx)(`span`,{className:`shrink-0 font-mono text-meta text-dark-muted`,children:x.alias})]}),n&&x.sessionId&&(0,V.jsxs)(`button`,{type:`button`,onClick:()=>n(x),className:`mt-3 flex w-full items-center justify-center gap-1.5 rounded-lg border border-accent-blue/40 bg-accent-blue/10 px-2 py-1.5 text-meta text-accent-blue transition-colors hover:bg-accent-blue/15`,"data-testid":`thread-detail-open-session`,children:[(0,V.jsx)(l,{size:12,"aria-hidden":`true`}),i(`threads.openSession`)]}),(0,V.jsx)($,{title:i(`threads.sectionConversation`),testId:`thread-detail-conversation`,children:(0,V.jsx)(ct,{sessionId:x.sessionId})}),c&&(0,V.jsx)(rt,{snapshot:c,className:`mt-3`}),d.length>0&&(0,V.jsx)(ot,{ownerKey:e,services:d,className:`mt-3`}),(0,V.jsx)(lt,{detail:o}),(0,V.jsx)($,{title:i(`threads.sectionControl`),testId:`thread-detail-control`,children:(0,V.jsx)(tt,{thread:x,onControlled:b})})]})]}),x&&pt(x.group)&&(0,V.jsx)(`div`,{className:`shrink-0 px-3 pt-1 text-meta`,children:(0,V.jsx)(Ze,{sessionId:x.sessionId,status:mt(x.group)})})]})});function pt(e){return e===`working`||e===`waiting`||e===`review`}function mt(e){return e===`working`?`running`:e===`waiting`||e===`review`?`waiting`:`done`}var ht=(0,B.memo)(function({onOpenSession:e,focusThread:t,className:n}){let[r,i]=(0,B.useState)(null),a=(0,B.useCallback)(t=>{i(t);let n=F.getState().rows[t];n&&e?.(n)},[e]);return(0,B.useEffect)(()=>{t?.id&&i(t.id)},[t]),r?(0,V.jsx)(ft,{threadId:r,onBack:()=>i(null),onOpenSession:e,className:n}):(0,V.jsx)(Ke,{onOpenThread:a,className:n})});export{Ye as a,De as c,fe as d,re as f,Xe as i,Te as l,ft as n,Je as o,ie as p,Ze as r,Ke as s,ht as t,_e as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{$t as t,B as n,Cr as r,Kr as i,Vr as a,Wn as o,et as s,h as ee,ht as c,m as te,n as ne,nt as l,q as re,r as u,v as d,wr as f,xr as p,y as m}from"./icons-CYDRRPKW.js";import{t as ie}from"./useTranslation-B-mfApCn.js";import{a as h,c as g,r as ae}from"./useConfirm-Da8iQ_DZ.js";import{t as _}from"./api-plEYhRn0.js";import{I as v}from"./markdown-N5__3T-w.js";import{a as y,f as oe,s as se}from"./common-Bbatsa0-.js";var b=e(i(),1),x=v(),S={critical:0,high:1,medium:2,low:3},ce={critical:`bg-accent-red/20 text-accent-red`,high:`bg-accent-red/15 text-accent-red`,medium:`bg-accent-yellow/20 text-accent-yellow`,low:`bg-accent-green/20 text-accent-green`};function C(e,t){let n=`tools.cat.${e}`,r=t(n);if(r&&r!==n)return r;let i=e.replace(/_/g,` `).trim();return i?i.charAt(0).toUpperCase()+i.slice(1):t(`tools.groupUncategorized`)}function w(e,t){switch(e){case`critical`:return t(`tools.riskCritical`);case`high`:return t(`tools.riskHigh`);case`medium`:return t(`tools.riskMedium`);case`low`:return t(`tools.riskLow`);default:return t(`tools.riskUnknown`)}}function T(e,t,n){let r=new Map;for(let i of e){let e,a,o=0;t===`risk`?(e=i.risk??`unknown`,a=w(i.risk,n),o=S[e]??99):t===`state`?(e=i.enabled?`on`:`off`,a=i.enabled?n(`tools.enabled`):n(`tools.disabled`),o=+!i.enabled):(e=i.category||`__none__`,a=i.category?C(i.category,n):n(`tools.groupUncategorized`));let s=r.get(e);s||(s={key:e,label:a,tools:[],order:o},r.set(e,s)),s.tools.push(i)}for(let e of r.values())e.tools.sort((e,t)=>e.enabled===t.enabled?e.id.localeCompare(t.id):e.enabled?-1:1);return[...r.values()].sort((e,n)=>t===`category`?n.tools.length-e.tools.length||e.label.localeCompare(n.label):e.order-n.order||e.label.localeCompare(n.label))}function E(e,t){try{if(typeof URL.createObjectURL!=`function`)return!1;let n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);return i.href=r,i.download=e,i.click(),URL.revokeObjectURL(r),!0}catch{return!1}}function D(){let{t:e}=ie(),[i,v]=(0,b.useState)([]),[S,C]=(0,b.useState)(!0),[D,O]=(0,b.useState)(null),[k,le]=(0,b.useState)(``),[A,ue]=(0,b.useState)(`category`),[j,M]=(0,b.useState)(new Set),[de,N]=(0,b.useState)(null),[P,F]=(0,b.useState)(null),[I,L]=(0,b.useState)({name:``,description:``,category:``,enabled:!0}),[R,z]=(0,b.useState)(null),[B,V]=(0,b.useState)(null),[H,fe]=(0,b.useState)(0),[pe,me]=(0,b.useState)(null),[U,W]=(0,b.useState)(null),G=(0,b.useRef)(null),K=(0,b.useCallback)(async()=>{C(!0),O(null);let[t,n]=await Promise.all([_.tools.list(),_.tools.exportConfig()]);t.success&&Array.isArray(t.data)?v(t.data):t.success&&t.data&&!Array.isArray(t.data)?O(e(`tools.invalidData`)):O(t.error||e(`tools.loadFailed`)),n.success&&n.data&&(V(n.data.path??null),fe(Object.keys(n.data.tools??{}).length),me(n.data.profile??null)),C(!1)},[e]);(0,b.useEffect)(()=>{K()},[K]);let he=(0,b.useCallback)(()=>{window.dispatchEvent(new CustomEvent(`switch-tab`,{detail:`connectors`}))},[]),q=(0,b.useMemo)(()=>{let e=k.trim().toLowerCase();return e?i.filter(t=>t.id.toLowerCase().includes(e)||t.name.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)||t.category.toLowerCase().includes(e)):i},[i,k]),J=(0,b.useMemo)(()=>T(q,A,e),[q,A,e]),Y=(0,b.useMemo)(()=>i.filter(e=>e.enabled).length,[i]),X=(0,b.useCallback)((e,t,n)=>{v(r=>r.map(r=>r.id===t?{...r,...n,...e??{}}:r))},[]),ge=(0,b.useCallback)(async t=>{z(t.id);let n=await _.tools.toggle(t.id,!t.enabled);if(z(null),!n.success){g.error(n.error||e(`tools.toggleFailed`));return}let r=n.data?.enabled??!t.enabled;X(void 0,t.id,{enabled:r,overridden:!0})},[X,e]),_e=(0,b.useCallback)(e=>{F(e.id),N(e.id),L({name:e.name,description:e.description,category:e.category,enabled:e.enabled})},[]),ve=(0,b.useCallback)(async t=>{z(t.id);let n=await _.tools.update(t.id,{name:I.name,description:I.description,category:I.category,enabled:I.enabled});z(null),!n.success||!n.data?g.error(n.error||e(`tools.saveFailed`)):(X(n.data,t.id,{}),F(null),g.success(e(`tools.saved`)))},[I,X,e]),ye=(0,b.useCallback)(async t=>{z(t.id);let n=await _.tools.reset(t.id);z(null),!n.success||!n.data?g.error(n.error||e(`tools.resetFailed`)):(X(n.data,t.id,{}),F(e=>e===t.id?null:e),g.success(e(`tools.resetDone`)))},[X,e]),Z=(0,b.useCallback)(async(t,n)=>{let r=t.tools.filter(e=>e.enabled!==n);if(r.length===0)return;let i=(await Promise.all(r.map(e=>_.tools.toggle(e.id,n)))).filter(e=>!e.success).length;i>0&&g.warning(e(`tools.groupPartial`,{failed:i,total:r.length})),await K()},[K,e]),be=(0,b.useCallback)(async()=>{let t=await _.tools.exportConfig();if(!t.success||!t.data){g.error(t.error||e(`tools.loadFailed`));return}let n=Object.keys(t.data.tools??{}).length;n===0?g.info(e(`tools.exportEmpty`)):E(`deepseekcode-tools.json`,t.data)?g.success(e(`tools.exportDone`,{count:n})):g.error(e(`tools.exportFailed`))},[e]),xe=(0,b.useCallback)(async t=>{let n;try{n=JSON.parse(await t.text())}catch{g.error(e(`tools.importInvalid`));return}let r=n&&typeof n==`object`&&`tools`in n?n.tools:n,i=r&&typeof r==`object`&&!Array.isArray(r)?Object.keys(r).length:0;i===0?g.error(e(`tools.importEmpty`)):W({payload:n,count:i})},[e]),Q=(0,b.useCallback)(async t=>{let n=U;if(W(null),!n)return;let r=await _.tools.importConfig(n.payload,t);!r.success||!r.data?g.error(e(`tools.importFailed`,{error:r.error??``})):(r.data.unknown.length>0&&g.warning(e(`tools.importUnknown`,{count:r.data.unknown.length})),g.success(e(`tools.importDone`,{count:r.data.applied.length})),await K())},[K,U,e]),Se=(0,b.useCallback)(e=>{M(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),$=J.length>0&&J.every(e=>j.has(e.key));return S?(0,x.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,role:`status`,"aria-label":e(`tools.loading`),children:(0,x.jsx)(oe,{count:5})}):D?(0,x.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,x.jsxs)(`div`,{className:`text-center`,children:[(0,x.jsx)(ee,{size:32,className:`mx-auto mb-2 text-accent-red`}),(0,x.jsx)(`p`,{className:`text-accent-red mb-4`,children:D}),(0,x.jsx)(h,{variant:`accent`,onClick:()=>void K(),children:e(`tools.retry`)})]})}):(0,x.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden p-4`,children:[(0,x.jsxs)(`div`,{className:`flex items-center justify-between mb-3 gap-3`,children:[(0,x.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2 min-w-0`,children:[(0,x.jsx)(u,{size:20,className:`shrink-0`}),(0,x.jsx)(`span`,{className:`truncate`,children:e(`tools.title`)}),(0,x.jsxs)(`span`,{className:`text-sm font-normal text-dark-muted whitespace-nowrap`,children:[e(`tools.totalTools`,{count:i.length}),` · `,e(`tools.enabledCount`,{count:Y})]})]}),(0,x.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,x.jsxs)(`button`,{onClick:()=>void be(),title:B?e(`tools.importPath`,{path:B}):void 0,className:`flex items-center gap-1.5 px-3 py-1.5 bg-dark-surface border border-dark-border rounded hover:bg-dark-hover transition-colors`,children:[(0,x.jsx)(o,{size:14}),e(`tools.exportConfig`),H>0&&(0,x.jsxs)(`span`,{className:`text-xs text-accent-blue`,children:[`(`,H,`)`]})]}),(0,x.jsxs)(`button`,{onClick:()=>G.current?.click(),className:`flex items-center gap-1.5 px-3 py-1.5 bg-dark-surface border border-dark-border rounded hover:bg-dark-hover transition-colors`,children:[(0,x.jsx)(te,{size:14}),e(`tools.importConfig`)]}),(0,x.jsx)(`input`,{ref:G,type:`file`,accept:`application/json,.json`,className:`hidden`,"data-testid":`tools-import-input`,onChange:e=>{let t=e.target.files?.[0];e.target.value=``,t&&xe(t)}}),(0,x.jsxs)(`button`,{onClick:()=>void K(),className:`flex items-center gap-1.5 px-3 py-1.5 bg-dark-surface border border-dark-border rounded hover:bg-dark-hover transition-colors`,children:[(0,x.jsx)(l,{size:14}),e(`tools.refresh`)]})]})]}),(0,x.jsx)(se,{slot:e(`nav.tools`),className:`mb-3`}),(0,x.jsxs)(`div`,{className:`mb-3 px-3 py-2 rounded-lg bg-accent-blue/10 border border-accent-blue/20 text-xs text-dark-muted space-y-1`,children:[pe===`minimal`&&(0,x.jsx)(`div`,{children:e(`tools.profileMinimalHint`,{off:i.length-Y})}),(0,x.jsxs)(`div`,{className:`flex items-center gap-x-2 gap-y-1 flex-wrap`,children:[(0,x.jsx)(`span`,{children:e(`tools.scopeHint`)}),(0,x.jsxs)(`button`,{type:`button`,onClick:he,className:`inline-flex items-center gap-1 text-accent-blue hover:underline`,children:[e(`tools.scopeHintConnectorsLink`),(0,x.jsx)(a,{size:11})]})]})]}),(0,x.jsxs)(`div`,{className:`flex gap-3 mb-3 items-center flex-wrap`,children:[(0,x.jsxs)(`div`,{className:`flex-1 min-w-[200px] relative`,children:[(0,x.jsx)(re,{size:16,className:`absolute start-3 top-1/2 -translate-y-1/2 text-dark-muted`}),(0,x.jsx)(`input`,{type:`text`,value:k,onChange:e=>le(e.target.value),placeholder:e(`tools.searchTools`),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,x.jsxs)(`div`,{className:`flex items-center gap-1 text-sm`,children:[(0,x.jsx)(t,{size:14,className:`text-dark-muted`}),(0,x.jsx)(`span`,{className:`text-dark-muted me-1`,children:e(`tools.groupBy`)}),[`category`,`risk`,`state`].map(t=>(0,x.jsx)(`button`,{onClick:()=>ue(t),className:`px-3 py-1.5 rounded-lg transition-colors ${A===t?`bg-accent-blue text-accent-fg`:`bg-dark-surface border border-dark-border hover:bg-dark-hover`}`,children:e(t===`category`?`tools.groupByCategory`:t===`risk`?`tools.groupByRisk`:`tools.groupByState`)},t)),(0,x.jsx)(`button`,{onClick:()=>M($?new Set:new Set(J.map(e=>e.key))),className:`px-3 py-1.5 rounded-lg bg-dark-surface border border-dark-border hover:bg-dark-hover transition-colors`,children:e($?`tools.expandAll`:`tools.collapseAll`)})]})]}),(0,x.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto custom-scrollbar`,children:(0,x.jsxs)(`div`,{className:`space-y-3`,children:[J.map(t=>{let i=j.has(t.key),a=t.tools.filter(e=>e.enabled).length;return(0,x.jsxs)(`div`,{className:`bg-dark-surface border border-dark-border rounded-lg overflow-hidden`,children:[(0,x.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 bg-dark-hover/40`,children:[(0,x.jsxs)(`button`,{onClick:()=>Se(t.key),className:`flex items-center gap-2 min-w-0 flex-1 text-start`,children:[i?(0,x.jsx)(p,{size:16,className:`shrink-0 text-dark-muted`}):(0,x.jsx)(r,{size:16,className:`shrink-0 text-dark-muted`}),(0,x.jsx)(`span`,{className:`font-medium truncate`,children:t.label}),(0,x.jsx)(`span`,{className:`text-xs text-dark-muted whitespace-nowrap`,children:e(`tools.groupEnabled`,{on:a,total:t.tools.length})})]}),(0,x.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,x.jsx)(`button`,{onClick:()=>void Z(t,!0),disabled:a===t.tools.length,className:`text-xs px-2 py-1 rounded border border-dark-border hover:bg-dark-hover disabled:opacity-40 disabled:cursor-not-allowed`,children:e(`tools.enableGroup`)}),(0,x.jsx)(`button`,{onClick:()=>void Z(t,!1),disabled:a===0,className:`text-xs px-2 py-1 rounded border border-dark-border hover:bg-dark-hover disabled:opacity-40 disabled:cursor-not-allowed`,children:e(`tools.disableGroup`)})]})]}),!i&&(0,x.jsx)(`div`,{className:`divide-y divide-dark-border`,children:t.tools.map(t=>{let i=P===t.id,a=de===t.id||i;return(0,x.jsxs)(`div`,{className:t.enabled?``:`opacity-60`,children:[(0,x.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 gap-3`,children:[(0,x.jsxs)(`button`,{className:`flex items-center gap-2 flex-1 min-w-0 text-start`,onClick:()=>N(a&&!i?null:t.id),children:[a?(0,x.jsx)(r,{size:14,className:`shrink-0 text-dark-muted`}):(0,x.jsx)(p,{size:14,className:`shrink-0 text-dark-muted`}),(0,x.jsx)(`span`,{className:`font-medium truncate`,children:t.name}),(0,x.jsx)(`code`,{className:`text-xs text-dark-muted truncate`,children:t.id}),t.risk&&(0,x.jsxs)(`span`,{className:`px-1.5 py-0.5 rounded text-badge whitespace-nowrap ${ce[t.risk]??`bg-dark-hover text-dark-muted`}`,children:[t.risk===`high`||t.risk===`critical`?(0,x.jsx)(n,{size:10,className:`inline -mt-px me-0.5`}):null,w(t.risk,e)]}),t.overridden&&(0,x.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-badge bg-accent-purple/20 text-accent-purple whitespace-nowrap`,children:e(`tools.overridden`)}),!t.enabled&&!t.overridden&&(0,x.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-badge bg-dark-hover text-dark-muted whitespace-nowrap`,children:t.defaultEnabled===!1?e(`tools.defaultOff`):e(`tools.disabled`)}),t.userInstalled&&(0,x.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-badge bg-accent-blue/20 text-accent-blue whitespace-nowrap`,title:e(`tools.userInstalledHint`),children:e(`tools.userInstalled`)})]}),(0,x.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,x.jsx)(y,{slot:`tools`,id:t.id}),(0,x.jsx)(`button`,{onClick:()=>_e(t),title:e(`tools.edit`),className:`p-1.5 rounded text-dark-muted hover:bg-dark-hover hover:text-dark-text transition-colors`,children:(0,x.jsx)(c,{size:14})}),t.overridden&&(0,x.jsx)(`button`,{onClick:()=>void ye(t),disabled:R===t.id,title:e(`tools.reset`),className:`p-1.5 rounded text-dark-muted hover:bg-dark-hover hover:text-dark-text transition-colors disabled:opacity-40`,children:(0,x.jsx)(s,{size:14})}),(0,x.jsx)(`button`,{onClick:()=>void ge(t),disabled:R===t.id,title:t.enabled?e(`tools.disabled`):e(`tools.enabled`),className:`p-1.5 rounded transition-colors disabled:opacity-40 disabled:cursor-not-allowed ${t.enabled?`text-accent-green hover:bg-accent-green/10`:`text-dark-muted hover:bg-dark-hover`}`,children:t.enabled?(0,x.jsx)(d,{size:24}):(0,x.jsx)(m,{size:24})})]})]}),a&&(0,x.jsx)(`div`,{className:`px-3 pb-3 border-t border-dark-border`,children:i?(0,x.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,x.jsxs)(`label`,{className:`block`,children:[(0,x.jsx)(`span`,{className:`text-xs text-dark-muted`,children:e(`tools.fieldName`)}),(0,x.jsx)(`input`,{value:I.name,onChange:e=>L(t=>({...t,name:e.target.value})),placeholder:e(`tools.namePlaceholder`),className:`w-full mt-1 px-2 py-1.5 bg-dark-bg border border-dark-border rounded text-sm focus:border-accent-blue focus:outline-none`})]}),(0,x.jsxs)(`label`,{className:`block`,children:[(0,x.jsx)(`span`,{className:`text-xs text-dark-muted`,children:e(`tools.fieldCategory`)}),(0,x.jsx)(`input`,{value:I.category,onChange:e=>L(t=>({...t,category:e.target.value})),placeholder:e(`tools.categoryPlaceholder`),className:`w-full mt-1 px-2 py-1.5 bg-dark-bg border border-dark-border rounded text-sm focus:border-accent-blue focus:outline-none`})]}),(0,x.jsxs)(`label`,{className:`block`,children:[(0,x.jsx)(`span`,{className:`text-xs text-dark-muted`,children:e(`tools.fieldDescription`)}),(0,x.jsx)(`textarea`,{value:I.description,onChange:e=>L(t=>({...t,description:e.target.value})),placeholder:e(`tools.descriptionPlaceholder`),rows:3,className:`w-full mt-1 px-2 py-1.5 bg-dark-bg border border-dark-border rounded text-sm focus:border-accent-blue focus:outline-none resize-y`})]}),(0,x.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,x.jsx)(`input`,{type:`checkbox`,checked:I.enabled,onChange:e=>L(t=>({...t,enabled:e.target.checked}))}),e(`tools.fieldEnabled`)]}),(0,x.jsx)(`p`,{className:`text-xs text-dark-muted`,children:e(`tools.descriptionHint`)}),(0,x.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,x.jsx)(h,{variant:`accent`,size:`sm`,leftIcon:(0,x.jsx)(f,{size:14}),loading:R===t.id,onClick:()=>void ve(t),children:e(`tools.save`)}),(0,x.jsxs)(`button`,{onClick:()=>F(null),className:`flex items-center gap-1.5 px-3 py-1.5 border border-dark-border rounded text-sm hover:bg-dark-hover`,children:[(0,x.jsx)(ne,{size:14}),e(`tools.cancel`)]})]})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`p`,{className:`text-sm text-dark-muted mt-3 mb-3 whitespace-pre-wrap`,children:t.description}),t.usage&&(0,x.jsxs)(`div`,{className:`mb-3`,children:[(0,x.jsx)(`div`,{className:`text-xs text-dark-muted mb-1`,children:e(`tools.usageHint`)}),(0,x.jsx)(`p`,{className:`text-sm text-dark-muted whitespace-pre-wrap`,children:t.usage})]}),t.params&&t.params.length>0&&(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`div`,{className:`text-xs text-dark-muted mb-2`,children:e(`tools.params`)}),(0,x.jsx)(`div`,{className:`space-y-1`,children:t.params.map(e=>(0,x.jsxs)(`div`,{className:`flex items-center gap-2 text-sm flex-wrap`,children:[(0,x.jsxs)(`code`,{className:`px-1.5 py-0.5 bg-dark-bg rounded text-accent-blue`,children:[e.name,e.required&&(0,x.jsx)(`span`,{className:`text-accent-red`,children:`*`})]}),(0,x.jsxs)(`span`,{className:`text-dark-muted text-xs`,children:[`(`,e.type,`)`]}),(0,x.jsx)(`span`,{className:`text-dark-muted text-xs`,children:e.description})]},e.name))})]})]})})]},t.id)})})]},t.key)}),q.length===0&&(0,x.jsxs)(`div`,{className:`text-center text-dark-muted py-8`,children:[(0,x.jsx)(u,{size:48,className:`mx-auto mb-2 opacity-50`}),(0,x.jsx)(`p`,{children:e(k?`tools.noMatch`:`tools.noTools`)})]})]})}),(0,x.jsxs)(ae,{isOpen:U!==null,onClose:()=>W(null),title:e(`tools.importTitle`),size:`sm`,children:[(0,x.jsx)(`p`,{className:`text-sm text-dark-muted mb-4`,children:e(`tools.importDesc`,{count:U?.count??0})}),(0,x.jsxs)(`div`,{className:`space-y-2`,children:[(0,x.jsxs)(`button`,{onClick:()=>void Q(`merge`),className:`w-full text-start px-3 py-2 border border-dark-border rounded hover:bg-dark-hover transition-colors`,children:[(0,x.jsx)(`div`,{className:`font-medium text-sm`,children:e(`tools.importMerge`)}),(0,x.jsx)(`div`,{className:`text-xs text-dark-muted`,children:e(`tools.importMergeHint`)})]}),(0,x.jsxs)(`button`,{onClick:()=>void Q(`replace`),className:`w-full text-start px-3 py-2 border border-dark-border rounded hover:bg-dark-hover transition-colors`,children:[(0,x.jsx)(`div`,{className:`font-medium text-sm`,children:e(`tools.importReplace`)}),(0,x.jsx)(`div`,{className:`text-xs text-dark-muted`,children:e(`tools.importReplaceHint`)})]}),(0,x.jsx)(`button`,{onClick:()=>W(null),className:`w-full px-3 py-2 text-sm text-dark-muted hover:text-dark-text transition-colors`,children:e(`tools.cancel`)})]})]})]})}export{D as ToolsView,D as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{m as e,t}from"./mermaid-parser.core-BrXnuEs7.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-BWF7jMDv.js";import"./chunk-DSNLSHJZ-a6-B52h-.js";import{n as i,r as a,t as o}from"./chunk-2E7WHVMD-xX282MrC.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-BGbz3k1k.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{I as e}from"./markdown-N5__3T-w.js";var t=e(),n=[{id:`normal`,label:`灵动`,emoji:`👀`},{id:`sleepy`,label:`困困`,emoji:`😴`},{id:`surprised`,label:`惊讶`,emoji:`😳`},{id:`happy`,label:`开心`,emoji:`😊`},{id:`kiss`,label:`飞吻`,emoji:`😘`},{id:`love`,label:`爱心眼`,emoji:`😍`},{id:`angry`,label:`认真`,emoji:`😠`}],r=[{id:`midnight`,name:`午夜小团子`,cat:`经典`,desc:`安静 · 专注`,colors:[`#111722`,`#4a5262`,`#03060b`],acc:`🪽`},{id:`berry`,name:`莓果甜心`,cat:`可爱`,desc:`甜甜 · 俏皮`,colors:[`#ff78ad`,`#ffb7d2`,`#8d2d61`],acc:`🎀`},{id:`jade`,name:`翡翠王子`,cat:`奇幻`,desc:`优雅 · 沉稳`,colors:[`#075c47`,`#4ba58a`,`#021d1a`],acc:`👑`},{id:`blaze`,name:`烈焰明星`,cat:`潮流`,desc:`热烈 · 自信`,colors:[`#ff171d`,`#ff8a80`,`#8a0010`],acc:`🪶`},{id:`blues`,name:`蓝调玩家`,cat:`潮流`,desc:`酷感 · 松弛`,colors:[`#164eaa`,`#4f91f8`,`#06142f`],acc:`🕶️`},{id:`bride`,name:`白纱新娘`,cat:`可爱`,desc:`温柔 · 梦幻`,colors:[`#fff3d9`,`#ffffff`,`#d4c5b2`],acc:`👰`},{id:`galaxy`,name:`银河幽灵`,cat:`奇幻`,desc:`神秘 · 漂浮`,colors:[`#8e7bff`,`#c4baff`,`#382a81`],acc:`✨`},{id:`lemon`,name:`柠檬汽水`,cat:`自然`,desc:`清爽 · 元气`,colors:[`#b5d92e`,`#f0ff9c`,`#4e6411`],acc:`🍋`},{id:`cream`,name:`奶油云朵`,cat:`可爱`,desc:`软糯 · 治愈`,colors:[`#f2e9dd`,`#ffffff`,`#c7b7a8`],acc:`☁️`},{id:`sakura`,name:`樱花武士`,cat:`奇幻`,desc:`勇敢 · 温柔`,colors:[`#e45f91`,`#ffb5cf`,`#7e244c`],acc:`🎎`},{id:`cyber`,name:`赛博像素`,cat:`潮流`,desc:`未来 · 高能`,colors:[`#18d8d0`,`#a1fff7`,`#075a70`],acc:`🤖`},{id:`pumpkin`,name:`南瓜精灵`,cat:`节日`,desc:`古灵精怪`,colors:[`#ff7b25`,`#ffc078`,`#8b3000`],acc:`🎃`},{id:`snow`,name:`雪夜旅人`,cat:`自然`,desc:`冷静 · 清透`,colors:[`#8fc9e8`,`#e0f8ff`,`#326b91`],acc:`❄️`},{id:`devil`,name:`小恶魔`,cat:`奇幻`,desc:`调皮 · 狡黠`,colors:[`#a83254`,`#f56e83`,`#4a0b23`],acc:`😈`},{id:`mushroom`,name:`森林蘑菇`,cat:`自然`,desc:`自然 · 慢活`,colors:[`#6b8f52`,`#c6d9a2`,`#2a4525`],acc:`🍄`},{id:`gold`,name:`黄金会员`,cat:`奢华`,desc:`闪耀 · 稀有`,colors:[`#d69c27`,`#ffe6a0`,`#71440c`],acc:`👑`},{id:`astro`,name:`宇航员`,cat:`奇幻`,desc:`探索 · 好奇`,colors:[`#64758c`,`#e2ecff`,`#263348`],acc:`🚀`},{id:`catcap`,name:`猫耳队长`,cat:`可爱`,desc:`敏捷 · 机灵`,colors:[`#6b6de2`,`#b7b8ff`,`#2d2b7a`],acc:`🐱`},{id:`mintbot`,name:`薄荷机器人`,cat:`科技`,desc:`理性 · 可靠`,colors:[`#3cbda2`,`#b1f5e4`,`#126858`],acc:`🤖`},{id:`vinyl`,name:`复古唱片`,cat:`潮流`,desc:`复古 · 慵懒`,colors:[`#9c6d51`,`#e7b99a`,`#4d2e23`],acc:`🎧`},{id:`seal`,name:`海盐海豹`,cat:`自然`,desc:`软萌 · 平和`,colors:[`#729fb9`,`#cce9f7`,`#31526d`],acc:`🐚`},{id:`rainbow`,name:`彩虹糖豆`,cat:`可爱`,desc:`快乐 · 多彩`,colors:[`#df66d4`,`#ffc5f5`,`#792c7d`],acc:`🌈`},{id:`count`,name:`暗夜伯爵`,cat:`奢华`,desc:`神秘 · 高贵`,colors:[`#28213f`,`#71658e`,`#0b0914`],acc:`🎩`},{id:`birthday`,name:`生日派对`,cat:`节日`,desc:`庆祝 · 欢腾`,colors:[`#ff9b58`,`#ffe4a8`,`#b44b7a`],acc:`🎉`},{id:`wizard`,name:`代码巫师`,cat:`科技`,desc:`聪明 · 专注`,colors:[`#3867db`,`#92b5ff`,`#172d72`],acc:`🪄`},{id:`desert`,name:`沙漠旅者`,cat:`自然`,desc:`自由 · 坚韧`,colors:[`#c58b5a`,`#f2d0a5`,`#754629`],acc:`🧢`},{id:`bubble`,name:`泡泡糖`,cat:`可爱`,desc:`活泼 · 甜酷`,colors:[`#fa8bc8`,`#ffd3e9`,`#a52e73`],acc:`🫧`},{id:`bolt`,name:`雷电侠`,cat:`潮流`,desc:`速度 · 能量`,colors:[`#f1c928`,`#fff1a3`,`#8d6800`],acc:`⚡`},{id:`deepsea`,name:`深海潜行者`,cat:`自然`,desc:`沉静 · 深邃`,colors:[`#126b83`,`#61d0df`,`#04303e`],acc:`🐠`},{id:`gelato`,name:`冰淇淋骑士`,cat:`可爱`,desc:`甜品 · 勇气`,colors:[`#e6a6cb`,`#ffe3f3`,`#a45a89`],acc:`🍦`},{id:`halloween`,name:`万圣夜`,cat:`节日`,desc:`怪趣 · 暗黑`,colors:[`#5e347e`,`#bd81e9`,`#251038`],acc:`🦇`},{id:`angel`,name:`晨光天使`,cat:`奇幻`,desc:`希望 · 温暖`,colors:[`#f5d9a4`,`#fff8dc`,`#b99858`],acc:`😇`},{id:`rocker`,name:`摇滚主唱`,cat:`潮流`,desc:`自由 · 不羁`,colors:[`#4b4b58`,`#a8a8bd`,`#181820`],acc:`🎸`},{id:`gardener`,name:`小小园丁`,cat:`自然`,desc:`生长 · 友善`,colors:[`#70aa65`,`#c9e8b9`,`#2d6031`],acc:`🌱`},{id:`pearl`,name:`珍珠公主`,cat:`奢华`,desc:`优雅 · 闪亮`,colors:[`#d6c9ec`,`#fff6ff`,`#8e7da8`],acc:`💎`},{id:`xmas`,name:`圣诞精灵`,cat:`节日`,desc:`温暖 · 欢乐`,colors:[`#247d58`,`#a3e0b8`,`#10412d`],acc:`🎄`},{id:`mars`,name:`火星来客`,cat:`科技`,desc:`奇妙 · 外星`,colors:[`#db6b52`,`#ffc1a9`,`#843523`],acc:`👽`},{id:`tea`,name:`茶茶大师`,cat:`自然`,desc:`松弛 · 清醒`,colors:[`#94734d`,`#d9bd92`,`#503c26`],acc:`🍵`},{id:`koi`,name:`幸运锦鲤`,cat:`奇幻`,desc:`好运 · 闪耀`,colors:[`#ef8159`,`#ffd2a3`,`#9e3c2d`],acc:`🍀`},{id:`ghost`,name:`像素幽灵`,cat:`科技`,desc:`轻巧 · 数字`,colors:[`#8ca2a9`,`#e4f3f6`,`#3c535a`],acc:`👾`}],i=[[`#111722`,`#4a5262`,`#03060b`],[`#ff78ad`,`#ffb7d2`,`#8d2d61`],[`#075c47`,`#4ba58a`,`#021d1a`],[`#164eaa`,`#4f91f8`,`#06142f`],[`#8e7bff`,`#c4baff`,`#382a81`],[`#ff7b25`,`#ffc078`,`#8b3000`],[`#f2e9dd`,`#ffffff`,`#c7b7a8`],[`#18d8d0`,`#a1fff7`,`#075a70`],[`#d69c27`,`#ffe6a0`,`#71440c`],[`#df66d4`,`#ffc5f5`,`#792c7d`]],a=[{id:`none`,label:`无配件`},{id:`bow`,label:`蝴蝶结`},{id:`crown`,label:`王冠`},{id:`glasses`,label:`太阳镜`,layer:`front`},{id:`wings`,label:`天使翅膀`},{id:`feather`,label:`羽毛围脖`},{id:`ears`,label:`猫耳`},{id:`horns`,label:`恶魔角`},{id:`halo`,label:`光环`},{id:`headphones`,label:`耳机`},{id:`hat`,label:`魔法帽`},{id:`star`,label:`星星`},{id:`gem`,label:`皇冠宝石`},{id:`party`,label:`派对帽`},{id:`scarf`,label:`围巾`},{id:`sprout`,label:`小芽`},{id:`flower`,label:`花朵`},{id:`flame`,label:`小火焰`},{id:`snow`,label:`雪花`},{id:`fish`,label:`小鱼`},{id:`coffee`,label:`咖啡杯`},{id:`rocket`,label:`火箭`},{id:`mask`,label:`面具`,layer:`front`},{id:`ghost`,label:`小幽灵`}],o={"🎀":`bow`,"👑":`crown`,"🕶️":`glasses`,"🤓":`glasses`,"🪽":`wings`,"🪶":`feather`,"🐱":`ears`,"🐰":`ears`,"😈":`horns`,"🦇":`horns`,"😇":`halo`,"🎧":`headphones`,"🎸":`headphones`,"🧙":`hat`,"🪄":`hat`,"🎩":`hat`,"⭐":`star`,"✨":`star`,"⚡":`star`,"🚀":`star`,"🌈":`star`,"🫧":`star`,"💎":`gem`,"🐚":`gem`,"🐠":`gem`,"🥳":`party`,"🎉":`party`,"🍦":`party`,"🧣":`scarf`,"🍃":`sprout`,"🌱":`sprout`,"🍀":`sprout`,"🎄":`sprout`,"🍄":`sprout`,"🍋":`sprout`,"☁️":`wings`,"👰":`bow`,"🎎":`bow`,"🎃":`horns`,"👽":`ears`,"👾":`glasses`,"🍵":`sprout`,"🧢":`feather`},s={经典:`feather`,可爱:`bow`,奇幻:`star`,潮流:`glasses`,自然:`sprout`,科技:`headphones`,奢华:`gem`,节日:`party`};function c(e){return o[e.acc]??s[e.cat]}var l=`M40 11C25 11 17 22 19 35C7 43 7 59 14 71C21 84 30 88 40 88C54 88 66 78 68 62C71 49 65 39 61 34C63 20 53 11 40 11Z`,u=`M40 12C27 12 21 23 22 34C15 42 13 54 18 65C21 73 28 79 35 80C25 65 26 52 31 43C35 34 46 28 55 31C56 19 49 12 40 12Z`;function d(e){return e<=26?`small`:`large`}function f(e){return Math.min(7.5,Math.max(1.8,116/e))}var p=1.35,m=1.16,h=`#3f3646`;function g(e){let t=Number.parseInt(e.replace(`#`,``),16),n=e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4};return .2126*n(t>>16&255)+.7152*n(t>>8&255)+.0722*n(t&255)}function _(e,t){let n=g(e),r=g(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function v(e,t){let n=Number.parseInt(e.replace(`#`,``),16),r=e=>Math.round(e+(255-e)*t).toString(16).padStart(2,`0`);return`#${r(n>>16&255)}${r(n>>8&255)}${r(n&255)}`}function y(e){let[t,n]=e,r=v(n,.22);return _(r,t)>=_(h,t)?r:h}function b(e,n){switch(e){case`happy`:return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(`path`,{d:`M22 39Q29 30 36 39`,fill:`none`,stroke:n,strokeWidth:3.5,strokeLinecap:`round`}),(0,t.jsx)(`path`,{d:`M44 39Q51 30 58 39`,fill:`none`,stroke:n,strokeWidth:3.5,strokeLinecap:`round`})]});case`love`:return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(`path`,{d:`M29 44C14 34 22 25 29 33C36 25 44 34 29 44Z`,fill:`#ff7eaa`}),(0,t.jsx)(`path`,{d:`M51 44C36 34 44 25 51 33C58 25 66 34 51 44Z`,fill:`#ff7eaa`})]});case`angry`:return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(`path`,{d:`M22 35L35 39`,stroke:n,strokeWidth:4,strokeLinecap:`round`}),(0,t.jsx)(`path`,{d:`M45 39L58 35`,stroke:n,strokeWidth:4,strokeLinecap:`round`})]});case`surprised`:return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(`ellipse`,{cx:29,cy:37,rx:6.5,ry:8,fill:n}),(0,t.jsx)(`ellipse`,{cx:51,cy:37,rx:6.5,ry:8,fill:n})]});default:return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(`ellipse`,{cx:29,cy:38,rx:6.5,ry:7.5,fill:n}),(0,t.jsx)(`ellipse`,{cx:51,cy:38,rx:6.5,ry:7.5,fill:n})]})}}function x(e,n){switch(e){case`sleepy`:return(0,t.jsx)(`path`,{d:`M37 51Q40 48 43 51`,fill:`none`,stroke:n,strokeWidth:2.4,strokeLinecap:`round`});case`surprised`:return(0,t.jsx)(`ellipse`,{cx:40,cy:51,rx:3.2,ry:4.2,fill:n});case`happy`:return(0,t.jsx)(`path`,{d:`M33 48Q40 57 47 48`,fill:`none`,stroke:n,strokeWidth:2.5,strokeLinecap:`round`});case`love`:return(0,t.jsx)(`path`,{d:`M35 49Q40 54 45 49`,fill:`none`,stroke:n,strokeWidth:2.4,strokeLinecap:`round`});case`angry`:return(0,t.jsx)(`path`,{d:`M34 52H46`,stroke:n,strokeWidth:2.5,strokeLinecap:`round`});case`kiss`:return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(`path`,{d:`M38 49Q40 46 43 49Q40 54 38 49Z`,fill:`#ff8caf`,stroke:n,strokeWidth:1}),(0,t.jsx)(`path`,{d:`M60 34C54 27 64 23 67 30C70 23 80 27 73 34L67 40Z`,fill:`#ff5f9a`}),(0,t.jsx)(`path`,{d:`M63 48C58 43 65 39 68 44C71 39 78 43 72 48L68 52Z`,fill:`#ff8caf`})]});default:return(0,t.jsx)(`path`,{d:`M39 49Q43 52 47 49`,fill:`none`,stroke:n,strokeWidth:2.4,strokeLinecap:`round`})}}function S(e){return a.find(t=>t.id===e)?.layer===`front`?`front`:`behind`}function C(e,n,r){switch(e){case`bow`:return(0,t.jsxs)(`g`,{transform:`translate(60 13)`,children:[(0,t.jsx)(`path`,{d:`M0 0Q-18 -13 -16 1Q-11 10 0 3Q12 12 17 1Q17 -12 0 0`,fill:`#ff86b8`,stroke:`#f7d5e5`,strokeWidth:r*.5}),(0,t.jsx)(`circle`,{r:4,fill:`#ffc6df`})]});case`crown`:return(0,t.jsxs)(`g`,{transform:`translate(39 11)`,stroke:`#e8b847`,strokeWidth:r*.7,strokeLinejoin:`round`,children:[(0,t.jsx)(`path`,{d:`M-15 5L-19 -8 -7 0 0 -13 7 0 19 -8 15 5Z`,fill:`#f7d778`}),(0,t.jsx)(`path`,{d:`M-15 5H15V10H-15Z`,fill:`#dba72f`}),(0,t.jsx)(`circle`,{cx:0,cy:-13,r:2,fill:`#fff1b5`})]});case`glasses`:return(0,t.jsxs)(`g`,{transform:`translate(39 38)`,stroke:`#e9eef7`,strokeWidth:r*.7,children:[(0,t.jsx)(`path`,{d:`M-27 -4Q-12 -10 -3 -3L-5 7Q-14 13 -23 6Z`,fill:`#172335`,fillOpacity:.92}),(0,t.jsx)(`path`,{d:`M3 -3Q14 -10 27 -4L23 6Q14 13 5 7Z`,fill:`#172335`,fillOpacity:.92}),(0,t.jsx)(`path`,{d:`M-4 0H4`,strokeWidth:r})]});case`wings`:return(0,t.jsxs)(`g`,{fill:`#fff`,fillOpacity:.78,stroke:`#d7d5e4`,strokeWidth:r*.25,children:[(0,t.jsx)(`path`,{d:`M16 31Q-4 9 0 23Q-4 14 8 39L19 49Z`}),(0,t.jsx)(`path`,{d:`M62 31Q82 9 78 23Q82 14 70 39L59 49Z`})]});case`feather`:return(0,t.jsxs)(`g`,{fill:`#fff5f7`,stroke:`#e8dce1`,strokeWidth:r*.28,children:[(0,t.jsx)(`path`,{d:`M16 54Q-1 45 7 57L16 64 10 65 20 68 25 63Z`}),(0,t.jsx)(`path`,{d:`M62 54Q79 45 71 57L62 64 68 65 58 68 53 63Z`})]});case`ears`:return(0,t.jsxs)(`g`,{fill:n[0],stroke:n[1],strokeWidth:r*.7,children:[(0,t.jsx)(`path`,{d:`M19 25L16 5Q29 12 32 22Z`}),(0,t.jsx)(`path`,{d:`M59 22Q62 12 75 5L72 25Z`})]});case`horns`:return(0,t.jsxs)(`g`,{fill:`#c73b5d`,stroke:`#ffb3bd`,strokeWidth:r*.35,children:[(0,t.jsx)(`path`,{d:`M19 25Q8 3 18 9L31 22Z`}),(0,t.jsx)(`path`,{d:`M59 22L72 9Q82 3 71 25Z`})]});case`halo`:return(0,t.jsx)(`ellipse`,{cx:39,cy:7,rx:18,ry:5,fill:`none`,stroke:`#f3d578`,strokeWidth:r});case`headphones`:return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(`path`,{d:`M13 40V33Q13 8 39 8Q65 8 65 33V40`,fill:`none`,stroke:`#b5a5ff`,strokeWidth:r*1.7}),(0,t.jsx)(`rect`,{x:10,y:34,width:9,height:17,rx:4,fill:`#9e8aff`}),(0,t.jsx)(`rect`,{x:59,y:34,width:9,height:17,rx:4,fill:`#9e8aff`})]});case`hat`:return(0,t.jsxs)(`g`,{children:[(0,t.jsx)(`path`,{d:`M19 23L32 -5Q36 -12 41 -4L61 23Z`,fill:`#4b327e`,stroke:`#bca4ff`,strokeWidth:r*.5}),(0,t.jsx)(`ellipse`,{cx:40,cy:23,rx:23,ry:5,fill:`#7456ad`}),(0,t.jsx)(`path`,{d:`M31 8L37 4 42 10 48 5`,fill:`none`,stroke:`#ffe68c`,strokeWidth:r*.7})]});case`star`:return(0,t.jsx)(`g`,{fill:`#ffe27d`,stroke:`#fff4c4`,strokeWidth:r*.35,children:(0,t.jsx)(`path`,{d:`M63 15L66 22 74 23 68 28 70 36 63 31 56 36 58 28 52 23 60 22Z`})});case`gem`:return(0,t.jsx)(`path`,{d:`M27 13L34 7H44L51 13 39 25Z`,fill:`#a4eaff`,stroke:`#eaffff`,strokeWidth:r*.5});case`party`:return(0,t.jsxs)(`g`,{children:[(0,t.jsx)(`path`,{d:`M20 22L30 0 41 18 51 -2 61 22Z`,fill:`#ffce5b`}),(0,t.jsx)(`circle`,{cx:30,cy:0,r:2,fill:`#ff7ca8`}),(0,t.jsx)(`circle`,{cx:51,cy:-2,r:2,fill:`#8d80ff`})]});case`scarf`:return(0,t.jsx)(`path`,{d:`M19 58Q39 66 60 57L65 66Q40 77 17 67Z`,fill:`#dc4d63`,stroke:`#ffb2bd`,strokeWidth:r*.35});case`sprout`:return(0,t.jsx)(`path`,{d:`M60 23Q58 4 75 7Q76 23 60 23M60 23Q44 8 42 20Q48 29 60 23`,fill:`#83c77d`,stroke:`#d4f2bc`,strokeWidth:r*.5});case`flower`:return(0,t.jsxs)(`g`,{transform:`translate(64 16)`,children:[[0,72,144,216,288].map(e=>(0,t.jsx)(`ellipse`,{cx:0,cy:-6,rx:4.2,ry:5,fill:`#ffb3d1`,stroke:`#fff0f6`,strokeWidth:r*.25,transform:`rotate(${e})`},e)),(0,t.jsx)(`circle`,{r:3,fill:`#ffd166`})]});case`flame`:return(0,t.jsxs)(`g`,{transform:`translate(63 8)`,children:[(0,t.jsx)(`path`,{d:`M0 6C-7 0 -4 -8 0 -14C4 -8 7 0 0 6Z`,fill:`#ff7a3d`,stroke:`#ffd7a8`,strokeWidth:r*.3}),(0,t.jsx)(`path`,{d:`M0 4C-3.4 1 -2 -4 0 -7C2 -4 3.4 1 0 4Z`,fill:`#ffd166`})]});case`snow`:return(0,t.jsx)(`g`,{transform:`translate(64 15)`,stroke:`#bce7ff`,strokeWidth:r*.45,strokeLinecap:`round`,children:[0,60,120].map(e=>(0,t.jsx)(`path`,{d:`M0 -8V8`,transform:`rotate(${e})`},e))});case`fish`:return(0,t.jsxs)(`g`,{transform:`translate(65 52)`,children:[(0,t.jsx)(`path`,{d:`M-6 0Q0 -6 6 0Q0 6 -6 0Z`,fill:`#7fd8ea`,stroke:`#d7f6ff`,strokeWidth:r*.3}),(0,t.jsx)(`path`,{d:`M6 0L11 -4V4Z`,fill:`#7fd8ea`})]});case`coffee`:return(0,t.jsxs)(`g`,{transform:`translate(65 70)`,children:[(0,t.jsx)(`path`,{d:`M-7 -5H5V6Q-1 10 -7 6Z`,fill:`#f0e3d2`,stroke:`#c9b79f`,strokeWidth:r*.3}),(0,t.jsx)(`path`,{d:`M5 -3Q10 -1 5 3`,fill:`none`,stroke:`#c9b79f`,strokeWidth:r*.5})]});case`rocket`:return(0,t.jsxs)(`g`,{transform:`translate(65 18) rotate(28)`,children:[(0,t.jsx)(`path`,{d:`M0 -12C6 -6 6 4 0 8C-6 4 -6 -6 0 -12Z`,fill:`#eef2f8`,stroke:`#c3ccd9`,strokeWidth:r*.3}),(0,t.jsx)(`circle`,{cy:-2,r:2.4,fill:`#7cc7ff`}),(0,t.jsx)(`path`,{d:`M0 8L-3.4 12H3.4Z`,fill:`#ff8a80`})]});case`mask`:return(0,t.jsxs)(`g`,{transform:`translate(62 46)`,children:[(0,t.jsx)(`path`,{d:`M-8 -6Q0 -10 8 -6Q7 6 0 9Q-7 6 -8 -6Z`,fill:`#f6f1ff`,stroke:`#c9bce6`,strokeWidth:r*.35}),(0,t.jsx)(`circle`,{cx:-3,cy:-2,r:1.6,fill:`#3f3646`}),(0,t.jsx)(`circle`,{cx:3,cy:-2,r:1.6,fill:`#3f3646`}),(0,t.jsx)(`path`,{d:`M-3 3Q0 5 3 3`,fill:`none`,stroke:`#3f3646`,strokeWidth:r*.35,strokeLinecap:`round`})]});case`ghost`:return(0,t.jsx)(`g`,{transform:`translate(64 24)`,children:(0,t.jsx)(`path`,{d:`M-6 -2Q-6 -10 0 -10Q6 -10 6 -2V6L3 3.6 0 6 -3 3.6 -6 6Z`,fill:`#f2f4ff`,fillOpacity:.92,stroke:`#cfd6ee`,strokeWidth:r*.3})});default:return null}}function w({colors:e,expression:n=`normal`,accessory:r=`none`,tier:i=`large`,uid:a,size:o}){let s=e,c=i===`small`?`translate(40 46) scale(${i===`small`?p:1}) translate(-40 -46)`:void 0,d=i===`small`?`translate(40 44) scale(${i===`small`?m:1}) translate(-40 -44)`:void 0,h=f(o),g=i===`large`,_=`bg${a}`,v=y(s),w=S(r)===`front`;return(0,t.jsxs)(`svg`,{viewBox:`0 0 80 94`,width:o,height:o,"aria-hidden":`true`,style:{overflow:`visible`},children:[(0,t.jsxs)(`defs`,{children:[(0,t.jsxs)(`radialGradient`,{id:`${_}a`,cx:`30%`,cy:`22%`,r:`78%`,children:[(0,t.jsx)(`stop`,{stopColor:s[1]}),(0,t.jsx)(`stop`,{offset:.36,stopColor:s[0]}),(0,t.jsx)(`stop`,{offset:1,stopColor:s[2]})]}),g&&(0,t.jsxs)(`linearGradient`,{id:`${_}b`,x1:`0`,y1:`0`,x2:`1`,y2:`1`,children:[(0,t.jsx)(`stop`,{stopColor:`#fff`,stopOpacity:.6}),(0,t.jsx)(`stop`,{offset:.5,stopColor:`#fff`,stopOpacity:0}),(0,t.jsx)(`stop`,{offset:1,stopColor:`#fff`,stopOpacity:.05})]})]}),!w&&(0,t.jsx)(`g`,{className:`ag-deco`,transform:c,children:C(r,s,h)}),(0,t.jsx)(`path`,{d:l,fill:`url(#${_}a)`,stroke:v,strokeOpacity:.26,strokeWidth:g?1.2:h*.45}),g&&(0,t.jsx)(`path`,{d:u,fill:`url(#${_}b)`}),w&&(0,t.jsx)(`g`,{className:`ag-deco`,transform:c,children:C(r,s,h)}),(0,t.jsx)(`g`,{className:`ag-eye`,transform:d,children:b(n,v)}),x(n,v),g&&(0,t.jsx)(`ellipse`,{cx:40,cy:88,rx:23,ry:3,fill:s[2],opacity:.12})]})}var T=r.map(e=>({id:e.id,cat:e.cat,name:e.name,desc:e.desc,colors:e.colors,accessory:c(e)}));T.map(e=>e.id);function E(e){let t=5381;for(let n=0;n<e.length;n++)t=t*33^e.charCodeAt(n);return(t%2147483647+2147483647)%2147483647}function D(e){return e?T[E(`${e}:icon`)%T.length]:T[0]}function O(e){return T.find(t=>t.id===e)??T[0]}var k={running:`normal`,waiting:`surprised`,done:`happy`,failed:`angry`};function A(e){return e?k[e]:`normal`}export{a,i as c,y as d,d as f,D as i,r as l,O as n,l as o,A as r,n as s,T as t,w as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-COiEfhsA.js";var t=``;function n(e){t=typeof e==`string`?e.trim():``}function r(){return t}function i(e){return`${e}`}function a(){return r()}function o(){let e=a();return e?`&sessionId=${encodeURIComponent(e)}`:``}var s=new class{baseUrl;constructor(e){this.baseUrl=e}async request(e,t={}){try{let n=sessionStorage.getItem(`auth_token`)??localStorage.getItem(`auth_token`),r={"Content-Type":`application/json`,...t.headers};n&&(r.Authorization=`Bearer ${n}`);let i=a();i&&!r[`X-Session-Id`]&&(r[`X-Session-Id`]=i);let o=await fetch(`${this.baseUrl}${e}`,{headers:r,...t}),s=await o.json();return o.ok?s&&typeof s.success==`boolean`?{success:s.success,data:s.data,error:s.error,...typeof s.code==`string`?{code:s.code}:{}}:{success:!0,data:s}:{success:!1,error:s.error||`HTTP ${o.status}`,...typeof s.code==`string`?{code:s.code}:{},data:s.data}}catch(e){return{success:!1,error:e instanceof Error?e.message:`Network error`}}}get(e){return this.request(e,{method:`GET`})}post(e,t){return this.request(e,{method:`POST`,body:t?JSON.stringify(t):void 0})}put(e,t){return this.request(e,{method:`PUT`,body:t?JSON.stringify(t):void 0})}delete(e,t){return this.request(e,{method:`DELETE`,body:t?JSON.stringify(t):void 0})}patch(e,t){return this.request(e,{method:`PATCH`,body:t?JSON.stringify(t):void 0})}}(``),c={get:()=>s.get(`/api/config/sandbox`),save:e=>s.post(`/api/config/sandbox`,e)},l=e({api:()=>u,apiClient:()=>s,default:()=>u}),u={providers:{presets:()=>s.get(`/api/providers/presets`),refresh:()=>s.post(`/api/providers/refresh`),testConnection:(e,t,n)=>s.post(`/api/providers/test-connection`,{baseUrl:e,apiKey:t,model:n})},models:{list:async()=>{let e=await s.get(`/api/models`);return e.success&&e.data?.models&&(e.data.models=e.data.models.map(e=>({...e,isGlobalDefault:e.isDefault===!0}))),e},get:e=>s.get(`/api/models/${e}`),create:e=>s.post(`/api/models`,e),update:(e,t,n)=>s.post(`/api/models/update`,{provider:e,modelId:t,...n}),delete:(e,t)=>s.post(`/api/models/delete`,{provider:e,modelId:t}),test:e=>s.post(`/api/models/${e}/test`),fetch:(e,t,n,r)=>s.post(`/api/models/fetch`,{baseUrl:e,apiKey:t,fullPath:n,preset:r}),byProvider:(e,t)=>{let n=new URLSearchParams({provider:e});return t&&n.set(`q`,t),s.get(`/api/models/by-provider?${n.toString()}`)},catalogSearch:e=>{let t=new URLSearchParams;e.q&&t.set(`q`,e.q),e.toolCall&&t.set(`toolCall`,`1`),e.reasoning&&t.set(`reasoning`,`1`),e.minContext&&t.set(`minContext`,String(e.minContext)),e.limit&&t.set(`limit`,String(e.limit));let n=t.toString();return s.get(`/api/models/catalog${n?`?${n}`:``}`)},toggle:(e,t)=>s.post(`/api/models/toggle`,{provider:e,modelId:t}),setDefaults:e=>s.post(`/api/models/defaults`,e),getSessionModel:e=>s.get(`/api/sessions/${encodeURIComponent(e)}/model`),setSessionModel:(e,t,n)=>s.put(`/api/sessions/${encodeURIComponent(e)}/model`,{provider:t,model:n}),clearSessionModel:e=>s.delete(`/api/sessions/${encodeURIComponent(e)}/model`)},tools:{list:()=>s.get(`/api/tools`),get:e=>s.get(`/api/tools/${e}`),update:(e,t)=>s.put(`/api/tools/${encodeURIComponent(e)}`,t),toggle:(e,t)=>s.post(`/api/tools/${encodeURIComponent(e)}/toggle`,{enabled:t}),reset:e=>s.post(`/api/tools/${encodeURIComponent(e)}/reset`,{}),exportConfig:()=>s.get(`/api/tools/config`),importConfig:(e,t=`merge`)=>s.put(`/api/tools/config`,{config:e,mode:t})},connectors:{list:()=>s.get(`/api/connectors`),get:e=>s.get(`/api/connectors/${encodeURIComponent(e)}`),toggle:(e,t,n)=>s.post(`/api/connectors/${encodeURIComponent(e)}/toggle`,{enabled:t,env:n}),connect:(e,t)=>s.post(`/api/connectors/${encodeURIComponent(e)}/connect`,{env:t}),accounts:e=>s.get(`/api/connectors/${encodeURIComponent(e)}/accounts`),addAccount:(e,t)=>s.post(`/api/connectors/${encodeURIComponent(e)}/accounts`,t),updateAccount:(e,t,n)=>s.patch(`/api/connectors/${encodeURIComponent(e)}/accounts/${encodeURIComponent(t)}`,n),removeAccount:(e,t)=>s.delete(`/api/connectors/${encodeURIComponent(e)}/accounts/${encodeURIComponent(t)}`),addCustom:e=>s.post(`/api/connectors/custom`,e),removeCustom:e=>s.delete(`/api/connectors/custom/${encodeURIComponent(e)}`),authorize:e=>s.post(`/api/connectors/${encodeURIComponent(e)}/authorize`,{})},device:{androidStatus:()=>s.get(`/api/device/android`)},skills:{list:()=>s.get(`/api/skills`),get:e=>s.get(`/api/skills/${e}`),create:e=>s.post(`/api/skills`,e),update:(e,t)=>s.put(`/api/skills/${e}`,t),toggle:(e,t)=>s.post(`/api/skills/${e}/toggle`,{enabled:t}),delete:e=>s.delete(`/api/skills/${e}`),import:e=>s.post(`/api/skills/import`,e),marketplaces:{list:()=>s.get(`/api/skills/marketplaces`),add:e=>s.post(`/api/skills/marketplaces`,e),remove:e=>s.delete(`/api/skills/marketplaces/${e}`),get:e=>s.get(`/api/skills/marketplaces/${e}`),refresh:e=>s.post(`/api/skills/marketplaces/${e}/refresh`,{}),install:(e,t)=>s.post(`/api/skills/marketplaces/${e}/install`,{skillId:t})},workshop:{list:e=>s.get(`/api/skills/workshop${e?`?status=${e}`:``}`),propose:e=>s.post(`/api/skills/workshop`,e),apply:e=>s.post(`/api/skills/workshop/${e}/apply`,{}),reject:e=>s.post(`/api/skills/workshop/${e}/reject`,{})},config:{get:e=>s.get(`/api/skills/${e}/config`),update:(e,t)=>s.put(`/api/skills/${e}/config`,t)}},shell:{exec:(e,t,n)=>s.post(`/api/shell/exec`,{command:e,workspaceDir:t,timeoutMs:n})},terminalFigure:{generate:e=>s.post(`/api/terminal-figure`,e)},visualArtifacts:{list:(e={})=>{let t=Object.entries(e).filter(([,e])=>typeof e==`string`&&e!==``).map(([e,t])=>`${e}=${encodeURIComponent(String(t))}`).join(`&`);return s.get(`/api/visual-artifacts${t?`?${t}`:``}`)},remove:e=>s.delete(`/api/visual-artifacts/${encodeURIComponent(e)}`)},pendingArtifacts:{list:e=>s.get(`/api/pending-artifacts${e?`?status=${e}`:``}`),approve:(e,t)=>s.post(`/api/pending-artifacts/${e}/approve`,{note:t}),reject:(e,t)=>s.post(`/api/pending-artifacts/${e}/reject`,{note:t})},files:{list:(e,t)=>s.get(`/api/files${e?`?path=${encodeURIComponent(e)}${t?.optional?`&optional=1`:``}`:``}`),search:e=>s.get(`/api/files/search?query=${encodeURIComponent(e)}`),read:e=>s.get(`/api/files/read?path=${encodeURIComponent(e)}`),previewDocx:e=>s.get(`/api/files/preview-docx?path=${encodeURIComponent(e)}`),previewXlsx:e=>s.get(`/api/files/preview-xlsx?path=${encodeURIComponent(e)}`),previewTicket:(e,t)=>s.post(`/api/files/preview-ticket`,{path:e,endpoint:t}),create:(e,t)=>s.post(`/api/files`,{path:e,content:t}),update:(e,t)=>s.put(`/api/files/write`,{path:e,content:t}),delete:e=>s.delete(`/api/files?path=${encodeURIComponent(e)}`),download:async e=>{try{let t={},n=sessionStorage.getItem(`auth_token`)??localStorage.getItem(`auth_token`);n&&(t.Authorization=`Bearer ${n}`);let r=await fetch(i(`/api/files/download?path=${encodeURIComponent(e)}${o()}`),{headers:t});if(!r.ok){let e=`HTTP ${r.status}`;try{let t=await r.json();t?.error&&(e=t.error)}catch{}return{success:!1,error:e}}let a=await r.blob(),s=URL.createObjectURL(a),c=document.createElement(`a`);return c.href=s,c.download=e.split(/[\\/]/).pop()||`download`,c.click(),URL.revokeObjectURL(s),{success:!0}}catch(e){return{success:!1,error:e instanceof Error?e.message:`Download failed`}}},upload:async(e,t)=>{try{let n=await d(e);return s.post(`/api/files/upload`,{path:t,content:n,base64:!0})}catch(e){return{success:!1,error:e instanceof Error?e.message:`Upload failed`}}}},dirs:{list:e=>s.get(`/api/dirs${e?`?path=${encodeURIComponent(e)}`:``}`)},fs:{open:(e,t)=>s.post(`/api/fs/open`,{path:e,mode:t}),openFolder:e=>s.post(`/api/fs/open-folder`,{dir:e})},sessions:{list:()=>s.get(`/api/sessions`),get:e=>s.get(`/api/sessions/${e}`),create:(e,t,n)=>s.post(`/api/sessions`,{...e?{title:e}:{},...t?{workspaceDir:t}:{},...n?{sessionId:n}:{}}),delete:e=>s.delete(`/api/sessions/${e}`),resume:e=>s.get(`/api/sessions/${encodeURIComponent(e)}/resume`),fork:(e,t)=>s.post(`/api/sessions/${encodeURIComponent(e)}/fork`,t?{title:t}:{}),rename:(e,t)=>s.patch(`/api/sessions/${encodeURIComponent(e)}`,{title:t}),setPinned:(e,t)=>s.patch(`/api/sessions/${encodeURIComponent(e)}`,{pinned:t})},agentRuns:{list:e=>s.get(e?`/api/agent-runs?sessionId=${encodeURIComponent(e)}`:`/api/agent-runs`),get:e=>s.get(`/api/agent-runs/${encodeURIComponent(e)}`),stop:e=>s.post(`/api/agent-runs/${encodeURIComponent(e)}/stop`),kill:e=>s.post(`/api/agent-runs/${encodeURIComponent(e)}/kill`),pause:e=>s.post(`/api/agent-runs/${encodeURIComponent(e)}/pause`),resume:e=>s.post(`/api/agent-runs/${encodeURIComponent(e)}/resume`)},config:{provider:{get:()=>s.get(`/api/config/provider`),save:e=>s.post(`/api/config/provider`,e),delete:e=>s.post(`/api/config/provider/remove`,{provider:e}),setDefault:e=>s.post(`/api/config/provider`,{provider:e,setDefault:!0})},files:{list:()=>s.get(`/api/config/files`),read:e=>s.get(`/api/config/files/read?file=${encodeURIComponent(e)}`),write:(e,t)=>s.put(`/api/config/files/write`,{file:e,content:t})},desktop:()=>s.get(`/api/config/desktop`),setDesktop:e=>s.post(`/api/config/desktop`,e),context:{get:()=>s.get(`/api/config/context`),save:e=>s.post(`/api/config/context`,e)},sandbox:c,language:{get:()=>s.get(`/api/config/language`),set:e=>s.post(`/api/config/language`,{language:e})},profile:{get:()=>s.get(`/api/config/profile`),set:e=>s.post(`/api/config/profile`,e)}},profile:{get:()=>s.get(`/api/profile`),raw:()=>s.get(`/api/profile/raw`),set:e=>s.put(`/api/profile`,e),clear:()=>s.delete(`/api/profile`)},git:{status:()=>s.get(`/api/git/status`),diff:(e,t)=>{let n=new URLSearchParams({path:e});return t?.mode&&n.set(`mode`,t.mode),t?.context!=null&&n.set(`context`,String(t.context)),s.get(`/api/git/diff?${n.toString()}`)}},fileJob:{parse:e=>s.post(`/api/filejob/parse`,{files:e}),parsePaths:e=>s.post(`/api/filejob/parse`,{paths:e}),importPaths:e=>s.post(`/api/filejob/import`,{paths:e}),render:e=>s.post(`/api/filejob/render`,e)},system:{status:()=>s.get(`/api/system/status`),metrics:()=>s.get(`/api/metrics`),restart:()=>s.post(`/api/system/restart`),shutdown:()=>s.post(`/api/system/shutdown`),network:()=>s.get(`/api/system/network`),setNetwork:e=>s.put(`/api/system/network`,{allowLanAccess:e}),setTailscale:e=>s.post(`/api/system/tailscale`,{enabled:e}),daemon:()=>s.get(`/api/system/daemon`),setDaemon:e=>s.put(`/api/system/daemon`,{daemonEnabled:e}),desktopDownload:()=>s.get(`/api/system/desktop-download`)},observability:{summary:()=>s.get(`/api/observability/summary`),contextAdvice:e=>s.get(`/api/context/advice?sessionId=${encodeURIComponent(e)}`),costs:e=>s.get(`/api/observability/costs${e?`?sessionId=${encodeURIComponent(e)}`:``}`)},templates:{list:()=>s.get(`/api/templates`),get:e=>s.get(`/api/templates/${encodeURIComponent(e)}`),create:e=>s.post(`/api/templates`,e),update:(e,t)=>s.put(`/api/templates/${encodeURIComponent(e)}`,t),remove:e=>s.delete(`/api/templates/${encodeURIComponent(e)}`),versions:e=>s.get(`/api/templates/${encodeURIComponent(e)}/versions`),getVersion:(e,t)=>s.get(`/api/templates/${encodeURIComponent(e)}/versions/${t}`),render:(e,t)=>s.post(`/api/templates/${encodeURIComponent(e)}/render`,{inputs:t}),createFromRun:(e,t)=>s.post(`/api/templates`,{sourceRunId:e,generalize:t?.generalize===!0,name:t?.name,message:t?.message})},workflows:{list:()=>s.get(`/api/workflows`),start:e=>s.post(`/api/workflows`,e),get:e=>s.get(`/api/workflows/${encodeURIComponent(e)}`),events:e=>s.get(`/api/workflows/${encodeURIComponent(e)}/events`),synthesize:e=>s.post(`/api/workflows/synthesize`,{message:e})},plans:{list:()=>s.get(`/api/plans`),read:e=>s.get(`/api/plans/${encodeURIComponent(e)}`),delete:e=>s.delete(`/api/plans/${encodeURIComponent(e)}`)},logs:{list:()=>s.get(`/api/logs`),read:(e,t)=>s.get(`/api/logs/read?file=${encodeURIComponent(e)}${t?`&maxLines=${t}`:``}`),downloadUrl:e=>`/api/logs/download?file=${encodeURIComponent(e)}`,querySessions:e=>{let t=new URLSearchParams;e.sessionIds?.length&&t.set(`sessionIds`,e.sessionIds.join(`,`)),e.levels?.length&&t.set(`levels`,e.levels.join(`,`)),e.from!==void 0&&t.set(`from`,String(e.from)),e.to!==void 0&&t.set(`to`,String(e.to)),e.q&&t.set(`q`,e.q),e.limit!==void 0&&t.set(`limit`,String(e.limit));let n=t.toString();return s.get(`/api/logs/session${n?`?${n}`:``}`)},sessionIndex:()=>s.get(`/api/logs/sessions`)},stt:{status:()=>s.get(`/api/stt/status`),transcribe:(e,t,n=`wav`)=>s.post(`/api/stt/transcribe`,{language:e,audio:t,format:n}),install:()=>s.post(`/api/stt/install`),installStatus:()=>s.get(`/api/stt/install/status`),cancelInstall:()=>s.post(`/api/stt/install/cancel`),getConfig:()=>s.get(`/api/stt/config`),setConfig:e=>s.put(`/api/stt/config`,e)},tts:{status:()=>s.get(`/api/tts/status`),synthesize:e=>s.post(`/api/tts/synthesize`,e),install:()=>s.post(`/api/tts/install`),installStatus:()=>s.get(`/api/tts/install/status`),cancelInstall:()=>s.post(`/api/tts/install/cancel`)},hooks:{list:()=>s.get(`/api/hooks/rules`),get:e=>s.get(`/api/hooks/rules/${encodeURIComponent(e)}`),create:e=>s.post(`/api/hooks/rules`,e),update:(e,t)=>s.put(`/api/hooks/rules/${encodeURIComponent(e)}`,t),delete:e=>s.delete(`/api/hooks/rules/${encodeURIComponent(e)}`),batchDelete:e=>s.post(`/api/hooks/rules/batch-delete`,{names:e}),toggle:(e,t)=>s.patch(`/api/hooks/rules/${encodeURIComponent(e)}/toggle`,{enabled:t}),batchToggle:(e,t)=>s.post(`/api/hooks/rules/batch-toggle`,{names:e,enabled:t}),dryRun:e=>s.post(`/api/hooks/dry-run`,e),stats:()=>s.get(`/api/hooks/stats`),events:()=>s.get(`/api/hooks/events`),agents:()=>s.get(`/api/hooks/agents`),templates:()=>s.get(`/api/hooks/templates`),export:()=>s.get(`/api/hooks/export`),import:e=>s.post(`/api/hooks/import`,e)},assistants:{list:()=>s.get(`/api/assistants`),get:e=>s.get(`/api/assistants/${encodeURIComponent(e)}`),create:(e={})=>s.post(`/api/assistants`,e),rename:(e,t)=>s.patch(`/api/assistants/${encodeURIComponent(e)}`,{title:t}),update:(e,t)=>s.patch(`/api/assistants/${encodeURIComponent(e)}`,t),remove:e=>s.delete(`/api/assistants/${encodeURIComponent(e)}`)},channels:{list:()=>s.get(`/api/channels`),types:()=>s.get(`/api/channels/types`),catalog:()=>s.get(`/api/channels/catalog`),create:e=>s.post(`/api/channels`,e),update:(e,t)=>s.put(`/api/channels/${encodeURIComponent(e)}`,t),delete:e=>s.delete(`/api/channels/${encodeURIComponent(e)}`),toggle:(e,t)=>s.patch(`/api/channels/${encodeURIComponent(e)}/toggle`,{enabled:t}),test:e=>s.post(`/api/channels/${encodeURIComponent(e)}/test`),wechat:{qrcode:(e,t)=>s.get(`/api/channels/${encodeURIComponent(e)}/wechat/qrcode?token=${encodeURIComponent(t)}`),qrcodeStatus:(e,t,n)=>s.get(`/api/channels/${encodeURIComponent(e)}/wechat/qrcode/status?token=${encodeURIComponent(t)}&qrcode=${encodeURIComponent(n)}`)},weixin:{bind:()=>s.get(`/api/weixin/bind`),bindStatus:e=>s.get(`/api/weixin/bind/status?qrcode=${encodeURIComponent(e)}`)}},automations:{list:()=>s.get(`/api/automations`),create:e=>s.post(`/api/automations`,e),update:(e,t)=>s.put(`/api/automations/${encodeURIComponent(e)}`,t),remove:e=>s.delete(`/api/automations/${encodeURIComponent(e)}`),toggle:(e,t)=>s.post(`/api/automations/${encodeURIComponent(e)}/toggle`,{enabled:t}),run:e=>s.post(`/api/automations/${encodeURIComponent(e)}/run`),runs:e=>s.get(`/api/automations/${encodeURIComponent(e)}/runs`),addPermission:(e,t,n)=>s.post(`/api/automations/${encodeURIComponent(e)}/permissions`,{tool:t,target:n}),revokePermission:(e,t)=>s.delete(`/api/automations/${encodeURIComponent(e)}/permissions`,{entry:t})}};function d(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e=r.result,n=e.indexOf(`,`);t(n>=0?e.slice(n+1):e)},r.onerror=()=>n(r.error||Error(`Failed to read file`)),r.readAsDataURL(e)})}export{o as a,i,l as n,n as o,s as r,u as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,t}from"./path-fybaL0A-.js";import{a as n,c as r,d as i,f as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,u as p}from"./dist-CumnGVmJ.js";function m(e){return e.innerRadius}function h(e){return e.outerRadius}function g(e){return e.startAngle}function _(e){return e.endAngle}function v(e){return e&&e.padAngle}function y(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function b(e,t,n,r,i,a,o){var c=e-n,l=t-r,u=(o?a:-a)/d(c*c+l*l),f=u*l,p=-u*c,m=e+f,h=t+p,g=n+f,_=r+p,v=(m+g)/2,y=(h+_)/2,b=g-m,x=_-h,S=b*b+x*x,C=i-a,w=m*_-g*h,T=(x<0?-1:1)*d(s(0,C*C*S-w*w)),E=(w*x-b*T)/S,D=(-w*b-x*T)/S,O=(w*x+b*T)/S,k=(-w*b+x*T)/S,A=E-v,j=D-y,M=O-v,N=k-y;return A*A+j*j>M*M+N*N&&(E=O,D=k),{cx:E,cy:D,x01:-f,y01:-p,x11:E*(i/C-1),y11:D*(i/C-1)}}function x(){var s=m,x=h,S=e(0),C=null,w=g,T=_,E=v,D=null,O=t(k);function k(){var e,t,m=+s.apply(this,arguments),h=+x.apply(this,arguments),g=w.apply(this,arguments)-r,_=T.apply(this,arguments)-r,v=l(_-g),k=_>g;if(D||=e=O(),h<m&&(t=h,h=m,m=t),!(h>1e-12))D.moveTo(0,0);else if(v>c-1e-12)D.moveTo(h*u(g),h*a(g)),D.arc(0,0,h,g,_,!k),m>1e-12&&(D.moveTo(m*u(_),m*a(_)),D.arc(0,0,m,_,g,k));else{var A=g,j=_,M=g,N=_,P=v,F=v,I=E.apply(this,arguments)/2,L=I>1e-12&&(C?+C.apply(this,arguments):d(m*m+h*h)),R=p(l(h-m)/2,+S.apply(this,arguments)),z=R,B=R,V,H;if(L>1e-12){var U=o(L/m*a(I)),W=o(L/h*a(I));(P-=U*2)>1e-12?(U*=k?1:-1,M+=U,N-=U):(P=0,M=N=(g+_)/2),(F-=W*2)>1e-12?(W*=k?1:-1,A+=W,j-=W):(F=0,A=j=(g+_)/2)}var G=h*u(A),K=h*a(A),q=m*u(N),J=m*a(N);if(R>1e-12){var Y=h*u(j),X=h*a(j),Z=m*u(M),Q=m*a(M),$;if(v<i){if($=y(G,K,Z,Q,Y,X,q,J)){var ee=G-$[0],te=K-$[1],ne=Y-$[0],re=X-$[1],ie=1/a(f((ee*ne+te*re)/(d(ee*ee+te*te)*d(ne*ne+re*re)))/2),ae=d($[0]*$[0]+$[1]*$[1]);z=p(R,(m-ae)/(ie-1)),B=p(R,(h-ae)/(ie+1))}else z=B=0}}F>1e-12?B>1e-12?(V=b(Z,Q,G,K,h,B,k),H=b(Y,X,q,J,h,B,k),D.moveTo(V.cx+V.x01,V.cy+V.y01),B<R?D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,h,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),!k),D.arc(H.cx,H.cy,B,n(H.y11,H.x11),n(H.y01,H.x01),!k))):(D.moveTo(G,K),D.arc(0,0,h,A,j,!k)):D.moveTo(G,K),!(m>1e-12)||!(P>1e-12)?D.lineTo(q,J):z>1e-12?(V=b(q,J,Y,X,m,-z,k),H=b(G,K,Z,Q,m,-z,k),D.lineTo(V.cx+V.x01,V.cy+V.y01),z<R?D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,m,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),k),D.arc(H.cx,H.cy,z,n(H.y11,H.x11),n(H.y01,H.x01),!k))):D.arc(0,0,m,N,M,k)}if(D.closePath(),e)return D=null,e+``||null}return k.centroid=function(){var e=(+s.apply(this,arguments)+ +x.apply(this,arguments))/2,t=(+w.apply(this,arguments)+ +T.apply(this,arguments))/2-i/2;return[u(t)*e,a(t)*e]},k.innerRadius=function(t){return arguments.length?(s=typeof t==`function`?t:e(+t),k):s},k.outerRadius=function(t){return arguments.length?(x=typeof t==`function`?t:e(+t),k):x},k.cornerRadius=function(t){return arguments.length?(S=typeof t==`function`?t:e(+t),k):S},k.padRadius=function(t){return arguments.length?(C=t==null?null:typeof t==`function`?t:e(+t),k):C},k.startAngle=function(t){return arguments.length?(w=typeof t==`function`?t:e(+t),k):w},k.endAngle=function(t){return arguments.length?(T=typeof t==`function`?t:e(+t),k):T},k.padAngle=function(t){return arguments.length?(E=typeof t==`function`?t:e(+t),k):E},k.context=function(e){return arguments.length?(D=e??null,k):D},k}export{x as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-NGNAAXSQ-Bw6tHVuc.js";export{M as createArchitectureServices}from"./mermaid-parser.core-BrXnuEs7.js";
|