agentworkshop 0.7.53 → 0.7.58
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 +2418 -2097
- package/.env.example +1 -0
- package/.output/.AgentWorkShop/prompts/host-tools.json +2418 -2097
- package/.output/.AgentWorkShop/schema.json +140 -137
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/2pU5BiaQ2.js +1 -0
- package/.output/public/_nuxt/{B_LcD7qE2.js → 4RTUlYvj2.js} +1 -1
- package/.output/public/_nuxt/AuthGate.Cvsc4atp.css +1 -0
- package/.output/public/_nuxt/B-Y_rsfn.js +106 -0
- package/.output/public/_nuxt/{IU-UGkCJ2.js → B02cxZz72.js} +1 -1
- package/.output/public/_nuxt/{BE7BrEw6.js → B03LfmKR.js} +1 -1
- package/.output/public/_nuxt/{BwlGxRxA.js → B4R5CHkk.js} +3 -3
- package/.output/public/_nuxt/{B3zB6K6m.js → BAqtRt0q.js} +1 -1
- package/.output/public/_nuxt/BDC8YDyc.js +1 -0
- package/.output/public/_nuxt/{BH3obZJ42.js → BG7XSX-S2.js} +1 -1
- package/.output/public/_nuxt/{H2rNs1O82.js → BH30ZaLl2.js} +1 -1
- package/.output/public/_nuxt/BKHd_sKD2.js +47 -0
- package/.output/public/_nuxt/{S9rLP7_v.js → BMUEVeOK.js} +1 -1
- package/.output/public/_nuxt/{CQabB0oy.js → BMZ1d25O.js} +1 -1
- package/.output/public/_nuxt/{DFhyhDGa2.js → BNl_jGa12.js} +1 -1
- package/.output/public/_nuxt/{Crbir9cT.js → BQOn0q6Y.js} +1 -1
- package/.output/public/_nuxt/{1g9IT9Qh2.js → BSG-4Ecg2.js} +1 -1
- package/.output/public/_nuxt/{bg2adfck.js → BU7WuuKh.js} +1 -1
- package/.output/public/_nuxt/{BdM_Qr752.js → BVH9j8dQ2.js} +1 -1
- package/.output/public/_nuxt/BXKCB3rS.js +1 -0
- package/.output/public/_nuxt/{Bhe953zV2.js → Bd85nb9X2.js} +1 -1
- package/.output/public/_nuxt/BhrnGVGz.js +1 -0
- package/.output/public/_nuxt/BikIgp9R.js +1 -0
- package/.output/public/_nuxt/Bj7BcqHn.js +1 -0
- package/.output/public/_nuxt/BkGqyjWm.js +3 -0
- package/.output/public/_nuxt/{CP0Nep9S.js → BkO2MZZU.js} +1 -1
- package/.output/public/_nuxt/{KXjvpIk2.js → Bn1N3mJv.js} +1 -1
- package/.output/public/_nuxt/Br2LgfbH2.js +13 -0
- package/.output/public/_nuxt/BrFF_9742.js +1 -0
- package/.output/public/_nuxt/{tKxYgsf-.js → BtDBBofS.js} +1 -1
- package/.output/public/_nuxt/BtNT93vm2.js +1 -0
- package/.output/public/_nuxt/{DSqMyLCV2.js → BtYg4aGR2.js} +1 -1
- package/.output/public/_nuxt/{BGKUW7ra.js → Btx8wL4-.js} +1 -1
- package/.output/public/_nuxt/BuVH9MB-.js +1 -0
- package/.output/public/_nuxt/BupBjt6B2.js +1 -0
- package/.output/public/_nuxt/{EhhQmlBV2.js → ByvqxkcN.js} +1 -1
- package/.output/public/_nuxt/{CzlUIbK32.js → BzKT-ne_2.js} +3 -3
- package/.output/public/_nuxt/C-LU6xv_.js +1 -0
- package/.output/public/_nuxt/{ZuQtOnfI.js → C4X_Z1lA.js} +1 -1
- package/.output/public/_nuxt/C5wBzGO7.js +1 -0
- package/.output/public/_nuxt/{BgnhB8r5.js → C8uaVABF.js} +1 -1
- package/.output/public/_nuxt/{YaroNkJZ2.js → C98jxVaK.js} +1 -1
- package/.output/public/_nuxt/CBATzTUf.js +13 -0
- package/.output/public/_nuxt/{B9rIcCX12.js → CCCq9H7D2.js} +1 -1
- package/.output/public/_nuxt/{CvGYm7w8.js → CEP4UrDv.js} +1 -1
- package/.output/public/_nuxt/CHyzK5m52.js +1 -0
- package/.output/public/_nuxt/CIPKYgrH2.js +1 -0
- package/.output/public/_nuxt/{Drq9iy6V.js → CIz7SM4H.js} +1 -1
- package/.output/public/_nuxt/{BpcQDwKM2.js → CKE_kTL92.js} +1 -1
- package/.output/public/_nuxt/CPSHP_EI.js +1 -0
- package/.output/public/_nuxt/{BDmNbZ252.js → CSyIwYcJ2.js} +1 -1
- package/.output/public/_nuxt/{v55S8LnT.js → CW1HGp5X.js} +1 -1
- package/.output/public/_nuxt/{Yv9YItEX2.js → CYGkUj5M2.js} +1 -1
- package/.output/public/_nuxt/{DppqsiPC.js → CZ0Gt81h.js} +2 -2
- package/.output/public/_nuxt/{BiOSWsjD.js → CZkTlW93.js} +2 -2
- package/.output/public/_nuxt/{DNoEoo8t.js → CZwDnomB.js} +1 -1
- package/.output/public/_nuxt/{NJn94js_.js → CZyYdpqZ2.js} +1 -1
- package/.output/public/_nuxt/{9zrLAN2o2.js → CaBVMdqG2.js} +1 -1
- package/.output/public/_nuxt/{BQXCMsXk.js → CeDkXWCz.js} +1 -1
- package/.output/public/_nuxt/{B1RT9NTO2.js → ChN5v-i22.js} +1 -1
- package/.output/public/_nuxt/{BcQXL8pb.js → Cl19UD7U.js} +1 -1
- package/.output/public/_nuxt/ClEbKcuS.js +1 -0
- package/.output/public/_nuxt/{B4ujjkUI.js → ClrkV0C4.js} +1 -1
- package/.output/public/_nuxt/{BzvHUfRR.js → CmTqFlYZ.js} +1 -1
- package/.output/public/_nuxt/{LwIFGLgF.js → CnF6dXcZ2.js} +1 -1
- package/.output/public/_nuxt/CoGETbe-2.js +1 -0
- package/.output/public/_nuxt/{Dq0emNZi2.js → CuRtzvsa2.js} +1 -1
- package/.output/public/_nuxt/{CBUIODly2.js → Cv_H1gOM2.js} +1 -1
- package/.output/public/_nuxt/{Cmp8PMrA.js → CxLxiOGV.js} +1 -1
- package/.output/public/_nuxt/{DD6Z0yPN2.js → D1Xw30Dj2.js} +1 -1
- package/.output/public/_nuxt/{DJyNDnag.js → D5hI4Fhu.js} +1 -1
- package/.output/public/_nuxt/D5i2ofVw2.js +1 -0
- package/.output/public/_nuxt/D6XGn5vM.js +2 -0
- package/.output/public/_nuxt/{DjefmmJu.js → D6c5ppqB.js} +1 -1
- package/.output/public/_nuxt/D8VQGThE.js +28 -0
- package/.output/public/_nuxt/{DCtk3qqr.js → D8xUsQGt.js} +1 -1
- package/.output/public/_nuxt/{DmzmgYHb.js → DBwuADr82.js} +1 -1
- package/.output/public/_nuxt/{CMXcOb6W.js → DEhjFhZ2.js} +1 -1
- package/.output/public/_nuxt/DIDbAMv5.js +1 -0
- package/.output/public/_nuxt/{CfLUvgr32.js → DJZzthKt2.js} +1 -1
- package/.output/public/_nuxt/{Bpkm4W5P.js → DKhRushG.js} +1 -1
- package/.output/public/_nuxt/DLAFNaPf.js +1 -0
- package/.output/public/_nuxt/{DffgG8vT.js → DMPpE41S2.js} +1 -1
- package/.output/public/_nuxt/{CPeZNE4S2.js → DTZO6WMs2.js} +1 -1
- package/.output/public/_nuxt/{77DRSnQv.js → DTx_DtUo.js} +1 -1
- package/.output/public/_nuxt/DYtV50yi2.js +1 -0
- package/.output/public/_nuxt/{Ccps4cxo.js → D_hCLbi9.js} +1 -1
- package/.output/public/_nuxt/{CjwxhpwR2.js → DctCtJq7.js} +1 -1
- package/.output/public/_nuxt/{zsRclU9w2.js → DelESEcl2.js} +1 -1
- package/.output/public/_nuxt/DfqRQSFn.js +19 -0
- package/.output/public/_nuxt/{BFZIll912.js → DgldLfCZ2.js} +1 -1
- package/.output/public/_nuxt/Dmgqz2np.js +16 -0
- package/.output/public/_nuxt/Do0dCE8C2.js +1 -0
- package/.output/public/_nuxt/DraEWn4N2.js +1 -0
- package/.output/public/_nuxt/{Bwc6lt2X.js → Drhta6gr.js} +2 -2
- package/.output/public/_nuxt/{Cn6ihm8j.js → Du0zf-d3.js} +1 -1
- package/.output/public/_nuxt/{DqtnqNgL2.js → DvUt9uMt2.js} +1 -1
- package/.output/public/_nuxt/{C5cf3T4d.js → Dxo1GW5U.js} +1 -1
- package/.output/public/_nuxt/{sl1EEoCr2.js → Dy-V8OEW2.js} +9 -9
- package/.output/public/_nuxt/{qOlYoGLf.js → DyMgrV29.js} +1 -1
- package/.output/public/_nuxt/DzwIZ81f.js +1 -0
- package/.output/public/_nuxt/{Chphw5IA2.js → Eo2BYEIo2.js} +1 -1
- package/.output/public/_nuxt/{aV6YPjg0.js → H7Rbu32y2.js} +1 -1
- package/.output/public/_nuxt/{vXrNItas2.js → KS3KQF222.js} +1 -1
- package/.output/public/_nuxt/{CBDX7p73.js → M58CVYnv.js} +1 -1
- package/.output/public/_nuxt/M6NcguDO.js +1 -0
- package/.output/public/_nuxt/{CtPNnATm2.js → MEwEMEMl2.js} +6 -6
- package/.output/public/_nuxt/MW-V7IIP2.js +1 -0
- package/.output/public/_nuxt/P0EcfD3j.js +1 -0
- package/.output/public/_nuxt/{CHrErv1E.js → TjGWqrHo.js} +1 -1
- package/.output/public/_nuxt/{TownView.BvlfuLtP.css → TownView.BuMpDRkf.css} +1 -1
- package/.output/public/_nuxt/VVomhVqu2.js +1 -0
- package/.output/public/_nuxt/{2_DkYoqD2.js → WYqAa0r52.js} +1 -1
- package/.output/public/_nuxt/YDs3mbQu2.js +1 -0
- package/.output/public/_nuxt/{Dep0Hc9w.js → Z3MSTcdu2.js} +1 -1
- package/.output/public/_nuxt/_id_.DOqX4gwB.css +1 -0
- package/.output/public/_nuxt/_vR_sc7t.js +24 -0
- package/.output/public/_nuxt/{aml.-czpKIs8.css → aml.BeFTP6_M.css} +1 -1
- package/.output/public/_nuxt/bTFhJlrI2.js +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/082ac92a-d8d0-4e78-8d5a-b4a610080231.json +1 -0
- package/.output/public/_nuxt/dVw8IHY62.js +1 -0
- package/.output/public/_nuxt/daq.YQas76du.css +1 -0
- package/.output/public/_nuxt/dcw.UIcWRyIS.css +1 -0
- package/.output/public/_nuxt/{default.CyLpQD1C.css → default.8ac6QU28.css} +1 -1
- package/.output/public/_nuxt/{entry.JdEG3KJg.css → entry.BHNNQA9H.css} +1 -1
- package/.output/public/_nuxt/{D-Xyb3DA.js → gbaq2UOO.js} +1 -1
- package/.output/public/_nuxt/goF_oZHF.js +2 -0
- package/.output/public/_nuxt/h46i74oE.js +14 -0
- package/.output/public/_nuxt/{DE6H1HdJ.js → iZa330UY.js} +1 -1
- package/.output/public/_nuxt/logs.Bf65Kw17.css +1 -0
- package/.output/public/_nuxt/lyJsJl_G.js +1 -0
- package/.output/public/_nuxt/o-G6YtmK2.js +1 -0
- package/.output/public/_nuxt/{BkfA3BbD.js → pNy4V4kd.js} +1 -1
- package/.output/public/_nuxt/{C_sjV3Ee.js → pncSmP5n.js} +1 -1
- package/.output/public/_nuxt/{DVOR2pWg.js → qIQFsHtF.js} +1 -1
- package/.output/public/_nuxt/town.DFotRPod.css +1 -0
- package/.output/public/_nuxt/workshop.BX2YeO0g.css +1 -0
- package/.output/public/_nuxt/yPlLXpEw2.js +1 -0
- package/.output/public/_nuxt/ylowSquM2.js +1 -0
- package/.output/public/_nuxt/{Da0h_6VA.js → zGDAozGA.js} +4 -4
- package/.output/server/chunks/_/binding-authz.mjs +8 -4
- package/.output/server/chunks/_/binding-authz.mjs.map +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 +22 -2
- package/.output/server/chunks/_/host-bindings.mjs.map +1 -1
- package/.output/server/chunks/_/nitro.mjs +13851 -7875
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
- package/.output/server/chunks/_/user.schema.mjs +5 -1
- package/.output/server/chunks/_/user.schema.mjs.map +1 -1
- package/.output/server/chunks/build/{workshop-FQ4YzooB.mjs → AuthGate-DDPYswkA.mjs} +22 -325
- package/.output/server/chunks/build/AuthGate-DDPYswkA.mjs.map +1 -0
- package/.output/server/chunks/build/FormItemContext-4ORSzhWv.mjs +1 -1
- package/.output/server/chunks/build/{OmpTerminalPanel-mk31gVzA.mjs → OmpTerminalPanel-DZ2wHMS1.mjs} +5 -5
- package/.output/server/chunks/build/{OmpTerminalPanel-mk31gVzA.mjs.map → OmpTerminalPanel-DZ2wHMS1.mjs.map} +1 -1
- package/.output/server/chunks/build/{TownView-fP9BiALv.mjs → TownView-CZbFn6mO.mjs} +226 -110
- package/.output/server/chunks/build/TownView-CZbFn6mO.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-CDlur81q.mjs → _id_-CCVhpJtj.mjs} +15 -13
- package/.output/server/chunks/build/_id_-CCVhpJtj.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-CK-QFrDV.mjs → _id_-Df2pgsAq.mjs} +624 -87
- package/.output/server/chunks/build/_id_-Df2pgsAq.mjs.map +1 -0
- package/.output/server/chunks/build/{_wsId_-DdqXzycE.mjs → _wsId_-CJqF-hmP.mjs} +27 -24
- package/.output/server/chunks/build/{_wsId_-DdqXzycE.mjs.map → _wsId_-CJqF-hmP.mjs.map} +1 -1
- package/.output/server/chunks/build/{agents-DqICy4AL.mjs → agents-BTsbna5H.mjs} +15 -14
- package/.output/server/chunks/build/agents-BTsbna5H.mjs.map +1 -0
- package/.output/server/chunks/build/{aml-DsgtDLWF.mjs → aml-BBKfWto1.mjs} +40 -37
- package/.output/server/chunks/build/aml-BBKfWto1.mjs.map +1 -0
- package/.output/server/chunks/build/{api-BY6ji7RC.mjs → api-B4Om0mEc.mjs} +6 -4
- 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/{card-CUSocE9p.mjs → card-DJOYGuVH.mjs} +4 -4
- package/.output/server/chunks/build/{card-CUSocE9p.mjs.map → card-DJOYGuVH.mjs.map} +1 -1
- package/.output/server/chunks/build/{channel-templates-gdCLajKy.mjs → channel-templates-BPKJ8e4l.mjs} +12 -11
- package/.output/server/chunks/build/channel-templates-BPKJ8e4l.mjs.map +1 -0
- package/.output/server/chunks/build/constants-HPHJvjne.mjs +4 -2
- package/.output/server/chunks/build/constants-HPHJvjne.mjs.map +1 -1
- package/.output/server/chunks/build/{daq-N69AOtgw.mjs → daq-Cz7TaUAM.mjs} +47 -36
- package/.output/server/chunks/build/daq-Cz7TaUAM.mjs.map +1 -0
- package/.output/server/chunks/build/{dcw-CN9d3Rs7.mjs → dcw-EhjJpVQM.mjs} +48 -22
- package/.output/server/chunks/build/dcw-EhjJpVQM.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-CXUe4HL7.mjs → default-DweMY872.mjs} +263 -49
- package/.output/server/chunks/build/{default-CXUe4HL7.mjs.map → default-DweMY872.mjs.map} +1 -1
- package/.output/server/chunks/build/{dropdown-Yev6knaj.mjs → dropdown-CIsqbX4P.mjs} +2 -2
- package/.output/server/chunks/build/{dropdown-Yev6knaj.mjs.map → dropdown-CIsqbX4P.mjs.map} +1 -1
- package/.output/server/chunks/build/{dropdown-KdKWCS5K.mjs → dropdown-CV9GW3z9.mjs} +5 -5
- package/.output/server/chunks/build/{dropdown-KdKWCS5K.mjs.map → dropdown-CV9GW3z9.mjs.map} +1 -1
- package/.output/server/chunks/build/{form-uSlNqIAV.mjs → form-cs_RcfGx.mjs} +4 -5
- package/.output/server/chunks/build/{form-uSlNqIAV.mjs.map → form-cs_RcfGx.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/{_/SearchOutlined.mjs → build/input-CobQ5LJ5.mjs} +1476 -103
- package/.output/server/chunks/build/input-CobQ5LJ5.mjs.map +1 -0
- package/.output/server/chunks/build/{input-number-BRVnxeiA.mjs → input-number-BpPYAWMk.mjs} +4 -4
- package/.output/server/chunks/build/{input-number-BRVnxeiA.mjs.map → input-number-BpPYAWMk.mjs.map} +1 -1
- package/.output/server/chunks/build/{logs-BcAjU1Ps.mjs → logs-As9fZqU-.mjs} +55 -39
- package/.output/server/chunks/build/logs-As9fZqU-.mjs.map +1 -0
- package/.output/server/chunks/build/{menu-BgkRSSx7.mjs → menu-CVmvHyFT.mjs} +3 -3
- package/.output/server/chunks/build/{menu-BgkRSSx7.mjs.map → menu-CVmvHyFT.mjs.map} +1 -1
- package/.output/server/chunks/build/{monitor-DX_K0WMq.mjs → monitor-CdFQ2z4g.mjs} +20 -19
- package/.output/server/chunks/build/{monitor-DX_K0WMq.mjs.map → monitor-CdFQ2z4g.mjs.map} +1 -1
- package/.output/server/chunks/build/{operations-OFHYXwh4.mjs → operations-B2gHCWgZ.mjs} +13 -10
- package/.output/server/chunks/build/operations-B2gHCWgZ.mjs.map +1 -0
- package/.output/server/chunks/build/{pages-CRMeXrxG.mjs → pages-BItCt1ar.mjs} +9 -7
- package/.output/server/chunks/build/pages-BItCt1ar.mjs.map +1 -0
- package/.output/server/chunks/build/{permissions-BvmodvsO.mjs → permissions-D6mQw_9j.mjs} +15 -14
- package/.output/server/chunks/build/permissions-D6mQw_9j.mjs.map +1 -0
- package/.output/server/chunks/build/plugins-NAS9MQ5r.mjs +5 -3
- package/.output/server/chunks/build/plugins-NAS9MQ5r.mjs.map +1 -1
- package/.output/server/chunks/build/{popconfirm-Ox-_2V8A.mjs → popconfirm-DFfoFhmt.mjs} +2 -2
- package/.output/server/chunks/build/{popconfirm-Ox-_2V8A.mjs.map → popconfirm-DFfoFhmt.mjs.map} +1 -1
- package/.output/server/chunks/build/{schedules-D8vYHgQ5.mjs → schedules-BjWNDWL5.mjs} +18 -17
- package/.output/server/chunks/build/{schedules-D8vYHgQ5.mjs.map → schedules-BjWNDWL5.mjs.map} +1 -1
- package/.output/server/chunks/build/{segmented-C61yLHvo.mjs → segmented-D7FkCgg7.mjs} +2 -2
- package/.output/server/chunks/build/{segmented-C61yLHvo.mjs.map → segmented-D7FkCgg7.mjs.map} +1 -1
- package/.output/server/chunks/build/{select-rdBWytVK.mjs → select-FqBNxgxT.mjs} +3 -3
- package/.output/server/chunks/build/{select-rdBWytVK.mjs.map → select-FqBNxgxT.mjs.map} +1 -1
- package/.output/server/chunks/build/{settings-B7HA-sdb.mjs → settings-Cl_KRyEn.mjs} +12 -11
- package/.output/server/chunks/build/settings-Cl_KRyEn.mjs.map +1 -0
- package/.output/server/chunks/build/{table-DOFAvY-v.mjs → table-CeOYERqr.mjs} +8 -9
- package/.output/server/chunks/build/{table-DOFAvY-v.mjs.map → table-CeOYERqr.mjs.map} +1 -1
- package/.output/server/chunks/build/{tabs-DTeIuZeP.mjs → tabs-LLNSdLl2.mjs} +5 -6
- package/.output/server/chunks/build/{tabs-DTeIuZeP.mjs.map → tabs-LLNSdLl2.mjs.map} +1 -1
- package/.output/server/chunks/build/{tag-CHLGvNM6.mjs → tag-Dwvkh0Dj.mjs} +2 -3
- package/.output/server/chunks/build/{tag-CHLGvNM6.mjs.map → tag-Dwvkh0Dj.mjs.map} +1 -1
- package/.output/server/chunks/build/{teams-wM-MdLv9.mjs → teams-CGDZHaQl.mjs} +13 -12
- package/.output/server/chunks/build/teams-CGDZHaQl.mjs.map +1 -0
- package/.output/server/chunks/build/{tokens-CloWk4x_.mjs → tokens-BOYkZuoB.mjs} +16 -15
- package/.output/server/chunks/build/tokens-BOYkZuoB.mjs.map +1 -0
- package/.output/server/chunks/build/{town-BIn3be5v.mjs → town-BV-hbwb5.mjs} +41 -6
- package/.output/server/chunks/build/town-BV-hbwb5.mjs.map +1 -0
- package/.output/server/chunks/build/{town-BMlctE4m.mjs → town-P1rYoi0v.mjs} +15 -11
- package/.output/server/chunks/build/town-P1rYoi0v.mjs.map +1 -0
- package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
- package/.output/server/chunks/build/useAgentHarnessOptions-BnFCh23W.mjs +4 -2
- package/.output/server/chunks/build/useAgentHarnessOptions-BnFCh23W.mjs.map +1 -1
- package/.output/server/chunks/build/useAgentTemplateActions-DsBRUQni.mjs +4 -2
- package/.output/server/chunks/build/useAgentTemplateActions-DsBRUQni.mjs.map +1 -1
- package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +4 -2
- package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs.map +1 -1
- package/.output/server/chunks/build/useAgentTemplateForm-DzQ_t2Ue.mjs +4 -2
- package/.output/server/chunks/build/useAgentTemplateForm-DzQ_t2Ue.mjs.map +1 -1
- package/.output/server/chunks/build/useAgentTemplatesCatalog-Q7LgG1Af.mjs +5 -3
- package/.output/server/chunks/build/useAgentTemplatesCatalog-Q7LgG1Af.mjs.map +1 -1
- package/.output/server/chunks/build/{useAmlDatasets-BM0lZu40.mjs → useAmlDatasets-DeoE1idn.mjs} +7 -5
- package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlEntities-BDQ8TmLL.mjs → useAmlEntities-BMLHU_39.mjs} +8 -6
- package/.output/server/chunks/build/useAmlEntities-BMLHU_39.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlEnv-DgTVwpqi.mjs → useAmlEnv-DdlyVzPu.mjs} +7 -5
- package/.output/server/chunks/build/useAmlEnv-DdlyVzPu.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlExperiments-BtyW32PO.mjs → useAmlExperiments-Dloi834i.mjs} +7 -5
- package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs.map +1 -0
- package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs +4 -2
- package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs.map +1 -1
- package/.output/server/chunks/build/{useAmlJobs-fk-H5Rp5.mjs → useAmlJobs-BG_v21hJ.mjs} +8 -6
- package/.output/server/chunks/build/useAmlJobs-BG_v21hJ.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlModels-hgyVHoAq.mjs → useAmlModels-D7MuOWOy.mjs} +7 -5
- package/.output/server/chunks/build/useAmlModels-D7MuOWOy.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlNotes-BjbYNADm.mjs → useAmlNotes-CTZe-GI0.mjs} +7 -5
- package/.output/server/chunks/build/useAmlNotes-CTZe-GI0.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlPredict-U24-SZNA.mjs → useAmlPredict-BToRrVRV.mjs} +7 -5
- package/.output/server/chunks/build/useAmlPredict-BToRrVRV.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqAddNode-kW7uTSMQ.mjs → useDaqAddNode-CaOCbe4-.mjs} +8 -6
- package/.output/server/chunks/build/useDaqAddNode-CaOCbe4-.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqDetailBinding-cpBz4hSL.mjs → useDaqDetailBinding-C7AbGIdP.mjs} +8 -6
- package/.output/server/chunks/build/useDaqDetailBinding-C7AbGIdP.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqDetailFrames-BZGtKKXW.mjs → useDaqDetailFrames-CmAEdbAL.mjs} +7 -5
- package/.output/server/chunks/build/useDaqDetailFrames-CmAEdbAL.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqDetailHistory-DtSTfyMi.mjs → useDaqDetailHistory-C4LWayu1.mjs} +8 -6
- package/.output/server/chunks/build/useDaqDetailHistory-C4LWayu1.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqDetailNode-D_vhG0jF.mjs → useDaqDetailNode-DXgwAu5u.mjs} +10 -8
- package/.output/server/chunks/build/useDaqDetailNode-DXgwAu5u.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqDetailParams-JfqHvTxr.mjs → useDaqDetailParams-CrTMDs-2.mjs} +8 -6
- package/.output/server/chunks/build/useDaqDetailParams-CrTMDs-2.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqFilters-BUQtZ82a.mjs → useDaqFilters-Jx6EERfr.mjs} +10 -8
- package/.output/server/chunks/build/useDaqFilters-Jx6EERfr.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +4 -2
- package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs.map +1 -1
- package/.output/server/chunks/build/{useDaqOptimizations-Ct-TSXxy.mjs → useDaqOptimizations-C5N4bcu4.mjs} +7 -5
- package/.output/server/chunks/build/useDaqOptimizations-C5N4bcu4.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} +8 -6
- package/.output/server/chunks/build/useDaqTemplates-C7GzQmdJ.mjs.map +1 -0
- package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs +4 -2
- package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs.map +1 -1
- package/.output/server/chunks/build/{useDashboardData-DWJ6vHjm.mjs → useDashboardData-Ce-EU5DJ.mjs} +8 -6
- package/.output/server/chunks/build/useDashboardData-Ce-EU5DJ.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwAddNode-C1HDP3yG.mjs → useDcwAddNode-4mTPQ6T8.mjs} +73 -6
- package/.output/server/chunks/build/useDcwAddNode-4mTPQ6T8.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwCards-ETEsHvVy.mjs → useDcwCards-DvLGgUYr.mjs} +7 -5
- package/.output/server/chunks/build/useDcwCards-DvLGgUYr.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwDetailScope-QTr1G6Oe.mjs → useDcwDetailScope-4j3B03Pi.mjs} +9 -7
- package/.output/server/chunks/build/useDcwDetailScope-4j3B03Pi.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwDetailTemplates-Djt-0Vse.mjs → useDcwDetailTemplates-yzNEAMK-.mjs} +7 -5
- package/.output/server/chunks/build/useDcwDetailTemplates-yzNEAMK-.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwFilter-FfVlDdyS.mjs → useDcwFilter-BQDmQYY0.mjs} +7 -5
- package/.output/server/chunks/build/useDcwFilter-BQDmQYY0.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwLedger-BLoMmcu1.mjs → useDcwLedger-DWGufEor.mjs} +7 -5
- package/.output/server/chunks/build/useDcwLedger-DWGufEor.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwLineMutations-BMC5BTWU.mjs → useDcwLineMutations-DHF-Bemn.mjs} +7 -5
- package/.output/server/chunks/build/useDcwLineMutations-DHF-Bemn.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwLineRun-74gN_s6T.mjs → useDcwLineRun-VFe35xou.mjs} +7 -5
- package/.output/server/chunks/build/useDcwLineRun-VFe35xou.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwParamApprovals-Bc0BGBds.mjs +120 -0
- package/.output/server/chunks/build/useDcwParamApprovals-Bc0BGBds.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwProducts-D-zrMaeV.mjs → useDcwProducts-DXisXYMh.mjs} +7 -5
- package/.output/server/chunks/build/useDcwProducts-DXisXYMh.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwQuery-7tX4QYmv.mjs → useDcwQuery-Cmo3UtIQ.mjs} +7 -5
- package/.output/server/chunks/build/useDcwQuery-Cmo3UtIQ.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwQuickActions-C-tgcXIr.mjs → useDcwQuickActions-BkAcxVnj.mjs} +7 -5
- package/.output/server/chunks/build/useDcwQuickActions-BkAcxVnj.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwRecipes-FVk5gDLV.mjs → useDcwRecipes-BvtGPQJ9.mjs} +19 -7
- package/.output/server/chunks/build/useDcwRecipes-BvtGPQJ9.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwStream-D04kCV3J.mjs → useDcwStream-BXJ2V8HM.mjs} +20 -3
- package/.output/server/chunks/build/{useDcwStream-D04kCV3J.mjs.map → useDcwStream-BXJ2V8HM.mjs.map} +1 -1
- package/.output/server/chunks/build/{useDcwTemplates-LDZffy4u.mjs → useDcwTemplates-Zxz2DPdu.mjs} +7 -5
- package/.output/server/chunks/build/useDcwTemplates-Zxz2DPdu.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwWrites-B22mwliK.mjs → useDcwWrites-66CKxcos.mjs} +7 -5
- package/.output/server/chunks/build/useDcwWrites-66CKxcos.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/useExpConfirmations-BbInIHsn.mjs +106 -0
- package/.output/server/chunks/build/useExpConfirmations-BbInIHsn.mjs.map +1 -0
- package/.output/server/chunks/build/{useLocalTime-DZ2RAtVs.mjs → useLocalTime-CUnDHV5V.mjs} +8 -2
- package/.output/server/chunks/build/useLocalTime-CUnDHV5V.mjs.map +1 -0
- package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs +4 -2
- package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs.map +1 -1
- package/.output/server/chunks/build/{useLogsManual-COfCyUtj.mjs → useLogsManual-CMjD62nt.mjs} +7 -5
- package/.output/server/chunks/build/useLogsManual-CMjD62nt.mjs.map +1 -0
- package/.output/server/chunks/build/{useLogsQuery-CRAm2hmS.mjs → useLogsQuery-C5nadU1m.mjs} +19 -7
- package/.output/server/chunks/build/useLogsQuery-C5nadU1m.mjs.map +1 -0
- package/.output/server/chunks/build/{useLogsScope-ClNijVj4.mjs → useLogsScope-DgrB1ur3.mjs} +7 -5
- package/.output/server/chunks/build/useLogsScope-DgrB1ur3.mjs.map +1 -0
- package/.output/server/chunks/build/useMonitorColumns-DhYvkLDq.mjs +5 -3
- package/.output/server/chunks/build/useMonitorColumns-DhYvkLDq.mjs.map +1 -1
- package/.output/server/chunks/build/{useMonitorData-guVjMDtR.mjs → useMonitorData-D2gFSonG.mjs} +7 -5
- package/.output/server/chunks/build/useMonitorData-D2gFSonG.mjs.map +1 -0
- package/.output/server/chunks/build/{useMonitorFormat-C7lhZe4g.mjs → useMonitorFormat-DRCXsKwh.mjs} +6 -4
- package/.output/server/chunks/build/useMonitorFormat-DRCXsKwh.mjs.map +1 -0
- package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +4 -2
- package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs.map +1 -1
- package/.output/server/chunks/build/{useOperationsFeed-CeXeHqUK.mjs → useOperationsFeed-DsA2ym7M.mjs} +7 -5
- 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/useRecipeDispatchApprovals-CbL2El3n.mjs +155 -0
- package/.output/server/chunks/build/useRecipeDispatchApprovals-CbL2El3n.mjs.map +1 -0
- package/.output/server/chunks/build/useTeamActions-BOLQkYxg.mjs +4 -2
- package/.output/server/chunks/build/useTeamActions-BOLQkYxg.mjs.map +1 -1
- package/.output/server/chunks/build/useTeamAddMemberDialog-BCgrLPxI.mjs +4 -2
- package/.output/server/chunks/build/useTeamAddMemberDialog-BCgrLPxI.mjs.map +1 -1
- package/.output/server/chunks/build/useTeamCreateDialog-CJk40LqS.mjs +4 -2
- package/.output/server/chunks/build/useTeamCreateDialog-CJk40LqS.mjs.map +1 -1
- package/.output/server/chunks/build/useTeamDeployDialog-49hdUXQP.mjs +4 -2
- package/.output/server/chunks/build/useTeamDeployDialog-49hdUXQP.mjs.map +1 -1
- package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +4 -2
- package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs.map +1 -1
- package/.output/server/chunks/build/useTeamPluginDialog-Dh-QOoiU.mjs +4 -2
- package/.output/server/chunks/build/useTeamPluginDialog-Dh-QOoiU.mjs.map +1 -1
- package/.output/server/chunks/build/useTeamsCatalog-HBSyKt5P.mjs +5 -3
- package/.output/server/chunks/build/useTeamsCatalog-HBSyKt5P.mjs.map +1 -1
- package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +4 -2
- package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs.map +1 -1
- package/.output/server/chunks/build/useTokenCreate-DkYvEQUD.mjs +5 -3
- package/.output/server/chunks/build/useTokenCreate-DkYvEQUD.mjs.map +1 -1
- package/.output/server/chunks/build/useTokenRename-DOCP4aeI.mjs +5 -3
- package/.output/server/chunks/build/useTokenRename-DOCP4aeI.mjs.map +1 -1
- package/.output/server/chunks/build/useTokenReveal-CybwwflV.mjs +5 -3
- package/.output/server/chunks/build/useTokenReveal-CybwwflV.mjs.map +1 -1
- package/.output/server/chunks/build/useTokensList-BLiMvrc4.mjs +5 -3
- package/.output/server/chunks/build/useTokensList-BLiMvrc4.mjs.map +1 -1
- package/.output/server/chunks/build/{useWorkbenchAuth-DqjBX-6w.mjs → useWorkbenchAuth-DAabQl7X.mjs} +9 -4
- package/.output/server/chunks/build/useWorkbenchAuth-DAabQl7X.mjs.map +1 -0
- package/.output/server/chunks/build/{useWorkbenchWorkspaces-DgiSCzsX.mjs → useWorkbenchWorkspaces-6-mpCGCR.mjs} +9 -6
- package/.output/server/chunks/build/useWorkbenchWorkspaces-6-mpCGCR.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkshopApi-C9sTYu1F.mjs +1 -1
- package/.output/server/chunks/build/{useWorkshopWs-Bm80bLn7.mjs → useWorkshopWs-CM-Ywk4h.mjs} +5 -129
- package/.output/server/chunks/build/useWorkshopWs-CM-Ywk4h.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs +5 -3
- package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs.map +1 -1
- package/.output/server/chunks/build/{useWorkspaceChannels-D61Al2dr.mjs → useWorkspaceChannels--65yU02b.mjs} +8 -5
- package/.output/server/chunks/build/useWorkspaceChannels--65yU02b.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs +4 -2
- package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs.map +1 -1
- package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs +4 -2
- package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs.map +1 -1
- package/.output/server/chunks/build/{users-CCf5PgRs.mjs → users-B_pHStEa.mjs} +16 -15
- package/.output/server/chunks/build/users-B_pHStEa.mjs.map +1 -0
- package/.output/server/chunks/build/workshop-C0DefygA.mjs +522 -0
- package/.output/server/chunks/build/workshop-C0DefygA.mjs.map +1 -0
- package/.output/server/chunks/build/workspaces-CmW0cpOt.mjs +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +14 -3
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +6 -4
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +5 -3
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/mcp/workshop.mjs +5 -3
- package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
- package/.output/server/chunks/routes/api/metrics.mjs +13 -2
- package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +4 -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 +4 -2
- package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +4 -2
- package/.output/server/chunks/routes/api/plugins/i18n.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +4 -2
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/backup/list.get.mjs +4 -2
- package/.output/server/chunks/routes/api/system/backup/list.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/backup/run.post.mjs +6 -4
- package/.output/server/chunks/routes/api/system/backup/run.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +4 -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 +4 -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 +4 -2
- package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.get.mjs +4 -2
- package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.patch.mjs +4 -2
- package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.post.mjs +4 -2
- package/.output/server/chunks/routes/api/system/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index2.get.mjs +4 -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 +4 -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 +4 -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 +4 -2
- package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs +4 -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 +4 -2
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/timezone.get.mjs +4 -2
- package/.output/server/chunks/routes/api/system/timezone.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +4 -2
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.get.mjs +4 -2
- package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.put.mjs +4 -2
- package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/change-password.post.mjs +35 -0
- package/.output/server/chunks/routes/api/users/change-password.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/index.get.mjs +5 -3
- package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/index.post.mjs +6 -4
- package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/login.post.mjs +6 -4
- package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/logout.post.mjs +5 -3
- package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/me.get.mjs +5 -3
- package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/register.post.mjs +5 -3
- package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/setup-status.get.mjs +8 -4
- 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 +5 -3
- 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 +5 -3
- 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 +6 -4
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +4 -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 +4 -2
- 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 +4 -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 +17 -6
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +5 -3
- 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 +26 -4
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +50 -9
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +4 -2
- 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 +4 -2
- 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 +4 -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 +4 -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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +4 -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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +4 -2
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +4 -2
- 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 +4 -2
- 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 +4 -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 +5 -3
- 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 +4 -2
- 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 +5 -3
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/caller.mjs +5 -3
- 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 +7 -5
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +4 -2
- 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 +4 -2
- 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 +4 -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 +4 -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 +5 -3
- 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 +4 -2
- 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 +4 -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 +4 -2
- 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 +4 -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 +4 -2
- 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 +4 -2
- 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 +4 -2
- 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 +4 -2
- 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 +4 -2
- 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 +4 -2
- 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 +4 -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 +5 -3
- 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 +4 -2
- 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 +4 -2
- 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 +4 -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 +4 -2
- 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 +5 -3
- 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 +5 -3
- 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 +4 -2
- 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 +4 -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 +4 -2
- 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 +5 -3
- 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 +4 -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 +5 -3
- 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 +5 -3
- 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 +4 -2
- 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 +11 -3
- package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs +4 -2
- 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 +4 -2
- 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 +7 -3
- 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 +4 -2
- 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 +4 -2
- 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 +4 -2
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +4 -2
- 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 +5 -3
- 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 +4 -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 +4 -2
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +20 -6
- 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 +6 -4
- 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 +6 -4
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +6 -4
- 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 +6 -4
- 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 +6 -4
- 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 +5 -3
- 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 +5 -3
- 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 +6 -4
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +7 -5
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +6 -4
- 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 +5 -3
- 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 +5 -3
- 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 +17 -13
- 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 +9 -5
- 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 +17 -15
- 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 +14 -5
- 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 +18 -6
- 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 +5 -3
- 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 +8 -5
- package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index7.get.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index7.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +7 -5
- 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 +7 -5
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs +62 -0
- package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs +99 -0
- package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs +37 -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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +9 -5
- 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 +9 -5
- 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 +9 -5
- 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 +9 -5
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- 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 +5 -3
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs +55 -0
- package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs +38 -0
- package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +5 -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 +5 -3
- 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 +5 -3
- package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +10 -3
- 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 +8 -4
- package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.put.mjs +5 -3
- package/.output/server/chunks/routes/api/workshop/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs +5 -3
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index11.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index12.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index12.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index13.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index13.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index14.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index14.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs +5 -3
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs +10 -5
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs +10 -5
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +6 -4
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +5 -3
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +5 -3
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs +5 -3
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs +5 -3
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs +4 -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 -2
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.post.mjs +4 -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 +4 -2
- package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +4 -2
- 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 +4 -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 +5 -3
- 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 +5 -3
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +4 -2
- 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 +5 -3
- 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 +5 -3
- 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 +4 -2
- 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 +4 -2
- 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 +4 -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 +4 -2
- 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 +4 -2
- 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 +4 -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 +4 -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 +4 -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 +4 -2
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/reopen.post.mjs +48 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/reopen.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +4 -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 +4 -2
- 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 +4 -2
- 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 +4 -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 +4 -2
- 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 +5 -3
- 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 +4 -2
- 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 +4 -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 +5 -3
- 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 +5 -3
- 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 +4 -2
- 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 +4 -2
- 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 +4 -2
- 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 +4 -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 +4 -2
- 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 +4 -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 +6 -4
- 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 +4 -2
- 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 +4 -2
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +3 -3
- package/.output/server/chunks/virtual/entry.mjs +297 -71
- package/.output/server/chunks/virtual/entry.mjs.map +1 -1
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/index.mjs +4 -2
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/LICENSE +69 -91
- package/README-zh.md +928 -833
- package/README.md +949 -845
- package/app/components/AppSidebar.vue +1 -1
- package/app/components/aml/AmlEnvPanel.vue +230 -230
- package/app/components/app-header/LoginModal.vue +131 -0
- package/app/components/app-header/UserChip.vue +161 -150
- package/app/components/dcw/DcwAddNodeModal.vue +82 -4
- package/app/components/dcw/DcwEditLineModal.vue +216 -108
- package/app/components/dcw/DcwLineCard.vue +129 -117
- package/app/components/dcw/DcwMesArtifacts.vue +140 -0
- package/app/components/dcw/DcwNodesTable.vue +24 -0
- package/app/components/dcw/DcwParamApprovalCard.vue +116 -0
- package/app/components/dcw/DcwRecipeEditModal.vue +399 -297
- package/app/components/dcw/ExpConfirmCard.vue +103 -0
- package/app/components/dcw/RecipeDispatchApprovalCard.vue +330 -0
- package/app/components/dcw/RecipeGateApprovalCard.vue +159 -0
- package/app/components/logs/LogsEventTable.vue +321 -309
- package/app/components/logs/LogsFilterCard.vue +253 -234
- package/app/components/workshop/DaqNodeRow.vue +616 -592
- package/app/components/workshop/town/TownView.vue +6 -2
- package/app/components/workshop/town/components/AutoModeConfirmModal.vue +94 -0
- package/app/components/workshop/town/components/TownAgentBindings.vue +28 -3
- package/app/components/workshop/town/components/TownAgentInspector.vue +10 -2
- package/app/components/workshop/town/components/TownRightRail.vue +4 -1
- package/app/components/workshop/workbench/AuthGate.vue +182 -179
- package/app/components/workshop/workbench/ChangePasswordModal.vue +106 -0
- package/app/composables/workshop/town/town-relay-props.ts +6 -1
- package/app/composables/workshop/town/useTownAgentBindings.ts +73 -6
- package/app/composables/workshop/useDcwStream.ts +374 -358
- package/app/composables/workshop/useOpsLog.ts +3 -0
- package/app/layouts/default.vue +201 -161
- package/app/layouts/town.vue +40 -21
- package/app/pages/daq/composables/useDaqDetailHistory.ts +199 -199
- package/app/pages/dcw/[id].vue +380 -300
- package/app/pages/dcw/composables/useDcwAddNode.ts +64 -1
- package/app/pages/dcw/composables/useDcwParamApprovals.ts +123 -0
- package/app/pages/dcw/composables/useDcwRecipes.ts +256 -242
- package/app/pages/dcw/composables/useExpConfirmations.ts +108 -0
- package/app/pages/dcw/composables/useRecipeDispatchApprovals.ts +200 -0
- package/app/pages/dcw/dcw-page.css +360 -344
- package/app/pages/dcw/index.vue +11 -0
- package/app/pages/logs/composables/useLogsQuery.ts +57 -52
- package/app/pages/logs/index.vue +95 -94
- package/app/pages/workshop/composables/useWorkbenchAuth.ts +131 -125
- package/app/pages/workshop/index.vue +121 -116
- package/app/plugins/http.ts +6 -0
- package/app/stores/workshop/auth-ui.ts +26 -0
- package/app/stores/workshop/user.ts +19 -2
- package/app/utils/dcw-driver-badge.ts +16 -0
- package/config.yml +180 -180
- package/docker-compose.yml +4 -0
- package/docs/cli.en.md +447 -447
- package/docs/cli.md +412 -412
- package/docs/plugins.en.md +621 -621
- package/docs/plugins.md +610 -610
- package/docs/sdk.en.md +964 -964
- package/docs/sdk.md +900 -900
- package/i18n/locales/en.ts +2812 -2724
- package/i18n/locales/zh-CN.ts +2812 -2724
- package/package.json +181 -181
- package/scripts/_audit/feature-audit-e2e.mjs +12 -9
- package/scripts/_audit/idd-scenarios-e2e.mjs +239 -0
- package/scripts/_dbg-protocol-matrix.mjs +8 -1
- package/scripts/aw-start-smoke.mjs +7 -1
- package/scripts/check-docs-sync.mjs +417 -367
- package/scripts/dev-guard.mjs +2 -1
- package/scripts/dev-mes-simulator.mjs +456 -0
- package/scripts/feature-sweep-e2e.mjs +176 -0
- package/scripts/onboarding/forge-channel.mjs +157 -0
- package/scripts/onboarding/lib.mjs +78 -0
- package/scripts/onboarding/onboard.mjs +196 -0
- package/scripts/onboarding/provision-line.mjs +179 -0
- package/scripts/onboarding/test-connection.mjs +42 -0
- package/scripts/onboarding/verify-line.mjs +95 -0
- package/scripts/perm-isolation-e2e.mjs +188 -0
- package/scripts/render-opt-curve.mjs +97 -0
- package/scripts/render-pressure-curve.mjs +89 -0
- package/scripts/start.mjs +126 -2
- package/scripts/testing/aep-live.mjs +60 -0
- package/scripts/testing/aggregate-benchmarks.mjs +79 -0
- package/scripts/testing/api-full-loop.mjs +172 -0
- package/scripts/testing/benchmark.config.json +66 -0
- package/scripts/testing/game-host.mjs +63 -0
- package/scripts/testing/hitl-expert.mjs +143 -0
- package/scripts/testing/idd-kb-smoke.mjs +46 -0
- package/scripts/testing/run-benchmark.mjs +984 -0
- package/scripts/testing/sdk-live.mjs +55 -0
- package/scripts/ui/e2e-interactive.mjs +14 -14
- package/scripts/ui/lib.mjs +210 -210
- package/server/api/health.get.ts +12 -1
- package/server/api/metrics.ts +89 -78
- package/server/api/users/change-password.post.ts +18 -0
- package/server/api/users/setup-status.get.ts +13 -8
- package/server/api/workshop/agent-tools/approvals/[id]/decide.post.ts +21 -6
- package/server/api/workshop/agent-tools/bindings/[id].patch.ts +36 -3
- package/server/api/workshop/agent-tools/bindings/index.post.ts +60 -9
- package/server/api/workshop/caller.ts +3 -2
- package/server/api/workshop/channel-templates/[id]/instantiate.post.ts +1 -1
- package/server/api/workshop/channels/[id]/line.put.ts +41 -30
- package/server/api/workshop/channels/[id]/members/join.post.ts +35 -30
- package/server/api/workshop/channels.post.ts +13 -0
- package/server/api/workshop/daq/index.post.ts +6 -1
- package/server/api/workshop/daq/test-driver.post.ts +3 -3
- package/server/api/workshop/dcw/index.post.ts +26 -20
- package/server/api/workshop/dcw/lines/[id].delete.ts +3 -2
- package/server/api/workshop/dcw/lines/[id].patch.ts +5 -3
- package/server/api/workshop/dcw/lines/index.post.ts +1 -1
- package/server/api/workshop/dcw/mes-artifacts/file.get.ts +50 -0
- package/server/api/workshop/dcw/mes-artifacts/index.get.ts +27 -0
- package/server/api/workshop/dcw/mes-hook-test.post.ts +105 -0
- package/server/api/workshop/dcw/mes-test-read.post.ts +24 -0
- package/server/api/workshop/dcw/products/index.post.ts +6 -2
- package/server/api/workshop/dcw/recipes/[id]/apply.post.ts +6 -2
- package/server/api/workshop/dcw/recipes/[id]/mark-good.post.ts +6 -2
- package/server/api/workshop/dcw/recipes/[id]/revert.post.ts +33 -29
- package/server/api/workshop/dcw/recipes/[id]/rollback-good.post.ts +7 -3
- package/server/api/workshop/dcw/recipes/index.post.ts +27 -15
- package/server/api/workshop/exp/confirmations/[id]/decide.post.ts +41 -0
- package/server/api/workshop/exp/confirmations/index.get.ts +25 -0
- package/server/api/workshop/hitl/pending.get.ts +57 -48
- package/server/api/workshop/hitl/respond.post.ts +10 -2
- package/server/api/workshop/ops-logs/index.get.ts +1 -0
- package/server/api/workshop/tasks/[id]/reopen.post.ts +35 -0
- package/server/api/workshop/ws/peer-sub.ts +135 -128
- package/server/api/workshop/ws/subscriptions.ts +15 -1
- package/server/plugins/backup.ts +94 -11
- package/server/plugins/daq.ts +3 -0
- package/server/plugins/memory-watch.ts +92 -0
- package/server/plugins/parent-watch.ts +22 -0
- package/server/plugins/workshop.ts +258 -226
- package/server/plugins-builtin/diag-bridge/client.mjs +49 -1
- package/server/plugins-builtin/diag-bridge/host/diagnosis.mjs +15 -6
- package/server/plugins-builtin/diag-bridge/host/exports.mjs +104 -0
- package/server/plugins-builtin/diag-bridge/host/plugin.mjs +120 -17
- package/server/plugins-builtin/diag-bridge/host/sweep.mjs +47 -0
- package/server/plugins-builtin/diag-bridge/i18n.json +82 -72
- package/server/repositories/user.repository.ts +36 -12
- package/server/schemas/user.schema.ts +7 -0
- package/server/services/user.service.ts +50 -8
- package/server/services/workshop/agents/agent-interface.ts +1 -1
- package/server/services/workshop/agents/base-agent.ts +8 -1
- package/server/services/workshop/agents/binding-authz.ts +8 -5
- package/server/services/workshop/agents/binding-mode.ts +51 -0
- package/server/services/workshop/agents/hitl-decision/dispatcher.ts +16 -3
- package/server/services/workshop/agents/hitl-decision/index.ts +24 -24
- package/server/services/workshop/agents/hitl-decision/line-of.ts +38 -0
- package/server/services/workshop/agents/hitl-decision/reconcile.ts +152 -70
- package/server/services/workshop/agents/hitl-decision/shared.ts +2 -0
- package/server/services/workshop/agents/hitl-registry.ts +582 -577
- package/server/services/workshop/agents/host-tool-bridge/catalog.ts +86 -2
- package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +25 -0
- package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +19 -3
- package/server/services/workshop/agents/host-tool-bridge/tools/memory.ts +4 -1
- package/server/services/workshop/agents/host-tool-bridge/tools/messaging.ts +45 -11
- package/server/services/workshop/agents/host-tool-bridge/tools/tasks.ts +5 -1
- package/server/services/workshop/agents/industrial/aml-activity.ts +131 -0
- package/server/services/workshop/agents/industrial/aml-dataset-tools.ts +21 -0
- package/server/services/workshop/agents/industrial/aml-job-tools.ts +9 -3
- package/server/services/workshop/agents/industrial/daq-export.ts +510 -0
- package/server/services/workshop/agents/industrial/dcw-judge-tools.ts +160 -149
- package/server/services/workshop/agents/industrial/dcw-tools.ts +68 -21
- package/server/services/workshop/agents/industrial/exp-tools.ts +104 -0
- package/server/services/workshop/agents/industrial/grant-guard.ts +145 -0
- package/server/services/workshop/agents/industrial/index.ts +6 -0
- package/server/services/workshop/agents/industrial/line-tools.ts +151 -0
- package/server/services/workshop/agents/industrial/manual-approval.ts +3 -2
- package/server/services/workshop/agents/industrial/mes-tools.ts +143 -0
- package/server/services/workshop/agents/industrial/ops-tools.ts +320 -50
- package/server/services/workshop/agents/industrial/optimization-tools.ts +19 -9
- package/server/services/workshop/agents/industrial/param-tools.ts +192 -169
- package/server/services/workshop/agents/industrial/recipe-gate.ts +96 -0
- package/server/services/workshop/agents/industrial/recipe-propose-tools.ts +366 -0
- package/server/services/workshop/agents/industrial/twin-tools.ts +38 -4
- package/server/services/workshop/agents/industrial-context.ts +138 -21
- package/server/services/workshop/agents/mock-agent.ts +17 -0
- package/server/services/workshop/agents/node-bindings.repo.ts +207 -206
- package/server/services/workshop/agents/node-delegation.ts +4 -4
- package/server/services/workshop/agents/omp-agent/event-mapping.ts +178 -142
- package/server/services/workshop/agents/tool-approvals.ts +261 -13
- package/server/services/workshop/agents/tool-classes.ts +10 -0
- package/server/services/workshop/aml/dataset-builder.ts +8 -1
- package/server/services/workshop/aml/env-manager.ts +242 -242
- package/server/services/workshop/aml/job-orchestrator/failure.ts +19 -0
- package/server/services/workshop/aml/job-orchestrator/stages.ts +27 -0
- package/server/services/workshop/aml/python-runtime.ts +600 -552
- package/server/services/workshop/aml/twin/binding-snapshot.ts +637 -603
- package/server/services/workshop/aml/twin/channel-profile.ts +3 -2
- package/server/services/workshop/daq/bus/queue-port.ts +3 -0
- package/server/services/workshop/daq/daq-controller/crud.ts +206 -202
- package/server/services/workshop/daq/daq-controller/driver-probe.ts +64 -64
- package/server/services/workshop/daq/daq-controller/ingest.ts +189 -189
- package/server/services/workshop/daq/daq-controller/state.ts +204 -197
- package/server/services/workshop/daq/daq-controller/views.ts +85 -84
- package/server/services/workshop/daq/daq-node.repo.ts +27 -4
- package/server/services/workshop/daq/daq-node.ts +4 -2
- package/server/services/workshop/daq/daq-runtime.ts +2 -1
- package/server/services/workshop/daq/drivers/index.ts +29 -29
- package/server/services/workshop/daq/drivers/mqtt.ts +217 -182
- package/server/services/workshop/daq/drivers/registry.ts +35 -1
- package/server/services/workshop/daq/drivers/shared.ts +63 -60
- package/server/services/workshop/daq/objectstore/disk.adapter.ts +48 -2
- package/server/services/workshop/daq/objectstore/gc.ts +92 -0
- package/server/services/workshop/daq/objectstore/objectstore-port.ts +12 -0
- package/server/services/workshop/daq/storage/sqlite.adapter.ts +318 -318
- package/server/services/workshop/daq/storage/timescale.adapter.ts +37 -3
- package/server/services/workshop/db/database/migrations.ts +12 -1
- package/server/services/workshop/db/database/open.ts +5 -1
- package/server/services/workshop/db/database/rows.ts +4 -0
- package/server/services/workshop/db/database/schema.ts +39 -2
- package/server/services/workshop/db/database/seed.ts +71 -0
- package/server/services/workshop/db/memory.repo.ts +1 -1
- package/server/services/workshop/db/ops.repo.ts +24 -7
- package/server/services/workshop/db/schema.sql +32 -0
- package/server/services/workshop/dcw/dcw-controller/actuation.ts +140 -127
- package/server/services/workshop/dcw/dcw-controller/bindings.ts +97 -83
- package/server/services/workshop/dcw/dcw-controller/crud.ts +19 -4
- package/server/services/workshop/dcw/dcw-controller/gate-persist.ts +80 -0
- package/server/services/workshop/dcw/dcw-controller/lines.ts +229 -213
- package/server/services/workshop/dcw/dcw-controller/recipes.ts +286 -193
- package/server/services/workshop/dcw/dcw-controller/state.ts +71 -66
- package/server/services/workshop/dcw/dcw-controller/write-verify.ts +98 -0
- package/server/services/workshop/dcw/dcw-controller/write.ts +51 -9
- package/server/services/workshop/dcw/dcw-line.repo.ts +17 -1
- package/server/services/workshop/dcw/dcw-node.repo.ts +110 -87
- package/server/services/workshop/dcw/dcw-node.ts +8 -3
- package/server/services/workshop/dcw/dcw-recipe.repo.ts +40 -2
- package/server/services/workshop/dcw/dcw-runtime.ts +8 -1
- package/server/services/workshop/dcw/drivers/http.ts +68 -66
- package/server/services/workshop/dcw/drivers/index.ts +27 -27
- package/server/services/workshop/dcw/drivers/mes-rest.ts +707 -0
- package/server/services/workshop/dcw/drivers/mock.ts +47 -44
- package/server/services/workshop/dcw/drivers/modbus-rtu.ts +1 -1
- package/server/services/workshop/dcw/drivers/modbus.ts +1 -1
- package/server/services/workshop/dcw/drivers/mqtt.ts +109 -108
- package/server/services/workshop/dcw/drivers/opcua.ts +1 -1
- package/server/services/workshop/dcw/drivers/registry.ts +142 -98
- package/server/services/workshop/dcw/drivers/shared.ts +186 -131
- package/server/services/workshop/dcw/param-map.repo.ts +349 -321
- package/server/services/workshop/dcw/recipe-op-anchor.ts +117 -0
- package/server/services/workshop/dcw/recipe-rollback.repo.ts +26 -0
- package/server/services/workshop/exp/exp-collector.ts +275 -0
- package/server/services/workshop/exp/exp-state.repo.ts +339 -0
- package/server/services/workshop/json-store.mjs +137 -105
- package/server/services/workshop/mes/mes-controller.ts +658 -0
- package/server/services/workshop/mes/mes-datasets.ts +503 -0
- package/server/services/workshop/mes/mes-hook.ts +567 -0
- package/server/services/workshop/ops/ops.ts +3 -0
- package/server/services/workshop/permissions.ts +7 -7
- package/server/services/workshop/plugin-driver-registry.ts +123 -108
- package/server/services/workshop/plugins/host/services.mjs +10 -0
- package/server/services/workshop/prompts/loader.ts +11 -2
- package/server/services/workshop/runtime/agent-runtime/lifecycle.ts +18 -0
- package/server/services/workshop/runtime/agent-runtime/message.ts +10 -0
- package/server/services/workshop/runtime/line-notify.ts +76 -0
- package/server/services/workshop/runtime/manager/access.ts +488 -483
- package/server/services/workshop/runtime/manager/channel-templates.ts +21 -2
- package/server/services/workshop/runtime/manager/runtime-wiring.ts +96 -1
- package/server/services/workshop/runtime/manager/state.ts +117 -1
- package/server/services/workshop/runtime/manager/tasks.ts +67 -4
- package/server/services/workshop/runtime/manager/workspace.ts +8 -2
- package/server/services/workshop/runtime/memory/recall.ts +20 -1
- package/server/services/workshop/runtime/memory/write.ts +149 -93
- package/server/services/workshop/runtime/platform-notice.ts +113 -0
- package/server/services/workshop/runtime/scheduler-loop/execute.ts +44 -12
- package/server/services/workshop/runtime/scheduler-loop/rules.ts +24 -7
- package/server/services/workshop/runtime/scheduler-loop/tick.ts +49 -2
- package/server/services/workshop/runtime/task-engine/helpers.ts +3 -1
- package/server/services/workshop/runtime/task-engine/lifecycle.ts +11 -0
- package/server/services/workshop/runtime/task-engine/update.ts +11 -0
- package/server/services/workshop/settings.ts +17 -0
- package/server/types/user.ts +4 -0
- package/server/utils/errors.ts +1 -0
- package/server/utils/response.ts +6 -0
- package/shared/config/schema.json +140 -137
- package/shared/config/single-instance.mjs +28 -1
- package/shared/daq-protocol.ts +14 -3
- package/shared/dcw-protocol/catalog.ts +30 -1
- package/shared/dcw-protocol/index.ts +19 -19
- package/shared/dcw-protocol/line.ts +34 -0
- package/shared/dcw-protocol/recipe.ts +33 -3
- package/shared/local-time.mjs +37 -13
- package/shared/workshop-protocol.ts +4 -0
- package/.output/public/_nuxt/B2x8SKRO2.js +0 -1
- package/.output/public/_nuxt/BLnLjzka.js +0 -1
- package/.output/public/_nuxt/BSdJTnk12.js +0 -1
- package/.output/public/_nuxt/BUD1CNvB2.js +0 -1
- package/.output/public/_nuxt/BXR3tgEk.js +0 -1
- package/.output/public/_nuxt/B_9_BM9G.js +0 -3
- package/.output/public/_nuxt/Bfe2qOYs.js +0 -1
- package/.output/public/_nuxt/BhlRInVa.js +0 -1
- package/.output/public/_nuxt/Bl5dYv4m.js +0 -1
- package/.output/public/_nuxt/Bub2P5me.js +0 -28
- package/.output/public/_nuxt/C4WhK2wq.js +0 -1
- package/.output/public/_nuxt/CAaSPBqk.js +0 -1
- package/.output/public/_nuxt/CBIoheY42.js +0 -1
- package/.output/public/_nuxt/CD9lpEz22.js +0 -13
- package/.output/public/_nuxt/CI2yXRr42.js +0 -1
- package/.output/public/_nuxt/CR-ILcRu2.js +0 -1
- package/.output/public/_nuxt/CZLnEnbE.js +0 -14
- package/.output/public/_nuxt/Chxx-DIE2.js +0 -1
- package/.output/public/_nuxt/CwLQAKay2.js +0 -1
- package/.output/public/_nuxt/D6lZftfy.js +0 -1
- package/.output/public/_nuxt/DAGuPgXa.js +0 -2
- package/.output/public/_nuxt/DV5joWTn2.js +0 -47
- package/.output/public/_nuxt/DVKXGuMz2.js +0 -1
- package/.output/public/_nuxt/DWsgRq2c.js +0 -1
- package/.output/public/_nuxt/DZDi8inD.js +0 -1
- package/.output/public/_nuxt/Dbe9TFc9.js +0 -1
- package/.output/public/_nuxt/DlCktWDT.js +0 -1
- package/.output/public/_nuxt/Dqz5HiXa.js +0 -2
- package/.output/public/_nuxt/DsGf2IV82.js +0 -1
- package/.output/public/_nuxt/DxagrjB8.js +0 -1
- package/.output/public/_nuxt/I1cI6sPJ2.js +0 -1
- package/.output/public/_nuxt/Sjjmp5OD2.js +0 -1
- package/.output/public/_nuxt/UN3nSFjj2.js +0 -1
- package/.output/public/_nuxt/WVTVkqef.js +0 -1
- package/.output/public/_nuxt/Z-Z6EhXs.js +0 -1
- package/.output/public/_nuxt/_id_.rdGx-UDx.css +0 -1
- package/.output/public/_nuxt/_kUzq9VF.js +0 -1
- package/.output/public/_nuxt/bt__BP-I.js +0 -13
- package/.output/public/_nuxt/builds/meta/5ccc21c2-aba0-4b63-9a13-410e0569e345.json +0 -1
- package/.output/public/_nuxt/daq.0uieKcZk.css +0 -1
- package/.output/public/_nuxt/dcw.pQRVkAi_.css +0 -1
- package/.output/public/_nuxt/eutnXI4F.js +0 -24
- package/.output/public/_nuxt/k5K6Jj6g.js +0 -19
- package/.output/public/_nuxt/logs.CD0Olr3c.css +0 -1
- package/.output/public/_nuxt/o9rJf00k.js +0 -1
- package/.output/public/_nuxt/wDPc4SSR.js +0 -106
- package/.output/public/_nuxt/workshop.b4YRXEe0.css +0 -1
- package/.output/server/chunks/_/SearchOutlined.mjs.map +0 -1
- package/.output/server/chunks/build/TownView-fP9BiALv.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-CDlur81q.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-CK-QFrDV.mjs.map +0 -1
- package/.output/server/chunks/build/agents-DqICy4AL.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-gdCLajKy.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/input-Cr_KFj4T.mjs +0 -1381
- package/.output/server/chunks/build/input-Cr_KFj4T.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-CRMeXrxG.mjs.map +0 -1
- package/.output/server/chunks/build/permissions-BvmodvsO.mjs.map +0 -1
- package/.output/server/chunks/build/settings-B7HA-sdb.mjs.map +0 -1
- package/.output/server/chunks/build/teams-wM-MdLv9.mjs.map +0 -1
- package/.output/server/chunks/build/tokens-CloWk4x_.mjs.map +0 -1
- package/.output/server/chunks/build/town-BIn3be5v.mjs.map +0 -1
- package/.output/server/chunks/build/town-BMlctE4m.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-DWJ6vHjm.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/useLocalTime-DZ2RAtVs.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/useMonitorData-guVjMDtR.mjs.map +0 -1
- package/.output/server/chunks/build/useMonitorFormat-C7lhZe4g.mjs.map +0 -1
- package/.output/server/chunks/build/useOperationsFeed-CeXeHqUK.mjs.map +0 -1
- package/.output/server/chunks/build/useWorkbenchAuth-DqjBX-6w.mjs.map +0 -1
- package/.output/server/chunks/build/useWorkbenchWorkspaces-DgiSCzsX.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/users-CCf5PgRs.mjs.map +0 -1
- package/.output/server/chunks/build/workshop-FQ4YzooB.mjs.map +0 -1
- package/scripts/_aw0746-stage5.mjs +0 -159
- package/scripts/_aw0746-stage6-aml.mjs +0 -177
- package/scripts/_aw0746-train-strong.py +0 -142
- package/scripts/_aw0747-readme-rows.mjs +0 -32
- package/scripts/_aw0748-fresh-channel.mjs +0 -21
- package/scripts/_aw0748-mock-dispatch-diag.mjs +0 -66
- package/scripts/_aw0748-wake-channel.mjs +0 -46
- package/scripts/_aw0749-readme-rows.mjs +0 -23
- package/scripts/_dbg-comm-verify.mjs +0 -188
- package/scripts/_dbg-im-e2e.mjs +0 -169
- package/scripts/_dbg-opt2-run.mjs +0 -114
- package/scripts/_dbg-opt2-setup.mjs +0 -95
- package/scripts/_dbg-param-map-e2e.ts +0 -248
- package/scripts/_dbg-param-map-rest-smoke.mjs +0 -73
- package/scripts/_dbg-param-real-scenario.mjs +0 -153
- package/scripts/_dbg-real-scenario-e2e.mjs +0 -246
- package/scripts/_dbg-recipe-stale-e2e.mjs +0 -135
- package/scripts/_dbg-schedule-ui-verify.mjs +0 -115
- package/scripts/_dbg-team-matrix.mjs +0 -148
- package/scripts/_dbg-ui-fullcrawl.mjs +0 -91
- package/scripts/_dbg-ui-static-audit.mjs +0 -65
- package/scripts/_dbg-write-lock-e2e.mjs +0 -131
- /package/.output/public/_nuxt/{C4sQKuhk2.js → C4sQKuhk.js} +0 -0
- /package/.output/public/_nuxt/{DdNujZN52.js → DdNujZN5.js} +0 -0
- /package/.output/public/_nuxt/{BvRk9kiK2.js → DybRo6-H.js} +0 -0
|
@@ -0,0 +1,658 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MES 取数控制器(Agent 工具后端)—— mes-rest 点位目录 + 历史取数编排。
|
|
3
|
+
*
|
|
4
|
+
* 护栏全部**代码级**(不是提示词):绑线授权过滤、时间窗 ≤7 天、maxRows ≤5000、
|
|
5
|
+
* 每 agent 每 60s ≤6 次 fetch;数据原文不进 prompt —— 文本只给 stats + ≤3 行采样,
|
|
6
|
+
* 行级原文只落 CSV 数据集(mes-datasets)。
|
|
7
|
+
*
|
|
8
|
+
* 取数三模式:
|
|
9
|
+
* 无 from/to → 当前值快照(driver.read 内联直读);
|
|
10
|
+
* from/to 且 maxRows ≤ 2000 → 同步 fetchHistory 内联返回(缓冲截断保护);
|
|
11
|
+
* 其余(maxRows > 2000) → createFetchJob 异步落 CSV,回 job_id/dataset_id。
|
|
12
|
+
*/
|
|
13
|
+
import { resolveDcwDriver } from '../dcw/drivers'
|
|
14
|
+
import type { DcwHistoryFormat as MesHistoryFormat } from '../dcw/drivers/shared'
|
|
15
|
+
import { historyFormatOf } from '../dcw/drivers/mes-rest'
|
|
16
|
+
import type { MesHistoryDriver, MesDatasetStatsView, MesDatasetStore } from './mes-datasets'
|
|
17
|
+
import { getMesDatasets } from './mes-datasets'
|
|
18
|
+
import { mesDataHookCode, mesRequestHookCode, runMesDataHook, runMesRequestHook, saveMesImageArtifact } from './mes-hook'
|
|
19
|
+
import type { MesHookArtifact, MesHookData } from './mes-hook'
|
|
20
|
+
|
|
21
|
+
/** mes-rest 驱动 kind(并行工作流收编进 DcwDriverKind 联合;此处按字符串经注册表解析,不 import 驱动实现) */
|
|
22
|
+
export const MES_REST_DRIVER_KIND = 'mes-rest'
|
|
23
|
+
|
|
24
|
+
// ============================================================
|
|
25
|
+
// 护栏常量(单一事实源;测试直接引用)
|
|
26
|
+
// ============================================================
|
|
27
|
+
|
|
28
|
+
/** 历史窗口上限:7 天 */
|
|
29
|
+
export const MES_WINDOW_MAX_MS = 7 * 24 * 3_600_000
|
|
30
|
+
/** 单次取数行数硬上限 */
|
|
31
|
+
export const MES_MAX_ROWS_CAP = 5000
|
|
32
|
+
/** 同步内联返回的行数上限(超过走异步数据集) */
|
|
33
|
+
export const MES_SYNC_INLINE_MAX_ROWS = 2000
|
|
34
|
+
/** 频次限流:窗口与次数(每 agent) */
|
|
35
|
+
export const MES_RATE_WINDOW_MS = 60_000
|
|
36
|
+
export const MES_RATE_MAX_CALLS = 6
|
|
37
|
+
/** max_rows 缺省值 */
|
|
38
|
+
export const MES_DEFAULT_MAX_ROWS = 500
|
|
39
|
+
|
|
40
|
+
// ============================================================
|
|
41
|
+
// 频次限流(进程内内存计数;Map<agentId, 时间戳[]>)
|
|
42
|
+
// ============================================================
|
|
43
|
+
|
|
44
|
+
const fetchCallStamps = new Map<string, number[]>()
|
|
45
|
+
|
|
46
|
+
/** 记一次 fetch 并判定是否放行(滑动 60s 窗 ≤6 次;超限不记账) */
|
|
47
|
+
export function mesFetchRateCheck(agentId: string, nowMs = Date.now()): boolean {
|
|
48
|
+
const stamps = (fetchCallStamps.get(agentId) ?? []).filter(t => nowMs - t < MES_RATE_WINDOW_MS)
|
|
49
|
+
if (stamps.length >= MES_RATE_MAX_CALLS) {
|
|
50
|
+
fetchCallStamps.set(agentId, stamps)
|
|
51
|
+
return false
|
|
52
|
+
}
|
|
53
|
+
stamps.push(nowMs)
|
|
54
|
+
fetchCallStamps.set(agentId, stamps)
|
|
55
|
+
return true
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** 清空限流账(测试用) */
|
|
59
|
+
export function mesFetchRateReset(): void {
|
|
60
|
+
fetchCallStamps.clear()
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// ============================================================
|
|
64
|
+
// 节点/依赖(结构化注入;缺省接真实服务,测试注入假件不联网)
|
|
65
|
+
// ============================================================
|
|
66
|
+
|
|
67
|
+
export interface MesNodeLike {
|
|
68
|
+
id: string
|
|
69
|
+
name: string
|
|
70
|
+
driver: string
|
|
71
|
+
lineId: string
|
|
72
|
+
unit: string
|
|
73
|
+
min: number
|
|
74
|
+
max: number
|
|
75
|
+
enabled: boolean
|
|
76
|
+
driverConfig: Record<string, string | number | boolean>
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface MesControllerDeps {
|
|
80
|
+
/** 数据集服务(异步取数账本;缺省 getMesDatasets()) */
|
|
81
|
+
store: Pick<MesDatasetStore, 'createFetchJob'>
|
|
82
|
+
/** 全量 dcw 节点(缺省 dcw-node.repo) */
|
|
83
|
+
nodes: () => MesNodeLike[] | Promise<MesNodeLike[]>
|
|
84
|
+
/** 调用者可见节点(绑线过滤:dcw 绑定集;缺省 node-bindings.repo) */
|
|
85
|
+
boundNodeIds: (agentId: string) => Set<string> | Promise<Set<string>>
|
|
86
|
+
/** 驱动解析(缺省 dcw 注册表) */
|
|
87
|
+
resolveDriver: (kind: string) => MesHistoryDriver
|
|
88
|
+
nowMs: () => number
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/** 缺省依赖:重模块(dcw 仓储/绑线仓储)经动态 import 引入,保持本模块可被 tsx 测试轻量直跑 */
|
|
92
|
+
function defaultDeps(): MesControllerDeps {
|
|
93
|
+
return {
|
|
94
|
+
store: new Proxy({} as Pick<MesDatasetStore, 'createFetchJob'>, {
|
|
95
|
+
get: (_t, prop) => {
|
|
96
|
+
const store = getMesDatasets() as unknown as Record<string | symbol, unknown>
|
|
97
|
+
const v = store[prop]
|
|
98
|
+
return typeof v === 'function' ? (v as (...a: unknown[]) => unknown).bind(store) : v
|
|
99
|
+
},
|
|
100
|
+
}),
|
|
101
|
+
nodes: async () => {
|
|
102
|
+
const { getDcwNodeRepo } = await import('../dcw/dcw-node.repo')
|
|
103
|
+
return getDcwNodeRepo().all()
|
|
104
|
+
},
|
|
105
|
+
boundNodeIds: async (agentId) => {
|
|
106
|
+
// 权限模型 v2:dcw 绑定(存量)∪ 绑定配方内的参数节点(kind='recipe' 的配方可见节点)
|
|
107
|
+
const { getAgentNodeBindingRepo } = await import('../agents/node-bindings.repo')
|
|
108
|
+
const { getDcwController } = await import('../dcw/dcw-controller')
|
|
109
|
+
const bindings = getAgentNodeBindingRepo().byAgent(agentId)
|
|
110
|
+
const ids = new Set(bindings.filter(b => b.kind === 'dcw').map(b => b.nodeId))
|
|
111
|
+
const recipeIds = new Set(bindings.filter(b => b.kind === 'recipe').map(b => b.nodeId))
|
|
112
|
+
if (recipeIds.size > 0) {
|
|
113
|
+
for (const r of getDcwController().listRecipes()) {
|
|
114
|
+
if (!recipeIds.has(r.id)) continue
|
|
115
|
+
for (const p of r.params) ids.add(p.nodeId)
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return ids
|
|
119
|
+
},
|
|
120
|
+
resolveDriver: kind => resolveDcwDriver(kind as Parameters<typeof resolveDcwDriver>[0]),
|
|
121
|
+
nowMs: () => Date.now(),
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export type MesCatalogEntry = {
|
|
126
|
+
id: string
|
|
127
|
+
name: string
|
|
128
|
+
lineId: string
|
|
129
|
+
unit: string
|
|
130
|
+
min: number
|
|
131
|
+
max: number
|
|
132
|
+
desc: string
|
|
133
|
+
readable: boolean
|
|
134
|
+
writable: boolean
|
|
135
|
+
historyable: boolean
|
|
136
|
+
/** 历史格式(scalar/vector/image/table/event;historyMap 未配置时 scalar) */
|
|
137
|
+
format: MesHistoryFormat
|
|
138
|
+
/** 已配置数据下沉 hook(dataHook) */
|
|
139
|
+
hooked: boolean
|
|
140
|
+
enabled: boolean
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/** 目录条目合成:desc/readMap/writeMap/historyMap 均来自 driverConfig(数据驱动,零硬编码) */
|
|
144
|
+
export function mesCatalogEntryOf(n: MesNodeLike): MesCatalogEntry {
|
|
145
|
+
const cfg = n.driverConfig ?? {}
|
|
146
|
+
return {
|
|
147
|
+
id: n.id,
|
|
148
|
+
name: n.name,
|
|
149
|
+
lineId: n.lineId ?? '',
|
|
150
|
+
unit: n.unit ?? '',
|
|
151
|
+
min: n.min,
|
|
152
|
+
max: n.max,
|
|
153
|
+
desc: String(cfg.desc ?? ''),
|
|
154
|
+
readable: Boolean(cfg.readMap),
|
|
155
|
+
writable: Boolean(cfg.writeMap),
|
|
156
|
+
historyable: Boolean(cfg.historyMap),
|
|
157
|
+
format: historyFormatOf(cfg as Record<string, unknown>),
|
|
158
|
+
hooked: Boolean(cfg.dataHook),
|
|
159
|
+
enabled: Boolean(n.enabled),
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// ============================================================
|
|
164
|
+
// 控制器
|
|
165
|
+
// ============================================================
|
|
166
|
+
|
|
167
|
+
export type MesToolResult = { text: string, isError?: boolean }
|
|
168
|
+
|
|
169
|
+
export type MesFetchOutcome = MesToolResult & {
|
|
170
|
+
mode?: 'snapshot' | 'inline' | 'async'
|
|
171
|
+
data?: {
|
|
172
|
+
job_ids?: string[]
|
|
173
|
+
dataset_ids?: string[]
|
|
174
|
+
stats?: Array<{ nodeId: string, stats: MesDatasetStatsView, truncated: boolean }>
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export interface MesFetchArgs {
|
|
179
|
+
ids?: unknown
|
|
180
|
+
from?: string
|
|
181
|
+
to?: string
|
|
182
|
+
max_rows?: number | string
|
|
183
|
+
/** 透传给 requestHook/dataHook 的参数对象(Agent 只传 param,其余交给配置) */
|
|
184
|
+
param?: unknown
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export interface MesCatalogArgs { q?: string, line_id?: string, limit?: number | string, /** 调用者可读产线集(绑线授权口径);提供时严格过滤(孤儿/越线点位不可见,空集=空目录 fail-closed) */ scope_line_ids?: string[] }
|
|
188
|
+
|
|
189
|
+
export function createMesController(deps: Partial<MesControllerDeps> = {}) {
|
|
190
|
+
const d: MesControllerDeps = { ...defaultDeps(), ...deps }
|
|
191
|
+
|
|
192
|
+
// ---------- 目录 ----------
|
|
193
|
+
|
|
194
|
+
/** mes-rest 点位目录(q 对 name/desc 子串过滤;line_id 精确过滤;limit 缺省 20;
|
|
195
|
+
* scope_line_ids 提供时按调用者可读产线严格过滤——跨产线点位与孤儿(未分配)点位不可见) */
|
|
196
|
+
async function catalog(args: MesCatalogArgs = {}): Promise<MesToolResult & { entries: MesCatalogEntry[], total: number }> {
|
|
197
|
+
const all = await d.nodes()
|
|
198
|
+
let mes = all.filter(n => n.driver === MES_REST_DRIVER_KIND).map(mesCatalogEntryOf)
|
|
199
|
+
if (Array.isArray(args.scope_line_ids)) {
|
|
200
|
+
const scope = new Set(args.scope_line_ids)
|
|
201
|
+
mes = mes.filter(e => e.lineId !== '' && scope.has(e.lineId))
|
|
202
|
+
}
|
|
203
|
+
const total = mes.length
|
|
204
|
+
const lineId = String(args.line_id ?? '').trim()
|
|
205
|
+
if (lineId) mes = mes.filter(e => e.lineId === lineId)
|
|
206
|
+
const q = String(args.q ?? '').trim().toLowerCase()
|
|
207
|
+
if (q) mes = mes.filter(e => e.name.toLowerCase().includes(q) || e.desc.toLowerCase().includes(q))
|
|
208
|
+
const limit = Math.min(Math.max(Math.round(Number(args.limit)) || 20, 1), 100)
|
|
209
|
+
const shown = mes.slice(0, limit)
|
|
210
|
+
|
|
211
|
+
const cap = (e: MesCatalogEntry): string => {
|
|
212
|
+
const hist = e.historyable ? (e.format !== 'scalar' ? `史·${e.format}` : '史') : null
|
|
213
|
+
const ab = [e.readable ? '读' : null, e.writable ? '写' : null, hist, e.hooked ? '钩子' : null].filter(Boolean)
|
|
214
|
+
return ab.length > 0 ? ab.join('/') : '无能力位'
|
|
215
|
+
}
|
|
216
|
+
const body = shown.map(e =>
|
|
217
|
+
`- ${e.name}(id=${e.id}) | 产线 ${e.lineId || '未分配'} | 单位 ${e.unit || '-'} | 量程 ${e.min}~${e.max} | 能力 ${cap(e)}${e.enabled ? '' : ' [停用]'}${e.desc ? ` | ${e.desc.slice(0, 80)}` : ''}`)
|
|
218
|
+
const more = mes.length - shown.length
|
|
219
|
+
const text = `MES REST 点位目录(共 ${total} 个${lineId ? `,产线 ${lineId}` : ''}${q ? `,关键字「${args.q}」` : ''};显示 ${shown.length} 条):\n${body.join('\n') || '(无匹配点位)'}${more > 0 ? `\n(另有 ${more} 条未显示,可收紧 q/line_id 或调大 limit≤100)` : ''}\n\n说明:能力 读=可读当前值,写=可写设定值,史=可取历史(史·vector=每时间点检测向量,史·image=图像帧,史·table/event=记录流),钩子=已配 dataHook(取数后自动做下沉处理并回传摘要与产物)。历史取数用 mes_fetch(ids=[点位id], from, to, max_rows, param?),标量/向量全量行落 CSV 数据集,图像帧自动落盘为文件,prompt 只回统计摘要与采样。`
|
|
220
|
+
return { text, entries: shown, total }
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// ---------- 取数 ----------
|
|
224
|
+
|
|
225
|
+
/** 归一 ids + 授权过滤(绑线路径:仅调用者 dcw 绑定的 mes-rest 节点) */
|
|
226
|
+
async function resolveVisibleIds(agentId: string, rawIds: unknown): Promise<{ ok: true, nodes: MesNodeLike[] } | { ok: false, text: string, isError: true }> {
|
|
227
|
+
const ids = Array.isArray(rawIds) ? [...new Set(rawIds.map(x => String(x ?? '').trim()).filter(Boolean))] : []
|
|
228
|
+
if (ids.length === 0) return { ok: false, text: 'ids 必填:目标 mes-rest 点位 id 数组(catalog 输出的 id;至少 1 个)。', isError: true }
|
|
229
|
+
const all = await d.nodes()
|
|
230
|
+
const bound = await d.boundNodeIds(agentId)
|
|
231
|
+
const mesById = new Map(all.filter(n => n.driver === MES_REST_DRIVER_KIND).map(n => [n.id, n]))
|
|
232
|
+
const picked: MesNodeLike[] = []
|
|
233
|
+
const missing: string[] = []
|
|
234
|
+
const notAllowed: string[] = []
|
|
235
|
+
for (const id of ids) {
|
|
236
|
+
const n = mesById.get(id)
|
|
237
|
+
if (!n) {
|
|
238
|
+
missing.push(id)
|
|
239
|
+
continue
|
|
240
|
+
}
|
|
241
|
+
if (!bound.has(id)) {
|
|
242
|
+
notAllowed.push(id)
|
|
243
|
+
continue
|
|
244
|
+
}
|
|
245
|
+
picked.push(n)
|
|
246
|
+
}
|
|
247
|
+
if (missing.length > 0 || notAllowed.length > 0) {
|
|
248
|
+
const allowed = [...bound]
|
|
249
|
+
.map(id => mesById.get(id))
|
|
250
|
+
.filter((n): n is MesNodeLike => !!n && n.driver === MES_REST_DRIVER_KIND)
|
|
251
|
+
const parts: string[] = []
|
|
252
|
+
if (missing.length > 0) parts.push(`不存在或不是 mes-rest 点位:${missing.join(', ')}`)
|
|
253
|
+
if (notAllowed.length > 0) parts.push(`无权访问(须为你绑定的数控节点):${notAllowed.join(', ')}`)
|
|
254
|
+
return {
|
|
255
|
+
ok: false,
|
|
256
|
+
text: `取数被拒:${parts.join(';')}。你有权取数的 mes-rest 点位:${allowed.map(n => `${n.name}(${n.id})`).join(', ') || '(无)'}。`,
|
|
257
|
+
isError: true,
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
return { ok: true, nodes: picked }
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/** 时间窗/行数护栏归一(代码级;返回错误文本或归一值) */
|
|
264
|
+
function normalizeWindow(args: MesFetchArgs): { ok: true, from?: string, to?: string, maxRows: number } | { ok: false, text: string, isError?: true } {
|
|
265
|
+
const from = String(args.from ?? '').trim()
|
|
266
|
+
const to = String(args.to ?? '').trim()
|
|
267
|
+
if ((from && !to) || (!from && to)) {
|
|
268
|
+
return { ok: false, text: 'from/to 必须成对提供(历史取数),或都不传(当前值快照模式)。' }
|
|
269
|
+
}
|
|
270
|
+
if (from && to) {
|
|
271
|
+
const fromMs = Date.parse(from)
|
|
272
|
+
const toMs = Date.parse(to)
|
|
273
|
+
if (!Number.isFinite(fromMs) || !Number.isFinite(toMs)) return { ok: false, text: 'from/to 必须是合法 ISO 时间戳。' }
|
|
274
|
+
if (fromMs >= toMs) return { ok: false, text: `时间窗无效:from(${from}) 必须早于 to(${to})。` }
|
|
275
|
+
if (toMs - fromMs > MES_WINDOW_MAX_MS) {
|
|
276
|
+
return { ok: false, text: `时间窗被拒:窗口 ${(toMs - fromMs) / 3_600_000 / 24} 天超过上限 7 天。请拆成 ≤7 天的分段分批取数。`, isError: true }
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
const maxRows = args.max_rows == null || args.max_rows === '' ? MES_DEFAULT_MAX_ROWS : Math.round(Number(args.max_rows))
|
|
280
|
+
if (!Number.isFinite(maxRows) || maxRows < 1) return { ok: false, text: 'max_rows 必须为 ≥1 的整数。' }
|
|
281
|
+
if (maxRows > MES_MAX_ROWS_CAP) {
|
|
282
|
+
return { ok: false, text: `max_rows=${maxRows} 被拒:单次取数上限 ${MES_MAX_ROWS_CAP} 行。请缩小时间窗或分批取数。`, isError: true }
|
|
283
|
+
}
|
|
284
|
+
return { ok: true, from: from || undefined, to: to || undefined, maxRows }
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/** 统计摘要(数值列;均值/采样标准差) */
|
|
288
|
+
function statsOf(values: number[], firstTs: string | null, lastTs: string | null): MesDatasetStatsView {
|
|
289
|
+
const n = values.length
|
|
290
|
+
if (n === 0) return { count: 0, min: null, max: null, mean: null, stddev: null, firstTs: null, lastTs: null }
|
|
291
|
+
const min = Math.min(...values)
|
|
292
|
+
const max = Math.max(...values)
|
|
293
|
+
const mean = values.reduce((a, b) => a + b, 0) / n
|
|
294
|
+
const stddev = n > 1 ? Math.sqrt(values.reduce((a, b) => a + (b - mean) ** 2, 0) / (n - 1)) : 0
|
|
295
|
+
return { count: n, min, max, mean, stddev, firstTs, lastTs }
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
const fmtN = (v: number | null | undefined, digits = 3): string =>
|
|
299
|
+
v == null || !Number.isFinite(v) ? '-' : String(Number(v.toFixed(digits)))
|
|
300
|
+
const shortTs = (iso: string | null): string => iso && iso.length >= 19 ? iso.slice(5, 19).replace('T', ' ') : (iso ?? '-')
|
|
301
|
+
const clip = (v: unknown, max: number): string => {
|
|
302
|
+
const s = typeof v === 'string' ? v : JSON.stringify(v) ?? String(v)
|
|
303
|
+
return s.length > max ? `${s.slice(0, max)}…` : s
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// -------- 格式感知取数(行形态全谱;内存硬顶防大payload 拖垮进程) --------
|
|
307
|
+
|
|
308
|
+
/** 泛化历史行缓冲的硬顶 */
|
|
309
|
+
const VECTOR_ELEMENT_CAP = 2_000_000
|
|
310
|
+
const IMAGE_BASE64_CAP = 16_000_000
|
|
311
|
+
const RECORD_JSON_CAP = 8_000_000
|
|
312
|
+
/** image 格式自动落盘帧数上限(其余帧不落盘,回包注明) */
|
|
313
|
+
const IMAGE_AUTOSAVE_MAX = 20
|
|
314
|
+
|
|
315
|
+
interface GenRow { ts: string, value?: number, values?: number[], data?: string, mime?: string, record?: unknown }
|
|
316
|
+
|
|
317
|
+
interface GenStats extends MesDatasetStatsView {
|
|
318
|
+
/** vector:维度(首行长度)与维度不齐行数 */
|
|
319
|
+
dim?: number
|
|
320
|
+
dimMismatch?: number
|
|
321
|
+
/** vector:全体元素均值(比行均值更细) */
|
|
322
|
+
elementMean?: number
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/** requestHook 覆盖合并:克隆 driverConfig,把 {path,query,headers} 合入 historyMap JSON */
|
|
326
|
+
async function configWithRequestHook(node: MesNodeLike, param: unknown): Promise<Record<string, unknown>> {
|
|
327
|
+
const cfg = { ...(node.driverConfig as Record<string, unknown>) }
|
|
328
|
+
const hookCode = mesRequestHookCode(cfg as Record<string, unknown>)
|
|
329
|
+
if (!hookCode) return cfg
|
|
330
|
+
const overrides = await runMesRequestHook(hookCode, param, { nodeId: node.id })
|
|
331
|
+
if (overrides.path === undefined && overrides.query === undefined && overrides.headers === undefined) return cfg
|
|
332
|
+
try {
|
|
333
|
+
const map = JSON.parse(String(cfg.historyMap ?? '{}')) as Record<string, unknown>
|
|
334
|
+
if (overrides.path !== undefined) map.path = overrides.path
|
|
335
|
+
const baseQuery = (map.query !== null && typeof map.query === 'object' && !Array.isArray(map.query) ? map.query : {}) as Record<string, unknown>
|
|
336
|
+
map.query = { ...baseQuery, ...(overrides.query ?? {}) }
|
|
337
|
+
const baseHeaders = (map.headers !== null && typeof map.headers === 'object' && !Array.isArray(map.headers) ? map.headers : {}) as Record<string, unknown>
|
|
338
|
+
if (overrides.headers !== undefined) map.headers = { ...baseHeaders, ...overrides.headers }
|
|
339
|
+
cfg.historyMap = JSON.stringify(map)
|
|
340
|
+
}
|
|
341
|
+
catch (err) {
|
|
342
|
+
throw new AppError(422, 'MES_HOOK_FAILED', `requestHook 覆盖合并失败(historyMap 非法 JSON):${err instanceof Error ? err.message : String(err)}`)
|
|
343
|
+
}
|
|
344
|
+
return cfg
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
/** 向量行统计摘要(行均值序列 stats + 维度 + 全体元素均值) */
|
|
348
|
+
function vectorStats(rows: GenRow[]): GenStats {
|
|
349
|
+
const rowMeans = rows.map((r) => {
|
|
350
|
+
const vs = r.values ?? []
|
|
351
|
+
return vs.length > 0 ? vs.reduce((a, b) => a + b, 0) / vs.length : NaN
|
|
352
|
+
}).filter(v => Number.isFinite(v))
|
|
353
|
+
const all: number[] = []
|
|
354
|
+
for (const r of rows) if (Array.isArray(r.values)) all.push(...r.values)
|
|
355
|
+
const base = statsOf(rowMeans, rows[0]?.ts ?? null, rows[rows.length - 1]?.ts ?? null) as GenStats
|
|
356
|
+
base.dim = Array.isArray(rows[0]?.values) ? rows[0]!.values!.length : undefined
|
|
357
|
+
base.dimMismatch = base.dim === undefined ? undefined : rows.filter(r => Array.isArray(r.values) && r.values!.length !== base.dim).length
|
|
358
|
+
base.elementMean = all.length > 0 ? all.reduce((a, b) => a + b, 0) / all.length : undefined
|
|
359
|
+
return base
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/** 同步取单节点历史(格式感知:统计+采样+图像落盘+dataHook 下沉处理;原文不回传) */
|
|
363
|
+
async function inlineFetchNode(node: MesNodeLike, from: string, to: string, maxRows: number, param: unknown): Promise<{
|
|
364
|
+
text: string
|
|
365
|
+
stats: MesDatasetStatsView
|
|
366
|
+
truncated: boolean
|
|
367
|
+
sample: string[]
|
|
368
|
+
hookText?: string
|
|
369
|
+
artifacts: MesHookArtifact[]
|
|
370
|
+
}> {
|
|
371
|
+
const cfg = node.driverConfig as Record<string, unknown>
|
|
372
|
+
const format = historyFormatOf(cfg)
|
|
373
|
+
const driver = d.resolveDriver(node.driver)
|
|
374
|
+
if (typeof driver.fetchHistory !== 'function') {
|
|
375
|
+
return { text: `驱动 ${node.driver} 未提供历史原语(fetchHistory)`, stats: statsOf([], null, null), truncated: true, sample: [], artifacts: [] }
|
|
376
|
+
}
|
|
377
|
+
const effCfg = await configWithRequestHook(node, param)
|
|
378
|
+
const buf: GenRow[] = []
|
|
379
|
+
let truncated = false
|
|
380
|
+
let vecElems = 0
|
|
381
|
+
let imgChars = 0
|
|
382
|
+
let recChars = 0
|
|
383
|
+
let memoryHit = ''
|
|
384
|
+
const result = await driver.fetchHistory({
|
|
385
|
+
driverConfig: effCfg,
|
|
386
|
+
fromIso: from,
|
|
387
|
+
toIso: to,
|
|
388
|
+
maxRows,
|
|
389
|
+
onRows: (batch) => {
|
|
390
|
+
for (const r of batch ?? []) {
|
|
391
|
+
if (buf.length >= maxRows) {
|
|
392
|
+
truncated = true
|
|
393
|
+
break
|
|
394
|
+
}
|
|
395
|
+
const row: GenRow = { ts: String(r?.ts ?? '') }
|
|
396
|
+
if (typeof r?.value === 'number') row.value = r.value
|
|
397
|
+
if (Array.isArray(r?.values)) {
|
|
398
|
+
vecElems += r.values.length
|
|
399
|
+
if (vecElems > VECTOR_ELEMENT_CAP) {
|
|
400
|
+
memoryHit = `向量元素总量超过 ${VECTOR_ELEMENT_CAP} 上限`
|
|
401
|
+
truncated = true
|
|
402
|
+
break
|
|
403
|
+
}
|
|
404
|
+
row.values = r.values as number[]
|
|
405
|
+
}
|
|
406
|
+
if (typeof r?.data === 'string') {
|
|
407
|
+
imgChars += r.data.length
|
|
408
|
+
if (imgChars > IMAGE_BASE64_CAP) {
|
|
409
|
+
memoryHit = `图像载荷总量超过 ${Math.round(IMAGE_BASE64_CAP / 1024 / 1024)}MB 上限`
|
|
410
|
+
truncated = true
|
|
411
|
+
break
|
|
412
|
+
}
|
|
413
|
+
row.data = r.data
|
|
414
|
+
row.mime = typeof r?.mime === 'string' ? r.mime : 'image/png'
|
|
415
|
+
}
|
|
416
|
+
if (r?.record !== undefined && r.record !== null) {
|
|
417
|
+
let json: string
|
|
418
|
+
try {
|
|
419
|
+
json = JSON.stringify(r.record)
|
|
420
|
+
}
|
|
421
|
+
catch {
|
|
422
|
+
continue
|
|
423
|
+
}
|
|
424
|
+
recChars += json.length
|
|
425
|
+
if (recChars > RECORD_JSON_CAP) {
|
|
426
|
+
memoryHit = `记录载荷总量超过 ${Math.round(RECORD_JSON_CAP / 1024 / 1024)}MB 上限`
|
|
427
|
+
truncated = true
|
|
428
|
+
break
|
|
429
|
+
}
|
|
430
|
+
row.record = r.record
|
|
431
|
+
}
|
|
432
|
+
buf.push(row)
|
|
433
|
+
}
|
|
434
|
+
},
|
|
435
|
+
})
|
|
436
|
+
if (result && result.complete === false) truncated = true
|
|
437
|
+
if (!truncated && memoryHit) truncated = true
|
|
438
|
+
|
|
439
|
+
// 统计与采样(按格式)
|
|
440
|
+
let stats: GenStats
|
|
441
|
+
let autosaved: MesHookArtifact[] = []
|
|
442
|
+
const sample: string[] = []
|
|
443
|
+
if (format === 'vector') {
|
|
444
|
+
stats = vectorStats(buf)
|
|
445
|
+
const idx = [...new Set([0, Math.floor((buf.length - 1) / 2), buf.length - 1])].slice(0, 3)
|
|
446
|
+
for (const i of idx) {
|
|
447
|
+
const r = buf[i]!
|
|
448
|
+
const vs = r.values ?? []
|
|
449
|
+
const m = vs.length > 0 ? vs.reduce((a, b) => a + b, 0) / vs.length : NaN
|
|
450
|
+
sample.push(`${shortTs(r.ts)},dim=${vs.length},mean=${fmtN(m)},min=${fmtN(vs.length ? Math.min(...vs) : NaN)},max=${fmtN(vs.length ? Math.max(...vs) : NaN)}`)
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
else if (format === 'image') {
|
|
454
|
+
stats = { count: buf.length, min: null, max: null, mean: null, stddev: null, firstTs: buf[0]?.ts ?? null, lastTs: buf[buf.length - 1]?.ts ?? null }
|
|
455
|
+
// 图像 base64 永不进 prompt:自动落盘(≤20 帧),采样给文件名
|
|
456
|
+
const saved: MesHookArtifact[] = []
|
|
457
|
+
for (const [i, r] of buf.entries()) {
|
|
458
|
+
if (typeof r.data !== 'string') continue
|
|
459
|
+
if (saved.length >= IMAGE_AUTOSAVE_MAX) break
|
|
460
|
+
const a = saveMesImageArtifact(node.id, `frame-${String(i).padStart(4, '0')}`, r.data, r.mime ?? 'image/png')
|
|
461
|
+
if (a) saved.push(a)
|
|
462
|
+
}
|
|
463
|
+
const idx = [...new Set([0, Math.floor((buf.length - 1) / 2), buf.length - 1])].slice(0, 3)
|
|
464
|
+
for (const i of idx) {
|
|
465
|
+
const r = buf[i]!
|
|
466
|
+
const kb = r.data ? Math.round(r.data.length * 3 / 4 / 1024) : 0
|
|
467
|
+
const f = saved.find(x => x.name.includes(`frame-${String(i).padStart(4, '0')}`))
|
|
468
|
+
sample.push(`${shortTs(r.ts)},${r.mime ?? 'image/png'},~${kb}KB${f ? ` → ${f.name}` : ''}`)
|
|
469
|
+
}
|
|
470
|
+
autosaved = saved
|
|
471
|
+
}
|
|
472
|
+
else if (format === 'table' || format === 'event') {
|
|
473
|
+
stats = { count: buf.length, min: null, max: null, mean: null, stddev: null, firstTs: buf[0]?.ts ?? null, lastTs: buf[buf.length - 1]?.ts ?? null }
|
|
474
|
+
const idx = [...new Set([0, Math.floor((buf.length - 1) / 2), buf.length - 1])].slice(0, 3)
|
|
475
|
+
for (const i of idx) {
|
|
476
|
+
const r = buf[i]!
|
|
477
|
+
let body: string
|
|
478
|
+
try {
|
|
479
|
+
body = JSON.stringify(r.record)
|
|
480
|
+
}
|
|
481
|
+
catch {
|
|
482
|
+
body = '(不可序列化)'
|
|
483
|
+
}
|
|
484
|
+
sample.push(`${shortTs(r.ts)},${clip(body ?? '', 120)}`)
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
else {
|
|
488
|
+
const values = buf.map(r => r.value).filter((v): v is number => Number.isFinite(v))
|
|
489
|
+
stats = statsOf(values, buf[0]?.ts ?? null, buf[buf.length - 1]?.ts ?? null)
|
|
490
|
+
const idx = [...new Set([0, Math.floor((buf.length - 1) / 2), buf.length - 1])].slice(0, 3)
|
|
491
|
+
for (const i of idx) sample.push(`${shortTs(buf[i]!.ts)},${fmtN(buf[i]!.value ?? NaN)}`)
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
const fmtLabel = format === 'scalar' ? `标量` : format === 'vector' ? `向量(dim=${stats.dim ?? '?'})` : format === 'image' ? `图像(${(buf[0]?.mime as string) ?? 'image/png'})` : format === 'table' ? `表格记录` : `事件记录`
|
|
495
|
+
const statLine = format === 'scalar'
|
|
496
|
+
? ` 统计:min ${fmtN(stats.min)} / max ${fmtN(stats.max)} / mean ${fmtN(stats.mean)} / stddev ${fmtN(stats.stddev)} ${node.unit}`
|
|
497
|
+
: format === 'vector'
|
|
498
|
+
? ` 统计(按行均值):min ${fmtN(stats.min)} / max ${fmtN(stats.max)} / mean ${fmtN(stats.mean)} / stddev ${fmtN(stats.stddev)} ${node.unit};全体元素均值 ${fmtN(stats.elementMean ?? NaN)}${stats.dimMismatch ? `;维度漂移 ${stats.dimMismatch} 行` : ''}`
|
|
499
|
+
: ` 统计:${stats.count} 条记录(非数值格式不做均值)`
|
|
500
|
+
const text = [
|
|
501
|
+
`■ ${node.name}(id=${node.id})[格式 ${fmtLabel}]`,
|
|
502
|
+
` 行数 ${stats.count}${truncated ? `(截断:${memoryHit || '达到 maxRows 上限'})` : '(完整)'} | 首 ${shortTs(stats.firstTs)} ~ 末 ${shortTs(stats.lastTs)}`,
|
|
503
|
+
statLine,
|
|
504
|
+
sample.length > 0 ? ` 采样(≤3 行): ${sample.join(' | ')}` : ' 采样:无有效行',
|
|
505
|
+
].join('\n')
|
|
506
|
+
|
|
507
|
+
// dataHook 下沉处理(用户配置的 (param, data, ctx) => {...})
|
|
508
|
+
let hookText: string | undefined
|
|
509
|
+
const artifacts: MesHookArtifact[] = [...(autosaved as MesHookArtifact[])]
|
|
510
|
+
const hookCode = mesDataHookCode(cfg)
|
|
511
|
+
if (hookCode) {
|
|
512
|
+
const hookData: MesHookData = {
|
|
513
|
+
node: { id: node.id, name: node.name, lineId: node.lineId, unit: node.unit },
|
|
514
|
+
format,
|
|
515
|
+
rows: buf,
|
|
516
|
+
window: { from, to },
|
|
517
|
+
}
|
|
518
|
+
try {
|
|
519
|
+
const outcome = await runMesDataHook(hookCode, param, hookData, { nodeId: node.id })
|
|
520
|
+
if (outcome.ok) {
|
|
521
|
+
artifacts.push(...outcome.artifacts)
|
|
522
|
+
const parts = [` 钩子(dataHook):已执行,产物 ${outcome.artifacts.length} 个`]
|
|
523
|
+
if (outcome.summary) parts.push(` 处理摘要: ${outcome.summary}`)
|
|
524
|
+
if (outcome.context) parts.push(` 处理说明: ${outcome.context}`)
|
|
525
|
+
if (outcome.logs.length > 0) parts.push(` hook 日志(≤3): ${outcome.logs.slice(0, 3).join(' / ')}`)
|
|
526
|
+
hookText = parts.join('\n')
|
|
527
|
+
}
|
|
528
|
+
else {
|
|
529
|
+
hookText = ` 钩子(dataHook)执行失败:${outcome.error ?? '未知原因'}(统计仍基于原始数据)`
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
catch (err) {
|
|
533
|
+
hookText = ` 钩子(dataHook)执行失败:${err instanceof Error ? err.message : String(err)}`
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
// 产物行(hook 之外含自动落盘图像)
|
|
538
|
+
if (artifacts.length > 0) {
|
|
539
|
+
const shown = artifacts.slice(0, 8).map(a => `${a.name}(${Math.max(1, Math.round(a.bytes / 1024))}KB)`)
|
|
540
|
+
hookText = `${hookText ?? ''}\n 产物(${artifacts.length}${artifacts.length > 8 ? ',显示前8' : ''}): ${shown.join(' | ')}`
|
|
541
|
+
}
|
|
542
|
+
return { text, stats, truncated, sample, hookText, artifacts }
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* 取数编排(护栏全代码级):
|
|
547
|
+
* 授权过滤 → 窗口/行数归一 → 频次限流 → 快照 / 内联 / 异步三模式。
|
|
548
|
+
*/
|
|
549
|
+
async function fetch(agentId: string, args: MesFetchArgs): Promise<MesFetchOutcome> {
|
|
550
|
+
// ① 授权:ids 必须是调用者可见(绑线)的 mes-rest 节点
|
|
551
|
+
const vis = await resolveVisibleIds(agentId, args.ids)
|
|
552
|
+
if (!vis.ok) return { text: vis.text, isError: true }
|
|
553
|
+
// ② 窗口/行数护栏
|
|
554
|
+
const win = normalizeWindow(args)
|
|
555
|
+
if (!win.ok) return { text: win.text, isError: true }
|
|
556
|
+
// ③ 频次限流(每 agent 每 60s ≤6 次)
|
|
557
|
+
if (!mesFetchRateCheck(agentId, d.nowMs())) {
|
|
558
|
+
return { text: `取数过于频繁:每 60 秒最多 ${MES_RATE_MAX_CALLS} 次。请先消化已有结果,稍后再取。`, isError: true }
|
|
559
|
+
}
|
|
560
|
+
// ④ 格式门控:image/table/event 的原文(帧/记录)不进 prompt 也不落 CSV 数据集,
|
|
561
|
+
// 只支持内联行数(≤MES_SYNC_INLINE_MAX_ROWS);大窗口请拆小分批
|
|
562
|
+
if (win.maxRows > MES_SYNC_INLINE_MAX_ROWS) {
|
|
563
|
+
const INLINE_ONLY = new Set(['image', 'table', 'event'])
|
|
564
|
+
const hits = vis.nodes.filter(n => INLINE_ONLY.has(historyFormatOf(n.driverConfig as Record<string, unknown>)))
|
|
565
|
+
if (hits.length > 0) {
|
|
566
|
+
return {
|
|
567
|
+
text: `行数上限冲突:${hits.map(n => `${n.name}(${n.id})`).join(', ')} 是 图像/表格/事件 格式点位,只在 max_rows ≤ ${MES_SYNC_INLINE_MAX_ROWS} 的内联模式支持(原文不落 CSV 数据集)。请缩小时间窗或调低 max_rows 后重取。`,
|
|
568
|
+
isError: true,
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
// 模式一:当前值快照(无 from/to)
|
|
574
|
+
if (!win.from || !win.to) {
|
|
575
|
+
const lines: string[] = []
|
|
576
|
+
for (const node of vis.nodes) {
|
|
577
|
+
const driver = d.resolveDriver(node.driver)
|
|
578
|
+
try {
|
|
579
|
+
if (typeof driver.read !== 'function') {
|
|
580
|
+
lines.push(`- ${node.name}(${node.id}):驱动 ${node.driver} 不支持读取`)
|
|
581
|
+
continue
|
|
582
|
+
}
|
|
583
|
+
const r = await driver.read({ domain: { min: node.min, max: node.max }, driverConfig: node.driverConfig })
|
|
584
|
+
const at = new Date(d.nowMs()).toISOString()
|
|
585
|
+
lines.push(r.ok && r.eng != null
|
|
586
|
+
? `- ${node.name}(${node.id}):${fmtN(r.eng)}${node.unit} @ ${shortTs(at)}`
|
|
587
|
+
: `- ${node.name}(${node.id}):读取失败(${r.message.slice(0, 80)})`)
|
|
588
|
+
}
|
|
589
|
+
catch (err) {
|
|
590
|
+
lines.push(`- ${node.name}(${node.id}):读取异常(${(err instanceof Error ? err.message : String(err)).slice(0, 80)})`)
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
return {
|
|
594
|
+
mode: 'snapshot',
|
|
595
|
+
text: `MES 当前值快照(${vis.nodes.length} 个点位,内联直读):\n${lines.join('\n')}\n\n说明:当前值为直读快照;历史窗口用 mes_fetch 带 from/to(≤7 天,max_rows≤${MES_MAX_ROWS_CAP})。`,
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
// 模式二:同步内联(行数 ≤ MES_SYNC_INLINE_MAX_ROWS;格式感知+dataHook 下沉)
|
|
600
|
+
if (win.maxRows <= MES_SYNC_INLINE_MAX_ROWS) {
|
|
601
|
+
const sections: string[] = []
|
|
602
|
+
const statsOut: NonNullable<MesFetchOutcome['data']>['stats'] = []
|
|
603
|
+
for (const node of vis.nodes) {
|
|
604
|
+
try {
|
|
605
|
+
const one = await inlineFetchNode(node, win.from, win.to, win.maxRows, args.param)
|
|
606
|
+
sections.push(one.hookText ? `${one.text}\n${one.hookText}` : one.text)
|
|
607
|
+
statsOut.push({ nodeId: node.id, stats: one.stats, truncated: one.truncated })
|
|
608
|
+
}
|
|
609
|
+
catch (err) {
|
|
610
|
+
sections.push(`■ ${node.name}(id=${node.id})\n 取数失败:${err instanceof Error ? err.message : String(err)}`)
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
return {
|
|
614
|
+
mode: 'inline',
|
|
615
|
+
text: `MES 历史取数(内联同步,${vis.nodes.length} 个点位,窗口 ${shortTs(win.from)} ~ ${shortTs(win.to)}):\n${sections.join('\n')}\n\n说明:以上为统计摘要与 ≤3 行采样;MES 原文不进入对话。向量/图像/记录点位按各自格式呈现,已配置数据钩子(dataHook)的点位会附处理摘要与产物清单(文件落 <数据根>/mes-artifacts/<点位id>/)。需要标量/向量全量行请用更大 max_rows(> ${MES_SYNC_INLINE_MAX_ROWS})走异步数据集,再用 mes_dataset_read 读。`,
|
|
616
|
+
data: { stats: statsOut },
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
// 模式三:异步数据集(行数 > MES_SYNC_INLINE_MAX_ROWS;进程内异步,绝不进调度循环;
|
|
621
|
+
// requestHook 覆盖在此同样生效——合并进作业用的 driverConfig)
|
|
622
|
+
const jobIds: string[] = []
|
|
623
|
+
const datasetIds: string[] = []
|
|
624
|
+
const lines: string[] = []
|
|
625
|
+
for (const node of vis.nodes) {
|
|
626
|
+
let effCfg: Record<string, unknown>
|
|
627
|
+
try {
|
|
628
|
+
effCfg = await configWithRequestHook(node, args.param)
|
|
629
|
+
}
|
|
630
|
+
catch (err) {
|
|
631
|
+
lines.push(`- ${node.name}(${node.id}):requestHook 失败,作业未创建(${err instanceof Error ? err.message : String(err)})`)
|
|
632
|
+
continue
|
|
633
|
+
}
|
|
634
|
+
const { jobId, datasetId } = d.store.createFetchJob({
|
|
635
|
+
nodeId: node.id,
|
|
636
|
+
fromIso: win.from,
|
|
637
|
+
toIso: win.to,
|
|
638
|
+
maxRows: win.maxRows,
|
|
639
|
+
agentId,
|
|
640
|
+
lineId: node.lineId,
|
|
641
|
+
nodeName: node.name,
|
|
642
|
+
driverConfig: effCfg,
|
|
643
|
+
})
|
|
644
|
+
jobIds.push(jobId)
|
|
645
|
+
datasetIds.push(datasetId)
|
|
646
|
+
lines.push(`- ${node.name}(${node.id}):job_id=${jobId} dataset_id=${datasetId} status=running`)
|
|
647
|
+
}
|
|
648
|
+
return {
|
|
649
|
+
mode: 'async',
|
|
650
|
+
text: `已创建 ${lines.length} 个异步取数作业(窗口 ${shortTs(win.from)} ~ ${shortTs(win.to)},max_rows=${win.maxRows}):\n${lines.join('\n')}\n\n勿轮询;未完成先做别的,用 mes_datasets 查状态,完成后 mes_dataset_read(dataset_id, mode=stats/rows) 读内容。`,
|
|
651
|
+
data: { job_ids: jobIds, dataset_ids: datasetIds },
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
return { catalog, fetch }
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
export type MesController = ReturnType<typeof createMesController>
|