agentworkshop 0.8.6 → 0.8.8
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.en.json +302 -174
- package/.AgentWorkShop/prompts/host-tools.json +4109 -4080
- package/.AgentWorkShop/prompts/lead-supervise.md +6 -0
- package/.AgentWorkShop/prompts/mode-goal.md +3 -3
- package/.output/.AgentWorkShop/prompts/host-tools.en.json +302 -174
- package/.output/.AgentWorkShop/prompts/host-tools.json +4109 -4080
- package/.output/.AgentWorkShop/prompts/lead-supervise.md +6 -0
- package/.output/.AgentWorkShop/prompts/mode-goal.md +3 -3
- package/.output/.AgentWorkShop/schema.json +171 -152
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/11Nifltq2.js +16 -0
- package/.output/public/_nuxt/{o8sYG6xx2.js → B37d6f-P2.js} +1 -1
- package/.output/public/_nuxt/{DtnsTW7e.js → B8vwpJxO.js} +1 -1
- package/.output/public/_nuxt/{BiXqyYNw2.js → BEbg8OxK2.js} +1 -1
- package/.output/public/_nuxt/{dcjPjLPI.js → BFUO7wT0.js} +1 -1
- package/.output/public/_nuxt/{Rb4o4o-82.js → BclHgAY62.js} +1 -1
- package/.output/public/_nuxt/{CdvMP3lv.js → BkZomIrQ.js} +1 -1
- package/.output/public/_nuxt/{D1eVi1zr.js → BwQJEuBn.js} +1 -1
- package/.output/public/_nuxt/{DMFwLxfu.js → C-wrWG5m.js} +1 -1
- package/.output/public/_nuxt/{COfo_Bg3.js → C0I4h6do.js} +1 -1
- package/.output/public/_nuxt/{BA2lmfW4.js → C0wjQa6_.js} +1 -1
- package/.output/public/_nuxt/{Dr1FVeQG2.js → C5x3IQz42.js} +1 -1
- package/.output/public/_nuxt/{BlOm8JIs2.js → C7BcCB7C2.js} +1 -1
- package/.output/public/_nuxt/{BwOK42JQ.js → CBpkE3Aa.js} +1 -1
- package/.output/public/_nuxt/{be-4wyTo.js → CEOSV8kw.js} +1 -1
- package/.output/public/_nuxt/{BuLoPmcf.js → CHpYSwnV.js} +1 -1
- package/.output/public/_nuxt/{EMbqTHfT.js → CYLe9LKr.js} +1 -1
- package/.output/public/_nuxt/CZgxZE_w2.js +1 -0
- package/.output/public/_nuxt/{DDXOfmo2.js → Cdi9qfTr.js} +5 -5
- package/.output/public/_nuxt/{hyLdZsOd2.js → CfE35xQa2.js} +1 -1
- package/.output/public/_nuxt/{azOGy_tU2.js → Cgym6fLd2.js} +1 -1
- package/.output/public/_nuxt/CjhzuymI.js +2 -0
- package/.output/public/_nuxt/{DC8sMA36.js → CoAJnzi9.js} +1 -1
- package/.output/public/_nuxt/{CooauJ7D.js → CuHnwZbm.js} +1 -1
- package/.output/public/_nuxt/{Tf6SJSDj.js → CwHhmA3N.js} +1 -1
- package/.output/public/_nuxt/{DzU3zEKX.js → D1Ljnzu-.js} +1 -1
- package/.output/public/_nuxt/{DoprKJ5a2.js → D9saExk92.js} +1 -1
- package/.output/public/_nuxt/{D6PUmBb0.js → DDLi49qE.js} +1 -1
- package/.output/public/_nuxt/{BoXKUOiN2.js → DNlwacP72.js} +1 -1
- package/.output/public/_nuxt/{ZzOyoXex2.js → DPIImHuY2.js} +1 -1
- package/.output/public/_nuxt/{CY2NkFvI.js → DW6X-3XT.js} +1 -1
- package/.output/public/_nuxt/{HJKu4eEV2.js → DZc-zU-H2.js} +1 -1
- package/.output/public/_nuxt/{C1RMfPoB2.js → Df35i2Tg2.js} +1 -1
- package/.output/public/_nuxt/DvGgUSuN2.js +2 -0
- package/.output/public/_nuxt/{EgO70wrE.js → DvfiRGS-.js} +1 -1
- package/.output/public/_nuxt/{C_4mzQ5X.js → DzPypczG.js} +1 -1
- package/.output/public/_nuxt/{BDXQqSkl2.js → FQK98hkN2.js} +1 -1
- package/.output/public/_nuxt/{7op-BMk82.js → Lq_0yoit2.js} +1 -1
- package/.output/public/_nuxt/{K5Xen0wZ2.js → MJD65-MH2.js} +1 -1
- package/.output/public/_nuxt/{TownView.CC3t-Dte.css → TownView.B_8ctigh.css} +1 -1
- package/.output/public/_nuxt/{h-Fn7pRD.js → WZrTmJqL.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/1231252d-2864-43c0-83b2-4e70d3b86dea.json +1 -0
- package/.output/public/_nuxt/{entry.D6nBdXet.css → entry.Buc3k7Ha.css} +1 -1
- package/.output/public/_nuxt/{DDHh85c42.js → gfKPQ5o72.js} +1 -1
- package/.output/public/_nuxt/logs.DlG85QRw.css +1 -0
- package/.output/server/chunks/_/access.mjs +4 -2
- package/.output/server/chunks/_/access.mjs.map +1 -1
- package/.output/server/chunks/_/binding-authz.mjs +4 -1
- package/.output/server/chunks/_/binding-authz.mjs.map +1 -1
- package/.output/server/chunks/_/catalog-view.mjs +1 -1
- package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
- package/.output/server/chunks/_/data-export.mjs +12 -12
- package/.output/server/chunks/_/data-export.mjs.map +1 -1
- package/.output/server/chunks/_/data-query.mjs +3 -3
- package/.output/server/chunks/_/eda-run.repo.mjs +5 -3
- package/.output/server/chunks/_/eda-run.repo.mjs.map +1 -1
- package/.output/server/chunks/_/entity.mjs +1 -1
- package/.output/server/chunks/_/features.mjs +8 -6
- package/.output/server/chunks/_/features.mjs.map +1 -1
- package/.output/server/chunks/_/golden.mjs +3 -3
- package/.output/server/chunks/_/host-bindings.mjs +4 -2
- package/.output/server/chunks/_/host-bindings.mjs.map +1 -1
- package/.output/server/chunks/_/index.mjs +4 -2
- package/.output/server/chunks/_/index.mjs.map +1 -1
- package/.output/server/chunks/_/line-scope.mjs +1 -1
- package/.output/server/chunks/_/mes-console.mjs +1 -1
- package/.output/server/chunks/_/mes-secrets.repo.mjs +4 -2
- package/.output/server/chunks/_/mes-secrets.repo.mjs.map +1 -1
- package/.output/server/chunks/_/nitro.mjs +5219 -2553
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/_/ocap.mjs +1 -1
- package/.output/server/chunks/_/rest-auth.mjs +1 -1
- package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
- package/.output/server/chunks/_/spc.mjs +4 -2
- package/.output/server/chunks/_/spc.mjs.map +1 -1
- package/.output/server/chunks/_/user.schema.mjs +1 -1
- package/.output/server/chunks/build/{TownView-BWMDbosY.mjs → TownView-BqdMFqei.mjs} +53 -46
- package/.output/server/chunks/build/TownView-BqdMFqei.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-BK-t8nRG.mjs → _id_-CsCtnbwe.mjs} +6 -4
- package/.output/server/chunks/build/_id_-CsCtnbwe.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-CZPlPDm4.mjs → _id_-P1W47Gqq.mjs} +15 -13
- package/.output/server/chunks/build/_id_-P1W47Gqq.mjs.map +1 -0
- package/.output/server/chunks/build/{_wsId_-C871SDPN.mjs → _wsId_-DpOErFj6.mjs} +6 -4
- package/.output/server/chunks/build/{_wsId_-C871SDPN.mjs.map → _wsId_-DpOErFj6.mjs.map} +1 -1
- package/.output/server/chunks/build/agents-D7CdEUTv.mjs +3 -1
- package/.output/server/chunks/build/agents-D7CdEUTv.mjs.map +1 -1
- package/.output/server/chunks/build/aml-DRAFRcGU.mjs +3 -1
- package/.output/server/chunks/build/aml-DRAFRcGU.mjs.map +1 -1
- package/.output/server/chunks/build/{analysis-p-dBkjoK.mjs → analysis-J9axLuRt.mjs} +6 -4
- package/.output/server/chunks/build/analysis-J9axLuRt.mjs.map +1 -0
- package/.output/server/chunks/build/api-B4Om0mEc.mjs +3 -1
- package/.output/server/chunks/build/api-B4Om0mEc.mjs.map +1 -1
- package/.output/server/chunks/build/api-BEW_ebY_.mjs +3 -1
- package/.output/server/chunks/build/api-BEW_ebY_.mjs.map +1 -1
- package/.output/server/chunks/build/api-BsAgXWxi.mjs +3 -1
- package/.output/server/chunks/build/api-BsAgXWxi.mjs.map +1 -1
- package/.output/server/chunks/build/board-CJUc032b.mjs +3 -1
- package/.output/server/chunks/build/board-CJUc032b.mjs.map +1 -1
- package/.output/server/chunks/build/channel-templates-ggsBacZF.mjs +3 -1
- package/.output/server/chunks/build/channel-templates-ggsBacZF.mjs.map +1 -1
- package/.output/server/chunks/build/constants-HPHJvjne.mjs +3 -1
- package/.output/server/chunks/build/constants-HPHJvjne.mjs.map +1 -1
- package/.output/server/chunks/build/{daq-CdxcfY_G.mjs → daq-B_dRMDw4.mjs} +8 -6
- package/.output/server/chunks/build/daq-B_dRMDw4.mjs.map +1 -0
- package/.output/server/chunks/build/data-D8uX1dnm.mjs +3 -1
- package/.output/server/chunks/build/data-D8uX1dnm.mjs.map +1 -1
- package/.output/server/chunks/build/{dcw-BlDQtS4q.mjs → dcw-D_HD_H_2.mjs} +11 -9
- package/.output/server/chunks/build/dcw-D_HD_H_2.mjs.map +1 -0
- package/.output/server/chunks/build/default-CNWS6NUw.mjs +3 -1
- package/.output/server/chunks/build/es-Bxu10NJ2.mjs +3 -1
- package/.output/server/chunks/build/es-Bxu10NJ2.mjs.map +1 -1
- package/.output/server/chunks/build/{logs-pRb-TMWa.mjs → logs-BnYSMRXM.mjs} +109 -42
- package/.output/server/chunks/build/logs-BnYSMRXM.mjs.map +1 -0
- package/.output/server/chunks/build/monitor-Cq6hRFeQ.mjs +3 -1
- package/.output/server/chunks/build/ontology-ohICfVVb.mjs +3 -1
- package/.output/server/chunks/build/ontology-ohICfVVb.mjs.map +1 -1
- package/.output/server/chunks/build/{operations-SMQrRAcr.mjs → operations-4zOVhW7o.mjs} +6 -4
- package/.output/server/chunks/build/operations-4zOVhW7o.mjs.map +1 -0
- package/.output/server/chunks/build/optimizer-BlWTsM-W.mjs +3 -1
- package/.output/server/chunks/build/optimizer-BlWTsM-W.mjs.map +1 -1
- package/.output/server/chunks/build/{pages-DsMKUw7i.mjs → pages-DEv4ProW.mjs} +6 -4
- package/.output/server/chunks/build/pages-DEv4ProW.mjs.map +1 -0
- package/.output/server/chunks/build/permissions-DgXQZSyx.mjs +3 -1
- package/.output/server/chunks/build/permissions-DgXQZSyx.mjs.map +1 -1
- package/.output/server/chunks/build/pipeline-CkavMBhk.mjs +3 -1
- package/.output/server/chunks/build/pipeline-CkavMBhk.mjs.map +1 -1
- package/.output/server/chunks/build/plugins-LRjaSEZy.mjs +3 -1
- package/.output/server/chunks/build/plugins-LRjaSEZy.mjs.map +1 -1
- package/.output/server/chunks/build/schedules-Hz2DJUE2.mjs +3 -1
- package/.output/server/chunks/build/settings-DXLJPq7d.mjs +3 -1
- package/.output/server/chunks/build/settings-DXLJPq7d.mjs.map +1 -1
- package/.output/server/chunks/build/studio-hSqH9TYS.mjs +3 -1
- package/.output/server/chunks/build/studio-hSqH9TYS.mjs.map +1 -1
- package/.output/server/chunks/build/teams-BbwYJyzv.mjs +3 -1
- package/.output/server/chunks/build/teams-BbwYJyzv.mjs.map +1 -1
- package/.output/server/chunks/build/tokens-GYaGJ35Z.mjs +3 -1
- package/.output/server/chunks/build/tokens-GYaGJ35Z.mjs.map +1 -1
- package/.output/server/chunks/build/tools-CnYi9cou.mjs +3 -1
- package/.output/server/chunks/build/tools-CnYi9cou.mjs.map +1 -1
- package/.output/server/chunks/build/town-BV-hbwb5.mjs +3 -1
- package/.output/server/chunks/build/town-BV-hbwb5.mjs.map +1 -1
- package/.output/server/chunks/build/{town-B5aoiG98.mjs → town-CcoQKjMj.mjs} +6 -4
- package/.output/server/chunks/build/town-CcoQKjMj.mjs.map +1 -0
- package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
- package/.output/server/chunks/build/types-DWqIeMRP.mjs +3 -1
- package/.output/server/chunks/build/types-DWqIeMRP.mjs.map +1 -1
- package/.output/server/chunks/build/useAgentHarnessOptions-Dq0l0Z6d.mjs +3 -1
- package/.output/server/chunks/build/useAgentHarnessOptions-Dq0l0Z6d.mjs.map +1 -1
- package/.output/server/chunks/build/useAgentTemplateActions-BFOHb5-L.mjs +3 -1
- package/.output/server/chunks/build/useAgentTemplateActions-BFOHb5-L.mjs.map +1 -1
- package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +3 -1
- package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs.map +1 -1
- package/.output/server/chunks/build/useAgentTemplateForm-CuJPOPcK.mjs +3 -1
- package/.output/server/chunks/build/useAgentTemplateForm-CuJPOPcK.mjs.map +1 -1
- package/.output/server/chunks/build/useAgentTemplatesCatalog-B2bIhZLA.mjs +3 -1
- package/.output/server/chunks/build/useAgentTemplatesCatalog-B2bIhZLA.mjs.map +1 -1
- package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs +3 -1
- package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs.map +1 -1
- package/.output/server/chunks/build/useAmlEntities-BJhvdqHJ.mjs +3 -1
- package/.output/server/chunks/build/useAmlEntities-BJhvdqHJ.mjs.map +1 -1
- package/.output/server/chunks/build/useAmlEnv-CDIZ6xTe.mjs +3 -1
- package/.output/server/chunks/build/useAmlEnv-CDIZ6xTe.mjs.map +1 -1
- package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs +3 -1
- package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs.map +1 -1
- package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs +3 -1
- package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs.map +1 -1
- package/.output/server/chunks/build/useAmlJobs-BF9LpwXz.mjs +3 -1
- package/.output/server/chunks/build/useAmlJobs-BF9LpwXz.mjs.map +1 -1
- package/.output/server/chunks/build/useAmlModels-_bweOr3R.mjs +3 -1
- package/.output/server/chunks/build/useAmlModels-_bweOr3R.mjs.map +1 -1
- package/.output/server/chunks/build/useAmlNotes-DQj980iX.mjs +3 -1
- package/.output/server/chunks/build/useAmlNotes-DQj980iX.mjs.map +1 -1
- package/.output/server/chunks/build/useAmlPredict-DHNgDSJn.mjs +3 -1
- package/.output/server/chunks/build/useAmlPredict-DHNgDSJn.mjs.map +1 -1
- package/.output/server/chunks/build/useAnalysisFeed-BrEGV_9x.mjs +3 -1
- package/.output/server/chunks/build/useAnalysisFeed-BrEGV_9x.mjs.map +1 -1
- package/.output/server/chunks/build/useDaqAddNode-D_Rkju0f.mjs +4 -2
- package/.output/server/chunks/build/useDaqAddNode-D_Rkju0f.mjs.map +1 -1
- package/.output/server/chunks/build/useDaqDetailBinding-DCWaLKXT.mjs +3 -1
- package/.output/server/chunks/build/useDaqDetailBinding-DCWaLKXT.mjs.map +1 -1
- package/.output/server/chunks/build/useDaqDetailFrames-BOIcOJRB.mjs +3 -1
- package/.output/server/chunks/build/useDaqDetailFrames-BOIcOJRB.mjs.map +1 -1
- package/.output/server/chunks/build/useDaqDetailHistory-D6WulPVs.mjs +3 -1
- package/.output/server/chunks/build/useDaqDetailHistory-D6WulPVs.mjs.map +1 -1
- package/.output/server/chunks/build/{useDaqDetailNode-DeOsDxK5.mjs → useDaqDetailNode-BGMRUIXN.mjs} +6 -4
- package/.output/server/chunks/build/useDaqDetailNode-BGMRUIXN.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqDetailParams-Cm9a9r5G.mjs +4 -2
- package/.output/server/chunks/build/useDaqDetailParams-Cm9a9r5G.mjs.map +1 -1
- package/.output/server/chunks/build/{useDaqFilters-CctmO03p.mjs → useDaqFilters-zAAVlzJQ.mjs} +6 -4
- package/.output/server/chunks/build/useDaqFilters-zAAVlzJQ.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +3 -1
- package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs.map +1 -1
- package/.output/server/chunks/build/{useDaqOptimizations-CmX_dpBc.mjs → useDaqOptimizations-BE_9Z2s_.mjs} +5 -3
- package/.output/server/chunks/build/useDaqOptimizations-BE_9Z2s_.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqStream-B9ZBVQrI.mjs +1 -1
- package/.output/server/chunks/build/useDaqTemplates-CK37sMfi.mjs +4 -2
- package/.output/server/chunks/build/useDaqTemplates-CK37sMfi.mjs.map +1 -1
- package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs +3 -1
- package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs.map +1 -1
- package/.output/server/chunks/build/{useDashboardData-NJ7rKxhx.mjs → useDashboardData-Cw8lrPo5.mjs} +5 -3
- package/.output/server/chunks/build/useDashboardData-Cw8lrPo5.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwAddNode-DACVcEHs.mjs → useDcwAddNode-KnocMk1m.mjs} +6 -4
- package/.output/server/chunks/build/useDcwAddNode-KnocMk1m.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwCards-SaiImIYQ.mjs → useDcwCards-C53IiOcg.mjs} +5 -3
- package/.output/server/chunks/build/useDcwCards-C53IiOcg.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwDetailScope-DLOklSMO.mjs → useDcwDetailScope-D6qXrfZu.mjs} +5 -3
- package/.output/server/chunks/build/useDcwDetailScope-D6qXrfZu.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwDetailTemplates-ClmIdZ40.mjs → useDcwDetailTemplates-DPOXu1o_.mjs} +5 -3
- package/.output/server/chunks/build/useDcwDetailTemplates-DPOXu1o_.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwFilter-CPMyCltx.mjs → useDcwFilter-DNQ6Ivwd.mjs} +5 -3
- package/.output/server/chunks/build/useDcwFilter-DNQ6Ivwd.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwLedger-0ie-0WTc.mjs → useDcwLedger-BhbUBCbi.mjs} +5 -3
- package/.output/server/chunks/build/useDcwLedger-BhbUBCbi.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwLineMutations-DNxo66yM.mjs → useDcwLineMutations-KA7VnggO.mjs} +5 -3
- package/.output/server/chunks/build/useDcwLineMutations-KA7VnggO.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwLineRun-CHskwscT.mjs → useDcwLineRun-3zx_UCxi.mjs} +5 -3
- package/.output/server/chunks/build/useDcwLineRun-3zx_UCxi.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwParamApprovals-DtScUc-W.mjs → useDcwParamApprovals-DzyY6Tmi.mjs} +5 -3
- package/.output/server/chunks/build/useDcwParamApprovals-DzyY6Tmi.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwProducts-BMaxzLu6.mjs → useDcwProducts-B05ymt3k.mjs} +5 -3
- package/.output/server/chunks/build/useDcwProducts-B05ymt3k.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwQuery-TVU3Eo0M.mjs → useDcwQuery-vWpgpSmJ.mjs} +5 -3
- package/.output/server/chunks/build/useDcwQuery-vWpgpSmJ.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwQuickActions-BREFmR9T.mjs → useDcwQuickActions-DUkLy34S.mjs} +5 -3
- package/.output/server/chunks/build/useDcwQuickActions-DUkLy34S.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwRecipes-Bc9urA1N.mjs → useDcwRecipes-BAb4Yg3d.mjs} +5 -3
- package/.output/server/chunks/build/useDcwRecipes-BAb4Yg3d.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwStream-Dir5ufAU.mjs → useDcwStream-RN3U_Jsh.mjs} +7 -4
- package/.output/server/chunks/build/useDcwStream-RN3U_Jsh.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwTemplates-BzagZztS.mjs → useDcwTemplates-D2aoejps.mjs} +5 -3
- package/.output/server/chunks/build/useDcwTemplates-D2aoejps.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwWrites-BROwTLCn.mjs → useDcwWrites-7w8txksD.mjs} +5 -3
- package/.output/server/chunks/build/useDcwWrites-7w8txksD.mjs.map +1 -0
- package/.output/server/chunks/build/useExpConfirmations-BM626N4p.mjs +3 -1
- package/.output/server/chunks/build/useExpConfirmations-BM626N4p.mjs.map +1 -1
- package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs +3 -1
- package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs.map +1 -1
- package/.output/server/chunks/build/{useLogsManual-cVBZQ_Mt.mjs → useLogsManual-D0dvgCsP.mjs} +5 -2
- package/.output/server/chunks/build/useLogsManual-D0dvgCsP.mjs.map +1 -0
- package/.output/server/chunks/build/useLogsQuery-D7hrJ3yn.mjs +3 -1
- package/.output/server/chunks/build/useLogsQuery-D7hrJ3yn.mjs.map +1 -1
- package/.output/server/chunks/build/{useLogsScope-aaPQeTRm.mjs → useLogsScope-DEUyq-My.mjs} +5 -3
- package/.output/server/chunks/build/useLogsScope-DEUyq-My.mjs.map +1 -0
- package/.output/server/chunks/build/useMonitorColumns-vVnt3r5Q.mjs +3 -1
- package/.output/server/chunks/build/useMonitorColumns-vVnt3r5Q.mjs.map +1 -1
- package/.output/server/chunks/build/useMonitorData-DIkiLr_h.mjs +3 -1
- package/.output/server/chunks/build/useMonitorData-DIkiLr_h.mjs.map +1 -1
- package/.output/server/chunks/build/useMonitorFormat-CyURtH8N.mjs +3 -1
- package/.output/server/chunks/build/useMonitorFormat-CyURtH8N.mjs.map +1 -1
- package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +3 -1
- package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs.map +1 -1
- package/.output/server/chunks/build/useOperationsFeed-Ci4mZAn_.mjs +3 -1
- package/.output/server/chunks/build/useOperationsFeed-Ci4mZAn_.mjs.map +1 -1
- package/.output/server/chunks/build/useOpsLog-C-M6Eace.mjs.map +1 -1
- package/.output/server/chunks/build/useRecipeDispatchApprovals-BYtiqfeb.mjs +3 -1
- package/.output/server/chunks/build/useRecipeDispatchApprovals-BYtiqfeb.mjs.map +1 -1
- package/.output/server/chunks/build/useTeamActions-BDjU06LP.mjs +3 -1
- package/.output/server/chunks/build/useTeamActions-BDjU06LP.mjs.map +1 -1
- package/.output/server/chunks/build/useTeamAddMemberDialog-J3oFn3FI.mjs +3 -1
- package/.output/server/chunks/build/useTeamAddMemberDialog-J3oFn3FI.mjs.map +1 -1
- package/.output/server/chunks/build/useTeamCreateDialog-fbn4ixYu.mjs +3 -1
- package/.output/server/chunks/build/useTeamCreateDialog-fbn4ixYu.mjs.map +1 -1
- package/.output/server/chunks/build/useTeamDeployDialog-BNezMD2k.mjs +3 -1
- package/.output/server/chunks/build/useTeamDeployDialog-BNezMD2k.mjs.map +1 -1
- package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +3 -1
- package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs.map +1 -1
- package/.output/server/chunks/build/useTeamPluginDialog-BZznrOVe.mjs +3 -1
- package/.output/server/chunks/build/useTeamPluginDialog-BZznrOVe.mjs.map +1 -1
- package/.output/server/chunks/build/useTeamsCatalog-DuZFP3oG.mjs +3 -1
- package/.output/server/chunks/build/useTeamsCatalog-DuZFP3oG.mjs.map +1 -1
- package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +3 -1
- package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs.map +1 -1
- package/.output/server/chunks/build/useTokenCreate-Ctl0YGhL.mjs +3 -1
- package/.output/server/chunks/build/useTokenCreate-Ctl0YGhL.mjs.map +1 -1
- package/.output/server/chunks/build/useTokenRename-Cm3ypSfN.mjs +3 -1
- package/.output/server/chunks/build/useTokenRename-Cm3ypSfN.mjs.map +1 -1
- package/.output/server/chunks/build/useTokenReveal-CeoWL5Mt.mjs +3 -1
- package/.output/server/chunks/build/useTokenReveal-CeoWL5Mt.mjs.map +1 -1
- package/.output/server/chunks/build/useTokensList-CNIzON3u.mjs +3 -1
- package/.output/server/chunks/build/useTokensList-CNIzON3u.mjs.map +1 -1
- package/.output/server/chunks/build/useWorkbenchAuth-CY-bVFMu.mjs +3 -1
- package/.output/server/chunks/build/useWorkbenchAuth-CY-bVFMu.mjs.map +1 -1
- package/.output/server/chunks/build/useWorkbenchWorkspaces-DhZQFss9.mjs +3 -1
- package/.output/server/chunks/build/useWorkbenchWorkspaces-DhZQFss9.mjs.map +1 -1
- package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs +3 -1
- package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs.map +1 -1
- package/.output/server/chunks/build/useWorkspaceChannels-CPFepxTN.mjs +3 -1
- package/.output/server/chunks/build/useWorkspaceChannels-CPFepxTN.mjs.map +1 -1
- package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs +3 -1
- package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs.map +1 -1
- package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs +3 -1
- package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs.map +1 -1
- package/.output/server/chunks/build/users-DjiVC_tS.mjs +3 -1
- package/.output/server/chunks/build/users-DjiVC_tS.mjs.map +1 -1
- package/.output/server/chunks/build/workshop-1gKeDASV.mjs +3 -1
- package/.output/server/chunks/build/workshop-1gKeDASV.mjs.map +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +3 -1
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +3 -1
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +3 -1
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/mcp/workshop.mjs +4 -2
- package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
- package/.output/server/chunks/routes/api/metrics.mjs +3 -1
- package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +3 -1
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +3 -1
- package/.output/server/chunks/routes/api/plugins/i18n.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +3 -1
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/backup/list.get.mjs +3 -1
- 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 +5 -3
- 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 +3 -1
- package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +3 -1
- 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 +3 -1
- package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.get.mjs +3 -1
- package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.post.mjs +3 -1
- package/.output/server/chunks/routes/api/system/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index2.get.mjs +3 -1
- package/.output/server/chunks/routes/api/system/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +3 -1
- package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +3 -1
- package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/monitor.get.mjs +3 -1
- package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs +3 -1
- 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 +3 -1
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/timezone.get.mjs +3 -1
- package/.output/server/chunks/routes/api/system/timezone.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.put.mjs +3 -1
- package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/change-password.post.mjs +3 -1
- package/.output/server/chunks/routes/api/users/change-password.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/index.get.mjs +3 -1
- package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/index.post.mjs +3 -1
- package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/login.post.mjs +5 -4
- package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/logout.post.mjs +3 -1
- package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/me.get.mjs +3 -1
- package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/register.post.mjs +3 -1
- package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/setup-status.get.mjs +3 -1
- package/.output/server/chunks/routes/api/users/setup-status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +3 -1
- package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +12 -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 +3 -1
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +3 -1
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +22 -1
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +3 -1
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +3 -1
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/analysis/_id_.delete.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/analysis/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/analysis/_id_.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/analysis/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/analysis/_id_.patch.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/analysis/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +3 -1
- 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 +3 -1
- package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +3 -1
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +6 -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 +3 -1
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/caller.mjs +3 -1
- 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 +5 -3
- 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 +3 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +3 -1
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +3 -1
- 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 +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +3 -1
- 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 +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/rotate-token.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/rotate-token.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +3 -1
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/execution-mode.patch.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/execution-mode.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.put.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +3 -1
- 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 +6 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index7.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index7.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs +4 -2
- 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 +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs +4 -2
- 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 +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/tools/reset.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/tools/reset.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +21 -4
- 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 +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +10 -8
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs +15 -3
- package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +3 -1
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/export/_id_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/daq/export/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/export-file.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/daq/export-file.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/index.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/daq/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/index2.post.mjs +6 -4
- package/.output/server/chunks/routes/api/workshop/daq/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/query.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/daq/query.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/storage/retention.put.mjs +68 -0
- package/.output/server/chunks/routes/api/workshop/daq/storage/retention.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/storage/rollup.post.mjs +45 -0
- package/.output/server/chunks/routes/api/workshop/daq/storage/rollup.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/storage.get.mjs +36 -0
- package/.output/server/chunks/routes/api/workshop/daq/storage.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +6 -4
- 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 +6 -4
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +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 +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +4 -2
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index7.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +3 -1
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +4 -2
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +3 -1
- 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 +18 -4
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +6 -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 +4 -2
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +6 -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 +6 -3
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/commonality.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/eda/commonality.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/features/jobs.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/features/jobs.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/features/run.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/features/run.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/golden/_id_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/golden/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/golden/deviation.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/golden/deviation.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/golden/single.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/golden/single.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index2.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index2.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index3.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index3.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index4.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index4.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index5.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index5.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index5.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index6.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/eda/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index6.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/eda/index6.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index7.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index7.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index7.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index7.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index8.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index8.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/index8.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/index8.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/runs/_id/labels.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/runs/_id/labels.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/runs.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/runs.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/spc/_id/recompute.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/spc/_id/recompute.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/vm/predict.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/eda/vm/predict.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +4 -2
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.put.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index10.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index10.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index11.get.mjs +3 -1
- 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 +3 -1
- package/.output/server/chunks/routes/api/workshop/index13.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index14.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index14.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index15.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index15.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index16.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index16.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs +25 -10
- 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 +3 -1
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs +231 -5
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs +23 -7
- 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 +3 -1
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index9.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mes/datasets.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/mes/datasets.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mes/index.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/mes/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mes/index.put.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/mes/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mes/points.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/mes/points.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mes/preview.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/mes/preview.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mes/secrets/_ref_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/mes/secrets/_ref_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/autofix.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/autofix.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/compile.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/compile.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/evidence.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/evidence.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/publish.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/publish.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval-decision.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval-decision.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/transition.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/transition.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/subgraph.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/subgraph.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/validate.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/validate.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId_.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/export/_ontologyId_.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/export/_ontologyId_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/index.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/index.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/scene.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/scene.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/traces/_ontologyId_.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/traces/_ontologyId_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId/compare.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId/compare.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId_.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/bindings/_id_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/optimization/bindings/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/capabilities.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/optimization/capabilities.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/index.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/optimization/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/index.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/optimization/index.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/index2.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/optimization/index2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/profiles/_id/publish.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/optimization/profiles/_id/publish.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/crosscheck.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/crosscheck.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/dispatch.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/dispatch.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/solve.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/optimization/solve.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/process-model/datasets.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/process-model/datasets.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/process-model/eligibility.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/process-model/eligibility.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/process-model/experiments.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/process-model/experiments.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/process-model/index.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/process-model/index.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/process-model/specs/_id/publish.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/process-model/specs/_id/publish.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/process-model/train.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/process-model/train.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/runtime.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +3 -1
- 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 +3 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +3 -1
- 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 +3 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/reopen.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/reopen.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +3 -1
- 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 +3 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/supersede.post.mjs +43 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/supersede.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/tasks.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +3 -1
- 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 +4 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tools/_name_.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/tools/_name_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tools/sync.post.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/tools/sync.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/users/me.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +3 -1
- 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 +5 -3
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +2 -2
- package/.output/server/chunks/virtual/entry.mjs +50 -32
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/index.mjs +3 -1
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/node_modules/pg/esm/index.mjs +20 -0
- package/.output/server/node_modules/pg/lib/client.js +828 -0
- package/.output/server/node_modules/pg/lib/connection-parameters.js +184 -0
- package/.output/server/node_modules/pg/lib/connection.js +243 -0
- package/.output/server/node_modules/pg/lib/crypto/cert-signatures.js +122 -0
- package/.output/server/node_modules/pg/lib/crypto/sasl.js +262 -0
- package/.output/server/node_modules/pg/lib/crypto/utils.js +89 -0
- package/.output/server/node_modules/pg/lib/defaults.js +94 -0
- package/.output/server/node_modules/pg/lib/index.js +73 -0
- package/.output/server/node_modules/pg/lib/native/client.js +420 -0
- package/.output/server/node_modules/pg/lib/native/index.js +2 -0
- package/.output/server/node_modules/pg/lib/native/query.js +165 -0
- package/.output/server/node_modules/pg/lib/query.js +259 -0
- package/.output/server/node_modules/pg/lib/result.js +109 -0
- package/.output/server/node_modules/pg/lib/stream.js +83 -0
- package/.output/server/node_modules/pg/lib/type-overrides.js +35 -0
- package/.output/server/node_modules/pg/lib/utils.js +207 -0
- package/.output/server/node_modules/pg/package.json +76 -0
- package/.output/server/node_modules/pg-cloudflare/dist/empty.js +6 -0
- package/.output/server/node_modules/pg-cloudflare/package.json +39 -0
- package/.output/server/node_modules/pg-connection-string/index.js +237 -0
- package/.output/server/node_modules/pg-connection-string/package.json +52 -0
- package/.output/server/node_modules/pg-int8/index.js +100 -0
- package/.output/server/node_modules/pg-int8/package.json +24 -0
- package/.output/server/node_modules/pg-pool/index.js +517 -0
- package/.output/server/node_modules/pg-pool/package.json +51 -0
- package/.output/server/node_modules/pg-protocol/dist/buffer-reader.js +55 -0
- package/.output/server/node_modules/pg-protocol/dist/buffer-writer.js +104 -0
- package/.output/server/node_modules/pg-protocol/dist/index.js +15 -0
- package/.output/server/node_modules/pg-protocol/dist/messages.js +160 -0
- package/.output/server/node_modules/pg-protocol/dist/parser.js +325 -0
- package/.output/server/node_modules/pg-protocol/dist/serializer.js +196 -0
- package/.output/server/node_modules/pg-protocol/package.json +44 -0
- package/.output/server/node_modules/pg-types/index.js +47 -0
- package/.output/server/node_modules/pg-types/lib/arrayParser.js +11 -0
- package/.output/server/node_modules/pg-types/lib/binaryParsers.js +257 -0
- package/.output/server/node_modules/pg-types/lib/builtins.js +73 -0
- package/.output/server/node_modules/pg-types/lib/textParsers.js +215 -0
- package/.output/server/node_modules/pg-types/package.json +42 -0
- package/.output/server/node_modules/pgpass/lib/helper.js +233 -0
- package/.output/server/node_modules/pgpass/lib/index.js +23 -0
- package/.output/server/node_modules/pgpass/package.json +41 -0
- package/.output/server/node_modules/postgres-array/index.js +97 -0
- package/.output/server/node_modules/postgres-array/package.json +35 -0
- package/.output/server/node_modules/postgres-bytea/index.js +33 -0
- package/.output/server/node_modules/postgres-bytea/package.json +34 -0
- package/.output/server/node_modules/postgres-date/index.js +116 -0
- package/.output/server/node_modules/postgres-date/package.json +33 -0
- package/.output/server/node_modules/postgres-interval/index.js +126 -0
- package/.output/server/node_modules/postgres-interval/package.json +35 -0
- package/.output/server/node_modules/split2/index.js +141 -0
- package/.output/server/node_modules/split2/package.json +39 -0
- package/.output/server/node_modules/xtend/mutable.js +17 -0
- package/.output/server/node_modules/xtend/package.json +55 -0
- package/.output/server/package.json +15 -1
- package/README-zh.md +255 -992
- package/README.md +254 -1023
- package/app/components/logs/LogsEventTable.vue +36 -3
- package/app/components/logs/LogsManualModal.vue +23 -1
- package/app/components/logs/LogsPageHead.vue +56 -5
- package/app/components/workshop/town/components/TownAgentBindings.vue +16 -4
- package/app/components/workshop/town/components/TownAgentInspector.vue +1 -1
- package/app/components/workshop/town/components/TownRightRail.vue +1 -1
- package/app/composables/workshop/town/town-view-types.ts +2 -2
- package/app/composables/workshop/town/useTownAgentBindings.ts +3 -2
- package/app/composables/workshop/town/useTownRailData.ts +1 -1
- package/app/composables/workshop/useDcwStream.ts +5 -2
- package/app/composables/workshop/useOpsLog.ts +191 -191
- package/app/config/schema.ts +15 -1
- package/app/pages/logs/composables/useLogsManual.ts +71 -68
- package/app/pages/logs/index.vue +34 -1
- package/config.yml +212 -193
- package/docker-compose.yml +69 -63
- package/docs/cli.en.md +447 -447
- package/docs/cli.md +412 -412
- package/docs/plugins.en.md +641 -641
- package/docs/plugins.md +630 -630
- package/docs/sdk.en.md +964 -964
- package/docs/sdk.md +900 -900
- package/i18n/dicts/townView.json +3 -1
- package/i18n/locales/en.ts +3371 -3362
- package/i18n/locales/zh-CN.ts +3370 -3361
- package/mcp/aw-mcp-server.mjs +1 -1
- package/package.json +189 -187
- package/scripts/_audit/kill-acceptance-strays.mjs +47 -0
- package/scripts/_audit/proto-doc-broker-20261031.mjs +11 -0
- package/scripts/_audit/proto-doc-device-20261031.mjs +53 -0
- package/scripts/_audit/proto-doc-mqtt-20261031.mjs +32 -0
- package/scripts/_audit/run-full-acceptance-20261030.sh +82 -0
- package/scripts/api-live-e2e.mjs +91 -32
- package/scripts/e2e-agentteam-goal-closure.mjs +496 -0
- package/scripts/e2e-analysis-ledger.mjs +202 -0
- package/scripts/e2e-binding-modes-real.mjs +442 -0
- package/scripts/e2e-business-loop-real.mjs +391 -0
- package/scripts/e2e-core-bridges-matrix.mjs +303 -0
- package/scripts/e2e-dcw-halfopen-resilience.mjs +140 -0
- package/scripts/e2e-error-handling.mjs +190 -0
- package/scripts/e2e-golive-matrix.mjs +515 -0
- package/scripts/e2e-idd-results-ui.mjs +182 -175
- package/scripts/e2e-mes-mirror-real.mjs +427 -0
- package/scripts/e2e-model-loop-live.mjs +90 -54
- package/scripts/e2e-node-binding-3mode-real.mjs +110 -15
- package/scripts/e2e-node-binding-authz.mjs +41 -1
- package/scripts/e2e-optimizer-live.mjs +4 -0
- package/scripts/e2e-paper-paired-route.mjs +791 -0
- package/scripts/e2e-physical-effect-real.mjs +572 -0
- package/scripts/e2e-real-channel-mission.mjs +543 -0
- package/scripts/e2e-security-b0.mjs +280 -0
- package/scripts/e2e-security-b1.mjs +165 -0
- package/scripts/e2e-security-b2b5.mjs +280 -0
- package/scripts/live-demo-seed.mjs +157 -0
- package/scripts/onboarding/preflight.mjs +231 -0
- package/scripts/onboarding/provision-line.mjs +11 -1
- package/scripts/onboarding/verify-mirror.mjs +145 -0
- package/scripts/start.mjs +279 -250
- package/sdk/context.mjs +34 -1
- package/server/api/users/login.post.ts +3 -2
- package/server/api/users/register.post.ts +22 -21
- package/server/api/workshop/a2a/[agentId]/card/index.get.ts +86 -75
- package/server/api/workshop/agent-tools/approvals/index.get.ts +3 -1
- package/server/api/workshop/agent-tools/bindings/index.post.ts +38 -16
- package/server/api/workshop/analysis/index.post.ts +20 -3
- package/server/api/workshop/assets/devices/index.post.ts +55 -53
- package/server/api/workshop/channels/[id]/tasks/index.post.ts +2 -0
- package/server/api/workshop/channels/[id]/twin-profile.patch.ts +20 -1
- package/server/api/workshop/daq/[id]/ingest.post.ts +25 -1
- package/server/api/workshop/daq/index.post.ts +45 -1
- package/server/api/workshop/daq/storage/retention.put.ts +66 -0
- package/server/api/workshop/daq/storage/rollup.post.ts +28 -0
- package/server/api/workshop/daq/storage.get.ts +17 -0
- package/server/api/workshop/daq/templates/[key].delete.ts +2 -2
- package/server/api/workshop/daq/templates/[key].patch.ts +19 -19
- package/server/api/workshop/daq/templates/index.post.ts +18 -18
- package/server/api/workshop/dcw/[id]/write.post.ts +28 -27
- package/server/api/workshop/dcw/recipes/[id].delete.ts +21 -2
- package/server/api/workshop/device-twins/[id]/control.post.ts +23 -21
- package/server/api/workshop/device-twins/[id].delete.ts +3 -1
- package/server/api/workshop/device-twins/[id].patch.ts +31 -29
- package/server/api/workshop/ops-logs/index.post.ts +92 -69
- package/server/api/workshop/tasks/[id]/supersede.post.ts +28 -0
- package/server/middleware/00-security-headers.ts +8 -1
- package/server/middleware/01-rate-guard.ts +34 -6
- package/server/plugins/00-daq-credentials.ts +33 -0
- package/server/plugins/01-instance-guard.ts +49 -13
- package/server/plugins/aw-plugins.ts +4 -1
- package/server/plugins/backup.ts +268 -257
- package/server/plugins/daq.ts +40 -1
- package/server/plugins/dev-stability-guard.ts +4 -0
- package/server/plugins/error-ledger.ts +21 -0
- package/server/repositories/user.repository.ts +520 -507
- package/server/schemas/user.schema.ts +74 -74
- package/server/services/system-config/mutate.ts +9 -2
- package/server/services/system-config/secrets.ts +50 -0
- package/server/services/system-config/snapshot.ts +13 -2
- package/server/services/user.service.ts +277 -258
- package/server/services/workshop/agents/adapters/line-spawn.ts +148 -144
- package/server/services/workshop/agents/adapters/omp-rpc-client/start.ts +5 -1
- package/server/services/workshop/agents/agent-interface.ts +2 -0
- package/server/services/workshop/agents/base-agent.ts +3 -3
- package/server/services/workshop/agents/binding-authz.ts +7 -1
- package/server/services/workshop/agents/governance-harness-audit.ts +216 -0
- package/server/services/workshop/agents/host-tool-bridge/catalog.ts +1 -0
- package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +428 -410
- package/server/services/workshop/agents/host-tool-bridge/per-agent.ts +17 -3
- package/server/services/workshop/agents/host-tool-bridge/tools/messaging.ts +46 -13
- package/server/services/workshop/agents/host-tool-bridge/tools/progress.ts +48 -6
- package/server/services/workshop/agents/host-tool-bridge/tools/tasks.ts +52 -14
- package/server/services/workshop/agents/host-tool-bridge/tools/team-delegation.ts +22 -1
- package/server/services/workshop/agents/host-tool-bridge/types.ts +1 -1
- package/server/services/workshop/agents/industrial/aml-job-tools.ts +6 -4
- package/server/services/workshop/agents/industrial/bench-approval-only.ts +117 -0
- package/server/services/workshop/agents/industrial/daq-tools.ts +79 -20
- package/server/services/workshop/agents/industrial/dcw-tools.ts +14 -1
- package/server/services/workshop/agents/industrial/fallback-hints.ts +31 -0
- package/server/services/workshop/agents/industrial/manual-approval.ts +2 -2
- package/server/services/workshop/agents/industrial/ops-tools.ts +72 -23
- package/server/services/workshop/agents/industrial/recipe-gate.ts +57 -29
- package/server/services/workshop/agents/industrial/recipe-propose-tools.ts +6 -4
- package/server/services/workshop/agents/industrial/tool-verify.ts +23 -3
- package/server/services/workshop/agents/mock-agent.ts +4 -0
- package/server/services/workshop/agents/node-bindings.repo.ts +8 -6
- package/server/services/workshop/agents/omp-agent/agentteam-audit.ts +147 -0
- package/server/services/workshop/agents/omp-agent/client.ts +1 -1
- package/server/services/workshop/agents/omp-agent/event-mapping.ts +21 -0
- package/server/services/workshop/agents/omp-agent/tools-steer.ts +100 -6
- package/server/services/workshop/agents/tool-approvals.ts +6 -4
- package/server/services/workshop/agents/tool-classes.ts +12 -0
- package/server/services/workshop/aml/dataset-builder.ts +4 -0
- package/server/services/workshop/aml/env-lease.ts +178 -148
- package/server/services/workshop/aml/model-registry.ts +16 -2
- package/server/services/workshop/bench-mode.ts +22 -0
- package/server/services/workshop/daq/alarm-notify.ts +122 -102
- package/server/services/workshop/daq/daq-controller/crud.ts +210 -210
- package/server/services/workshop/daq/daq-controller/driver-probe.ts +68 -67
- package/server/services/workshop/daq/daq-controller/frames.ts +5 -4
- package/server/services/workshop/daq/daq-controller/sweep-alarms.ts +214 -186
- package/server/services/workshop/daq/daq-controller/types.ts +5 -0
- package/server/services/workshop/daq/daq-node.ts +7 -0
- package/server/services/workshop/daq/daq-templates.ts +235 -225
- package/server/services/workshop/daq/drivers/modbus-tcp.ts +27 -16
- package/server/services/workshop/daq/field-group.ts +266 -0
- package/server/services/workshop/daq/infra-credentials.ts +201 -0
- package/server/services/workshop/daq/infra.ts +250 -229
- package/server/services/workshop/daq/ingest-policy.ts +80 -66
- package/server/services/workshop/daq/objectstore/index.ts +88 -88
- package/server/services/workshop/daq/storage/index.ts +157 -4
- package/server/services/workshop/daq/storage/retention.ts +142 -0
- package/server/services/workshop/daq/storage/sqlite.adapter.ts +16 -3
- package/server/services/workshop/daq/storage/timescale-rollup.ts +600 -0
- package/server/services/workshop/daq/storage/timescale.adapter.ts +46 -13
- package/server/services/workshop/daq/storage/tsdb-port.ts +120 -0
- package/server/services/workshop/db/chat-message.repo.ts +28 -0
- package/server/services/workshop/db/database/open.ts +6 -0
- package/server/services/workshop/db/database/rows.ts +2 -0
- package/server/services/workshop/db/database/schema.ts +8 -0
- package/server/services/workshop/db/database/seed.ts +6 -6
- package/server/services/workshop/db/schema.sql +7 -0
- package/server/services/workshop/db/task.repo.ts +8 -3
- package/server/services/workshop/dcw/dcw-controller/actuation.ts +7 -0
- package/server/services/workshop/dcw/dcw-controller/crud.ts +5 -0
- package/server/services/workshop/dcw/dcw-controller/helpers.ts +62 -61
- package/server/services/workshop/dcw/dcw-controller/recipes.ts +14 -8
- package/server/services/workshop/dcw/dcw-controller/state.ts +88 -71
- package/server/services/workshop/dcw/dcw-controller/write-audit.ts +1 -1
- package/server/services/workshop/dcw/dcw-controller/write.ts +225 -212
- package/server/services/workshop/dcw/dcw-node.ts +13 -1
- package/server/services/workshop/dcw/dcw-runtime.ts +2 -1
- package/server/services/workshop/dcw/drivers/mqtt.ts +4 -3
- package/server/services/workshop/dcw/mqtt-payload.ts +64 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/lock.ts +1 -0
- package/server/services/workshop/eda/data-export.ts +275 -274
- package/server/services/workshop/json-store.mjs +143 -137
- package/server/services/workshop/mes/mes-controller.ts +9 -0
- package/server/services/workshop/mes/mes-hook.ts +28 -1
- package/server/services/workshop/net/ssrf.ts +83 -74
- package/server/services/workshop/ops/error-ledger.ts +209 -0
- package/server/services/workshop/optimization/profile-adopt.service.ts +28 -2
- package/server/services/workshop/plugins/host/init.mjs +21 -2
- package/server/services/workshop/plugins/host/reload.mjs +8 -1
- package/server/services/workshop/runtime/agent-runtime/harness-failure.ts +58 -0
- package/server/services/workshop/runtime/agent-runtime/message.ts +37 -2
- package/server/services/workshop/runtime/agent-runtime/state.ts +12 -2
- package/server/services/workshop/runtime/agent-runtime/types.ts +2 -0
- package/server/services/workshop/runtime/channel-runtime.ts +80 -1
- package/server/services/workshop/runtime/embedding-provider.ts +100 -83
- package/server/services/workshop/runtime/execution-mode.ts +8 -0
- package/server/services/workshop/runtime/manager/admin-channel.ts +19 -14
- package/server/services/workshop/runtime/manager/chat.ts +62 -2
- package/server/services/workshop/runtime/manager/contracts.ts +7 -0
- package/server/services/workshop/runtime/manager/helpers.ts +5 -2
- package/server/services/workshop/runtime/manager/runtime-observe.ts +1 -3
- package/server/services/workshop/runtime/manager/runtime-wiring.ts +18 -6
- package/server/services/workshop/runtime/manager/schedules.ts +7 -0
- package/server/services/workshop/runtime/manager/state.ts +16 -2
- package/server/services/workshop/runtime/manager/tasks.ts +34 -1
- package/server/services/workshop/runtime/manager/workspace.ts +1 -0
- package/server/services/workshop/runtime/scheduler-loop/rules.ts +17 -1
- package/server/services/workshop/runtime/scheduler-loop/tick.ts +31 -3
- package/server/services/workshop/runtime/task-engine/create.ts +15 -1
- package/server/services/workshop/runtime/task-engine/helpers.ts +2 -0
- package/server/services/workshop/runtime/task-engine/lifecycle.ts +68 -9
- package/server/services/workshop/settings.ts +35 -1
- package/server/services/workshop/types/task.ts +2 -0
- package/server/utils/asset-auth.ts +15 -0
- package/server/utils/request-ip.ts +29 -0
- package/server/utils/response.ts +3 -6
- package/shared/config/schema.json +171 -152
- package/shared/daq-protocol.ts +8 -0
- package/shared/dcw-protocol/catalog.ts +1 -0
- package/shared/dcw-protocol/closed-loop.ts +2 -0
- package/shared/dcw-protocol/line.ts +4 -1
- package/.output/public/_nuxt/B1SIgyrl.js +0 -1
- package/.output/public/_nuxt/BI9jj13f2.js +0 -2
- package/.output/public/_nuxt/CTGJHZ8X2.js +0 -1
- package/.output/public/_nuxt/DxDqd6T42.js +0 -16
- package/.output/public/_nuxt/builds/meta/593b65bd-cf1d-4b7f-a993-57e939c38f36.json +0 -1
- package/.output/public/_nuxt/logs.BkJPbR_K.css +0 -1
- package/.output/server/chunks/build/TownView-BWMDbosY.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-BK-t8nRG.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-CZPlPDm4.mjs.map +0 -1
- package/.output/server/chunks/build/analysis-p-dBkjoK.mjs.map +0 -1
- package/.output/server/chunks/build/daq-CdxcfY_G.mjs.map +0 -1
- package/.output/server/chunks/build/dcw-BlDQtS4q.mjs.map +0 -1
- package/.output/server/chunks/build/logs-pRb-TMWa.mjs.map +0 -1
- package/.output/server/chunks/build/operations-SMQrRAcr.mjs.map +0 -1
- package/.output/server/chunks/build/pages-DsMKUw7i.mjs.map +0 -1
- package/.output/server/chunks/build/town-B5aoiG98.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqDetailNode-DeOsDxK5.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqFilters-CctmO03p.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqOptimizations-CmX_dpBc.mjs.map +0 -1
- package/.output/server/chunks/build/useDashboardData-NJ7rKxhx.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwAddNode-DACVcEHs.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwCards-SaiImIYQ.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwDetailScope-DLOklSMO.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwDetailTemplates-ClmIdZ40.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwFilter-CPMyCltx.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwLedger-0ie-0WTc.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwLineMutations-DNxo66yM.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwLineRun-CHskwscT.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwParamApprovals-DtScUc-W.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwProducts-BMaxzLu6.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwQuery-TVU3Eo0M.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwQuickActions-BREFmR9T.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwRecipes-Bc9urA1N.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwStream-Dir5ufAU.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwTemplates-BzagZztS.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwWrites-BROwTLCn.mjs.map +0 -1
- package/.output/server/chunks/build/useLogsManual-cVBZQ_Mt.mjs.map +0 -1
- package/.output/server/chunks/build/useLogsScope-aaPQeTRm.mjs.map +0 -1
|
@@ -29,6 +29,8 @@ export interface AgentToolResourceView {
|
|
|
29
29
|
daqLineNodes: Array<{ id: string, name: string, unit: string }>
|
|
30
30
|
/** Agent 显式绑定的数控节点(kind=dcw)= 点位写授权面(2026-10-28 双轨授权) */
|
|
31
31
|
writeNodes: Array<{ id: string, name: string, unit: string }>
|
|
32
|
+
/** 产线配方管理权(kind=line-recipe):该 Agent 可管理全部配方的产线 */
|
|
33
|
+
managedLines: Array<{ id: string, name: string }>
|
|
32
34
|
recipes: Array<{ id: string, name: string, version: number, params: Array<{ nodeId: string, name: string, unit: string }> }>
|
|
33
35
|
mesNodes: Array<{ id: string, name: string, unit: string }>
|
|
34
36
|
}
|
|
@@ -48,7 +50,7 @@ function channelLineOf(agentId: string): string {
|
|
|
48
50
|
|
|
49
51
|
/** 读取 Agent 的绑定面(只读;异常降级为空,绝不影响工具注入) */
|
|
50
52
|
export function agentToolResources(agentId: string): AgentToolResourceView {
|
|
51
|
-
const out: AgentToolResourceView = { daqNodes: [], daqLineNodes: [], writeNodes: [], recipes: [], mesNodes: [] }
|
|
53
|
+
const out: AgentToolResourceView = { daqNodes: [], daqLineNodes: [], writeNodes: [], managedLines: [], recipes: [], mesNodes: [] }
|
|
52
54
|
if (!agentId) return out
|
|
53
55
|
try {
|
|
54
56
|
const bindings = getAgentNodeBindingRepo().byAgent(agentId)
|
|
@@ -70,6 +72,11 @@ export function agentToolResources(agentId: string): AgentToolResourceView {
|
|
|
70
72
|
const n = dcw.byId(b.nodeId)
|
|
71
73
|
if (n) out.writeNodes.push({ id: n.id, name: n.name, unit: n.unit ?? '' })
|
|
72
74
|
}
|
|
75
|
+
else if (b.kind === 'line-recipe') {
|
|
76
|
+
// 产线配方管理权:该线全部配方(含未来新建)可 查看/新建/修改/回退
|
|
77
|
+
const line = dcw.listLines().find(l => l.id === b.nodeId)
|
|
78
|
+
if (line) out.managedLines.push({ id: line.id, name: line.name })
|
|
79
|
+
}
|
|
73
80
|
else if (b.kind === 'recipe') {
|
|
74
81
|
const r = dcw.listRecipes().find(x => x.id === b.nodeId)
|
|
75
82
|
if (!r) continue
|
|
@@ -117,10 +124,11 @@ export function hostToolsForAgent(agentId: string, role: 'lead' | 'worker', chan
|
|
|
117
124
|
// WP6:排序保证同一绑定面确定性输出(折叠/不折叠都稳定)
|
|
118
125
|
const sortedDaq = sortedById(res.daqNodes)
|
|
119
126
|
const sortedWrite = sortedById(res.writeNodes)
|
|
127
|
+
const sortedManaged = sortedById(res.managedLines)
|
|
120
128
|
const sortedRecipes = sortedById(res.recipes)
|
|
121
129
|
const sortedMes = sortedById(res.mesNodes)
|
|
122
130
|
const lineOnlyDaq = sortedById(res.daqLineNodes.filter(n => !sortedDaq.some(x => x.id === n.id)))
|
|
123
|
-
if (sortedDaq.length === 0 && lineOnlyDaq.length === 0 && sortedWrite.length === 0 && sortedRecipes.length === 0 && !bindings.length) return filtered
|
|
131
|
+
if (sortedDaq.length === 0 && lineOnlyDaq.length === 0 && sortedWrite.length === 0 && sortedManaged.length === 0 && sortedRecipes.length === 0 && !bindings.length) return filtered
|
|
124
132
|
const daqParts = [
|
|
125
133
|
sortedDaq.length > 0 ? foldList(tr(locale, `本 Agent 直接绑定的数采节点(仅这些可查):`, `DAQ nodes bound directly to this agent (queryable):`), sortedDaq.map(x => `${x.name}(${x.id}${x.unit ? `,${x.unit}` : ''})`)) : '',
|
|
126
134
|
lineOnlyDaq.length > 0 ? foldList(tr(locale, `频道绑线只读数采节点(可查):`, `Read-only DAQ nodes from the channel line binding:`), lineOnlyDaq.map(x => `${x.name}(${x.id}${x.unit ? `,${x.unit}` : ''})`)) : '',
|
|
@@ -132,6 +140,12 @@ export function hostToolsForAgent(agentId: string, role: 'lead' | 'worker', chan
|
|
|
132
140
|
sortedWrite.map(x => `${x.name}(${x.id}${x.unit ? `,${x.unit}` : ''})`),
|
|
133
141
|
)
|
|
134
142
|
: ''
|
|
143
|
+
const managedLine = sortedManaged.length > 0
|
|
144
|
+
? foldList(
|
|
145
|
+
tr(locale, `\n\n本 Agent 持有的产线配方管理权(可 查看/新建/修改/回退 该线全部配方;下发仍受点位绑定约束:未绑定任何数控节点时默认可对配方全部参数下发,绑了数控节点则只能下发这些点位):`, `\n\nLine recipe-management grants of this agent (view/create/update/rollback ALL recipes on these lines; dispatch still follows point-binding rules: with no DCW bindings at all, all recipe params are dispatchable; with DCW bindings, only those points):`),
|
|
146
|
+
sortedManaged.map(x => `${x.name}(${x.id})`),
|
|
147
|
+
)
|
|
148
|
+
: ''
|
|
135
149
|
const recipeLine = sortedRecipes.length > 0
|
|
136
150
|
? foldList(
|
|
137
151
|
tr(locale, `\n\n本 Agent 已绑定的配方(仅这些可写/下发):`, `\n\nRecipes bound to this agent (writable/dispatchable):`),
|
|
@@ -144,7 +158,7 @@ export function hostToolsForAgent(agentId: string, role: 'lead' | 'worker', chan
|
|
|
144
158
|
return filtered.map((t) => {
|
|
145
159
|
let suffix = ''
|
|
146
160
|
if (DAQ_TOOLS.has(t.name)) suffix = daqLine
|
|
147
|
-
else if (RECIPE_TOOLS.has(t.name)) suffix = `${recipeLine}${writeLine}`
|
|
161
|
+
else if (RECIPE_TOOLS.has(t.name)) suffix = `${recipeLine}${writeLine}${managedLine}`
|
|
148
162
|
else if (MES_TOOLS.has(t.name)) suffix = mesLine
|
|
149
163
|
else if (OPTIMIZER_TOOL_NAMES.has(t.name)) suffix = optimizerLine
|
|
150
164
|
if (!suffix) return t
|
|
@@ -14,15 +14,21 @@ export async function handleSendMessageToAgent(
|
|
|
14
14
|
): Promise<HostToolResult> {
|
|
15
15
|
const toAgentId = args.to_agent_id as string
|
|
16
16
|
const message = args.message as string
|
|
17
|
+
// 2026-10-30 修复:参数完全来自 LLM,缺省/空 message 会把 parts 序列化成 [{}] 静默
|
|
18
|
+
// 送达空消息(白烧对端一个回合,发送方还收到「已发送」)。fail-closed 校验。
|
|
19
|
+
if (!toAgentId || typeof message !== 'string' || !message.trim()) {
|
|
20
|
+
return { text: '缺少 to_agent_id,或 message 为空 —— 空消息不会投递,请给出实际内容', isError: true }
|
|
21
|
+
}
|
|
17
22
|
// 回执自动实时:回复(in_reply_to)默认提升为 immediate——
|
|
18
23
|
// 接收方正等待该结果,realtime 路由会把回复直接注入其运行中的会话
|
|
19
24
|
let priority = (args.priority as string | undefined) ?? 'task'
|
|
20
25
|
const metadata: Record<string, unknown> = {}
|
|
21
26
|
if (args.require_reply === true) metadata['x-aw-require-reply'] = 'true'
|
|
22
27
|
let inReplyTo = args.in_reply_to as string | undefined
|
|
23
|
-
// 自动关联兜底:LLM 省略 in_reply_to
|
|
28
|
+
// 自动关联兜底:LLM 省略 in_reply_to 时,按待回执上下文盖章。
|
|
29
|
+
// 2026-10-30 修复:replyContext 是「发送成功」才消费的票据 —— 原实现先清后发,
|
|
30
|
+
// 发送失败即永久丢失线程关联与 immediate 提升;现在成功才清,失败保留供重试盖章。
|
|
24
31
|
const replyCtx = state.replyContext
|
|
25
|
-
state.replyContext = null
|
|
26
32
|
if (!inReplyTo && replyCtx && replyCtx.fromId === toAgentId) {
|
|
27
33
|
inReplyTo = replyCtx.messageId
|
|
28
34
|
}
|
|
@@ -37,11 +43,19 @@ export async function handleSendMessageToAgent(
|
|
|
37
43
|
metadata['x-aw-thread-root'] = inReplyTo
|
|
38
44
|
}
|
|
39
45
|
metadata['x-aw-msg-priority'] = priority
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
try {
|
|
47
|
+
const sent = await ws.sendMessage({ toAgentId, parts: [{ text: message }], metadata })
|
|
48
|
+
state.replyContext = null
|
|
49
|
+
const triggerNote = inReplyTo
|
|
50
|
+
? `(回复 ${inReplyTo.slice(0, 8)}…,已实时推送给对方)`
|
|
51
|
+
: metadata['x-aw-require-reply'] === 'true' ? '(已要求对方回复)' : ''
|
|
52
|
+
return { text: `消息 ${sent.messageId.slice(0, 8)}… 已发送给 ${toAgentId}(priority=${priority})${triggerNote}` }
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
// 发送失败:保留待回执票据,重试仍可自动盖 in_reply_to
|
|
56
|
+
state.replyContext = replyCtx
|
|
57
|
+
throw err
|
|
58
|
+
}
|
|
45
59
|
}
|
|
46
60
|
|
|
47
61
|
export async function handleSendCrossChannelMessage(args: Record<string, unknown>, ws: AgentWorkspace): Promise<HostToolResult> {
|
|
@@ -202,15 +216,34 @@ export async function handleBroadcastMessage(
|
|
|
202
216
|
ws: AgentWorkspace,
|
|
203
217
|
): Promise<HostToolResult> {
|
|
204
218
|
const message = args.message as string
|
|
219
|
+
// 2026-10-30 修复:与 send_message_to_agent 同口径,空广播不再静默送达全员。
|
|
220
|
+
if (typeof message !== 'string' || !message.trim()) {
|
|
221
|
+
return { text: 'message 为空 —— 广播内容不能为空串', isError: true }
|
|
222
|
+
}
|
|
205
223
|
const priority = (args.priority as string | undefined) ?? 'task'
|
|
206
224
|
const agents = await ws.listAgents()
|
|
207
225
|
const others = agents.filter(a => a.id !== identity.agentId)
|
|
226
|
+
// 2026-10-30 修复:广播是无幂等键的扇出写 —— 原实现中途失败直接抛错,前面成员已
|
|
227
|
+
// 收到而 LLM 见错重试 → 重复投递。改为逐个收集结果,如实回报送达/失败名单,
|
|
228
|
+
// 失败者建议单点补发而非全量重试。
|
|
229
|
+
const delivered: string[] = []
|
|
230
|
+
const failed: string[] = []
|
|
208
231
|
for (const agent of others) {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
232
|
+
try {
|
|
233
|
+
await ws.sendMessage({
|
|
234
|
+
toAgentId: agent.id,
|
|
235
|
+
parts: [{ text: message }],
|
|
236
|
+
metadata: { 'x-aw-msg-priority': priority },
|
|
237
|
+
})
|
|
238
|
+
delivered.push(agent.id)
|
|
239
|
+
}
|
|
240
|
+
catch {
|
|
241
|
+
failed.push(agent.id)
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
const parts = [`广播完成:送达 ${delivered.length}/${others.length} 个 agent(priority=${priority})`]
|
|
245
|
+
if (failed.length) {
|
|
246
|
+
parts.push(`失败 ${failed.length} 个:${failed.map(id => id.slice(0, 8)).join('、')} —— 请用 send_message_to_agent 对失败者单点补发,不要重复全量广播`)
|
|
214
247
|
}
|
|
215
|
-
return { text:
|
|
248
|
+
return { text: parts.join('\n'), isError: delivered.length === 0 && others.length > 0 }
|
|
216
249
|
}
|
|
@@ -11,11 +11,28 @@ export async function handleReportProgress(
|
|
|
11
11
|
args: Record<string, unknown>,
|
|
12
12
|
state: HostToolSessionState,
|
|
13
13
|
ws: AgentWorkspace,
|
|
14
|
+
activeRootTaskId?: string,
|
|
14
15
|
): Promise<HostToolResult> {
|
|
15
|
-
const progress = args.progress as number
|
|
16
16
|
const message = args.message as string | undefined
|
|
17
|
-
|
|
17
|
+
// 2026-10-30 修复:progress 来自异构 LLM(七引擎),字符串化数字/越界值是高频形态;
|
|
18
|
+
// 原样落库会污染看门狗与前端进度显示。钳到 [0,100],非数字显式拒绝。
|
|
19
|
+
const rawProgress = Number(args.progress)
|
|
20
|
+
if (!Number.isFinite(rawProgress)) return { text: 'progress 必须是数字(0-100)', isError: true }
|
|
21
|
+
const progress = Math.max(0, Math.min(100, rawProgress))
|
|
22
|
+
// 2026-10-30 修复:lead 监督回合不经过 workerTurn,session.currentTaskId 恒空;
|
|
23
|
+
// 分发层已验证的 activeRootTaskId(lease.rootId)是唯一可靠上下文,作为兜底回退。
|
|
24
|
+
const taskId = state.currentTaskId ?? activeRootTaskId
|
|
18
25
|
if (!taskId) return { text: '无当前任务上下文', isError: true }
|
|
26
|
+
// 2026-10-30 修复(fail-open):终态任务上 manager 有意丢弃进度写入(活性信号不得写
|
|
27
|
+
// 终态),但旧实现照样回报「进度已上报」—— 迟到回合的 Agent 误信进度已同步,继续在
|
|
28
|
+
// 僵尸任务上作业烧 token。与 complete_task 同口径给诚实回执,推动转向队列下一项。
|
|
29
|
+
const current = await ws.getTask(taskId).catch(() => null)
|
|
30
|
+
if (current && current.state !== 'SUBMITTED' && current.state !== 'ASSIGNED' && current.state !== 'WORKING' && current.state !== 'WAITING') {
|
|
31
|
+
return {
|
|
32
|
+
text: `任务 ${taskId} 已终态(${current.state}),进度写入被忽略 —— 该任务已由平台收口,这不是你的错误,请停止在该任务上作业,转向队列下一项。`,
|
|
33
|
+
isError: true,
|
|
34
|
+
}
|
|
35
|
+
}
|
|
19
36
|
await ws.reportTask({ taskId, progress, message })
|
|
20
37
|
return { text: `进度已上报: ${progress}%${message ? ` (${message})` : ''}` }
|
|
21
38
|
}
|
|
@@ -24,17 +41,24 @@ export async function handleCompleteTask(
|
|
|
24
41
|
args: Record<string, unknown>,
|
|
25
42
|
state: HostToolSessionState,
|
|
26
43
|
ws: AgentWorkspace,
|
|
44
|
+
activeRootTaskId?: string,
|
|
27
45
|
): Promise<HostToolResult> {
|
|
28
46
|
const summary = args.summary as string
|
|
29
47
|
const deliverable = args.deliverable as string | undefined
|
|
30
|
-
|
|
48
|
+
// 2026-10-30 修复:lead 收口链 —— 显式 task_id > 会话态 > 监督租约根任务。
|
|
49
|
+
// 此前 lead 无 task_id 时恒报「无任务 ID」,根任务只能被看门狗取消收口(三次实机复现)。
|
|
50
|
+
const taskId = (args.task_id as string | undefined) ?? state.currentTaskId ?? activeRootTaskId
|
|
31
51
|
if (!taskId) return { text: '无任务 ID', isError: true }
|
|
32
|
-
//
|
|
52
|
+
// 父任务保护:有未收口子任务时拒绝完成(lead 须等 worker 交付;失败/取消分支用 supersede 处置)
|
|
33
53
|
const allTasks = await ws.listTasks()
|
|
34
|
-
const incompleteChildren = allTasks.filter(t => t.parentId === taskId && t.state !== 'COMPLETED')
|
|
54
|
+
const incompleteChildren = allTasks.filter(t => t.parentId === taskId && t.state !== 'COMPLETED' && !t.supersededByTaskId)
|
|
35
55
|
if (incompleteChildren.length > 0) {
|
|
56
|
+
const unresolved = incompleteChildren.filter(t => t.state === 'FAILED' || t.state === 'CANCELED')
|
|
57
|
+
const hint = unresolved.length > 0
|
|
58
|
+
? '失败/取消分支请先派发替代任务并用 supersede 工具(或 REST POST /tasks/:id/supersede)显式处置'
|
|
59
|
+
: '等待子任务交付后再收口'
|
|
36
60
|
return {
|
|
37
|
-
text: `任务 ${taskId} 有 ${incompleteChildren.length}
|
|
61
|
+
text: `任务 ${taskId} 有 ${incompleteChildren.length} 个未收口的子任务: ${incompleteChildren.map(t => `「${t.title}」(${t.state})`).join(', ')}。${hint},再由 Lead 检查交付物并提交验收总结。`,
|
|
38
62
|
isError: true,
|
|
39
63
|
}
|
|
40
64
|
}
|
|
@@ -82,3 +106,21 @@ export async function handleCompleteTask(
|
|
|
82
106
|
return { text: `任务 ${taskId} 已完成(状态已同步为 COMPLETED)。` }
|
|
83
107
|
}
|
|
84
108
|
}
|
|
109
|
+
|
|
110
|
+
/** (lead)显式替代:把 FAILED/CANCELED 子任务分支标记为被替代任务覆盖(整改计划 2026-10-30 F1) */
|
|
111
|
+
export async function handleSupersedeTask(
|
|
112
|
+
args: Record<string, unknown>,
|
|
113
|
+
_state: HostToolSessionState,
|
|
114
|
+
ws: AgentWorkspace,
|
|
115
|
+
): Promise<HostToolResult> {
|
|
116
|
+
const taskId = (args.task_id as string | undefined) ?? (args.taskId as string | undefined)
|
|
117
|
+
const replacementTaskId = (args.replacement_task_id as string | undefined) ?? (args.replacementTaskId as string | undefined)
|
|
118
|
+
const reason = args.reason as string | undefined
|
|
119
|
+
if (!taskId || !replacementTaskId) {
|
|
120
|
+
return { text: '参数缺失:需要 task_id(失败/取消的分支任务)与 replacement_task_id(覆盖其工作的替代任务)', isError: true }
|
|
121
|
+
}
|
|
122
|
+
const superseded = await ws.supersedeTask(taskId, replacementTaskId, reason)
|
|
123
|
+
return {
|
|
124
|
+
text: `分支「${superseded.title}」(${superseded.state})已标记为被 ${replacementTaskId.slice(0, 8)} 替代,不再阻塞父任务收口。失败事实保留在任务记录中;现在可对父任务检查交付并 complete_task。`,
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { AgentWorkspace } from '../../agent-interface'
|
|
7
7
|
import type { WorkspaceTask } from '../../../types/task'
|
|
8
|
+
import { TERMINAL_TASK_STATES } from '../../../types/task'
|
|
8
9
|
import { extractTaskMode } from '../../../runtime/execution-mode'
|
|
9
10
|
import type { HostToolBridgeContext, HostToolResult, HostToolSessionState } from '../types'
|
|
10
11
|
|
|
@@ -27,15 +28,49 @@ export async function handleSubmitTask(args: Record<string, unknown>, state: Hos
|
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
|
|
30
|
-
export async function handleDispatchTask(args: Record<string, unknown>, ws: AgentWorkspace, identity?: HostToolBridgeContext['identity']): Promise<HostToolResult> {
|
|
31
|
+
export async function handleDispatchTask(args: Record<string, unknown>, ws: AgentWorkspace, identity?: HostToolBridgeContext['identity'], activeRootTaskId?: string): Promise<HostToolResult> {
|
|
31
32
|
const assigneeId = args.assignee_id as string
|
|
32
33
|
const title = args.title as string
|
|
33
34
|
const description = args.description as string | undefined
|
|
34
|
-
const
|
|
35
|
+
const rawParentTaskId = args.parent_task_id
|
|
36
|
+
if (rawParentTaskId != null && typeof rawParentTaskId !== 'string') {
|
|
37
|
+
return { text: 'parent_task_id 必须是字符串', isError: true }
|
|
38
|
+
}
|
|
39
|
+
const requestedParentTaskId = typeof rawParentTaskId === 'string' ? rawParentTaskId.trim() || undefined : undefined
|
|
40
|
+
let parentTaskId = requestedParentTaskId
|
|
35
41
|
const routeReason = args.route_reason as string | undefined
|
|
42
|
+
if (activeRootTaskId) {
|
|
43
|
+
if (identity?.role !== 'lead') {
|
|
44
|
+
return { text: '拒绝:当前调用没有 lead 监督任务上下文,不能按活动根任务派发。', isError: true }
|
|
45
|
+
}
|
|
46
|
+
if (requestedParentTaskId && requestedParentTaskId !== activeRootTaskId) {
|
|
47
|
+
return { text: `拒绝:parent_task_id 必须匹配当前活动根任务 ${activeRootTaskId}。`, isError: true }
|
|
48
|
+
}
|
|
49
|
+
const rootTask = await ws.getTask(activeRootTaskId).catch(() => null)
|
|
50
|
+
if (!rootTask || TERMINAL_TASK_STATES[rootTask.state] || rootTask.assigneeId !== identity.agentId) {
|
|
51
|
+
return { text: '拒绝:活动根任务不存在、已结束或不属于当前 lead。', isError: true }
|
|
52
|
+
}
|
|
53
|
+
parentTaskId = activeRootTaskId
|
|
54
|
+
}
|
|
55
|
+
// 重复派发守卫(真实场景实测:lead 模型可能对同一目标重复派发,引发协调风暴):
|
|
56
|
+
// 同父任务下已存在同标题非终态子任务 → 不再创建,直接指路既有任务。
|
|
57
|
+
// 2026-10-30 前移到授权之前:原顺序先落库 grant_node_ids 再判重,判重命中时授权
|
|
58
|
+
// (grant_mode=auto 还会摘除逐次人工审批)已生效却无任务上下文 —— 悬空授权面,
|
|
59
|
+
// 且 lead 每次重复派发尝试都会重放授权,把偶发幻觉放大成常态越权面。
|
|
60
|
+
const dup = await ws.listTasks()
|
|
61
|
+
const existing = dup.find(t =>
|
|
62
|
+
t.parentId === parentTaskId
|
|
63
|
+
&& t.title === title
|
|
64
|
+
&& t.state !== 'COMPLETED' && t.state !== 'FAILED' && t.state !== 'CANCELED')
|
|
65
|
+
if (existing) {
|
|
66
|
+
return {
|
|
67
|
+
text: `未创建:同父任务下已存在同标题进行中子任务 ${existing.id}("${existing.title}",state=${existing.state},assignee=${existing.assigneeId})。请勿重复派发;若需跟进请对该任务 notify 或 reassign。`,
|
|
68
|
+
}
|
|
69
|
+
}
|
|
36
70
|
// 派发时随任务授予节点权限(lead 专属;grant_node_ids ⊆ lead 自身绑定面,fail-closed):
|
|
37
71
|
// 任一节点不满足则整单拒绝,任务不创建 —— 避免 worker 拿到任务却没有节点权限的半途态。
|
|
38
72
|
let grantNote = ''
|
|
73
|
+
let grantedNodeIds: string[] = []
|
|
39
74
|
const rawGrant = args.grant_node_ids ?? args.grantNodeIds
|
|
40
75
|
if (rawGrant != null && identity) {
|
|
41
76
|
const { grantNodesForDispatch } = await import('./team-delegation')
|
|
@@ -44,22 +79,25 @@ export async function handleDispatchTask(args: Record<string, unknown>, ws: Agen
|
|
|
44
79
|
const grantMode = args.grant_mode === 'manual' || args.grant_mode === 'auto' ? (args.grant_mode as 'auto' | 'manual') : undefined
|
|
45
80
|
const grant = await grantNodesForDispatch(identity, assigneeId, grantNodeIds, grantMode, ws, args.grant_confirm)
|
|
46
81
|
if (!grant.ok) return { text: `未派发:${grant.text}\n请先用 team_grant_nodes 确认你持有这些节点,或修正 node id 后重试。`, isError: true }
|
|
82
|
+
grantedNodeIds = grantNodeIds
|
|
47
83
|
grantNote = `\n${grant.text}`
|
|
48
84
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
85
|
+
try {
|
|
86
|
+
const task = await ws.dispatchTask({ assigneeId, title, description, parentTaskId, routeReason })
|
|
87
|
+
return { text: `子任务 ${task.id} 已创建并指派 → ${assigneeId}(父任务 ${parentTaskId ?? '无'},标题: ${title}${routeReason ? `,路由理由: ${routeReason}` : ''})${grantNote}` }
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
// 2026-10-30 修复(授权-任务绑定不变量):manager 侧判重 409/父任务终态/harness
|
|
91
|
+
// 不可用/预算超限等拒绝发生在授权落库之后 —— 任务没创建,节点授权已生效。
|
|
92
|
+
// 失败即回滚本轮授权再如实回报,杜绝「派发失败留下无任务授权」。
|
|
93
|
+
if (grantedNodeIds.length && identity) {
|
|
94
|
+
const { revokeNodesForDispatchRollback } = await import('./team-delegation')
|
|
95
|
+
const revoked = await revokeNodesForDispatchRollback(identity, assigneeId, grantedNodeIds, ws)
|
|
96
|
+
grantNote = revoked > 0 ? `\n(派发失败,已回滚本轮 ${revoked} 条随单授权)` : '\n(派发失败;随单授权回滚未完成,请用 team_revoke_nodes 手工核销)'
|
|
59
97
|
}
|
|
98
|
+
const msg = err instanceof Error ? err.message : String(err)
|
|
99
|
+
return { text: `未派发:${msg}${grantNote}`, isError: true }
|
|
60
100
|
}
|
|
61
|
-
const task = await ws.dispatchTask({ assigneeId, title, description, parentTaskId, routeReason })
|
|
62
|
-
return { text: `子任务 ${task.id} 已创建并指派 → ${assigneeId}(父任务 ${parentTaskId ?? '无'},标题: ${title}${routeReason ? `,路由理由: ${routeReason}` : ''})${grantNote}` }
|
|
63
101
|
}
|
|
64
102
|
|
|
65
103
|
export async function handleRefuseTask(args: Record<string, unknown>, ws: AgentWorkspace): Promise<HostToolResult> {
|
|
@@ -19,7 +19,8 @@ function membersOf(ws: MembersView): Promise<DelegationMember[]> {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
function summaryText(bindings: Array<{ nodeId: string, kind: string, mode: string }>): string {
|
|
22
|
-
const
|
|
22
|
+
const kindLabel: Record<string, string> = { 'daq': '数采', 'dcw': '写控', 'line-recipe': '产线配方管理' }
|
|
23
|
+
const lines = bindings.map(b => ` - ${kindLabel[b.kind] ?? b.kind} ${b.nodeId}(mode=${b.mode})`)
|
|
23
24
|
return `\n${lines.join('\n')}`
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -106,3 +107,23 @@ export async function grantNodesForDispatch(identity: HostToolBridgeContext['ide
|
|
|
106
107
|
return { ok: false, text: msg }
|
|
107
108
|
}
|
|
108
109
|
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* 2026-10-30 新增:dispatch 失败回滚 —— 尽力撤销 grantNodesForDispatch 刚落库的授权。
|
|
113
|
+
* 授权-任务绑定不变量:任务没创建,授权不得残留(尤其 grant_mode=auto 摘过人工审批的)。
|
|
114
|
+
* 返回实际撤销条数;任何异常按 0 处理(调用方如实标注"请手工核销")。
|
|
115
|
+
*/
|
|
116
|
+
export async function revokeNodesForDispatchRollback(identity: HostToolBridgeContext['identity'], assigneeId: string, nodeIds: string[], ws: MembersView): Promise<number> {
|
|
117
|
+
try {
|
|
118
|
+
const results = revokeDelegation({
|
|
119
|
+
leaderAgentId: identity.agentId,
|
|
120
|
+
targetAgentId: assigneeId,
|
|
121
|
+
nodeIds,
|
|
122
|
+
members: await membersOf(ws),
|
|
123
|
+
})
|
|
124
|
+
return results.filter(r => r.revoked).length
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return 0
|
|
128
|
+
}
|
|
129
|
+
}
|
|
@@ -25,7 +25,7 @@ export interface HostToolSessionState {
|
|
|
25
25
|
|
|
26
26
|
/** 桥上下文:impl 注入身份与 workspace 取值器 */
|
|
27
27
|
export interface HostToolBridgeContext {
|
|
28
|
-
identity: { agentId: string, channelId: string, role: 'lead' | 'worker', name: string }
|
|
28
|
+
identity: { agentId: string, channelId: string, role: 'lead' | 'worker', name: string, harness?: string }
|
|
29
29
|
state: HostToolSessionState
|
|
30
30
|
getWorkspace(): AgentWorkspace | null
|
|
31
31
|
}
|
|
@@ -19,6 +19,7 @@ import { predictProduction, readIoSpecFor } from '../../aml/predictor'
|
|
|
19
19
|
import { recordOps } from '../../ops/ops'
|
|
20
20
|
import { transitionModel } from '../../aml/model-registry'
|
|
21
21
|
import { resolveRefFaces } from './tool-verify'
|
|
22
|
+
import { GOVERNED_DISPATCH_HINT } from './fallback-hints'
|
|
22
23
|
|
|
23
24
|
/** 工具:aml_job_submit —— 提交训练作业(train.py 全文内联;归因 agentId;队列 FIFO) */
|
|
24
25
|
export async function toolAmlJobSubmit(agentId: string, args: {
|
|
@@ -236,7 +237,7 @@ export async function toolAmlModelPromote(agentId: string, args: { model_id?: st
|
|
|
236
237
|
.list({ stage: 'production', productId: model.productId, recipeId: model.recipeId, limit: 50 })
|
|
237
238
|
.find(m => m.id !== modelId && m.purpose === model.purpose)?.id
|
|
238
239
|
}
|
|
239
|
-
// 同模型挂起审批去重(
|
|
240
|
+
// 同模型挂起审批去重(防审批面板堆积,与配方面治理下发同纪律)
|
|
240
241
|
const approvals = getToolApprovals()
|
|
241
242
|
if (approvals.hasPendingFor(agentId, modelId)) {
|
|
242
243
|
return amlErr(`模型 ${modelId} 已有一条待审批的晋升请求,请等待用户处理后再发起新请求。`)
|
|
@@ -249,8 +250,9 @@ export async function toolAmlModelPromote(agentId: string, args: { model_id?: st
|
|
|
249
250
|
try {
|
|
250
251
|
const r = transitionModel(modelId, toStage, agentBadgeLabel(agentId), 'agent')
|
|
251
252
|
// 归属审计已由 transitionModel 内部 recordOps(aml.model.promote)完成,此处不重复记录
|
|
253
|
+
const warnText = (r.warnings ?? []).length > 0 ? `⚠ ${r.warnings!.join(';')}。` : ''
|
|
252
254
|
return {
|
|
253
|
-
text: `晋升完成:${modelId} ${r.from} → ${toStage}。${r.retiredId ? `原生产模型 ${r.retiredId} 已自动退役。` : ''}${toStage === 'shadow'
|
|
255
|
+
text: `晋升完成:${modelId} ${r.from} → ${toStage}。${r.retiredId ? `原生产模型 ${r.retiredId} 已自动退役。` : ''}${warnText}${toStage === 'shadow'
|
|
254
256
|
? '影子阶段:用 aml_model_reference 观测其预测与实际偏差,积累证据后再申请 production。'
|
|
255
257
|
: '该模型已作为生产模型生效:aml_model_reference 的影子参考即来自它;调控 Agent 调参前请先查它。'}`,
|
|
256
258
|
}
|
|
@@ -471,7 +473,7 @@ export async function toolAmlModelReference(agentId: string, args: {
|
|
|
471
473
|
: '无控制节点'
|
|
472
474
|
return {
|
|
473
475
|
text: [
|
|
474
|
-
`影子模型参考(
|
|
476
|
+
`影子模型参考(调参前先问影子模型;预测≠承诺,真实下发不走逐节点直写 —— ${GOVERNED_DISPATCH_HINT}):`,
|
|
475
477
|
` 模型 ${r.modelId}「${model.label || '(未打标)'}」(stage=${r.stage},purpose=${purpose}${model.objectiveId ? `,objective=${model.objectiveId}` : ''})| 三元组:产品 ${getDcwProductRepo().byId(productId)?.name ?? productId} / 配方 ${getDcwRecipeRepo().byId(recipeId)?.name ?? recipeId}(解析:${resolveHow})`,
|
|
476
478
|
model.description ? ` 模型说明: ${model.description}` : null,
|
|
477
479
|
` 输入:最近 ${H} 拍 × ${io.allNodes.length} 节点(beat=${beatMs}ms),截至 ${new Date(now).toISOString().slice(11, 19)};控制轨迹(共 ${steps} 步):${ctrlTxt}${unknownKeys.length > 0 ? `(已忽略非控制节点的键:${unknownKeys.join(', ')})` : ''}`,
|
|
@@ -479,7 +481,7 @@ export async function toolAmlModelReference(agentId: string, args: {
|
|
|
479
481
|
` ${header}`,
|
|
480
482
|
...forecastLines,
|
|
481
483
|
` 假设: ${r.assumptions}`,
|
|
482
|
-
`\n用法:把候选设定值作为 controls 传入(键 = 控制节点 id)
|
|
484
|
+
`\n用法:把候选设定值作为 controls 传入(键 = 控制节点 id)对比不同方案的预测轨迹;选定后经配方面/优化面受治理下发(${GOVERNED_DISPATCH_HINT}),下发后 daq_query 复测。`,
|
|
483
485
|
].filter(x => x !== null).join('\n'),
|
|
484
486
|
}
|
|
485
487
|
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process'
|
|
2
|
+
import { createHash } from 'node:crypto'
|
|
3
|
+
import { lstatSync, readFileSync, realpathSync } from 'node:fs'
|
|
4
|
+
import { basename, dirname, isAbsolute, join, resolve } from 'node:path'
|
|
5
|
+
|
|
6
|
+
type TrialTarget = { id: string, driver: string, driverConfig: Record<string, unknown> }
|
|
7
|
+
type Qualification = {
|
|
8
|
+
schema_version: number
|
|
9
|
+
run_id: string
|
|
10
|
+
aw_home: string
|
|
11
|
+
aw_base: string
|
|
12
|
+
sim_base: string
|
|
13
|
+
simulator_root: string
|
|
14
|
+
simulator_pid: number
|
|
15
|
+
line_id: string
|
|
16
|
+
recipe_id: string
|
|
17
|
+
expires_at_utc: string
|
|
18
|
+
nodes: Array<{ node_id: string, driver: string, driver_config_sha256: string, host?: string, port?: number }>
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export type ApprovalOnlyTrialReceipt = { approval_bypassed: true, run_id: string }
|
|
22
|
+
|
|
23
|
+
function loopbackUrl(raw: string | undefined, label: string): URL {
|
|
24
|
+
const url = new URL(raw ?? '')
|
|
25
|
+
if (!['http:', 'https:'].includes(url.protocol) || !['127.0.0.1', 'localhost', '[::1]'].includes(url.hostname)
|
|
26
|
+
|| !url.port || url.username || url.password || url.search || url.hash || !['', '/'].includes(url.pathname)) {
|
|
27
|
+
throw new Error(`${label} must be an explicit loopback service URL`)
|
|
28
|
+
}
|
|
29
|
+
return url
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function targetEndpoint(node: TrialTarget): { host: string, port: number } | null {
|
|
33
|
+
if (node.driver === 'mock') return null
|
|
34
|
+
let host: string
|
|
35
|
+
let port: number
|
|
36
|
+
if (node.driver === 'opcua') {
|
|
37
|
+
const endpoint = new URL(String(node.driverConfig.endpoint ?? ''))
|
|
38
|
+
if (endpoint.protocol !== 'opc.tcp:' || endpoint.username || endpoint.password) throw new Error('unsupported OPC UA simulator endpoint')
|
|
39
|
+
host = endpoint.hostname
|
|
40
|
+
port = Number(endpoint.port)
|
|
41
|
+
}
|
|
42
|
+
else if (node.driver === 'modbus-tcp' || node.driver === 'modbus-rtu') {
|
|
43
|
+
host = String(node.driverConfig.host ?? '')
|
|
44
|
+
port = Number(node.driverConfig.port)
|
|
45
|
+
}
|
|
46
|
+
else throw new Error(`driver ${node.driver} is not permitted for approval-only trials`)
|
|
47
|
+
if (!['127.0.0.1', 'localhost', '[::1]', '::1'].includes(host) || !Number.isInteger(port) || port < 1024 || port > 65535) {
|
|
48
|
+
throw new Error('approval-only trials require loopback simulator driver endpoints')
|
|
49
|
+
}
|
|
50
|
+
return { host, port }
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function assertListener(port: number, pid: number): void {
|
|
54
|
+
const rows = execFileSync('netstat.exe', ['-ano', '-p', 'tcp'], { encoding: 'utf8', timeout: 8000, maxBuffer: 4 * 1024 * 1024 })
|
|
55
|
+
.split(/\r?\n/).map(line => line.trim().split(/\s+/))
|
|
56
|
+
.filter(parts => parts[0] === 'TCP' && parts[3]?.toUpperCase() === 'LISTENING' && parts[1]?.endsWith(`:${port}`))
|
|
57
|
+
if (!rows.length || rows.some(parts => Number(parts[4]) !== pid || !['127.0.0.1', '[::1]'].includes(parts[1]!.slice(0, -(String(port).length + 1))))) {
|
|
58
|
+
throw new Error(`simulator ownership or loopback binding is unverified for port ${port}`)
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** This switch has no tool argument or UI setting. Its qualification file stays in
|
|
63
|
+
* the disposable AW_HOME and must be renewed for each run before bypassing HITL. */
|
|
64
|
+
export function approvalOnlyTrialReceipt(input: {
|
|
65
|
+
recipeId: string
|
|
66
|
+
line: { id: string, simulated?: boolean } | undefined
|
|
67
|
+
nodes: TrialTarget[]
|
|
68
|
+
}): ApprovalOnlyTrialReceipt | null {
|
|
69
|
+
const requested = process.env.AW_BENCH_APPROVAL_ONLY
|
|
70
|
+
if (requested == null || requested === '' || requested === '0') return null
|
|
71
|
+
try {
|
|
72
|
+
if (requested !== '1') throw new Error('AW_BENCH_APPROVAL_ONLY must be 1 or disabled')
|
|
73
|
+
const runId = process.env.AW_AGENTTEAM_RUN_ID ?? ''
|
|
74
|
+
if (!/^[a-zA-Z0-9_-]{8,80}$/.test(runId) || process.env.AW_BENCH_APPROVAL_ONLY_ACK !== runId) throw new Error('run confirmation mismatch')
|
|
75
|
+
if (process.env.AW_MODE !== 'home' || (process.env.AW_BENCH_MODE && process.env.AW_BENCH_MODE !== '0')) throw new Error('home mode is required and AW_BENCH_MODE must be disabled')
|
|
76
|
+
const rawHome = process.env.AW_HOME ?? ''
|
|
77
|
+
if (!isAbsolute(rawHome)) throw new Error('an explicit isolated AW_HOME is required')
|
|
78
|
+
const home = realpathSync(rawHome)
|
|
79
|
+
if (basename(home) !== 'aw-home' || basename(dirname(home)) !== 'runtime' || !basename(dirname(dirname(home))).startsWith(runId)) {
|
|
80
|
+
throw new Error('AW_HOME must be this run\'s runtime/aw-home directory')
|
|
81
|
+
}
|
|
82
|
+
const aw = loopbackUrl(process.env.AW_BASE, 'AW_BASE')
|
|
83
|
+
const sim = loopbackUrl(process.env.SIM_BASE, 'SIM_BASE')
|
|
84
|
+
if (Number(sim.port) === 4010 || Number(aw.port) === 3001) throw new Error('shared default service ports are forbidden')
|
|
85
|
+
const qualificationPath = join(home, 'approval-only-qualification.json')
|
|
86
|
+
if (!lstatSync(qualificationPath).isFile() || lstatSync(qualificationPath).isSymbolicLink()) throw new Error('qualification must be a regular run-private file')
|
|
87
|
+
const q = JSON.parse(readFileSync(qualificationPath, 'utf8')) as Qualification
|
|
88
|
+
const expiry = Date.parse(q.expires_at_utc)
|
|
89
|
+
if (q.schema_version !== 1 || q.run_id !== runId || resolve(q.aw_home) !== home || q.aw_base !== aw.origin || q.sim_base !== sim.origin
|
|
90
|
+
|| !Number.isFinite(expiry) || expiry <= Date.now() || expiry - Date.now() > 3_600_000) throw new Error('qualification is mismatched or expired')
|
|
91
|
+
if (!input.line?.simulated || q.line_id !== input.line.id || q.recipe_id !== input.recipeId || input.nodes.length !== 1 || !Array.isArray(q.nodes)) {
|
|
92
|
+
throw new Error('the qualified simulated line, recipe and targets are required')
|
|
93
|
+
}
|
|
94
|
+
const endpoints = input.nodes.map((node) => {
|
|
95
|
+
const allowed = q.nodes.filter(entry => entry.node_id === node.id)
|
|
96
|
+
const hash = createHash('sha256').update(JSON.stringify(node.driverConfig)).digest('hex')
|
|
97
|
+
if (allowed.length !== 1 || allowed[0]!.driver !== node.driver || allowed[0]!.driver_config_sha256 !== hash) throw new Error('target or driver configuration differs from qualification')
|
|
98
|
+
const endpoint = targetEndpoint(node)
|
|
99
|
+
if (endpoint && (allowed[0]!.host !== endpoint.host || allowed[0]!.port !== endpoint.port)) throw new Error('driver endpoint differs from qualification')
|
|
100
|
+
return endpoint
|
|
101
|
+
}).filter((endpoint): endpoint is { host: string, port: number } => endpoint !== null)
|
|
102
|
+
if (endpoints.length) {
|
|
103
|
+
if (process.platform !== 'win32') throw new Error('simulator PID verification is supported only on Windows')
|
|
104
|
+
const simRoot = realpathSync(q.simulator_root)
|
|
105
|
+
if (simRoot !== realpathSync(join(dirname(home), 'simulator')) || !Number.isInteger(q.simulator_pid) || q.simulator_pid <= 0) throw new Error('private simulator root/PID mismatch')
|
|
106
|
+
const commandLine = execFileSync('powershell.exe', ['-NoProfile', '-NonInteractive', '-Command', `(Get-CimInstance Win32_Process -Filter "ProcessId=${q.simulator_pid}").CommandLine`], { encoding: 'utf8', timeout: 8000, maxBuffer: 64 * 1024 })
|
|
107
|
+
.replaceAll('\\', '/').toLowerCase()
|
|
108
|
+
if (!commandLine.includes(`${simRoot.replaceAll('\\', '/').toLowerCase()}/src/server/index.ts`)) throw new Error('simulator PID does not own this run\'s entry point')
|
|
109
|
+
assertListener(Number(aw.port), process.pid)
|
|
110
|
+
for (const port of new Set([Number(sim.port), ...endpoints.map(endpoint => endpoint.port)])) assertListener(port, q.simulator_pid)
|
|
111
|
+
}
|
|
112
|
+
return { approval_bypassed: true, run_id: runId }
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
throw new Error(`Approval-only trial refused: ${err instanceof Error ? err.message : String(err)}`, { cause: err })
|
|
116
|
+
}
|
|
117
|
+
}
|