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
package/README-zh.md
CHANGED
|
@@ -1,992 +1,255 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/hero.png" alt="AgentWorkShop —— 让 Agent 团队运行真实产线" width="100%" />
|
|
4
|
-
|
|
5
|
-
<br />
|
|
6
|
-
|
|
7
|
-
# AgentWorkShop
|
|
8
|
-
|
|
9
|
-
**AI Agent 团队与产线在此交汇。**
|
|
10
|
-
|
|
11
|
-
[](https://github.com/kingdol666/AgentWorkShop)
|
|
12
|
-
[](https://github.com/kingdol666/AgentWorkShop)
|
|
13
|
-
[](https://github.com/kingdol666/AgentWorkShop/releases)
|
|
14
|
-
[](https://github.com/kingdol666/AgentWorkShop/stargazers)
|
|
15
|
-
[](https://github.com/kingdol666/AgentWorkShop/commits)
|
|
16
|
-
[](https://github.com/kingdol666/AgentWorkShop/issues)
|
|
17
|
-
[](./LICENSE)
|
|
18
|
-
|
|
19
|
-
[](https://nuxt.com)
|
|
20
|
-
[](https://vuejs.org)
|
|
21
|
-
[](https://www.typescriptlang.org)
|
|
22
|
-
[](https://nodejs.org)
|
|
23
|
-
[](https://nodejs.org/api/sqlite.html)
|
|
24
|
-
[](./docs/site/guide/daq-protocols.md)
|
|
25
|
-
[](./docs/plugins.md)
|
|
26
|
-
[](https://kingdol666.github.io/AgentWorkShop)
|
|
27
|
-
[
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
<
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/fig-04-town.gif" alt="由实时遥测驱动的 3D 数字孪生小镇" width="92%" />
|
|
257
|
-
|
|
258
|
-
<sub><b>孪生就是同一条事件总线的渲染结果。</b>设备、频道领地、报警与实时数值——自适应画质阶梯
|
|
259
|
-
(DPR / 阴影 / 泛光,墙钟 FPS 预算)让它在中端机器上也保持诚实。</sub>
|
|
260
|
-
|
|
261
|
-
<br />
|
|
262
|
-
|
|
263
|
-
### 图 05 — 仪表盘
|
|
264
|
-
|
|
265
|
-
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/fig-05-dashboard.gif" alt="带 KPI 量规与趋势的运行仪表盘" width="92%" />
|
|
266
|
-
|
|
267
|
-
<sub><b>一屏看全工作坊。</b>频道、Agent、任务、数采吞吐与报警——读的是 API 服务的同一份状态,
|
|
268
|
-
不是另建一套指标存储。</sub>
|
|
269
|
-
|
|
270
|
-
<br />
|
|
271
|
-
|
|
272
|
-
### 图 06 — 自适应布局
|
|
273
|
-
|
|
274
|
-
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/fig-06-responsive.gif" alt="同一套界面从桌面到平板再到手机的形态变化" width="92%" />
|
|
275
|
-
|
|
276
|
-
<sub><b>桌面 → 平板 → 手机。</b>刻度轨先收成图标轨、再变成抽屉;页头纵向堆叠,
|
|
277
|
-
高密度表格变成可横向滚动的「账页条」,并把身份列钉在左缘。</sub>
|
|
278
|
-
|
|
279
|
-
</div>
|
|
280
|
-
|
|
281
|
-
<table>
|
|
282
|
-
<tr>
|
|
283
|
-
<td width="50%"><img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/shot-workshop.png" alt="Agent 工作台" width="100%" /><br/><sub><b>Agent 工作台。</b>频道时间线、lane、任务、记忆与 HITL 收在同一张工作台。</sub></td>
|
|
284
|
-
<td width="50%"><img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/shot-monitor.png" alt="运行时监控" width="100%" /><br/><sub><b>运行时监控。</b>每条已接线频道、成员数、依赖环与归属用户。</sub></td>
|
|
285
|
-
</tr>
|
|
286
|
-
<tr>
|
|
287
|
-
<td><img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/shot-settings.png" alt="系统设置" width="100%" /><br/><sub><b>系统设置。</b>19 组 128 个设置项,由描述符驱动——CLI 读的是同一份注册表。</sub></td>
|
|
288
|
-
<td><img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/shot-plugins.png" alt="插件管理" width="100%" /><br/><sub><b>插件管理。</b>三种作用域、改代码即热重载、按团队开关。</sub></td>
|
|
289
|
-
</tr>
|
|
290
|
-
</table>
|
|
291
|
-
|
|
292
|
-
---
|
|
293
|
-
|
|
294
|
-
## 设计架构
|
|
295
|
-
|
|
296
|
-
```mermaid
|
|
297
|
-
flowchart TB
|
|
298
|
-
subgraph FE["前端 — Nuxt 4 / Vue 3"]
|
|
299
|
-
UI["工作台 UI · 3D 孪生 · 大屏"]
|
|
300
|
-
WS["AEP 客户端 — seq 续传"]
|
|
301
|
-
end
|
|
302
|
-
subgraph SRV["服务端 — Nitro / h3"]
|
|
303
|
-
REST["REST /api/workshop/**"]
|
|
304
|
-
HUB["WS Hub — AEP v1"]
|
|
305
|
-
A2A["A2A JSON-RPC"]
|
|
306
|
-
MCP["MCP Server"]
|
|
307
|
-
subgraph RT["运行时"]
|
|
308
|
-
MGR["AgentChannelManager"]
|
|
309
|
-
SCH["SchedulerLoop — lead 监督"]
|
|
310
|
-
TE["TaskEngine — 7 态任务机"]
|
|
311
|
-
AR["AgentRuntime × N"]
|
|
312
|
-
MEM["AgentMemory — FTS5 + 向量"]
|
|
313
|
-
BUS["事件总线 (ManagerBus) — per-channel seq + 环形缓冲"]
|
|
314
|
-
end
|
|
315
|
-
subgraph IND["工业"]
|
|
316
|
-
DAQ["数采网关 — 逐节点边缘运行时"]
|
|
317
|
-
DCW["数控网关 — 写控"]
|
|
318
|
-
BR["队列 — inproc / MQTT"]
|
|
319
|
-
TSDB["时序库 — SQLite / Timescale"]
|
|
320
|
-
end
|
|
321
|
-
subgraph HB["Harness 适配器 — 14 个引擎"]
|
|
322
|
-
MOCK["mock · claude — 进程内"]
|
|
323
|
-
OMP["omp — RPC 子进程"]
|
|
324
|
-
CDX["codex — app-server"]
|
|
325
|
-
DSH["dsh · qwen · hermes — ACP"]
|
|
326
|
-
OC["opencode — serve"]
|
|
327
|
-
FAM["gemini · copilot · cursor · crush · goose · pi — 无头 CLI"]
|
|
328
|
-
end
|
|
329
|
-
DB[("SQLite — channels · agents · tasks
|
|
330
|
-
messages · memories (FTS5) · events")]
|
|
331
|
-
end
|
|
332
|
-
UI <--> WS
|
|
333
|
-
WS --> BUS
|
|
334
|
-
REST & A2A & MCP --> MGR
|
|
335
|
-
MGR --> SCH & TE & AR
|
|
336
|
-
AR --> MEM
|
|
337
|
-
AR --> MOCK & OMP & CDX & DSH & OC & FAM
|
|
338
|
-
MGR & TE & MEM & BUS --> DB
|
|
339
|
-
DAQ <--> BR --> TSDB
|
|
340
|
-
DCW --> BR
|
|
341
|
-
DAQ & DCW --> BUS
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
**Agent × 机器之桥**(值得读源码的部分):
|
|
345
|
-
|
|
346
|
-
```
|
|
347
|
-
agent ──绑定──▶ 节点 (daq: auto / dcw: manual)
|
|
348
|
-
│ │
|
|
349
|
-
│ my_industrial_nodes ◀── 语义卡:物理含义 · 单位 · 安全量程 · 配方窗口
|
|
350
|
-
│ daq_query ◀── 时序库历史,统计 + 物理语义
|
|
351
|
-
│ dcw_control ──▶ 联锁(安全量程 ∩ 配方窗口)
|
|
352
|
-
│ ──▶ HITL 审批(manual 模式,180s 超时)
|
|
353
|
-
│ ──▶ PLC 写入 → 回读校验 → ACK + 写历史
|
|
354
|
-
◀── Agent 可引用数值的结果文本
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
---
|
|
358
|
-
|
|
359
|
-
## 快速开始
|
|
360
|
-
|
|
361
|
-
### 前置条件
|
|
362
|
-
|
|
363
|
-
```bash
|
|
364
|
-
node -v # ≥ 23.4.0(需要内置 node:sqlite)
|
|
365
|
-
```
|
|
366
|
-
|
|
367
|
-
> 真实 Agent harness 需要对应 CLI 在 PATH 中——`omp`、`codex`、`dsh`、`opencode`、`gemini`、`qwen`、`copilot`、`cursor`、`crush`、`goose`、`pi` 或 `hermes`(任选子集;同一 Channel 可混用)。`mock` 与 `claude`(SDK)**进程内运行**,无需 PATH 上的 CLI。仪表盘「执行引擎」面板以绿/灰状态点展示每个引擎的就绪度,未安装引擎可点击跳转官网安装页。可选数采基础设施(MQTT broker + TimescaleDB)在 Docker 可达时自动拉起(`docker compose up -d`)。
|
|
368
|
-
|
|
369
|
-
### 方式 A —— 从 npm 安装(推荐)
|
|
370
|
-
|
|
371
|
-
```bash
|
|
372
|
-
npm install -g agentworkshop # → `aw` / `agentworkshop` 进入 PATH
|
|
373
|
-
aw start # → http://localhost:3001
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
发布出的包内含**预构建的生产产物**(`.output/`),所以 npm 安装后可直接启动——无需构建步骤,也无需构建工具。首次启动时一切初始化进配置根 **`~/.AgentWorkShop`**:默认 `config.yml`、自动生成含随机会话密钥的 `.env`、`runtime-settings.json`、docker-compose 种子、`prompts/`、`commands/`、`plugins/`(由 SDK 示例播种,**默认关闭**)与空的 `data/` 目录。全部运行数据(SQLite、JSON 仓库、备份、日志)也都落在配置根——配置与数据跟着安装走,与当前工作目录无关。
|
|
377
|
-
|
|
378
|
-
不想全局安装、只想跑一次?
|
|
379
|
-
|
|
380
|
-
```bash
|
|
381
|
-
npx agentworkshop start # 无需全局 npm 安装
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
> `npx` 同样会创建 `~/.AgentWorkShop`——不装全局并不等于在磁盘上不留任何痕迹。
|
|
385
|
-
|
|
386
|
-
### 方式 B —— 源码运行
|
|
387
|
-
|
|
388
|
-
```bash
|
|
389
|
-
git clone https://github.com/kingdol666/AgentWorkShop.git && cd AgentWorkShop
|
|
390
|
-
pnpm install
|
|
391
|
-
pnpm dev # → http://localhost:3000(端口取自 config.yml)
|
|
392
|
-
```
|
|
393
|
-
|
|
394
|
-
源码生产部署:
|
|
395
|
-
|
|
396
|
-
```bash
|
|
397
|
-
pnpm build # nuxt build → .output/
|
|
398
|
-
pnpm start # 端口取自 config.yml → server.prod.port
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
> 在源码检出内,配置根是项目里的 **`.AgentWorkShop/`** 文件夹(运行时覆盖、数据、项目级指令),而 `config.yml` / `.env` 留在检出根,作为版本化的工厂默认值。
|
|
402
|
-
|
|
403
|
-
### 版本更新
|
|
404
|
-
|
|
405
|
-
```bash
|
|
406
|
-
aw update # 检查 + 就地更新全局安装
|
|
407
|
-
aw update --check # 只报告,不安装
|
|
408
|
-
npm install -g agentworkshop@latest # 手动等效
|
|
409
|
-
```
|
|
410
|
-
|
|
411
|
-
版本遵循 semver。每次 `aw start` 都会校验配置根,并把 `home` 之前的旧版 `data/` 布局迁移进来(以最新文件为准),因此数据可以跨版本存活。SQLite schema 迁移在服务端启动时执行。当前版本:**v0.8.6**——见[版本发布](https://github.com/kingdol666/AgentWorkShop/releases)。
|
|
412
|
-
|
|
413
|
-
### 第一次「Agent × 产线」会话(约 2 分钟)
|
|
414
|
-
|
|
415
|
-
1. **登录** —— 侧边栏注册(或 `POST /api/users/register`)。
|
|
416
|
-
2. **搭产线** —— 「产线运营」→ 建产线,加数采节点(如 `daq-temp-tc`)与数控节点(如 `dcw-temp-sp`),建产品 + 配方,点**开跑**。实时值开始流动。
|
|
417
|
-
3. **建团队** —— 「Agent 工作台」→ 选 lead + workers 后**部署(deploy)**进 Channel。
|
|
418
|
-
4. **绑定节点** —— 打开 Agent 详情面板 → 绑定数采节点(*auto*)与数控节点(*manual* = 需您的批准)。
|
|
419
|
-
5. **提交目标** —— 「分析最近 5 分钟熔体温度;若与 182 °C 偏差超过 1 °C,修正设定值(等我的批准)。」
|
|
420
|
-
6. **审批** —— Agent 读取真实历史、计算均值、发起写请求 → 在 HITL 面板批准 → 看设定值变化,**目标**收口并给出数值报告。
|
|
421
|
-
|
|
422
|
-
---
|
|
423
|
-
|
|
424
|
-
## 配置与 CLI —— 真正的配置驱动
|
|
425
|
-
|
|
426
|
-
一个运行时,一个事实来源。**`config.yml`** 声明默认值;配置根内的 **`runtime-settings.json`** 承载运行时覆盖;环境变量与 CLI 参数在最上层。每个可编辑键在 `shared/config/schema.json` 中声明一次(类型、范围、枚举、实时/重启生效),**前端设置页与 CLI 消费同一份描述符**。
|
|
427
|
-
|
|
428
|
-
```
|
|
429
|
-
config.yml(默认值) < .AgentWorkShop/runtime-settings.json(运行时) < 环境变量 / CLI 参数
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
配置根:全局安装(`npm i -g`)时为 **`~/.AgentWorkShop`**——无论在哪个目录运行 `aw`;源码检出时为项目内的 **`<repo>/.AgentWorkShop`**(`config.yml` / `.env` 留在检出根,作为版本化的工厂默认值)。`AW_HOME` 可重定向;`AW_MODE=home` 强制全局形态。
|
|
433
|
-
|
|
434
|
-
### 设置持久化与热重载
|
|
435
|
-
|
|
436
|
-
- **系统设置 → 运行配置**标签页按描述符渲染每个可编辑键——改服务端口、主题、API 超时、语言环境或审批闸门,点保存即可。
|
|
437
|
-
- `live` 键立即生效(主题、标题、超时、审批闸门、数采采样节拍、时序查询桶宽……),经服务端事件流推送,**无需刷新、无需重启**。
|
|
438
|
-
- `restart` 键(端口、主机)落盘持久化,在下一次以对应模式启动时生效(`aw dev` / `aw start`)。
|
|
439
|
-
- 所有写入方共用一条通道:**设置页、CLI、服务端文件监听**最终都收敛到同一个设置文件——任何一端改,处处生效。
|
|
440
|
-
|
|
441
|
-
示例——在线调节数采与查询节拍:
|
|
442
|
-
|
|
443
|
-
```bash
|
|
444
|
-
aw config set daq.sampling.defaultIntervalMs 2000 # 新节点每 2s 采样
|
|
445
|
-
aw config set daq.sampling.minIntervalMs 500 # 节点级下限(create/patch 钳制)
|
|
446
|
-
aw config set daq.query.defaultBucketMs 3000 # 时序查询缺省 3s 桶
|
|
447
|
-
aw config set daq.query.minBucketMs 500 # 查询下限(samples/产线查询/Agent 工具共用)
|
|
448
|
-
```
|
|
449
|
-
|
|
450
|
-
注入 Agent 的工具描述会在每次装配时以当前配置值重新渲染——LLM 永远看到对自己 `daq_query` 调用真正生效的下限与缺省值。
|
|
451
|
-
|
|
452
|
-
### `aw` CLI
|
|
453
|
-
|
|
454
|
-
| 指令 | 作用 |
|
|
455
|
-
|---|---|
|
|
456
|
-
| `aw start · aw dev · aw build` | 生产服务 / 开发服务器 / 构建——端口取自有效配置;首次 `start` 构建一次 |
|
|
457
|
-
| `aw stop` | 依单实例锁终止运行中的 aw 服务实例 |
|
|
458
|
-
| `aw config list · get · set · unset · reset` | 读写运行时设置(schema 校验 + 原子写盘) |
|
|
459
|
-
| `aw plugin list · create · enable · disable` | 跨三种作用域管理插件:查看、脚手架(默认 project 作用域;`--global` 为 user 作用域)、启停(写状态文件,运行中的服务约 1 秒热重载) |
|
|
460
|
-
| `aw mcp` | 工业 MCP stdio 服务(41 个工具,覆盖平台 REST:产线、配方、DCW 写入、参数映射、数采、频道、团队、模型晋升、插件)——自动发现运行实例;`--doctor` 一次讲清发现/健康/鉴权,`--print-config` 直出可粘贴的 MCP 客户端配置 |
|
|
461
|
-
| `aw home` | 查看/初始化配置根 `.AgentWorkShop` |
|
|
462
|
-
| `aw init <dir>` | 脚手架一个可运行的新项目(含完整配置系统与 CLI) |
|
|
463
|
-
| `aw register <路径\|URL\|npm:包名>` | 注册一条新指令——项目级或 `--global` 用户级 |
|
|
464
|
-
| `aw update` | 对比 npm 远程最新版本,有新版就就地更新全局安装 |
|
|
465
|
-
| `aw doctor` | 环境 + 项目健康检查(node、配置、端口、密钥) |
|
|
466
|
-
| `aw status` | 运行态总览:模式、配置来源、运行中服务、指令表 |
|
|
467
|
-
| `aw tui` | 终端工作台:频道/Agent 管理、任务下发、实时监控面板、HITL 作答(见 [`docs/tui.md`](./docs/tui.md) · [`tui/README.md`](./tui/README.md)) |
|
|
468
|
-
| `aw version` | 打印 CLI/包版本(别名 `v`) |
|
|
469
|
-
|
|
470
|
-
全局参数:`--help/-h` · `--version/-v` · `--json`(机器可读) · `--root <dir>` · `--debug`。
|
|
471
|
-
|
|
472
|
-
退出码:**0** 成功 · **1** 运行时错误 · **2** 用法错误。带 `--json` 时,失败会以信封返回 `{ ok: false, error: 'unknown-command' \| 'no-project' \| 'usage' \| 'internal' \| … }`,自动化无需解析 stderr 即可分支。
|
|
473
|
-
|
|
474
|
-
### 指令注册
|
|
475
|
-
|
|
476
|
-
指令就是导出 `{ meta, run }` 的普通模块。把它放进扫描目录,下次调用即生效——无需任何登记清单,约定优于配置:
|
|
477
|
-
|
|
478
|
-
| 作用域(高层级优先) | 目录 |
|
|
479
|
-
|---|---|
|
|
480
|
-
| 项目级 | `<检出>/.AgentWorkShop/commands/` |
|
|
481
|
-
| 用户级 | `~/.AgentWorkShop/commands/` |
|
|
482
|
-
| 内建 | 随 CLI 发布(`cli/commands/`) |
|
|
483
|
-
|
|
484
|
-
`aw register <file|url|npm:pkg>` 把指令复制进对应作用域(`--global` 进用户级);`aw help` 列出全部已注册指令。
|
|
485
|
-
|
|
486
|
-
```js
|
|
487
|
-
// ~/.AgentWorkShop/commands/hello.mjs
|
|
488
|
-
export const meta = { name: 'hello', group: '自定义', summary: '问好', usage: 'aw hello [--name <n>]' }
|
|
489
|
-
export async function run(argv, ctx) {
|
|
490
|
-
console.log(`你好 ${argv.flags.name ?? 'AW'} —— 模式: ${ctx.mode}`)
|
|
491
|
-
}
|
|
492
|
-
```
|
|
493
|
-
|
|
494
|
-
---
|
|
495
|
-
|
|
496
|
-
## 工业栈详解
|
|
497
|
-
|
|
498
|
-
### 数据采集(DAQ)
|
|
499
|
-
|
|
500
|
-
- **六协议驱动**:Modbus TCP、Modbus RTU-over-TCP(串口网关)、OPC UA、MQTT、HTTP/REST,加 **serial-bridge 内置插件**(RS-232/485 直连:Modbus RTU 帧机 + ASCII 行协议,写侧带同址回读校验,附串口枚举/探针 API 与前端面板)——连接池、分类错误文案、逐驱动连接测试;驱动注册表接受插件注册任意新协议(协议自带自描述 meta 时,前端表单零改动)。
|
|
501
|
-
- **逐节点边缘运行时**:独立采样节拍、下发节拍、节点级在飞互斥——一个慢驱动绝不拖累邻居。采样与查询的默认值/下限由 `daq.sampling.*`、`daq.query.*` live 设置驱动。
|
|
502
|
-
- **管线**:驱动 → 队列(进程内 / MQTT,断连离线缓冲)→ 消费端乱序防御 → 三路分发:WS 实时直推(节拍门控)、TSDB 批量落库、设备孪生回写。
|
|
503
|
-
- **鲁棒性**:TSDB 单 in-flight 写 + 有界重试,缓冲背压带丢弃计数,真实丢失指标随 `daq.controller` 帧暴露。
|
|
504
|
-
- **告警**:配方级监控窗口,**2% 滞回 + 3 拍去抖**;alarm/offline 切换即时生效(安全优先)。
|
|
505
|
-
- **查询默认按批次作用域**:`daq_query` 自动解析节点所属产线的**活动批次**,按该批次的 `run_id` + `recipe_id` 过滤——Agent 取证据时看到的永远是**当前正在跑的配方**,不会把上一轮配方的样本混进本轮判读。生效口径(`run=<id> 配方「名」(recipe_id)`)打印在结果表头,并在文末逐节点重申;这两个 id 可直接回传给 `daq_query` 或 `aml_dataset_build`。需要跨配方对比/历史复盘时传 `scope: 'all'`(或显式给 `recipe_id` / `run_id` / `product_id`);产线未开跑则不做过滤,历史数据照常可查。
|
|
506
|
-
|
|
507
|
-
### 写控制(DCW)
|
|
508
|
-
|
|
509
|
-
- 工程量写入:`linear` 标定(scale/offset)PLC↔物理,**回读校验**(死区容差),ACK 状态 + 写历史。
|
|
510
|
-
- **联锁**:产线运行时,活动配方的参数窗口对该节点**替代**全局安全量程。
|
|
511
|
-
- **HITL**:`manual` 绑定挂起写入等用户批准(同 Agent+节点去重;批准时二次校验——权限在您点击批准那一刻重查)。
|
|
512
|
-
|
|
513
|
-
### 频道执行三模式(observe / manual / auto)
|
|
514
|
-
|
|
515
|
-
频道级执行模式是产线作业的档位选择器,与产线 `controlMode` 总闸、绑定级 `mode` 取**最严生效**(任一层 manual 即挂审批;observe 直接摘除写面):
|
|
516
|
-
|
|
517
|
-
- **观察(observe)**:只读分析档——写族/治理写/整包方案/启停线工具从注入面摘除,REST/MCP 按名直调也被分发层拒绝(物理零写);Agent 专注数采集、台账查询与分析,并在提示词中收到「观察模式」明示。观察面含 MES 只读族(`mes_catalog/mes_fetch/…`),可拉 MES 数据做只读分析。
|
|
518
|
-
- **手动(manual)**:所有下发/配方操作/回退挂起等人工批准,Agent 必须附带依据(reason/hypothesis),审批卡向人类展示「为什么」;批准附言原样回流给 Agent。
|
|
519
|
-
- **自动(auto,默认)**:频道层中性档——不额外收紧,是否审批由产线总闸与绑定模式决定;自动执行仍受四层限界(量程∩参数∩产品∩配方)∩ 单步上限 ∩ 运行门 ∩ 60s 联锁 ∩ 越窗自动回退,且治理写入必须附带 `hypothesis` 依据——审计台账 `dcw.write.*` 的 detail 记录 `executionMode` 与 `hypothesis`,事后可审计「这次自动写入当时是什么模式、依据是什么」。
|
|
520
|
-
|
|
521
|
-
切换:`PATCH /api/workshop/channels/:id/execution-mode`(owner-only)。收紧方向(auto→manual、任意→observe)直接生效;放开方向(manual→auto、observe→任意)必须显式 `confirm: true`,否则 400 `MODE_CONFIRM_REQUIRED`。每次切换写审计(`channel.execution_mode`)并回收成员运行时(提示词热更新)。UI 入口:Channel 实例设置 → 执行模式(三选一 + 产线总闸压制提示 + 二次确认)。存量频道缺省 auto(频道层不额外收紧),升级零行为变化。
|
|
522
|
-
|
|
523
|
-
### 配方与批次
|
|
524
|
-
|
|
525
|
-
`产线 → 产品 → 配方 → 批次`。开跑逐节点应用配方参数(每次写都校验),逐线门控采集,每条样本打标 `line/product/recipe/run`——产品级数据隔离 + 五维查询(产线 × 产品 × 配方 × 时间 × 节点)。
|
|
526
|
-
|
|
527
|
-
### AML —— 自动建模实验室
|
|
528
|
-
|
|
529
|
-
这是闭环里的建模半边:`/aml` 用已打标的遥测构建**数据集**,把**训练作业**提交到 `uv` 托管的 Python 运行时,在**排行榜**上给各次运行排名,并且只有跨过配置的**门禁**(NRMSE、rollout NRMSE、验证/测试差距、最小行数与运行次数)才允许晋级。晋级后的模型按 id 引用,因此 MPC 或影子孪生控制器消费的是有版本号的产物,而不是含糊的「最新」。
|
|
530
|
-
|
|
531
|
-
- Agent 通过 14 个工具做同样的事(`aml_dataset_build`、`aml_job_submit`、`aml_job_status`、`aml_leaderboard`、`aml_model_promote`、`aml_model_find`、`aml_training_plan_*`……)——提交一个目标,让团队去训练并汇报。
|
|
532
|
-
- Python 运行时由 `uv` 自行引导进配置根内的 `./aml` 资产根;数据集/产物/元数据路径、磁盘配额、作业超时、并发与保留策略全部是**设置项**(`aml` 组共 16 项),而不是常量。
|
|
533
|
-
- 治理默认保守:跨配方数据集除非显式允许否则拒绝,每个作业都有归属。
|
|
534
|
-
- **混合孪生 × MPC 内核**:AML 同时承载**混合孪生**平面——`SceneContract` / `PhysicsModelManifest` / `TwinSnapshot` / `ObjectiveProfile` / `VirtualTrial` / `RecommendationCertificate`,底座是带**有界 PyTorch 残差**的灰箱物理主干,外加 UQ/OOD 筛查与全轨迹硬约束门禁。频道通过 `hybrid_twin` profile 显式启用,启用后会注入 12 个 profile 专属工具(`twin_provider_catalog`、`twin_scene_discover/compile/freeze`、`twin_physics_spec_draft/validate/compile`、`twin_scene_read`、`twin_snapshot_create`、`twin_trial_run`、`mpc_optimize`、`twin_gate_evaluate`)与通用工具 `twin_calibration_request`;试验按设计就是**虚拟**的(`candidateExecuted=false`),只有门禁与收益同时通过才签发推荐证书。服务端策略两档:`safe_small_step`(数据不足) 与 `precise_search`(模型过门禁)。计划与验收记录见 [`docs/aml-hybrid-twin-mpc-integration-plan.md`](./docs/aml-hybrid-twin-mpc-integration-plan.md)、[`docs/aml-hybrid-twin-implementation-acceptance.md`](./docs/aml-hybrid-twin-implementation-acceptance.md)。
|
|
535
|
-
- **任意场景建模闭环**:闭环不绑定内置场景。绑定节点 → `twin_scene_discover` 带证据推断 control/state/disturbance/target/guard 语义 → `twin_scene_compile` 生成 `SceneContract` 草稿 → 您确认 → `twin_scene_freeze` 冻结(版本不可覆盖)→ `twin_physics_spec_draft` 起草骨架 PhysicsSpec(每个状态一条一阶弛豫方程,τ/增益为带先验盒的可校准参数)供您润色 → 校验/编译(白名单 AST,禁任意代码)→ `aml_job_submit { job_kind: 'hybrid_residual' }` **可不带代码**:内置参考训练器先做物理参数校准(stage A)、再拟合 3 成员有界残差集成(stage B)、最后报告 conformal q90 覆盖率(stage D)——校准后的 spec 回写,评估/预测/试验三侧同源。
|
|
536
|
-
- **模型驱动孪生与持续校准**:`twin_trial_run` / `mpc_optimize` 可传 `model_id`——rollout 由训练出的 hybrid 模型驱动(校准后物理主干 + 残差集成 ONNX,`ModelBackedHybridProvider`),UQ 覆盖率与成员分歧来自训练工件;模型数据集与场景的产线/产品/配方不一致直接拒绝(`TWIN_MODEL_SCENE_MISMATCH`)。持续校准请求由 60s 定时 worker 消费,自动提交 `hybrid_residual` 重训**候选**;晋升仍走 HITL + Twin Gate(`AML_TWIN_WORKER_DISABLED=1` 可整体关闭)。
|
|
537
|
-
- **双模式优化闭环**:随包附带两个频道模板——`chtpl-aml-training-default`(建模面:22 个工具,无产线写入、无 MPC)与 `chtpl-aml-optimization-default`(执行面:快照/试验/门禁/MPC/贝叶斯寻优,外加 `optimization_explore`——受治理微写,每笔设定值与响应回读配对落 `optimization_explorations` 台账)。两面按频道互斥注入;优化频道实例化时可选**探索**模式(治理小步,无需模型)或 **aml** 模式(必须给 `boundModelId`——过门禁的模型先绑定,执行面才解锁)。
|
|
538
|
-
- **孪生 Provider 插件 SDK(热加载)**:工业场景的物理主干 / 场景包 / 目标 / 求解器经 `ctx.twin` 注册进 **Twin Provider Registry**(`registerPhysicsProvider` / `registerScenePack` / `registerObjectiveProfile` / `registerTrainingAdapter` / `registerSolverAdapter`,另有 `listProviders` / `getProviderHealth` / `resolveProvider` / `validateProvider` / `retireProvider` / `isRegistryAvailable`)。孪生工具按 `SceneContract.physicsProfileId` 解析 Provider(解析不到回退内置 `twin-injection-default`),**换场景不改工具与频道**;热重载按 **generation** 装载新代、排空旧代,试验与 MPC 持租约 ⇒ 在飞工作不被作废,`retireProvider` 等引用归零才下线。系统自带注塑 Provider 走的正是这套外部契约(`server/plugins-builtin/twin-injection-default/`),装法与其它插件同址、停用或热重载无需重启。清单字段与可运行示例见 [`docs/plugins.md`](./docs/plugins.md)「混合孪生 Provider 插件」,SDK 面见 [`docs/sdk.md`](./docs/sdk.md) §4.10。
|
|
539
|
-
|
|
540
|
-
### 本体与 AI 先行模型闭环(v0.8.0)
|
|
541
|
-
|
|
542
|
-
第三层建模资产——让整个闭环**自描述**。
|
|
543
|
-
|
|
544
|
-
- **创作面**:`POST /api/workshop/ontology` 开草稿(乐观锁 `rev`),整份文档(实体/关系/规则/语义绑定)双重校验——schema/量纲 + **对真实 DAQ/DCW/配方对象的活体绑定校验**。规则走五态生命周期(`proposed → reviewed → validated → approved_for_control → deprecated`),控制级批准需要批准单(第二人;单管理员部署有审计留痕的 solo 豁免),`publish` 拒绝未到控制级批准的硬约束。版本不可变——发布即新版本,`GET /versions/{id}/compare` 给四段 diff;`/ontology` 六 tab 渲染图、编译产物、Rule Trace、绑定与版本台账。十件 Agent 工具覆盖同一面(`ontology_scene_inspect / node_neighbors / draft_create / draft_validate / draft_update / rule_explain / compile_preview / publish_propose / version_compare / draft_autofix`),外部 MCP 服务镜像其中四件只读工具。`/ontology` 的图 tab 渲染可交互节点-边视图(自绘 SVG,MV/CV/结构分道),点击节点抽屉可加载直接与 2 跳邻接(草稿维度子图 API)。
|
|
545
|
-
- **编译不变量**:每版本四类产物——过程模型增量(特征候选、τ = D/v 时滞先验、单调性)、ProblemIR 增量、场景契约补丁、控制守卫集;**只收紧不放宽**、PLC 层隔离(联锁编译为 `PLC_LAYER_REQUIRED` 决策而非软件守卫)、不支持形式编译期拒绝(非线性 QP/线性耦合)、**哈希域分离**:`ontologyRefs` 进 Profile 内容哈希但**永不进**求解器 `ProblemIR` 哈希,本体改动表现为 `409 ONTOLOGY_PACK_DRIFTED` 而不是伪造的 IR 变更。
|
|
546
|
-
- **运行时真正生效的只有四处**:下发时的**节点意图守卫**(`evaluateOntologyGuardsForNodes` → `409 ONTOLOGY_GUARD_BLOCKED`,状态未知 fail-closed)、供数据集/训练规划消费的**训练先验派生**、孪生消费的**场景/守卫补丁**、以及 Profile `ontologyRefs` 钉住的**已发布版本谱系校验**(下发时复核)。其余都是可审阅的元数据。
|
|
547
|
-
- **采纳环——模型进化而不只是参数调优**:`optimizer_profile_propose` 打通「训练 → 求解」最后一公里:Agent 复制最新**已发布** Profile、换上新模型工件、生成 v(n+1) 草稿并挂 HITL 卡(`optimizer-profile:<id>@<版本>`)。批准与裁决两入口同路由——批准 ⇒ 发布草稿(冻结哈希)+ **自动重绑基线版本上的全部绑定**(revision+1,在飞求解按 `BINDING_STALE` fail-closed)+ 审计 `optimizer.profile.adopt`;拒绝/超时 ⇒ 零写。兼容性(工件种类 × 求解器族,D21)在提议时校验,Agent 只能在自身绑定面内提议。真机连续两轮进化(v1 → v2 → v3)验证,每轮后 `optimizer_solve` 均在新工件上 optimal。
|
|
548
|
-
- **实测**:531 单测 · 44 服务层本体断言 · **72/72** 本体真机 e2e · **46/46** 模型闭环真机 e2e(孪生创建链 + 两轮采纳 + 零设备写入)· 14 条 MCP 断言。报告:[`docs/audit/2026-10-24-ontology-acceptance.md`](./docs/audit/2026-10-24-ontology-acceptance.md)、[`docs/audit/2026-10-24-ontology-live-report.md`](./docs/audit/2026-10-24-ontology-live-report.md)、[`docs/audit/2026-10-24-model-loop-acceptance.md`](./docs/audit/2026-10-24-model-loop-acceptance.md)。规范:[`docs/plans/2026-10-24-ontology-service-plan.md`](./docs/plans/2026-10-24-ontology-service-plan.md)、[`docs/plans/2026-10-24-closed-loop-acceptance.md`](./docs/plans/2026-10-24-closed-loop-acceptance.md)。
|
|
549
|
-
- **边界(显式)**:ProblemIr 增量已编译但尚未作为求解约束消费;执行结果回写推荐台账的 outcome 回路、逐回合本体 prompt 注入属下一轮;RDF/OWL/SHACL 导出未交付。
|
|
550
|
-
|
|
551
|
-
---
|
|
552
|
-
|
|
553
|
-
## 使用说明
|
|
554
|
-
|
|
555
|
-
### 认证
|
|
556
|
-
|
|
557
|
-
邮箱 + 密码登录签发 **bearer token**(每用户多 token,可单独吊销)。
|
|
558
|
-
|
|
559
|
-
```bash
|
|
560
|
-
# 注册
|
|
561
|
-
curl -X POST http://localhost:3000/api/users/register \
|
|
562
|
-
-H 'content-type: application/json' \
|
|
563
|
-
-d '{"email":"you@example.com","password":"secret","name":"you"}'
|
|
564
|
-
|
|
565
|
-
# 所有 workshop 调用
|
|
566
|
-
curl http://localhost:3000/api/workshop/channels \
|
|
567
|
-
-H 'authorization: Bearer <token>'
|
|
568
|
-
```
|
|
569
|
-
|
|
570
|
-
### 产线级权限
|
|
571
|
-
|
|
572
|
-
工业数据按**产线**三态管控,由管理员在内置「权限管理」页(`/permissions`,仅 admin 侧栏可见)维护:
|
|
573
|
-
|
|
574
|
-
| 状态 | 数采节点 | 数控(写控)节点 | 可见性 |
|
|
575
|
-
|---|---|---|---|
|
|
576
|
-
| **无权**(普通用户默认) | 隐藏 | 隐藏 | 后端不返回该产线数据——产线运营/数采中心/数字孪生均不可见 |
|
|
577
|
-
| **仅查看** | 只读 | ✕ | 产线可见、实时值可看,但不可写/不可下发/不可绑定设备 |
|
|
578
|
-
| **可操控** | 读取 | 读取+写入 | 全量能力:设定值写入、任务下发、设备绑定 |
|
|
579
|
-
|
|
580
|
-
- `admin` / `editor` 为运营角色,不受授权约束(全量全权)。
|
|
581
|
-
- 普通用户**默认无权**——未授权前看不到任何产线数据。
|
|
582
|
-
- 强制点在数据面:列表接口按授权过滤,写控/下发接口返回人类可读的 403,Agent↔节点绑定校验产线授权(数采需仅查看+,写控需可操控)。
|
|
583
|
-
- Agent 写授权双轨:`kind='dcw'` 节点绑定 = 点位写授权(trial/apply 的覆盖集须 ⊆ 绑定节点面,跟设备走、换配方不停摆);`kind='recipe'` 配方绑定 = 配方操作权(含版本写入/回退)。两种绑定取并集;节点绑定不授予配方版本权,直写工具仍恒拒,全部写入仍经四层限界/运行门/HITL/逐参数 ACK。
|
|
584
|
-
- 插件经 `ctx.permissions`(`lineMode` / `visibleLineIds` / `listGrants` / `setGrants`)获得同一能力面,并有 `permissions:changed` 生命周期钩子;SDK REST 客户端提供 `client.permissions.overview()` / `client.permissions.set(...)`。
|
|
585
|
-
|
|
586
|
-
### 执行模式
|
|
587
|
-
|
|
588
|
-
在任务描述中使用模式前缀(或在 composer UI 中选择):
|
|
589
|
-
|
|
590
|
-
| 模式 | 语义 | 配置 |
|
|
591
|
-
|---|---|---|
|
|
592
|
-
| `goal` | lead 分解 → worker 交付 → **lead 判定满意度**;不满足继续补发;满足收口父任务。 | `goalCriteria` |
|
|
593
|
-
| `loop` | 固定间隔循环重放同一任务。 | `intervalMs`(默认 60000)、`maxIterations`(默认 ∞) |
|
|
594
|
-
| `pipeline` | 有序阶段;阶段 N+1 消费阶段 N 产出。 | `stages: [{name, description, assigneeId?}]` |
|
|
595
|
-
|
|
596
|
-
### 定时任务
|
|
597
|
-
|
|
598
|
-
任意任务都可挂上**调度**,让频道在无人值守时也持续工作:
|
|
599
|
-
|
|
600
|
-
| 维度 | 行为 |
|
|
601
|
-
|---|---|
|
|
602
|
-
| 模式 | `interval` —— 固定节拍(`intervalMs`,60s 下限)· `daily` —— 每日本地时间 `HH:MM` 定点一次 |
|
|
603
|
-
| 管理 | `/workshop/schedules` 页面,或 `POST/PATCH /api/workshop/schedules` |
|
|
604
|
-
| 护栏 | 忙等守卫(频道仍有在飞任务时本次触发顺延)、逐次运行历史带状态、**连续失败熔断**(`maxConsecutiveFailures`,异常调度自动停用) |
|
|
605
|
-
| 典型用法 | 每日巡线(`daq_query` + 漂移摘要写入频道记忆)、周期性偏差检查 + 自动判定、每日 KPI 摘要 |
|
|
606
|
-
|
|
607
|
-
```bash
|
|
608
|
-
# 创建调度:每 30 分钟巡线一次
|
|
609
|
-
curl -X POST http://localhost:3000/api/workshop/schedules \
|
|
610
|
-
-H 'authorization: Bearer <token>' -H 'content-type: application/json' \
|
|
611
|
-
-d '{"channelId":"<id>","name":"line-patrol","title":"巡线","description":"读取 1 号线全部数采节点,把漂移摘要写入频道记忆。","mode":"interval","intervalMs":1800000}'
|
|
612
|
-
```
|
|
613
|
-
|
|
614
|
-
### 四个入口
|
|
615
|
-
|
|
616
|
-
| 入口 | 端点 | 面向 |
|
|
617
|
-
|---|---|---|
|
|
618
|
-
| **WS** | `/api/workshop/ws?channelId=…` | 仪表盘 / UI——AEP v1 信封,per-channel 单调 `seq`,5000 事件环形缓冲,`lastSeq` 续传,快照兜底。 |
|
|
619
|
-
| **MCP** | 进程内服务,25 个工具 | Agent(omp host tools)——管理面 + 作业面工具,Channel 作用域。 |
|
|
620
|
-
| **A2A** | `POST /api/workshop/a2a/:agentId/rpc` | 外部 Agent——JSON-RPC 2.0,`AgentCard` 在 `/card`,`tasks/sendSubscribe` SSE。 |
|
|
621
|
-
| **REST** | `/api/workshop/**` | 人 / 脚本——完整管理面。 |
|
|
622
|
-
|
|
623
|
-
### 任务状态机
|
|
624
|
-
|
|
625
|
-
```
|
|
626
|
-
SUBMITTED ─▶ ASSIGNED ─▶ WORKING ─▶ WAITING ─▶ COMPLETED
|
|
627
|
-
│ │ │ │
|
|
628
|
-
└────────────┴───────────┴──▶ CANCELED / FAILED ─▶(重试 ≤ 3 或取消)
|
|
629
|
-
```
|
|
630
|
-
|
|
631
|
-
---
|
|
632
|
-
|
|
633
|
-
## 端到端验证
|
|
634
|
-
|
|
635
|
-
上面每一条论断,背后都有一个可复跑的套件。验收套件在**生产实例上、跑真实模拟产线协议**(Modbus TCP/RTU、OPC UA、MQTT、HTTP + MQTT/Timescale 管线),配真实引擎 CLI,断言落在数据库、事件流与 HTTP API 上——而不是 mock。2026-09-24 的两轮波次已归档:基础矩阵(约 **1100+ 条真实断言**,v0.7.45 生产构建、隔离 `AW_HOME`、真实浏览器)见 [`docs/audit/e2e-2026-09-24-full-coverage.md`](./docs/audit/e2e-2026-09-24-full-coverage.md);补充功能波次(真实 **PLC 节点模拟器** + 注塑 AgentTeam 闭环、FIFO 多任务、定时任务、协作;报告逐项记录结果,含环境/凭据受限的失败与 SKIP)见 [`docs/audit/e2e-2026-09-24-all-features.md`](./docs/audit/e2e-2026-09-24-all-features.md)。
|
|
636
|
-
|
|
637
|
-
| 套件 | 最新结果 | 覆盖 | 复现 |
|
|
638
|
-
|---|---|---|---|
|
|
639
|
-
| `e2e-multiexpert-remediation-real.mjs` | **17 / 17**(2026-10-28,`.output` 生产构建 + 真实 `omp` + 本机 **Qwen3.5-9B**,**worker 身份**) | 建 AgentChannel(lead+worker) → worker 绑 DAQ/DCW → **运行时提示词注入**(执行模式卡 + 节点语义卡:量程/单步/手动确认) → 工具注入面按绑定差异化 → `daq_query` 真实取数 → `recipe_trial` 挂 HITL → 人工批准 → **ACK 设备证实** → 节点值变更/版本不变/账本新增/数采可查 | `node scripts/e2e-multiexpert-remediation-real.mjs`(需 LM Studio `127.0.0.1:1234`) |
|
|
640
|
-
| `real-injection-closed-loop.mjs` | **双 goal 全部 COMPLETED / 0 失败**(2026-09-24,真实 PLC 模拟器 + 真实 `omp` 团队) | 从模拟器供给注塑产线(11 个数控 + 14 个数采节点)→ 真实 AgentTeam(lead/分析/优化) → 受治理写入且**间隔 65.8s ≥ 60s 策略** → 数采复测 → `qualityOk`、判定 `keep` | `AW_BASE=<base> SIM_BASE=http://127.0.0.1:4010 AW_TOKEN=<token> node scripts/real-injection-closed-loop.mjs` |
|
|
641
|
-
| `_run-real-injection-fifo-goals.mjs` | exit 0(2026-09-24) | **FIFO 根队列多任务串行**:GOAL-2 仅在 GOAL-1 收口后派发;角色门控切换;两次受治理写入间隔 65.04s;两条记录均判定;账本 4 条锚 | `AW_BASE=<base> SIM_BASE=… AW_TOKEN=<token> node scripts/_run-real-injection-fifo-goals.mjs` |
|
|
642
|
-
| `e2e-plc-plugin-closedloop.mjs` | 核心 Stage A–D 全绿(2026-09-24) | PLC 模拟器 Modbus 16040 真实供给 → 数采交叉核对(AW 采样 197 vs 模拟器寄存器 197.37)→ HITL 闭环写 3 区(寄存器 40021/40023/40025 = 210,真实写穿)→ `dcw_judge` keep;插件段 E–H 需外部诊断服务,按约定显式 SKIP | `AW_BASE=<base> KB_BASE=http://127.0.0.1:8771 AW_E2E_USERS_DB=<home>/data/users.sqlite node scripts/e2e-plc-plugin-closedloop.mjs` |
|
|
643
|
-
| `_dbg-schedule-e2e.mjs` | **35 / 0**(2026-09-24) | 定时任务:计划 CRUD + 参数校验、`next_run_at`、`scheduledCount`、忙等守卫 **409 CHANNEL_BUSY**、在途重复 **409 SCHEDULE_RUNNING**、取消对账(run FAILED + 失败计数)、**timer 到点自动触发**(`trigger_kind=timer`)、停用/启用状态机、删除后 404 | `SCHED_E2E_BASE=<base> node scripts/_dbg-schedule-e2e.mjs` |
|
|
644
|
-
| `e2e-crash-cycle.mjs` | **5 / 5 阶段**(2026-09-24) | 常规执行 → 硬杀 → 持久化断言 → 重启 → 重投 → 自动恢复 → 消费缺口重投;每阶段独立进程 | `node scripts/e2e-crash-cycle.mjs --port 3300 --home .e2e-home-full` |
|
|
645
|
-
| `e2e-full-closedloop.mjs` | **98 / 0**(2026-09-24,v0.7.45 生产构建) | 11 阶段:注册 → 产线/产品/配方建模 → 数采采样 → 帧管线 → 数控写入 + 回读 → 回退账本 → Agent 节点鉴权 → 桥越权边界 → 插件 → 数据根隔离 | `node scripts/e2e-full-closedloop.mjs <base>` |
|
|
646
|
-
| 全协议矩阵(真实协议) | **46 / 0**(2026-09-24) | MQTT · Modbus TCP · Modbus RTU · OPC UA · HTTP——逐协议数采、受控下发 + 回读、配方窗联锁与真实 Agent 闭环 | `node scripts/_dbg-protocol-matrix.mjs` |
|
|
647
|
-
| 生产 API 全链路 | 60 / 0(2026-09-24) | 跨重启持久化、模板 CRUD、任务 assign/complete/cancel/loop/pipeline、A2A + mailbox、WS 广播、MCP 端点、级联删除 | `AW_E2E_TOKEN=<token> node scripts/api-live-e2e.mjs` |
|
|
648
|
-
| AgentTeam 群聊 + 原生 HITL | 112 通过 / 0 失败 / 1 阻塞(2026-09-24,真实 `omp`) | 群聊请求 → 可追踪作业;`omp` 原生 ask → HITL 审批 → 引擎带回执继续 | `node scripts/e2e-agentteam-chat.mjs --phase=all` |
|
|
649
|
-
| 终端镜像 + 提示词组合 | **26 / 0** 与 **16 / 0**(2026-09-24,真实 `omp`) | 终端镜像帧、`input`/`abort`/`ui_response` 注入、原生 `ask` 往返;五段式 prompt 组合(场景 → 专长 → 记忆 → 手册 → 任务)在线上可观测 | `node scripts/test-terminal-e2e.mjs` · `node scripts/test-prompt-system.mjs` |
|
|
650
|
-
| 真引擎协作 | 任务流真跑 **PASS**、`e2e-omp-workspace` **13 / 13**、群聊全真 **PASS**、多用户 HIL **PASS**(2026-09-24) | 真实 `omp` lead + worker:分解/派发/进度/成果/workspace 文件读取与卸载;多用户 HITL 可见性;多引擎团队 14/18(omp 与 dsh 全绿) | `npx tsx scripts/e2e-agentteam-task-flow-real.ts` · `npx tsx scripts/e2e-omp-workspace.ts` |
|
|
651
|
-
| 前端验收 | 响应式门禁 **16 / 16** 页、抽屉交互 **10 / 10**(2026-09-24,真实 Chromium) | 受门禁的 16 个路由(应用共 22 个页面组件,含 3D 小镇)在阈值下渲染通过;抽屉开合、滚动锁、路由跳转、零 pageerror | `node scripts/ui/verify-responsive.mjs --routes all` · `node scripts/ui/verify-nav.mjs` |
|
|
652
|
-
| `_aw0746-stage12.mjs` | **10 / 0**(2026-09-25,全局安装的 **v0.7.49 打包系统**) | 健康门(version=0.7.49)→ 管理员登录/角色面 → 创建 Channel(真实 `omp` lead)→ 开群聊 → **真实 omp 群聊回复** → 系统监控可见 omp 子进程 | `AW_BASE=<base> node scripts/_aw0746-stage12.mjs` |
|
|
653
|
-
| `_aw0746-stage34.mjs` | **13 / 0**(2026-09-25,v0.7.49 打包系统 + PLC 模拟器) | 模拟器建线(11 数控 + 14 数采)→ 产品/配方三元组 → 开跑后**样本逐条带 recipe_id/run_id** → `daq_query` **默认只取当前活动批次**(`scope=all` 可放开,实测 1 vs 4)→ 实例化 Hybrid Twin 模板(lead + 3 worker;该轮注入孪生 6 件套 / 总 57 工具,当前 profile 已注入 12 件) | `AW_BASE=<base> node scripts/_aw0746-stage34.mjs` |
|
|
654
|
-
| `_aw0746-stage6b-train-sweep.mjs` | 门禁**全绿**(2026-09-25,v0.7.46 打包系统,真实 torch 训练) | 1 s 拍格数据集(**1724 行 / 10 批次**)→ 内联 code 作业真实训练 → G1 单步 **0.0992**(≤0.10)/ G2 滚动 0.1092(≤0.25)/ G3 泛化 14.6%(≤20%)/ G4 行数与批次 → 模型注册并**晋升 production** | `AW_BASE=<base> AW_DATASET_ID=<ds> node scripts/_aw0746-stage6b-train-sweep.mjs` |
|
|
655
|
-
| `_aw0746-stage7-twin.mjs` | **17 / 0**(2026-09-25,v0.7.49 打包系统,真实 DAQ + 真实模型) | 真实样本 → TwinSnapshot `fresh=true` → 65 组真实 VirtualTrial(12 条安全候选,`candidateExecuted=false`)→ 12 项推荐门禁 **write_eligible** → 门禁结论回写模型 `twinEligibility` → `mpc_optimize` 升档 **precise_search** → 全程 **0 DCW 写入** | `AW_BASE=<base> AW_REQUIRE_MODEL=1 node scripts/_aw0746-stage7-twin.mjs` |
|
|
656
|
-
| `_aw0746-stage6c-jobsmoke.mjs` | **5 / 0**(2026-09-25,v0.7.49 打包系统) | AML 作业链路:内联 `code` 被接受(不再要求 `workspace/train.py`)→ 作业到终态 → 训练日志/ONNX 痕迹 → 实验与逐项门禁落库 | `AW_BASE=<base> node scripts/_aw0746-stage6c-jobsmoke.mjs` |
|
|
657
|
-
| `_aw0748-failclosed-probe.mjs` | **7 / 0**(2026-09-25,v0.7.49 打包系统) | 硬约束**失败关闭**回归:auto_daq 按真实绑定取样建快照 → 可映射约束 `weight` 正常评估 → 不可映射的 `part_weight` 判不通过并给出明细(v0.7.47 会假通过)→ 空轨迹同样判不通过 | `AW_BASE=<base> node scripts/_aw0748-failclosed-probe.mjs` |
|
|
658
|
-
| `_aw0748-mock-closedloop.mjs` | **13 / 0**(2026-09-25,v0.7.49 打包系统,进程内 `mock`,零额度) | 调度闭环回归:创建 mock Channel → 根任务被真实派发并收口 → `[mock:complex]` 强制委派出子任务 → 父任务汇总收口 → mock worker 就位后 [mock:complex] 委派子任务并汇总 → **第二个/第三个根任务同样被派发**(修复前:lead 空闲卸载后 `scheduler` 置空,后续根任务只落库、一直 SUBMITTED 直到 `ROOT_TIMEOUT`)→ mock 无 host tool 通道时工具桥显式拒绝 | `AW_BASE=<base> node scripts/_aw0748-mock-closedloop.mjs` |
|
|
659
|
-
| 工业基准——integrated | **77 / 77 检查(当前基线契约**,见 `bench/PIPELINE.md`;2026-09-21 的早期运行记录为 83/83) | 五协议五产线基准:连通性、采样入 Timescale、受控下发、治理、Agent 闭环、工艺参数语义层 | `node bench/pipeline.mjs --profile integrated` |
|
|
660
|
-
| 多场景闭环 | 4 场景 · 闭环达标(2026-09-21) | 注塑克重窗口寻优 · A²/O 污水排放达标 + 能耗最小化 · 连续退火质量窗与产能权衡 · BOPET 产线任务 | `node bench/scenarios.mjs --scenarios injection,wwtp,anneal` |
|
|
661
|
-
| 产线权限 / 审计负向 | 21 / 21 + 9 / 9(2026-09-12) | 三态产线授权 + 人类可读 403、绑定主体校验、授权撤销收敛、无 token WS 零遥测 | `node scripts/_dbg-perms-e2e.mjs <base> <adminPass>` · `node scripts/_dbg-audit-neg-e2e.mjs <base> <adminPass>` |
|
|
662
|
-
| 渲染回归 | 30 / 30(2026-09-12) | 数采表完整性(行数与 API 动态对齐)、WS 驱动行更新、筛选、详情页、3D 小镇 + 模型库、7 页 smoke、零 pageerror | `node scripts/_dbg-render-regression.mjs <base> <email> <pass>` |
|
|
663
|
-
| AML 自动建模 | 25 / 0(2026-09-24,确定性训练器) | 数据集构建 → 跨配方拒绝 → 作业提交 → 门禁 → 晋级守卫 → 预测守卫 → 审计;`--real` 附加 uv/torch 真实运行时 | `node node_modules/tsx/dist/cli.mjs --tsconfig .nuxt/tsconfig.server.json scripts/e2e-aml.ts` |
|
|
664
|
-
| 离线单元/属性套件 | 全绿 | AEP 事件索引(`test-events-index`)、LRU、数据根拆分(`test-data-root`)、日志洪泛、回退索引、插件加固、任务租约围栏(`test-task-lease-fencing`)、CLI 退出码(`test-cli-exit`)、SDK 能力面(`test-sdk-surface`) | `node scripts/test-<name>.mjs`(TS 套件经 tsx 运行) |
|
|
665
|
-
|
|
666
|
-
历史上的 **v0.7.20** 验收基线——*156 断言、0 失败*——归档于 [`docs/audit/e2e-2026-09-07.md`](./docs/audit/e2e-2026-09-07.md)。性能探针:`scripts/_dbg-render-perf.mjs`。
|
|
667
|
-
|
|
668
|
-
---
|
|
669
|
-
|
|
670
|
-
## 项目结构
|
|
671
|
-
|
|
672
|
-
```
|
|
673
|
-
AgentWorkShop/
|
|
674
|
-
├── bin/ · cli/ # aw CLI——指令注册表 · 内置指令 · 配置引擎接线
|
|
675
|
-
├── app/ # Nuxt 4 前端(srcDir)
|
|
676
|
-
│ ├── pages/ # / · /workshop · /workshop/agents · /workshop/teams
|
|
677
|
-
│ │ # /workshop/channel-templates · /workshop/schedules · /workshop/w/:id
|
|
678
|
-
│ │ # /town · /daq · /daq/:id · /dcw · /dcw/:id
|
|
679
|
-
│ │ # /aml · /operations · /monitor · /logs · /permissions
|
|
680
|
-
│ │ # /plugins · /users · /tokens · /settings
|
|
681
|
-
│ ├── components/workshop/ # 时间线 · 泳道 · 任务板 · 记忆面板 · 3D 小镇
|
|
682
|
-
│ └── stores/composables/ # Pinia + AEP 客户端
|
|
683
|
-
├── server/
|
|
684
|
-
│ ├── api/ # REST + WS + A2A + MCP 路由
|
|
685
|
-
│ ├── services/workshop/
|
|
686
|
-
│ │ ├── runtime/ # manager · scheduler-loop · task-engine · memory · mailbox
|
|
687
|
-
│ │ ├── agents/ # AgentInterface:14 个引擎(+ 工业工具)
|
|
688
|
-
│ │ ├── daq/ dcw/ aml/ # 边缘运行时 · 驱动 · 队列 · 存储 · 建模实验室
|
|
689
|
-
│ │ └── db/ # node:sqlite 仓储层
|
|
690
|
-
│ ├── mcp/ # MCP 服务(25 个工具,进程内 workshop 面)
|
|
691
|
-
│ ├── plugins-builtin/ # 随包发布的插件(serial-bridge · rag-bridge · diag-bridge · twin-injection-default)
|
|
692
|
-
│ └── plugins/ # 运行时装配(单例)
|
|
693
|
-
├── mcp/ # aw mcp —— 零依赖 stdio MCP 网关(41 个工具,实例自动发现)
|
|
694
|
-
├── sdk/ # agentworkshop/sdk——插件上下文、钩子总线、REST 客户端、浏览器 SDK
|
|
695
|
-
├── tui/ # 终端工作台(aw tui)
|
|
696
|
-
├── shared/
|
|
697
|
-
│ └── config/ # schema.json(128 个设置描述符)+ 引擎(合并/校验/持久化)+ 路径解析器
|
|
698
|
-
├── config.yml # 工厂默认值(构建/启动时读取;版本号来自 package.json)
|
|
699
|
-
├── .AgentWorkShop/ # 检出内的配置根——prompts(版本化)+ 运行时覆盖 · 数据 · 日志 · 指令(git 忽略)
|
|
700
|
-
├── data/ # 迁移前的旧版位置(自动迁移进配置根)
|
|
701
|
-
└── scripts/ # 启动器 · home 引导 · E2E · 验证套件
|
|
702
|
-
```
|
|
703
|
-
|
|
704
|
-
## 技术栈
|
|
705
|
-
|
|
706
|
-
| 层 | 技术 |
|
|
707
|
-
|---|---|
|
|
708
|
-
| 框架 | [Nuxt 4](https://nuxt.com) + Nitro(WebSocket) |
|
|
709
|
-
| UI | Vue 3.5 · Pinia · Ant Design Vue · UnoCSS · Three.js · ECharts |
|
|
710
|
-
| 语言 | TypeScript 5.7 全栈;`shared/` 前后端共用 |
|
|
711
|
-
| CLI | Node ESM CLI,可插拔指令注册表(`bin/aw.mjs`) |
|
|
712
|
-
| 持久化 | `node:sqlite`(零原生依赖)+ FTS5 + 可选 `sqlite-vec`;时序用 TimescaleDB |
|
|
713
|
-
| 校验 | `zod` —— 每个消息边界 |
|
|
714
|
-
| 互操作 | `@modelcontextprotocol/sdk` · A2A(JSON-RPC 2.0)· AEP v1(自研 WS 协议) |
|
|
715
|
-
| 现场总线 | `modbus-serial` · `node-opcua` · `mqtt` |
|
|
716
|
-
|
|
717
|
-
## 开发指南
|
|
718
|
-
|
|
719
|
-
```bash
|
|
720
|
-
pnpm dev # 开发服务(端口取自有效配置)
|
|
721
|
-
pnpm cli … # 仓库内使用 CLI:pnpm cli config list
|
|
722
|
-
pnpm tui # 终端工作台(连运行中的实例)
|
|
723
|
-
pnpm build && pnpm start
|
|
724
|
-
pnpm typecheck # 包装脚本:prepare → 剔除失效 volar 条目 → vue-tsc -b
|
|
725
|
-
pnpm lint
|
|
726
|
-
pnpm test:api-live # 针对运行中服务的 API 套件
|
|
727
|
-
node scripts/e2e-full-closedloop.mjs # 全链路闭环(需服务端运行中)
|
|
728
|
-
node scripts/e2e-crash-cycle.mjs # 硬杀 → 重启 → 重投(自带隔离实例管理)
|
|
729
|
-
node scripts/test-sdk-surface.mjs # SDK 导出面守卫
|
|
730
|
-
```
|
|
731
|
-
|
|
732
|
-
> 排障前先知道两条测试运行约定:(1)`pnpm typecheck` 走 [`scripts/typecheck.mjs`](./scripts/typecheck.mjs),
|
|
733
|
-
> 而不是裸 `nuxt typecheck`——Nuxt 4.5 仍会把 `vue-router/volar/sfc-route-blocks` 编译插件写进生成的
|
|
734
|
-
> tsconfig,而 vue-router 4.6 已不再导出该子路径,裸 vue-tsc 在加载配置阶段就崩,类型检查其实一次都没跑;
|
|
735
|
-
> (2)导入**真实路由 handler** 的 TS 套件(如 `scripts/e2e-memory-system.ts`)要走纯 node 路径
|
|
736
|
-
> `node --experimental-transform-types --import ./scripts/_audit/ts-register-hook.mjs <suite>.ts`,
|
|
737
|
-
> 该钩子把 Nuxt 的 `#imports` 虚拟模块映射到共享配置桩。
|
|
738
|
-
|
|
739
|
-
文档站位于 `docs/site/`(VitePress),由 [`.github/workflows/deploy-docs.yml`](./.github/workflows/deploy-docs.yml) 部署到 GitHub Pages:
|
|
740
|
-
|
|
741
|
-
```bash
|
|
742
|
-
cd docs/site && npx vitepress dev # 本地预览
|
|
743
|
-
cd docs/site && npx vitepress build # 生产构建 → .vitepress/dist
|
|
744
|
-
```
|
|
745
|
-
|
|
746
|
-
该工作流在构建前把 `docs/{cli,plugins,sdk}.md`(及其 `.en.md` 双语对照)同步进文档站,因此这些文件是单页指南的唯一事实来源。
|
|
747
|
-
|
|
748
|
-
## 部署(生产)
|
|
749
|
-
|
|
750
|
-
目标形态:**内网单实例 + 反向代理终结 TLS**。服务本身刻意不做 TLS 监听 ——
|
|
751
|
-
由 caddy/nginx 在前面终结(顺带获得 HTTP→HTTPS 跳转、访问日志与第二层限流)。
|
|
752
|
-
|
|
753
|
-
> [!IMPORTANT]
|
|
754
|
-
> **一个配置根只跑一个实例。** 多个实例指向同一 `.AgentWorkShop`(repo 或 home)会争抢
|
|
755
|
-
> 插件 KV 文件与 SQLite 写入 —— Windows 上表现为 `EPERM` rename 告警刷屏。并行实例必须用
|
|
756
|
-
> **独立 `AW_HOME` 配置根隔离**(与 E2E 套件的隔离方法论一致)。
|
|
757
|
-
|
|
758
|
-
```bash
|
|
759
|
-
# 1) 构建并启动(缺 .output 产物时生产入口会拒启)
|
|
760
|
-
pnpm build
|
|
761
|
-
NUXT_SESSION_PASSWORD=$(node -e "console.log(require('crypto').randomBytes(24).toString('hex'))") \
|
|
762
|
-
PORT=3000 node scripts/start.mjs
|
|
763
|
-
```
|
|
764
|
-
|
|
765
|
-
**TLS 反向代理。** caddy(自动证书,WebSocket 天然透传):
|
|
766
|
-
|
|
767
|
-
```caddy
|
|
768
|
-
aw.example.com {
|
|
769
|
-
reverse_proxy 127.0.0.1:3000
|
|
770
|
-
}
|
|
771
|
-
```
|
|
772
|
-
|
|
773
|
-
nginx(注意 WebSocket `Upgrade` 头 —— 工作台、HITL 面板、实时日志全部走 WS):
|
|
774
|
-
|
|
775
|
-
```nginx
|
|
776
|
-
server {
|
|
777
|
-
listen 443 ssl;
|
|
778
|
-
server_name aw.example.com;
|
|
779
|
-
# ssl_certificate / ssl_certificate_key ...
|
|
780
|
-
location / {
|
|
781
|
-
proxy_pass http://127.0.0.1:3000;
|
|
782
|
-
proxy_http_version 1.1;
|
|
783
|
-
proxy_set_header Upgrade $http_upgrade;
|
|
784
|
-
proxy_set_header Connection "upgrade";
|
|
785
|
-
proxy_set_header Host $host;
|
|
786
|
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
787
|
-
proxy_read_timeout 300s;
|
|
788
|
-
}
|
|
789
|
-
}
|
|
790
|
-
```
|
|
791
|
-
|
|
792
|
-
全站 HTTPS 后打开运行时设置 `security.hstsEnabled`,响应带 `Strict-Transport-Security`。
|
|
793
|
-
|
|
794
|
-
**进程守护。** `scripts/start.mjs` 已自带子进程监管(崩溃退避重启、30s 健康探针、
|
|
795
|
-
堆水位主动重启)—— 把**它**交给服务管理器,让守护进程本身也能扛住重启:
|
|
796
|
-
|
|
797
|
-
```ini
|
|
798
|
-
# /etc/systemd/system/agentworkshop.service
|
|
799
|
-
[Service]
|
|
800
|
-
WorkingDirectory=/opt/agentworkshop
|
|
801
|
-
Environment=NUXT_SESSION_PASSWORD=<生成的密钥>
|
|
802
|
-
Environment=PORT=3000
|
|
803
|
-
ExecStart=/usr/bin/node scripts/start.mjs
|
|
804
|
-
Restart=always
|
|
805
|
-
User=aw
|
|
806
|
-
[Install]
|
|
807
|
-
WantedBy=multi-user.target
|
|
808
|
-
```
|
|
809
|
-
|
|
810
|
-
Windows 用 `nssm install AgentWorkShop "C:\Program Files\nodejs\node.exe" scripts\start.mjs`。
|
|
811
|
-
**不要**对同一配置根起第二个实例 —— 单实例锁(`.runtime/aw.lock` 带心跳)会让新进程
|
|
812
|
-
顶替、旧进程退出。
|
|
813
|
-
|
|
814
|
-
**生产认证加固。** `security.allowRegistration` 缺省 **false**:首管理员就位后两个
|
|
815
|
-
注册端点一律 403,账号由管理员创建;管理员建号/重置密码的账号带 `mustChangePassword`
|
|
816
|
-
标记 —— 工作台在首次登录时强制改密(管理员重置会再次置位并吊销全部旧会话)。
|
|
817
|
-
首启引导不受影响:零用户时首个注册账号仍自动成为管理员。
|
|
818
|
-
|
|
819
|
-
**备份与恢复。** `server/plugins/backup.ts` 每 24h 快照(保留 7 份)到
|
|
820
|
-
`<配置根>/.AgentWorkShop/data/backups/`:
|
|
821
|
-
|
|
822
|
-
- 三个 SQLite 库(`workshop/users/daq-timeseries.sqlite`,WAL checkpoint + 原子改名)
|
|
823
|
-
- 全部 JSON 仓储 + `config.yml` / `runtime-settings.json`(`files-<stamp>/`)
|
|
824
|
-
- 本地对象存储与导出 `daq-objects/`、`daq-exports/`(`objects-<stamp>/`)——
|
|
825
|
-
超过 `AW_BACKUP_OBJECTS_MAX_MB`(缺省 200MB)时显式跳过并落日志
|
|
826
|
-
- 每次附带 `manifest-<stamp>.json`;TimescaleDB/MinIO **docker 卷不在文件备份范围** ——
|
|
827
|
-
用 `pg_dump` / `mc mirror` 或卷快照另行备份
|
|
828
|
-
|
|
829
|
-
恢复演练(上线前务必做一次):停服 → 移走 `backups/` → 用最新 `*.bak` + `files-*` +
|
|
830
|
-
`objects-*` 重组数据目录 → 启动 → 核验 `/api/health`、管理员登录、产线/配方在册。
|
|
831
|
-
`BACKUP_DISABLED=1`、`BACKUP_INTERVAL_HOURS`、`BACKUP_KEEP` 可调。
|
|
832
|
-
|
|
833
|
-
**生产检查清单。** `NUXT_SESSION_PASSWORD` 随机生成(已知开发密钥会拒启) ·
|
|
834
|
-
`security.allowRegistration=false`(缺省) · 反代 TLS + HSTS · 服务管理器就位 ·
|
|
835
|
-
恢复演练已过 · `/api/health` + `/api/metrics` 接入监控 · `AW_HEAP_LIMIT_MB` 按主机
|
|
836
|
-
配好 · `AW_RATE_LIMIT_OFF` **不设**(内置限流必须在线) ·
|
|
837
|
-
`AW_BENCH_MODE` **不设**(写控联锁与限频必须全量在岗)。
|
|
838
|
-
|
|
839
|
-
**基准开关 `AW_BENCH_MODE=1` 是实验专用,生产禁用。** 该开关服务于 `bench/` 论文
|
|
840
|
-
基准管线(E1a 四臂消融),置 1 时:API 限流总闸停用;在线探索限频(单步步长上限/
|
|
841
|
-
60s 最小写入间隔/写入保持窗)整体豁免;写接口接受 `x-aw-bench-arm` 头选择旁路
|
|
842
|
-
软联锁层(no-interlock/no-readback/ungated;硬量程与结构层校验结构性不可旁路)。
|
|
843
|
-
生产部署的唯一正确值是**不设置**:代码按 `=== '1'` 精确判断,缺省即恒 full 臂;
|
|
844
|
-
开关在模块加载时读取,必须在进程启动前确认未设置(误配时启动日志会告警)。
|
|
845
|
-
`AW_RATE_LIMIT_OFF=1` 只关 API 限流、不影响写控联锁,生产同样必须不设。
|
|
846
|
-
|
|
847
|
-
## 研究论文
|
|
848
|
-
|
|
849
|
-
平台的治理机制已写成投稿级论文——**《Grading Machine-Originated Plant Writes: Separately
|
|
850
|
-
Inspectable Evidence for Industrial Agent Teams》**(IEEE Transactions on Industrial
|
|
851
|
-
Informatics 匿名评审稿,IEEEtran 双栏 10 页)。源文件、编译稿与五席评审记录在
|
|
852
|
-
[`paper/tii/SUBMISSION-IEEE-TII/`](./paper/tii/SUBMISSION-IEEE-TII/)。论文中的每一条机制
|
|
853
|
-
主张都由仓库内归档证据支撑:
|
|
854
|
-
|
|
855
|
-
- [`docs/benchmarks/`](./docs/benchmarks)——2026-10 部署级回归战役:14 次流水线执行、
|
|
856
|
-
1134 项检查零失败(每次运行归档 `report.md` / `benchmark.json` / `timeline.jsonl`),
|
|
857
|
-
另含准入消融伴随运行;
|
|
858
|
-
- [`docs/experiments/`](./docs/experiments)——铸膜闭环实验计划与结果(论文 Q3 确定性闭环);
|
|
859
|
-
- [`docs/audit/`](./docs/audit)——评估节引用的验收波次(基础波 1100+ 条;补充波逐项记录,含受限项)。
|
|
860
|
-
|
|
861
|
-
本地复跑论文流水线:设置 `AW_BENCH_MODE=1` 并按
|
|
862
|
-
[`bench/PIPELINE.md`](./bench/PIPELINE.md) 执行。
|
|
863
|
-
|
|
864
|
-
## 路线图
|
|
865
|
-
|
|
866
|
-
| 能力 | 状态 |
|
|
867
|
-
|---|---|
|
|
868
|
-
| Channel 运行时、lead 编排、7 态任务引擎 | 已交付 |
|
|
869
|
-
| 四入口:WS(AEP v1)· MCP · A2A · REST | 已交付 |
|
|
870
|
-
| 持久记忆(FTS5 + 可选向量混合) | 已交付 |
|
|
871
|
-
| 工业栈:数采 · 数控写控 · 产线/配方/批次 | 已交付 |
|
|
872
|
-
| Agent ↔ 节点绑定 + HITL 审批 + 联锁 | 已交付 |
|
|
873
|
-
| 3D 数字孪生小镇 · 产线运营 UI · 仪表盘 | 已交付 |
|
|
874
|
-
| 全功能 live E2E(Agent 读写真实产线,23 项检查) | 已交付 |
|
|
875
|
-
| 运行时配置系统:设置持久化 · 热重载 · 设置页 UI | 已交付 |
|
|
876
|
-
| `aw` CLI:config · start/dev · init · register · doctor | 已交付 |
|
|
877
|
-
| 多 Harness 注册表:omp · codex · dsh · opencode 子进程引擎 | 已交付 |
|
|
878
|
-
| 六种现场协议:Modbus TCP · Modbus RTU-over-TCP · OPC UA · MQTT · HTTP + 内置 serial-bridge 串口插件(数采 + 数控双向) | 已交付 |
|
|
879
|
-
| Harness 可用性探测 + 执行前引擎强校验(UI 禁选 + 409) | 已交付 |
|
|
880
|
-
| Recipe 归因版本化 + 非破坏回退(界面 + Agent 工具) | 已交付 |
|
|
881
|
-
| 配方链路优化闭环:recipe_trial 整批试验(不写版本)→ 进步才固化 → 统一回退(PLC 整批恢复) | 已交付 |
|
|
882
|
-
| 频道绑定产线:全员只读日志/配方/状态 + 产线简报注入提示词 | 已交付 |
|
|
883
|
-
| Agent 自查工具:line_context / ops_log / recipe_log / recipe_versions / dcw_journal | 已交付 |
|
|
884
|
-
| 多 Harness 并行真实产线 live E2E(四引擎、一条产线) | 已交付 |
|
|
885
|
-
| HITL 审批流经真实 OPC UA 写入验证 | 已交付 |
|
|
886
|
-
| 双语文档(简体中文 / English,VitePress 语言切换) | 已交付 |
|
|
887
|
-
| Channel 级 LLM provider/model 选择(取自实时 Harness 目录) | 已交付 |
|
|
888
|
-
| 可配置数采/时序节拍(采样与查询的默认值 + 下限,live 热重载) | 已交付 |
|
|
889
|
-
| 团队级插件开关(建队勾选 + 团队弹层,按 Channel 过滤工具注入) | 已交付 |
|
|
890
|
-
| 插件热管理:`/plugins` 管理页 + `aw plugin list/enable/disable` | 已交付 |
|
|
891
|
-
| 渲染性能专项(v0.7.27):数采主线程阻塞 −90%、孪生 −69%,自适应画质回升最高档;`window.__townStats` 仪表化 | 已交付 |
|
|
892
|
-
| 插件系统 v2:浏览器面板注入、插件级 settings/groups、插件 i18n、宿主运行时服务(`ctx.services`/`ctx.daq`/`ctx.omp`) | 已交付 |
|
|
893
|
-
| Instrument Glass 材质层(v0.7.36):三级半透明材质、通透感、高光边缘、弹簧动效、逐页路由转场 | 已交付 |
|
|
894
|
-
| 实时管线优化:数采帧索引 O(n²)→O(n)、逐 Agent 增量事件索引、图表原地更新、按大小感知的 JSON 持久化 | 已交付 |
|
|
895
|
-
| AML 自动建模实验室:数据集构建 · 作业编排(uv 托管 Python)· 排行榜 · 晋级门禁 · 14 个 Agent 工具 | 已交付 |
|
|
896
|
-
| Claude Agent SDK 适配器——常驻会话、同轮 steer 与 `canUseTool` HITL | 已交付 |
|
|
897
|
-
| 工艺参数语义映射:`param_control`/`param_read` 按工艺参数寻址、四层写入限界、调控闭环(`dcw_judge`/`dcw_rollback`) | 已交付 |
|
|
898
|
-
| Channel 群聊:请求升级为可追踪作业;原生 HITL(`omp` ask → 审批 → 回执) | 已交付 |
|
|
899
|
-
| 定时任务:`interval` / `daily` 双模式、逐次运行历史、忙等守卫 + 连续失败熔断 | 已交付 |
|
|
900
|
-
| 根任务队列(FIFO、排队位次可见)+ 派发代与执行租约围栏 | 已交付 |
|
|
901
|
-
| 监督看门狗 + Harness 连续性(`persistent`/`per_turn`、会话复用租约带重启原因) | 已交付 |
|
|
902
|
-
| Channel 过程记忆:确定性事件契约、canonical root 摘要、持久 outbox + 补偿 worker | 已交付 |
|
|
903
|
-
| 运行时可观测:`GET /api/system/monitor` 团队指标,每项带文档化回滚开关 | 已交付 |
|
|
904
|
-
| 工业基准:integrated 档(83 项检查、硬门禁)+ 多场景闭环(注塑 / 污水 / 退火 / BOPET)+ 质量目标 optloop 寻优 | 已交付 |
|
|
905
|
-
| 生产构建全覆盖验收波次矩阵(约 1100+ 条真实断言,2026-09-24) | 已交付 |
|
|
906
|
-
| 孪生 Provider 插件 SDK:物理/场景/目标/训练/求解器 Provider 经 `ctx.twin` 热加载注册,按 generation 装载 + 租约排空,内置 Provider 走同一外部契约 | 已交付 |
|
|
907
|
-
| 任意场景混合孪生建模闭环:场景发现 → 编译 → 冻结 → 物理 spec 起草/校验/编译 → 参考训练器作业(物理校准 + 残差集成 + conformal UQ)、模型驱动试验、持续校准 worker | 已交付 |
|
|
908
|
-
| 双模式优化闭环:`aml-training` / `aml-optimization` 专属频道模板、互斥工具面、探索 ↔ 生产双模式、带回读配对的治理微写 | 已交付 |
|
|
909
|
-
| 产线操作流水:`/operations` 单页 + 工作台控制台面板,九类操作时间线、结构化写控 diff、闭环阶段推断 | 已交付 |
|
|
910
|
-
| 外部 MCP 网关:`aw mcp` stdio 服务(41 个工具)、实例自动发现、`mcp.enabled` 运行时门控 | 已交付 |
|
|
911
|
-
| 可配置系统时区(`time.timeZone`,live 热生效)+ 配方参数级单步限幅 `stepLimit` + 配方 `description` 元字段 | 已交付 |
|
|
912
|
-
| 生产硬化:TLS、MQTT 鉴权、OPC UA 签名+加密缺省、结构化审计日志 | 规划中 |
|
|
913
|
-
| 边缘部署形态:独立 edge-agent + 中心 broker | 规划中 |
|
|
914
|
-
| 报警外送(邮件/webhook)+ 确认工作流 | 规划中 |
|
|
915
|
-
| CI 流水线(typecheck + lint + e2e)——文档部署已跑在 GitHub Actions 上 | 规划中 |
|
|
916
|
-
| License:Apache 2.0(宽松许可 · 允许商用与生产部署) | 已交付 |
|
|
917
|
-
|
|
918
|
-
## 许可证
|
|
919
|
-
|
|
920
|
-
AgentWorkShop 是独立项目,**不是 Anthropic 或任何 LLM 厂商的官方产品**。它通过公开接口与 Agent harness(如 `omp`)集成。
|
|
921
|
-
|
|
922
|
-
**AgentWorkShop 为开源软件,依据 [Apache License 2.0](./LICENSE) 发布。**
|
|
923
|
-
|
|
924
|
-
- **允许** —— 个人、学术与**商业使用**,包括生产部署、修改与再分发,均按 Apache License 2.0 条款授权。
|
|
925
|
-
- **条件** —— 保留版权与许可声明、标注重大修改,再分发时附带 `NOTICE` 文件。
|
|
926
|
-
- **无商标与担保** —— 许可不授予商标权;软件按 **“原样”** 提供,不附带任何明示或默示担保。
|
|
927
|
-
|
|
928
|
-
完整条款见 [LICENSE](./LICENSE)。问题反馈:[GitHub @kingdol666](https://github.com/kingdol666)。
|
|
929
|
-
|
|
930
|
-
<div align="center">
|
|
931
|
-
|
|
932
|
-
<a href="https://star-history.com/#kingdol666/AgentWorkShop&Date">
|
|
933
|
-
<picture>
|
|
934
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=kingdol666/AgentWorkShop&type=Date&theme=dark" />
|
|
935
|
-
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=kingdol666/AgentWorkShop&type=Date" />
|
|
936
|
-
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=kingdol666/AgentWorkShop&type=Date" width="80%" />
|
|
937
|
-
</picture>
|
|
938
|
-
</a>
|
|
939
|
-
|
|
940
|
-
</div>
|
|
941
|
-
|
|
942
|
-
---
|
|
943
|
-
|
|
944
|
-
## 参与贡献
|
|
945
|
-
|
|
946
|
-
欢迎提交 Issue 与 Pull Request。提 PR 之前请先:
|
|
947
|
-
|
|
948
|
-
1. **先读你要改的那份契约**——扩展面见 [`docs/plugins.md`](./docs/plugins.md),编程客户端见 [`docs/sdk.md`](./docs/sdk.md),指令注册见 [`docs/cli.md`](./docs/cli.md)。
|
|
949
|
-
2. **本地跑一遍门禁**:
|
|
950
|
-
|
|
951
|
-
```bash
|
|
952
|
-
pnpm typecheck # vue-tsc 覆盖 app + server + shared
|
|
953
|
-
pnpm lint # eslint 9,期望 0 warning
|
|
954
|
-
node scripts/e2e-full-closedloop.mjs # 全闭环 E2E,需要服务在跑
|
|
955
|
-
node scripts/test-sdk-surface.mjs # SDK 导出面不允许漂移
|
|
956
|
-
node scripts/check-docs-sync.mjs # docs/site 与 docs/*.md 保持同步
|
|
957
|
-
```
|
|
958
|
-
|
|
959
|
-
3. **提交信息走约定式**——`commit-msg` 钩子跑 `commitlint`(`feat:` / `fix:` / `docs:` / `refactor:` / `perf:` / `test:` / `chore:`),`lint-staged` 会在提交时自动修复暂存的 JS/TS/Vue。
|
|
960
|
-
4. **改了行为就补测试。** 本仓库以 `scripts/` 下的**真实 E2E 脚本**为主,而不是 mock——一条新的工业链路应该能被证明可跑通。
|
|
961
|
-
|
|
962
|
-
> [!TIP]
|
|
963
|
-
> 报 bug 之前先跑 `aw doctor`:它会端到端体检环境(Node 版本、配置根、端口占用、SQLite、可选的 Docker 服务),大多数「起不来」在这一步就有答案。
|
|
964
|
-
|
|
965
|
-
## 安全
|
|
966
|
-
|
|
967
|
-
发现漏洞请**不要**开公开 Issue,而应通过 [GitHub Security Advisories](https://github.com/kingdol666/AgentWorkShop/security/advisories/new) 私下报告,并附上复现步骤与受影响版本。
|
|
968
|
-
|
|
969
|
-
当你把 AgentWorkShop 指向真实设备时,它就在驱动真实设备:接入现场 PLC 之前,请先复核 `config.yml` 里的联锁、安全量程与 HITL 设置。默认姿态是建议性的——写操作要过联锁、要经审批、要回读校验——但产线侧逻辑始终拥有最终否决权。
|
|
970
|
-
|
|
971
|
-
---
|
|
972
|
-
|
|
973
|
-
<div align="center">
|
|
974
|
-
|
|
975
|
-
**如果这个项目对你有用,点一个 ⭐ 能让更多人找到它。**
|
|
976
|
-
|
|
977
|
-
<a href="https://star-history.com/#kingdol666/AgentWorkShop&Date">
|
|
978
|
-
<picture>
|
|
979
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=kingdol666/AgentWorkShop&type=Date&theme=dark" />
|
|
980
|
-
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=kingdol666/AgentWorkShop&type=Date" />
|
|
981
|
-
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=kingdol666/AgentWorkShop&type=Date" width="80%" />
|
|
982
|
-
</picture>
|
|
983
|
-
</a>
|
|
984
|
-
|
|
985
|
-
<br />
|
|
986
|
-
|
|
987
|
-
**[在线文档](https://kingdol666.github.io/AgentWorkShop)** · **[上手指南](https://kingdol666.github.io/AgentWorkShop/guide/getting-started)** · **[插件 API](./docs/plugins.md)** · **[SDK](./docs/sdk.md)** · **[CLI](./docs/cli.md)** · **[English](./README.md)**
|
|
988
|
-
|
|
989
|
-
<sub>基于 Nuxt 4 · Vue 3 · TypeScript · <code>node:sqlite</code> 构建 —— 监督层,秒级软实时。<br />
|
|
990
|
-
时序关键回路请留在 PLC 内。</sub>
|
|
991
|
-
|
|
992
|
-
</div>
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/hero.png" alt="AgentWorkShop —— 让 Agent 团队运行真实产线" width="100%" />
|
|
4
|
+
|
|
5
|
+
<br />
|
|
6
|
+
|
|
7
|
+
# AgentWorkShop
|
|
8
|
+
|
|
9
|
+
**AI Agent 团队与产线在此交汇。**
|
|
10
|
+
|
|
11
|
+
[](https://github.com/kingdol666/AgentWorkShop)
|
|
12
|
+
[](https://github.com/kingdol666/AgentWorkShop)
|
|
13
|
+
[](https://github.com/kingdol666/AgentWorkShop/releases)
|
|
14
|
+
[](https://github.com/kingdol666/AgentWorkShop/stargazers)
|
|
15
|
+
[](https://github.com/kingdol666/AgentWorkShop/commits)
|
|
16
|
+
[](https://github.com/kingdol666/AgentWorkShop/issues)
|
|
17
|
+
[](./LICENSE)
|
|
18
|
+
|
|
19
|
+
[](https://nuxt.com)
|
|
20
|
+
[](https://vuejs.org)
|
|
21
|
+
[](https://www.typescriptlang.org)
|
|
22
|
+
[](https://nodejs.org)
|
|
23
|
+
[](https://nodejs.org/api/sqlite.html)
|
|
24
|
+
[](./docs/site/guide/daq-protocols.md)
|
|
25
|
+
[](./docs/plugins.md)
|
|
26
|
+
[](https://kingdol666.github.io/AgentWorkShop)
|
|
27
|
+
**[English](./README.md)** · **[在线文档](https://kingdol666.github.io/AgentWorkShop)** · **[版本发布](https://github.com/kingdol666/AgentWorkShop/releases)** · **[更新日志](./changelog.md)** · **[插件 API](./docs/plugins.md)** · **[SDK](./docs/sdk.md)**
|
|
28
|
+
|
|
29
|
+
<sub><b>v0.8.8</b> · 14 个执行引擎 · 6 种现场协议(5 内置 + 串口插件)+ MES REST 集成(镜像与直连双路径)· 数据分析台账(产线级权限隔离)· 工艺参数优化器(过程模型 → AML → OSQP 求解 → 治理下发)· **本体服务 + AI 先行模型闭环**(本体 · 孪生 · 求解器 · AML 采纳)· 104 个宿主工具 · 138 个运行时设置项 · 双语文档(简体中文 / English)</sub>
|
|
30
|
+
|
|
31
|
+
<br />
|
|
32
|
+
|
|
33
|
+
*一个配置驱动的平台:**AI Agent 团队**与**工业数字孪生**共享同一运行时——Agent 查询真实遥测、经人工审批的写控回路下发监督设定值,每个事件实时推送到 3D 孪生。*
|
|
34
|
+
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
[快速开始](#快速开始) · [实机演示](#实机演示) · [核心能力](#核心能力) · [设计架构](#设计架构) · [插件与扩展](#插件与扩展) · [验证与验收](#验证与验收) · [文档站](https://kingdol666.github.io/AgentWorkShop)
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 这是什么?
|
|
42
|
+
|
|
43
|
+
一个配置驱动的平台:**AI Agent 团队**与**工业产线**共享同一运行时——Agent 查询真实遥测、经人工审批的写控回路下发监督设定值,每个事件实时推送到 3D 孪生。
|
|
44
|
+
|
|
45
|
+
- **监督层定位**(SCADA 同位,秒级软实时):数采、写控、产线/配方/批次、权限、审计一体;
|
|
46
|
+
- **Agent 不是聊天装饰**:14 个执行引擎可混编(omp / codex / opencode / claude / gemini / …),7 态任务机 + 根任务队列 + HITL 审批,Agent 与节点绑定后按授权读写真实设备;
|
|
47
|
+
- **闭环是真的**:读数 → 分析 → 提案 → 审批 → 写穿 → 回读证实 → 台账留痕,全链有实机验收。
|
|
48
|
+
|
|
49
|
+
## 实机演示
|
|
50
|
+
|
|
51
|
+
<p align="center">
|
|
52
|
+
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/fig-01-closedloop.gif" alt="闭环全流程:目标 → 读取 → 计算 → 审批 → 写控 → 回读 → 汇报" width="86%" />
|
|
53
|
+
<br/>
|
|
54
|
+
<sub><b>闭环全流程</b> —— 录制自运行中的实例:真实数采历史、真实写控、真实 HITL 审批</sub>
|
|
55
|
+
</p>
|
|
56
|
+
|
|
57
|
+
<p align="center">
|
|
58
|
+
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/readme-grid-core.jpg" alt="仪表盘 / 产线作业 / 数采中心 / 自动建模实验室 / 数字孪生 3D / 监控 HITL / 数据分析 / 产线日志" width="100%" />
|
|
59
|
+
</p>
|
|
60
|
+
|
|
61
|
+
> [!NOTE]
|
|
62
|
+
> 本 README 中的每一张图都是**运行中实例**的截图(v0.8.8 生产构建),没有一张是效果图。
|
|
63
|
+
|
|
64
|
+
<p align="center">
|
|
65
|
+
<a href="https://kingdol666.github.io/AgentWorkShop/demo/player.html">
|
|
66
|
+
<img src="docs/site/public/demo/agentworkshop-core-demo-poster.png" alt="3 分钟产品演示" width="62%" />
|
|
67
|
+
<br/>
|
|
68
|
+
<sub><b>🎬 3 分钟产品演示</b>(点击封面打开播放页 · 英文界面/配音 · 汉英字幕)</sub>
|
|
69
|
+
</a>
|
|
70
|
+
</p>
|
|
71
|
+
|
|
72
|
+
## 核心能力
|
|
73
|
+
|
|
74
|
+
| 能力域 | 一句话 | 深入 |
|
|
75
|
+
|---|---|---|
|
|
76
|
+
| **Agent 团队运行时** | lead 编排 + worker 交付,7 态任务机、根任务 FIFO 队列、执行租约、过程记忆(FTS5+向量)、群聊与定时任务 | [设计架构](#设计架构) |
|
|
77
|
+
| **工业栈** | 五族现场协议(Modbus TCP/RTU · OPC UA · MQTT · HTTP)+ 串口插件 + MES REST(镜像/直连双路径);数采三节拍、写控四层限界、逐参数 ACK | [协议指南](./docs/site/guide/daq-protocols.md) |
|
|
78
|
+
| **Agent × 设备绑定** | 节点级授权三轨(dcw 点位收窄 / recipe 单配方 / line-recipe 产线管理权),语义卡注入提示词,直写恒拒、全部写入过联锁+HITL | [HITL 指南](./docs/site/guide/hitl.md) |
|
|
79
|
+
| **模型闭环** | AML 自动建模(物理先验+残差+conformal UQ)→ 晋级门禁 → HITL 采纳 → production 投用 → 模型驱动试验 | [AML 手册](./docs/aml.md) |
|
|
80
|
+
| **优化器** | 过程模型 → OSQP 求解 → recipe_trial 试验 → 进步才固化 → 统一回退(PLC 整批恢复) | [配方版本](./docs/site/guide/recipe-versions.md) |
|
|
81
|
+
| **治理与可观测** | 产线三态权限、结构化审计与错误台账、/operations 操作流水、系统监控指标 | [产线权限](./docs/site/guide/line-permissions.md) |
|
|
82
|
+
| **插件生态** | 热重载插件:自定义驱动/处理器/节点模板/Agent 工具/HTTP 路由/浏览器面板/Twin Provider,`aw plugin` CLI + MCP `list_changed` | [插件与扩展](#插件与扩展) |
|
|
83
|
+
|
|
84
|
+
## 设计架构
|
|
85
|
+
|
|
86
|
+
<p align="center">
|
|
87
|
+
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/architecture.png" alt="AgentWorkShop 架构:前端 → 四个入口 → Agent 运行时 → 工业栈 → 时序存储" width="92%" />
|
|
88
|
+
</p>
|
|
89
|
+
|
|
90
|
+
<details>
|
|
91
|
+
<summary><b>完整架构图源(mermaid,点开)</b></summary>
|
|
92
|
+
|
|
93
|
+
```mermaid
|
|
94
|
+
flowchart TB
|
|
95
|
+
subgraph FE["前端 — Nuxt 4 / Vue 3"]
|
|
96
|
+
UI["工作台 UI · 3D 孪生 · 大屏"]
|
|
97
|
+
WS["AEP 客户端 — seq 续传"]
|
|
98
|
+
end
|
|
99
|
+
subgraph SRV["服务端 — Nitro / h3"]
|
|
100
|
+
REST["REST /api/workshop/**"]
|
|
101
|
+
HUB["WS Hub — AEP v1"]
|
|
102
|
+
A2A["A2A JSON-RPC"]
|
|
103
|
+
MCP["MCP Server"]
|
|
104
|
+
subgraph RT["运行时"]
|
|
105
|
+
MGR["AgentChannelManager"]
|
|
106
|
+
SCH["SchedulerLoop — lead 监督"]
|
|
107
|
+
TE["TaskEngine — 7 态任务机"]
|
|
108
|
+
AR["AgentRuntime × N"]
|
|
109
|
+
MEM["AgentMemory — FTS5 + 向量"]
|
|
110
|
+
BUS["事件总线 (ManagerBus) — per-channel seq + 环形缓冲"]
|
|
111
|
+
end
|
|
112
|
+
subgraph IND["工业"]
|
|
113
|
+
DAQ["数采网关 — 逐节点边缘运行时"]
|
|
114
|
+
DCW["数控网关 — 写控"]
|
|
115
|
+
BR["队列 — inproc / MQTT"]
|
|
116
|
+
TSDB["时序库 — SQLite / Timescale"]
|
|
117
|
+
end
|
|
118
|
+
subgraph HB["Harness 适配器 — 14 个引擎"]
|
|
119
|
+
MOCK["mock · claude — 进程内"]
|
|
120
|
+
OMP["omp — RPC 子进程"]
|
|
121
|
+
CDX["codex — app-server"]
|
|
122
|
+
DSH["dsh · qwen · hermes — ACP"]
|
|
123
|
+
OC["opencode — serve"]
|
|
124
|
+
FAM["gemini · copilot · cursor · crush · goose · pi — 无头 CLI"]
|
|
125
|
+
end
|
|
126
|
+
DB[("SQLite — channels · agents · tasks
|
|
127
|
+
messages · memories (FTS5) · events")]
|
|
128
|
+
end
|
|
129
|
+
UI <--> WS
|
|
130
|
+
WS --> BUS
|
|
131
|
+
REST & A2A & MCP --> MGR
|
|
132
|
+
MGR --> SCH & TE & AR
|
|
133
|
+
AR --> MEM
|
|
134
|
+
AR --> MOCK & OMP & CDX & DSH & OC & FAM
|
|
135
|
+
MGR & TE & MEM & BUS --> DB
|
|
136
|
+
DAQ <--> BR --> TSDB
|
|
137
|
+
DCW --> BR
|
|
138
|
+
DAQ & DCW --> BUS
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
</details>
|
|
142
|
+
|
|
143
|
+
**Agent × 机器之桥**(值得读源码的部分):
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
agent ──绑定──▶ 节点 (daq: auto / dcw: manual)
|
|
147
|
+
│ │
|
|
148
|
+
│ my_industrial_nodes ◀── 语义卡:物理含义 · 单位 · 安全量程 · 配方窗口
|
|
149
|
+
│ daq_query ◀── 时序库历史,统计 + 物理语义
|
|
150
|
+
│ dcw_control ──▶ 联锁(安全量程 ∩ 配方窗口)
|
|
151
|
+
│ ──▶ HITL 审批(manual 模式,180s 超时)
|
|
152
|
+
│ ──▶ PLC 写入 → 回读校验 → ACK + 写历史
|
|
153
|
+
◀── Agent 可引用数值的结果文本
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## 快速开始
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
node -v # ≥ 23.4.0(需要内置 node:sqlite)
|
|
160
|
+
npm install -g agentworkshop # → `aw` / `agentworkshop` 进入 PATH(含预构建产物,无需构建)
|
|
161
|
+
aw start # → http://localhost:3001,一切初始化进 ~/.AgentWorkShop
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
不想全局安装:`npx agentworkshop start`。源码运行:`git clone … && pnpm install && pnpm dev`(→ 3000);生产:`pnpm build && pnpm start`。更新:`aw update`。
|
|
165
|
+
|
|
166
|
+
> 真实 Agent harness 需要对应 CLI 在 PATH 中(`omp` / `codex` / `opencode` / … 任选子集,同 Channel 可混用;`mock` 与 `claude` 进程内运行无需 CLI)。可选数采基础设施(MQTT broker + TimescaleDB)在 Docker 可达时自动拉起。
|
|
167
|
+
|
|
168
|
+
**第一次「Agent × 产线」会话(约 2 分钟):**
|
|
169
|
+
|
|
170
|
+
1. **登录** —— 侧边栏注册(或 `POST /api/users/register`)。
|
|
171
|
+
2. **搭产线** —— 「产线运营」→ 建产线,加数采节点(如 `daq-temp-tc`)与数控节点(如 `dcw-temp-sp`),建产品 + 配方,点**开跑**。
|
|
172
|
+
3. **建团队** —— 「Agent 工作台」→ 选 lead + workers 后**部署**进 Channel。
|
|
173
|
+
4. **绑定节点** —— Agent 详情面板 → 绑数采(*auto*)与数控(*manual* = 需您的批准)。
|
|
174
|
+
5. **提交目标** —— 「分析最近 5 分钟熔体温度;若与 182 °C 偏差超过 1 °C,修正设定值(等我的批准)。」
|
|
175
|
+
6. **审批** —— Agent 读真实历史、发起写请求 → HITL 面板批准 → 设定值变化,目标收口并给出数值报告。
|
|
176
|
+
|
|
177
|
+
<details>
|
|
178
|
+
<summary><b>配置驱动 · 认证 · 产线权限 · 执行模式 · 定时任务(点开)</b></summary>
|
|
179
|
+
|
|
180
|
+
一个运行时,一个事实来源:**`config.yml`**(默认)< **`runtime-settings.json`**(运行时)< 环境变量 / CLI;每个键在 `shared/config/schema.json` 声明一次,前端设置页与 CLI 消费同一份描述符。
|
|
181
|
+
|
|
182
|
+
**认证**:邮箱+密码签发 bearer token(多 token、可单独吊销);`POST /api/users/register` → `authorization: Bearer <token>` 调 `/api/workshop/**`。
|
|
183
|
+
|
|
184
|
+
**产线三态权限**(管理员在 `/permissions` 维护):无权(默认,后端不返回数据)/ 仅查看(只读)/ 可操控(读+写)。Agent 写授权三轨:`dcw` 点位绑定=写授权兼下发收窄;`recipe`=单配方操作权;`line-recipe`=产线全部配方管理权。直写恒拒,全部写入仍经四层限界/运行门/HITL/逐参数 ACK。
|
|
185
|
+
|
|
186
|
+
**执行模式**:`goal`(lead 分解→判定→补发至满意)/ `loop`(固定间隔重放)/ `pipeline`(有序阶段)。
|
|
187
|
+
|
|
188
|
+
**定时任务**:`interval`(60s 下限)/ `daily` 双模式;忙等守卫、逐次历史、连续失败熔断;`/workshop/schedules` 页面或 REST 管理。
|
|
189
|
+
|
|
190
|
+
**四个入口**:WS(AEP v1,seq 续传)· MCP(进程内服务)· A2A(JSON-RPC 2.0 + AgentCard)· REST(完整管理面)。
|
|
191
|
+
|
|
192
|
+
**任务状态机**:`SUBMITTED → ASSIGNED → WORKING → WAITING → COMPLETED`(任一态可转 `CANCELED / FAILED`;FAILED 可改派重试并重置执行预算,根任务受预算守卫)。
|
|
193
|
+
|
|
194
|
+
</details>
|
|
195
|
+
|
|
196
|
+
<details>
|
|
197
|
+
<summary><b>部署 · 项目结构 · 开发指南(点开)</b></summary>
|
|
198
|
+
|
|
199
|
+
**部署**:TLS 终结在前置反代;可选基础设施 `docker compose up -d`(MQTT + Timescale + MinIO);`pnpm build && pnpm start`(端口取 `config.yml` → `server.prod.port`)。数据全部落配置根,跨版本迁移在启动时自动执行。
|
|
200
|
+
|
|
201
|
+
**项目结构**:`app/`(Nuxt 前端)· `server/`(API 与服务:agents/daq/dcw/aml/plugins)· `shared/`(前后端共享契约:配置 schema、协议目录)· `scripts/`(验收与工具脚本)· `bench/`(工业基准管线)· `docs/`(文档与验收证据)· `plugins-builtin/`(内置插件)。
|
|
202
|
+
|
|
203
|
+
**开发**:`pnpm dev` 热更;`pnpm typecheck && pnpm lint` 门禁;`npm run test:unit`(自带 server tsconfig 与 force-exit);文档站 `npm run docs:dev`(VitePress,中/英)。
|
|
204
|
+
|
|
205
|
+
</details>
|
|
206
|
+
|
|
207
|
+
## 插件与扩展
|
|
208
|
+
|
|
209
|
+
插件是平台的一等扩展面:一个目录 + `index.mjs` 即可获得 **Agent 工具注册(`ctx.tools`)、自定义数采驱动(`ctx.daq.registerDriver`)、处理器与节点模板、HTTP 路由、浏览器面板、设置项与 i18n、Twin Provider(`ctx.twin`)、产线权限钩子(`ctx.permissions`)**;启停即时热重载,单插件失败隔离不影响主服务。内置示例覆盖全家桶:自定义驱动+降额处理器(`aw-matrix-plugin`)、向量帧(`daq-vector-demo`)、知识库桥(`rag-bridge`)、诊断桥(`diag-bridge`)、串口(`serial-bridge`)、孪生 Provider(`twin-injection-default`)。外部仿真程序(如 MATLAB/Simulink)可经「Twin Provider 注册」或「插件工具 spawn」接入,仿真输出直接作为优化依据。→ [插件 API](./docs/plugins.md) · [SDK](./docs/sdk.md) · [MCP](./docs/mcp.md)
|
|
210
|
+
|
|
211
|
+
## 验证与验收
|
|
212
|
+
|
|
213
|
+
每一层论断背后都有可复跑的套件。验收按 **aw-system-acceptance 五层流程**(静态门禁 → 单元契约 → 实机核心闭环 → 回归面 → 插件工具面)执行,2026-10-29 全量轮:**24 项套件/核查、约 1100+ 断言全绿**;真实设备联动矩阵(`e2e-golive-matrix`)**21/21**——五族真实协议栈接通、平台样本=设备侧真值、四协议写穿、Agent 令牌批量落穿、断链如实失败与自愈;安全加固 **29/29**;对抗性错误处理 **26/26**。
|
|
214
|
+
|
|
215
|
+
**2026-10-31 可执行测试卡全层轮**(`bench/PIPELINE.md` 执行合同,ralplan 共识规划):静态论文-代码一致性 **100%**(20 锚点)· 真实五协议层 **13/13(100 分,含 F5 拦截率=1 与断链恢复)** · **E1a 治理四臂消融**理论模式全对(摘除联锁/授权门后越窗写 6/6 执行、误拦恒 0——机制归因证据)· api-live **75/75** · 单元 913/913 · 对 **20260914 冻结基线判定类逐位复现 ×2(REPRODUCIBLE,跨 12 天)** · IDD/RAG 插件集成链真机全通(真 PLC 工况 + omp/ustc-deepseek-flash:导出 → IDD 深度诊断 → 知识入库(HITL) → 检索命中)· P12 真实 harness 透明闭环 episode(资格门全过;弱模型越权调用被事件监控门当场取消并冻结 153 事件证据)。
|
|
216
|
+
|
|
217
|
+
| 验收层 | 代表套件(本轮结果) |
|
|
218
|
+
|---|---|
|
|
219
|
+
| 实机核心闭环 | 产线治理 44/44 · 本体 87/87 · 模型闭环 53/53 · 优化器 105/105 · 注塑闭环 6/6 · 设备联动矩阵 21/21 · 真实五协议层 13/13 |
|
|
220
|
+
| 回归面 | api-live 75/75 · auth-matrix 29/29 · 模板隔离 38/38 · 鲁棒性 ALL · agent-team 25/25 · 错误处理 26/26 · E1a 消融四臂×3 轮 |
|
|
221
|
+
| 专项 | 安全加固 S1-S16 29/29 · 生产硬门 8/8 · 节点授权 52/52 · 三模式真机 42/42 · 冻结基线复现 ×2 |
|
|
222
|
+
|
|
223
|
+
证据与复现命令见 [`docs/audit/evidence/`](./docs/audit/evidence) 与 [`docs/full-test-plan.md`](./docs/full-test-plan.md);历史基线(约 1100+ 条,2026-09-24)见 [验收波次归档](./docs/audit/e2e-2026-09-24-full-coverage.md)。
|
|
224
|
+
|
|
225
|
+
## 路线图
|
|
226
|
+
|
|
227
|
+
已交付:Channel 运行时与四入口、工业五族协议数采/写控、节点绑定与 HITL、配方版本化与回退、AML 建模闭环与优化器、本体服务、插件系统 v2、3D 孪生、定时任务、多 Harness(14 引擎)、双语文档——完整清单见 [更新日志](./changelog.md)。
|
|
228
|
+
|
|
229
|
+
进行中/规划:**报警外送**(邮件/webhook)+ 确认工作流 · **边缘部署形态**(edge-agent + 中心 broker) · **CI 流水线**(typecheck + lint + e2e) · 生产硬化补全(TLS/MQTT 鉴权/OPC UA 签名加密) · 更多场景模板与基准。
|
|
230
|
+
|
|
231
|
+
## 研究论文
|
|
232
|
+
|
|
233
|
+
治理机制已写成投稿级论文——**《Grading Machine-Originated Plant Writes: Separately Inspectable Evidence for Industrial Agent Teams》**(IEEE TII 匿名评审稿)。源文件与评审记录见 [`paper/tii/SUBMISSION-IEEE-TII/`](./paper/tii/SUBMISSION-IEEE-TII/);每条机制主张由仓库证据支撑([`docs/benchmarks/`](./docs/benchmarks) · [`docs/experiments/`](./docs/experiments) · [`docs/audit/`](./docs/audit))。
|
|
234
|
+
|
|
235
|
+
## 参与贡献
|
|
236
|
+
|
|
237
|
+
欢迎 Issue 与 PR。提 PR 前:① 先读要改的契约([插件](./docs/plugins.md) / [SDK](./docs/sdk.md) / [CLI](./docs/cli.md));② 本地过门禁(`pnpm typecheck && pnpm lint`,行为改动补真实 E2E);③ 提交信息走约定式(`commitlint` 钩子强制);④ 报 bug 前先跑 `aw doctor`。
|
|
238
|
+
|
|
239
|
+
## 安全
|
|
240
|
+
|
|
241
|
+
发现漏洞请**不要**开公开 Issue,通过 [GitHub Security Advisories](https://github.com/kingdol666/AgentWorkShop/security/advisories/new) 私下报告。把系统指向真实设备前,先复核 `config.yml` 的联锁、安全量程与 HITL 设置——默认姿态是建议性的,产线侧逻辑始终拥有最终否决权。
|
|
242
|
+
|
|
243
|
+
## 许可证
|
|
244
|
+
|
|
245
|
+
[Apache 2.0](./LICENSE)(宽松许可,允许商用与生产部署)。
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
<div align="center">
|
|
250
|
+
|
|
251
|
+
**如果这个项目对你有用,点一个 ⭐ 能让更多人找到它。**
|
|
252
|
+
|
|
253
|
+
当前版本:**v0.8.8** —— [版本发布](https://github.com/kingdol666/AgentWorkShop/releases) · [更新日志](./changelog.md) · [在线文档](https://kingdol666.github.io/AgentWorkShop)
|
|
254
|
+
|
|
255
|
+
</div>
|