agentworkshop 0.7.52 → 0.7.54
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 +157 -1
- package/.output/.AgentWorkShop/prompts/host-tools.json +157 -1
- package/.output/.AgentWorkShop/schema.json +4 -1
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/8oRmGaAV.js +1 -0
- package/.output/public/_nuxt/{9zrLAN2o2.js → BJhsCisg2.js} +1 -1
- package/.output/public/_nuxt/BOhcoxIu.js +2 -0
- package/.output/public/_nuxt/{BdM_Qr752.js → BP8TgWo02.js} +1 -1
- package/.output/public/_nuxt/{bg2adfck.js → BPqXOlYX.js} +1 -1
- package/.output/public/_nuxt/{Crbir9cT.js → BQOn0q6Y.js} +1 -1
- package/.output/public/_nuxt/{BPou3U7b.js → BQy0Yy7S.js} +1 -1
- package/.output/public/_nuxt/BTVyPFng2.js +1 -0
- package/.output/public/_nuxt/{qOlYoGLf.js → BWowAAJb.js} +1 -1
- package/.output/public/_nuxt/{CTvh8v4T.js → BXR3tgEk.js} +1 -1
- package/.output/public/_nuxt/{DQMbdg4t.js → BZtgVXC5.js} +1 -1
- package/.output/public/_nuxt/BcX4fktE.js +1 -0
- package/.output/public/_nuxt/{B_LcD7qE2.js → BdF9OAZq2.js} +1 -1
- package/.output/public/_nuxt/{IU-UGkCJ2.js → BhcbvVOa2.js} +1 -1
- package/.output/public/_nuxt/{CBDX7p73.js → BjWbbMHs.js} +1 -1
- package/.output/public/_nuxt/{mNnuUoSy.js → BkfA3BbD.js} +1 -1
- package/.output/public/_nuxt/{YaroNkJZ2.js → BmTzcKJg2.js} +1 -1
- package/.output/public/_nuxt/BnoyYd0Z2.js +1 -0
- package/.output/public/_nuxt/{Bl5dYv4m.js → BqYO-UfR.js} +1 -1
- package/.output/public/_nuxt/Btv3HXrq.js +1 -0
- package/.output/public/_nuxt/{BGKUW7ra.js → Btx8wL4-.js} +1 -1
- package/.output/public/_nuxt/{CBIoheY42.js → BuXaEtBG2.js} +1 -1
- package/.output/public/_nuxt/{BXx9AxdF2.js → BxWvUgMz2.js} +1 -1
- package/.output/public/_nuxt/{1g9IT9Qh2.js → BxoaZc_U2.js} +1 -1
- package/.output/public/_nuxt/C-LU6xv_.js +1 -0
- package/.output/public/_nuxt/{BcQXL8pb.js → C-y_g11k.js} +1 -1
- package/.output/public/_nuxt/{Bt2ZL5332.js → C4sQKuhk.js} +1 -1
- package/.output/public/_nuxt/C7_F68I7.js +1 -0
- package/.output/public/_nuxt/{CkPxL4UX2.js → CBUIODly2.js} +1 -1
- package/.output/public/_nuxt/CFjveTJh.js +1 -0
- package/.output/public/_nuxt/{BQXCMsXk.js → CMWyj56j.js} +1 -1
- package/.output/public/_nuxt/{C4WhK2wq.js → COQM2L1M.js} +1 -1
- package/.output/public/_nuxt/{BiUhxH3t2.js → CV61ysvv.js} +1 -1
- package/.output/public/_nuxt/Ca3iDJwu2.js +21 -0
- package/.output/public/_nuxt/{BiOSWsjD.js → Cg8Pgbeu.js} +1 -1
- package/.output/public/_nuxt/{CFQyYMEn2.js → Ch9KdZWb2.js} +1 -1
- package/.output/public/_nuxt/{B1RT9NTO2.js → ChN5v-i22.js} +1 -1
- package/.output/public/_nuxt/{DefDtlKK.js → Cpm5JYv4.js} +1 -1
- package/.output/public/_nuxt/{DsGf2IV82.js → CtXOpljm2.js} +1 -1
- package/.output/public/_nuxt/{B9cGf8mg.js → CvGYm7w8.js} +1 -1
- package/.output/public/_nuxt/{EhhQmlBV2.js → D2Sm-GTk2.js} +1 -1
- package/.output/public/_nuxt/{DCtk3qqr.js → D8xUsQGt.js} +1 -1
- package/.output/public/_nuxt/{CQabB0oy.js → D9TpiWjt.js} +1 -1
- package/.output/public/_nuxt/DB4ma-iU2.js +1 -0
- package/.output/public/_nuxt/{BDmNbZ252.js → DCPhrNWR2.js} +1 -1
- package/.output/public/_nuxt/{D_Ce9Fon2.js → DFhyhDGa2.js} +1 -1
- package/.output/public/_nuxt/{BE7BrEw6.js → DNZmwhSD.js} +1 -1
- package/.output/public/_nuxt/{CMXcOb6W.js → DO9xaI9a.js} +1 -1
- package/.output/public/_nuxt/{H2rNs1O82.js → DUribplv2.js} +1 -1
- package/.output/public/_nuxt/{B8zP7kaj2.js → DV5joWTn2.js} +1 -1
- package/.output/public/_nuxt/{Da90gveK.js → DVOR2pWg.js} +1 -1
- package/.output/public/_nuxt/{mgWHSRc8.js → DZDi8inD.js} +1 -1
- package/.output/public/_nuxt/DZuXfuXS.js +14 -0
- package/.output/public/_nuxt/{Ccps4cxo.js → D_hCLbi9.js} +1 -1
- package/.output/public/_nuxt/{B_opxrHJ.js → Db4_F1T2.js} +1 -1
- package/.output/public/_nuxt/{xQX5r6tW.js → Dep0Hc9w2.js} +1 -1
- package/.output/public/_nuxt/{evt5VGDh.js → DffgG8vT.js} +1 -1
- package/.output/public/_nuxt/{Bhe953zV2.js → DioKmYyB2.js} +1 -1
- package/.output/public/_nuxt/{D0ldVwl-.js → Dk6Zf3-L.js} +1 -1
- package/.output/public/_nuxt/{Dbe9TFc9.js → DlX0nqUe.js} +1 -1
- package/.output/public/_nuxt/{Chphw5IA2.js → Dm_iKz8k2.js} +1 -1
- package/.output/public/_nuxt/{BVzw5a_0.js → DmzmgYHb2.js} +1 -1
- package/.output/public/_nuxt/{NJn94js_.js → DnAn2LgG.js} +1 -1
- package/.output/public/_nuxt/DuPM4HXw.js +1 -0
- package/.output/public/_nuxt/{DNoEoo8t.js → Dz2SLIde.js} +1 -1
- package/.output/public/_nuxt/DzwIZ81f.js +1 -0
- package/.output/public/_nuxt/{DD6Z0yPN2.js → MbT4wXb62.js} +1 -1
- package/.output/public/_nuxt/{ChGuLxwW2.js → PY2GW_3N2.js} +1 -1
- package/.output/public/_nuxt/PluginSlot.CGH0vb95.css +1 -0
- package/.output/public/_nuxt/{2_DkYoqD2.js → QHo9mN-M2.js} +1 -1
- package/.output/public/_nuxt/{TownView.BvlfuLtP.css → TownView.Xt1yygrh.css} +1 -1
- package/.output/public/_nuxt/{ty5W5QwO.js → WmMwIS4y.js} +1 -1
- package/.output/public/_nuxt/_id_.DZbVLNnu.css +1 -0
- package/.output/public/_nuxt/_wsId_.XjmieZaJ.css +1 -0
- package/.output/public/_nuxt/a4X3ARNm2.js +1 -0
- package/.output/public/_nuxt/{C00Rd6Cg.js → aV6YPjg02.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/af879435-fc74-4017-ade0-3b92c1ab35bb.json +1 -0
- package/.output/public/_nuxt/cY_5jwFz2.js +1 -0
- package/.output/public/_nuxt/dVw8IHY62.js +1 -0
- package/.output/public/_nuxt/{LwIFGLgF.js → deBcbALe2.js} +1 -1
- package/.output/public/_nuxt/{default.CXb_zoN6.css → default.CyLpQD1C.css} +1 -1
- package/.output/public/_nuxt/{BzvHUfRR.js → nT-bgxvf.js} +1 -1
- package/.output/public/_nuxt/tq3HbWr9.js +1 -0
- package/.output/public/_nuxt/{BH3obZJ42.js → uY58gQqR2.js} +1 -1
- package/.output/public/_nuxt/{ZuQtOnfI.js → vPfDYgvR.js} +1 -1
- package/.output/public/_nuxt/{zsRclU9w2.js → xX7ccjDl2.js} +1 -1
- package/.output/public/robots.txt +3 -0
- 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/_/host-bindings.mjs +1 -1
- package/.output/server/chunks/_/nitro.mjs +3260 -1505
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
- package/.output/server/chunks/build/OmpTerminalPanel-mk31gVzA.mjs +1 -1
- package/.output/server/chunks/build/{PluginSlot-D2WUZgbp.mjs → PluginSlot-CT4YaNrB.mjs} +5 -5
- package/.output/server/chunks/build/{PluginSlot-D2WUZgbp.mjs.map → PluginSlot-CT4YaNrB.mjs.map} +1 -1
- package/.output/server/chunks/build/{TownView-fP9BiALv.mjs → TownView-Bf5VFYFj.mjs} +26 -19
- package/.output/server/chunks/build/TownView-Bf5VFYFj.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-BUpQSlzo.mjs → _id_-CuUmVPRg.mjs} +200 -86
- package/.output/server/chunks/build/_id_-CuUmVPRg.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-CDlur81q.mjs → _id_-WF20tjqT.mjs} +12 -11
- package/.output/server/chunks/build/_id_-WF20tjqT.mjs.map +1 -0
- package/.output/server/chunks/build/{_wsId_-C4L9fVHC.mjs → _wsId_-BUIKB68b.mjs} +332 -211
- package/.output/server/chunks/build/{_wsId_-C4L9fVHC.mjs.map → _wsId_-BUIKB68b.mjs.map} +1 -1
- package/.output/server/chunks/build/{agents-ydYu-Ol9.mjs → agents-DqICy4AL.mjs} +8 -7
- package/.output/server/chunks/build/agents-DqICy4AL.mjs.map +1 -0
- package/.output/server/chunks/build/{aml-DsgtDLWF.mjs → aml-C55iuLn-.mjs} +15 -13
- package/.output/server/chunks/build/aml-C55iuLn-.mjs.map +1 -0
- package/.output/server/chunks/build/{api-BY6ji7RC.mjs → api-B4Om0mEc.mjs} +4 -3
- package/.output/server/chunks/build/api-B4Om0mEc.mjs.map +1 -0
- package/.output/server/chunks/build/{apiClient-D281qrK2.mjs → apiClient-BvXtNzC8.mjs} +2 -2
- package/.output/server/chunks/build/apiClient-BvXtNzC8.mjs.map +1 -0
- package/.output/server/chunks/build/{channel-templates-DP1ndA5K.mjs → channel-templates-gdCLajKy.mjs} +5 -4
- package/.output/server/chunks/build/channel-templates-gdCLajKy.mjs.map +1 -0
- package/.output/server/chunks/build/constants-HPHJvjne.mjs +2 -1
- package/.output/server/chunks/build/constants-HPHJvjne.mjs.map +1 -1
- package/.output/server/chunks/build/{daq-N69AOtgw.mjs → daq-D0kLscVr.mjs} +15 -13
- package/.output/server/chunks/build/daq-D0kLscVr.mjs.map +1 -0
- package/.output/server/chunks/build/{dcw-CN9d3Rs7.mjs → dcw-DuhEyu7S.mjs} +11 -10
- package/.output/server/chunks/build/dcw-DuhEyu7S.mjs.map +1 -0
- package/.output/server/chunks/build/dcw-driver-badge-Df5wL_ZA.mjs +20 -0
- package/.output/server/chunks/build/dcw-driver-badge-Df5wL_ZA.mjs.map +1 -0
- package/.output/server/chunks/build/{default-DCf9tn1i.mjs → default-aFGiNebw.mjs} +70 -65
- package/.output/server/chunks/build/{default-DCf9tn1i.mjs.map → default-aFGiNebw.mjs.map} +1 -1
- package/.output/server/chunks/build/hitl-ePh3G3ue.mjs +132 -0
- package/.output/server/chunks/build/hitl-ePh3G3ue.mjs.map +1 -0
- package/.output/server/chunks/build/{logs-BcAjU1Ps.mjs → logs-BlOalbsZ.mjs} +11 -9
- package/.output/server/chunks/build/logs-BlOalbsZ.mjs.map +1 -0
- package/.output/server/chunks/build/monitor-DX_K0WMq.mjs +3 -2
- package/.output/server/chunks/build/{operations-OFHYXwh4.mjs → operations-BD6LK-Yz.mjs} +10 -8
- package/.output/server/chunks/build/operations-BD6LK-Yz.mjs.map +1 -0
- package/.output/server/chunks/build/{pages-BzmrmLL_.mjs → pages-DloBBvU5.mjs} +8 -7
- package/.output/server/chunks/build/pages-DloBBvU5.mjs.map +1 -0
- package/.output/server/chunks/build/permissions-BvmodvsO.mjs +3 -2
- package/.output/server/chunks/build/permissions-BvmodvsO.mjs.map +1 -1
- package/.output/server/chunks/build/{plugins-DSka7-vS.mjs → plugins-NAS9MQ5r.mjs} +5 -4
- package/.output/server/chunks/build/plugins-NAS9MQ5r.mjs.map +1 -0
- package/.output/server/chunks/build/{schedules-BYR-lA1k.mjs → schedules-D8vYHgQ5.mjs} +4 -3
- package/.output/server/chunks/build/{schedules-BYR-lA1k.mjs.map → schedules-D8vYHgQ5.mjs.map} +1 -1
- package/.output/server/chunks/build/{settings-UyZ78w2e.mjs → settings-B7HA-sdb.mjs} +6 -5
- package/.output/server/chunks/build/settings-B7HA-sdb.mjs.map +1 -0
- package/.output/server/chunks/build/{teams-D-Y5mzU7.mjs → teams-wM-MdLv9.mjs} +10 -9
- package/.output/server/chunks/build/teams-wM-MdLv9.mjs.map +1 -0
- package/.output/server/chunks/build/tokens-CloWk4x_.mjs +3 -2
- package/.output/server/chunks/build/tokens-CloWk4x_.mjs.map +1 -1
- package/.output/server/chunks/build/{town-BMlctE4m.mjs → town-B2gBu_ZE.mjs} +12 -9
- package/.output/server/chunks/build/town-B2gBu_ZE.mjs.map +1 -0
- package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
- package/.output/server/chunks/build/{useAgentHarnessOptions-CRyQYYY0.mjs → useAgentHarnessOptions-BnFCh23W.mjs} +4 -3
- package/.output/server/chunks/build/useAgentHarnessOptions-BnFCh23W.mjs.map +1 -0
- package/.output/server/chunks/build/{useAgentTemplateActions-CaRsOBmB.mjs → useAgentTemplateActions-DsBRUQni.mjs} +4 -3
- package/.output/server/chunks/build/useAgentTemplateActions-DsBRUQni.mjs.map +1 -0
- package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +2 -1
- package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs.map +1 -1
- package/.output/server/chunks/build/{useAgentTemplateForm-ChiIuPYr.mjs → useAgentTemplateForm-DzQ_t2Ue.mjs} +4 -3
- package/.output/server/chunks/build/useAgentTemplateForm-DzQ_t2Ue.mjs.map +1 -0
- package/.output/server/chunks/build/{useAgentTemplatesCatalog-Bf5hk6Jf.mjs → useAgentTemplatesCatalog-Q7LgG1Af.mjs} +5 -4
- package/.output/server/chunks/build/useAgentTemplatesCatalog-Q7LgG1Af.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlDatasets-BM0lZu40.mjs → useAmlDatasets-DeoE1idn.mjs} +5 -4
- package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlEntities-BDQ8TmLL.mjs → useAmlEntities-BMLHU_39.mjs} +5 -4
- package/.output/server/chunks/build/useAmlEntities-BMLHU_39.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlEnv-DgTVwpqi.mjs → useAmlEnv-DdlyVzPu.mjs} +5 -4
- package/.output/server/chunks/build/useAmlEnv-DdlyVzPu.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlExperiments-BtyW32PO.mjs → useAmlExperiments-Dloi834i.mjs} +5 -4
- package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs.map +1 -0
- package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs +2 -1
- package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs.map +1 -1
- package/.output/server/chunks/build/{useAmlJobs-fk-H5Rp5.mjs → useAmlJobs--a_1ovew.mjs} +5 -4
- package/.output/server/chunks/build/useAmlJobs--a_1ovew.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlModels-hgyVHoAq.mjs → useAmlModels-D7MuOWOy.mjs} +5 -4
- package/.output/server/chunks/build/useAmlModels-D7MuOWOy.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlNotes-BjbYNADm.mjs → useAmlNotes-CTZe-GI0.mjs} +5 -4
- package/.output/server/chunks/build/useAmlNotes-CTZe-GI0.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlPredict-U24-SZNA.mjs → useAmlPredict-BToRrVRV.mjs} +5 -4
- package/.output/server/chunks/build/useAmlPredict-BToRrVRV.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqAddNode-kW7uTSMQ.mjs → useDaqAddNode-CaOCbe4-.mjs} +6 -5
- package/.output/server/chunks/build/useDaqAddNode-CaOCbe4-.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqDetailBinding-cpBz4hSL.mjs → useDaqDetailBinding-C7AbGIdP.mjs} +6 -5
- package/.output/server/chunks/build/useDaqDetailBinding-C7AbGIdP.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqDetailFrames-BZGtKKXW.mjs → useDaqDetailFrames-CmAEdbAL.mjs} +5 -4
- package/.output/server/chunks/build/useDaqDetailFrames-CmAEdbAL.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqDetailHistory-DtSTfyMi.mjs → useDaqDetailHistory-pfi6zXWU.mjs} +5 -4
- package/.output/server/chunks/build/useDaqDetailHistory-pfi6zXWU.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqDetailNode-D_vhG0jF.mjs → useDaqDetailNode-qT7MjqJ7.mjs} +8 -7
- package/.output/server/chunks/build/useDaqDetailNode-qT7MjqJ7.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqDetailParams-JfqHvTxr.mjs → useDaqDetailParams-CrTMDs-2.mjs} +6 -5
- package/.output/server/chunks/build/useDaqDetailParams-CrTMDs-2.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqFilters-BUQtZ82a.mjs → useDaqFilters-CMysN13f.mjs} +8 -7
- package/.output/server/chunks/build/useDaqFilters-CMysN13f.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +2 -1
- package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs.map +1 -1
- package/.output/server/chunks/build/{useDaqOptimizations-Ct-TSXxy.mjs → useDaqOptimizations-Coq5lsfM.mjs} +5 -4
- package/.output/server/chunks/build/useDaqOptimizations-Coq5lsfM.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqStream-wOxZcMDA.mjs → useDaqStream-DhzdoyIR.mjs} +3 -3
- package/.output/server/chunks/build/{useDaqStream-wOxZcMDA.mjs.map → useDaqStream-DhzdoyIR.mjs.map} +1 -1
- package/.output/server/chunks/build/{useDaqTemplates-BqQRdrIm.mjs → useDaqTemplates-C7GzQmdJ.mjs} +6 -5
- package/.output/server/chunks/build/useDaqTemplates-C7GzQmdJ.mjs.map +1 -0
- package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs +2 -1
- package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs.map +1 -1
- package/.output/server/chunks/build/{useDashboardData-CNOY4Bi3.mjs → useDashboardData-DgJcGJaF.mjs} +7 -6
- package/.output/server/chunks/build/useDashboardData-DgJcGJaF.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwAddNode-C1HDP3yG.mjs → useDcwAddNode-C9DbEKHi.mjs} +38 -5
- package/.output/server/chunks/build/useDcwAddNode-C9DbEKHi.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwCards-ETEsHvVy.mjs → useDcwCards-VDoMYG7l.mjs} +5 -4
- package/.output/server/chunks/build/useDcwCards-VDoMYG7l.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwDetailScope-QTr1G6Oe.mjs → useDcwDetailScope-CL97tJdJ.mjs} +7 -6
- package/.output/server/chunks/build/useDcwDetailScope-CL97tJdJ.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwDetailTemplates-Djt-0Vse.mjs → useDcwDetailTemplates-OLmjMSGD.mjs} +5 -4
- package/.output/server/chunks/build/useDcwDetailTemplates-OLmjMSGD.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwFilter-FfVlDdyS.mjs → useDcwFilter-Bs9C6-h_.mjs} +5 -4
- package/.output/server/chunks/build/useDcwFilter-Bs9C6-h_.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwLedger-BLoMmcu1.mjs → useDcwLedger-Bbf_iFOY.mjs} +5 -4
- package/.output/server/chunks/build/useDcwLedger-Bbf_iFOY.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwLineMutations-BMC5BTWU.mjs → useDcwLineMutations-Bhtuqw7J.mjs} +5 -4
- package/.output/server/chunks/build/useDcwLineMutations-Bhtuqw7J.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwLineRun-74gN_s6T.mjs → useDcwLineRun-CGqZSnG4.mjs} +5 -4
- package/.output/server/chunks/build/useDcwLineRun-CGqZSnG4.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwParamApprovals-BBwdFsKv.mjs +119 -0
- package/.output/server/chunks/build/useDcwParamApprovals-BBwdFsKv.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwProducts-D-zrMaeV.mjs → useDcwProducts-BoBkJqpv.mjs} +5 -4
- package/.output/server/chunks/build/useDcwProducts-BoBkJqpv.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwQuery-7tX4QYmv.mjs → useDcwQuery-DP7b2qb6.mjs} +5 -4
- package/.output/server/chunks/build/useDcwQuery-DP7b2qb6.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwQuickActions-C-tgcXIr.mjs → useDcwQuickActions-DHRiA9KN.mjs} +5 -4
- package/.output/server/chunks/build/useDcwQuickActions-DHRiA9KN.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwRecipes-FVk5gDLV.mjs → useDcwRecipes-CIMeH2oF.mjs} +5 -4
- package/.output/server/chunks/build/useDcwRecipes-CIMeH2oF.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwStream-D04kCV3J.mjs → useDcwStream-B9ugUWRq.mjs} +10 -3
- package/.output/server/chunks/build/{useDcwStream-D04kCV3J.mjs.map → useDcwStream-B9ugUWRq.mjs.map} +1 -1
- package/.output/server/chunks/build/{useDcwTemplates-LDZffy4u.mjs → useDcwTemplates-M_-qjV8E.mjs} +5 -4
- package/.output/server/chunks/build/useDcwTemplates-M_-qjV8E.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwWrites-B22mwliK.mjs → useDcwWrites-D94dAzqr.mjs} +5 -4
- package/.output/server/chunks/build/useDcwWrites-D94dAzqr.mjs.map +1 -0
- package/.output/server/chunks/build/{useDeviceTwins-CbVad1M3.mjs → useDeviceTwins-BqwVJaZg.mjs} +2 -2
- package/.output/server/chunks/build/{useDeviceTwins-CbVad1M3.mjs.map → useDeviceTwins-BqwVJaZg.mjs.map} +1 -1
- package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs +2 -1
- package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs.map +1 -1
- package/.output/server/chunks/build/{useLogsManual-COfCyUtj.mjs → useLogsManual-CMjD62nt.mjs} +5 -4
- package/.output/server/chunks/build/useLogsManual-CMjD62nt.mjs.map +1 -0
- package/.output/server/chunks/build/{useLogsQuery-CRAm2hmS.mjs → useLogsQuery-2x1mKxT1.mjs} +5 -4
- package/.output/server/chunks/build/useLogsQuery-2x1mKxT1.mjs.map +1 -0
- package/.output/server/chunks/build/{useLogsScope-ClNijVj4.mjs → useLogsScope-04cUJCU-.mjs} +5 -4
- package/.output/server/chunks/build/useLogsScope-04cUJCU-.mjs.map +1 -0
- package/.output/server/chunks/build/useMonitorColumns-DhYvkLDq.mjs +3 -2
- package/.output/server/chunks/build/useMonitorColumns-DhYvkLDq.mjs.map +1 -1
- package/.output/server/chunks/build/useMonitorData-guVjMDtR.mjs +3 -2
- package/.output/server/chunks/build/useMonitorData-guVjMDtR.mjs.map +1 -1
- package/.output/server/chunks/build/useMonitorFormat-C7lhZe4g.mjs +2 -1
- package/.output/server/chunks/build/useMonitorFormat-C7lhZe4g.mjs.map +1 -1
- package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +2 -1
- package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs.map +1 -1
- package/.output/server/chunks/build/{useOperationsFeed-CeXeHqUK.mjs → useOperationsFeed-DsA2ym7M.mjs} +5 -4
- package/.output/server/chunks/build/useOperationsFeed-DsA2ym7M.mjs.map +1 -0
- package/.output/server/chunks/build/{useOpsLog-CgnNG7_n.mjs → useOpsLog-SnWPuRtK.mjs} +2 -2
- package/.output/server/chunks/build/{useOpsLog-CgnNG7_n.mjs.map → useOpsLog-SnWPuRtK.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamActions-C51ciLb0.mjs → useTeamActions-BOLQkYxg.mjs} +4 -3
- package/.output/server/chunks/build/useTeamActions-BOLQkYxg.mjs.map +1 -0
- package/.output/server/chunks/build/{useTeamAddMemberDialog-DthpCMP8.mjs → useTeamAddMemberDialog-BCgrLPxI.mjs} +4 -3
- package/.output/server/chunks/build/useTeamAddMemberDialog-BCgrLPxI.mjs.map +1 -0
- package/.output/server/chunks/build/{useTeamCreateDialog-Dc2KTwyg.mjs → useTeamCreateDialog-CJk40LqS.mjs} +4 -3
- package/.output/server/chunks/build/useTeamCreateDialog-CJk40LqS.mjs.map +1 -0
- package/.output/server/chunks/build/{useTeamDeployDialog-CXpvPnJD.mjs → useTeamDeployDialog-49hdUXQP.mjs} +4 -3
- package/.output/server/chunks/build/useTeamDeployDialog-49hdUXQP.mjs.map +1 -0
- package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +2 -1
- package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs.map +1 -1
- package/.output/server/chunks/build/{useTeamPluginDialog-DTs-7SSm.mjs → useTeamPluginDialog-Dh-QOoiU.mjs} +4 -3
- package/.output/server/chunks/build/useTeamPluginDialog-Dh-QOoiU.mjs.map +1 -0
- package/.output/server/chunks/build/{useTeamsCatalog-CcpetYyW.mjs → useTeamsCatalog-HBSyKt5P.mjs} +5 -4
- package/.output/server/chunks/build/useTeamsCatalog-HBSyKt5P.mjs.map +1 -0
- package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +2 -1
- package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs.map +1 -1
- package/.output/server/chunks/build/useTokenCreate-DkYvEQUD.mjs +3 -2
- package/.output/server/chunks/build/useTokenCreate-DkYvEQUD.mjs.map +1 -1
- package/.output/server/chunks/build/useTokenRename-DOCP4aeI.mjs +3 -2
- package/.output/server/chunks/build/useTokenRename-DOCP4aeI.mjs.map +1 -1
- package/.output/server/chunks/build/useTokenReveal-CybwwflV.mjs +3 -2
- package/.output/server/chunks/build/useTokenReveal-CybwwflV.mjs.map +1 -1
- package/.output/server/chunks/build/useTokensList-BLiMvrc4.mjs +3 -2
- package/.output/server/chunks/build/useTokensList-BLiMvrc4.mjs.map +1 -1
- package/.output/server/chunks/build/useWorkbenchAuth-DqjBX-6w.mjs +3 -2
- package/.output/server/chunks/build/useWorkbenchAuth-DqjBX-6w.mjs.map +1 -1
- package/.output/server/chunks/build/{useWorkbenchWorkspaces-DgiSCzsX.mjs → useWorkbenchWorkspaces-GQVU9BLv.mjs} +6 -4
- package/.output/server/chunks/build/useWorkbenchWorkspaces-GQVU9BLv.mjs.map +1 -0
- package/.output/server/chunks/build/{useWorkshopApi-CO3ophqt.mjs → useWorkshopApi-C9sTYu1F.mjs} +10 -2
- package/.output/server/chunks/build/useWorkshopApi-C9sTYu1F.mjs.map +1 -0
- package/.output/server/chunks/build/{useWorkshopWs-Bm80bLn7.mjs → useWorkshopWs-CgeCsaYJ.mjs} +4 -128
- package/.output/server/chunks/build/useWorkshopWs-CgeCsaYJ.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs +3 -2
- package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs.map +1 -1
- package/.output/server/chunks/build/{useWorkspaceChannels-D61Al2dr.mjs → useWorkspaceChannels-B13vROC1.mjs} +5 -3
- package/.output/server/chunks/build/useWorkspaceChannels-B13vROC1.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs +2 -1
- package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs.map +1 -1
- package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs +2 -1
- package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs.map +1 -1
- package/.output/server/chunks/build/users-CCf5PgRs.mjs +3 -2
- package/.output/server/chunks/build/users-CCf5PgRs.mjs.map +1 -1
- package/.output/server/chunks/build/{workshop-FQ4YzooB.mjs → workshop-BDqWzJtr.mjs} +6 -4
- package/.output/server/chunks/build/workshop-BDqWzJtr.mjs.map +1 -0
- package/.output/server/chunks/build/workspaces-CmW0cpOt.mjs +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +2 -1
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +3 -2
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +16 -4
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/mcp/workshop.mjs +45 -15
- package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
- package/.output/server/chunks/routes/api/metrics.mjs +4 -1
- package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +3 -2
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +2 -1
- package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +2 -1
- package/.output/server/chunks/routes/api/plugins/i18n.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +2 -1
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/backup/list.get.mjs +48 -0
- package/.output/server/chunks/routes/api/system/backup/list.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/system/backup/run.post.mjs +36 -0
- package/.output/server/chunks/routes/api/system/backup/run.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/config.get.mjs +2 -1
- package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.get.mjs +3 -2
- package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.patch.mjs +17 -5
- package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.post.mjs +3 -2
- package/.output/server/chunks/routes/api/system/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index2.get.mjs +3 -2
- package/.output/server/chunks/routes/api/system/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +3 -2
- 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 +3 -2
- package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/monitor.get.mjs +2 -1
- package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs +3 -2
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +17 -4
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/timezone.get.mjs +3 -2
- package/.output/server/chunks/routes/api/system/timezone.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +16 -4
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.get.mjs +3 -2
- package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.put.mjs +16 -4
- package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/index.get.mjs +3 -2
- package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/index.post.mjs +3 -2
- package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/login.post.mjs +5 -3
- package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/logout.post.mjs +3 -2
- package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/me.get.mjs +3 -2
- package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/register.post.mjs +6 -2
- package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/setup-status.get.mjs +3 -2
- package/.output/server/chunks/routes/api/users/setup-status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +3 -2
- package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +21 -16
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +3 -2
- 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 +3 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +3 -2
- 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 +3 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/caller.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/caller.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +10 -4
- 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 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +2 -1
- 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 +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +2 -1
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs +38 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +6 -5
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +8 -2
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs +36 -0
- package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +5 -4
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +16 -3
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +3 -2
- 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 +3 -2
- 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 -1
- package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.put.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index11.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index12.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/index12.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index13.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/index13.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index14.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/index14.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs +5 -4
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index9.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/runtime.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +3 -2
- 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 -1
- package/.output/server/chunks/routes/api/workshop/tasks.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/users/me.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +6 -2
- package/.output/server/chunks/routes/api/workshop/users/register.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +4 -3
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +2 -2
- package/.output/server/chunks/virtual/entry.mjs +420 -99
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/index.mjs +2 -1
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/README-zh.md +7 -3
- package/README.md +11 -5
- package/app/components/app-header/HitlBell.vue +9 -9
- package/app/components/dcw/DcwAddNodeModal.vue +57 -7
- package/app/components/dcw/DcwNodesTable.vue +19 -4
- package/app/components/dcw/DcwParamApprovalCard.vue +110 -0
- package/app/components/dcw/DcwRecipeEditModal.vue +12 -3
- package/app/components/workshop/ChatMemberPanel.vue +39 -38
- package/app/components/workshop/ChatTimeline.vue +33 -24
- package/app/components/workshop/Composer.vue +7 -7
- package/app/components/workshop/NotificationCenter.vue +22 -13
- package/app/components/workshop/PluginSlot.vue +1 -1
- package/app/components/workshop/TaskInspectorDrawer.vue +5 -5
- package/app/components/workshop/blocks/ClusterTool.vue +1 -1
- package/app/components/workshop/composer/ComposerToolbar.vue +2 -2
- package/app/components/workshop/composer/MentionMenu.vue +1 -1
- package/app/components/workshop/composer/ReplyChip.vue +2 -2
- package/app/components/workshop/composer/StatusChip.vue +7 -7
- package/app/components/workshop/console/LineOperationsPanel.vue +15 -14
- package/app/components/workshop/lanes/LaneHeader.vue +5 -3
- package/app/components/workshop/session-list/ChannelSettingsModal.vue +43 -1
- package/app/components/workshop/town/components/TownAgentBindings.vue +10 -1
- package/app/composables/useCodeCopy.ts +16 -2
- package/app/composables/workshop/useDcwStream.ts +4 -0
- package/app/composables/workshop/useWorkshopApi.ts +7 -0
- package/app/pages/dcw/[id].vue +19 -1
- package/app/pages/dcw/composables/useDcwAddNode.ts +35 -1
- package/app/pages/dcw/composables/useDcwParamApprovals.ts +119 -0
- package/app/stores/workshop/notifications.ts +43 -17
- package/app/utils/dcw-driver-badge.ts +16 -0
- package/docs/cli.en.md +1 -1
- package/i18n/dicts/_en.json +1551 -1557
- package/i18n/dicts/_en2.json +300 -300
- package/i18n/dicts/_en4.json +114 -115
- package/i18n/dicts/agentLanesView.json +61 -57
- package/i18n/dicts/appHeader.json +17 -7
- package/i18n/dicts/channelSessionList.json +51 -48
- package/i18n/dicts/chat.json +79 -0
- package/i18n/dicts/clusterTool.json +4 -3
- package/i18n/dicts/composer.json +38 -38
- package/i18n/dicts/dcwDetail.json +219 -209
- package/i18n/dicts/lineOps.json +14 -0
- package/i18n/dicts/multiChannelView.json +13 -13
- package/i18n/dicts/notifications.json +13 -0
- package/i18n/dicts/taskInspectorDrawer.json +25 -19
- package/i18n/locales/en.ts +166 -8
- package/i18n/locales/zh-CN.ts +166 -8
- package/package.json +1 -1
- package/public/robots.txt +3 -0
- package/scripts/_dbg-protocol-matrix.mjs +8 -1
- package/server/api/mcp/workshop.ts +8 -1
- package/server/api/metrics.ts +4 -1
- package/server/api/plugins/[name]/[...path].ts +4 -3
- package/server/api/system/backup/list.get.ts +32 -0
- package/server/api/system/backup/run.post.ts +21 -0
- package/server/api/system/settings/index.patch.ts +12 -2
- package/server/api/system/settings/reset.post.ts +11 -2
- package/server/api/users/[id].delete.ts +9 -2
- package/server/api/users/[id].put.ts +9 -2
- package/server/api/users/index.post.ts +9 -2
- package/server/api/users/login.post.ts +3 -3
- package/server/api/users/register.post.ts +11 -1
- package/server/api/workshop/a2a/[agentId]/rpc/index.post.ts +23 -13
- package/server/api/workshop/channel-templates/[id]/instantiate.post.ts +6 -0
- package/server/api/workshop/channels/[id]/line.put.ts +30 -0
- package/server/api/workshop/dcw/line/query.get.ts +6 -0
- package/server/api/workshop/dcw/mes-test-read.post.ts +24 -0
- package/server/api/workshop/dcw/recipes/[id]/revert.post.ts +3 -2
- package/server/api/workshop/fs/dirs.get.ts +19 -1
- package/server/api/workshop/ops-logs/index.get.ts +3 -2
- package/server/api/workshop/users/register.post.ts +7 -0
- package/server/mcp/workshop-server.ts +36 -13
- package/server/middleware/00-security-headers.ts +38 -0
- package/server/middleware/01-rate-guard.ts +101 -0
- package/server/plugins/backup.ts +56 -1
- package/server/plugins/workshop.ts +4 -0
- package/server/plugins-builtin/diag-bridge/host/plugin.mjs +18 -11
- package/server/repositories/user.repository.ts +10 -5
- package/server/services/user.service.ts +24 -1
- package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +1 -1
- package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +7 -1
- package/server/services/workshop/agents/industrial/index.ts +3 -1
- package/server/services/workshop/agents/industrial/mes-tools.ts +135 -0
- package/server/services/workshop/agents/industrial/ops-tools.ts +243 -30
- package/server/services/workshop/agents/industrial-context.ts +19 -0
- package/server/services/workshop/agents/tool-classes.ts +12 -0
- package/server/services/workshop/aml/dataset-builder.ts +4 -2
- package/server/services/workshop/aml/job-orchestrator/process.ts +1 -0
- package/server/services/workshop/aml/job-orchestrator/shared.ts +2 -0
- package/server/services/workshop/aml/job-orchestrator/start-job.ts +5 -2
- package/server/services/workshop/db/channel.repo.ts +11 -1
- package/server/services/workshop/db/database/migrations.ts +2 -0
- package/server/services/workshop/db/database/rows.ts +2 -0
- package/server/services/workshop/db/database/schema.ts +32 -0
- package/server/services/workshop/db/database/seed.ts +19 -9
- package/server/services/workshop/db/schema.sql +32 -0
- package/server/services/workshop/dcw/dcw-controller/recipes.ts +66 -7
- package/server/services/workshop/dcw/dcw-controller/write.ts +35 -6
- package/server/services/workshop/dcw/dcw-recipe.repo.ts +12 -5
- package/server/services/workshop/dcw/drivers/mes-rest.ts +543 -0
- package/server/services/workshop/dcw/drivers/registry.ts +2 -0
- package/server/services/workshop/dcw/drivers/shared.ts +30 -0
- package/server/services/workshop/dcw/param-map.repo.ts +3 -0
- package/server/services/workshop/mes/mes-controller.ts +410 -0
- package/server/services/workshop/mes/mes-datasets.ts +441 -0
- package/server/services/workshop/plugins/host/init.mjs +9 -1
- package/server/services/workshop/plugins/host/load.mjs +2 -2
- package/server/services/workshop/runtime/manager/admin-channel.ts +27 -1
- package/server/services/workshop/runtime/manager/channel-templates.ts +5 -4
- package/server/services/workshop/runtime/manager/runtime-wiring.ts +17 -1
- package/server/services/workshop/runtime/manager/state.ts +11 -0
- package/server/services/workshop/runtime/scheduler-loop/tick.ts +5 -1
- package/server/services/workshop/runtime/task-engine/helpers.ts +3 -1
- package/shared/config/schema.json +4 -1
- package/shared/daq-protocol.ts +2 -1
- package/shared/dcw-protocol/catalog.ts +25 -1
- package/.output/public/_nuxt/4wrEQ3np2.js +0 -21
- package/.output/public/_nuxt/B9BmiUil.js +0 -2
- package/.output/public/_nuxt/BgEDwFMf.js +0 -1
- package/.output/public/_nuxt/C4lagVdN2.js +0 -1
- package/.output/public/_nuxt/CGQvF-Gg.js +0 -14
- package/.output/public/_nuxt/Cbeifv55.js +0 -1
- package/.output/public/_nuxt/CcGuXiOa.js +0 -1
- package/.output/public/_nuxt/D0SNhlnt.js +0 -1
- package/.output/public/_nuxt/D6lZftfy.js +0 -1
- package/.output/public/_nuxt/DnH9SRMW2.js +0 -1
- package/.output/public/_nuxt/DxagrjB8.js +0 -1
- package/.output/public/_nuxt/ON2x-t6n.js +0 -1
- package/.output/public/_nuxt/PluginSlot.DmjNbrcX.css +0 -1
- package/.output/public/_nuxt/UN3nSFjj2.js +0 -1
- package/.output/public/_nuxt/Z-Z6EhXs.js +0 -1
- package/.output/public/_nuxt/_id_.DamiFT0Q.css +0 -1
- package/.output/public/_nuxt/_wsId_.DkrQkT6r.css +0 -1
- package/.output/public/_nuxt/builds/meta/c64014ca-3595-4b7a-a5ca-055687c83ba2.json +0 -1
- package/.output/public/_nuxt/qPsch_ny2.js +0 -1
- package/.output/server/chunks/build/TownView-fP9BiALv.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-BUpQSlzo.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-CDlur81q.mjs.map +0 -1
- package/.output/server/chunks/build/agents-ydYu-Ol9.mjs.map +0 -1
- package/.output/server/chunks/build/aml-DsgtDLWF.mjs.map +0 -1
- package/.output/server/chunks/build/api-BY6ji7RC.mjs.map +0 -1
- package/.output/server/chunks/build/apiClient-D281qrK2.mjs.map +0 -1
- package/.output/server/chunks/build/channel-templates-DP1ndA5K.mjs.map +0 -1
- package/.output/server/chunks/build/daq-N69AOtgw.mjs.map +0 -1
- package/.output/server/chunks/build/dcw-CN9d3Rs7.mjs.map +0 -1
- package/.output/server/chunks/build/logs-BcAjU1Ps.mjs.map +0 -1
- package/.output/server/chunks/build/operations-OFHYXwh4.mjs.map +0 -1
- package/.output/server/chunks/build/pages-BzmrmLL_.mjs.map +0 -1
- package/.output/server/chunks/build/plugins-DSka7-vS.mjs.map +0 -1
- package/.output/server/chunks/build/settings-UyZ78w2e.mjs.map +0 -1
- package/.output/server/chunks/build/teams-D-Y5mzU7.mjs.map +0 -1
- package/.output/server/chunks/build/town-BMlctE4m.mjs.map +0 -1
- package/.output/server/chunks/build/useAgentHarnessOptions-CRyQYYY0.mjs.map +0 -1
- package/.output/server/chunks/build/useAgentTemplateActions-CaRsOBmB.mjs.map +0 -1
- package/.output/server/chunks/build/useAgentTemplateForm-ChiIuPYr.mjs.map +0 -1
- package/.output/server/chunks/build/useAgentTemplatesCatalog-Bf5hk6Jf.mjs.map +0 -1
- package/.output/server/chunks/build/useAmlDatasets-BM0lZu40.mjs.map +0 -1
- package/.output/server/chunks/build/useAmlEntities-BDQ8TmLL.mjs.map +0 -1
- package/.output/server/chunks/build/useAmlEnv-DgTVwpqi.mjs.map +0 -1
- package/.output/server/chunks/build/useAmlExperiments-BtyW32PO.mjs.map +0 -1
- package/.output/server/chunks/build/useAmlJobs-fk-H5Rp5.mjs.map +0 -1
- package/.output/server/chunks/build/useAmlModels-hgyVHoAq.mjs.map +0 -1
- package/.output/server/chunks/build/useAmlNotes-BjbYNADm.mjs.map +0 -1
- package/.output/server/chunks/build/useAmlPredict-U24-SZNA.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqAddNode-kW7uTSMQ.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqDetailBinding-cpBz4hSL.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqDetailFrames-BZGtKKXW.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqDetailHistory-DtSTfyMi.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqDetailNode-D_vhG0jF.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqDetailParams-JfqHvTxr.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqFilters-BUQtZ82a.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqOptimizations-Ct-TSXxy.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqTemplates-BqQRdrIm.mjs.map +0 -1
- package/.output/server/chunks/build/useDashboardData-CNOY4Bi3.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwAddNode-C1HDP3yG.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwCards-ETEsHvVy.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwDetailScope-QTr1G6Oe.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwDetailTemplates-Djt-0Vse.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwFilter-FfVlDdyS.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwLedger-BLoMmcu1.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwLineMutations-BMC5BTWU.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwLineRun-74gN_s6T.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwProducts-D-zrMaeV.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwQuery-7tX4QYmv.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwQuickActions-C-tgcXIr.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwRecipes-FVk5gDLV.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwTemplates-LDZffy4u.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwWrites-B22mwliK.mjs.map +0 -1
- package/.output/server/chunks/build/useLogsManual-COfCyUtj.mjs.map +0 -1
- package/.output/server/chunks/build/useLogsQuery-CRAm2hmS.mjs.map +0 -1
- package/.output/server/chunks/build/useLogsScope-ClNijVj4.mjs.map +0 -1
- package/.output/server/chunks/build/useOperationsFeed-CeXeHqUK.mjs.map +0 -1
- package/.output/server/chunks/build/useTeamActions-C51ciLb0.mjs.map +0 -1
- package/.output/server/chunks/build/useTeamAddMemberDialog-DthpCMP8.mjs.map +0 -1
- package/.output/server/chunks/build/useTeamCreateDialog-Dc2KTwyg.mjs.map +0 -1
- package/.output/server/chunks/build/useTeamDeployDialog-CXpvPnJD.mjs.map +0 -1
- package/.output/server/chunks/build/useTeamPluginDialog-DTs-7SSm.mjs.map +0 -1
- package/.output/server/chunks/build/useTeamsCatalog-CcpetYyW.mjs.map +0 -1
- package/.output/server/chunks/build/useWorkbenchWorkspaces-DgiSCzsX.mjs.map +0 -1
- package/.output/server/chunks/build/useWorkshopApi-CO3ophqt.mjs.map +0 -1
- package/.output/server/chunks/build/useWorkshopWs-Bm80bLn7.mjs.map +0 -1
- package/.output/server/chunks/build/useWorkspaceChannels-D61Al2dr.mjs.map +0 -1
- package/.output/server/chunks/build/workshop-FQ4YzooB.mjs.map +0 -1
- package/scripts/.chk-tok +0 -1
- package/scripts/.retrain-body.json +0 -1
- package/scripts/.retrain3-body.json +0 -1
- package/scripts/.rt-tok +0 -1
- package/scripts/.rt3-tok +0 -1
- /package/.output/public/_nuxt/{BvRk9kiK2.js → DybRo6-H.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./BMMoqi94.js";import{N as t,dt as n,ft as r,g as i,mt as a,u as o,v as s}from"./CavpkQb0.js";import{D as c,H as l,R as u,S as d,V as f,W as p,b as m,d as h,et as g,f as _,h as v,i as y,m as b,nt as x,p as S,rt as C,y as w}from"./ByMj6e7s.js";import{c as T,d as E,l as D,u as O}from"./Dqz5HiXa.js";import{n as k,t as A}from"./BgnhB8r5.js";import{t as j}from"./S799kNo8.js";import{n as M}from"./Cnrmlixo.js";import{a as N}from"./wDPc4SSR.js";import{t as P}from"./eutnXI4F.js";import{t as F}from"./CAaSPBqk.js";import{t as ee}from"./Bwc6lt2X.js";import{t as I}from"./CzlUIbK32.js";import{t as te}from"./Yv9YItEX2.js";import{n as L,t as ne}from"./DVKXGuMz2.js";import{t as re}from"./CD9lpEz22.js";import{t as ie}from"./DzBbYWrw2.js";import{t as ae}from"./DqtnqNgL2.js";import{t as R}from"./CI2yXRr42.js";import{t as z}from"./DTxfFIvL2.js";import{t as B}from"./BDNMzG2s2.js";import{t as V}from"./JgheoP3e.js";import{t as H}from"./CcGuXiOa.js";import{t as U}from"./Bt2ZL5332.js";var W={class:`section-title`},G={class:`section-desc`},K={class:`set-row`},q={class:`set-text`},J={class:`set-title`},oe={class:`set-sub`},se={class:`color-swatches`},ce=[`title`,`onClick`],le={class:`swatch-label`},ue={key:0,class:`i-tabler-check swatch-check`},de={class:`toggle-row`},fe={class:`set-text`},pe={class:`set-title`},me={class:`set-sub`},he=[`aria-checked`],ge={class:`toggle-row`},_e={class:`set-text`},ve={class:`set-title`},ye={class:`set-sub`},be=Object.assign(B(d({__name:`AppearancePane`,props:{activeTab:{}},setup(i){let o=k(),s=e().public,{t:c,locale:l,locales:u,setLocale:d}=M(),g=String(s.primaryColor),x=[{value:g,label:c(`settings.accentInk`)},{value:`#c9963f`,label:c(`settings.accentStone`)},{value:`#44615a`,label:c(`settings.accentMoss`)},{value:`#3f6094`,label:c(`settings.accentSlate`)},{value:`#6b5aa0`,label:c(`settings.accentPlum`)},{value:`#9c5744`,label:c(`settings.accentClay`)}],S=h(()=>o.accent??g);function T(e){o.setAccent(e===g?null:e),N.success(c(`settings.accentApplied`))}function E(){o.setAccent(null),N.success(c(`settings.accentReset`))}let O=h(()=>u.value.map(e=>({label:e.name,value:e.code}))),A=e=>{e!=null&&(j(`aw.locale`,{maxAge:31536e3}).value=String(e),localStorage.setItem(`aw.locale`,String(e)),d(String(e)),window.location.reload())};return(e,s)=>{let u=P;return C((f(),v(`div`,null,[_(`h3`,W,a(t(c)(`settings.theme`)),1),_(`p`,G,a(t(c)(`settings.appearanceDesc`)),1),_(`div`,K,[_(`div`,q,[_(`div`,J,a(t(c)(`settings.primaryColor`)),1),_(`div`,oe,a(t(c)(`settings.accentDesc`)),1)])]),_(`div`,se,[(f(),v(y,null,p(x,e=>_(`button`,{key:e.value,class:n([`swatch`,{on:t(S).toLowerCase()===e.value.toLowerCase()}]),style:r({"--sw":e.value}),title:e.label,onClick:t=>T(e.value)},[s[1]||=_(`span`,{class:`swatch-dot`},null,-1),_(`span`,le,a(e.label),1),t(S).toLowerCase()===e.value.toLowerCase()?(f(),v(`span`,ue)):b(``,!0)],14,ce)),64))]),_(`button`,{class:`aw-pill outline reset-btn`,onClick:E},[s[2]||=_(`span`,{class:`i-tabler-rotate`},null,-1),w(` `+a(t(c)(`settings.accentResetAction`)),1)]),_(`div`,de,[_(`div`,fe,[_(`div`,pe,a(t(o).isDark?t(c)(`common.dark`):t(c)(`common.light`)),1),_(`div`,me,a(t(c)(`settings.darkDesc`)),1)]),_(`button`,{class:n([`switch`,{on:t(o).isDark}]),role:`switch`,"aria-checked":t(o).isDark,onClick:s[0]||=e=>t(o).toggleDark()},[...s[3]||=[_(`span`,{class:`knob`},null,-1)]],10,he)]),_(`div`,ge,[_(`div`,_e,[_(`div`,ve,a(t(c)(`header.language`)),1),_(`div`,ye,a(t(c)(`settings.languageDesc`)),1)]),m(u,{value:t(l),options:t(O),style:{width:`140px`},onChange:A},null,8,[`value`,`options`])])],512)),[[D,i.activeTab===`appearance`]])}}}),[[`__scopeId`,`data-v-79352bd2`]]),{__name:`SettingsAppearancePane`});function xe(){let{t:e}=M(),t=z(),n=s({}),r=s(new Set),i=s(!1),a=s(null);function o(){n.value={...t.effective},r.value=new Set}g(()=>t.loaded,e=>{e&&o()},{immediate:!0}),g(()=>t.effective,()=>{r.value.size===0&&o()},{deep:!0});function c(e){r.value.add(e),a.value=null}async function l(){if(r.value.size){i.value=!0,a.value=null;try{let i={};for(let e of r.value)i[e]=n.value[e];let s=await t.patch(i);o();let c=s.restartRequired??[];a.value=c.length?{type:`warning`,text:e(`settings.runtime.restartNotice`,{keys:c.join(`, `)})}:{type:`success`,text:e(`settings.runtime.savedLive`)}}catch(e){let t=e;a.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}finally{i.value=!1}}}async function u(i){try{await t.patch({[i]:null}),r.value.delete(i),n.value[i]=t.effective[i],a.value={type:`success`,text:e(`settings.runtime.keyReset`,{key:i})}}catch(e){let t=e;a.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}}async function d(){try{await t.resetAll(),o(),a.value={type:`success`,text:e(`settings.runtime.resetAllDone`)}}catch(e){let t=e;a.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}}return{draft:n,dirtyKeys:r,savingRuntime:i,runtimeNotice:a,syncRuntimeDraft:o,markDirty:c,saveRuntime:l,resetRuntimeKey:u,resetAllRuntime:d}}var Y=Symbol(`aw.settings.runtimeConfigDraft`);function Se(){let e=xe();return l(Y,e),e}function Ce(){let e=c(Y);if(!e)throw Error(`[settings] useRuntimeConfigDraftContext: 缺少 provideRuntimeConfigDraft()`);return e}function we(){let{t:e}=M(),t=R(),n=z(),r={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 a(t){if(t.labelKey&&e(t.labelKey)!==t.labelKey)return e(t.labelKey);if(t.label&&t.label!==t.id)return t.label;let n=r[t.id];return n?e(n):t.label||t.id}function o(t){return t.source===`plugin`?t.plugin?`${e(`settings.groups.srcPlugin`)}: ${t.plugin}`:e(`settings.groups.srcPlugin`):t.source===`user`?e(`settings.groups.srcUser`):e(`settings.groups.srcBuiltin`)}function c(e){return e===`runtime`?`src-runtime`:e===`env`?`src-env`:`src-yaml`}function l(t){let n=t.labelKey;return n&&e(n)!==n?e(n):t.label}let d=`aw.settings.groups.collapsed`,f=s({});function p(){try{f.value=JSON.parse(localStorage.getItem(d)??`{}`)??{}}catch{f.value={}}}function m(){try{localStorage.setItem(d,JSON.stringify(f.value))}catch{}}function g(e){let t=f.value[e.id];return t===void 0?e.collapsed:t}function _(e){e.collapsible&&(f.value={...f.value,[e.id]:!g(e)},m())}function v(){let e=n.groups.filter(e=>e.collapsible),t=e.some(e=>!g(e)),r={...f.value};for(let n of e)r[n.id]=t;f.value=r,m()}let y=h(()=>n.groups.filter(e=>e.collapsible).some(e=>!g(e))),b=h(()=>t.isAdmin),x=s(!1),S=i({label:``,description:``,collapsed:!1}),C=s(``),w=s(``),T=s(``);async function E(){if(S.label.trim()){C.value=`create`;try{await n.createGroup({label:S.label.trim(),description:S.description.trim(),collapsed:S.collapsed}),x.value=!1,S.label=``,S.description=``,S.collapsed=!1,N.success(e(`settings.groups.created`))}catch(t){N.error(V(t,e(`settings.groups.createFail`)))}finally{C.value=``}}}function D(e){w.value=e.id,T.value=e.label}async function O(t){let r=T.value.trim();if(w.value=``,r){C.value=t;try{await n.updateGroup(t,{label:r}),N.success(e(`settings.groups.renamed`))}catch(t){N.error(V(t,e(`settings.groups.updateFail`)))}finally{C.value=``}}}async function k(t,r){let i=[...n.groups],a=i.findIndex(e=>e.id===t),o=a+r;if(a<0||o<0||o>=i.length)return;let s=i[a],c=i[o];C.value=t;try{let e=[...i];e.splice(a,1),e.splice(o,0,s);let t=(o+1)*10,r=(a+1)*10;await n.updateGroup(s.id,{order:t}),await n.updateGroup(c.id,{order:r})}catch(t){N.error(V(t,e(`settings.groups.updateFail`)))}finally{C.value=``}}async function A(t){C.value=t.id;try{await n.updateGroup(t.id,{collapsed:!t.collapsed})}catch(t){N.error(V(t,e(`settings.groups.updateFail`)))}finally{C.value=``}}async function j(t){let r=t.fieldCount??0;if(r>0){N.warning(e(`settings.groups.deleteHasFields`,{p0:a(t),p1:r}));return}C.value=t.id;try{await n.deleteGroup(t.id),N.success(e(`settings.groups.deleted`))}catch(t){N.error(V(t,e(`settings.groups.deleteFail`)))}finally{C.value=``}}return u(p),{groupLabel:a,groupSourceBadge:o,sourceClass:c,itemLabel:l,groupCollapsed:f,loadCollapsePref:p,saveCollapsePref:m,isCollapsed:g,toggleGroup:_,toggleAllGroups:v,allExpanded:y,isAdmin:b,groupFormOpen:x,groupForm:S,groupBusy:C,renamingId:w,renameDraft:T,submitGroupForm:E,startRename:D,commitRename:O,moveGroup:k,setGroupDefaultCollapsed:A,removeGroup:j}}var X=Symbol(`aw.settings.groups`);function Te(){let e=we();return l(X,e),e}function Z(){let e=c(X);if(!e)throw Error(`[settings] useSettingsGroupsContext: 缺少 provideSettingsGroups()`);return e}var Ee={class:`rt-row`},De={class:`rt-main`},Oe={class:`rt-title`},ke={class:`rt-sub`},Ae={class:`rt-ctrl`},je={key:4,class:`rt-color`},Me=[`value`],Ne=[`title`],Pe=Object.assign(B(d({__name:`RuntimeFieldRow`,props:{item:{}},setup(e){let{t:r}=M(),i=z(),{draft:o,markDirty:c,resetRuntimeKey:l}=Ce(),{itemLabel:u,sourceClass:d}=Z(),p=s({}),g=h(()=>(p.value.supportedTimeZones??[`Asia/Shanghai`,`UTC`,`America/Los_Angeles`,`Europe/London`]).map(e=>({label:e,value:e})));return fetch(`/api/system/timezone`).then(e=>e.ok?e.json():{}).then(e=>{p.value=e}),(s,p)=>{let h=re,y=ae,b=P,x=F;return f(),v(`div`,Ee,[_(`div`,De,[_(`div`,Oe,[w(a(t(u)(e.item))+` `,1),_(`span`,{class:n([`rt-tag`,t(d)(t(i).sourceOf(e.item.key))])},a(t(i).sourceOf(e.item.key)),3),_(`span`,{class:n([`rt-tag`,e.item.applies])},a(e.item.applies===`live`?t(r)(`settings.runtime.live`):t(r)(`settings.runtime.restart`)),3)]),_(`div`,ke,a(e.item.description),1)]),_(`div`,Ae,[e.item.type===`number`?(f(),S(h,{key:0,value:t(o)[e.item.key],"onUpdate:value":p[0]||=n=>t(o)[e.item.key]=n,min:e.item.min,max:e.item.max,onChange:p[1]||=n=>t(c)(e.item.key)},null,8,[`value`,`min`,`max`])):e.item.type===`boolean`?(f(),S(y,{key:1,checked:t(o)[e.item.key],"onUpdate:checked":p[2]||=n=>t(o)[e.item.key]=n,onChange:p[3]||=n=>t(c)(e.item.key)},null,8,[`checked`])):e.item.type===`timezone`?(f(),S(b,{key:2,value:t(o)[e.item.key],"onUpdate:value":p[4]||=n=>t(o)[e.item.key]=n,"show-search":``,"option-filter-prop":`label`,style:{width:`260px`},options:t(g),onChange:p[5]||=n=>t(c)(e.item.key)},null,8,[`value`,`options`])):e.item.type===`select`?(f(),S(b,{key:3,value:t(o)[e.item.key],"onUpdate:value":p[6]||=n=>t(o)[e.item.key]=n,style:{width:`160px`},options:(e.item.options??[]).map(e=>({label:e,value:e})),onChange:p[7]||=n=>t(c)(e.item.key)},null,8,[`value`,`options`])):e.item.type===`color`?(f(),v(`span`,je,[_(`input`,{type:`color`,value:String(t(o)[e.item.key]??`#35e0a0`),onInput:p[8]||=n=>{t(o)[e.item.key]=n.target.value,t(c)(e.item.key)}},null,40,Me),m(x,{value:String(t(o)[e.item.key]??``),style:{width:`110px`},class:`aw-mono`,onChange:p[9]||=n=>{t(o)[e.item.key]=n.target.value,t(c)(e.item.key)}},null,8,[`value`])])):(f(),S(x,{key:5,value:t(o)[e.item.key],"onUpdate:value":p[10]||=n=>t(o)[e.item.key]=n,style:{width:`220px`},onChange:p[11]||=n=>t(c)(e.item.key)},null,8,[`value`])),_(`button`,{class:`aw-pill outline rt-reset`,title:t(r)(`settings.runtime.resetKey`),onClick:p[12]||=n=>t(l)(e.item.key)},[...p[13]||=[_(`span`,{class:`i-tabler-rotate`},null,-1)]],8,Ne)])])}}}),[[`__scopeId`,`data-v-03e4daa3`]]),{__name:`SettingsRuntimeFieldRow`}),Fe=[`role`,`tabindex`],Ie={key:3,class:`rt-group-title`},Le={class:`rt-group-badge`},Re={class:`rt-group-fields`},ze={key:4,class:`rt-group-desc`},Be=[`disabled`,`title`],Ve=[`disabled`,`title`],He=[`disabled`,`title`],Ue=[`disabled`,`title`],We=[`disabled`,`title`],Ge={class:`rt-group-body`},Ke={key:0,class:`rt-group-empty`},qe=Object.assign(B(d({__name:`RuntimeGroupSection`,props:{group:{}},setup(e){let{t:r}=M(),i=z(),{groupLabel:s,groupSourceBadge:c,isCollapsed:l,toggleGroup:u,renamingId:d,renameDraft:m,commitRename:h,startRename:g,isAdmin:x,groupBusy:w,moveGroup:k,setGroupDefaultCollapsed:A,removeGroup:j}=Z();return(M,N)=>(f(),v(`section`,{class:n([`rt-group`,{collapsed:t(l)(e.group),"grp-plugin":e.group.source===`plugin`}])},[_(`header`,{class:`rt-group-head`,role:e.group.collapsible?`button`:void 0,tabindex:e.group.collapsible?0:void 0,onClick:N[11]||=n=>t(u)(e.group),onKeydown:[N[12]||=O(E(n=>t(u)(e.group),[`prevent`]),[`enter`]),N[13]||=O(E(n=>t(u)(e.group),[`prevent`]),[`space`])]},[e.group.collapsible?(f(),v(`span`,{key:0,class:n([`rt-caret`,t(l)(e.group)?`i-tabler-chevron-right`:`i-tabler-chevron-down`])},null,2)):b(``,!0),e.group.icon?(f(),v(`span`,{key:1,class:n([`rt-group-icon`,e.group.icon])},null,2)):b(``,!0),t(d)===e.group.id?(f(),v(y,{key:2},[C(_(`input`,{"onUpdate:modelValue":N[0]||=e=>o(m)?m.value=e:null,class:`rt-rename aw-mono`,onClick:N[1]||=E(()=>{},[`stop`]),onKeydown:[N[2]||=O(E(n=>t(h)(e.group.id),[`prevent`]),[`enter`]),N[3]||=O(E(e=>d.value=``,[`prevent`]),[`esc`])]},null,544),[[T,t(m)]]),_(`button`,{class:`mini-btn`,onClick:N[4]||=E(n=>t(h)(e.group.id),[`stop`])},a(t(r)(`settings.groups.ok`)),1)],64)):(f(),v(`h4`,Ie,a(t(s)(e.group)),1)),_(`span`,Le,a(t(c)(e.group)),1),_(`span`,Re,a(t(r)(`settings.groups.fields`,{p0:e.group.fieldCount??0})),1),e.group.description?(f(),v(`span`,ze,a(e.group.description),1)):b(``,!0),t(x)&&e.group.source!==`plugin`?(f(),v(`span`,{key:5,class:`rt-group-ops`,onClick:N[10]||=E(()=>{},[`stop`])},[_(`button`,{class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.moveUp`),onClick:N[5]||=n=>t(k)(e.group.id,-1)},[...N[14]||=[_(`span`,{class:`i-tabler-arrow-up`},null,-1)]],8,Be),_(`button`,{class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.moveDown`),onClick:N[6]||=n=>t(k)(e.group.id,1)},[...N[15]||=[_(`span`,{class:`i-tabler-arrow-down`},null,-1)]],8,Ve),_(`button`,{class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.rename`),onClick:N[7]||=n=>t(g)(e.group)},[...N[16]||=[_(`span`,{class:`i-tabler-pencil`},null,-1)]],8,He),_(`button`,{class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.defaultCollapsed`),onClick:N[8]||=n=>t(A)(e.group)},[_(`span`,{class:n(e.group.collapsed?`i-tabler-chevrons-down`:`i-tabler-chevrons-up`)},null,2)],8,Ue),e.group.source===`user`?(f(),v(`button`,{key:0,class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.delete`),onClick:N[9]||=n=>t(j)(e.group)},[...N[17]||=[_(`span`,{class:`i-tabler-trash`},null,-1)]],8,We)):b(``,!0)])):b(``,!0)],40,Fe),C(_(`div`,Ge,[e.group.fieldCount??0?b(``,!0):(f(),v(`p`,Ke,a(t(r)(`settings.groups.emptyHint`)),1)),(f(!0),v(y,null,p(t(i).fieldsOf(e.group.id),e=>(f(),S(Pe,{key:e.key,item:e},null,8,[`item`]))),128))],512),[[D,!t(l)(e.group)]])],2))}}),[[`__scopeId`,`data-v-2f40d8db`]]),{__name:`SettingsRuntimeGroupSection`});function Je(e){let{t}=M(),n=R(),r=H(),i=s([]),a=s(!1),o=s(!1),c=s(new Set),l=s({}),u=e=>(e.routes??[]).some(e=>String(e.path||``).endsWith(`/health`));async function d(){a.value=!0;try{let e=await r.listPlugins(),t=e?.plugins??e?.data?.plugins??[];i.value=Array.isArray(t)?t:[],o.value=!0}catch(e){N.error(V(e,t(`plugins.loadFail`)))}finally{a.value=!1}}async function f(e,n){if(!c.value.has(e.name)){c.value.add(e.name);try{n?await r.enablePlugin(e.name):await r.disablePlugin(e.name),e.enabled=n,N.success(t(n?`plugins.enabled`:`plugins.disabled`))}catch(e){N.error(V(e,t(`plugins.adminRequired`)))}finally{c.value.delete(e.name)}}}async function p(e){if(u(e)){l.value={...l.value,[e.name]:`checking`};try{let t=await r.pluginHealth(e.name);l.value={...l.value,[e.name]:m(e.name,t)}}catch(n){l.value={...l.value,[e.name]:{ok:!1,reason:V(n,t(`plugins.loadFail`))}}}}}function m(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 h(e){return l.value[e]===`checking`}function _(e){let t=l.value[e];return t&&t!==`checking`?t:null}function v(e){return c.value.has(e)}return g(e,e=>{e===`runtime`&&!o.value&&!a.value&&n.isLoggedIn&&d()},{immediate:!0}),{plugins:i,pluginsLoading:a,pluginsLoaded:o,togglingPlugins:c,healthMap:l,hasHealthRoute:u,loadPlugins:d,togglePlugin:f,checkPluginHealth:p,judgePluginHealth:m,isCheckingHealth:h,healthOf:_,isToggling:v}}var Q=Symbol(`aw.settings.pluginAdmin`);function Ye(e){let t=Je(e);return l(Q,t),t}function Xe(){let e=c(Q);if(!e)throw Error(`[settings] usePluginAdminContext: 缺少 providePluginAdmin()`);return e}var Ze={key:0,class:`identity-note`},Qe={class:`plugin-main`},$e={class:`rt-title`},et={class:`aw-mono`},tt={key:0,class:`rt-tag`},nt={key:1,class:`rt-tag src-runtime`},rt={key:2,class:`rt-tag restart`},it={class:`rt-sub`},at={class:`rt-ctrl`},ot={key:0,class:`plugin-health faint`},st=[`onClick`],ct=[`aria-checked`,`disabled`,`onClick`],lt={key:0,class:`identity-note`},ut=Object.assign(B(d({__name:`PluginsSection`,setup(e){let{t:r}=M(),i=R(),{plugins:o,pluginsLoading:s,hasHealthRoute:c,checkPluginHealth:l,isCheckingHealth:u,healthOf:d,isToggling:m,togglePlugin:h}=Xe();return(e,g)=>{let C=ie;return t(i).isLoggedIn?(f(),S(C,{key:1,spinning:t(s)},{default:x(()=>[(f(!0),v(y,null,p(t(o),e=>(f(),v(`div`,{key:e.name,class:n([`plugin-row`,{off:e.enabled===!1}])},[_(`div`,Qe,[_(`div`,$e,[_(`span`,et,a(e.name),1),e.version?(f(),v(`span`,tt,`v`+a(e.version),1)):b(``,!0),e.builtin?(f(),v(`span`,nt,a(t(r)(`plugins.builtin`)),1)):b(``,!0),e.error?(f(),v(`span`,rt,a(e.error),1)):b(``,!0)]),_(`div`,it,a(e.description||`—`),1)]),_(`div`,at,[t(u)(e.name)?(f(),v(`span`,ot,[g[0]||=_(`span`,{class:`i-tabler-loader-2 spin`},null,-1),w(` `+a(t(r)(`plugins.healthChecking`)),1)])):t(d)(e.name)?(f(),v(`span`,{key:1,class:n([`plugin-health`,t(d)(e.name).ok?`ok`:`bad`])},[_(`span`,{class:n(t(d)(e.name).ok?`i-tabler-circle-check`:`i-tabler-alert-circle`)},null,2),w(` `+a(t(d)(e.name).ok?t(r)(`plugins.healthOk`):`${t(r)(`plugins.healthBad`)}: ${t(d)(e.name).reason??``}`),1)],2)):b(``,!0),t(c)(e)?(f(),v(`button`,{key:2,class:`aw-pill outline rt-reset`,onClick:n=>t(l)(e)},[g[1]||=_(`span`,{class:`i-tabler-heartbeat`},null,-1),w(` `+a(t(r)(`plugins.healthCheck`)),1)],8,st)):b(``,!0),_(`button`,{class:n([`switch`,{on:e.enabled!==!1}]),role:`switch`,"aria-checked":e.enabled!==!1,disabled:t(m)(e.name),onClick:n=>t(h)(e,e.enabled===!1)},[...g[2]||=[_(`span`,{class:`knob`},null,-1)]],10,ct)])],2))),128)),t(o).length===0&&!t(s)?(f(),v(`div`,lt,a(t(r)(`plugins.empty`)),1)):b(``,!0)]),_:1},8,[`spinning`])):(f(),v(`div`,Ze,a(t(r)(`plugins.needLogin`)),1))}}}),[[`__scopeId`,`data-v-c4c10ede`]]),{__name:`SettingsPluginsSection`}),dt={class:`section-title`},ft={class:`section-desc`},pt={class:`rt-groups-bar`},mt=[`title`],ht={class:`rt-groups-count`},gt={key:1,class:`rt-group-form`},_t=[`disabled`],vt={class:`rt-actions`},yt=[`disabled`],bt={class:`rt-path aw-mono`},xt={class:`rt-group-title plugin-group-title`},St={class:`section-desc`},Ct=Object.assign(B(d({__name:`RuntimePane`,props:{activeTab:{}},setup(e){let r=e,{t:i}=M(),o=z(),{runtimeNotice:s,dirtyKeys:c,savingRuntime:l,saveRuntime:u,resetAllRuntime:d}=Se(),{allExpanded:g,groupFormOpen:T,groupForm:E,groupBusy:O,isAdmin:k,submitGroupForm:A,toggleAllGroups:j}=Te(),{plugins:N}=Ye(h(()=>r.activeTab));return(r,h)=>{let M=ee,P=F,I=te,L=U;return C((f(),v(`div`,null,[_(`h3`,dt,a(t(i)(`settings.runtimeTab`)),1),_(`p`,ft,a(t(i)(`settings.runtime.desc`)),1),t(s)?(f(),S(M,{key:0,type:t(s).type,"show-icon":``,class:`rt-notice`,message:t(s).text},null,8,[`type`,`message`])):b(``,!0),_(`div`,pt,[_(`button`,{class:`aw-pill outline rt-groups-toggle`,title:t(i)(`settings.groups.toggleAll`),onClick:h[0]||=(...e)=>t(j)&&t(j)(...e)},[_(`span`,{class:n(t(g)?`i-tabler-chevrons-up`:`i-tabler-chevrons-down`)},null,2),w(` `+a(t(g)?t(i)(`settings.groups.collapseAll`):t(i)(`settings.groups.expandAll`)),1)],8,mt),_(`span`,ht,a(t(i)(`settings.groups.count`,{p0:t(o).groups.length})),1),t(k)?(f(),v(`button`,{key:0,class:`aw-pill outline rt-groups-add`,onClick:h[1]||=e=>T.value=!t(T)},[h[9]||=_(`span`,{class:`i-tabler-plus`},null,-1),w(` `+a(t(i)(`settings.groups.newGroup`)),1)])):b(``,!0)]),t(k)&&t(T)?(f(),v(`div`,gt,[m(P,{value:t(E).label,"onUpdate:value":h[2]||=e=>t(E).label=e,placeholder:t(i)(`settings.groups.namePlaceholder`),style:{width:`220px`},onPressEnter:t(A)},null,8,[`value`,`placeholder`,`onPressEnter`]),m(P,{value:t(E).description,"onUpdate:value":h[3]||=e=>t(E).description=e,placeholder:t(i)(`settings.groups.descPlaceholder`),style:{width:`320px`},onPressEnter:t(A)},null,8,[`value`,`placeholder`,`onPressEnter`]),m(I,{checked:t(E).collapsed,"onUpdate:checked":h[4]||=e=>t(E).collapsed=e},{default:x(()=>[w(a(t(i)(`settings.groups.defaultCollapsed`)),1)]),_:1},8,[`checked`]),_(`button`,{class:`aw-pill primary`,disabled:!t(E).label.trim()||t(O)===`create`,onClick:h[5]||=(...e)=>t(A)&&t(A)(...e)},a(t(O)===`create`?`…`:t(i)(`settings.groups.create`)),9,_t),_(`button`,{class:`aw-pill outline`,onClick:h[6]||=e=>T.value=!1},a(t(i)(`settings.groups.cancel`)),1)])):b(``,!0),(f(!0),v(y,null,p(t(o).groups,e=>(f(),S(qe,{key:e.id,group:e},null,8,[`group`]))),128)),_(`div`,vt,[_(`button`,{class:`aw-pill primary`,disabled:!t(c).size||t(l),onClick:h[7]||=(...e)=>t(u)&&t(u)(...e)},[h[10]||=_(`span`,{class:`i-tabler-device-floppy`},null,-1),w(` `+a(t(l)?`…`:t(i)(`settings.runtime.save`)),1)],8,yt),_(`button`,{class:`aw-pill outline`,onClick:h[8]||=(...e)=>t(d)&&t(d)(...e)},a(t(i)(`settings.runtime.resetAll`)),1),_(`span`,bt,a(t(o).settingsPath),1)]),_(`h4`,xt,a(t(i)(`plugins.title`)),1),_(`p`,St,a(t(i)(`plugins.desc`)),1),m(ut),t(N).length?(f(),S(L,{key:2,"slot-name":`settings.plugins`})):b(``,!0)],512)),[[D,e.activeTab===`runtime`]])}}}),[[`__scopeId`,`data-v-6a6f35be`]]),{__name:`SettingsRuntimePane`}),wt={class:`section-title`},Tt={class:`section-desc`},Et={class:`aw-mono`},$={class:`identity-note`},Dt=Object.assign(B(d({__name:`SystemPane`,props:{activeTab:{}},setup(n){let{t:r,locale:i}=M(),o=A(),s=e().public,c=R(),l=String(s.primaryColor),u=h(()=>[{label:r(`home.fields.name`),value:o.name},{label:r(`home.fields.version`),value:`v${o.version}`},{label:r(`home.fields.mode`),value:o.mode},{label:r(`home.fields.apiBase`),value:`${o.apiBase} (${s.apiTimeout}ms)`},{label:r(`home.fields.primary`),value:l},{label:`i18n`,value:i.value}]);return(e,i)=>{let o=L,s=ne;return C((f(),v(`div`,null,[_(`h3`,wt,a(t(r)(`settings.systemTab`)),1),_(`p`,Tt,a(t(r)(`settings.systemDesc`)),1),m(s,{bordered:``,column:1,size:`small`},{default:x(()=>[(f(!0),v(y,null,p(t(u),e=>(f(),S(o,{key:e.label,label:e.label},{default:x(()=>[_(`span`,Et,a(e.value),1)]),_:2},1032,[`label`]))),128))]),_:1}),_(`p`,$,a(t(c).isLoggedIn?`${t(r)(`settings.identity`)}: ${t(c).user?.name} (${t(c).user?.role})`:t(r)(`settings.identityGuest`)),1)],512)),[[D,n.activeTab===`system`]])}}}),[[`__scopeId`,`data-v-4d2a2989`]]),{__name:`SettingsSystemPane`}),Ot={class:`settings-page`},kt={class:`aw-page-head`},At={class:`aw-kicker`},jt={class:`aw-stamp`},Mt={class:`settings-layout`},Nt={class:`settings-nav`},Pt=[`onClick`],Ft={class:`settings-body`},It=B(d({__name:`settings`,setup(e){let{t:r}=M(),i=A(),o=s(`appearance`),c=h(()=>[{key:`appearance`,icon:`i-tabler-palette`,label:r(`settings.theme`)},{key:`runtime`,icon:`i-tabler-settings`,label:r(`settings.runtimeTab`)},{key:`system`,icon:`i-tabler-server-2`,label:r(`settings.systemTab`)}]);return(e,s)=>{let l=I;return f(),v(`div`,Ot,[_(`div`,kt,[_(`div`,null,[_(`p`,At,a(t(r)(`menu.system`))+` / settings `,1),_(`h1`,null,a(t(r)(`settings.title`)),1)]),_(`span`,jt,`v`+a(t(i).version),1)]),m(l,{bordered:!1,class:`settings-card`},{default:x(()=>[_(`div`,Mt,[_(`div`,Nt,[(f(!0),v(y,null,p(t(c),e=>(f(),v(`button`,{key:e.key,class:n([`nav-item`,{active:t(o)===e.key}]),onClick:t=>o.value=e.key},[_(`span`,{class:n(e.icon)},null,2),_(`span`,null,a(e.label),1)],10,Pt))),128))]),_(`div`,Ft,[m(be,{"active-tab":t(o)},null,8,[`active-tab`]),m(Ct,{"active-tab":t(o)},null,8,[`active-tab`]),m(Dt,{"active-tab":t(o)},null,8,[`active-tab`])])])]),_:1})])}}}),[[`__scopeId`,`data-v-672ae7d7`]]);export{It as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./Nw_6OpQZ2.js";function t(){let t=e();return{listChannels:()=>t.get(`/workshop/channels`),createChannel:e=>t.post(`/workshop/channels`,e),deleteChannel:e=>t.delete(`/workshop/channels/${e}`),patchChannel:(e,n)=>t.request({method:`PATCH`,url:`/workshop/channels/${e}`,data:n}),listChannelAgents:e=>t.get(`/workshop/channels/${e}/agents`),addChannelAgent:(e,n)=>t.post(`/workshop/channels/${e}/agents`,n),updateChannelAgent:(e,n,r)=>t.request({method:`PATCH`,url:`/workshop/channels/${e}/agents/${n}`,data:r}),removeChannelAgent:(e,n)=>t.delete(`/workshop/channels/${e}/agents/${n}`),stopChannelAgent:(e,n)=>t.post(`/workshop/channels/${e}/agents/${n}/stop`,{}),listTasks:e=>t.get(`/workshop/channels/${e}/tasks`),submitTask:(e,n)=>t.post(`/workshop/channels/${e}/tasks`,n),injectMessage:(e,n)=>t.post(`/workshop/channels/${e}/messages`,n),listAgentMemories:(e,n)=>t.get(`/workshop/channels/${e}/agents/${n}/memories`),searchMemories:(e,n,r)=>t.post(`/workshop/channels/${e}/agents/${n}/memories/search`,r),saveMemory:(e,n,r)=>t.post(`/workshop/channels/${e}/agents/${n}/memories`,r),listTeamMemories:e=>t.get(`/workshop/channels/${e}/memories`),queueOverview:e=>t.get(`/workshop/channels/${e}/queue`),runtimeStatus:()=>t.get(`/workshop/runtime`),listSchedules:()=>t.get(`/workshop/schedules`),createSchedule:e=>t.post(`/workshop/schedules`,e),updateSchedule:(e,n)=>t.request({method:`PATCH`,url:`/workshop/schedules/${e}`,data:n}),deleteSchedule:e=>t.delete(`/workshop/schedules/${e}`),runSchedule:e=>t.post(`/workshop/schedules/${e}/run`,{}),listScheduleRuns:(e,n=50)=>t.get(`/workshop/schedules/${e}/runs`,{params:{limit:n}}),listHarnesses:()=>t.get(`/workshop/harnesses`),listHarnessProviders:e=>t.get(`/workshop/harnesses/${e}/providers`),getTask:(e,n)=>t.get(`/workshop/tasks/${e}`,n?{params:{channelId:n}}:void 0),cancelTask:e=>t.post(`/workshop/tasks/${e}/cancel`,{}),retryTask:e=>t.post(`/workshop/tasks/${e}/retry`,{}),respondHitl:e=>t.post(`/workshop/hitl/respond`,e),listTemplates:()=>t.get(`/workshop/agents`),createTemplate:e=>t.post(`/workshop/agents`,e),updateTemplate:(e,n)=>t.request({method:`PATCH`,url:`/workshop/agents/${e}`,data:n}),deleteTemplate:e=>t.delete(`/workshop/agents/${e}`),listTeams:()=>t.get(`/workshop/teams`),createTeam:e=>t.post(`/workshop/teams`,e),updateTeam:(e,n)=>t.request({method:`PATCH`,url:`/workshop/teams/${e}`,data:n}),deleteTeam:e=>t.delete(`/workshop/teams/${e}`),addTeamMember:(e,n)=>t.post(`/workshop/teams/${e}/members`,n),removeTeamMember:(e,n)=>t.delete(`/workshop/teams/${e}/members/${n}`),deployTeam:(e,n)=>t.post(`/workshop/teams/${e}/deploy`,{channelId:n}),listChannelTemplates:()=>t.get(`/workshop/channel-templates`),createChannelTemplate:e=>t.post(`/workshop/channel-templates`,e),captureChannelTemplate:e=>t.post(`/workshop/channel-templates/from-channel`,e),updateChannelTemplate:(e,n)=>t.request({method:`PATCH`,url:`/workshop/channel-templates/${e}`,data:n}),deleteChannelTemplate:e=>t.delete(`/workshop/channel-templates/${e}`),instantiateChannelTemplate:(e,n,r)=>t.post(`/workshop/channel-templates/${e}/instantiate`,{name:n,...r}),mountChannelTemplate:(e,n,r)=>t.post(`/workshop/workspaces/${e}/channel-templates/${n}`,{name:r}),listChannelTerminals:e=>t.get(`/workshop/channels/${e}/terminals`),listPlugins:()=>t.get(`/workshop/plugins`),enablePlugin:e=>t.post(`/workshop/plugins/${e}/enable`,{}),disablePlugin:e=>t.post(`/workshop/plugins/${e}/disable`,{}),pluginHealth:e=>t.get(`/plugins/${e}/health`),listChannelPlugins:e=>t.get(`/workshop/channels/${e}/plugins`),putChannelPlugins:(e,n)=>t.put(`/workshop/channels/${e}/plugins`,n),listTeamPlugins:e=>t.get(`/workshop/teams/${e}/plugins`),putTeamPlugins:(e,n)=>t.put(`/workshop/teams/${e}/plugins`,n)}}export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{v as e}from"./CavpkQb0.js";import{P as t,R as n,et as r}from"./ByMj6e7s.js";import{i}from"./S799kNo8.js";import{t as a}from"./RAqsw632.js";import{t as o}from"./36oeS8_R.js";import{t as s}from"./CI2yXRr42.js";import{n as c}from"./Bfe2qOYs.js";import{t as l}from"./Ch1P2mIf.js";import{t as u}from"./JgheoP3e.js";var d=50,f=10,p=2e3,m=i(`workshop.notifications`,()=>{let t=e([]),n=e(0),r=e(null),i=e(new Set),a=e(!1),o=e(null),u=e(0),m=e(!1),h=null;function g(e=5e3){m.value=!0,h&&clearTimeout(h),h=setTimeout(()=>{m.value=!1,h=null},e)}function _(){m.value=!1,h&&=(clearTimeout(h),null)}function v(e){if(!e)return;let t=i.value;if(t.has(e)||t.add(e),t.size>p){let e=[...t].slice(-Math.floor(p/2));i.value=new Set(e)}}function y(e){let n=t.value,r=0;for(;r<n.length&&n[r].createdAt>=e.createdAt;)r++;n.splice(r,0,e)}function b(e,r={}){if(!e?.id)return!1;let a=t.value.findIndex(t=>t.id===e.id);return a>=0?(t.value[a]={...t.value[a],...e},!1):e.eventId&&i.value.has(e.eventId)?!1:(v(e.eventId),y(e),e.readAt||(n.value+=1),x(e),r.live&&(o.value=e,u.value+=1),!0)}function x(e){let t=r.value;(!t||e.createdAt>t.createdAt||e.createdAt===t.createdAt&&e.id>t.id)&&(r.value={createdAt:e.createdAt,id:e.id})}function S(e){if(e.type===`notification.created`){b(e.payload,{live:!m.value});return}e.type===`notification.read`&&C(e.payload)}function C(e){let r=e.readAt||c();for(let n of t.value)n.readAt||e.id&&n.id!==e.id||!e.id&&e.channelId&&n.channelId!==e.channelId||(n.readAt=r);n.value=t.value.filter(e=>!e.readAt).length}async function w(e){let t=s().token,n={limit:String(d)};e&&(n.cursor=`${e.createdAt}|${e.id}`);let r=Object.entries(n).map(([e,t])=>`${e}=${encodeURIComponent(t)}`).join(`&`),i=await l(`/api/workshop/notifications?${r}`,{headers:t?{authorization:`Bearer ${t}`}:{}});if(i.code!==0||!i.data)throw Error(i.message??`通知拉取失败`);return i.data}async function T(){if(!(typeof window>`u`||!s().token))try{let e=await w(null);t.value=[...e.notifications??[]];for(let e of t.value)v(e.eventId);n.value=e.unreadCount??t.value.filter(e=>!e.readAt).length;let i=t.value[0];r.value=i?{createdAt:i.createdAt,id:i.id}:null,a.value=!0}catch{}}async function E(){if(typeof window>`u`||!s().token)return 0;if(!a.value)return await T(),0;let e=0;try{for(let t=0;t<f;t+=1){let t=await w(r.value),i=t.notifications??[];for(let t of i)b(t)&&(e+=1);if(t.nextCursor&&(r.value=t.nextCursor),n.value=t.unreadCount??n.value,i.length<d||!t.nextCursor)return e}return e}catch{return e}}function D(e){e&&(!r.value||e.createdAt>r.value.createdAt||e.createdAt===r.value.createdAt&&e.id>r.value.id)&&(r.value=e)}async function O(e){let r=s().token,i=await l(`/api/workshop/notifications/read`,{method:`POST`,body:{...e},headers:r?{authorization:`Bearer ${r}`}:{}});if(i.code!==0||!i.data)throw Error(i.message??`标记已读失败`);let a=c();for(let n of t.value)n.readAt||e.id&&n.id!==e.id||!e.id&&!e.all&&e.channelId&&n.channelId!==e.channelId||(n.readAt=a);return n.value=i.data.unreadCount??t.value.filter(e=>!e.readAt).length,i.data.count??0}function k(){t.value=[],n.value=0,r.value=null,i.value=new Set,a.value=!1,o.value=null,_()}return{items:t,unreadCount:n,cursor:r,seenEventIds:i,loaded:a,liveItem:o,liveSeq:u,replaying:m,beginReplay:g,endReplay:_,applyEnvelope:S,applyRead:C,upsertNotification:b,loadSnapshot:T,backfill:E,applyReplayCursor:D,markRead:O,clear:k}}),h=45e3,g=9e4,_=i(`workshop.connection`,{state:()=>({state:`closed`,cursors:{},lastDataAt:0,pendingReplay:!1,lastError:``,retryCount:0})}),v=class{onEvent;onStateChange;onPendingReplay;onDataRecovered;ws=null;retry=0;closedByUser=!1;subscribed=new Set;refCounts=new Map;lastSeqByChannel=new Map;lastFrameAt=0;lastDataAt=0;userToken=``;constructor(e,t,n=()=>{},r=()=>{}){this.onEvent=e,this.onStateChange=t,this.onPendingReplay=n,this.onDataRecovered=r}updateCursor(e,t){Number.isFinite(t)&&this.lastSeqByChannel.set(e,t)}url(){return typeof location>`u`?`ws://localhost/api/workshop/ws`:`${location.protocol===`https:`?`wss`:`ws`}://${location.host}/api/workshop/ws${this.userToken?`?token=${encodeURIComponent(this.userToken)}`:``}`}connect(){if(typeof window>`u`)return;this.onStateChange(`connecting`,this.retry);let e=new WebSocket(this.url());this.ws=e,this.lastFrameAt=Date.now(),this.lastDataAt=Date.now(),e.onopen=()=>{this.retry=0,this.onStateChange(`open`,0);for(let e of this.subscribed)this.sendSub(e,this.lastSeqByChannel.get(e))},e.onmessage=e=>{this.lastFrameAt=Date.now();try{let t=JSON.parse(e.data);t.type!==`pong`&&(this.lastDataAt=Date.now(),this.onDataRecovered()),this.onEvent(t)}catch{}},e.onclose=()=>{if(this.ws=null,this.closedByUser){this.onStateChange(`closed`,0);return}this.onStateChange(`closed`,this.retry),this.subscribed.size>0&&this.onPendingReplay();let e=Math.min(1e3*2**this.retry,1e4);this.retry+=1,setTimeout(()=>{this.closedByUser||this.connect()},e)},e.onerror=()=>{}}checkStale(){let e=this.ws;!e||e.readyState!==WebSocket.OPEN||(Date.now()-this.lastFrameAt>h||Date.now()-this.lastDataAt>g)&&e.close()}sendSub(e,t){let n={type:`sub`,channelId:e,token:this.userToken};typeof t==`number`&&(n.lastSeq=t),this.ws?.send(JSON.stringify(n))}subscribe(e,t){let n=this.refCounts.get(e)??0;this.refCounts.set(e,n+1),!(n>0)&&(this.subscribed.add(e),typeof t==`number`&&this.lastSeqByChannel.set(e,t),this.ws?.readyState===WebSocket.OPEN?this.sendSub(e,this.lastSeqByChannel.get(e)):this.ws||this.connect())}ensureConnected(){typeof window>`u`||this.ws||this.connect()}unsubscribe(e){let t=this.refCounts.get(e)??0;t<=1?(this.refCounts.delete(e),this.subscribed.delete(e),this.ws?.readyState===WebSocket.OPEN&&this.ws?.send(JSON.stringify({type:`unsub`,channelId:e}))):this.refCounts.set(e,t-1)}refCount(e){return this.refCounts.get(e)??0}ping(){try{this.ws?.send(JSON.stringify({type:`ping`}))}catch{try{this.ws?.close()}catch{}}}close(){this.closedByUser=!0,this.ws?.close()}},y={silent:0,status:1,attention:2,terminal:3};function b(e){switch(e.type){case`error`:return`attention`;case`a2a.artifact`:case`agent.message`:return`terminal`;case`task.status`:{let t=String(e.payload.state??``);return t===`COMPLETED`||t===`FAILED`||t===`CANCELED`?`terminal`:t===`WAITING`?`attention`:`status`}case`a2a.message`:return(e.payload.metadata??{})[`x-aw-require-reply`]===`true`?`attention`:`status`;case`agent.delta`:case`agent.status.message`:case`task.progress`:case`memory.saved`:return`silent`;default:return`status`}}function x(e){let t=`silent`;for(let n of e){let e=b(n);y[e]>y[t]&&(t=e)}return t}var S=5e3,C=[`agent.delta`],w={all:null,messages:[`agent.message`,`agent.delta`,`agent.status.message`,`a2a.message`],tasks:[`task.status`,`task.progress`,`a2a.artifact`],team:[`agent.member`,`task.status`],errors:[`error`],key:null};function T(e,t,n,r){if(e.type===`channel.snapshot`)return!1;if(t===`key`){let t=b(e);return t===`attention`||t===`terminal`}return n&&!n.includes(e.type)?!1:r&&e.type!==`task.status`&&e.type!==`task.progress`?e.agentId===r||e.type===`a2a.message`&&e.payload.metadata?.[`x-aw-target-agent`]===r:!0}function E(e,t,n,r){return e.filter(e=>T(e,t,n,r))}var D=Object.freeze([]),O=new Map;function k(e,t){let n=0,r=e.length;for(;n<r;){let i=n+r>>>1;(e[i]?.seq??0)>t?r=i:n=i+1}return n}var A=()=>({lastSeq:0,items:[],consumed:new Set,byAgent:new Map});function j(e,t){let n=t.agentId;if(!n)return;let r=e.byAgent.get(n);r?r.push(t):e.byAgent.set(n,[t])}function M(e,t){for(let n of t){let t=e.byAgent.get(n.agentId??``);if(!t)continue;let r=t.indexOf(n);r>=0&&t.splice(r,1),t.length===0&&e.byAgent.delete(n.agentId??``)}}function N(e){e.byAgent.clear();for(let t of e.items)j(e,t)}function P(e,t,n){let r=0;for(let i of t)typeof i.seq!=`number`||i.seq>n||e.consumed.has(i.seq)||(e.items.push(i),e.consumed.add(i.seq),r+=1);if(r>0){e.items.sort((e,t)=>e.seq-t.seq);let t=e.items.length-S;t>0&&e.items.splice(0,t),N(e)}return r}var F=i(`workshop.events`,{state:()=>({rings:{},filters:{},focusAgents:{},laneLoaded:{}}),getters:{ring(e){return t=>e.rings[t]??A()},timeline(e){return t=>{let n=e.rings[t];if(!n)return D;let r=e.filters[t]??`all`,i=e.focusAgents[t]??null,a=n.items,o=w[r],s=a.length>0?a[a.length-1]?.seq??0:-1,c=O.get(t);if(!c||c.filter!==r||c.focus!==i||a.length===0&&c.result.length>0||c.lastSeq>s){let e=E(a,r,o,i);return O.set(t,{filter:r,focus:i,lastSeq:s,result:e}),e}let l=a[0]?.seq??0,u=c.result;if(u.length>0&&(u[0]?.seq??0)<l){let e=0;for(;e<u.length&&(u[e]?.seq??0)<l;)e++;u.splice(0,e)}if(s>c.lastSeq){let e=k(a,c.lastSeq);for(let t=e;t<a.length;t++){let e=a[t];T(e,r,o,i)&&u.push(e)}c.lastSeq=s}return u}},agentEvents(e){return(t,n)=>n?e.rings[t]?.byAgent.get(n)??D:D},lastSeq(e){return t=>e.rings[t]?.lastSeq??0}},actions:{ingest(e){if(!e.channelId)return;let t=this.rings[e.channelId]??A();if(e.type===`channel.snapshot`){this.rings[e.channelId]={lastSeq:e.seq,items:[],consumed:new Set([e.seq]),byAgent:new Map};return}if(typeof e.seq==`number`&&e.seq>t.lastSeq){if(t.consumed.add(e.seq),e.type===`agent.delta`){let n=t.items[t.items.length-1];if(n&&n.type===`agent.delta`&&n.agentId===e.agentId&&(n.taskId??null)===(e.taskId??null)&&n){let r=n.payload.delta;n.payload.delta=r+e.payload.delta,t.lastSeq=e.seq,this.rings[e.channelId]=t;return}}t.items.push(e),j(t,e),t.items.length>S&&M(t,t.items.splice(0,t.items.length-S)),t.lastSeq=e.seq,t.consumed.size>2e4&&(t.consumed=new Set(t.items.map(e=>e.seq))),this.rings[e.channelId]=t}},setFilter(e,t){this.filters[e]=t},async loadHistory(e,t=200){if(typeof window>`u`)return;let n=this.rings[e]??A();try{let r=await l(`/api/workshop/channels/${e}/events`,{params:{limit:t,excludeTypes:C.join(`,`)},headers:{authorization:`Bearer ${s().token}`}});if(r.code!==0||!r.data?.items?.length)return;P(n,r.data.items,n.lastSeq),this.rings[e]=n}catch{}},async loadEarlier(e,t=200){if(typeof window>`u`)return!1;let n=this.rings[e];if(!n)return!1;let r=n.items.length>0?n.items[0]?.seq??0:n.lastSeq;if(r<=1)return!1;try{let i=await l(`/api/workshop/channels/${e}/events`,{params:{limit:t,beforeSeq:Math.max(1,r-1),excludeTypes:C.join(`,`)},headers:{authorization:`Bearer ${s().token}`}});if(i.code!==0||!i.data?.items?.length)return!1;let a=P(n,i.data.items,n.lastSeq);return a>0&&(this.rings[e]=n),a>0&&i.data.items.length>=t}catch{return!1}},async loadLaneHistory(e,t,n=200){if(typeof window>`u`||this.laneLoaded[e]?.has(t))return;(this.laneLoaded[e]??=new Set).add(t);for(let t=0;t<20&&this.lastSeq(e)===0;t++)await new Promise(e=>setTimeout(e,150));if(this.lastSeq(e)===0){this.laneLoaded[e]?.delete(t);return}let r=this.rings[e];try{let i=await l(`/api/workshop/channels/${e}/events`,{params:{limit:n,agentId:t,excludeTypes:C.join(`,`)},headers:{authorization:`Bearer ${s().token}`}});i.code===0&&i.data?.items?.length&&(P(r,i.data.items,r.lastSeq),this.rings[e]=r)}catch{this.laneLoaded[e]?.delete(t)}},async loadLaneEarlier(e,t,n=200){if(typeof window>`u`)return!1;let r=this.rings[e];if(!r)return!1;let i=0;for(let e of r.items)if(e.agentId===t){i=e.seq;break}if(i<=1)return!1;try{let a=await l(`/api/workshop/channels/${e}/events`,{params:{limit:n,agentId:t,beforeSeq:i-1,excludeTypes:C.join(`,`)},headers:{authorization:`Bearer ${s().token}`}});if(a.code!==0||!a.data?.items?.length)return!1;let o=P(r,a.data.items,r.lastSeq);return o>0&&(this.rings[e]=r),o>0&&a.data.items.length>=n}catch{return!1}},setFocusAgent(e,t){this.focusAgents[e]=t},clear(e){Reflect.deleteProperty(this.rings,e),Reflect.deleteProperty(this.laneLoaded,e)}}});function I(e){return e===`COMPLETED`||e===`FAILED`||e===`CANCELED`}function L(){return{activeRootId:null,queuedRoots:[],completedRoots:0,activeRootCount:0,queuedRootCount:0}}function R(e){let t=e.filter(e=>!e.parentId&&e.rootQueueSeq!=null).sort((e,t)=>(e.rootQueueSeq??0)-(t.rootQueueSeq??0)||String(e.createdAt).localeCompare(String(t.createdAt))),n=t.filter(e=>!I(e.state));return{activeRootId:n[0]?.id??null,queuedRoots:n.slice(1).map((e,t)=>({taskId:e.id,title:e.title,position:t+2,state:e.state,createdAt:e.createdAt})),completedRoots:t.length-n.length,activeRootCount:+(n.length>0),queuedRootCount:Math.max(0,n.length-1)}}var z=i(`workshop.entities`,{state:()=>({channels:{},agents:{},tasks:{},rootQueues:{},refreshing:{},refreshingAgents:{}}),getters:{agentById(e){return(t,n)=>e.agents[t]?.find(e=>e.agentId===n)},agentName(e){return(t,n)=>n?e.agents[t]?.find(e=>e.agentId===n)?.name??n.slice(0,8):`system`},taskTitle(e){return(t,n)=>n?e.tasks[t]?.find(e=>e.id===n)?.title??n.slice(0,8):``},rootTasks(e){return t=>(e.tasks[t]??[]).filter(e=>!e.parentId)},taskById(e){return(t,n)=>e.tasks[t]?.find(e=>e.id===n)},busyCount(e){return t=>(e.agents[t]??[]).filter(e=>e.state===`busy`).length},rootQueue(e){return t=>e.rootQueues[t]??L()},activeRootId(e){return t=>e.rootQueues[t]?.activeRootId??(e.tasks[t]??[]).filter(e=>!e.parentId&&!I(e.state))[0]?.id??null}},actions:{applySnapshot(e){let{channelId:t}=e;this.channels[t]={...e.channel,loadedAt:Date.now()},this.agents[t]=e.agents.map(e=>({...e,modelRef:e.config?.modelRef??e.modelRef??null})),this.tasks[t]=e.tasks.map(e=>this.toTaskView(e)),this.rootQueues[t]=e.rootQueue??R(e.tasks)},applyEvent(e){let t=e.channelId;switch(e.type){case`agent.status`:{let n=this.agents[t]??[],r=e.payload,i={agentId:r.agentId,state:r.state,currentTaskId:r.currentTaskId??null,currentTaskTitle:r.currentTaskTitle??null,currentTaskProgress:r.currentTaskProgress??null,queued:r.queued??r.queuedCount??0,completed:r.completed??r.completedCount??0,...r.context===void 0?{}:{context:r.context},...r.supervision?{supervision:r.supervision}:{},...r.continuity?{continuity:r.continuity}:{}},a=n.findIndex(e=>e.agentId===i.agentId);if(a>=0)n[a]={...n[a],...i};else{let e={agentId:i.agentId,state:i.state,currentTaskId:i.currentTaskId??null,queued:i.queued,completed:i.completed,name:i.agentId.slice(0,8),role:`worker`,harness:`-`,...r.supervision?{supervision:r.supervision}:{},...r.continuity?{continuity:r.continuity}:{}};n.push(e),this.refreshAgents(t)}this.agents[t]=[...n];break}case`agent.member`:{let n=e.payload,r=this.agents[t]??[],i=r.findIndex(e=>e.agentId===n.agentId);if(n.op===`added`)i<0&&r.push({agentId:n.agentId,name:n.name,role:n.role,harness:n.harness,enabled:n.enabled,config:n.config,modelRef:n.config?.modelRef??null,state:`idle`,currentTaskId:null,queued:0,completed:0});else if(n.op===`updated`){if(i>=0){let e=r[i],t=n.config??e.config;r[i]={...e,name:n.name??e.name,role:n.role??e.role,harness:n.harness??e.harness,enabled:n.enabled??e.enabled,config:t,modelRef:t?.modelRef??e.modelRef??null}}}else n.op===`removed`&&i>=0&&r.splice(i,1);this.agents[t]=[...r];break}case`task.status`:{let n=e.payload,r=this.tasks[t]??[],i=r.findIndex(e=>e.id===n.taskId);if(i>=0){let e=r[i];r[i]={...e,state:n.state,assigneeId:n.assigneeId??e.assigneeId,title:n.title??e.title,parentId:n.parentId??e.parentId,rootQueueSeq:n.rootQueueSeq??e.rootQueueSeq,progress:Math.max(e.progress,n.progress??0),routeReason:n.routeReason??e.routeReason,closeReason:n.closeReason??e.closeReason,deadlineAt:n.deadlineAt??e.deadlineAt,retryCount:n.retryCount??e.retryCount,createdAt:n.createdAt??e.createdAt,artifacts:Math.max(e.artifacts,n.artifacts??0)}}else{let e={id:n.taskId,title:n.title??n.taskId.slice(0,8),state:n.state,progress:n.progress??0,assigneeId:n.assigneeId??``,artifacts:n.artifacts??0};n.parentId&&(e.parentId=n.parentId),n.rootQueueSeq!=null&&(e.rootQueueSeq=n.rootQueueSeq),n.routeReason&&(e.routeReason=n.routeReason),n.closeReason&&(e.closeReason=n.closeReason),n.deadlineAt&&(e.deadlineAt=n.deadlineAt),n.retryCount!=null&&(e.retryCount=n.retryCount),n.createdAt&&(e.createdAt=n.createdAt),r.push(e),n.title===void 0&&this.refreshTasks(t)}this.tasks[t]=[...r];break}case`task.progress`:{let n=e.payload,r=this.tasks[t]??[],i=r.findIndex(e=>e.id===n.taskId),a=i>=0?r[i]:void 0;a&&(r[i]={...a,progress:n.progress}),this.tasks[t]=[...r];break}case`root.queue`:this.rootQueues[t]=e.payload;break;case`a2a.artifact`:{let n=e.payload;if(!n.taskId)break;let r=this.tasks[t]??[],i=r.findIndex(e=>e.id===n.taskId),a=i>=0?r[i]:void 0;a&&(r[i]={...a,artifacts:a.artifacts+1}),this.tasks[t]=[...r];break}}},toTaskView(e){return{id:e.id,parentId:e.parentId,rootQueueSeq:e.rootQueueSeq,title:e.title,state:e.state,progress:e.progress,assigneeId:e.assigneeId,artifacts:e.artifacts.length,routeReason:e.routeReason,sourceChatMessageId:e.sourceChatMessageId,sourceChatDeliveryId:e.sourceChatDeliveryId,retryCount:e.retryCount,closeReason:e.closeReason,deadlineAt:e.deadlineAt,createdAt:e.createdAt,updatedAt:e.updatedAt}},refreshChannel(e,t){this.applySnapshot(t)},refreshAgents(e){this.refreshingAgents[e]||(this.refreshingAgents[e]=!0,l(`/api/workshop/channels/${e}/agents`,{headers:{authorization:`Bearer ${s().token}`}}).then(t=>{let n=t.data??[],r=[...this.agents[e]??[]];for(let e of n){let t=r.findIndex(t=>t.agentId===e.id);t>=0?r[t]={...r[t],name:e.name,role:e.role,harness:e.harness,config:e.config}:r.push({agentId:e.id,name:e.name,role:e.role,harness:e.harness,config:e.config,state:`idle`,currentTaskId:null,queued:0,completed:0})}this.agents[e]=r}).catch(()=>{}).finally(()=>{this.refreshingAgents[e]=!1}))},refreshTasks(e){this.refreshing[e]||(this.refreshing[e]=!0,l(`/api/workshop/channels/${e}/tasks`,{headers:{authorization:`Bearer ${s().token}`}}).then(t=>{let n=t.data??[],r=this.tasks[e]??[],i=new Map(r.map(e=>[e.id,e])),a=new Set(n.map(e=>e.id)),o=n.map(e=>{let t=i.get(e.id),n=this.toTaskView(e);return t&&t.progress>n.progress?{...n,progress:t.progress}:n});for(let e of r)a.has(e.id)||o.push(e);this.tasks[e]=o}).catch(()=>{}).finally(()=>{this.refreshing[e]=!1}))}}}),B=e=>`${e.kind}:${e.id}`;function V(e){let t=e??{},n=t.data?.code??t.response?.data?.code,r=Number(t.statusCode??t.status??t.response?.status??0);return{ok:!1,code:n==null?r===409?`ALREADY_RESOLVED`:r===403?`APPROVAL_FORBIDDEN`:r?`HTTP_${r}`:``:String(n),message:u(e)}}var H=i(`workshop.hitl`,{state:()=>({items:[],snapshotLoaded:!1,answering:null}),getters:{count:e=>e.items.length,byAgent:e=>{let t=new Map;for(let n of e.items){let e=t.get(n.agentId)??[];e.push(n),t.set(n.agentId,e)}return t},byKey:e=>(t,n)=>e.items.find(e=>e.kind===t&&e.id===n)},actions:{applyEnvelope(e){if(e.type===`hitl.request`){let t=e.payload,n=B(t),r=this.items.findIndex(e=>B(e)===n);r>=0?this.items[r]=t:this.items.push(t)}else if(e.type===`hitl.resolved`){let t=e.payload;this.items=this.items.filter(e=>B(e)!==B(t))}},async loadSnapshot(){if(typeof window>`u`)return;let e=s().token;if(e)try{let t=await l(`/api/workshop/hitl/pending`,{headers:{authorization:`Bearer ${e}`}});t.code===0&&t.data&&(this.items=t.data.items,this.snapshotLoaded=!0)}catch{}},async answer(e,t){let n=B(e);if(this.answering)return{ok:!1,code:`BUSY`,message:`已有应答提交中`};this.answering=n;let r=s().token;try{let i=await l(`/api/workshop/hitl/respond`,{method:`POST`,body:{kind:e.kind,id:e.id,...t},headers:r?{authorization:`Bearer ${r}`}:{}});return i.code===0?(this.items=this.items.filter(e=>B(e)!==n),await this.loadSnapshot(),{ok:!0,code:``,message:i.message??`ok`}):(await this.loadSnapshot(),{ok:!1,code:String(i.code??``),message:i.message??`应答失败`})}catch(e){let t=V(e);return(t.code===`ALREADY_RESOLVED`||t.code===`APPROVAL_FORBIDDEN`||t.code===`NOT_RESPONDABLE`)&&await this.loadSnapshot(),t}finally{this.answering=null}},invalidate(){this.snapshotLoaded=!1},clear(){this.items=[],this.snapshotLoaded=!1,this.answering=null}}});function U(e){let t=e??{},n=t.response?.data?.code??t.data?.code;return n==null?``:String(n)}function W(e){let t=e??{},n=t.response?.data?.message??t.data?.message;return typeof n==`string`&&n.trim()?n.trim():u(e)}function G(e,t){let n=e.length;for(let r=e.length-1;r>=0;r--){if(e[r].createdAt<=t.createdAt){n=r+1;break}n=r}e.splice(n,0,t)}var K=i(`workshop.chat`,()=>{let t=e({}),n=e({}),r=e({}),i=e({}),a=e({}),o=e(new Set),u=e({}),d=e({}),f=e(null);function p(e){return t.value[e]??=[]}function m(e,t){let n=t||e.channelId;if(!n||!e?.id)return!1;let r=p(n),i=r.findIndex(t=>t.id===e.id);return i>=0?(r[i]={...r[i],...e},!1):(G(r,e),!0)}function h(e){let t=e.channelId;if(!t||!e.deliveryId)return;let n=i.value[t]??={};n[e.deliveryId]={...n[e.deliveryId],...e}}function g(e){switch(e.type){case`chat.message`:m(e.payload,e.channelId||void 0);break;case`chat.delivery.status`:h(e.payload);break;case`chat.member`:{let t=e.payload,r=e.channelId;if(!r||!t?.userId)break;let i=n.value[r]??=[],a=i.findIndex(e=>e.userId===t.userId),o={userId:t.userId,displayName:t.displayName??null,role:t.role,status:t.status,joinedAt:t.joinedAt,leftAt:t.leftAt??null};a>=0?i[a]=o:i.push(o);break}case`chat.settings`:{let t=e.payload,n=t?.id||e.channelId;n&&(r.value[n]=t);break}}}function _(e,t,i){if(e){t?.channel&&(r.value[e]=t.channel),Array.isArray(t?.members)&&(n.value[e]=t.members.map(e=>({...e})));for(let n of t?.chatMessages??[])m(n,e);t?.permissions?a.value[e]=t.permissions:i!==void 0&&(a.value[e]=i??null),o.value.add(e)}}async function v(e,t={}){let n=s().token,r=t.query?`?${Object.entries(t.query).filter(([,e])=>e!==void 0&&e!==``).map(([e,t])=>`${e}=${encodeURIComponent(String(t))}`).join(`&`)}`:``,i=await l(`${e}${r}`,{method:t.method??`GET`,body:t.body,headers:n?{authorization:`Bearer ${n}`}:{}});if(i.code!==0||i.data==null)throw Error(i.message??`群聊请求失败`);return i.data}async function y(e,t={}){if(typeof window>`u`||!e)return!1;let n=t.limit??50;d.value[e]=!0;try{let r=await v(`/api/workshop/channels/${e}/chat/messages`,{query:{before:t.before,limit:n}});for(let t of r.messages??[])m(t,e);r.permissions&&(a.value[e]=r.permissions),o.value.add(e);let i=(r.messages?.length??0)>=n;return u.value[e]=i,i}finally{d.value[e]=!1}}async function b(e){if(!(typeof window>`u`||!e))try{let t=await v(`/api/workshop/channels/${e}/members`);n.value[e]=t.members??[],t.permissions&&(a.value[e]=t.permissions)}catch{}}async function x(e){if(typeof window>`u`||!e)return null;try{let t=await v(`/api/workshop/channels/${e}/chat/permissions`);return t.channel&&(r.value[e]=t.channel),a.value[e]=t.permissions,t.permissions}catch{return a.value[e]=null,null}}async function S(e){let t=await v(`/api/workshop/channels/${e.channelId}/chat/messages`,{method:`POST`,body:{text:e.text,mentions:e.mentions??[],replyToId:e.replyToId??null,clientMessageId:e.clientMessageId}});t.message&&m(t.message,e.channelId);for(let n of t.deliveries??[])h({deliveryId:n.deliveryId,chatMessageId:t.message?.id??``,channelId:e.channelId,targetAgentId:n.agentId,mailboxMessageId:null,status:n.status,updatedAt:c()});return t}async function C(e){let t=await v(`/api/workshop/channels/${e}/members/join`,{method:`POST`,body:{}});return t.permissions&&(a.value[e]=t.permissions),await Promise.all([b(e).catch(()=>{}),y(e).catch(()=>{})]),t.status}async function w(e){await v(`/api/workshop/channels/${e}/members/leave`,{method:`POST`,body:{}}),await x(e)}async function T(e,t){await v(`/api/workshop/channels/${e}/members/${encodeURIComponent(t)}`,{method:`DELETE`}),await b(e)}async function E(e,t){await v(`/api/workshop/channels/${e}/members/${encodeURIComponent(t)}/approve`,{method:`POST`,body:{}}),await b(e)}async function D(e,t){let n=r.value[e]?.version,i=await v(`/api/workshop/channels/${e}`,{method:`PATCH`,body:{...t,version:n}}),a=r.value[e];r.value[e]={id:i.id??e,name:i.name??a?.name??``,description:i.description??a?.description??``,visibility:i.visibility??a?.visibility??`private`,joinPolicy:i.joinPolicy??a?.joinPolicy??`owner_approve`,approvalPolicy:i.approvalPolicy??a?.approvalPolicy??`owner_only`,chatEnabled:i.chatEnabled??a?.chatEnabled??0,version:i.version??a?.version??0,legacy:i.ownerUserId===void 0?a?.legacy??!1:i.ownerUserId===null},await x(e)}function O(e){f.value=e}function k(){f.value=null}function A(e){let t=i.value[e];return t?Object.values(t):[]}function j(e,t){return A(e).filter(e=>e.chatMessageId===t)}function M(e){Reflect.deleteProperty(t.value,e),Reflect.deleteProperty(n.value,e),Reflect.deleteProperty(i.value,e),o.value.delete(e)}return{messages:t,members:n,settings:r,deliveries:i,permissions:a,loadedChannels:o,hasMoreHistory:u,loadingHistory:d,replyTarget:f,applyEnvelope:g,applySnapshot:_,loadHistory:y,loadMembers:b,loadPermissions:x,send:S,join:C,leave:w,removeMember:T,approveMember:E,updateSettings:D,setReplyTarget:O,clearReplyTarget:k,deliveriesOf:j,deliveriesOfChannel:A,clear:M}}),q=globalThis;q.__workshopWsHeartbeat??=null,q.__workshopWsHeartbeatUsers??=0,q.__workshopWsNotifHosts??=0,q.__workshopWsNotifSubscribed??=!1;function J(e,t){if(!e.channelId||typeof e.seq!=`number`||e.seq<=0||e.type===`channel.snapshot`)return!1;let n=t.get(e.channelId)??0;return e.seq<=n||(t.set(e.channelId,e.seq),!1)}function Y(){let e=_(),i=s(),c=o(),l=q.__workshopWs??null,u=new Map;if(!l){let t=new v(n=>{let r=F(),i=z(),a=K(),o=H(),s=m();if(!J(n,u)){if(n.channelId&&typeof n.seq==`number`&&n.seq>0&&(e.pendingReplay&&=!1),n.type===`channel.snapshot`&&n.channelId){u.set(n.channelId,typeof n.seq==`number`?n.seq:0),e.pendingReplay=!1,r.ingest(n),i.applyEvent(n),i.applySnapshot(n.payload);let t=n.payload;a.applySnapshot(n.channelId,t.chat??null,t.permissions),r.loadHistory(n.channelId)}else r.ingest(n),i.applyEvent(n),typeof n.type==`string`&&n.type.startsWith(`chat.`)&&a.applyEnvelope(n);(n.type===`hitl.request`||n.type===`hitl.resolved`)&&o.applyEnvelope(n),(n.type===`notification.created`||n.type===`notification.read`)&&s.applyEnvelope(n),n.type===`notification.snapshot`&&(s.applyReplayCursor(n.payload?.nextCursor??null),s.endReplay()),typeof n.seq==`number`&&n.seq>0&&n.channelId&&(e.cursors[n.channelId]=n.seq,t.updateCursor(n.channelId,n.seq)),c.emit(n)}},(t,n)=>{e.state=t,e.retryCount=n,t===`open`&&m().backfill()},()=>{e.pendingReplay=!0},()=>{e.lastDataAt=Date.now();let t=m();q.__workshopWsNotifSubscribed&&f(),t.backfill()});l=t,q.__workshopWs=l}let d=e=>{let t=l?.ws;if(!(!t||t.readyState!==WebSocket.OPEN))try{t.send(JSON.stringify(e))}catch{}},f=()=>{let e=m(),t=e.cursor;e.beginReplay(),d(t?{type:`subNotifications`,cursor:t}:{type:`subNotifications`})};return r(()=>i.token,e=>{let t=m();l instanceof v&&(l.userToken=e),e?((q.__workshopWsNotifHosts??0)>0&&(q.__workshopWsNotifSubscribed=!0,f()),t.loadSnapshot()):(q.__workshopWsNotifSubscribed&&(q.__workshopWsNotifSubscribed=!1,d({type:`unsubNotifications`})),t.clear())},{immediate:!0}),n(()=>{q.__workshopWsHeartbeatUsers=(q.__workshopWsHeartbeatUsers??0)+1,!q.__workshopWsHeartbeat&&(q.__workshopWsHeartbeat=a(()=>{l?.ping(),l?.checkStale()},15e3))}),t(()=>{let e=(q.__workshopWsHeartbeatUsers??1)-1;q.__workshopWsHeartbeatUsers=e>0?e:0,e<=0&&q.__workshopWsHeartbeat&&(clearInterval(q.__workshopWsHeartbeat),q.__workshopWsHeartbeat=null)}),{subscribe:e=>{let t=F().lastSeq(e);l?.subscribe(e,t>0?t:void 0)},unsubscribe:e=>{l&&(l.unsubscribe(e),l.refCount(e)===0&&F().clear(e))},ensureConnected:()=>{l?.ensureConnected()},hostNotifications:()=>{let e=m();q.__workshopWsNotifHosts=(q.__workshopWsNotifHosts??0)+1,!q.__workshopWsNotifSubscribed&&i.token&&(q.__workshopWsNotifSubscribed=!0,f(),e.loadSnapshot());let t=!1;return()=>{if(t)return;t=!0;let e=(q.__workshopWsNotifHosts??1)-1;q.__workshopWsNotifHosts=e>0?e:0,e<=0&&(q.__workshopWsNotifSubscribed=!1,i.token&&d({type:`unsubNotifications`}))}},conn:e}}export{H as a,x as c,K as i,_ as l,U as n,z as o,W as r,F as s,Y as t,m as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as e}from"./CavpkQb0.js";import{t}from"./JgheoP3e.js";import{t as n}from"./Crbir9cT.js";var r=`__deviceTwins`;function i(){let r=[],i=e({twins:r,loaded:!1,error:``,async load(){return i.__loading||=(async()=>{try{let e=await n({base:`/api/workshop/device-twins`,retries:2});i.twins.splice(0,i.twins.length,...e?.twins??[]),i.loaded=!0,i.error=``}catch(e){i.loaded=!1,i.error=t(e)}finally{i.__loading=null}})(),i.__loading},applyRemote(e){let t=i.twins.findIndex(t=>t.id===e.id);t>=0?Object.assign(i.twins[t],e):i.twins.push({...e})},removeRemote(e){let t=i.twins.findIndex(t=>t.id===e);t>=0&&i.twins.splice(t,1)},byId(e){return r.find(t=>t.id===e)},async create(e){let t=await n({base:`/api/workshop/device-twins`,init:{method:`POST`,body:JSON.stringify(e)}});return i.loaded=!1,await i.load(),t.twin},async update(e,t){let r=await n({base:`/api/workshop/device-twins/${e}`,init:{method:`PATCH`,body:JSON.stringify(t)}});return i.loaded=!1,await i.load(),r.twin},async control(e,t,r){let a=await n({base:`/api/workshop/device-twins/${e}/control`,init:{method:`POST`,body:JSON.stringify({command:t,args:r??{}})}});return i.loaded=!1,await i.load(),a.twin},async pushTelemetry(e,t){let r=await n({base:`/api/workshop/device-twins/${e}/telemetry`,init:{method:`POST`,body:JSON.stringify({telemetry:t})}});return i.loaded=!1,await i.load(),r.twin},async remove(e){await n({base:`/api/workshop/device-twins/${e}`,init:{method:`DELETE`}}),i.loaded=!1,await i.load()}});return i}function a(){let e=globalThis;e[r]||(e[r]=i());let t=e[r];return t.load(),t}export{a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{N as e,dt as t,ft as n,g as r,mt as i,u as a}from"./CavpkQb0.js";import{Q as o,S as s,V as c,W as l,b as u,f as d,h as f,i as p,k as m,m as h,nt as g,p as _,rt as v,y}from"./ByMj6e7s.js";import{c as b,d as x,o as S,s as C}from"./Dqz5HiXa.js";import{t as ee}from"./Cmp8PMrA.js";import{n as w}from"./Cnrmlixo.js";import{t as T}from"./DzBbYWrw2.js";import{t as E}from"./BDNMzG2s2.js";import{t as D}from"./Bfe2qOYs.js";import{r as te}from"./Du9v6qGB2.js";import{i as O,r as k,t as A}from"./DsGf2IV82.js";import{t as j}from"./UN3nSFjj2.js";import{t as ne}from"./BDmNbZ252.js";import{t as re}from"./2_DkYoqD2.js";import{t as ie}from"./Chphw5IA2.js";import{t as ae}from"./9zrLAN2o2.js";import{t as oe}from"./H2rNs1O82.js";import{t as se}from"./BdM_Qr752.js";import{t as ce}from"./zsRclU9w2.js";var le={class:`aw-page-head`},ue={class:`aw-kicker`},de={class:`sub`},fe={class:`badges mono`},pe={class:`badge`},me={class:`badge`},he={class:`badge`},ge=Object.assign(E(s({__name:`DcwDetailHead`,props:{line:{},lineId:{},nodesCount:{},productsCount:{},recipesCount:{}},setup(e){return(t,r)=>(c(),f(`div`,le,[d(`div`,null,[d(`p`,ue,[d(`span`,{class:`line-chip`,style:n({background:e.line?.color??`#3aa0ff`})},null,4),y(`AGENTWORKSHOP / LINE / `+i(e.line?.name??e.lineId),1)]),d(`h1`,null,i(e.line?.name??t.$t(`dcwDetail.k1b2snna151`))+` · `+i(t.$t(`dcwDetail.k1l0iow1137`)),1),d(`p`,de,i(e.line?.description||t.$t(`dcwDetail.kzcbfki152`)),1)]),d(`div`,fe,[d(`span`,pe,i(t.$t(`dcwDetail.k45uio082`))+` `+i(e.nodesCount),1),d(`span`,me,i(t.$t(`dcwDetail.k3waz1025`))+` `+i(e.productsCount),1),d(`span`,he,i(t.$t(`dcwDetail.k48grv027`))+` `+i(e.recipesCount),1)])]))}}),[[`__scopeId`,`data-v-2c59e7e0`]]),{__name:`DcwDetailHead`}),_e={class:`aw-tile ctrl-card`},ve={class:`ctrl-left`},ye=[`title`],be={class:`ctrl-right`},xe={class:`ctrl-metrics mono`},Se=[`title`],Ce=[`title`],we=[`title`],Te=Object.assign(E(s({__name:`DcwGatewayBar`,props:{running:{type:Boolean},nodesOnline:{},nodesTotal:{},writesTotal:{},writesFailed:{}},emits:[`toggle`,`open-templates`,`open-add`],setup(e,{emit:n}){let r=n;return(n,a)=>(c(),f(`section`,_e,[d(`div`,ve,[d(`button`,{class:t([`aw-pill`,{running:e.running}]),title:n.$t(`dcwDetail.k1snap154`),onClick:a[0]||=t=>r(`toggle`,e.running?`pause`:`resume`)},[d(`span`,{class:t(e.running?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),y(` `+i(e.running?n.$t(`dcwDetail.kplrsg153`):n.$t(`dcwDetail.knxgni9169`)),1)],10,ye)]),d(`div`,be,[d(`span`,xe,[d(`span`,null,i(n.$t(`dcwDetail.k45uio082`))+` `+i(e.nodesOnline)+`/`+i(e.nodesTotal),1),a[3]||=d(`span`,{class:`sep`},`·`,-1),d(`span`,{title:n.$t(`dcwDetail.kd3ygmn001`)},i(n.$t(`dcwDetail.k3wtib138`))+` `+i(e.writesTotal),9,Se),a[4]||=d(`span`,{class:`sep`},`·`,-1),d(`span`,{class:t({warn:e.writesFailed>0}),title:n.$t(`dcwDetail.kd3znl0002`)},i(n.$t(`dcwDetail.k3yit7139`))+` `+i(e.writesFailed),11,Ce)]),d(`button`,{class:`aw-pill outline`,title:n.$t(`dcwDetail.kc4ixly003`),onClick:a[1]||=e=>r(`open-templates`)},[a[5]||=d(`span`,{class:`i-tabler-template`},null,-1),y(` `+i(n.$t(`dcwDetail.k1972dx9020`)),1)],8,we),d(`button`,{class:`aw-pill add-btn`,onClick:a[2]||=e=>r(`open-add`)},[a[6]||=d(`span`,{class:`i-tabler-plus`},null,-1),y(` `+i(n.$t(`dcwDetail.k1976uns021`)),1)])])]))}}),[[`__scopeId`,`data-v-e18f9fc9`]]),{__name:`DcwGatewayBar`}),M={key:0,class:`aw-tile adopt-card`},Ee={class:`adopt-title`},N={class:`adopt-list`},De=[`onClick`],Oe=[`onClick`],ke=Object.assign(E(s({__name:`DcwAdoptCard`,props:{unassignedNodes:{},unassignedProducts:{}},emits:[`adopt-node`,`adopt-product`],setup(e,{emit:t}){let n=t;return(t,r)=>e.unassignedNodes.length||e.unassignedProducts.length?(c(),f(`section`,M,[d(`b`,Ee,i(t.$t(`dcwDetail.kaebkky022`)),1),d(`div`,N,[(c(!0),f(p,null,l(e.unassignedNodes,e=>(c(),f(`span`,{key:e.id,class:`adopt-chip`},[y(i(e.name)+` `,1),d(`button`,{class:`mini-btn`,onClick:t=>n(`adopt-node`,e.id)},i(t.$t(`dcwDetail.kyjp9fg023`)),9,De)]))),128)),(c(!0),f(p,null,l(e.unassignedProducts,e=>(c(),f(`span`,{key:e.id,class:`adopt-chip`},[y(i(e.name)+`(`+i(t.$t(`dcwDetail.k3km252140`)),1),d(`button`,{class:`mini-btn`,onClick:t=>n(`adopt-product`,e.id)},i(t.$t(`dcwDetail.kyjp9fg023`)),9,Oe)]))),128))])])):h(``,!0)}}),[[`__scopeId`,`data-v-6ad055a2`]]),{__name:`DcwAdoptCard`}),Ae={class:`aw-tile line-card`},je={class:`line-status`},Me={class:`line-info`},Ne={key:0,class:`mono dim`},Pe={key:1,class:`dim`},Fe={class:`line-ctl`},P={class:`ctl-sel`},Ie={value:``},Le=[`value`],Re={class:`ctl-sel`},F=[`disabled`],I={value:``},ze=[`value`,`disabled`],Be=[`disabled`,`title`],Ve=[`disabled`],He={key:0,class:`banner bad`,style:{"margin-top":`10px`}},Ue={key:1,class:`banner good`,style:{"margin-top":`10px`}},We=Object.assign(E(s({__name:`DcwLineRunCard`,props:m({ls:{},lineProducts:{},lineRecipes:{},lineBusy:{type:Boolean},lineMsg:{},lineErr:{}},{productId:{required:!0},productIdModifiers:{},recipeId:{required:!0},recipeIdModifiers:{}}),emits:m([`start`,`stop`],[`update:productId`,`update:recipeId`]),setup(e,{emit:n}){let r=n,a=o(e,`productId`),s=o(e,`recipeId`);return(n,o)=>(c(),f(`section`,Ae,[d(`div`,je,[d(`span`,{class:t([`line-dot`,{on:e.ls.active}])},null,2),d(`div`,Me,[d(`b`,null,i(e.ls.active?n.$t(`dcwDetail.k1pxrhx0154`):n.$t(`dcwDetail.k1b2hxmx170`)),1),e.ls.active?(c(),f(`small`,Ne,i(e.ls.productName)+` · `+i(e.ls.recipeName)+` · `+i(n.$t(`dcwDetail.k400lb075`))+` `+i(e.ls.runId)+` · `+i(n.$t(`dcwDetail.k3zkt2166`))+` `+i(e.ls.startedAt?.slice(11,19))+` `+i(n.$t(`dcwDetail.k69vag8168`))+` `+i(e.ls.taggedSamples)+` `+i(n.$t(`dcwDetail.k4118o085`)),1)):(c(),f(`small`,Pe,i(n.$t(`dcwDetail.k19pof14024`)),1))])]),d(`div`,Fe,[d(`label`,P,[d(`span`,null,i(n.$t(`dcwDetail.k3waz1025`)),1),v(d(`select`,{"onUpdate:modelValue":o[0]||=e=>a.value=e,class:`inp`,onChange:o[1]||=e=>s.value=``},[d(`option`,Ie,i(n.$t(`dcwDetail.kuisodh026`)),1),(c(!0),f(p,null,l(e.lineProducts,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name),9,Le))),128))],544),[[C,a.value]])]),d(`label`,Re,[d(`span`,null,i(n.$t(`dcwDetail.k48grv027`)),1),v(d(`select`,{"onUpdate:modelValue":o[2]||=e=>s.value=e,class:`inp`,disabled:!a.value},[d(`option`,I,i(n.$t(`dcwDetail.kutxzsz028`)),1),(c(!0),f(p,null,l(e.lineRecipes,e=>(c(),f(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},i(e.name)+i(e.params.length===0?n.$t(`dcwDetail.k1hicmch155`):n.$t(`dcwDetail.k1lzfi4g180`,{p0:e.params.length})),9,ze))),128))],8,F),[[C,s.value]])]),e.ls.active?(c(),f(`button`,{key:1,class:`pill-btn stop`,disabled:e.lineBusy,onClick:o[4]||=e=>r(`stop`)},i(n.$t(`dcwDetail.k1xyhd2y030`)),9,Ve)):(c(),f(`button`,{key:0,class:`pill-btn`,disabled:e.lineBusy||!s.value,title:s.value?n.$t(`dcwDetail.startTip`):n.$t(`dcwDetail.startNeedRecipe`),onClick:o[3]||=e=>r(`start`)},i(n.$t(`dcwDetail.kfb8vml029`)),9,Be))]),e.lineErr?(c(),f(`p`,He,i(e.lineErr),1)):h(``,!0),e.lineMsg?(c(),f(`p`,Ue,i(e.lineMsg),1)):h(``,!0)]))}}),[[`__scopeId`,`data-v-7ef9dbe9`]]),{__name:`DcwLineRunCard`}),Ge={class:`modal`},L={class:`m-title`},Ke={class:`dim mono`},R={class:`dim tpl-hint`},qe={class:`tpl-chips`},Je=[`title`],z={class:`mono`},Ye={class:`sec-label`},B={class:`f-grid tpl-form`},Xe={class:`f`},Ze=[`placeholder`],Qe={class:`f`},$e=[`placeholder`],et={class:`f`},V=[`placeholder`],tt={class:`f`},nt=[`placeholder`],rt={class:`f`},it=[`placeholder`],H={class:`f`},at=[`placeholder`],ot={class:`f`},st={class:`f`},ct=[`value`],lt={class:`f`},ut=[`placeholder`],dt={key:0,class:`banner good`,style:{"margin-top":`10px`}},ft={key:1,class:`m-err`},pt={class:`m-actions`},U=[`disabled`],mt=Object.assign(E(s({__name:`DcwDetailTemplateModal`,props:m({templates:{},tplIcons:{},builtinCount:{},customCount:{},tplSaving:{type:Boolean},tplError:{},tplOk:{}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:m([`submit`,`close`],[`update:open`,`update:form`]),setup(n,{emit:r}){let a=r,{t:s}=w(),u=o(n,`open`),m=o(n,`form`);return(r,o)=>u.value?(c(),f(`div`,{key:0,class:`modal-mask`,onClick:o[11]||=x(e=>u.value=!1,[`self`])},[d(`div`,Ge,[d(`h3`,L,[y(i(r.$t(`dcwDetail.k1x4vam0031`))+` `,1),d(`small`,Ke,i(r.$t(`dcwDetail.k3x23c141`))+` `+i(n.builtinCount)+` · `+i(r.$t(`dcwDetail.k3t616a142`))+` `+i(n.customCount),1)]),d(`p`,R,i(r.$t(`dcwDetail.ke1iyud032`)),1),d(`div`,qe,[(c(!0),f(p,null,l(n.templates,n=>(c(),f(`span`,{key:n.key,class:`tpl-chip`,title:`${n.code} · ${n.min}~${n.max} ${n.unit}${n.semantics?` · ${n.semantics}`:``}`},[y(i((`catalogTplName`in r?r.catalogTplName:e(te))(e(s),n))+` `,1),d(`small`,z,i(n.min)+`~`+i(n.max)+i(n.unit),1),d(`em`,{class:t([`tpl-tag`,{builtin:n.builtin}])},i(n.builtin?r.$t(`dcwDetail.k3x23c141`):r.$t(`dcwDetail.k3t616a142`)),3)],8,Je))),128))]),d(`p`,Ye,i(r.$t(`dcwDetail.k169eb4s033`)),1),d(`div`,B,[d(`label`,Xe,[d(`span`,null,[y(i(r.$t(`dcwDetail.k1f55q76034`)),1),o[12]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":o[0]||=e=>m.value.name=e,class:`inp`,placeholder:r.$t(`dcwDetail.k1tooi3o004`)},null,8,Ze),[[b,m.value.name]])]),d(`label`,Qe,[d(`span`,null,i(r.$t(`dcwDetail.k1bqk219035`)),1),v(d(`input`,{"onUpdate:modelValue":o[1]||=e=>m.value.ch=e,class:`inp`,placeholder:r.$t(`dcwDetail.k698qz0005`)},null,8,$e),[[b,m.value.ch]])]),d(`label`,et,[d(`span`,null,i(r.$t(`dcwDetail.k1ayxrqb036`)),1),v(d(`input`,{"onUpdate:modelValue":o[2]||=e=>m.value.code=e,class:`inp`,placeholder:r.$t(`dcwDetail.codePh`)},null,8,V),[[b,m.value.code]])]),d(`label`,tt,[d(`span`,null,[y(i(r.$t(`dcwDetail.k3x4ef037`)),1),o[13]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":o[3]||=e=>m.value.unit=e,class:`inp`,placeholder:r.$t(`dcwDetail.unitPh`)},null,8,nt),[[b,m.value.unit]])]),d(`label`,rt,[d(`span`,null,[y(i(r.$t(`dcwDetail.k1l9jv5m038`)),1),o[14]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":o[4]||=e=>m.value.min=e,type:`number`,class:`inp`,placeholder:r.$t(`dcwDetail.kxz9174006`)},null,8,it),[[b,m.value.min,void 0,{number:!0}]])]),d(`label`,H,[d(`span`,null,[y(i(r.$t(`dcwDetail.k1l9jv4p039`)),1),o[15]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":o[5]||=e=>m.value.max=e,type:`number`,class:`inp`,placeholder:r.$t(`dcwDetail.kxz9167007`)},null,8,at),[[b,m.value.max,void 0,{number:!0}]])]),d(`label`,ot,[d(`span`,null,i(r.$t(`dcwDetail.k3mxmcx040`)),1),v(d(`input`,{"onUpdate:modelValue":o[6]||=e=>m.value.decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[b,m.value.decimals,void 0,{number:!0}]])]),d(`label`,st,[d(`span`,null,i(r.$t(`dcwDetail.k3xx56041`)),1),v(d(`select`,{"onUpdate:modelValue":o[7]||=e=>m.value.icon=e,class:`inp`},[(c(!0),f(p,null,l(n.tplIcons,e=>(c(),f(`option`,{key:e.key,value:e.key},i(e.label),9,ct))),128))],512),[[C,m.value.icon]])])]),d(`label`,lt,[d(`span`,null,i(r.$t(`dcwDetail.knjmyfr042`)),1),v(d(`textarea`,{"onUpdate:modelValue":o[8]||=e=>m.value.semantics=e,class:`inp`,rows:`2`,placeholder:r.$t(`dcwDetail.k1qdnfzc008`)},null,8,ut),[[b,m.value.semantics]])]),n.tplOk?(c(),f(`p`,dt,i(n.tplOk),1)):h(``,!0),n.tplError?(c(),f(`p`,ft,i(n.tplError),1)):h(``,!0),d(`div`,pt,[d(`button`,{class:`aw-pill outline`,onClick:o[9]||=e=>u.value=!1},i(r.$t(`dcwDetail.k3x62t043`)),1),d(`button`,{class:`pill-btn`,disabled:n.tplSaving||!m.value.name.trim()||m.value.unit.trim()===``||m.value.min===``||m.value.max===``,onClick:o[10]||=e=>a(`submit`)},i(n.tplSaving?r.$t(`dcwDetail.k1bg4759156`):r.$t(`dcwDetail.k1bg9nga171`)),9,U)])])])):h(``,!0)}}),[[`__scopeId`,`data-v-f19aa086`]]),{__name:`DcwDetailTemplateModal`}),ht={class:`modal`},gt={class:`m-title`},_t={class:`seg-row`},vt={class:`f-grid`},yt={class:`f`},W=[`value`],G={class:`f`},K=[`placeholder`],q={class:`f`},J=[`placeholder`],Y={class:`f`},X=[`placeholder`],Z={class:`f`},bt=[`placeholder`],xt={class:`f`},St={class:`f-grid cal-form`},Ct={class:`f`},wt={value:`none`},Tt={value:`linear`},Et={class:`f`},Dt={style:{display:`flex`,gap:`6px`}},Ot=[`disabled`,`title`],kt=[`disabled`,`title`],At={class:`f-grid`},jt={class:`f`},Q=[`value`],Mt={key:0,class:`f-grid driver-form`},Nt={key:0,style:{color:`var(--tone-danger-dot)`,"font-style":`normal`}},Pt=[`onUpdate:modelValue`],$=[`value`],Ft=[`onUpdate:modelValue`,`type`,`placeholder`],It={key:2,class:`hint`},Lt={class:`test-row`},Rt=[`disabled`],zt={class:`f`},Bt=[`placeholder`],Vt={key:1,class:`m-err`},Ht={class:`m-actions`},Ut=[`disabled`],Wt=Object.assign(E(s({__name:`DcwAddNodeModal`,props:m({templates:{},driverCatalog:{},addFields:{},addTesting:{type:Boolean},addTest:{},addSaving:{type:Boolean},addError:{}},{open:{type:Boolean,required:!0},openModifiers:{},scenario:{required:!0},scenarioModifiers:{},template:{required:!0},templateModifiers:{},driver:{required:!0},driverModifiers:{},name:{required:!0},nameModifiers:{},hold:{required:!0},holdModifiers:{},read:{required:!0},readModifiers:{},writeLock:{required:!0},writeLockModifiers:{},stepLimit:{required:!0},stepLimitModifiers:{},cfg:{required:!0},cfgModifiers:{},transform:{required:!0},transformModifiers:{},semantics:{required:!0},semanticsModifiers:{}}),emits:m([`test`,`submit`],[`update:open`,`update:scenario`,`update:template`,`update:driver`,`update:name`,`update:hold`,`update:read`,`update:writeLock`,`update:stepLimit`,`update:cfg`,`update:transform`,`update:semantics`]),setup(n,{emit:r}){let a=r,{t:s}=w(),u=o(n,`open`),m=o(n,`scenario`),g=o(n,`template`),_=o(n,`driver`),ee=o(n,`name`),T=o(n,`hold`),E=o(n,`read`),D=o(n,`writeLock`),O=o(n,`stepLimit`),k=o(n,`cfg`),A=o(n,`transform`),j=o(n,`semantics`);return(r,o)=>u.value?(c(),f(`div`,{key:0,class:`modal-mask`,onClick:o[16]||=x(e=>u.value=!1,[`self`])},[d(`div`,ht,[d(`h3`,gt,i(r.$t(`dcwDetail.k1976uns021`)),1),d(`div`,_t,[d(`button`,{class:t([`seg`,{on:m.value===`mock`}]),onClick:o[0]||=e=>m.value=`mock`},i(r.$t(`dcwDetail.mockPlc`)),3),d(`button`,{class:t([`seg`,{on:m.value===`real`}]),onClick:o[1]||=e=>m.value=`real`},i(r.$t(`dcwDetail.kyj8fen044`)),3)]),d(`div`,vt,[d(`label`,yt,[d(`span`,null,i(r.$t(`dcwDetail.k1ejzwqp045`)),1),v(d(`select`,{"onUpdate:modelValue":o[2]||=e=>g.value=e,class:`inp`},[(c(!0),f(p,null,l(n.templates,t=>(c(),f(`option`,{key:t.key,value:t.key},i((`catalogTplName`in r?r.catalogTplName:e(te))(e(s),t))+` · `+i(t.ch)+`(`+i(t.min)+`~`+i(t.max)+` `+i(t.unit)+`)`+i(t.builtin?``:r.$t(`dcwDetail.kr45rk9157`)),9,W))),128))],512),[[C,g.value]])]),d(`label`,G,[d(`span`,null,i(r.$t(`dcwDetail.k1ce2k1y046`)),1),v(d(`input`,{"onUpdate:modelValue":o[3]||=e=>ee.value=e,class:`inp`,placeholder:r.$t(`dcwDetail.kgpxzy3009`)},null,8,K),[[b,ee.value]])]),d(`label`,q,[d(`span`,null,i(r.$t(`dcwDetail.k1vyb8im047`)),1),v(d(`input`,{"onUpdate:modelValue":o[4]||=e=>T.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:r.$t(`dcwDetail.kb1srz0010`)},null,8,J),[[b,T.value,void 0,{number:!0}]])]),d(`label`,Y,[d(`span`,null,i(r.$t(`dcwDetail.k9r7d4e016`)),1),v(d(`input`,{"onUpdate:modelValue":o[5]||=e=>E.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:r.$t(`dcwDetail.k9r7d4e017`)},null,8,X),[[b,E.value,void 0,{number:!0}]])]),d(`label`,Z,[d(`span`,null,i(r.$t(`dcwDetail.writeLockLabel`)),1),v(d(`input`,{"onUpdate:modelValue":o[6]||=e=>D.value=e,type:`number`,min:`0`,max:`3600`,step:`1`,class:`inp`,placeholder:r.$t(`dcwDetail.writeLockHint`)},null,8,bt),[[b,D.value,void 0,{number:!0}]])]),d(`label`,xt,[o[17]||=d(`span`,null,[y(`探索阶段单步上限 `),d(`em`,null,`(工程量)`)],-1),v(d(`input`,{"onUpdate:modelValue":o[7]||=e=>O.value=e,type:`number`,min:`0`,step:`any`,class:`inp`,placeholder:`留空:按节点量程 2% 默认值`},null,512),[[b,O.value,void 0,{number:!0}]]),o[18]||=d(`small`,{class:`field-hint`},`Agent 每次写入的最大变化量;无有限值时探索写入会被拒绝。`,-1)])]),d(`div`,St,[d(`label`,Ct,[d(`span`,null,i(r.$t(`dcwDetail.kiune1f048`)),1),v(d(`select`,{"onUpdate:modelValue":o[8]||=e=>A.value.kind=e,class:`inp`},[d(`option`,wt,i(r.$t(`dcwDetail.kkzy0k049`)),1),d(`option`,Tt,i(r.$t(`dcwDetail.linearCalOpt`)),1)],512),[[C,A.value.kind]])]),d(`label`,Et,[o[19]||=d(`span`,null,`scale / offset`,-1),d(`div`,Dt,[v(d(`input`,{"onUpdate:modelValue":o[9]||=e=>A.value.scale=e,type:`number`,step:`0.1`,class:`inp`,disabled:A.value.kind!==`linear`,title:r.$t(`dcwDetail.calScaleTip`)},null,8,Ot),[[b,A.value.scale,void 0,{number:!0}]]),v(d(`input`,{"onUpdate:modelValue":o[10]||=e=>A.value.offset=e,type:`number`,step:`0.1`,class:`inp`,disabled:A.value.kind!==`linear`,title:r.$t(`dcwDetail.calOffsetTip`)},null,8,kt),[[b,A.value.offset,void 0,{number:!0}]])])])]),m.value===`real`?(c(),f(p,{key:0},[d(`div`,At,[d(`label`,jt,[d(`span`,null,i(r.$t(`dcwDetail.k1kt87rx050`)),1),v(d(`select`,{"onUpdate:modelValue":o[11]||=e=>_.value=e,class:`inp`},[(c(!0),f(p,null,l(n.driverCatalog.filter(e=>e.status!==`builtin`),e=>(c(),f(`option`,{key:e.kind,value:e.kind},i(e.label)+i(e.plugin?` ⌁`:``),9,Q))),128))],512),[[C,_.value]])])]),n.addFields.length?(c(),f(`div`,Mt,[(c(!0),f(p,null,l(n.addFields,e=>(c(),f(`label`,{key:e.key,class:`f`},[d(`span`,null,[y(i(e.label),1),e.required?(c(),f(`em`,Nt,`*`)):h(``,!0)]),e.type===`select`?v((c(),f(`select`,{key:0,"onUpdate:modelValue":t=>k.value[e.key]=t,class:`inp`},[(c(!0),f(p,null,l(e.options,e=>(c(),f(`option`,{key:e.value,value:e.value},i(e.label),9,$))),128))],8,Pt)),[[C,k.value[e.key]]]):v((c(),f(`input`,{key:1,"onUpdate:modelValue":t=>k.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`inp`},null,8,Ft)),[[S,k.value[e.key]]]),e.hint?(c(),f(`small`,It,i(e.hint),1)):h(``,!0)]))),128))])):h(``,!0),d(`div`,Lt,[d(`button`,{class:`pill-btn outline`,disabled:n.addTesting,onClick:o[12]||=e=>a(`test`)},i(n.addTesting?r.$t(`dcwDetail.k1fsh720158`):r.$t(`dcwDetail.k1fstglk172`)),9,Rt),n.addTest?(c(),f(`span`,{key:0,class:t([`test-result`,n.addTest.ok?`good`:`bad`])},i(n.addTest.ok?`✓`:`✗`)+` `+i(n.addTest.message),3)):h(``,!0)])],64)):h(``,!0),d(`label`,zt,[d(`span`,null,i(r.$t(`dcwDetail.k1hgizn7051`)),1),v(d(`textarea`,{"onUpdate:modelValue":o[13]||=e=>j.value=e,class:`inp`,rows:`2`,placeholder:r.$t(`dcwDetail.k12bnyt9011`)},null,8,Bt),[[b,j.value]])]),n.addError?(c(),f(`p`,Vt,i(n.addError),1)):h(``,!0),d(`div`,Ht,[d(`button`,{class:`aw-pill outline`,onClick:o[14]||=e=>u.value=!1},i(r.$t(`dcwDetail.k3xdnn052`)),1),d(`button`,{class:`aw-pill`,disabled:n.addSaving,onClick:o[15]||=e=>a(`submit`)},i(n.addSaving?r.$t(`dcwDetail.k1bg4759156`):r.$t(`dcwDetail.k1bge46t173`)),9,Ut)])])])):h(``,!0)}}),[[`__scopeId`,`data-v-5f50614a`]]),{__name:`DcwAddNodeModal`}),Gt={class:`aw-tile table-card`},Kt={class:`nodes-table`},qt={class:`right`},Jt={class:`mono dim`},Yt={class:`mono ch`},Xt=[`disabled`,`title`,`onClick`],Zt={key:0,class:`st-pill paused`},Qt={class:`mono val`},$t={key:0,class:`dim`},en={class:`mono val`},tn=[`title`],nn={key:0,class:`dim`},rn=[`disabled`,`title`,`onClick`],an={class:`write-row`},on=[`onUpdate:modelValue`,`placeholder`,`min`,`max`,`step`,`disabled`,`title`],sn=[`disabled`,`title`,`onClick`],cn={class:`mono dim`},ln={class:`mono`},un=[`title`],dn=[`title`],fn={class:`step-limit-cell`},pn=[`value`,`onInput`],mn=[`disabled`,`onClick`],hn={class:`dim`},gn={class:`right`},_n=[`onClick`],vn={key:0},yn={colspan:`10`},bn={class:`pane-empty`,style:{"min-height":`120px`}},xn={class:`pe-sub`},Sn=Object.assign(E(s({__name:`DcwNodesTable`,props:m({lineNodes:{},stateLabel:{},togglingId:{},readingId:{},writingId:{},stepPatchingId:{},loaded:{type:Boolean},error:{},dcwTemplateRefCh:{type:Function},nodeDeviceNames:{type:Function}},{setInputs:{required:!0},setInputsModifiers:{}}),emits:m([`toggle`,`read`,`write`,`patch-step-limit`,`remove`],[`update:setInputs`]),setup(e,{emit:n}){let a=n,s=o(e,`setInputs`),u=r({});function m(e){return u[e.id]??e.stepLimit}function x(e){let t=u[e.id]===void 0?e.stepLimit:u[e.id];a(`patch-step-limit`,e.id,t===``||t==null?null:Number(t))}return(n,r)=>{let o=T;return c(),_(o,{spinning:!e.loaded&&!e.error},{default:g(()=>[d(`section`,Gt,[d(`table`,Kt,[d(`thead`,null,[d(`tr`,null,[d(`th`,null,i(n.$t(`dcwDetail.k1e2dtkt053`)),1),d(`th`,null,i(n.$t(`dcwDetail.k403cy054`)),1),d(`th`,null,i(n.$t(`dcwDetail.k42w8s055`)),1),d(`th`,null,i(n.$t(`dcwDetail.k1deqh0d056`)),1),d(`th`,null,i(n.$t(`dcwDetail.k9r7d4e018`)),1),d(`th`,null,i(n.$t(`dcwDetail.k1k79ec9057`)),1),d(`th`,null,i(n.$t(`dcwDetail.k1dexou6058`)),1),d(`th`,null,i(n.$t(`dcwDetail.k1b1nnaa059`)),1),d(`th`,null,i(n.$t(`dcwDetail.k1i8rtqt060`)),1),r[0]||=d(`th`,null,`探索步长`,-1),d(`th`,qt,i(n.$t(`dcwDetail.k40aa6061`)),1)])]),d(`tbody`,null,[(c(!0),f(p,null,l(e.lineNodes,o=>(c(),f(`tr`,{key:o.id,class:t({"node-paused":!o.enabled})},[d(`td`,null,[d(`span`,Jt,i(o.id.slice(0,8)),1),d(`b`,null,i(o.name),1),d(`small`,Yt,i(e.dcwTemplateRefCh(o.templateRef)),1)]),d(`td`,null,[d(`button`,{class:t([`ctrl-toggle`,{on:o.enabled}]),disabled:e.togglingId===o.id,title:o.enabled?n.$t(`dcwDetail.pauseCtrlTip`):n.$t(`dcwDetail.enableCtrlTip`),onClick:e=>a(`toggle`,o.id,!o.enabled)},[r[1]||=d(`span`,{class:`ct-dot`},null,-1),y(` `+i(o.enabled?n.$t(`dcwDetail.k3o3ib3159`):n.$t(`dcwDetail.k3n93ed062`)),1)],10,Xt)]),d(`td`,null,[o.enabled?(c(),f(`span`,{key:1,class:t([`st-pill`,o.state])},i(e.stateLabel[o.state]??o.state),3)):(c(),f(`span`,Zt,i(n.$t(`dcwDetail.k3n93ed062`)),1))]),d(`td`,Qt,[y(i(o.value==null?`--`:o.value.toFixed(o.decimals))+` `,1),d(`small`,null,i(o.unit),1),o.lastAckAt?(c(),f(`small`,$t,` · `+i(o.lastAckAt.slice(11,19)),1)):h(``,!0)]),d(`td`,en,[d(`span`,{title:o.lastReadError??n.$t(`dcwDetail.k9r7d4e019`),class:t({"read-stale":o.lastReadError})},i(o.readValue==null?`--`:o.readValue.toFixed(o.decimals)),11,tn),d(`small`,null,i(o.unit),1),o.lastReadAt?(c(),f(`small`,nn,` · `+i(o.lastReadAt.slice(11,19)),1)):h(``,!0),d(`button`,{class:`mini-btn read-btn`,disabled:e.readingId===o.id,title:n.$t(`dcwDetail.k9r7d4e020`),onClick:e=>a(`read`,o.id)},i(e.readingId===o.id?`···`:n.$t(`dcwDetail.k9r7d4e021`)),9,rn)]),d(`td`,null,[d(`div`,an,[v(d(`input`,{"onUpdate:modelValue":e=>s.value[o.id]=e,type:`number`,class:`inp write-inp mono`,placeholder:`${o.min}~${o.max}`,min:o.min,max:o.max,step:10**-o.decimals,disabled:!o.enabled,title:o.enabled?``:n.$t(`dcwDetail.pausedTip`)},null,8,on),[[b,s.value[o.id],void 0,{number:!0}]]),d(`button`,{class:`mini-btn write-btn`,disabled:!o.enabled||e.writingId===o.id||s.value[o.id]==null||s.value[o.id]===``,title:o.enabled?n.$t(`dcwDetail.writeTip`):n.$t(`dcwDetail.pausedTip`),onClick:e=>a(`write`,o.id,Number(s.value[o.id]))},i(e.writingId===o.id?n.$t(`dcwDetail.k3l3h80123`):n.$t(`dcwDetail.k3w6td174`)),9,sn)])]),d(`td`,cn,i(o.min)+` ~ `+i(o.max)+` `+i(o.unit),1),d(`td`,ln,[y(i(o.holdIntervalMs==null?n.$t(`dcwDetail.k3zul4160`):`${o.holdIntervalMs}ms`)+` `,1),d(`small`,{class:`dim`,title:n.$t(`dcwDetail.k9r7d4e016`)},`· `+i(o.readIntervalMs===0?n.$t(`dcwDetail.k9r7d4e022`):o.readIntervalMs==null?n.$t(`dcwDetail.k9r7d4e023`):`${o.readIntervalMs}ms`),9,un),d(`small`,{class:`dim`,title:n.$t(`dcwDetail.writeLockHint`)},`· `+i(o.writeLockSeconds===0?`0s`:`${o.writeLockSeconds}s`),9,dn)]),d(`td`,null,i(e.nodeDeviceNames(o)),1),d(`td`,null,[d(`div`,fn,[d(`input`,{value:m(o)??``,type:`number`,min:`0`,step:`any`,class:`inp step-inp mono`,placeholder:`2% default`,title:`在线控制单步最大变化量;留空将关闭探索写入`,onInput:e=>u[o.id]=e.target.value===``?``:Number(e.target.value)},null,40,pn),d(`button`,{class:`mini-btn step-btn`,disabled:e.stepPatchingId===o.id,onClick:e=>x(o)},i(e.stepPatchingId===o.id?`…`:`保存`),9,mn)]),d(`small`,hn,`当前 Δ≤`+i(o.stepLimit??`未配置`)+` `+i(o.unit),1)]),d(`td`,gn,[d(`button`,{class:`mini-btn danger`,onClick:e=>a(`remove`,o.id)},i(n.$t(`dcwDetail.k3xakp063`)),9,_n)])],2))),128)),e.loaded&&e.lineNodes.length===0?(c(),f(`tr`,vn,[d(`td`,yn,[d(`div`,bn,[d(`p`,xn,i(n.$t(`dcwDetail.k1wtecyw064`)),1)])])])):h(``,!0)])])])]),_:1},8,[`spinning`])}}}),[[`__scopeId`,`data-v-210b303d`]]),{__name:`DcwNodesTable`}),Cn={class:`modal`},wn={class:`m-title`},Tn={class:`sec-label`},En={class:`nodes-table`},Dn={class:`mono dim`},On={class:`mono`},kn={class:`mono`},An={class:`mono dim`},jn={class:`mono dim`},Mn={key:0},Nn={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},Pn={class:`sec-label`},Fn={class:`nodes-table`},In={class:`mono`},Ln={class:`mono dim`},Rn={class:`mono dim`},zn={key:0},Bn={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},Vn={class:`m-actions`},Hn=Object.assign(E(s({__name:`DcwRunDataModal`,props:{runDataView:{}},emits:[`close`],setup(e,{emit:n}){let r=n;return(n,a)=>e.runDataView?(c(),f(`div`,{key:0,class:`modal-mask`,onClick:a[1]||=x(e=>r(`close`),[`self`])},[d(`div`,Cn,[d(`h3`,wn,i(n.$t(`dcwDetail.k11lq94k145`))+` `+i(e.runDataView.data.run.recipeName)+`(`+i(e.runDataView.runId)+`) `,1),d(`p`,Tn,i(n.$t(`dcwDetail.k1me41w8080`)),1),d(`table`,En,[d(`thead`,null,[d(`tr`,null,[d(`th`,null,i(n.$t(`dcwDetail.k48hde081`)),1),d(`th`,null,i(n.$t(`dcwDetail.k45uio082`)),1),d(`th`,null,i(n.$t(`dcwDetail.k40t11083`)),1),d(`th`,null,i(n.$t(`dcwDetail.k3xuaw084`)),1),a[2]||=d(`th`,null,`min ~ max`,-1),d(`th`,null,i(n.$t(`dcwDetail.k4118o085`)),1)])]),d(`tbody`,null,[(c(!0),f(p,null,l(e.runDataView.data.daq,e=>(c(),f(`tr`,{key:e.nodeId},[d(`td`,null,[y(i(e.ch),1),d(`small`,Dn,i(e.unit),1)]),d(`td`,null,i(e.nodeName),1),d(`td`,On,i(e.latest),1),d(`td`,kn,i(e.avg),1),d(`td`,An,i(e.min)+` ~ `+i(e.max),1),d(`td`,jn,i(e.cnt),1)]))),128)),e.runDataView.data.daq.length===0?(c(),f(`tr`,Mn,[d(`td`,Nn,i(n.$t(`dcwDetail.kd457ry086`)),1)])):h(``,!0)])]),d(`p`,Pn,i(n.$t(`dcwDetail.k12b7cxs087`)),1),d(`table`,Fn,[d(`thead`,null,[d(`tr`,null,[d(`th`,null,i(n.$t(`dcwDetail.k3xbjr088`)),1),d(`th`,null,i(n.$t(`dcwDetail.k45uio082`)),1),d(`th`,null,i(n.$t(`dcwDetail.k3ncbsh089`)),1),d(`th`,null,i(n.$t(`dcwDetail.k3lh3mz090`)),1),d(`th`,null,i(n.$t(`dcwDetail.k454pg091`)),1),d(`th`,null,i(n.$t(`dcwDetail.k40ieu092`)),1)])]),d(`tbody`,null,[(c(!0),f(p,null,l(e.runDataView.data.writes,(e,r)=>(c(),f(`tr`,{key:r},[d(`td`,null,i(e.param),1),d(`td`,null,i(e.nodeName),1),d(`td`,In,i(e.eng),1),d(`td`,Ln,i(e.raw),1),d(`td`,null,[d(`span`,{class:t([`st-pill`,e.ok?`ok`:`alarm`])},i(e.ok?`ACK`:n.$t(`dcwDetail.k3yit7139`)),3)]),d(`td`,Rn,i(e.at.slice(5,19)),1)]))),128)),e.runDataView.data.writes.length===0?(c(),f(`tr`,zn,[d(`td`,Bn,i(n.$t(`dcwDetail.knzcp8i093`)),1)])):h(``,!0)])]),d(`div`,Vn,[d(`button`,{class:`aw-pill outline`,onClick:a[0]||=e=>r(`close`)},i(n.$t(`dcwDetail.k3x62t043`)),1)])])])):h(``,!0)}}),[[`__scopeId`,`data-v-23fad435`]]),{__name:`DcwRunDataModal`}),Un={class:`aw-tile recipe-card`},Wn={class:`recipe-hd`},Gn={class:`panel-tag mono`},Kn={class:`recipe-sub`},qn={key:0,class:`product-row`},Jn=[`title`,`onClick`],Yn=[`title`,`onClick`],Xn={key:1,class:`dim`,style:{margin:`6px 0 12px`,"font-size":`12px`}},Zn={class:`recipe-grid`},Qn={class:`recipe-name`},$n=[`title`],er={class:`dim`},tr={class:`mono dim`},nr={key:0,class:`dim desc`},rr={class:`recipe-params mono`},ir=[`title`],ar={key:0,class:`chip-step-tag`},or={key:1,class:`chip-stale-tag`},sr=[`title`],cr={key:0,class:`chip-stale-tag`},lr={class:`recipe-actions`},ur=[`onClick`],dr=[`onClick`],fr=[`onClick`],pr={key:0,class:`mono`},mr=[`onClick`],hr={key:0,class:`pane-empty`,style:{"grid-column":`1 / -1`}},gr={key:2,class:`banner good`},_r=[`disabled`],vr={key:3,class:`runs`},yr={class:`sec-label`},br={class:`nodes-table`},xr={class:`right`},Sr={class:`mono`},Cr={class:`mono dim`},wr={class:`right`},Tr=[`disabled`,`onClick`],Er=[`onClick`],Dr=Object.assign(E(s({__name:`DcwRecipePanel`,props:m({lineProducts:{},visibleRecipes:{},lineRuns:{},applyResult:{},runDataView:{},runDataLoading:{type:Boolean},productName:{type:Function},paramStatus:{type:Function},paramNodeName:{type:Function},daqWindowStatus:{type:Function},daqNodeCh:{type:Function}},{filterProductId:{required:!0},filterProductIdModifiers:{}}),emits:m([`create`,`open-product`,`apply`,`edit`,`history`,`remove-recipe`,`remove-product`,`view-run`,`close-run`,`close-run-data`],[`update:filterProductId`]),setup(n,{emit:r}){let a=r,{t:s}=w(),m=o(n,`filterProductId`);return(r,o)=>{let g=Hn;return c(),f(`section`,Un,[d(`div`,Wn,[d(`h3`,null,i(r.$t(`dcwDetail.k1j8w3hd065`)),1),d(`span`,Gn,i(n.lineProducts.length)+` `+i(r.$t(`dcwDetail.k1av3wgs143`))+` `+i(n.visibleRecipes.length)+` `+i(r.$t(`dcwDetail.k48grv027`)),1),d(`button`,{class:`pill-btn`,style:{"margin-left":`auto`},onClick:o[0]||=e=>a(`create`)},i(r.$t(`dcwDetail.k1akm6dc066`)),1),d(`button`,{class:`mini-btn`,onClick:o[1]||=e=>a(`open-product`)},i(r.$t(`dcwDetail.k1aka0ki067`)),1)]),d(`p`,Kn,i(r.$t(`dcwDetail.k6bl2q8068`)),1),n.lineProducts.length?(c(),f(`div`,qn,[d(`button`,{class:t([`prod-chip`,{on:m.value===``}]),onClick:o[2]||=e=>m.value=``},i(r.$t(`dcwDetail.k3x4t1069`)),3),(c(!0),f(p,null,l(n.lineProducts,e=>(c(),f(`button`,{key:e.id,class:t([`prod-chip`,{on:m.value===e.id}]),title:e.description,onClick:t=>m.value=e.id},[y(i(e.name)+` `,1),d(`span`,{class:`prod-del`,title:r.$t(`dcwDetail.k1bpfjgx012`),onClick:x(t=>a(`remove-product`,e.id),[`stop`])},`×`,8,Yn)],10,Jn))),128))])):(c(),f(`p`,Xn,i(r.$t(`dcwDetail.knov3zg070`)),1)),d(`div`,Zn,[(c(!0),f(p,null,l(n.visibleRecipes,o=>(c(),f(`div`,{key:o.id,class:`recipe-item`},[d(`div`,Qn,[d(`b`,null,i(o.name),1),o.version?(c(),f(`span`,{key:0,class:`param-chip mono`,title:e(s)(`dcwDetail.histTitle`)},`v`+i(o.version),9,$n)):h(``,!0),d(`small`,er,i(n.productName(o.productId)),1),d(`small`,tr,i(o.id),1)]),o.description?(c(),f(`p`,nr,i(o.description),1)):h(``,!0),d(`div`,rr,[(c(!0),f(p,null,l(o.params,(e,r)=>(c(),f(`span`,{key:r,class:t([`param-chip`,{stale:n.paramStatus(e.nodeId,o.lineId)}]),title:n.paramStatus(e.nodeId,o.lineId)?.label??``},[y(i(n.paramNodeName(e.nodeId))+` = `+i(e.value),1),e.stepLimit==null?h(``,!0):(c(),f(`span`,ar,`Δ≤`+i(e.stepLimit),1)),n.paramStatus(e.nodeId,o.lineId)?(c(),f(`span`,or,i(n.paramStatus(e.nodeId,o.lineId).label),1)):h(``,!0)],10,ir))),128)),(c(!0),f(p,null,l(o.daqWindows,(e,a)=>(c(),f(`span`,{key:`w-${a}`,class:t([`param-chip daqwin`,{stale:n.daqWindowStatus(e.nodeId,o.lineId)}]),title:n.daqWindowStatus(e.nodeId,o.lineId)?.label??r.$t(`dcwDetail.k1l11api013`)},[y(` ◎ `+i(n.daqNodeCh(e.nodeId))+` ∈ [`+i(e.min??`-∞`)+`, `+i(e.max??`+∞`)+`]`,1),n.daqWindowStatus(e.nodeId,o.lineId)?(c(),f(`span`,cr,i(n.daqWindowStatus(e.nodeId,o.lineId).label),1)):h(``,!0)],10,sr))),128))]),d(`div`,lr,[d(`button`,{class:`pill-btn`,onClick:e=>a(`apply`,o.id)},i(r.$t(`dcwDetail.k1497qvr071`)),9,ur),d(`button`,{class:`mini-btn`,onClick:e=>a(`edit`,o.id)},i(r.$t(`dcwDetail.k45eb0072`)),9,dr),d(`button`,{class:`mini-btn`,onClick:e=>a(`history`,o.id)},[y(i(e(s)(`dcwDetail.histBtn`)),1),o.version?(c(),f(`span`,pr,`·v`+i(o.version),1)):h(``,!0)],8,fr),d(`button`,{class:`mini-btn danger`,onClick:e=>a(`remove-recipe`,o.id)},i(r.$t(`dcwDetail.k3xakp063`)),9,mr)])]))),128)),n.visibleRecipes.length===0?(c(),f(`div`,hr,i(r.$t(`dcwDetail.keko1xy073`)),1)):h(``,!0)]),n.applyResult?(c(),f(`div`,gr,[y(i(r.$t(`dcwDetail.k1l3hrvp144`))+` `+i(n.applyResult.runId)+` `+i(r.$t(`dcwDetail.k1g3lh2v167`))+i(n.applyResult.ok)+`/`+i(n.applyResult.total)+` `+i(r.$t(`dcwDetail.k1bqci06149`))+` `,1),d(`button`,{class:`mini-btn`,style:{"margin-left":`10px`},disabled:n.runDataLoading,onClick:o[3]||=e=>a(`view-run`,n.applyResult.runId)},i(n.runDataLoading?r.$t(`dcwDetail.k1br0ij9161`):r.$t(`dcwDetail.kxwei5175`)),9,_r)])):h(``,!0),n.lineRuns.length?(c(),f(`div`,vr,[d(`p`,yr,i(r.$t(`dcwDetail.k1rjer8d074`)),1),d(`table`,br,[d(`thead`,null,[d(`tr`,null,[d(`th`,null,i(r.$t(`dcwDetail.k400lb075`)),1),d(`th`,null,i(r.$t(`dcwDetail.k48grv027`)),1),d(`th`,null,i(r.$t(`dcwDetail.k4497j076`)),1),d(`th`,null,i(r.$t(`dcwDetail.k1bqhtmu077`)),1),d(`th`,xr,i(r.$t(`dcwDetail.k40aa6061`)),1)])]),d(`tbody`,null,[(c(!0),f(p,null,l([...n.lineRuns].reverse().slice(0,8),e=>(c(),f(`tr`,{key:e.id},[d(`td`,Sr,i(e.id),1),d(`td`,null,i(e.recipeName),1),d(`td`,Cr,i(e.startedAt.slice(5,19))+` ~ `+i(e.endedAt?e.endedAt.slice(5,19):r.$t(`dcwDetail.k3vpfg9162`)),1),d(`td`,null,[d(`span`,{class:t([`st-pill`,e.results.every(e=>e.ok)?`ok`:`warn`])},i(e.results.filter(e=>e.ok).length)+`/`+i(e.results.length),3)]),d(`td`,wr,[d(`button`,{class:`mini-btn`,disabled:n.runDataLoading,onClick:t=>a(`view-run`,e.id)},i(r.$t(`dcwDetail.k1dzwrdp078`)),9,Tr),e.endedAt?h(``,!0):(c(),f(`button`,{key:0,class:`mini-btn`,onClick:t=>a(`close-run`,e.id)},i(r.$t(`dcwDetail.k1blr7y7079`)),9,Er))])]))),128))])])])):h(``,!0),u(g,{"run-data-view":n.runDataView,onClose:o[4]||=e=>a(`close-run-data`)},null,8,[`run-data-view`])])}}}),[[`__scopeId`,`data-v-6242bc54`]]),{__name:`DcwRecipePanel`}),Or={class:`modal`},kr={class:`m-title`},Ar={class:`f-grid`},jr={class:`f`},Mr=[`value`],Nr={class:`f`},Pr=[`placeholder`],Fr={class:`f`},Ir=[`placeholder`],Lr={class:`sec-label`},Rr={class:`f`},zr=[`onUpdate:modelValue`],Br=[`value`],Vr={key:0,class:`row-stale`},Hr={class:`f`},Ur=[`onUpdate:modelValue`],Wr={class:`f`},Gr=[`onUpdate:modelValue`,`placeholder`],Kr={class:`f`},qr=[`onUpdate:modelValue`,`placeholder`],Jr={class:`f`},Yr=[`onUpdate:modelValue`],Xr=[`onClick`],Zr={class:`sec-label`},Qr={class:`f`},$r=[`onUpdate:modelValue`],ei=[`value`],ti={class:`f`},ni=[`onUpdate:modelValue`],ri={class:`f`},ii=[`onUpdate:modelValue`],ai=[`onClick`],oi=[`disabled`,`title`],si={key:0,class:`m-note`},ci={key:1,class:`m-err`},li={class:`m-actions`},ui=[`disabled`],di=Object.assign(E(s({__name:`DcwRecipeEditModal`,props:m({lineProducts:{},lineNodes:{},lineDaqNodes:{},lineId:{},recipeEditing:{},recipeSaving:{type:Boolean},recipeError:{},recipeStaleNote:{},dcwTemplateRefCh:{type:Function},nodeMin:{type:Function},nodeMax:{type:Function},paramStatus:{type:Function}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:m([`submit`,`close`],[`update:open`,`update:form`]),setup(t,{emit:n}){let r=n,a=o(t,`open`),s=o(t,`form`);return(n,o)=>a.value?(c(),f(`div`,{key:0,class:`modal-mask`,onClick:o[7]||=x(e=>a.value=!1,[`self`])},[d(`div`,Or,[d(`h3`,kr,i(t.recipeEditing?n.$t(`dcwDetail.k1iiwk0i163`):n.$t(`dcwDetail.k1efq0r9176`)),1),d(`div`,Ar,[d(`label`,jr,[d(`span`,null,[y(i(n.$t(`dcwDetail.k1dw4fzf094`)),1),o[8]||=d(`em`,null,`*`,-1)]),v(d(`select`,{"onUpdate:modelValue":o[0]||=e=>s.value.productId=e,class:`inp`},[(c(!0),f(p,null,l(t.lineProducts,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name),9,Mr))),128))],512),[[C,s.value.productId]])]),d(`label`,Nr,[d(`span`,null,[y(i(n.$t(`dcwDetail.k1l3f8so095`)),1),o[9]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":o[1]||=e=>s.value.name=e,class:`inp`,placeholder:n.$t(`dcwDetail.k12c11vm014`)},null,8,Pr),[[b,s.value.name]])]),d(`label`,Fr,[d(`span`,null,i(n.$t(`dcwDetail.k40gkk096`)),1),v(d(`input`,{"onUpdate:modelValue":o[2]||=e=>s.value.description=e,class:`inp`,placeholder:n.$t(`dcwDetail.k1hxx8hy015`)},null,8,Ir),[[b,s.value.description]])])]),d(`p`,Lr,i(n.$t(`dcwDetail.ka1kfgh097`)),1),(c(!0),f(p,null,l(s.value.params,(e,r)=>(c(),f(`div`,{key:r,class:`param-row`},[d(`label`,Rr,[d(`span`,null,i(n.$t(`dcwDetail.k1e2dtkt053`)),1),v(d(`select`,{"onUpdate:modelValue":t=>e.nodeId=t,class:`inp`},[(c(!0),f(p,null,l(t.lineNodes,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name)+`(`+i(t.dcwTemplateRefCh(e.templateRef))+` · `+i(e.min)+`~`+i(e.max)+` `+i(e.unit)+`) `,9,Br))),128))],8,zr),[[C,e.nodeId]]),t.paramStatus(e.nodeId,t.lineId)?(c(),f(`span`,Vr,i(t.paramStatus(e.nodeId,t.lineId).label),1)):h(``,!0)]),d(`label`,Hr,[d(`span`,null,[y(i(n.$t(`dcwDetail.k3renp2098`)),1),o[10]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":t=>e.value=t,type:`number`,class:`inp`,step:.1},null,8,Ur),[[b,e.value,void 0,{number:!0}]])]),d(`label`,Wr,[d(`span`,null,i(n.$t(`dcwDetail.k134rw3b146`))+i(t.nodeMin(e.nodeId)??`-`)+`)`,1),v(d(`input`,{"onUpdate:modelValue":t=>e.min=t,type:`number`,class:`inp`,step:.1,placeholder:n.$t(`dcwDetail.k5vew9z016`)},null,8,Gr),[[b,e.min,void 0,{number:!0}]])]),d(`label`,Kr,[d(`span`,null,i(n.$t(`dcwDetail.khrv911147`))+i(t.nodeMax(e.nodeId)??`-`)+`)`,1),v(d(`input`,{"onUpdate:modelValue":t=>e.max=t,type:`number`,class:`inp`,step:.1,placeholder:n.$t(`dcwDetail.kzoh5pr017`)},null,8,qr),[[b,e.max,void 0,{number:!0}]])]),d(`label`,Jr,[o[11]||=d(`span`,null,`Recipe 单步上限 Δ≤`,-1),v(d(`input`,{"onUpdate:modelValue":t=>e.stepLimit=t,type:`number`,min:`0`,class:`inp`,step:`any`,placeholder:`跟随节点默认`},null,8,Yr),[[b,e.stepLimit,void 0,{number:!0}]])]),d(`button`,{class:`mini-btn danger param-del`,onClick:e=>s.value.params.splice(r,1)},i(n.$t(`dcwDetail.k44idg099`)),9,Xr)]))),128)),d(`button`,{class:`mini-btn`,onClick:o[3]||=n=>s.value.params.push(e(O)(t.lineNodes[0]?.id??``))},i(n.$t(`dcwDetail.k1broh7h100`)),1),d(`p`,Zr,i(n.$t(`dcwDetail.k1h5gues101`)),1),(c(!0),f(p,null,l(s.value.daqWindows,(e,r)=>(c(),f(`div`,{key:`dw-${r}`,class:`param-row`},[d(`label`,Qr,[d(`span`,null,i(n.$t(`dcwDetail.k1empnnb102`)),1),v(d(`select`,{"onUpdate:modelValue":t=>e.nodeId=t,class:`inp`},[(c(!0),f(p,null,l(t.lineDaqNodes,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name)+`(`+i(e.min)+`~`+i(e.max)+` `+i(e.unit)+`) `,9,ei))),128))],8,$r),[[C,e.nodeId]])]),d(`label`,ti,[d(`span`,null,i(n.$t(`dcwDetail.kqm08ap103`)),1),v(d(`input`,{"onUpdate:modelValue":t=>e.min=t,type:`number`,class:`inp`,step:.1},null,8,ni),[[b,e.min,void 0,{number:!0}]])]),d(`label`,ri,[d(`span`,null,i(n.$t(`dcwDetail.kpypf8g104`)),1),v(d(`input`,{"onUpdate:modelValue":t=>e.max=t,type:`number`,class:`inp`,step:.1},null,8,ii),[[b,e.max,void 0,{number:!0}]])]),d(`button`,{class:`mini-btn danger param-del`,onClick:e=>s.value.daqWindows.splice(r,1)},i(n.$t(`dcwDetail.k44idg099`)),9,ai)]))),128)),d(`button`,{class:`mini-btn`,disabled:t.lineDaqNodes.length===0,title:t.lineDaqNodes.length===0?n.$t(`dcwDetail.noDaqTip`):``,onClick:o[4]||=n=>s.value.daqWindows.push(e(k)(t.lineDaqNodes[0]?.id??``))},i(n.$t(`dcwDetail.kv1de1p105`)),9,oi),t.recipeStaleNote?(c(),f(`p`,si,i(t.recipeStaleNote),1)):h(``,!0),t.recipeError?(c(),f(`p`,ci,i(t.recipeError),1)):h(``,!0),d(`div`,li,[d(`button`,{class:`aw-pill outline`,onClick:o[5]||=e=>a.value=!1},i(n.$t(`dcwDetail.k3xdnn052`)),1),d(`button`,{class:`pill-btn`,disabled:t.recipeSaving,onClick:o[6]||=e=>r(`submit`)},i(t.recipeSaving?n.$t(`dcwDetail.k1b38d59164`):n.$t(`dcwDetail.k1b3kwg0177`)),9,ui)])])])):h(``,!0)}}),[[`__scopeId`,`data-v-4a17b36f`]]),{__name:`DcwRecipeEditModal`}),fi={class:`modal`,style:{"max-width":`760px`}},pi={class:`modal-head`},mi={key:0,class:`dim`,style:{"margin-left":`8px`,"font-size":`12px`}},hi={key:0,class:`banner good`,style:{margin:`6px 0`}},gi={key:1,class:`dim`},_i={key:2,class:`pane-empty`},vi={class:`ver-head`},yi={class:`mono ver-v`},bi={class:`mono dim`},xi={class:`ver-actor`},Si=[`onClick`],Ci={key:0,class:`ver-desc`},wi={class:`ver-diff mono`},Ti=Object.assign(E(s({__name:`DcwRecipeHistoryModal`,props:m({verRecipe:{},verRows:{},verLoading:{type:Boolean},verMsg:{},paramNodeName:{type:Function}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:m([`revert`,`close`],[`update:open`]),setup(n,{emit:r}){let a=n,s=r,{t:u}=w(),m=o(n,`open`),g=e=>e===`agent`?`Agent`:u(e===`system`?`dcwDetail.srcSystem`:`dcwDetail.srcUser`);function _(e,t){if(t===0)return u(`dcwDetail.histInit`);let n=a.verRows[t-1],r=e.params.map(e=>({p:e,old:n.params.find(t=>t.nodeId===e.nodeId)})).filter(({p:e,old:t})=>!t||t.value!==e.value).map(({p:e,old:t})=>`${a.paramNodeName(e.nodeId)}: ${t?.value??u(`dcwDetail.histAdded`)} → ${e.value}`);return r.length>0?r.join(`;`):u(`dcwDetail.histNoChange`)}return(r,a)=>m.value?(c(),f(`div`,{key:0,class:`modal-mask`,onClick:a[1]||=x(e=>m.value=!1,[`self`])},[d(`div`,fi,[d(`div`,pi,[d(`h3`,null,[y(i(e(u)(`dcwDetail.histTitle`)),1),n.verRecipe?(c(),f(`span`,mi,i(n.verRecipe.name)+` · v`+i(n.verRecipe.version),1)):h(``,!0)]),d(`button`,{class:`mini-btn`,onClick:a[0]||=e=>m.value=!1},` ✕ `)]),n.verMsg?(c(),f(`p`,hi,i(n.verMsg),1)):h(``,!0),n.verLoading?(c(),f(`p`,gi,i(e(u)(`dcwDetail.histLoading`)),1)):n.verRows.length===0?(c(),f(`div`,_i,i(e(u)(`dcwDetail.histEmpty`)),1)):(c(!0),f(p,{key:3},l(n.verRows,(n,r)=>(c(),f(`div`,{key:n.version,class:t([`ver-row`,{cur:n.current}])},[d(`div`,vi,[d(`span`,yi,`v`+i(n.version),1),d(`span`,{class:t([`ver-src`,n.by??(n.current?`cur`:``)])},i(n.current?e(u)(`dcwDetail.histCurrent`):g(n.by)),3),d(`span`,bi,i(n.at.slice(0,19).replace(`T`,` `)),1),d(`span`,xi,i(n.actorName||`—`),1),n.current?h(``,!0):(c(),f(`button`,{key:0,class:`mini-btn`,onClick:e=>s(`revert`,n.version)},i(e(u)(`dcwDetail.revertTo`)),9,Si))]),n.description?(c(),f(`p`,Ci,i(n.description),1)):h(``,!0),d(`p`,wi,i(_(n,r)),1)],2))),128))])])):h(``,!0)}}),[[`__scopeId`,`data-v-322135bb`]]),{__name:`DcwRecipeHistoryModal`}),Ei={class:`aw-tile query-card`},Di={class:`sec-label`},Oi={class:`q-grid`},ki={class:`f`},Ai={value:``},ji=[`value`],Mi={class:`f`},Ni=[`disabled`],Pi={value:``},Fi=[`value`],Ii={class:`f`},Li={value:``},Ri=[`value`],zi={class:`f`},Bi={value:``},Vi=[`value`],Hi={class:`f`},Ui={class:`f`},Wi={class:`f q-actions`},Gi=[`disabled`],Ki={key:0,class:`banner bad`,style:{"margin-top":`8px`}},qi={key:1,class:`q-result`},Ji={class:`nodes-table`},Yi={class:`mono dim`},Xi={class:`mono`},Zi={class:`mono`},Qi={class:`mono`},$i={class:`mono dim`},ea=Object.assign(E(s({__name:`DcwQueryCard`,props:m({lineProducts:{},visibleRecipes:{},lineDaqNodes:{},daqParamKeys:{},queryBusy:{type:Boolean},queryError:{},queryResult:{}},{query:{required:!0},queryModifiers:{}}),emits:m([`run`],[`update:query`]),setup(t,{emit:n}){let r=n,a=o(t,`query`);function s(e){let t=e?.value??e?.avg;return t==null?`--`:String(Math.round(t*1e3)/1e3)}return(n,o)=>(c(),f(`section`,Ei,[d(`p`,Di,i(n.$t(`dcwDetail.k1us3jse106`)),1),d(`div`,Oi,[d(`label`,ki,[d(`span`,null,i(n.$t(`dcwDetail.k3waz1025`)),1),v(d(`select`,{"onUpdate:modelValue":o[0]||=e=>a.value.productId=e,class:`inp`,onChange:o[1]||=e=>a.value.recipeId=``},[d(`option`,Ai,i(n.$t(`dcwDetail.k1bkl1jx107`)),1),(c(!0),f(p,null,l(t.lineProducts,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name),9,ji))),128))],544),[[C,a.value.productId]])]),d(`label`,Mi,[d(`span`,null,i(n.$t(`dcwDetail.k48grv027`)),1),v(d(`select`,{"onUpdate:modelValue":o[2]||=e=>a.value.recipeId=e,class:`inp`,disabled:!a.value.productId},[d(`option`,Pi,i(n.$t(`dcwDetail.k1bkx7cr108`)),1),(c(!0),f(p,null,l(t.visibleRecipes,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name),9,Fi))),128))],8,Ni),[[C,a.value.recipeId]])]),d(`label`,Ii,[d(`span`,null,i(n.$t(`dcwDetail.k1demcae109`)),1),v(d(`select`,{"onUpdate:modelValue":o[3]||=e=>a.value.paramKey=e,class:`inp`},[d(`option`,Li,i(n.$t(`dcwDetail.k1bkx7ya110`)),1),(c(!0),f(p,null,l(t.daqParamKeys,e=>(c(),f(`option`,{key:e,value:e},i(e),9,Ri))),128))],512),[[C,a.value.paramKey]])]),d(`label`,zi,[d(`span`,null,i(n.$t(`dcwDetail.k45uio082`)),1),v(d(`select`,{"onUpdate:modelValue":o[4]||=e=>a.value.nodeId=e,class:`inp`},[d(`option`,Bi,i(n.$t(`dcwDetail.k1bkul3k111`)),1),(c(!0),f(p,null,l(t.lineDaqNodes,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name),9,Vi))),128))],512),[[C,a.value.nodeId]])]),d(`label`,Hi,[d(`span`,null,i(n.$t(`dcwDetail.kx2ojn0112`)),1),v(d(`input`,{"onUpdate:modelValue":o[5]||=e=>a.value.lastMin=e,type:`number`,min:`1`,max:`10080`,class:`inp`},null,512),[[b,a.value.lastMin,void 0,{number:!0}]])]),d(`label`,Ui,[d(`span`,null,i(n.$t(`dcwDetail.kjvnvn4113`)),1),v(d(`input`,{"onUpdate:modelValue":o[6]||=e=>a.value.bucketMs=e,type:`number`,min:`1000`,step:`500`,class:`inp`},null,512),[[b,a.value.bucketMs,void 0,{number:!0}]])]),d(`div`,Wi,[d(`button`,{class:`pill-btn`,disabled:t.queryBusy,onClick:o[7]||=e=>r(`run`)},i(t.queryBusy?n.$t(`dcwDetail.k1eyx09r165`):n.$t(`dcwDetail.k416ek178`)),9,Gi)])]),t.queryError?(c(),f(`p`,Ki,i(t.queryError),1)):h(``,!0),t.queryResult?(c(),f(`div`,qi,[d(`table`,Ji,[d(`thead`,null,[d(`tr`,null,[d(`th`,null,i(n.$t(`dcwDetail.k48hde081`)),1),d(`th`,null,i(n.$t(`dcwDetail.k45uio082`)),1),d(`th`,null,i(n.$t(`dcwDetail.k42kcu114`)),1),d(`th`,null,i(n.$t(`dcwDetail.k49ujb115`)),1),d(`th`,null,i(n.$t(`dcwDetail.k40pvw116`)),1),d(`th`,null,i(n.$t(`dcwDetail.k3xho3117`)),1)])]),d(`tbody`,null,[(c(!0),f(p,null,l(t.queryResult.channels,t=>(c(),f(`tr`,{key:t.nodeId},[d(`td`,null,[y(i(t.ch),1),d(`small`,Yi,i(t.unit),1)]),d(`td`,null,i(t.nodeName),1),d(`td`,Xi,i(t.points.length),1),d(`td`,Zi,i(s(t.points[0])),1),d(`td`,Qi,i(s(t.points[t.points.length-1])),1),d(`td`,$i,i(e(D)(new Date(t.points[0]?.at??0).toISOString(),!1))+` ~ `+i(e(D)(new Date(t.points[t.points.length-1]?.at??0).toISOString(),!1)),1)]))),128))])])])):h(``,!0)]))}}),[[`__scopeId`,`data-v-ee60c0a5`]]),{__name:`DcwQueryCard`}),ta={class:`aw-tile table-card`},na={class:`sec-label`},ra={class:`nodes-table`},ia={class:`mono dim`},aa={class:`mono`},oa={class:`mono dim`},sa={class:`dim`},ca=Object.assign(E(s({__name:`DcwWriteHistoryCard`,props:{lineHistory:{}},setup(e){return(n,r)=>(c(),f(`section`,ta,[d(`p`,na,i(n.$t(`dcwDetail.kw7ym9b148`))+` `+i(e.lineHistory.length)+` `+i(n.$t(`dcwDetail.k40bfz150`)),1),d(`table`,ra,[d(`tbody`,null,[(c(!0),f(p,null,l(e.lineHistory.slice(0,12),e=>(c(),f(`tr`,{key:e.id},[d(`td`,ia,i(e.at.slice(5,19)),1),d(`td`,null,i(e.param),1),d(`td`,null,i(e.nodeName),1),d(`td`,aa,i(e.eng),1),d(`td`,oa,` raw `+i(e.raw??`-`),1),d(`td`,null,[d(`span`,{class:t([`st-pill`,e.ok?`ok`:`alarm`])},i(e.ok?`ACK`:n.$t(`dcwDetail.k3yit7139`)),3)]),d(`td`,sa,i(e.recipeRunId?n.$t(`dcwDetail.k6vgks7181`,{p0:e.recipeRunId}):n.$t(`dcwDetail.manualTag`)),1)]))),128))])])]))}}),[[`__scopeId`,`data-v-1ca86a1c`]]),{__name:`DcwWriteHistoryCard`}),la={class:`modal`},ua={class:`m-title`},da={class:`f-grid`},fa={class:`f`},pa=[`placeholder`],ma={class:`f`},ha=[`placeholder`],ga={key:0,class:`m-err`},_a={class:`m-actions`},va=[`disabled`],ya=Object.assign(E(s({__name:`DcwProductCreateModal`,props:m({productSaving:{type:Boolean},productError:{}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:m([`submit`,`close`],[`update:open`,`update:form`]),setup(e,{emit:t}){let n=t,r=o(e,`open`),a=o(e,`form`);return(t,o)=>r.value?(c(),f(`div`,{key:0,class:`modal-mask`,onClick:o[4]||=x(e=>r.value=!1,[`self`])},[d(`div`,la,[d(`h3`,ua,i(t.$t(`dcwDetail.k1efduyf118`)),1),d(`div`,da,[d(`label`,fa,[d(`span`,null,[y(i(t.$t(`dcwDetail.k1avjrl6119`)),1),o[5]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":o[0]||=e=>a.value.name=e,class:`inp`,placeholder:t.$t(`dcwDetail.k12c11vm014`)},null,8,pa),[[b,a.value.name]])]),d(`label`,ma,[d(`span`,null,i(t.$t(`dcwDetail.k40gkk096`)),1),v(d(`input`,{"onUpdate:modelValue":o[1]||=e=>a.value.description=e,class:`inp`,placeholder:t.$t(`dcwDetail.k1hxx8hy015`)},null,8,ha),[[b,a.value.description]])])]),e.productError?(c(),f(`p`,ga,i(e.productError),1)):h(``,!0),d(`div`,_a,[d(`button`,{class:`aw-pill outline`,onClick:o[2]||=e=>r.value=!1},i(t.$t(`dcwDetail.k3xdnn052`)),1),d(`button`,{class:`pill-btn`,disabled:e.productSaving,onClick:o[3]||=e=>n(`submit`)},i(e.productSaving?t.$t(`dcwDetail.k1bg4759156`):t.$t(`dcwDetail.k1bg4kn6179`)),9,va)])])])):h(``,!0)}}),[[`__scopeId`,`data-v-aa17ef24`]]),{__name:`DcwProductCreateModal`}),ba={class:`aw-tile ledger-card`},xa={class:`ledger-head`},Sa={value:``},Ca=[`value`],wa={class:`ledger-tri`},Ta={class:`tri-cell`},Ea={class:`mono`},Da={class:`tri-cell`},Oa={class:`mono`},ka={class:`tri-cell`},Aa={class:`mono`},ja={class:`ledger-cols`},Ma={class:`ledger-col`},Na={class:`sec-t`},Pa={class:`ledger-list mono`},Fa={class:`ledger-col`},Ia={class:`sec-t`},La={class:`ledger-list`},Ra={class:`mono`},za=Object.assign(E(s({__name:`DcwLedgerCard`,props:m({lineNodes:{},ledger:{}},{nodeId:{required:!0},nodeIdModifiers:{}}),emits:m([`load`,`rollback`],[`update:nodeId`]),setup(e,{emit:n}){let r=n,a=o(e,`nodeId`);return(n,o)=>(c(),f(`section`,ba,[d(`div`,xa,[d(`b`,null,i(n.$t(`dcwDetail.k1ledgt001`)),1),v(d(`select`,{"onUpdate:modelValue":o[0]||=e=>a.value=e,class:`inp`,onChange:o[1]||=e=>r(`load`)},[d(`option`,Sa,i(n.$t(`dcwDetail.k1ledgs001`)),1),(c(!0),f(p,null,l(e.lineNodes,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name),9,Ca))),128))],544),[[C,a.value]])]),e.ledger?(c(),f(p,{key:0},[d(`div`,wa,[d(`div`,Ta,[d(`small`,null,i(n.$t(`dcwDetail.k1ledgv001`)),1),d(`b`,Ea,i(e.ledger.current??`--`),1)]),d(`div`,Da,[d(`small`,null,i(n.$t(`dcwDetail.k1ledgv002`)),1),d(`b`,Oa,i(e.ledger.recipeTarget??`--`),1)]),d(`div`,ka,[d(`small`,null,i(n.$t(`dcwDetail.k1ledgv003`)),1),d(`b`,Aa,i(e.ledger.lastGood??`--`),1)]),d(`button`,{class:`mini-btn`,onClick:o[2]||=e=>r(`load`)},i(n.$t(`dcwDetail.k1ledga001`)),1),d(`button`,{class:`mini-btn danger`,onClick:o[3]||=e=>r(`rollback`)},i(n.$t(`dcwDetail.k1ledga002`)),1)]),d(`div`,ja,[d(`div`,Ma,[d(`small`,Na,i(n.$t(`dcwDetail.k1ledgh001`)),1),d(`ul`,Pa,[(c(!0),f(p,null,l(e.ledger.journal,e=>(c(),f(`li`,{key:e.id},i(e.at.slice(5,16).replace(`T`,` `))+` [`+i(e.source)+`] `+i(e.prevValue??`?`)+` → `+i(e.newValue),1))),128))])]),d(`div`,Fa,[d(`small`,Ia,i(n.$t(`dcwDetail.k1ledgr001`)),1),d(`ul`,La,[(c(!0),f(p,null,l(e.ledger.records,e=>(c(),f(`li`,{key:e.id,class:`ledger-rec`},[d(`span`,{class:t([`rec-st`,e.status])},i(e.status),3),d(`span`,Ra,i(e.params[0]?.from??`?`)+` → `+i(e.params[0]?.to),1),d(`small`,null,i(e.judge?`${e.judge.verdict}(${e.judge.by})`:e.status===`open`?`open`:e.closedBy??``),1)]))),128))])])])],64)):h(``,!0)]))}}),[[`__scopeId`,`data-v-15a6bb00`]]),{__name:`DcwLedgerCard`}),Ba={key:0,class:`page`},Va={class:`banner bad`},Ha={key:1,class:`page`},Ua={key:2,class:`err`},Wa=E(s({__name:`[id]`,setup(n){let r=ne(),o=ce(),s=ie(),l=ae(r),p=oe(r,l),m=A(r,p,l,o),v=se(r),b=j(r),x=re(b),{dcw:S,line:C,lineId:w,ls:T,lineNodes:E,lineProducts:D,lineRecipesAll:te,lineRuns:O,lineHistory:k,unassignedNodes:le,unassignedProducts:ue,stateLabel:de,dcwTemplateRefCh:fe,nodeMin:pe,nodeMax:me,lineDaqNodes:he,daqNodeCh:_e,adoptNode:ve,adoptProduct:ye,productName:be,paramStatus:xe,paramNodeName:Se,daqWindowStatus:Ce,nodeDeviceNames:we}=r,{setInputs:M,writingId:Ee,writeError:N,writeOk:De,readingId:Oe,togglingId:Ae,stepPatchingId:je,doWrite:Me,doRead:Ne,toggleControl:Pe,patchStepLimit:Fe}=o,{ledgerNodeId:P,ledger:Ie,loadLedger:Le,rollbackLedgerNode:Re}=s,{lineProductId:F,lineRecipeId:I,lineBusy:ze,lineMsg:Be,lineErr:Ve,lineRecipes:He,doLineStart:Ue,doLineStop:Ge}=l,{filterProductId:L,visibleRecipes:Ke,productOpen:R,productSaving:qe,productError:Je,productForm:z,doCreateProduct:Ye}=p,{verOpen:B,verRecipe:Xe,verRows:Ze,verLoading:Qe,verMsg:$e,doRevert:et,recipeOpen:V,recipeEditing:tt,recipeSaving:nt,recipeError:rt,recipeStaleNote:it,recipeForm:H,applyResult:at,runDataView:ot,runDataLoading:st,openRecipeCreate:ct,openRecipeEdit:lt,openRecipeHistory:ut,saveRecipe:dt,doApplyRecipe:ft,doViewRun:pt}=m,{query:U,queryBusy:ht,queryError:gt,queryResult:_t,doQuery:vt,daqParamKeys:yt}=v,{addOpen:W,addScenario:G,addTemplate:K,addDriver:q,addName:J,addHold:Y,addRead:X,addWriteLock:Z,addStepLimit:bt,addCfg:xt,addTransform:St,addSemantics:Ct,addTesting:wt,addTest:Tt,addSaving:Et,addError:Dt,addFields:Ot,driverCatalog:kt,doTestConnection:At,doAddNode:jt}=b,{tplOpen:Q,tplSaving:Mt,tplError:Nt,tplOk:Pt,tplForm:$,tplIcons:Ft,builtinCount:It,customCount:Lt,openTplModal:Rt,doCreateTemplate:zt}=x;return(n,r)=>{let o=ee,s=ge,l=Te,p=ke,m=We,v=mt,b=Wt,x=Sn,A=Dr,j=di,ne=Ti,re=ea,ie=ca,ae=ya,oe=za;return e(S).loaded&&!e(C)?(c(),f(`div`,Ba,[d(`p`,Va,i(n.$t(`dcwDetail.k19337yp018`)),1),u(o,{class:`pill-btn`,to:`/dcw`},{default:g(()=>[y(i(n.$t(`dcwDetail.kllwu1c019`)),1)]),_:1})])):(c(),f(`div`,Ha,[u(s,{line:e(C),"line-id":e(w),"nodes-count":e(E).length,"products-count":e(D).length,"recipes-count":e(te).length},null,8,[`line`,`line-id`,`nodes-count`,`products-count`,`recipes-count`]),u(l,{running:e(S).controller.running,"nodes-online":e(S).controller.nodesOnline,"nodes-total":e(S).controller.nodesTotal,"writes-total":e(S).controller.writesTotal,"writes-failed":e(S).controller.writesFailed,onToggle:e(S).startStop,onOpenTemplates:e(Rt),onOpenAdd:r[0]||=e=>W.value=!0},null,8,[`running`,`nodes-online`,`nodes-total`,`writes-total`,`writes-failed`,`onToggle`,`onOpenTemplates`]),e(N)||e(De)?(c(),f(`p`,{key:0,class:t([`banner`,e(N)?`bad`:`good`])},i(e(N)||e(De)),3)):h(``,!0),u(p,{"unassigned-nodes":e(le),"unassigned-products":e(ue),onAdoptNode:e(ve),onAdoptProduct:e(ye)},null,8,[`unassigned-nodes`,`unassigned-products`,`onAdoptNode`,`onAdoptProduct`]),u(m,{"product-id":e(F),"onUpdate:productId":r[1]||=e=>a(F)?F.value=e:null,"recipe-id":e(I),"onUpdate:recipeId":r[2]||=e=>a(I)?I.value=e:null,ls:e(T),"line-products":e(D),"line-recipes":e(He),"line-busy":e(ze),"line-msg":e(Be),"line-err":e(Ve),onStart:e(Ue),onStop:e(Ge)},null,8,[`product-id`,`recipe-id`,`ls`,`line-products`,`line-recipes`,`line-busy`,`line-msg`,`line-err`,`onStart`,`onStop`]),u(v,{open:e(Q),"onUpdate:open":r[3]||=e=>a(Q)?Q.value=e:null,form:e($),"onUpdate:form":r[4]||=e=>a($)?$.value=e:null,templates:e(S).templates,"tpl-icons":e(Ft),"builtin-count":e(It),"custom-count":e(Lt),"tpl-saving":e(Mt),"tpl-error":e(Nt),"tpl-ok":e(Pt),onSubmit:e(zt),onClose:r[5]||=e=>Q.value=!1},null,8,[`open`,`form`,`templates`,`tpl-icons`,`builtin-count`,`custom-count`,`tpl-saving`,`tpl-error`,`tpl-ok`,`onSubmit`]),u(b,{open:e(W),"onUpdate:open":r[6]||=e=>a(W)?W.value=e:null,scenario:e(G),"onUpdate:scenario":r[7]||=e=>a(G)?G.value=e:null,template:e(K),"onUpdate:template":r[8]||=e=>a(K)?K.value=e:null,driver:e(q),"onUpdate:driver":r[9]||=e=>a(q)?q.value=e:null,name:e(J),"onUpdate:name":r[10]||=e=>a(J)?J.value=e:null,hold:e(Y),"onUpdate:hold":r[11]||=e=>a(Y)?Y.value=e:null,read:e(X),"onUpdate:read":r[12]||=e=>a(X)?X.value=e:null,"write-lock":e(Z),"onUpdate:writeLock":r[13]||=e=>a(Z)?Z.value=e:null,"step-limit":e(bt),"onUpdate:stepLimit":r[14]||=e=>a(bt)?bt.value=e:null,cfg:e(xt),"onUpdate:cfg":r[15]||=e=>a(xt)?xt.value=e:null,transform:e(St),"onUpdate:transform":r[16]||=e=>a(St)?St.value=e:null,semantics:e(Ct),"onUpdate:semantics":r[17]||=e=>a(Ct)?Ct.value=e:null,templates:e(S).templates,"driver-catalog":e(kt),"add-fields":e(Ot),"add-testing":e(wt),"add-test":e(Tt),"add-saving":e(Et),"add-error":e(Dt),onTest:e(At),onSubmit:e(jt)},null,8,[`open`,`scenario`,`template`,`driver`,`name`,`hold`,`read`,`write-lock`,`step-limit`,`cfg`,`transform`,`semantics`,`templates`,`driver-catalog`,`add-fields`,`add-testing`,`add-test`,`add-saving`,`add-error`,`onTest`,`onSubmit`]),u(x,{"set-inputs":e(M),"onUpdate:setInputs":r[18]||=e=>a(M)?M.value=e:null,"line-nodes":e(E),"state-label":e(de),"toggling-id":e(Ae),"reading-id":e(Oe),"writing-id":e(Ee),"step-patching-id":e(je),loaded:e(S).loaded,error:e(S).error,"dcw-template-ref-ch":e(fe),"node-device-names":e(we),onToggle:e(Pe),onRead:e(Ne),onWrite:e(Me),onPatchStepLimit:e(Fe),onRemove:e(S).removeNode},null,8,[`set-inputs`,`line-nodes`,`state-label`,`toggling-id`,`reading-id`,`writing-id`,`step-patching-id`,`loaded`,`error`,`dcw-template-ref-ch`,`node-device-names`,`onToggle`,`onRead`,`onWrite`,`onPatchStepLimit`,`onRemove`]),u(A,{"filter-product-id":e(L),"onUpdate:filterProductId":r[19]||=e=>a(L)?L.value=e:null,"line-products":e(D),"visible-recipes":e(Ke),"line-runs":e(O),"apply-result":e(at),"run-data-view":e(ot),"run-data-loading":e(st),"product-name":e(be),"param-status":e(xe),"param-node-name":e(Se),"daq-window-status":e(Ce),"daq-node-ch":e(_e),onCreate:e(ct),onOpenProduct:r[20]||=e=>R.value=!0,onApply:e(ft),onEdit:e(lt),onHistory:e(ut),onRemoveRecipe:e(S).removeRecipe,onRemoveProduct:e(S).removeProduct,onViewRun:e(pt),onCloseRun:e(S).closeRun,onCloseRunData:r[21]||=e=>ot.value=null},null,8,[`filter-product-id`,`line-products`,`visible-recipes`,`line-runs`,`apply-result`,`run-data-view`,`run-data-loading`,`product-name`,`param-status`,`param-node-name`,`daq-window-status`,`daq-node-ch`,`onCreate`,`onApply`,`onEdit`,`onHistory`,`onRemoveRecipe`,`onRemoveProduct`,`onViewRun`,`onCloseRun`]),u(j,{open:e(V),"onUpdate:open":r[22]||=e=>a(V)?V.value=e:null,form:e(H),"onUpdate:form":r[23]||=e=>a(H)?H.value=e:null,"line-products":e(D),"line-nodes":e(E),"line-daq-nodes":e(he),"line-id":e(w),"recipe-editing":e(tt),"recipe-saving":e(nt),"recipe-error":e(rt),"recipe-stale-note":e(it),"dcw-template-ref-ch":e(fe),"node-min":e(pe),"node-max":e(me),"param-status":e(xe),onSubmit:e(dt),onClose:r[24]||=e=>V.value=!1},null,8,[`open`,`form`,`line-products`,`line-nodes`,`line-daq-nodes`,`line-id`,`recipe-editing`,`recipe-saving`,`recipe-error`,`recipe-stale-note`,`dcw-template-ref-ch`,`node-min`,`node-max`,`param-status`,`onSubmit`]),u(ne,{open:e(B),"onUpdate:open":r[25]||=e=>a(B)?B.value=e:null,"ver-recipe":e(Xe),"ver-rows":e(Ze),"ver-loading":e(Qe),"ver-msg":e($e),"param-node-name":e(Se),onRevert:e(et),onClose:r[26]||=e=>B.value=!1},null,8,[`open`,`ver-recipe`,`ver-rows`,`ver-loading`,`ver-msg`,`param-node-name`,`onRevert`]),u(re,{query:e(U),"onUpdate:query":r[27]||=e=>a(U)?U.value=e:null,"line-products":e(D),"visible-recipes":e(Ke),"line-daq-nodes":e(he),"daq-param-keys":e(yt),"query-busy":e(ht),"query-error":e(gt),"query-result":e(_t),onRun:e(vt)},null,8,[`query`,`line-products`,`visible-recipes`,`line-daq-nodes`,`daq-param-keys`,`query-busy`,`query-error`,`query-result`,`onRun`]),e(k).length?(c(),_(ie,{key:1,"line-history":e(k)},null,8,[`line-history`])):h(``,!0),u(ae,{open:e(R),"onUpdate:open":r[28]||=e=>a(R)?R.value=e:null,form:e(z),"onUpdate:form":r[29]||=e=>a(z)?z.value=e:null,"product-saving":e(qe),"product-error":e(Je),onSubmit:e(Ye),onClose:r[30]||=e=>R.value=!1},null,8,[`open`,`form`,`product-saving`,`product-error`,`onSubmit`]),e(S).error?(c(),f(`p`,Ua,[y(i(e(S).error)+`(`,1),u(o,{to:`/workshop`},{default:g(()=>[y(i(n.$t(`dcwDetail.k1bhhheq120`)),1)]),_:1}),r[32]||=y(`) `,-1)])):h(``,!0),u(oe,{"node-id":e(P),"onUpdate:nodeId":r[31]||=e=>a(P)?P.value=e:null,"line-nodes":e(E),ledger:e(Ie),onLoad:e(Le),onRollback:e(Re)},null,8,[`node-id`,`line-nodes`,`ledger`,`onLoad`,`onRollback`])]))}}}),[[`__scopeId`,`data-v-9f15f2af`]]);export{Wa as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as e}from"./CavpkQb0.js";import{t}from"./36oeS8_R.js";import{t as n}from"./JgheoP3e.js";import{t as r}from"./Crbir9cT.js";var i=[{key:`temp-sp`,name:`温度设定器`,code:`TEMP · SP`,ch:`烘箱温度设定`,unit:`℃`,min:150,max:200,decimals:1,icon:`thermo`,semantics:`烘箱/熔体温度设定:升高使热塑温度上升(成膜更均匀但能耗高、过热降解风险),降低则偏冷易厚度不均。调整后需等待热惯性(数十秒级)再评估效果。`},{key:`speed-sp`,name:`速度设定器`,code:`LINE · SP`,ch:`产线速度设定`,unit:`m/min`,min:280,max:360,decimals:0,icon:`encoder`,semantics:`产线速度设定:升速提高产能但缩短物料受热时间(温度补偿需联动),降速利于精细工艺。速度变化会同步影响张力与厚度分布。`},{key:`tension-sp`,name:`张力设定器`,code:`TENSION · SP`,ch:`膜张力设定`,unit:`kN`,min:18,max:26,decimals:1,icon:`tension`,semantics:`膜张力设定:张力过大易断膜/拉伸变形,过小则跑偏起皱。调整需平缓,并与速度联动观察。`},{key:`pressure-sp`,name:`压力设定器`,code:`PRESSURE · SP`,ch:`熔体压力设定`,unit:`MPa`,min:.6,max:1.2,decimals:2,icon:`pressure`,semantics:`熔体压力设定:反映挤出/泵送负荷,压力偏高提示阻力大或温度偏低,偏低可能是料位不足。调整需小幅步进。`}],a=[{kind:`mock`,label:`Mock 模拟 PLC`,status:`builtin`,configFields:[]},{kind:`modbus-tcp`,label:`Modbus TCP(PLC/网关 写保持寄存器)`,status:`real`,configFields:[{key:`host`,label:`设备地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.10`,hint:`PLC 或 Modbus 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`Modbus TCP 标准端口 502`},{key:`unitId`,label:`单元号(unitId)`,type:`number`,default:1,hint:`从站地址,常见 1`},{key:`register`,label:`写寄存器地址`,type:`number`,required:!0,placeholder:`40021`,hint:`4xxxx=保持寄存器(写);回读同址校验`},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]},{key:`engMin`,label:`工程量程下限`,type:`number`,hint:`线性换算:eng ∈ [engMin, engMax] ↔ raw ∈ [rawMin, rawMax];float32 且未填原始量程时 raw=eng`},{key:`engMax`,label:`工程量程上限`,type:`number`},{key:`rawMin`,label:`原始值下限`,type:`number`,hint:`如 int16 用 0~2000 表示 0.1 分辨率`},{key:`rawMax`,label:`原始值上限`,type:`number`}]},{kind:`opcua`,label:`OPC UA(PLC/MES 写节点值)`,status:`real`,configFields:[{key:`endpoint`,label:`端点(endpoint)`,type:`string`,required:!0,placeholder:`opc.tcp://192.168.1.10:4840`,hint:`OPC UA 服务器地址`},{key:`nodeId`,label:`节点 ID(NodeId)`,type:`string`,required:!0,placeholder:`ns=2;s=Channel1.Device1.SetTemp`,hint:`要写入的变量节点`},{key:`securityMode`,label:`安全策略`,type:`select`,default:`None`,options:[{value:`None`,label:`None(无加密,内网常用)`},{value:`Sign`,label:`Sign(签名)`},{value:`SignAndEncrypt`,label:`SignAndEncrypt(签名+加密)`}]},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`modbus-rtu`,label:`Modbus RTU over TCP(串口网关 写保持寄存器)`,status:`real`,configFields:[{key:`host`,label:`网关地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.50`,hint:`串口服务器/RTU 转 TCP 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`网关透传端口(常见 502 / 8899 / 26)`},{key:`unitId`,label:`从站地址(unitId)`,type:`number`,default:1,hint:`RS-485 总线上的从站地址`},{key:`register`,label:`写寄存器地址`,type:`number`,required:!0,placeholder:`40021`,hint:`4xxxx=保持寄存器(写);回读同址校验`},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]},{key:`engMin`,label:`工程量程下限`,type:`number`,hint:`线性换算:eng ∈ [engMin, engMax] ↔ raw ∈ [rawMin, rawMax];float32 且未填原始量程时 raw=eng`},{key:`engMax`,label:`工程量程上限`,type:`number`},{key:`rawMin`,label:`原始值下限`,type:`number`},{key:`rawMax`,label:`原始值上限`,type:`number`}]},{kind:`mqtt`,label:`MQTT(发布设定值到 Broker)`,status:`real`,configFields:[{key:`host`,label:`Broker 地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.20`,hint:`MQTT Broker 地址(与边缘网关约定同一 Broker)`},{key:`port`,label:`端口`,type:`number`,default:1883,hint:`MQTT TCP 端口 1883`},{key:`topic`,label:`下发主题(topic)`,type:`string`,required:!0,placeholder:`factory/line1/setpoint`,hint:`网关订阅的控制主题(勿与采集主题相同)`},{key:`jsonKey`,label:`JSON 键(可选)`,type:`string`,placeholder:`setpoint`,hint:`留空 = 纯数字报文;填写 = {"键":值} JSON 报文`},{key:`qos`,label:`QoS`,type:`number`,default:1,hint:`0=至多一次 1=至少一次(推荐)`},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`http`,label:`HTTP/REST(POST 设定值)`,status:`real`,configFields:[{key:`url`,label:`写接口地址(URL)`,type:`string`,required:!0,placeholder:`http://192.168.1.30/api/setpoint`,hint:`接收设定值的 HTTP 接口(POST JSON)`},{key:`bodyKey`,label:`JSON 键(可选)`,type:`string`,placeholder:`setpoint`,hint:`留空 = {"value": 设定值};填写 = {"键": 设定值}`},{key:`headersJSON`,label:`请求头(可选)`,type:`string`,placeholder:`{"Authorization":"Bearer xxx"}`,hint:`JSON 对象形式的 HTTP 头`}]}],o=(e,t)=>r({base:`/api/workshop/dcw`,path:e,init:t,retries:(t?.method??`GET`).toUpperCase()===`GET`?2:0});function s(){let r=e([]),s=new Map,c=e({running:!0,nodesTotal:0,nodesOnline:0,writesTotal:0,writesFailed:0}),l=e(i.map(e=>({...e}))),u=e([]),d=e([]),f=e([]),p=e([]),m=e([]),h=e({}),g=e([]),_=e(a.map(e=>({kind:e.kind,label:e.label,status:e.status,configFields:e.configFields})));function v(e){let t=r.findIndex(t=>t.id===e.id);t>=0?r[t]=Object.assign(r[t],e):(r.push(e),s.set(e.id,r[r.length-1]))}function y(e){if(e.node){if(e.op===`removed`){let t=r.findIndex(t=>t.id===e.node.id);t>=0&&r.splice(t,1),s.delete(e.node.id);return}v(e.node)}}let b=0,x=null;function S(){b++,b===1&&(x=t().subscribe(C));let e=!1;return()=>{e||(e=!0,--b===0&&(x?.(),x=null))}}function C(e){if(e.type===`dcw.written`){let t=e.payload,n=s.get(t.nodeId);n&&(n.value=t.value,n.state=t.ok?`ok`:`error`,n.lastWriteAt=t.at,t.ok&&(n.lastAckAt=t.at)),f.unshift({id:`${t.nodeId}-${t.at}`,nodeId:t.nodeId,nodeName:n?.name??t.nodeId,param:``,eng:t.value,raw:t.raw,ok:t.ok,message:t.message,recipeRunId:t.recipeRunId,at:t.at}),f.length>60&&f.splice(60)}else if(e.type===`dcw.read`){let t=e.payload,n=s.get(t.nodeId);n&&(t.ok&&(n.readValue=t.value),n.lastReadAt=t.at,n.lastReadError=t.ok?null:t.message)}else if(e.type===`dcw.node.changed`)y(e.payload);else if(e.type===`dcw.controller`)Object.assign(c,e.payload);else if(e.type===`dcw.optimization.changed`){let t=e.payload.record,n=g.findIndex(e=>e.id===t.id);n>=0?g[n]=t:g.unshift(t),g.length>200&&(g.length=200)}}async function w(){try{let e=await o(``);r.splice(0,r.length,...e.nodes),s.clear();for(let e of r)s.set(e.id,e);Object.assign(c,e.controller),e.templates?.length&&l.splice(0,l.length,...e.templates.map(e=>({...e}))),e.drivers?.length&&_.splice(0,_.length,...e.drivers),u.splice(0,u.length,...e.recipes??[]),d.splice(0,d.length,...e.runs??[]),f.splice(0,f.length,...e.history??[]),p.splice(0,p.length,...e.products??[]),m.splice(0,m.length,...e.lines??[]);for(let e of Object.keys(h))Reflect.deleteProperty(h,e);for(let t of e.lineStates??[])h[t.lineId]=t;T.loaded=!0,T.error=``}catch(e){T.error=n(e)}}let T=e({nodes:r,controller:c,templates:l,recipes:u,runs:d,history:f,products:p,lines:m,lineStates:h,optimizations:g,driverCatalog:_,loaded:!1,error:``,ensureWsFeed:S,load:w,loadOptimizations:async e=>{let t=new URLSearchParams;e?.lineId&&t.set(`lineId`,e.lineId),e?.recipeId&&t.set(`recipeId`,e.recipeId),e?.nodeId&&t.set(`nodeId`,e.nodeId),e?.status&&t.set(`status`,e.status),t.set(`limit`,String(e?.limit??100));let n=await o(`/optimizations?${t.toString()}`);g.splice(0,g.length,...n.records)},fetchLedger:async e=>(await o(`/${e}/param-ledger`)).ledger,optimizationSeries:async(e,t)=>o(`/optimizations/${e}/series${t?`?windowMs=${t}`:``}`),judgeOptimization:async(e,t,n)=>{await o(`/optimizations/${e}/judge`,{method:`POST`,body:JSON.stringify({verdict:t,reason:n})})},rollbackOptimization:async e=>{await o(`/optimizations/${e}/rollback`,{method:`POST`,body:JSON.stringify({})})},rollbackNode:async(e,t)=>{await o(`/journal/node/${e}/rollback`,{method:`POST`,body:JSON.stringify({to:t})})},markGood:async(e,t)=>{await o(`/recipes/${e}/mark-good`,{method:`POST`,body:JSON.stringify({runId:t})})},rollbackRecipeGood:async e=>{await o(`/recipes/${e}/rollback-good`,{method:`POST`,body:JSON.stringify({})})},createFromTemplate:async(e,t)=>{let n=await o(``,{method:`POST`,body:JSON.stringify({templateRef:e,...t})});return v(n.node),n.node},patchNode:async(e,t)=>{await o(`/${e}`,{method:`PATCH`,body:JSON.stringify(t)})},removeNode:async e=>{await o(`/${e}`,{method:`DELETE`});let t=r.findIndex(t=>t.id===e);t>=0&&r.splice(t,1),s.delete(e)},bindNode:async(e,t)=>{v((await o(`/${e}/bind`,{method:`POST`,body:JSON.stringify({deviceId:t})})).node)},write:async(e,t)=>o(`/${e}/write`,{method:`POST`,body:JSON.stringify({value:t})}).then(e=>e.outcome),readNode:async e=>o(`/${e}/read`,{method:`POST`,body:JSON.stringify({})}).then(e=>e.read),testDriver:async(e,t)=>o(`/test-driver`,{method:`POST`,body:JSON.stringify({driver:e,driverConfig:t})}).then(e=>e.test),testNode:async e=>o(`/${e}/test`,{method:`POST`}).then(e=>e.test),startStop:async e=>{let t=await o(`/controller`,{method:`POST`,body:JSON.stringify({action:e})});Object.assign(c,t.controller)},createTemplate:async e=>{let t=await o(`/templates`,{method:`POST`,body:JSON.stringify(e)});return l.push(t.template),t.template},createRecipe:async e=>{let t=await o(`/recipes`,{method:`POST`,body:JSON.stringify(e)});return u.push(t.recipe),t.recipe},updateRecipe:async(e,t)=>{let n=await o(`/recipes/${e}`,{method:`PATCH`,body:JSON.stringify(t)}),r=u.findIndex(t=>t.id===e);return r>=0&&(u[r]=n.recipe),n.recipe},removeRecipe:async e=>{await o(`/recipes/${e}`,{method:`DELETE`});let t=u.findIndex(t=>t.id===e);t>=0&&u.splice(t,1)},applyRecipe:async e=>{let t=await o(`/recipes/${e}/apply`,{method:`POST`});return d.push(t.run),t.run},recipeVersions:async e=>(await o(`/recipes/${e}/versions`)).versions??[],revertRecipe:async(e,t)=>{let n=await o(`/recipes/${e}/revert`,{method:`POST`,body:JSON.stringify(t)}),r=u.findIndex(t=>t.id===e);return r>=0&&(u[r]=n.recipe),n.recipe},closeRun:async e=>{let t=await o(`/runs/${e}/close`,{method:`POST`}),n=d.findIndex(t=>t.id===e);return n>=0&&(d[n]=t.run),t.run},runData:e=>o(`/runs/${e}/data`),nodeById:e=>s.get(e)??r.find(t=>t.id===e),createProduct:async e=>{let t=await o(`/products`,{method:`POST`,body:JSON.stringify(e)});return p.push(t.product),t.product},updateProduct:async(e,t)=>o(`/products/${e}`,{method:`PATCH`,body:JSON.stringify(t)}).then(e=>(E(),e.product)),removeProduct:async e=>{await o(`/products/${e}`,{method:`DELETE`});let t=p.findIndex(t=>t.id===e);t>=0&&p.splice(t,1)},createLine:async e=>{let t=await o(`/lines`,{method:`POST`,body:JSON.stringify(e)});return m.push(t.line),t.line},updateLine:async(e,t)=>{let n=await o(`/lines/${e}`,{method:`PATCH`,body:JSON.stringify(t)}),r=m.findIndex(t=>t.id===e);r>=0&&(m[r]=n.line)},removeLine:async(e,t=!1)=>{await o(`/lines/${e}${t?`?purge=1`:``}`,{method:`DELETE`});let n=m.findIndex(t=>t.id===e);n>=0&&m.splice(n,1),Reflect.deleteProperty(h,e),await w()},startLine:async(e,t)=>{let n=await o(`/lines/${e}/start`,{method:`POST`,body:JSON.stringify({recipeId:t})});h[e]=n.line},stopLine:async e=>{let t=await o(`/lines/${e}/stop`,{method:`POST`});h[e]=t.line},lineStateOf:e=>h[e]??{lineId:e,active:!1,runId:null,recipeId:null,recipeName:null,productId:null,productName:null,startedAt:null,taggedSamples:0},queryLine:e=>{let t=new URLSearchParams;return e.lineId&&t.set(`lineId`,e.lineId),e.productId&&t.set(`productId`,e.productId),e.recipeId&&t.set(`recipeId`,e.recipeId),e.paramKey&&t.set(`paramKey`,e.paramKey),e.nodeId&&t.set(`nodeId`,e.nodeId),e.fromMs!=null&&t.set(`from`,String(e.fromMs)),e.toMs!=null&&t.set(`to`,String(e.toMs)),e.bucketMs!=null&&t.set(`bucketMs`,String(e.bucketMs)),e.limit!=null&&t.set(`limit`,String(e.limit)),o(`/line/query?${t.toString()}`)}});async function E(){try{let e=await o(``);p.splice(0,p.length,...e.products??[]),u.splice(0,u.length,...e.recipes??[])}catch{}}return T}var c=`__dcwStream`;function l(){let e=globalThis;return e[c]||(e[c]=s()),e[c]}export{a as n,l as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{N as e,S as t,dt as n,ft as r,mt as i,v as a}from"./CavpkQb0.js";import{D as o,G as s,H as c,P as l,R as u,S as d,V as f,W as p,b as m,d as h,et as g,f as _,h as v,i as y,m as b,nt as x,p as S,rt as C,tt as w,v as T,y as E}from"./ByMj6e7s.js";import{d as D,l as O,n as k,t as A,u as j}from"./Dqz5HiXa.js";import{d as M,p as N}from"./Br3AySNQ.js";import{n as P,r as ee,t as F}from"./BgnhB8r5.js";import{i as I,t as L}from"./S799kNo8.js";import{n as R}from"./Cnrmlixo.js";import{t as z}from"./DJyNDnag.js";import{Ct as B,Mt as te,Tt as ne,d as re,jt as V,n as H,rt as ie,t as U,u as ae}from"./C2YYOgMe.js";import{C as oe,t as se}from"./Bub2P5me.js";import{a as W,c as ce,j as le}from"./wDPc4SSR.js";import{t as ue}from"./eutnXI4F.js";import{a as de,i as fe,n as pe,r as me,t as he}from"./bt__BP-I.js";import{t as ge}from"./lO5tpDZ52.js";import{n as _e}from"./CtPNnATm2.js";import{t as ve}from"./B9rIcCX12.js";import{t as G}from"./CwLQAKay2.js";import{t as ye}from"./Sjjmp5OD2.js";import{t as K}from"./CI2yXRr42.js";import{t as q}from"./BDNMzG2s2.js";import{t as J}from"./DlUQa0wn.js";import{t as be}from"./Bfe2qOYs.js";import{a as xe,i as Se,l as Ce,t as we,u as Te}from"./D0SNhlnt.js";import{t as Ee}from"./C_sjV3Ee.js";var De=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}}}},Oe=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]:V(V({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:_}}}}},De(e)),{"&-rtl":{direction:`rtl`}})}},ke=re(`Layout`,e=>{let{colorText:t,controlHeightSM:n,controlHeight:r,controlHeightLG:i,marginXXS:a}=e,o=i*1.25;return[Oe(ae(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`}}),Ae=()=>({prefixCls:String,hasSider:{type:Boolean,default:void 0},tagName:String});function Y(e){let{suffixCls:t,tagName:n,name:r}=e;return e=>d({compatConfig:{MODE:3},name:r,props:Ae(),setup(r,i){let{slots:a}=i,{prefixCls:o}=H(t,r);return()=>{let t=V(V({},r),{prefixCls:o.value,tagName:n});return m(e,t,a)}}})}var je=d({compatConfig:{MODE:3},props:Ae(),setup(e,t){let{slots:n}=t;return()=>m(e.tagName,{class:e.prefixCls},n)}}),Me=d({compatConfig:{MODE:3},inheritAttrs:!1,props:Ae(),setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:o}=H(``,e),[s,l]=ke(i),u=a([]);c(de,{addSider:e=>{u.value=[...u.value,e]},removeSider:e=>{u.value=u.value.filter(t=>t!==e)}});let d=h(()=>{let{prefixCls:t,hasSider:n}=e;return{[l.value]:!0,[`${t}`]:!0,[`${t}-has-sider`]:typeof n==`boolean`?n:u.value.length>0,[`${t}-rtl`]:o.value===`rtl`}});return()=>{let{tagName:t}=e;return s(m(t,V(V({},r),{class:[d.value,r.class]}),n))}}}),Ne=Y({suffixCls:`layout`,tagName:`section`,name:`ALayout`})(Me),X=Y({suffixCls:`layout-header`,tagName:`header`,name:`ALayoutHeader`})(je),Z=Y({suffixCls:`layout-footer`,tagName:`footer`,name:`ALayoutFooter`})(je),Q=Y({suffixCls:`layout-content`,tagName:`main`,name:`ALayoutContent`})(je),Pe={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 Fe(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){Ie(e,t,n[t])})}return e}function Ie(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Le=function(e,t){var n=Fe({},e,t.attrs);return m(le,Fe({},n,{icon:Pe}),null)};Le.displayName=`BarsOutlined`,Le.inheritAttrs=!1;var Re={xs:`479.98px`,sm:`575.98px`,md:`767.98px`,lg:`991.98px`,xl:`1199.98px`,xxl:`1599.98px`,xxxl:`1999.98px`},ze=()=>({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:U.any,width:U.oneOfType([U.number,U.string]),collapsedWidth:U.oneOfType([U.number,U.string]),breakpoint:U.oneOf(ie(`xs`,`sm`,`md`,`lg`,`xl`,`xxl`,`xxxl`)),theme:U.oneOf(ie(`light`,`dark`)).def(`dark`),onBreakpoint:Function,onCollapse:Function}),Be=(()=>{let e=0;return function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:``;return e+=1,`${t}${e}`}})(),$=d({compatConfig:{MODE:3},name:`ALayoutSider`,inheritAttrs:!1,props:B(ze(),{collapsible:!1,defaultCollapsed:!1,reverseArrow:!1,width:200,collapsedWidth:80}),emits:[`breakpoint`,`update:collapsed`,`collapse`],setup(e,n){let{emit:r,attrs:i,slots:a}=n,{prefixCls:s}=H(`layout-sider`,e),d=o(de,void 0),f=t(!!(e.collapsed===void 0?e.defaultCollapsed:e.collapsed)),p=t(!1);g(()=>e.collapsed,()=>{f.value=!!e.collapsed}),c(fe,f);let h=(t,n)=>{e.collapsed===void 0&&(f.value=t),r(`update:collapsed`,t),r(`collapse`,t,n)},_=t(e=>{p.value=e.matches,r(`breakpoint`,e.matches),f.value!==e.matches&&h(e.matches,`responsive`)}),v;function y(e){return _.value(e)}let b=Be(`ant-sider-`);d&&d.addSider(b),u(()=>{g(()=>e.breakpoint,()=>{try{v?.removeEventListener(`change`,y)}catch{v?.removeListener(y)}if(typeof window<`u`){let{matchMedia:t}=window;if(t&&e.breakpoint&&e.breakpoint in Re){v=t(`(max-width: ${Re[e.breakpoint]})`);try{v.addEventListener(`change`,y)}catch{v.addListener(y)}y(v)}}},{immediate:!0})}),l(()=>{try{v?.removeEventListener(`change`,y)}catch{v?.removeListener(y)}d&&d.removeSider(b)});let x=()=>{h(!f.value,`clickTrigger`)};return()=>{let t=s.value,{collapsedWidth:n,width:r,reverseArrow:o,zeroWidthTriggerStyle:c,trigger:l=a.trigger?.call(a),collapsible:u,theme:d}=e,h=f.value?n:r,g=ge(h)?`${h}px`:String(h),_=parseFloat(String(n||0))===0?m(`span`,{onClick:x,class:ne(`${t}-zero-width-trigger`,`${t}-zero-width-trigger-${o?`right`:`left`}`),style:c},[l||m(Le,null,null)]):null,v={expanded:m(o?_e:ve,null,null),collapsed:m(o?ve:_e,null,null)}[f.value?`collapsed`:`expanded`],y=l===null?null:_||m(`div`,{class:`${t}-trigger`,onClick:x,style:{width:g}},[l||v]),b=[i.style,{flex:`0 0 ${g}`,maxWidth:g,minWidth:g,width:g}],S=ne(t,`${t}-${d}`,{[`${t}-collapsed`]:!!f.value,[`${t}-has-trigger`]:u&&l!==null&&!_,[`${t}-below`]:!!p.value,[`${t}-zero-width`]:parseFloat(g)===0},i.class);return m(`aside`,te(te({},i),{},{class:S,style:b}),[m(`div`,{class:`${t}-children`},[a.default?.call(a)]),u||p.value&&_?y:null])}}}),Ve=X,He=Z,Ue=$,We=Q,Ge=V(Ne,{Header:X,Footer:Z,Content:Q,Sider:$,install:e=>(e.component(Ne.name,Ne),e.component(X.name,X),e.component(Z.name,Z),e.component($.name,$),e.component(Q.name,Q),e)}),Ke=[`width`,`height`],qe=Object.assign(d({__name:`AwLogo`,props:{size:{default:32}},setup(e){return(t,n)=>(f(),v(`svg`,{width:e.size,height:e.size,viewBox:`0 0 64 64`,fill:`none`,"aria-hidden":`true`},[...n[0]||=[T(`<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,Ke))}}),{__name:`AwLogo`}),Je={class:`logo`},Ye={class:`logo-mark`,"aria-hidden":`true`},Xe={class:`logo-text`},Ze={class:`logo-title`},Qe={class:`app-menu`},$e={class:`menu-group-label`},et={class:`menu-group-text`},tt={class:`menu-group-sep`,"aria-hidden":`true`},nt=[`title`,`onClick`],rt={class:`sider-footer`},it={class:`footer-line`},at=Object.assign(q(d({__name:`AppSidebar`,setup(t){let r=K(),{t:o}=R(),s=N(),c=F(),d=P(),S=a(!1),T=h(()=>[{id:`console`,label:o(`menu.groups.console`),items:[{key:`/`,icon:`i-tabler-layout-dashboard`,label:o(`menu.dashboard`),motion:`im-pop`},{key:`/workshop`,icon:`i-tabler-box`,label:o(`menu.workshop`),motion:`im-pop`},{key:`/town`,icon:`i-tabler-map-2`,label:o(`menu.town`),motion:`im-pop`},{key:`/daq`,icon:`i-tabler-activity`,label:o(`menu.daq`),motion:`im-pop`},{key:`/dcw`,icon:`i-tabler-settings-automation`,label:o(`menu.dcw`),motion:`im-pop`},{key:`/aml`,icon:`i-tabler-flask`,label:o(`menu.aml`),motion:`im-pop`}]},{id:`ops`,label:o(`menu.groups.ops`),items:[{key:`/operations`,icon:`i-tabler-stream`,label:o(`menu.operations`),motion:`im-pop`},{key:`/monitor`,icon:`i-tabler-cpu`,label:o(`menu.monitor`),motion:`im-pulse`},{key:`/logs`,icon:`i-tabler-list-details`,label:o(`menu.logs`),motion:`im-pop`}]},{id:`system`,label:o(`menu.groups.system`),items:[{key:`/tokens`,icon:`i-tabler-key`,label:o(`menu.tokens`),motion:`im-nudge-up`},{key:`/users`,icon:`i-tabler-users-group`,label:o(`menu.users`),motion:`im-pop`},{key:`/permissions`,icon:`i-tabler-shield-lock`,label:o(`menu.permissions`),motion:`im-pop`,adminOnly:!0},{key:`/plugins`,icon:`i-tabler-puzzle`,label:o(`menu.plugins`),motion:`im-pop`},{key:`/settings`,icon:`i-tabler-settings`,label:o(`menu.settings`),motion:`im-rotate`}]}].map(e=>({...e,items:e.items.filter(e=>!e.adminOnly||S.value&&r.isAdmin)})).filter(e=>e.items.length>0)),E=e=>e===`/`?s.path===`/`:s.path.startsWith(e),D=e=>{k.value&&d.closeMobileNav(),E(e)||M(e)},{isDrawer:k,isTablet:j}=J();u(()=>{S.value=!0});let ee=h(()=>S.value?k.value?`drawer`:j.value?`rail`:`full`:void 0),I=h(()=>k.value?!1:j.value?!0:d.sidebarCollapsed),L=h(()=>!I.value),z=h(()=>k.value&&d.mobileNavOpen);g(()=>s.path,()=>{d.mobileNavOpen&&d.closeMobileNav()}),w(()=>{typeof document>`u`||(document.body.classList.toggle(`nav-drawer`,k.value),document.body.classList.toggle(`nav-drawer-open`,z.value))}),l(()=>{typeof document>`u`||document.body.classList.remove(`nav-drawer`,`nav-drawer-open`)}),g(z,e=>{typeof document>`u`||(document.body.style.overflow=e?`hidden`:``)});let B=e=>{e.key===`Escape`&&z.value&&d.closeMobileNav()};return u(()=>window.addEventListener(`keydown`,B)),l(()=>{window.removeEventListener(`keydown`,B),typeof document<`u`&&(document.body.style.overflow=``)}),(t,r)=>{let a=qe,o=Ue;return f(),v(y,null,[m(o,{collapsed:e(I),trigger:null,collapsible:``,width:228,"collapsed-width":64,class:`app-sider`,"data-nav-mode":e(ee),"aria-hidden":e(k)&&!e(z)?`true`:void 0},{default:x(()=>[_(`div`,Je,[_(`div`,Ye,[m(a,{size:30})]),m(A,{name:`slide-fade`},{default:x(()=>[C(_(`div`,Xe,[_(`span`,Ze,i(e(c).name),1),r[1]||=_(`span`,{class:`logo-sub`},`digital twin`,-1)],512),[[O,e(L)]])]),_:1})]),_(`nav`,Qe,[(f(!0),v(y,null,p(e(T),t=>(f(),v(`div`,{key:t.id,class:`menu-group`},[C(_(`div`,$e,[_(`span`,et,i(t.label),1),r[2]||=_(`span`,{class:`menu-group-rule`,"aria-hidden":`true`},null,-1)],512),[[O,e(L)]]),C(_(`div`,tt,null,512),[[O,!e(L)]]),(f(!0),v(y,null,p(t.items,t=>(f(),v(`button`,{key:t.key,type:`button`,class:n([`menu-item im`,{active:E(t.key)}]),title:e(L)?void 0:t.label,onClick:e=>D(t.key)},[_(`span`,{class:n([`menu-icon`,[t.icon,t.motion]])},null,2),C(_(`span`,{class:`menu-label`},i(t.label),513),[[O,e(L)]])],10,nt))),128))]))),128))]),C(_(`div`,rt,[r[4]||=_(`div`,{class:`footer-rule`},null,-1),_(`div`,it,[_(`span`,null,`v`+i(e(c).version),1),r[3]||=_(`span`,{class:`sep`},`/`,-1),_(`span`,null,i(e(c).mode),1)])],512),[[O,e(L)]])]),_:1},8,[`collapsed`,`data-nav-mode`,`aria-hidden`]),e(z)?(f(),v(`div`,{key:0,class:`nav-scrim`,"aria-hidden":`true`,onClick:r[0]||=t=>e(d).closeMobileNav()})):b(``,!0)],64)}}}),[[`__scopeId`,`data-v-9bace048`]]),{__name:`AppSidebar`}),ot={key:0,class:`nc-count`},st={class:`nc-menu`},ct={class:`nc-menu-title`},lt={class:`nc-unread`},ut={class:`nc-list`},dt=[`onClick`],ft={class:`nc-item-body`},pt={class:`nc-item-top`},mt={class:`nc-item-type`},ht={class:`nc-item-time`},gt={class:`nc-item-title`},_t={key:0,class:`nc-item-text`},vt={key:0,class:`nc-dot`,"aria-hidden":`true`},yt={key:0,class:`nc-empty`},bt=Object.assign(q(d({__name:`NotificationCenter`,setup(t){let r=Te(),o=Ee(),{hostNotifications:s}=we(),c=a(!1),d=a(null);u(async()=>{d.value=s(),r.loaded?await r.backfill():await r.loadSnapshot()}),l(()=>{d.value?.(),d.value=null}),g(()=>r.liveSeq,()=>{let e=r.liveItem;e&&W.info({content:`${e.title}${e.body?` · ${e.body.slice(0,60)}`:``}`,duration:6,onClick:()=>void w(e)})});let m={mention:{label:`@ 提及`,icon:`i-tabler-at`,tone:`mention`},agent_reply:{label:`Agent 回复`,icon:`i-tabler-robot`,tone:`reply`},hitl_request:{label:`待审批`,icon:`i-tabler-alert-triangle`,tone:`hitl`},hitl_resolved:{label:`审批结果`,icon:`i-tabler-circle-check`,tone:`ok`},member:{label:`成员变更`,icon:`i-tabler-user-plus`,tone:`info`}},C=h(()=>r.unreadCount>99?`99+`:String(r.unreadCount));async function w(e){if(c.value=!1,!e.readAt)try{await r.markRead({id:e.id})}catch{}if(e.hitlKind||e.hitlId||e.type===`hitl_request`){await M({path:`/monitor`,query:{agentId:String(e.payload?.agentId??``),channelId:e.channelId??``}});return}if(!e.channelId)return;if(!o.loaded)try{await o.load()}catch{}let t=o.workspaces.find(t=>t.channelIds.includes(e.channelId));if(!t){await M(`/workshop`);return}o.setActiveChannel(t.id,e.channelId),await M({path:`/workshop/w/${t.id}`,query:{view:`chat`}})}let T=a(!1);async function E(){if(!T.value){T.value=!0;try{await r.markRead({all:!0})}catch(e){W.error(e instanceof Error?e.message:`标记已读失败`)}finally{T.value=!1}}}return(t,a)=>{let o=G;return f(),S(o,{open:c.value,"onUpdate:open":a[0]||=e=>c.value=e,placement:`bottomRight`,trigger:[`click`]},{overlay:x(()=>[_(`div`,st,[_(`div`,ct,[a[2]||=_(`span`,null,`我的通知`,-1),_(`span`,lt,i(e(r).unreadCount)+` 未读`,1),e(r).unreadCount>0?(f(),v(`button`,{key:0,type:`button`,class:`nc-markall`,onClick:D(E,[`stop`])},` 全部已读 `)):b(``,!0)]),_(`div`,ut,[(f(!0),v(y,null,p(e(r).items,t=>(f(),v(`button`,{key:t.id,type:`button`,class:n([`nc-item`,{unread:!t.readAt}]),onClick:e=>w(t)},[_(`span`,{class:n([`nc-item-icon`,[m[t.type]?.icon,m[t.type]?.tone]])},null,2),_(`span`,ft,[_(`span`,pt,[_(`span`,mt,i(m[t.type]?.label??t.type),1),_(`span`,ht,i(e(be)(t.createdAt,!1)),1)]),_(`span`,gt,i(t.title),1),t.body?(f(),v(`span`,_t,i(t.body),1)):b(``,!0)]),t.readAt?b(``,!0):(f(),v(`span`,vt))],10,dt))),128)),e(r).items.length===0?(f(),v(`div`,yt,` 暂无通知 —— 被 @ 、收到 Agent 回复或审批请求时会出现在这里 `)):b(``,!0)])])]),default:x(()=>[_(`button`,{class:n([`icon-btn nc-bell`,{unread:e(r).unreadCount>0}]),title:`我的通知(@ 提及 / Agent 回复 / 审批)`},[a[1]||=_(`span`,{class:`i-tabler-bell`},null,-1),e(r).unreadCount>0?(f(),v(`span`,ot,i(C.value),1)):b(``,!0)],2)]),_:1},8,[`open`])}}}),[[`__scopeId`,`data-v-d5946b75`]]),{__name:`WorkshopNotificationCenter`}),xt=I(`app.routeTrail`,()=>{let e=a([]);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:ee.localStorage()}});function St(){let{t:e}=R(),t=Ee(),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 Ct=[`aria-label`],wt=[`title`,`onClick`,`onKeydown`],Tt={class:`node-title`},Et=[`aria-label`,`title`,`onClick`],Dt=Object.assign(q(d({__name:`TrailNav`,props:{hydrated:{type:Boolean}},setup(t){let r=N(),{t:a}=R(),o=xt(),{metaFor:s}=St(),c=e=>{e!==r.path&&M(e)},l=e=>{let t=o.remove(e);if(e!==r.path)return;let n=o.waypoints,i=n[Math.min(Math.max(t-1,0),Math.max(n.length-1,0))]?.path??`/`;M(i)};return(u,d)=>(f(),v(`nav`,{class:`trail`,"aria-label":e(a)(`header.trail`)},[m(k,{name:`stamp`,tag:`div`,class:`trail-row`},{default:x(()=>[t.hydrated?(f(!0),v(y,{key:0},p(e(o).waypoints,(t,a)=>(f(),v(y,{key:t.path},[a>0?(f(),v(`span`,{key:`link-${t.path}`,class:`trail-link`,"aria-hidden":`true`})):b(``,!0),_(`div`,{class:n([`trail-node`,{active:t.path===e(r).path}]),role:`button`,tabindex:`0`,title:e(s)(t.path).title,onClick:e=>c(t.path),onKeydown:j(D(e=>c(t.path),[`prevent`]),[`enter`])},[_(`span`,{class:n([`node-icon`,e(s)(t.path).icon])},null,2),_(`span`,Tt,i(e(s)(t.path).title),1),_(`button`,{class:`node-close`,"aria-label":u.$t(`appHeader.kzwjv99001`,{p0:e(s)(t.path).title}),title:u.$t(`appHeader.kzwjv99001`,{p0:e(s)(t.path).title}),onClick:D(e=>l(t.path),[`stop`])},[...d[0]||=[_(`span`,{class:`i-tabler-x`},null,-1)]],8,Et)],42,wt)],64))),128)):b(``,!0)]),_:1})],8,Ct))}}),[[`__scopeId`,`data-v-9570d879`]]),{__name:`AppHeaderTrailNav`});function Ot(){let{t:e}=R(),t=xe(),n=Se(),r=[`omp-dialog`,`dcw-approval`,`codex-approval`,`opencode-permission`,`dsh-permission`,`claude-permission`,`qwen-permission`,`hermes-permission`],i=t=>{switch(t){case`omp-dialog`:return e(`appHeader.hitlKindOmp`);case`dcw-approval`:return e(`appHeader.hitlKindDcw`);case`codex-approval`:return e(`appHeader.hitlKindCodex`);case`opencode-permission`:return e(`appHeader.hitlKindOpencode`);case`dsh-permission`:return e(`appHeader.hitlKindDsh`);case`claude-permission`:return`claude 权限`;case`qwen-permission`:return`qwen 权限`;case`hermes-permission`:return`hermes 权限`;default:return t}},o=e=>{M({path:`/monitor`,query:{agentId:e.agentId,channelId:e.channelId}})},s=e=>e.channelId in n.permissions,c=e=>{let t=n.permissions[e.channelId];return t?t.canApprove||t.isAdmin?!0:n.settings[e.channelId]?.legacy===!0:!1},l=e=>e.requestType?e.requestType:e.questions&&e.questions.length>0||e.method===`input`||e.method===`editor`||e.method===`select`?`question`:`approval`,u=e=>l(e)===`question`,d=e=>e.kind===`opencode-permission`&&(e.options?.length??0)>0,f=a({}),p=a({}),m=a({}),h=e=>`${e.kind}:${e.id}`,g=(e,t)=>`${h(e)}:${t}`,_=(e,t,n)=>t.multiSelect?(p.value[g(e,t.id)]??[]).includes(n):f.value[g(e,t.id)]===n,v=(e,t,n)=>{let r=g(e,t.id);if(t.multiSelect){let e=p.value[r]??[];p.value={...p.value,[r]:e.includes(n)?e.filter(e=>e!==n):[...e,n]}}else f.value={...f.value,[r]:n}},y=(e,t)=>{let n=g(e,t.id),r=t.multiSelect?p.value[n]??[]:[f.value[n]??``].filter(Boolean),i=(m.value[n]??``).trim();return[...r.filter(Boolean),i].filter(Boolean).join(`、`)},b=`__plain`,x=e=>{if(e.questions&&e.questions.length>0)return e.questions;let t=e.options?.map(e=>({label:e}));return[{id:b,question:e.message||e.detail||e.title,options:t,multiSelect:!1,freeText:!(t&&t.length>0)}]},S=async(e,n)=>{let r=await t.answer(e,n);if(r.ok){W.success(`已提交`);return}r.code===`ALREADY_RESOLVED`?W.warning(`已被他人处理`):r.code===`APPROVAL_FORBIDDEN`?W.warning(r.message||`无审批权限(该 Channel 策略不允许你决策)`):W.error(r.message)};return{HITL_KINDS:r,hitlKindLabel:i,hitlGo:o,permsKnown:s,canAnswer:c,requestTypeOf:l,isQuestion:u,isNativeOptionApproval:d,qSingle:f,qMulti:p,qFree:m,itemKey:h,slotOf:g,isChosen:_,chooseOption:v,answerOf:y,PLAIN_QID:b,questionsOf:x,answer:S,submitQuestion:async e=>{let t=x(e),n=t.findIndex(t=>!y(e,t).trim());if(n>=0){W.warning(`请先填写第 ${n+1} 题(${t[n].question||`未命名问题`})的答案`);return}await S(e,{answers:t.map((t,n)=>({id:t.id||String(n),answer:y(e,t)}))})},submitApproval:async(e,t)=>{await S(e,{confirmed:t})},submitNativeOption:async(e,t)=>{await S(e,{response:t})},submitCancel:async e=>{await S(e,{cancelled:!0})},policyLabel:e=>e.policy===`any_member`?`任一成员可决策`:e.policy?`仅 owner 可决策`:``}}var kt=[`title`],At={class:`hitl-count`},jt={class:`hitl-menu`},Mt={class:`hitl-menu-title`},Nt=[`onClick`],Pt={class:`hitl-item-top`},Ft={class:`hitl-item-agent`},It={class:`hitl-item-kind`},Lt=[`data-type`],Rt={class:`hitl-item-title`},zt={key:0,class:`hitl-item-detail`},Bt={key:1,class:`hitl-item-detail`},Vt={key:2,class:`hitl-item-policy`},Ht={key:0,class:`hitl-answer-note`},Ut={key:1,class:`hitl-answer-note`},Wt={key:2,class:`hitl-answer-note`},Gt={key:3,class:`hitl-answer`},Kt={key:0,class:`hitl-q-title`},qt={key:1,class:`hitl-q-desc`},Jt={key:2,class:`hitl-opts`},Yt=[`title`,`onClick`],Xt={class:`hitl-btns`},Zt={key:0,class:`hitl-opts`},Qt=[`onClick`],$t={class:`hitl-btns`},en=Object.assign(q(d({__name:`HitlBell`,setup(t){let{t:r}=R(),a=xe(),{HITL_KINDS:o,hitlKindLabel:s,hitlGo:c,permsKnown:l,canAnswer:u,requestTypeOf:d,isQuestion:h,isNativeOptionApproval:g,qFree:C,slotOf:w,isChosen:T,chooseOption:D,questionsOf:O,submitQuestion:k,submitNativeOption:A,submitApproval:j,submitCancel:M,policyLabel:N}=Ot();return(t,P)=>{let ee=se,F=ce,I=G;return e(a).count>0?(f(),S(I,{key:0,placement:`bottomRight`},{overlay:x(()=>[_(`div`,jt,[_(`div`,Mt,i(e(r)(`appHeader.hitlBadge`))+` · `+i(e(a).count),1),(f(!0),v(y,null,p(e(a).items,t=>(f(),v(`div`,{key:`${t.kind}:${t.id}`,class:`hitl-item`},[_(`button`,{type:`button`,class:`hitl-item-head`,onClick:n=>e(c)(t)},[_(`span`,Pt,[_(`span`,Ft,i(t.agentName),1),_(`span`,It,i(e(s)(t.kind)),1),t.requestType||e(h)(t)?(f(),v(`span`,{key:0,class:`hitl-item-reqtype`,"data-type":e(d)(t)},i(e(h)(t)?`提问`:`审批`),9,Lt)):b(``,!0)]),_(`span`,Rt,i(t.title),1),t.detail?(f(),v(`span`,zt,i(t.detail),1)):b(``,!0),t.message?(f(),v(`span`,Bt,i(t.message),1)):b(``,!0),t.policy?(f(),v(`span`,Vt,[P[1]||=_(`span`,{class:`i-tabler-shield-lock`},null,-1),E(` 策略:`+i(e(N)(t)),1)])):b(``,!0)],8,Nt),e(o).includes(t.kind)?e(l)(t)?e(u)(t)?(f(),v(`div`,Gt,[e(h)(t)?(f(),v(y,{key:0},[(f(!0),v(y,null,p(e(O)(t),(r,a)=>(f(),v(`div`,{key:`${t.kind}:${t.id}:${r.id}:${a}`,class:`hitl-q`},[t.questions&&t.questions.length>1?(f(),v(`div`,Kt,i(a+1)+`. `+i(r.header||r.question),1)):b(``,!0),r.header&&r.question?(f(),v(`div`,qt,i(r.question),1)):b(``,!0),r.options&&r.options.length>0?(f(),v(`div`,Jt,[(f(!0),v(y,null,p(r.options,a=>(f(),v(`button`,{key:a.label,type:`button`,class:n([`hitl-opt`,{on:e(T)(t,r,a.label)}]),title:a.description||a.label,onClick:n=>e(D)(t,r,a.label)},i(a.label),11,Yt))),128))])):b(``,!0),!(r.options&&r.options.length>0)||r.freeText?(f(),S(ee,{key:3,value:e(C)[e(w)(t,r.id)],"onUpdate:value":n=>e(C)[e(w)(t,r.id)]=n,rows:2,placeholder:r.options&&r.options.length>0?`补充说明(可选)`:`输入答案`},null,8,[`value`,`onUpdate:value`,`placeholder`])):b(``,!0)]))),128)),_(`div`,Xt,[m(F,{size:`small`,type:`primary`,loading:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(k)(t)},{default:x(()=>[...P[2]||=[E(` 提交答案 `,-1)]]),_:1},8,[`loading`,`onClick`]),m(F,{size:`small`,disabled:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(M)(t)},{default:x(()=>[...P[3]||=[E(` 取消请求 `,-1)]]),_:1},8,[`disabled`,`onClick`])])],64)):(f(),v(y,{key:1},[e(g)(t)?(f(),v(`div`,Zt,[(f(!0),v(y,null,p(t.options,n=>(f(),v(`button`,{key:n,type:`button`,class:`hitl-opt`,onClick:r=>e(A)(t,n)},i(n),9,Qt))),128))])):b(``,!0),_(`div`,$t,[m(F,{size:`small`,type:`primary`,loading:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(j)(t,!0)},{default:x(()=>[E(i(e(r)(`appHeader.hitlApprove`)),1)]),_:1},8,[`loading`,`onClick`]),m(F,{size:`small`,danger:``,disabled:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(j)(t,!1)},{default:x(()=>[E(i(e(r)(`appHeader.hitlReject`)),1)]),_:1},8,[`disabled`,`onClick`]),m(F,{size:`small`,disabled:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(M)(t)},{default:x(()=>[...P[4]||=[E(` 取消 `,-1)]]),_:1},8,[`disabled`,`onClick`])])],64))])):(f(),v(`div`,Wt,` 无审批权限`+i(t.policy?`(${e(N)(t)})`:``),1)):(f(),v(`div`,Ut,` 读取审批权限… `)):(f(),v(`div`,Ht,` 该类型待办需在对应引擎界面处理 `))]))),128))])]),default:x(()=>[_(`button`,{class:`icon-btn hitl-bell`,title:e(r)(`appHeader.hitlBadge`)},[P[0]||=_(`span`,{class:`i-tabler-bell-ringing`},null,-1),_(`span`,At,i(e(a).count),1)],8,kt)]),_:1})):b(``,!0)}}}),[[`__scopeId`,`data-v-1fdcc40f`]]),{__name:`AppHeaderHitlBell`}),tn=[`title`],nn=Object.assign(q(d({__name:`HeaderTools`,props:{hydrated:{type:Boolean}},setup(t){let{t:r,locale:i,locales:o,setLocale:s}=R(),c=P(),{isMobile:l}=J(),u=h(()=>o.value.map(e=>({label:l.value?e.code.split(`-`)[0].toUpperCase():e.name,value:e.code}))),d=e=>{e!=null&&(L(`aw.locale`,{maxAge:31536e3}).value=String(e),localStorage.setItem(`aw.locale`,String(e)),s(String(e)),window.location.reload())},p=Ce(),g=h(()=>p.state!==`closed`||p.lastDataAt>0),S=h(()=>p.state===`open`?p.pendingReplay?`syncing`:`live`:p.state===`connecting`?`syncing`:`down`),C=h(()=>p.state===`open`?p.pendingReplay?r(`appHeader.kwsdot0002`):r(`appHeader.kwsdot0001`):p.state===`connecting`?r(`appHeader.kwsdot0003`):r(`appHeader.kwsdot0004`)),w=a(!1);function T(){document.fullscreenElement?(document.exitFullscreen(),w.value=!1):(document.documentElement.requestFullscreen(),w.value=!0)}return(a,o)=>{let s=oe,l=ue;return f(),v(y,null,[t.hydrated&&e(g)?(f(),v(`span`,{key:0,class:n([`ws-dot`,e(S)]),title:e(C)},null,10,tn)):b(``,!0),m(s,{title:e(r)(`header.fullscreen`)},{default:x(()=>[_(`button`,{class:`icon-btn hdr-fullscreen`,onClick:T},[_(`span`,{class:n([`i-tabler-arrows-maximize`,{hidden:e(w)}])},null,2),_(`span`,{class:n([`i-tabler-arrows-minimize`,{hidden:!e(w)}])},null,2)])]),_:1},8,[`title`]),m(l,{id:`hdr-locale`,value:e(i),size:`middle`,options:e(u),class:`lang-select`,onChange:d},null,8,[`value`,`options`]),m(s,{title:e(c).isDark?e(r)(`common.light`):e(r)(`common.dark`)},{default:x(()=>[_(`button`,{class:`icon-btn`,onClick:o[0]||=t=>e(c).toggleDark()},[_(`span`,{class:n([`i-tabler-sun-high`,{hidden:e(c).isDark}])},null,2),_(`span`,{class:n([`i-tabler-moon-stars`,{hidden:!e(c).isDark}])},null,2)])]),_:1},8,[`title`])],64)}}}),[[`__scopeId`,`data-v-d647eb55`]]),{__name:`AppHeaderTools`}),rn={class:`user-chip`},an={class:`user-initial aw-avatar`},on={class:`user-meta`},sn={class:`user-name`},cn={class:`user-role`},ln=Object.assign(q(d({__name:`UserChip`,setup(t){let{t:r}=R(),a=K(),o=h(()=>(a.user?.name??`?`).trim().charAt(0).toUpperCase()),s=h(()=>a.user?.name??r(`header.guest`)),c=h(()=>a.isLoggedIn?a.user?.role??`user`:`anonymous`),l=h(()=>{let e=[{key:`tokens`,icon:`i-tabler-key`,label:r(`menu.tokens`)},{key:`settings`,icon:`i-tabler-adjustments`,label:r(`menu.settings`)}];return a.isLoggedIn&&(e.push({key:`d-logout`,label:``,divider:!0}),e.push({key:`logout`,icon:`i-tabler-logout`,label:r(`header.logout`),danger:!0})),e}),u=async({key:e})=>{e===`settings`?M(`/settings`):e===`tokens`?M(`/tokens`):e===`logout`&&(await a.logout(),M(`/workshop`))};return(t,r)=>{let a=z,d=pe,h=me,g=he,b=G;return f(),S(b,null,{overlay:x(()=>[m(g,{onClick:u},{default:x(()=>[(f(!0),v(y,null,p(e(l),e=>(f(),v(y,{key:e.key},[e.divider?(f(),S(d,{key:0})):(f(),S(h,{key:e.key,danger:e.danger},{default:x(()=>[_(`span`,{class:n([e.icon,`mr-2`])},null,2),E(` `+i(e.label),1)]),_:2},1032,[`danger`]))],64))),128))]),_:1})]),default:x(()=>[_(`div`,rn,[m(a,null,{fallback:x(()=>[...r[0]||=[_(`span`,{class:`user-initial aw-avatar`},`·`,-1),_(`span`,{class:`user-meta`},[_(`span`,{class:`user-name`},`·`),_(`span`,{class:`user-role`},`·`)],-1)]]),default:x(()=>[_(`span`,an,i(e(o)),1),_(`span`,on,[_(`span`,sn,i(e(s)),1),_(`span`,cn,i(e(c)),1)])]),_:1})])]),_:1})}}}),[[`__scopeId`,`data-v-c89d85c4`]]),{__name:`AppHeaderUserChip`}),un={class:`header-left`},dn=[`aria-label`,`aria-expanded`],fn={class:`mobile-title`},pn={class:`header-right`},mn=Object.assign(q(d({__name:`AppHeader`,setup(t){let{t:r}=R(),o=P(),s=N(),c=xt(),d=K(),{metaFor:p}=St(),v=xe(),y=Se(),b=we(),C=()=>{d.isLoggedIn&&b.ensureConnected()};g(()=>d.token,e=>{e?(C(),v.loadSnapshot()):v.clear()},{immediate:!0}),g(()=>v.items.map(e=>e.channelId).join(`|`),e=>{for(let t of new Set(e.split(`|`).filter(Boolean)))t in y.permissions||y.loadPermissions(t)},{immediate:!0});let{isDrawer:w}=J(),T=h(()=>w.value?o.mobileNavOpen?r(`header.closeNav`):r(`header.openNav`):o.sidebarCollapsed?r(`header.expand`):r(`header.collapse`)),E=()=>{w.value?o.toggleMobileNav():o.toggleSidebar()},D=h(()=>p(s.path).title),O=a(!1),k=a(!1),A=null;return g(()=>s.path,()=>{c.visit(s.path),k.value=!1,requestAnimationFrame(()=>{k.value=!0,A&&clearTimeout(A),A=setTimeout(()=>{k.value=!1},620)})},{immediate:!1}),u(()=>{O.value=!0,c.visit(s.path)}),l(()=>{A&&clearTimeout(A)}),(t,r)=>{let a=bt,s=z,c=Ve;return f(),S(c,{class:`app-header app-header-glass`},{default:x(()=>[_(`div`,un,[_(`button`,{class:`collapse-btn`,"aria-label":e(T),"aria-expanded":e(w)?e(o).mobileNavOpen:!e(o).sidebarCollapsed,onClick:r[0]||=e=>E()},[...r[1]||=[_(`span`,{class:`i-tabler-menu-2`},null,-1)]],8,dn),_(`span`,fn,i(e(D)),1),r[2]||=_(`span`,{class:`rail-mark i-tabler-route`},null,-1),m(Dt,{hydrated:e(O)},null,8,[`hydrated`])]),_(`div`,pn,[m(s,null,{default:x(()=>[m(a)]),_:1}),m(s,null,{default:x(()=>[m(en)]),_:1}),m(nn,{hydrated:e(O)},null,8,[`hydrated`]),m(ln)]),_(`span`,{class:n([`plotter-line`,{run:e(k)}]),"aria-hidden":`true`},null,2)]),_:1})}}}),[[`__scopeId`,`data-v-21aed131`]]),{__name:`AppHeader`}),hn={class:`footer-title aw-serif-accent`},gn={class:`footer-corner`},_n=q(d({__name:`default`,setup(t){let{token:n}=ye.useToken(),a=F();return(t,o)=>{let c=at,l=mn,u=We,d=He,p=Ge;return f(),S(p,{class:`app-layout`,"has-sider":``},{default:x(()=>[m(c),m(p,{class:`app-main`,style:r({background:`transparent`,"--app-bg-container":e(n)?.colorBgContainer,"--app-bg-layout":e(n)?.colorBgLayout,"--app-text":e(n)?.colorText,"--app-text-secondary":e(n)?.colorTextSecondary,"--app-border":e(n)?.colorBorderSecondary,"--app-fill":e(n)?.colorFillQuaternary,"--app-header-h":`56px`,"--app-footer-h":`46px`})},{default:x(()=>[m(l),m(u,{class:`app-content`},{default:x(()=>[s(t.$slots,`default`,{},void 0,!0)]),_:3}),m(d,{class:`app-footer`,style:r({color:e(n)?.colorTextSecondary})},{default:x(()=>[_(`span`,hn,i(e(a).title),1),o[4]||=_(`span`,{class:`sep`},`/`,-1),_(`span`,null,`mode=`+i(e(a).mode),1),_(`span`,gn,[_(`span`,null,`v`+i(e(a).version),1),o[0]||=_(`span`,{class:`sep`},`·`,-1),o[1]||=_(`a`,{class:`footer-link`,href:`https://github.com/kingdol666/AgentWorkShop`,target:`_blank`,rel:`noopener`},`GitHub`,-1),o[2]||=_(`span`,{class:`sep`},`·`,-1),o[3]||=_(`a`,{class:`footer-link`,href:`https://kingdol666.github.io/AgentWorkShop/`,target:`_blank`,rel:`noopener`},`Docs`,-1)])]),_:1},8,[`style`])]),_:3},8,[`style`]),o[5]||=_(`span`,{class:`aw-noise`,"aria-hidden":`true`},null,-1)]),_:3})}}}),[[`__scopeId`,`data-v-e4abc244`]]);export{_n as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.plugin-slot[data-v-f86b8e9c]{flex-direction:column;gap:12px;display:flex}.plugin-slot-panel[data-v-f86b8e9c]:empty{display:none}.plugin-slot-panel[data-v-f86b8e9c]{border:1px solid color-mix(in srgb, var(--ink) 14%, transparent);background:color-mix(in srgb, var(--ink) 3%, transparent);border-radius:10px;padding:12px 14px}.plugin-slot-title[data-v-f86b8e9c]{color:var(--ink-soft);margin-bottom:8px;font-size:13px;font-weight:600}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r}from"./ByMj6e7s.js";import{n as i}from"./Cnrmlixo.js";import{t as a}from"./JgheoP3e.js";import{n as o,t as s}from"./DxagrjB8.js";var c=e({useDcwAddNode:()=>l});function l(e){let{t:c}=i(),l=s(),{lineId:u}=e,d=n(!1),f=n(`mock`),p=n(l.templates[0]?.key??``),m=n(`mock`),h=n(``),g=n(null),_=n(null),v=n(60),y=n(null),b=n({}),x=t({kind:`none`,scale:1,offset:0}),S=n(``),C=n(!1),w=n(null),T=n(!1),E=n(``),D=r(()=>l.driverCatalog.length?l.driverCatalog:o.map(e=>({...e}))),O=r(()=>D.value.find(e=>e.kind===m.value)),k=r(()=>O.value?.configFields??[]);function A(){let e={};for(let t of k.value)t.default!==void 0&&(e[t.key]=t.default);b.value=e,w.value=null}A();async function j(){C.value=!0,w.value=null;try{w.value=await l.testDriver(m.value,b.value)}catch(e){w.value={ok:!1,message:a(e)}}finally{C.value=!1}}async function M(){T.value=!0,E.value=``;try{for(let e of k.value)if(e.required&&(b.value[e.key]===void 0||b.value[e.key]===``))throw Error(c(`dcwDetail.k8x1un1184`,{p0:e.label}));let e=x.kind===`linear`?{kind:`linear`,scale:Number(x.scale),offset:Number(x.offset)}:void 0;await l.createFromTemplate(`dcw-${p.value}`,{name:h.value.trim()||void 0,driver:m.value,driverConfig:{...b.value},transform:e,holdIntervalMs:g.value,readIntervalMs:_.value,writeLockSeconds:v.value,...y.value==null?{}:{stepLimit:y.value},lineId:u.value,semantics:S.value.trim()||void 0}),d.value=!1,h.value=``,S.value=``}catch(e){E.value=a(e)}finally{T.value=!1}}return{addOpen:d,addScenario:f,addTemplate:p,addDriver:m,addName:h,addHold:g,addRead:_,addWriteLock:v,addStepLimit:y,addCfg:b,addTransform:x,addSemantics:S,addTesting:C,addTest:w,addSaving:T,addError:E,driverCatalog:D,addFields:k,doTestConnection:j,doAddNode:M}}export{c as n,l as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./DK3Fl9T5.js";import{t}from"./Crbir9cT.js";var n=e({amlApi:()=>r});function r(e,n){return t({base:`/api/workshop/aml`,path:e,init:n})}export{n,r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.line-chip[data-v-2c59e7e0]{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:8px;display:inline-block;box-shadow:0 0 10px}h1[data-v-2c59e7e0]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.sub[data-v-2c59e7e0]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-2c59e7e0]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.badges[data-v-2c59e7e0]{gap:8px;display:flex}.badge[data-v-2c59e7e0]{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}@media (width<=640px){h1[data-v-2c59e7e0]{font-size:22px}}.mono[data-v-e18f9fc9]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.ctrl-card[data-v-e18f9fc9]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:14px 18px;display:flex}.ctrl-left[data-v-e18f9fc9]{align-items:center;gap:14px;display:flex}.aw-pill.running[data-v-e18f9fc9]{background:var(--accent)}.ctrl-right[data-v-e18f9fc9]{align-items:center;gap:12px;display:flex}.ctrl-metrics[data-v-e18f9fc9]{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:11.5px;display:flex}.ctrl-metrics .sep[data-v-e18f9fc9]{opacity:.4}.ctrl-metrics .warn[data-v-e18f9fc9]{color:var(--tone-warning-dot)}.add-btn[data-v-e18f9fc9]{padding:8px 16px;font-size:13px}.aw-pill.outline[data-v-e18f9fc9]{color:var(--ink);background:var(--paper-raised);border-color:var(--line-strong)}@media (width<=900px){.ctrl-card[data-v-e18f9fc9]{gap:12px;padding:12px}.ctrl-right[data-v-e18f9fc9]{flex-wrap:wrap;gap:8px 10px;width:100%}.ctrl-metrics[data-v-e18f9fc9]{width:100%}.aw-pill[data-v-e18f9fc9]{min-height:40px}}.adopt-card[data-v-6ad055a2]{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.adopt-title[data-v-6ad055a2]{color:var(--aw-dim,#8fa0b5);flex:none;padding-top:4px;font-size:12px}.adopt-list[data-v-6ad055a2]{flex-wrap:wrap;gap:8px;display:flex}.adopt-chip[data-v-6ad055a2]{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}.mini-btn[data-v-6ad055a2]{margin-right:4px}.mini-btn.danger[data-v-6ad055a2]{color:var(--tone-danger-dot)}.mini-btn[data-v-6ad055a2]:hover{border-color:var(--accent);color:var(--accent)}@media (width<=900px){.adopt-card[data-v-6ad055a2]{padding:12px}.mini-btn[data-v-6ad055a2]{min-height:40px}}.mono[data-v-7ef9dbe9]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-7ef9dbe9]{opacity:.55}.banner[data-v-7ef9dbe9]{border-radius:var(--radius-chip);margin:0 0 12px;padding:9px 14px;font-size:12.5px}.banner.bad[data-v-7ef9dbe9]{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-7ef9dbe9]{color:var(--tone-success-dot);background:var(--tone-success-bg);border:1px solid color-mix(in srgb, var(--tone-success-dot) 40%, transparent)}.inp[data-v-7ef9dbe9]{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-7ef9dbe9]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:14px 18px;display:flex}.line-status[data-v-7ef9dbe9]{align-items:center;gap:12px;min-width:260px;display:flex}.line-dot[data-v-7ef9dbe9]{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-7ef9dbe9]{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-7ef9dbe9}@keyframes linePulse-7ef9dbe9{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-7ef9dbe9]{font-size:14px}.line-info small[data-v-7ef9dbe9]{margin-top:2px;font-size:11px;display:block}.line-ctl[data-v-7ef9dbe9]{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.ctl-sel[data-v-7ef9dbe9]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11px;display:flex}.ctl-sel .inp[data-v-7ef9dbe9]{min-width:150px}@media (width<=900px){.line-card[data-v-7ef9dbe9]{gap:12px;padding:12px}.line-status[data-v-7ef9dbe9]{min-width:0}.line-ctl[data-v-7ef9dbe9]{width:100%}.ctl-sel[data-v-7ef9dbe9]{flex:140px;min-width:0}.ctl-sel .inp[data-v-7ef9dbe9]{width:100%;min-width:0}.line-ctl .pill-btn[data-v-7ef9dbe9]{flex:120px}.inp[data-v-7ef9dbe9],.pill-btn[data-v-7ef9dbe9]{min-height:40px}}.mono[data-v-f19aa086]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-f19aa086]{opacity:.55}.banner[data-v-f19aa086]{border-radius:var(--radius-chip);margin:0 0 12px;padding:9px 14px;font-size:12.5px}.banner.bad[data-v-f19aa086]{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-f19aa086]{color:var(--tone-success-dot);background:var(--tone-success-bg);border:1px solid color-mix(in srgb, var(--tone-success-dot) 40%, transparent)}.tpl-hint[data-v-f19aa086]{margin:0 0 10px;font-size:12px}.tpl-chips[data-v-f19aa086]{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.tpl-chip[data-v-f19aa086]{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-f19aa086]{color:var(--ink-faint)}.tpl-tag[data-v-f19aa086]{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-f19aa086]{color:var(--ink-faint);border-color:var(--line-strong)}.inp[data-v-f19aa086]{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}.sec-label[data-v-f19aa086]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:14px 0 6px;font-size:11px;font-weight:600}.modal-mask[data-v-f19aa086]{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-f19aa086]{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-f19aa086]{margin:0 0 14px;font-size:17px}.f-grid[data-v-f19aa086]{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.f[data-v-f19aa086]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11.5px;display:flex}.f em[data-v-f19aa086]{margin-left:3px;font-style:normal}.m-err[data-v-f19aa086]{color:var(--tone-danger-dot);margin:8px 0 0;font-size:12px}.m-actions[data-v-f19aa086]{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.aw-pill.outline[data-v-f19aa086]{color:var(--ink);background:var(--paper-raised);border-color:var(--line-strong)}@media (width<=900px){.aw-pill[data-v-f19aa086],.inp[data-v-f19aa086],.pill-btn[data-v-f19aa086],.tpl-chip[data-v-f19aa086]{min-height:40px}.f-grid[data-v-f19aa086]{grid-template-columns:1fr}.modal[data-v-f19aa086]{width:calc(100vw - 20px);max-width:calc(100vw - 20px);padding:16px 14px}.m-actions[data-v-f19aa086]{flex-wrap:wrap}.m-actions[data-v-f19aa086]>*{flex:auto}}.inp[data-v-5f50614a]{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}.cal-form[data-v-5f50614a]{grid-template-columns:2fr 1fr;align-items:end}.modal-mask[data-v-5f50614a]{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-5f50614a]{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-5f50614a]{margin:0 0 14px;font-size:17px}.seg-row[data-v-5f50614a]{gap:8px;margin-bottom:14px;display:flex}.seg[data-v-5f50614a]{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-5f50614a]{color:var(--on-accent);background:var(--accent);border-color:var(--accent);font-weight:600}.f-grid[data-v-5f50614a]{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.driver-form[data-v-5f50614a]{grid-template-columns:repeat(3,1fr)}.field-hint[data-v-5f50614a]{color:var(--ink-faint);font-size:10px;line-height:1.35}.f[data-v-5f50614a]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11.5px;display:flex}.f em[data-v-5f50614a]{margin-left:3px;font-style:normal}.hint[data-v-5f50614a]{color:var(--ink-faint);font-size:11.5px}.test-row[data-v-5f50614a]{align-items:center;gap:10px;margin:6px 0 4px;display:flex}.test-result[data-v-5f50614a]{font-family:var(--font-mono);font-size:11px}.test-result.good[data-v-5f50614a]{color:var(--tone-success-dot)}.test-result.bad[data-v-5f50614a]{color:var(--tone-danger-dot)}.m-err[data-v-5f50614a]{color:var(--tone-danger-dot);margin:8px 0 0;font-size:12px}.m-actions[data-v-5f50614a]{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.aw-pill.outline[data-v-5f50614a]{color:var(--ink);background:var(--paper-raised);border-color:var(--line-strong)}@media (width<=900px){.aw-pill[data-v-5f50614a],.inp[data-v-5f50614a],.pill-btn[data-v-5f50614a]{min-height:40px}.f-grid[data-v-5f50614a],.driver-form[data-v-5f50614a],.cal-form[data-v-5f50614a]{grid-template-columns:1fr}.modal[data-v-5f50614a]{width:calc(100vw - 20px);max-width:calc(100vw - 20px);padding:16px 14px}.seg[data-v-5f50614a]{min-height:40px;padding:10px 0}.m-actions[data-v-5f50614a]{flex-wrap:wrap}.m-actions[data-v-5f50614a]>*{flex:auto}}.mono[data-v-210b303d]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-210b303d]{opacity:.55}.table-card[data-v-210b303d]{margin-bottom:14px;overflow-x:auto}.nodes-table[data-v-210b303d]{border-collapse:collapse;width:100%;font-size:12.5px}.nodes-table td[data-v-210b303d],.nodes-table th[data-v-210b303d]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:9px 12px}.nodes-table th[data-v-210b303d]{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-210b303d]{margin-left:8px}.ch[data-v-210b303d]{color:var(--ink-faint);margin-top:2px;font-size:11.5px;display:block}.right[data-v-210b303d]{text-align:right}.val[data-v-210b303d]{font-size:13px}.val small[data-v-210b303d]{color:var(--ink-faint);margin-left:3px}.read-stale[data-v-210b303d]{color:var(--tone-danger-dot,#e05a5a);text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.read-btn[data-v-210b303d]{margin-left:8px}.st-pill[data-v-210b303d]{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-210b303d]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.writing[data-v-210b303d]{color:var(--ink);background:var(--hover-tint)}.st-pill.alarm[data-v-210b303d],.st-pill.error[data-v-210b303d]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.warn[data-v-210b303d]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.st-pill.idle[data-v-210b303d],.st-pill.offline[data-v-210b303d]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.paused[data-v-210b303d]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.ctrl-toggle[data-v-210b303d]{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-210b303d]{background:var(--tone-neutral-dot);border-radius:50%;width:7px;height:7px}.ctrl-toggle.on[data-v-210b303d]{color:var(--tone-success-dot);border-color:color-mix(in srgb, var(--tone-success-dot) 45%, transparent)}.ctrl-toggle.on .ct-dot[data-v-210b303d]{background:var(--tone-success-dot);box-shadow:0 0 6px var(--tone-success-dot)}.ctrl-toggle[data-v-210b303d]:disabled{opacity:.55;cursor:wait}.node-paused td[data-v-210b303d]{opacity:.6}.node-paused .write-row[data-v-210b303d]{opacity:.5}.write-row[data-v-210b303d]{align-items:center;gap:6px;display:flex}.write-inp[data-v-210b303d]{width:92px;padding:4px 8px}.write-btn[data-v-210b303d]{padding:5px 12px}.step-limit-cell[data-v-210b303d]{align-items:center;gap:5px;display:flex}.step-inp[data-v-210b303d]{width:78px;padding:4px 6px}.step-btn[data-v-210b303d]{padding:4px 7px}.mini-btn[data-v-210b303d]{margin-right:4px}.mini-btn.danger[data-v-210b303d]{color:var(--tone-danger-dot)}.mini-btn[data-v-210b303d]:hover{border-color:var(--accent);color:var(--accent)}.inp[data-v-210b303d]{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}@media (prefers-reduced-motion:no-preference){.nodes-table tbody tr[data-v-210b303d]:hover{background:var(--hover-tint)}}@media (width<=900px){.table-card[data-v-210b303d]{-webkit-overflow-scrolling:touch;overflow-x:auto}.nodes-table[data-v-210b303d]{min-width:1080px}.nodes-table td[data-v-210b303d],.nodes-table th[data-v-210b303d]{white-space:nowrap}.nodes-table tbody>tr>td[data-v-210b303d]:first-child,.nodes-table thead>tr>th[data-v-210b303d]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.ctrl-toggle[data-v-210b303d],.inp[data-v-210b303d],.mini-btn[data-v-210b303d],.write-inp[data-v-210b303d]{min-height:40px}.write-inp[data-v-210b303d]{width:100%;min-width:90px}.write-row[data-v-210b303d]{flex-wrap:wrap}}.mono[data-v-23fad435]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-23fad435]{opacity:.55}.nodes-table[data-v-23fad435]{border-collapse:collapse;width:100%;font-size:12.5px}.nodes-table td[data-v-23fad435],.nodes-table th[data-v-23fad435]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:9px 12px}.nodes-table th[data-v-23fad435]{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-23fad435]{margin-left:8px}.st-pill[data-v-23fad435]{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-23fad435]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.writing[data-v-23fad435]{color:var(--ink);background:var(--hover-tint)}.st-pill.alarm[data-v-23fad435],.st-pill.error[data-v-23fad435]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.warn[data-v-23fad435]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.st-pill.idle[data-v-23fad435],.st-pill.offline[data-v-23fad435]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.paused[data-v-23fad435]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.sec-label[data-v-23fad435]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:14px 0 6px;font-size:11px;font-weight:600}.modal-mask[data-v-23fad435]{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-23fad435]{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-23fad435]{margin:0 0 14px;font-size:17px}.m-actions[data-v-23fad435]{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.aw-pill.outline[data-v-23fad435]{color:var(--ink);background:var(--paper-raised);border-color:var(--line-strong)}@media (prefers-reduced-motion:no-preference){.nodes-table tbody tr[data-v-23fad435]:hover{background:var(--hover-tint)}}@media (width<=900px){.nodes-table[data-v-23fad435]{min-width:1080px}.nodes-table td[data-v-23fad435],.nodes-table th[data-v-23fad435]{white-space:nowrap}.nodes-table tbody>tr>td[data-v-23fad435]:first-child,.nodes-table thead>tr>th[data-v-23fad435]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.aw-pill[data-v-23fad435]{min-height:40px}.modal[data-v-23fad435]{width:calc(100vw - 20px);max-width:calc(100vw - 20px);padding:16px 14px}.m-actions[data-v-23fad435]{flex-wrap:wrap}.m-actions[data-v-23fad435]>*{flex:auto}}.param-chip.daqwin[data-v-6242bc54]{color:#41c8f4;border-color:#41c8f466}.mono[data-v-6242bc54]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-6242bc54]{opacity:.55}.banner[data-v-6242bc54]{border-radius:var(--radius-chip);margin:0 0 12px;padding:9px 14px;font-size:12.5px}.banner.bad[data-v-6242bc54]{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-6242bc54]{color:var(--tone-success-dot);background:var(--tone-success-bg);border:1px solid color-mix(in srgb, var(--tone-success-dot) 40%, transparent)}.nodes-table[data-v-6242bc54]{border-collapse:collapse;width:100%;font-size:12.5px}.nodes-table td[data-v-6242bc54],.nodes-table th[data-v-6242bc54]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:9px 12px}.nodes-table th[data-v-6242bc54]{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-6242bc54]{margin-left:8px}.right[data-v-6242bc54]{text-align:right}.st-pill[data-v-6242bc54]{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-6242bc54]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.writing[data-v-6242bc54]{color:var(--ink);background:var(--hover-tint)}.st-pill.alarm[data-v-6242bc54],.st-pill.error[data-v-6242bc54]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.warn[data-v-6242bc54]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.st-pill.idle[data-v-6242bc54],.st-pill.offline[data-v-6242bc54]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.paused[data-v-6242bc54]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.recipe-hd[data-v-6242bc54],.recipe-actions[data-v-6242bc54]{flex-wrap:wrap}.mini-btn[data-v-6242bc54]{margin-right:4px}.mini-btn.danger[data-v-6242bc54]{color:var(--tone-danger-dot)}.mini-btn[data-v-6242bc54]:hover{border-color:var(--accent);color:var(--accent)}.param-chip[data-v-6242bc54]{overflow-wrap:anywhere}.product-row[data-v-6242bc54]{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}.prod-chip[data-v-6242bc54]{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-6242bc54]{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.prod-del[data-v-6242bc54]{color:var(--tone-danger-dot);font-weight:700}.recipe-grid[data-v-6242bc54]{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr))}.recipe-card[data-v-6242bc54]{margin-bottom:14px;padding:16px 18px}.recipe-hd[data-v-6242bc54]{align-items:center;gap:10px;margin-bottom:6px;display:flex}.recipe-hd h3[data-v-6242bc54]{margin:0;font-size:16px}.panel-tag[data-v-6242bc54]{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-6242bc54]{color:var(--ink-faint);margin:0 0 14px;font-size:12px}.recipe-grid[data-v-6242bc54]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.recipe-item[data-v-6242bc54]{background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);padding:12px 14px}.recipe-name b[data-v-6242bc54]{font-size:13.5px}.recipe-name small[data-v-6242bc54]{margin-left:8px}.desc[data-v-6242bc54]{margin:4px 0;font-size:12px}.recipe-params[data-v-6242bc54]{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.param-chip[data-v-6242bc54]{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-6242bc54]{align-items:center;gap:6px;margin-top:8px;display:flex}.sec-label[data-v-6242bc54]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:14px 0 6px;font-size:11px;font-weight:600}.runs[data-v-6242bc54]{margin-top:6px}.param-chip.stale[data-v-6242bc54]{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-step-tag[data-v-6242bc54]{color:var(--tone-warning-dot);background:color-mix(in srgb, var(--tone-warning-dot) 8%, transparent);border:1px solid color-mix(in srgb, var(--tone-warning-dot) 30%, transparent);border-radius:var(--radius-chip);margin-left:5px;padding:0 5px;font-size:10px}.chip-stale-tag[data-v-6242bc54]{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}@media (prefers-reduced-motion:no-preference){.nodes-table tbody tr[data-v-6242bc54]:hover{background:var(--hover-tint)}}@media (width<=900px){.nodes-table[data-v-6242bc54]{min-width:1080px}.nodes-table td[data-v-6242bc54],.nodes-table th[data-v-6242bc54]{white-space:nowrap}.nodes-table tbody>tr>td[data-v-6242bc54]:first-child,.nodes-table thead>tr>th[data-v-6242bc54]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.recipe-card[data-v-6242bc54]{padding:12px}.mini-btn[data-v-6242bc54],.pill-btn[data-v-6242bc54],.prod-chip[data-v-6242bc54],.recipe-hd .mini-btn[data-v-6242bc54],.recipe-hd .pill-btn[data-v-6242bc54]{min-height:40px}}.mini-btn[data-v-4a17b36f]{margin-right:4px}.mini-btn.danger[data-v-4a17b36f]{color:var(--tone-danger-dot)}.mini-btn[data-v-4a17b36f]:hover{border-color:var(--accent);color:var(--accent)}.inp[data-v-4a17b36f]{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}.sec-label[data-v-4a17b36f]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:14px 0 6px;font-size:11px;font-weight:600}.modal-mask[data-v-4a17b36f]{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-4a17b36f]{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-4a17b36f]{margin:0 0 14px;font-size:17px}.f-grid[data-v-4a17b36f]{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.param-row[data-v-4a17b36f]{grid-template-columns:2fr 1fr 1fr 1fr 1fr auto;align-items:end;gap:8px;margin-bottom:8px;display:grid}.param-row .f[data-v-4a17b36f]{flex:1}.param-del[data-v-4a17b36f]{margin-bottom:2px}.f[data-v-4a17b36f]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11.5px;display:flex}.f em[data-v-4a17b36f]{margin-left:3px;font-style:normal}.m-err[data-v-4a17b36f]{color:var(--tone-danger-dot);margin:8px 0 0;font-size:12px}.m-note[data-v-4a17b36f]{color:var(--ink-faint);margin:8px 0 0;font-size:12px}.row-stale[data-v-4a17b36f]{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-4a17b36f]{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.aw-pill.outline[data-v-4a17b36f]{color:var(--ink);background:var(--paper-raised);border-color:var(--line-strong)}@media (width<=900px){.aw-pill[data-v-4a17b36f],.inp[data-v-4a17b36f],.mini-btn[data-v-4a17b36f],.pill-btn[data-v-4a17b36f]{min-height:40px}.f-grid[data-v-4a17b36f]{grid-template-columns:1fr}.param-row[data-v-4a17b36f]{grid-template-columns:1fr 1fr}.modal[data-v-4a17b36f]{width:calc(100vw - 20px);max-width:calc(100vw - 20px);padding:16px 14px}.m-actions[data-v-4a17b36f]{flex-wrap:wrap}.m-actions[data-v-4a17b36f]>*{flex:auto}}.mono[data-v-322135bb]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-322135bb]{opacity:.55}.banner[data-v-322135bb]{border-radius:var(--radius-chip);margin:0 0 12px;padding:9px 14px;font-size:12.5px}.banner.bad[data-v-322135bb]{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-322135bb]{color:var(--tone-success-dot);background:var(--tone-success-bg);border:1px solid color-mix(in srgb, var(--tone-success-dot) 40%, transparent)}.mini-btn[data-v-322135bb]{margin-right:4px}.mini-btn.danger[data-v-322135bb]{color:var(--tone-danger-dot)}.mini-btn[data-v-322135bb]:hover{border-color:var(--accent);color:var(--accent)}.ver-row[data-v-322135bb]{border:1px solid var(--divider-hair);border-radius:10px;margin-bottom:8px;padding:10px 12px}.ver-row.cur[data-v-322135bb]{background:color-mix(in srgb, var(--accent) 6%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.ver-head[data-v-322135bb]{align-items:center;gap:10px;display:flex}.ver-v[data-v-322135bb]{font-size:13px;font-weight:700}.ver-src[data-v-322135bb]{border:1px solid var(--line-strong);border-radius:var(--radius-pill);padding:1px 8px;font-size:11.5px}.ver-src.agent[data-v-322135bb]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 50%, transparent)}.ver-src.user[data-v-322135bb]{color:var(--ink-soft)}.ver-src.system[data-v-322135bb]{color:var(--ink-faint)}.ver-src.cur[data-v-322135bb]{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:#0000}.ver-actor[data-v-322135bb]{font-family:var(--font-mono);color:var(--ink-soft);font-size:12px}.ver-desc[data-v-322135bb]{color:var(--ink);margin:6px 0 0;font-size:12px}.ver-diff[data-v-322135bb]{color:var(--ink-faint);margin:4px 0 0;font-size:11px}.modal-mask[data-v-322135bb]{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-322135bb]{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}@media (width<=900px){.mini-btn[data-v-322135bb]{min-height:40px}.modal[data-v-322135bb]{width:calc(100vw - 20px);max-width:calc(100vw - 20px);padding:16px 14px}}.mono[data-v-ee60c0a5]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-ee60c0a5]{opacity:.55}.banner[data-v-ee60c0a5]{border-radius:var(--radius-chip);margin:0 0 12px;padding:9px 14px;font-size:12.5px}.banner.bad[data-v-ee60c0a5]{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-ee60c0a5]{color:var(--tone-success-dot);background:var(--tone-success-bg);border:1px solid color-mix(in srgb, var(--tone-success-dot) 40%, transparent)}.nodes-table[data-v-ee60c0a5]{border-collapse:collapse;width:100%;font-size:12.5px}.nodes-table td[data-v-ee60c0a5],.nodes-table th[data-v-ee60c0a5]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:9px 12px}.nodes-table th[data-v-ee60c0a5]{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-ee60c0a5]{margin-left:8px}.inp[data-v-ee60c0a5]{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}.query-card[data-v-ee60c0a5]{margin-bottom:14px;padding:14px 18px}.q-grid[data-v-ee60c0a5]{grid-template-columns:repeat(6,1fr);align-items:end;gap:10px;display:grid}.q-grid .f[data-v-ee60c0a5]{color:var(--ink-faint);font-size:11px}.q-actions[data-v-ee60c0a5]{justify-content:flex-end}.q-result[data-v-ee60c0a5]{margin-top:12px;overflow-x:auto}.sec-label[data-v-ee60c0a5]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:14px 0 6px;font-size:11px;font-weight:600}.f[data-v-ee60c0a5]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11.5px;display:flex}@media (prefers-reduced-motion:no-preference){.nodes-table tbody tr[data-v-ee60c0a5]:hover{background:var(--hover-tint)}}@media (width<=900px){.nodes-table[data-v-ee60c0a5]{min-width:1080px}.nodes-table td[data-v-ee60c0a5],.nodes-table th[data-v-ee60c0a5]{white-space:nowrap}.nodes-table tbody>tr>td[data-v-ee60c0a5]:first-child,.nodes-table thead>tr>th[data-v-ee60c0a5]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.query-card[data-v-ee60c0a5]{padding:12px}.inp[data-v-ee60c0a5],.pill-btn[data-v-ee60c0a5]{min-height:40px}.q-grid[data-v-ee60c0a5]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.q-grid[data-v-ee60c0a5]{grid-template-columns:1fr}}.mono[data-v-1ca86a1c]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-1ca86a1c]{opacity:.55}.table-card[data-v-1ca86a1c]{margin-bottom:14px;overflow-x:auto}.nodes-table[data-v-1ca86a1c]{border-collapse:collapse;width:100%;font-size:12.5px}.nodes-table td[data-v-1ca86a1c],.nodes-table th[data-v-1ca86a1c]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:9px 12px}.nodes-table th[data-v-1ca86a1c]{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-1ca86a1c]{margin-left:8px}.st-pill[data-v-1ca86a1c]{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-1ca86a1c]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.writing[data-v-1ca86a1c]{color:var(--ink);background:var(--hover-tint)}.st-pill.alarm[data-v-1ca86a1c],.st-pill.error[data-v-1ca86a1c]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.warn[data-v-1ca86a1c]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.st-pill.idle[data-v-1ca86a1c],.st-pill.offline[data-v-1ca86a1c]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.paused[data-v-1ca86a1c]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.sec-label[data-v-1ca86a1c]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:14px 0 6px;font-size:11px;font-weight:600}@media (prefers-reduced-motion:no-preference){.nodes-table tbody tr[data-v-1ca86a1c]:hover{background:var(--hover-tint)}}@media (width<=900px){.table-card[data-v-1ca86a1c]{-webkit-overflow-scrolling:touch;overflow-x:auto}.nodes-table[data-v-1ca86a1c]{min-width:1080px}.nodes-table td[data-v-1ca86a1c],.nodes-table th[data-v-1ca86a1c]{white-space:nowrap}.nodes-table tbody>tr>td[data-v-1ca86a1c]:first-child,.nodes-table thead>tr>th[data-v-1ca86a1c]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}}.inp[data-v-aa17ef24]{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}.modal-mask[data-v-aa17ef24]{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-aa17ef24]{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-aa17ef24]{margin:0 0 14px;font-size:17px}.f-grid[data-v-aa17ef24]{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.f[data-v-aa17ef24]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11.5px;display:flex}.f em[data-v-aa17ef24]{margin-left:3px;font-style:normal}.m-err[data-v-aa17ef24]{color:var(--tone-danger-dot);margin:8px 0 0;font-size:12px}.m-actions[data-v-aa17ef24]{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.aw-pill.outline[data-v-aa17ef24]{color:var(--ink);background:var(--paper-raised);border-color:var(--line-strong)}@media (width<=900px){.aw-pill[data-v-aa17ef24],.inp[data-v-aa17ef24],.pill-btn[data-v-aa17ef24]{min-height:40px}.f-grid[data-v-aa17ef24]{grid-template-columns:1fr}.modal[data-v-aa17ef24]{width:calc(100vw - 20px);max-width:calc(100vw - 20px);padding:16px 14px}.m-actions[data-v-aa17ef24]{flex-wrap:wrap}.m-actions[data-v-aa17ef24]>*{flex:auto}}.ledger-card[data-v-15a6bb00]{margin-bottom:14px;padding:14px 18px}.ledger-head[data-v-15a6bb00]{align-items:center;gap:12px;display:flex}.ledger-head b[data-v-15a6bb00]{font-size:13.5px}.ledger-tri[data-v-15a6bb00]{align-items:center;gap:12px;margin-top:12px;display:flex}.tri-cell[data-v-15a6bb00]{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-15a6bb00]{color:var(--ink-faint);font-size:11.5px}.tri-cell b[data-v-15a6bb00]{color:var(--ink);font-size:17px}.ledger-cols[data-v-15a6bb00]{grid-template-columns:1fr 1fr;gap:16px;margin-top:12px;display:grid}.sec-t[data-v-15a6bb00]{letter-spacing:.12em;color:var(--ink-faint);margin-bottom:6px;font-size:11.5px;font-weight:700;display:block}.ledger-list[data-v-15a6bb00]{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-15a6bb00]{align-items:center;gap:8px;display:flex}.rec-st[data-v-15a6bb00]{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-15a6bb00]{color:var(--tone-warning-dot);border-color:var(--tone-warning-dot)}.tri-cell b[data-v-15a6bb00]{overflow-wrap:anywhere}.rec-st.judged[data-v-15a6bb00]{color:var(--tone-warning-dot);border-color:var(--tone-warning-dot);opacity:.85}.rec-st.judged-keep[data-v-15a6bb00],.rec-st.rolled-back[data-v-15a6bb00]{color:var(--tone-success-dot);border-color:var(--tone-success-dot)}.mono[data-v-15a6bb00]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.mini-btn[data-v-15a6bb00]{margin-right:4px}.mini-btn.danger[data-v-15a6bb00]{color:var(--tone-danger-dot)}.mini-btn[data-v-15a6bb00]:hover{border-color:var(--accent);color:var(--accent)}.inp[data-v-15a6bb00]{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}@media (width<=900px){.ledger-card[data-v-15a6bb00]{padding:12px}.ledger-cols[data-v-15a6bb00]{grid-template-columns:1fr}.ledger-tri[data-v-15a6bb00]{flex-wrap:wrap}.inp[data-v-15a6bb00],.mini-btn[data-v-15a6bb00]{min-height:40px}}.page[data-v-9f15f2af]{padding:4px}.banner[data-v-9f15f2af]{border-radius:var(--radius-chip);margin:0 0 12px;padding:9px 14px;font-size:12.5px}.banner.bad[data-v-9f15f2af]{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-9f15f2af]{color:var(--tone-success-dot);background:var(--tone-success-bg);border:1px solid color-mix(in srgb, var(--tone-success-dot) 40%, transparent)}.err[data-v-9f15f2af]{color:var(--tone-danger-dot);margin-top:14px;font-size:13px}@media (width<=900px){.pill-btn[data-v-9f15f2af]{min-height:40px}}
|