@opencue/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
package/bin/stt/requirements.txt
CHANGED
|
@@ -1,32 +1,20 @@
|
|
|
1
|
-
# DeepSeekCode 语音转文字(STT)依赖 —
|
|
1
|
+
# DeepSeekCode 语音转文字(STT)依赖 — faster-whisper(唯一引擎)
|
|
2
2
|
#
|
|
3
3
|
# 安装(任选其一):
|
|
4
4
|
# pip install -r packages/stt/requirements.txt
|
|
5
|
-
#
|
|
6
|
-
# pip install -U "funasr>=1.1.0,<1.5" modelscope torch (中文)
|
|
5
|
+
# 或:pip install faster-whisper
|
|
7
6
|
#
|
|
8
7
|
# 说明:
|
|
9
|
-
# - torch
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
# (1.4.x 的 Requires-Dist 里没有它,1.4.3 的 wav_frontend 却无条件 import,
|
|
13
|
-
# 1.4.16 起改用内置 funasr.utils.fbank,装了 torchaudio 时仍转发给它)。
|
|
14
|
-
# 所以别指望 pip 帮你补 torchaudio。
|
|
8
|
+
# - 不需要 torch / funasr / modelscope:识别引擎只有 faster-whisper
|
|
9
|
+
# (ctranslate2 后端,CPU int8 即可用),中文与英语走同一套依赖,
|
|
10
|
+
# 区别只在模型档位(en → base.en,其余 → 多语言 base)。
|
|
15
11
|
# - Python 3.10+(stt_server.py 用了 PEP 604 的 `X | None` 注解),推荐 3.10~3.12。
|
|
16
12
|
|
|
17
|
-
#
|
|
13
|
+
# 音频容器解码:PyAV —— OGG/Opus、MP3、M4A 等平台原生格式
|
|
18
14
|
# 给 stt_server.decode_with_av 用;WAV / 裸 f32 走标准库,不需要它。
|
|
19
15
|
# **不需要系统 ffmpeg**:PyAV 的 wheel 自带 FFmpeg 库(av.library_versions 可验),
|
|
20
16
|
# 这正是选 PyAV 而不是 subprocess 调 ffmpeg 的全部理由。
|
|
21
17
|
av>=11
|
|
22
18
|
|
|
23
|
-
#
|
|
19
|
+
# 识别引擎:faster-whisper(whisper.cpp 的 Python 绑定,CPU 上快且省内存)
|
|
24
20
|
faster-whisper>=1.0.0
|
|
25
|
-
|
|
26
|
-
# 中文后端:FunASR(阿里达摩院,paraformer-zh 模型)
|
|
27
|
-
# 上限 <1.5 是为了挡住 funasr 大版本的行为漂移:AutoModel 的参数契约
|
|
28
|
-
# (model 只收字符串、标点模型走 punc_model)与 fbank 实现都在小版本间变过。
|
|
29
|
-
# 同时与 sttDownload.ts#sttPackagesFor 保持一致(那份清单是「一键安装」真正执行的东西)。
|
|
30
|
-
funasr>=1.1.0,<1.5
|
|
31
|
-
modelscope>=1.15.0
|
|
32
|
-
torch>=2.0.0
|
package/bin/stt/stt_server.py
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
"""DeepSeekCode 本地语音转文字(STT)服务。
|
|
3
3
|
|
|
4
|
-
参考 OpenWorker 的 stt/ 侧车设计(Rust + whisper.cpp
|
|
5
|
-
|
|
4
|
+
参考 OpenWorker 的 stt/ 侧车设计(Rust + whisper.cpp),改为 Python 实现。
|
|
5
|
+
**唯一的识别引擎是 faster-whisper**,按语言选两个模型档位:
|
|
6
6
|
|
|
7
|
-
- 中文(zh)→ FunASR(阿里达摩院,paraformer-zh 模型,中文识别效果优于 whisper)
|
|
8
7
|
- 英语(en)→ faster-whisper 英语专用模型(base.en,CPU 上快且省内存)
|
|
9
|
-
- 其他语言(ja/ko/fr/de/es/ru/pt/it…)→ faster-whisper 多语言模型
|
|
8
|
+
- 其他语言(zh/ja/ko/fr/de/es/ru/pt/it…)→ faster-whisper 多语言模型
|
|
10
9
|
(默认 base,可用 DSC_STT_WHISPER_MULTI_MODEL 调整,如 small)
|
|
11
10
|
|
|
12
11
|
多语言档的语言码「未命中」时改由模型自动识别(详见 transcribe_whisper 的说明):
|
|
@@ -18,7 +17,7 @@ WAV / 裸 f32 用标准库自己解(http.server / json / base64 / wave / struc
|
|
|
18
17
|
选 PyAV 而不是调 `ffmpeg` 可执行文件:PyAV 的 wheel 里自带 FFmpeg 库,
|
|
19
18
|
所以「本机有没有 ffmpeg」不再是这条链路的先决条件(Windows 上尤其关键)。
|
|
20
19
|
后端包同样按需懒加载:`/status` 不触发任何模型下载;`/transcribe` 首次调用时会
|
|
21
|
-
自动下载模型(faster-whisper 走 HuggingFace
|
|
20
|
+
自动下载模型(faster-whisper 走 HuggingFace),耗时取决于网络。
|
|
22
21
|
|
|
23
22
|
接口(仅监听 127.0.0.1):
|
|
24
23
|
GET /health → {"status": "ok"}
|
|
@@ -37,17 +36,13 @@ WAV / 裸 f32 用标准库自己解(http.server / json / base64 / wave / struc
|
|
|
37
36
|
DSC_STT_PORT 监听端口(默认 0 = 系统分配;父进程通常指定 --port)
|
|
38
37
|
DSC_STT_WHISPER_MODEL faster-whisper 英语模型名(默认 base.en)
|
|
39
38
|
DSC_STT_WHISPER_MULTI_MODEL faster-whisper 多语言模型名(默认 base)
|
|
40
|
-
DSC_STT_FUNASR_MODEL FunASR 模型名(默认 paraformer-zh)
|
|
41
|
-
DSC_STT_FUNASR_PUNC 1 = 启用中文标点模型 ct-punc(额外下载,默认关)
|
|
42
39
|
DSC_STT_DEVICE auto|cuda|cpu(默认 auto)
|
|
43
40
|
|
|
44
41
|
模型下载源(由 Node 侧按 config.yaml settings.stt.* 注入;本文件不读它们,
|
|
45
|
-
而是 huggingface_hub
|
|
42
|
+
而是 huggingface_hub 在 **import 期**自行读取 —— 因此改端点
|
|
46
43
|
必须重启本进程才生效,Node 侧 restartService() 负责这件事):
|
|
47
44
|
HF_ENDPOINT HuggingFace 端点(默认 https://huggingface.co,国内可设
|
|
48
45
|
https://hf-mirror.com)—— faster-whisper 的模型权重走这里
|
|
49
|
-
MODELSCOPE_ENDPOINT ModelScope 端点(默认 https://modelscope.cn)——
|
|
50
|
-
FunASR 的 paraformer-zh 等权重走这里
|
|
51
46
|
"""
|
|
52
47
|
|
|
53
48
|
import base64
|
|
@@ -63,10 +58,10 @@ from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
|
|
|
63
58
|
from pathlib import Path
|
|
64
59
|
|
|
65
60
|
DEFAULT_MODELS_DIR = str(Path.home() / ".agent" / "stt-models")
|
|
66
|
-
TARGET_RATE = 16_000 # whisper
|
|
61
|
+
TARGET_RATE = 16_000 # whisper 要求 16k 采样率
|
|
67
62
|
|
|
68
63
|
_backends_lock = threading.Lock()
|
|
69
|
-
_loaded = {"en": None, "
|
|
64
|
+
_loaded = {"en": None, "multi": None} # 缓存已加载的模型对象
|
|
70
65
|
|
|
71
66
|
|
|
72
67
|
def log(msg: str) -> None:
|
|
@@ -352,66 +347,6 @@ def transcribe_whisper(samples_f32: list[float], language: str, kind: str) -> tu
|
|
|
352
347
|
return text, (str(detected) if detected else None)
|
|
353
348
|
|
|
354
349
|
|
|
355
|
-
|
|
356
|
-
# ─────────────────────────── 后端:中文 FunASR ───────────────────────────
|
|
357
|
-
|
|
358
|
-
def _funasr_loaded() -> object | None:
|
|
359
|
-
with _backends_lock:
|
|
360
|
-
return _loaded["zh"]
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
def _funasr_load() -> object:
|
|
364
|
-
with _backends_lock:
|
|
365
|
-
if _loaded["zh"] is not None:
|
|
366
|
-
return _loaded["zh"]
|
|
367
|
-
try:
|
|
368
|
-
from funasr import AutoModel # noqa: PLC0415
|
|
369
|
-
except ImportError as exc:
|
|
370
|
-
raise RuntimeError(
|
|
371
|
-
"Chinese STT backend (FunASR) is not installed. Run:\n"
|
|
372
|
-
' pip install -U "funasr>=1.1.0,<1.5" modelscope torch\n'
|
|
373
|
-
"The DeepSeekCode server needs it for Chinese voice input."
|
|
374
|
-
) from exc
|
|
375
|
-
# model 必须传**字符串**:funasr 的 build_model 里有
|
|
376
|
-
# `if kwargs["model"] in {"silero-vad", "silero_vad"}`,传 list 不可哈希,
|
|
377
|
-
# 1.4.x 上直接 `TypeError: unhashable type: 'list'`。
|
|
378
|
-
# 标点模型是**独立参数** punc_model(官方用法
|
|
379
|
-
# `AutoModel(model="paraformer-zh", punc_model="ct-punc")`),不能再拼进 model。
|
|
380
|
-
kwargs: dict[str, object] = {
|
|
381
|
-
"model": os.environ.get("DSC_STT_FUNASR_MODEL", "paraformer-zh"),
|
|
382
|
-
}
|
|
383
|
-
if os.environ.get("DSC_STT_FUNASR_PUNC", "0") == "1":
|
|
384
|
-
kwargs["punc_model"] = "ct-punc"
|
|
385
|
-
device = "cuda:0" if detect_device() == "cuda" else "cpu"
|
|
386
|
-
kwargs["device"] = device
|
|
387
|
-
log(
|
|
388
|
-
f"loading FunASR model {kwargs['model']} "
|
|
389
|
-
f"(device={device}, punc={'ct-punc' if 'punc_model' in kwargs else 'off'})…"
|
|
390
|
-
)
|
|
391
|
-
model = AutoModel(**kwargs)
|
|
392
|
-
_loaded["zh"] = model
|
|
393
|
-
log("FunASR model ready")
|
|
394
|
-
return model
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
def transcribe_zh(samples_f32: list[float]) -> str:
|
|
398
|
-
model = _funasr_load()
|
|
399
|
-
import numpy as np # noqa: PLC0415
|
|
400
|
-
|
|
401
|
-
# 直接喂 float32([-1, 1]):funasr 的 load_utils.extract_fbank 对 numpy 输入只做
|
|
402
|
-
# torch.from_numpy、**不转 dtype**,喂 int16 会在下游 torchaudio 的 kaldi.fbank 里
|
|
403
|
-
# `RuntimeError: mean(): could not infer output dtype ... Got: Short`。
|
|
404
|
-
# 与 transcribe_whisper 的 np.asarray(samples_f32, dtype=np.float32) 同形。
|
|
405
|
-
audio = np.asarray(samples_f32, dtype=np.float32)
|
|
406
|
-
res = model.generate(input=audio, cache={})
|
|
407
|
-
text = ""
|
|
408
|
-
if isinstance(res, list) and res:
|
|
409
|
-
text = str(res[0].get("text", "") or "")
|
|
410
|
-
elif isinstance(res, dict):
|
|
411
|
-
text = str(res.get("text", "") or "")
|
|
412
|
-
return text.strip()
|
|
413
|
-
|
|
414
|
-
|
|
415
350
|
# ─────────────────────────── 设备检测 / 状态 ───────────────────────────
|
|
416
351
|
|
|
417
352
|
def detect_device() -> str:
|
|
@@ -420,6 +355,8 @@ def detect_device() -> str:
|
|
|
420
355
|
return "cuda"
|
|
421
356
|
if env == "cpu":
|
|
422
357
|
return "cpu"
|
|
358
|
+
# torch 不是本服务的依赖(faster-whisper 走 ctranslate2);装了就用它探 CUDA,
|
|
359
|
+
# 没装一律 cpu。想显式用 GPU 请设 DSC_STT_DEVICE=cuda。
|
|
423
360
|
try:
|
|
424
361
|
import torch # noqa: PLC0415
|
|
425
362
|
|
|
@@ -431,25 +368,17 @@ def detect_device() -> str:
|
|
|
431
368
|
def _backend_status() -> dict:
|
|
432
369
|
def probe(name: str) -> dict:
|
|
433
370
|
loaded = _loaded.get(name) is not None
|
|
434
|
-
# 捕获所有异常而非仅 ImportError:Windows 上
|
|
371
|
+
# 捕获所有异常而非仅 ImportError:Windows 上 ctranslate2 DLL 加载失败等
|
|
435
372
|
# 场景需要把具体原因带给前端,否则"pip 装完了却仍显示未安装"无从排查。
|
|
436
373
|
error = None
|
|
437
374
|
try:
|
|
438
|
-
|
|
439
|
-
import faster_whisper # noqa: PLC0415, F401
|
|
375
|
+
import faster_whisper # noqa: PLC0415, F401
|
|
440
376
|
|
|
441
|
-
|
|
442
|
-
else:
|
|
443
|
-
import funasr # noqa: PLC0415, F401
|
|
444
|
-
|
|
445
|
-
installed = True
|
|
377
|
+
installed = True
|
|
446
378
|
except Exception as exc: # noqa: BLE001 — 探测需吞掉一切导入期异常
|
|
447
379
|
installed = False
|
|
448
380
|
error = f"{type(exc).__name__}: {exc}"
|
|
449
|
-
|
|
450
|
-
model = os.environ.get("DSC_STT_FUNASR_MODEL", "paraformer-zh")
|
|
451
|
-
else:
|
|
452
|
-
model = os.environ.get(_WHISPER_MODEL_ENV[name], _WHISPER_MODEL_DEFAULT[name])
|
|
381
|
+
model = os.environ.get(_WHISPER_MODEL_ENV[name], _WHISPER_MODEL_DEFAULT[name])
|
|
453
382
|
return {
|
|
454
383
|
"installed": installed,
|
|
455
384
|
"loaded": loaded,
|
|
@@ -457,7 +386,7 @@ def _backend_status() -> dict:
|
|
|
457
386
|
"model": model,
|
|
458
387
|
}
|
|
459
388
|
|
|
460
|
-
return {"en": probe("en"), "multi": probe("multi")
|
|
389
|
+
return {"en": probe("en"), "multi": probe("multi")}
|
|
461
390
|
|
|
462
391
|
|
|
463
392
|
# ─────────────────────────── HTTP 服务 ───────────────────────────
|
|
@@ -500,8 +429,8 @@ class SttHandler(BaseHTTPRequestHandler):
|
|
|
500
429
|
except Exception as exc: # noqa: BLE001
|
|
501
430
|
return self._send(400, {"error": f"Bad request body: {exc}"})
|
|
502
431
|
lang = str(body.get("language") or "en").lower()
|
|
503
|
-
# 接受任意 ISO-639-1 两位小写码:
|
|
504
|
-
#
|
|
432
|
+
# 接受任意 ISO-639-1 两位小写码:en→英语专用 whisper,
|
|
433
|
+
# 其余(含 zh)→多语言 whisper(模型支持约 99 种语言)。非两位字母码才拒绝。
|
|
505
434
|
if not (len(lang) == 2 and lang.isalpha() and lang.isascii()):
|
|
506
435
|
return self._send(400, {"error": f"Unsupported language: {lang} (use an ISO-639-1 code like 'en' / 'zh' / 'ja')"})
|
|
507
436
|
if not body.get("audio"):
|
|
@@ -519,10 +448,7 @@ class SttHandler(BaseHTTPRequestHandler):
|
|
|
519
448
|
|
|
520
449
|
effective_lang = lang
|
|
521
450
|
try:
|
|
522
|
-
if lang == "
|
|
523
|
-
text = transcribe_zh(samples)
|
|
524
|
-
backend = "funasr"
|
|
525
|
-
elif lang == "en":
|
|
451
|
+
if lang == "en":
|
|
526
452
|
text, auto_lang = transcribe_whisper(samples, "en", "en")
|
|
527
453
|
backend = "faster-whisper"
|
|
528
454
|
effective_lang = auto_lang or lang
|
|
@@ -584,9 +510,8 @@ def parent_alive(pid: int) -> bool:
|
|
|
584
510
|
|
|
585
511
|
def main() -> None:
|
|
586
512
|
models_dir = os.environ.get("DSC_STT_MODELS_DIR", DEFAULT_MODELS_DIR)
|
|
587
|
-
# 模型缓存集中到 models_dir(与 Node 侧 spawn 时注入的 HF_HOME
|
|
513
|
+
# 模型缓存集中到 models_dir(与 Node 侧 spawn 时注入的 HF_HOME 一致)
|
|
588
514
|
os.environ.setdefault("HF_HOME", str(Path(models_dir) / "huggingface"))
|
|
589
|
-
os.environ.setdefault("MODELSCOPE_CACHE", str(Path(models_dir) / "modelscope"))
|
|
590
515
|
Path(models_dir).mkdir(parents=True, exist_ok=True)
|
|
591
516
|
|
|
592
517
|
port = int(_arg_value("--port") or os.environ.get("DSC_STT_PORT") or "0")
|
package/install.cjs
CHANGED
|
@@ -15,6 +15,23 @@
|
|
|
15
15
|
// application" error, so its message is best-effort; install.cjs failure output
|
|
16
16
|
// above is the primary guidance when postinstall does run.
|
|
17
17
|
//
|
|
18
|
+
// WHY repairWindowsShims() EXISTS
|
|
19
|
+
//
|
|
20
|
+
// npm reads bin/dscode.exe's shebang while generating the `dscode` /
|
|
21
|
+
// `deepseekcode` shims. The placeholder has to start with `#!/bin/sh` (that is
|
|
22
|
+
// the runnable "not installed yet" message on Unix before this script replaces
|
|
23
|
+
// it), so on Windows cmd-shim copies that interpreter verbatim:
|
|
24
|
+
//
|
|
25
|
+
// & "/bin/sh" "$basedir/node_modules/@deepseekcode/cli/bin/dscode.exe" $args
|
|
26
|
+
//
|
|
27
|
+
// /bin/sh does not exist there, so every fresh `npm i -g` on Windows lands a
|
|
28
|
+
// `dscode` that dies with `/bin/sh.exe is not recognized` — while the real
|
|
29
|
+
// 100MB PE binary sits right next to it. The shims are written BEFORE this
|
|
30
|
+
// script runs, so they cannot be avoided; repairWindowsShims() rewrites them to
|
|
31
|
+
// exec the binary that is on disk by now. (`npm rebuild -g <pkg>` also repairs
|
|
32
|
+
// them: re-linking reads the shebang of the then-real PE binary, which has
|
|
33
|
+
// none.)
|
|
34
|
+
//
|
|
18
35
|
// Platform detection + PLATFORMS map is duplicated in cli-wrapper.cjs — keep in sync.
|
|
19
36
|
|
|
20
37
|
const { spawnSync } = require('child_process')
|
|
@@ -37,6 +54,14 @@ const WRAPPER_NAME = require('./package.json').name
|
|
|
37
54
|
const PACKAGE_PREFIX = WRAPPER_NAME
|
|
38
55
|
const BINARY_NAME = 'dscode'
|
|
39
56
|
|
|
57
|
+
// The command names npm creates shims for (dscode + deepseekcode). Taken from
|
|
58
|
+
// the published bin map so a rename never leaves a stale shim behind.
|
|
59
|
+
const BIN_MAP = require('./package.json').bin || {}
|
|
60
|
+
const SHIM_NAMES = Object.keys(BIN_MAP)
|
|
61
|
+
// Where the native binary lands, and therefore what every shim must exec: the
|
|
62
|
+
// published wrapper's bin field points at this path.
|
|
63
|
+
const BIN_TARGET = path.join(__dirname, 'bin', 'dscode.exe')
|
|
64
|
+
|
|
40
65
|
|
|
41
66
|
const PLATFORMS = {
|
|
42
67
|
'darwin-arm64': { pkg: PACKAGE_PREFIX + '-darwin-arm64', bin: BINARY_NAME },
|
|
@@ -118,6 +143,121 @@ function placeBinary(src, dest) {
|
|
|
118
143
|
}
|
|
119
144
|
}
|
|
120
145
|
|
|
146
|
+
// ---- Windows shim repair -------------------------------------------------
|
|
147
|
+
// The three templates below mirror what npm writes for a non-JS bin target, i.e.
|
|
148
|
+
// the shape it produces after re-linking against the real (shebang-less) PE
|
|
149
|
+
// binary — a repaired shim is indistinguishable from a healthy one.
|
|
150
|
+
|
|
151
|
+
function ps1Shim(target) {
|
|
152
|
+
return [
|
|
153
|
+
'#!/usr/bin/env pwsh',
|
|
154
|
+
'$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent',
|
|
155
|
+
'',
|
|
156
|
+
'$ret=0',
|
|
157
|
+
'# Support pipeline input',
|
|
158
|
+
'if ($MyInvocation.ExpectingInput) {',
|
|
159
|
+
' $input | & "$basedir/' + target + '" $args',
|
|
160
|
+
'} else {',
|
|
161
|
+
' & "$basedir/' + target + '" $args',
|
|
162
|
+
'}',
|
|
163
|
+
'$ret=$LASTEXITCODE',
|
|
164
|
+
'exit $ret',
|
|
165
|
+
'',
|
|
166
|
+
].join('\n')
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function cmdShim(target) {
|
|
170
|
+
return [
|
|
171
|
+
'@ECHO off',
|
|
172
|
+
'GOTO start',
|
|
173
|
+
':find_dp0',
|
|
174
|
+
'SET dp0=%~dp0',
|
|
175
|
+
'EXIT /b',
|
|
176
|
+
':start',
|
|
177
|
+
'SETLOCAL',
|
|
178
|
+
'CALL :find_dp0',
|
|
179
|
+
'"%dp0%\\' + target + '" %*',
|
|
180
|
+
'',
|
|
181
|
+
].join('\n')
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
function shShim(target) {
|
|
185
|
+
return [
|
|
186
|
+
'#!/bin/sh',
|
|
187
|
+
"basedir=$(dirname \"$(echo \"$0\" | sed -e 's,\\\\,/,g')\")",
|
|
188
|
+
'',
|
|
189
|
+
'case `uname` in',
|
|
190
|
+
' *CYGWIN*|*MINGW*|*MSYS*)',
|
|
191
|
+
' if command -v cygpath > /dev/null 2>&1; then',
|
|
192
|
+
' basedir=`cygpath -w "$basedir"`',
|
|
193
|
+
' fi',
|
|
194
|
+
' ;;',
|
|
195
|
+
'esac',
|
|
196
|
+
'',
|
|
197
|
+
'exec "$basedir/' + target + '" "$@"',
|
|
198
|
+
'',
|
|
199
|
+
].join('\n')
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// Path from the shim's directory to the binary, spelled the way each shim kind
|
|
203
|
+
// expects: npm uses forward slashes in .ps1/.sh and backslashes in .cmd.
|
|
204
|
+
function shimTarget(shimDir, exeAbs, sep) {
|
|
205
|
+
const rel = path.relative(shimDir, exeAbs)
|
|
206
|
+
const picked = rel && !path.isAbsolute(rel) ? rel : exeAbs
|
|
207
|
+
return sep === '\\' ? picked.replace(/\//g, '\\') : picked.replace(/\\/g, '/')
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
function shimFor(ext, target) {
|
|
211
|
+
if (ext === '.ps1') return ps1Shim(target)
|
|
212
|
+
if (ext === '.cmd') return cmdShim(target)
|
|
213
|
+
return shShim(target)
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// Rewrite every shim under shimDirs that still calls the POSIX interpreter, and
|
|
217
|
+
// return the repaired paths (empty when there was nothing to do). Inputs are
|
|
218
|
+
// arguments so a test can drive it with a temp dir on any platform.
|
|
219
|
+
function repairShims(shimDirs, exeAbs) {
|
|
220
|
+
const repaired = []
|
|
221
|
+
for (const dir of shimDirs) {
|
|
222
|
+
for (const name of SHIM_NAMES) {
|
|
223
|
+
for (const ext of ['.ps1', '.cmd', '']) {
|
|
224
|
+
const file = path.join(dir, name + ext)
|
|
225
|
+
let text
|
|
226
|
+
try {
|
|
227
|
+
text = readFileSync(file, 'utf8')
|
|
228
|
+
} catch {
|
|
229
|
+
continue
|
|
230
|
+
}
|
|
231
|
+
// Skip the shebang line: a healthy .sh shim legitimately starts with
|
|
232
|
+
// `#!/bin/sh`. Only /bin/sh used as an *interpreter* is the bug.
|
|
233
|
+
if (!text.replace(/^[^\n]*\n/, '').includes('/bin/sh')) continue
|
|
234
|
+
try {
|
|
235
|
+
const target = shimTarget(dir, exeAbs, ext === '.cmd' ? '\\' : '/')
|
|
236
|
+
writeFileSync(file, shimFor(ext, target), { mode: 0o755 })
|
|
237
|
+
repaired.push(file)
|
|
238
|
+
} catch {
|
|
239
|
+
// A read-only prefix (`sudo npm i -g`, then `dscode` as a user) must
|
|
240
|
+
// not fail the install — the binary itself is already in place.
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return repaired
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// Candidate shim directories: the npm prefix (global install) and
|
|
249
|
+
// node_modules/.bin (local install). Both derive from the package location, so
|
|
250
|
+
// the same code covers `npm i -g`, a project dependency and pnpm-style layouts.
|
|
251
|
+
function shimDirsFor(pkgDir) {
|
|
252
|
+
const nodeModules = path.dirname(path.dirname(pkgDir))
|
|
253
|
+
return [path.dirname(nodeModules), path.join(nodeModules, '.bin')]
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
function repairWindowsShims() {
|
|
257
|
+
if (process.platform !== 'win32') return []
|
|
258
|
+
return repairShims(shimDirsFor(__dirname), BIN_TARGET)
|
|
259
|
+
}
|
|
260
|
+
|
|
121
261
|
function main() {
|
|
122
262
|
const platformKey = getPlatformKey()
|
|
123
263
|
const info = PLATFORMS[platformKey]
|
|
@@ -162,11 +302,22 @@ function main() {
|
|
|
162
302
|
// On Unix npm links `bin/dscode` → `bin/dscode.exe` and ignores the
|
|
163
303
|
// extension, so overwriting the .exe path replaces the running target on
|
|
164
304
|
// every platform. Same pattern as Claude Code / Bun npm packages.
|
|
165
|
-
const dest =
|
|
305
|
+
const dest = BIN_TARGET
|
|
166
306
|
|
|
167
307
|
try {
|
|
168
308
|
placeBinary(src, dest)
|
|
169
309
|
console.log(`[${WRAPPER_NAME} postinstall] Native binary placed → ${dest}`)
|
|
310
|
+
try {
|
|
311
|
+
const repaired = repairWindowsShims()
|
|
312
|
+
if (repaired.length > 0) {
|
|
313
|
+
console.log(
|
|
314
|
+
`[${WRAPPER_NAME} postinstall] Repaired ${repaired.length} Windows shim(s) → exec the native binary`,
|
|
315
|
+
)
|
|
316
|
+
}
|
|
317
|
+
} catch {
|
|
318
|
+
// Never fail the install over cosmetic shims: the binary is placed, and
|
|
319
|
+
// `npm rebuild -g ${WRAPPER_NAME}` repairs them too.
|
|
320
|
+
}
|
|
170
321
|
} catch (err) {
|
|
171
322
|
console.error(`[${WRAPPER_NAME} postinstall] Failed to place binary: ${err.message}`)
|
|
172
323
|
console.error(' Fallback: node ' + path.join(__dirname, 'cli-wrapper.cjs'))
|
|
@@ -174,4 +325,7 @@ function main() {
|
|
|
174
325
|
}
|
|
175
326
|
}
|
|
176
327
|
|
|
177
|
-
main()
|
|
328
|
+
if (require.main === module) main()
|
|
329
|
+
|
|
330
|
+
// Exported for the shim-repair tests; npm runs this file directly.
|
|
331
|
+
module.exports = { repairShims, shimFor, shimTarget }
|
package/llms.txt
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
# DeepSeekCode
|
|
2
2
|
|
|
3
|
-
> DeepSeekCode is a local-first AI coding agent
|
|
4
|
-
>
|
|
5
|
-
> model.
|
|
6
|
-
>
|
|
3
|
+
> DeepSeekCode is a local-first AI coding agent: one npm package starts a runtime on your machine
|
|
4
|
+
> that serves a terminal UI, a web UI and an HTTP + WebSocket API, driven by any OpenAI-compatible
|
|
5
|
+
> model.
|
|
6
|
+
>
|
|
7
|
+
> It is built around a permission/approval layer on every tool call, a strictly read-only plan
|
|
8
|
+
> mode, and runtime-switchable act / goal / chat modes.
|
|
7
9
|
> Official distribution: the npm package `@deepseekcode/cli` (commands `dscode` and `deepseekcode`).
|
|
8
10
|
> Project page: https://deepseekcode.github.io/deepseekwork/
|
|
9
11
|
|
|
10
12
|
This file follows the llms.txt convention: a short, structured, machine-readable summary for AI
|
|
11
13
|
assistants and LLM crawlers. Everything below is verifiable from the deployed package.
|
|
14
|
+
Content reflects version 1.0.40 (2026-10-15).
|
|
12
15
|
|
|
13
16
|
## Category and identity
|
|
14
17
|
|
|
@@ -74,12 +77,36 @@ Non-interactive use (scripts, CI): `dscode exec "<task>"` emits JSONL.
|
|
|
74
77
|
DeepSeek (深度求索) or any other model vendor; installing it does not imply any affiliation.
|
|
75
78
|
- License: proprietary and closed source. It is not open source, and copying, modifying,
|
|
76
79
|
distributing or selling it requires prior written permission (see `LICENSE.md`).
|
|
80
|
+
- It is not a hosted or managed service: there is no subscription to buy, and model usage is billed
|
|
81
|
+
by whichever provider the user configures, not by this project.
|
|
82
|
+
|
|
83
|
+
## Screenshots and demo
|
|
84
|
+
|
|
85
|
+
- A 40-second demo video (1920x1080, H.264 + VP9) and the stills used in the README ship in the
|
|
86
|
+
repository at `docs/promo/media/` (`deepseekcode-promo.mp4`, `deepseekcode-promo.webm`,
|
|
87
|
+
`poster.png`, plus per-screen stills).
|
|
88
|
+
- The package README embeds an animated GIF of a real agent turn (`media/demo.gif` inside the
|
|
89
|
+
package): tool calls, a diff, and a written summary.
|
|
90
|
+
- The footage is recorded from the real UI with a scripted local model endpoint, so it shows real
|
|
91
|
+
tool execution rather than a mock-up.
|
|
77
92
|
|
|
78
93
|
## Languages
|
|
79
94
|
|
|
80
|
-
The package README carries
|
|
81
|
-
|
|
82
|
-
|
|
95
|
+
- The package README carries a full English main section plus condensed sections in 16 further
|
|
96
|
+
languages, each with a stable anchor: zh-CN (Simplified Chinese), zh-TW (Traditional Chinese),
|
|
97
|
+
ja (Japanese), ko (Korean), es (Spanish), pt (Portuguese), fr (French), it (Italian), de (German),
|
|
98
|
+
ru (Russian), tr (Turkish), ar (Arabic), hi (Hindi), id (Indonesian), vi (Vietnamese) and
|
|
99
|
+
th (Thai).
|
|
100
|
+
- Every language section repeats the same canonical definition, install line, feature list and FAQ,
|
|
101
|
+
so a claim about this package can be cited from the reader's own language.
|
|
102
|
+
- The application UI itself is localized into 13 locales: en, zh-CN, zh-TW, ja, ko, de, fr, es,
|
|
103
|
+
pt-BR, ru, it, ar, id. Of these, zh-CN and en are complete; the other eleven translate the
|
|
104
|
+
desktop-download entry, the language setting, the built-in template texts and the hook template
|
|
105
|
+
texts (180 keys each) and fall back to English elsewhere. Arabic is included, but whole-document
|
|
106
|
+
right-to-left mirroring is deliberately not switched on yet: the stylesheet still uses physical
|
|
107
|
+
directional utilities, so `dir=rtl` would leave spacing on the wrong side.
|
|
108
|
+
- Most interactive commands have Chinese aliases, and replies can be pinned to a language
|
|
109
|
+
independently of the UI locale.
|
|
83
110
|
|
|
84
111
|
## Release notes
|
|
85
112
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opencue/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.42",
|
|
4
4
|
"description": "DeepSeekCode — local-first AI coding agent for your terminal: one local runtime with a TUI, a web UI and an API, a permission/approval layer, read-only plan mode, and any OpenAI-compatible model.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"deepseekcode",
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
"xterm": "5.3.0"
|
|
37
37
|
},
|
|
38
38
|
"optionalDependencies": {
|
|
39
|
-
"@opencue/cli-darwin-arm64": "1.0.
|
|
40
|
-
"@opencue/cli-darwin-x64": "1.0.
|
|
41
|
-
"@opencue/cli-linux-x64": "1.0.
|
|
42
|
-
"@opencue/cli-linux-arm64": "1.0.
|
|
43
|
-
"@opencue/cli-linux-x64-musl": "1.0.
|
|
44
|
-
"@opencue/cli-linux-arm64-musl": "1.0.
|
|
45
|
-
"@opencue/cli-win32-x64": "1.0.
|
|
46
|
-
"@opencue/cli-win32-arm64": "1.0.
|
|
39
|
+
"@opencue/cli-darwin-arm64": "1.0.42",
|
|
40
|
+
"@opencue/cli-darwin-x64": "1.0.42",
|
|
41
|
+
"@opencue/cli-linux-x64": "1.0.42",
|
|
42
|
+
"@opencue/cli-linux-arm64": "1.0.42",
|
|
43
|
+
"@opencue/cli-linux-x64-musl": "1.0.42",
|
|
44
|
+
"@opencue/cli-linux-arm64-musl": "1.0.42",
|
|
45
|
+
"@opencue/cli-win32-x64": "1.0.42",
|
|
46
|
+
"@opencue/cli-win32-arm64": "1.0.42"
|
|
47
47
|
},
|
|
48
48
|
"files": [
|
|
49
49
|
"bin/",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{B as t,Kr as n,Mr as r,Nt as i,R as a,St as o,Z as s,_ as c,d as l,f as u,ht as d,lt as f,n as p,nt as m,wr as h}from"./icons-CYDRRPKW.js";import{t as g}from"./useTranslation-B-mfApCn.js";import{a as _,t as v}from"./useConfirm-Da8iQ_DZ.js";import{t as y}from"./api-plEYhRn0.js";import{I as b}from"./markdown-N5__3T-w.js";import{f as x,r as S}from"./common-Bbatsa0-.js";import{n as C,t as w}from"./channelMeta-BGQXQxgj.js";import{i as T}from"./index-CTbLW314.js";var E=e(n(),1),D=b(),O=(0,E.memo)(function({selectedSessionId:e,onSelectionChange:t,onOpenSession:n,onNavigate:i,onCollapse:a,onDeleted:s}){let{t:c}=g(),[l,u]=(0,E.useState)([]),[d,p]=(0,E.useState)(!0),[h,_]=(0,E.useState)(null),[b,S]=(0,E.useState)(null),[C,w]=(0,E.useState)(null),[T,O]=(0,E.useState)(!1),[k,j]=(0,E.useState)(null),[M,N]=(0,E.useState)(null),P=(0,E.useCallback)(async()=>{try{let e=await y.assistants.list();e.success&&Array.isArray(e.data)?(u(e.data),_(null)):_(e.error||c(`assistants.loadFailed`))}catch(e){_(e instanceof Error?e.message:String(e))}finally{p(!1)}},[c]);(0,E.useEffect)(()=>{P();let e=window.setInterval(()=>{P()},8e3);return()=>window.clearInterval(e)},[P]);let F=(0,E.useCallback)(async(e,t)=>{(await y.assistants.update(e,t)).success&&P()},[P]),I=(0,E.useCallback)(async()=>{O(!0),N(null);try{let e=await y.assistants.create({title:c(`assistants.newAssistantTitle`)});e.success&&e.data?(await P(),t(e.data),w(e.data.sessionId)):N(e.error||c(`assistants.createFailed`))}catch(e){N(e instanceof Error?e.message:String(e))}finally{O(!1)}},[P,t,c]),L=(0,E.useCallback)(async(e,t)=>{N(null);try{let n=await y.assistants.rename(e,t);n.success?(w(null),await P()):N(n.error||c(`assistants.renameFailed`))}catch(e){N(e instanceof Error?e.message:String(e))}},[P,c]),[R,z]=v(),B=(0,E.useCallback)(async(t,n)=>{if(await z({message:c(`assistants.deleteConfirm`,{title:n}),variant:`danger`})){N(null),j(t);try{let n=await y.assistants.remove(t);n.success?(C===t&&w(null),e===t&&s?.(t),await P()):N(n.error||c(`assistants.deleteFailed`))}catch(e){N(e instanceof Error?e.message:String(e))}finally{j(null)}}},[C,e,s,P,z,c]);return(0,E.useEffect)(()=>{if(!e)return;let n=l.find(t=>t.sessionId===e);n&&t(n)},[l,e,t]),(0,D.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden`,children:[R,(0,D.jsxs)(`div`,{className:`flex items-center justify-between border-b border-dark-border px-4 py-2.5`,children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(r,{size:16,className:`text-accent-blue`,"aria-hidden":`true`}),(0,D.jsx)(`h2`,{className:`text-sm font-semibold text-dark-text`,children:c(`assistants.title`)}),!d&&(0,D.jsx)(`span`,{className:`rounded-full bg-dark-hover px-1.5 py-0.5 text-badge text-dark-muted`,children:l.length})]}),(0,D.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,D.jsxs)(`button`,{type:`button`,onClick:()=>void I(),disabled:T,className:`flex items-center gap-1 rounded px-2 py-1 text-xs text-accent-blue hover:bg-dark-hover disabled:opacity-50`,title:c(`assistants.newAssistantHint`),"data-testid":`assistants-create`,children:[(0,D.jsx)(f,{size:12,"aria-hidden":`true`}),c(`assistants.newAssistant`)]}),(0,D.jsxs)(`button`,{type:`button`,onClick:()=>void P(),className:`flex items-center gap-1 rounded px-2 py-1 text-xs text-dark-muted hover:bg-dark-hover hover:text-dark-text`,title:c(`common.refresh`),children:[(0,D.jsx)(m,{size:12,className:d?`animate-spin`:``,"aria-hidden":`true`}),c(`common.refresh`)]}),a&&(0,D.jsx)(`button`,{type:`button`,onClick:a,className:`rounded p-1 text-dark-muted hover:bg-dark-hover hover:text-dark-text`,title:c(`assistants.collapseList`),"aria-label":c(`assistants.collapseList`),"aria-expanded":!0,"data-testid":`assistants-list-collapse`,children:(0,D.jsx)(o,{size:13,"aria-hidden":`true`})})]})]}),M&&(0,D.jsx)(`div`,{className:`border-b border-dark-border px-4 py-1.5 text-meta text-accent-red`,role:`alert`,children:M}),(0,D.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto p-2`,children:d&&l.length===0?(0,D.jsx)(`div`,{className:`py-2`,role:`status`,"aria-label":c(`assistants.loading`),children:(0,D.jsx)(x,{count:4})}):h&&l.length===0?(0,D.jsx)(`div`,{className:`py-8 text-center text-xs text-accent-red`,children:h}):l.length===0?(0,D.jsxs)(`div`,{className:`py-10 text-center text-xs text-dark-muted`,children:[(0,D.jsx)(r,{size:24,className:`mx-auto mb-2 text-dark-muted`,"aria-hidden":`true`}),(0,D.jsx)(`p`,{children:c(`assistants.empty`)}),(0,D.jsx)(`p`,{className:`mt-1 text-meta`,children:c(`assistants.emptyHint`)}),(0,D.jsx)(`button`,{type:`button`,onClick:()=>i(`channels`),className:`mt-3 rounded border border-dark-border px-2.5 py-1 text-meta text-dark-text hover:bg-dark-hover`,children:c(`assistants.goChannels`)})]}):(0,D.jsx)(`div`,{className:`flex flex-col gap-2`,children:l.map(r=>(0,D.jsx)(A,{assistant:r,selected:e===r.sessionId,onSelect:()=>t(r),expanded:b===r.sessionId,onToggleExpand:()=>S(b===r.sessionId?null:r.sessionId),onOpen:()=>n(r.sessionId,r.title),onUpdate:e=>void F(r.sessionId,e),editing:C===r.sessionId,onStartRename:()=>w(r.sessionId),onCancelRename:()=>w(null),onRename:e=>void L(r.sessionId,e),deleting:k===r.sessionId,onDelete:()=>void B(r.sessionId,r.title)},r.sessionId))})})]})});function k(e){if(e===`running`)return`running`;if(e===`paused`)return`waiting`;if(e===`error`)return`failed`}var A=(0,E.memo)(function({assistant:e,selected:n,onSelect:o,expanded:s,onToggleExpand:f,onOpen:p,onUpdate:m,editing:h,onStartRename:_,onCancelRename:v,onRename:y,deleting:b,onDelete:x}){let{t:E}=g(),O=e.channel?.peerKind===`group`,A=e.kind===`home`;return(0,D.jsxs)(`div`,{className:`rounded-lg border bg-dark-surface transition-colors ${n?`border-accent-blue/60 ring-1 ring-accent-blue/30`:`border-dark-border`}`,children:[(0,D.jsxs)(`button`,{type:`button`,onClick:o,"aria-current":n?`true`:void 0,className:`flex w-full items-center gap-2 rounded-t-lg px-3 py-2 text-start focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent-blue/60 ${n?`bg-accent-blue/5`:`hover:bg-dark-hover/40`}`,children:[(0,D.jsx)(S,{sessionId:e.sessionId,status:k(e.status),size:40}),(0,D.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[e.channel?(0,D.jsx)(`span`,{className:`text-base leading-none`,"aria-hidden":`true`,children:w(e.channel.type)}):(0,D.jsx)(r,{size:14,className:`shrink-0 text-dark-muted`,"aria-hidden":`true`}),(0,D.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-medium text-dark-text`,title:e.title,children:e.title}),(0,D.jsx)(`span`,{className:`h-1.5 w-1.5 shrink-0 rounded-full ${T(e.status)}`,title:E(`assistants.status.${e.status}`,{defaultValue:e.status})}),e.channel&&(O?(0,D.jsx)(l,{size:11,className:`shrink-0 text-dark-muted`,"aria-label":E(`assistants.group`)}):(0,D.jsx)(u,{size:11,className:`shrink-0 text-dark-muted`,"aria-label":E(`assistants.dm`)}))]}),(0,D.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-1.5 text-badge text-dark-muted`,children:[(0,D.jsx)(`span`,{className:`shrink-0`,children:e.channel?C(e.channel.type):E(A?`assistants.homeLabel`:`assistants.localLabel`)}),(0,D.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.channel?.peerId,children:e.channel?e.channel.peerId:E(A?`assistants.homeHint`:`assistants.localHint`)}),e.stats.unread>0&&(0,D.jsx)(`span`,{className:`shrink-0 rounded-full bg-accent-red/15 px-1.5 text-avatar font-medium text-accent-fg`,children:e.stats.unread})]}),e.preview&&(0,D.jsx)(`p`,{className:`mt-1 line-clamp-2 text-meta leading-snug text-dark-muted`,title:e.preview,children:e.preview})]}),(0,D.jsx)(M,{mode:e.mode}),e.trust.level===`owner`?(0,D.jsx)(a,{size:12,className:`shrink-0 text-accent-green`,"aria-label":E(`assistants.trust.owner`)}):e.trust.level===`public`?(0,D.jsx)(t,{size:12,className:`shrink-0 text-accent-yellow`,"aria-label":E(`assistants.trust.public`)}):(0,D.jsx)(a,{size:12,className:`shrink-0 text-accent-blue`,"aria-label":E(`assistants.trust.team`)})]}),(0,D.jsxs)(`div`,{className:`flex items-center gap-1.5 border-t border-dark-border px-3 py-1.5`,children:[(0,D.jsxs)(`button`,{type:`button`,onClick:p,className:`flex items-center gap-1 rounded px-2 py-0.5 text-meta text-accent-blue hover:bg-dark-hover`,children:[(0,D.jsx)(i,{size:11,"aria-hidden":`true`}),E(`assistants.openSession`)]}),(0,D.jsx)(`button`,{type:`button`,onClick:f,className:`flex items-center gap-1 rounded px-2 py-0.5 text-meta text-dark-muted hover:bg-dark-hover hover:text-dark-text`,children:E(`assistants.policy`)}),!A&&(0,D.jsx)(`button`,{type:`button`,onClick:h?v:_,className:`flex items-center gap-1 rounded px-2 py-0.5 text-meta text-dark-muted hover:bg-dark-hover hover:text-dark-text`,title:E(`assistants.rename`),"aria-label":E(`assistants.rename`),"aria-pressed":h,"data-testid":`assistant-rename-${e.sessionId}`,children:(0,D.jsx)(d,{size:11,"aria-hidden":`true`})}),!A&&(0,D.jsx)(`button`,{type:`button`,onClick:x,disabled:b,className:`flex items-center gap-1 rounded px-2 py-0.5 text-meta text-dark-muted hover:bg-accent-red/10 hover:text-accent-red disabled:opacity-50`,title:E(`assistants.deleteHint`),"aria-label":E(`assistants.delete`),"data-testid":`assistant-delete-${e.sessionId}`,children:(0,D.jsx)(c,{size:11,"aria-hidden":`true`})}),(0,D.jsx)(`span`,{className:`flex-1`}),(0,D.jsx)(`span`,{className:`text-badge text-dark-muted`,children:E(`assistants.groupPolicy`,{mention:String(O?e.policy.mentionRequired:!1)})})]}),s&&(0,D.jsx)(N,{assistant:e,isGroup:O,onUpdate:m}),h&&(0,D.jsx)(j,{initial:e.title,onSubmit:y,onCancel:v})]})});function j({initial:e,onSubmit:t,onCancel:n}){let{t:r}=g(),[i,a]=(0,E.useState)(e),o=()=>{let r=i.trim();!r||r===e?n():t(r)};return(0,D.jsxs)(`div`,{className:`flex items-center gap-1.5 border-t border-dark-border px-3 py-1.5`,children:[(0,D.jsx)(`input`,{autoFocus:!0,type:`text`,value:i,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),o()):e.key===`Escape`&&(e.preventDefault(),n())},"aria-label":r(`assistants.renameLabel`),"data-testid":`assistant-rename-input`,className:`min-w-0 flex-1 rounded border border-dark-border bg-dark-surface px-1.5 py-0.5 text-meta text-dark-text`}),(0,D.jsx)(`button`,{type:`button`,onClick:o,className:`rounded p-1 text-accent-blue hover:bg-dark-hover`,title:r(`common.save`),"aria-label":r(`common.save`),"data-testid":`assistant-rename-save`,children:(0,D.jsx)(h,{size:12,"aria-hidden":`true`})}),(0,D.jsx)(`button`,{type:`button`,onClick:n,className:`rounded p-1 text-dark-muted hover:bg-dark-hover hover:text-dark-text`,title:r(`common.cancel`),"aria-label":r(`common.cancel`),children:(0,D.jsx)(p,{size:12,"aria-hidden":`true`})})]})}function M({mode:e}){let{t}=g();return(0,D.jsx)(`span`,{className:`shrink-0 rounded px-1.5 py-0.5 text-avatar font-medium ${e===`delegate`?`bg-accent-blue/15 text-accent-blue`:`bg-dark-hover text-dark-muted`}`,children:t(`assistants.mode.${e}`)})}function N({assistant:e,isGroup:t,onUpdate:n}){let{t:r}=g(),[i,a]=(0,E.useState)(e.mode),[o,c]=(0,E.useState)(e.policy.mentionRequired),[l,u]=(0,E.useState)(String(e.policy.cooldownSeconds)),[d,f]=(0,E.useState)((e.policy.keywords??[]).join(`, `)),[p,m]=(0,E.useState)(!1);return(0,D.jsxs)(`div`,{className:`border-t border-dark-border px-3 py-2.5 text-meta`,children:[(0,D.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-4 gap-y-2`,children:[(0,D.jsxs)(`label`,{className:`flex items-center gap-1.5 text-dark-muted`,children:[r(`assistants.mode.label`),(0,D.jsxs)(`select`,{value:i,onChange:e=>a(e.target.value),className:`rounded border border-dark-border bg-dark-surface px-1.5 py-0.5 text-dark-text`,children:[(0,D.jsx)(`option`,{value:`delegate`,children:r(`assistants.mode.delegate`)}),(0,D.jsx)(`option`,{value:`direct`,children:r(`assistants.mode.direct`)})]})]}),t&&(0,D.jsxs)(`label`,{className:`flex items-center gap-1.5 text-dark-muted`,children:[(0,D.jsx)(`input`,{type:`checkbox`,checked:o,onChange:e=>c(e.target.checked)}),r(`assistants.mentionRequired`)]}),(0,D.jsxs)(`label`,{className:`flex items-center gap-1.5 text-dark-muted`,children:[r(`assistants.cooldown`),(0,D.jsx)(`input`,{type:`number`,min:0,value:l,onChange:e=>u(e.target.value),className:`w-14 rounded border border-dark-border bg-dark-surface px-1.5 py-0.5 text-dark-text`}),`s`]})]}),(0,D.jsxs)(`label`,{className:`mt-2 flex items-center gap-1.5 text-dark-muted`,children:[r(`assistants.keywords`),(0,D.jsx)(`input`,{type:`text`,value:d,placeholder:r(`assistants.keywordsPlaceholder`)??``,onChange:e=>f(e.target.value),className:`min-w-0 flex-1 rounded border border-dark-border bg-dark-surface px-1.5 py-0.5 text-dark-text`})]}),(0,D.jsx)(`div`,{className:`mt-2 flex justify-end`,children:(0,D.jsx)(_,{size:`sm`,variant:`accent`,onClick:()=>{m(!0),n({mode:i,policy:{mentionRequired:t?o:!1,cooldownSeconds:Math.max(0,Number(l)||0),...d.trim()?{keywords:d.split(/[,,]/).map(e=>e.trim()).filter(Boolean)}:{}}}),window.setTimeout(()=>m(!1),600)},loading:p,leftIcon:(0,D.jsx)(s,{size:11,"aria-hidden":`true`}),children:r(`common.save`)})})]})}export{O as AssistantsView};
|