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
|
@@ -11,16 +11,33 @@ import { getDcwLineRepo } from '../../dcw/dcw-line.repo'
|
|
|
11
11
|
import { getDcwProductRepo } from '../../dcw/dcw-product.repo'
|
|
12
12
|
import { getDcwRecipeRepo } from '../../dcw/dcw-recipe.repo'
|
|
13
13
|
import { getOps } from '../../ops/ops'
|
|
14
|
+
import { settingOf } from '../../settings'
|
|
14
15
|
import { fanoutQuery, windowOf } from './audit-query'
|
|
15
16
|
|
|
16
17
|
// ================================================================
|
|
17
18
|
// 运维日志 / Recipe 变更史查询(Agent 自查面:负责产线 scoped)
|
|
18
19
|
// ================================================================
|
|
19
20
|
|
|
20
|
-
/**
|
|
21
|
-
|
|
21
|
+
/** v18:频道绑定产线(只读扩权)——经全局 manager 读;manager 未装配/未绑定 = null */
|
|
22
|
+
function channelBoundLineId(agentId: string): string | null {
|
|
23
|
+
try {
|
|
24
|
+
const g = globalThis as typeof globalThis & {
|
|
25
|
+
__workshopManager?: { channelLineBindingOf(id: string): string | null }
|
|
26
|
+
}
|
|
27
|
+
return g.__workshopManager?.channelLineBindingOf(agentId) ?? null
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return null
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** Agent 负责范围 = 绑定节点的全集(节点 id 集 + 这些节点所属产线集;写权限依据)
|
|
35
|
+
* ∪ 频道绑定产线(boundLineIds;v18 只读扩权:日志/配方史/上下文可读,写仍走节点授权)。 */
|
|
36
|
+
export function agentOpsScope(agentId: string): { lineIds: string[], nodeIds: Set<string>, boundLineIds: string[] } | null {
|
|
22
37
|
const bindings = getAgentNodeBindingRepo().byAgent(agentId)
|
|
23
|
-
|
|
38
|
+
const boundLine = channelBoundLineId(agentId)
|
|
39
|
+
const boundLineIds = boundLine ? [boundLine] : []
|
|
40
|
+
if (bindings.length === 0 && boundLineIds.length === 0) return null
|
|
24
41
|
const lineIds = new Set<string>()
|
|
25
42
|
const nodeIds = new Set<string>()
|
|
26
43
|
for (const b of bindings) {
|
|
@@ -31,7 +48,17 @@ export function agentOpsScope(agentId: string): { lineIds: string[], nodeIds: Se
|
|
|
31
48
|
}
|
|
32
49
|
catch { /* 节点刚被删等情况忽略 */ }
|
|
33
50
|
}
|
|
34
|
-
return { lineIds: [...lineIds], nodeIds }
|
|
51
|
+
return { lineIds: [...lineIds], nodeIds, boundLineIds }
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** 读工具的可见产线全集 = 节点授权线 ∪ 频道绑定线(去重) */
|
|
55
|
+
function readableLineIds(scope: { lineIds: string[], boundLineIds: string[] }): string[] {
|
|
56
|
+
return [...new Set([...scope.lineIds, ...scope.boundLineIds])]
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** 产线展示标注:仅频道绑定(非节点授权)的线标注只读来源 */
|
|
60
|
+
function lineTag(lid: string, scope: { lineIds: string[], boundLineIds: string[] }): string {
|
|
61
|
+
return scope.lineIds.includes(lid) ? '' : '(频道绑定,只读)'
|
|
35
62
|
}
|
|
36
63
|
|
|
37
64
|
/** 配方参数的节点失效态(数据一致性展示/Agent 提示共用):null=正常 */
|
|
@@ -63,19 +90,20 @@ export async function toolOpsLog(agentId: string, args: {
|
|
|
63
90
|
const audit = getOps()?.audit
|
|
64
91
|
if (!audit) return { text: '审计仓储未装配(服务未就绪),请稍后重试。', isError: true }
|
|
65
92
|
const scope = agentOpsScope(agentId)
|
|
66
|
-
if (!scope) return { text: '
|
|
93
|
+
if (!scope) return { text: '你尚未绑定任何工业节点,所在频道也未绑定产线,无日志可查(日志权限跟随节点绑定或频道绑线)。', isError: true }
|
|
67
94
|
const nodeId = String(args.node_id ?? '').trim()
|
|
68
95
|
const lineId = String(args.line_id ?? '').trim()
|
|
96
|
+
const readable = readableLineIds(scope)
|
|
69
97
|
if (nodeId && !scope.nodeIds.has(nodeId))
|
|
70
98
|
return { text: `无权查询节点 ${nodeId} 的日志(仅可查自己绑定的节点;用 my_industrial_nodes 查看绑定)。`, isError: true }
|
|
71
|
-
if (lineId && !
|
|
72
|
-
return { text: `无权查询产线 ${lineId} 的日志(
|
|
99
|
+
if (lineId && !readable.includes(lineId))
|
|
100
|
+
return { text: `无权查询产线 ${lineId} 的日志(你的可读产线:${readable.join(', ') || '(无)'})。`, isError: true }
|
|
73
101
|
const kind = String(args.kind ?? '').trim() || undefined
|
|
74
102
|
const actorKind = String(args.actor_kind ?? '').trim() || undefined
|
|
75
103
|
const mine = args.mine === true || args.mine === 'true'
|
|
76
104
|
const { minutes, limit, from } = windowOf(args)
|
|
77
105
|
|
|
78
|
-
const lines = lineId ? [lineId] :
|
|
106
|
+
const lines = lineId ? [lineId] : readable
|
|
79
107
|
let rows = fanoutQuery(audit, lines, lid => ({ lineId: lid, kind, actorKind, actor: mine ? agentId : undefined, from, limit }))
|
|
80
108
|
if (nodeId) rows = rows.filter(r => r.targetId === nodeId)
|
|
81
109
|
rows.sort((a, b) => String(b.at).localeCompare(String(a.at)))
|
|
@@ -86,7 +114,7 @@ export async function toolOpsLog(agentId: string, args: {
|
|
|
86
114
|
const src = OPS_ACTOR_LABEL[String(r.actorKind)] ?? String(r.actorKind)
|
|
87
115
|
return `- [${fmtAuditAt(String(r.at))}] 来源=${src} 操作者=${String(r.actorName) || String(r.actor)} | ${String(r.action)} | ${String(r.summary)}`
|
|
88
116
|
})
|
|
89
|
-
const scopeNote = lineId ? `产线 ${lineId}` :
|
|
117
|
+
const scopeNote = lineId ? `产线 ${lineId}` : `可读产线 ${readable.length} 条`
|
|
90
118
|
return {
|
|
91
119
|
text: `运维日志(${scopeNote},近 ${minutes} 分钟,${rows.length} 条,新→旧):\n${body.join('\n')}\n\n说明:来源=Agent 的操作者格式为「Channel名/成员名」;需要节点级参数值变更史用 dcw_journal,配方下发/回退专门视图用 recipe_log。`,
|
|
92
120
|
}
|
|
@@ -103,14 +131,15 @@ export async function toolRecipeLog(agentId: string, args: {
|
|
|
103
131
|
const audit = getOps()?.audit
|
|
104
132
|
if (!audit) return { text: '审计仓储未装配(服务未就绪),请稍后重试。', isError: true }
|
|
105
133
|
const scope = agentOpsScope(agentId)
|
|
106
|
-
if (!scope) return { text: '
|
|
134
|
+
if (!scope) return { text: '你尚未绑定任何工业节点,所在频道也未绑定产线,无 Recipe 历史可查(权限跟随节点绑定或频道绑线)。', isError: true }
|
|
107
135
|
const lineId = String(args.line_id ?? '').trim()
|
|
108
|
-
|
|
109
|
-
|
|
136
|
+
const readable = readableLineIds(scope)
|
|
137
|
+
if (lineId && !readable.includes(lineId))
|
|
138
|
+
return { text: `无权查询产线 ${lineId} 的 Recipe 历史(你的可读产线:${readable.join(', ') || '(无)'})。`, isError: true }
|
|
110
139
|
const recipeId = String(args.recipe_id ?? '').trim() || undefined
|
|
111
140
|
const { minutes, limit, from } = windowOf(args)
|
|
112
141
|
|
|
113
|
-
const lines = lineId ? [lineId] :
|
|
142
|
+
const lines = lineId ? [lineId] : readable
|
|
114
143
|
const rows = fanoutQuery(audit, lines, lid => [
|
|
115
144
|
{ lineId: lid, kind: 'recipe', recipeId, from, limit },
|
|
116
145
|
{ lineId: lid, kind: 'rollback', recipeId, from, limit },
|
|
@@ -131,9 +160,8 @@ export async function toolRecipeLog(agentId: string, args: {
|
|
|
131
160
|
: action
|
|
132
161
|
return `- [${fmtAuditAt(String(r.at))}] ${tag} 来源=${src} 操作者=${String(r.actorName) || String(r.actor)} | ${String(r.summary)}${r.recipeId ? `(配方 ${String(r.recipeId).slice(0, 8)})` : ''}`
|
|
133
162
|
})
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
163
|
+
const text = `Recipe 变更史(${lineId ? `产线 ${lineId}` : `可读产线 ${readable.length} 条`},近 ${minutes} 分钟,${rows.length} 条,新→旧):\n${body.join('\n')}\n\n说明:配方下发=整批参数写命令;优化开窗=单次设定变更(含 Agent 假设);回退执行=已恢复基线值。节点级参数值逐笔历史用 dcw_journal(node_id)。`
|
|
164
|
+
return { text }
|
|
137
165
|
}
|
|
138
166
|
|
|
139
167
|
// ================================================================
|
|
@@ -145,11 +173,12 @@ export async function toolRecipeLog(agentId: string, args: {
|
|
|
145
173
|
* 配方目标 vs PLC 当前值对照、lastGood 批次。 */
|
|
146
174
|
export async function toolLineContext(agentId: string, args: { line_id?: string } = {}): Promise<{ text: string, isError?: boolean }> {
|
|
147
175
|
const scope = agentOpsScope(agentId)
|
|
148
|
-
if (!scope) return { text: '
|
|
176
|
+
if (!scope) return { text: '你尚未绑定任何工业节点,所在频道也未绑定产线,暂无产线上下文(可在频道设置绑定产线获得只读上下文,或在数字孪生界面绑定节点)。' }
|
|
149
177
|
const wanted = String(args.line_id ?? '').trim()
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
178
|
+
const readable = readableLineIds(scope)
|
|
179
|
+
const lineIds = wanted ? [wanted] : readable
|
|
180
|
+
if (wanted && !readable.includes(wanted)) {
|
|
181
|
+
return { text: `产线 ${wanted} 不在你的可读范围(节点授权与频道绑定覆盖:${readable.join(', ') || '无'})。`, isError: true }
|
|
153
182
|
}
|
|
154
183
|
if (lineIds.length === 0) return { text: '你绑定的节点均未分配产线(未挂线的节点没有产线/产品/配方上下文)。' }
|
|
155
184
|
|
|
@@ -159,7 +188,7 @@ export async function toolLineContext(agentId: string, args: { line_id?: string
|
|
|
159
188
|
const run = getActiveLineRun(lid)
|
|
160
189
|
const recipe = run?.recipeId ? getDcwController().listRecipes().find(r => r.id === run.recipeId) : undefined
|
|
161
190
|
const parts: string[] = []
|
|
162
|
-
parts.push(`■ 产线 ${line?.name ?? lid}(${lid})· 状态:${run ? '运行中' : '待机/停线'}`)
|
|
191
|
+
parts.push(`■ 产线 ${line?.name ?? lid}(${lid})${lineTag(lid, scope)} · 状态:${run ? '运行中' : '待机/停线'}`)
|
|
163
192
|
if (run) {
|
|
164
193
|
parts.push(` 活动批次 ${run.runId.slice(0, 8)} · 产品「${run.productName}」(${run.productId}) · 开跑 ${run.startedAt.slice(11, 19)} · 已打标 ${run.taggedSamples} 样本`)
|
|
165
194
|
}
|
|
@@ -210,7 +239,7 @@ export async function toolLineContext(agentId: string, args: { line_id?: string
|
|
|
210
239
|
sections.push(parts.join('\n'))
|
|
211
240
|
}
|
|
212
241
|
return {
|
|
213
|
-
text: `你控制的产线全景(${sections.length} 条):\n\n${sections.join('\n\n')}\n\n说明:配方目标=开跑批次冻结的工艺窗口;PLC
|
|
242
|
+
text: `你控制的产线全景(${sections.length} 条):\n\n${sections.join('\n\n')}\n\n说明:配方目标=开跑批次冻结的工艺窗口;PLC 当前值=实时读数;(频道绑定,只读)= 该线来自频道绑定的只读授权,可看日志/配方/状态,参数下发仍需节点授权。把验证过的最佳参数固化到配方用 recipe_update;回退配方到稳定版本用 recipe_rollback;逐节点参数变更史用 dcw_journal;配方版本史用 recipe_versions。`,
|
|
214
243
|
}
|
|
215
244
|
}
|
|
216
245
|
|
|
@@ -221,9 +250,11 @@ export async function toolRecipeVersions(agentId: string, args: { recipe_id?: st
|
|
|
221
250
|
if (!recipeId) return { text: 'recipe_id 必填(line_context 可看到当前配方的 id)。', isError: true }
|
|
222
251
|
const recipe = getDcwController().listRecipes().find(r => r.id === recipeId)
|
|
223
252
|
if (!recipe) return { text: `配方 ${recipeId} 不存在。`, isError: true }
|
|
253
|
+
// 只读面:节点授权线 ∪ 频道绑定线均可看版本史(回退走 toolRecipeRollback 的写门)
|
|
224
254
|
const scope = agentOpsScope(agentId)
|
|
225
|
-
|
|
226
|
-
|
|
255
|
+
const readable = scope ? readableLineIds(scope) : []
|
|
256
|
+
if (!recipe.lineId || !readable.includes(recipe.lineId)) {
|
|
257
|
+
return { text: `无权查看配方 ${recipeId} 的版本史(该配方不在你可读的产线上)。`, isError: true }
|
|
227
258
|
}
|
|
228
259
|
const rows = getDcwController().recipeVersions(recipeId)
|
|
229
260
|
const limit = Math.min(Number(args.limit) || 20, 50)
|
|
@@ -294,12 +325,18 @@ export async function toolRecipeUpdate(agentId: string, args: {
|
|
|
294
325
|
})
|
|
295
326
|
.map((p) => {
|
|
296
327
|
const patch = list.find(x => String(x.node_id).trim() === p.nodeId)
|
|
297
|
-
|
|
298
|
-
|
|
328
|
+
// stepLimit 必须随行携带:丢了会被 normParams 视为"参数有变化"(同值也空转增版),
|
|
329
|
+
// 且配方层单步限幅被静默抹掉(退化为参数/节点层默认)——治理数据完整性
|
|
330
|
+
const out: { nodeId: string, templateRef?: string, value: number, min?: number, max?: number, stepLimit?: number } = {
|
|
331
|
+
nodeId: p.nodeId,
|
|
332
|
+
templateRef: p.templateRef,
|
|
333
|
+
value: patch ? Number(patch.value) : p.value,
|
|
334
|
+
}
|
|
299
335
|
if (p.min != null) out.min = p.min
|
|
300
|
-
if (patch
|
|
336
|
+
if (patch?.min != null && Number.isFinite(Number(patch.min))) out.min = Number(patch.min)
|
|
301
337
|
if (p.max != null) out.max = p.max
|
|
302
|
-
if (patch
|
|
338
|
+
if (patch?.max != null && Number.isFinite(Number(patch.max))) out.max = Number(patch.max)
|
|
339
|
+
if (p.stepLimit != null) out.stepLimit = p.stepLimit
|
|
303
340
|
return out
|
|
304
341
|
})
|
|
305
342
|
const extra = list.filter(p => !recipe.params.some(x => x.nodeId === String(p.node_id).trim()))
|
|
@@ -327,16 +364,19 @@ export async function toolRecipeUpdate(agentId: string, args: {
|
|
|
327
364
|
}
|
|
328
365
|
|
|
329
366
|
/** 工具:recipe_rollback —— 回退配方参数到稳定版本(指定历史版本或已知良好批次快照)。
|
|
330
|
-
* 生成新版本(非破坏,历史保留);不改运行中 PLC 当前值。
|
|
367
|
+
* 生成新版本(非破坏,历史保留);不改运行中 PLC 当前值。
|
|
368
|
+
* v19 dispatch=true = **统一回退**:定义回退 + 该版本参数整批重下发到 PLC(批次级恢复)。 */
|
|
331
369
|
export async function toolRecipeRollback(agentId: string, args: {
|
|
332
370
|
recipe_id?: string
|
|
333
371
|
version?: number | string
|
|
334
372
|
to_last_good?: boolean | string
|
|
373
|
+
dispatch?: boolean | string
|
|
335
374
|
reason?: string
|
|
336
375
|
}): Promise<{ text: string, isError?: boolean }> {
|
|
337
376
|
const recipeId = String(args.recipe_id ?? '').trim()
|
|
338
377
|
const reason = String(args.reason ?? '').trim()
|
|
339
378
|
const toLastGood = args.to_last_good === true || args.to_last_good === 'true'
|
|
379
|
+
const dispatch = args.dispatch === true || args.dispatch === 'true'
|
|
340
380
|
const version = Number(args.version)
|
|
341
381
|
if (!recipeId) return { text: 'recipe_id 必填。', isError: true }
|
|
342
382
|
if (!reason) return { text: 'reason 必填:回退必须说明原因(如优化翻车/越限),便于版本史追溯。', isError: true }
|
|
@@ -351,6 +391,23 @@ export async function toolRecipeRollback(agentId: string, args: {
|
|
|
351
391
|
return { text: `不能回退到 v${version}(当前已是 v${recipe.version ?? 1};回退目标是更早的版本)。`, isError: true }
|
|
352
392
|
}
|
|
353
393
|
try {
|
|
394
|
+
if (dispatch) {
|
|
395
|
+
const { recipe: updated, run, definitionNoop } = await getDcwController().rollbackRecipeAndDispatch(recipeId, {
|
|
396
|
+
version: toLastGood ? undefined : version,
|
|
397
|
+
toLastGood,
|
|
398
|
+
by: 'agent',
|
|
399
|
+
actorName: agentBadgeLabel(agentId),
|
|
400
|
+
actor: agentId,
|
|
401
|
+
description: reason,
|
|
402
|
+
})
|
|
403
|
+
const okN = run.results.filter(r => r.ok).length
|
|
404
|
+
const defNote = definitionNoop
|
|
405
|
+
? `定义已在目标版本 v${updated.version ?? 1}(未生成新版本)`
|
|
406
|
+
: `已生成 v${updated.version ?? 1}`
|
|
407
|
+
return {
|
|
408
|
+
text: `统一回退完成:配方「${updated.name}」${defNote},参数恢复为目标版本(${toLastGood ? '已知良好批次冻结' : `v${version}`}),并已整批重下发到 PLC(${okN}/${run.results.length} 参数成功);原因:${reason}。\n用 daq_query 复测确认恢复效果;版本史用 recipe_versions 复核。`,
|
|
409
|
+
}
|
|
410
|
+
}
|
|
354
411
|
const updated = getDcwController().revertRecipe(recipeId, {
|
|
355
412
|
version: toLastGood ? undefined : version,
|
|
356
413
|
toLastGood,
|
|
@@ -361,10 +418,166 @@ export async function toolRecipeRollback(agentId: string, args: {
|
|
|
361
418
|
description: reason,
|
|
362
419
|
})
|
|
363
420
|
return {
|
|
364
|
-
text: `回退完成:配方「${updated.name}」已生成 v${updated.version ?? 1},参数恢复为目标版本(${toLastGood ? '已知良好批次冻结' : `v${version}`});原因:${reason}。\n
|
|
421
|
+
text: `回退完成:配方「${updated.name}」已生成 v${updated.version ?? 1},参数恢复为目标版本(${toLastGood ? '已知良好批次冻结' : `v${version}`});原因:${reason}。\n注意:仅回退了配方定义,运行中 PLC 未变动;要把恢复参数写入产线(统一回退),用 recipe_rollback 并带 dispatch=true。版本史用 recipe_versions 复核。`,
|
|
365
422
|
}
|
|
366
423
|
}
|
|
367
424
|
catch (err) {
|
|
368
425
|
return { text: `回退失败:${err instanceof Error ? err.message : String(err)}`, isError: true }
|
|
369
426
|
}
|
|
370
427
|
}
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* v19.5 HITL 下发裁决门:security.recipeDispatchApproval 开启时,配方下发动作
|
|
431
|
+
* 不直接执行 —— 挂起等待人工裁决(复用 ToolApprovalService,人类批/拒理由原样回流):
|
|
432
|
+
* 批准 → 按原逻辑执行下发,回执附人工附言;
|
|
433
|
+
* 拒绝(可附指导)→ 工具回包携带人工指导文本,Agent 按指导修订候选后重新提交 ——
|
|
434
|
+
* 即"改好配方交给人类判断是否下发;不下发则人告诉 Agent 怎么修"的真实作业语义。
|
|
435
|
+
* 超时(默认 180s,security.hitl_timeout_ms)自动按拒绝收敛。
|
|
436
|
+
*/
|
|
437
|
+
async function hitlDispatchGate(agentId: string, detail: string, title: string): Promise<{ approved: boolean, comment: string }> {
|
|
438
|
+
const { getToolApprovals } = await import('../tool-approvals')
|
|
439
|
+
const decision = await getToolApprovals().request(agentId, 'recipe-dispatch', 'dcw', detail, { title })
|
|
440
|
+
return { approved: decision.approved, comment: decision.comment }
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
/** 工具:recipe_trial —— 多参数候选整批试验下发(v19 配方链路核心)。
|
|
444
|
+
* 候选值只覆盖列出节点(**必须是自己绑定的数控节点**);整批一次落产线,**不写配方版本** ——
|
|
445
|
+
* 复测判读:有进步/达标 → recipe_update 固化(同 id 版本+1);劣化 → recipe_rollback(dispatch=true) 统一回退。
|
|
446
|
+
* 受同线试验节拍卡控(默认 ≥5 分钟,防连发震荡);四层限界(量程∩参数∩产品)照常拦截。 */
|
|
447
|
+
export async function toolRecipeTrial(agentId: string, args: {
|
|
448
|
+
recipe_id?: string
|
|
449
|
+
params?: Array<{ node_id?: string, value?: number | string }>
|
|
450
|
+
hypothesis?: string
|
|
451
|
+
}): Promise<{ text: string, isError?: boolean }> {
|
|
452
|
+
const recipeId = String(args.recipe_id ?? '').trim()
|
|
453
|
+
const hypothesis = String(args.hypothesis ?? '').trim()
|
|
454
|
+
if (!recipeId) return { text: 'recipe_id 必填(line_context 可看到当前配方 id)。', isError: true }
|
|
455
|
+
if (!hypothesis) return { text: 'hypothesis 必填:试验必须声明依据(知识库条目/数据分析结论),便于审计追溯。', isError: true }
|
|
456
|
+
const list = (args.params ?? []).filter(p => p && String(p.node_id ?? '').trim() && Number.isFinite(Number(p.value)))
|
|
457
|
+
.map(p => ({ nodeId: String(p.node_id).trim(), value: Number(p.value) }))
|
|
458
|
+
if (list.length === 0) return { text: 'params 至少提供一条 {node_id, value}(value 必须为数字);试验的意义就是多参数一次整批改动。', isError: true }
|
|
459
|
+
const recipe = getDcwController().listRecipes().find(r => r.id === recipeId)
|
|
460
|
+
if (!recipe) return { text: `配方 ${recipeId} 不存在。`, isError: true }
|
|
461
|
+
const repo = getAgentNodeBindingRepo()
|
|
462
|
+
for (const p of list) {
|
|
463
|
+
const node = getDcwController().byId(p.nodeId)
|
|
464
|
+
if (!node) return { text: `节点 ${p.nodeId} 已删除,不能纳入试验。`, isError: true }
|
|
465
|
+
if (node.lineId !== recipe.lineId) return { text: `节点「${node.name}」不在配方「${recipe.name}」所在产线,不可混入试验。`, isError: true }
|
|
466
|
+
if (!node.enabled) return { text: `节点「${node.name}」已停用,试验被拒。`, isError: true }
|
|
467
|
+
if (!repo.find(agentId, p.nodeId, 'dcw')) {
|
|
468
|
+
return { text: `无权试验节点「${node.name}」(仅可改自己绑定的数控节点;缺授权找 lead 用 team_grant_nodes 授予)。`, isError: true }
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
try {
|
|
472
|
+
// v19.5 HITL 门:开启人工审批时,整批试验前先挂起等人工裁决(拒绝附指导 → 回给 Agent 修订)
|
|
473
|
+
let hitlNote = ''
|
|
474
|
+
if (settingOf('security.recipeDispatchApproval') === true) {
|
|
475
|
+
const gate = await hitlDispatchGate(
|
|
476
|
+
agentId,
|
|
477
|
+
`配方试验候选(整批 ${list.length} 参数):${list.map((p) => {
|
|
478
|
+
const node = getDcwController().byId(p.nodeId)
|
|
479
|
+
const old = recipe.params.find(x => x.nodeId === p.nodeId)?.value
|
|
480
|
+
return `${node?.name ?? p.nodeId} ${old ?? '?'}→${p.value}${node?.unit ?? ''}`
|
|
481
|
+
}).join(';')} | 假设:${hypothesis} | 批准=整批下发试验(不写版本);拒绝可附指导`,
|
|
482
|
+
'配方试验(整批候选)下发审批',
|
|
483
|
+
)
|
|
484
|
+
if (!gate.approved) {
|
|
485
|
+
return {
|
|
486
|
+
text: `人工未批准本次试验下发。人工指导:${gate.comment || '(无附言,仅不同意候选)'}。请按人工指导修订候选参数(必要时先 recipe_update 调整基线),然后重新提交 recipe_trial。`,
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
// 人工附言随批准回执回流(Agent 与审计都能看到放行时人的原话)
|
|
490
|
+
if (gate.comment) hitlNote = `\n人工附言:${gate.comment}`
|
|
491
|
+
}
|
|
492
|
+
const run = await getDcwController().applyRecipe(recipeId, { overrides: list, trial: true })
|
|
493
|
+
const okN = run.results.filter(r => r.ok).length
|
|
494
|
+
// 批次级留痕:试验动作入审计(逐参数写已有 write-audit;这里是"一次试验"粒度)
|
|
495
|
+
try {
|
|
496
|
+
const { recordOps } = await import('../../ops/ops')
|
|
497
|
+
recordOps({
|
|
498
|
+
actor: agentId, actorName: agentBadgeLabel(agentId), actorKind: 'agent',
|
|
499
|
+
action: 'recipe.trial', kind: 'recipe', targetKind: 'recipe', targetId: recipeId, recipeId, lineId: recipe.lineId,
|
|
500
|
+
summary: `配方试验整批下发(${okN}/${run.results.length} 成功,批次 ${run.id.slice(0, 8)}):${list.map(p => `${p.nodeId.slice(0, 8)}→${p.value}`).join(';')} | 假设:${hypothesis}`,
|
|
501
|
+
})
|
|
502
|
+
}
|
|
503
|
+
catch { /* 审计失败不影响试验结果 */ }
|
|
504
|
+
const changed = run.results.map((r) => {
|
|
505
|
+
const node = r.nodeId ? getDcwController().byId(r.nodeId) : undefined
|
|
506
|
+
const reason = r.ok ? '' : `(${String(r.message).slice(0, 60)})`
|
|
507
|
+
return `${node?.name ?? r.templateRef}→${r.value}${node?.unit ?? ''}${r.ok ? '' : ` 被拒${reason}`}`
|
|
508
|
+
}).join(';')
|
|
509
|
+
return {
|
|
510
|
+
text: `试验已整批下发(${okN}/${run.results.length} 成功,批次 ${run.id.slice(0, 8)}):${changed}。假设:${hypothesis}。${hitlNote}注意:本次试验**未写入配方版本** —— 等待工艺惯性后 daq_query 复测判读:有进步/达标 → recipe_update 把候选值固化进配方(同 id 版本+1);无进步/劣化 → recipe_rollback(recipe_id, dispatch=true, reason=…) 统一回退(定义回退+PLC 整批恢复)。`,
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
catch (err) {
|
|
514
|
+
return { text: `试验下发失败:${err instanceof Error ? err.message : String(err)}`, isError: true }
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
/** 工具:recipe_apply —— 把配方当前已固化参数整批下发到产线(改配方(recipe_update)之后用)。
|
|
519
|
+
* 与 recipe_trial 的区别:apply 下发的是**已固化版本**(无候选覆盖),用于"改配方 → 配方下发"链路的正式下发。 */
|
|
520
|
+
export async function toolRecipeApply(agentId: string, args: {
|
|
521
|
+
recipe_id?: string
|
|
522
|
+
reason?: string
|
|
523
|
+
}): Promise<{ text: string, isError?: boolean }> {
|
|
524
|
+
const recipeId = String(args.recipe_id ?? '').trim()
|
|
525
|
+
if (!recipeId) return { text: 'recipe_id 必填(line_context 可看到当前配方 id)。', isError: true }
|
|
526
|
+
const recipe = getDcwController().listRecipes().find(r => r.id === recipeId)
|
|
527
|
+
if (!recipe) return { text: `配方 ${recipeId} 不存在。`, isError: true }
|
|
528
|
+
const scope = agentOpsScope(agentId)
|
|
529
|
+
if (!scope || !recipe.lineId || !scope.lineIds.includes(recipe.lineId)) {
|
|
530
|
+
return { text: `无权下发配方 ${recipeId}(该配方不在你负责的产线上)。`, isError: true }
|
|
531
|
+
}
|
|
532
|
+
const boundInRecipe = getAgentNodeBindingRepo().byAgent(agentId)
|
|
533
|
+
.some(b => b.kind === 'dcw' && recipe.params.some(p => p.nodeId === b.nodeId))
|
|
534
|
+
if (!boundInRecipe) {
|
|
535
|
+
return { text: `无权下发配方 ${recipeId}(需持有该配方至少一个数控节点的授权;找 lead 用 team_grant_nodes 授予)。`, isError: true }
|
|
536
|
+
}
|
|
537
|
+
try {
|
|
538
|
+
// v19.5 HITL 门:开启人工审批时,正式下发前先挂起等人工裁决(拒绝附指导 → 回给 Agent 修订)
|
|
539
|
+
let hitlNote = ''
|
|
540
|
+
if (settingOf('security.recipeDispatchApproval') === true) {
|
|
541
|
+
const gate = await hitlDispatchGate(
|
|
542
|
+
agentId,
|
|
543
|
+
`配方正式下发:「${recipe.name}」v${recipe.version ?? 1} 全参数整批(${recipe.params.length} 项):${recipe.params.map((p) => {
|
|
544
|
+
const node = getDcwController().byId(p.nodeId)
|
|
545
|
+
return `${node?.name ?? p.nodeId}=${p.value}${node?.unit ?? ''}`
|
|
546
|
+
}).join(';')} | 批准=整批下发到 PLC;拒绝可附指导`,
|
|
547
|
+
'配方下发审批',
|
|
548
|
+
)
|
|
549
|
+
if (!gate.approved) {
|
|
550
|
+
return {
|
|
551
|
+
text: `人工未批准本次配方下发。人工指导:${gate.comment || '(无附言)'}。请按人工指导修订配方(recipe_update)后重新提交 recipe_apply。`,
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
// 人工附言随批准回执回流(与 recipe_trial 同口径)
|
|
555
|
+
if (gate.comment) hitlNote = `\n人工附言:${gate.comment}`
|
|
556
|
+
}
|
|
557
|
+
const run = await getDcwController().applyRecipe(recipeId)
|
|
558
|
+
const okN = run.results.filter(r => r.ok).length
|
|
559
|
+
// 逐参数标注:被跳过/失败的参数(节点停用/已删除/限界拒绝)必须透出给 Agent,
|
|
560
|
+
// 否则回包只见 N/N 成功数,无法定位哪些参数未生效(与 recipe_trial 的逐参数渲染同口径)。
|
|
561
|
+
const skipped = run.results.filter(r => !r.ok)
|
|
562
|
+
.map((r) => {
|
|
563
|
+
const node = r.nodeId ? getDcwController().byId(r.nodeId) : undefined
|
|
564
|
+
return `${node?.name ?? r.templateRef ?? r.nodeId ?? '?'}: ${String(r.message).slice(0, 80)}`
|
|
565
|
+
})
|
|
566
|
+
const skippedNote = skipped.length > 0 ? `\n未生效参数(${skipped.length}):\n - ${skipped.join('\n - ')}` : ''
|
|
567
|
+
try {
|
|
568
|
+
const { recordOps } = await import('../../ops/ops')
|
|
569
|
+
recordOps({
|
|
570
|
+
actor: agentId, actorName: agentBadgeLabel(agentId), actorKind: 'agent',
|
|
571
|
+
action: 'recipe.apply', kind: 'recipe', targetKind: 'recipe', targetId: recipeId, recipeId, lineId: recipe.lineId,
|
|
572
|
+
summary: `Agent 整批下发配方 v${recipe.version ?? 1}(${okN}/${run.results.length} 参数成功,批次 ${run.id.slice(0, 8)})${args.reason ? ` | 原因:${String(args.reason).trim()}` : ''}`,
|
|
573
|
+
})
|
|
574
|
+
}
|
|
575
|
+
catch { /* 审计失败不影响下发结果 */ }
|
|
576
|
+
return {
|
|
577
|
+
text: `配方「${recipe.name}」v${recipe.version ?? 1} 已整批下发(${okN}/${run.results.length} 参数成功,批次 ${run.id.slice(0, 8)})。${skippedNote}${hitlNote}用 daq_query 复测确认工艺响应。`,
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
catch (err) {
|
|
581
|
+
return { text: `配方下发失败:${err instanceof Error ? err.message : String(err)}`, isError: true }
|
|
582
|
+
}
|
|
583
|
+
}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
import { getAgentNodeBindingRepo } from './node-bindings.repo'
|
|
11
11
|
import { getDcwController } from '../dcw/dcw-controller'
|
|
12
|
+
import { getDcwNodeRepo } from '../dcw/dcw-node.repo'
|
|
12
13
|
import { getDcwLineRepo } from '../dcw/dcw-line.repo'
|
|
13
14
|
import { getActiveLineRun } from '../dcw/line-run'
|
|
14
15
|
import { findDcwTemplate } from '../dcw/dcw-templates'
|
|
@@ -18,6 +19,7 @@ import { findDaqTemplate } from '../daq/daq-templates'
|
|
|
18
19
|
import { getDeviceTwinRepo } from '../assets/device-twin.repo'
|
|
19
20
|
import { getRecipeRollBackManager } from '../dcw/recipe-rollback-manager'
|
|
20
21
|
import { limitsBreakdownOf } from '../dcw/param-limits'
|
|
22
|
+
import { MES_REST_DRIVER_KIND, mesCatalogEntryOf } from '../mes/mes-controller'
|
|
21
23
|
|
|
22
24
|
/** 从属设备描述(名称/状态/实时遥测;数据驱动) */
|
|
23
25
|
function describeTwin(bindId: string | null | undefined): string | null {
|
|
@@ -170,6 +172,23 @@ export function buildIndustrialContext(agentId: string): string {
|
|
|
170
172
|
if (alarms.length > 0) {
|
|
171
173
|
lines.push(`- **当前报警**: ${alarms.map(n => `${n.name} 实时 ${n.value ?? '?'}${n.unit} 处于报警态(越量程或越配方监控窗口)`)},应优先判读(设定-响应滞后 vs 真实异常)并处置`)
|
|
172
174
|
}
|
|
175
|
+
// MES REST 点位段:本产线 mes-rest 节点 ≤30 条全量简列(>30 给前 30 + 检索指引);
|
|
176
|
+
// 只列语义面(名称/单位/量程/能力/desc),取数走 mes_fetch(原文不进 prompt)
|
|
177
|
+
try {
|
|
178
|
+
const mesEntries = getDcwNodeRepo().all()
|
|
179
|
+
.filter(n => n.lineId === lineId && n.driver === MES_REST_DRIVER_KIND)
|
|
180
|
+
.map(mesCatalogEntryOf)
|
|
181
|
+
if (mesEntries.length > 0) {
|
|
182
|
+
const MES_BRIEF_MAX = 30
|
|
183
|
+
const capOf = (e: { readable: boolean, writable: boolean, historyable: boolean }): string =>
|
|
184
|
+
[e.readable ? '读' : null, e.writable ? '写' : null, e.historyable ? '史' : null].filter(Boolean).join('/') || '-'
|
|
185
|
+
const shown = mesEntries.slice(0, MES_BRIEF_MAX)
|
|
186
|
+
.map(e => ` ${e.name}|${e.unit || '-'}|${e.min}~${e.max}|${capOf(e)}|${e.desc.slice(0, 40)}`)
|
|
187
|
+
const rest = mesEntries.length - shown.length
|
|
188
|
+
lines.push(`- MES REST 点位(${mesEntries.length} 条,名称|单位|量程|读写/历史能力|描述):\n${shown.join('\n')}${rest > 0 ? `\n (其余 ${rest} 条未列出,用 mes_catalog 检索)` : ''}`)
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
catch { /* MES 面未就绪(单测/降级)不阻断简报 */ }
|
|
173
192
|
sections.push(lines.join('\n'))
|
|
174
193
|
}
|
|
175
194
|
if (sections.length === 0) return ''
|
|
@@ -27,4 +27,16 @@ export const HYBRID_TWIN_DIRECT_WRITE_TOOL_NAMES = new Set([
|
|
|
27
27
|
'dcw_rollback',
|
|
28
28
|
'recipe_update',
|
|
29
29
|
'recipe_rollback',
|
|
30
|
+
'recipe_trial',
|
|
31
|
+
'recipe_apply',
|
|
32
|
+
])
|
|
33
|
+
|
|
34
|
+
/** MES 数据集工具(只读面:点位目录/历史取数/数据集读取与清单)。
|
|
35
|
+
* 不落 HIGH_RISK、不写 PLC —— fetch 只写 CSV 数据集文件(护栏在 mes-controller 代码级:
|
|
36
|
+
* 绑线授权/窗口≤7天/行数≤5000/频次限流);权限面与目录注入面可同源引用本集合。 */
|
|
37
|
+
export const MES_READ_TOOL_NAMES = new Set([
|
|
38
|
+
'mes_catalog',
|
|
39
|
+
'mes_fetch',
|
|
40
|
+
'mes_dataset_read',
|
|
41
|
+
'mes_datasets',
|
|
30
42
|
])
|
|
@@ -194,7 +194,9 @@ export async function buildDataset(spec: AmlDatasetSpec, by: { id: string, kind:
|
|
|
194
194
|
continue
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
-
// 公共网格:[max(t0), min(t1)];逐节点最近邻对齐,网格点缺失计 NaN
|
|
197
|
+
// 公共网格:[max(t0), min(t1)];逐节点最近邻对齐,网格点缺失计 NaN。
|
|
198
|
+
// 全节点查空(如该 run 采样缺失/时序库丢数)时 g0/g1 保持 ±Infinity,
|
|
199
|
+
// 必须按丢弃处理 —— 否则 steps=Infinity 会把网格循环推到 RangeError(500)。
|
|
198
200
|
let g0 = -Infinity
|
|
199
201
|
let g1 = Infinity
|
|
200
202
|
for (const n of order) {
|
|
@@ -206,7 +208,7 @@ export async function buildDataset(spec: AmlDatasetSpec, by: { id: string, kind:
|
|
|
206
208
|
g0 = Math.max(g0, first.at)
|
|
207
209
|
g1 = Math.min(g1, last.at)
|
|
208
210
|
}
|
|
209
|
-
const steps = g1 > g0 ? Math.floor((g1 - g0) / beat) + 1 : 0
|
|
211
|
+
const steps = Number.isFinite(g0) && Number.isFinite(g1) && g1 > g0 ? Math.floor((g1 - g0) / beat) + 1 : 0
|
|
210
212
|
if (steps < spec.window.historySteps + spec.window.horizonSteps + 2) {
|
|
211
213
|
runsDropped.push({ runId: run.id, reason: `有效网格 ${steps} 步不足一个窗口` })
|
|
212
214
|
continue
|
|
@@ -96,5 +96,6 @@ export function handleProtocolLine(run: RunningJob, rawLine: string): void {
|
|
|
96
96
|
}
|
|
97
97
|
else if (evt.type === 'error' && evt.message) {
|
|
98
98
|
pushLog(run, `[error] ${evt.message}`)
|
|
99
|
+
run.lastProtocolError = String(evt.message).slice(0, 300) // 结题失败原因优先用它(见 start-job 评估段)
|
|
99
100
|
}
|
|
100
101
|
}
|
|
@@ -140,8 +140,11 @@ export async function startJob(row: AmlJobRow): Promise<void> {
|
|
|
140
140
|
const exit2 = await runPython(run, vpy, [evalScript, '--job', join(jobDir, 'job.json')], jobDir)
|
|
141
141
|
if (run.killed) return
|
|
142
142
|
if (exit2.code !== 0) {
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
// 失败原因优先取评估器的 ##AML error 协议消息(如「test 切分为空…」,人读可操作);
|
|
144
|
+
// stderr 尾兜底 —— 评估器把错误走 stdout 协议行时 errTail 常为空,只给 "exit" 无从排查。
|
|
145
|
+
const reason = run.lastProtocolError || lastErrLine(exit2.errTail)
|
|
146
|
+
rt.repo.job.fail(row.id, 'failed', `评估失败:${reason}(永久错误不重试)`, new Date().toISOString())
|
|
147
|
+
experimentFail(run, `评估失败:${reason}`)
|
|
145
148
|
finishRun(run)
|
|
146
149
|
return
|
|
147
150
|
}
|
|
@@ -11,7 +11,7 @@ import type { DatabaseSync } from 'node:sqlite'
|
|
|
11
11
|
import type { ChannelRow } from './database'
|
|
12
12
|
|
|
13
13
|
/** 查询列(蛇形列名 → 驼峰行字段) */
|
|
14
|
-
const COLS = 'id, name, description, scenario_prompt AS scenarioPrompt, llm_json AS llmJson, lead_agent_id AS leadAgentId, workspace, enabled, owner_user_id AS ownerUserId, visibility, join_policy AS joinPolicy, approval_policy AS approvalPolicy, chat_enabled AS chatEnabled, version, created_at AS createdAt, updated_at AS updatedAt'
|
|
14
|
+
const COLS = 'id, name, description, scenario_prompt AS scenarioPrompt, llm_json AS llmJson, lead_agent_id AS leadAgentId, workspace, enabled, owner_user_id AS ownerUserId, visibility, join_policy AS joinPolicy, approval_policy AS approvalPolicy, chat_enabled AS chatEnabled, version, line_id AS lineId, created_at AS createdAt, updated_at AS updatedAt'
|
|
15
15
|
|
|
16
16
|
export interface ChannelCreateInput {
|
|
17
17
|
name: string
|
|
@@ -99,6 +99,7 @@ export function createChannelRepo(db: DatabaseSync) {
|
|
|
99
99
|
approvalPolicy: input.approvalPolicy ?? 'owner_only',
|
|
100
100
|
chatEnabled: input.chatEnabled ?? 0,
|
|
101
101
|
version: 1,
|
|
102
|
+
lineId: '',
|
|
102
103
|
createdAt: now,
|
|
103
104
|
updatedAt: now,
|
|
104
105
|
}
|
|
@@ -189,5 +190,14 @@ export function createChannelRepo(db: DatabaseSync) {
|
|
|
189
190
|
remove(id: string): void {
|
|
190
191
|
removeStmt.run(id)
|
|
191
192
|
},
|
|
193
|
+
|
|
194
|
+
/** v18:绑定/解绑产线(lineId=''=解绑)。只读扩权面:成员可读该线日志/配方/历史/状态;写仍走节点授权。 */
|
|
195
|
+
setLine(id: string, lineId: string): ChannelRow | undefined {
|
|
196
|
+
const current = selectById.get(id) as unknown as ChannelRow | undefined
|
|
197
|
+
if (!current) return undefined
|
|
198
|
+
db.prepare('UPDATE channels SET line_id = ?, updated_at = ? WHERE id = ?')
|
|
199
|
+
.run(lineId, new Date().toISOString(), id)
|
|
200
|
+
return { ...current, lineId, updatedAt: new Date().toISOString() }
|
|
201
|
+
},
|
|
192
202
|
}
|
|
193
203
|
}
|
|
@@ -10,6 +10,8 @@ export function migrateGroupChatV17(db: DatabaseSync): void {
|
|
|
10
10
|
migrateAddColumn(db, 'channels', 'approval_policy', 'TEXT NOT NULL DEFAULT \'owner_only\'')
|
|
11
11
|
migrateAddColumn(db, 'channels', 'chat_enabled', 'INTEGER NOT NULL DEFAULT 0')
|
|
12
12
|
migrateAddColumn(db, 'channels', 'version', 'INTEGER NOT NULL DEFAULT 1')
|
|
13
|
+
// v18:Channel 绑定产线(空串=未绑定;只读扩权面,见 ops-tools agentOpsScope)
|
|
14
|
+
migrateAddColumn(db, 'channels', 'line_id', 'TEXT NOT NULL DEFAULT \'\'')
|
|
13
15
|
// 规范化非法值(历史手改/测试数据):未知取值一律回落到最保守档,不放宽权限
|
|
14
16
|
db.exec(`UPDATE channels SET visibility = 'private' WHERE visibility NOT IN ('private', 'public')`)
|
|
15
17
|
db.exec(`UPDATE channels SET join_policy = 'owner_approve' WHERE join_policy NOT IN ('open', 'owner_approve')`)
|
|
@@ -711,6 +711,38 @@ CREATE TABLE IF NOT EXISTS twin_update_runs (
|
|
|
711
711
|
);
|
|
712
712
|
CREATE UNIQUE INDEX IF NOT EXISTS uq_twin_update_active_dedup ON twin_update_runs(dedup_key) WHERE state IN ('queued','running','cooldown');
|
|
713
713
|
|
|
714
|
+
-- v25: MES REST · CSV 数据集(Agent mes_fetch 异步取数的落盘事实源;铁律:MES 原文不进 prompt,工具面只回 stats+采样)
|
|
715
|
+
CREATE TABLE IF NOT EXISTS mes_datasets (
|
|
716
|
+
id TEXT PRIMARY KEY,
|
|
717
|
+
line_id TEXT,
|
|
718
|
+
node_id TEXT,
|
|
719
|
+
node_name TEXT,
|
|
720
|
+
from_ts TEXT,
|
|
721
|
+
to_ts TEXT,
|
|
722
|
+
rows INTEGER DEFAULT 0,
|
|
723
|
+
sha256 TEXT,
|
|
724
|
+
file_path TEXT,
|
|
725
|
+
status TEXT DEFAULT 'ready', -- running(取数中) | ready | failed
|
|
726
|
+
error TEXT,
|
|
727
|
+
created_by TEXT,
|
|
728
|
+
created_at TEXT
|
|
729
|
+
);
|
|
730
|
+
CREATE INDEX IF NOT EXISTS idx_mes_datasets_line ON mes_datasets(line_id, created_at DESC);
|
|
731
|
+
|
|
732
|
+
-- v25: MES REST · 取数作业(进程内异步执行的账本,绝不进调度循环;重启后遗留 running 由查询侧按 failed 呈现)
|
|
733
|
+
CREATE TABLE IF NOT EXISTS mes_fetch_jobs (
|
|
734
|
+
id TEXT PRIMARY KEY,
|
|
735
|
+
dataset_id TEXT,
|
|
736
|
+
agent_id TEXT,
|
|
737
|
+
status TEXT DEFAULT 'running', -- running | done | failed
|
|
738
|
+
rows INTEGER DEFAULT 0,
|
|
739
|
+
error TEXT,
|
|
740
|
+
created_at TEXT,
|
|
741
|
+
updated_at TEXT
|
|
742
|
+
);
|
|
743
|
+
CREATE INDEX IF NOT EXISTS idx_mes_fetch_jobs_dataset ON mes_fetch_jobs(dataset_id);
|
|
744
|
+
CREATE INDEX IF NOT EXISTS idx_mes_fetch_jobs_agent ON mes_fetch_jobs(agent_id, created_at DESC);
|
|
745
|
+
|
|
714
746
|
CREATE INDEX IF NOT EXISTS idx_hitl_requests_agent ON hitl_requests(agent_id, status);`
|
|
715
747
|
|
|
716
748
|
// ===== 默认种子数据(首轮初始化注入;owner NULL = 公共资源,所有登录用户只读共享) =====
|