agentworkshop 0.7.58 → 0.7.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.AgentWorkShop/prompts/host-tools.json +108 -0
- package/.output/.AgentWorkShop/prompts/host-tools.json +108 -0
- package/.output/.AgentWorkShop/schema.json +1 -0
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{CZwDnomB.js → 59a6cSgj.js} +1 -1
- package/.output/public/_nuxt/5juo_WO2.js +13 -0
- package/.output/public/_nuxt/9j2J4k4w.js +1 -0
- package/.output/public/_nuxt/B-WTxXEK2.js +1 -0
- package/.output/public/_nuxt/{DTx_DtUo.js → B0w8DZ4C.js} +1 -1
- package/.output/public/_nuxt/B1BCga5h2.js +13 -0
- package/.output/public/_nuxt/B5lMtA7I2.js +1 -0
- package/.output/public/_nuxt/B6_fJd2X.js +1 -0
- package/.output/public/_nuxt/B7K5B04W2.js +1 -0
- package/.output/public/_nuxt/B7KyS_q2.js +1 -0
- package/.output/public/_nuxt/B8q3BGY5.js +37 -0
- package/.output/public/_nuxt/B9IK8kDl2.js +1 -0
- package/.output/public/_nuxt/BFBysc2M2.js +1 -0
- package/.output/public/_nuxt/{BMUEVeOK.js → BGFhOMVM.js} +2 -2
- package/.output/public/_nuxt/{cBI0JqsV.js → BMlesJth.js} +1 -1
- package/.output/public/_nuxt/BNd2NDxg2.js +1 -0
- package/.output/public/_nuxt/BP629NAi.js +1 -0
- package/.output/public/_nuxt/BVinTfuN.js +1 -0
- package/.output/public/_nuxt/{DJZzthKt2.js → B_BYwIf22.js} +1 -1
- package/.output/public/_nuxt/{CW1HGp5X.js → B_JLVF30.js} +1 -1
- package/.output/public/_nuxt/BdE41Y_c.js +28 -0
- package/.output/public/_nuxt/Bdq2LNSO.js +1 -0
- package/.output/public/_nuxt/{BMZ1d25O.js → BeNdseTX.js} +1 -1
- package/.output/public/_nuxt/Be_StT8b2.js +1 -0
- package/.output/public/_nuxt/BhllzW3K2.js +1 -0
- package/.output/public/_nuxt/BjUpWKS6.js +1 -0
- package/.output/public/_nuxt/{CCCq9H7D2.js → BlEJRYAn2.js} +1 -1
- package/.output/public/_nuxt/{Du0zf-d3.js → BplhglEM.js} +1 -1
- package/.output/public/_nuxt/BsYEYxWv.js +24 -0
- package/.output/public/_nuxt/BtXwFpv42.js +1 -0
- package/.output/public/_nuxt/{BrFF_9742.js → BuNXYpib2.js} +1 -1
- package/.output/public/_nuxt/{BzKT-ne_2.js → C0sNwDTK2.js} +1 -1
- package/.output/public/_nuxt/{h46i74oE.js → C4AICl3l.js} +4 -4
- package/.output/public/_nuxt/{BuVH9MB-.js → C5OSTzBh.js} +1 -1
- package/.output/public/_nuxt/{DKhRushG.js → C8XVZGSZ.js} +1 -1
- package/.output/public/_nuxt/{zGDAozGA.js → C93LpBMF.js} +4 -4
- package/.output/public/_nuxt/CDaZC0_6.js +3 -0
- package/.output/public/_nuxt/CE43-V_L.js +2 -0
- package/.output/public/_nuxt/{B4R5CHkk.js → CEHT9inW.js} +1 -1
- package/.output/public/_nuxt/CGChCy-w2.js +1 -0
- package/.output/public/_nuxt/{DvUt9uMt2.js → CMDAjShv2.js} +1 -1
- package/.output/public/_nuxt/CUjdqsjC2.js +1 -0
- package/.output/public/_nuxt/CWfBtswB.js +70 -0
- package/.output/public/_nuxt/CYtH1bv2.js +1 -0
- package/.output/public/_nuxt/CZmMgjIK.js +1 -0
- package/.output/public/_nuxt/{iZa330UY.js → Cdw4juXw.js} +1 -1
- package/.output/public/_nuxt/{DMPpE41S2.js → Ce5SiMQR2.js} +1 -1
- package/.output/public/_nuxt/{B03LfmKR.js → Cfp00Rdo.js} +1 -1
- package/.output/public/_nuxt/{Dy-V8OEW2.js → CgbP5yJk2.js} +7 -7
- package/.output/public/_nuxt/ChPNKPw_.js +1 -0
- package/.output/public/_nuxt/{C5wBzGO7.js → CjeMxUv8.js} +1 -1
- package/.output/public/_nuxt/CktUrk8z.js +1 -0
- package/.output/public/_nuxt/Cst8yEet.js +1 -0
- package/.output/public/_nuxt/Cuw2--X2.js +2 -0
- package/.output/public/_nuxt/Cyd68Xbv2.js +1 -0
- package/.output/public/_nuxt/{pNy4V4kd.js → Cyuxcv5s2.js} +1 -1
- package/.output/public/_nuxt/{CIz7SM4H.js → D0vmf1z9.js} +1 -1
- package/.output/public/_nuxt/D5-QB_-l.js +1 -0
- package/.output/public/_nuxt/D9sgxxsM2.js +1 -0
- package/.output/public/_nuxt/DBdwjOGB2.js +1 -0
- package/.output/public/_nuxt/DBzdrPzw2.js +1 -0
- package/.output/public/_nuxt/DD4J2Otc.js +1 -0
- package/.output/public/_nuxt/DMCoWgSb2.js +1 -0
- package/.output/public/_nuxt/{CmTqFlYZ.js → DTcsb0fG.js} +1 -1
- package/.output/public/_nuxt/Ddc_Pn7D.js +19 -0
- package/.output/public/_nuxt/Dg1iMuZ-.js +1 -0
- package/.output/public/_nuxt/DhSlJyZD2.js +1 -0
- package/.output/public/_nuxt/DmwMkvoQ2.js +1 -0
- package/.output/public/_nuxt/EQijmkCh2.js +1 -0
- package/.output/public/_nuxt/KXQppTXc.js +1 -0
- package/.output/public/_nuxt/{CZ0Gt81h.js → KXvRkBgg.js} +2 -2
- package/.output/public/_nuxt/LwITbamf2.js +47 -0
- package/.output/public/_nuxt/N9TYd_Mk2.js +1 -0
- package/.output/public/_nuxt/VeOVO2sE2.js +1 -0
- package/.output/public/_nuxt/_jfzcYrl.js +1 -0
- package/.output/public/_nuxt/analysis.D2Pao1rm.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/f78a1992-e424-494d-ac4b-aa18971ffc10.json +1 -0
- package/.output/public/_nuxt/{default.8ac6QU28.css → default.Bx6RJSbr.css} +1 -1
- package/.output/public/_nuxt/{entry.BHNNQA9H.css → entry.BlbU43qz.css} +1 -1
- package/.output/public/_nuxt/{MEwEMEMl2.js → iCvdSYYN2.js} +6 -6
- package/.output/public/_nuxt/{CYGkUj5M2.js → p2sDc0tO2.js} +1 -1
- package/.output/public/_nuxt/{Drhta6gr.js → zVupTo2z2.js} +2 -2
- package/.output/server/chunks/_/LeftOutlined.mjs +1 -1
- package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
- package/.output/server/chunks/_/host-bindings.mjs +1 -1
- package/.output/server/chunks/_/nitro.mjs +1629 -1246
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
- package/.output/server/chunks/build/{AuthGate-DDPYswkA.mjs → AuthGate-CZYkvPrg.mjs} +5 -5
- package/.output/server/chunks/build/{AuthGate-DDPYswkA.mjs.map → AuthGate-CZYkvPrg.mjs.map} +1 -1
- package/.output/server/chunks/build/Checkbox-4EdGAAl_.mjs +1 -1
- package/.output/server/chunks/build/{FormItemContext-4ORSzhWv.mjs → FormItemContext-DcWIIAaK.mjs} +2 -2
- package/.output/server/chunks/build/{FormItemContext-4ORSzhWv.mjs.map → FormItemContext-DcWIIAaK.mjs.map} +1 -1
- package/.output/server/chunks/build/{OmpTerminalPanel-DZ2wHMS1.mjs → OmpTerminalPanel-CtFJ6Kc8.mjs} +4 -4
- package/.output/server/chunks/build/{OmpTerminalPanel-DZ2wHMS1.mjs.map → OmpTerminalPanel-CtFJ6Kc8.mjs.map} +1 -1
- package/.output/server/chunks/build/{PluginSlot-CT4YaNrB.mjs → PluginSlot-BT7kYQgK.mjs} +2 -2
- package/.output/server/chunks/build/{PluginSlot-CT4YaNrB.mjs.map → PluginSlot-BT7kYQgK.mjs.map} +1 -1
- package/.output/server/chunks/build/{TownView-CZbFn6mO.mjs → TownView-kQZFf4zj.mjs} +3 -3
- package/.output/server/chunks/build/{TownView-CZbFn6mO.mjs.map → TownView-kQZFf4zj.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-Df2pgsAq.mjs → _id_-Bbx1b74O.mjs} +3 -3
- package/.output/server/chunks/build/{_id_-Df2pgsAq.mjs.map → _id_-Bbx1b74O.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-CCVhpJtj.mjs → _id_-IijrRw3f.mjs} +3 -3
- package/.output/server/chunks/build/{_id_-CCVhpJtj.mjs.map → _id_-IijrRw3f.mjs.map} +1 -1
- package/.output/server/chunks/build/{_wsId_-CJqF-hmP.mjs → _wsId_-DOEw9jgZ.mjs} +22 -21
- package/.output/server/chunks/build/{_wsId_-CJqF-hmP.mjs.map → _wsId_-DOEw9jgZ.mjs.map} +1 -1
- package/.output/server/chunks/build/{agents-BTsbna5H.mjs → agents-C36wR56A.mjs} +18 -17
- package/.output/server/chunks/build/agents-C36wR56A.mjs.map +1 -0
- package/.output/server/chunks/build/{aml-BBKfWto1.mjs → aml-CBGndvHT.mjs} +7 -7
- package/.output/server/chunks/build/{aml-BBKfWto1.mjs.map → aml-CBGndvHT.mjs.map} +1 -1
- package/.output/server/chunks/build/analysis-tgzvOWmD.mjs +332 -0
- package/.output/server/chunks/build/analysis-tgzvOWmD.mjs.map +1 -0
- package/.output/server/chunks/build/{card-DJOYGuVH.mjs → card-Db7OB49d.mjs} +4 -4
- package/.output/server/chunks/build/{card-DJOYGuVH.mjs.map → card-Db7OB49d.mjs.map} +1 -1
- package/.output/server/chunks/build/{channel-templates-BPKJ8e4l.mjs → channel-templates-BixUrDmU.mjs} +11 -10
- package/.output/server/chunks/build/channel-templates-BixUrDmU.mjs.map +1 -0
- package/.output/server/chunks/build/{checkbox-C4AKj81e.mjs → checkbox-CyF96D30.mjs} +3 -3
- package/.output/server/chunks/build/{checkbox-C4AKj81e.mjs.map → checkbox-CyF96D30.mjs.map} +1 -1
- package/.output/server/chunks/build/{daq-Cz7TaUAM.mjs → daq-DLMLufDq.mjs} +5 -5
- package/.output/server/chunks/build/{daq-Cz7TaUAM.mjs.map → daq-DLMLufDq.mjs.map} +1 -1
- package/.output/server/chunks/build/dcw-EhjJpVQM.mjs +2 -2
- package/.output/server/chunks/build/{default-DweMY872.mjs → default-C7Qmdyz_.mjs} +30 -19
- package/.output/server/chunks/build/{default-DweMY872.mjs.map → default-C7Qmdyz_.mjs.map} +1 -1
- package/.output/server/chunks/build/{descriptions-CFaUq4y4.mjs → descriptions-1bH81YsZ.mjs} +2 -2
- package/.output/server/chunks/build/{descriptions-CFaUq4y4.mjs.map → descriptions-1bH81YsZ.mjs.map} +1 -1
- package/.output/server/chunks/build/{drawer-Cfh9_zft.mjs → drawer-C7shdEHy.mjs} +2 -2
- package/.output/server/chunks/build/{drawer-Cfh9_zft.mjs.map → drawer-C7shdEHy.mjs.map} +1 -1
- package/.output/server/chunks/build/{dropdown-CIsqbX4P.mjs → dropdown-BhLSIp5A.mjs} +2 -2
- package/.output/server/chunks/build/{dropdown-CIsqbX4P.mjs.map → dropdown-BhLSIp5A.mjs.map} +1 -1
- package/.output/server/chunks/build/{dropdown-CV9GW3z9.mjs → dropdown-BiwcuXDi.mjs} +6 -5
- package/.output/server/chunks/build/{dropdown-CV9GW3z9.mjs.map → dropdown-BiwcuXDi.mjs.map} +1 -1
- package/.output/server/chunks/build/{form-cs_RcfGx.mjs → form-nE8C0G8B.mjs} +7 -6
- package/.output/server/chunks/build/{form-cs_RcfGx.mjs.map → form-nE8C0G8B.mjs.map} +1 -1
- package/.output/server/chunks/build/{input-CobQ5LJ5.mjs → input-DwF72eVI.mjs} +93 -3449
- package/.output/server/chunks/build/input-DwF72eVI.mjs.map +1 -0
- package/.output/server/chunks/build/{input-number-BpPYAWMk.mjs → input-number-TSq6ltkz.mjs} +6 -5
- package/.output/server/chunks/build/{input-number-BpPYAWMk.mjs.map → input-number-TSq6ltkz.mjs.map} +1 -1
- package/.output/server/chunks/build/{logs-As9fZqU-.mjs → logs-hOEVuxqm.mjs} +3 -3
- package/.output/server/chunks/build/{logs-As9fZqU-.mjs.map → logs-hOEVuxqm.mjs.map} +1 -1
- package/.output/server/chunks/build/{menu-CVmvHyFT.mjs → menu-Cy5Nrecn.mjs} +4 -3
- package/.output/server/chunks/build/{menu-CVmvHyFT.mjs.map → menu-Cy5Nrecn.mjs.map} +1 -1
- package/.output/server/chunks/build/{monitor-CdFQ2z4g.mjs → monitor-CfVoiavp.mjs} +20 -19
- package/.output/server/chunks/build/{monitor-CdFQ2z4g.mjs.map → monitor-CfVoiavp.mjs.map} +1 -1
- package/.output/server/chunks/build/{operations-B2gHCWgZ.mjs → operations-fxI8lEBJ.mjs} +3 -3
- package/.output/server/chunks/build/{operations-B2gHCWgZ.mjs.map → operations-fxI8lEBJ.mjs.map} +1 -1
- package/.output/server/chunks/build/{pages-BItCt1ar.mjs → pages-6JD9VSbx.mjs} +5 -5
- package/.output/server/chunks/build/{pages-BItCt1ar.mjs.map → pages-6JD9VSbx.mjs.map} +1 -1
- package/.output/server/chunks/build/{permissions-D6mQw_9j.mjs → permissions-XPtQJSaO.mjs} +14 -13
- package/.output/server/chunks/build/permissions-XPtQJSaO.mjs.map +1 -0
- package/.output/server/chunks/build/{plugins-NAS9MQ5r.mjs → plugins-DjBSG9pV.mjs} +5 -5
- package/.output/server/chunks/build/{plugins-NAS9MQ5r.mjs.map → plugins-DjBSG9pV.mjs.map} +1 -1
- package/.output/server/chunks/build/{popconfirm-DFfoFhmt.mjs → popconfirm-DKeEbaGd.mjs} +3 -3
- package/.output/server/chunks/build/{popconfirm-DFfoFhmt.mjs.map → popconfirm-DKeEbaGd.mjs.map} +1 -1
- package/.output/server/chunks/build/{schedules-BjWNDWL5.mjs → schedules-PcDLCUWN.mjs} +20 -19
- package/.output/server/chunks/build/{schedules-BjWNDWL5.mjs.map → schedules-PcDLCUWN.mjs.map} +1 -1
- package/.output/server/chunks/build/{segmented-D7FkCgg7.mjs → segmented-BdWCdZUM.mjs} +3 -3
- package/.output/server/chunks/build/{segmented-D7FkCgg7.mjs.map → segmented-BdWCdZUM.mjs.map} +1 -1
- package/.output/server/chunks/build/{select-FqBNxgxT.mjs → select-C5yighj8.mjs} +5 -4
- package/.output/server/chunks/build/{select-FqBNxgxT.mjs.map → select-C5yighj8.mjs.map} +1 -1
- package/.output/server/chunks/build/{settings-Cl_KRyEn.mjs → settings-90zT_h9w.mjs} +14 -13
- package/.output/server/chunks/build/settings-90zT_h9w.mjs.map +1 -0
- package/.output/server/chunks/build/{space-B2uhHJG8.mjs → space-BCffbXIG.mjs} +3 -3
- package/.output/server/chunks/build/{space-B2uhHJG8.mjs.map → space-BCffbXIG.mjs.map} +1 -1
- package/.output/server/chunks/build/{switch-DZAUIbIN.mjs → switch-OG0SM_Px.mjs} +3 -3
- package/.output/server/chunks/build/{switch-DZAUIbIN.mjs.map → switch-OG0SM_Px.mjs.map} +1 -1
- package/.output/server/chunks/build/{table-CeOYERqr.mjs → table-UpVzu50c.mjs} +11 -10
- package/.output/server/chunks/build/{table-CeOYERqr.mjs.map → table-UpVzu50c.mjs.map} +1 -1
- package/.output/server/chunks/build/{tabs-LLNSdLl2.mjs → tabs-CWwoL33v.mjs} +6 -5
- package/.output/server/chunks/build/{tabs-LLNSdLl2.mjs.map → tabs-CWwoL33v.mjs.map} +1 -1
- package/.output/server/chunks/build/{tag-Dwvkh0Dj.mjs → tag-CS7mwrfG.mjs} +5 -4
- package/.output/server/chunks/build/{tag-Dwvkh0Dj.mjs.map → tag-CS7mwrfG.mjs.map} +1 -1
- package/.output/server/chunks/build/{teams-CGDZHaQl.mjs → teams-BIAFvRw1.mjs} +19 -18
- package/.output/server/chunks/build/teams-BIAFvRw1.mjs.map +1 -0
- package/.output/server/chunks/build/{tokens-BOYkZuoB.mjs → tokens-CLpdrzQ7.mjs} +19 -18
- package/.output/server/chunks/build/tokens-CLpdrzQ7.mjs.map +1 -0
- package/.output/server/chunks/build/tooltip-CJlH_8ZK.mjs +3362 -0
- package/.output/server/chunks/build/tooltip-CJlH_8ZK.mjs.map +1 -0
- package/.output/server/chunks/build/town-BV-hbwb5.mjs +1 -1
- package/.output/server/chunks/build/{town-P1rYoi0v.mjs → town-Bfme7P2I.mjs} +5 -5
- package/.output/server/chunks/build/{town-P1rYoi0v.mjs.map → town-Bfme7P2I.mjs.map} +1 -1
- package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
- package/.output/server/chunks/build/types-DWqIeMRP.mjs +75 -0
- package/.output/server/chunks/build/types-DWqIeMRP.mjs.map +1 -0
- package/.output/server/chunks/build/{useAgentTemplateActions-DsBRUQni.mjs → useAgentTemplateActions-6VyAHgu5.mjs} +1 -1
- package/.output/server/chunks/build/{useAgentTemplateActions-DsBRUQni.mjs.map → useAgentTemplateActions-6VyAHgu5.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAgentTemplateForm-DzQ_t2Ue.mjs → useAgentTemplateForm-DWa-ezNq.mjs} +1 -1
- package/.output/server/chunks/build/{useAgentTemplateForm-DzQ_t2Ue.mjs.map → useAgentTemplateForm-DWa-ezNq.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAmlEntities-BMLHU_39.mjs → useAmlEntities-Co2fgjzh.mjs} +1 -1
- package/.output/server/chunks/build/{useAmlEntities-BMLHU_39.mjs.map → useAmlEntities-Co2fgjzh.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAmlEnv-DdlyVzPu.mjs → useAmlEnv-JTiWPrzH.mjs} +1 -1
- package/.output/server/chunks/build/{useAmlEnv-DdlyVzPu.mjs.map → useAmlEnv-JTiWPrzH.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAmlJobs-BG_v21hJ.mjs → useAmlJobs-By4pjOzc.mjs} +1 -1
- package/.output/server/chunks/build/{useAmlJobs-BG_v21hJ.mjs.map → useAmlJobs-By4pjOzc.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAmlModels-D7MuOWOy.mjs → useAmlModels-B1_5vjMA.mjs} +1 -1
- package/.output/server/chunks/build/{useAmlModels-D7MuOWOy.mjs.map → useAmlModels-B1_5vjMA.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAmlNotes-CTZe-GI0.mjs → useAmlNotes-5uwvCb3h.mjs} +1 -1
- package/.output/server/chunks/build/{useAmlNotes-CTZe-GI0.mjs.map → useAmlNotes-5uwvCb3h.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAmlPredict-BToRrVRV.mjs → useAmlPredict-lxUv7lAO.mjs} +1 -1
- package/.output/server/chunks/build/{useAmlPredict-BToRrVRV.mjs.map → useAmlPredict-lxUv7lAO.mjs.map} +1 -1
- package/.output/server/chunks/build/useAnalysisFeed-B4OwUd7p.mjs +128 -0
- package/.output/server/chunks/build/useAnalysisFeed-B4OwUd7p.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqAddNode-CaOCbe4-.mjs +1 -1
- package/.output/server/chunks/build/{useDaqDetailNode-DXgwAu5u.mjs → useDaqDetailNode-DtZ0oDAn.mjs} +3 -3
- package/.output/server/chunks/build/{useDaqDetailNode-DXgwAu5u.mjs.map → useDaqDetailNode-DtZ0oDAn.mjs.map} +1 -1
- package/.output/server/chunks/build/useDaqDetailParams-CrTMDs-2.mjs +1 -1
- package/.output/server/chunks/build/{useDaqFilters-Jx6EERfr.mjs → useDaqFilters-DYHGhECw.mjs} +3 -3
- package/.output/server/chunks/build/{useDaqFilters-Jx6EERfr.mjs.map → useDaqFilters-DYHGhECw.mjs.map} +1 -1
- package/.output/server/chunks/build/useDaqStream-DhzdoyIR.mjs +1 -1
- package/.output/server/chunks/build/useDaqTemplates-C7GzQmdJ.mjs +1 -1
- package/.output/server/chunks/build/{useDashboardData-Ce-EU5DJ.mjs → useDashboardData-B3lZjE7x.mjs} +3 -3
- package/.output/server/chunks/build/{useDashboardData-Ce-EU5DJ.mjs.map → useDashboardData-B3lZjE7x.mjs.map} +1 -1
- package/.output/server/chunks/build/useDcwAddNode-4mTPQ6T8.mjs +1 -1
- package/.output/server/chunks/build/{useDcwDetailScope-4j3B03Pi.mjs → useDcwDetailScope-BWH7jnVh.mjs} +2 -2
- package/.output/server/chunks/build/{useDcwDetailScope-4j3B03Pi.mjs.map → useDcwDetailScope-BWH7jnVh.mjs.map} +1 -1
- package/.output/server/chunks/build/useDcwStream-BXJ2V8HM.mjs +1 -1
- package/.output/server/chunks/build/{useLogsManual-CMjD62nt.mjs → useLogsManual-BLfiSU3u.mjs} +1 -1
- package/.output/server/chunks/build/{useLogsManual-CMjD62nt.mjs.map → useLogsManual-BLfiSU3u.mjs.map} +1 -1
- package/.output/server/chunks/build/{useMonitorData-D2gFSonG.mjs → useMonitorData-BZ6Z-Sy8.mjs} +1 -1
- package/.output/server/chunks/build/{useMonitorData-D2gFSonG.mjs.map → useMonitorData-BZ6Z-Sy8.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamActions-BOLQkYxg.mjs → useTeamActions-ahht5J8Y.mjs} +1 -1
- package/.output/server/chunks/build/{useTeamActions-BOLQkYxg.mjs.map → useTeamActions-ahht5J8Y.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamAddMemberDialog-BCgrLPxI.mjs → useTeamAddMemberDialog-DvXxsVy0.mjs} +1 -1
- package/.output/server/chunks/build/{useTeamAddMemberDialog-BCgrLPxI.mjs.map → useTeamAddMemberDialog-DvXxsVy0.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamCreateDialog-CJk40LqS.mjs → useTeamCreateDialog-A_k-XX5B.mjs} +1 -1
- package/.output/server/chunks/build/{useTeamCreateDialog-CJk40LqS.mjs.map → useTeamCreateDialog-A_k-XX5B.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamDeployDialog-49hdUXQP.mjs → useTeamDeployDialog-CfAFjIr_.mjs} +1 -1
- package/.output/server/chunks/build/{useTeamDeployDialog-49hdUXQP.mjs.map → useTeamDeployDialog-CfAFjIr_.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamPluginDialog-Dh-QOoiU.mjs → useTeamPluginDialog-Djmkk1Nl.mjs} +1 -1
- package/.output/server/chunks/build/{useTeamPluginDialog-Dh-QOoiU.mjs.map → useTeamPluginDialog-Djmkk1Nl.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTokenCreate-DkYvEQUD.mjs → useTokenCreate-CkWoxSI-.mjs} +1 -1
- package/.output/server/chunks/build/{useTokenCreate-DkYvEQUD.mjs.map → useTokenCreate-CkWoxSI-.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTokenRename-DOCP4aeI.mjs → useTokenRename-BohjnGT0.mjs} +1 -1
- package/.output/server/chunks/build/{useTokenRename-DOCP4aeI.mjs.map → useTokenRename-BohjnGT0.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTokenReveal-CybwwflV.mjs → useTokenReveal-BBN5iGz7.mjs} +1 -1
- package/.output/server/chunks/build/{useTokenReveal-CybwwflV.mjs.map → useTokenReveal-BBN5iGz7.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTokensList-BLiMvrc4.mjs → useTokensList-BQX9WqfT.mjs} +1 -1
- package/.output/server/chunks/build/{useTokensList-BLiMvrc4.mjs.map → useTokensList-BQX9WqfT.mjs.map} +1 -1
- package/.output/server/chunks/build/{useWorkbenchAuth-DAabQl7X.mjs → useWorkbenchAuth-BTRlS2wZ.mjs} +1 -1
- package/.output/server/chunks/build/{useWorkbenchAuth-DAabQl7X.mjs.map → useWorkbenchAuth-BTRlS2wZ.mjs.map} +1 -1
- package/.output/server/chunks/build/{useWorkbenchWorkspaces-6-mpCGCR.mjs → useWorkbenchWorkspaces-C6ky7OJH.mjs} +1 -1
- package/.output/server/chunks/build/{useWorkbenchWorkspaces-6-mpCGCR.mjs.map → useWorkbenchWorkspaces-C6ky7OJH.mjs.map} +1 -1
- package/.output/server/chunks/build/{users-B_pHStEa.mjs → users-BHOEW3Az.mjs} +15 -14
- package/.output/server/chunks/build/users-BHOEW3Az.mjs.map +1 -0
- package/.output/server/chunks/build/{workshop-C0DefygA.mjs → workshop-DyJ1LXwu.mjs} +11 -10
- package/.output/server/chunks/build/workshop-DyJ1LXwu.mjs.map +1 -0
- package/.output/server/chunks/routes/api/mcp/workshop.mjs +1 -1
- package/.output/server/chunks/routes/api/system/backup/run.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/analysis/_id_.delete.mjs +46 -0
- package/.output/server/chunks/routes/api/workshop/analysis/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/analysis/_id_.get.mjs +39 -0
- package/.output/server/chunks/routes/api/workshop/analysis/_id_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index7.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs +20 -23
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index11.get.mjs +25 -11
- package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index12.get.mjs +10 -4
- package/.output/server/chunks/routes/api/workshop/index12.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index13.get.mjs +2 -3
- package/.output/server/chunks/routes/api/workshop/index13.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index14.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/index14.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index15.get.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/index15.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs +20 -9
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs +10 -4
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +4 -29
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +25 -22
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs +26 -5
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs +4 -39
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs +40 -20
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +2 -2
- package/.output/server/chunks/routes/renderer.mjs +2 -2
- package/.output/server/chunks/virtual/entry.mjs +551 -824
- package/.output/server/chunks/virtual/entry.mjs.map +1 -1
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/README-zh.md +17 -0
- package/README.md +20 -0
- package/app/components/AppSidebar.vue +1 -0
- package/app/components/analysis/AnalysisFilterCard.vue +160 -0
- package/app/components/analysis/AnalysisPageHead.vue +47 -0
- package/app/components/analysis/AnalysisTable.vue +306 -0
- package/app/composables/useRouteMeta.ts +1 -0
- package/app/config/schema.ts +1 -0
- package/app/pages/analysis/composables/useAnalysisFeed.ts +85 -0
- package/app/pages/analysis/index.vue +92 -0
- package/app/pages/analysis/types.ts +44 -0
- package/cli/commands/mcp.mjs +160 -154
- package/config.yml +1 -1
- package/i18n/locales/en.ts +55 -0
- package/i18n/locales/zh-CN.ts +55 -0
- package/mcp/aw-mcp-server.mjs +799 -796
- package/package.json +2 -2
- package/scripts/onboarding/onboard.mjs +5 -2
- package/scripts/onboarding/sim-twin.mjs +312 -0
- package/server/api/workshop/analysis/[id].delete.ts +30 -0
- package/server/api/workshop/analysis/[id].get.ts +23 -0
- package/server/api/workshop/analysis/index.get.ts +33 -0
- package/server/plugins/workshop.ts +4 -0
- package/server/repositories/user.repository.ts +2 -2
- package/server/services/workshop/agents/host-tool-bridge/catalog.ts +4 -1
- package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +5 -2
- package/server/services/workshop/agents/industrial/analysis-tools.ts +242 -0
- package/server/services/workshop/agents/industrial/index.ts +1 -0
- package/server/services/workshop/agents/industrial/ops-tools.ts +3 -2
- package/server/services/workshop/analysis/analysis.repo.ts +189 -0
- package/server/services/workshop/db/database/schema.ts +28 -1
- package/server/services/workshop/db/ops.repo.ts +1 -1
- package/server/services/workshop/db/retention.ts +2 -0
- package/server/services/workshop/db/schema.sql +27 -0
- package/server/services/workshop/settings.ts +1 -0
- package/shared/config/schema.json +1 -0
- package/.output/public/_nuxt/B-Y_rsfn.js +0 -106
- package/.output/public/_nuxt/B02cxZz72.js +0 -1
- package/.output/public/_nuxt/BAqtRt0q.js +0 -1
- package/.output/public/_nuxt/BKHd_sKD2.js +0 -47
- package/.output/public/_nuxt/BXKCB3rS.js +0 -1
- package/.output/public/_nuxt/BhrnGVGz.js +0 -1
- package/.output/public/_nuxt/BikIgp9R.js +0 -1
- package/.output/public/_nuxt/BkGqyjWm.js +0 -3
- package/.output/public/_nuxt/Bn1N3mJv.js +0 -1
- package/.output/public/_nuxt/Br2LgfbH2.js +0 -13
- package/.output/public/_nuxt/BtNT93vm2.js +0 -1
- package/.output/public/_nuxt/BtYg4aGR2.js +0 -1
- package/.output/public/_nuxt/C4X_Z1lA.js +0 -1
- package/.output/public/_nuxt/CBATzTUf.js +0 -13
- package/.output/public/_nuxt/CEP4UrDv.js +0 -1
- package/.output/public/_nuxt/CIPKYgrH2.js +0 -1
- package/.output/public/_nuxt/CPSHP_EI.js +0 -1
- package/.output/public/_nuxt/CSyIwYcJ2.js +0 -1
- package/.output/public/_nuxt/CZkTlW93.js +0 -2
- package/.output/public/_nuxt/CZyYdpqZ2.js +0 -1
- package/.output/public/_nuxt/CeDkXWCz.js +0 -1
- package/.output/public/_nuxt/Cl19UD7U.js +0 -1
- package/.output/public/_nuxt/ClrkV0C4.js +0 -1
- package/.output/public/_nuxt/CoGETbe-2.js +0 -1
- package/.output/public/_nuxt/CuRtzvsa2.js +0 -1
- package/.output/public/_nuxt/Cv_H1gOM2.js +0 -1
- package/.output/public/_nuxt/D5i2ofVw2.js +0 -1
- package/.output/public/_nuxt/D6XGn5vM.js +0 -2
- package/.output/public/_nuxt/D6c5ppqB.js +0 -1
- package/.output/public/_nuxt/D8VQGThE.js +0 -28
- package/.output/public/_nuxt/DBwuADr82.js +0 -1
- package/.output/public/_nuxt/DTZO6WMs2.js +0 -1
- package/.output/public/_nuxt/DfqRQSFn.js +0 -19
- package/.output/public/_nuxt/DraEWn4N2.js +0 -1
- package/.output/public/_nuxt/DyMgrV29.js +0 -1
- package/.output/public/_nuxt/H7Rbu32y2.js +0 -1
- package/.output/public/_nuxt/TjGWqrHo.js +0 -1
- package/.output/public/_nuxt/VVomhVqu2.js +0 -1
- package/.output/public/_nuxt/YDs3mbQu2.js +0 -1
- package/.output/public/_nuxt/Z3MSTcdu2.js +0 -1
- package/.output/public/_nuxt/_vR_sc7t.js +0 -24
- package/.output/public/_nuxt/builds/meta/082ac92a-d8d0-4e78-8d5a-b4a610080231.json +0 -1
- package/.output/public/_nuxt/gbaq2UOO.js +0 -1
- package/.output/public/_nuxt/o-G6YtmK2.js +0 -1
- package/.output/public/_nuxt/ylowSquM2.js +0 -1
- package/.output/server/chunks/build/agents-BTsbna5H.mjs.map +0 -1
- package/.output/server/chunks/build/channel-templates-BPKJ8e4l.mjs.map +0 -1
- package/.output/server/chunks/build/input-CobQ5LJ5.mjs.map +0 -1
- package/.output/server/chunks/build/permissions-D6mQw_9j.mjs.map +0 -1
- package/.output/server/chunks/build/settings-Cl_KRyEn.mjs.map +0 -1
- package/.output/server/chunks/build/teams-CGDZHaQl.mjs.map +0 -1
- package/.output/server/chunks/build/tokens-BOYkZuoB.mjs.map +0 -1
- package/.output/server/chunks/build/users-B_pHStEa.mjs.map +0 -1
- package/.output/server/chunks/build/workshop-C0DefygA.mjs.map +0 -1
- package/scripts/_audit/.tmp/audit-data/dcw-params.json +0 -15
- package/scripts/_audit/.tmp/audit-data/dcws.json +0 -30
- package/scripts/_audit/aml-layout-diag.mjs +0 -83
- package/scripts/_audit/channel-inspect.mjs +0 -49
- package/scripts/_audit/cleanup-apply.mjs +0 -89
- package/scripts/_audit/cleanup-plan.mjs +0 -82
- package/scripts/_audit/contrast-check.mjs +0 -43
- package/scripts/_audit/dcw-controller-e2e.ts +0 -106
- package/scripts/_audit/dcw-flush-cost.ts +0 -43
- package/scripts/_audit/dcw-rollback-ledger.ts +0 -156
- package/scripts/_audit/dcw-unrecorded-write.ts +0 -171
- package/scripts/_audit/dcw-write-mutex.ts +0 -157
- package/scripts/_audit/design-shots.mjs +0 -145
- package/scripts/_audit/docs-font-probe.mjs +0 -68
- package/scripts/_audit/docs-probe.mjs +0 -107
- package/scripts/_audit/docs-shots.mjs +0 -171
- package/scripts/_audit/docs-v3-verify.mjs +0 -255
- package/scripts/_audit/docs-vue-lint.mjs +0 -81
- package/scripts/_audit/docs-vue-lint2.mjs +0 -91
- package/scripts/_audit/exp-cost-scaling.mjs +0 -57
- package/scripts/_audit/exp-envelope-and-png.mjs +0 -78
- package/scripts/_audit/exp-png-decode.mjs +0 -67
- package/scripts/_audit/exp-retention-plan.mjs +0 -61
- package/scripts/_audit/exp-retention-rescan.mjs +0 -42
- package/scripts/_audit/exp-sweep-fairness.mjs +0 -50
- package/scripts/_audit/feature-audit-e2e.mjs +0 -342
- package/scripts/_audit/fix-settings-count.mjs +0 -57
- package/scripts/_audit/full-e2e-adopt.mjs +0 -238
- package/scripts/_audit/full-e2e-close-loop.mjs +0 -134
- package/scripts/_audit/full-e2e-retrain.mjs +0 -320
- package/scripts/_audit/full-e2e-supplement.mjs +0 -192
- package/scripts/_audit/full-e2e-ui-final.mjs +0 -111
- package/scripts/_audit/full-e2e-ui-mount.mjs +0 -111
- package/scripts/_audit/full-feature-e2e-20260927.mjs +0 -627
- package/scripts/_audit/glass-verify.mjs +0 -155
- package/scripts/_audit/hydration-diff.mjs +0 -104
- package/scripts/_audit/hydration-head.mjs +0 -36
- package/scripts/_audit/hydration-probe.mjs +0 -59
- package/scripts/_audit/idd-scenarios-e2e.mjs +0 -239
- package/scripts/_audit/kb-diag-complete.mjs +0 -261
- package/scripts/_audit/kb-diag-complete2.mjs +0 -271
- package/scripts/_audit/kb-diag-loop-e2e.mjs +0 -357
- package/scripts/_audit/kb-diag-loop-mock.mjs +0 -416
- package/scripts/_audit/kb-diag-loop-v2.mjs +0 -314
- package/scripts/_audit/lead-matrix-test.mjs +0 -172
- package/scripts/_audit/plc-agent-task.mjs +0 -74
- package/scripts/_audit/plc-clean-scenario.mjs +0 -434
- package/scripts/_audit/plc-clean-shots.mjs +0 -161
- package/scripts/_audit/plc-fc10-probe.mjs +0 -30
- package/scripts/_audit/probe-binding.mjs +0 -114
- package/scripts/_audit/recipe-save-e2e.mjs +0 -365
- package/scripts/_audit/review-fix-verify.mjs +0 -158
- package/scripts/_audit/runtime-dir-e2e.mjs +0 -393
- package/scripts/_audit/town-focus-shot.mjs +0 -129
- package/scripts/_audit/town-reposition.mjs +0 -85
- package/scripts/_audit/verify-cleanup.mjs +0 -67
- package/scripts/_audit/verify-data-integrity.mjs +0 -112
- package/scripts/_audit/watchdog-recovery-test.mjs +0 -149
- package/scripts/_dbg-optloop-ui-shots.mjs +0 -52
- /package/.output/public/_nuxt/{4RTUlYvj2.js → 4RTUlYvj.js} +0 -0
- /package/.output/public/_nuxt/{BBhLVYdM.js → BBhLVYdM2.js} +0 -0
- /package/.output/public/_nuxt/{BG7XSX-S2.js → BG7XSX-S.js} +0 -0
- /package/.output/public/_nuxt/{BU7WuuKh.js → BU7WuuKh2.js} +0 -0
- /package/.output/public/_nuxt/{BrRX-l9B2.js → BrRX-l9B.js} +0 -0
- /package/.output/public/_nuxt/{CHyzK5m52.js → CHyzK5m5.js} +0 -0
- /package/.output/public/_nuxt/{Ckafrjnw2.js → Ckafrjnw.js} +0 -0
- /package/.output/public/_nuxt/{D1Xw30Dj2.js → D1Xw30Dj.js} +0 -0
- /package/.output/public/_nuxt/{DEhjFhZ2.js → DEhjFhZ22.js} +0 -0
- /package/.output/public/_nuxt/{DdNujZN5.js → DdNujZN52.js} +0 -0
- /package/.output/public/_nuxt/{DzwIZ81f.js → DzwIZ81f2.js} +0 -0
- /package/.output/public/_nuxt/{M6NcguDO.js → M6NcguDO2.js} +0 -0
- /package/.output/public/_nuxt/{MW-V7IIP2.js → MW-V7IIP.js} +0 -0
- /package/.output/public/_nuxt/{WmMwIS4y.js → WmMwIS4y2.js} +0 -0
- /package/.output/public/_nuxt/{qIQFsHtF.js → qIQFsHtF2.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workshop-C0DefygA.mjs","sources":["../../../../app/components/workshop/workbench/ChangePasswordModal.vue","../../../../app/components/workshop/workbench/CreateWorkspaceModal.vue","../../../../app/components/workshop/workbench/WorkbenchHead.vue","../../../../app/components/workshop/workbench/WorkspaceCard.vue","../../../../app/components/workshop/workbench/WorkspaceEmpty.vue","../../../../app/pages/workshop/index.vue"],"names":["api","$t","useHead"],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"id": "pp-631395ac",
|
|
4
|
-
"key": "temp-sp",
|
|
5
|
-
"name": "温度设定器 01",
|
|
6
|
-
"templateRef": "temp-sp",
|
|
7
|
-
"unit": "℃",
|
|
8
|
-
"decimals": 1,
|
|
9
|
-
"min": null,
|
|
10
|
-
"max": null,
|
|
11
|
-
"stepLimit": 1,
|
|
12
|
-
"nodeId": "dw-6eb7585a",
|
|
13
|
-
"createdAt": "2026-09-26T18:46:15.782Z"
|
|
14
|
-
}
|
|
15
|
-
]
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"id": "dw-6eb7585a",
|
|
4
|
-
"templateRef": "temp-sp",
|
|
5
|
-
"name": "温度设定器 01",
|
|
6
|
-
"driver": "mock",
|
|
7
|
-
"enabled": true,
|
|
8
|
-
"holdIntervalMs": null,
|
|
9
|
-
"readIntervalMs": null,
|
|
10
|
-
"writeLockSeconds": 60,
|
|
11
|
-
"stepLimit": 1,
|
|
12
|
-
"unit": "℃",
|
|
13
|
-
"decimals": 2,
|
|
14
|
-
"min": 150,
|
|
15
|
-
"max": 200,
|
|
16
|
-
"deviceBindingId": null,
|
|
17
|
-
"deviceIds": [],
|
|
18
|
-
"driverConfig": {},
|
|
19
|
-
"lineId": "",
|
|
20
|
-
"value": 160,
|
|
21
|
-
"readValue": null,
|
|
22
|
-
"lastReadAt": null,
|
|
23
|
-
"lastReadError": null,
|
|
24
|
-
"lastAckAt": "2026-09-26T18:46:15.783Z",
|
|
25
|
-
"lastWriteAt": "2026-09-26T18:46:15.783Z",
|
|
26
|
-
"state": "ok",
|
|
27
|
-
"lastError": null,
|
|
28
|
-
"createdAt": "2026-09-26T18:46:15.780Z"
|
|
29
|
-
}
|
|
30
|
-
]
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* /aml 布局错位定点定位 —— 复刻 review-fix-verify 的完整上下文
|
|
3
|
-
* (新建 browser context + 模态交互 + 多跳导航),然后打印祖先链与几何。
|
|
4
|
-
*/
|
|
5
|
-
import { existsSync } from 'node:fs'
|
|
6
|
-
import puppeteer from 'puppeteer-core'
|
|
7
|
-
|
|
8
|
-
const BASE = 'http://127.0.0.1:3111'
|
|
9
|
-
const EDGE = 'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe'
|
|
10
|
-
const CHROME = 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'
|
|
11
|
-
const EXEC = existsSync(EDGE) ? EDGE : CHROME
|
|
12
|
-
const sleep = ms => new Promise(r => setTimeout(r, ms))
|
|
13
|
-
|
|
14
|
-
const chainOf = `(el) => { const out = []; let e = el; while (e && e.tagName !== 'BODY') {
|
|
15
|
-
const r = e.getBoundingClientRect(); const cs = getComputedStyle(e)
|
|
16
|
-
out.push({ t: e.tagName + '.' + e.className.toString().split(' ').filter(c => !c.startsWith('css-')).slice(0, 3).join('.'),
|
|
17
|
-
top: Math.round(r.top), left: Math.round(r.left), w: Math.round(r.width), h: Math.round(r.height),
|
|
18
|
-
disp: cs.display, dir: cs.flexDirection, pos: cs.position })
|
|
19
|
-
e = e.parentElement } return out }`
|
|
20
|
-
|
|
21
|
-
async function main() {
|
|
22
|
-
const browser = await puppeteer.launch({ executablePath: EXEC, headless: 'new', args: ['--no-sandbox', '--hide-scrollbars'], defaultViewport: { width: 1680, height: 1050 } })
|
|
23
|
-
const lg = await fetch(`${BASE}/api/users/login`, {
|
|
24
|
-
method: 'POST', headers: { 'content-type': 'application/json' },
|
|
25
|
-
body: JSON.stringify({ email: 'admin@awshop.local', password: 'admin123' }),
|
|
26
|
-
}).then(r => r.json())
|
|
27
|
-
const token = lg.data.token
|
|
28
|
-
|
|
29
|
-
const ctx = await browser.createBrowserContext()
|
|
30
|
-
const page = await ctx.newPage()
|
|
31
|
-
await page.goto(`${BASE}/daq`, { waitUntil: 'domcontentloaded' })
|
|
32
|
-
await page.evaluate((t) => {
|
|
33
|
-
document.cookie = `token=${encodeURIComponent(t)}; path=/`
|
|
34
|
-
document.cookie = 'aw-theme=light; path=/'
|
|
35
|
-
// 与 review-fix-verify 一致的 pinia 持久化预置(唯一未复刻的变量)
|
|
36
|
-
localStorage.setItem('app', JSON.stringify({ isDark: false, sidebarCollapsed: false, accent: '', themeTouched: true }))
|
|
37
|
-
}, token)
|
|
38
|
-
await page.goto(`${BASE}/daq`, { waitUntil: 'networkidle2' })
|
|
39
|
-
await sleep(900)
|
|
40
|
-
// 模态交互
|
|
41
|
-
await page.evaluate(() => {
|
|
42
|
-
const btns = [...document.querySelectorAll('button, .aw-pill, .line-pill')]
|
|
43
|
-
const b = btns.find(x => /添加|新建|add/i.test(x.textContent ?? ''))
|
|
44
|
-
b?.click()
|
|
45
|
-
})
|
|
46
|
-
await sleep(500)
|
|
47
|
-
await page.keyboard.press('Escape')
|
|
48
|
-
await sleep(500)
|
|
49
|
-
// 多跳
|
|
50
|
-
await page.goto(`${BASE}/`, { waitUntil: 'networkidle2' })
|
|
51
|
-
await sleep(1200)
|
|
52
|
-
await page.goto(`${BASE}/dcw`, { waitUntil: 'networkidle2' })
|
|
53
|
-
await sleep(400)
|
|
54
|
-
await page.goto(`${BASE}/aml`, { waitUntil: 'networkidle2' })
|
|
55
|
-
await sleep(2000)
|
|
56
|
-
|
|
57
|
-
const dump = await page.evaluate(`(() => {
|
|
58
|
-
const chainOf = ${chainOf}
|
|
59
|
-
const main = document.querySelector('.app-main')
|
|
60
|
-
const sider = document.querySelector('.app-sider')
|
|
61
|
-
const layouts = [...document.querySelectorAll('.ant-layout')].map(e => {
|
|
62
|
-
const r = e.getBoundingClientRect(); const cs = getComputedStyle(e)
|
|
63
|
-
return { cls: e.className.toString().slice(0, 50), top: Math.round(r.top), left: Math.round(r.left),
|
|
64
|
-
w: Math.round(r.width), h: Math.round(r.height), dir: cs.flexDirection, wrap: cs.flexWrap }
|
|
65
|
-
})
|
|
66
|
-
return {
|
|
67
|
-
docH: document.documentElement.scrollHeight,
|
|
68
|
-
layouts,
|
|
69
|
-
mainChain: chainOf(main),
|
|
70
|
-
siderChain: chainOf(sider),
|
|
71
|
-
sider: (() => { const r = sider?.getBoundingClientRect(); const cs = sider ? getComputedStyle(sider) : null
|
|
72
|
-
return sider ? { top: Math.round(r.top), left: Math.round(r.left), w: Math.round(r.width), h: Math.round(r.height),
|
|
73
|
-
display: cs.display, position: cs.position, flex: cs.flex, cssFloat: cs.cssFloat } : null })(),
|
|
74
|
-
layoutDisplay: (() => { const L = document.querySelector('.app-layout'); const cs = getComputedStyle(L)
|
|
75
|
-
return { display: cs.display, dir: cs.flexDirection, wrap: cs.flexWrap, w: Math.round(L.getBoundingClientRect().width) } })(),
|
|
76
|
-
mainParentHTMLHead: main?.parentElement?.outerHTML.slice(0, 260),
|
|
77
|
-
}
|
|
78
|
-
})()`)
|
|
79
|
-
console.log(JSON.stringify(dump, null, 1))
|
|
80
|
-
await browser.close()
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
main().catch((e) => { console.error(e); process.exit(1) })
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* channel-inspect.mjs —— 按名字看某个 Channel 的任务与消息(排障常用)
|
|
3
|
-
* 用法:node scripts/_audit/channel-inspect.mjs --base http://127.0.0.1:3112 --match 矩阵-A [--full]
|
|
4
|
-
*/
|
|
5
|
-
const arg = (k, d) => {
|
|
6
|
-
const i = process.argv.indexOf(`--${k}`)
|
|
7
|
-
return i > 0 && process.argv[i + 1] ? process.argv[i + 1] : d
|
|
8
|
-
}
|
|
9
|
-
const BASE = arg('base', 'http://127.0.0.1:3112').replace(/\/$/, '')
|
|
10
|
-
const MATCH = arg('match', '')
|
|
11
|
-
const FULL = process.argv.includes('--full')
|
|
12
|
-
|
|
13
|
-
let TOKEN = null
|
|
14
|
-
const api = async (method, path, { body } = {}) => {
|
|
15
|
-
const headers = { 'content-type': 'application/json' }
|
|
16
|
-
if (TOKEN) headers.authorization = `Bearer ${TOKEN}`
|
|
17
|
-
const res = await fetch(`${BASE}${path}`, { method, headers, body: body !== undefined ? JSON.stringify(body) : undefined })
|
|
18
|
-
return { status: res.status, ...(await res.json().catch(() => ({}))) }
|
|
19
|
-
}
|
|
20
|
-
const data = r => r?.data ?? {}
|
|
21
|
-
|
|
22
|
-
TOKEN = data(await api('POST', '/api/users/login', { body: { email: 'plant@awshop.local', password: 'Plant!2026' } })).token
|
|
23
|
-
if (!TOKEN) { console.error('✖ 登录失败'); process.exitCode = 2; throw new Error('login') }
|
|
24
|
-
|
|
25
|
-
const raw = data(await api('GET', '/api/workshop/channels'))
|
|
26
|
-
const chans = Array.isArray(raw) ? raw : (raw.channels ?? [])
|
|
27
|
-
const targets = MATCH ? chans.filter(c => new RegExp(MATCH).test(c.name)) : chans
|
|
28
|
-
if (!targets.length) {
|
|
29
|
-
console.log(`没有匹配「${MATCH}」的 Channel。现有:${chans.map(c => c.name).join(' | ')}`)
|
|
30
|
-
process.exitCode = 1
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
for (const ch of targets) {
|
|
34
|
-
console.log(`\n═══ ${ch.name} (${ch.id}) lead=${String(ch.leadAgentId).slice(0, 8)} ═══`)
|
|
35
|
-
const tasks = data(await api('GET', `/api/workshop/channels/${ch.id}/tasks`)) ?? []
|
|
36
|
-
for (const t of (Array.isArray(tasks) ? tasks : [])) {
|
|
37
|
-
console.log(` TASK ${t.id.slice(0, 8)} ${String(t.state).padEnd(10)} progress=${String(t.progress ?? 0).padEnd(4)} retry=${t.retryCount ?? 0} history=${(t.history ?? []).length} assignee=${String(t.assigneeId).slice(0, 8)} ${t.title}`)
|
|
38
|
-
}
|
|
39
|
-
const m = data(await api('GET', `/api/workshop/channels/${ch.id}/messages?limit=60`))
|
|
40
|
-
const msgs = Array.isArray(m) ? m : (m.messages ?? [])
|
|
41
|
-
console.log(` ── 消息 ${msgs.length} 条 ──`)
|
|
42
|
-
for (const x of msgs.slice(-10)) {
|
|
43
|
-
const text = (x.parts ?? []).map(p => String(p.text ?? '')).join(' ').replace(/\s+/g, ' ')
|
|
44
|
-
const meta = x.metadata ? ` meta=${JSON.stringify(x.metadata)}` : ''
|
|
45
|
-
console.log(` · ${(x.kind ?? x.role ?? '?')}${meta}`)
|
|
46
|
-
console.log(` ${FULL ? text : text.slice(0, 400)}`)
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
// 按引用索引执行清理(默认 dry-run,加 --apply 才真删)
|
|
2
|
-
// 口径:
|
|
3
|
-
// A 生成产物 / 一次性走查截图 / scratch
|
|
4
|
-
// B/C/D scripts/ 下零引用脚本(白名单与全功能测试手册用到的脚本一律排除)
|
|
5
|
-
import { existsSync, readFileSync, readdirSync, rmSync, statSync, unlinkSync } from 'node:fs'
|
|
6
|
-
import { join, sep } from 'node:path'
|
|
7
|
-
|
|
8
|
-
const ROOT = process.cwd()
|
|
9
|
-
const APPLY = process.argv.includes('--apply')
|
|
10
|
-
|
|
11
|
-
function walk(rel, out = []) {
|
|
12
|
-
const full = join(ROOT, rel.split('/').join(sep))
|
|
13
|
-
if (!existsSync(full)) return out
|
|
14
|
-
if (statSync(full).isFile()) { out.push(rel); return out }
|
|
15
|
-
for (const n of readdirSync(full)) walk(`${rel}/${n}`, out)
|
|
16
|
-
return out
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// ---------- A 类:生成产物 / scratch ----------
|
|
20
|
-
const A_DIRS = [
|
|
21
|
-
'docs/audit/screenshots',
|
|
22
|
-
'docs/experiments/results',
|
|
23
|
-
'gui-test-screenshots',
|
|
24
|
-
'.e2e-shots',
|
|
25
|
-
'.design-verify',
|
|
26
|
-
'aw-pack-verify',
|
|
27
|
-
'docs/site/.vitepress/dist',
|
|
28
|
-
'docs/site/.vitepress/cache',
|
|
29
|
-
]
|
|
30
|
-
const A_FILES = [
|
|
31
|
-
'agentworkshop-0.7.36.tgz',
|
|
32
|
-
'.e2e-dev-restart.log',
|
|
33
|
-
'.tmp-lint.json',
|
|
34
|
-
'app-server-readme.md',
|
|
35
|
-
'repo-exec.md',
|
|
36
|
-
]
|
|
37
|
-
|
|
38
|
-
// ---------- B/C/D 类:零引用脚本 ----------
|
|
39
|
-
const usage = JSON.parse(readFileSync(join(ROOT, 'scripts/_audit/script-usage.json'), 'utf8'))
|
|
40
|
-
const KEEP_ALWAYS = new Set([
|
|
41
|
-
'scripts/test-memory-month-query.mjs', // 常备回归(本轮验收全绿)
|
|
42
|
-
'scripts/test-plugin-hardening.mjs', // 常备回归(本轮验收全绿)
|
|
43
|
-
'scripts/_rtu-mini-slave.mjs', // 被协议矩阵等脚本 spawn 的夹具
|
|
44
|
-
])
|
|
45
|
-
const orphanScripts = usage.orphans.map(r => r.script).filter(p => !KEEP_ALWAYS.has(p))
|
|
46
|
-
|
|
47
|
-
// ---------- 安全闸:全功能测试手册里出现的路径必须全部保留 ----------
|
|
48
|
-
const plan = readFileSync(join(ROOT, 'docs/full-test-plan.md'), 'utf8')
|
|
49
|
-
const planPaths = [...plan.matchAll(/scripts\/[A-Za-z0-9_\-./]+\.(?:mjs|ts|cjs|py|sh)/g)].map(m => m[0])
|
|
50
|
-
const planSet = new Set(planPaths.map(p => p.replace(/\/+$/, '')))
|
|
51
|
-
const killed = orphanScripts.filter(p => planSet.has(p) || [...planSet].some(x => p.startsWith(x + '/')))
|
|
52
|
-
if (killed.length) {
|
|
53
|
-
console.error('中止:以下脚本被 docs/full-test-plan.md 引用,不允许删除:')
|
|
54
|
-
for (const k of killed) console.error(' ' + k)
|
|
55
|
-
process.exitCode = 1
|
|
56
|
-
throw new Error('safety gate')
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// ---------- 执行 ----------
|
|
60
|
-
const dirsToRemove = A_DIRS.filter(d => existsSync(join(ROOT, d.split('/').join(sep))))
|
|
61
|
-
const filesToRemove = [
|
|
62
|
-
...A_FILES.filter(f => existsSync(join(ROOT, f.split('/').join(sep)))),
|
|
63
|
-
...orphanScripts.filter(p => existsSync(join(ROOT, p.split('/').join(sep)))),
|
|
64
|
-
]
|
|
65
|
-
|
|
66
|
-
const dirBytes = dirsToRemove.reduce((s, d) => s + walk(d).reduce((a, r) => {
|
|
67
|
-
try { return a + statSync(join(ROOT, r.split('/').join(sep))).size } catch { return a }
|
|
68
|
-
}, 0), 0)
|
|
69
|
-
const fileBytes = filesToRemove.reduce((s, p) => {
|
|
70
|
-
try { return s + statSync(join(ROOT, p.split('/').join(sep))).size } catch { return s }
|
|
71
|
-
}, 0)
|
|
72
|
-
|
|
73
|
-
const mb = bytes => bytes / 1048576 >= 1
|
|
74
|
-
? `${(bytes / 1048576).toFixed(1)} MB`
|
|
75
|
-
: `${(bytes / 1024).toFixed(1)} KB`
|
|
76
|
-
|
|
77
|
-
console.log(`A 目录 ${dirsToRemove.length} 个(${mb(dirBytes)})`)
|
|
78
|
-
for (const d of dirsToRemove) console.log(` - ${d}/ (${walk(d).length} 文件)`)
|
|
79
|
-
console.log(`文件 ${filesToRemove.length} 个(${mb(fileBytes)})`)
|
|
80
|
-
console.log(` 其中孤立脚本 ${orphanScripts.length} 个,散落产物 ${filesToRemove.length - orphanScripts.length} 个`)
|
|
81
|
-
console.log(`合计 ${mb(dirBytes + fileBytes)}`)
|
|
82
|
-
console.log(`docs/full-test-plan.md 引用脚本 ${planSet.size} 个 —— 全部保留`)
|
|
83
|
-
|
|
84
|
-
if (!APPLY) { console.log('\n[dry-run] 加 --apply 才真正删除'); process.exit(0) }
|
|
85
|
-
|
|
86
|
-
for (const d of dirsToRemove) rmSync(join(ROOT, d.split('/').join(sep)), { recursive: true, force: true })
|
|
87
|
-
let n = 0
|
|
88
|
-
for (const p of filesToRemove) { unlinkSync(join(ROOT, p.split('/').join(sep))); n++ }
|
|
89
|
-
console.log(`\n✔ 已删除 ${dirsToRemove.length} 个目录 + ${n} 个文件`)
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
// 列出"计划删除"的清单(只读预览),供人工确认;支持 --class=A|B|C|D
|
|
2
|
-
import { existsSync, readFileSync, statSync, readdirSync } from 'node:fs'
|
|
3
|
-
import { join, sep } from 'node:path'
|
|
4
|
-
|
|
5
|
-
const ROOT = process.cwd()
|
|
6
|
-
const arg = (k) => { const i = process.argv.indexOf(k); return i >= 0 ? process.argv[i + 1] : undefined }
|
|
7
|
-
const cls = (arg('--class') ?? 'ALL').toUpperCase()
|
|
8
|
-
|
|
9
|
-
function walk(rel, out = []) {
|
|
10
|
-
const full = join(ROOT, rel)
|
|
11
|
-
if (!existsSync(full)) return out
|
|
12
|
-
const st = statSync(full)
|
|
13
|
-
if (st.isFile()) { out.push(rel); return out }
|
|
14
|
-
for (const n of readdirSync(full)) walk(rel + '/' + n, out)
|
|
15
|
-
return out
|
|
16
|
-
}
|
|
17
|
-
const size = list => list.reduce((s, r) => {
|
|
18
|
-
try { return s + statSync(join(ROOT, r.split('/').join(sep))).size } catch { return s }
|
|
19
|
-
}, 0)
|
|
20
|
-
|
|
21
|
-
// A 类:纯生成产物 / 一次性走查截图 / scratch(文档零引用)
|
|
22
|
-
const A_DIRS = [
|
|
23
|
-
'docs/audit/screenshots',
|
|
24
|
-
'docs/experiments/results',
|
|
25
|
-
'gui-test-screenshots',
|
|
26
|
-
'.e2e-shots',
|
|
27
|
-
'.design-verify',
|
|
28
|
-
'aw-pack-verify',
|
|
29
|
-
'docs/site/.vitepress/dist',
|
|
30
|
-
'docs/site/.vitepress/cache',
|
|
31
|
-
]
|
|
32
|
-
// A 类文件:仓库根的散落产物
|
|
33
|
-
const A_FILES = [
|
|
34
|
-
'agentworkshop-0.7.36.tgz',
|
|
35
|
-
'.e2e-dev-restart.log',
|
|
36
|
-
'.tmp-lint.json',
|
|
37
|
-
'app-server-readme.md',
|
|
38
|
-
'repo-exec.md',
|
|
39
|
-
]
|
|
40
|
-
|
|
41
|
-
// B 类:孤立测试脚本(无任何引用)
|
|
42
|
-
const usage = JSON.parse(readFileSync(join(ROOT, 'scripts/_audit/script-usage.json'), 'utf8'))
|
|
43
|
-
const B = usage.orphans.map(r => r.script)
|
|
44
|
-
// 例外白名单:即便孤立也保留(常备回归脚本 / 库 / 基础设施)
|
|
45
|
-
const KEEP_ALWAYS = new Set([
|
|
46
|
-
'scripts/test-memory-month-query.mjs',
|
|
47
|
-
'scripts/test-plugin-hardening.mjs',
|
|
48
|
-
'scripts/_rtu-mini-slave.mjs',
|
|
49
|
-
])
|
|
50
|
-
const Bfinal = B.filter(p => !KEEP_ALWAYS.has(p))
|
|
51
|
-
|
|
52
|
-
// C 类:孤立调试脚本(scripts/_dbg-* 无引用)
|
|
53
|
-
const C = Bfinal.filter(p => /\/_dbg-/.test(p))
|
|
54
|
-
|
|
55
|
-
// D 类:scripts/_audit 下一次性命中类探针(无引用、非文档引用)
|
|
56
|
-
const D = Bfinal.filter(p => /\/_audit\//.test(p))
|
|
57
|
-
|
|
58
|
-
const groups = {
|
|
59
|
-
A: [...A_DIRS.flatMap(d => walk(d)), ...A_FILES.filter(f => existsSync(join(ROOT, f.split('/').join(sep))))],
|
|
60
|
-
B: Bfinal.filter(p => !C.includes(p) && !D.includes(p)),
|
|
61
|
-
C,
|
|
62
|
-
D,
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const want = cls === 'ALL' ? ['A', 'B', 'C', 'D'] : [cls]
|
|
66
|
-
let total = 0
|
|
67
|
-
let totalBytes = 0
|
|
68
|
-
for (const k of want) {
|
|
69
|
-
const list = groups[k]
|
|
70
|
-
const bytes = size(list)
|
|
71
|
-
total += list.length
|
|
72
|
-
totalBytes += bytes
|
|
73
|
-
console.log(`### ${k} 类: ${list.length} 项, ${(bytes / 1024 / 1024).toFixed(1)} MB`)
|
|
74
|
-
}
|
|
75
|
-
console.log(`总计 ${total} 项, ${(totalBytes / 1024 / 1024).toFixed(1)} MB`)
|
|
76
|
-
console.log('')
|
|
77
|
-
for (const k of want) {
|
|
78
|
-
console.log(`===== ${k} =====`)
|
|
79
|
-
const list = groups[k].slice().sort()
|
|
80
|
-
for (const p of list) console.log(' ' + p)
|
|
81
|
-
console.log('')
|
|
82
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 对比度核算(WCAG 2.1) —— 校验"微标签用色"是否达 AA。
|
|
3
|
-
* 用法:node scripts/_audit/contrast-check.mjs
|
|
4
|
-
*/
|
|
5
|
-
const hex = (h) => {
|
|
6
|
-
const s = h.replace('#', '')
|
|
7
|
-
return [0, 2, 4].map(i => parseInt(s.slice(i, i + 2), 16) / 255)
|
|
8
|
-
}
|
|
9
|
-
const lin = c => (c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4)
|
|
10
|
-
const lum = (h) => {
|
|
11
|
-
const [r, g, b] = hex(h).map(lin)
|
|
12
|
-
return 0.2126 * r + 0.7152 * g + 0.0722 * b
|
|
13
|
-
}
|
|
14
|
-
const ratio = (a, b) => {
|
|
15
|
-
const [x, y] = [lum(a), lum(b)].sort((m, n) => n - m)
|
|
16
|
-
return (x + 0.05) / (y + 0.05)
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/** 背景取"该文字实际落上的表面" */
|
|
20
|
-
const CASES = [
|
|
21
|
-
// 亮阶:文字层
|
|
22
|
-
['亮 · --ink 于暖纸', '#0c0a09', '#f6f4f1', 4.5],
|
|
23
|
-
['亮 · --ink-soft 于暖纸', '#4b463f', '#f6f4f1', 4.5],
|
|
24
|
-
['亮 · --ink-faint 于暖纸(文字最淡档)', '#6f6860', '#f6f4f1', 4.5],
|
|
25
|
-
['亮 · --ink-faint 于 raised', '#6f6860', '#fffefc', 4.5],
|
|
26
|
-
['亮 · --focus-ring 于暖纸(焦点环落点)', '#3f6094', '#f6f4f1', 3],
|
|
27
|
-
// 暗阶:文字层
|
|
28
|
-
['暗 · --ink-faint 于暗面板(文字最淡档)', '#8fa0b5', '#111a28', 4.5],
|
|
29
|
-
['暗 · --focus-ring 于暗画布', '#6fb3ff', '#0a101a', 3],
|
|
30
|
-
// 回归护栏:装饰令牌**故意**不达 AA —— 记录在案,防止它被重新用作 color
|
|
31
|
-
['亮 · --ink-fainter 仅装饰(不要求达标)', '#a29a90', '#f6f4f1', 0],
|
|
32
|
-
['暗 · --ink-fainter 仅装饰(不要求达标)', '#5f6e84', '#111a28', 0],
|
|
33
|
-
]
|
|
34
|
-
|
|
35
|
-
let bad = 0
|
|
36
|
-
for (const [name, fg, bg, need] of CASES) {
|
|
37
|
-
const r = ratio(fg, bg)
|
|
38
|
-
const ok = r >= need
|
|
39
|
-
if (!ok) bad++
|
|
40
|
-
console.log(` ${ok ? '✔' : '✘'} ${name.padEnd(34)} ${r.toFixed(2)}:1 (阈值 ${need}:1)`)
|
|
41
|
-
}
|
|
42
|
-
console.log(`\n${bad === 0 ? '全部达标' : `${bad} 项未达标`}`)
|
|
43
|
-
process.exit(bad === 0 ? 0 : 1)
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 审计实验 5 —— 端到端:真实 DcwController + mock 驱动,验证
|
|
3
|
-
* ① 正常写:硬件写入 + 账本锚 + 写历史(正对照)
|
|
4
|
-
* ② PATCH decimals 越界 → 接口层 400 拒绝(0..6 校验已收敛,记账洞保持关闭);
|
|
5
|
-
* 合法 decimals 变更后正常写:硬件/账本/写历史三者一致
|
|
6
|
-
* ③ 不存在节点 id 的语义(服务层 404)
|
|
7
|
-
*
|
|
8
|
-
* cwd 已切到 scripts/_audit/.tmp:所有仓库文件写到临时目录,绝不碰 server/data/*。
|
|
9
|
-
* 运行:node --experimental-transform-types scripts/_audit/run.mjs scripts/_audit/dcw-controller-e2e.ts
|
|
10
|
-
*/
|
|
11
|
-
import { mkdirSync, rmSync } from 'node:fs'
|
|
12
|
-
|
|
13
|
-
// 审计需在同一节点上连续多次写(stepLimit/60s 间隔/保持窗会挡住秒级连写);
|
|
14
|
-
// 走基准同款旁路(AW_BENCH_MODE=1,仅豁免在线探索限频,四层限界联锁照常生效)。
|
|
15
|
-
process.env.AW_BENCH_MODE = '1'
|
|
16
|
-
|
|
17
|
-
// 清空本次实验的隔离数据目录(run.mjs 已把 AW_DATA_DIR 指向 scripts/_audit/.tmp/audit-data;
|
|
18
|
-
// 同目录其它实验残留的 20000 锚账本会污染断言,故先清空)
|
|
19
|
-
const ISOLATED = new URL('./.tmp/audit-data/', import.meta.url)
|
|
20
|
-
rmSync(ISOLATED, { recursive: true, force: true })
|
|
21
|
-
mkdirSync(ISOLATED, { recursive: true })
|
|
22
|
-
// 清空上次实验留下的临时库(benchmark 会写出 10MB+ 的 dcw-rollback.json)
|
|
23
|
-
rmSync(new URL('./.tmp/server/', import.meta.url), { recursive: true, force: true })
|
|
24
|
-
mkdirSync(new URL('./.tmp/server/data/', import.meta.url), { recursive: true })
|
|
25
|
-
process.chdir(new URL('./.tmp/', import.meta.url).pathname.replace(/^\//, ''))
|
|
26
|
-
|
|
27
|
-
const { getDcwController } = await import('../../server/services/workshop/dcw/dcw-controller')
|
|
28
|
-
const { getRecipeRollBackRepo } = await import('../../server/services/workshop/dcw/recipe-rollback.repo')
|
|
29
|
-
const { getDcwRecipeRepo } = await import('../../server/services/workshop/dcw/dcw-recipe.repo')
|
|
30
|
-
|
|
31
|
-
let failures = 0
|
|
32
|
-
function check(name: string, cond: boolean, extra = ''): void {
|
|
33
|
-
if (cond) {
|
|
34
|
-
console.log(` PASS ${name}${extra ? ` (${extra})` : ''}`)
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
failures++
|
|
38
|
-
console.log(` FAIL ${name}${extra ? ` (${extra})` : ''}`)
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const mockPlc = (globalThis as { __dcwMockPlc?: Map<string, number> }).__dcwMockPlc!
|
|
43
|
-
const plcValue = (): number | undefined => mockPlc.get('default')
|
|
44
|
-
|
|
45
|
-
const ctrl = getDcwController()
|
|
46
|
-
const ledger = getRecipeRollBackRepo()
|
|
47
|
-
const writes = getDcwRecipeRepo()
|
|
48
|
-
|
|
49
|
-
const node = ctrl.create({ templateRef: 'temp-sp', driver: 'mock', min: 150, max: 200, decimals: 1, enabled: true })
|
|
50
|
-
console.log(` 节点 ${node.id} 创建(mock 驱动,min150 max200 decimals1)`)
|
|
51
|
-
|
|
52
|
-
console.log('\n=== ① 正对照:正常写 ===')
|
|
53
|
-
{
|
|
54
|
-
const anchorsBefore = ledger.stats().anchors
|
|
55
|
-
const out = await ctrl.write(node.id, 160, null, { source: 'manual', actor: 'audit' })
|
|
56
|
-
check('写入返回 ok', out.ok === true, out.message)
|
|
57
|
-
check('mock PLC 记录写入值 160(硬件已写)', plcValue() === 160, `plc=${plcValue()}`)
|
|
58
|
-
check('账本新增 1 条锚', ledger.stats().anchors === anchorsBefore + 1, `anchors=${ledger.stats().anchors}`)
|
|
59
|
-
check('写历史新增 1 条', writes.historyList(5).length === 1, `n=${writes.historyList(5).length}`)
|
|
60
|
-
check('节点 value=160', node.value === 160, `value=${node.value}`)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
console.log('\n=== ② PATCH decimals 越界被拒;合法变更后三者一致 ===')
|
|
64
|
-
{
|
|
65
|
-
let e400: unknown
|
|
66
|
-
try {
|
|
67
|
-
ctrl.patch(node.id, { decimals: 101 })
|
|
68
|
-
}
|
|
69
|
-
catch (e) {
|
|
70
|
-
e400 = e
|
|
71
|
-
}
|
|
72
|
-
const status = (e400 as { status?: number })?.status
|
|
73
|
-
check('PATCH decimals=101 被接口拒绝(400,0..6 校验)', status === 400, `status=${status}`)
|
|
74
|
-
|
|
75
|
-
const patched = ctrl.patch(node.id, { decimals: 2 })
|
|
76
|
-
check('合法 PATCH decimals=2 被接受', patched.decimals === 2, `decimals=${patched.decimals}`)
|
|
77
|
-
|
|
78
|
-
const anchorsBefore = ledger.stats().anchors
|
|
79
|
-
const historyBefore = writes.historyList(50).length
|
|
80
|
-
const out = await ctrl.write(node.id, 170, null, { source: 'manual', actor: 'audit' })
|
|
81
|
-
check('写 170 返回 ok', out.ok === true, out.message)
|
|
82
|
-
check('mock PLC 已记录 170(硬件已写)', plcValue() === 170, `plc=${plcValue()}`)
|
|
83
|
-
check('账本新增 1 条锚(可回退)', ledger.stats().anchors === anchorsBefore + 1, `anchors=${ledger.stats().anchors}`)
|
|
84
|
-
check('写历史新增 1 条(审计不缺位)', writes.historyList(50).length === historyBefore + 1, `n=${writes.historyList(50).length}`)
|
|
85
|
-
check('节点 value=170', node.value === 170, `value=${node.value}`)
|
|
86
|
-
|
|
87
|
-
const stable = ledger.lastStableAnchor(node.id)
|
|
88
|
-
console.log(` 账本最新稳定锚={prev:${stable?.prevValue}, new:${stable?.newValue}};硬件实际=${plcValue()};节点显示=${node.value}`)
|
|
89
|
-
check('硬件(170)= 账本(170)= 节点(170):三者一致', plcValue() === 170 && stable?.newValue === 170 && node.value === 170)
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
console.log('\n=== ③ 不存在节点 id 的服务层语义 ===')
|
|
93
|
-
{
|
|
94
|
-
let e404: unknown
|
|
95
|
-
try {
|
|
96
|
-
await ctrl.write('dw-nonexistent', 160, null, { source: 'manual', actor: 'audit' })
|
|
97
|
-
}
|
|
98
|
-
catch (e) {
|
|
99
|
-
e404 = e
|
|
100
|
-
}
|
|
101
|
-
const status = (e404 as { status?: number })?.status
|
|
102
|
-
check('不存在节点 → AppError 404(控制器层)', status === 404, `status=${status}`)
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
console.log(`\nresult: ${failures === 0 ? 'ALL PASS' : `${failures} FAILED`}`)
|
|
106
|
-
process.exit(failures === 0 ? 0 : 1)
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 审计实验 4 —— DCW 落盘放大成本(只读:仅读真实 data/*.json,写入 scripts/_audit/.tmp)。
|
|
3
|
-
*
|
|
4
|
-
* 运行:node --experimental-transform-types scripts/_audit/run.mjs scripts/_audit/dcw-flush-cost.ts
|
|
5
|
-
*/
|
|
6
|
-
import { mkdirSync, readFileSync, statSync } from 'node:fs'
|
|
7
|
-
import { saveJsonFileAtomic } from '../../server/services/workshop/json-store.mjs'
|
|
8
|
-
|
|
9
|
-
const TMP = new URL('./.tmp/', import.meta.url).pathname.replace(/^\//, '')
|
|
10
|
-
mkdirSync(TMP, { recursive: true })
|
|
11
|
-
|
|
12
|
-
const rows = (f: string): unknown => JSON.parse(readFileSync(`server/data/${f}`, 'utf-8'))
|
|
13
|
-
|
|
14
|
-
const nodes = rows('dcws.json') as Array<Record<string, unknown>>
|
|
15
|
-
const writes = rows('dcw-writes.json') as Array<Record<string, unknown>>
|
|
16
|
-
|
|
17
|
-
function bench(label: string, data: unknown, target: string, iters: number): void {
|
|
18
|
-
const t0 = performance.now()
|
|
19
|
-
for (let i = 0; i < iters; i++) saveJsonFileAtomic(target, data)
|
|
20
|
-
const dt = performance.now() - t0
|
|
21
|
-
const size = statSync(target).size
|
|
22
|
-
// JSON.stringify 单独计量(纯 CPU,事件循环阻塞部分)
|
|
23
|
-
const t1 = performance.now()
|
|
24
|
-
for (let i = 0; i < iters; i++) JSON.stringify(data, null, 2)
|
|
25
|
-
const ds = performance.now() - t1
|
|
26
|
-
console.log(
|
|
27
|
-
` ${label}: flushNow 全量落盘 per-op=${(dt / iters).toFixed(1)}ms`
|
|
28
|
-
+ ` (其中 JSON.stringify(pretty) ${(ds / iters).toFixed(1)}ms), 文件=${(size / 1024).toFixed(1)}KB,`
|
|
29
|
-
+ ` iters=${iters}`,
|
|
30
|
-
)
|
|
31
|
-
console.log(` 记录数=${Array.isArray(data) ? data.length : Object.keys(data as object).length}`)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
console.log('=== 真实数据规模下的落盘成本(与生产 server/data/*.json 同形) ===')
|
|
35
|
-
bench('dcws.json(节点快照;每次写值/读值后防抖落盘 dcw-controller.ts:179,235)', nodes, `${TMP}/dcws.json`, 20)
|
|
36
|
-
bench('dcw-writes.json(写历史;每次下发后防抖落盘 dcw-controller.ts:193)', writes, `${TMP}/dcw-writes.json`, 20)
|
|
37
|
-
|
|
38
|
-
const readInt = nodes.map(n => Number(n.readIntervalMs)).filter(v => Number.isFinite(v) && v > 0)
|
|
39
|
-
const perSec = readInt.reduce((a, v) => a + (1000 / v), 0)
|
|
40
|
-
console.log('\n=== 生产规模推算 ===')
|
|
41
|
-
console.log(` 配置了周期读的节点=${readInt.length},合计周期读频率=${perSec.toFixed(1)} 次/秒`)
|
|
42
|
-
console.log(` 每次周期读 executeRead 尾部调用 repo.flushDebounced()(dcw-controller.ts:235)`)
|
|
43
|
-
console.log(` 防抖窗 1.5s(dcw-node.repo.ts:60-66)→ 稳态下 dcws.json 全量重写≈每 1.5s 一次`)
|