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.
Files changed (545) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +108 -0
  2. package/.output/.AgentWorkShop/prompts/host-tools.json +108 -0
  3. package/.output/.AgentWorkShop/schema.json +1 -0
  4. package/.output/nitro.json +1 -1
  5. package/.output/public/_nuxt/{CZwDnomB.js → 59a6cSgj.js} +1 -1
  6. package/.output/public/_nuxt/5juo_WO2.js +13 -0
  7. package/.output/public/_nuxt/9j2J4k4w.js +1 -0
  8. package/.output/public/_nuxt/B-WTxXEK2.js +1 -0
  9. package/.output/public/_nuxt/{DTx_DtUo.js → B0w8DZ4C.js} +1 -1
  10. package/.output/public/_nuxt/B1BCga5h2.js +13 -0
  11. package/.output/public/_nuxt/B5lMtA7I2.js +1 -0
  12. package/.output/public/_nuxt/B6_fJd2X.js +1 -0
  13. package/.output/public/_nuxt/B7K5B04W2.js +1 -0
  14. package/.output/public/_nuxt/B7KyS_q2.js +1 -0
  15. package/.output/public/_nuxt/B8q3BGY5.js +37 -0
  16. package/.output/public/_nuxt/B9IK8kDl2.js +1 -0
  17. package/.output/public/_nuxt/BFBysc2M2.js +1 -0
  18. package/.output/public/_nuxt/{BMUEVeOK.js → BGFhOMVM.js} +2 -2
  19. package/.output/public/_nuxt/{cBI0JqsV.js → BMlesJth.js} +1 -1
  20. package/.output/public/_nuxt/BNd2NDxg2.js +1 -0
  21. package/.output/public/_nuxt/BP629NAi.js +1 -0
  22. package/.output/public/_nuxt/BVinTfuN.js +1 -0
  23. package/.output/public/_nuxt/{DJZzthKt2.js → B_BYwIf22.js} +1 -1
  24. package/.output/public/_nuxt/{CW1HGp5X.js → B_JLVF30.js} +1 -1
  25. package/.output/public/_nuxt/BdE41Y_c.js +28 -0
  26. package/.output/public/_nuxt/Bdq2LNSO.js +1 -0
  27. package/.output/public/_nuxt/{BMZ1d25O.js → BeNdseTX.js} +1 -1
  28. package/.output/public/_nuxt/Be_StT8b2.js +1 -0
  29. package/.output/public/_nuxt/BhllzW3K2.js +1 -0
  30. package/.output/public/_nuxt/BjUpWKS6.js +1 -0
  31. package/.output/public/_nuxt/{CCCq9H7D2.js → BlEJRYAn2.js} +1 -1
  32. package/.output/public/_nuxt/{Du0zf-d3.js → BplhglEM.js} +1 -1
  33. package/.output/public/_nuxt/BsYEYxWv.js +24 -0
  34. package/.output/public/_nuxt/BtXwFpv42.js +1 -0
  35. package/.output/public/_nuxt/{BrFF_9742.js → BuNXYpib2.js} +1 -1
  36. package/.output/public/_nuxt/{BzKT-ne_2.js → C0sNwDTK2.js} +1 -1
  37. package/.output/public/_nuxt/{h46i74oE.js → C4AICl3l.js} +4 -4
  38. package/.output/public/_nuxt/{BuVH9MB-.js → C5OSTzBh.js} +1 -1
  39. package/.output/public/_nuxt/{DKhRushG.js → C8XVZGSZ.js} +1 -1
  40. package/.output/public/_nuxt/{zGDAozGA.js → C93LpBMF.js} +4 -4
  41. package/.output/public/_nuxt/CDaZC0_6.js +3 -0
  42. package/.output/public/_nuxt/CE43-V_L.js +2 -0
  43. package/.output/public/_nuxt/{B4R5CHkk.js → CEHT9inW.js} +1 -1
  44. package/.output/public/_nuxt/CGChCy-w2.js +1 -0
  45. package/.output/public/_nuxt/{DvUt9uMt2.js → CMDAjShv2.js} +1 -1
  46. package/.output/public/_nuxt/CUjdqsjC2.js +1 -0
  47. package/.output/public/_nuxt/CWfBtswB.js +70 -0
  48. package/.output/public/_nuxt/CYtH1bv2.js +1 -0
  49. package/.output/public/_nuxt/CZmMgjIK.js +1 -0
  50. package/.output/public/_nuxt/{iZa330UY.js → Cdw4juXw.js} +1 -1
  51. package/.output/public/_nuxt/{DMPpE41S2.js → Ce5SiMQR2.js} +1 -1
  52. package/.output/public/_nuxt/{B03LfmKR.js → Cfp00Rdo.js} +1 -1
  53. package/.output/public/_nuxt/{Dy-V8OEW2.js → CgbP5yJk2.js} +7 -7
  54. package/.output/public/_nuxt/ChPNKPw_.js +1 -0
  55. package/.output/public/_nuxt/{C5wBzGO7.js → CjeMxUv8.js} +1 -1
  56. package/.output/public/_nuxt/CktUrk8z.js +1 -0
  57. package/.output/public/_nuxt/Cst8yEet.js +1 -0
  58. package/.output/public/_nuxt/Cuw2--X2.js +2 -0
  59. package/.output/public/_nuxt/Cyd68Xbv2.js +1 -0
  60. package/.output/public/_nuxt/{pNy4V4kd.js → Cyuxcv5s2.js} +1 -1
  61. package/.output/public/_nuxt/{CIz7SM4H.js → D0vmf1z9.js} +1 -1
  62. package/.output/public/_nuxt/D5-QB_-l.js +1 -0
  63. package/.output/public/_nuxt/D9sgxxsM2.js +1 -0
  64. package/.output/public/_nuxt/DBdwjOGB2.js +1 -0
  65. package/.output/public/_nuxt/DBzdrPzw2.js +1 -0
  66. package/.output/public/_nuxt/DD4J2Otc.js +1 -0
  67. package/.output/public/_nuxt/DMCoWgSb2.js +1 -0
  68. package/.output/public/_nuxt/{CmTqFlYZ.js → DTcsb0fG.js} +1 -1
  69. package/.output/public/_nuxt/Ddc_Pn7D.js +19 -0
  70. package/.output/public/_nuxt/Dg1iMuZ-.js +1 -0
  71. package/.output/public/_nuxt/DhSlJyZD2.js +1 -0
  72. package/.output/public/_nuxt/DmwMkvoQ2.js +1 -0
  73. package/.output/public/_nuxt/EQijmkCh2.js +1 -0
  74. package/.output/public/_nuxt/KXQppTXc.js +1 -0
  75. package/.output/public/_nuxt/{CZ0Gt81h.js → KXvRkBgg.js} +2 -2
  76. package/.output/public/_nuxt/LwITbamf2.js +47 -0
  77. package/.output/public/_nuxt/N9TYd_Mk2.js +1 -0
  78. package/.output/public/_nuxt/VeOVO2sE2.js +1 -0
  79. package/.output/public/_nuxt/_jfzcYrl.js +1 -0
  80. package/.output/public/_nuxt/analysis.D2Pao1rm.css +1 -0
  81. package/.output/public/_nuxt/builds/latest.json +1 -1
  82. package/.output/public/_nuxt/builds/meta/f78a1992-e424-494d-ac4b-aa18971ffc10.json +1 -0
  83. package/.output/public/_nuxt/{default.8ac6QU28.css → default.Bx6RJSbr.css} +1 -1
  84. package/.output/public/_nuxt/{entry.BHNNQA9H.css → entry.BlbU43qz.css} +1 -1
  85. package/.output/public/_nuxt/{MEwEMEMl2.js → iCvdSYYN2.js} +6 -6
  86. package/.output/public/_nuxt/{CYGkUj5M2.js → p2sDc0tO2.js} +1 -1
  87. package/.output/public/_nuxt/{Drhta6gr.js → zVupTo2z2.js} +2 -2
  88. package/.output/server/chunks/_/LeftOutlined.mjs +1 -1
  89. package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
  90. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  91. package/.output/server/chunks/_/nitro.mjs +1629 -1246
  92. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  93. package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
  94. package/.output/server/chunks/build/{AuthGate-DDPYswkA.mjs → AuthGate-CZYkvPrg.mjs} +5 -5
  95. package/.output/server/chunks/build/{AuthGate-DDPYswkA.mjs.map → AuthGate-CZYkvPrg.mjs.map} +1 -1
  96. package/.output/server/chunks/build/Checkbox-4EdGAAl_.mjs +1 -1
  97. package/.output/server/chunks/build/{FormItemContext-4ORSzhWv.mjs → FormItemContext-DcWIIAaK.mjs} +2 -2
  98. package/.output/server/chunks/build/{FormItemContext-4ORSzhWv.mjs.map → FormItemContext-DcWIIAaK.mjs.map} +1 -1
  99. package/.output/server/chunks/build/{OmpTerminalPanel-DZ2wHMS1.mjs → OmpTerminalPanel-CtFJ6Kc8.mjs} +4 -4
  100. package/.output/server/chunks/build/{OmpTerminalPanel-DZ2wHMS1.mjs.map → OmpTerminalPanel-CtFJ6Kc8.mjs.map} +1 -1
  101. package/.output/server/chunks/build/{PluginSlot-CT4YaNrB.mjs → PluginSlot-BT7kYQgK.mjs} +2 -2
  102. package/.output/server/chunks/build/{PluginSlot-CT4YaNrB.mjs.map → PluginSlot-BT7kYQgK.mjs.map} +1 -1
  103. package/.output/server/chunks/build/{TownView-CZbFn6mO.mjs → TownView-kQZFf4zj.mjs} +3 -3
  104. package/.output/server/chunks/build/{TownView-CZbFn6mO.mjs.map → TownView-kQZFf4zj.mjs.map} +1 -1
  105. package/.output/server/chunks/build/{_id_-Df2pgsAq.mjs → _id_-Bbx1b74O.mjs} +3 -3
  106. package/.output/server/chunks/build/{_id_-Df2pgsAq.mjs.map → _id_-Bbx1b74O.mjs.map} +1 -1
  107. package/.output/server/chunks/build/{_id_-CCVhpJtj.mjs → _id_-IijrRw3f.mjs} +3 -3
  108. package/.output/server/chunks/build/{_id_-CCVhpJtj.mjs.map → _id_-IijrRw3f.mjs.map} +1 -1
  109. package/.output/server/chunks/build/{_wsId_-CJqF-hmP.mjs → _wsId_-DOEw9jgZ.mjs} +22 -21
  110. package/.output/server/chunks/build/{_wsId_-CJqF-hmP.mjs.map → _wsId_-DOEw9jgZ.mjs.map} +1 -1
  111. package/.output/server/chunks/build/{agents-BTsbna5H.mjs → agents-C36wR56A.mjs} +18 -17
  112. package/.output/server/chunks/build/agents-C36wR56A.mjs.map +1 -0
  113. package/.output/server/chunks/build/{aml-BBKfWto1.mjs → aml-CBGndvHT.mjs} +7 -7
  114. package/.output/server/chunks/build/{aml-BBKfWto1.mjs.map → aml-CBGndvHT.mjs.map} +1 -1
  115. package/.output/server/chunks/build/analysis-tgzvOWmD.mjs +332 -0
  116. package/.output/server/chunks/build/analysis-tgzvOWmD.mjs.map +1 -0
  117. package/.output/server/chunks/build/{card-DJOYGuVH.mjs → card-Db7OB49d.mjs} +4 -4
  118. package/.output/server/chunks/build/{card-DJOYGuVH.mjs.map → card-Db7OB49d.mjs.map} +1 -1
  119. package/.output/server/chunks/build/{channel-templates-BPKJ8e4l.mjs → channel-templates-BixUrDmU.mjs} +11 -10
  120. package/.output/server/chunks/build/channel-templates-BixUrDmU.mjs.map +1 -0
  121. package/.output/server/chunks/build/{checkbox-C4AKj81e.mjs → checkbox-CyF96D30.mjs} +3 -3
  122. package/.output/server/chunks/build/{checkbox-C4AKj81e.mjs.map → checkbox-CyF96D30.mjs.map} +1 -1
  123. package/.output/server/chunks/build/{daq-Cz7TaUAM.mjs → daq-DLMLufDq.mjs} +5 -5
  124. package/.output/server/chunks/build/{daq-Cz7TaUAM.mjs.map → daq-DLMLufDq.mjs.map} +1 -1
  125. package/.output/server/chunks/build/dcw-EhjJpVQM.mjs +2 -2
  126. package/.output/server/chunks/build/{default-DweMY872.mjs → default-C7Qmdyz_.mjs} +30 -19
  127. package/.output/server/chunks/build/{default-DweMY872.mjs.map → default-C7Qmdyz_.mjs.map} +1 -1
  128. package/.output/server/chunks/build/{descriptions-CFaUq4y4.mjs → descriptions-1bH81YsZ.mjs} +2 -2
  129. package/.output/server/chunks/build/{descriptions-CFaUq4y4.mjs.map → descriptions-1bH81YsZ.mjs.map} +1 -1
  130. package/.output/server/chunks/build/{drawer-Cfh9_zft.mjs → drawer-C7shdEHy.mjs} +2 -2
  131. package/.output/server/chunks/build/{drawer-Cfh9_zft.mjs.map → drawer-C7shdEHy.mjs.map} +1 -1
  132. package/.output/server/chunks/build/{dropdown-CIsqbX4P.mjs → dropdown-BhLSIp5A.mjs} +2 -2
  133. package/.output/server/chunks/build/{dropdown-CIsqbX4P.mjs.map → dropdown-BhLSIp5A.mjs.map} +1 -1
  134. package/.output/server/chunks/build/{dropdown-CV9GW3z9.mjs → dropdown-BiwcuXDi.mjs} +6 -5
  135. package/.output/server/chunks/build/{dropdown-CV9GW3z9.mjs.map → dropdown-BiwcuXDi.mjs.map} +1 -1
  136. package/.output/server/chunks/build/{form-cs_RcfGx.mjs → form-nE8C0G8B.mjs} +7 -6
  137. package/.output/server/chunks/build/{form-cs_RcfGx.mjs.map → form-nE8C0G8B.mjs.map} +1 -1
  138. package/.output/server/chunks/build/{input-CobQ5LJ5.mjs → input-DwF72eVI.mjs} +93 -3449
  139. package/.output/server/chunks/build/input-DwF72eVI.mjs.map +1 -0
  140. package/.output/server/chunks/build/{input-number-BpPYAWMk.mjs → input-number-TSq6ltkz.mjs} +6 -5
  141. package/.output/server/chunks/build/{input-number-BpPYAWMk.mjs.map → input-number-TSq6ltkz.mjs.map} +1 -1
  142. package/.output/server/chunks/build/{logs-As9fZqU-.mjs → logs-hOEVuxqm.mjs} +3 -3
  143. package/.output/server/chunks/build/{logs-As9fZqU-.mjs.map → logs-hOEVuxqm.mjs.map} +1 -1
  144. package/.output/server/chunks/build/{menu-CVmvHyFT.mjs → menu-Cy5Nrecn.mjs} +4 -3
  145. package/.output/server/chunks/build/{menu-CVmvHyFT.mjs.map → menu-Cy5Nrecn.mjs.map} +1 -1
  146. package/.output/server/chunks/build/{monitor-CdFQ2z4g.mjs → monitor-CfVoiavp.mjs} +20 -19
  147. package/.output/server/chunks/build/{monitor-CdFQ2z4g.mjs.map → monitor-CfVoiavp.mjs.map} +1 -1
  148. package/.output/server/chunks/build/{operations-B2gHCWgZ.mjs → operations-fxI8lEBJ.mjs} +3 -3
  149. package/.output/server/chunks/build/{operations-B2gHCWgZ.mjs.map → operations-fxI8lEBJ.mjs.map} +1 -1
  150. package/.output/server/chunks/build/{pages-BItCt1ar.mjs → pages-6JD9VSbx.mjs} +5 -5
  151. package/.output/server/chunks/build/{pages-BItCt1ar.mjs.map → pages-6JD9VSbx.mjs.map} +1 -1
  152. package/.output/server/chunks/build/{permissions-D6mQw_9j.mjs → permissions-XPtQJSaO.mjs} +14 -13
  153. package/.output/server/chunks/build/permissions-XPtQJSaO.mjs.map +1 -0
  154. package/.output/server/chunks/build/{plugins-NAS9MQ5r.mjs → plugins-DjBSG9pV.mjs} +5 -5
  155. package/.output/server/chunks/build/{plugins-NAS9MQ5r.mjs.map → plugins-DjBSG9pV.mjs.map} +1 -1
  156. package/.output/server/chunks/build/{popconfirm-DFfoFhmt.mjs → popconfirm-DKeEbaGd.mjs} +3 -3
  157. package/.output/server/chunks/build/{popconfirm-DFfoFhmt.mjs.map → popconfirm-DKeEbaGd.mjs.map} +1 -1
  158. package/.output/server/chunks/build/{schedules-BjWNDWL5.mjs → schedules-PcDLCUWN.mjs} +20 -19
  159. package/.output/server/chunks/build/{schedules-BjWNDWL5.mjs.map → schedules-PcDLCUWN.mjs.map} +1 -1
  160. package/.output/server/chunks/build/{segmented-D7FkCgg7.mjs → segmented-BdWCdZUM.mjs} +3 -3
  161. package/.output/server/chunks/build/{segmented-D7FkCgg7.mjs.map → segmented-BdWCdZUM.mjs.map} +1 -1
  162. package/.output/server/chunks/build/{select-FqBNxgxT.mjs → select-C5yighj8.mjs} +5 -4
  163. package/.output/server/chunks/build/{select-FqBNxgxT.mjs.map → select-C5yighj8.mjs.map} +1 -1
  164. package/.output/server/chunks/build/{settings-Cl_KRyEn.mjs → settings-90zT_h9w.mjs} +14 -13
  165. package/.output/server/chunks/build/settings-90zT_h9w.mjs.map +1 -0
  166. package/.output/server/chunks/build/{space-B2uhHJG8.mjs → space-BCffbXIG.mjs} +3 -3
  167. package/.output/server/chunks/build/{space-B2uhHJG8.mjs.map → space-BCffbXIG.mjs.map} +1 -1
  168. package/.output/server/chunks/build/{switch-DZAUIbIN.mjs → switch-OG0SM_Px.mjs} +3 -3
  169. package/.output/server/chunks/build/{switch-DZAUIbIN.mjs.map → switch-OG0SM_Px.mjs.map} +1 -1
  170. package/.output/server/chunks/build/{table-CeOYERqr.mjs → table-UpVzu50c.mjs} +11 -10
  171. package/.output/server/chunks/build/{table-CeOYERqr.mjs.map → table-UpVzu50c.mjs.map} +1 -1
  172. package/.output/server/chunks/build/{tabs-LLNSdLl2.mjs → tabs-CWwoL33v.mjs} +6 -5
  173. package/.output/server/chunks/build/{tabs-LLNSdLl2.mjs.map → tabs-CWwoL33v.mjs.map} +1 -1
  174. package/.output/server/chunks/build/{tag-Dwvkh0Dj.mjs → tag-CS7mwrfG.mjs} +5 -4
  175. package/.output/server/chunks/build/{tag-Dwvkh0Dj.mjs.map → tag-CS7mwrfG.mjs.map} +1 -1
  176. package/.output/server/chunks/build/{teams-CGDZHaQl.mjs → teams-BIAFvRw1.mjs} +19 -18
  177. package/.output/server/chunks/build/teams-BIAFvRw1.mjs.map +1 -0
  178. package/.output/server/chunks/build/{tokens-BOYkZuoB.mjs → tokens-CLpdrzQ7.mjs} +19 -18
  179. package/.output/server/chunks/build/tokens-CLpdrzQ7.mjs.map +1 -0
  180. package/.output/server/chunks/build/tooltip-CJlH_8ZK.mjs +3362 -0
  181. package/.output/server/chunks/build/tooltip-CJlH_8ZK.mjs.map +1 -0
  182. package/.output/server/chunks/build/town-BV-hbwb5.mjs +1 -1
  183. package/.output/server/chunks/build/{town-P1rYoi0v.mjs → town-Bfme7P2I.mjs} +5 -5
  184. package/.output/server/chunks/build/{town-P1rYoi0v.mjs.map → town-Bfme7P2I.mjs.map} +1 -1
  185. package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
  186. package/.output/server/chunks/build/types-DWqIeMRP.mjs +75 -0
  187. package/.output/server/chunks/build/types-DWqIeMRP.mjs.map +1 -0
  188. package/.output/server/chunks/build/{useAgentTemplateActions-DsBRUQni.mjs → useAgentTemplateActions-6VyAHgu5.mjs} +1 -1
  189. package/.output/server/chunks/build/{useAgentTemplateActions-DsBRUQni.mjs.map → useAgentTemplateActions-6VyAHgu5.mjs.map} +1 -1
  190. package/.output/server/chunks/build/{useAgentTemplateForm-DzQ_t2Ue.mjs → useAgentTemplateForm-DWa-ezNq.mjs} +1 -1
  191. package/.output/server/chunks/build/{useAgentTemplateForm-DzQ_t2Ue.mjs.map → useAgentTemplateForm-DWa-ezNq.mjs.map} +1 -1
  192. package/.output/server/chunks/build/{useAmlEntities-BMLHU_39.mjs → useAmlEntities-Co2fgjzh.mjs} +1 -1
  193. package/.output/server/chunks/build/{useAmlEntities-BMLHU_39.mjs.map → useAmlEntities-Co2fgjzh.mjs.map} +1 -1
  194. package/.output/server/chunks/build/{useAmlEnv-DdlyVzPu.mjs → useAmlEnv-JTiWPrzH.mjs} +1 -1
  195. package/.output/server/chunks/build/{useAmlEnv-DdlyVzPu.mjs.map → useAmlEnv-JTiWPrzH.mjs.map} +1 -1
  196. package/.output/server/chunks/build/{useAmlJobs-BG_v21hJ.mjs → useAmlJobs-By4pjOzc.mjs} +1 -1
  197. package/.output/server/chunks/build/{useAmlJobs-BG_v21hJ.mjs.map → useAmlJobs-By4pjOzc.mjs.map} +1 -1
  198. package/.output/server/chunks/build/{useAmlModels-D7MuOWOy.mjs → useAmlModels-B1_5vjMA.mjs} +1 -1
  199. package/.output/server/chunks/build/{useAmlModels-D7MuOWOy.mjs.map → useAmlModels-B1_5vjMA.mjs.map} +1 -1
  200. package/.output/server/chunks/build/{useAmlNotes-CTZe-GI0.mjs → useAmlNotes-5uwvCb3h.mjs} +1 -1
  201. package/.output/server/chunks/build/{useAmlNotes-CTZe-GI0.mjs.map → useAmlNotes-5uwvCb3h.mjs.map} +1 -1
  202. package/.output/server/chunks/build/{useAmlPredict-BToRrVRV.mjs → useAmlPredict-lxUv7lAO.mjs} +1 -1
  203. package/.output/server/chunks/build/{useAmlPredict-BToRrVRV.mjs.map → useAmlPredict-lxUv7lAO.mjs.map} +1 -1
  204. package/.output/server/chunks/build/useAnalysisFeed-B4OwUd7p.mjs +128 -0
  205. package/.output/server/chunks/build/useAnalysisFeed-B4OwUd7p.mjs.map +1 -0
  206. package/.output/server/chunks/build/useDaqAddNode-CaOCbe4-.mjs +1 -1
  207. package/.output/server/chunks/build/{useDaqDetailNode-DXgwAu5u.mjs → useDaqDetailNode-DtZ0oDAn.mjs} +3 -3
  208. package/.output/server/chunks/build/{useDaqDetailNode-DXgwAu5u.mjs.map → useDaqDetailNode-DtZ0oDAn.mjs.map} +1 -1
  209. package/.output/server/chunks/build/useDaqDetailParams-CrTMDs-2.mjs +1 -1
  210. package/.output/server/chunks/build/{useDaqFilters-Jx6EERfr.mjs → useDaqFilters-DYHGhECw.mjs} +3 -3
  211. package/.output/server/chunks/build/{useDaqFilters-Jx6EERfr.mjs.map → useDaqFilters-DYHGhECw.mjs.map} +1 -1
  212. package/.output/server/chunks/build/useDaqStream-DhzdoyIR.mjs +1 -1
  213. package/.output/server/chunks/build/useDaqTemplates-C7GzQmdJ.mjs +1 -1
  214. package/.output/server/chunks/build/{useDashboardData-Ce-EU5DJ.mjs → useDashboardData-B3lZjE7x.mjs} +3 -3
  215. package/.output/server/chunks/build/{useDashboardData-Ce-EU5DJ.mjs.map → useDashboardData-B3lZjE7x.mjs.map} +1 -1
  216. package/.output/server/chunks/build/useDcwAddNode-4mTPQ6T8.mjs +1 -1
  217. package/.output/server/chunks/build/{useDcwDetailScope-4j3B03Pi.mjs → useDcwDetailScope-BWH7jnVh.mjs} +2 -2
  218. package/.output/server/chunks/build/{useDcwDetailScope-4j3B03Pi.mjs.map → useDcwDetailScope-BWH7jnVh.mjs.map} +1 -1
  219. package/.output/server/chunks/build/useDcwStream-BXJ2V8HM.mjs +1 -1
  220. package/.output/server/chunks/build/{useLogsManual-CMjD62nt.mjs → useLogsManual-BLfiSU3u.mjs} +1 -1
  221. package/.output/server/chunks/build/{useLogsManual-CMjD62nt.mjs.map → useLogsManual-BLfiSU3u.mjs.map} +1 -1
  222. package/.output/server/chunks/build/{useMonitorData-D2gFSonG.mjs → useMonitorData-BZ6Z-Sy8.mjs} +1 -1
  223. package/.output/server/chunks/build/{useMonitorData-D2gFSonG.mjs.map → useMonitorData-BZ6Z-Sy8.mjs.map} +1 -1
  224. package/.output/server/chunks/build/{useTeamActions-BOLQkYxg.mjs → useTeamActions-ahht5J8Y.mjs} +1 -1
  225. package/.output/server/chunks/build/{useTeamActions-BOLQkYxg.mjs.map → useTeamActions-ahht5J8Y.mjs.map} +1 -1
  226. package/.output/server/chunks/build/{useTeamAddMemberDialog-BCgrLPxI.mjs → useTeamAddMemberDialog-DvXxsVy0.mjs} +1 -1
  227. package/.output/server/chunks/build/{useTeamAddMemberDialog-BCgrLPxI.mjs.map → useTeamAddMemberDialog-DvXxsVy0.mjs.map} +1 -1
  228. package/.output/server/chunks/build/{useTeamCreateDialog-CJk40LqS.mjs → useTeamCreateDialog-A_k-XX5B.mjs} +1 -1
  229. package/.output/server/chunks/build/{useTeamCreateDialog-CJk40LqS.mjs.map → useTeamCreateDialog-A_k-XX5B.mjs.map} +1 -1
  230. package/.output/server/chunks/build/{useTeamDeployDialog-49hdUXQP.mjs → useTeamDeployDialog-CfAFjIr_.mjs} +1 -1
  231. package/.output/server/chunks/build/{useTeamDeployDialog-49hdUXQP.mjs.map → useTeamDeployDialog-CfAFjIr_.mjs.map} +1 -1
  232. package/.output/server/chunks/build/{useTeamPluginDialog-Dh-QOoiU.mjs → useTeamPluginDialog-Djmkk1Nl.mjs} +1 -1
  233. package/.output/server/chunks/build/{useTeamPluginDialog-Dh-QOoiU.mjs.map → useTeamPluginDialog-Djmkk1Nl.mjs.map} +1 -1
  234. package/.output/server/chunks/build/{useTokenCreate-DkYvEQUD.mjs → useTokenCreate-CkWoxSI-.mjs} +1 -1
  235. package/.output/server/chunks/build/{useTokenCreate-DkYvEQUD.mjs.map → useTokenCreate-CkWoxSI-.mjs.map} +1 -1
  236. package/.output/server/chunks/build/{useTokenRename-DOCP4aeI.mjs → useTokenRename-BohjnGT0.mjs} +1 -1
  237. package/.output/server/chunks/build/{useTokenRename-DOCP4aeI.mjs.map → useTokenRename-BohjnGT0.mjs.map} +1 -1
  238. package/.output/server/chunks/build/{useTokenReveal-CybwwflV.mjs → useTokenReveal-BBN5iGz7.mjs} +1 -1
  239. package/.output/server/chunks/build/{useTokenReveal-CybwwflV.mjs.map → useTokenReveal-BBN5iGz7.mjs.map} +1 -1
  240. package/.output/server/chunks/build/{useTokensList-BLiMvrc4.mjs → useTokensList-BQX9WqfT.mjs} +1 -1
  241. package/.output/server/chunks/build/{useTokensList-BLiMvrc4.mjs.map → useTokensList-BQX9WqfT.mjs.map} +1 -1
  242. package/.output/server/chunks/build/{useWorkbenchAuth-DAabQl7X.mjs → useWorkbenchAuth-BTRlS2wZ.mjs} +1 -1
  243. package/.output/server/chunks/build/{useWorkbenchAuth-DAabQl7X.mjs.map → useWorkbenchAuth-BTRlS2wZ.mjs.map} +1 -1
  244. package/.output/server/chunks/build/{useWorkbenchWorkspaces-6-mpCGCR.mjs → useWorkbenchWorkspaces-C6ky7OJH.mjs} +1 -1
  245. package/.output/server/chunks/build/{useWorkbenchWorkspaces-6-mpCGCR.mjs.map → useWorkbenchWorkspaces-C6ky7OJH.mjs.map} +1 -1
  246. package/.output/server/chunks/build/{users-B_pHStEa.mjs → users-BHOEW3Az.mjs} +15 -14
  247. package/.output/server/chunks/build/users-BHOEW3Az.mjs.map +1 -0
  248. package/.output/server/chunks/build/{workshop-C0DefygA.mjs → workshop-DyJ1LXwu.mjs} +11 -10
  249. package/.output/server/chunks/build/workshop-DyJ1LXwu.mjs.map +1 -0
  250. package/.output/server/chunks/routes/api/mcp/workshop.mjs +1 -1
  251. package/.output/server/chunks/routes/api/system/backup/run.post.mjs +2 -2
  252. package/.output/server/chunks/routes/api/workshop/analysis/_id_.delete.mjs +46 -0
  253. package/.output/server/chunks/routes/api/workshop/analysis/_id_.delete.mjs.map +1 -0
  254. package/.output/server/chunks/routes/api/workshop/analysis/_id_.get.mjs +39 -0
  255. package/.output/server/chunks/routes/api/workshop/analysis/_id_.get.mjs.map +1 -0
  256. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +1 -1
  257. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +1 -1
  258. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +2 -2
  259. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +1 -1
  260. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +1 -1
  261. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +1 -1
  262. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +1 -1
  263. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +1 -1
  264. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +1 -1
  265. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +1 -1
  266. package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs +1 -1
  267. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +1 -1
  268. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +1 -1
  269. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +1 -1
  270. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +1 -1
  271. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +7 -7
  272. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +1 -1
  273. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +1 -1
  274. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +1 -1
  275. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +1 -1
  276. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +1 -1
  277. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +1 -1
  278. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +1 -1
  279. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
  280. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +1 -1
  281. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +1 -1
  282. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +1 -1
  283. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +1 -1
  284. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +1 -1
  285. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +1 -1
  286. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +1 -1
  287. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +1 -1
  288. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +1 -1
  289. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -1
  290. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +1 -1
  291. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +1 -1
  292. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +1 -1
  293. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +1 -1
  294. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +1 -1
  295. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +1 -1
  296. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +1 -1
  297. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +1 -1
  298. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +1 -1
  299. package/.output/server/chunks/routes/api/workshop/dcw/index7.get.mjs +1 -1
  300. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +1 -1
  301. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +1 -1
  302. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -1
  303. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -1
  304. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -1
  305. package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs +1 -1
  306. package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs +1 -1
  307. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs +1 -1
  308. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +1 -1
  309. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +1 -1
  310. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +1 -1
  311. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +1 -1
  312. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +1 -1
  313. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +1 -1
  314. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +1 -1
  315. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +1 -1
  316. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +1 -1
  317. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -1
  318. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -1
  319. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +1 -1
  320. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -1
  321. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +1 -1
  322. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +1 -1
  323. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +1 -1
  324. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +1 -1
  325. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
  326. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
  327. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +1 -1
  328. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +1 -1
  329. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +1 -1
  330. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +1 -1
  331. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +1 -1
  332. package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs +1 -1
  333. package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs +1 -1
  334. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +1 -1
  335. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
  336. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
  337. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
  338. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
  339. package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
  340. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +20 -23
  341. package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
  342. package/.output/server/chunks/routes/api/workshop/index11.get.mjs +25 -11
  343. package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -1
  344. package/.output/server/chunks/routes/api/workshop/index12.get.mjs +10 -4
  345. package/.output/server/chunks/routes/api/workshop/index12.get.mjs.map +1 -1
  346. package/.output/server/chunks/routes/api/workshop/index13.get.mjs +2 -3
  347. package/.output/server/chunks/routes/api/workshop/index13.get.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/workshop/index14.get.mjs +3 -2
  349. package/.output/server/chunks/routes/api/workshop/index14.get.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/workshop/index15.get.mjs +30 -0
  351. package/.output/server/chunks/routes/api/workshop/index15.get.mjs.map +1 -0
  352. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +20 -9
  353. package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
  354. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +1 -1
  355. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +10 -4
  356. package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
  357. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +1 -1
  358. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +4 -29
  359. package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
  360. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +1 -1
  361. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +25 -22
  362. package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
  363. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +26 -5
  364. package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
  365. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +4 -39
  366. package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
  367. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +40 -20
  368. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  369. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
  370. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
  371. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  372. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  373. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +1 -1
  374. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +1 -1
  375. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +1 -1
  376. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +2 -2
  377. package/.output/server/chunks/routes/renderer.mjs +2 -2
  378. package/.output/server/chunks/virtual/entry.mjs +551 -824
  379. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  380. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  381. package/.output/server/package.json +1 -1
  382. package/README-zh.md +17 -0
  383. package/README.md +20 -0
  384. package/app/components/AppSidebar.vue +1 -0
  385. package/app/components/analysis/AnalysisFilterCard.vue +160 -0
  386. package/app/components/analysis/AnalysisPageHead.vue +47 -0
  387. package/app/components/analysis/AnalysisTable.vue +306 -0
  388. package/app/composables/useRouteMeta.ts +1 -0
  389. package/app/config/schema.ts +1 -0
  390. package/app/pages/analysis/composables/useAnalysisFeed.ts +85 -0
  391. package/app/pages/analysis/index.vue +92 -0
  392. package/app/pages/analysis/types.ts +44 -0
  393. package/cli/commands/mcp.mjs +160 -154
  394. package/config.yml +1 -1
  395. package/i18n/locales/en.ts +55 -0
  396. package/i18n/locales/zh-CN.ts +55 -0
  397. package/mcp/aw-mcp-server.mjs +799 -796
  398. package/package.json +2 -2
  399. package/scripts/onboarding/onboard.mjs +5 -2
  400. package/scripts/onboarding/sim-twin.mjs +312 -0
  401. package/server/api/workshop/analysis/[id].delete.ts +30 -0
  402. package/server/api/workshop/analysis/[id].get.ts +23 -0
  403. package/server/api/workshop/analysis/index.get.ts +33 -0
  404. package/server/plugins/workshop.ts +4 -0
  405. package/server/repositories/user.repository.ts +2 -2
  406. package/server/services/workshop/agents/host-tool-bridge/catalog.ts +4 -1
  407. package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +5 -2
  408. package/server/services/workshop/agents/industrial/analysis-tools.ts +242 -0
  409. package/server/services/workshop/agents/industrial/index.ts +1 -0
  410. package/server/services/workshop/agents/industrial/ops-tools.ts +3 -2
  411. package/server/services/workshop/analysis/analysis.repo.ts +189 -0
  412. package/server/services/workshop/db/database/schema.ts +28 -1
  413. package/server/services/workshop/db/ops.repo.ts +1 -1
  414. package/server/services/workshop/db/retention.ts +2 -0
  415. package/server/services/workshop/db/schema.sql +27 -0
  416. package/server/services/workshop/settings.ts +1 -0
  417. package/shared/config/schema.json +1 -0
  418. package/.output/public/_nuxt/B-Y_rsfn.js +0 -106
  419. package/.output/public/_nuxt/B02cxZz72.js +0 -1
  420. package/.output/public/_nuxt/BAqtRt0q.js +0 -1
  421. package/.output/public/_nuxt/BKHd_sKD2.js +0 -47
  422. package/.output/public/_nuxt/BXKCB3rS.js +0 -1
  423. package/.output/public/_nuxt/BhrnGVGz.js +0 -1
  424. package/.output/public/_nuxt/BikIgp9R.js +0 -1
  425. package/.output/public/_nuxt/BkGqyjWm.js +0 -3
  426. package/.output/public/_nuxt/Bn1N3mJv.js +0 -1
  427. package/.output/public/_nuxt/Br2LgfbH2.js +0 -13
  428. package/.output/public/_nuxt/BtNT93vm2.js +0 -1
  429. package/.output/public/_nuxt/BtYg4aGR2.js +0 -1
  430. package/.output/public/_nuxt/C4X_Z1lA.js +0 -1
  431. package/.output/public/_nuxt/CBATzTUf.js +0 -13
  432. package/.output/public/_nuxt/CEP4UrDv.js +0 -1
  433. package/.output/public/_nuxt/CIPKYgrH2.js +0 -1
  434. package/.output/public/_nuxt/CPSHP_EI.js +0 -1
  435. package/.output/public/_nuxt/CSyIwYcJ2.js +0 -1
  436. package/.output/public/_nuxt/CZkTlW93.js +0 -2
  437. package/.output/public/_nuxt/CZyYdpqZ2.js +0 -1
  438. package/.output/public/_nuxt/CeDkXWCz.js +0 -1
  439. package/.output/public/_nuxt/Cl19UD7U.js +0 -1
  440. package/.output/public/_nuxt/ClrkV0C4.js +0 -1
  441. package/.output/public/_nuxt/CoGETbe-2.js +0 -1
  442. package/.output/public/_nuxt/CuRtzvsa2.js +0 -1
  443. package/.output/public/_nuxt/Cv_H1gOM2.js +0 -1
  444. package/.output/public/_nuxt/D5i2ofVw2.js +0 -1
  445. package/.output/public/_nuxt/D6XGn5vM.js +0 -2
  446. package/.output/public/_nuxt/D6c5ppqB.js +0 -1
  447. package/.output/public/_nuxt/D8VQGThE.js +0 -28
  448. package/.output/public/_nuxt/DBwuADr82.js +0 -1
  449. package/.output/public/_nuxt/DTZO6WMs2.js +0 -1
  450. package/.output/public/_nuxt/DfqRQSFn.js +0 -19
  451. package/.output/public/_nuxt/DraEWn4N2.js +0 -1
  452. package/.output/public/_nuxt/DyMgrV29.js +0 -1
  453. package/.output/public/_nuxt/H7Rbu32y2.js +0 -1
  454. package/.output/public/_nuxt/TjGWqrHo.js +0 -1
  455. package/.output/public/_nuxt/VVomhVqu2.js +0 -1
  456. package/.output/public/_nuxt/YDs3mbQu2.js +0 -1
  457. package/.output/public/_nuxt/Z3MSTcdu2.js +0 -1
  458. package/.output/public/_nuxt/_vR_sc7t.js +0 -24
  459. package/.output/public/_nuxt/builds/meta/082ac92a-d8d0-4e78-8d5a-b4a610080231.json +0 -1
  460. package/.output/public/_nuxt/gbaq2UOO.js +0 -1
  461. package/.output/public/_nuxt/o-G6YtmK2.js +0 -1
  462. package/.output/public/_nuxt/ylowSquM2.js +0 -1
  463. package/.output/server/chunks/build/agents-BTsbna5H.mjs.map +0 -1
  464. package/.output/server/chunks/build/channel-templates-BPKJ8e4l.mjs.map +0 -1
  465. package/.output/server/chunks/build/input-CobQ5LJ5.mjs.map +0 -1
  466. package/.output/server/chunks/build/permissions-D6mQw_9j.mjs.map +0 -1
  467. package/.output/server/chunks/build/settings-Cl_KRyEn.mjs.map +0 -1
  468. package/.output/server/chunks/build/teams-CGDZHaQl.mjs.map +0 -1
  469. package/.output/server/chunks/build/tokens-BOYkZuoB.mjs.map +0 -1
  470. package/.output/server/chunks/build/users-B_pHStEa.mjs.map +0 -1
  471. package/.output/server/chunks/build/workshop-C0DefygA.mjs.map +0 -1
  472. package/scripts/_audit/.tmp/audit-data/dcw-params.json +0 -15
  473. package/scripts/_audit/.tmp/audit-data/dcws.json +0 -30
  474. package/scripts/_audit/aml-layout-diag.mjs +0 -83
  475. package/scripts/_audit/channel-inspect.mjs +0 -49
  476. package/scripts/_audit/cleanup-apply.mjs +0 -89
  477. package/scripts/_audit/cleanup-plan.mjs +0 -82
  478. package/scripts/_audit/contrast-check.mjs +0 -43
  479. package/scripts/_audit/dcw-controller-e2e.ts +0 -106
  480. package/scripts/_audit/dcw-flush-cost.ts +0 -43
  481. package/scripts/_audit/dcw-rollback-ledger.ts +0 -156
  482. package/scripts/_audit/dcw-unrecorded-write.ts +0 -171
  483. package/scripts/_audit/dcw-write-mutex.ts +0 -157
  484. package/scripts/_audit/design-shots.mjs +0 -145
  485. package/scripts/_audit/docs-font-probe.mjs +0 -68
  486. package/scripts/_audit/docs-probe.mjs +0 -107
  487. package/scripts/_audit/docs-shots.mjs +0 -171
  488. package/scripts/_audit/docs-v3-verify.mjs +0 -255
  489. package/scripts/_audit/docs-vue-lint.mjs +0 -81
  490. package/scripts/_audit/docs-vue-lint2.mjs +0 -91
  491. package/scripts/_audit/exp-cost-scaling.mjs +0 -57
  492. package/scripts/_audit/exp-envelope-and-png.mjs +0 -78
  493. package/scripts/_audit/exp-png-decode.mjs +0 -67
  494. package/scripts/_audit/exp-retention-plan.mjs +0 -61
  495. package/scripts/_audit/exp-retention-rescan.mjs +0 -42
  496. package/scripts/_audit/exp-sweep-fairness.mjs +0 -50
  497. package/scripts/_audit/feature-audit-e2e.mjs +0 -342
  498. package/scripts/_audit/fix-settings-count.mjs +0 -57
  499. package/scripts/_audit/full-e2e-adopt.mjs +0 -238
  500. package/scripts/_audit/full-e2e-close-loop.mjs +0 -134
  501. package/scripts/_audit/full-e2e-retrain.mjs +0 -320
  502. package/scripts/_audit/full-e2e-supplement.mjs +0 -192
  503. package/scripts/_audit/full-e2e-ui-final.mjs +0 -111
  504. package/scripts/_audit/full-e2e-ui-mount.mjs +0 -111
  505. package/scripts/_audit/full-feature-e2e-20260927.mjs +0 -627
  506. package/scripts/_audit/glass-verify.mjs +0 -155
  507. package/scripts/_audit/hydration-diff.mjs +0 -104
  508. package/scripts/_audit/hydration-head.mjs +0 -36
  509. package/scripts/_audit/hydration-probe.mjs +0 -59
  510. package/scripts/_audit/idd-scenarios-e2e.mjs +0 -239
  511. package/scripts/_audit/kb-diag-complete.mjs +0 -261
  512. package/scripts/_audit/kb-diag-complete2.mjs +0 -271
  513. package/scripts/_audit/kb-diag-loop-e2e.mjs +0 -357
  514. package/scripts/_audit/kb-diag-loop-mock.mjs +0 -416
  515. package/scripts/_audit/kb-diag-loop-v2.mjs +0 -314
  516. package/scripts/_audit/lead-matrix-test.mjs +0 -172
  517. package/scripts/_audit/plc-agent-task.mjs +0 -74
  518. package/scripts/_audit/plc-clean-scenario.mjs +0 -434
  519. package/scripts/_audit/plc-clean-shots.mjs +0 -161
  520. package/scripts/_audit/plc-fc10-probe.mjs +0 -30
  521. package/scripts/_audit/probe-binding.mjs +0 -114
  522. package/scripts/_audit/recipe-save-e2e.mjs +0 -365
  523. package/scripts/_audit/review-fix-verify.mjs +0 -158
  524. package/scripts/_audit/runtime-dir-e2e.mjs +0 -393
  525. package/scripts/_audit/town-focus-shot.mjs +0 -129
  526. package/scripts/_audit/town-reposition.mjs +0 -85
  527. package/scripts/_audit/verify-cleanup.mjs +0 -67
  528. package/scripts/_audit/verify-data-integrity.mjs +0 -112
  529. package/scripts/_audit/watchdog-recovery-test.mjs +0 -149
  530. package/scripts/_dbg-optloop-ui-shots.mjs +0 -52
  531. /package/.output/public/_nuxt/{4RTUlYvj2.js → 4RTUlYvj.js} +0 -0
  532. /package/.output/public/_nuxt/{BBhLVYdM.js → BBhLVYdM2.js} +0 -0
  533. /package/.output/public/_nuxt/{BG7XSX-S2.js → BG7XSX-S.js} +0 -0
  534. /package/.output/public/_nuxt/{BU7WuuKh.js → BU7WuuKh2.js} +0 -0
  535. /package/.output/public/_nuxt/{BrRX-l9B2.js → BrRX-l9B.js} +0 -0
  536. /package/.output/public/_nuxt/{CHyzK5m52.js → CHyzK5m5.js} +0 -0
  537. /package/.output/public/_nuxt/{Ckafrjnw2.js → Ckafrjnw.js} +0 -0
  538. /package/.output/public/_nuxt/{D1Xw30Dj2.js → D1Xw30Dj.js} +0 -0
  539. /package/.output/public/_nuxt/{DEhjFhZ2.js → DEhjFhZ22.js} +0 -0
  540. /package/.output/public/_nuxt/{DdNujZN5.js → DdNujZN52.js} +0 -0
  541. /package/.output/public/_nuxt/{DzwIZ81f.js → DzwIZ81f2.js} +0 -0
  542. /package/.output/public/_nuxt/{M6NcguDO.js → M6NcguDO2.js} +0 -0
  543. /package/.output/public/_nuxt/{MW-V7IIP2.js → MW-V7IIP.js} +0 -0
  544. /package/.output/public/_nuxt/{WmMwIS4y.js → WmMwIS4y2.js} +0 -0
  545. /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 一次`)