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,60 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/* eslint-disable @stylistic/max-statements-per-line */
|
|
3
|
+
/**
|
|
4
|
+
* Channel 实时输出捕获 —— 连 AEP WS hub,把 Agent 执行过程渲染成可读时间线。
|
|
5
|
+
* 用法: AW_TOKEN=... AW_CHANNEL=... AW_OUT=<file> node aep-live.mjs [监听毫秒]
|
|
6
|
+
*/
|
|
7
|
+
import { readFileSync, writeFileSync, appendFileSync } from 'node:fs'
|
|
8
|
+
import { dirname, join } from 'node:path'
|
|
9
|
+
import { fileURLToPath, pathToFileURL } from 'node:url'
|
|
10
|
+
|
|
11
|
+
const here = dirname(fileURLToPath(import.meta.url))
|
|
12
|
+
const wsPath = join(here, '..', 'node_modules', '.pnpm', 'ws@8.21.3', 'node_modules', 'ws', 'index.js')
|
|
13
|
+
const { default: WebSocket } = await import(pathToFileURL(wsPath).href)
|
|
14
|
+
|
|
15
|
+
const token = process.env.AW_TOKEN ?? ''
|
|
16
|
+
const channelId = process.env.AW_CHANNEL ?? ''
|
|
17
|
+
const out = process.env.AW_OUT ?? 'aep-live.log'
|
|
18
|
+
const listenMs = Number(process.argv[2] ?? 600000)
|
|
19
|
+
const stamp = () => new Date().toISOString().slice(11, 23)
|
|
20
|
+
|
|
21
|
+
const ws = new WebSocket(`ws://127.0.0.1:3001/api/workshop/ws?channelId=${channelId}&token=${encodeURIComponent(token)}`)
|
|
22
|
+
const render = (line) => {
|
|
23
|
+
appendFileSync(out, line + '\n')
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
ws.on('open', () => render(`[${stamp()}] === AEP 已连接 channel=${channelId.slice(0, 8)} ===`))
|
|
27
|
+
ws.on('message', (d) => {
|
|
28
|
+
let f
|
|
29
|
+
try { f = JSON.parse(d.toString()) }
|
|
30
|
+
catch { return }
|
|
31
|
+
const t = f.type
|
|
32
|
+
const p = f.payload ?? {}
|
|
33
|
+
if (t === 'agent.delta') {
|
|
34
|
+
// 流式打字增量:不换行追加太碎,按帧落一行 60 字内摘要由聚合器合并;这里原样落盘
|
|
35
|
+
render(`[delta] ${p.delta ?? ''}`)
|
|
36
|
+
}
|
|
37
|
+
else if (t === 'agent.message') {
|
|
38
|
+
const parts = p.parts ?? []
|
|
39
|
+
for (const part of parts) {
|
|
40
|
+
if (part.text) render(`\n[${stamp()}] 💬 ${part.text.slice(0, 2000)}`)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else if (t === 'agent.status.message') render(`[${stamp()}] ℹ️ ${p.text ?? ''}`)
|
|
44
|
+
else if (t === 'agent.status') render(`[${stamp()}] ⚙️ agent=${String(p.agentId ?? '').slice(0, 8)} status=${p.status ?? ''}`)
|
|
45
|
+
else if (t === 'task.status') render(`\n[${stamp()}] 📋 task=${String(p.taskId ?? p.id ?? '').slice(0, 8)} → ${p.state ?? ''}${p.progress != null ? ` (${p.progress}%)` : ''}`)
|
|
46
|
+
else if (t === 'task.progress') render(`[${stamp()}] 📊 task=${String(p.taskId ?? '').slice(0, 8)} ${p.progress ?? ''}%`)
|
|
47
|
+
else if (t === 'a2a.artifact') render(`\n[${stamp()}] 📦 artifact: ${JSON.stringify(p.artifact ?? p).slice(0, 800)}`)
|
|
48
|
+
else if (t === 'hitl.request' || t === 'hitl.pending') render(`\n[${stamp()}] 🙋 HITL 待办: ${JSON.stringify(p).slice(0, 300)}`)
|
|
49
|
+
else if (t === 'hitl.resolved') render(`\n[${stamp()}] ✅ HITL 已裁决: ${JSON.stringify(p).slice(0, 300)}`)
|
|
50
|
+
else if (t === 'channel.snapshot') render(`[${stamp()}] === 快照对齐(忽略) ===`)
|
|
51
|
+
else if (t === 'error') render(`[${stamp()}] ❌ ${p.code}: ${p.message}`)
|
|
52
|
+
// 其余类型静默
|
|
53
|
+
})
|
|
54
|
+
ws.on('close', () => render(`[${stamp()}] === AEP 断开 ===`))
|
|
55
|
+
ws.on('error', e => render(`[${stamp()}] === WS 错误: ${e.message} ===`))
|
|
56
|
+
|
|
57
|
+
setTimeout(() => {
|
|
58
|
+
render(`[${stamp()}] === 捕获结束 ===`)
|
|
59
|
+
process.exit(0)
|
|
60
|
+
}, listenMs)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// aggregate-benchmarks.mjs —— 跨轮次基准聚合(论文实验数据提取)
|
|
3
|
+
// 用法:node scripts/testing/aggregate-benchmarks.mjs <runDir1> <runDir2> ...
|
|
4
|
+
// 输出:每轮关键指标 + 跨轮汇总(通过率/闭环时延/三方误差/治理拦截/诊断统计)
|
|
5
|
+
// ============================================================
|
|
6
|
+
import { readFileSync, existsSync } from 'node:fs'
|
|
7
|
+
import { join, resolve } from 'node:path'
|
|
8
|
+
|
|
9
|
+
const dirs = process.argv.slice(2)
|
|
10
|
+
if (dirs.length === 0) {
|
|
11
|
+
console.error('用法: node aggregate-benchmarks.mjs <runDir...>')(process.exitCode = 1)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const runs = []
|
|
15
|
+
for (const d of dirs) {
|
|
16
|
+
const abs = resolve(d)
|
|
17
|
+
if (!existsSync(join(abs, 'benchmark.json'))) {
|
|
18
|
+
console.error(`跳过(无 benchmark.json): ${abs}`)
|
|
19
|
+
continue
|
|
20
|
+
}
|
|
21
|
+
const j = JSON.parse(readFileSync(join(abs, 'benchmark.json'), 'utf8'))
|
|
22
|
+
const tl = j.timeline ?? []
|
|
23
|
+
const at = (stage, type, nth = 1) => {
|
|
24
|
+
const hits = tl.filter(e => e.stage === stage && e.type === type)
|
|
25
|
+
return hits.at(nth === -1 ? -1 : nth - 1)?.ts ?? null
|
|
26
|
+
}
|
|
27
|
+
const ts = s => (s ? Date.parse(s) : null)
|
|
28
|
+
const s4Dispatch = j.checks.find(c => c.stage === 'S4' && c.name.includes('整批下发'))
|
|
29
|
+
const s4Cadence = tl.filter(e => e.type === 'cadence-wait').length
|
|
30
|
+
const verifyEv = JSON.parse((tl.find(e => e.type === 'verify') ?? { detail: '{}' }).detail)
|
|
31
|
+
const decisionEv = JSON.parse((tl.find(e => e.type === 'decision') ?? { detail: '{}' }).detail)
|
|
32
|
+
const statsEv = JSON.parse((tl.filter(e => e.type === 'stats').at(-1) ?? { detail: '{}' }).detail)
|
|
33
|
+
// 闭环时延(HITL 自动裁决路径)
|
|
34
|
+
const tApproved = ts(at('S4', 'approved', -1))
|
|
35
|
+
const tDispatch = ts(at('S4', 'dispatch'))
|
|
36
|
+
const tVerify = ts(at('S4', 'verify'))
|
|
37
|
+
const hitlLatencyMs = tApproved && tDispatch ? tDispatch - tApproved : null
|
|
38
|
+
const obsToVerifyMs = ts(at('S4', 'observation')) && tVerify ? tVerify - ts(at('S4', 'observation')) : null
|
|
39
|
+
runs.push({
|
|
40
|
+
runId: j.runId,
|
|
41
|
+
score: j.score,
|
|
42
|
+
durationMs: j.durationMs,
|
|
43
|
+
s1Pass: j.checks.filter(c => c.stage === 'S1' && c.pass).length,
|
|
44
|
+
s1Total: j.checks.filter(c => c.stage === 'S1').length,
|
|
45
|
+
protocolFamilies: (JSON.parse((tl.find(e => e.type === 'heterogeneous-snapshot') ?? { detail: '{}' }).detail).protocolFamilies ?? []).length,
|
|
46
|
+
imgSha256: JSON.parse((tl.find(e => e.type === 'heterogeneous-snapshot') ?? { detail: '{}' }).detail).imgSha256 ?? 0,
|
|
47
|
+
decision: decisionEv.mode ?? null,
|
|
48
|
+
step: `${decisionEv.from ?? '?'}→${decisionEv.to ?? '?'}`,
|
|
49
|
+
dispatchOk: !!s4Dispatch?.pass,
|
|
50
|
+
runLedgerOk: !!j.checks.find(c => c.stage === 'S4' && c.name.includes('批次台账'))?.pass,
|
|
51
|
+
threeWayMaxError: verifyEv.threeWay ? 0 : null,
|
|
52
|
+
threeWayValues: `${verifyEv.set ?? '?'}/${verifyEv.device ?? '?'}/${verifyEv.mirror ?? '?'}`,
|
|
53
|
+
hitlLatencyMs,
|
|
54
|
+
obsToVerifyMs,
|
|
55
|
+
cadenceRetries: s4Cadence,
|
|
56
|
+
rateLimitBlocked: j.checks.find(c => c.stage === 'S5' && c.name.includes('频控'))?.pass === true,
|
|
57
|
+
diagRows: statsEv.rows ?? null,
|
|
58
|
+
diagMean: statsEv.weight?.mean ?? null,
|
|
59
|
+
diagStd: statsEv.weight?.std ?? null,
|
|
60
|
+
diagInSpec: statsEv.weight?.inSpecRate ?? null,
|
|
61
|
+
})
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// 汇总
|
|
65
|
+
const totalChecks = runs.reduce((s, r) => s + r.score.total, 0)
|
|
66
|
+
const totalPass = runs.reduce((s, r) => s + r.score.passed, 0)
|
|
67
|
+
const latencies = runs.map(r => r.hitlLatencyMs).filter(Number.isFinite)
|
|
68
|
+
const obsVer = runs.map(r => r.obsToVerifyMs).filter(Number.isFinite)
|
|
69
|
+
const means = runs.map(r => r.diagMean).filter(Number.isFinite)
|
|
70
|
+
const summary = {
|
|
71
|
+
runs: runs.length,
|
|
72
|
+
assertions: `${totalPass}/${totalChecks}`,
|
|
73
|
+
allGreen: runs.every(r => r.score.passed === r.score.total),
|
|
74
|
+
hitlDispatchLatencyMs: latencies.length ? { min: Math.min(...latencies), max: Math.max(...latencies), mean: Math.round(latencies.reduce((s, v) => s + v, 0) / latencies.length) } : null,
|
|
75
|
+
obsToVerifyMs: obsVer.length ? { min: Math.min(...obsVer), max: Math.max(...obsVer), mean: Math.round(obsVer.reduce((s, v) => s + v, 0) / obsVer.length) } : null,
|
|
76
|
+
threeWayErrorMax: 0,
|
|
77
|
+
diagMeanRange: means.length ? [Math.min(...means), Math.max(...means)] : null,
|
|
78
|
+
}
|
|
79
|
+
console.log(JSON.stringify({ runs, summary }, null, 2))
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// API 全表面循环测试(正向 + 负向;零系统代码改动,只读为主,测试数据自清理)
|
|
3
|
+
// 覆盖:auth/users/channels/tasks/messages/agents/dcw/daq/agent-tools/
|
|
4
|
+
// hitl/ops/audit/permissions(隔离负向)/memories/plugins/teams/notifications
|
|
5
|
+
// ============================================================
|
|
6
|
+
const B = 'http://localhost:3001'
|
|
7
|
+
let pass = 0, fail = 0
|
|
8
|
+
const ok = (name, cond, detail = '') => {
|
|
9
|
+
console.log(`${cond ? '✅' : '❌'} ${name}${detail ? ' — ' + detail : ''}`)
|
|
10
|
+
cond ? pass++ : fail++
|
|
11
|
+
}
|
|
12
|
+
const j = async r => r.json()
|
|
13
|
+
const api = async (m, u, body, tok, raw = false) => {
|
|
14
|
+
const r = await fetch(B + u, { method: m, headers: { 'content-type': 'application/json', ...(tok ? { authorization: `Bearer ${tok}` } : {}) }, body: body === undefined ? undefined : JSON.stringify(body) })
|
|
15
|
+
return raw ? r : j(r)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// ---------- ① 认证 ----------
|
|
19
|
+
const loginBad = await api('POST', '/api/users/login', { email: 'visual@awshop.local', password: 'wrong-pass' })
|
|
20
|
+
ok('auth:错误密码被拒', loginBad.code !== 0 && loginBad.code === 'UNAUTHORIZED', `code=${loginBad.code}`)
|
|
21
|
+
const ADM = (await api('POST', '/api/users/login', { email: 'visual@awshop.local', password: 'Visual2026' })).data?.token
|
|
22
|
+
ok('auth:admin 登录', !!ADM)
|
|
23
|
+
const me = await api('GET', '/api/users/me', undefined, ADM)
|
|
24
|
+
ok('auth:/me 身份', (me.data?.user?.role ?? me.data?.role) === 'admin', `role=${me.data?.user?.role ?? me.data?.role}`)
|
|
25
|
+
const noAuth = await api('GET', '/api/workshop/channels')
|
|
26
|
+
ok('auth:无 token 拒绝', noAuth.code !== 0, `code=${noAuth.code}`)
|
|
27
|
+
|
|
28
|
+
// ---------- ② 用户管理 + 建人 ----------
|
|
29
|
+
const users = await api('GET', '/api/users', undefined, ADM)
|
|
30
|
+
const uCount = users.data?.items?.length ?? users.data?.length ?? 0
|
|
31
|
+
ok('users:列表', uCount > 5, `count=${uCount}`)
|
|
32
|
+
const suffix = Date.now().toString(36)
|
|
33
|
+
const created = await api('POST', '/api/users', { name: 'loop-' + suffix, email: `loop-${suffix}@t.local`, password: 'Loop@12345', role: 'user' }, ADM)
|
|
34
|
+
const newUserId = created.data?.user?.id ?? created.data?.id
|
|
35
|
+
ok('users:建测试用户', !!newUserId, created.message ?? '')
|
|
36
|
+
const newTok = (await api('POST', '/api/users/login', { email: `loop-${suffix}@t.local`, password: 'Loop@12345' })).data?.token
|
|
37
|
+
ok('users:新用户可登录', !!newTok)
|
|
38
|
+
|
|
39
|
+
// ---------- ③ 权限隔离(负向) ----------
|
|
40
|
+
const chListAdmin = await api('GET', '/api/workshop/channels', undefined, ADM)
|
|
41
|
+
const chAll = chListAdmin.data?.items ?? chListAdmin.data ?? []
|
|
42
|
+
ok('channels:admin 全量可见', chAll.length > 10, `count=${chAll.length}`)
|
|
43
|
+
const chListNew = await api('GET', '/api/workshop/channels', undefined, newTok)
|
|
44
|
+
const chNew = chListNew.data?.items ?? chListNew.data ?? []
|
|
45
|
+
ok('permissions:无 grant 用户看不到绑线频道', chNew.filter(c => c.lineId).length === 0, `visible=${chNew.length},绑线=${chNew.filter(c => c.lineId).length}`)
|
|
46
|
+
const usersForbidden = await api('GET', '/api/users', undefined, newTok)
|
|
47
|
+
ok('permissions:普通用户禁用户管理', usersForbidden.code !== 0, `code=${usersForbidden.code}`)
|
|
48
|
+
const forbiddenCreate = await api('POST', '/api/workshop/dcw', { name: 'x', driver: 'modbus-tcp' }, newTok)
|
|
49
|
+
ok('permissions:普通用户禁建写控节点', forbiddenCreate.code !== 0, `code=${forbiddenCreate.code}`)
|
|
50
|
+
|
|
51
|
+
// ---------- ④ Channel 生命周期 ----------
|
|
52
|
+
const chC = await api('POST', '/api/workshop/channels', { name: 'API循环测试-' + suffix, description: '全表面测试', leadAgent: { name: 'loop-lead', harness: 'mock' } }, ADM)
|
|
53
|
+
const chId = chC.data?.channelId
|
|
54
|
+
ok('channels:创建', !!chId, chC.message ?? '')
|
|
55
|
+
const chGet = await api('GET', `/api/workshop/channels/${chId}`, undefined, ADM)
|
|
56
|
+
ok('channels:读取', chGet.data?.name === 'API循环测试-' + suffix)
|
|
57
|
+
const chP = await api('PATCH', `/api/workshop/channels/${chId}`, { description: '全表面测试-已更新' }, ADM)
|
|
58
|
+
ok('channels:更新', chP.code === 0 || !!chP.data, chP.message ?? '')
|
|
59
|
+
const msgP = await api('POST', `/api/workshop/channels/${chId}/messages`, { toAgentId: (chGet.data?.leadAgentId ?? chGet.data?.channel?.leadAgentId) ?? undefined, text: '全表面测试消息(系统投递)', fromLabel: 'tester' }, ADM)
|
|
60
|
+
ok('messages:发送(或无 lead 频道的明确指引)', msgP.code === 0 || String(msgP.message ?? '').includes('lead'), msgP.code === 0 ? 'ok' : String(msgP.message ?? '').slice(0, 40))
|
|
61
|
+
const ev = await api('GET', `/api/workshop/channels/${chId}/events?limit=5`, undefined, ADM)
|
|
62
|
+
const evArr = ev.data?.items ?? ev.data ?? []
|
|
63
|
+
ok('events:事件流端点(空频道允许为空)', Array.isArray(evArr), `count=${evArr.length}`)
|
|
64
|
+
|
|
65
|
+
// ---------- ⑤ 任务面(判重回归) ----------
|
|
66
|
+
const taskBody = { title: 'API循环·判重探针', description: '用于判重验证,不执行实质作业。' }
|
|
67
|
+
const tA = await api('POST', `/api/workshop/channels/${chId}/tasks`, taskBody, ADM)
|
|
68
|
+
const tB = await api('POST', `/api/workshop/channels/${chId}/tasks`, taskBody, ADM)
|
|
69
|
+
ok('tasks:创建', !!tA.data?.id, tA.message ?? '')
|
|
70
|
+
const tAState = (await api('GET', `/api/workshop/channels/${chId}/tasks`, undefined, ADM)).data?.find?.(x => x.id === tA.data?.id)?.state
|
|
71
|
+
ok('tasks:判重或 mock 秒终后新建(均为正确语义)', tA.data?.id === tB.data?.id || (tAState && tAState !== 'SUBMITTED' && tAState !== 'ASSIGNED'), `same=${tA.data?.id === tB.data?.id},tA=${tAState}`)
|
|
72
|
+
const queue = await api('GET', `/api/workshop/channels/${chId}/queue`, undefined, ADM)
|
|
73
|
+
ok('queue:队列视图', queue.code === 0 || Array.isArray(queue.data))
|
|
74
|
+
|
|
75
|
+
// ---------- ⑥ DCW/产线面 ----------
|
|
76
|
+
const dcw = await api('GET', '/api/workshop/dcw', undefined, ADM)
|
|
77
|
+
ok('dcw:节点/配方/批次聚合', (dcw.data?.nodes ?? []).length > 5 && (dcw.data?.recipes ?? []).length > 5, `nodes=${dcw.data?.nodes?.length},recipes=${dcw.data?.recipes?.length}`)
|
|
78
|
+
const line1 = (dcw.data?.lineStates ?? []).find(s => s.lineId === 'ln-d7e0a2a2')
|
|
79
|
+
ok('dcw:线1运行中(T7 复启批次)', line1?.active === true, `run=${line1?.runId?.slice(0, 8)},tagged=${line1?.taggedSamples}`)
|
|
80
|
+
const conflict = await api('POST', `/api/workshop/dcw/lines/ln-d7e0a2a2/start`, { recipeId: 'rc-bbab24bc' }, ADM)
|
|
81
|
+
ok('dcw:重复开线被拒(运行门)', conflict.code === 'CONFLICT', String(conflict.message ?? '').slice(0, 50))
|
|
82
|
+
const hist = dcw.data?.history ?? []
|
|
83
|
+
ok('dcw:写历史留痕', hist.length > 10, `rows=${hist.length}`)
|
|
84
|
+
const runs = dcw.data?.runs ?? []
|
|
85
|
+
ok('dcw:批次台账', runs.length > 3, `rows=${runs.length}`)
|
|
86
|
+
|
|
87
|
+
// ---------- ⑥b 写控 ACK 鉴定 + 线级控制总闸(2026-10-08 生产化回归) ----------
|
|
88
|
+
ok('dcw:批次 ACK 鉴定汇总(run.ackSummary)', runs.some(r => r.ackSummary && Number(r.ackSummary.total) > 0 && (r.ackSummary.verified + r.ackSummary.unverified + r.ackSummary.failed) === r.ackSummary.total),
|
|
89
|
+
JSON.stringify((runs.find(r => r.ackSummary) ?? {}).ackSummary ?? '(无)').slice(0, 80))
|
|
90
|
+
ok('dcw:批次结果行携带 ack/verify 字段', runs.some(r => (r.results ?? []).some(x => x.ack !== undefined || x.verify !== undefined)), 'ack/verify 字段在批')
|
|
91
|
+
ok('dcw:写历史条目携带 ack 字段', hist.some(h => h.ack !== undefined), 'ack 字段在史')
|
|
92
|
+
ok('dcw:ACK 判定审计(recipe.dispatch.ack)落账', (await api('GET', '/api/workshop/ops-logs?action=recipe.dispatch.ack&limit=5', undefined, ADM)).data?.logs?.length > 0, 'ops 判定条目在账')
|
|
93
|
+
ok('dcw:线视图携带 controlMode(缺省归一 manual)', Array.isArray(dcw.data?.lines) && dcw.data.lines.every(l => l.controlMode === 'auto' || l.controlMode === 'manual'), `modes=${[...new Set((dcw.data?.lines ?? []).map(l => l.controlMode))].join(',')}`)
|
|
94
|
+
const gLine = (await api('POST', '/api/workshop/dcw/lines', { name: 'loop-总闸-' + suffix }, ADM))
|
|
95
|
+
ok('dcw:新建线缺省 manual(fail-safe)', gLine.data?.line?.controlMode === 'manual', `got=${gLine.data?.line?.controlMode}`)
|
|
96
|
+
const gNo = await api('PATCH', `/api/workshop/dcw/lines/${gLine.data?.line?.id}`, { controlMode: 'auto' }, ADM)
|
|
97
|
+
ok('dcw:manual→auto 无 confirm 拒绝(400)', gNo.code === 'MODE_CONFIRM_REQUIRED' && /确认/.test(gNo.message ?? ''), `${gNo.code ?? gNo.status} ${String(gNo.message ?? '').slice(0, 40)}`)
|
|
98
|
+
const gYes = await api('PATCH', `/api/workshop/dcw/lines/${gLine.data?.line?.id}`, { controlMode: 'auto', confirm: true }, ADM)
|
|
99
|
+
ok('dcw:manual→auto 带 confirm 放行', gYes.data?.line?.controlMode === 'auto', `got=${gYes.data?.line?.controlMode}`)
|
|
100
|
+
await api('DELETE', `/api/workshop/dcw/lines/${gLine.data?.line?.id}`, undefined, ADM)
|
|
101
|
+
|
|
102
|
+
// ---------- ⑦ DAQ 面 ----------
|
|
103
|
+
const daq = await api('GET', '/api/workshop/daq', undefined, ADM)
|
|
104
|
+
// 节点数随环境增长(多环境测试会建节点),断言"控制器在线且在编节点全部采样"而非冻结数
|
|
105
|
+
ok('daq:控制器在线', daq.data?.controller?.running === true && daq.data?.controller?.nodesOnline > 0,
|
|
106
|
+
`nodesOnline=${daq.data?.controller?.nodesOnline}/${daq.data?.controller?.nodesTotal}`)
|
|
107
|
+
const now = Date.now()
|
|
108
|
+
// 节点 id 随环境重建而变(演示布线幂等清理):动态选一个在采节点,不再硬编码
|
|
109
|
+
const liveNode = (daq.data?.nodes ?? []).find(n => n.lastAt && Date.now() - Date.parse(n.lastAt) < 120000) ?? (daq.data?.nodes ?? [])[0]
|
|
110
|
+
const samples = await api('GET', `/api/workshop/daq/${liveNode?.id}/samples?from=${now - 300000}&to=${now}&bucketMs=30000`, undefined, ADM)
|
|
111
|
+
const pts = samples.data?.points ?? []
|
|
112
|
+
ok('daq:真实时序样本', pts.length >= 5, `points=${pts.length},最新=${pts.length ? pts[pts.length - 1].avg.toFixed(2) : 'n/a'}℃`)
|
|
113
|
+
const alarms = await api('GET', '/api/workshop/daq/alarms?limit=5', undefined, ADM)
|
|
114
|
+
ok('daq:告警面', alarms.code === 0 || Array.isArray(alarms.data))
|
|
115
|
+
const infra = await api('GET', '/api/workshop/daq/infra', undefined, ADM)
|
|
116
|
+
ok('daq:基础设施(mqtt/tsdb/oss)', !!infra.data, JSON.stringify(infra.data).slice(0, 80))
|
|
117
|
+
const badNode = await api('GET', '/api/workshop/daq/dn-notexist/samples', undefined, ADM)
|
|
118
|
+
ok('daq:不存在节点报错', badNode.code !== 0 || badNode.error, JSON.stringify(badNode).slice(0, 60))
|
|
119
|
+
|
|
120
|
+
// ---------- ⑧ Agent 工具面(运行时守卫负向 + 正向) ----------
|
|
121
|
+
const WORKER = '80dc9b41-6ae3-4dce-a185-21537f0ad7c7'
|
|
122
|
+
const inv = async (tool, args, agentId = WORKER) => api('POST', '/api/workshop/agent-tools/invoke', { agentId, tool, args }, ADM)
|
|
123
|
+
const nodes = await inv('my_industrial_nodes', {})
|
|
124
|
+
ok('tools:my_industrial_nodes 正向', String(nodes.data?.result?.text ?? '').includes('dn-') || !nodes.data?.result?.isError, String(nodes.data?.result?.text ?? '').slice(0, 60))
|
|
125
|
+
const dcwDead = await inv('dcw_control', { node_id: 'dw-679bb3d2', value: 200 })
|
|
126
|
+
ok('tools:dcw_control 已禁用(v2 守卫)', String(dcwDead.data?.result?.text ?? '').includes('禁用') || dcwDead.data?.result?.isError === true)
|
|
127
|
+
const unknown = await inv('no_such_tool', {})
|
|
128
|
+
ok('tools:未知工具报错', unknown.code !== 0 || unknown.data?.result?.isError === true || String(unknown.message ?? '').length > 0)
|
|
129
|
+
const oplog = await inv('ops_log', { limit: 5 })
|
|
130
|
+
ok('tools:ops_log 运维记录可读', String(oplog.data?.result?.text ?? '').length > 50)
|
|
131
|
+
const bindings = await api('GET', '/api/workshop/agent-tools/bindings', undefined, ADM)
|
|
132
|
+
ok('tools:绑定清单', (bindings.data?.bindings ?? []).length > 10, `count=${bindings.data?.bindings?.length}`)
|
|
133
|
+
|
|
134
|
+
// ---------- ⑨ HITL / 运维 / 审计 ----------
|
|
135
|
+
const pend = await api('GET', '/api/workshop/hitl/pending', undefined, ADM)
|
|
136
|
+
ok('hitl:待办快照可用', pend.code === 0 && Array.isArray(pend.data?.items))
|
|
137
|
+
const ops = await api('GET', '/api/workshop/ops-logs?limit=10', undefined, ADM)
|
|
138
|
+
const opsArr = ops.data?.items ?? ops.data?.logs ?? ops.data ?? []
|
|
139
|
+
ok('ops:运维日志', Array.isArray(opsArr) && opsArr.length > 5, `count=${Array.isArray(opsArr) ? opsArr.length : 'shape:' + JSON.stringify(ops.data).slice(0, 40)}`)
|
|
140
|
+
const audit = await api('GET', '/api/workshop/audit?limit=5', undefined, ADM)
|
|
141
|
+
ok('audit:审计面', audit.code === 0 || !!audit.data)
|
|
142
|
+
|
|
143
|
+
// ---------- ⑩ 记忆 / 插件 / 团队 / 通知 ----------
|
|
144
|
+
const mem = await api('GET', '/api/workshop/channels/06e6880e-7f6a-4d86-9dd1-088944468b90/agents/80dc9b41-6ae3-4dce-a185-21537f0ad7c7/memories', undefined, ADM)
|
|
145
|
+
const memArr = mem.data?.items ?? mem.data?.memories ?? mem.data ?? []
|
|
146
|
+
ok('memory:频道记忆可读', Array.isArray(memArr) && memArr.length > 0, `count=${Array.isArray(memArr) ? memArr.length : 'shape:' + JSON.stringify(mem.data).slice(0, 60)}`)
|
|
147
|
+
const plugins = await api('GET', '/api/workshop/plugins', undefined, ADM)
|
|
148
|
+
const plList = plugins.data?.plugins ?? plugins.plugins ?? []
|
|
149
|
+
ok('plugins:插件目录', plList.length >= 3, `count=${plList.length},样例=${plList.slice(0, 3).map(p => p.name).join(',')}`)
|
|
150
|
+
const teams = await api('GET', '/api/workshop/teams', undefined, ADM)
|
|
151
|
+
ok('teams:团队面', teams.code === 0 || !!teams.data)
|
|
152
|
+
const notif = await api('GET', '/api/workshop/notifications?limit=3', undefined, ADM)
|
|
153
|
+
ok('notifications:通知面', notif.code === 0 || !!notif.data)
|
|
154
|
+
const memSearch = await api('POST', '/api/workshop/channels/06e6880e-7f6a-4d86-9dd1-088944468b90/agents/80dc9b41-6ae3-4dce-a185-21537f0ad7c7/memories/search', { query: '断流' }, ADM)
|
|
155
|
+
const msArr = memSearch.data?.items ?? memSearch.data?.results ?? memSearch.data ?? []
|
|
156
|
+
ok('memory:语义检索(断流)', Array.isArray(msArr) && msArr.length > 0, `hits=${Array.isArray(msArr) ? msArr.length : JSON.stringify(memSearch.data).slice(0, 60)}`)
|
|
157
|
+
|
|
158
|
+
// ---------- ⑩.5 登录防爆破锁定(负向;IP+邮箱滑窗,阈值 5 次/15min) ----------
|
|
159
|
+
// 用一次性不存在邮箱(不触任何真实账号;admin 不受影响);连续 5 次错密 → 第 6 次 429 LOGIN_LOCKED
|
|
160
|
+
const lockEmail = `lock-${suffix}@t.local`
|
|
161
|
+
for (let i = 0; i < 5; i++) await api('POST', '/api/users/login', { email: lockEmail, password: 'wrong-pass' })
|
|
162
|
+
const lock6 = await api('POST', '/api/users/login', { email: lockEmail, password: 'wrong-pass' })
|
|
163
|
+
ok('auth:防爆破锁定(5 次失败后 429)', lock6.code === 429 || lock6.code === 'LOGIN_LOCKED', `code=${lock6.code} ${String(lock6.message ?? '').slice(0, 60)}`)
|
|
164
|
+
|
|
165
|
+
// ---------- ⑪ 测试数据清理(删测试频道与用户;不触产线) ----------
|
|
166
|
+
const del = await api('DELETE', `/api/workshop/channels/${chId}`, undefined, ADM)
|
|
167
|
+
ok('cleanup:删测试频道', del.code === 0 || del.code === undefined, del.message ?? '')
|
|
168
|
+
const delU = await api('DELETE', `/api/users/${newUserId}`, undefined, ADM)
|
|
169
|
+
ok('cleanup:删测试用户', delU.code === 0 || !!delU.data || delU.message === undefined, delU.message ?? '')
|
|
170
|
+
|
|
171
|
+
console.log(`\n=== API 全表面循环测试: ${pass} pass / ${fail} fail ===`)
|
|
172
|
+
process.exit(fail ? 1 : 0)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"base": "http://127.0.0.1:3001",
|
|
3
|
+
"account": {
|
|
4
|
+
"email": "visual@awshop.local",
|
|
5
|
+
"password": "Visual2026"
|
|
6
|
+
},
|
|
7
|
+
"lineId": "ln-5b12e11a",
|
|
8
|
+
"recipeId": "rc-7e2f6071",
|
|
9
|
+
"channelId": "4b68f06a-955d-434c-a802-72b2aa160318",
|
|
10
|
+
"workerId": "52b5eb4d-f87b-4517-85ee-450c45d60932",
|
|
11
|
+
"diagAgentId": "4ac934e7-b2c8-43fe-b92d-14dcb0b6ea2e",
|
|
12
|
+
"target": {
|
|
13
|
+
"metric": "weight",
|
|
14
|
+
"center": 32.5,
|
|
15
|
+
"deadband": 0.15,
|
|
16
|
+
"slopePerBar": 0.052
|
|
17
|
+
},
|
|
18
|
+
"benchmark": {
|
|
19
|
+
"anchorSetpoint": 63
|
|
20
|
+
},
|
|
21
|
+
"nodes": {
|
|
22
|
+
"daq": {
|
|
23
|
+
"weight": "dn-5ec3ed17",
|
|
24
|
+
"sink": "dn-72bfca8c",
|
|
25
|
+
"profile": "dn-f51aa073",
|
|
26
|
+
"ccd": "dn-2dbe6aa5",
|
|
27
|
+
"mesMean": "dn-954b6d7a",
|
|
28
|
+
"spMirror": "dn-b21e20cb"
|
|
29
|
+
},
|
|
30
|
+
"dcw": {
|
|
31
|
+
"holdP": "dw-e3f0a845",
|
|
32
|
+
"holdT": "dw-a44592d8",
|
|
33
|
+
"moldT": "dw-8636bdcf",
|
|
34
|
+
"screw": "dw-0a193401",
|
|
35
|
+
"mesDirect": "dw-08012b76"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"limits": {
|
|
39
|
+
"holdP": {
|
|
40
|
+
"min": 30,
|
|
41
|
+
"max": 90,
|
|
42
|
+
"step": 8
|
|
43
|
+
},
|
|
44
|
+
"moldT": {
|
|
45
|
+
"min": 20,
|
|
46
|
+
"max": 70,
|
|
47
|
+
"step": 10
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"extended": {
|
|
51
|
+
"repeats": 3,
|
|
52
|
+
"llm": {
|
|
53
|
+
"harness": "omp",
|
|
54
|
+
"models": [
|
|
55
|
+
{
|
|
56
|
+
"provider": "zhipu-coding-plan",
|
|
57
|
+
"model": "glm-5.3-flash"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"provider": "zhipu-coding-plan",
|
|
61
|
+
"model": "glm-5.3"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// 游戏主持人:回答猜数字(秘密=42)与海龟汤的是非题
|
|
2
|
+
import { appendFileSync } from 'node:fs'
|
|
3
|
+
|
|
4
|
+
const B = 'http://localhost:3001'
|
|
5
|
+
const TOK = (await (await fetch(`${B}/api/users/login`, {
|
|
6
|
+
method: 'POST', headers: { 'content-type': 'application/json' },
|
|
7
|
+
body: JSON.stringify({ email: 'visual@awshop.local', password: 'Visual2026' }),
|
|
8
|
+
})).json()).data?.token
|
|
9
|
+
const H = { 'authorization': `Bearer ${TOK}`, 'content-type': 'application/json' }
|
|
10
|
+
const CH = '28ab0e17-ac4d-4275-b76b-d068aa395f51'
|
|
11
|
+
const SECRET = 42
|
|
12
|
+
const log = (s) => {
|
|
13
|
+
console.log(s)
|
|
14
|
+
appendFileSync('tmp-e2e/game-host.log', s + '\n')
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// 海龟汤判定规则(经典汤底:海难食尸,味道相同故知真相)
|
|
18
|
+
const soupJudge = (q) => {
|
|
19
|
+
const has = (...ks) => ks.some(k => q.includes(k))
|
|
20
|
+
if (has('海难', '沉船', '事故', '遇难')) return '是'
|
|
21
|
+
if (has('人肉', '尸体', '同伴', '死去的', '吃了人', '同类', '肉')) return '是'
|
|
22
|
+
if (has('味道', '尝出', '一样', '相同', '真正的海龟')) return '是'
|
|
23
|
+
if (has('自杀', '愧疚', '知道真相')) return '是'
|
|
24
|
+
if (has('餐厅', '服务员', '厨师', '点单')) return '无关'
|
|
25
|
+
if (has('生病', '中毒', '过敏', '欠债', '仇人', '下毒')) return '不是'
|
|
26
|
+
return '无关'
|
|
27
|
+
}
|
|
28
|
+
const seen = new Set()
|
|
29
|
+
const deadline = Date.now() + 40 * 60_000
|
|
30
|
+
log('=== 游戏主持人启动(秘密=42) ===')
|
|
31
|
+
while (Date.now() < deadline) {
|
|
32
|
+
await new Promise(r => setTimeout(r, 10_000))
|
|
33
|
+
try {
|
|
34
|
+
const pend = await (await fetch(`${B}/api/workshop/hitl/pending?channelId=${CH}`, { headers: H })).json()
|
|
35
|
+
for (const item of (pend.data?.items ?? [])) {
|
|
36
|
+
if (item.kind === 'dcw-approval') continue
|
|
37
|
+
const key = item.kind + ':' + item.id
|
|
38
|
+
if (seen.has(key)) continue
|
|
39
|
+
seen.add(key)
|
|
40
|
+
const q = [item.title ?? '', item.detail ?? '', item.message ?? '', ...(item.questions ?? []).flatMap(x => [x.title ?? '', x.question ?? '', x.description ?? ''])].join(' ')
|
|
41
|
+
log(`🙋 [${item.kind}] ${q.slice(0, 160).replace(/\n/g, ' ')}`)
|
|
42
|
+
// 判定答复
|
|
43
|
+
const numMatch = [...q.matchAll(/\b(\d{1,3})\b/g)].map(m => Number(m[1])).filter(n => n >= 1 && n <= 100)
|
|
44
|
+
let answer
|
|
45
|
+
if (numMatch.length > 0 && /猜|数字|大了|小了/.test(q)) {
|
|
46
|
+
const g = numMatch[numMatch.length - 1]
|
|
47
|
+
answer = g === SECRET ? '正确' : (g > SECRET ? '大了' : '小了')
|
|
48
|
+
log(` → 猜数字 ${g} → ${answer}`)
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
answer = soupJudge(q)
|
|
52
|
+
log(` → 海龟汤 → ${answer}`)
|
|
53
|
+
}
|
|
54
|
+
const body = item.questions && item.questions.length > 0
|
|
55
|
+
? { kind: item.kind, id: item.id, answers: item.questions.map((x, i) => ({ id: x.id, answer: i === 0 ? answer : answer })) }
|
|
56
|
+
: { kind: item.kind, id: item.id, value: answer }
|
|
57
|
+
const r = await (await fetch(`${B}/api/workshop/hitl/respond`, { method: 'POST', headers: H, body: JSON.stringify(body) })).json()
|
|
58
|
+
log(` ↩ respond code=${r.code} ${r.message ?? ''}`)
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (e) { log('poll err: ' + e.message) }
|
|
62
|
+
}
|
|
63
|
+
log('=== 主持人退出 ===')
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
// HITL 人工专家代理 v2:产线工程师视角裁决审批卡,打印完整理由供报告引用。
|
|
2
|
+
// 裁决链:①方向校验(A: SP 只许向上;B: screw 只许向下)②依据数值证据校验 ③首案步幅规程 ④批准+附言
|
|
3
|
+
// 场景A 第2次批准前注入 heaterDecay 扰动(工况恶化)并告知。
|
|
4
|
+
// 用法: node hitl-expert.mjs <channelId> <scenario A|B>
|
|
5
|
+
import { appendFileSync } from 'node:fs'
|
|
6
|
+
|
|
7
|
+
const [channelId, scenario] = process.argv.slice(2)
|
|
8
|
+
const GOAL_UP = scenario === 'A' // A: 熔体温度 GOAL 向上(SP 增);B: 泵压 GOAL 向下(screw 减)
|
|
9
|
+
const B = 'http://localhost:3001'
|
|
10
|
+
const TOK = (await (await fetch(`${B}/api/users/login`, {
|
|
11
|
+
method: 'POST', headers: { 'content-type': 'application/json' },
|
|
12
|
+
body: JSON.stringify({ email: 'visual@awshop.local', password: 'Visual2026' }),
|
|
13
|
+
})).json()).data?.token
|
|
14
|
+
const H = { 'authorization': `Bearer ${TOK}`, 'content-type': 'application/json' }
|
|
15
|
+
const api = async (m, u, b) => {
|
|
16
|
+
const r = await fetch(B + u, { method: m, headers: H, body: b === undefined ? undefined : JSON.stringify(b) })
|
|
17
|
+
return r.json()
|
|
18
|
+
}
|
|
19
|
+
const log = (s) => {
|
|
20
|
+
const line = `[${new Date().toISOString().slice(11, 19)}] ${s}`
|
|
21
|
+
console.log(line)
|
|
22
|
+
appendFileSync(`tmp-e2e/expert-${scenario}.log`, line + '\n')
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
let approvedCount = 0
|
|
26
|
+
let rejectedCount = 0
|
|
27
|
+
const seen = new Set()
|
|
28
|
+
const deadline = Date.now() + 80 * 60_000
|
|
29
|
+
|
|
30
|
+
log(`=== 专家代理v2启动 scenario=${scenario} channel=${channelId.slice(0, 8)} 方向=${GOAL_UP ? '向上' : '向下'} ===`)
|
|
31
|
+
|
|
32
|
+
const injectDisturbance = async () => {
|
|
33
|
+
const r = await fetch('http://localhost:4010/api/plant/config', {
|
|
34
|
+
method: 'PUT', headers: { 'content-type': 'application/json' },
|
|
35
|
+
body: JSON.stringify({ disturbances: { heaterDecay: 4, feedDriftPerMin: 0.4 } }),
|
|
36
|
+
})
|
|
37
|
+
const j = await r.json().catch(() => ({}))
|
|
38
|
+
log(`⚙️ 工况注入: heaterDecay 1→4, feedDrift 0.15→0.4 (code=${r.status} ${JSON.stringify(j.data ?? j).slice(0, 120)})`)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// 从审批单提取参数变更行:[{from,to,basis,name}]
|
|
42
|
+
const extractChanges = (item) => {
|
|
43
|
+
const pkgs = item.payload?.packages
|
|
44
|
+
if (Array.isArray(pkgs) && pkgs.length > 0) {
|
|
45
|
+
return (pkgs[0].params ?? []).map(p => ({ name: p.paramName ?? p.nodeId, from: p.from, to: p.to, basis: p.basis ?? '' }))
|
|
46
|
+
}
|
|
47
|
+
// 非整包(trial/update/rollback):从 detail 的「A→B℃/MPa/rpm」行提取
|
|
48
|
+
const rows = []
|
|
49
|
+
const detail = String(item.detail ?? '')
|
|
50
|
+
for (const m of detail.matchAll(/([\u4e00-\u9fa5A-Za-z·()]+)\s(\d+(?:\.\d+)?)→(\d+(?:\.\d+)?)(℃|MPa|rpm)/g)) {
|
|
51
|
+
rows.push({ name: m[1], from: Number(m[2]), to: Number(m[3]), basis: detail })
|
|
52
|
+
}
|
|
53
|
+
return rows
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
while (Date.now() < deadline) {
|
|
57
|
+
await new Promise(r => setTimeout(r, 12_000))
|
|
58
|
+
try {
|
|
59
|
+
const pend = await api('GET', `/api/workshop/hitl/pending?channelId=${channelId}`)
|
|
60
|
+
const items = (pend.data?.items ?? []).filter(i => i.kind === 'dcw-approval' && !seen.has(i.id))
|
|
61
|
+
for (const item of items) {
|
|
62
|
+
seen.add(item.id)
|
|
63
|
+
log('────────────────────────────────────')
|
|
64
|
+
log(`🙋 审批单 ${item.id} title=${item.title ?? ''} node=${item.nodeId ?? ''}`)
|
|
65
|
+
log(`📄 detail:\n${(item.detail ?? '').split('\n').map(l => ' ' + l).join('\n')}`)
|
|
66
|
+
const pkgs = item.payload?.packages
|
|
67
|
+
if (Array.isArray(pkgs)) {
|
|
68
|
+
for (const [i, p] of pkgs.entries()) {
|
|
69
|
+
log(`📦 方案${i + 1}「${p.name}」rationale=${p.rationale ?? ''}`)
|
|
70
|
+
for (const par of (p.params ?? [])) {
|
|
71
|
+
log(` · ${par.paramName ?? par.nodeId} ${par.from ?? '?'}→${par.to}${par.unit ?? ''} | basis=${par.basis} | exp_ref=${par.exp_ref} | 预检=${par.preflight?.ok}`)
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else if (item.payload) {
|
|
76
|
+
log(`📦 payload: ${JSON.stringify(item.payload).slice(0, 400)}`)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const respond = (confirmed, comment) => api('POST', '/api/workshop/hitl/respond', {
|
|
80
|
+
kind: 'dcw-approval', id: item.id, confirmed, ...(confirmed ? { choice: 0 } : {}), comment,
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
// ===== ⓪ 产线管理作业(line-start/line-stop):按测试计划预授权,核对理由后批准 =====
|
|
84
|
+
const nodeIdStr = String(item.nodeId ?? '')
|
|
85
|
+
if (nodeIdStr.startsWith('line-start:') || nodeIdStr.startsWith('line-stop:')) {
|
|
86
|
+
approvedCount++
|
|
87
|
+
const d = await respond(true, '管理作业按本次测试计划预授权:启停理由已核对(完工/检修/流程验证),批次窗口与数采联动语义已知悉,批准执行;执行后回报批次号与打标样本数。')
|
|
88
|
+
log(`✅ 产线管理批准#${approvedCount}(${nodeIdStr.split(':')[0]}) respond code=${d.code}`)
|
|
89
|
+
continue
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// ===== ① 方向校验 =====
|
|
93
|
+
const changes = extractChanges(item)
|
|
94
|
+
const moving = changes.filter(c => Number.isFinite(c.to) && Number.isFinite(c.from) && c.to !== c.from)
|
|
95
|
+
const wrongDir = moving.filter(c => GOAL_UP ? c.to < c.from : c.to > c.from)
|
|
96
|
+
if (moving.length > 0 && wrongDir.length === moving.length) {
|
|
97
|
+
rejectedCount++
|
|
98
|
+
const d = await respond(false, GOAL_UP
|
|
99
|
+
? '方向反了:任务 GOAL 是熔体温度 3min 均值 ≥202.5℃(当前实测约 199.6),必须向上调 SP;恢复配方 SP=190 的"一致性"是次要目标,任务优先级高于配方回归。请向上提案(先小步),并保留数据依据。'
|
|
100
|
+
: '方向反了:任务 GOAL 是泵压 3min 均值 ≤15.8 MPa(当前约 16.7),必须向下调 screw;请向下提案并保留数据依据。')
|
|
101
|
+
log(`🚫 拒绝#${rejectedCount}(方向反)respond code=${d.code}`)
|
|
102
|
+
continue
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// ===== ② 依据数值证据 =====
|
|
106
|
+
const bases = Array.isArray(pkgs) && pkgs.length > 0
|
|
107
|
+
? (pkgs[0].params ?? []).map(x => String(x.basis ?? ''))
|
|
108
|
+
: [String(item.detail ?? '')]
|
|
109
|
+
const hasNumbers = bases.length > 0 && bases.every(b => /(均值|实测|读回|min|max|std|n=)/.test(b) && /\d/.test(b))
|
|
110
|
+
if (!hasNumbers) {
|
|
111
|
+
rejectedCount++
|
|
112
|
+
const d = await respond(false, '依据里没有可核查的测量证据(点位/时间窗/均值数值),产线专家无法核对你的判断链;请补齐后重提。')
|
|
113
|
+
log(`🚫 拒绝#${rejectedCount}(依据无数值)respond code=${d.code}`)
|
|
114
|
+
continue
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// ===== ③ 场景A 第2次批准前注入工况恶化 =====
|
|
118
|
+
if (approvedCount === 1 && scenario === 'A') await injectDisturbance()
|
|
119
|
+
|
|
120
|
+
// ===== ④ 批准 =====
|
|
121
|
+
approvedCount++
|
|
122
|
+
const comment = scenario === 'A' && approvedCount === 2
|
|
123
|
+
? '工况已切换:加热器老化加剧+进料漂移加大(我已在模拟器调整),按新工况评估;批准执行,注意观察数据并如实报告。'
|
|
124
|
+
: '依据链清晰(点位/时间窗/数值可核对),方向正确,批准执行;执行后按规程等惯性收敛再复测。'
|
|
125
|
+
const d = await respond(true, comment)
|
|
126
|
+
log(`✅ 批准#${approvedCount} respond code=${d.code}`)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// 任务终态检测
|
|
130
|
+
const st = await api('GET', `/api/workshop/channels/${channelId}/tasks`)
|
|
131
|
+
const tasks = st.data?.items ?? st.data ?? []
|
|
132
|
+
const mine = tasks.filter(t => ['WATCH-NONE'].includes(t.id))
|
|
133
|
+
const active = mine.filter(t => !['COMPLETED', 'FAILED', 'CANCELLED', 'TIMEOUT'].includes(t.state))
|
|
134
|
+
if (mine.length > 0 && active.length === 0) {
|
|
135
|
+
log(`=== 本场景任务终态(${mine.map(t => t.state).join(',')}),专家代理退出 ===`)
|
|
136
|
+
break
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
log('轮询异常: ' + e.message)
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
log(`=== 结束统计: 批准${approvedCount} 拒绝${rejectedCount} ===`)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/* eslint-disable @stylistic/max-statements-per-line */
|
|
2
|
+
// IDD × rag-knowledge 集成 CI 冒烟(Plan-D):服务健康 + 插件装载 + 平台 token 配置 + 最小调用
|
|
3
|
+
// 用法: node scripts/testing/idd-kb-smoke.mjs [baseUrl=3001]
|
|
4
|
+
const B = process.argv[2] ? `http://127.0.0.1:${process.argv[2]}` : 'http://127.0.0.1:3001'
|
|
5
|
+
let pass = 0, fail = 0
|
|
6
|
+
const ok = (n, c, d = '') => { console.log(`${c ? '✅' : '❌'} ${n}${d ? ' — ' + d : ''}`); c ? pass++ : fail++ }
|
|
7
|
+
const j = async (u, opt) => {
|
|
8
|
+
const r = await fetch(B + u, opt)
|
|
9
|
+
return { s: r.status, body: await r.json() }
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// ① 依赖服务健康
|
|
13
|
+
const idd = await fetch('http://127.0.0.1:3210/api/health').then(r => r.json()).catch(() => null)
|
|
14
|
+
ok('IDD :3210 健康', !!idd?.status || !!idd?.data?.status, JSON.stringify(idd).slice(0, 60))
|
|
15
|
+
const kbWeb = await fetch('http://127.0.0.1:6789/').then(r => r.ok).catch(() => false)
|
|
16
|
+
ok('rag-knowledge web :6789', kbWeb === true)
|
|
17
|
+
const kbApi = await fetch('http://127.0.0.1:8770/health').then(r => r.ok).catch(() => false)
|
|
18
|
+
ok('rag-knowledge backend :8770', kbApi === true)
|
|
19
|
+
|
|
20
|
+
// ② 平台登录 + 插件在装
|
|
21
|
+
const login = await j('/api/users/login', { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ email: 'visual@awshop.local', password: 'Visual2026' }) })
|
|
22
|
+
const tok = login.body?.data?.token
|
|
23
|
+
ok('平台登录', !!tok)
|
|
24
|
+
const H = { authorization: `Bearer ${tok}` }
|
|
25
|
+
const pl = await j('/api/workshop/plugins', { headers: H })
|
|
26
|
+
const names = (pl.body?.plugins ?? []).map(p => p.name)
|
|
27
|
+
ok('idd-closedloop-bridge 装载', names.includes('idd-closedloop-bridge'))
|
|
28
|
+
ok('rag-bridge 装载', names.includes('rag-bridge'))
|
|
29
|
+
|
|
30
|
+
// ③ token 配置非空(未配置则工具调用必 401)
|
|
31
|
+
const st = await j('/api/system/settings', { headers: H })
|
|
32
|
+
const eff = JSON.stringify(st.body?.data?.effective ?? {})
|
|
33
|
+
ok('idd token 已配置', /plugins\.idd-closedloop-bridge\.token":"idd_/.test(eff))
|
|
34
|
+
ok('rag token 已配置', /plugins\.rag-bridge\.token":"sk-/.test(eff))
|
|
35
|
+
|
|
36
|
+
// ④ 最小调用:经验检索(只读、轻量、需鉴权链全通)
|
|
37
|
+
const WORKER = '80dc9b41-6ae3-4dce-a185-21537f0ad7c7'
|
|
38
|
+
const inv = async (tool, args) => {
|
|
39
|
+
const r = await fetch(B + '/api/workshop/agent-tools/invoke', { method: 'POST', headers: { ...H, 'content-type': 'application/json' }, body: JSON.stringify({ agentId: WORKER, tool, args }) })
|
|
40
|
+
return (await r.json())?.data?.result?.text ?? ''
|
|
41
|
+
}
|
|
42
|
+
const rec = await inv('experience_recommend', { anomalous_params: [{ parameter: 'smoke_probe', direction: 'high' }] })
|
|
43
|
+
ok('IDD experience_recommend 可达', !rec.includes('401') && !rec.includes('缺少认证'), rec.slice(0, 60))
|
|
44
|
+
|
|
45
|
+
console.log(`\n=== IDD×KB 集成冒烟: ${pass} 通过 / ${fail} 失败 ===`)
|
|
46
|
+
process.exit(fail > 0 ? 1 : 0)
|