agentworkshop 0.7.44 → 0.7.47
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/.AgentWorkShop/prompts/host-tools.json +265 -6
- package/.AgentWorkShop/prompts/lead-supervise.md +54 -29
- package/.AgentWorkShop/prompts/peer-reply-optional.md +6 -2
- package/.AgentWorkShop/prompts/peer-reply-required.md +8 -7
- package/.output/.AgentWorkShop/aml-python/__pycache__/amlkit.cpython-312.pyc +0 -0
- package/.output/.AgentWorkShop/aml-python/amlkit.py +185 -120
- package/.output/.AgentWorkShop/aml-python/requirements.txt +9 -7
- package/.output/.AgentWorkShop/aml-python/train-hybrid-example.py +87 -0
- package/.output/.AgentWorkShop/prompts/host-tools.json +265 -6
- package/.output/.AgentWorkShop/prompts/lead-supervise.md +54 -29
- package/.output/.AgentWorkShop/prompts/peer-reply-optional.md +6 -2
- package/.output/.AgentWorkShop/prompts/peer-reply-required.md +8 -7
- package/.output/.AgentWorkShop/schema.json +12 -0
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/-hB4kEmt.js +1 -0
- package/.output/public/_nuxt/1g9IT9Qh2.js +1 -0
- package/.output/public/_nuxt/74x7BOWv2.js +1 -0
- package/.output/public/_nuxt/9c5GOgbu.js +1 -0
- package/.output/public/_nuxt/9zrLAN2o2.js +1 -0
- package/.output/public/_nuxt/B1RT9NTO2.js +1 -0
- package/.output/public/_nuxt/B2x8SKRO.js +1 -0
- package/.output/public/_nuxt/B6Olw0Op.js +1 -0
- package/.output/public/_nuxt/B7jlMWsz.js +1 -0
- package/.output/public/_nuxt/B8cnjDtt.js +1 -0
- package/.output/public/_nuxt/B9rIcCX12.js +1 -0
- package/.output/public/_nuxt/BACBBVdw.js +1 -0
- package/.output/public/_nuxt/BBhLVYdM.js +1 -0
- package/.output/public/_nuxt/BDmNbZ252.js +1 -0
- package/.output/public/_nuxt/BFVf8HLR.js +1 -0
- package/.output/public/_nuxt/BGKUW7ra.js +1 -0
- package/.output/public/_nuxt/BH3obZJ42.js +1 -0
- package/.output/public/_nuxt/BHwG4yNs.js +1 -0
- package/.output/public/_nuxt/BIOq3xqe2.js +1 -0
- package/.output/public/_nuxt/BITZvQBK.js +1 -0
- package/.output/public/_nuxt/BL_dbd2v2.js +1 -0
- package/.output/public/_nuxt/BMMoqi94.js +1 -0
- package/.output/public/_nuxt/BNnnYEYh2.js +1 -0
- package/.output/public/_nuxt/BQXCMsXk.js +1 -0
- package/.output/public/_nuxt/BS9P_Ies2.js +1 -0
- package/.output/public/_nuxt/BWU1pvLL.js +1 -0
- package/.output/public/_nuxt/B_9_BM9G.js +3 -0
- package/.output/public/_nuxt/B_LcD7qE2.js +1 -0
- package/.output/public/_nuxt/BcQXL8pb.js +1 -0
- package/.output/public/_nuxt/BdM_Qr752.js +1 -0
- package/.output/public/_nuxt/BiOSWsjD.js +2 -0
- package/.output/public/_nuxt/BkSViqQd.js +1 -0
- package/.output/public/_nuxt/Bl5dYv4m.js +1 -0
- package/.output/public/_nuxt/BmiMC_BC.js +2 -0
- package/.output/public/_nuxt/BnpY_zNx.js +1 -0
- package/.output/public/_nuxt/BqYVLAcm.js +1 -0
- package/.output/public/_nuxt/Br3AySNQ.js +1 -0
- package/.output/public/_nuxt/Br3MggOL.js +1 -0
- package/.output/public/_nuxt/BrRX-l9B2.js +4108 -0
- package/.output/public/_nuxt/Bt2ZL5332.js +1 -0
- package/.output/public/_nuxt/Bub2P5me.js +28 -0
- package/.output/public/_nuxt/BvRk9kiK.js +0 -0
- package/.output/public/_nuxt/BvRk9kiK2.js +0 -0
- package/.output/public/_nuxt/Bwc6lt2X.js +3 -0
- package/.output/public/_nuxt/BxHBIVAg.js +1 -0
- package/.output/public/_nuxt/BxYTM0hb.js +1 -0
- package/.output/public/_nuxt/ByMj6e7s.js +3 -0
- package/.output/public/_nuxt/BzvHUfRR2.js +1 -0
- package/.output/public/_nuxt/C2YYOgMe.js +42 -0
- package/.output/public/_nuxt/C3twEwTh2.js +1 -0
- package/.output/public/_nuxt/C4WhK2wq.js +1 -0
- package/.output/public/_nuxt/C50LmoI1.js +0 -0
- package/.output/public/_nuxt/CAaSPBqk.js +1 -0
- package/.output/public/_nuxt/CBDX7p73.js +1 -0
- package/.output/public/_nuxt/CD9lpEz22.js +13 -0
- package/.output/public/_nuxt/CGZVhYJ4.js +1 -0
- package/.output/public/_nuxt/CJRDL4EG.js +1 -0
- package/.output/public/_nuxt/CKQPwwZa2.js +1 -0
- package/.output/public/_nuxt/CLySL7mW.js +75 -0
- package/.output/public/_nuxt/CMXcOb6W.js +1 -0
- package/.output/public/_nuxt/CN1CDAwe.js +1 -0
- package/.output/public/_nuxt/CP0I2l-6.js +1 -0
- package/.output/public/_nuxt/CP0Nep9S.js +1 -0
- package/.output/public/_nuxt/CPeZNE4S2.js +1 -0
- package/.output/public/_nuxt/CPmNRTBk2.js +21 -0
- package/.output/public/_nuxt/CQabB0oy.js +1 -0
- package/.output/public/_nuxt/CT-vTjcG.js +1 -0
- package/.output/public/_nuxt/CTVfcnjU.js +3 -0
- package/.output/public/_nuxt/CWzp2R6G.js +1 -0
- package/.output/public/_nuxt/C_VAXV7I2.js +7 -0
- package/.output/public/_nuxt/CavpkQb0.js +1 -0
- package/.output/public/_nuxt/CeWnOF3O.js +1 -0
- package/.output/public/_nuxt/CfLUvgr32.js +1 -0
- package/.output/public/_nuxt/Ch1P2mIf.js +1 -0
- package/.output/public/_nuxt/ChoLwR-s.js +1 -0
- package/.output/public/_nuxt/Chphw5IA2.js +1 -0
- package/.output/public/_nuxt/ChtjzEpK2.js +19 -0
- package/.output/public/_nuxt/CiTQY_n32.js +1 -0
- package/.output/public/_nuxt/Ck5oMvUk.js +1 -0
- package/.output/public/_nuxt/Ckafrjnw2.js +1 -0
- package/.output/public/_nuxt/Cm_PTn9t2.js +1 -0
- package/.output/public/_nuxt/Cmp8PMrA.js +1 -0
- package/.output/public/_nuxt/Cnrmlixo.js +3 -0
- package/.output/public/_nuxt/Cr518Gh02.js +1 -0
- package/.output/public/_nuxt/Crbir9cT.js +1 -0
- package/.output/public/_nuxt/CtPNnATm2.js +31 -0
- package/.output/public/_nuxt/Cu8c3oMN2.js +1 -0
- package/.output/public/_nuxt/CwLQAKay2.js +1 -0
- package/.output/public/_nuxt/CzlUIbK32.js +17 -0
- package/.output/public/_nuxt/D6lZftfy.js +1 -0
- package/.output/public/_nuxt/D83nVQPl.js +1 -0
- package/.output/public/_nuxt/D89BUtx6.js +1 -0
- package/.output/public/_nuxt/DCtk3qqr.js +1 -0
- package/.output/public/_nuxt/DD6Z0yPN2.js +1 -0
- package/.output/public/_nuxt/DGw8juu_.js +2 -0
- package/.output/public/_nuxt/DHSDk8Bq2.js +4 -0
- package/.output/public/_nuxt/DJdDFnjG2.js +1 -0
- package/.output/public/_nuxt/DJyNDnag.js +1 -0
- package/.output/public/_nuxt/DK3Fl9T5.js +1 -0
- package/.output/public/_nuxt/DLPuRMeG.js +19 -0
- package/.output/public/_nuxt/DMYYS5sK.js +1 -0
- package/.output/public/_nuxt/DNno23Jf2.js +1 -0
- package/.output/public/_nuxt/DNoEoo8t.js +1 -0
- package/.output/public/_nuxt/DPUXbTg92.js +1 -0
- package/.output/public/_nuxt/DRpFsrno.js +1 -0
- package/.output/public/_nuxt/DXIaadqv.js +1 -0
- package/.output/public/_nuxt/D_7AzAWe.js +1 -0
- package/.output/public/_nuxt/Dbe9TFc9.js +1 -0
- package/.output/public/_nuxt/DdNujZN5.js +1 -0
- package/.output/public/_nuxt/DdvQ7LRI.js +14 -0
- package/.output/public/_nuxt/DhFv8S2Z.js +1 -0
- package/.output/public/_nuxt/DkJVtqfc.js +1 -0
- package/.output/public/_nuxt/DkLCjrCk2.js +47 -0
- package/.output/public/_nuxt/DkpmSnHX.js +1 -0
- package/.output/public/_nuxt/DlUQa0wn2.js +1 -0
- package/.output/public/_nuxt/DoKpLEqc.js +1 -0
- package/.output/public/_nuxt/DpqA8D8_.js +1 -0
- package/.output/public/_nuxt/Dq0emNZi2.js +1 -0
- package/.output/public/_nuxt/DqtgGFEc.js +1 -0
- package/.output/public/_nuxt/DqtnqNgL2.js +1 -0
- package/.output/public/_nuxt/Dqz5HiXa.js +2 -0
- package/.output/public/_nuxt/DxagrjB8.js +1 -0
- package/.output/public/_nuxt/Dy3oXKdn2.js +1 -0
- package/.output/public/_nuxt/DzBbYWrw2.js +1 -0
- package/.output/public/_nuxt/EhhQmlBV2.js +1 -0
- package/.output/public/_nuxt/H2rNs1O82.js +1 -0
- package/.output/public/_nuxt/H6pPjo0l.js +1 -0
- package/.output/public/_nuxt/JAM4aNC_.js +1 -0
- package/.output/public/_nuxt/JgheoP3e.js +1 -0
- package/.output/public/_nuxt/LwIFGLgF.js +1 -0
- package/.output/public/_nuxt/Nw_6OpQZ2.js +1 -0
- package/.output/public/_nuxt/OXtV_ukR.js +1 -0
- package/.output/public/_nuxt/OmpTerminalPanel.ComMDrA8.css +1 -0
- package/.output/public/_nuxt/PLGqdko0.js +1 -0
- package/.output/public/_nuxt/PixDfCSm.js +1 -0
- package/.output/public/_nuxt/RAqsw632.js +1 -0
- package/.output/public/_nuxt/Sjjmp5OD2.js +1 -0
- package/.output/public/_nuxt/TOWR4WpO.js +1 -0
- package/.output/public/_nuxt/TownView.BvlfuLtP.css +1 -0
- package/.output/public/_nuxt/U8oQxruK.js +1 -0
- package/.output/public/_nuxt/WleoCtUX.js +1 -0
- package/.output/public/_nuxt/YaroNkJZ2.js +1 -0
- package/.output/public/_nuxt/Z-Z6EhXs.js +1 -0
- package/.output/public/_nuxt/ZuQtOnfI.js +1 -0
- package/.output/public/_nuxt/ZvXovq7N2.js +1 -0
- package/.output/public/_nuxt/_id_.BTrFUIHX.css +1 -0
- package/.output/public/_nuxt/_id_.Bossmhv1.css +1 -0
- package/.output/public/_nuxt/_wsId_.D-u-dbP9.css +1 -0
- package/.output/public/_nuxt/agents.Cgm_JG9L.css +1 -0
- package/.output/public/_nuxt/aml.Bi5X6_oi.css +1 -0
- package/.output/public/_nuxt/bg2adfck.js +1 -0
- package/.output/public/_nuxt/bt__BP-I.js +13 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/1b18aaf2-ccbc-45e0-b9c3-107655b226f9.json +1 -0
- package/.output/public/_nuxt/cBI0JqsV2.js +209 -0
- package/.output/public/_nuxt/cDcDztgb2.js +1 -0
- package/.output/public/_nuxt/cGSl2GZp.js +1 -0
- package/.output/public/_nuxt/csitHKnE2.js +1 -0
- package/.output/public/_nuxt/d-w5jR8R.js +1 -0
- package/.output/public/_nuxt/daq.0uieKcZk.css +1 -0
- package/.output/public/_nuxt/dcw.pQRVkAi_.css +1 -0
- package/.output/public/_nuxt/default.uao9U50c.css +1 -0
- package/.output/public/_nuxt/e7BBCLxr.js +1 -0
- package/.output/public/_nuxt/entry.6DEjPWvR.css +1 -0
- package/.output/public/_nuxt/eutnXI4F.js +24 -0
- package/.output/public/_nuxt/fxWyOzyp2.js +1 -0
- package/.output/public/_nuxt/hkMGMTqt.js +1 -0
- package/.output/public/_nuxt/ikAUnxx3.js +1 -0
- package/.output/public/_nuxt/lWYQbIR3.js +1 -0
- package/.output/public/_nuxt/logs.CD0Olr3c.css +1 -0
- package/.output/public/_nuxt/monitor.CI2v5Nvl.css +1 -0
- package/.output/public/_nuxt/pages.CMhSEhEb.css +1 -0
- package/.output/public/_nuxt/permissions.DxuOOIqQ.css +1 -0
- package/.output/public/_nuxt/plugins.C50x1qZp.css +1 -0
- package/.output/public/_nuxt/qOlYoGLf.js +1 -0
- package/.output/public/_nuxt/schedules.BXNJ9q_I.css +1 -0
- package/.output/public/_nuxt/settings.Bo5EYkLI.css +1 -0
- package/.output/public/_nuxt/teams.sGmx1AdX.css +1 -0
- package/.output/public/_nuxt/tokens.DFMFaCYU.css +1 -0
- package/.output/public/_nuxt/uI9Ki_XZ.js +9 -0
- package/.output/public/_nuxt/users.DBxcKnfg.css +1 -0
- package/.output/public/_nuxt/v55S8LnT.js +1 -0
- package/.output/public/_nuxt/wDPc4SSR.js +106 -0
- package/.output/public/_nuxt/workshop.b4YRXEe0.css +1 -0
- package/.output/public/_nuxt/y9kob70X.js +1 -0
- package/.output/public/_nuxt/zh-S_7rN.js +1 -0
- package/.output/server/chunks/_/LeftOutlined.mjs +1 -1
- package/.output/server/chunks/_/SearchOutlined.mjs +1243 -279
- package/.output/server/chunks/_/SearchOutlined.mjs.map +1 -1
- package/.output/server/chunks/_/binding-authz.mjs +1 -1
- package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
- package/.output/server/chunks/_/entity.mjs +1 -1
- package/.output/server/chunks/_/env-manager.mjs +1 -1
- package/.output/server/chunks/_/host-bindings.mjs +1 -1
- package/.output/server/chunks/_/nitro.mjs +27006 -19064
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
- package/.output/server/chunks/build/Checkbox-4EdGAAl_.mjs +206 -0
- package/.output/server/chunks/build/Checkbox-4EdGAAl_.mjs.map +1 -0
- package/.output/server/chunks/build/FormItemContext-4ORSzhWv.mjs +72 -0
- package/.output/server/chunks/build/FormItemContext-4ORSzhWv.mjs.map +1 -0
- package/.output/server/chunks/build/OmpTerminalPanel-EQHrOJbw.mjs +942 -0
- package/.output/server/chunks/build/OmpTerminalPanel-EQHrOJbw.mjs.map +1 -0
- package/.output/server/chunks/build/PluginSlot-BP_qedpQ.mjs +399 -0
- package/.output/server/chunks/build/PluginSlot-BP_qedpQ.mjs.map +1 -0
- package/.output/server/chunks/build/TownView-BAR8CPIZ.mjs +6373 -0
- package/.output/server/chunks/build/TownView-BAR8CPIZ.mjs.map +1 -0
- package/.output/server/chunks/build/_id_-DgMpjM3_.mjs +1354 -0
- package/.output/server/chunks/build/_id_-DgMpjM3_.mjs.map +1 -0
- package/.output/server/chunks/build/_id_-Dv3BQbYV.mjs +388 -0
- package/.output/server/chunks/build/_id_-Dv3BQbYV.mjs.map +1 -0
- package/.output/server/chunks/build/_wsId_-BKJvFmyf.mjs +13109 -0
- package/.output/server/chunks/build/_wsId_-BKJvFmyf.mjs.map +1 -0
- package/.output/server/chunks/build/agents-B2GLPmn2.mjs +1085 -0
- package/.output/server/chunks/build/agents-B2GLPmn2.mjs.map +1 -0
- package/.output/server/chunks/build/aml-DdWicH3t.mjs +806 -0
- package/.output/server/chunks/build/aml-DdWicH3t.mjs.map +1 -0
- package/.output/server/chunks/build/api-BY6ji7RC.mjs +50 -0
- package/.output/server/chunks/build/api-BY6ji7RC.mjs.map +1 -0
- package/.output/server/chunks/build/api-error-BwAQLw44.mjs +47 -0
- package/.output/server/chunks/build/api-error-BwAQLw44.mjs.map +1 -0
- package/.output/server/chunks/build/apiClient-D281qrK2.mjs +81 -0
- package/.output/server/chunks/build/apiClient-D281qrK2.mjs.map +1 -0
- package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs +1 -1
- package/.output/server/chunks/build/card-CUSocE9p.mjs +953 -0
- package/.output/server/chunks/build/card-CUSocE9p.mjs.map +1 -0
- package/.output/server/chunks/build/channel-templates-RPOtkgRf.mjs +846 -0
- package/.output/server/chunks/build/channel-templates-RPOtkgRf.mjs.map +1 -0
- package/.output/server/chunks/build/checkbox-C4AKj81e.mjs +439 -0
- package/.output/server/chunks/build/checkbox-C4AKj81e.mjs.map +1 -0
- package/.output/server/chunks/build/client-only-qNA2OVV_.mjs +43 -0
- package/.output/server/chunks/build/client-only-qNA2OVV_.mjs.map +1 -0
- package/.output/server/chunks/build/constants-HPHJvjne.mjs +139 -0
- package/.output/server/chunks/build/constants-HPHJvjne.mjs.map +1 -0
- package/.output/server/chunks/build/core-CgTOPS4t.mjs +294 -0
- package/.output/server/chunks/build/core-CgTOPS4t.mjs.map +1 -0
- package/.output/server/chunks/build/daq-CPtsh0e7.mjs +1253 -0
- package/.output/server/chunks/build/daq-CPtsh0e7.mjs.map +1 -0
- package/.output/server/chunks/build/dcw-ry5Gyw6Y.mjs +478 -0
- package/.output/server/chunks/build/dcw-ry5Gyw6Y.mjs.map +1 -0
- package/.output/server/chunks/build/default-DxOE1eB0.mjs +2061 -0
- package/.output/server/chunks/build/default-DxOE1eB0.mjs.map +1 -0
- package/.output/server/chunks/build/descriptions-CFaUq4y4.mjs +406 -0
- package/.output/server/chunks/build/descriptions-CFaUq4y4.mjs.map +1 -0
- package/.output/server/chunks/build/drawer-Cfh9_zft.mjs +834 -0
- package/.output/server/chunks/build/drawer-Cfh9_zft.mjs.map +1 -0
- package/.output/server/chunks/build/dropdown-KdKWCS5K.mjs +556 -0
- package/.output/server/chunks/build/dropdown-KdKWCS5K.mjs.map +1 -0
- package/.output/server/chunks/build/dropdown-Yev6knaj.mjs +14 -0
- package/.output/server/chunks/build/dropdown-Yev6knaj.mjs.map +1 -0
- package/.output/server/chunks/build/form-uSlNqIAV.mjs +4711 -0
- package/.output/server/chunks/build/form-uSlNqIAV.mjs.map +1 -0
- package/.output/server/chunks/build/input-Cr_KFj4T.mjs +1381 -0
- package/.output/server/chunks/build/input-Cr_KFj4T.mjs.map +1 -0
- package/.output/server/chunks/build/input-number-BRVnxeiA.mjs +1119 -0
- package/.output/server/chunks/build/input-number-BRVnxeiA.mjs.map +1 -0
- package/.output/server/chunks/build/interval-DvHBIIZh.mjs +9 -0
- package/.output/server/chunks/build/interval-DvHBIIZh.mjs.map +1 -0
- package/.output/server/chunks/build/logs-CeaiO3y9.mjs +367 -0
- package/.output/server/chunks/build/logs-CeaiO3y9.mjs.map +1 -0
- package/.output/server/chunks/build/menu-BgkRSSx7.mjs +1949 -0
- package/.output/server/chunks/build/menu-BgkRSSx7.mjs.map +1 -0
- package/.output/server/chunks/build/monitor-DnuXEIi5.mjs +2245 -0
- package/.output/server/chunks/build/monitor-DnuXEIi5.mjs.map +1 -0
- package/.output/server/chunks/build/narrow-fetch-CcG-BPxc.mjs +6 -0
- package/.output/server/chunks/build/narrow-fetch-CcG-BPxc.mjs.map +1 -0
- package/.output/server/chunks/build/pages-Bn90ijKD.mjs +539 -0
- package/.output/server/chunks/build/pages-Bn90ijKD.mjs.map +1 -0
- package/.output/server/chunks/build/permissions-DL70W1YD.mjs +629 -0
- package/.output/server/chunks/build/permissions-DL70W1YD.mjs.map +1 -0
- package/.output/server/chunks/build/plugins-DrsZo--K.mjs +246 -0
- package/.output/server/chunks/build/plugins-DrsZo--K.mjs.map +1 -0
- package/.output/server/chunks/build/popconfirm-Ox-_2V8A.mjs +339 -0
- package/.output/server/chunks/build/popconfirm-Ox-_2V8A.mjs.map +1 -0
- package/.output/server/chunks/build/schedules-VLzNcjnW.mjs +7164 -0
- package/.output/server/chunks/build/schedules-VLzNcjnW.mjs.map +1 -0
- package/.output/server/chunks/build/segmented-C61yLHvo.mjs +341 -0
- package/.output/server/chunks/build/segmented-C61yLHvo.mjs.map +1 -0
- package/.output/server/chunks/build/select-rdBWytVK.mjs +3922 -0
- package/.output/server/chunks/build/select-rdBWytVK.mjs.map +1 -0
- package/.output/server/chunks/build/settings-DVAUVMsX.mjs +1089 -0
- package/.output/server/chunks/build/settings-DVAUVMsX.mjs.map +1 -0
- package/.output/server/chunks/build/space-B2uhHJG8.mjs +110 -0
- package/.output/server/chunks/build/space-B2uhHJG8.mjs.map +1 -0
- package/.output/server/chunks/build/spin-C2cuvGth.mjs +357 -0
- package/.output/server/chunks/build/spin-C2cuvGth.mjs.map +1 -0
- package/.output/server/chunks/build/switch-DZAUIbIN.mjs +377 -0
- package/.output/server/chunks/build/switch-DZAUIbIN.mjs.map +1 -0
- package/.output/server/chunks/build/table-DOFAvY-v.mjs +8881 -0
- package/.output/server/chunks/build/table-DOFAvY-v.mjs.map +1 -0
- package/.output/server/chunks/build/tabs-DTeIuZeP.mjs +1923 -0
- package/.output/server/chunks/build/tabs-DTeIuZeP.mjs.map +1 -0
- package/.output/server/chunks/build/tag-CHLGvNM6.mjs +1029 -0
- package/.output/server/chunks/build/tag-CHLGvNM6.mjs.map +1 -0
- package/.output/server/chunks/build/teams-Mc07PYO8.mjs +1195 -0
- package/.output/server/chunks/build/teams-Mc07PYO8.mjs.map +1 -0
- package/.output/server/chunks/build/tokens-DiwD5qni.mjs +1036 -0
- package/.output/server/chunks/build/tokens-DiwD5qni.mjs.map +1 -0
- package/.output/server/chunks/build/town-BIn3be5v.mjs +39 -0
- package/.output/server/chunks/build/town-BIn3be5v.mjs.map +1 -0
- package/.output/server/chunks/build/town-D8VmTCmN.mjs +128 -0
- package/.output/server/chunks/build/town-D8VmTCmN.mjs.map +1 -0
- package/.output/server/chunks/build/types-D6J7slEa.mjs +5561 -0
- package/.output/server/chunks/build/types-D6J7slEa.mjs.map +1 -0
- package/.output/server/chunks/build/useAgentHarnessOptions-CPn5dzKe.mjs +121 -0
- package/.output/server/chunks/build/useAgentHarnessOptions-CPn5dzKe.mjs.map +1 -0
- package/.output/server/chunks/build/useAgentTemplateActions-DQWzVnZ0.mjs +74 -0
- package/.output/server/chunks/build/useAgentTemplateActions-DQWzVnZ0.mjs.map +1 -0
- package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +64 -0
- package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs.map +1 -0
- package/.output/server/chunks/build/useAgentTemplateForm-vqyiRPtt.mjs +114 -0
- package/.output/server/chunks/build/useAgentTemplateForm-vqyiRPtt.mjs.map +1 -0
- package/.output/server/chunks/build/useAgentTemplatesCatalog-DcQbsOik.mjs +130 -0
- package/.output/server/chunks/build/useAgentTemplatesCatalog-DcQbsOik.mjs.map +1 -0
- package/.output/server/chunks/build/useAmlDatasets-BM0lZu40.mjs +89 -0
- package/.output/server/chunks/build/useAmlDatasets-BM0lZu40.mjs.map +1 -0
- package/.output/server/chunks/build/useAmlEntities-BjXWvFd_.mjs +83 -0
- package/.output/server/chunks/build/useAmlEntities-BjXWvFd_.mjs.map +1 -0
- package/.output/server/chunks/build/useAmlEnv-BB7p6x_w.mjs +191 -0
- package/.output/server/chunks/build/useAmlEnv-BB7p6x_w.mjs.map +1 -0
- package/.output/server/chunks/build/useAmlExperiments-BtyW32PO.mjs +86 -0
- package/.output/server/chunks/build/useAmlExperiments-BtyW32PO.mjs.map +1 -0
- package/.output/server/chunks/build/useAmlFormat-WrKuRfw2.mjs +79 -0
- package/.output/server/chunks/build/useAmlFormat-WrKuRfw2.mjs.map +1 -0
- package/.output/server/chunks/build/useAmlJobs-DBuLvWMF.mjs +263 -0
- package/.output/server/chunks/build/useAmlJobs-DBuLvWMF.mjs.map +1 -0
- package/.output/server/chunks/build/useAmlModels-VurmkBYe.mjs +90 -0
- package/.output/server/chunks/build/useAmlModels-VurmkBYe.mjs.map +1 -0
- package/.output/server/chunks/build/useAmlNotes-BUdj3X6Y.mjs +83 -0
- package/.output/server/chunks/build/useAmlNotes-BUdj3X6Y.mjs.map +1 -0
- package/.output/server/chunks/build/useAmlPredict-DFy-Do10.mjs +127 -0
- package/.output/server/chunks/build/useAmlPredict-DFy-Do10.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqAddNode-kW7uTSMQ.mjs +139 -0
- package/.output/server/chunks/build/useDaqAddNode-kW7uTSMQ.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqDetailBinding-cpBz4hSL.mjs +67 -0
- package/.output/server/chunks/build/useDaqDetailBinding-cpBz4hSL.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqDetailFrames-BZGtKKXW.mjs +76 -0
- package/.output/server/chunks/build/useDaqDetailFrames-BZGtKKXW.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqDetailHistory-C4_hVeqZ.mjs +173 -0
- package/.output/server/chunks/build/useDaqDetailHistory-C4_hVeqZ.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqDetailNode-Bwid_iA8.mjs +96 -0
- package/.output/server/chunks/build/useDaqDetailNode-Bwid_iA8.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqDetailParams-JfqHvTxr.mjs +156 -0
- package/.output/server/chunks/build/useDaqDetailParams-JfqHvTxr.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqFilters-C13836p-.mjs +219 -0
- package/.output/server/chunks/build/useDaqFilters-C13836p-.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +87 -0
- package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqOptimizations-Ct-TSXxy.mjs +133 -0
- package/.output/server/chunks/build/useDaqOptimizations-Ct-TSXxy.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqStream-wOxZcMDA.mjs +395 -0
- package/.output/server/chunks/build/useDaqStream-wOxZcMDA.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqTemplates-BqQRdrIm.mjs +184 -0
- package/.output/server/chunks/build/useDaqTemplates-BqQRdrIm.mjs.map +1 -0
- package/.output/server/chunks/build/useDashboardCharts-DZysNDUX.mjs +351 -0
- package/.output/server/chunks/build/useDashboardCharts-DZysNDUX.mjs.map +1 -0
- package/.output/server/chunks/build/useDashboardData-Ny_wtbo6.mjs +150 -0
- package/.output/server/chunks/build/useDashboardData-Ny_wtbo6.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwAddNode-C8nE7geh.mjs +148 -0
- package/.output/server/chunks/build/useDcwAddNode-C8nE7geh.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwCards-ETEsHvVy.mjs +64 -0
- package/.output/server/chunks/build/useDcwCards-ETEsHvVy.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwDetailScope-BNrpDzbO.mjs +181 -0
- package/.output/server/chunks/build/useDcwDetailScope-BNrpDzbO.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwDetailTemplates-IcKAJ37Y.mjs +145 -0
- package/.output/server/chunks/build/useDcwDetailTemplates-IcKAJ37Y.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwFilter-FfVlDdyS.mjs +68 -0
- package/.output/server/chunks/build/useDcwFilter-FfVlDdyS.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwLedger-BLoMmcu1.mjs +76 -0
- package/.output/server/chunks/build/useDcwLedger-BLoMmcu1.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwLineMutations-BMC5BTWU.mjs +134 -0
- package/.output/server/chunks/build/useDcwLineMutations-BMC5BTWU.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwLineRun-Bpxk4mse.mjs +101 -0
- package/.output/server/chunks/build/useDcwLineRun-Bpxk4mse.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwProducts-D-zrMaeV.mjs +90 -0
- package/.output/server/chunks/build/useDcwProducts-D-zrMaeV.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwQuery-1lYHOaU6.mjs +95 -0
- package/.output/server/chunks/build/useDcwQuery-1lYHOaU6.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwQuickActions-C-tgcXIr.mjs +85 -0
- package/.output/server/chunks/build/useDcwQuickActions-C-tgcXIr.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwRecipes-BzGOymqz.mjs +237 -0
- package/.output/server/chunks/build/useDcwRecipes-BzGOymqz.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwStream-D04kCV3J.mjs +435 -0
- package/.output/server/chunks/build/useDcwStream-D04kCV3J.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwTemplates-Dsjw9u6U.mjs +88 -0
- package/.output/server/chunks/build/useDcwTemplates-Dsjw9u6U.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwWrites-3RxwN36I.mjs +120 -0
- package/.output/server/chunks/build/useDcwWrites-3RxwN36I.mjs.map +1 -0
- package/.output/server/chunks/build/useDeviceTwins-CbVad1M3.mjs +128 -0
- package/.output/server/chunks/build/useDeviceTwins-CbVad1M3.mjs.map +1 -0
- package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs +1 -8
- package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs.map +1 -1
- package/.output/server/chunks/build/useLogsFormat-BlwLpyzy.mjs +74 -0
- package/.output/server/chunks/build/useLogsFormat-BlwLpyzy.mjs.map +1 -0
- package/.output/server/chunks/build/useLogsManual-Deev2Cjk.mjs +81 -0
- package/.output/server/chunks/build/useLogsManual-Deev2Cjk.mjs.map +1 -0
- package/.output/server/chunks/build/useLogsQuery-CRAm2hmS.mjs +112 -0
- package/.output/server/chunks/build/useLogsQuery-CRAm2hmS.mjs.map +1 -0
- package/.output/server/chunks/build/useLogsScope-ClNijVj4.mjs +80 -0
- package/.output/server/chunks/build/useLogsScope-ClNijVj4.mjs.map +1 -0
- package/.output/server/chunks/build/useMonitorColumns-ylxrUNTK.mjs +212 -0
- package/.output/server/chunks/build/useMonitorColumns-ylxrUNTK.mjs.map +1 -0
- package/.output/server/chunks/build/useMonitorData-CEpKXoD4.mjs +131 -0
- package/.output/server/chunks/build/useMonitorData-CEpKXoD4.mjs.map +1 -0
- package/.output/server/chunks/build/useMonitorFormat-_7zLapf3.mjs +87 -0
- package/.output/server/chunks/build/useMonitorFormat-_7zLapf3.mjs.map +1 -0
- package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +68 -0
- package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs.map +1 -0
- package/.output/server/chunks/build/useOpsLog-CgnNG7_n.mjs +137 -0
- package/.output/server/chunks/build/useOpsLog-CgnNG7_n.mjs.map +1 -0
- package/.output/server/chunks/build/useTeamActions-D6sxdpkP.mjs +76 -0
- package/.output/server/chunks/build/useTeamActions-D6sxdpkP.mjs.map +1 -0
- package/.output/server/chunks/build/useTeamAddMemberDialog-Q-ntQ6Vo.mjs +81 -0
- package/.output/server/chunks/build/useTeamAddMemberDialog-Q-ntQ6Vo.mjs.map +1 -0
- package/.output/server/chunks/build/useTeamCreateDialog-D7OMfDTM.mjs +94 -0
- package/.output/server/chunks/build/useTeamCreateDialog-D7OMfDTM.mjs.map +1 -0
- package/.output/server/chunks/build/useTeamDeployDialog-vBRqjiut.mjs +77 -0
- package/.output/server/chunks/build/useTeamDeployDialog-vBRqjiut.mjs.map +1 -0
- package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +79 -0
- package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs.map +1 -0
- package/.output/server/chunks/build/useTeamPluginDialog-B8kxewpZ.mjs +100 -0
- package/.output/server/chunks/build/useTeamPluginDialog-B8kxewpZ.mjs.map +1 -0
- package/.output/server/chunks/build/useTeamsCatalog-xRhk7ezA.mjs +120 -0
- package/.output/server/chunks/build/useTeamsCatalog-xRhk7ezA.mjs.map +1 -0
- package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +69 -0
- package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs.map +1 -0
- package/.output/server/chunks/build/useTokenCreate-DpDcF1Vx.mjs +112 -0
- package/.output/server/chunks/build/useTokenCreate-DpDcF1Vx.mjs.map +1 -0
- package/.output/server/chunks/build/useTokenRename-BRejFrtc.mjs +84 -0
- package/.output/server/chunks/build/useTokenRename-BRejFrtc.mjs.map +1 -0
- package/.output/server/chunks/build/useTokenReveal-DER2afAS.mjs +115 -0
- package/.output/server/chunks/build/useTokenReveal-DER2afAS.mjs.map +1 -0
- package/.output/server/chunks/build/useTokensList-DHt65IOY.mjs +89 -0
- package/.output/server/chunks/build/useTokensList-DHt65IOY.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkbenchAuth-B2j-zILO.mjs +135 -0
- package/.output/server/chunks/build/useWorkbenchAuth-B2j-zILO.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkbenchWorkspaces-B_2mOxN6.mjs +133 -0
- package/.output/server/chunks/build/useWorkbenchWorkspaces-B_2mOxN6.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkshopApi-B1B9vd4m.mjs +102 -0
- package/.output/server/chunks/build/useWorkshopApi-B1B9vd4m.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkshopWs-B-Es2Xg3.mjs +1782 -0
- package/.output/server/chunks/build/useWorkshopWs-B-Es2Xg3.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkspaceAuth-tQ1ORWXo.mjs +57 -0
- package/.output/server/chunks/build/useWorkspaceAuth-tQ1ORWXo.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkspaceChannels-BwB6TAWY.mjs +87 -0
- package/.output/server/chunks/build/useWorkspaceChannels-BwB6TAWY.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkspacePanels-CuAmDpT5.mjs +75 -0
- package/.output/server/chunks/build/useWorkspacePanels-CuAmDpT5.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkspaceShell-CcQ4JlqO.mjs +165 -0
- package/.output/server/chunks/build/useWorkspaceShell-CcQ4JlqO.mjs.map +1 -0
- package/.output/server/chunks/build/users-De2HygNt.mjs +561 -0
- package/.output/server/chunks/build/users-De2HygNt.mjs.map +1 -0
- package/.output/server/chunks/build/workshop-CmgpTwyf.mjs +1018 -0
- package/.output/server/chunks/build/workshop-CmgpTwyf.mjs.map +1 -0
- package/.output/server/chunks/build/workspaces-DVIEk1Bl.mjs +139 -0
- package/.output/server/chunks/build/workspaces-DVIEk1Bl.mjs.map +1 -0
- package/.output/server/chunks/routes/api/health.get.mjs +2 -2
- package/.output/server/chunks/routes/api/index.get.mjs +2 -2
- package/.output/server/chunks/routes/api/index.post.mjs +2 -2
- package/.output/server/chunks/routes/api/mcp/workshop.mjs +2 -2
- package/.output/server/chunks/routes/api/metrics.mjs +2 -2
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +2 -2
- package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +2 -2
- package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +2 -2
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +2 -2
- package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/system/config.get.mjs +2 -2
- package/.output/server/chunks/routes/api/system/index.get.mjs +2 -2
- package/.output/server/chunks/routes/api/system/index.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/system/index.post.mjs +2 -2
- package/.output/server/chunks/routes/api/system/index2.get.mjs +2 -2
- package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +35 -4
- package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +2 -2
- package/.output/server/chunks/routes/api/system/monitor.get.mjs +2 -2
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs +2 -2
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +2 -2
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/users/_id_.get.mjs +2 -2
- package/.output/server/chunks/routes/api/users/_id_.put.mjs +2 -2
- package/.output/server/chunks/routes/api/users/index.get.mjs +2 -2
- package/.output/server/chunks/routes/api/users/index.post.mjs +2 -2
- package/.output/server/chunks/routes/api/users/login.post.mjs +2 -2
- package/.output/server/chunks/routes/api/users/logout.post.mjs +2 -2
- package/.output/server/chunks/routes/api/users/me.get.mjs +2 -2
- package/.output/server/chunks/routes/api/users/register.post.mjs +2 -2
- package/.output/server/chunks/routes/api/users/setup-status.get.mjs +2 -2
- package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +2 -2
- package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +38 -6
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +14 -5
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/caller.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +10 -5
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +41 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +52 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs +33 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs +48 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +10 -14
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +15 -28
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +29 -23
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +9 -4
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +22 -10
- package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs +34 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs +33 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs +34 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs +35 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs +33 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +22 -6
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs +21 -3
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +5 -5
- package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +11 -4
- package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +28 -36
- package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index.put.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs +26 -12
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index11.get.mjs +12 -7
- package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index12.get.mjs +3 -3
- package/.output/server/chunks/routes/api/workshop/index12.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index13.get.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/index13.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index14.get.mjs +28 -0
- package/.output/server/chunks/routes/api/workshop/index14.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs +14 -16
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs +40 -19
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs +19 -5
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs +20 -24
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.post.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/index9.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +41 -0
- package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +31 -0
- package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +40 -0
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs +39 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs +44 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +9 -5
- package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +3 -3
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +2 -2
- package/.output/server/chunks/routes/renderer.mjs +3 -3
- package/.output/server/chunks/virtual/entry.mjs +6055 -1624
- package/.output/server/chunks/virtual/entry.mjs.map +1 -1
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/index.mjs +15 -5549
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/README-zh.md +102 -48
- package/README.md +105 -38
- package/app/components/AppHeader.vue +26 -703
- package/app/components/aml/AmlDatasetFormModal.vue +279 -0
- package/app/components/aml/AmlDatasetTable.vue +319 -0
- package/app/components/aml/AmlEnvPanel.vue +230 -0
- package/app/components/aml/AmlExperimentsTable.vue +142 -0
- package/app/components/aml/AmlInfraBanner.vue +23 -0
- package/app/components/aml/AmlJobsTable.vue +248 -0
- package/app/components/aml/AmlModelsTable.vue +173 -0
- package/app/components/aml/AmlOverviewBar.vue +62 -0
- package/app/components/aml/AmlPageHeader.vue +47 -0
- package/app/components/aml/AmlPredictConsole.vue +201 -0
- package/app/components/app-header/HeaderTools.vue +208 -0
- package/app/components/app-header/HitlBell.vue +423 -0
- package/app/components/app-header/TrailNav.vue +261 -0
- package/app/components/app-header/UserChip.vue +150 -0
- package/app/components/daq/DaqAddNodeModal.vue +209 -0
- package/app/components/daq/DaqAlarmBar.vue +46 -0
- package/app/components/daq/DaqControlCard.vue +159 -0
- package/app/components/daq/DaqDetailFramesTile.vue +139 -0
- package/app/components/daq/DaqDetailHistoryCard.vue +128 -0
- package/app/components/daq/DaqDetailLiveCard.vue +92 -0
- package/app/components/daq/DaqDetailParamForm.vue +350 -0
- package/app/components/daq/DaqInfraBanner.vue +31 -0
- package/app/components/daq/DaqLineBanner.vue +47 -0
- package/app/components/daq/DaqNodePanel.vue +396 -0
- package/app/components/daq/DaqOptPanel.vue +197 -0
- package/app/components/daq/DaqTemplateModal.vue +246 -0
- package/app/components/dashboard/DashboardFleetPanel.vue +228 -0
- package/app/components/dashboard/DashboardGaugeBand.vue +78 -0
- package/app/components/dashboard/DashboardHarnessPanel.vue +149 -0
- package/app/components/dashboard/DashboardHero.vue +209 -0
- package/app/components/dashboard/DashboardLineStatePanel.vue +78 -0
- package/app/components/dashboard/DashboardNodeStatePanel.vue +46 -0
- package/app/components/dashboard/DashboardPipelinePanel.vue +46 -0
- package/app/components/dashboard/DashboardTrendPanel.vue +83 -0
- package/app/components/dashboard/DashboardWritePanel.vue +52 -0
- package/app/components/dcw/DcwAddNodeModal.vue +328 -0
- package/app/components/dcw/DcwAdoptCard.vue +89 -0
- package/app/components/dcw/DcwCreateLineModal.vue +105 -0
- package/app/components/dcw/DcwDeleteLineModal.vue +73 -0
- package/app/components/dcw/DcwDetailHead.vue +65 -0
- package/app/components/dcw/DcwDetailTemplateModal.vue +238 -0
- package/app/components/dcw/DcwEditLineModal.vue +108 -0
- package/app/components/dcw/DcwGatewayBar.vue +94 -0
- package/app/components/dcw/DcwLedgerCard.vue +160 -0
- package/app/components/dcw/DcwLineCard.vue +117 -0
- package/app/components/dcw/DcwLineRunCard.vue +158 -0
- package/app/components/dcw/DcwNodesTable.vue +253 -0
- package/app/components/dcw/DcwProductCreateModal.vue +113 -0
- package/app/components/dcw/DcwQueryCard.vue +251 -0
- package/app/components/dcw/DcwRecipeEditModal.vue +285 -0
- package/app/components/dcw/DcwRecipeHistoryModal.vue +165 -0
- package/app/components/dcw/DcwRecipePanel.vue +367 -0
- package/app/components/dcw/DcwRunDataModal.vue +191 -0
- package/app/components/dcw/DcwTemplateModal.vue +227 -0
- package/app/components/dcw/DcwWriteHistoryCard.vue +96 -0
- package/app/components/logs/LogsEventTable.vue +309 -0
- package/app/components/logs/LogsFilterCard.vue +234 -0
- package/app/components/logs/LogsManualModal.vue +231 -0
- package/app/components/logs/LogsPageHead.vue +71 -0
- package/app/components/monitor/MonitorAgentTable.vue +143 -0
- package/app/components/monitor/MonitorChannelTable.vue +80 -0
- package/app/components/monitor/MonitorLoginGate.vue +24 -0
- package/app/components/monitor/MonitorPageHead.vue +92 -0
- package/app/components/monitor/MonitorProcessTable.vue +159 -0
- package/app/components/monitor/MonitorStatGrid.vue +165 -0
- package/app/components/settings/AppearancePane.vue +282 -0
- package/app/components/settings/PluginsSection.vue +280 -0
- package/app/components/settings/RuntimeFieldRow.vue +189 -0
- package/app/components/settings/RuntimeGroupSection.vue +290 -0
- package/app/components/settings/RuntimePane.vue +235 -0
- package/app/components/settings/SystemPane.vue +83 -0
- package/app/components/tokens/TokenCreateModal.vue +42 -0
- package/app/components/tokens/TokenOnceModal.vue +164 -0
- package/app/components/tokens/TokenRenameModal.vue +40 -0
- package/app/components/tokens/TokensAuthGate.vue +47 -0
- package/app/components/tokens/TokensPageHead.vue +76 -0
- package/app/components/tokens/TokensTable.vue +227 -0
- package/app/components/workshop/AgentLanesView.vue +35 -755
- package/app/components/workshop/ChannelSessionList.vue +58 -493
- package/app/components/workshop/ChatMemberPanel.vue +555 -0
- package/app/components/workshop/ChatTimeline.vue +569 -0
- package/app/components/workshop/CommandPalette.vue +1 -0
- package/app/components/workshop/Composer.vue +224 -511
- package/app/components/workshop/DeviceTwinPanel.vue +23 -499
- package/app/components/workshop/EventBlock.vue +20 -408
- package/app/components/workshop/MemoryPanel.vue +405 -364
- package/app/components/workshop/MultiChannelView.vue +189 -189
- package/app/components/workshop/NotificationCenter.vue +325 -0
- package/app/components/workshop/TaskBoardView.vue +260 -686
- package/app/components/workshop/TaskInspectorDrawer.vue +484 -390
- package/app/components/workshop/TranscriptTimeline.vue +60 -438
- package/app/components/workshop/agents/AgentTemplateEditModal.vue +139 -0
- package/app/components/workshop/agents/AgentTemplateTable.vue +269 -0
- package/app/components/workshop/agents/AgentTemplateToolbar.vue +67 -0
- package/app/components/workshop/blocks/ClusterRoute.vue +1 -1
- package/app/components/workshop/blocks/EventBlockAvatar.vue +114 -0
- package/app/components/workshop/blocks/EventBlockHead.vue +232 -0
- package/app/components/workshop/composer/ComposerToolbar.vue +278 -0
- package/app/components/workshop/composer/MentionMenu.vue +135 -0
- package/app/components/workshop/composer/ReplyChip.vue +65 -0
- package/app/components/workshop/composer/StatusChip.vue +171 -0
- package/app/components/workshop/console/CenterPane.vue +94 -0
- package/app/components/workshop/console/Dock.vue +71 -0
- package/app/components/workshop/console/LeftPane.vue +84 -0
- package/app/components/workshop/console/RightPane.vue +95 -0
- package/app/components/workshop/console/Topbar.vue +289 -0
- package/app/components/workshop/device-twin/DeviceTwinCard.vue +265 -0
- package/app/components/workshop/device-twin/DeviceTwinDcwSection.vue +203 -0
- package/app/components/workshop/lanes/AddMemberModal.vue +270 -0
- package/app/components/workshop/lanes/EditMemberModal.vue +106 -0
- package/app/components/workshop/lanes/LaneHeader.vue +432 -0
- package/app/components/workshop/lanes/LanesToolbar.vue +97 -0
- package/app/components/workshop/session-list/ChannelSettingsModal.vue +329 -0
- package/app/components/workshop/session-list/MountChannelModal.vue +124 -0
- package/app/components/workshop/session-list/SaveTemplateModal.vue +93 -0
- package/app/components/workshop/task-board/Card.vue +172 -0
- package/app/components/workshop/task-board/Column.vue +151 -0
- package/app/components/workshop/task-board/List.vue +157 -0
- package/app/components/workshop/task-board/StatusMenu.vue +88 -0
- package/app/components/workshop/teams/TeamAddMemberModal.vue +53 -0
- package/app/components/workshop/teams/TeamCard.vue +183 -0
- package/app/components/workshop/teams/TeamCreateModal.vue +94 -0
- package/app/components/workshop/teams/TeamDeployModal.vue +40 -0
- package/app/components/workshop/teams/TeamPluginModal.vue +119 -0
- package/app/components/workshop/terminal/OmpTerminalPanel.vue +19 -760
- package/app/components/workshop/terminal/TerminalHitlCard.vue +170 -0
- package/app/components/workshop/town/TownScene.ts +72 -961
- package/app/components/workshop/town/TownScene3D.ts +357 -4045
- package/app/components/workshop/town/TownView.vue +461 -7405
- package/app/components/workshop/town/components/TownAgentBindings.vue +380 -0
- package/app/components/workshop/town/components/TownAgentInspector.vue +546 -0
- package/app/components/workshop/town/components/TownAlarmList.vue +147 -0
- package/app/components/workshop/town/components/TownBoundaryPanel.vue +350 -0
- package/app/components/workshop/town/components/TownCalloutLayer.vue +147 -0
- package/app/components/workshop/town/components/TownChannelDock.vue +116 -0
- package/app/components/workshop/town/components/TownControlDock.vue +400 -0
- package/app/components/workshop/town/components/TownDaqNodeInspector.vue +345 -0
- package/app/components/workshop/town/components/TownDaqTree.vue +366 -0
- package/app/components/workshop/town/components/TownDcwBindSection.vue +473 -0
- package/app/components/workshop/town/components/TownDcwNodeInspector.vue +185 -0
- package/app/components/workshop/town/components/TownDcwTree.vue +280 -0
- package/app/components/workshop/town/components/TownDeviceBindings.vue +394 -0
- package/app/components/workshop/town/components/TownDeviceTransform.vue +248 -0
- package/app/components/workshop/town/components/TownEventList.vue +120 -0
- package/app/components/workshop/town/components/TownHealthBody.vue +100 -0
- package/app/components/workshop/town/components/TownKpiStrip.vue +207 -0
- package/app/components/workshop/town/components/TownLeftRail.vue +308 -0
- package/app/components/workshop/town/components/TownLoadingMask.vue +61 -0
- package/app/components/workshop/town/components/TownNavMap.vue +154 -0
- package/app/components/workshop/town/components/TownRightRail.vue +540 -0
- package/app/components/workshop/town/components/TownStage.vue +281 -0
- package/app/components/workshop/town/components/TownStageTop.vue +238 -0
- package/app/components/workshop/town/components/TownStatusBar.vue +108 -0
- package/app/components/workshop/town/components/TownTopNav.vue +367 -0
- package/app/components/workshop/town/components/TownTrendDock.vue +178 -0
- package/app/components/workshop/town/scene/town-scene-agents.ts +254 -0
- package/app/components/workshop/town/scene/town-scene-behavior.ts +194 -0
- package/app/components/workshop/town/scene/town-scene-bubbles.ts +96 -0
- package/app/components/workshop/town/scene/town-scene-core.ts +158 -0
- package/app/components/workshop/town/scene/town-scene-models.ts +109 -0
- package/app/components/workshop/town/scene/town-scene-visuals.ts +279 -0
- package/app/components/workshop/town/scene/town-scene3d-agents.ts +308 -0
- package/app/components/workshop/town/scene/town-scene3d-blocks.ts +297 -0
- package/app/components/workshop/town/scene/town-scene3d-bubbles.ts +281 -0
- package/app/components/workshop/town/scene/town-scene3d-camera.ts +282 -0
- package/app/components/workshop/town/scene/town-scene3d-devices.ts +433 -0
- package/app/components/workshop/town/scene/town-scene3d-editing.ts +490 -0
- package/app/components/workshop/town/scene/town-scene3d-events.ts +173 -0
- package/app/components/workshop/town/scene/town-scene3d-factory.ts +412 -0
- package/app/components/workshop/town/scene/town-scene3d-hud.ts +110 -0
- package/app/components/workshop/town/scene/town-scene3d-lifecycle.ts +144 -0
- package/app/components/workshop/town/scene/town-scene3d-links.ts +141 -0
- package/app/components/workshop/town/scene/town-scene3d-loop.ts +286 -0
- package/app/components/workshop/town/scene/town-scene3d-models.ts +154 -0
- package/app/components/workshop/town/scene/town-scene3d-nodes.ts +562 -0
- package/app/components/workshop/town/scene/town-scene3d-ranges.ts +273 -0
- package/app/components/workshop/town/scene/town-scene3d-renderer.ts +320 -0
- package/app/components/workshop/town/scene/town-scene3d-selection.ts +257 -0
- package/app/components/workshop/town/scene/town-scene3d-types.ts +264 -0
- package/app/components/workshop/transcript/TranscriptBlockList.vue +68 -0
- package/app/components/workshop/transcript/TranscriptEarlierPager.vue +81 -0
- package/app/components/workshop/transcript/TranscriptEmptyState.vue +153 -0
- package/app/components/workshop/transcript/TranscriptFilterBar.vue +126 -0
- package/app/components/workshop/workbench/AuthGate.vue +179 -0
- package/app/components/workshop/workbench/CreateWorkspaceModal.vue +36 -0
- package/app/components/workshop/workbench/WorkbenchHead.vue +129 -0
- package/app/components/workshop/workbench/WorkspaceCard.vue +198 -0
- package/app/components/workshop/workbench/WorkspaceEmpty.vue +56 -0
- package/app/composables/workshop/device-twin-types.ts +29 -0
- package/app/composables/workshop/event-blocks/attention.ts +58 -0
- package/app/composables/workshop/event-blocks/classify.ts +44 -0
- package/app/composables/workshop/event-blocks/clusterer.ts +231 -0
- package/app/composables/workshop/event-blocks/constants.ts +48 -0
- package/app/composables/workshop/event-blocks/fold-stream.ts +45 -0
- package/app/composables/workshop/event-blocks/markdown.ts +81 -0
- package/app/composables/workshop/event-blocks/mentions.ts +49 -0
- package/app/composables/workshop/event-blocks/text-utils.ts +100 -0
- package/app/composables/workshop/event-blocks/types.ts +40 -0
- package/app/composables/workshop/town/town-relay-props.ts +226 -0
- package/app/composables/workshop/town/town-view-types.ts +145 -0
- package/app/composables/workshop/town/useTownAgentBindings.ts +115 -0
- package/app/composables/workshop/town/useTownAgentChat.ts +203 -0
- package/app/composables/workshop/town/useTownAlarms.ts +36 -0
- package/app/composables/workshop/town/useTownCallouts.ts +174 -0
- package/app/composables/workshop/town/useTownChannels.ts +220 -0
- package/app/composables/workshop/town/useTownHealth.ts +66 -0
- package/app/composables/workshop/town/useTownHudTickers.ts +77 -0
- package/app/composables/workshop/town/useTownLayout.ts +277 -0
- package/app/composables/workshop/town/useTownNavMap.ts +301 -0
- package/app/composables/workshop/town/useTownNodeBindings.ts +345 -0
- package/app/composables/workshop/town/useTownPanelDrag.ts +91 -0
- package/app/composables/workshop/town/useTownRailData.ts +421 -0
- package/app/composables/workshop/town/useTownSceneControl.ts +92 -0
- package/app/composables/workshop/town/useTownSceneInput.ts +275 -0
- package/app/composables/workshop/town/useTownSceneRuntime.ts +390 -0
- package/app/composables/workshop/town/useTownSheets.ts +41 -0
- package/app/composables/workshop/town/useTownTrends.ts +93 -0
- package/app/composables/workshop/useChannelList.ts +88 -0
- package/app/composables/workshop/useChannelTerminals.ts +65 -0
- package/app/composables/workshop/useComposerMentions.ts +130 -0
- package/app/composables/workshop/useDeviceTwinDcwWrite.ts +77 -0
- package/app/composables/workshop/useDeviceTwinPanel.ts +56 -0
- package/app/composables/workshop/useEventBlockView.ts +159 -0
- package/app/composables/workshop/useEventBlocks.ts +33 -662
- package/app/composables/workshop/useHitlAnswer.ts +184 -0
- package/app/composables/workshop/useLaneWidths.ts +27 -0
- package/app/composables/workshop/useOmpTerminalSession.ts +424 -0
- package/app/composables/workshop/usePluginAdmin.ts +152 -0
- package/app/composables/workshop/useRuntimeConfigDraft.ts +118 -0
- package/app/composables/workshop/useSettingsGroups.ts +243 -0
- package/app/composables/workshop/useTaskBoardColumns.ts +47 -0
- package/app/composables/workshop/useTaskBoardDrag.ts +78 -0
- package/app/composables/workshop/useTaskBoardMenu.ts +60 -0
- package/app/composables/workshop/useTaskBoardTasks.ts +74 -0
- package/app/composables/workshop/useTerminalRenderer.ts +308 -0
- package/app/composables/workshop/useTranscriptEnterStage.ts +48 -0
- package/app/composables/workshop/useTranscriptHistory.ts +52 -0
- package/app/composables/workshop/useTranscriptScroll.ts +113 -0
- package/app/composables/workshop/useWorkshopApi.ts +85 -2
- package/app/composables/workshop/useWorkshopWs.ts +265 -126
- package/app/config/schema.ts +13 -0
- package/app/layouts/town.vue +21 -16
- package/app/pages/aml/api.ts +6 -0
- package/app/pages/aml/composables/useAmlDatasets.ts +38 -0
- package/app/pages/aml/composables/useAmlEntities.ts +57 -0
- package/app/pages/aml/composables/useAmlEnv.ts +191 -0
- package/app/pages/aml/composables/useAmlExperiments.ts +45 -0
- package/app/pages/aml/composables/useAmlFormat.ts +44 -0
- package/app/pages/aml/composables/useAmlJobs.ts +131 -0
- package/app/pages/aml/composables/useAmlModels.ts +56 -0
- package/app/pages/aml/composables/useAmlNotes.ts +47 -0
- package/app/pages/aml/composables/useAmlPredict.ts +93 -0
- package/app/pages/aml/constants.ts +63 -0
- package/app/pages/aml/index.vue +143 -2596
- package/app/pages/aml/styles.css +420 -0
- package/app/pages/aml/types.ts +189 -0
- package/app/pages/composables/useDashboardCharts.ts +192 -0
- package/app/pages/composables/useDashboardData.ts +144 -0
- package/app/pages/daq/[id].vue +59 -929
- package/app/pages/daq/composables/useDaqAddNode.ts +126 -0
- package/app/pages/daq/composables/useDaqDetailBinding.ts +29 -0
- package/app/pages/daq/composables/useDaqDetailFrames.ts +42 -0
- package/app/pages/daq/composables/useDaqDetailHistory.ts +199 -0
- package/app/pages/daq/composables/useDaqDetailNode.ts +53 -0
- package/app/pages/daq/composables/useDaqDetailParams.ts +138 -0
- package/app/pages/daq/composables/useDaqFilters.ts +187 -0
- package/app/pages/daq/composables/useDaqNodeWindow.ts +86 -0
- package/app/pages/daq/composables/useDaqOptimizations.ts +99 -0
- package/app/pages/daq/composables/useDaqTemplates.ts +152 -0
- package/app/pages/daq/daq-page.css +681 -0
- package/app/pages/daq/index.vue +132 -2188
- package/app/pages/dcw/[id].vue +297 -2615
- package/app/pages/dcw/composables/useDcwAddNode.ts +121 -0
- package/app/pages/dcw/composables/useDcwCards.ts +27 -0
- package/app/pages/dcw/composables/useDcwDetailScope.ts +145 -0
- package/app/pages/dcw/composables/useDcwDetailTemplates.ts +94 -0
- package/app/pages/dcw/composables/useDcwFilter.ts +29 -0
- package/app/pages/dcw/composables/useDcwLedger.ts +34 -0
- package/app/pages/dcw/composables/useDcwLineMutations.ts +115 -0
- package/app/pages/dcw/composables/useDcwLineRun.ts +60 -0
- package/app/pages/dcw/composables/useDcwProducts.ts +54 -0
- package/app/pages/dcw/composables/useDcwQuery.ts +68 -0
- package/app/pages/dcw/composables/useDcwQuickActions.ts +47 -0
- package/app/pages/dcw/composables/useDcwRecipes.ts +239 -0
- package/app/pages/dcw/composables/useDcwTemplates.ts +50 -0
- package/app/pages/dcw/composables/useDcwWrites.ts +81 -0
- package/app/pages/dcw/dcw-page.css +344 -0
- package/app/pages/dcw/index.vue +64 -986
- package/app/pages/dcw/types.ts +9 -0
- package/app/pages/index.vue +64 -925
- package/app/pages/logs/composables/useLogsFormat.ts +43 -0
- package/app/pages/logs/composables/useLogsManual.ts +63 -0
- package/app/pages/logs/composables/useLogsQuery.ts +52 -0
- package/app/pages/logs/composables/useLogsScope.ts +39 -0
- package/app/pages/logs/index.vue +57 -728
- package/app/pages/monitor/composables/useMonitorColumns.ts +69 -0
- package/app/pages/monitor/composables/useMonitorData.ts +124 -0
- package/app/pages/monitor/composables/useMonitorFormat.ts +39 -0
- package/app/pages/monitor/composables/useMonitorTerminal.ts +28 -0
- package/app/pages/monitor/types.ts +61 -0
- package/app/pages/monitor.vue +88 -658
- package/app/pages/permissions/index.vue +3 -2
- package/app/pages/plugins/index.vue +3 -2
- package/app/pages/settings.vue +7 -1403
- package/app/pages/tokens/composables/useTokenClipboard.ts +33 -0
- package/app/pages/tokens/composables/useTokenCreate.ts +93 -0
- package/app/pages/tokens/composables/useTokenRename.ts +54 -0
- package/app/pages/tokens/composables/useTokenReveal.ts +84 -0
- package/app/pages/tokens/composables/useTokensList.ts +60 -0
- package/app/pages/tokens.vue +79 -597
- package/app/pages/users.vue +5 -4
- package/app/pages/workshop/agents.vue +47 -529
- package/app/pages/workshop/composables/useAgentHarnessOptions.ts +59 -0
- package/app/pages/workshop/composables/useAgentTemplateActions.ts +42 -0
- package/app/pages/workshop/composables/useAgentTemplateDialogState.ts +24 -0
- package/app/pages/workshop/composables/useAgentTemplateForm.ts +88 -0
- package/app/pages/workshop/composables/useAgentTemplatesCatalog.ts +92 -0
- package/app/pages/workshop/composables/useTeamActions.ts +44 -0
- package/app/pages/workshop/composables/useTeamAddMemberDialog.ts +49 -0
- package/app/pages/workshop/composables/useTeamCreateDialog.ts +67 -0
- package/app/pages/workshop/composables/useTeamDeployDialog.ts +49 -0
- package/app/pages/workshop/composables/useTeamDialogState.ts +46 -0
- package/app/pages/workshop/composables/useTeamPluginDialog.ts +72 -0
- package/app/pages/workshop/composables/useTeamsCatalog.ts +100 -0
- package/app/pages/workshop/composables/useWorkbenchAuth.ts +125 -0
- package/app/pages/workshop/composables/useWorkbenchWorkspaces.ts +123 -0
- package/app/pages/workshop/composables/useWorkspaceAuth.ts +31 -0
- package/app/pages/workshop/composables/useWorkspaceChannels.ts +62 -0
- package/app/pages/workshop/composables/useWorkspacePanels.ts +56 -0
- package/app/pages/workshop/composables/useWorkspaceShell.ts +136 -0
- package/app/pages/workshop/index.vue +68 -620
- package/app/pages/workshop/schedules.vue +553 -0
- package/app/pages/workshop/teams.vue +58 -568
- package/app/pages/workshop/w/[wsId].vue +113 -596
- package/app/stores/workshop/chat.ts +434 -0
- package/app/stores/workshop/entities.ts +385 -283
- package/app/stores/workshop/events.ts +5 -4
- package/app/stores/workshop/hitl.ts +110 -7
- package/app/stores/workshop/narrow-fetch.ts +23 -0
- package/app/stores/workshop/notifications.ts +288 -0
- package/app/stores/workshop/user.ts +23 -10
- package/app/stores/workshop/workspaces.ts +12 -2
- package/config.yml +7 -1
- package/docs/aml.md +11 -0
- package/docs/cli.en.md +5 -5
- package/docs/cli.md +5 -5
- package/docs/full-test-plan.md +15 -1
- package/docs/plugins.en.md +1 -1
- package/docs/plugins.md +1 -1
- package/docs/sdk.en.md +1 -1
- package/docs/sdk.md +1 -1
- package/i18n/dicts/dcwDetail.json +2 -0
- package/i18n/locales/en.ts +71 -0
- package/i18n/locales/zh-CN.ts +71 -0
- package/package.json +2 -3
- package/scripts/_audit/detached-instance.mjs +112 -0
- package/scripts/_audit/schedules-ui/schedules-page.png +0 -0
- package/scripts/_audit/schedules-ui/workspace-channel-tag.png +0 -0
- package/scripts/_audit/stubs/nuxt-imports.mjs +67 -0
- package/scripts/_audit/ts-register-hook.mjs +12 -0
- package/scripts/_audit/ts-resolve-hook.mjs +25 -5
- package/scripts/_audit/watchdog-recovery-test.mjs +24 -2
- package/scripts/_aw-packaged-start.cjs +22 -0
- package/scripts/_aw0746-stage12.mjs +94 -0
- package/scripts/_aw0746-stage34.mjs +134 -0
- package/scripts/_aw0746-stage5.mjs +106 -0
- package/scripts/_aw0746-stage6-aml.mjs +177 -0
- package/scripts/_aw0746-stage6b-train-sweep.mjs +142 -0
- package/scripts/_aw0746-stage7-twin.mjs +259 -0
- package/scripts/_aw0746-train-strong.py +142 -0
- package/scripts/_dbg-comm-verify.mjs +188 -0
- package/scripts/_dbg-full-feature-e2e.mjs +19 -11
- package/scripts/_dbg-im-e2e.mjs +169 -0
- package/scripts/_dbg-opt2-run.mjs +114 -0
- package/scripts/_dbg-opt2-setup.mjs +95 -0
- package/scripts/_dbg-param-map-e2e.ts +1 -1
- package/scripts/_dbg-param-map-rest-smoke.mjs +1 -1
- package/scripts/_dbg-real-scenario-e2e.mjs +246 -0
- package/scripts/_dbg-schedule-e2e.mjs +262 -0
- package/scripts/_dbg-schedule-ui-verify.mjs +115 -0
- package/scripts/_dbg-team-matrix.mjs +148 -0
- package/scripts/_dbg-ui-fullcrawl.mjs +91 -0
- package/scripts/_dbg-ui-static-audit.mjs +65 -0
- package/scripts/_dbg-write-lock-e2e.mjs +131 -0
- package/scripts/_plc-sim-detached.cjs +22 -0
- package/scripts/_probe-daq-omp-task.mjs +100 -0
- package/scripts/_probe-daq-scope-default.mjs +123 -0
- package/scripts/_probe-density.cjs +15 -0
- package/scripts/_probe-gate-model.mjs +34 -0
- package/scripts/_probe-model-eligibility.cjs +13 -0
- package/scripts/_probe-recipe-switch.mjs +92 -0
- package/scripts/_provision-injection-line.mjs +39 -0
- package/scripts/_run-matrix.ps1 +53 -0
- package/scripts/_run-real-injection-fifo-goals.mjs +367 -0
- package/scripts/acceptance-aml-db.ts +23 -0
- package/scripts/acceptance-aml-hybrid-live.mjs +94 -0
- package/scripts/acceptance-aml-hybrid-twin.ts +93 -0
- package/scripts/acceptance-hybrid-python.py +51 -0
- package/scripts/aml-ui-smoke.mjs +2 -0
- package/scripts/api-live-e2e.mjs +32 -7
- package/scripts/demo-group-chat-all-real.ts +279 -0
- package/scripts/demo-group-chat-omp-cases.ts +210 -0
- package/scripts/demo-group-chat-omp.ts +184 -0
- package/scripts/demo-group-chat-order.ts +197 -0
- package/scripts/e2e-agent-team.mjs +6 -4
- package/scripts/e2e-agentteam-chat.mjs +473 -0
- package/scripts/e2e-agentteam-real-triage.mjs +421 -0
- package/scripts/e2e-agentteam-task-flow-real.ts +443 -0
- package/scripts/e2e-aw-tui-global.mjs +8 -8
- package/scripts/e2e-channel-isolation.ts +5 -1
- package/scripts/e2e-closedloop/cleanup.mjs +27 -0
- package/scripts/e2e-closedloop/lib.mjs +109 -0
- package/scripts/e2e-closedloop/main.mjs +59 -0
- package/scripts/e2e-closedloop/scenarios-accounts.mjs +208 -0
- package/scripts/e2e-closedloop/scenarios-authz.mjs +190 -0
- package/scripts/e2e-closedloop/scenarios-daq-dcw.mjs +219 -0
- package/scripts/e2e-closedloop/scenarios-plugins.mjs +169 -0
- package/scripts/e2e-closedloop/state.mjs +10 -0
- package/scripts/e2e-crash-cycle.mjs +108 -0
- package/scripts/e2e-full-closedloop.mjs +6 -919
- package/scripts/e2e-hil-multi-user.mjs +307 -0
- package/scripts/e2e-hil-restart.mjs +339 -0
- package/scripts/e2e-hitl-live.mjs +336 -323
- package/scripts/e2e-lead-team-mgmt.ts +1 -1
- package/scripts/e2e-memory-system.ts +70 -89
- package/scripts/e2e-multiharness-team.mjs +32 -15
- package/scripts/e2e-omp-workspace.ts +21 -6
- package/scripts/e2e-parallel-execution.mjs +20 -6
- package/scripts/e2e-plc-plugin-closedloop.mjs +96 -65
- package/scripts/e2e-rest-memory.mjs +26 -11
- package/scripts/e2e-resume-crash.mjs +22 -7
- package/scripts/e2e-task-queue.ts +8 -8
- package/scripts/e2e-template-isolation.mjs +4 -2
- package/scripts/proof-omp-real.ts +189 -0
- package/scripts/real-injection-closed-loop.mjs +383 -0
- package/scripts/test-agent-runtime.ts +5 -1
- package/scripts/test-agentteam-guardrails.ts +113 -0
- package/scripts/test-agentteam-task-chat-flow.ts +420 -0
- package/scripts/test-agentteam-workflow.ts +472 -0
- package/scripts/test-collab-e2e.mjs +17 -3
- package/scripts/test-dcw-read.ts +9 -2
- package/scripts/test-event-persistence.mjs +10 -2
- package/scripts/test-full-system.ts +16 -3
- package/scripts/test-group-chat-hardening.ts +265 -0
- package/scripts/test-group-chat-unit/lib.ts +186 -0
- package/scripts/test-group-chat-unit/main.ts +45 -0
- package/scripts/test-group-chat-unit/section-a-migration.ts +75 -0
- package/scripts/test-group-chat-unit/section-b-permission-matrix.ts +88 -0
- package/scripts/test-group-chat-unit/section-c-member-lifecycle.ts +64 -0
- package/scripts/test-group-chat-unit/section-d-mention-resolution.ts +36 -0
- package/scripts/test-group-chat-unit/section-e-chat-facts.ts +97 -0
- package/scripts/test-group-chat-unit/section-f-user-notifications.ts +52 -0
- package/scripts/test-group-chat-unit/section-g-member-projection.ts +44 -0
- package/scripts/test-group-chat-unit/section-h-outbox-consistency.ts +30 -0
- package/scripts/test-group-chat-unit/section-i-read-idempotency.ts +24 -0
- package/scripts/test-group-chat-unit/section-j-permission-scope.ts +150 -0
- package/scripts/test-group-chat-unit.ts +35 -0
- package/scripts/test-hitl-decision.ts +526 -0
- package/scripts/test-hitl-legacy-channel-auth.ts +143 -0
- package/scripts/test-lane-history-live.mjs +30 -7
- package/scripts/test-memory-vector.ts +10 -0
- package/scripts/test-orchestration.ts +7 -2
- package/scripts/test-persistence-lazy.ts +7 -1
- package/scripts/test-prompt-system.mjs +46 -20
- package/scripts/test-route-reason.mjs +9 -2
- package/scripts/test-schedule-runtime.ts +309 -0
- package/scripts/test-scheduler-loop/lib.ts +321 -0
- package/scripts/test-scheduler-loop/main.ts +40 -0
- package/scripts/test-scheduler-loop/scenarios-modes.ts +95 -0
- package/scripts/test-scheduler-loop/scenarios-runtime.ts +58 -0
- package/scripts/test-scheduler-loop/scenarios-supervise.ts +183 -0
- package/scripts/test-scheduler-loop/scenarios-triage.ts +102 -0
- package/scripts/test-scheduler-loop.ts +5 -460
- package/scripts/test-supervision-watchdog.ts +105 -0
- package/scripts/test-task-engine.ts +27 -5
- package/scripts/test-task-lease-fencing.ts +154 -0
- package/scripts/test-terminal-e2e.mjs +9 -3
- package/scripts/three-system-e2e/lib.mjs +79 -0
- package/scripts/three-system-e2e/main.mjs +40 -0
- package/scripts/three-system-e2e/phases/phase-0-user-token.mjs +42 -0
- package/scripts/three-system-e2e/phases/phase-0a2-line-autoselect.mjs +35 -0
- package/scripts/three-system-e2e/phases/phase-0b-fixture-grants.mjs +39 -0
- package/scripts/three-system-e2e/phases/phase-0c-plugin-outbound-auth.mjs +95 -0
- package/scripts/three-system-e2e/phases/stage-1-health.mjs +47 -0
- package/scripts/three-system-e2e/phases/stage-2-5-team-plugins.mjs +84 -0
- package/scripts/three-system-e2e/phases/stage-2-teams-tools-hitl.mjs +184 -0
- package/scripts/three-system-e2e/phases/stage-3-diag.mjs +73 -0
- package/scripts/three-system-e2e/phases/stage-4-plugin-toggle.mjs +53 -0
- package/scripts/three-system-e2e/state.mjs +87 -0
- package/scripts/three-system-e2e.mjs +24 -646
- package/scripts/typecheck.mjs +75 -0
- package/scripts/ui/lib.mjs +14 -2
- package/scripts/ui/smoke-refactor.mjs +258 -0
- package/scripts/verify-a2a-live.mjs +15 -1
- package/scripts/verify-ws-events.mjs +19 -1
- package/server/api/system/monitor/terminal/ws.ts +51 -1
- package/server/api/workshop/agent-tools/approvals/[id]/decide.post.ts +59 -5
- package/server/api/workshop/agent-tools/approvals/index.get.ts +28 -3
- package/server/api/workshop/channel-templates/[id]/instantiate.post.ts +6 -1
- package/server/api/workshop/channels/[id]/chat/messages/[messageId]/read.post.ts +22 -0
- package/server/api/workshop/channels/[id]/chat/messages/index.get.ts +29 -0
- package/server/api/workshop/channels/[id]/chat/messages/index.post.ts +51 -0
- package/server/api/workshop/channels/[id]/chat/permissions.get.ts +35 -0
- package/server/api/workshop/channels/[id]/index.patch.ts +34 -8
- package/server/api/workshop/channels/[id]/members/[userId]/approve.post.ts +20 -0
- package/server/api/workshop/channels/[id]/members/[userId].delete.ts +21 -0
- package/server/api/workshop/channels/[id]/members/index.get.ts +23 -0
- package/server/api/workshop/channels/[id]/members/join.post.ts +30 -0
- package/server/api/workshop/channels/[id]/members/leave.post.ts +20 -0
- package/server/api/workshop/channels/[id]/messages/index.post.ts +3 -0
- package/server/api/workshop/channels/[id]/tasks/index.post.ts +8 -0
- package/server/api/workshop/channels.get.ts +21 -1
- package/server/api/workshop/hitl/pending.get.ts +27 -7
- package/server/api/workshop/hitl/respond.post.ts +86 -89
- package/server/api/workshop/notifications/index.get.ts +60 -0
- package/server/api/workshop/notifications/read.post.ts +31 -0
- package/server/api/workshop/schedules/[id]/run.post.ts +15 -0
- package/server/api/workshop/schedules/[id]/runs.get.ts +15 -0
- package/server/api/workshop/schedules/[id].delete.ts +14 -0
- package/server/api/workshop/schedules/[id].get.ts +13 -0
- package/server/api/workshop/schedules/[id].patch.ts +29 -0
- package/server/api/workshop/schedules/index.get.ts +12 -0
- package/server/api/workshop/schedules/index.post.ts +32 -0
- package/server/api/workshop/tasks/[id]/reassign.post.ts +32 -0
- package/server/api/workshop/tasks/[id]/update.post.ts +35 -0
- package/server/api/workshop/tasks/[id].get.ts +15 -6
- package/server/api/workshop/ws/audience.ts +56 -0
- package/server/api/workshop/ws/db-buffer.ts +68 -0
- package/server/api/workshop/ws/event-mapping.ts +47 -0
- package/server/api/workshop/ws/handlers.ts +132 -0
- package/server/api/workshop/ws/hub.ts +133 -0
- package/server/api/workshop/ws/index.ts +23 -0
- package/server/api/workshop/ws/notification-uplink.ts +77 -0
- package/server/api/workshop/ws/peer-sub.ts +128 -0
- package/server/api/workshop/ws/publish.ts +122 -0
- package/server/api/workshop/ws/shared.ts +94 -0
- package/server/api/workshop/ws/streams.ts +146 -0
- package/server/api/workshop/ws/subscriptions.ts +137 -0
- package/server/plugins/workshop.ts +30 -0
- package/server/plugins-builtin/diag-bridge/host/constants.mjs +25 -0
- package/server/plugins-builtin/diag-bridge/host/diagnosis.mjs +56 -0
- package/server/plugins-builtin/diag-bridge/host/helpers.mjs +126 -0
- package/server/plugins-builtin/diag-bridge/host/index.mjs +15 -0
- package/server/plugins-builtin/diag-bridge/host/plugin.mjs +296 -0
- package/server/plugins-builtin/diag-bridge/host/snapshot.mjs +93 -0
- package/server/plugins-builtin/diag-bridge/host/sweep.mjs +51 -0
- package/server/plugins-builtin/diag-bridge/index.mjs +6 -605
- package/server/repositories/user.repository.ts +13 -0
- package/server/services/system-config/contracts.ts +29 -0
- package/server/services/system-config/dispose.ts +19 -0
- package/server/services/system-config/facade.ts +26 -0
- package/server/services/system-config/groups.ts +108 -0
- package/server/services/system-config/helpers.ts +41 -0
- package/server/services/system-config/index.ts +21 -0
- package/server/services/system-config/init.ts +26 -0
- package/server/services/system-config/mutate.ts +103 -0
- package/server/services/system-config/plugins.ts +104 -0
- package/server/services/system-config/recompute.ts +66 -0
- package/server/services/system-config/snapshot.ts +59 -0
- package/server/services/system-config/state.ts +79 -0
- package/server/services/system-config/types.ts +58 -0
- package/server/services/workshop/agents/adapters/line-spawn.ts +2 -2
- package/server/services/workshop/agents/adapters/omp-rpc-client/api.ts +111 -0
- package/server/services/workshop/agents/adapters/omp-rpc-client/contracts.ts +22 -0
- package/server/services/workshop/agents/adapters/omp-rpc-client/facade.ts +7 -0
- package/server/services/workshop/agents/adapters/omp-rpc-client/frames.ts +111 -0
- package/server/services/workshop/agents/adapters/omp-rpc-client/helpers.ts +38 -0
- package/server/services/workshop/agents/adapters/omp-rpc-client/index.ts +25 -0
- package/server/services/workshop/agents/adapters/omp-rpc-client/start.ts +70 -0
- package/server/services/workshop/agents/adapters/omp-rpc-client/state.ts +65 -0
- package/server/services/workshop/agents/adapters/omp-rpc-client/stdout.ts +92 -0
- package/server/services/workshop/agents/adapters/omp-rpc-client/types.ts +115 -0
- package/server/services/workshop/agents/adapters/omp-rpc-client/usage.ts +47 -0
- package/server/services/workshop/agents/agent-interface.ts +52 -4
- package/server/services/workshop/agents/base-agent.ts +36 -8
- package/server/services/workshop/agents/claude-agent.ts +5 -0
- package/server/services/workshop/agents/codex-agent/client.ts +170 -0
- package/server/services/workshop/agents/codex-agent/core.ts +119 -0
- package/server/services/workshop/agents/codex-agent/facade.ts +8 -0
- package/server/services/workshop/agents/codex-agent/helpers.ts +13 -0
- package/server/services/workshop/agents/codex-agent/hitl.ts +138 -0
- package/server/services/workshop/agents/codex-agent/index.ts +14 -0
- package/server/services/workshop/agents/codex-agent/turn.ts +367 -0
- package/server/services/workshop/agents/codex-agent/types.ts +42 -0
- package/server/services/workshop/agents/dsh-agent.ts +5 -0
- package/server/services/workshop/agents/harness-availability.ts +127 -127
- package/server/services/workshop/agents/harness-terminal/api.ts +197 -0
- package/server/services/workshop/agents/harness-terminal/index.ts +17 -0
- package/server/services/workshop/agents/harness-terminal/io.ts +120 -0
- package/server/services/workshop/agents/harness-terminal/park.ts +55 -0
- package/server/services/workshop/agents/harness-terminal/sanitize.ts +98 -0
- package/server/services/workshop/agents/harness-terminal/session.ts +124 -0
- package/server/services/workshop/agents/harness-terminal/shared.ts +74 -0
- package/server/services/workshop/agents/hermes-agent.ts +5 -0
- package/server/services/workshop/agents/hitl-capabilities.ts +312 -0
- package/server/services/workshop/agents/hitl-decision/answers.ts +27 -0
- package/server/services/workshop/agents/hitl-decision/decide.ts +268 -0
- package/server/services/workshop/agents/hitl-decision/dispatcher.ts +81 -0
- package/server/services/workshop/agents/hitl-decision/index.ts +24 -0
- package/server/services/workshop/agents/hitl-decision/payload.ts +45 -0
- package/server/services/workshop/agents/hitl-decision/reconcile.ts +70 -0
- package/server/services/workshop/agents/hitl-decision/shared.ts +106 -0
- package/server/services/workshop/agents/hitl-decision/visibility.ts +94 -0
- package/server/services/workshop/agents/hitl-registry.ts +403 -7
- package/server/services/workshop/agents/host-tool-bridge/catalog.ts +78 -0
- package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +167 -0
- package/server/services/workshop/agents/host-tool-bridge/index.ts +15 -0
- package/server/services/workshop/agents/host-tool-bridge/session.ts +22 -0
- package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +64 -0
- package/server/services/workshop/agents/host-tool-bridge/tools/memory.ts +44 -0
- package/server/services/workshop/agents/host-tool-bridge/tools/messaging.ts +182 -0
- package/server/services/workshop/agents/host-tool-bridge/tools/progress.ts +84 -0
- package/server/services/workshop/agents/host-tool-bridge/tools/tasks.ts +120 -0
- package/server/services/workshop/agents/host-tool-bridge/tools/team.ts +70 -0
- package/server/services/workshop/agents/host-tool-bridge/types.ts +31 -0
- package/server/services/workshop/agents/industrial/aml-dataset-tools.ts +276 -0
- package/server/services/workshop/agents/industrial/aml-job-tools.ts +363 -0
- package/server/services/workshop/agents/industrial/daq-tools.ts +251 -0
- package/server/services/workshop/agents/industrial/dcw-judge-tools.ts +153 -0
- package/server/services/workshop/agents/industrial/dcw-tools.ts +213 -0
- package/server/services/workshop/agents/industrial/index.ts +24 -0
- package/server/services/workshop/agents/industrial/ops-tools.ts +382 -0
- package/server/services/workshop/agents/industrial/param-tools.ts +172 -0
- package/server/services/workshop/agents/industrial/twin-tools.ts +250 -0
- package/server/services/workshop/agents/mock-agent.ts +136 -12
- package/server/services/workshop/agents/omp-agent/client.ts +116 -0
- package/server/services/workshop/agents/omp-agent/context-governance.ts +204 -0
- package/server/services/workshop/agents/omp-agent/core.ts +146 -0
- package/server/services/workshop/agents/omp-agent/event-mapping.ts +142 -0
- package/server/services/workshop/agents/omp-agent/facade.ts +8 -0
- package/server/services/workshop/agents/omp-agent/helpers.ts +37 -0
- package/server/services/workshop/agents/omp-agent/index.ts +16 -0
- package/server/services/workshop/agents/omp-agent/lifecycle.ts +80 -0
- package/server/services/workshop/agents/omp-agent/tools-steer.ts +487 -0
- package/server/services/workshop/agents/omp-agent/types.ts +45 -0
- package/server/services/workshop/agents/opencode-agent/core.ts +77 -0
- package/server/services/workshop/agents/opencode-agent/engine-agnostic.ts +274 -0
- package/server/services/workshop/agents/opencode-agent/facade.ts +8 -0
- package/server/services/workshop/agents/opencode-agent/helpers.ts +29 -0
- package/server/services/workshop/agents/opencode-agent/hitl.ts +113 -0
- package/server/services/workshop/agents/opencode-agent/index.ts +16 -0
- package/server/services/workshop/agents/opencode-agent/lifecycle.ts +44 -0
- package/server/services/workshop/agents/opencode-agent/server.ts +244 -0
- package/server/services/workshop/agents/opencode-agent/turn.ts +278 -0
- package/server/services/workshop/agents/opencode-agent/types.ts +54 -0
- package/server/services/workshop/agents/prompt-builder.ts +16 -6
- package/server/services/workshop/agents/qwen-agent.ts +6 -2
- package/server/services/workshop/agents/registry.ts +32 -2
- package/server/services/workshop/aml/job-orchestrator/broadcast.ts +37 -0
- package/server/services/workshop/aml/job-orchestrator/control.ts +94 -0
- package/server/services/workshop/aml/job-orchestrator/failure.ts +77 -0
- package/server/services/workshop/aml/job-orchestrator/index.ts +22 -0
- package/server/services/workshop/aml/job-orchestrator/process.ts +100 -0
- package/server/services/workshop/aml/job-orchestrator/shared.ts +51 -0
- package/server/services/workshop/aml/job-orchestrator/stages.ts +96 -0
- package/server/services/workshop/aml/job-orchestrator/start-job.ts +140 -0
- package/server/services/workshop/aml/job-orchestrator/status.ts +20 -0
- package/server/services/workshop/aml/job-orchestrator/submit.ts +120 -0
- package/server/services/workshop/aml/job-orchestrator/tick.ts +37 -0
- package/server/services/workshop/aml/python/__pycache__/amlkit.cpython-312.pyc +0 -0
- package/server/services/workshop/aml/python/amlkit.py +185 -120
- package/server/services/workshop/aml/python/requirements.txt +9 -7
- package/server/services/workshop/aml/python/train-hybrid-example.py +87 -0
- package/server/services/workshop/aml/twin/acceptance.ts +68 -0
- package/server/services/workshop/aml/twin/calibration-scheduler.ts +48 -0
- package/server/services/workshop/aml/twin/channel-profile.ts +43 -0
- package/server/services/workshop/aml/twin/contracts.ts +215 -0
- package/server/services/workshop/aml/twin/physics-runtime.ts +165 -0
- package/server/services/workshop/aml/twin/repo.ts +31 -0
- package/server/services/workshop/aml/twin/snapshot-service.ts +81 -0
- package/server/services/workshop/aml/twin/trial-service.ts +89 -0
- package/server/services/workshop/aml/twin/uq-ood.ts +66 -0
- package/server/services/workshop/daq/daq-controller/contracts.ts +39 -0
- package/server/services/workshop/daq/daq-controller/crud.ts +202 -0
- package/server/services/workshop/daq/daq-controller/driver-probe.ts +64 -0
- package/server/services/workshop/daq/daq-controller/facade.ts +28 -0
- package/server/services/workshop/daq/daq-controller/frames.ts +137 -0
- package/server/services/workshop/daq/daq-controller/helpers.ts +52 -0
- package/server/services/workshop/daq/daq-controller/index.ts +22 -0
- package/server/services/workshop/daq/daq-controller/ingest.ts +189 -0
- package/server/services/workshop/daq/daq-controller/runtime-control.ts +72 -0
- package/server/services/workshop/daq/daq-controller/state.ts +194 -0
- package/server/services/workshop/daq/daq-controller/sweep-alarms.ts +164 -0
- package/server/services/workshop/daq/daq-controller/tsdb-twin.ts +138 -0
- package/server/services/workshop/daq/daq-controller/types.ts +68 -0
- package/server/services/workshop/daq/daq-controller/views.ts +84 -0
- package/server/services/workshop/daq/drivers/http.ts +95 -0
- package/server/services/workshop/daq/drivers/index.ts +29 -0
- package/server/services/workshop/daq/drivers/mock.ts +130 -0
- package/server/services/workshop/daq/drivers/modbus-rtu.ts +67 -0
- package/server/services/workshop/daq/drivers/modbus-tcp.ts +307 -0
- package/server/services/workshop/daq/drivers/mqtt.ts +182 -0
- package/server/services/workshop/daq/drivers/opcua.ts +227 -0
- package/server/services/workshop/daq/drivers/registry.ts +144 -0
- package/server/services/workshop/daq/drivers/s7-stub.ts +29 -0
- package/server/services/workshop/daq/drivers/shared.ts +60 -0
- package/server/services/workshop/db/channel-member.repo.ts +122 -0
- package/server/services/workshop/db/channel.repo.ts +93 -8
- package/server/services/workshop/db/chat-message.repo.ts +233 -0
- package/server/services/workshop/db/database/index.ts +18 -0
- package/server/services/workshop/db/database/json.ts +14 -0
- package/server/services/workshop/db/database/migrations.ts +367 -0
- package/server/services/workshop/db/database/open.ts +76 -0
- package/server/services/workshop/db/database/rows.ts +374 -0
- package/server/services/workshop/db/database/schema.ts +651 -0
- package/server/services/workshop/db/database/seed-data.ts +60 -0
- package/server/services/workshop/db/database/seed.ts +145 -0
- package/server/services/workshop/db/hitl-request.repo.ts +221 -0
- package/server/services/workshop/db/notification.repo.ts +199 -0
- package/server/services/workshop/db/outbox.repo.ts +127 -0
- package/server/services/workshop/db/scheduled-task.repo.ts +235 -0
- package/server/services/workshop/db/schema.sql +185 -0
- package/server/services/workshop/db/task.repo.ts +185 -69
- package/server/services/workshop/db/transaction.ts +72 -0
- package/server/services/workshop/dcw/dcw-controller/actuation.ts +127 -0
- package/server/services/workshop/dcw/dcw-controller/bindings.ts +83 -0
- package/server/services/workshop/dcw/dcw-controller/contracts.ts +16 -0
- package/server/services/workshop/dcw/dcw-controller/control.ts +78 -0
- package/server/services/workshop/dcw/dcw-controller/crud.ts +152 -0
- package/server/services/workshop/dcw/dcw-controller/facade.ts +19 -0
- package/server/services/workshop/dcw/dcw-controller/helpers.ts +57 -0
- package/server/services/workshop/dcw/dcw-controller/index.ts +22 -0
- package/server/services/workshop/dcw/dcw-controller/lines.ts +213 -0
- package/server/services/workshop/dcw/dcw-controller/params.ts +97 -0
- package/server/services/workshop/dcw/dcw-controller/products.ts +103 -0
- package/server/services/workshop/dcw/dcw-controller/recipes.ts +137 -0
- package/server/services/workshop/dcw/dcw-controller/state.ts +66 -0
- package/server/services/workshop/dcw/dcw-controller/types.ts +57 -0
- package/server/services/workshop/dcw/dcw-controller/write.ts +147 -0
- package/server/services/workshop/dcw/dcw-node.ts +8 -0
- package/server/services/workshop/dcw/drivers/http.ts +66 -0
- package/server/services/workshop/dcw/drivers/index.ts +26 -0
- package/server/services/workshop/dcw/drivers/mock.ts +44 -0
- package/server/services/workshop/dcw/drivers/modbus-rtu.ts +93 -0
- package/server/services/workshop/dcw/drivers/modbus.ts +139 -0
- package/server/services/workshop/dcw/drivers/mqtt.ts +108 -0
- package/server/services/workshop/dcw/drivers/opcua.ts +110 -0
- package/server/services/workshop/dcw/drivers/registry.ts +118 -0
- package/server/services/workshop/dcw/drivers/shared.ts +113 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/contracts.ts +26 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/facade.ts +13 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/helpers.ts +30 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/index.ts +17 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/internal.ts +33 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/judge.ts +52 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/lock.ts +137 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/rollback.ts +190 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/state.ts +21 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/sweep.ts +77 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/types.ts +3 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/views.ts +214 -0
- package/server/services/workshop/plugins/host/api.mjs +90 -0
- package/server/services/workshop/plugins/host/config.mjs +135 -0
- package/server/services/workshop/plugins/host/index.mjs +23 -0
- package/server/services/workshop/plugins/host/init.mjs +101 -0
- package/server/services/workshop/plugins/host/load.mjs +321 -0
- package/server/services/workshop/plugins/host/reload.mjs +94 -0
- package/server/services/workshop/plugins/host/rollback.mjs +72 -0
- package/server/services/workshop/plugins/host/services.mjs +58 -0
- package/server/services/workshop/plugins/host/state.mjs +54 -0
- package/server/services/workshop/plugins/host/toggle.mjs +64 -0
- package/server/services/workshop/plugins/host.mjs +6 -890
- package/server/services/workshop/runtime/agent-runtime/contracts.ts +25 -0
- package/server/services/workshop/runtime/agent-runtime/facade.ts +7 -0
- package/server/services/workshop/runtime/agent-runtime/helpers.ts +18 -0
- package/server/services/workshop/runtime/agent-runtime/index.ts +19 -0
- package/server/services/workshop/runtime/agent-runtime/lifecycle.ts +119 -0
- package/server/services/workshop/runtime/agent-runtime/message.ts +409 -0
- package/server/services/workshop/runtime/agent-runtime/state.ts +371 -0
- package/server/services/workshop/runtime/agent-runtime/supervise.ts +188 -0
- package/server/services/workshop/runtime/agent-runtime/types.ts +186 -0
- package/server/services/workshop/runtime/channel-runtime.ts +7 -0
- package/server/services/workshop/runtime/chat-mention.ts +164 -0
- package/server/services/workshop/runtime/chat-projection.ts +246 -0
- package/server/services/workshop/runtime/execution-mode.ts +11 -2
- package/server/services/workshop/runtime/manager/a2a.ts +283 -0
- package/server/services/workshop/runtime/manager/access.ts +483 -0
- package/server/services/workshop/runtime/manager/admin-agents.ts +268 -0
- package/server/services/workshop/runtime/manager/admin-channel.ts +276 -0
- package/server/services/workshop/runtime/manager/bus.ts +182 -0
- package/server/services/workshop/runtime/manager/channel-templates.ts +171 -0
- package/server/services/workshop/runtime/manager/chat-reply.ts +181 -0
- package/server/services/workshop/runtime/manager/chat.ts +384 -0
- package/server/services/workshop/runtime/manager/contracts.ts +210 -0
- package/server/services/workshop/runtime/manager/facade.ts +24 -0
- package/server/services/workshop/runtime/manager/helpers.ts +119 -0
- package/server/services/workshop/runtime/manager/host-tools.ts +249 -0
- package/server/services/workshop/runtime/manager/index.ts +42 -0
- package/server/services/workshop/runtime/manager/internal.ts +73 -0
- package/server/services/workshop/runtime/manager/lead-team.ts +161 -0
- package/server/services/workshop/runtime/manager/notifications.ts +108 -0
- package/server/services/workshop/runtime/manager/runtime-observe.ts +300 -0
- package/server/services/workshop/runtime/manager/runtime-wiring.ts +307 -0
- package/server/services/workshop/runtime/manager/schedules.ts +302 -0
- package/server/services/workshop/runtime/manager/state.ts +644 -0
- package/server/services/workshop/runtime/manager/tasks.ts +518 -0
- package/server/services/workshop/runtime/manager/teams.ts +148 -0
- package/server/services/workshop/runtime/manager/types.ts +245 -0
- package/server/services/workshop/runtime/manager/workspace.ts +136 -0
- package/server/services/workshop/runtime/memory/contracts.ts +18 -0
- package/server/services/workshop/runtime/memory/facade.ts +10 -0
- package/server/services/workshop/runtime/memory/governance.ts +184 -0
- package/server/services/workshop/runtime/memory/helpers.ts +196 -0
- package/server/services/workshop/runtime/memory/index.ts +27 -0
- package/server/services/workshop/runtime/memory/recall.ts +216 -0
- package/server/services/workshop/runtime/memory/score.ts +33 -0
- package/server/services/workshop/runtime/memory/state.ts +40 -0
- package/server/services/workshop/runtime/memory/types.ts +44 -0
- package/server/services/workshop/runtime/memory/write.ts +93 -0
- package/server/services/workshop/runtime/permission-scope.ts +81 -0
- package/server/services/workshop/runtime/schedule-runtime.ts +320 -0
- package/server/services/workshop/runtime/scheduler-loop/contracts.ts +29 -0
- package/server/services/workshop/runtime/scheduler-loop/execute.ts +295 -0
- package/server/services/workshop/runtime/scheduler-loop/facade.ts +7 -0
- package/server/services/workshop/runtime/scheduler-loop/helpers.ts +14 -0
- package/server/services/workshop/runtime/scheduler-loop/index.ts +16 -0
- package/server/services/workshop/runtime/scheduler-loop/rules.ts +131 -0
- package/server/services/workshop/runtime/scheduler-loop/snapshot.ts +99 -0
- package/server/services/workshop/runtime/scheduler-loop/state.ts +150 -0
- package/server/services/workshop/runtime/scheduler-loop/tick.ts +157 -0
- package/server/services/workshop/runtime/scheduler-loop/types.ts +50 -0
- package/server/services/workshop/runtime/task-engine/contracts.ts +16 -0
- package/server/services/workshop/runtime/task-engine/create.ts +145 -0
- package/server/services/workshop/runtime/task-engine/facade.ts +7 -0
- package/server/services/workshop/runtime/task-engine/helpers.ts +87 -0
- package/server/services/workshop/runtime/task-engine/index.ts +15 -0
- package/server/services/workshop/runtime/task-engine/lease.ts +79 -0
- package/server/services/workshop/runtime/task-engine/lifecycle.ts +308 -0
- package/server/services/workshop/runtime/task-engine/policy.ts +113 -0
- package/server/services/workshop/runtime/task-engine/transition.ts +146 -0
- package/server/services/workshop/runtime/task-engine/types.ts +3 -0
- package/server/services/workshop/runtime/task-engine/update.ts +116 -0
- package/server/services/workshop/runtime/task-engine/views.ts +169 -0
- package/server/services/workshop/runtime/user-notification-hub.ts +192 -0
- package/server/services/workshop/settings.ts +32 -0
- package/server/services/workshop/types/task.ts +85 -0
- package/server/utils/errors.ts +2 -0
- package/server/utils/mojibake-guard.ts +29 -0
- package/shared/config/schema.json +12 -0
- package/shared/dcw-protocol/catalog.ts +203 -0
- package/shared/dcw-protocol/closed-loop.ts +137 -0
- package/shared/dcw-protocol/index.ts +19 -0
- package/shared/dcw-protocol/line.ts +131 -0
- package/shared/dcw-protocol/recipe.ts +301 -0
- package/shared/workshop-protocol.ts +327 -5
- package/tui/aw-tui.mjs +27 -6
- package/tui/lib/pickers.mjs +21 -2
- package/.output/public/_nuxt/4sIEbgcl.js +0 -42
- package/.output/public/_nuxt/B7gZokg82.js +0 -209
- package/.output/public/_nuxt/B8uy9iRW.js +0 -1
- package/.output/public/_nuxt/BC9wjTJK2.js +0 -4
- package/.output/public/_nuxt/BCGafdXT.js +0 -2
- package/.output/public/_nuxt/BDmh31hl.js +0 -1
- package/.output/public/_nuxt/BFjGV-RV2.js +0 -4108
- package/.output/public/_nuxt/BGTYYQH-.js +0 -1
- package/.output/public/_nuxt/BHA40aHa.js +0 -1
- package/.output/public/_nuxt/BJHKLJJU.js +0 -1
- package/.output/public/_nuxt/BN6iuJEg2.js +0 -1
- package/.output/public/_nuxt/BU83-NnX.js +0 -106
- package/.output/public/_nuxt/BUmHEJ77.js +0 -2
- package/.output/public/_nuxt/BY7YrV_D.js +0 -1
- package/.output/public/_nuxt/BYhEUx8t.js +0 -17
- package/.output/public/_nuxt/BneN7fbu.js +0 -75
- package/.output/public/_nuxt/Bqcgz95s.js +0 -18
- package/.output/public/_nuxt/C3J6FYKa.js +0 -1
- package/.output/public/_nuxt/C3gwHTz0.js +0 -1
- package/.output/public/_nuxt/C4DWUZ6d2.js +0 -1
- package/.output/public/_nuxt/C7UlqPeD.js +0 -1
- package/.output/public/_nuxt/CClOy-Hz2.js +0 -1
- package/.output/public/_nuxt/CFxtLwjp.js +0 -1
- package/.output/public/_nuxt/CS50LB_l.js +0 -1
- package/.output/public/_nuxt/CSkxz2NX.js +0 -3
- package/.output/public/_nuxt/CTmDn-YP.js +0 -1
- package/.output/public/_nuxt/CWoJjWmZ.js +0 -1
- package/.output/public/_nuxt/CYWVXZTS2.js +0 -7
- package/.output/public/_nuxt/C__m4EhR.js +0 -1
- package/.output/public/_nuxt/CoNpEq5X.js +0 -1
- package/.output/public/_nuxt/Crod5z2f.js +0 -1
- package/.output/public/_nuxt/Cs8pVeVG.js +0 -1
- package/.output/public/_nuxt/CssgYAAL2.js +0 -1
- package/.output/public/_nuxt/CzlMDL5H.js +0 -13
- package/.output/public/_nuxt/D0ZBQrN_2.js +0 -1
- package/.output/public/_nuxt/D6uzXueg.js +0 -2
- package/.output/public/_nuxt/D98NH8kG.js +0 -1
- package/.output/public/_nuxt/D9Oidm5I.js +0 -1
- package/.output/public/_nuxt/DBHNsT1Y.js +0 -23
- package/.output/public/_nuxt/DDgJcSET.js +0 -19
- package/.output/public/_nuxt/DGIuvyRN2.js +0 -1
- package/.output/public/_nuxt/DGj-WEBg.js +0 -1
- package/.output/public/_nuxt/DHFrCUxA2.js +0 -13
- package/.output/public/_nuxt/DIaZ2PTo2.js +0 -1
- package/.output/public/_nuxt/DKySmNPI.js +0 -14
- package/.output/public/_nuxt/DPnwL14Y.js +0 -1
- package/.output/public/_nuxt/DR12_WCA.js +0 -3
- package/.output/public/_nuxt/DTFCy6h-.js +0 -1
- package/.output/public/_nuxt/DYr1VMiQ.js +0 -6
- package/.output/public/_nuxt/DZtm4l-P2.js +0 -1
- package/.output/public/_nuxt/DdD9mCHM.js +0 -1
- package/.output/public/_nuxt/DeyBFhKH2.js +0 -4
- package/.output/public/_nuxt/Di0NY_ht.js +0 -1
- package/.output/public/_nuxt/DkGQ7lnb2.js +0 -1
- package/.output/public/_nuxt/DtYHUi5Z.js +0 -1
- package/.output/public/_nuxt/Dz_Q3Lpw2.js +0 -1
- package/.output/public/_nuxt/DzbFpZRk.js +0 -3
- package/.output/public/_nuxt/EHlEMRii.js +0 -1
- package/.output/public/_nuxt/Eke1fs-U.js +0 -1
- package/.output/public/_nuxt/H0BcqZtT.js +0 -9
- package/.output/public/_nuxt/HSYEkkce.js +0 -1
- package/.output/public/_nuxt/IREZ1eC2.js +0 -1
- package/.output/public/_nuxt/J9oU00D1.js +0 -1
- package/.output/public/_nuxt/JCoYF4IJ.js +0 -31
- package/.output/public/_nuxt/JTLM-kqr2.js +0 -1
- package/.output/public/_nuxt/KZQX7xoM.js +0 -3
- package/.output/public/_nuxt/OmpTerminalPanel.BxR5-lvi.css +0 -1
- package/.output/public/_nuxt/RYFtK4qZ2.js +0 -1
- package/.output/public/_nuxt/SSyAPaHc.js +0 -1
- package/.output/public/_nuxt/TownView.li4EMQxK.css +0 -1
- package/.output/public/_nuxt/VdLk4jLE2.js +0 -1
- package/.output/public/_nuxt/YnQxK3eG.js +0 -1
- package/.output/public/_nuxt/_id_.BhsXoEuk.css +0 -1
- package/.output/public/_nuxt/_id_.DQyj-WKN.css +0 -1
- package/.output/public/_nuxt/_wsId_.CTx-BlfF.css +0 -1
- package/.output/public/_nuxt/aLLjF2K-2.js +0 -1
- package/.output/public/_nuxt/aShsv_rG.js +0 -19
- package/.output/public/_nuxt/aWWIh8YL.js +0 -24
- package/.output/public/_nuxt/aesgXKSr.js +0 -4
- package/.output/public/_nuxt/agents.B21nUEUX.css +0 -1
- package/.output/public/_nuxt/aml.ekTjxFkf.css +0 -1
- package/.output/public/_nuxt/builds/meta/b5506ef0-f48e-4f14-a6c0-d65e505d0b09.json +0 -1
- package/.output/public/_nuxt/ca4TJ3Op.js +0 -1
- package/.output/public/_nuxt/daq.BdVmoIfe.css +0 -1
- package/.output/public/_nuxt/dcw.DCgyzpWV.css +0 -1
- package/.output/public/_nuxt/default.Bh3L2HU8.css +0 -1
- package/.output/public/_nuxt/entry.bdm0tv6M.css +0 -1
- package/.output/public/_nuxt/jZsY8yYz.js +0 -1
- package/.output/public/_nuxt/lHAxdSsj.js +0 -1
- package/.output/public/_nuxt/logs.BpKzmKsh.css +0 -1
- package/.output/public/_nuxt/monitor.D9pe7qN6.css +0 -1
- package/.output/public/_nuxt/pages.j9rzRocr.css +0 -1
- package/.output/public/_nuxt/pdk8jLGT.js +0 -1
- package/.output/public/_nuxt/permissions.DwTVlFe6.css +0 -1
- package/.output/public/_nuxt/plugins.DhiZbHU8.css +0 -1
- package/.output/public/_nuxt/settings.BRx9rIDg.css +0 -1
- package/.output/public/_nuxt/teams.BLlOPB_Z.css +0 -1
- package/.output/public/_nuxt/tokens.De8xzszn.css +0 -1
- package/.output/public/_nuxt/town.BLrD9-WH.css +0 -1
- package/.output/public/_nuxt/users.DLgZ1D0h.css +0 -1
- package/.output/public/_nuxt/vRTjoWqd.js +0 -1
- package/.output/public/_nuxt/workshop.D1jFNkrn.css +0 -1
- package/.output/public/_nuxt/xh3_vYcu.js +0 -1
- package/.output/public/_nuxt/zq5t1vyX.js +0 -1
- package/.output/server/chunks/build/Checkbox-eax2M3o-.mjs +0 -207
- package/.output/server/chunks/build/Checkbox-eax2M3o-.mjs.map +0 -1
- package/.output/server/chunks/build/OmpTerminalPanel-CVvxpsF7.mjs +0 -915
- package/.output/server/chunks/build/OmpTerminalPanel-CVvxpsF7.mjs.map +0 -1
- package/.output/server/chunks/build/PluginSlot-CcR4Ys3T.mjs +0 -400
- package/.output/server/chunks/build/PluginSlot-CcR4Ys3T.mjs.map +0 -1
- package/.output/server/chunks/build/TownView-CJ6IsDCc.mjs +0 -2791
- package/.output/server/chunks/build/TownView-CJ6IsDCc.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-CVD_H0ir.mjs +0 -804
- package/.output/server/chunks/build/_id_-CVD_H0ir.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-CtxMb3qp.mjs +0 -381
- package/.output/server/chunks/build/_id_-CtxMb3qp.mjs.map +0 -1
- package/.output/server/chunks/build/_wsId_-DpY3T-md.mjs +0 -10136
- package/.output/server/chunks/build/_wsId_-DpY3T-md.mjs.map +0 -1
- package/.output/server/chunks/build/agents-DsCkuXDV.mjs +0 -1114
- package/.output/server/chunks/build/agents-DsCkuXDV.mjs.map +0 -1
- package/.output/server/chunks/build/aml-CT0xKGKI.mjs +0 -605
- package/.output/server/chunks/build/aml-CT0xKGKI.mjs.map +0 -1
- package/.output/server/chunks/build/api-error-dul30BYQ.mjs +0 -47
- package/.output/server/chunks/build/api-error-dul30BYQ.mjs.map +0 -1
- package/.output/server/chunks/build/apiClient-BwnfOQU8.mjs +0 -81
- package/.output/server/chunks/build/apiClient-BwnfOQU8.mjs.map +0 -1
- package/.output/server/chunks/build/button-DEcZFcqN.mjs +0 -1938
- package/.output/server/chunks/build/button-DEcZFcqN.mjs.map +0 -1
- package/.output/server/chunks/build/card-Dipvaykh.mjs +0 -955
- package/.output/server/chunks/build/card-Dipvaykh.mjs.map +0 -1
- package/.output/server/chunks/build/channel-templates-Dla9FbYa.mjs +0 -847
- package/.output/server/chunks/build/channel-templates-Dla9FbYa.mjs.map +0 -1
- package/.output/server/chunks/build/checkbox-8fB-wI-T.mjs +0 -439
- package/.output/server/chunks/build/checkbox-8fB-wI-T.mjs.map +0 -1
- package/.output/server/chunks/build/client-only-D5BzSQc6.mjs +0 -43
- package/.output/server/chunks/build/client-only-D5BzSQc6.mjs.map +0 -1
- package/.output/server/chunks/build/daq-DWWSKGAV.mjs +0 -1059
- package/.output/server/chunks/build/daq-DWWSKGAV.mjs.map +0 -1
- package/.output/server/chunks/build/dcw-CT8k17_E.mjs +0 -250
- package/.output/server/chunks/build/dcw-CT8k17_E.mjs.map +0 -1
- package/.output/server/chunks/build/default-D3525UFX.mjs +0 -1487
- package/.output/server/chunks/build/default-D3525UFX.mjs.map +0 -1
- package/.output/server/chunks/build/drawer-Cmh90erI.mjs +0 -836
- package/.output/server/chunks/build/drawer-Cmh90erI.mjs.map +0 -1
- package/.output/server/chunks/build/dropdown-CGQ0KAzA.mjs +0 -14
- package/.output/server/chunks/build/dropdown-CGQ0KAzA.mjs.map +0 -1
- package/.output/server/chunks/build/dropdown-vhn1NPFs.mjs +0 -558
- package/.output/server/chunks/build/dropdown-vhn1NPFs.mjs.map +0 -1
- package/.output/server/chunks/build/initDefaultProps-DIbWwP4R.mjs +0 -21
- package/.output/server/chunks/build/initDefaultProps-DIbWwP4R.mjs.map +0 -1
- package/.output/server/chunks/build/input-number-DzpyYB99.mjs +0 -1521
- package/.output/server/chunks/build/input-number-DzpyYB99.mjs.map +0 -1
- package/.output/server/chunks/build/input-sf_BT6o6.mjs +0 -2617
- package/.output/server/chunks/build/input-sf_BT6o6.mjs.map +0 -1
- package/.output/server/chunks/build/logs--dByNyhw.mjs +0 -198
- package/.output/server/chunks/build/logs--dByNyhw.mjs.map +0 -1
- package/.output/server/chunks/build/menu-WCrlpYVh.mjs +0 -1950
- package/.output/server/chunks/build/menu-WCrlpYVh.mjs.map +0 -1
- package/.output/server/chunks/build/modal-yvUquPj5.mjs +0 -1272
- package/.output/server/chunks/build/modal-yvUquPj5.mjs.map +0 -1
- package/.output/server/chunks/build/monitor-Dh2Kvaq5.mjs +0 -2212
- package/.output/server/chunks/build/monitor-Dh2Kvaq5.mjs.map +0 -1
- package/.output/server/chunks/build/pages-BHcSBM2D.mjs +0 -518
- package/.output/server/chunks/build/pages-BHcSBM2D.mjs.map +0 -1
- package/.output/server/chunks/build/permissions-68SsNjex.mjs +0 -629
- package/.output/server/chunks/build/permissions-68SsNjex.mjs.map +0 -1
- package/.output/server/chunks/build/plugins-BNgIi61W.mjs +0 -246
- package/.output/server/chunks/build/plugins-BNgIi61W.mjs.map +0 -1
- package/.output/server/chunks/build/popconfirm-CRaHcz5O.mjs +0 -342
- package/.output/server/chunks/build/popconfirm-CRaHcz5O.mjs.map +0 -1
- package/.output/server/chunks/build/segmented-3TrWo0lS.mjs +0 -5047
- package/.output/server/chunks/build/segmented-3TrWo0lS.mjs.map +0 -1
- package/.output/server/chunks/build/select-D-CeE5vY.mjs +0 -3923
- package/.output/server/chunks/build/select-D-CeE5vY.mjs.map +0 -1
- package/.output/server/chunks/build/settings-ipYBDWdn.mjs +0 -1175
- package/.output/server/chunks/build/settings-ipYBDWdn.mjs.map +0 -1
- package/.output/server/chunks/build/space-CCBYAkXt.mjs +0 -197
- package/.output/server/chunks/build/space-CCBYAkXt.mjs.map +0 -1
- package/.output/server/chunks/build/spin-HVY81X_L.mjs +0 -358
- package/.output/server/chunks/build/spin-HVY81X_L.mjs.map +0 -1
- package/.output/server/chunks/build/switch-CelRXpcy.mjs +0 -377
- package/.output/server/chunks/build/switch-CelRXpcy.mjs.map +0 -1
- package/.output/server/chunks/build/table-BjSWwmic.mjs +0 -8883
- package/.output/server/chunks/build/table-BjSWwmic.mjs.map +0 -1
- package/.output/server/chunks/build/tabs-BM3tAh_J.mjs +0 -1925
- package/.output/server/chunks/build/tabs-BM3tAh_J.mjs.map +0 -1
- package/.output/server/chunks/build/tag-DNE9vXc0.mjs +0 -1029
- package/.output/server/chunks/build/tag-DNE9vXc0.mjs.map +0 -1
- package/.output/server/chunks/build/teams-5lx-CwFa.mjs +0 -1218
- package/.output/server/chunks/build/teams-5lx-CwFa.mjs.map +0 -1
- package/.output/server/chunks/build/tokens-q-IDT8Io.mjs +0 -908
- package/.output/server/chunks/build/tokens-q-IDT8Io.mjs.map +0 -1
- package/.output/server/chunks/build/town-BUqRobze.mjs +0 -52
- package/.output/server/chunks/build/town-BUqRobze.mjs.map +0 -1
- package/.output/server/chunks/build/town-QJWB5wng.mjs +0 -125
- package/.output/server/chunks/build/town-QJWB5wng.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqStream-DfCFpb3p.mjs +0 -395
- package/.output/server/chunks/build/useDaqStream-DfCFpb3p.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwStream-UPiX-3iO.mjs +0 -435
- package/.output/server/chunks/build/useDcwStream-UPiX-3iO.mjs.map +0 -1
- package/.output/server/chunks/build/useDeviceTwins-Yko6nNPF.mjs +0 -128
- package/.output/server/chunks/build/useDeviceTwins-Yko6nNPF.mjs.map +0 -1
- package/.output/server/chunks/build/useOpsLog-CO_VWh7t.mjs +0 -137
- package/.output/server/chunks/build/useOpsLog-CO_VWh7t.mjs.map +0 -1
- package/.output/server/chunks/build/useWorkshopApi-NyjL0L3j.mjs +0 -90
- package/.output/server/chunks/build/useWorkshopApi-NyjL0L3j.mjs.map +0 -1
- package/.output/server/chunks/build/useWorkshopWs-C_I7q9As.mjs +0 -1319
- package/.output/server/chunks/build/useWorkshopWs-C_I7q9As.mjs.map +0 -1
- package/.output/server/chunks/build/users-Cfd5-l2-.mjs +0 -561
- package/.output/server/chunks/build/users-Cfd5-l2-.mjs.map +0 -1
- package/.output/server/chunks/build/workshop-BIlCj_ZP.mjs +0 -931
- package/.output/server/chunks/build/workshop-BIlCj_ZP.mjs.map +0 -1
- package/.output/server/chunks/build/workspaces-Bgz5Ekwp.mjs +0 -139
- package/.output/server/chunks/build/workspaces-Bgz5Ekwp.mjs.map +0 -1
- package/scripts/test-agent-brain.ts +0 -135
- package/scripts/test-game-session.ts +0 -160
- package/scripts/test-protocol.ts +0 -156
- package/scripts/verify-game.mjs +0 -477
- package/server/api/workshop/ws.ts +0 -763
- package/server/services/system-config.ts +0 -629
- package/server/services/workshop/agents/adapters/omp-rpc-client.ts +0 -604
- package/server/services/workshop/agents/codex-agent.ts +0 -743
- package/server/services/workshop/agents/harness-terminal.ts +0 -625
- package/server/services/workshop/agents/host-tool-bridge.ts +0 -714
- package/server/services/workshop/agents/industrial-tools.ts +0 -1680
- package/server/services/workshop/agents/omp-agent.ts +0 -1199
- package/server/services/workshop/agents/opencode-agent.ts +0 -960
- package/server/services/workshop/aml/job-orchestrator.ts +0 -639
- package/server/services/workshop/daq/daq-controller.ts +0 -1284
- package/server/services/workshop/daq/drivers.ts +0 -1196
- package/server/services/workshop/db/database.ts +0 -1044
- package/server/services/workshop/dcw/dcw-controller.ts +0 -1176
- package/server/services/workshop/dcw/drivers.ts +0 -731
- package/server/services/workshop/dcw/recipe-rollback-manager.ts +0 -713
- package/server/services/workshop/runtime/agent-runtime.ts +0 -821
- package/server/services/workshop/runtime/manager.ts +0 -3050
- package/server/services/workshop/runtime/memory.ts +0 -681
- package/server/services/workshop/runtime/scheduler-loop.ts +0 -799
- package/server/services/workshop/runtime/task-engine.ts +0 -574
- package/shared/dcw-protocol.ts +0 -747
- /package/.output/public/_nuxt/{BrIJiJSN.js → BrIJiJSN2.js} +0 -0
- /package/.output/public/_nuxt/{CNs_Ozdc2.js → CNs_Ozdc.js} +0 -0
- /package/.output/public/_nuxt/{DIOBYJe3.js → DIOBYJe32.js} +0 -0
- /package/.output/public/_nuxt/{lO5tpDZ5.js → lO5tpDZ52.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Display as e,Events as t,Input as n,Math as r,Scene as i}from"./BGkumHZ32.js";import{t as a}from"./BBrRELH32.js";import{n as o,t as s}from"./CWKEp1wx2.js";var c={start:0,end:3,frameRate:3,repeat:-1};function l(e,t){let n=n=>{let r=t?.anims?.[n];if(!r){let t=n===`idle`?c.frameRate:n===`work`?8:5;return{key:`${e}-${n}`,start:0,end:c.end,frameRate:t,repeat:-1}}return{key:`${e}-${n}`,start:r.start,end:r.start+(r.count||1)-1,frameRate:r.frameRate??6,repeat:-1}};return{idle:n(`idle`),walk:n(`walk`),work:n(`work`)}}var u=3200,d=2400,f=1760,p=u/2,m=f,h=980,g=560,_=[`wu-worker-0`,`wu-worker-1`,`wu-worker-2`],v=`wu-lead`,y=150,b=96,x=2600,S={info:{bg:1841431,fg:`#ffffff`},artifact:{bg:1841431,fg:`#9ecb7a`},error:{bg:3808540,fg:`#ff9e9e`},system:{bg:1841431,fg:`#c9c4bd`}},C=[16,40,158,178,195,212,235,262];function w(e){if(!e)return 212;let t=0;for(let n of e)t=(t*31+n.charCodeAt(0))%360;return C[t%C.length]}function T(t){return e.Color.HSLToColor(w(t)/360,.52,.6).color}function E(t,n=1){let r=e.Color.HSLToColor(w(t)/360,.52,.6);return`rgba(${r.red},${r.green},${r.blue},${n})`}var D=class extends i{blocks=new Map;agents=new Map;blockDecor=[];mapBg;farLayer;midLayer;scrollFactorFar=.06;scrollFactorMid=.14;cursors;keyW;keyA;keyS;keyD;player;facing=`down`;dirty=!0;dbgBubbles=[];dbgActivity=null;recentActivity=[];agentCount=0;blockCount=0;frameCount=0;fpsAccum=0;bus=new t.EventEmitter;modelsById=new Map;resolveTaskAssignee=null;constructor(e){super(`town`),e&&(this._seed=e)}on(e,t){return this.bus.on(e,t),()=>this.bus.off(e,t)}emit(e,t){this.bus.emit(e,t)}seedEntities(e){this._seed=e}rebuild(e){this.resetAll(),this._seed=e,this.buildBlocks()}focusChannel(e){let t=this.blocks.get(e);t&&(this.player.setPosition(t.centerX,t.centerY+70),this.player.body.reset(t.centerX,t.centerY+70),this.cameras.main.centerOn(t.centerX,t.centerY+70))}_seed=[];preload(){this.load.image(`world-far`,`/assets/game/wuwa/world-far.png`),this.load.image(`world-middle`,`/assets/game/wuwa/world-middle.png`),this.load.image(`world-near`,`/assets/game/wuwa/world-near.png`),this.load.image(`wu-aura`,`/assets/game/wuwa/wu-aura.png`),this.load.image(`wu-ring`,`/assets/game/wuwa/wu-ring.png`),this.load.image(`wu-slash`,`/assets/game/wuwa/wu-slash.png`);let e={frameWidth:48,frameHeight:88};this.load.spritesheet(v,`/assets/game/wuwa/wu-lead.png`,e),this.load.spritesheet(`wu-worker-0`,`/assets/game/wuwa/wu-worker-0.png`,e),this.load.spritesheet(`wu-worker-1`,`/assets/game/wuwa/wu-worker-1.png`,e),this.load.spritesheet(`wu-worker-2`,`/assets/game/wuwa/wu-worker-2.png`,e),this.load.spritesheet(`knight`,`/assets/game/character/knight.png`,e),this.load.spritesheet(`mage`,`/assets/game/character/mage.png`,e),this.load.spritesheet(`bot`,`/assets/game/character/bot.png`,e)}create(){this.mapBg=this.add.image(u/2,d/2,`world-near`).setDisplaySize(u,d).setDepth(-1e3),this.physics.world.setBounds(0,0,u,d),this.scrollFactorFar=.06,this.scrollFactorMid=.14,this.createParallax(),this.createAnimations(),this.viewer=this.physics.add.sprite(u/2,f,v,0),this.viewer.setScale(1.05);let e=this.viewer.body;e.setSize(18,18),e.setOffset(15,66),this.viewer.setCollideWorldBounds(!0),this.viewer.setDepth(this.viewer.y),this.viewer.anims.play(`wu-bob-${v}`,!0),this.playerAura=this.add.image(this.viewer.x,this.viewer.y,`wu-aura`).setTint(16771524).setAlpha(.45).setDepth(this.viewer.y-10).setScale(1.3);let t=this.cameras.main;t.setBounds(0,0,u,d),t.startFollow(this.viewer,!0,.09,.09),t.setRoundPixels(!0),t.setZoom(1),this.input.on(`wheel`,(e,n,i,a)=>{let o=t.zoom+(a<0?.06:-.06);t.setZoom(r.Clamp(o,.7,1.4))}),this.cursors=this.input.keyboard.createCursorKeys(),this.keyW=this.input.keyboard.addKey(n.Keyboard.KeyCodes.W),this.keyA=this.input.keyboard.addKey(n.Keyboard.KeyCodes.A),this.keyS=this.input.keyboard.addKey(n.Keyboard.KeyCodes.S),this.keyD=this.input.keyboard.addKey(n.Keyboard.KeyCodes.D),this.buildBlocks(),this.drawCore();let i=this.blocks.values().next().value;i&&(this.viewer.setPosition(i.centerX,i.centerY+70),this.viewer.body.reset(i.centerX,i.centerY+70),t.centerOn(i.centerX,i.centerY+70)),this.emit(`ready`,!0)}viewer;playerAura;createParallax(){this.cameras.main,this.farLayer=this.add.image(u/2,d/2,`world-far`).setScrollFactor(0).setDepth(-1200),this.midLayer=this.add.image(u/2,d/2,`world-middle`).setScrollFactor(0).setDepth(-1150)}updateParallax(){let e=this.cameras.main,t=e.scrollX+e.width/2-p,n=e.scrollY+e.height/2-m,r=e.zoom;this.farLayer.setPosition(e.width/2-t*this.scrollFactorFar/r,e.height/2-n*this.scrollFactorFar/r),this.midLayer.setPosition(e.width/2-t*this.scrollFactorMid/r,e.height/2-n*this.scrollFactorMid/r),this.farLayer.setScale(Math.max(.6,.6/r)),this.midLayer.setScale(Math.max(.72,.72/r))}buildBlocks(){let e=this._seed??[],t=Math.max(1,e.length),n=h,r=g,i=t<=1?210:Math.min(210,300-t*8);e.forEach((e,a)=>{let o=a===0?-Math.PI/2:-Math.PI/2+a*2*Math.PI/t,s=p+Math.cos(o)*n,c=m+Math.sin(o)*r,l={channelId:e.channelId,name:e.channelName,centerX:Math.round(s),centerY:Math.round(c),radius:i,colorNum:T(e.channelId),rgba:E(e.channelId,.9)};this.blocks.set(e.channelId,l),this.drawBlock(l);for(let t of e.agents)this.ensureAgentSprite({...t,channelId:e.channelId},l.centerX,l.centerY)}),this.blockCount=this.blocks.size,this.agentCount=this.agents.size,this.dirty=!0,this.emit(`blockCount`,this.blockCount),this.emit(`agentCount`,this.agentCount)}drawBlock(e){let{centerX:t,centerY:n,radius:r,colorNum:i}=e,a=this.add.image(t,n,`wu-aura`).setScale(r/56).setTint(i).setAlpha(.3).setDepth(-20),o=this.add.image(t,n,`wu-ring`).setScale(r/128).setTint(i).setAlpha(.55).setDepth(-19);this.tweens.add({targets:o,alpha:{from:.35,to:.6},scale:{from:r/128*.96,to:r/128*1.04},yoyo:!0,repeat:-1,duration:2400,ease:`sine.inout`});let s=this.add.graphics().setDepth(-18);s.lineStyle(1.2,i,.4),s.strokeCircle(t,n,r);let c=this.add.image(t,n+22,`wu-aura`).setScale(r/52).setTint(660496).setAlpha(.22).setDepth(-17);this.blockDecor.push(a,o,s,c),this.drawLandmark(e)}drawLandmark(e){let{centerX:t,centerY:n,radius:r,colorNum:i}=e,a=n-r*.55,o=this.add.ellipse(t,a,r*.5,r*.2,i,.55).setDepth(-16),s=this.add.rectangle(t,a-42,r*.34,88,i,.85).setDepth(a-20).setOrigin(.5,1);s.setStrokeStyle(1.5,i,.6);let c=this.add.ellipse(t,a-84,r*.4,r*.16,16777215,.28).setDepth(a-20);c.setStrokeStyle(1.5,i,.6);let l=this.add.image(t,a-120,`wu-aura`).setScale(.9).setTint(16773327).setAlpha(.5).setDepth(a-20);this.tweens.add({targets:l,alpha:{from:.3,to:.6},scale:{from:.7,to:1.05},yoyo:!0,repeat:-1,duration:1800,ease:`sine.inout`});let u=this.add.text(t,a-128,e.name,{fontFamily:`Geist, PingFang SC, sans-serif`,fontSize:`13px`,fontStyle:`600`,color:`#fff`,padding:{x:10,y:4},backgroundColor:`rgba(18,20,30,0.6)`}).setOrigin(.5).setDepth(a-19),d=this.drawEmblem(t,a-148,i,e.channelId);this.blockDecor.push(o,s,c,l,u,d)}drawEmblem(e,t,n,r){let i=this.add.graphics().setDepth(t+1e3);i.lineStyle(2,n,.95),i.fillStyle(n,.35);let a=Math.abs(r.split(``).reduce((e,t)=>e*31+t.charCodeAt(0),0))%5;if(a===0)i.strokeCircle(e,t,9);else if(a===1)i.beginPath(),i.moveTo(e,t-9),i.lineTo(e+9,t+9),i.lineTo(e-9,t+9),i.closePath(),i.strokePath();else if(a===2)i.strokeRect(e-9,t-9,18,18);else if(a===3)i.beginPath(),i.moveTo(e,t-9),i.lineTo(e+9,t),i.lineTo(e,t+9),i.lineTo(e-9,t),i.closePath(),i.strokePath();else{i.beginPath();for(let n=0;n<5;n++){let r=-Math.PI/2+n*2*Math.PI/5,a=e+Math.cos(r)*9,o=t+Math.sin(r)*9;n===0?i.moveTo(a,o):i.lineTo(a,o)}i.closePath(),i.strokePath()}return i}drawCore(){let e=p,t=m,n=this.add.image(e,t,`wu-aura`).setScale(6).setTint(5088255).setAlpha(.28).setDepth(-20),r=this.add.rectangle(e,1670,120,300,5755546,.7).setOrigin(.5,1).setDepth(1738);r.setStrokeStyle(2,14221298,.6);let i=this.add.rectangle(e,1540,70,180,12907752,.75).setOrigin(.5,1).setDepth(1739),a=this.add.image(e,1440,`wu-aura`).setScale(1.4).setTint(15400952).setAlpha(.9).setDepth(1740);this.tweens.add({targets:a,alpha:{from:.7,to:1},scale:{from:1.2,to:1.6},yoyo:!0,repeat:-1,duration:1600,ease:`sine.inout`});let o=this.add.text(e,1400,`共鸣核心`,{fontFamily:`Geist, PingFang SC, sans-serif`,fontSize:`14px`,fontStyle:`600`,color:`#fff`,padding:{x:12,y:5},backgroundColor:`rgba(18,20,30,0.6)`}).setOrigin(.5).setDepth(1741);this.blockDecor.push(n,r,i,a,o)}ensureAgentSprite(e,t,n){let r=e.agentId;if(this.agents.has(r))return this.agents.get(r).state=e.state,!1;let i=this.blocks.get(e.channelId),a=i?.colorNum??T(e.channelId),o=e.role===`lead`?v:_[Math.abs(e.agentId.split(``).reduce((e,t)=>e*31+t.charCodeAt(0),0))%_.length],s=e.modelRef&&this.textures.exists(e.modelRef)?e.modelRef:o,c=i?.centerX??t??400,l=i?.centerY??n??300,u=[...this.agents.values()].filter(t=>t.channelId===e.channelId).length,d=Math.floor(u/2),f=c+(u===0?0:(u%2==0?-1:1)*(d>0?d*54:54)),p=l+12+Math.floor(u/2)*16,m=this.physics.add.sprite(f,p,s,0),h=m.body;h.setSize(18,18),h.setOffset(15,66),m.setCollideWorldBounds(!0),m.setDepth(p),m.anims.play(`wu-bob-${s}`,!0);let g=this.add.image(f,p,`wu-aura`).setTint(a).setAlpha(.42).setDepth(p-10).setScale(1.5);this.tweens.add({targets:g,alpha:{from:.3,to:.56},scale:{from:1.35,to:1.65},yoyo:!0,repeat:-1,duration:2200,ease:`sine.inout`});let y=this.add.graphics().setDepth(p+200),b=this.add.text(f,p-30,e.name,{fontFamily:`Geist, PingFang SC, sans-serif`,fontSize:`10.5px`,fontStyle:`600`,color:`#ffffff`,padding:{x:6,y:2}}).setOrigin(.5,1).setDepth(p+200);b.setStyle({backgroundColor:`rgba(18,20,30,0.62)`,color:`#fff`});let x=this.add.text(f,p-44,``,{fontFamily:`Geist Mono, monospace`,fontSize:`9px`,color:`#4c8f63`,backgroundColor:`rgba(255,255,255,0.85)`,padding:{x:4,y:1}}).setOrigin(.5,1).setDepth(p+200);return this.agents.set(r,{channelId:e.channelId,agentId:e.agentId,name:e.name,role:e.role,sprite:m,aura:g,statusRing:y,nameLabel:b,progressLabel:x,bubble:null,bubbleTimer:null,state:e.state,progress:e.currentTaskProgress??null,dragging:!1,homeX:f,homeY:p,textureKey:s,modelRef:e.modelRef??``,behavior:{mode:`idle`,roamTarget:null,targetId:null,waitUntil:0,engaged:!1}}),this.enableDraggable(this.agents.get(r)),this.agentCount=this.agents.size,this.emit(`agentCount`,this.agentCount),!0}enableDraggable(e){let t=e.sprite;t.setInteractive({draggable:!0,useHandCursor:!0}),t.on(`dragstart`,()=>{e.dragging=!0,t.body.setEnable(!1),e.behavior.engaged=!1,t.setDepth(this.worldYMax+500),t.setAlpha(.96),t.setScale(1.12)}),t.on(`drag`,(n,r,i)=>{t.setPosition(r,i),e.aura.setPosition(r,i),e.nameLabel.setPosition(r,i-30),e.progressLabel.setPosition(r,i-44),e.statusRing.setPosition(r,i-18),e.sprite.setDepth(i),e.aura.setDepth(i-10)}),t.on(`dragend`,()=>{e.dragging=!1,t.setScale(1),t.setAlpha(1),t.body.setEnable(!0),t.body.stop(),t.body.reset(t.x,t.y),e.homeX=t.x,e.homeY=t.y,e.behavior.mode=`idle`,e.behavior.roamTarget=null,e.behavior.targetId=null,e.behavior.engaged=!1})}get worldYMax(){return d}registerModelsFromList(e){for(let t of e)this.modelsById.has(t.id)||this.modelsById.set(t.id,{id:t.id,file:t.file,name:t.name,spec:t.spec}),t.spec&&this.animSpecs.set(t.id,t.spec)}registerModelFromId(e,t,n,r){return this.modelsById.has(e)||this.modelsById.set(e,{id:e,file:t,name:n,spec:r}),r&&this.animSpecs.set(e,r),this.textures.exists(e)?(this.ensureSheetAnims(e),!0):!1}dropModelOnWorld(e,t,n){let r=this.nearestAgent(e,t,80),i=this.modelsById.get(n),a=i?.id??n;return i&&!this.textures.exists(a)&&this.registerModelFromId(n,i.file,i.name),r?(this.swapTexture(r,a),this.showBubble(r.channelId,r.agentId,`info`,`换装 → ${i?.name??n}`,2200),{mode:`rebind`,agentId:r.agentId,textureKey:a,x:Math.round(r.sprite.x),y:Math.round(r.sprite.y)}):this.textures.exists(a)?(this.spawnResident(e,t,a,i?.name??n),{mode:`spawn`,textureKey:a,x:Math.round(e),y:Math.round(t)}):{mode:`rebind`,textureKey:a,x:Math.round(e),y:Math.round(t)}}nearestAgent(e,t,n){let r,i=n;for(let n of this.agents.values()){let a=Math.hypot(n.sprite.x-e,n.sprite.y-t);a<i&&(r=n,i=a)}return r}swapTexture(e,t){this.textures.exists(t)&&(e.sprite.setTexture(t),e.sprite.anims.play(`wu-bob-${t}`,!0),e.textureKey=t,e.modelRef=t)}spawnResident(e,t,n,r){let i=this.physics.add.sprite(e,t,n,0),a=i.body;a.setSize(18,18),a.setOffset(15,66),i.setCollideWorldBounds(!0),i.setDepth(t),i.anims.play(`wu-bob-${n}`,!0);let o=this.add.image(e,t,`wu-aura`).setTint(16771524).setAlpha(.35).setDepth(t-10).setScale(1.2);this.tweens.add({targets:o,alpha:{from:.25,to:.5},scale:{from:1.05,to:1.4},yoyo:!0,repeat:-1,duration:2400,ease:`sine.inout`});let s=this.add.text(e,t-30,r,{fontFamily:`Geist, PingFang SC, sans-serif`,fontSize:`10px`,fontStyle:`600`,color:`#fff`,padding:{x:6,y:2}}).setOrigin(.5,1).setDepth(t+200).setStyle({backgroundColor:`rgba(18,20,30,0.62)`}),c=this.add.graphics().setDepth(t+200),l=this.add.text(e,t-44,``,{fontFamily:`Geist Mono, monospace`,fontSize:`9px`,color:`#4c8f63`,backgroundColor:`rgba(255,255,255,0.85)`,padding:{x:4,y:1}}).setOrigin(.5,1).setDepth(t+200),u={channelId:``,agentId:`resident-${Date.now().toString(36)}`,name:r,role:`worker`,sprite:i,aura:o,statusRing:c,nameLabel:s,progressLabel:l,bubble:null,bubbleTimer:null,state:`idle`,progress:null,dragging:!1,homeX:e,homeY:t,textureKey:n,modelRef:n,behavior:{mode:`idle`,roamTarget:null,targetId:null,waitUntil:0,engaged:!1}};this.agents.set(u.agentId,u),this.enableDraggable(u)}handleTownEvent(e){if(e.type===`channel.snapshot`){this.resetAll();return}let t=a(e);if(!t)return;if(t.agentId){let n=this.agents.get(t.agentId);n&&(e.type===`agent.status`&&(n.state=e.payload.state,n.state!==`busy`&&(n.progress=null)),e.type===`task.progress`&&(n.progress=e.payload.progress),this.dirty=!0)}t.bubble&&this.showBubble(t.bubble.channelId,t.bubble.agentId,t.bubble.kind,t.bubble.text,t.bubble.ttlMs),this.emitResonance(e);let n=s(e,{resolveTaskAssignee:this.resolveTaskAssignee??void 0});n&&this.startBehavior(n)}emitResonance(e){let t=this.blocks.get(e.channelId),n=e.agentId?this.agents.get(e.agentId):void 0,r=n?.sprite.x??t?.centerX,i=n?.sprite.y??t?.centerY;if(r!==void 0&&i!==void 0){if(e.type===`agent.message`||e.type===`agent.status.message`||e.type===`a2a.message`)this.pulseRing(r,i,n?.aura.tintTopLeft??t?.colorNum??16777215,5088255);else if(e.type===`error`)this.pulseRing(r,i,16739164,16739164),this.setFlag(e.channelId,`danger`);else if(e.type===`task.status`){let t=e.payload.state;t===`completed`?this.lightColumn(r,i,14221298):t===`working`||t===`assigned`?this.setFlag(e.channelId,`busy`):t===`failed`||t===`canceled`?(this.pulseRing(r,i,16752235,16752235),this.setFlag(e.channelId,`danger`)):t===`waiting`&&this.setFlag(e.channelId,`wait`)}}}pulseRing(e,t,n,r){let i=this.add.image(e,t,`wu-ring`).setTint(n).setAlpha(.8).setDepth(t+300).setScale(.3);this.tweens.add({targets:i,scale:2.2,alpha:0,duration:700,ease:`sine.out`,onComplete:()=>i.destroy()})}lightColumn(e,t,n){let r=this.add.image(e,t-40,`wu-aura`).setTint(n).setAlpha(.9).setDepth(t+320).setScale(0,6);this.tweens.add({targets:r,scaleX:1.1,scaleY:2.2,alpha:0,duration:900,ease:`power2.out`,onComplete:()=>r.destroy()})}setFlag(e,t){let n=this.blocks.get(e);if(!n)return;let r=t===`danger`?16739164:t===`wait`?16099138:5755546,i=this.flagBy.get(e);i||(i=this.add.circle(n.centerX,n.centerY-150,10,r,.9).setDepth(n.centerY-10),this.flagBy.set(e,i),this.blockDecor.push(i)),i.setFillStyle(r,.9),this.tweens.add({targets:i,alpha:{from:.6,to:1},yoyo:!0,repeat:-1,duration:800})}flagBy=new Map;startBehavior(e){let t=this.agents.get(e.fromId),n=this.agents.get(e.toId);if(!t||!n||t.dragging)return;let r=t.behavior;r.mode=`approach`,r.targetId=n.agentId,r.action=e,n.dragging||(n.behavior.engaged=!0,n.behavior.roamTarget=null,n.sprite.body.stop()),t.sprite.body&&t.sprite.body.stop(),this.emit(`behavior`,{agentName:t.name,action:this.behaviorActionLabel(e.kind),targetName:n.name})}behaviorActionLabel(e){return e===`task`?`下发任务`:e===`reply`?`回复`:`发送消息`}runBehavior(e,t){let n=e.behavior;if(n.mode===`idle`||n.mode===`roam`){if(e.behavior.engaged||e.dragging){this.stopAt(e);return}if(n.mode=`roam`,!n.roamTarget){let t=this.blocks.get(e.channelId),r=t?.radius?t.radius*.5:80;n.roamTarget={x:e.homeX+(Math.random()*2-1)*r,y:e.homeY+(Math.random()*2-1)*r*.6}}this.driveToward(e,n.roamTarget,b*.5,t)&&(n.roamTarget=null);return}if(n.mode===`approach`){let r=n.targetId?this.agents.get(n.targetId):void 0;if(!r){this.stopAt(e),n.mode=`idle`;return}let i={x:r.sprite.x,y:r.sprite.y};this.driveToward(e,i,b,t)&&(this.stopAt(e),this.behaviorDeliver(e,r),n.action?.requireReply?(n.mode=`wait`,n.waitUntil=this.time.now+x):(n.mode=`returnHome`,this.releaseEngaged(e),n.targetId=null));return}if(n.mode===`wait`){if(e.dragging){this.stopAt(e);return}let r=n.targetId?this.agents.get(n.targetId):void 0;if(r&&!r.dragging){let n={x:r.sprite.x+28,y:r.sprite.y+8};this.driveToward(e,n,b*.6,t)}else this.stopAt(e);this.time.now>=n.waitUntil&&(n.mode=`returnHome`,this.releaseEngaged(e));return}if(n.mode===`returnHome`){if(e.dragging){this.stopAt(e);return}this.driveToward(e,{x:e.homeX,y:e.homeY},b*.7,t)&&(this.stopAt(e),e.sprite.setPosition(e.homeX,e.homeY),n.mode=`idle`,n.targetId=null,n.action=void 0);return}}releaseEngaged(e){let t=e.behavior.targetId?this.agents.get(e.behavior.targetId):void 0;t&&(t.behavior.engaged=!1)}behaviorDeliver(e,t){let n=e.behavior.action?.text??``;n&&this.showBubble(e.channelId,t.agentId,`info`,n,2600),this.emit(`behavior`,{agentName:e.name,action:this.behaviorActionLabel(e.behavior.action?.kind??`message`),targetName:t.name})}driveToward(e,t,n,r){let i=e.sprite.body;if(!i.enable)return!1;let a={x:e.sprite.x,y:e.sprite.y},s=o(a,t,n,r);return e.sprite.setFlipX(s.dir===`left`),i.setVelocity((s.x-a.x)/r,(s.y-a.y)/r),this.playSheetAnim(e.sprite,`walk`),s.arrived}stopAt(e){e.sprite.body?.stop(),this.playSheetAnim(e.sprite,`idle`)}playSheetAnim(e,t){let n=`${e.texture.key}-${t}`;if(this.anims.exists(n))e.anims.currentAnim?.key!==n&&e.anims.play(n,!0);else{let t=`wu-bob-${e.texture.key}`;this.anims.exists(t)&&e.anims.currentAnim?.key!==t&&e.anims.play(t,!0)}}showBubble(e,t,n,r,i){let a=t?this.agents.get(t):void 0,o=a?.sprite,s=this.blocks.get(e),c=o?.x??s?.centerX??400,l=(o?.y??s?.centerY??300)-34,u=S[n]??S.info;a?.bubble&&(a.bubble.destroy(),a.bubble=null,a.bubbleTimer&&=(a.bubbleTimer.remove(!1),null));let d=this.add.rectangle(0,0,12,12,u.bg,.94),f=this.add.text(0,0,r,{fontFamily:`Geist, PingFang SC, sans-serif`,fontSize:`11px`,color:u.fg,padding:{x:9,y:5},wordWrap:{width:220},align:`left`}),p=Math.min(240,f.width+18),m=f.height+10;d.setSize(p,m);let h=this.add.container(c,l,[d,f]);h.setDepth(500),h.setAlpha(0),h.setScale(.92),this.tweens.add({targets:h,alpha:1,y:l-6,scale:1,duration:180,ease:`back.out`}),this.dbgBubbles.push({text:r,at:Date.now()}),this.dbgActivity={channelId:e,agentName:a?.name??s?.name??`系统`,text:r},this.recentActivity.push({channelId:e,agentName:a?.name??s?.name??`系统`,text:r}),this.recentActivity.length>6&&this.recentActivity.splice(0,this.recentActivity.length-6),this.emit(`lastActivity`,this.dbgActivity),a?(a.bubble=h,a.bubbleTimer=this.time.delayedCall(i,()=>{this.tweens.add({targets:h,alpha:0,y:h.y-8,duration:220,onComplete:()=>{h.destroy(),a&&(a.bubble=null)}}),a&&(a.bubbleTimer=null)})):this.time.delayedCall(i,()=>{this.tweens.add({targets:h,alpha:0,y:h.y-8,duration:220,onComplete:()=>h.destroy()})})}resetAll(){for(let e of this.blockDecor)e.destroy();this.blockDecor=[];for(let e of this.agents.values())e.sprite.destroy(),e.aura.destroy(),e.statusRing.destroy(),e.nameLabel.destroy(),e.progressLabel.destroy(),e.bubble&&e.bubble.destroy();this.agents.clear(),this.blocks.clear(),this.flagBy.clear(),this.events.emit(`town-reset`)}getDebugState(){return{blocks:this.blocks.size,agents:[...this.agents.values()].map(e=>({agentId:e.agentId,name:e.name,role:e.role,channelId:e.channelId,state:e.state,progress:e.progress,x:Math.round(e.sprite.x),y:Math.round(e.sprite.y),visible:e.sprite.visible,draggable:e.sprite.input?.enabled??!1,auraColor:e.aura.tintTopLeft,behavior:e.behavior.mode,targetId:e.behavior.targetId,homeX:e.homeX,homeY:e.homeY,textureKey:e.textureKey,modelRef:e.modelRef,decorated:!e.channelId})),bubbles:this.dbgBubbles.slice(-8),activity:this.dbgActivity,player:{x:Math.round(this.viewer.x),y:Math.round(this.viewer.y)}}}getMinimapState(){let e=e=>e/u,t=e=>e/d;return{world:{w:u,h:d},blocks:[...this.blocks.values()].map(n=>({x:e(n.centerX),y:t(n.centerY),color:n.colorNum,name:n.name})),agents:[...this.agents.values()].map(n=>({x:e(n.sprite.x),y:t(n.sprite.y),color:n.aura.tintTopLeft,busy:n.state===`busy`})),devices:[],player:{x:e(this.viewer.x),y:t(this.viewer.y)}}}getRecentActivity(){return[...this.recentActivity]}createAnimations(){let e=[..._,v,`knight`,`mage`,`bot`];for(let t of e)this.ensureSheetAnims(t)}ensureSheetAnims(e){let t=l(e,this.animSpecs.get(e));for(let n of[`idle`,`walk`,`work`]){let r=t[n],i=r.key;this.anims.exists(i)||this.anims.create({key:i,frames:this.anims.generateFrameNumbers(e,{start:r.start,end:r.end}),frameRate:r.frameRate,repeat:r.repeat})}this.anims.exists(`wu-bob-${e}`)||this.anims.create({key:`wu-bob-${e}`,frames:this.anims.generateFrameNumbers(e,{start:0,end:(this.animSpecs.get(e)?.frames??4)-1}),frameRate:3,repeat:-1})}animSpecs=new Map;update(e,t){let n=0,r=0;if((this.cursors.left.isDown||this.keyA.isDown)&&--n,(this.cursors.right.isDown||this.keyD.isDown)&&(n+=1),(this.cursors.up.isDown||this.keyW.isDown)&&--r,(this.cursors.down.isDown||this.keyS.isDown)&&(r+=1),n!==0||r!==0){let e=Math.hypot(n,r);this.viewer.setVelocity(n/e*y,r/e*y);let t=n<0?`left`:n>0?`right`:r<0?`up`:`down`;t!==this.facing&&(this.facing=t,this.viewer.setFlipX(t===`left`),this.viewer.anims.play(`wu-bob-${v}`,!0))}else this.viewer.setVelocity(0,0);this.updateParallax(),this.viewer.setDepth(this.viewer.y),this.playerAura.setPosition(this.viewer.x,this.viewer.y),this.playerAura.setDepth(this.viewer.y-10);for(let e of this.agents.values())!e||!e.sprite||!e.sprite.body||(e.state!==`stopped`&&!e.dragging?this.runBehavior(e,t/1e3):this.stopAt(e),e.sprite.setDepth(e.sprite.y),e.aura.setPosition(e.sprite.x,e.sprite.y),e.aura.setDepth(e.sprite.y-10),e.nameLabel.setPosition(e.sprite.x,e.sprite.y-30),e.nameLabel.setDepth(e.sprite.y+200),e.progressLabel.setPosition(e.sprite.x,e.sprite.y-44),e.progressLabel.setDepth(e.sprite.y+200),this.drawStatusRing(e),e.state===`busy`&&e.progress!=null?(e.progressLabel.setText(`${e.progress}%`),e.progressLabel.setColor(`#4c8f63`),e.progressLabel.setVisible(!0)):e.progressLabel.setVisible(!1));this.frameCount+=1,this.fpsAccum+=t,this.fpsAccum>=1e3&&(this.emit(`fps`,this.frameCount),this.frameCount=0,this.fpsAccum=0)}drawStatusRing(e){let t=e.statusRing;t.clear();let n=e.nameLabel.width,r=e.sprite.x-n/2-5,i=e.sprite.y-20,a=e.state===`busy`?15709546:e.state===`stopped`?12737102:10406778;t.fillStyle(a,1),t.fillCircle(r,i,3),e.state===`busy`&&(t.lineStyle(1.5,15709546,.6),t.strokeCircle(r,i,6))}};export{D as TownScene};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./BU83-NnX.js";import{w as t}from"./DdD9mCHM.js";import{$ as n,Ht as r,R as i,S as a,Ut as o,V as s,Vt as c,W as l,b as u,ct as ee,d,dt as te,f,h as p,i as m,m as h,nt as g,p as _,pt as v,tt as y,xt as b,y as x}from"./CSkxz2NX.js";import{d as S,f as C,l as ne,u as w}from"./D6uzXueg.js";import{t as re}from"./YnQxK3eG.js";import{n as ie,t as ae}from"./xh3_vYcu.js";import{n as oe}from"./KZQX7xoM.js";import{t as se}from"./aWWIh8YL.js";import{t as ce}from"./DBHNsT1Y.js";import{t as le}from"./DzbFpZRk.js";import{t as ue}from"./BYhEUx8t.js";import{t as de}from"./CYWVXZTS2.js";import{n as fe,r as pe,t as me}from"./DHFrCUxA2.js";import{t as he}from"./DZtm4l-P2.js";import{t as ge}from"./CClOy-Hz2.js";import{t as _e}from"./DIaZ2PTo2.js";import{t as ve}from"./DeyBFhKH2.js";import{t as T}from"./BDNMzG2s2.js";import{t as E}from"./D0ZBQrN_2.js";import{t as ye}from"./BN6iuJEg2.js";import{t as be}from"./zq5t1vyX.js";var xe={class:`settings-page`},Se={class:`aw-page-head`},Ce={class:`aw-kicker`},we={class:`aw-stamp`},Te={class:`settings-layout`},Ee={class:`settings-nav`},De=[`onClick`],Oe={class:`settings-body`},ke={class:`section-title`},Ae={class:`section-desc`},je={class:`set-row`},Me={class:`set-text`},Ne={class:`set-title`},Pe={class:`set-sub`},Fe={class:`color-swatches`},Ie=[`title`,`onClick`],Le={class:`swatch-label`},Re={key:0,class:`i-tabler-check swatch-check`},ze={class:`toggle-row`},Be={class:`set-text`},Ve={class:`set-title`},He={class:`set-sub`},Ue=[`aria-checked`],We={class:`toggle-row`},Ge={class:`set-text`},Ke={class:`set-title`},qe={class:`set-sub`},Je={class:`section-title`},Ye={class:`section-desc`},Xe={class:`rt-groups-bar`},Ze=[`title`],Qe={class:`rt-groups-count`},$e={key:1,class:`rt-group-form`},et=[`disabled`],tt=[`role`,`tabindex`,`onClick`,`onKeydown`],nt=[`onKeydown`],rt=[`onClick`],it={key:3,class:`rt-group-title`},at={class:`rt-group-badge`},ot={class:`rt-group-fields`},st={key:4,class:`rt-group-desc`},ct=[`disabled`,`title`,`onClick`],lt=[`disabled`,`title`,`onClick`],ut=[`disabled`,`title`,`onClick`],dt=[`disabled`,`title`,`onClick`],ft=[`disabled`,`title`,`onClick`],pt={class:`rt-group-body`},mt={key:0,class:`rt-group-empty`},ht={class:`rt-main`},gt={class:`rt-title`},_t={class:`rt-sub`},vt={class:`rt-ctrl`},yt={key:3,class:`rt-color`},bt=[`value`,`onInput`],xt=[`title`,`onClick`],St={class:`rt-actions`},Ct=[`disabled`],wt={class:`rt-path aw-mono`},Tt={class:`rt-group-title plugin-group-title`},Et={class:`section-desc`},Dt={key:2,class:`identity-note`},Ot={class:`plugin-main`},kt={class:`rt-title`},At={class:`aw-mono`},jt={key:0,class:`rt-tag`},Mt={key:1,class:`rt-tag src-runtime`},Nt={key:2,class:`rt-tag restart`},Pt={class:`rt-sub`},Ft={class:`rt-ctrl`},It={key:0,class:`plugin-health faint`},Lt=[`onClick`],Rt=[`aria-checked`,`disabled`,`onClick`],zt={key:0,class:`identity-note`},Bt={class:`section-title`},Vt={class:`section-desc`},Ht={class:`aw-mono`},Ut={class:`identity-note`},Wt=`aw.settings.groups.collapsed`,D=T(a({__name:`settings`,setup(a){let{t:T,locale:D,locales:Gt,setLocale:Kt}=oe(),O=ie(),k=ae(),qt=t().public,A=_e(),j=ye(),M=v(`appearance`),N=ve(),P=v({}),F=v(new Set),I=v(!1),L=v(null);function R(){P.value={...N.effective},F.value=new Set}n(()=>N.loaded,e=>{e&&R()},{immediate:!0}),n(()=>N.effective,()=>{F.value.size===0&&R()},{deep:!0});function z(e){F.value.add(e),L.value=null}async function Jt(){if(F.value.size){I.value=!0,L.value=null;try{let e={};for(let t of F.value)e[t]=P.value[t];let t=await N.patch(e);R();let n=t.restartRequired??[];L.value=n.length?{type:`warning`,text:T(`settings.runtime.restartNotice`,{keys:n.join(`, `)})}:{type:`success`,text:T(`settings.runtime.savedLive`)}}catch(e){let t=e;L.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}finally{I.value=!1}}}async function Yt(e){try{await N.patch({[e]:null}),F.value.delete(e),P.value[e]=N.effective[e],L.value={type:`success`,text:T(`settings.runtime.keyReset`,{key:e})}}catch(e){let t=e;L.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}}async function Xt(){try{await N.resetAll(),R(),L.value={type:`success`,text:T(`settings.runtime.resetAllDone`)}}catch(e){let t=e;L.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}}let Zt={server:`settings.runtime.groupServer`,app:`settings.runtime.groupApp`,api:`settings.runtime.groupApi`,theme:`settings.runtime.groupTheme`,i18n:`settings.runtime.groupI18n`,security:`settings.runtime.groupSecurity`,daq:`settings.runtime.groupDaq`,memory:`settings.runtime.groupMemory`,omp:`settings.runtime.groupOmp`,harness:`settings.runtime.groupHarness`,dcw:`settings.runtime.groupDcw`,workshop:`settings.runtime.groupWorkshop`,backup:`settings.runtime.groupBackup`,retention:`settings.runtime.groupRetention`,log:`settings.runtime.groupLog`,plugins:`settings.runtime.groupPlugins`};function Qt(e){if(e.labelKey&&T(e.labelKey)!==e.labelKey)return T(e.labelKey);if(e.label&&e.label!==e.id)return e.label;let t=Zt[e.id];return t?T(t):e.label||e.id}function $t(e){return e.source===`plugin`?e.plugin?`${T(`settings.groups.srcPlugin`)}: ${e.plugin}`:T(`settings.groups.srcPlugin`):e.source===`user`?T(`settings.groups.srcUser`):T(`settings.groups.srcBuiltin`)}function en(e){return e===`runtime`?`src-runtime`:e===`env`?`src-env`:`src-yaml`}function tn(e){let t=e.labelKey;return t&&T(t)!==t?T(t):e.label}let B=v({});function nn(){try{B.value=JSON.parse(localStorage.getItem(Wt)??`{}`)??{}}catch{B.value={}}}function rn(){try{localStorage.setItem(Wt,JSON.stringify(B.value))}catch{}}function V(e){let t=B.value[e.id];return t===void 0?e.collapsed:t}function H(e){e.collapsible&&(B.value={...B.value,[e.id]:!V(e)},rn())}function an(){let e=N.groups.filter(e=>e.collapsible),t=e.some(e=>!V(e)),n={...B.value};for(let r of e)n[r.id]=t;B.value=n,rn()}let on=d(()=>N.groups.filter(e=>e.collapsible).some(e=>!V(e))),sn=d(()=>A.isAdmin),U=v(!1),W=te({label:``,description:``,collapsed:!1}),G=v(``),K=v(``),q=v(``);async function cn(){if(W.label.trim()){G.value=`create`;try{await N.createGroup({label:W.label.trim(),description:W.description.trim(),collapsed:W.collapsed}),U.value=!1,W.label=``,W.description=``,W.collapsed=!1,e.success(T(`settings.groups.created`))}catch(t){e.error(E(t,T(`settings.groups.createFail`)))}finally{G.value=``}}}function ln(e){K.value=e.id,q.value=e.label}async function un(t){let n=q.value.trim();if(K.value=``,n){G.value=t;try{await N.updateGroup(t,{label:n}),e.success(T(`settings.groups.renamed`))}catch(t){e.error(E(t,T(`settings.groups.updateFail`)))}finally{G.value=``}}}async function dn(t,n){let r=[...N.groups],i=r.findIndex(e=>e.id===t),a=i+n;if(i<0||a<0||a>=r.length)return;let o=r[i],s=r[a];G.value=t;try{let e=[...r];e.splice(i,1),e.splice(a,0,o);let t=(a+1)*10,n=(i+1)*10;await N.updateGroup(o.id,{order:t}),await N.updateGroup(s.id,{order:n})}catch(t){e.error(E(t,T(`settings.groups.updateFail`)))}finally{G.value=``}}async function fn(t){G.value=t.id;try{await N.updateGroup(t.id,{collapsed:!t.collapsed})}catch(t){e.error(E(t,T(`settings.groups.updateFail`)))}finally{G.value=``}}async function pn(t){let n=t.fieldCount??0;if(n>0){e.warning(T(`settings.groups.deleteHasFields`,{p0:Qt(t),p1:n}));return}G.value=t.id;try{await N.deleteGroup(t.id),e.success(T(`settings.groups.deleted`))}catch(t){e.error(E(t,T(`settings.groups.deleteFail`)))}finally{G.value=``}}let J=v([]),Y=v(!1),mn=v(!1),X=v(new Set),Z=v({}),hn=e=>(e.routes??[]).some(e=>String(e.path||``).endsWith(`/health`));async function gn(){Y.value=!0;try{let e=await j.listPlugins(),t=e?.plugins??e?.data?.plugins??[];J.value=Array.isArray(t)?t:[],mn.value=!0}catch(t){e.error(E(t,T(`plugins.loadFail`)))}finally{Y.value=!1}}async function _n(t,n){if(!X.value.has(t.name)){X.value.add(t.name);try{n?await j.enablePlugin(t.name):await j.disablePlugin(t.name),t.enabled=n,e.success(T(n?`plugins.enabled`:`plugins.disabled`))}catch(t){e.error(E(t,T(`plugins.adminRequired`)))}finally{X.value.delete(t.name)}}}async function vn(e){if(hn(e)){Z.value={...Z.value,[e.name]:`checking`};try{let t=await j.pluginHealth(e.name);Z.value={...Z.value,[e.name]:yn(e.name,t)}}catch(t){Z.value={...Z.value,[e.name]:{ok:!1,reason:E(t,T(`plugins.loadFail`))}}}}}function yn(e,t){if(e===`rag-bridge`){let e=t.backend,n=t.web,r=!!e?.ok&&!!n?.ok,i=e?.ok?n?.error||n?.status||`web`:e?.error||e?.status||`backend`;return r?{ok:!0}:{ok:!1,reason:i}}if(e===`diag-bridge`){let e=t.remote;return e?.status===`ok`?{ok:!0}:{ok:!1,reason:e?.status||`remote`}}return{ok:!0}}function bn(e){return Z.value[e]===`checking`}function Q(e){let t=Z.value[e];return t&&t!==`checking`?t:null}function xn(e){return X.value.has(e)}n(M,e=>{e===`runtime`&&!mn.value&&!Y.value&&A.isLoggedIn&&gn()},{immediate:!0}),i(nn);let $=String(qt.primaryColor),Sn=[{value:$,label:T(`settings.accentInk`)},{value:`#c9963f`,label:T(`settings.accentStone`)},{value:`#44615a`,label:T(`settings.accentMoss`)},{value:`#3f6094`,label:T(`settings.accentSlate`)},{value:`#6b5aa0`,label:T(`settings.accentPlum`)},{value:`#9c5744`,label:T(`settings.accentClay`)}],Cn=d(()=>O.accent??$);function wn(t){O.setAccent(t===$?null:t),e.success(T(`settings.accentApplied`))}function Tn(){O.setAccent(null),e.success(T(`settings.accentReset`))}let En=d(()=>Gt.value.map(e=>({label:e.name,value:e.code}))),Dn=e=>{e!=null&&(re(`aw.locale`,{maxAge:31536e3}).value=String(e),localStorage.setItem(`aw.locale`,String(e)),Kt(String(e)),window.location.reload())},On=d(()=>[{label:T(`home.fields.name`),value:k.name},{label:T(`home.fields.version`),value:`v${k.version}`},{label:T(`home.fields.mode`),value:k.mode},{label:T(`home.fields.apiBase`),value:`${k.apiBase} (${qt.apiTimeout}ms)`},{label:T(`home.fields.primary`),value:$},{label:`i18n`,value:D.value}]),kn=d(()=>[{key:`appearance`,icon:`i-tabler-palette`,label:T(`settings.theme`)},{key:`runtime`,icon:`i-tabler-settings`,label:T(`settings.runtimeTab`)},{key:`system`,icon:`i-tabler-server-2`,label:T(`settings.systemTab`)}]);return(e,t)=>{let n=se,i=le,a=ce,d=de,te=me,v=ge,re=he,ie=be,ae=pe,oe=fe,_e=ue;return s(),p(`div`,xe,[f(`div`,Se,[f(`div`,null,[f(`p`,Ce,o(b(T)(`menu.system`))+` / settings `,1),f(`h1`,null,o(b(T)(`settings.title`)),1)]),f(`span`,we,`v`+o(b(k).version),1)]),u(_e,{bordered:!1,class:`settings-card`},{default:y(()=>[f(`div`,Te,[f(`div`,Ee,[(s(!0),p(m,null,l(b(kn),e=>(s(),p(`button`,{key:e.key,class:c([`nav-item`,{active:b(M)===e.key}]),onClick:t=>M.value=e.key},[f(`span`,{class:c(e.icon)},null,2),f(`span`,null,o(e.label),1)],10,De))),128))]),f(`div`,Oe,[g(f(`div`,null,[f(`h3`,ke,o(b(T)(`settings.theme`)),1),f(`p`,Ae,o(b(T)(`settings.appearanceDesc`)),1),f(`div`,je,[f(`div`,Me,[f(`div`,Ne,o(b(T)(`settings.primaryColor`)),1),f(`div`,Pe,o(b(T)(`settings.accentDesc`)),1)])]),f(`div`,Fe,[(s(),p(m,null,l(Sn,e=>f(`button`,{key:e.value,class:c([`swatch`,{on:b(Cn).toLowerCase()===e.value.toLowerCase()}]),style:r({"--sw":e.value}),title:e.label,onClick:t=>wn(e.value)},[t[10]||=f(`span`,{class:`swatch-dot`},null,-1),f(`span`,Le,o(e.label),1),b(Cn).toLowerCase()===e.value.toLowerCase()?(s(),p(`span`,Re)):h(``,!0)],14,Ie)),64))]),f(`button`,{class:`aw-pill outline reset-btn`,onClick:Tn},[t[11]||=f(`span`,{class:`i-tabler-rotate`},null,-1),x(` `+o(b(T)(`settings.accentResetAction`)),1)]),f(`div`,ze,[f(`div`,Be,[f(`div`,Ve,o(b(O).isDark?b(T)(`common.dark`):b(T)(`common.light`)),1),f(`div`,He,o(b(T)(`settings.darkDesc`)),1)]),f(`button`,{class:c([`switch`,{on:b(O).isDark}]),role:`switch`,"aria-checked":b(O).isDark,onClick:t[0]||=e=>b(O).toggleDark()},[...t[12]||=[f(`span`,{class:`knob`},null,-1)]],10,Ue)]),f(`div`,We,[f(`div`,Ge,[f(`div`,Ke,o(b(T)(`header.language`)),1),f(`div`,qe,o(b(T)(`settings.languageDesc`)),1)]),u(n,{value:b(D),options:b(En),style:{width:`140px`},onChange:Dn},null,8,[`value`,`options`])])],512),[[w,b(M)===`appearance`]]),g(f(`div`,null,[f(`h3`,Je,o(b(T)(`settings.runtimeTab`)),1),f(`p`,Ye,o(b(T)(`settings.runtime.desc`)),1),b(L)?(s(),_(i,{key:0,type:b(L).type,"show-icon":``,class:`rt-notice`,message:b(L).text},null,8,[`type`,`message`])):h(``,!0),f(`div`,Xe,[f(`button`,{class:`aw-pill outline rt-groups-toggle`,title:b(T)(`settings.groups.toggleAll`),onClick:an},[f(`span`,{class:c(b(on)?`i-tabler-chevrons-up`:`i-tabler-chevrons-down`)},null,2),x(` `+o(b(on)?b(T)(`settings.groups.collapseAll`):b(T)(`settings.groups.expandAll`)),1)],8,Ze),f(`span`,Qe,o(b(T)(`settings.groups.count`,{p0:b(N).groups.length})),1),b(sn)?(s(),p(`button`,{key:0,class:`aw-pill outline rt-groups-add`,onClick:t[1]||=e=>U.value=!b(U)},[t[13]||=f(`span`,{class:`i-tabler-plus`},null,-1),x(` `+o(b(T)(`settings.groups.newGroup`)),1)])):h(``,!0)]),b(sn)&&b(U)?(s(),p(`div`,$e,[u(a,{value:b(W).label,"onUpdate:value":t[2]||=e=>b(W).label=e,placeholder:b(T)(`settings.groups.namePlaceholder`),style:{width:`220px`},onPressEnter:cn},null,8,[`value`,`placeholder`]),u(a,{value:b(W).description,"onUpdate:value":t[3]||=e=>b(W).description=e,placeholder:b(T)(`settings.groups.descPlaceholder`),style:{width:`320px`},onPressEnter:cn},null,8,[`value`,`placeholder`]),u(d,{checked:b(W).collapsed,"onUpdate:checked":t[4]||=e=>b(W).collapsed=e},{default:y(()=>[x(o(b(T)(`settings.groups.defaultCollapsed`)),1)]),_:1},8,[`checked`]),f(`button`,{class:`aw-pill primary`,disabled:!b(W).label.trim()||b(G)===`create`,onClick:cn},o(b(G)===`create`?`…`:b(T)(`settings.groups.create`)),9,et),f(`button`,{class:`aw-pill outline`,onClick:t[5]||=e=>U.value=!1},o(b(T)(`settings.groups.cancel`)),1)])):h(``,!0),(s(!0),p(m,null,l(b(N).groups,e=>(s(),p(`section`,{key:e.id,class:c([`rt-group`,{collapsed:V(e),"grp-plugin":e.source===`plugin`}])},[f(`header`,{class:`rt-group-head`,role:e.collapsible?`button`:void 0,tabindex:e.collapsible?0:void 0,onClick:t=>H(e),onKeydown:[S(C(t=>H(e),[`prevent`]),[`enter`]),S(C(t=>H(e),[`prevent`]),[`space`])]},[e.collapsible?(s(),p(`span`,{key:0,class:c([`rt-caret`,V(e)?`i-tabler-chevron-right`:`i-tabler-chevron-down`])},null,2)):h(``,!0),e.icon?(s(),p(`span`,{key:1,class:c([`rt-group-icon`,e.icon])},null,2)):h(``,!0),b(K)===e.id?(s(),p(m,{key:2},[g(f(`input`,{"onUpdate:modelValue":t[6]||=e=>ee(q)?q.value=e:null,class:`rt-rename aw-mono`,onClick:t[7]||=C(()=>{},[`stop`]),onKeydown:[S(C(t=>un(e.id),[`prevent`]),[`enter`]),t[8]||=S(C(e=>K.value=``,[`prevent`]),[`esc`])]},null,40,nt),[[ne,b(q)]]),f(`button`,{class:`mini-btn`,onClick:C(t=>un(e.id),[`stop`])},o(b(T)(`settings.groups.ok`)),9,rt)],64)):(s(),p(`h4`,it,o(Qt(e)),1)),f(`span`,at,o($t(e)),1),f(`span`,ot,o(b(T)(`settings.groups.fields`,{p0:e.fieldCount??0})),1),e.description?(s(),p(`span`,st,o(e.description),1)):h(``,!0),b(sn)&&e.source!==`plugin`?(s(),p(`span`,{key:5,class:`rt-group-ops`,onClick:t[9]||=C(()=>{},[`stop`])},[f(`button`,{class:`mini-btn`,disabled:b(G)===e.id,title:b(T)(`settings.groups.moveUp`),onClick:t=>dn(e.id,-1)},[...t[14]||=[f(`span`,{class:`i-tabler-arrow-up`},null,-1)]],8,ct),f(`button`,{class:`mini-btn`,disabled:b(G)===e.id,title:b(T)(`settings.groups.moveDown`),onClick:t=>dn(e.id,1)},[...t[15]||=[f(`span`,{class:`i-tabler-arrow-down`},null,-1)]],8,lt),f(`button`,{class:`mini-btn`,disabled:b(G)===e.id,title:b(T)(`settings.groups.rename`),onClick:t=>ln(e)},[...t[16]||=[f(`span`,{class:`i-tabler-pencil`},null,-1)]],8,ut),f(`button`,{class:`mini-btn`,disabled:b(G)===e.id,title:b(T)(`settings.groups.defaultCollapsed`),onClick:t=>fn(e)},[f(`span`,{class:c(e.collapsed?`i-tabler-chevrons-down`:`i-tabler-chevrons-up`)},null,2)],8,dt),e.source===`user`?(s(),p(`button`,{key:0,class:`mini-btn`,disabled:b(G)===e.id,title:b(T)(`settings.groups.delete`),onClick:t=>pn(e)},[...t[17]||=[f(`span`,{class:`i-tabler-trash`},null,-1)]],8,ft)):h(``,!0)])):h(``,!0)],40,tt),g(f(`div`,pt,[e.fieldCount??0?h(``,!0):(s(),p(`p`,mt,o(b(T)(`settings.groups.emptyHint`)),1)),(s(!0),p(m,null,l(b(N).fieldsOf(e.id),e=>(s(),p(`div`,{key:e.key,class:`rt-row`},[f(`div`,ht,[f(`div`,gt,[x(o(tn(e))+` `,1),f(`span`,{class:c([`rt-tag`,en(b(N).sourceOf(e.key))])},o(b(N).sourceOf(e.key)),3),f(`span`,{class:c([`rt-tag`,e.applies])},o(e.applies===`live`?b(T)(`settings.runtime.live`):b(T)(`settings.runtime.restart`)),3)]),f(`div`,_t,o(e.description),1)]),f(`div`,vt,[e.type===`number`?(s(),_(te,{key:0,value:b(P)[e.key],"onUpdate:value":t=>b(P)[e.key]=t,min:e.min,max:e.max,onChange:t=>z(e.key)},null,8,[`value`,`onUpdate:value`,`min`,`max`,`onChange`])):e.type===`boolean`?(s(),_(v,{key:1,checked:b(P)[e.key],"onUpdate:checked":t=>b(P)[e.key]=t,onChange:t=>z(e.key)},null,8,[`checked`,`onUpdate:checked`,`onChange`])):e.type===`select`?(s(),_(n,{key:2,value:b(P)[e.key],"onUpdate:value":t=>b(P)[e.key]=t,style:{width:`160px`},options:(e.options??[]).map(e=>({label:e,value:e})),onChange:t=>z(e.key)},null,8,[`value`,`onUpdate:value`,`options`,`onChange`])):e.type===`color`?(s(),p(`span`,yt,[f(`input`,{type:`color`,value:String(b(P)[e.key]??`#35e0a0`),onInput:t=>{b(P)[e.key]=t.target.value,z(e.key)}},null,40,bt),u(a,{value:String(b(P)[e.key]??``),style:{width:`110px`},class:`aw-mono`,onChange:t=>{b(P)[e.key]=t.target.value,z(e.key)}},null,8,[`value`,`onChange`])])):(s(),_(a,{key:4,value:b(P)[e.key],"onUpdate:value":t=>b(P)[e.key]=t,style:{width:`220px`},onChange:t=>z(e.key)},null,8,[`value`,`onUpdate:value`,`onChange`])),f(`button`,{class:`aw-pill outline rt-reset`,title:b(T)(`settings.runtime.resetKey`),onClick:t=>Yt(e.key)},[...t[18]||=[f(`span`,{class:`i-tabler-rotate`},null,-1)]],8,xt)])]))),128))],512),[[w,!V(e)]])],2))),128)),f(`div`,St,[f(`button`,{class:`aw-pill primary`,disabled:!b(F).size||b(I),onClick:Jt},[t[19]||=f(`span`,{class:`i-tabler-device-floppy`},null,-1),x(` `+o(b(I)?`…`:b(T)(`settings.runtime.save`)),1)],8,Ct),f(`button`,{class:`aw-pill outline`,onClick:Xt},o(b(T)(`settings.runtime.resetAll`)),1),f(`span`,wt,o(b(N).settingsPath),1)]),f(`h4`,Tt,o(b(T)(`plugins.title`)),1),f(`p`,Et,o(b(T)(`plugins.desc`)),1),b(A).isLoggedIn?(s(),_(re,{key:3,spinning:b(Y)},{default:y(()=>[(s(!0),p(m,null,l(b(J),e=>(s(),p(`div`,{key:e.name,class:c([`plugin-row`,{off:e.enabled===!1}])},[f(`div`,Ot,[f(`div`,kt,[f(`span`,At,o(e.name),1),e.version?(s(),p(`span`,jt,`v`+o(e.version),1)):h(``,!0),e.builtin?(s(),p(`span`,Mt,o(b(T)(`plugins.builtin`)),1)):h(``,!0),e.error?(s(),p(`span`,Nt,o(e.error),1)):h(``,!0)]),f(`div`,Pt,o(e.description||`—`),1)]),f(`div`,Ft,[bn(e.name)?(s(),p(`span`,It,[t[20]||=f(`span`,{class:`i-tabler-loader-2 spin`},null,-1),x(` `+o(b(T)(`plugins.healthChecking`)),1)])):Q(e.name)?(s(),p(`span`,{key:1,class:c([`plugin-health`,Q(e.name).ok?`ok`:`bad`])},[f(`span`,{class:c(Q(e.name).ok?`i-tabler-circle-check`:`i-tabler-alert-circle`)},null,2),x(` `+o(Q(e.name).ok?b(T)(`plugins.healthOk`):`${b(T)(`plugins.healthBad`)}: ${Q(e.name).reason??``}`),1)],2)):h(``,!0),hn(e)?(s(),p(`button`,{key:2,class:`aw-pill outline rt-reset`,onClick:t=>vn(e)},[t[21]||=f(`span`,{class:`i-tabler-heartbeat`},null,-1),x(` `+o(b(T)(`plugins.healthCheck`)),1)],8,Lt)):h(``,!0),f(`button`,{class:c([`switch`,{on:e.enabled!==!1}]),role:`switch`,"aria-checked":e.enabled!==!1,disabled:xn(e.name),onClick:t=>_n(e,e.enabled===!1)},[...t[22]||=[f(`span`,{class:`knob`},null,-1)]],10,Rt)])],2))),128)),b(J).length===0&&!b(Y)?(s(),p(`div`,zt,o(b(T)(`plugins.empty`)),1)):h(``,!0)]),_:1},8,[`spinning`])):(s(),p(`div`,Dt,o(b(T)(`plugins.needLogin`)),1)),b(J).length?(s(),_(ie,{key:4,"slot-name":`settings.plugins`})):h(``,!0)],512),[[w,b(M)===`runtime`]]),g(f(`div`,null,[f(`h3`,Bt,o(b(T)(`settings.systemTab`)),1),f(`p`,Vt,o(b(T)(`settings.systemDesc`)),1),u(oe,{bordered:``,column:1,size:`small`},{default:y(()=>[(s(!0),p(m,null,l(b(On),e=>(s(),_(ae,{key:e.label,label:e.label},{default:y(()=>[f(`span`,Ht,o(e.value),1)]),_:2},1032,[`label`]))),128))]),_:1}),f(`p`,Ut,o(b(A).isLoggedIn?`${b(T)(`settings.identity`)}: ${b(A).user?.name} (${b(A).user?.role})`:b(T)(`settings.identityGuest`)),1)],512),[[w,b(M)===`system`]])])])]),_:1})])}}}),[[`__scopeId`,`data-v-5f6f2d0f`]]);export{D as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.model-preview-3d[data-v-ed056b0a]{border:1px solid var(--hud-line,#263340);background:radial-gradient(120% 90% at 50% 20%,#41c8f41f,#0000 62%),linear-gradient(#0b121b,#0e141d);border-radius:2px;width:100%;min-height:40px;position:relative;overflow:hidden}.mp-loading[data-v-ed056b0a]{place-items:center;display:grid;position:absolute;inset:0}.mp-spin[data-v-ed056b0a]{border:2px solid #41c8f440;border-top-color:#41c8f4;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite mp-spin-ed056b0a}@keyframes mp-spin-ed056b0a{to{transform:rotate(1turn)}}.mp-failed[data-v-ed056b0a]{font-family:var(--font-mono);letter-spacing:.12em;color:var(--hud-dim,#7f919e);place-items:center;font-size:10px;display:grid;position:absolute;inset:0}.asset-lib[data-v-f9b68f56]{width:184px;font-family:var(--font-body);flex-direction:column;flex:none;gap:8px;padding:0 0 10px;display:flex}.lib-head[data-v-f9b68f56]{border-bottom:1px solid #26334073;align-items:center;gap:7px;padding:10px 12px 6px;display:flex}.head-title[data-v-f9b68f56]{font-family:var(--font-mono);letter-spacing:.16em;color:var(--hud-text,#d9e4ee);white-space:nowrap;font-size:10px;font-weight:600}.head-hint[data-v-f9b68f56]{font-family:var(--font-mono);color:var(--hud-faint,#5b6c7b);white-space:nowrap;margin-left:auto;font-size:10px}.upload-box[data-v-f9b68f56]{transition:border-color .16s var(--hud-ease,ease), background .16s var(--hud-ease,ease);background:#0b101866;border:1px dashed #263340cc;border-radius:2px;flex-direction:column;gap:7px;margin:8px 10px 0;padding:7px;display:flex}.upload-box.drop[data-v-f9b68f56]{border-color:var(--hud-accent,#4da3ff);background:#4da3ff14}.upload-row[data-v-f9b68f56]{cursor:pointer;align-items:center;gap:6px;min-height:26px;display:flex}.file-input[data-v-f9b68f56]{display:none}.upload-name[data-v-f9b68f56]{font-family:var(--font-mono);color:var(--hud-dim,#8496a5);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;font-size:10px;display:inline-flex;overflow:hidden}.upload-ico[data-v-f9b68f56]{color:var(--hud-accent,#4da3ff);font-size:13px}.drop-hint[data-v-f9b68f56]{font-family:var(--font-mono);letter-spacing:.08em;color:var(--hud-accent,#4da3ff);align-items:center;gap:5px;padding:2px 0 4px;font-size:10px;display:inline-flex}.upload-file-tag[data-v-f9b68f56]{font-family:var(--font-mono);color:var(--hud-dim,#8496a5);border:1px solid var(--hud-line,#263340);border-radius:2px;padding:3px 6px;font-size:9.5px}.upload-actions[data-v-f9b68f56]{align-items:center;gap:6px;display:flex}.upload-btn[data-v-f9b68f56]{font-family:var(--font-mono);letter-spacing:.06em;color:var(--hud-text,#d9e4ee);background:var(--hud-panel-raised,#141b26);border:1px solid var(--hud-line,#263340);cursor:pointer;transition:border-color .14s var(--hud-ease,ease), color .14s var(--hud-ease,ease);border-radius:2px;padding:5px 10px;font-size:10px;font-weight:600}.upload-btn[data-v-f9b68f56]:hover:not(:disabled){border-color:var(--hud-accent,#4da3ff);color:var(--hud-accent,#4da3ff)}.upload-btn[data-v-f9b68f56]:disabled{opacity:.45;cursor:default}.upload-btn.go[data-v-f9b68f56]{color:var(--hud-amber,#f5a742);background:#f5a74214;border-color:#f5a7428c}.upload-btn.go[data-v-f9b68f56]:hover:not(:disabled){border-color:var(--hud-amber,#f5a742);color:var(--hud-amber,#f5a742);background:#f5a74229}.mini-err[data-v-f9b68f56]{font-family:var(--font-mono);color:var(--hud-danger,#ff6b5c);font-size:9.5px}.mini-err[data-v-f9b68f56],.mini-msg[data-v-f9b68f56]{font-size:10px}.mini-msg[data-v-f9b68f56]{font-family:var(--font-mono);color:var(--hud-dim,#8496a5);padding:0 10px}.lib-grid[data-v-f9b68f56]{flex-direction:column;gap:4px;max-height:42vh;padding:6px 10px 2px;display:flex;overflow:hidden auto}.model-card[data-v-f9b68f56]{cursor:grab;transition:background .14s var(--hud-ease,ease);background:#141b26a6;border:0;border-radius:2px;flex-direction:column;align-items:stretch;gap:4px;padding:6px;display:flex;position:relative}.model-card[data-v-f9b68f56]:hover{background:var(--hud-panel-hover,#1a2432)}.model-card[data-v-f9b68f56]:active{cursor:grabbing}.model-card .model-preview-3d[data-v-f9b68f56]{margin-bottom:2px}.model-name[data-v-f9b68f56]{color:var(--hud-text,#d9e4ee);text-align:left;text-overflow:ellipsis;white-space:nowrap;padding:0 2px;font-size:11px;font-weight:600;overflow:hidden}.model-badge[data-v-f9b68f56]{font-family:var(--font-mono);letter-spacing:.08em;color:var(--hud-faint,#5b6c7b);text-align:left;padding:0 2px;font-size:10px}.card-actions[data-v-f9b68f56]{justify-content:flex-end;gap:4px;display:flex}.card-btn[data-v-f9b68f56]{font-family:var(--font-mono);letter-spacing:.06em;color:var(--hud-text,#d9e4ee);border:1px solid var(--hud-line,#263340);cursor:pointer;transition:border-color .14s var(--hud-ease,ease), color .14s var(--hud-ease,ease);background:0 0;border-radius:2px;padding:2px 8px;font-size:10px;font-weight:600}.card-btn[data-v-f9b68f56]:hover:not(:disabled){border-color:var(--hud-accent,#4da3ff);color:var(--hud-accent,#4da3ff)}.card-btn.danger[data-v-f9b68f56]{color:var(--hud-danger,#ff6b5c)}.card-btn.danger[data-v-f9b68f56]:hover:not(:disabled){border-color:var(--hud-danger,#ff6b5c);color:var(--hud-danger,#ff6b5c)}.card-btn[data-v-f9b68f56]:disabled{opacity:.45;cursor:default}.model-img[data-v-f9b68f56]{-o-object-fit:contain;object-fit:contain;pointer-events:none;width:46px;height:68px}.model-img.glb[data-v-f9b68f56]{background:var(--hud-input,#0b1018);border:1px dashed var(--hud-line,#263340);border-radius:2px;justify-content:center;align-items:center;width:100%;height:44px;display:inline-flex}.glb-cube[data-v-f9b68f56]{color:var(--hud-faint,#5b6c7b);font-size:24px;line-height:1}.lib-note[data-v-f9b68f56]{font-family:var(--font-mono);color:var(--hud-faint,#5b6c7b);align-items:center;gap:7px;padding:8px 2px;font-size:9.5px;display:flex}.loading-dot[data-v-f9b68f56]{border:2px solid var(--hud-line,#263340);border-top-color:var(--hud-accent,#4da3ff);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin-f9b68f56}@keyframes spin-f9b68f56{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.loading-dot[data-v-f9b68f56]{animation:none}}.twin-panel[data-v-4878cdde]{width:auto;box-shadow:none;background:0 0;border:0;border-radius:0;flex-direction:column;flex:none;gap:8px;padding:0;display:flex}.twin-head[data-v-4878cdde]{border-bottom:1px solid #26334073;align-items:center;gap:8px;padding:10px 12px 6px;display:flex}.twin-error[data-v-4878cdde]{color:#ffb4b4;word-break:break-all;background:#ff6b6b1a;border:1px solid #ff6b6b59;border-radius:8px;padding:7px 10px;font-size:11px;line-height:1.5}.twin-kicker[data-v-4878cdde]{font-family:var(--font-mono);letter-spacing:.16em;color:var(--hud-text,#d9e4ee);font-size:10px;font-weight:600}.twin-count[data-v-4878cdde]{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--hud-dim,#8496a5);margin-left:auto;font-size:10px}.twin-empty[data-v-4878cdde]{padding:10px}.twin-empty-frame[data-v-4878cdde]{border:1px dashed var(--hud-line);flex-direction:column;gap:4px;padding:12px 10px;display:flex}.twin-empty-title[data-v-4878cdde]{font-family:var(--font-mono);letter-spacing:.1em;color:var(--hud-text);font-size:11px}.twin-empty-sub[data-v-4878cdde]{color:var(--hud-dim);font-size:10px;line-height:1.6}.twin-list[data-v-4878cdde]{flex-direction:column;gap:4px;max-height:46vh;padding:4px 0 10px;display:flex;overflow:hidden auto}.twin-card[data-v-4878cdde]{text-align:left;cursor:pointer;background:#141b26a6;border:0;border-radius:2px;flex-direction:column;gap:6px;margin:0 10px;padding:8px 9px;transition:background .16s;display:flex}.twin-card[data-v-4878cdde]:hover{background:var(--hud-panel-hover)}.twin-card[data-v-4878cdde]:active{background:var(--hud-panel-raised)}.twin-card:hover .twin-name[data-v-4878cdde]{color:#e8f1f8}.twin-card.daq[data-v-4878cdde]{background:#35e0a00f;border:1px solid #35e0a052}.twin-card.daq[data-v-4878cdde]:hover{background:#35e0a01c;border-color:#35e0a080}.twin-card.daq .twin-code[data-v-4878cdde],.twin-card.daq .twin-model-tag[data-v-4878cdde]{color:var(--hud-accent,#35e0a0)}.twin-row[data-v-4878cdde]{align-items:center;gap:8px;min-width:0;display:flex}.twin-model-tag[data-v-4878cdde]{min-width:30px;font-family:var(--font-mono);letter-spacing:.08em;color:var(--hud-faint);flex:none;font-size:10px;font-weight:600}.twin-idbar[data-v-4878cdde]{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.twin-name[data-v-4878cdde]{color:var(--hud-text);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:600;overflow:hidden}.twin-code[data-v-4878cdde]{font-family:var(--font-mono);letter-spacing:.08em;color:var(--hud-dim);font-size:10px}.twin-del[data-v-4878cdde]{width:18px;height:18px;font-family:var(--font-mono);color:var(--hud-dim,#8496a5);border:1px solid var(--hud-line,#263340);cursor:pointer;background:0 0;border-radius:2px;flex:none;font-size:10px;line-height:1;transition:border-color .14s,color .14s,background .14s}.twin-del[data-v-4878cdde]:hover:not(:disabled){border-color:var(--hud-danger,#ff6b5c);color:var(--hud-danger,#ff6b5c)}.twin-del.armed[data-v-4878cdde]{color:#1a0d0a;background:var(--hud-danger,#ff6b5c);border-color:var(--hud-danger,#ff6b5c);width:auto;padding:0 5px}.twin-del[data-v-4878cdde]:disabled{opacity:.4;cursor:default}.twin-state[data-v-4878cdde]{font-family:var(--font-mono);letter-spacing:.08em;color:var(--hud-dim);border:1px solid var(--hud-line);border-radius:2px;flex:none;align-items:center;gap:5px;padding:2px 5px;font-size:10px;display:inline-flex}.twin-state.s-alarm[data-v-4878cdde]{color:var(--hud-danger);border-color:#ff6b5c80}.twin-state.s-running[data-v-4878cdde]{color:var(--hud-ok);border-color:#7fd4a066}.twin-state-dot[data-v-4878cdde]{border-radius:50%;width:5px;height:5px}.twin-tele[data-v-4878cdde]{border-top:1px dashed var(--hud-line);grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 10px;margin:0 0 2px;padding-top:6px;display:grid}.tele-item[data-v-4878cdde]{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--hud-dim);justify-content:space-between;gap:6px;min-width:0;font-size:9.5px;display:flex}.tele-item em[data-v-4878cdde]{text-overflow:ellipsis;font-style:normal;overflow:hidden}.tele-item b[data-v-4878cdde]{color:var(--hud-text);font-weight:500}.twin-daq[data-v-4878cdde]{border-top:1px dashed #35e0a04d;flex-direction:column;gap:2px;margin:0 0 2px;padding-top:6px;display:flex}.daq-item[data-v-4878cdde]{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--hud-accent,#35e0a0);justify-content:space-between;align-items:baseline;gap:6px;min-width:0;font-size:9.5px;display:flex}.daq-item em[data-v-4878cdde]{text-overflow:ellipsis;white-space:nowrap;opacity:.85;font-style:normal;overflow:hidden}.daq-item b[data-v-4878cdde]{white-space:nowrap;font-size:10.5px;font-weight:700}.daq-item b i[data-v-4878cdde]{opacity:.75;margin-left:2px;font-size:10px;font-style:normal;font-weight:500}.daq-item.alarm[data-v-4878cdde]{color:var(--hud-amber,#f6c453)}.twin-dcw[data-v-4878cdde]{border-top:1px dashed #f0a04c59;flex-direction:column;gap:6px;margin:0 0 2px;padding-top:6px;display:flex}.dcw-item[data-v-4878cdde]{flex-direction:column;gap:3px;display:flex}.dcw-head[data-v-4878cdde]{font-family:var(--font-mono);color:var(--hud-dim);justify-content:space-between;align-items:baseline;gap:6px;font-size:9.5px;display:flex}.dcw-head em[data-v-4878cdde]{text-overflow:ellipsis;white-space:nowrap;font-style:normal;overflow:hidden}.dcw-src[data-v-4878cdde]{color:var(--hud-amber,#f6c453);border:1px solid #f0a04c80;border-radius:2px;margin-left:4px;padding:0 3px;font-size:10px;font-style:normal}.dcw-set[data-v-4878cdde]{font-variant-numeric:tabular-nums;color:var(--hud-amber,#f6c453);white-space:nowrap;font-size:12px;font-weight:700}.dcw-set i[data-v-4878cdde]{opacity:.75;margin-left:2px;font-size:10px;font-style:normal;font-weight:500}.dcw-act[data-v-4878cdde]{font-family:var(--font-mono);color:var(--hud-dim);justify-content:space-between;align-items:baseline;gap:6px;font-size:10px;display:flex}.dcw-act em[data-v-4878cdde]{letter-spacing:.08em;color:var(--hud-faint);font-size:10px;font-style:normal}.dcw-act b[data-v-4878cdde]{font-variant-numeric:tabular-nums;color:var(--hud-accent,#35e0a0);white-space:nowrap;font-size:11.5px;font-weight:700}.dcw-act b i[data-v-4878cdde]{opacity:.75;margin-left:2px;font-size:10px;font-style:normal;font-weight:500}.dcw-act-at[data-v-4878cdde]{color:var(--hud-faint);font-size:10px;font-style:normal}.dcw-win[data-v-4878cdde]{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--hud-faint);letter-spacing:.04em;font-size:10px}.dcw-win span[data-v-4878cdde]{border-bottom:1px dotted var(--hud-line);padding-bottom:1px}.dcw-ctrl[data-v-4878cdde]{align-items:center;gap:4px;display:flex}.dcw-ctrl .ctrl-input[data-v-4878cdde]{flex:1;width:auto;min-width:0}.dcw-send[data-v-4878cdde]{color:var(--hud-amber,#f6c453);border-color:#f0a04c80;flex:none}.dcw-send[data-v-4878cdde]:hover:not(:disabled){color:var(--hud-amber,#f6c453);border-color:var(--hud-amber,#f6c453);background:#f0a04c1f}.dcw-err[data-v-4878cdde]{font-family:var(--font-mono);color:var(--hud-danger,#ff6b5c);font-size:10px}.ctrl-btn[data-v-4878cdde]{letter-spacing:.06em;font-size:10px;font-weight:600;font-family:var(--font-mono);color:var(--hud-text);border:1px solid var(--hud-line);cursor:pointer;background:0 0;border-radius:2px;padding:3px 7px;transition:border-color .14s,color .14s,background .14s}.ctrl-btn[data-v-4878cdde]:hover:not(:disabled){border-color:var(--hud-accent);color:var(--hud-accent)}.ctrl-btn[data-v-4878cdde]:disabled{opacity:.45;cursor:default}.ctrl-input[data-v-4878cdde]{width:48px;font-family:var(--font-mono);border:1px solid var(--hud-line);background:var(--hud-input);color:var(--hud-text);font-variant-numeric:tabular-nums;border-radius:2px;padding:3px 6px;font-size:10px}.ctrl-input[data-v-4878cdde]:focus{border-color:var(--hud-accent);outline:none}.twin-err[data-v-4878cdde]{color:var(--hud-danger);padding:0 10px 8px;font-size:9.5px}.town-view[data-v-7027783b]{--hud-bg:#070b13;--hud-panel:#0d1420;--hud-panel-2:#111a2b;--hud-panel-raised:#152034;--hud-panel-hover:#16233a;--hud-line:#1d2a42;--hud-line-soft:#16202f;--hud-line-hi:#2c4568;--hud-input:#0a111d;--hud-text:#e8eef8;--hud-dim:#8fa0b5;--hud-faint:#5f6e84;--hud-accent:#35e0a0;--hud-accent-dim:#1f9e6e;--hud-cyan:#41c8f4;--hud-amber:#f6c453;--hud-ok:#35e0a0;--hud-danger:#ff6b6b;--hud-shadow:0 16px 40px #0000008c;--hud-ease:cubic-bezier(.22, .68, .36, 1);--hud-r-sm:8px;--hud-r-md:10px;--hud-r-lg:12px;background:var(--hud-bg);height:100%;min-height:0;color:var(--hud-text);font-family:var(--font-body);flex-direction:column;font-size:13px;display:flex}.topnav[data-v-7027783b]{border-bottom:1px solid var(--hud-line-soft);z-index:60;background:linear-gradient(#0c1320,#0a101b);flex:none;align-items:center;gap:14px;height:50px;padding:0 16px;display:flex;position:relative}.topnav[data-v-7027783b]:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 4%,#35e0a059 50%,#0000 96%);height:1px;position:absolute;bottom:-1px;left:0;right:0}.brand[data-v-7027783b]{align-items:center;gap:10px;min-width:230px;display:flex}.brand-glyph[data-v-7027783b]{flex:none;width:26px;height:26px}.brand-name[data-v-7027783b]{letter-spacing:.06em;font-size:14.5px;font-weight:800}.brand-name em[data-v-7027783b]{color:var(--hud-accent);font-style:normal}.brand-sub[data-v-7027783b]{color:var(--hud-faint);letter-spacing:.18em;margin-top:2px;font-size:10px}.nav-tabs[data-v-7027783b]{align-items:center;gap:10px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.nav-action[data-v-7027783b]{border-radius:var(--hud-r-sm);height:32px;color:var(--hud-text);transition:background .15s var(--hud-ease), border-color .15s var(--hud-ease);background:0 0;border:1px solid #27395c;padding:0 14px;font-size:12px;font-weight:600}.nav-action[data-v-7027783b]:hover{background:#14203a;border-color:#33507c}.save-chip[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.08em;border:1px solid var(--hud-line);color:var(--hud-dim);white-space:nowrap;border-radius:6px;padding:3px 9px;font-size:10px}.save-chip.s-dirty[data-v-7027783b]{color:var(--hud-amber);border-color:#f6c45366}.save-chip.s-saving[data-v-7027783b]{color:var(--hud-dim)}.save-chip.s-saved[data-v-7027783b]{color:var(--hud-accent);border-color:#35e0a066}.save-chip.s-error[data-v-7027783b]{color:var(--hud-danger);border-color:#ff6b6b66}.nav-right[data-v-7027783b]{align-items:center;gap:10px;margin-left:auto;display:flex}.nav-chip[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-dim);border:1px solid var(--hud-line);font-variant-numeric:tabular-nums;border-radius:6px;padding:2px 8px;font-size:10.5px}.avatar-chip[data-v-7027783b]{border:1px solid var(--hud-line-soft);background:#0e1626;border-radius:999px;align-items:center;gap:8px;padding:4px 10px 4px 4px;display:flex}.avatar-chip span[data-v-7027783b]{color:var(--hud-text);font-size:12px}.town-view small[data-v-7027783b]{font-size:11px}.avatar-fallback[data-v-7027783b]{color:#04120c;background:linear-gradient(135deg,#1f9e6e,#41c8f4);border-radius:50%;place-items:center;width:24px;height:24px;font-size:10px;font-weight:700;display:grid}.seg[data-v-7027783b]{border:1px solid var(--hud-line);border-radius:var(--hud-r-sm);background:#0a111d;padding:2px;display:inline-flex}.seg button[data-v-7027783b]{color:var(--hud-dim);transition:background .15s var(--hud-ease), color .15s var(--hud-ease);border-radius:6px;padding:4px 16px;font-size:11.5px;font-weight:600}.seg button.on[data-v-7027783b]{background:var(--hud-accent);color:#04120c;box-shadow:0 0 12px #35e0a059}.app[data-v-7027783b]{flex:1;grid-template-columns:clamp(212px,19vw,250px) minmax(0,1fr) clamp(284px,26vw,342px);min-height:0;display:grid}.rail[data-v-7027783b]{background:linear-gradient(#0a101c,#080d16);flex-direction:column;gap:10px;min-height:0;padding:10px;display:flex;overflow:hidden auto}.rail-left[data-v-7027783b]{border-right:1px solid var(--hud-line-soft)}.rail-right[data-v-7027783b]{border-left:1px solid var(--hud-line-soft)}.rail[data-v-7027783b]::-webkit-scrollbar{width:8px}.rail[data-v-7027783b]::-webkit-scrollbar-thumb{background:#1c2942;border:2px solid #080d16;border-radius:4px}.rail[data-v-7027783b]::-webkit-scrollbar-track{background:0 0}.ins-enter-active[data-v-7027783b]{transition:opacity .2s var(--hud-ease), transform .2s var(--hud-ease)}.ins-leave-active[data-v-7027783b]{transition:opacity .12s}.ins-enter-from[data-v-7027783b]{opacity:0;transform:translate(12px)}.ins-leave-to[data-v-7027783b]{opacity:0}.panel[data-v-7027783b]{border:1px solid var(--hud-line);border-radius:var(--hud-r-lg);background:linear-gradient(#101827,#0d1420);flex:none;padding:12px;position:relative;box-shadow:inset 0 1px #8fb0dc12,0 10px 28px #03070e73}.panel[data-v-7027783b]:before{content:"";border-radius:var(--hud-r-lg) var(--hud-r-lg) 0 0;pointer-events:none;background:linear-gradient(#78a5dc0e,#0000);height:44px;position:absolute;inset:0 0 auto}.panel-hd[data-v-7027783b]{align-items:center;gap:8px;margin-bottom:10px;display:flex}.panel-hd h3[data-v-7027783b]{letter-spacing:.02em;flex:1;margin:0;padding-left:11px;font-size:12.5px;font-weight:700;position:relative}.panel-hd h3[data-v-7027783b]:before{content:"";background:var(--hud-accent);width:3px;height:12px;box-shadow:0 0 8px color-mix(in srgb, var(--hud-accent) 45%, transparent);border-radius:2px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.panel-tag[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-cyan);background:#41c8f41a;border:1px solid #41c8f440;border-radius:6px;padding:0 6px;font-size:9.5px;line-height:15px}.lib-embed[data-v-7027783b]{margin:-4px 0 0}.daq-list[data-v-7027783b],.scene-list[data-v-7027783b]{flex-direction:column;gap:4px;display:flex}.daq-card[data-v-7027783b]{border-radius:var(--hud-r-md);background:var(--hud-panel-2);cursor:grab;transition:transform .15s var(--hud-ease), border-color .15s var(--hud-ease), background .15s var(--hud-ease);border:1px solid #1f4a3a8c;align-items:center;gap:10px;margin-bottom:4px;padding:8px 9px;display:flex}.daq-card[data-v-7027783b]:hover{background:#12291f;border-color:#35e0a080;transform:translateY(-1px)}.daq-card[data-v-7027783b]:active{cursor:grabbing}.daq-ico[data-v-7027783b]{width:34px;height:34px;color:var(--hud-accent);background:linear-gradient(160deg,#12291f,#0e1a24);border:1px solid #1f4a3aa6;border-radius:9px;flex:none;place-items:center;display:grid}.daq-svg[data-v-7027783b]{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.daq-meta[data-v-7027783b]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.daq-name[data-v-7027783b]{color:var(--hud-text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.daq-code[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.08em;color:var(--hud-faint);font-size:10px}.daq-count[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-accent);background:#35e0a01a;border:1px solid #35e0a047;border-radius:6px;flex:none;padding:0 6px;font-size:10px;line-height:15px}.daq-group[data-v-7027783b]{flex-direction:column;display:flex}.daq-card.tpl[data-v-7027783b]{cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:0}.daq-card.tpl[data-v-7027783b]:active{cursor:pointer}.daq-card.tpl[data-v-7027783b]:focus-visible{outline:1px solid var(--hud-accent);outline-offset:1px}.daq-caret[data-v-7027783b]{color:var(--hud-faint);transition:transform .15s var(--hud-ease);flex:none;font-size:10px}.daq-card.tpl.open .daq-caret[data-v-7027783b]{transform:rotate(90deg)}.daq-card.tpl[data-v-7027783b]:hover{transform:none}.daq-add[data-v-7027783b]{width:18px;height:18px;color:var(--hud-faint);cursor:pointer;opacity:0;transition:opacity .15s var(--hud-ease), color .15s var(--hud-ease), border-color .15s var(--hud-ease), transform .16s cubic-bezier(.22, 1, .36, 1);background:0 0;border:1px solid #2c4568b3;border-radius:6px;flex:none;place-items:center;font-size:12px;line-height:1;display:grid}.daq-card.tpl:focus-within .daq-add[data-v-7027783b],.daq-card.tpl:hover .daq-add[data-v-7027783b]{opacity:1}@media (hover:none){.daq-add[data-v-7027783b]{opacity:1}}.daq-add[data-v-7027783b]:hover{color:var(--hud-accent);border-color:#35e0a080}.daq-add[data-v-7027783b]:active{transform:scale(.9)}.daq-children[data-v-7027783b]{animation:daq-tree-in-7027783b .16s var(--hud-ease);flex-direction:column;gap:2px;margin:2px 0 6px;padding-left:16px;display:flex}@keyframes daq-tree-in-7027783b{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.daq-node[data-v-7027783b]{cursor:default;transition:background .15s var(--hud-ease), border-color .15s var(--hud-ease), transform .16s cubic-bezier(.22, 1, .36, 1);border:1px solid #0000;border-radius:7px;align-items:center;gap:8px;padding:5px 8px;display:flex}.daq-node[data-v-7027783b]:hover{background:#111b2c;border-color:#2c456899}.daq-node[draggable=true][data-v-7027783b]{cursor:grab}.daq-node[draggable=true][data-v-7027783b]:active{cursor:grabbing;transform:scale(.98)}.daq-node.placed[data-v-7027783b]{cursor:pointer}.daq-node.placed[draggable=true][data-v-7027783b]{cursor:grab}.node-dot[data-v-7027783b]{background:var(--hud-ok);width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--hud-ok) 50%, transparent);border-radius:50%;flex:none}.node-dot.offline[data-v-7027783b]{border:1px solid var(--hud-faint);box-shadow:none;background:0 0}.node-dot.warn[data-v-7027783b]{background:var(--hud-amber);box-shadow:0 0 6px color-mix(in srgb, var(--hud-amber) 50%, transparent)}.node-dot.alarm[data-v-7027783b]{background:var(--hud-danger);box-shadow:0 0 6px color-mix(in srgb, var(--hud-danger) 60%, transparent)}.daq-node .daq-name[data-v-7027783b]{font-size:11.5px;font-weight:500}.daq-node-sub[data-v-7027783b]{align-items:baseline;gap:7px;min-width:0;display:flex}.node-val[data-v-7027783b]{color:var(--hud-cyan);flex:none;font-size:10px}.node-dev[data-v-7027783b]{color:var(--hud-faint);white-space:nowrap;text-overflow:ellipsis;max-width:104px;font-size:9.5px;overflow:hidden}.daq-empty-hint[data-v-7027783b]{color:var(--hud-faint);padding:4px 8px 6px 10px;font-size:10px}.scene-row[data-v-7027783b]{border-radius:var(--hud-r-md);cursor:grab;transition:background .15s var(--hud-ease), border-color .15s var(--hud-ease);border:1px solid #0000;align-items:center;gap:10px;margin-bottom:4px;padding:8px 9px;display:flex}.scene-row[data-v-7027783b]:hover{background:#111b2c}.scene-row.active[data-v-7027783b]{background:#35e0a00f;border-color:#35e0a059}.scene-row[data-v-7027783b]:active{cursor:grabbing}.scene-ico[data-v-7027783b]{background:color-mix(in srgb, var(--ch,var(--hud-accent)) 16%, #101a2c);border:1px solid color-mix(in srgb, var(--ch,var(--hud-accent)) 45%, transparent);border-radius:8px;flex:none;width:30px;height:30px}.scene-row.active .scene-ico[data-v-7027783b]{box-shadow:0 0 10px color-mix(in srgb, var(--ch,var(--hud-accent)) 40%, transparent)}.scene-meta-wrap[data-v-7027783b]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.scene-name[data-v-7027783b]{color:var(--hud-text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.scene-meta[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-faint);font-size:10px}.scene-add[data-v-7027783b],.scene-cur[data-v-7027783b]{border-radius:6px;flex:none;margin-left:auto;padding:1px 7px;font-size:10px}.scene-cur[data-v-7027783b]{color:var(--hud-accent);border:1px solid #35e0a066}.scene-add[data-v-7027783b]{color:var(--hud-dim);border:1px solid var(--hud-line)}.scene-hint[data-v-7027783b]{color:var(--hud-amber);padding:6px 4px 0;font-size:10px;line-height:1.5}.stage-col[data-v-7027783b]{flex-direction:column;min-width:0;min-height:0;display:flex}.stage[data-v-7027783b]{background:#060a11;flex:1;min-height:320px;position:relative;overflow:hidden}.stage[data-v-7027783b]:fullscreen{border-radius:0}.town-host[data-v-7027783b]{position:absolute;inset:0}.town-host canvas[data-v-7027783b]{image-rendering:auto;display:block}.stage-vignette[data-v-7027783b]{pointer-events:none;z-index:3;background:radial-gradient(120% 90% at 50% 38%,#0000 52%,#02040980 100%),linear-gradient(#080d1852,#0000 18%),repeating-linear-gradient(0deg,#ffffff03 0 1px,#0000 1px 3px);position:absolute;inset:0}.stage-top[data-v-7027783b]{z-index:6;pointer-events:none;justify-content:space-between;align-items:flex-start;padding:14px 16px;display:flex;position:absolute;top:0;left:0;right:0}.stage-top[data-v-7027783b]>*{pointer-events:auto}.vp-title[data-v-7027783b]{border-radius:var(--hud-r-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#090e18b8;border:1px solid #1c2942;align-items:center;gap:10px;padding:8px 12px;display:flex}.vp-title h2[data-v-7027783b]{letter-spacing:.02em;margin:0;font-size:15px;font-weight:700}.vp-id[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.04em;color:var(--hud-dim);white-space:nowrap;background:#0a111d99;border:1px solid #223050;border-radius:6px;padding:1px 8px;font-size:10px}.vp-tools[data-v-7027783b]{align-items:center;gap:8px;display:flex}.vp-tool[data-v-7027783b]{width:34px;height:34px;color:var(--hud-dim);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:color .15s var(--hud-ease), border-color .15s var(--hud-ease), background .15s var(--hud-ease);background:#0d1420d9;border:1px solid #223050;border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid}.vp-tool[data-v-7027783b]:hover{color:var(--hud-text);border-color:#33507c}.vp-tool.on[data-v-7027783b]{color:#04120c;background:var(--hud-accent);border-color:var(--hud-accent);box-shadow:0 0 12px #35e0a04d}.vp-svg[data-v-7027783b]{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.leaders[data-v-7027783b]{z-index:7;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.angle-chip[data-v-7027783b]{z-index:6;border-radius:var(--hud-r-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--hud-dim);background:#090e18c7;border:1px solid #1c2942;align-items:center;gap:6px;padding:5px 8px;font-size:11.5px;display:flex;position:absolute;top:64px;left:16px}.angle-chip select[data-v-7027783b]{color:var(--hud-text);cursor:pointer;background:0 0;border:0;font-size:11.5px;font-weight:600}.angle-chip select option[data-v-7027783b]{background:#0e1626}.callout-layer[data-v-7027783b]{z-index:7;pointer-events:none;position:absolute;inset:0;overflow:hidden}.callout[data-v-7027783b]{opacity:0;pointer-events:none;border-radius:var(--hud-r-md);min-width:150px;box-shadow:var(--hud-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .22s var(--hud-ease), transform .22s var(--hud-ease), border-color .15s var(--hud-ease);background:linear-gradient(#101a2bf0,#0a101cf0);border:1px solid #41c8f466;padding:9px 12px 8px;position:absolute;transform:translate(-50%,-112%)translateY(5px)}.callout.near[data-v-7027783b]{opacity:1;pointer-events:auto;transform:translate(-50%,-112%)}.leaders g[data-v-7027783b]{opacity:0;transition:opacity .22s var(--hud-ease)}.leaders g.near[data-v-7027783b]{opacity:1}.callout.warn[data-v-7027783b]{border-color:#f6c45399}.co-label[data-v-7027783b]{color:var(--hud-dim);white-space:nowrap;align-items:center;gap:6px;font-size:10.5px;display:flex}.co-dot[data-v-7027783b]{background:var(--hud-cyan);border-radius:50%;flex:none;width:6px;height:6px;box-shadow:0 0 8px #41c8f4e6}.callout.warn .co-dot[data-v-7027783b]{background:var(--hud-amber);box-shadow:0 0 8px #f6c453e6}.co-val[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:-.01em;color:var(--hud-text);font-variant-numeric:tabular-nums;margin-top:2px;font-size:21px;font-weight:700}.co-val small[data-v-7027783b]{color:var(--hud-dim);margin-left:3px;font-size:10.5px;font-weight:500}.co-range[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-faint);margin-top:1px;font-size:9.5px}.callout.warn .co-range[data-v-7027783b]{color:var(--hud-amber)}.kpi-strip[data-v-7027783b]{z-index:6;pointer-events:none;flex-wrap:wrap;justify-content:center;gap:10px;padding:0 16px;display:flex;position:absolute;bottom:12px;left:0;right:0}.kpi[data-v-7027783b]{pointer-events:auto;border-radius:var(--hud-r-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s var(--hud-ease), transform .2s var(--hud-ease), box-shadow .2s var(--hud-ease);background:linear-gradient(#141e30eb,#0c1320e6);border:1px solid #1e2c46;align-items:center;gap:10px;padding:8px 14px;display:flex;box-shadow:inset 0 1px #8fb0dc14,0 8px 20px #03070e66}.kpi[data-v-7027783b]:hover{border-color:#2c4568;transform:translateY(-1px);box-shadow:inset 0 1px #8fb0dc1a,0 12px 26px #03070e80}.kpi-ico[data-v-7027783b]{border-radius:8px;flex:none;place-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:grid}.kpi-ico.c1[data-v-7027783b]{color:var(--hud-cyan);background:#41c8f41f}.kpi-ico.c2[data-v-7027783b]{color:var(--hud-accent);background:#35e0a01f}.kpi-ico.c3[data-v-7027783b]{color:var(--hud-amber);background:#f6c4531f}.kpi-ico.c4[data-v-7027783b]{color:#a78bfa;background:#a78bfa24}.kpi-ico.c5[data-v-7027783b]{color:var(--hud-danger);background:#ff6b6b1f}.kpi-svg[data-v-7027783b]{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.kpi-meta[data-v-7027783b]{line-height:1.25}.kpi-label[data-v-7027783b]{color:var(--hud-dim);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.kpi-val[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-text);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:19px;font-weight:700}.kpi-val small[data-v-7027783b]{color:var(--hud-faint);margin-left:2px;font-size:10px;font-weight:500}.empty-hint[data-v-7027783b]{z-index:4;text-align:center;color:var(--hud-dim);pointer-events:none;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.empty-hint b[data-v-7027783b]{color:var(--hud-text);margin-bottom:4px;font-size:14px;display:block}.empty-hint span[data-v-7027783b]{font-size:12px}@media (prefers-reduced-motion:no-preference){.dock[data-v-7027783b],.rail-left[data-v-7027783b],.rail-right[data-v-7027783b]{animation:.52s cubic-bezier(.22,.68,.36,1) backwards hud-boot-7027783b}.rail-left[data-v-7027783b]{animation-delay:40ms}.rail-right[data-v-7027783b]{animation-delay:.15s}.dock[data-v-7027783b]{animation-delay:.26s}}@keyframes hud-boot-7027783b{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.dock[data-v-7027783b]{border-top:1px solid var(--hud-line-soft);background:#080d16;flex:none;grid-template-columns:308px 1fr;gap:10px;padding:10px;display:grid}.dock-card[data-v-7027783b]{border:1px solid var(--hud-line);border-radius:var(--hud-r-lg);background:linear-gradient(#101827,#0d1420);flex-direction:column;min-height:178px;padding:12px 14px;display:flex}.dock-hd[data-v-7027783b]{align-items:center;gap:8px;margin-bottom:10px;display:flex}.dock-hd h3[data-v-7027783b]{flex:none;margin:0;font-size:12.5px;font-weight:700}.dock-count[data-v-7027783b]{letter-spacing:.08em;color:var(--hud-dim);border:1px solid var(--hud-line-soft);border-radius:6px;flex:none;padding:1px 7px;font-size:9.5px}.dock-mode[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.1em;color:var(--hud-faint);border:1px solid var(--hud-line);border-radius:6px;margin-left:auto;padding:1px 7px;font-size:10px}.ctl-row[data-v-7027783b]{align-items:center;gap:10px;margin-bottom:9px;display:flex}.ctl-sec[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--hud-faint);border-top:1px solid var(--hud-line-soft);margin:2px 0 7px;padding-top:7px;font-size:10px;font-weight:600}.ctl-sec[data-v-7027783b]:first-of-type{border-top:0;margin-top:0;padding-top:0}.ctl-name[data-v-7027783b]{color:var(--hud-dim);flex:none;width:64px;font-size:11.5px}.ctl-val[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-text);text-align:right;font-variant-numeric:tabular-nums;flex:none;width:38px;font-size:11px}.ctl-range[data-v-7027783b]{appearance:none;background:linear-gradient(90deg, var(--hud-accent-dim) var(--fill,50%), #1d2a42 var(--fill,50%));cursor:pointer;border-radius:2px;flex:1;height:4px}.ctl-range[data-v-7027783b]::-webkit-slider-thumb{-webkit-appearance:none;border:2.5px solid var(--hud-accent);width:13px;height:13px;-webkit-transition:transform .15s var(--hud-ease), box-shadow .15s var(--hud-ease);transition:transform .15s var(--hud-ease), box-shadow .15s var(--hud-ease);background:#fff;border-radius:50%;box-shadow:0 1px 4px #00000080}.ctl-range[data-v-7027783b]:hover::-webkit-slider-thumb{transform:scale(1.18);box-shadow:0 0 0 5px #35e0a01f,0 1px 4px #00000080}.ctl-range[data-v-7027783b]:active::-webkit-slider-thumb{transform:scale(1.05)}.bp-range[data-v-7027783b]{accent-color:var(--hud-accent)}.snap-toggle[data-v-7027783b]{height:22px;color:var(--hud-dim);background:var(--hud-input);border:1px solid var(--hud-line);cursor:pointer;border-radius:6px;flex:1;font-size:10.5px;font-weight:600}.snap-toggle.on[data-v-7027783b]{color:var(--hud-accent);background:#35e0a014;border-color:#35e0a066}.fps-seg[data-v-7027783b]{flex:1;gap:4px;display:flex}.fps-seg button[data-v-7027783b]{height:22px;font-family:var(--font-mono);color:var(--hud-dim);background:var(--hud-input);border:1px solid var(--hud-line);cursor:pointer;transition:border-color .14s var(--hud-ease), color .14s var(--hud-ease), background .14s var(--hud-ease);border-radius:6px;flex:1;font-size:10.5px;font-weight:600}.fps-seg button[data-v-7027783b]:hover{border-color:var(--hud-line-hi);color:var(--hud-text)}.fps-seg button.on[data-v-7027783b]{color:var(--hud-accent);background:#35e0a014;border-color:#35e0a066}.ctl-btns[data-v-7027783b]{gap:8px;margin-top:auto;display:flex}.btn[data-v-7027783b]{border-radius:var(--hud-r-sm);white-space:nowrap;cursor:pointer;height:32px;transition:filter .15s var(--hud-ease), background .15s var(--hud-ease), border-color .15s var(--hud-ease);background:0 0;flex:1;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.btn-primary[data-v-7027783b]{background:var(--hud-accent-dim);color:#04120c}.btn-primary[data-v-7027783b]:hover{background:#25b57e}.btn-ghost[data-v-7027783b]{color:var(--hud-text);border:1px solid #27395c}.btn-ghost[data-v-7027783b]:hover{background:#14203a;border-color:#33507c}.btn-danger[data-v-7027783b]{color:#fff;background:#b3273a}.btn-danger[data-v-7027783b]:hover{background:#d1304a}.btn[data-v-7027783b]:not(:disabled):active{transform:translateY(1px)}.bind-select[data-v-7027783b]:disabled,.btn[data-v-7027783b]:disabled,.nav-action[data-v-7027783b]:disabled,.obj-input[data-v-7027783b]:disabled,.obj-mini[data-v-7027783b]:disabled,.obj-select[data-v-7027783b]:disabled{opacity:.38;cursor:not-allowed;filter:saturate(.4)}.btn[data-v-7027783b]:disabled:hover,.nav-action[data-v-7027783b]:disabled:hover{background:inherit}.trend-legend[data-v-7027783b]{scrollbar-width:thin;scrollbar-color:#1c2942 transparent;flex-wrap:wrap;flex:auto;align-content:flex-start;gap:5px;min-width:0;max-height:47px;margin-left:6px;transition:max-height .24s cubic-bezier(.22,.68,.36,1);display:flex;overflow-y:auto}.trend-legend.expanded[data-v-7027783b]{max-height:100px}.trend-legend[data-v-7027783b]::-webkit-scrollbar{width:6px}.trend-legend[data-v-7027783b]::-webkit-scrollbar-thumb{background:#1c2942;border-radius:3px}.trend-legend[data-v-7027783b]::-webkit-scrollbar-track{background:0 0}.lg-chip[data-v-7027783b]{color:var(--hud-dim);border:1px solid var(--hud-line-soft);cursor:pointer;transition:opacity .15s var(--hud-ease), border-color .15s var(--hud-ease), color .15s var(--hud-ease);background:#0d142099;border-radius:6px;align-items:center;gap:5px;padding:2px 8px;font-size:10.5px;display:flex}.lg-chip[data-v-7027783b]:hover{border-color:var(--hud-line-hi);color:var(--hud-text)}.lg-chip.off[data-v-7027783b]{opacity:.32}.lg-more[data-v-7027783b]{letter-spacing:.04em;color:var(--hud-faint);border-style:dashed;font-size:10px}.lg-more[data-v-7027783b]:hover{color:var(--hud-accent);border-color:#35e0a066}.lg-dot[data-v-7027783b]{border-radius:2px;width:7px;height:7px}.trend-wrap[data-v-7027783b]{flex:1;min-height:0;position:relative}.trend-cv[data-v-7027783b]{width:100%;height:100%;position:absolute;inset:0}.trend-empty[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-faint);place-content:center;font-size:10.5px;display:grid;position:absolute;inset:0}.inspector[data-v-7027783b]{animation:rise-7027783b .18s var(--hud-ease)}@keyframes rise-7027783b{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ins-chip-row[data-v-7027783b]{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.ins-chip[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-dim);border:1px solid #26354a;border-radius:6px;padding:1.5px 7px;font-size:9.5px}.ins-chip.accent[data-v-7027783b]{color:var(--hud-accent);border-color:#35e0a066}.sect-hd[data-v-7027783b]{color:var(--hud-faint);letter-spacing:.16em;align-items:center;gap:6px;margin:10px 0 7px;font-size:10px;font-weight:700;display:flex}.sect-hd[data-v-7027783b]:before{content:"";background:var(--hud-accent);opacity:.55;border-radius:1px;width:3px;height:9px}.obj-row[data-v-7027783b]{align-items:center;gap:8px;margin-bottom:8px;display:flex}.obj-label[data-v-7027783b]{width:52px;color:var(--hud-dim);flex:none;font-size:10.5px}.obj-input[data-v-7027783b],.obj-select[data-v-7027783b]{min-width:0;color:var(--hud-text);background:var(--hud-input);border:1px solid var(--hud-line);transition:border-color .15s var(--hud-ease);border-radius:7px;flex:1;padding:5px 8px;font-size:11.5px}.obj-input[data-v-7027783b]:focus,.obj-select[data-v-7027783b]:focus{border-color:var(--hud-accent);outline:none}.obj-sep[data-v-7027783b]{background:var(--hud-line-soft);height:1px;margin:8px 0}.range-status[data-v-7027783b]{min-width:0;color:var(--hud-faint);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:10px;overflow:hidden}.obj-mini[data-v-7027783b]{color:var(--hud-dim);background:var(--hud-input);border:1px solid var(--hud-line);cursor:pointer;border-radius:7px;flex:none;padding:4px 10px;font-size:10.5px;font-weight:600}.obj-mini.on[data-v-7027783b]{color:#04120c;background:var(--hud-accent);border-color:var(--hud-accent)}.obj-mini.danger[data-v-7027783b]{color:var(--hud-danger);width:100%;margin-top:4px}.obj-range[data-v-7027783b]{accent-color:var(--hud-accent);flex:1}.bp-val[data-v-7027783b]{text-align:right;width:40px;font-family:var(--font-mono);color:var(--hud-text);font-variant-numeric:tabular-nums;flex:none;font-size:10.5px}.bp-seg[data-v-7027783b]{gap:4px;display:flex}.seg-btn[data-v-7027783b]{color:var(--hud-dim);background:var(--hud-input);border:1px solid var(--hud-line);cursor:pointer;transition:border-color .14s var(--hud-ease), color .14s var(--hud-ease), background .14s var(--hud-ease);border-radius:7px;padding:4px 12px;font-size:10.5px;font-weight:600}.seg-btn[data-v-7027783b]:hover{border-color:var(--hud-line-hi);color:var(--hud-text)}.seg-btn.on[data-v-7027783b]{color:#04120c;background:var(--hud-accent);border-color:var(--hud-accent)}.xz-seg[data-v-7027783b]{gap:6px;margin-bottom:8px;display:flex}.xz-seg .seg-btn[data-v-7027783b]{flex:1}.scale-row[data-v-7027783b]{align-items:center;gap:8px;display:flex}.scale-max[data-v-7027783b],.scale-min[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-faint);font-size:10px}.scale-range[data-v-7027783b]{accent-color:var(--hud-accent);flex:1}.scale-val[data-v-7027783b]{text-align:center;font-family:var(--font-mono);color:var(--hud-text);font-variant-numeric:tabular-nums;margin-bottom:4px;font-size:11px}.ins-foot[data-v-7027783b]{gap:8px;margin-top:12px;display:flex}.ins-del[data-v-7027783b]{color:var(--hud-danger);background:#ff6b6b1a;border:1px solid #ff6b6b66}.ins-del.armed[data-v-7027783b]{background:var(--hud-danger);color:#fff}.ins-empty[data-v-7027783b]{color:var(--hud-faint);text-align:center;padding:8px 0 6px;font-size:11px}.health-body[data-v-7027783b]{align-items:center;gap:14px;display:flex}.donut-wrap[data-v-7027783b]{flex:none;width:118px;height:118px;position:relative}.donut-wrap canvas[data-v-7027783b]{width:118px;height:118px}.donut-center[data-v-7027783b]{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.donut-center b[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-accent);font-size:21px;font-weight:700}.donut-center span[data-v-7027783b]{color:var(--hud-faint);font-size:9.5px}.health-legend[data-v-7027783b]{flex-direction:column;flex:1;gap:8px;display:flex}.hl-row[data-v-7027783b]{align-items:center;gap:7px;font-size:11.5px;display:flex}.hl-dot[data-v-7027783b]{border-radius:50%;flex:none;width:7px;height:7px}.hl-row .n[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-text);margin-left:auto;font-size:13px;font-weight:700}.event-list[data-v-7027783b]{flex-direction:column;flex:1;min-height:0;max-height:200px;display:flex;overflow:hidden auto}.event-row[data-v-7027783b]{transition:background .13s var(--hud-ease);border-radius:7px;align-items:center;gap:7px;padding:4px 6px;display:flex}.event-row[data-v-7027783b]:hover{background:#35e0a00d}.ev-time[data-v-7027783b]{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--hud-faint);flex:none;font-size:10px}.ev-name[data-v-7027783b]{text-overflow:ellipsis;white-space:nowrap;max-width:70px;font-family:var(--font-mono);color:var(--hud-text);flex:none;font-size:10px;font-weight:600;overflow:hidden}.ev-text[data-v-7027783b]{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hud-dim);flex:1;font-size:10.5px;overflow:hidden}.event-empty[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-faint);text-align:center;padding:12px;font-size:9.5px}.rail-empty[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.06em;color:var(--hud-faint);text-align:center;flex-direction:column;align-items:center;gap:7px;padding:16px 10px 13px;font-size:9.5px;display:flex}.rail-empty .re-ico[data-v-7027783b]{fill:none;width:19px;height:19px;stroke:var(--hud-faint);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.mm-body[data-v-7027783b]{align-items:stretch;gap:8px;display:flex}.mm-wrap[data-v-7027783b]{border-radius:var(--hud-r-md);background:#060b13;border:1px solid #223050;flex:1;min-height:148px;position:relative;overflow:hidden}.mini-svg[data-v-7027783b]{cursor:crosshair;width:100%;height:100%;position:absolute;inset:0}.nav-cv[data-v-7027783b]{cursor:crosshair;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.alarm-list[data-v-7027783b]{flex-direction:column;display:flex}.al-row[data-v-7027783b]{border-radius:var(--hud-r-md);align-items:flex-start;gap:9px;padding:9px 8px;transition:background .15s;display:flex}.al-row[data-v-7027783b]:hover{background:#101a2c}.al-ico[data-v-7027783b]{border-radius:8px;flex:none;place-items:center;width:28px;height:28px;display:grid}.al-ico.crit[data-v-7027783b]{color:var(--hud-danger);background:#ff6b6b1f}.al-ico.warn[data-v-7027783b]{color:var(--hud-amber);background:#f6c4531f}.al-ico.info[data-v-7027783b]{color:var(--hud-cyan);background:#41c8f41f}.al-svg[data-v-7027783b]{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.al-body[data-v-7027783b]{flex:1;min-width:0}.al-txt[data-v-7027783b]{color:var(--hud-text);font-size:12px;font-weight:500;line-height:1.35}.al-src[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-faint);margin-top:2px;font-size:9.5px}.al-state[data-v-7027783b]{cursor:pointer;background:0 0;border:1px solid;border-radius:6px;flex:none;margin-top:2px;padding:2px 7px;font-size:9.5px;font-weight:600}.al-state.s0[data-v-7027783b]{color:var(--hud-danger);background:#ff6b6b1a;border-color:#ff6b6b66}.al-state.s1[data-v-7027783b]{color:var(--hud-amber);background:#f6c4531a;border-color:#f6c45359}.al-state.s2[data-v-7027783b]{color:var(--hud-dim);background:#8fa0b514;border-color:#8fa0b54d}.nav-bell-warn[data-v-7027783b]{color:var(--hud-danger);border-color:#ff6b6b80}.mm-col[data-v-7027783b]{flex-direction:column;gap:6px;display:flex}.mm-col .vp-tool[data-v-7027783b]{border-radius:8px;width:30px;height:30px}.mm-meta[data-v-7027783b]{color:var(--hud-faint);letter-spacing:.08em;text-align:center;margin-top:8px;font-size:9.5px}.rpg-lines.chat-embed[data-v-7027783b]{border:1px solid var(--hud-line-soft);border-radius:var(--hud-r-md);background:#0f172680;max-height:268px;padding:2px 0 4px}.chat-sect[data-v-7027783b]{align-items:center;gap:8px;display:flex}.chat-sect .chat-refresh[data-v-7027783b]{margin-left:auto}.chat-id-row[data-v-7027783b]{align-items:center;gap:10px;margin-bottom:4px;display:flex}.chat-badge[data-v-7027783b]{--p-acc:var(--hud-accent);width:34px;height:34px;font-family:var(--font-mono);color:var(--p-acc);background:color-mix(in srgb, var(--p-acc) 10%, transparent);border:1px solid color-mix(in srgb, var(--p-acc) 45%, transparent);border-radius:var(--hud-r-sm);flex:none;place-items:center;font-size:15px;font-weight:700;display:grid}.chat-nameplate[data-v-7027783b]{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.chat-name[data-v-7027783b]{color:var(--hud-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;overflow:hidden}.chat-meta[data-v-7027783b]{align-items:center;gap:6px;display:flex}.chat-state[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.1em;color:var(--hud-dim);border:1px solid var(--hud-line);border-radius:6px;padding:1px 6px;font-size:10px}.chat-role[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.12em;border-radius:6px;padding:1px 7px;font-size:10px;font-weight:700}.chat-role.r-lead[data-v-7027783b]{color:var(--hud-amber);background:#f6c4531a;border:1px solid #f6c45373}.chat-role.r-worker[data-v-7027783b]{color:var(--hud-cyan);background:#41c8f41a;border:1px solid #41c8f466}.chat-state.s-busy[data-v-7027783b]{color:var(--hud-amber);border-color:#f6c45380}.chat-state.s-stopped[data-v-7027783b]{color:var(--hud-danger);border-color:#ff6b6b80}.chat-harness[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.1em;color:var(--hud-faint);font-size:10px}.chat-count[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-faint);font-size:10px}.chat-refresh[data-v-7027783b]{width:22px;height:22px;font-family:var(--font-mono);color:var(--hud-dim);border:1px solid var(--hud-line);cursor:pointer;transition:border-color .14s var(--hud-ease), color .14s var(--hud-ease), transform .32s var(--hud-ease);background:0 0;border-radius:6px;flex:none;font-size:11px}.chat-refresh[data-v-7027783b]:hover{border-color:var(--hud-accent);color:var(--hud-accent)}.chat-refresh[data-v-7027783b]:active{transform:rotate(180deg)}.rpg-lines[data-v-7027783b]{flex-direction:column;flex:1;gap:7px;min-height:0;padding:10px 12px 12px;display:flex;overflow:hidden auto}.rpg-divider[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.2em;color:var(--hud-faint);margin:4px 0 2px;font-size:10px}.rpg-divider.live[data-v-7027783b]{color:var(--hud-amber)}.rpg-line[data-v-7027783b]{align-items:flex-start;gap:8px;display:flex}.rpg-time[data-v-7027783b]{text-align:right;width:52px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--hud-faint);flex:none;margin-top:5px;font-size:10px}.rpg-bubble[data-v-7027783b]{background:var(--hud-panel-2);border:1px solid var(--hud-line);border-radius:var(--hud-r-md);flex-direction:column;flex:1;gap:2px;min-width:0;padding:7px 11px;display:flex}.rpg-line.hist[data-v-7027783b]{opacity:.62}.rpg-line.live .rpg-bubble[data-v-7027783b]{animation:rise-7027783b .26s var(--hud-ease) both;border-color:var(--hud-line-hi);background:#14213a}.rpg-kind[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.14em;color:var(--hud-faint);align-self:flex-start;font-size:10px}.rpg-kind.k-artifact[data-v-7027783b]{color:var(--hud-accent)}.rpg-kind.k-error[data-v-7027783b]{color:var(--hud-danger)}.rpg-text[data-v-7027783b]{color:var(--hud-text);word-break:break-word;text-wrap:pretty;font-size:13px;line-height:1.6}.rpg-line.live .rpg-text[data-v-7027783b]{color:#edf4fa}.rpg-typing[data-v-7027783b]{align-items:center;gap:4px;padding:5px 2px;display:flex}.ty-dot[data-v-7027783b]{background:var(--hud-amber);width:5px;height:5px;animation:ty-bounce-7027783b 1.15s var(--hud-ease) infinite;border-radius:50%}.ty-dot[data-v-7027783b]:nth-child(2){animation-delay:.15s}.ty-dot[data-v-7027783b]:nth-child(3){animation-delay:.3s}.ty-label[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-faint);margin-left:5px;font-size:10px}.rpg-note[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-dim);text-align:center;padding:14px 0;font-size:10px}.boundary-panel[data-v-7027783b]{z-index:9;border:1px solid var(--hud-line);border-radius:var(--hud-r-lg);width:302px;box-shadow:var(--hud-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;background:linear-gradient(#101827f7,#0d1420f7);flex-direction:column;gap:7px;padding:12px 14px;display:flex;position:absolute;top:84px;left:16px}.bp-title[data-v-7027783b]{border-bottom:1px solid var(--hud-line);cursor:grab;touch-action:none;align-items:center;gap:8px;padding-bottom:8px;display:flex}.bp-title[data-v-7027783b]:active{cursor:grabbing}.bp-name[data-v-7027783b]{color:var(--hud-text);font-size:13px;font-weight:700}.bp-sub[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.12em;color:var(--hud-faint);font-size:10px}.bp-tabs[data-v-7027783b]{gap:4px;margin-left:auto;display:flex}.bp-tab[data-v-7027783b]{color:var(--hud-dim);background:var(--hud-input);border:1px solid var(--hud-line);cursor:pointer;border-radius:6px;padding:3px 10px;font-size:10px;font-weight:600}.bp-tab.on[data-v-7027783b]{color:#04120c;background:var(--hud-accent);border-color:var(--hud-accent)}.bp-row[data-v-7027783b]{align-items:center;gap:8px;display:flex}.bp-label[data-v-7027783b]{width:52px;color:var(--hud-dim);flex:none;font-size:10.5px}.bp-range[data-v-7027783b]{appearance:none;background:linear-gradient(90deg, var(--hud-accent-dim) var(--fill,50%), #1d2a42 var(--fill,50%));cursor:pointer;border-radius:2px;flex:1;height:4px}.bp-range[data-v-7027783b]::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--hud-accent);width:12px;height:12px;-webkit-transition:transform .15s var(--hud-ease);transition:transform .15s var(--hud-ease);background:#fff;border-radius:50%}.bp-range[data-v-7027783b]:hover::-webkit-slider-thumb{transform:scale(1.15)}.bp-hint[data-v-7027783b]{color:var(--hud-faint);font-size:10px;line-height:1.6}.bp-actions[data-v-7027783b]{gap:6px;margin-top:4px;display:flex}.bp-btn[data-v-7027783b]{color:var(--hud-text);border-radius:var(--hud-r-sm);cursor:pointer;background:0 0;border:1px solid #27395c;flex:1;padding:6px 10px;font-size:11px;font-weight:600}.bp-btn[data-v-7027783b]:hover{background:#14203a;border-color:#33507c}.bp-btn.save[data-v-7027783b]{color:#04120c;background:var(--hud-accent-dim);border-color:var(--hud-accent-dim)}.bp-btn.save[data-v-7027783b]:hover{background:#25b57e}.bp-btn.danger[data-v-7027783b]{color:var(--hud-danger);border-color:#ff6b6b66}.bp-btn.danger[data-v-7027783b]:hover{background:#ff6b6b1a}.member-list[data-v-7027783b]{flex-direction:column;gap:5px;max-height:220px;display:flex;overflow:hidden auto}.member-row[data-v-7027783b]{background:var(--hud-panel-2);border:1px solid var(--hud-line-soft);border-radius:var(--hud-r-md);align-items:center;gap:8px;padding:6px 8px;display:flex}.member-ava[data-v-7027783b]{width:24px;height:24px;font-family:var(--font-mono);color:var(--hud-text);background:var(--hud-panel-raised);border:1px solid var(--hud-line);border-radius:7px;flex:none;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.member-info[data-v-7027783b]{flex-direction:column;flex:1;min-width:0;display:flex}.member-name[data-v-7027783b]{color:var(--hud-text);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.member-role[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.06em;color:var(--hud-faint);font-size:10px}.member-role.r-lead[data-v-7027783b]{color:var(--hud-amber)}.member-role.r-worker[data-v-7027783b]{color:var(--hud-cyan)}.member-select[data-v-7027783b]{min-width:0;color:var(--hud-text);background:var(--hud-input);border:1px solid var(--hud-line);border-radius:6px;flex:1;padding:3px 6px;font-size:10px}.drop-chip[data-v-7027783b],.error-chip[data-v-7027783b]{z-index:20;border-radius:var(--hud-r-md);box-shadow:var(--hud-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-overflow:ellipsis;white-space:nowrap;background:#0e1626f5;border:1px solid #2a3d63;align-items:center;gap:8px;max-width:70%;padding:8px 14px;font-size:11.5px;display:flex;position:absolute;top:64px;left:50%;overflow:hidden;transform:translate(-50%)}.drop-chip[data-v-7027783b]{color:var(--hud-accent)}.error-chip[data-v-7027783b]{color:var(--hud-danger);border-color:#ff6b6b66}.bind-row[data-v-7027783b]{border:1px solid var(--hud-line-soft);border-radius:var(--hud-r-md);background:#0f1726;align-items:center;gap:8px;margin-bottom:6px;padding:7px 9px;display:flex}.bind-ico[data-v-7027783b]{width:26px;height:26px;color:var(--hud-accent);background:#0d1a26;border-radius:7px;flex:none;place-items:center;display:grid}.bind-svg[data-v-7027783b]{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.bind-meta[data-v-7027783b]{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.bind-label[data-v-7027783b]{color:var(--hud-text);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.bind-val[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-cyan);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.bind-val b[data-v-7027783b]{font-size:11px;font-weight:700}.bind-spark[data-v-7027783b]{flex:none;width:56px;height:20px}.bind-x[data-v-7027783b]{width:22px;height:22px;color:var(--hud-faint);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none}.bind-x[data-v-7027783b]:hover{color:var(--hud-danger);background:#ff6b6b1f}.bind-add-wrap[data-v-7027783b]{position:relative}.bind-add[data-v-7027783b]{width:100%;height:30px;color:var(--hud-dim);border-radius:var(--hud-r-sm);cursor:pointer;background:0 0;border:1px dashed #274064;font-size:11px;transition:border-color .15s,color .15s}.bind-add[data-v-7027783b]:hover{border-color:var(--hud-accent-dim);color:var(--hud-accent)}.bind-pop[data-v-7027783b]{z-index:30;overscroll-behavior:contain;border-radius:var(--hud-r-md);max-height:min(46vh,420px);box-shadow:var(--hud-shadow-pop,0 16px 40px #0000008c);background:#0e1626;border:1px solid #27395c;position:absolute;bottom:calc(100% + 4px);left:0;right:0;overflow:hidden auto}.bind-pop[data-v-7027783b]::-webkit-scrollbar{width:8px}.bind-pop[data-v-7027783b]::-webkit-scrollbar-thumb{background:#2c4568 padding-box content-box;border:2px solid #0000;border-radius:9999px}.bind-pop[data-v-7027783b]::-webkit-scrollbar-thumb:hover{background:#3d5a85 padding-box content-box}.bind-pop button[data-v-7027783b]{width:100%;color:var(--hud-dim);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:7px 10px;font-size:11.5px;display:flex}.bind-pop button[data-v-7027783b]:hover{color:var(--hud-text);background:#12203a}.bind-pop .bind-svg[data-v-7027783b]{color:var(--hud-accent)}.bind-pop button>span[data-v-7027783b]{white-space:nowrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.bp-group[data-v-7027783b]{flex-direction:column;display:flex}.bp-group+.bp-group[data-v-7027783b]{border-top:1px solid #27395c8c}.bp-tpl[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--hud-faint);padding:6px 10px 3px;font-size:10px}.bp-cur[data-v-7027783b]{color:var(--hud-faint);white-space:nowrap;text-overflow:ellipsis;max-width:96px;margin-left:auto;font-size:9.5px;font-style:normal;overflow:hidden}.bp-empty[data-v-7027783b]{color:var(--hud-faint);padding:10px;font-size:10.5px}.dcw-row[data-v-7027783b]{border:1px solid var(--hud-line);border-radius:var(--hud-r-md);transition:border-color .18s var(--hud-ease), box-shadow .18s var(--hud-ease);background:linear-gradient(#111a2b,#0e1522);flex-direction:column;gap:8px;margin-bottom:7px;padding:9px 10px 10px;display:flex}.dcw-row[data-v-7027783b]:hover{border-color:var(--hud-line-hi);box-shadow:0 6px 18px #03070e66}.dcw-top[data-v-7027783b]{align-items:center;gap:8px;display:flex}.dcw-id[data-v-7027783b]{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.dcw-name[data-v-7027783b]{color:var(--hud-faint);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;overflow:hidden}.dcw-tag[data-v-7027783b]{font-style:normal;font-family:var(--font-mono);letter-spacing:.08em;color:var(--hud-amber);vertical-align:1px;background:#f6c4531a;border:1px solid #f6c45352;border-radius:4px;margin-left:5px;padding:0 5px;font-size:10px;font-weight:700;display:inline-block}.dcw-cur[data-v-7027783b]{font-family:var(--font-mono);font-variant-numeric:tabular-nums;flex:none;align-items:baseline;gap:3px;display:flex}.dcw-cur b[data-v-7027783b]{color:var(--hud-cyan);text-shadow:0 0 14px #41c8f447;font-size:16px;font-weight:700}.dcw-cur i[data-v-7027783b]{color:var(--hud-faint);font-size:9.5px;font-style:normal}.dcw-win[data-v-7027783b]{border:1px solid var(--hud-line-soft);background:#0a111db8;border-radius:7px;align-items:center;gap:7px;padding:4px 8px;display:flex}.dcw-win em[data-v-7027783b]{letter-spacing:.14em;color:var(--hud-faint);flex:none;font-size:10px;font-style:normal;font-weight:700}.dcw-win-num[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-dim);font-variant-numeric:tabular-nums;flex:none;font-size:9.5px}.dcw-win-track[data-v-7027783b]{background:#1a2740;border-radius:999px;flex:1;height:4px;position:relative}.dcw-win-track[data-v-7027783b]:before{content:"";border-radius:inherit;background:linear-gradient(90deg,#5a82af66,#5a82af24);position:absolute;inset:0}.dcw-win-track i[data-v-7027783b]{border:2px solid var(--hud-cyan);width:9px;height:9px;transition:left .3s var(--hud-ease);background:#dfeef8;border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 8px #41c8f48c}.dcw-win.recipe em[data-v-7027783b]{color:var(--hud-amber)}.dcw-win.recipe .dcw-win-track[data-v-7027783b]:before{background:linear-gradient(90deg,#f6c45380,#f6c45329)}.dcw-win.recipe .dcw-win-track i[data-v-7027783b]{border-color:var(--hud-amber);box-shadow:0 0 8px #f6c4538c}.dcw-write[data-v-7027783b]{gap:6px;display:flex}.dcw-write input[data-v-7027783b]{min-width:0;height:27px;font-family:var(--font-mono);color:var(--hud-text);background:var(--hud-input);border:1px solid var(--hud-line);transition:border-color .15s var(--hud-ease), box-shadow .15s var(--hud-ease);border-radius:7px;flex:1;padding:0 9px;font-size:11.5px}.dcw-write input[data-v-7027783b]::placeholder{color:var(--hud-faint);font-size:10px}.dcw-write input[data-v-7027783b]:focus{border-color:var(--hud-accent);outline:none;box-shadow:0 0 0 3px #35e0a021}.dcw-send[data-v-7027783b]{height:27px;font-family:var(--font-mono);letter-spacing:.1em;color:#04120c;background:var(--hud-accent-dim);cursor:pointer;transition:background .15s var(--hud-ease), box-shadow .15s var(--hud-ease);border:0;border-radius:7px;flex:none;padding:0 14px;font-size:10.5px;font-weight:700}.dcw-send[data-v-7027783b]:hover:not(:disabled){background:var(--hud-accent);box-shadow:0 0 14px #35e0a059}.dcw-send[data-v-7027783b]:disabled{opacity:.38;cursor:default}.dcw-err[data-v-7027783b]{color:var(--hud-danger);background:#ff6b6b14;border:1px solid #ff6b6b47;border-radius:6px;padding:4px 8px;font-size:10px;display:block}.bind-select[data-v-7027783b]:hover,.daq-ctl-cycle input[data-v-7027783b]:hover,.daq-num[data-v-7027783b]:hover,.obj-input[data-v-7027783b]:hover,.obj-select[data-v-7027783b]:hover{border-color:var(--hud-line-hi)}.bind-select[data-v-7027783b]:focus,.daq-ctl-cycle input[data-v-7027783b]:focus,.daq-num[data-v-7027783b]:focus,.obj-input[data-v-7027783b]:focus,.obj-select[data-v-7027783b]:focus{border-color:var(--hud-accent);outline:none;box-shadow:0 0 0 3px #35e0a021}input[type=number][data-v-7027783b]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number][data-v-7027783b]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number][data-v-7027783b]{appearance:textfield}.obj-range[data-v-7027783b],.scale-range[data-v-7027783b]{appearance:none;cursor:pointer;background:#1a2740;border-radius:999px;outline:none;height:4px}.obj-range[data-v-7027783b]::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--hud-accent);width:13px;height:13px;-webkit-transition:transform .15s var(--hud-ease), box-shadow .15s var(--hud-ease);transition:transform .15s var(--hud-ease), box-shadow .15s var(--hud-ease);background:#e8f6ef;border-radius:50%;box-shadow:0 0 0 3px #35e0a026,0 2px 6px #03070e80}.scale-range[data-v-7027783b]::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--hud-accent);width:13px;height:13px;-webkit-transition:transform .15s var(--hud-ease), box-shadow .15s var(--hud-ease);transition:transform .15s var(--hud-ease), box-shadow .15s var(--hud-ease);background:#e8f6ef;border-radius:50%;box-shadow:0 0 0 3px #35e0a026,0 2px 6px #03070e80}.obj-range[data-v-7027783b]::-webkit-slider-thumb:hover{transform:scale(1.18);box-shadow:0 0 0 5px #35e0a033,0 2px 8px #03070e8c}.scale-range[data-v-7027783b]::-webkit-slider-thumb:hover{transform:scale(1.18);box-shadow:0 0 0 5px #35e0a033,0 2px 8px #03070e8c}.obj-range[data-v-7027783b]::-moz-range-thumb{border:2px solid var(--hud-accent);background:#e8f6ef;border-radius:50%;width:13px;height:13px;box-shadow:0 0 0 3px #35e0a026}.scale-range[data-v-7027783b]::-moz-range-thumb{border:2px solid var(--hud-accent);background:#e8f6ef;border-radius:50%;width:13px;height:13px;box-shadow:0 0 0 3px #35e0a026}.obj-range[data-v-7027783b]::-moz-range-track{background:#1a2740;border-radius:999px;height:4px}.scale-range[data-v-7027783b]::-moz-range-track{background:#1a2740;border-radius:999px;height:4px}.bind-row[data-v-7027783b]{transition:border-color .18s var(--hud-ease), box-shadow .18s var(--hud-ease)}.bind-row[data-v-7027783b]:hover{border-color:var(--hud-line-hi);box-shadow:0 6px 18px #03070e66}.bind-add[data-v-7027783b]:hover{background:#35e0a00d;border-style:solid}.daq-bind-bar[data-v-7027783b]{gap:6px;display:flex}.bind-select[data-v-7027783b]{min-width:0;height:28px;color:var(--hud-dim);background:var(--hud-input);border:1px solid var(--hud-line);border-radius:var(--hud-r-sm);transition:border-color .15s var(--hud-ease), box-shadow .15s var(--hud-ease), color .15s var(--hud-ease);flex:1;padding:0 8px;font-size:10.5px}.bind-select[data-v-7027783b]:hover{border-color:var(--hud-line-hi);color:var(--hud-text)}.bind-select[data-v-7027783b]:focus{border-color:var(--hud-accent);color:var(--hud-text);outline:none;box-shadow:0 0 0 3px #35e0a021}.bind-add-btn[data-v-7027783b]{color:#04120c;background:var(--hud-accent-dim);border-radius:var(--hud-r-sm);cursor:pointer;height:28px;transition:background .15s var(--hud-ease), box-shadow .15s var(--hud-ease);border:0;flex:none;padding:0 12px;font-size:10.5px;font-weight:600}.bind-add-btn[data-v-7027783b]:hover:not(:disabled){background:var(--hud-accent);box-shadow:0 0 14px #35e0a059}.bind-add-btn[data-v-7027783b]:disabled{opacity:.4;cursor:default}.daq-info-row[data-v-7027783b]{color:var(--hud-dim);justify-content:space-between;gap:8px;padding:3px 0;font-size:11px;display:flex}.daq-info-row b[data-v-7027783b]{font-family:var(--font-mono);color:var(--hud-text);font-variant-numeric:tabular-nums;font-weight:600}.daq-info-row b.cy[data-v-7027783b]{color:var(--hud-cyan);font-size:13px}.daq-ctrl[data-v-7027783b]{background:var(--hud-panel);border:1px solid var(--hud-line);border-radius:var(--hud-r-sm);justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;display:flex}.daq-ctl-btn[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.05em;color:var(--hud-dim);cursor:pointer;border:1px solid var(--hud-line-hi);border-radius:var(--hud-r-sm);background:0 0;padding:4px 12px;font-size:11px}.daq-ctl-btn.on[data-v-7027783b]{color:var(--hud-accent);border-color:#35e0a073}.daq-ctl-cycle[data-v-7027783b]{color:var(--hud-faint);align-items:center;gap:5px;font-size:10.5px;display:inline-flex}.daq-ctl-cycle input[data-v-7027783b],.daq-num[data-v-7027783b]{width:64px;font-family:var(--font-mono);color:var(--hud-text);background:var(--hud-input);border:1px solid var(--hud-line);border-radius:6px;padding:2px 6px;font-size:11px}.daq-th-inputs[data-v-7027783b]{color:var(--hud-faint);align-items:center;gap:4px;font-size:10px;display:inline-flex}.bind-add-btn.warn[data-v-7027783b]:not(:disabled){color:var(--hud-amber);box-shadow:none;background:#f6c4531f}.bind-add-btn.warn[data-v-7027783b]:hover:not(:disabled){background:#f6c45333;box-shadow:0 0 14px #f6c45340}.bind-add-btn.danger[data-v-7027783b]:not(:disabled){color:var(--hud-danger);box-shadow:none;background:#ff6b6b1a}.bind-add-btn.danger[data-v-7027783b]:hover:not(:disabled){background:#ff6b6b2e;box-shadow:0 0 14px #ff6b6b40}.statusbar[data-v-7027783b]{border-top:1px solid var(--hud-line-soft);height:30px;color:var(--hud-dim);z-index:60;background:#0a101b;flex:none;align-items:center;gap:18px;padding:0 14px;font-size:11px;display:flex;position:relative}.statusbar b[data-v-7027783b]{color:var(--hud-accent);font-weight:600}.statusbar .sb-stats[data-v-7027783b]{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:.02em;align-items:center;gap:7px;display:inline-flex}.sb-stats b[data-v-7027783b]{color:var(--hud-text);font-weight:600}.sb-stats i[data-v-7027783b]{color:var(--hud-line-hi);font-style:normal}.sb-dot[data-v-7027783b]{background:var(--hud-accent);width:7px;height:7px;box-shadow:0 0 6px var(--hud-accent);vertical-align:1px;border-radius:50%;margin-right:6px;display:inline-block}.sb-dot.red[data-v-7027783b]{background:var(--hud-danger);box-shadow:0 0 6px var(--hud-danger)}.sb-dot[data-v-7027783b]:not(.red){animation:sb-pulse-7027783b 2.4s var(--hud-ease) infinite}@keyframes sb-pulse-7027783b{0%,to{opacity:1}50%{opacity:.4}}@media (prefers-reduced-motion:reduce){.sb-dot[data-v-7027783b]:not(.red){animation:none}}.sb-lat[data-v-7027783b]{font-family:var(--font-mono);font-variant-numeric:tabular-nums;position:absolute;left:50%;transform:translate(-50%)}.statusbar .copy[data-v-7027783b]{color:var(--hud-faint);font-family:var(--font-mono);margin-left:auto;font-size:10px}.loading-mask[data-v-7027783b]{z-index:90;background:var(--hud-bg);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:0}.loading-spinner[data-v-7027783b]{border:2.5px solid var(--hud-line);border-top-color:var(--hud-accent);border-radius:50%;width:30px;height:30px;animation:.9s linear infinite spin-7027783b}.loading-text[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.24em;color:var(--hud-dim);font-size:11px}@keyframes spin-7027783b{to{transform:rotate(1turn)}}@keyframes ty-bounce-7027783b{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.drag-grip[data-v-7027783b]{cursor:grab;touch-action:none}.drag-grip[data-v-7027783b]:active{cursor:grabbing}.drag-panel[data-v-7027783b]{will-change:left, top}.town-view[data-v-7027783b] ::-webkit-scrollbar{width:8px;height:8px}.town-view[data-v-7027783b] ::-webkit-scrollbar-track{background:0 0}.town-view[data-v-7027783b] ::-webkit-scrollbar-thumb{background:#1c2942;border:2px solid #080d16;border-radius:4px}.town-view[data-v-7027783b] ::-webkit-scrollbar-thumb:hover{background:#2c4568}.al-state[data-v-7027783b]:active,.bind-add[data-v-7027783b]:active,.bind-x[data-v-7027783b]:active,.bp-btn[data-v-7027783b]:active,.btn[data-v-7027783b]:active,.lg-chip[data-v-7027783b]:active,.mini-btn[data-v-7027783b]:active,.obj-mini[data-v-7027783b]:active,.snap-toggle[data-v-7027783b]:active,.vp-tool[data-v-7027783b]:active{transform:scale(.96)}.al-state[data-v-7027783b],.bind-add[data-v-7027783b],.bp-btn[data-v-7027783b],.btn[data-v-7027783b],.lg-chip[data-v-7027783b],.mini-btn[data-v-7027783b],.obj-mini[data-v-7027783b],.snap-toggle[data-v-7027783b],.vp-tool[data-v-7027783b]{transition-property:filter,background,border-color,color,transform,opacity;transition-duration:.15s;transition-timing-function:var(--hud-ease)}.town-view button[data-v-7027783b]:focus-visible,.town-view input[data-v-7027783b]:focus-visible,.town-view select[data-v-7027783b]:focus-visible{box-shadow:0 0 0 2px var(--hud-bg), 0 0 0 4px #41c8f473;border-radius:6px;outline:none}.vp-title h2[data-v-7027783b]{color:var(--hud-text)}@keyframes estop-pulse-7027783b{50%{filter:brightness(1.35)}}.btn-danger.armed[data-v-7027783b]{animation:1s ease-in-out infinite estop-pulse-7027783b}@media (prefers-reduced-motion:reduce){.callout[data-v-7027783b],.inspector[data-v-7027783b],.btn-danger.armed[data-v-7027783b],.loading-spinner[data-v-7027783b],.rpg-line.live .rpg-bubble[data-v-7027783b],.ty-dot[data-v-7027783b]{animation:none}}.dock-toggle[data-v-7027783b],.sheet-btn[data-v-7027783b],.sheet-hd[data-v-7027783b]{display:none}.sheet-mask[data-v-7027783b]{z-index:69;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background:#03060c9e;position:fixed;inset:0}@media (width<=1023px){.town-view[data-v-7027783b]{--hud-faint:#8b9bb0}.topnav[data-v-7027783b]{flex-wrap:wrap;align-items:center;gap:6px 8px;height:auto;min-height:46px;padding:6px 10px 8px}.brand[data-v-7027783b]{flex:auto;order:0;gap:8px;min-width:0}.brand>div[data-v-7027783b]{min-width:0;overflow:hidden}.brand-name[data-v-7027783b]{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.nav-right[data-v-7027783b]{flex:none;order:1;gap:6px;margin-left:0}.nav-tabs[data-v-7027783b]{flex:100%;order:2;gap:8px;position:static;transform:none}.seg button[data-v-7027783b]{padding:0 14px;font-size:13px}.nav-action[data-v-7027783b]{height:40px;padding:0 12px;font-size:13px}.save-chip[data-v-7027783b]{font-size:11.5px}.nav-chip[data-v-7027783b]{padding:5px 8px;font-size:11.5px}.avatar-chip[data-v-7027783b]{padding:3px 8px 3px 3px}.avatar-chip span[data-v-7027783b]{font-size:13px}.avatar-fallback[data-v-7027783b]{width:26px;height:26px;font-size:11.5px}.sheet-btn[data-v-7027783b]{border-radius:var(--hud-r-sm);min-height:40px;color:var(--hud-dim);white-space:nowrap;background:#101a2b;border:1px solid #27395c;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;font-weight:600;display:inline-flex}.sheet-btn.on[data-v-7027783b]{color:#04120c;background:var(--hud-accent);border-color:var(--hud-accent);box-shadow:0 0 12px #35e0a04d}.sheet-ico[data-v-7027783b]{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.app[data-v-7027783b]{grid-template-columns:minmax(0,1fr)}.stage-col[data-v-7027783b],.stage[data-v-7027783b]{min-height:0}.stage-top[data-v-7027783b]{flex-wrap:wrap;gap:8px;padding:10px 12px}.vp-title[data-v-7027783b]{gap:8px;padding:6px 10px}.vp-title h2[data-v-7027783b]{font-size:14px}.vp-id[data-v-7027783b]{font-size:11.5px}.vp-tool[data-v-7027783b]{width:40px;height:40px}.vp-svg[data-v-7027783b]{width:17px;height:17px}.angle-chip[data-v-7027783b]{min-height:40px;padding:4px 10px;font-size:13px;top:58px;left:12px}.angle-chip select[data-v-7027783b]{font-size:13px}.kpi-strip[data-v-7027783b]{overscroll-behavior-x:contain;scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;gap:8px;padding:0 12px;bottom:10px;overflow-x:auto}.kpi-strip[data-v-7027783b]::-webkit-scrollbar{display:none}.kpi[data-v-7027783b]{flex:none;gap:8px;padding:6px 10px}.kpi-ico[data-v-7027783b]{width:28px;height:28px}.kpi-label[data-v-7027783b]{font-size:11.5px}.kpi-val[data-v-7027783b]{font-size:13px}.kpi-val small[data-v-7027783b]{font-size:11.5px}.rail[data-v-7027783b]{z-index:70;overscroll-behavior:contain;border:0;border-top:1px solid var(--hud-line-hi);visibility:hidden;width:auto;max-height:min(76dvh,640px);transition:transform .26s var(--hud-ease), visibility 0s linear .26s;background:linear-gradient(#0c1420,#080d16 46%);border-radius:16px 16px 0 0;gap:8px;padding:0 10px 12px;position:fixed;inset:auto 0 0;overflow-y:auto;transform:translateY(103%);box-shadow:0 -18px 46px #0009}.rail.sheet-open[data-v-7027783b]{visibility:visible;transition:transform .26s var(--hud-ease), visibility 0s;transform:none}.topnav.sheet-on[data-v-7027783b]{z-index:71}.rail-left[data-v-7027783b],.rail-right[data-v-7027783b]{border-left:0;border-right:0}.rail .panel[data-v-7027783b]{flex:none}.sheet-hd[data-v-7027783b]{z-index:2;border-bottom:1px solid var(--hud-line-soft);background:linear-gradient(#0e1725,#0c1420);align-items:center;gap:8px;margin:0 -10px 2px;padding:13px 12px 9px;display:flex;position:sticky;top:0}.sheet-grip[data-v-7027783b]{background:#2c4568;border-radius:2px;width:40px;height:3px;margin-left:-20px;position:absolute;top:6px;left:50%}.sheet-hd-t[data-v-7027783b]{color:var(--hud-text);letter-spacing:.04em;font-size:13px;font-weight:700}.sheet-x[data-v-7027783b]{border:1px solid var(--hud-line);width:40px;height:40px;color:var(--hud-dim);background:#101a2b;border-radius:8px;flex:none;margin-left:auto;font-size:15px}.dock[data-v-7027783b]{padding:0;display:block}.dock-toggle[data-v-7027783b]{border:0;border-top:1px solid var(--hud-line-soft);width:100%;min-height:44px;color:var(--hud-text);text-align:left;background:linear-gradient(#101827,#0c131f);align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.dock-toggle-t[data-v-7027783b]{flex:none}.dock-toggle-hint[data-v-7027783b]{color:var(--hud-faint);letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.dock-caret[data-v-7027783b]{color:var(--hud-dim);transition:transform .2s var(--hud-ease);flex:none;margin-left:auto}.dock.dock-open .dock-caret[data-v-7027783b]{transform:rotate(180deg)}.dock .dock-card[data-v-7027783b]{display:none}.dock.dock-open[data-v-7027783b]{overscroll-behavior:contain;max-height:52dvh;padding:8px;overflow-y:auto}.dock.dock-open .dock-card[data-v-7027783b]{min-height:0;margin-bottom:8px;display:flex}.dock.dock-open .dock-card[data-v-7027783b]:last-child{margin-bottom:0}.dock-card[data-v-7027783b]{padding:12px}.dock-hd h3[data-v-7027783b]{font-size:13px}.dock-count[data-v-7027783b],.dock-mode[data-v-7027783b],.ctl-sec[data-v-7027783b]{font-size:11.5px}.ctl-row[data-v-7027783b]{flex-wrap:wrap;gap:6px 10px}.ctl-name[data-v-7027783b]{width:auto;min-width:62px;font-size:13px}.ctl-val[data-v-7027783b]{width:auto;min-width:38px;font-size:12.5px}.fps-seg[data-v-7027783b]{flex-wrap:wrap}.fps-seg button[data-v-7027783b]{padding:0 10px;font-size:13px}.snap-toggle[data-v-7027783b],.lg-chip[data-v-7027783b],.trend-empty[data-v-7027783b]{font-size:11.5px}.statusbar[data-v-7027783b]{flex-wrap:wrap;gap:6px 12px;height:auto;min-height:30px;padding:5px 10px;font-size:11.5px}.statusbar .copy[data-v-7027783b]{display:none}.sb-lat[data-v-7027783b]{margin-left:auto;position:static;transform:none}.town-view button[data-v-7027783b]{min-height:40px}.town-view[data-v-7027783b] :where(.panel-tag,.daq-code,.daq-count,.daq-caret,.node-val,.node-dev,.daq-empty-hint,.scene-meta,.scene-cur,.scene-add,.scene-hint,.co-label,.co-range,.lg-chip,.lg-more,.ins-chip,.sect-hd,.obj-label,.range-status,.obj-mini,.bp-val,.seg-btn,.scale-min,.scale-max,.scale-val,.ins-empty,.donut-center span,.ev-time,.ev-name,.ev-text,.event-empty,.rail-empty,.al-src,.al-state,.mm-meta,.chat-state,.chat-role,.chat-harness,.chat-count,.rpg-divider,.rpg-time,.rpg-kind,.ty-label,.rpg-note,.bp-sub,.bp-tab,.bp-label,.bp-hint,.bp-btn,.member-ava,.member-role,.member-select,.bind-label,.bind-val,.bp-tpl,.bp-cur,.bp-empty,.dcw-name,.dcw-tag,.dcw-win-num,.dcw-send,.dcw-err,.bind-select,.bind-add-btn,.daq-ctl-cycle,.daq-num,.daq-th-inputs,.approval-ttl,.approval-detail),.town-view .dock .ctl-sec[data-v-7027783b],.town-view .dock .ctl-val[data-v-7027783b],.town-view .dock .dock-count[data-v-7027783b],.town-view .dock .dock-mode[data-v-7027783b],.town-view .dock .dock-toggle-hint[data-v-7027783b],.town-view .statusbar .copy[data-v-7027783b]{font-size:11.5px}.town-view .dock .ctl-val[data-v-7027783b]{font-size:12.5px}.town-view .dock-hd h3[data-v-7027783b]{font-size:13px}.town-view .bind-val b[data-v-7027783b]{font-size:12px}.town-view .avatar-chip span[data-v-7027783b]{font-size:13px}.town-view .save-chip[data-v-7027783b],.town-view .nav-chip[data-v-7027783b],.town-view .vp-id[data-v-7027783b]{font-size:11.5px}.town-view .loading-text[data-v-7027783b]{font-size:12px}.town-view[data-v-7027783b] :where(.daq-name,.scene-name,.al-txt,.ev-text,.chat-name,.co-val,.rpg-text,.daq-info-row,.daq-ctl-btn,.rail-empty,.rpg-note,.member-name,.bind-label,.dcw-cur){font-size:13px}.town-view .statusbar[data-v-7027783b]{font-size:12px}.town-view .vd-name[data-v-7027783b]{font-size:13px}}@media (width<=639px){.brand[data-v-7027783b]{flex:none}.brand>div[data-v-7027783b]{display:none}.brand-glyph[data-v-7027783b]{width:28px;height:28px}.nav-fps[data-v-7027783b],.nav-user span[data-v-7027783b]{display:none}.avatar-chip[data-v-7027783b]{padding:3px}.sheet-btn-t[data-v-7027783b]{display:none}.sheet-btn[data-v-7027783b]{padding:0 10px}.stage-top[data-v-7027783b]{padding:8px 10px}.vp-tools[data-v-7027783b]{gap:6px}.vp-tool[data-v-7027783b]{width:40px;height:40px}.angle-chip[data-v-7027783b]{top:54px;left:10px}.kpi-strip[data-v-7027783b]{padding:0 10px}.dock.dock-open[data-v-7027783b]{max-height:58dvh}}@media (prefers-reduced-motion:reduce){.rail[data-v-7027783b],.dock-caret[data-v-7027783b]{transition:none}}.approval-card[data-v-7027783b]{border-radius:var(--hud-r-md);background:#f6c4530f;border:1px solid #f6c4534d;margin-bottom:7px;padding:8px 9px}.approval-detail[data-v-7027783b]{color:var(--hud-text);font-size:11px}.approval-ttl[data-v-7027783b]{font-family:var(--font-mono);letter-spacing:.05em;color:var(--hud-amber);margin-top:5px;font-size:9.5px}.approval-ttl.urgent[data-v-7027783b]{color:var(--hud-danger)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,j as n}from"./BU83-NnX.js";import{$ as r,D as i,G as a,H as o,Ht as s,P as c,R as l,S as u,Ut as d,V as f,Vt as p,W as m,b as h,d as g,et as _,f as v,h as y,ht as b,i as x,m as S,nt as C,p as w,pt as T,tt as E,v as D,xt as O,y as k}from"./CSkxz2NX.js";import{d as ee,f as A,n as j,t as M,u as N}from"./D6uzXueg.js";import{d as P,p as te}from"./BJHKLJJU.js";import{i as F,t as ne}from"./YnQxK3eG.js";import{n as re,r as ie,t as ae}from"./xh3_vYcu.js";import{n as oe}from"./KZQX7xoM.js";import{t as se}from"./D9Oidm5I.js";import{At as I,St as ce,d as L,jt as R,n as z,nt as le,t as B,u as ue,wt as de}from"./4sIEbgcl.js";import{i as fe}from"./DYr1VMiQ.js";import{t as pe}from"./aWWIh8YL.js";import{a as me,i as he,n as ge,r as _e,t as ve}from"./CzlMDL5H.js";import{t as V}from"./lO5tpDZ5.js";import{n as H}from"./JCoYF4IJ.js";import{t as U}from"./Crod5z2f.js";import{t as ye}from"./C4DWUZ6d2.js";import{t as be}from"./JTLM-kqr2.js";import{t as xe}from"./DIaZ2PTo2.js";import{t as W}from"./BDNMzG2s2.js";import{t as Se}from"./DGIuvyRN2.js";import{t as G}from"./CssgYAAL2.js";import{t as Ce}from"./D0ZBQrN_2.js";import{m as we,p as Te,t as Ee}from"./BC9wjTJK2.js";import{t as De}from"./BN6iuJEg2.js";var Oe=e=>{let{componentCls:t,colorBgContainer:n,colorBgBody:r,colorText:i}=e;return{[`${t}-sider-light`]:{background:n,[`${t}-sider-trigger`]:{color:i,background:n},[`${t}-sider-zero-width-trigger`]:{color:i,background:n,border:`1px solid ${r}`,borderInlineStart:0}}}},ke=e=>{let{antCls:t,componentCls:n,colorText:r,colorTextLightSolid:i,colorBgHeader:a,colorBgBody:o,colorBgTrigger:s,layoutHeaderHeight:c,layoutHeaderPaddingInline:l,layoutHeaderColor:u,layoutFooterPadding:d,layoutTriggerHeight:f,layoutZeroTriggerSize:p,motionDurationMid:m,motionDurationSlow:h,fontSize:g,borderRadius:_}=e;return{[n]:I(I({display:`flex`,flex:`auto`,flexDirection:`column`,color:r,minHeight:0,background:o,"&, *":{boxSizing:`border-box`},[`&${n}-has-sider`]:{flexDirection:`row`,[`> ${n}, > ${n}-content`]:{width:0}},[`${n}-header, &${n}-footer`]:{flex:`0 0 auto`},[`${n}-header`]:{height:c,paddingInline:l,color:u,lineHeight:`${c}px`,background:a,[`${t}-menu`]:{lineHeight:`inherit`}},[`${n}-footer`]:{padding:d,color:r,fontSize:g,background:o},[`${n}-content`]:{flex:`auto`,minHeight:0},[`${n}-sider`]:{position:`relative`,minWidth:0,background:a,transition:`all ${m}, background 0s`,"&-children":{height:`100%`,marginTop:-.1,paddingTop:.1,[`${t}-menu${t}-menu-inline-collapsed`]:{width:`auto`}},"&-has-trigger":{paddingBottom:f},"&-right":{order:1},"&-trigger":{position:`fixed`,bottom:0,zIndex:1,height:f,color:i,lineHeight:`${f}px`,textAlign:`center`,background:s,cursor:`pointer`,transition:`all ${m}`},"&-zero-width":{"> *":{overflow:`hidden`},"&-trigger":{position:`absolute`,top:c,insetInlineEnd:-p,zIndex:1,width:p,height:p,color:i,fontSize:e.fontSizeXL,display:`flex`,alignItems:`center`,justifyContent:`center`,background:a,borderStartStartRadius:0,borderStartEndRadius:_,borderEndEndRadius:_,borderEndStartRadius:0,cursor:`pointer`,transition:`background ${h} ease`,"&::after":{position:`absolute`,inset:0,background:`transparent`,transition:`all ${h}`,content:`""`},"&:hover::after":{background:`rgba(255, 255, 255, 0.2)`},"&-right":{insetInlineStart:-p,borderStartStartRadius:_,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:_}}}}},Oe(e)),{"&-rtl":{direction:`rtl`}})}},Ae=L(`Layout`,e=>{let{colorText:t,controlHeightSM:n,controlHeight:r,controlHeightLG:i,marginXXS:a}=e,o=i*1.25;return[ke(ue(e,{layoutHeaderHeight:r*2,layoutHeaderPaddingInline:o,layoutHeaderColor:t,layoutFooterPadding:`${n}px ${o}px`,layoutTriggerHeight:i+a*2,layoutZeroTriggerSize:i}))]},e=>{let{colorBgLayout:t}=e;return{colorBgHeader:`#001529`,colorBgBody:t,colorBgTrigger:`#002140`}}),K=()=>({prefixCls:String,hasSider:{type:Boolean,default:void 0},tagName:String});function q(e){let{suffixCls:t,tagName:n,name:r}=e;return e=>u({compatConfig:{MODE:3},name:r,props:K(),setup(r,i){let{slots:a}=i,{prefixCls:o}=z(t,r);return()=>{let t=I(I({},r),{prefixCls:o.value,tagName:n});return h(e,t,a)}}})}var J=u({compatConfig:{MODE:3},props:K(),setup(e,t){let{slots:n}=t;return()=>h(e.tagName,{class:e.prefixCls},n)}}),je=u({compatConfig:{MODE:3},inheritAttrs:!1,props:K(),setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=z(``,e),[s,c]=Ae(i),l=T([]);o(me,{addSider:e=>{l.value=[...l.value,e]},removeSider:e=>{l.value=l.value.filter(t=>t!==e)}});let u=g(()=>{let{prefixCls:t,hasSider:n}=e;return{[c.value]:!0,[`${t}`]:!0,[`${t}-has-sider`]:typeof n==`boolean`?n:l.value.length>0,[`${t}-rtl`]:a.value===`rtl`}});return()=>{let{tagName:t}=e;return s(h(t,I(I({},r),{class:[u.value,r.class]}),n))}}}),Y=q({suffixCls:`layout`,tagName:`section`,name:`ALayout`})(je),X=q({suffixCls:`layout-header`,tagName:`header`,name:`ALayoutHeader`})(J),Z=q({suffixCls:`layout-footer`,tagName:`footer`,name:`ALayoutFooter`})(J),Q=q({suffixCls:`layout-content`,tagName:`main`,name:`ALayoutContent`})(J),Me={icon:{tag:`svg`,attrs:{viewBox:`0 0 1024 1024`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z`}}]},name:`bars`,theme:`outlined`};function Ne(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:Object(arguments[t]),r=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){Pe(e,t,n[t])})}return e}function Pe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Fe=function(e,t){var r=Ne({},e,t.attrs);return h(n,Ne({},r,{icon:Me}),null)};Fe.displayName=`BarsOutlined`,Fe.inheritAttrs=!1;var Ie={xs:`479.98px`,sm:`575.98px`,md:`767.98px`,lg:`991.98px`,xl:`1199.98px`,xxl:`1599.98px`,xxxl:`1999.98px`},Le=()=>({prefixCls:String,collapsible:{type:Boolean,default:void 0},collapsed:{type:Boolean,default:void 0},defaultCollapsed:{type:Boolean,default:void 0},reverseArrow:{type:Boolean,default:void 0},zeroWidthTriggerStyle:{type:Object,default:void 0},trigger:B.any,width:B.oneOfType([B.number,B.string]),collapsedWidth:B.oneOfType([B.number,B.string]),breakpoint:B.oneOf(le(`xs`,`sm`,`md`,`lg`,`xl`,`xxl`,`xxxl`)),theme:B.oneOf(le(`light`,`dark`)).def(`dark`),onBreakpoint:Function,onCollapse:Function}),Re=(()=>{let e=0;return function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:``;return e+=1,`${t}${e}`}})(),$=u({compatConfig:{MODE:3},name:`ALayoutSider`,inheritAttrs:!1,props:ce(Le(),{collapsible:!1,defaultCollapsed:!1,reverseArrow:!1,width:200,collapsedWidth:80}),emits:[`breakpoint`,`update:collapsed`,`collapse`],setup(e,t){let{emit:n,attrs:a,slots:s}=t,{prefixCls:u}=z(`layout-sider`,e),d=i(me,void 0),f=b(!!(e.collapsed===void 0?e.defaultCollapsed:e.collapsed)),p=b(!1);r(()=>e.collapsed,()=>{f.value=!!e.collapsed}),o(he,f);let m=(t,r)=>{e.collapsed===void 0&&(f.value=t),n(`update:collapsed`,t),n(`collapse`,t,r)},g=b(e=>{p.value=e.matches,n(`breakpoint`,e.matches),f.value!==e.matches&&m(e.matches,`responsive`)}),_;function v(e){return g.value(e)}let y=Re(`ant-sider-`);d&&d.addSider(y),l(()=>{r(()=>e.breakpoint,()=>{try{_?.removeEventListener(`change`,v)}catch{_?.removeListener(v)}if(typeof window<`u`){let{matchMedia:t}=window;if(t&&e.breakpoint&&e.breakpoint in Ie){_=t(`(max-width: ${Ie[e.breakpoint]})`);try{_.addEventListener(`change`,v)}catch{_.addListener(v)}v(_)}}},{immediate:!0})}),c(()=>{try{_?.removeEventListener(`change`,v)}catch{_?.removeListener(v)}d&&d.removeSider(y)});let x=()=>{m(!f.value,`clickTrigger`)};return()=>{let t=u.value,{collapsedWidth:n,width:r,reverseArrow:i,zeroWidthTriggerStyle:o,trigger:c=s.trigger?.call(s),collapsible:l,theme:d}=e,m=f.value?n:r,g=V(m)?`${m}px`:String(m),_=parseFloat(String(n||0))===0?h(`span`,{onClick:x,class:de(`${t}-zero-width-trigger`,`${t}-zero-width-trigger-${i?`right`:`left`}`),style:o},[c||h(Fe,null,null)]):null,v={expanded:h(i?H:U,null,null),collapsed:h(i?U:H,null,null)}[f.value?`collapsed`:`expanded`],y=c===null?null:_||h(`div`,{class:`${t}-trigger`,onClick:x,style:{width:g}},[c||v]),b=[a.style,{flex:`0 0 ${g}`,maxWidth:g,minWidth:g,width:g}],S=de(t,`${t}-${d}`,{[`${t}-collapsed`]:!!f.value,[`${t}-has-trigger`]:l&&c!==null&&!_,[`${t}-below`]:!!p.value,[`${t}-zero-width`]:parseFloat(g)===0},a.class);return h(`aside`,R(R({},a),{},{class:S,style:b}),[h(`div`,{class:`${t}-children`},[s.default?.call(s)]),l||p.value&&_?y:null])}}}),ze=X,Be=Z,Ve=$,He=Q,Ue=I(Y,{Header:X,Footer:Z,Content:Q,Sider:$,install:e=>(e.component(Y.name,Y),e.component(X.name,X),e.component(Z.name,Z),e.component($.name,$),e.component(Q.name,Q),e)}),We=[`width`,`height`],Ge=Object.assign(u({__name:`AwLogo`,props:{size:{default:32}},setup(e){return(t,n)=>(f(),y(`svg`,{width:e.size,height:e.size,viewBox:`0 0 64 64`,fill:`none`,"aria-hidden":`true`},[...n[0]||=[D(`<defs><linearGradient id="aw-logo-gradient" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#35e0a0"></stop><stop offset="1" stop-color="#41c8f4"></stop></linearGradient></defs><path d="M32 4 L56 18 V46 L32 60 L8 46 V18 Z" stroke="url(#aw-logo-gradient)" stroke-width="4" stroke-linejoin="round"></path><path d="M32 15 L46.7 23.5 V40.5 L32 49 L17.3 40.5 V23.5 Z" stroke="#41c8f4" stroke-opacity="0.45" stroke-width="1.8" stroke-dasharray="4 3"></path><path d="M32 23 L25 38 M32 23 L39 38 M25 38 L39 38" stroke="#35e0a0" stroke-width="1.8" stroke-opacity="0.75"></path><circle cx="32" cy="23" r="3.4" fill="#35e0a0"></circle><circle cx="25" cy="38" r="3.4" fill="#41c8f4"></circle><circle cx="39" cy="38" r="3.4" fill="#41c8f4"></circle>`,7)]],8,We))}}),{__name:`AwLogo`}),Ke={class:`logo`},qe={class:`logo-mark`,"aria-hidden":`true`},Je={class:`logo-text`},Ye={class:`logo-title`},Xe={class:`app-menu`},Ze={class:`menu-group-label`},Qe={class:`menu-group-text`},$e={class:`menu-group-sep`,"aria-hidden":`true`},et=[`title`,`onClick`],tt={class:`sider-footer`},nt={class:`footer-line`},rt=Object.assign(W(u({__name:`AppSidebar`,setup(e){let t=xe(),{t:n}=oe(),i=te(),a=ae(),o=re(),s=T(!1),u=g(()=>[{id:`console`,label:n(`menu.groups.console`),items:[{key:`/`,icon:`i-tabler-layout-dashboard`,label:n(`menu.dashboard`),motion:`im-pop`},{key:`/workshop`,icon:`i-tabler-box`,label:n(`menu.workshop`),motion:`im-pop`},{key:`/town`,icon:`i-tabler-map-2`,label:n(`menu.town`),motion:`im-pop`},{key:`/daq`,icon:`i-tabler-activity`,label:n(`menu.daq`),motion:`im-pop`},{key:`/dcw`,icon:`i-tabler-settings-automation`,label:n(`menu.dcw`),motion:`im-pop`},{key:`/aml`,icon:`i-tabler-flask`,label:n(`menu.aml`),motion:`im-pop`}]},{id:`ops`,label:n(`menu.groups.ops`),items:[{key:`/monitor`,icon:`i-tabler-cpu`,label:n(`menu.monitor`),motion:`im-pulse`},{key:`/logs`,icon:`i-tabler-list-details`,label:n(`menu.logs`),motion:`im-pop`}]},{id:`system`,label:n(`menu.groups.system`),items:[{key:`/tokens`,icon:`i-tabler-key`,label:n(`menu.tokens`),motion:`im-nudge-up`},{key:`/users`,icon:`i-tabler-users-group`,label:n(`menu.users`),motion:`im-pop`},{key:`/permissions`,icon:`i-tabler-shield-lock`,label:n(`menu.permissions`),motion:`im-pop`,adminOnly:!0},{key:`/plugins`,icon:`i-tabler-puzzle`,label:n(`menu.plugins`),motion:`im-pop`},{key:`/settings`,icon:`i-tabler-settings`,label:n(`menu.settings`),motion:`im-rotate`}]}].map(e=>({...e,items:e.items.filter(e=>!e.adminOnly||s.value&&t.isAdmin)})).filter(e=>e.items.length>0)),b=e=>e===`/`?i.path===`/`:i.path.startsWith(e),w=e=>{D.value&&o.closeMobileNav(),b(e)||P(e)},{isDrawer:D,isTablet:k}=Se();l(()=>{s.value=!0});let ee=g(()=>s.value?D.value?`drawer`:k.value?`rail`:`full`:void 0),A=g(()=>D.value?!1:k.value?!0:o.sidebarCollapsed),j=g(()=>!A.value),F=g(()=>D.value&&o.mobileNavOpen);r(()=>i.path,()=>{o.mobileNavOpen&&o.closeMobileNav()}),_(()=>{typeof document>`u`||(document.body.classList.toggle(`nav-drawer`,D.value),document.body.classList.toggle(`nav-drawer-open`,F.value))}),c(()=>{typeof document>`u`||document.body.classList.remove(`nav-drawer`,`nav-drawer-open`)}),r(F,e=>{typeof document>`u`||(document.body.style.overflow=e?`hidden`:``)});let ne=e=>{e.key===`Escape`&&F.value&&o.closeMobileNav()};return l(()=>window.addEventListener(`keydown`,ne)),c(()=>{window.removeEventListener(`keydown`,ne),typeof document<`u`&&(document.body.style.overflow=``)}),(e,t)=>{let n=Ge,r=Ve;return f(),y(x,null,[h(r,{collapsed:O(A),trigger:null,collapsible:``,width:228,"collapsed-width":64,class:`app-sider`,"data-nav-mode":O(ee),"aria-hidden":O(D)&&!O(F)?`true`:void 0},{default:E(()=>[v(`div`,Ke,[v(`div`,qe,[h(n,{size:30})]),h(M,{name:`slide-fade`},{default:E(()=>[C(v(`div`,Je,[v(`span`,Ye,d(O(a).name),1),t[1]||=v(`span`,{class:`logo-sub`},`digital twin`,-1)],512),[[N,O(j)]])]),_:1})]),v(`nav`,Xe,[(f(!0),y(x,null,m(O(u),e=>(f(),y(`div`,{key:e.id,class:`menu-group`},[C(v(`div`,Ze,[v(`span`,Qe,d(e.label),1),t[2]||=v(`span`,{class:`menu-group-rule`,"aria-hidden":`true`},null,-1)],512),[[N,O(j)]]),C(v(`div`,$e,null,512),[[N,!O(j)]]),(f(!0),y(x,null,m(e.items,e=>(f(),y(`button`,{key:e.key,type:`button`,class:p([`menu-item im`,{active:b(e.key)}]),title:O(j)?void 0:e.label,onClick:t=>w(e.key)},[v(`span`,{class:p([`menu-icon`,[e.icon,e.motion]])},null,2),C(v(`span`,{class:`menu-label`},d(e.label),513),[[N,O(j)]])],10,et))),128))]))),128))]),C(v(`div`,tt,[t[4]||=v(`div`,{class:`footer-rule`},null,-1),v(`div`,nt,[v(`span`,null,`v`+d(O(a).version),1),t[3]||=v(`span`,{class:`sep`},`/`,-1),v(`span`,null,d(O(a).mode),1)])],512),[[N,O(j)]])]),_:1},8,[`collapsed`,`data-nav-mode`,`aria-hidden`]),O(F)?(f(),y(`div`,{key:0,class:`nav-scrim`,"aria-hidden":`true`,onClick:t[0]||=e=>O(o).closeMobileNav()})):S(``,!0)],64)}}}),[[`__scopeId`,`data-v-a91ac3dd`]]),{__name:`AppSidebar`}),it=F(`app.routeTrail`,()=>{let e=T([]);function t(t){if(!t||t.startsWith(`/api`))return;let n=e.value.filter(e=>e.path!==t);e.value=[...n,{path:t,at:Date.now()}].slice(-8)}function n(t){let n=e.value.findIndex(e=>e.path===t);return n>=0&&(e.value=e.value.filter(e=>e.path!==t)),n}function r(){e.value=[]}return{waypoints:e,visit:t,remove:n,clear:r}},{persist:{pick:[`waypoints`],storage:ie.localStorage()}});function at(){let{t:e}=oe(),t=G(),n={"/":{key:`menu.dashboard`,icon:`i-tabler-layout-dashboard`},"/workshop":{key:`menu.workshop`,icon:`i-tabler-box`},"/workshop/agents":{key:`meta.agents`,icon:`i-tabler-users`},"/workshop/teams":{key:`meta.teams`,icon:`i-tabler-users-group`},"/workshop/channel-templates":{key:`meta.ctpl`,icon:`i-tabler-layout-grid-add`},"/town":{key:`menu.town`,icon:`i-tabler-map-2`},"/tokens":{key:`menu.tokens`,icon:`i-tabler-key`},"/daq":{key:`menu.daq`,icon:`i-tabler-activity`},"/dcw":{key:`menu.dcw`,icon:`i-tabler-settings-automation`},"/aml":{key:`menu.aml`,icon:`i-tabler-flask`},"/logs":{key:`menu.logs`,icon:`i-tabler-list-details`},"/permissions":{key:`menu.permissions`,icon:`i-tabler-shield-lock`},"/plugins":{key:`menu.plugins`,icon:`i-tabler-puzzle`},"/users":{key:`menu.users`,icon:`i-tabler-users-group`},"/monitor":{key:`menu.monitor`,icon:`i-tabler-cpu`},"/settings":{key:`menu.settings`,icon:`i-tabler-settings`}};return{metaFor:r=>{let i=n[r];if(i)return{title:e(i.key),icon:i.icon};let a=r.match(/^\/workshop\/w\/([^/]+)$/);if(a){let n=a[1];return{title:t.workspaces.find(e=>e.id===n)?.name??`${e(`header.workspace`)} ${n.slice(0,6)}`,icon:`i-tabler-console`}}let o=r.split(`/`).filter(Boolean).pop()??`·`;return{title:o.charAt(0).toUpperCase()+o.slice(1),icon:`i-tabler-point`}}}}var ot={class:`header-left`},st=[`aria-label`,`aria-expanded`],ct={class:`mobile-title`},lt=[`aria-label`],ut=[`title`,`onClick`,`onKeydown`],dt={class:`node-title`},ft=[`aria-label`,`title`,`onClick`],pt={class:`header-right`},mt=[`title`],ht={class:`hitl-count`},gt={class:`hitl-menu`},_t={class:`hitl-menu-title`},vt=[`onClick`],yt={class:`hitl-item-top`},bt={class:`hitl-item-agent`},xt={class:`hitl-item-kind`},St={class:`hitl-item-title`},Ct=[`title`],wt={class:`user-chip`},Tt={class:`user-initial aw-avatar`},Et={class:`user-meta`},Dt={class:`user-name`},Ot={class:`user-role`},kt=Object.assign(W(u({__name:`AppHeader`,setup(n){let{t:i,locale:a,locales:o,setLocale:s}=oe(),u=re(),_=te(),b=it(),C=xe(),{metaFor:D}=at(),M=Te(),N=Ee(),F=()=>{C.isLoggedIn&&N.ensureConnected()};r(()=>C.token,e=>{e?(F(),M.loadSnapshot()):M.clear()},{immediate:!0});let ie=new Set([`codex-approval`,`opencode-permission`,`dsh-permission`]),ae=e=>{switch(e){case`omp-dialog`:return i(`appHeader.hitlKindOmp`);case`dcw-approval`:return i(`appHeader.hitlKindDcw`);case`codex-approval`:return i(`appHeader.hitlKindCodex`);case`opencode-permission`:return i(`appHeader.hitlKindOpencode`);case`dsh-permission`:return i(`appHeader.hitlKindDsh`);default:return e}},I=e=>{P({path:`/monitor`,query:{agentId:e.agentId,channelId:e.channelId}})},ce=De(),L=T(null),R=async(t,n)=>{L.value=`${t.kind}:${t.id}`;try{await ce.respondHitl({kind:t.kind,id:t.id,confirmed:n,cancelled:!n}),await M.loadSnapshot()}catch(t){e.error(Ce(t))}finally{L.value=null}},z=g(()=>o.value.map(e=>({label:ue.value?e.code.split(`-`)[0].toUpperCase():e.name,value:e.code}))),le=e=>{e!=null&&(ne(`aw.locale`,{maxAge:31536e3}).value=String(e),localStorage.setItem(`aw.locale`,String(e)),s(String(e)),window.location.reload())},{isDrawer:B,isMobile:ue}=Se(),de=g(()=>B.value?u.mobileNavOpen?i(`header.closeNav`):i(`header.openNav`):u.sidebarCollapsed?i(`header.expand`):i(`header.collapse`)),me=()=>{B.value?u.toggleMobileNav():u.toggleSidebar()},he=g(()=>D(_.path).title),V=T(!1),H=T(!1),U=null;r(()=>_.path,()=>{b.visit(_.path),H.value=!1,requestAnimationFrame(()=>{H.value=!0,U&&clearTimeout(U),U=setTimeout(()=>{H.value=!1},620)})},{immediate:!1}),l(()=>{V.value=!0,b.visit(_.path)}),c(()=>{U&&clearTimeout(U)});let be=e=>{e!==_.path&&P(e)},W=e=>{let t=b.remove(e);if(e!==_.path)return;let n=b.waypoints,r=n[Math.min(Math.max(t-1,0),Math.max(n.length-1,0))]?.path??`/`;P(r)},G=T(!1);function Oe(){document.fullscreenElement?(document.exitFullscreen(),G.value=!1):(document.documentElement.requestFullscreen(),G.value=!0)}let ke=g(()=>(C.user?.name??`?`).trim().charAt(0).toUpperCase()),Ae=g(()=>C.user?.name??i(`header.guest`)),K=g(()=>C.isLoggedIn?C.user?.role??`user`:`anonymous`),q=we(),J=g(()=>q.state!==`closed`||q.lastDataAt>0),je=g(()=>q.state===`open`?q.pendingReplay?`syncing`:`live`:q.state===`connecting`?`syncing`:`down`),Y=g(()=>q.state===`open`?q.pendingReplay?i(`appHeader.kwsdot0002`):i(`appHeader.kwsdot0001`):q.state===`connecting`?i(`appHeader.kwsdot0003`):i(`appHeader.kwsdot0004`)),X=g(()=>{let e=[{key:`tokens`,icon:`i-tabler-key`,label:i(`menu.tokens`)},{key:`settings`,icon:`i-tabler-adjustments`,label:i(`menu.settings`)}];return C.isLoggedIn&&(e.push({key:`d-logout`,label:``,divider:!0}),e.push({key:`logout`,icon:`i-tabler-logout`,label:i(`header.logout`),danger:!0})),e}),Z=async({key:e})=>{e===`settings`?P(`/settings`):e===`tokens`?P(`/tokens`):e===`logout`&&(await C.logout(),P(`/workshop`))};return(e,n)=>{let r=t,o=ye,s=se,c=fe,l=pe,g=ge,C=_e,T=ve,N=ze;return f(),w(N,{class:`app-header app-header-glass`},{default:E(()=>[v(`div`,ot,[v(`button`,{class:`collapse-btn`,"aria-label":O(de),"aria-expanded":O(B)?O(u).mobileNavOpen:!O(u).sidebarCollapsed,onClick:n[0]||=e=>me()},[...n[3]||=[v(`span`,{class:`i-tabler-menu-2`},null,-1)]],8,st),v(`span`,ct,d(O(he)),1),n[5]||=v(`span`,{class:`rail-mark i-tabler-route`},null,-1),v(`nav`,{class:`trail`,"aria-label":O(i)(`header.trail`)},[h(j,{name:`stamp`,tag:`div`,class:`trail-row`},{default:E(()=>[O(V)?(f(!0),y(x,{key:0},m(O(b).waypoints,(t,r)=>(f(),y(x,{key:t.path},[r>0?(f(),y(`span`,{key:`link-${t.path}`,class:`trail-link`,"aria-hidden":`true`})):S(``,!0),v(`div`,{class:p([`trail-node`,{active:t.path===O(_).path}]),role:`button`,tabindex:`0`,title:O(D)(t.path).title,onClick:e=>be(t.path),onKeydown:ee(A(e=>be(t.path),[`prevent`]),[`enter`])},[v(`span`,{class:p([`node-icon`,O(D)(t.path).icon])},null,2),v(`span`,dt,d(O(D)(t.path).title),1),v(`button`,{class:`node-close`,"aria-label":e.$t(`appHeader.kzwjv99001`,{p0:O(D)(t.path).title}),title:e.$t(`appHeader.kzwjv99001`,{p0:O(D)(t.path).title}),onClick:A(e=>W(t.path),[`stop`])},[...n[4]||=[v(`span`,{class:`i-tabler-x`},null,-1)]],8,ft)],42,ut)],64))),128)):S(``,!0)]),_:1})],8,lt)]),v(`div`,pt,[h(s,null,{default:E(()=>[O(M).count>0?(f(),w(o,{key:0,placement:`bottomRight`},{overlay:E(()=>[v(`div`,gt,[v(`div`,_t,d(O(i)(`appHeader.hitlBadge`))+` · `+d(O(M).count),1),(f(!0),y(x,null,m(O(M).items,e=>(f(),y(`button`,{key:`${e.kind}:${e.id}`,class:`hitl-item`,onClick:t=>I(e)},[v(`span`,yt,[v(`span`,bt,d(e.agentName),1),v(`span`,xt,d(ae(e.kind)),1)]),v(`span`,St,d(e.title),1),O(ie).has(e.kind)?(f(),y(`span`,{key:0,class:`hitl-item-actions`,onClick:n[1]||=A(()=>{},[`stop`])},[h(r,{size:`small`,type:`primary`,loading:O(L)===`${e.kind}:${e.id}`,onClick:t=>R(e,!0)},{default:E(()=>[k(d(O(i)(`appHeader.hitlApprove`)),1)]),_:1},8,[`loading`,`onClick`]),h(r,{size:`small`,danger:``,disabled:O(L)===`${e.kind}:${e.id}`,onClick:t=>R(e,!1)},{default:E(()=>[k(d(O(i)(`appHeader.hitlReject`)),1)]),_:1},8,[`disabled`,`onClick`])])):S(``,!0)],8,vt))),128))])]),default:E(()=>[v(`button`,{class:`icon-btn hitl-bell`,title:O(i)(`appHeader.hitlBadge`)},[n[6]||=v(`span`,{class:`i-tabler-bell-ringing`},null,-1),v(`span`,ht,d(O(M).count),1)],8,mt)]),_:1})):S(``,!0)]),_:1}),O(V)&&O(J)?(f(),y(`span`,{key:0,class:p([`ws-dot`,O(je)]),title:O(Y)},null,10,Ct)):S(``,!0),h(c,{title:O(i)(`header.fullscreen`)},{default:E(()=>[v(`button`,{class:`icon-btn hdr-fullscreen`,onClick:Oe},[v(`span`,{class:p([`i-tabler-arrows-maximize`,{hidden:O(G)}])},null,2),v(`span`,{class:p([`i-tabler-arrows-minimize`,{hidden:!O(G)}])},null,2)])]),_:1},8,[`title`]),h(l,{id:`hdr-locale`,value:O(a),size:`middle`,options:O(z),class:`lang-select`,onChange:le},null,8,[`value`,`options`]),h(c,{title:O(u).isDark?O(i)(`common.light`):O(i)(`common.dark`)},{default:E(()=>[v(`button`,{class:`icon-btn`,onClick:n[2]||=e=>O(u).toggleDark()},[v(`span`,{class:p([`i-tabler-sun-high`,{hidden:O(u).isDark}])},null,2),v(`span`,{class:p([`i-tabler-moon-stars`,{hidden:!O(u).isDark}])},null,2)])]),_:1},8,[`title`]),h(o,null,{overlay:E(()=>[h(T,{onClick:Z},{default:E(()=>[(f(!0),y(x,null,m(O(X),e=>(f(),y(x,{key:e.key},[e.divider?(f(),w(g,{key:0})):(f(),w(C,{key:e.key,danger:e.danger},{default:E(()=>[v(`span`,{class:p([e.icon,`mr-2`])},null,2),k(` `+d(e.label),1)]),_:2},1032,[`danger`]))],64))),128))]),_:1})]),default:E(()=>[v(`div`,wt,[h(s,null,{fallback:E(()=>[...n[7]||=[v(`span`,{class:`user-initial aw-avatar`},`·`,-1),v(`span`,{class:`user-meta`},[v(`span`,{class:`user-name`},`·`),v(`span`,{class:`user-role`},`·`)],-1)]]),default:E(()=>[v(`span`,Tt,d(O(ke)),1),v(`span`,Et,[v(`span`,Dt,d(O(Ae)),1),v(`span`,Ot,d(O(K)),1)])]),_:1})])]),_:1})]),v(`span`,{class:p([`plotter-line`,{run:O(H)}]),"aria-hidden":`true`},null,2)]),_:1})}}}),[[`__scopeId`,`data-v-1742cc1f`]]),{__name:`AppHeader`}),At={class:`footer-title aw-serif-accent`},jt={class:`footer-corner`},Mt=W(u({__name:`default`,setup(e){let{token:t}=be.useToken(),n=ae();return(e,r)=>{let i=rt,o=kt,c=He,l=Be,u=Ue;return f(),w(u,{class:`app-layout`,"has-sider":``},{default:E(()=>[h(i),h(u,{class:`app-main`,style:s({background:`transparent`,"--app-bg-container":O(t)?.colorBgContainer,"--app-bg-layout":O(t)?.colorBgLayout,"--app-text":O(t)?.colorText,"--app-text-secondary":O(t)?.colorTextSecondary,"--app-border":O(t)?.colorBorderSecondary,"--app-fill":O(t)?.colorFillQuaternary,"--app-header-h":`56px`,"--app-footer-h":`46px`})},{default:E(()=>[h(o),h(c,{class:`app-content`},{default:E(()=>[a(e.$slots,`default`,{},void 0,!0)]),_:3}),h(l,{class:`app-footer`,style:s({color:O(t)?.colorTextSecondary})},{default:E(()=>[v(`span`,At,d(O(n).title),1),r[4]||=v(`span`,{class:`sep`},`/`,-1),v(`span`,null,`mode=`+d(O(n).mode),1),v(`span`,jt,[v(`span`,null,`v`+d(O(n).version),1),r[0]||=v(`span`,{class:`sep`},`·`,-1),r[1]||=v(`a`,{class:`footer-link`,href:`https://github.com/kingdol666/AgentWorkShop`,target:`_blank`,rel:`noopener`},`GitHub`,-1),r[2]||=v(`span`,{class:`sep`},`·`,-1),r[3]||=v(`a`,{class:`footer-link`,href:`https://kingdol666.github.io/AgentWorkShop/`,target:`_blank`,rel:`noopener`},`Docs`,-1)])]),_:1},8,[`style`])]),_:3},8,[`style`]),r[5]||=v(`span`,{class:`aw-noise`,"aria-hidden":`true`},null,-1)]),_:3})}}}),[[`__scopeId`,`data-v-e4abc244`]]);export{Mt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as e,p as t,s as n}from"./DdD9mCHM.js";import{$ as r,D as i,E as a,at as o,ct as s,d as c,dt as l,gt as u,it as d,j as f,lt as p,ot as m,pt as h,rt as ee,ut as g,vt as _}from"./CSkxz2NX.js";var v=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,y=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,b=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function x(e,t){if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t){S(e);return}return t}function S(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function C(e,t={}){if(typeof e!=`string`)return e;if(e[0]===`"`&&e[e.length-1]===`"`&&e.indexOf(`\\`)===-1)return e.slice(1,-1);let n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case`true`:return!0;case`false`:return!1;case`undefined`:return;case`null`:return null;case`nan`:return NaN;case`infinity`:return 1/0;case`-infinity`:return-1/0}if(!b.test(e)){if(t.strict)throw SyntaxError(`[destr] Invalid JSON`);return e}try{if(v.test(e)||y.test(e)){if(t.strict)throw Error(`[destr] Possible prototype pollution`);return JSON.parse(e,x)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}var w=class extends Error{constructor(e,t){super(e,t),this.name=`FetchError`,t?.cause&&!this.cause&&(this.cause=t.cause)}};function T(e){let t=e.error?.message||e.error?.toString()||``,n=e.request?.method||e.options?.method||`GET`,r=e.request?.url||String(e.request)||`/`,i=new w(`${`[${n}] ${JSON.stringify(r)}`}: ${e.response?`${e.response.status} ${e.response.statusText}`:`<no response>`}${t?` ${t}`:``}`,e.error?{cause:e.error}:void 0);for(let t of[`request`,`options`,`response`])Object.defineProperty(i,t,{get(){return e[t]}});for(let[t,n]of[[`data`,`_data`],[`status`,`status`],[`statusCode`,`status`],[`statusText`,`statusText`],[`statusMessage`,`statusText`]])Object.defineProperty(i,t,{get(){return e.response&&e.response[n]}});return i}var E=new Set(Object.freeze([`PATCH`,`POST`,`PUT`,`DELETE`]));function D(e=`GET`){return E.has(e.toUpperCase())}function O(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer||e instanceof FormData||e instanceof URLSearchParams?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}var k=new Set([`image/svg`,`application/xml`,`application/xhtml`,`application/html`]),te=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function ne(e=``){if(!e)return`json`;let t=e.split(`;`).shift()||``;return te.test(t)?`json`:t===`text/event-stream`?`stream`:k.has(t)||t.startsWith(`text/`)?`text`:`blob`}function re(e,t,n,r){let i=ie(t?.headers??e?.headers,n?.headers,r),a;return(n?.query||n?.params||t?.params||t?.query)&&(a={...n?.params,...n?.query,...t?.params,...t?.query}),{...n,...t,query:a,params:a,headers:i}}function ie(e,t,n){if(!t)return new n(e);let r=new n(t);if(e)for(let[t,i]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(t,i);return r}async function A(e,t){if(t){if(Array.isArray(t))for(let n of t)await n(e);else await t(e)}}var ae=new Set([408,409,425,429,500,502,503,504]),oe=new Set([101,204,205,304]);function se(n={}){let{fetch:r=globalThis.fetch,Headers:i=globalThis.Headers,AbortController:a=globalThis.AbortController}=n;async function o(e){let t=e.error&&e.error.name===`AbortError`&&!e.options.timeout||!1;if(e.options.retry!==!1&&!t){let t;t=typeof e.options.retry==`number`?e.options.retry:+!D(e.options.method);let n=e.response&&e.response.status||500;if(t>0&&(Array.isArray(e.options.retryStatusCodes)?e.options.retryStatusCodes.includes(n):ae.has(n))){let n=typeof e.options.retryDelay==`function`?e.options.retryDelay(e):e.options.retryDelay||0;return n>0&&await new Promise(e=>setTimeout(e,n)),s(e.request,{...e.options,retry:t-1})}}let n=T(e);throw Error.captureStackTrace&&Error.captureStackTrace(n,s),n}let s=async function(s,c={}){let l={request:s,options:re(s,c,n.defaults,i),response:void 0,error:void 0};if(l.options.method&&(l.options.method=l.options.method.toUpperCase()),l.options.onRequest&&(await A(l,l.options.onRequest),l.options.headers instanceof i||(l.options.headers=new i(l.options.headers||{}))),typeof l.request==`string`&&(l.options.baseURL&&(l.request=e(l.request,l.options.baseURL)),l.options.query&&(l.request=t(l.request,l.options.query),delete l.options.query),`query`in l.options&&delete l.options.query,`params`in l.options&&delete l.options.params),l.options.body&&D(l.options.method)){if(O(l.options.body)){let e=l.options.headers.get(`content-type`);typeof l.options.body!=`string`&&(l.options.body=e===`application/x-www-form-urlencoded`?new URLSearchParams(l.options.body).toString():JSON.stringify(l.options.body)),e||l.options.headers.set(`content-type`,`application/json`),l.options.headers.has(`accept`)||l.options.headers.set(`accept`,`application/json`)}else(`pipeTo`in l.options.body&&typeof l.options.body.pipeTo==`function`||typeof l.options.body.pipe==`function`)&&(`duplex`in l.options||(l.options.duplex=`half`))}let u;if(!l.options.signal&&l.options.timeout){let e=new a;u=setTimeout(()=>{let t=Error(`[TimeoutError]: The operation was aborted due to timeout`);t.name=`TimeoutError`,t.code=23,e.abort(t)},l.options.timeout),l.options.signal=e.signal}try{l.response=await r(l.request,l.options)}catch(e){return l.error=e,l.options.onRequestError&&await A(l,l.options.onRequestError),await o(l)}finally{u&&clearTimeout(u)}if((l.response.body||l.response._bodyInit)&&!oe.has(l.response.status)&&l.options.method!==`HEAD`){let e=(l.options.parseResponse?`json`:l.options.responseType)||ne(l.response.headers.get(`content-type`)||``);switch(e){case`json`:{let e=await l.response.text(),t=l.options.parseResponse||C;l.response._data=t(e);break}case`stream`:l.response._data=l.response.body||l.response._bodyInit;break;default:l.response._data=await l.response[e]()}}return l.options.onResponse&&await A(l,l.options.onResponse),!l.options.ignoreResponseError&&l.response.status>=400&&l.response.status<600?(l.options.onResponseError&&await A(l,l.options.onResponseError),await o(l)):l.response},c=async function(e,t){return(await s(e,t))._data};return c.raw=s,c.native=(...e)=>r(...e),c.create=(e={},t={})=>se({...n,...t,defaults:{...n.defaults,...t.defaults,...e}}),c}var j=(function(){if(typeof globalThis<`u`)return globalThis;if(typeof self<`u`)return self;if(typeof window<`u`)return window;if(typeof global<`u`)return global;throw Error(`unable to locate global object`)})(),ce=j.fetch?(...e)=>j.fetch(...e):()=>Promise.reject(Error(`[ofetch] global.fetch is not supported!`)),le=j.Headers,ue=j.AbortController,de=se({fetch:ce,Headers:le,AbortController:ue}),fe=()=>window?.__NUXT__?.config||window?.useNuxtApp?.().payload?.config,M=()=>fe().app,pe=()=>M().baseURL,me=()=>M().buildAssetsDir,N=(...e)=>n(P(),me(),...e),P=(...e)=>{let t=M(),r=t.cdnURL||t.baseURL;return e.length?n(r,...e):r};globalThis.__buildAssetsURL=N,globalThis.__publicAssetsURL=P,globalThis.$fetch||(globalThis.$fetch=de.create({baseURL:pe()}));var F=globalThis.$fetch,he=typeof window<`u`,I,L=e=>I=e,R=Symbol();function z(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var B;(function(e){e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`})(B||={});var V=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function ge(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function H(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){_e(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function U(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function W(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var G=typeof navigator==`object`?navigator:{userAgent:``},K=/Macintosh/.test(G.userAgent)&&/AppleWebKit/.test(G.userAgent)&&!/Safari/.test(G.userAgent),_e=he?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!K?ve:`msSaveOrOpenBlob`in G?ye:be:()=>{};function ve(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?W(r):U(r.href)?H(e,t,n):(r.target=`_blank`,W(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){W(r)},0))}function ye(e,t=`download`,n){if(typeof e==`string`){if(U(e))H(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){W(t)})}}else navigator.msSaveOrOpenBlob(ge(e,n),t)}function be(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return H(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(V.HTMLElement))||`safari`in V,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||K)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:xe}=Object;function Se(){let e=d(!0),t=e.run(()=>h({})),n=[],r=[],i=p({install(e){L(i),i._a=e,e.provide(R,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var Ce=()=>{};function we(e,t,n,r=Ce){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&o()&&g(i),i}function q(e,...t){e.forEach(e=>{e(...t)})}var Te=e=>e(),Ee=Symbol(),J=Symbol();function Y(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!t.hasOwnProperty(n))continue;let r=t[n],i=e[n];e[n]=z(i)&&z(r)&&e.hasOwnProperty(n)&&!s(r)&&!m(r)?Y(i,r):r}return e}var De=Symbol();function Oe(e){return!z(e)||!Object.prototype.hasOwnProperty.call(e,De)}var{assign:X}=Object;function ke(e){return!!(s(e)&&e.effect)}function Ae(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],l;function u(){return s||(n.state.value[e]=i?i():{}),X(_(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=p(c(()=>{L(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return l=je(e,u,t,n,r,!0),l}function je(e,t,n={},i,a,o){let c,p=X({actions:{}},n),ee={deep:!0},g,_,v=new Set,y=new Set,b,x=i.state.value[e];!o&&!x&&(i.state.value[e]={}),h({});let S;function C(t){let n;g=_=!1,typeof t==`function`?(t(i.state.value[e]),n={type:B.patchFunction,storeId:e,events:b}):(Y(i.state.value[e],t),n={type:B.patchObject,payload:t,storeId:e,events:b});let r=S=Symbol();f().then(()=>{S===r&&(g=!0)}),_=!0,q(v,n,i.state.value[e])}let w=o?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{X(e,t)})}:Ce;function T(){c.stop(),v.clear(),y.clear(),i._s.delete(e)}let E=(t,n=``)=>{if(Ee in t)return t[J]=n,t;let r=function(){L(i);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}q(y,{args:n,name:r[J],store:O,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:O,n)}catch(e){throw q(o,e),e}return l instanceof Promise?l.then(e=>(q(a,e),e)).catch(e=>(q(o,e),Promise.reject(e))):(q(a,l),l)};return r[Ee]=!0,r[J]=n,r},D={_p:i,$id:e,$onAction:we.bind(null,y),$patch:C,$reset:w,$subscribe(t,n={}){let a=we(v,t,n.detached,()=>o()),o=c.run(()=>r(()=>i.state.value[e],r=>{(n.flush===`sync`?_:g)&&t({storeId:e,type:B.direct,events:b},r)},X({},ee,n)));return a},$dispose:T},O=l(D);i._s.set(e,O);let k=(i._a&&i._a.runWithContext||Te)(()=>i._e.run(()=>(c=d()).run(()=>t({action:E}))));for(let t in k){let n=k[t];s(n)&&!ke(n)||m(n)?o||(x&&Oe(n)&&(s(n)?n.value=x[t]:Y(n,x[t])),i.state.value[e][t]=n):typeof n==`function`&&(k[t]=E(n,t),p.actions[t]=n)}return X(O,k),X(u(O),k),Object.defineProperty(O,"$state",{get:()=>i.state.value[e],set:e=>{C(t=>{X(t,e)})}}),i._p.forEach(e=>{X(O,c.run(()=>e({store:O,app:i._a,pinia:i,options:p})))}),x&&o&&n.hydrate&&n.hydrate(O.$state,x),g=!0,_=!0,O}function Me(e,t,n){let r,o=typeof t==`function`;r=o?n:t;function s(n,s){let c=a();return n||=c?i(R,null):null,n&&L(n),n=I,n._s.has(e)||(o?je(e,t,r,n):Ae(e,r,n)),n._s.get(e)}return s.$id=e,s}var Ne=F;function Pe(){return Ne}function Z(e){if(typeof e!=`object`)return e;var t,n,r=Object.prototype.toString.call(e);if(r===`[object Object]`){if(e.constructor!==Object&&typeof e.constructor==`function`)for(t in n=new e.constructor,e)e.hasOwnProperty(t)&&n[t]!==e[t]&&(n[t]=Z(e[t]));else for(t in n={},e)t===`__proto__`?Object.defineProperty(n,t,{value:Z(e[t]),configurable:!0,enumerable:!0,writable:!0}):n[t]=Z(e[t]);return n}if(r===`[object Array]`){for(t=e.length,n=Array(t);t--;)n[t]=Z(e[t]);return n}return r===`[object Set]`?(n=new Set,e.forEach(function(e){n.add(Z(e))}),n):r===`[object Map]`?(n=new Map,e.forEach(function(e,t){n.set(Z(t),Z(e))}),n):r===`[object Date]`?new Date(+e):r===`[object RegExp]`?(n=new RegExp(e.source,e.flags),n.lastIndex=e.lastIndex,n):r===`[object DataView]`?new e.constructor(Z(e.buffer)):r===`[object ArrayBuffer]`?e.slice(0):r.slice(-6)===`Array]`?new e.constructor(e):e}var Fe=3456e4;function Ie(e,t,n){let r=e.indexOf(`;`,t);return r===-1?n:r}function Le(e,t,n){let r=e.indexOf(`=`,t);return r<n?r:-1}function Re(e,t,n){if(t===n)return``;let r=t,i=n;do{let t=e.charCodeAt(r);if(t!==32&&t!==9)break}while(++r<i);for(;i>r;){let t=e.charCodeAt(i-1);if(t!==32&&t!==9)break;i--}return e.slice(r,i)}var ze=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function Be(e,t){let n=new ze,r=e.length;if(r<2)return n;let i=t?.decode||Ve,a=t?.allowMultiple||!1,o=0;do{let s=Le(e,o,r);if(s===-1)break;let c=Ie(e,o,r);if(s>c){o=e.lastIndexOf(`;`,s-1)+1;continue}let l=Re(e,o,s);if(t?.filter&&!t.filter(l)){o=c+1;continue}let u=i(Re(e,s+1,c));if(a){let e=n[l];e===void 0?n[l]=u:Array.isArray(e)?e.push(u):n[l]=[e,u]}else n[l]===void 0&&(n[l]=u);o=c+1}while(o<r);return n}function Ve(e){if(!e.includes(`%`))return e;try{return decodeURIComponent(e)}catch{return e}}var He=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,Ue=/^[\u0021-\u003A\u003C-\u007E]*$/,We=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,Ge=/^[\u0020-\u003A\u003C-\u007E]*$/,Ke=Object.prototype.toString;function qe(e,t,n){let r=typeof e==`object`&&!!e,i=r?t:n,a=i?.stringify||JSON.stringify,o=r?e:{...n,name:e,value:t==null?``:typeof t==`string`?t:a(t)},s=i?.encode||encodeURIComponent;if(!He.test(o.name))throw TypeError(`argument name is invalid: ${o.name}`);let c=o.value?s(o.value):``;if(!Ue.test(c))throw TypeError(`argument val is invalid: ${o.value}`);if(!o.secure){if(o.partitioned)throw TypeError(`Partitioned cookies must have the Secure attribute`);if(o.sameSite&&String(o.sameSite).toLowerCase()===`none`)throw TypeError(`SameSite=None cookies must have the Secure attribute`);if(o.name.length>9&&o.name.charCodeAt(0)===95&&o.name.charCodeAt(1)===95){let e=o.name.toLowerCase();if(e.startsWith(`__secure-`)||e.startsWith(`__host-`))throw TypeError(`${o.name} cookies must have the Secure attribute`)}}if(o.name.length>7&&o.name.charCodeAt(0)===95&&o.name.charCodeAt(1)===95&&o.name.toLowerCase().startsWith(`__host-`)){if(o.path!==`/`)throw TypeError(`__Host- cookies must have Path=/`);if(o.domain)throw TypeError(`__Host- cookies must not have a Domain attribute`)}let l=o.name+`=`+c;if(o.maxAge!==void 0){if(!Number.isInteger(o.maxAge))throw TypeError(`option maxAge is invalid: ${o.maxAge}`);l+=`; Max-Age=`+Math.max(0,Math.min(o.maxAge,Fe))}if(o.domain){if(!We.test(o.domain))throw TypeError(`option domain is invalid: ${o.domain}`);l+=`; Domain=`+o.domain}if(o.path){if(!Ge.test(o.path))throw TypeError(`option path is invalid: ${o.path}`);l+=`; Path=`+o.path}if(o.expires){if(!Je(o.expires)||!Number.isFinite(o.expires.valueOf()))throw TypeError(`option expires is invalid: ${o.expires}`);l+=`; Expires=`+o.expires.toUTCString()}if(o.httpOnly&&(l+=`; HttpOnly`),o.secure&&(l+=`; Secure`),o.partitioned&&(l+=`; Partitioned`),o.priority)switch(typeof o.priority==`string`?o.priority.toLowerCase():void 0){case`low`:l+=`; Priority=Low`;break;case`medium`:l+=`; Priority=Medium`;break;case`high`:l+=`; Priority=High`;break;default:throw TypeError(`option priority is invalid: ${o.priority}`)}if(o.sameSite)switch(typeof o.sameSite==`string`?o.sameSite.toLowerCase():o.sameSite){case!0:case`strict`:l+=`; SameSite=Strict`;break;case`lax`:l+=`; SameSite=Lax`;break;case`none`:l+=`; SameSite=None`;break;default:throw TypeError(`option sameSite is invalid: ${o.sameSite}`)}return l}function Je(e){return Ke.call(e)===`[object Date]`}function Ye(e){return typeof e==`string`?`'${e}'`:new Xe().serialize(e)}var Xe=function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?e.localeCompare(t):n===`number`&&r===`number`?e-t:String.prototype.localeCompare.call(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}return this.serializeObjectEntries(r,Object.entries(e))}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t?.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e}();function Ze(e,t){return e===t||Ye(e)===Ye(t)}function Qe(e){if(e!==`undefined`)try{let t=JSON.parse(e);return typeof t==`number`&&String(t)!==e?e:t}catch{return e}}var $e={path:`/`,watch:!0,decode:e=>e&&Qe(decodeURIComponent(e)),encode:e=>{if(typeof e!=`string`||e===`undefined`)return encodeURIComponent(JSON.stringify(e));try{if(typeof JSON.parse(e)!=`string`)return encodeURIComponent(JSON.stringify(e))}catch{}return encodeURIComponent(e)},refresh:!1},Q=globalThis.cookieStore;function et(e,t){let n={...$e,...t};n.filter??=t=>t===e;let i=tt(n)||{},a;n.maxAge===void 0?n.expires&&(a=n.expires.getTime()-Date.now()):a=n.maxAge*1e3;let s=a!==void 0&&a<=0,c=s||i[e]===void 0||i[e]===null,l=Z(s?void 0:i[e]??n.default?.()),u=a&&!s?ot(l,a,n.watch&&n.watch!==`shallow`):h(l);{let t=null;try{!Q&&typeof BroadcastChannel<`u`&&(t=new BroadcastChannel(`nuxt:cookies:${e}`))}catch{}let a=(r=!1)=>{!r&&(n.readonly||Ze(u.value,i[e]))||(at(e,u.value===null||u.value===void 0?void 0:n.encode(u.value),n),i[e]=Z(u.value),t?.postMessage({value:n.encode(u.value)}))},s=t=>{let r=t.refresh?tt(n)?.[e]:n.decode(t.value);l=!0,u.value=r,i[e]=Z(r),f(()=>{l=!1})},l=!1,d=!!o();if(d&&g(()=>{l=!0,a(),t?.close()}),Q){let t=t=>{let n=t.changed.find(t=>t.name===e),r=t.deleted.find(t=>t.name===e);n&&s({value:n.value}),r&&s({value:null})};Q.addEventListener(`change`,t),d&&g(()=>Q.removeEventListener(`change`,t))}else t&&(t.onmessage=({data:e})=>s(e));n.watch&&r(u,()=>{l||a(n.refresh)},{deep:n.watch!==`shallow`}),c&&a(c)}return u}function tt(e={}){return Be(document.cookie,e)}var nt=e=>e;function rt(e){let{encode:t,decode:n,...r}=e;return{...r,encode:nt}}function it(e,t,n={}){let r=rt(n);return t===void 0?qe(e,``,{...r,maxAge:-1}):qe(e,t,r)}function at(e,t,n={}){document.cookie=it(e,t,n)}var $=2147483647;function ot(e,t,n){let i,a,s=0,c=n?h(e):{value:e};return o()&&g(()=>{a?.(),clearTimeout(i)}),ee((e,o)=>{n&&(a=r(c,o));function l(){let e=t-s,n=e<$?e:$;i=setTimeout(()=>{if(s+=n,s<t)return l();c.value=void 0,o()},n)}function u(){s=0,clearTimeout(i),l()}return{get(){return e(),c.value},set(e){u(),c.value=e,o()}}})}export{L as a,N as c,Me as i,Pe as n,Oe as o,Se as r,F as s,et as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.page[data-v-a4c18069]{padding:4px}.back[data-v-a4c18069]{color:var(--ink-faint);text-decoration:none}.back[data-v-a4c18069]:hover{color:var(--accent)}.aw-page-head h1[data-v-a4c18069]{letter-spacing:-.01em;margin:2px 0 4px;font-size:26px;font-weight:400}.mono[data-v-a4c18069]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.sec[data-v-a4c18069]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 10px;font-size:12px;font-weight:600}.mt[data-v-a4c18069]{margin-top:22px}.err[data-v-a4c18069]{color:var(--tone-danger-dot);margin-top:14px;font-size:13px}.grid[data-v-a4c18069]{grid-template-columns:minmax(260px,340px) minmax(320px,1fr) minmax(280px,380px);align-items:start;gap:14px;display:grid}@media (width<=1100px){.grid[data-v-a4c18069]{grid-template-columns:1fr}}.pad[data-v-a4c18069],.value-card[data-v-a4c18069]{padding:16px 18px}.big-val[data-v-a4c18069]{color:var(--accent);margin:8px 0 10px;font-size:40px;line-height:1.1}.big-val small[data-v-a4c18069]{color:var(--ink-faint);margin-left:8px;font-size:15px}.live-canvas[data-v-a4c18069]{border:1px solid var(--line);border-radius:var(--radius-chip);background:var(--paper-deep);width:100%;height:64px}.facts[data-v-a4c18069]{flex-direction:column;gap:4px;margin:14px 0 0;display:flex}.facts div[data-v-a4c18069]{justify-content:space-between;font-size:11.5px;display:flex}.facts dt[data-v-a4c18069]{color:var(--ink-faint)}.facts dd[data-v-a4c18069]{color:var(--ink);margin:0}.form-grid[data-v-a4c18069]{flex-direction:column;gap:10px;display:flex}.field[data-v-a4c18069]{color:var(--ink-faint);flex-direction:column;flex:1;gap:4px;font-size:12px;display:flex}.field.row[data-v-a4c18069]{flex-direction:row;align-items:center;gap:8px}.field.row small[data-v-a4c18069]{color:var(--ink-faint)}.field-row[data-v-a4c18069]{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.input[data-v-a4c18069]{width:100%;color:var(--ink);background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 9px;font-size:12.5px}.input[data-v-a4c18069]:disabled{opacity:.45}.grow[data-v-a4c18069]{flex:auto}.toggle[data-v-a4c18069]{cursor:pointer;color:var(--tone-neutral-dot);background:var(--tone-neutral-bg);border-radius:var(--radius-chip);border:0;align-self:flex-start;padding:6px 12px;font-size:12px}.toggle.on[data-v-a4c18069]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.toggle.slim[data-v-a4c18069]{padding:6px 10px;font-size:11.5px}.bind-row[data-v-a4c18069]{gap:8px;display:flex}.driver-grid[data-v-a4c18069]{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.field em[data-v-a4c18069]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.test-row[data-v-a4c18069]{align-items:center;gap:10px;margin-top:8px;display:flex}.test-out[data-v-a4c18069]{font-size:11px}.test-out.ok[data-v-a4c18069]{color:var(--tone-success-dot)}.test-out.bad[data-v-a4c18069]{color:var(--tone-danger-dot)}.col-hist[data-v-a4c18069]{min-width:0}.hist-hd[data-v-a4c18069]{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.hist-ctl[data-v-a4c18069]{align-items:center;gap:6px;display:flex}.refresh-ctl[data-v-a4c18069]{color:var(--ink-soft);align-items:center;gap:3px;font-size:11px;display:inline-flex}.refresh-ctl input[data-v-a4c18069]{width:62px;color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 6px;font-size:11px}.refresh-ctl input[data-v-a4c18069]:focus{border-color:var(--accent);outline:none}.hist-canvas[data-v-a4c18069]{border:1px solid var(--line);border-radius:var(--radius-chip);background:var(--paper-deep);width:100%;height:130px}.raw-table[data-v-a4c18069]{border-collapse:collapse;width:100%;margin-top:10px;font-size:11px}.raw-table td[data-v-a4c18069],.raw-table th[data-v-a4c18069]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:4px 6px}.raw-table th[data-v-a4c18069]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}.st-pill[data-v-a4c18069]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 11px;font-size:11px;display:inline-block}.st-pill.ok[data-v-a4c18069]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.warn[data-v-a4c18069]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.st-pill.alarm[data-v-a4c18069]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.offline[data-v-a4c18069]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.frames-tile[data-v-a4c18069]{margin-top:14px}.frames-n[data-v-a4c18069]{color:var(--ink-faint);margin-left:8px}.vec-svg[data-v-a4c18069]{background:var(--tone-neutral-bg);border-radius:6px;width:100%;height:96px;margin-bottom:10px;display:block}.gal[data-v-a4c18069]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.gal-item[data-v-a4c18069]{cursor:zoom-in;margin:0}.gal-item img[data-v-a4c18069]{aspect-ratio:4/3;-o-object-fit:cover;object-fit:cover;background:var(--tone-neutral-bg);border-radius:6px;width:100%;display:block}.gal-item figcaption[data-v-a4c18069]{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:11px;overflow:hidden}.frames-empty[data-v-a4c18069]{color:var(--ink-faint);margin:8px 0;font-size:13px}.gal-full[data-v-a4c18069]{z-index:60;cursor:zoom-out;background:#000000b8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gal-full img[data-v-a4c18069]{border-radius:8px;max-width:92vw;max-height:92vh}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.line-chip[data-v-84c0b97c]{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:8px;display:inline-block;box-shadow:0 0 10px}.param-chip.daqwin[data-v-84c0b97c]{color:#41c8f4;border-color:#41c8f466}.adopt-card[data-v-84c0b97c]{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.adopt-title[data-v-84c0b97c]{color:var(--aw-dim,#8fa0b5);flex:none;padding-top:4px;font-size:12px}.adopt-list[data-v-84c0b97c]{flex-wrap:wrap;gap:8px;display:flex}.adopt-chip[data-v-84c0b97c]{color:#e8eef8;background:#0d1420b3;border:1px solid #3c506e80;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 8px;font-size:11.5px;display:inline-flex}.page[data-v-84c0b97c]{padding:4px}h1[data-v-84c0b97c]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.ledger-card[data-v-84c0b97c]{margin-bottom:14px;padding:14px 18px}.ledger-head[data-v-84c0b97c]{align-items:center;gap:12px;display:flex}.ledger-head b[data-v-84c0b97c]{font-size:13.5px}.ledger-tri[data-v-84c0b97c]{align-items:center;gap:12px;margin-top:12px;display:flex}.tri-cell[data-v-84c0b97c]{background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);flex-direction:column;flex:none;gap:2px;padding:8px 16px;display:flex}.tri-cell small[data-v-84c0b97c]{color:var(--ink-faint);font-size:11.5px}.tri-cell b[data-v-84c0b97c]{color:var(--ink);font-size:17px}.ledger-cols[data-v-84c0b97c]{grid-template-columns:1fr 1fr;gap:16px;margin-top:12px;display:grid}.sec-t[data-v-84c0b97c]{letter-spacing:.12em;color:var(--ink-faint);margin-bottom:6px;font-size:11.5px;font-weight:700;display:block}.ledger-list[data-v-84c0b97c]{max-height:200px;color:var(--ink-soft);flex-direction:column;gap:3px;margin:0;padding:0;font-size:11.5px;list-style:none;display:flex;overflow:auto}.ledger-rec[data-v-84c0b97c]{align-items:center;gap:8px;display:flex}.rec-st[data-v-84c0b97c]{font-family:var(--font-mono);color:var(--ink-faint);border:1px solid var(--line-strong);border-radius:4px;flex:none;padding:0 6px;font-size:11.5px}.rec-st.open[data-v-84c0b97c]{color:var(--tone-warning-dot);border-color:var(--tone-warning-dot)}.tri-cell b[data-v-84c0b97c]{overflow-wrap:anywhere}.rec-st.judged[data-v-84c0b97c]{color:var(--tone-warning-dot);border-color:var(--tone-warning-dot);opacity:.85}.rec-st.judged-keep[data-v-84c0b97c],.rec-st.rolled-back[data-v-84c0b97c]{color:var(--tone-success-dot);border-color:var(--tone-success-dot)}.sub[data-v-84c0b97c]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-84c0b97c]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-84c0b97c]{opacity:.55}.badges[data-v-84c0b97c]{gap:8px;display:flex}.badge[data-v-84c0b97c]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11.5px}.ctrl-card[data-v-84c0b97c]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:14px 18px;display:flex}.ctrl-left[data-v-84c0b97c]{align-items:center;gap:14px;display:flex}.aw-pill.running[data-v-84c0b97c]{background:var(--accent)}.ctrl-right[data-v-84c0b97c]{align-items:center;gap:12px;display:flex}.ctrl-metrics[data-v-84c0b97c]{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:11.5px;display:flex}.ctrl-metrics .sep[data-v-84c0b97c]{opacity:.4}.ctrl-metrics .warn[data-v-84c0b97c]{color:var(--tone-warning-dot)}.add-btn[data-v-84c0b97c]{padding:8px 16px;font-size:13px}.banner[data-v-84c0b97c]{border-radius:var(--radius-chip);margin:0 0 12px;padding:9px 14px;font-size:12.5px}.banner.bad[data-v-84c0b97c]{color:var(--tone-danger-dot);background:var(--tone-danger-bg);border:1px solid color-mix(in srgb, var(--tone-danger-dot) 40%, transparent)}.banner.good[data-v-84c0b97c]{color:var(--tone-success-dot);background:var(--tone-success-bg);border:1px solid color-mix(in srgb, var(--tone-success-dot) 40%, transparent)}.table-card[data-v-84c0b97c]{margin-bottom:14px;overflow-x:auto}.nodes-table[data-v-84c0b97c]{border-collapse:collapse;width:100%;font-size:12.5px}.nodes-table td[data-v-84c0b97c],.nodes-table th[data-v-84c0b97c]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:9px 12px}.nodes-table th[data-v-84c0b97c]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11px;font-weight:600}.nodes-table td b[data-v-84c0b97c]{margin-left:8px}.ch[data-v-84c0b97c]{color:var(--ink-faint);margin-top:2px;font-size:11.5px;display:block}.right[data-v-84c0b97c]{text-align:right}.val[data-v-84c0b97c]{font-size:13px}.val small[data-v-84c0b97c]{color:var(--ink-faint);margin-left:3px}.read-stale[data-v-84c0b97c]{color:var(--tone-danger-dot,#e05a5a);text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.read-btn[data-v-84c0b97c]{margin-left:8px}.st-pill[data-v-84c0b97c]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 9px;font-size:11.5px;display:inline-block}.st-pill.ok[data-v-84c0b97c]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.writing[data-v-84c0b97c]{color:var(--ink);background:var(--hover-tint)}.st-pill.alarm[data-v-84c0b97c],.st-pill.error[data-v-84c0b97c]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.warn[data-v-84c0b97c]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.st-pill.idle[data-v-84c0b97c],.st-pill.offline[data-v-84c0b97c]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.paused[data-v-84c0b97c]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.ctrl-toggle[data-v-84c0b97c]{cursor:pointer;color:var(--ink-faint);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:3px 10px;font-size:11.5px;display:inline-flex}.ctrl-toggle .ct-dot[data-v-84c0b97c]{background:var(--tone-neutral-dot);border-radius:50%;width:7px;height:7px}.ctrl-toggle.on[data-v-84c0b97c]{color:var(--tone-success-dot);border-color:color-mix(in srgb, var(--tone-success-dot) 45%, transparent)}.ctrl-toggle.on .ct-dot[data-v-84c0b97c]{background:var(--tone-success-dot);box-shadow:0 0 6px var(--tone-success-dot)}.ctrl-toggle[data-v-84c0b97c]:disabled{opacity:.55;cursor:wait}.node-paused td[data-v-84c0b97c]{opacity:.6}.node-paused .write-row[data-v-84c0b97c]{opacity:.5}.tpl-hint[data-v-84c0b97c]{margin:0 0 10px;font-size:12px}.recipe-hd[data-v-84c0b97c],.recipe-actions[data-v-84c0b97c]{flex-wrap:wrap}.tpl-chips[data-v-84c0b97c]{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.tpl-chip[data-v-84c0b97c]{color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);flex-wrap:wrap;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;display:inline-flex}.tpl-chip small[data-v-84c0b97c]{color:var(--ink-faint)}.tpl-tag[data-v-84c0b97c]{color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:var(--radius-pill);padding:1px 6px;font-size:11.5px;font-style:normal}.tpl-tag.builtin[data-v-84c0b97c]{color:var(--ink-faint);border-color:var(--line-strong)}.write-row[data-v-84c0b97c]{align-items:center;gap:6px;display:flex}.write-inp[data-v-84c0b97c]{width:92px;padding:4px 8px}.write-btn[data-v-84c0b97c]{padding:5px 12px}.mini-btn[data-v-84c0b97c]{margin-right:4px}.mini-btn.danger[data-v-84c0b97c]{color:var(--tone-danger-dot)}.mini-btn[data-v-84c0b97c]:hover{border-color:var(--accent);color:var(--accent)}.inp[data-v-84c0b97c]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 9px;font-size:12.5px}.line-card[data-v-84c0b97c]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:14px 18px;display:flex}.line-status[data-v-84c0b97c]{align-items:center;gap:12px;min-width:260px;display:flex}.line-dot[data-v-84c0b97c]{background:var(--tone-neutral-dot);width:12px;height:12px;box-shadow:0 0 0 4px color-mix(in srgb, var(--tone-neutral-dot) 20%, transparent);border-radius:50%}.line-dot.on[data-v-84c0b97c]{background:var(--tone-success-dot);box-shadow:0 0 0 4px color-mix(in srgb, var(--tone-success-dot) 22%, transparent);animation:1.6s infinite linePulse-84c0b97c}@keyframes linePulse-84c0b97c{0%,to{box-shadow:0 0 0 3px color-mix(in srgb, var(--tone-success-dot) 25%, transparent)}50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--tone-success-dot) 8%, transparent)}}.line-info b[data-v-84c0b97c]{font-size:14px}.line-info small[data-v-84c0b97c]{margin-top:2px;font-size:11px;display:block}.line-ctl[data-v-84c0b97c]{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.ctl-sel[data-v-84c0b97c]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11px;display:flex}.ctl-sel .inp[data-v-84c0b97c]{min-width:150px}.param-chip[data-v-84c0b97c]{overflow-wrap:anywhere}.product-row[data-v-84c0b97c]{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}.prod-chip[data-v-84c0b97c]{cursor:pointer;color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:4px 12px;font-size:12px;display:inline-flex}.prod-chip.on[data-v-84c0b97c]{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.prod-del[data-v-84c0b97c]{color:var(--tone-danger-dot);font-weight:700}.query-card[data-v-84c0b97c]{margin-bottom:14px;padding:14px 18px}.q-grid[data-v-84c0b97c]{grid-template-columns:repeat(6,1fr);align-items:end;gap:10px;display:grid}.recipe-grid[data-v-84c0b97c]{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr))}.q-grid .f[data-v-84c0b97c]{color:var(--ink-faint);font-size:11px}.q-actions[data-v-84c0b97c]{justify-content:flex-end}.q-result[data-v-84c0b97c]{margin-top:12px;overflow-x:auto}.cal-form[data-v-84c0b97c]{grid-template-columns:2fr 1fr;align-items:end}.recipe-card[data-v-84c0b97c]{margin-bottom:14px;padding:16px 18px}.recipe-hd[data-v-84c0b97c]{align-items:center;gap:10px;margin-bottom:6px;display:flex}.recipe-hd h3[data-v-84c0b97c]{margin:0;font-size:16px}.panel-tag[data-v-84c0b97c]{color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:2px 8px;font-size:11.5px}.recipe-sub[data-v-84c0b97c]{color:var(--ink-faint);margin:0 0 14px;font-size:12px}.recipe-grid[data-v-84c0b97c]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.recipe-item[data-v-84c0b97c]{background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);padding:12px 14px}.recipe-name b[data-v-84c0b97c]{font-size:13.5px}.recipe-name small[data-v-84c0b97c]{margin-left:8px}.desc[data-v-84c0b97c]{margin:4px 0;font-size:12px}.recipe-params[data-v-84c0b97c]{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.param-chip[data-v-84c0b97c]{color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:var(--radius-chip);padding:2px 8px;font-size:11.5px}.recipe-actions[data-v-84c0b97c]{align-items:center;gap:6px;margin-top:8px;display:flex}.ver-row[data-v-84c0b97c]{border:1px solid var(--divider-hair);border-radius:10px;margin-bottom:8px;padding:10px 12px}.ver-row.cur[data-v-84c0b97c]{background:color-mix(in srgb, var(--accent) 6%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.ver-head[data-v-84c0b97c]{align-items:center;gap:10px;display:flex}.ver-v[data-v-84c0b97c]{font-size:13px;font-weight:700}.ver-src[data-v-84c0b97c]{border:1px solid var(--line-strong);border-radius:var(--radius-pill);padding:1px 8px;font-size:11.5px}.ver-src.agent[data-v-84c0b97c]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 50%, transparent)}.ver-src.user[data-v-84c0b97c]{color:var(--ink-soft)}.ver-src.system[data-v-84c0b97c]{color:var(--ink-faint)}.ver-src.cur[data-v-84c0b97c]{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:#0000}.ver-actor[data-v-84c0b97c]{font-family:var(--font-mono);color:var(--ink-soft);font-size:12px}.ver-desc[data-v-84c0b97c]{color:var(--ink);margin:6px 0 0;font-size:12px}.ver-diff[data-v-84c0b97c]{color:var(--ink-faint);margin:4px 0 0;font-size:11px}.sec-label[data-v-84c0b97c]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:14px 0 6px;font-size:11px;font-weight:600}.runs[data-v-84c0b97c]{margin-top:6px}.modal-mask[data-v-84c0b97c]{z-index:50;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-84c0b97c]{background:var(--surface-glass-strong);width:680px;max-width:94vw;max-height:88vh;-webkit-backdrop-filter:var(--aurora-blur);backdrop-filter:var(--aurora-blur);border:1px solid var(--glass-line);border-radius:var(--radius-panel);box-shadow:var(--glass-edge), var(--shadow-float);padding:22px 24px;overflow-y:auto}.m-title[data-v-84c0b97c]{margin:0 0 14px;font-size:17px}.seg-row[data-v-84c0b97c]{gap:8px;margin-bottom:14px;display:flex}.seg[data-v-84c0b97c]{cursor:pointer;color:var(--ink-faint);background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);flex:1;padding:8px 0;font-size:13px}.seg.on[data-v-84c0b97c]{color:var(--on-accent);background:var(--accent);border-color:var(--accent);font-weight:600}.f-grid[data-v-84c0b97c]{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.driver-form[data-v-84c0b97c]{grid-template-columns:repeat(3,1fr)}.param-row[data-v-84c0b97c]{grid-template-columns:2fr 1fr 1fr 1fr auto;align-items:end;gap:8px;margin-bottom:8px;display:grid}.param-row .f[data-v-84c0b97c]{flex:1}.param-del[data-v-84c0b97c]{margin-bottom:2px}.f[data-v-84c0b97c]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11.5px;display:flex}.f em[data-v-84c0b97c]{margin-left:3px;font-style:normal}.hint[data-v-84c0b97c]{color:var(--ink-faint);font-size:11.5px}.test-row[data-v-84c0b97c]{align-items:center;gap:10px;margin:6px 0 4px;display:flex}.test-result[data-v-84c0b97c]{font-family:var(--font-mono);font-size:11px}.test-result.good[data-v-84c0b97c]{color:var(--tone-success-dot)}.test-result.bad[data-v-84c0b97c]{color:var(--tone-danger-dot)}.m-err[data-v-84c0b97c]{color:var(--tone-danger-dot);margin:8px 0 0;font-size:12px}.m-note[data-v-84c0b97c]{color:var(--ink-faint);margin:8px 0 0;font-size:12px}.param-chip.stale[data-v-84c0b97c]{color:var(--ink-faint);background:color-mix(in srgb, var(--ink) 5%, transparent);border-color:var(--divider-hair);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--ink-faint) 60%, transparent);text-decoration-color:color-mix(in srgb, var(--ink-faint) 60%, transparent)}.chip-stale-tag[data-v-84c0b97c]{color:var(--tone-danger-dot);background:color-mix(in srgb, var(--tone-danger-dot) 8%, transparent);border:1px solid color-mix(in srgb, var(--tone-danger-dot) 30%, transparent);border-radius:var(--radius-chip);margin-left:5px;padding:0 5px;font-size:11.5px;font-style:normal;text-decoration:none}.row-stale[data-v-84c0b97c]{color:var(--tone-danger-dot);border:1px solid color-mix(in srgb, var(--tone-danger-dot) 30%, transparent);border-radius:var(--radius-chip);flex:none;padding:1px 7px;font-size:11.5px}.m-actions[data-v-84c0b97c]{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.aw-pill.outline[data-v-84c0b97c]{color:var(--ink);background:var(--paper-raised);border-color:var(--line-strong)}.err[data-v-84c0b97c]{color:var(--tone-danger-dot);margin-top:14px;font-size:13px}@media (prefers-reduced-motion:no-preference){.nodes-table tbody tr[data-v-84c0b97c]:hover{background:var(--hover-tint)}}@media (width<=900px){.ctrl-card[data-v-84c0b97c]{gap:12px;padding:12px}.ctrl-right[data-v-84c0b97c]{flex-wrap:wrap;gap:8px 10px;width:100%}.ctrl-metrics[data-v-84c0b97c]{width:100%}.line-card[data-v-84c0b97c]{gap:12px;padding:12px}.line-status[data-v-84c0b97c]{min-width:0}.line-ctl[data-v-84c0b97c]{width:100%}.ctl-sel[data-v-84c0b97c]{flex:140px;min-width:0}.ctl-sel .inp[data-v-84c0b97c]{width:100%;min-width:0}.line-ctl .pill-btn[data-v-84c0b97c]{flex:120px}.table-card[data-v-84c0b97c]{-webkit-overflow-scrolling:touch;overflow-x:auto}.nodes-table[data-v-84c0b97c]{min-width:1080px}.nodes-table td[data-v-84c0b97c],.nodes-table th[data-v-84c0b97c]{white-space:nowrap}.nodes-table tbody>tr>td[data-v-84c0b97c]:first-child,.nodes-table thead>tr>th[data-v-84c0b97c]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.adopt-card[data-v-84c0b97c],.ledger-card[data-v-84c0b97c],.query-card[data-v-84c0b97c],.recipe-card[data-v-84c0b97c]{padding:12px}.ledger-cols[data-v-84c0b97c]{grid-template-columns:1fr}.ledger-tri[data-v-84c0b97c]{flex-wrap:wrap}.aw-pill[data-v-84c0b97c],.ctrl-toggle[data-v-84c0b97c],.inp[data-v-84c0b97c],.mini-btn[data-v-84c0b97c],.pill-btn[data-v-84c0b97c],.prod-chip[data-v-84c0b97c],.tpl-chip[data-v-84c0b97c],.write-inp[data-v-84c0b97c]{min-height:40px}.write-inp[data-v-84c0b97c]{width:100%;min-width:90px}.write-row[data-v-84c0b97c]{flex-wrap:wrap}.cal-form[data-v-84c0b97c],.driver-form[data-v-84c0b97c],.f-grid[data-v-84c0b97c]{grid-template-columns:1fr}.q-grid[data-v-84c0b97c]{grid-template-columns:repeat(2,minmax(0,1fr))}.param-row[data-v-84c0b97c]{grid-template-columns:1fr 1fr}.modal[data-v-84c0b97c]{width:calc(100vw - 20px);max-width:calc(100vw - 20px);padding:16px 14px}.seg[data-v-84c0b97c]{min-height:40px;padding:10px 0}.m-actions[data-v-84c0b97c]{flex-wrap:wrap}.m-actions[data-v-84c0b97c]>*{flex:auto}.recipe-hd .mini-btn[data-v-84c0b97c],.recipe-hd .pill-btn[data-v-84c0b97c]{min-height:40px}}@media (width<=640px){h1[data-v-84c0b97c]{font-size:22px}.q-grid[data-v-84c0b97c]{grid-template-columns:1fr}}
|