agentworkshop 0.7.53 → 0.7.54

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 (961) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +87 -0
  2. package/.output/.AgentWorkShop/prompts/host-tools.json +87 -0
  3. package/.output/.AgentWorkShop/schema.json +2 -1
  4. package/.output/nitro.json +1 -1
  5. package/.output/public/_nuxt/{9zrLAN2o2.js → BJhsCisg2.js} +1 -1
  6. package/.output/public/_nuxt/BOhcoxIu.js +2 -0
  7. package/.output/public/_nuxt/{BdM_Qr752.js → BP8TgWo02.js} +1 -1
  8. package/.output/public/_nuxt/{bg2adfck.js → BPqXOlYX.js} +1 -1
  9. package/.output/public/_nuxt/{Crbir9cT.js → BQOn0q6Y.js} +1 -1
  10. package/.output/public/_nuxt/{BLnLjzka.js → BQy0Yy7S.js} +1 -1
  11. package/.output/public/_nuxt/BTVyPFng2.js +1 -0
  12. package/.output/public/_nuxt/{qOlYoGLf.js → BWowAAJb.js} +1 -1
  13. package/.output/public/_nuxt/{BwlGxRxA.js → BZtgVXC5.js} +1 -1
  14. package/.output/public/_nuxt/BcX4fktE.js +1 -0
  15. package/.output/public/_nuxt/{B_LcD7qE2.js → BdF9OAZq2.js} +1 -1
  16. package/.output/public/_nuxt/{IU-UGkCJ2.js → BhcbvVOa2.js} +1 -1
  17. package/.output/public/_nuxt/{CBDX7p73.js → BjWbbMHs.js} +1 -1
  18. package/.output/public/_nuxt/{YaroNkJZ2.js → BmTzcKJg2.js} +1 -1
  19. package/.output/public/_nuxt/BnoyYd0Z2.js +1 -0
  20. package/.output/public/_nuxt/{Bl5dYv4m.js → BqYO-UfR.js} +1 -1
  21. package/.output/public/_nuxt/Btv3HXrq.js +1 -0
  22. package/.output/public/_nuxt/{BGKUW7ra.js → Btx8wL4-.js} +1 -1
  23. package/.output/public/_nuxt/{CBIoheY42.js → BuXaEtBG2.js} +1 -1
  24. package/.output/public/_nuxt/{DSqMyLCV2.js → BxWvUgMz2.js} +1 -1
  25. package/.output/public/_nuxt/{1g9IT9Qh2.js → BxoaZc_U2.js} +1 -1
  26. package/.output/public/_nuxt/C-LU6xv_.js +1 -0
  27. package/.output/public/_nuxt/{BcQXL8pb.js → C-y_g11k.js} +1 -1
  28. package/.output/public/_nuxt/C7_F68I7.js +1 -0
  29. package/.output/public/_nuxt/CFjveTJh.js +1 -0
  30. package/.output/public/_nuxt/{BQXCMsXk.js → CMWyj56j.js} +1 -1
  31. package/.output/public/_nuxt/{C4WhK2wq.js → COQM2L1M.js} +1 -1
  32. package/.output/public/_nuxt/{CjwxhpwR2.js → CV61ysvv.js} +1 -1
  33. package/.output/public/_nuxt/{sl1EEoCr2.js → Ca3iDJwu2.js} +5 -5
  34. package/.output/public/_nuxt/{BiOSWsjD.js → Cg8Pgbeu.js} +1 -1
  35. package/.output/public/_nuxt/{BSdJTnk12.js → Ch9KdZWb2.js} +1 -1
  36. package/.output/public/_nuxt/{B1RT9NTO2.js → ChN5v-i22.js} +1 -1
  37. package/.output/public/_nuxt/{DE6H1HdJ.js → Cpm5JYv4.js} +1 -1
  38. package/.output/public/_nuxt/{DsGf2IV82.js → CtXOpljm2.js} +1 -1
  39. package/.output/public/_nuxt/{EhhQmlBV2.js → D2Sm-GTk2.js} +1 -1
  40. package/.output/public/_nuxt/{DCtk3qqr.js → D8xUsQGt.js} +1 -1
  41. package/.output/public/_nuxt/{CQabB0oy.js → D9TpiWjt.js} +1 -1
  42. package/.output/public/_nuxt/DB4ma-iU2.js +1 -0
  43. package/.output/public/_nuxt/{BDmNbZ252.js → DCPhrNWR2.js} +1 -1
  44. package/.output/public/_nuxt/{BE7BrEw6.js → DNZmwhSD.js} +1 -1
  45. package/.output/public/_nuxt/{CMXcOb6W.js → DO9xaI9a.js} +1 -1
  46. package/.output/public/_nuxt/{H2rNs1O82.js → DUribplv2.js} +1 -1
  47. package/.output/public/_nuxt/DZuXfuXS.js +14 -0
  48. package/.output/public/_nuxt/{Ccps4cxo.js → D_hCLbi9.js} +1 -1
  49. package/.output/public/_nuxt/{DlCktWDT.js → Db4_F1T2.js} +1 -1
  50. package/.output/public/_nuxt/{Bhe953zV2.js → DioKmYyB2.js} +1 -1
  51. package/.output/public/_nuxt/{77DRSnQv.js → Dk6Zf3-L.js} +1 -1
  52. package/.output/public/_nuxt/{Dbe9TFc9.js → DlX0nqUe.js} +1 -1
  53. package/.output/public/_nuxt/{Chphw5IA2.js → Dm_iKz8k2.js} +1 -1
  54. package/.output/public/_nuxt/{NJn94js_.js → DnAn2LgG.js} +1 -1
  55. package/.output/public/_nuxt/DuPM4HXw.js +1 -0
  56. package/.output/public/_nuxt/{DNoEoo8t.js → Dz2SLIde.js} +1 -1
  57. package/.output/public/_nuxt/DzwIZ81f.js +1 -0
  58. package/.output/public/_nuxt/{DD6Z0yPN2.js → MbT4wXb62.js} +1 -1
  59. package/.output/public/_nuxt/{BpcQDwKM2.js → PY2GW_3N2.js} +1 -1
  60. package/.output/public/_nuxt/{2_DkYoqD2.js → QHo9mN-M2.js} +1 -1
  61. package/.output/public/_nuxt/{TownView.BvlfuLtP.css → TownView.Xt1yygrh.css} +1 -1
  62. package/.output/public/_nuxt/_id_.DZbVLNnu.css +1 -0
  63. package/.output/public/_nuxt/a4X3ARNm2.js +1 -0
  64. package/.output/public/_nuxt/builds/latest.json +1 -1
  65. package/.output/public/_nuxt/builds/meta/af879435-fc74-4017-ade0-3b92c1ab35bb.json +1 -0
  66. package/.output/public/_nuxt/cY_5jwFz2.js +1 -0
  67. package/.output/public/_nuxt/dVw8IHY62.js +1 -0
  68. package/.output/public/_nuxt/{LwIFGLgF.js → deBcbALe2.js} +1 -1
  69. package/.output/public/_nuxt/{BzvHUfRR.js → nT-bgxvf.js} +1 -1
  70. package/.output/public/_nuxt/tq3HbWr9.js +1 -0
  71. package/.output/public/_nuxt/{BH3obZJ42.js → uY58gQqR2.js} +1 -1
  72. package/.output/public/_nuxt/{ZuQtOnfI.js → vPfDYgvR.js} +1 -1
  73. package/.output/public/_nuxt/{zsRclU9w2.js → xX7ccjDl2.js} +1 -1
  74. package/.output/server/chunks/_/nitro.mjs +2652 -1422
  75. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  76. package/.output/server/chunks/build/OmpTerminalPanel-mk31gVzA.mjs +1 -1
  77. package/.output/server/chunks/build/{TownView-fP9BiALv.mjs → TownView-Bf5VFYFj.mjs} +26 -19
  78. package/.output/server/chunks/build/TownView-Bf5VFYFj.mjs.map +1 -0
  79. package/.output/server/chunks/build/{_id_-CK-QFrDV.mjs → _id_-CuUmVPRg.mjs} +192 -82
  80. package/.output/server/chunks/build/_id_-CuUmVPRg.mjs.map +1 -0
  81. package/.output/server/chunks/build/{_id_-CDlur81q.mjs → _id_-WF20tjqT.mjs} +12 -11
  82. package/.output/server/chunks/build/_id_-WF20tjqT.mjs.map +1 -0
  83. package/.output/server/chunks/build/{_wsId_-DdqXzycE.mjs → _wsId_-BUIKB68b.mjs} +13 -10
  84. package/.output/server/chunks/build/{_wsId_-DdqXzycE.mjs.map → _wsId_-BUIKB68b.mjs.map} +1 -1
  85. package/.output/server/chunks/build/agents-DqICy4AL.mjs +2 -1
  86. package/.output/server/chunks/build/agents-DqICy4AL.mjs.map +1 -1
  87. package/.output/server/chunks/build/{aml-DsgtDLWF.mjs → aml-C55iuLn-.mjs} +15 -13
  88. package/.output/server/chunks/build/aml-C55iuLn-.mjs.map +1 -0
  89. package/.output/server/chunks/build/{api-BY6ji7RC.mjs → api-B4Om0mEc.mjs} +4 -3
  90. package/.output/server/chunks/build/api-B4Om0mEc.mjs.map +1 -0
  91. package/.output/server/chunks/build/{apiClient-D281qrK2.mjs → apiClient-BvXtNzC8.mjs} +2 -2
  92. package/.output/server/chunks/build/apiClient-BvXtNzC8.mjs.map +1 -0
  93. package/.output/server/chunks/build/channel-templates-gdCLajKy.mjs +3 -2
  94. package/.output/server/chunks/build/channel-templates-gdCLajKy.mjs.map +1 -1
  95. package/.output/server/chunks/build/constants-HPHJvjne.mjs +2 -1
  96. package/.output/server/chunks/build/constants-HPHJvjne.mjs.map +1 -1
  97. package/.output/server/chunks/build/{daq-N69AOtgw.mjs → daq-D0kLscVr.mjs} +15 -13
  98. package/.output/server/chunks/build/daq-D0kLscVr.mjs.map +1 -0
  99. package/.output/server/chunks/build/{dcw-CN9d3Rs7.mjs → dcw-DuhEyu7S.mjs} +11 -10
  100. package/.output/server/chunks/build/dcw-DuhEyu7S.mjs.map +1 -0
  101. package/.output/server/chunks/build/dcw-driver-badge-Df5wL_ZA.mjs +20 -0
  102. package/.output/server/chunks/build/dcw-driver-badge-Df5wL_ZA.mjs.map +1 -0
  103. package/.output/server/chunks/build/{default-CXUe4HL7.mjs → default-aFGiNebw.mjs} +6 -4
  104. package/.output/server/chunks/build/{default-CXUe4HL7.mjs.map → default-aFGiNebw.mjs.map} +1 -1
  105. package/.output/server/chunks/build/hitl-ePh3G3ue.mjs +132 -0
  106. package/.output/server/chunks/build/hitl-ePh3G3ue.mjs.map +1 -0
  107. package/.output/server/chunks/build/{logs-BcAjU1Ps.mjs → logs-BlOalbsZ.mjs} +11 -9
  108. package/.output/server/chunks/build/logs-BlOalbsZ.mjs.map +1 -0
  109. package/.output/server/chunks/build/monitor-DX_K0WMq.mjs +3 -2
  110. package/.output/server/chunks/build/{operations-OFHYXwh4.mjs → operations-BD6LK-Yz.mjs} +10 -8
  111. package/.output/server/chunks/build/operations-BD6LK-Yz.mjs.map +1 -0
  112. package/.output/server/chunks/build/{pages-CRMeXrxG.mjs → pages-DloBBvU5.mjs} +7 -6
  113. package/.output/server/chunks/build/pages-DloBBvU5.mjs.map +1 -0
  114. package/.output/server/chunks/build/permissions-BvmodvsO.mjs +3 -2
  115. package/.output/server/chunks/build/permissions-BvmodvsO.mjs.map +1 -1
  116. package/.output/server/chunks/build/plugins-NAS9MQ5r.mjs +3 -2
  117. package/.output/server/chunks/build/plugins-NAS9MQ5r.mjs.map +1 -1
  118. package/.output/server/chunks/build/schedules-D8vYHgQ5.mjs +2 -1
  119. package/.output/server/chunks/build/settings-B7HA-sdb.mjs +3 -2
  120. package/.output/server/chunks/build/settings-B7HA-sdb.mjs.map +1 -1
  121. package/.output/server/chunks/build/teams-wM-MdLv9.mjs +2 -1
  122. package/.output/server/chunks/build/teams-wM-MdLv9.mjs.map +1 -1
  123. package/.output/server/chunks/build/tokens-CloWk4x_.mjs +3 -2
  124. package/.output/server/chunks/build/tokens-CloWk4x_.mjs.map +1 -1
  125. package/.output/server/chunks/build/{town-BMlctE4m.mjs → town-B2gBu_ZE.mjs} +12 -9
  126. package/.output/server/chunks/build/town-B2gBu_ZE.mjs.map +1 -0
  127. package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
  128. package/.output/server/chunks/build/useAgentHarnessOptions-BnFCh23W.mjs +2 -1
  129. package/.output/server/chunks/build/useAgentHarnessOptions-BnFCh23W.mjs.map +1 -1
  130. package/.output/server/chunks/build/useAgentTemplateActions-DsBRUQni.mjs +2 -1
  131. package/.output/server/chunks/build/useAgentTemplateActions-DsBRUQni.mjs.map +1 -1
  132. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +2 -1
  133. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs.map +1 -1
  134. package/.output/server/chunks/build/useAgentTemplateForm-DzQ_t2Ue.mjs +2 -1
  135. package/.output/server/chunks/build/useAgentTemplateForm-DzQ_t2Ue.mjs.map +1 -1
  136. package/.output/server/chunks/build/useAgentTemplatesCatalog-Q7LgG1Af.mjs +3 -2
  137. package/.output/server/chunks/build/useAgentTemplatesCatalog-Q7LgG1Af.mjs.map +1 -1
  138. package/.output/server/chunks/build/{useAmlDatasets-BM0lZu40.mjs → useAmlDatasets-DeoE1idn.mjs} +5 -4
  139. package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs.map +1 -0
  140. package/.output/server/chunks/build/{useAmlEntities-BDQ8TmLL.mjs → useAmlEntities-BMLHU_39.mjs} +5 -4
  141. package/.output/server/chunks/build/useAmlEntities-BMLHU_39.mjs.map +1 -0
  142. package/.output/server/chunks/build/{useAmlEnv-DgTVwpqi.mjs → useAmlEnv-DdlyVzPu.mjs} +5 -4
  143. package/.output/server/chunks/build/useAmlEnv-DdlyVzPu.mjs.map +1 -0
  144. package/.output/server/chunks/build/{useAmlExperiments-BtyW32PO.mjs → useAmlExperiments-Dloi834i.mjs} +5 -4
  145. package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs.map +1 -0
  146. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs +2 -1
  147. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs.map +1 -1
  148. package/.output/server/chunks/build/{useAmlJobs-fk-H5Rp5.mjs → useAmlJobs--a_1ovew.mjs} +5 -4
  149. package/.output/server/chunks/build/useAmlJobs--a_1ovew.mjs.map +1 -0
  150. package/.output/server/chunks/build/{useAmlModels-hgyVHoAq.mjs → useAmlModels-D7MuOWOy.mjs} +5 -4
  151. package/.output/server/chunks/build/useAmlModels-D7MuOWOy.mjs.map +1 -0
  152. package/.output/server/chunks/build/{useAmlNotes-BjbYNADm.mjs → useAmlNotes-CTZe-GI0.mjs} +5 -4
  153. package/.output/server/chunks/build/useAmlNotes-CTZe-GI0.mjs.map +1 -0
  154. package/.output/server/chunks/build/{useAmlPredict-U24-SZNA.mjs → useAmlPredict-BToRrVRV.mjs} +5 -4
  155. package/.output/server/chunks/build/useAmlPredict-BToRrVRV.mjs.map +1 -0
  156. package/.output/server/chunks/build/{useDaqAddNode-kW7uTSMQ.mjs → useDaqAddNode-CaOCbe4-.mjs} +6 -5
  157. package/.output/server/chunks/build/useDaqAddNode-CaOCbe4-.mjs.map +1 -0
  158. package/.output/server/chunks/build/{useDaqDetailBinding-cpBz4hSL.mjs → useDaqDetailBinding-C7AbGIdP.mjs} +6 -5
  159. package/.output/server/chunks/build/useDaqDetailBinding-C7AbGIdP.mjs.map +1 -0
  160. package/.output/server/chunks/build/{useDaqDetailFrames-BZGtKKXW.mjs → useDaqDetailFrames-CmAEdbAL.mjs} +5 -4
  161. package/.output/server/chunks/build/useDaqDetailFrames-CmAEdbAL.mjs.map +1 -0
  162. package/.output/server/chunks/build/{useDaqDetailHistory-DtSTfyMi.mjs → useDaqDetailHistory-pfi6zXWU.mjs} +5 -4
  163. package/.output/server/chunks/build/useDaqDetailHistory-pfi6zXWU.mjs.map +1 -0
  164. package/.output/server/chunks/build/{useDaqDetailNode-D_vhG0jF.mjs → useDaqDetailNode-qT7MjqJ7.mjs} +8 -7
  165. package/.output/server/chunks/build/useDaqDetailNode-qT7MjqJ7.mjs.map +1 -0
  166. package/.output/server/chunks/build/{useDaqDetailParams-JfqHvTxr.mjs → useDaqDetailParams-CrTMDs-2.mjs} +6 -5
  167. package/.output/server/chunks/build/useDaqDetailParams-CrTMDs-2.mjs.map +1 -0
  168. package/.output/server/chunks/build/{useDaqFilters-BUQtZ82a.mjs → useDaqFilters-CMysN13f.mjs} +8 -7
  169. package/.output/server/chunks/build/useDaqFilters-CMysN13f.mjs.map +1 -0
  170. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +2 -1
  171. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs.map +1 -1
  172. package/.output/server/chunks/build/{useDaqOptimizations-Ct-TSXxy.mjs → useDaqOptimizations-Coq5lsfM.mjs} +5 -4
  173. package/.output/server/chunks/build/useDaqOptimizations-Coq5lsfM.mjs.map +1 -0
  174. package/.output/server/chunks/build/{useDaqStream-wOxZcMDA.mjs → useDaqStream-DhzdoyIR.mjs} +3 -3
  175. package/.output/server/chunks/build/{useDaqStream-wOxZcMDA.mjs.map → useDaqStream-DhzdoyIR.mjs.map} +1 -1
  176. package/.output/server/chunks/build/{useDaqTemplates-BqQRdrIm.mjs → useDaqTemplates-C7GzQmdJ.mjs} +6 -5
  177. package/.output/server/chunks/build/useDaqTemplates-C7GzQmdJ.mjs.map +1 -0
  178. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs +2 -1
  179. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs.map +1 -1
  180. package/.output/server/chunks/build/{useDashboardData-DWJ6vHjm.mjs → useDashboardData-DgJcGJaF.mjs} +6 -5
  181. package/.output/server/chunks/build/useDashboardData-DgJcGJaF.mjs.map +1 -0
  182. package/.output/server/chunks/build/{useDcwAddNode-C1HDP3yG.mjs → useDcwAddNode-C9DbEKHi.mjs} +38 -5
  183. package/.output/server/chunks/build/useDcwAddNode-C9DbEKHi.mjs.map +1 -0
  184. package/.output/server/chunks/build/{useDcwCards-ETEsHvVy.mjs → useDcwCards-VDoMYG7l.mjs} +5 -4
  185. package/.output/server/chunks/build/useDcwCards-VDoMYG7l.mjs.map +1 -0
  186. package/.output/server/chunks/build/{useDcwDetailScope-QTr1G6Oe.mjs → useDcwDetailScope-CL97tJdJ.mjs} +7 -6
  187. package/.output/server/chunks/build/useDcwDetailScope-CL97tJdJ.mjs.map +1 -0
  188. package/.output/server/chunks/build/{useDcwDetailTemplates-Djt-0Vse.mjs → useDcwDetailTemplates-OLmjMSGD.mjs} +5 -4
  189. package/.output/server/chunks/build/useDcwDetailTemplates-OLmjMSGD.mjs.map +1 -0
  190. package/.output/server/chunks/build/{useDcwFilter-FfVlDdyS.mjs → useDcwFilter-Bs9C6-h_.mjs} +5 -4
  191. package/.output/server/chunks/build/useDcwFilter-Bs9C6-h_.mjs.map +1 -0
  192. package/.output/server/chunks/build/{useDcwLedger-BLoMmcu1.mjs → useDcwLedger-Bbf_iFOY.mjs} +5 -4
  193. package/.output/server/chunks/build/useDcwLedger-Bbf_iFOY.mjs.map +1 -0
  194. package/.output/server/chunks/build/{useDcwLineMutations-BMC5BTWU.mjs → useDcwLineMutations-Bhtuqw7J.mjs} +5 -4
  195. package/.output/server/chunks/build/useDcwLineMutations-Bhtuqw7J.mjs.map +1 -0
  196. package/.output/server/chunks/build/{useDcwLineRun-74gN_s6T.mjs → useDcwLineRun-CGqZSnG4.mjs} +5 -4
  197. package/.output/server/chunks/build/useDcwLineRun-CGqZSnG4.mjs.map +1 -0
  198. package/.output/server/chunks/build/useDcwParamApprovals-BBwdFsKv.mjs +119 -0
  199. package/.output/server/chunks/build/useDcwParamApprovals-BBwdFsKv.mjs.map +1 -0
  200. package/.output/server/chunks/build/{useDcwProducts-D-zrMaeV.mjs → useDcwProducts-BoBkJqpv.mjs} +5 -4
  201. package/.output/server/chunks/build/useDcwProducts-BoBkJqpv.mjs.map +1 -0
  202. package/.output/server/chunks/build/{useDcwQuery-7tX4QYmv.mjs → useDcwQuery-DP7b2qb6.mjs} +5 -4
  203. package/.output/server/chunks/build/useDcwQuery-DP7b2qb6.mjs.map +1 -0
  204. package/.output/server/chunks/build/{useDcwQuickActions-C-tgcXIr.mjs → useDcwQuickActions-DHRiA9KN.mjs} +5 -4
  205. package/.output/server/chunks/build/useDcwQuickActions-DHRiA9KN.mjs.map +1 -0
  206. package/.output/server/chunks/build/{useDcwRecipes-FVk5gDLV.mjs → useDcwRecipes-CIMeH2oF.mjs} +5 -4
  207. package/.output/server/chunks/build/useDcwRecipes-CIMeH2oF.mjs.map +1 -0
  208. package/.output/server/chunks/build/{useDcwStream-D04kCV3J.mjs → useDcwStream-B9ugUWRq.mjs} +10 -3
  209. package/.output/server/chunks/build/{useDcwStream-D04kCV3J.mjs.map → useDcwStream-B9ugUWRq.mjs.map} +1 -1
  210. package/.output/server/chunks/build/{useDcwTemplates-LDZffy4u.mjs → useDcwTemplates-M_-qjV8E.mjs} +5 -4
  211. package/.output/server/chunks/build/useDcwTemplates-M_-qjV8E.mjs.map +1 -0
  212. package/.output/server/chunks/build/{useDcwWrites-B22mwliK.mjs → useDcwWrites-D94dAzqr.mjs} +5 -4
  213. package/.output/server/chunks/build/useDcwWrites-D94dAzqr.mjs.map +1 -0
  214. package/.output/server/chunks/build/{useDeviceTwins-CbVad1M3.mjs → useDeviceTwins-BqwVJaZg.mjs} +2 -2
  215. package/.output/server/chunks/build/{useDeviceTwins-CbVad1M3.mjs.map → useDeviceTwins-BqwVJaZg.mjs.map} +1 -1
  216. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs +2 -1
  217. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs.map +1 -1
  218. package/.output/server/chunks/build/{useLogsManual-COfCyUtj.mjs → useLogsManual-CMjD62nt.mjs} +5 -4
  219. package/.output/server/chunks/build/useLogsManual-CMjD62nt.mjs.map +1 -0
  220. package/.output/server/chunks/build/{useLogsQuery-CRAm2hmS.mjs → useLogsQuery-2x1mKxT1.mjs} +5 -4
  221. package/.output/server/chunks/build/useLogsQuery-2x1mKxT1.mjs.map +1 -0
  222. package/.output/server/chunks/build/{useLogsScope-ClNijVj4.mjs → useLogsScope-04cUJCU-.mjs} +5 -4
  223. package/.output/server/chunks/build/useLogsScope-04cUJCU-.mjs.map +1 -0
  224. package/.output/server/chunks/build/useMonitorColumns-DhYvkLDq.mjs +3 -2
  225. package/.output/server/chunks/build/useMonitorColumns-DhYvkLDq.mjs.map +1 -1
  226. package/.output/server/chunks/build/useMonitorData-guVjMDtR.mjs +3 -2
  227. package/.output/server/chunks/build/useMonitorData-guVjMDtR.mjs.map +1 -1
  228. package/.output/server/chunks/build/useMonitorFormat-C7lhZe4g.mjs +2 -1
  229. package/.output/server/chunks/build/useMonitorFormat-C7lhZe4g.mjs.map +1 -1
  230. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +2 -1
  231. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs.map +1 -1
  232. package/.output/server/chunks/build/{useOperationsFeed-CeXeHqUK.mjs → useOperationsFeed-DsA2ym7M.mjs} +5 -4
  233. package/.output/server/chunks/build/useOperationsFeed-DsA2ym7M.mjs.map +1 -0
  234. package/.output/server/chunks/build/{useOpsLog-CgnNG7_n.mjs → useOpsLog-SnWPuRtK.mjs} +2 -2
  235. package/.output/server/chunks/build/{useOpsLog-CgnNG7_n.mjs.map → useOpsLog-SnWPuRtK.mjs.map} +1 -1
  236. package/.output/server/chunks/build/useTeamActions-BOLQkYxg.mjs +2 -1
  237. package/.output/server/chunks/build/useTeamActions-BOLQkYxg.mjs.map +1 -1
  238. package/.output/server/chunks/build/useTeamAddMemberDialog-BCgrLPxI.mjs +2 -1
  239. package/.output/server/chunks/build/useTeamAddMemberDialog-BCgrLPxI.mjs.map +1 -1
  240. package/.output/server/chunks/build/useTeamCreateDialog-CJk40LqS.mjs +2 -1
  241. package/.output/server/chunks/build/useTeamCreateDialog-CJk40LqS.mjs.map +1 -1
  242. package/.output/server/chunks/build/useTeamDeployDialog-49hdUXQP.mjs +2 -1
  243. package/.output/server/chunks/build/useTeamDeployDialog-49hdUXQP.mjs.map +1 -1
  244. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +2 -1
  245. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs.map +1 -1
  246. package/.output/server/chunks/build/useTeamPluginDialog-Dh-QOoiU.mjs +2 -1
  247. package/.output/server/chunks/build/useTeamPluginDialog-Dh-QOoiU.mjs.map +1 -1
  248. package/.output/server/chunks/build/useTeamsCatalog-HBSyKt5P.mjs +3 -2
  249. package/.output/server/chunks/build/useTeamsCatalog-HBSyKt5P.mjs.map +1 -1
  250. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +2 -1
  251. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs.map +1 -1
  252. package/.output/server/chunks/build/useTokenCreate-DkYvEQUD.mjs +3 -2
  253. package/.output/server/chunks/build/useTokenCreate-DkYvEQUD.mjs.map +1 -1
  254. package/.output/server/chunks/build/useTokenRename-DOCP4aeI.mjs +3 -2
  255. package/.output/server/chunks/build/useTokenRename-DOCP4aeI.mjs.map +1 -1
  256. package/.output/server/chunks/build/useTokenReveal-CybwwflV.mjs +3 -2
  257. package/.output/server/chunks/build/useTokenReveal-CybwwflV.mjs.map +1 -1
  258. package/.output/server/chunks/build/useTokensList-BLiMvrc4.mjs +3 -2
  259. package/.output/server/chunks/build/useTokensList-BLiMvrc4.mjs.map +1 -1
  260. package/.output/server/chunks/build/useWorkbenchAuth-DqjBX-6w.mjs +3 -2
  261. package/.output/server/chunks/build/useWorkbenchAuth-DqjBX-6w.mjs.map +1 -1
  262. package/.output/server/chunks/build/{useWorkbenchWorkspaces-DgiSCzsX.mjs → useWorkbenchWorkspaces-GQVU9BLv.mjs} +6 -4
  263. package/.output/server/chunks/build/useWorkbenchWorkspaces-GQVU9BLv.mjs.map +1 -0
  264. package/.output/server/chunks/build/useWorkshopApi-C9sTYu1F.mjs +1 -1
  265. package/.output/server/chunks/build/{useWorkshopWs-Bm80bLn7.mjs → useWorkshopWs-CgeCsaYJ.mjs} +4 -128
  266. package/.output/server/chunks/build/useWorkshopWs-CgeCsaYJ.mjs.map +1 -0
  267. package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs +3 -2
  268. package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs.map +1 -1
  269. package/.output/server/chunks/build/{useWorkspaceChannels-D61Al2dr.mjs → useWorkspaceChannels-B13vROC1.mjs} +5 -3
  270. package/.output/server/chunks/build/useWorkspaceChannels-B13vROC1.mjs.map +1 -0
  271. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs +2 -1
  272. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs.map +1 -1
  273. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs +2 -1
  274. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs.map +1 -1
  275. package/.output/server/chunks/build/users-CCf5PgRs.mjs +3 -2
  276. package/.output/server/chunks/build/users-CCf5PgRs.mjs.map +1 -1
  277. package/.output/server/chunks/build/{workshop-FQ4YzooB.mjs → workshop-BDqWzJtr.mjs} +6 -4
  278. package/.output/server/chunks/build/workshop-BDqWzJtr.mjs.map +1 -0
  279. package/.output/server/chunks/build/workspaces-CmW0cpOt.mjs +1 -1
  280. package/.output/server/chunks/routes/api/health.get.mjs +2 -1
  281. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  282. package/.output/server/chunks/routes/api/index.get.mjs +2 -1
  283. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  284. package/.output/server/chunks/routes/api/index.post.mjs +2 -1
  285. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  286. package/.output/server/chunks/routes/api/mcp/workshop.mjs +3 -2
  287. package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
  288. package/.output/server/chunks/routes/api/metrics.mjs +2 -1
  289. package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
  290. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +2 -1
  291. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
  292. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +2 -1
  293. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -1
  294. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +2 -1
  295. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs.map +1 -1
  296. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +2 -1
  297. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
  298. package/.output/server/chunks/routes/api/system/backup/list.get.mjs +2 -1
  299. package/.output/server/chunks/routes/api/system/backup/list.get.mjs.map +1 -1
  300. package/.output/server/chunks/routes/api/system/backup/run.post.mjs +4 -3
  301. package/.output/server/chunks/routes/api/system/backup/run.post.mjs.map +1 -1
  302. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +2 -1
  303. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs.map +1 -1
  304. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +2 -1
  305. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs.map +1 -1
  306. package/.output/server/chunks/routes/api/system/config.get.mjs +2 -1
  307. package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
  308. package/.output/server/chunks/routes/api/system/index.get.mjs +2 -1
  309. package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
  310. package/.output/server/chunks/routes/api/system/index.patch.mjs +2 -1
  311. package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
  312. package/.output/server/chunks/routes/api/system/index.post.mjs +2 -1
  313. package/.output/server/chunks/routes/api/system/index.post.mjs.map +1 -1
  314. package/.output/server/chunks/routes/api/system/index2.get.mjs +2 -1
  315. package/.output/server/chunks/routes/api/system/index2.get.mjs.map +1 -1
  316. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +2 -1
  317. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -1
  318. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +2 -1
  319. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs.map +1 -1
  320. package/.output/server/chunks/routes/api/system/monitor.get.mjs +2 -1
  321. package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -1
  322. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +2 -1
  323. package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
  324. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +2 -1
  325. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
  326. package/.output/server/chunks/routes/api/system/timezone.get.mjs +2 -1
  327. package/.output/server/chunks/routes/api/system/timezone.get.mjs.map +1 -1
  328. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +2 -1
  329. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  330. package/.output/server/chunks/routes/api/users/_id_.get.mjs +2 -1
  331. package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
  332. package/.output/server/chunks/routes/api/users/_id_.put.mjs +2 -1
  333. package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
  334. package/.output/server/chunks/routes/api/users/index.get.mjs +2 -1
  335. package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
  336. package/.output/server/chunks/routes/api/users/index.post.mjs +2 -1
  337. package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -1
  338. package/.output/server/chunks/routes/api/users/login.post.mjs +2 -1
  339. package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
  340. package/.output/server/chunks/routes/api/users/logout.post.mjs +2 -1
  341. package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
  342. package/.output/server/chunks/routes/api/users/me.get.mjs +2 -1
  343. package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
  344. package/.output/server/chunks/routes/api/users/register.post.mjs +2 -1
  345. package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -1
  346. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +2 -1
  347. package/.output/server/chunks/routes/api/users/setup-status.get.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +2 -1
  349. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +2 -1
  351. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs.map +1 -1
  352. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +2 -1
  353. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -1
  354. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +2 -1
  355. package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -1
  356. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +2 -1
  357. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs.map +1 -1
  358. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +2 -1
  359. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs.map +1 -1
  360. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +2 -1
  361. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs.map +1 -1
  362. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +2 -1
  363. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
  364. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +2 -1
  365. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs.map +1 -1
  366. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +2 -1
  367. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
  368. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs +2 -1
  369. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs.map +1 -1
  370. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs +2 -1
  371. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs.map +1 -1
  372. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +2 -1
  373. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -1
  374. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +2 -1
  375. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
  376. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +2 -1
  377. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs.map +1 -1
  378. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +2 -1
  379. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +2 -1
  381. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs.map +1 -1
  382. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +2 -1
  383. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs.map +1 -1
  384. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +2 -1
  385. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs.map +1 -1
  386. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +2 -1
  387. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -1
  388. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +2 -1
  389. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs.map +1 -1
  390. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +2 -1
  391. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs.map +1 -1
  392. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +2 -1
  393. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs.map +1 -1
  394. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +2 -1
  395. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +1 -1
  396. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +2 -1
  397. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs.map +1 -1
  398. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +2 -1
  399. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs.map +1 -1
  400. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +2 -1
  401. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs.map +1 -1
  402. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +2 -1
  403. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs.map +1 -1
  404. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +2 -1
  405. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs.map +1 -1
  406. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +2 -1
  407. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs.map +1 -1
  408. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +2 -1
  409. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs.map +1 -1
  410. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +2 -1
  411. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs.map +1 -1
  412. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +2 -1
  413. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs.map +1 -1
  414. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +2 -1
  415. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs.map +1 -1
  416. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs +2 -1
  417. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs.map +1 -1
  418. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +2 -1
  419. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs.map +1 -1
  420. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +2 -1
  421. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs.map +1 -1
  422. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +2 -1
  423. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs.map +1 -1
  424. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs +2 -1
  425. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs.map +1 -1
  426. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +2 -1
  427. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs.map +1 -1
  428. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +2 -1
  429. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs.map +1 -1
  430. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +2 -1
  431. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs.map +1 -1
  432. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +2 -1
  433. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs.map +1 -1
  434. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +2 -1
  435. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs.map +1 -1
  436. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +2 -1
  437. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs.map +1 -1
  438. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +2 -1
  439. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs.map +1 -1
  440. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +2 -1
  441. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs.map +1 -1
  442. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +2 -1
  443. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs.map +1 -1
  444. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs +2 -1
  445. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs.map +1 -1
  446. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs +2 -1
  447. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs.map +1 -1
  448. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs +2 -1
  449. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs.map +1 -1
  450. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs +2 -1
  451. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs.map +1 -1
  452. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +2 -1
  453. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs.map +1 -1
  454. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +2 -1
  455. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs.map +1 -1
  456. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +2 -1
  457. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs.map +1 -1
  458. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +2 -1
  459. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs.map +1 -1
  460. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +2 -1
  461. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs.map +1 -1
  462. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +2 -1
  463. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs.map +1 -1
  464. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +2 -1
  465. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs.map +1 -1
  466. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +2 -1
  467. package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
  468. package/.output/server/chunks/routes/api/workshop/caller.mjs +2 -1
  469. package/.output/server/chunks/routes/api/workshop/caller.mjs.map +1 -1
  470. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +3 -2
  471. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
  472. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +2 -1
  473. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs.map +1 -1
  474. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +2 -1
  475. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs.map +1 -1
  476. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +2 -1
  477. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
  478. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +2 -1
  479. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs.map +1 -1
  480. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +2 -1
  481. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs.map +1 -1
  482. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +2 -1
  483. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs.map +1 -1
  484. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +2 -1
  485. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs.map +1 -1
  486. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +2 -1
  487. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs.map +1 -1
  488. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +2 -1
  489. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs.map +1 -1
  490. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +2 -1
  491. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs.map +1 -1
  492. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +2 -1
  493. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs.map +1 -1
  494. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +2 -1
  495. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs.map +1 -1
  496. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +2 -1
  497. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs.map +1 -1
  498. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +2 -1
  499. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs.map +1 -1
  500. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +2 -1
  501. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
  502. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +2 -1
  503. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs.map +1 -1
  504. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +2 -1
  505. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs.map +1 -1
  506. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs +2 -1
  507. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs.map +1 -1
  508. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs +2 -1
  509. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs.map +1 -1
  510. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +2 -1
  511. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs.map +1 -1
  512. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +2 -1
  513. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
  514. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +2 -1
  515. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
  516. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +2 -1
  517. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs.map +1 -1
  518. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +2 -1
  519. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -1
  520. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +2 -1
  521. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs.map +1 -1
  522. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +2 -1
  523. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs.map +1 -1
  524. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +2 -1
  525. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs.map +1 -1
  526. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +2 -1
  527. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
  528. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +2 -1
  529. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs.map +1 -1
  530. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +2 -1
  531. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs.map +1 -1
  532. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs +2 -1
  533. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs.map +1 -1
  534. package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs +2 -1
  535. package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs.map +1 -1
  536. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs +2 -1
  537. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs.map +1 -1
  538. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs +2 -1
  539. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs.map +1 -1
  540. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs +2 -1
  541. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs.map +1 -1
  542. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs +2 -1
  543. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs.map +1 -1
  544. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +2 -1
  545. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs.map +1 -1
  546. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +2 -1
  547. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs.map +1 -1
  548. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +2 -1
  549. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs.map +1 -1
  550. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +2 -1
  551. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs.map +1 -1
  552. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +2 -1
  553. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs.map +1 -1
  554. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +2 -1
  555. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs.map +1 -1
  556. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +2 -1
  557. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
  558. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +2 -1
  559. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
  560. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +2 -1
  561. package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
  562. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +5 -4
  563. package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
  564. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +2 -1
  565. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
  566. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +2 -1
  567. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs.map +1 -1
  568. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +2 -1
  569. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
  570. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +2 -1
  571. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -1
  572. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +2 -1
  573. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
  574. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +2 -1
  575. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs.map +1 -1
  576. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +2 -1
  577. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs.map +1 -1
  578. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +2 -1
  579. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
  580. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +2 -1
  581. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
  582. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +2 -1
  583. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
  584. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +2 -1
  585. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
  586. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +2 -1
  587. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
  588. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +2 -1
  589. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
  590. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +2 -1
  591. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs.map +1 -1
  592. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +2 -1
  593. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
  594. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +2 -1
  595. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
  596. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +2 -1
  597. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
  598. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +2 -1
  599. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
  600. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +2 -1
  601. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs.map +1 -1
  602. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +2 -1
  603. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
  604. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +2 -1
  605. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +1 -1
  606. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +2 -1
  607. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
  608. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +2 -1
  609. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
  610. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -1
  611. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
  612. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +2 -1
  613. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
  614. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +2 -1
  615. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs.map +1 -1
  616. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +2 -1
  617. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
  618. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +2 -1
  619. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
  620. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +2 -1
  621. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
  622. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +2 -1
  623. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
  624. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +2 -1
  625. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
  626. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +2 -1
  627. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
  628. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +2 -1
  629. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
  630. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +2 -1
  631. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
  632. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +2 -1
  633. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
  634. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +3 -2
  635. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs.map +1 -1
  636. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +2 -1
  637. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +1 -1
  638. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +2 -1
  639. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs.map +1 -1
  640. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +2 -1
  641. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
  642. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +2 -1
  643. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
  644. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +2 -1
  645. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
  646. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +2 -1
  647. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs.map +1 -1
  648. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +2 -1
  649. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
  650. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs +36 -0
  651. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs.map +1 -0
  652. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +2 -1
  653. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs.map +1 -1
  654. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +2 -1
  655. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs.map +1 -1
  656. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +2 -1
  657. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
  658. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +2 -1
  659. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
  660. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +2 -1
  661. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -1
  662. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +2 -1
  663. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs.map +1 -1
  664. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +3 -2
  665. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs.map +1 -1
  666. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +3 -2
  667. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs.map +1 -1
  668. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +2 -1
  669. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -1
  670. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +2 -1
  671. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -1
  672. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +2 -1
  673. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs.map +1 -1
  674. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +2 -1
  675. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs.map +1 -1
  676. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +2 -1
  677. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs.map +1 -1
  678. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +2 -1
  679. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs.map +1 -1
  680. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +2 -1
  681. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs.map +1 -1
  682. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +2 -1
  683. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
  684. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +2 -1
  685. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs.map +1 -1
  686. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +2 -1
  687. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
  688. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +2 -1
  689. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
  690. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +2 -1
  691. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs.map +1 -1
  692. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +3 -2
  693. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs.map +1 -1
  694. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +3 -2
  695. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs.map +1 -1
  696. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +2 -1
  697. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
  698. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +2 -1
  699. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs.map +1 -1
  700. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +2 -1
  701. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs.map +1 -1
  702. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +2 -1
  703. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs.map +1 -1
  704. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +2 -1
  705. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -1
  706. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +3 -2
  707. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs.map +1 -1
  708. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +3 -2
  709. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs.map +1 -1
  710. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +3 -2
  711. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -1
  712. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +3 -2
  713. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs.map +1 -1
  714. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +3 -2
  715. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -1
  716. package/.output/server/chunks/routes/api/workshop/index.get.mjs +2 -1
  717. package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
  718. package/.output/server/chunks/routes/api/workshop/index.post.mjs +2 -1
  719. package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
  720. package/.output/server/chunks/routes/api/workshop/index.put.mjs +3 -2
  721. package/.output/server/chunks/routes/api/workshop/index.put.mjs.map +1 -1
  722. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +2 -1
  723. package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
  724. package/.output/server/chunks/routes/api/workshop/index11.get.mjs +2 -1
  725. package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -1
  726. package/.output/server/chunks/routes/api/workshop/index12.get.mjs +2 -1
  727. package/.output/server/chunks/routes/api/workshop/index12.get.mjs.map +1 -1
  728. package/.output/server/chunks/routes/api/workshop/index13.get.mjs +2 -1
  729. package/.output/server/chunks/routes/api/workshop/index13.get.mjs.map +1 -1
  730. package/.output/server/chunks/routes/api/workshop/index14.get.mjs +2 -1
  731. package/.output/server/chunks/routes/api/workshop/index14.get.mjs.map +1 -1
  732. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +2 -1
  733. package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
  734. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +2 -1
  735. package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -1
  736. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +2 -1
  737. package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
  738. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +2 -1
  739. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  740. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +2 -1
  741. package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
  742. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +2 -1
  743. package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
  744. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +2 -1
  745. package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
  746. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +2 -1
  747. package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
  748. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +2 -1
  749. package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
  750. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +2 -1
  751. package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
  752. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +2 -1
  753. package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
  754. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +2 -1
  755. package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
  756. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +2 -1
  757. package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
  758. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +2 -1
  759. package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
  760. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +2 -1
  761. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  762. package/.output/server/chunks/routes/api/workshop/index9.post.mjs +2 -1
  763. package/.output/server/chunks/routes/api/workshop/index9.post.mjs.map +1 -1
  764. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +2 -1
  765. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -1
  766. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +2 -1
  767. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -1
  768. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +2 -1
  769. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs.map +1 -1
  770. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +2 -1
  771. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs.map +1 -1
  772. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +3 -2
  773. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
  774. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +3 -2
  775. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
  776. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +2 -1
  777. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -1
  778. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +2 -1
  779. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs.map +1 -1
  780. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +3 -2
  781. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs.map +1 -1
  782. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +3 -2
  783. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs.map +1 -1
  784. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +2 -1
  785. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs.map +1 -1
  786. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs +2 -1
  787. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs.map +1 -1
  788. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +2 -1
  789. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs.map +1 -1
  790. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs +2 -1
  791. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs.map +1 -1
  792. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs +2 -1
  793. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs.map +1 -1
  794. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +2 -1
  795. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs.map +1 -1
  796. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +2 -1
  797. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs.map +1 -1
  798. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +2 -1
  799. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs.map +1 -1
  800. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +2 -1
  801. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs.map +1 -1
  802. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs +2 -1
  803. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs.map +1 -1
  804. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +2 -1
  805. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs.map +1 -1
  806. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +2 -1
  807. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs.map +1 -1
  808. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs +2 -1
  809. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs.map +1 -1
  810. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +2 -1
  811. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -1
  812. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +2 -1
  813. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs.map +1 -1
  814. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +2 -1
  815. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs.map +1 -1
  816. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +2 -1
  817. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs.map +1 -1
  818. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +2 -1
  819. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs.map +1 -1
  820. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +2 -1
  821. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs.map +1 -1
  822. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +2 -1
  823. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs.map +1 -1
  824. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +2 -1
  825. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs.map +1 -1
  826. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +2 -1
  827. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs.map +1 -1
  828. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +2 -1
  829. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs.map +1 -1
  830. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +2 -1
  831. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs.map +1 -1
  832. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +2 -1
  833. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs.map +1 -1
  834. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +2 -1
  835. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs.map +1 -1
  836. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +3 -2
  837. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs.map +1 -1
  838. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +2 -1
  839. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs.map +1 -1
  840. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +2 -1
  841. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs.map +1 -1
  842. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +2 -1
  843. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -1
  844. package/.output/server/chunks/routes/renderer.mjs +2 -2
  845. package/.output/server/chunks/virtual/entry.mjs +90 -57
  846. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  847. package/.output/server/index.mjs +2 -1
  848. package/.output/server/index.mjs.map +1 -1
  849. package/.output/server/package.json +1 -1
  850. package/README-zh.md +3 -3
  851. package/README.md +5 -5
  852. package/app/components/dcw/DcwAddNodeModal.vue +54 -4
  853. package/app/components/dcw/DcwNodesTable.vue +15 -0
  854. package/app/components/dcw/DcwParamApprovalCard.vue +110 -0
  855. package/app/components/dcw/DcwRecipeEditModal.vue +10 -1
  856. package/app/components/workshop/town/components/TownAgentBindings.vue +10 -1
  857. package/app/composables/workshop/useDcwStream.ts +4 -0
  858. package/app/pages/dcw/[id].vue +19 -1
  859. package/app/pages/dcw/composables/useDcwAddNode.ts +35 -1
  860. package/app/pages/dcw/composables/useDcwParamApprovals.ts +119 -0
  861. package/app/utils/dcw-driver-badge.ts +16 -0
  862. package/docs/cli.en.md +1 -1
  863. package/i18n/locales/en.ts +14 -0
  864. package/i18n/locales/zh-CN.ts +14 -0
  865. package/package.json +1 -1
  866. package/scripts/_dbg-protocol-matrix.mjs +8 -1
  867. package/server/api/workshop/dcw/mes-test-read.post.ts +24 -0
  868. package/server/plugins/workshop.ts +4 -0
  869. package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +7 -3
  870. package/server/services/workshop/agents/industrial/index.ts +2 -0
  871. package/server/services/workshop/agents/industrial/mes-tools.ts +135 -0
  872. package/server/services/workshop/agents/industrial/ops-tools.ts +79 -8
  873. package/server/services/workshop/agents/industrial-context.ts +19 -0
  874. package/server/services/workshop/agents/tool-classes.ts +10 -0
  875. package/server/services/workshop/db/database/schema.ts +32 -0
  876. package/server/services/workshop/db/schema.sql +32 -0
  877. package/server/services/workshop/dcw/dcw-controller/recipes.ts +9 -6
  878. package/server/services/workshop/dcw/dcw-recipe.repo.ts +8 -2
  879. package/server/services/workshop/dcw/drivers/mes-rest.ts +543 -0
  880. package/server/services/workshop/dcw/drivers/registry.ts +2 -0
  881. package/server/services/workshop/dcw/drivers/shared.ts +30 -0
  882. package/server/services/workshop/mes/mes-controller.ts +410 -0
  883. package/server/services/workshop/mes/mes-datasets.ts +441 -0
  884. package/server/services/workshop/runtime/manager/state.ts +11 -0
  885. package/server/services/workshop/runtime/scheduler-loop/tick.ts +5 -1
  886. package/server/services/workshop/runtime/task-engine/helpers.ts +3 -1
  887. package/shared/config/schema.json +2 -1
  888. package/shared/daq-protocol.ts +2 -1
  889. package/shared/dcw-protocol/catalog.ts +25 -1
  890. package/.output/public/_nuxt/BUD1CNvB2.js +0 -1
  891. package/.output/public/_nuxt/BhlRInVa.js +0 -1
  892. package/.output/public/_nuxt/CR-ILcRu2.js +0 -1
  893. package/.output/public/_nuxt/CZLnEnbE.js +0 -14
  894. package/.output/public/_nuxt/Chxx-DIE2.js +0 -1
  895. package/.output/public/_nuxt/D6lZftfy.js +0 -1
  896. package/.output/public/_nuxt/DAGuPgXa.js +0 -2
  897. package/.output/public/_nuxt/DWsgRq2c.js +0 -1
  898. package/.output/public/_nuxt/DxagrjB8.js +0 -1
  899. package/.output/public/_nuxt/UN3nSFjj2.js +0 -1
  900. package/.output/public/_nuxt/Z-Z6EhXs.js +0 -1
  901. package/.output/public/_nuxt/_id_.rdGx-UDx.css +0 -1
  902. package/.output/public/_nuxt/_kUzq9VF.js +0 -1
  903. package/.output/public/_nuxt/builds/meta/5ccc21c2-aba0-4b63-9a13-410e0569e345.json +0 -1
  904. package/.output/public/_nuxt/o9rJf00k.js +0 -1
  905. package/.output/server/chunks/build/TownView-fP9BiALv.mjs.map +0 -1
  906. package/.output/server/chunks/build/_id_-CDlur81q.mjs.map +0 -1
  907. package/.output/server/chunks/build/_id_-CK-QFrDV.mjs.map +0 -1
  908. package/.output/server/chunks/build/aml-DsgtDLWF.mjs.map +0 -1
  909. package/.output/server/chunks/build/api-BY6ji7RC.mjs.map +0 -1
  910. package/.output/server/chunks/build/apiClient-D281qrK2.mjs.map +0 -1
  911. package/.output/server/chunks/build/daq-N69AOtgw.mjs.map +0 -1
  912. package/.output/server/chunks/build/dcw-CN9d3Rs7.mjs.map +0 -1
  913. package/.output/server/chunks/build/logs-BcAjU1Ps.mjs.map +0 -1
  914. package/.output/server/chunks/build/operations-OFHYXwh4.mjs.map +0 -1
  915. package/.output/server/chunks/build/pages-CRMeXrxG.mjs.map +0 -1
  916. package/.output/server/chunks/build/town-BMlctE4m.mjs.map +0 -1
  917. package/.output/server/chunks/build/useAmlDatasets-BM0lZu40.mjs.map +0 -1
  918. package/.output/server/chunks/build/useAmlEntities-BDQ8TmLL.mjs.map +0 -1
  919. package/.output/server/chunks/build/useAmlEnv-DgTVwpqi.mjs.map +0 -1
  920. package/.output/server/chunks/build/useAmlExperiments-BtyW32PO.mjs.map +0 -1
  921. package/.output/server/chunks/build/useAmlJobs-fk-H5Rp5.mjs.map +0 -1
  922. package/.output/server/chunks/build/useAmlModels-hgyVHoAq.mjs.map +0 -1
  923. package/.output/server/chunks/build/useAmlNotes-BjbYNADm.mjs.map +0 -1
  924. package/.output/server/chunks/build/useAmlPredict-U24-SZNA.mjs.map +0 -1
  925. package/.output/server/chunks/build/useDaqAddNode-kW7uTSMQ.mjs.map +0 -1
  926. package/.output/server/chunks/build/useDaqDetailBinding-cpBz4hSL.mjs.map +0 -1
  927. package/.output/server/chunks/build/useDaqDetailFrames-BZGtKKXW.mjs.map +0 -1
  928. package/.output/server/chunks/build/useDaqDetailHistory-DtSTfyMi.mjs.map +0 -1
  929. package/.output/server/chunks/build/useDaqDetailNode-D_vhG0jF.mjs.map +0 -1
  930. package/.output/server/chunks/build/useDaqDetailParams-JfqHvTxr.mjs.map +0 -1
  931. package/.output/server/chunks/build/useDaqFilters-BUQtZ82a.mjs.map +0 -1
  932. package/.output/server/chunks/build/useDaqOptimizations-Ct-TSXxy.mjs.map +0 -1
  933. package/.output/server/chunks/build/useDaqTemplates-BqQRdrIm.mjs.map +0 -1
  934. package/.output/server/chunks/build/useDashboardData-DWJ6vHjm.mjs.map +0 -1
  935. package/.output/server/chunks/build/useDcwAddNode-C1HDP3yG.mjs.map +0 -1
  936. package/.output/server/chunks/build/useDcwCards-ETEsHvVy.mjs.map +0 -1
  937. package/.output/server/chunks/build/useDcwDetailScope-QTr1G6Oe.mjs.map +0 -1
  938. package/.output/server/chunks/build/useDcwDetailTemplates-Djt-0Vse.mjs.map +0 -1
  939. package/.output/server/chunks/build/useDcwFilter-FfVlDdyS.mjs.map +0 -1
  940. package/.output/server/chunks/build/useDcwLedger-BLoMmcu1.mjs.map +0 -1
  941. package/.output/server/chunks/build/useDcwLineMutations-BMC5BTWU.mjs.map +0 -1
  942. package/.output/server/chunks/build/useDcwLineRun-74gN_s6T.mjs.map +0 -1
  943. package/.output/server/chunks/build/useDcwProducts-D-zrMaeV.mjs.map +0 -1
  944. package/.output/server/chunks/build/useDcwQuery-7tX4QYmv.mjs.map +0 -1
  945. package/.output/server/chunks/build/useDcwQuickActions-C-tgcXIr.mjs.map +0 -1
  946. package/.output/server/chunks/build/useDcwRecipes-FVk5gDLV.mjs.map +0 -1
  947. package/.output/server/chunks/build/useDcwTemplates-LDZffy4u.mjs.map +0 -1
  948. package/.output/server/chunks/build/useDcwWrites-B22mwliK.mjs.map +0 -1
  949. package/.output/server/chunks/build/useLogsManual-COfCyUtj.mjs.map +0 -1
  950. package/.output/server/chunks/build/useLogsQuery-CRAm2hmS.mjs.map +0 -1
  951. package/.output/server/chunks/build/useLogsScope-ClNijVj4.mjs.map +0 -1
  952. package/.output/server/chunks/build/useOperationsFeed-CeXeHqUK.mjs.map +0 -1
  953. package/.output/server/chunks/build/useWorkbenchWorkspaces-DgiSCzsX.mjs.map +0 -1
  954. package/.output/server/chunks/build/useWorkshopWs-Bm80bLn7.mjs.map +0 -1
  955. package/.output/server/chunks/build/useWorkspaceChannels-D61Al2dr.mjs.map +0 -1
  956. package/.output/server/chunks/build/workshop-FQ4YzooB.mjs.map +0 -1
  957. /package/.output/public/_nuxt/{C4sQKuhk2.js → C4sQKuhk.js} +0 -0
  958. /package/.output/public/_nuxt/{Dep0Hc9w.js → Dep0Hc9w2.js} +0 -0
  959. /package/.output/public/_nuxt/{DmzmgYHb.js → DmzmgYHb2.js} +0 -0
  960. /package/.output/public/_nuxt/{BvRk9kiK2.js → DybRo6-H.js} +0 -0
  961. /package/.output/public/_nuxt/{aV6YPjg0.js → aV6YPjg02.js} +0 -0
@@ -0,0 +1,119 @@
1
+ import { computed, onUnmounted, ref } from 'vue'
2
+ import { apiFetch } from '~/composables/workshop/apiClient'
3
+ import { useDcwStream } from '~/composables/workshop/useDcwStream'
4
+ import { useHitlStore } from '~/stores/workshop/hitl'
5
+ import type { useDcwDetailScope } from './useDcwDetailScope'
6
+
7
+ /**
8
+ * HITL 下发参数审批(产线详情页卡)—— 本产线控制节点的 Agent 写入待批项。
9
+ *
10
+ * 数据源(GET /api/workshop/agent-tools/approvals?scope=pending,服务端已按
11
+ * Channel 可见性 + 审批资格 fail-closed 过滤):行载荷带 nodeId/expiresAt,
12
+ * ① kind='dcw' 只留下发审批;② nodeId ∈ 本产线节点 —— 精确过滤到当前产线
13
+ * (hitl/pending 的 AepHitlItem 无结构化 nodeId,故不作数据源)。
14
+ * 发起者名以全局 HITL store(dcw-approval 条目)补全,缺失回退 agentId。
15
+ * 裁决走既有 POST /agent-tools/approvals/:id/decide(approved + comment,
16
+ * 拒绝意见逐字回流 Agent);30s 轮询 + 裁决后立即刷新;空态由页面 v-if 收敛整卡。
17
+ */
18
+
19
+ /** 审批行(GET approvals 返回 ToolApproval 的客户端投影;只取用到的字段) */
20
+ export interface DcwApprovalRow {
21
+ id: string
22
+ agentId: string
23
+ kind: string
24
+ nodeId: string
25
+ /** 人读摘要(节点/物理量/当前值→目标值/步长依据,服务端生成,有什么展示什么) */
26
+ detail: string
27
+ createdAt: string
28
+ /** 到期时刻(超时默认不同意) */
29
+ expiresAt: string
30
+ status: string
31
+ }
32
+
33
+ export function useDcwParamApprovals(scope: ReturnType<typeof useDcwDetailScope>) {
34
+ const dcw = useDcwStream()
35
+ const hitl = useHitlStore()
36
+ const { lineNodes } = scope
37
+
38
+ const items = ref<DcwApprovalRow[]>([])
39
+ /** 逐审批拒绝意见输入(经 v-model 下发卡片;decide 时随 rejected 提交) */
40
+ const comments = ref<Record<string, string>>({})
41
+ const decidingId = ref('')
42
+ /** 1s 心跳(倒计时用;读取它的渲染在每秒重算剩余秒数) */
43
+ const nowMs = ref(Date.now())
44
+
45
+ /** 本产线可见待批(服务端已过滤权限;这里只做产线与类型收窄) */
46
+ const approvalItems = computed<DcwApprovalRow[]>(() => {
47
+ const ids = new Set(lineNodes.value.map(n => n.id))
48
+ return items.value.filter(a => a.kind === 'dcw' && ids.has(a.nodeId) && a.status === 'pending')
49
+ })
50
+
51
+ /** 发起者名(HITL 统一待办的 agentName 优先;缺失回退 agentId) */
52
+ function approvalAgentName(a: DcwApprovalRow): string {
53
+ return hitl.items.find(i => i.kind === 'dcw-approval' && i.id === a.id)?.agentName ?? a.agentId
54
+ }
55
+
56
+ /** 审批目标节点名(节点已删除时回退短 id) */
57
+ function approvalNodeName(a: DcwApprovalRow): string {
58
+ return dcw.nodeById(a.nodeId)?.name ?? a.nodeId.slice(0, 8)
59
+ }
60
+
61
+ /** 剩余秒数(读取 nowMs 心跳;超时默认不同意) */
62
+ function approvalRemainingSec(a: DcwApprovalRow): number {
63
+ return Math.max(0, Math.ceil((Date.parse(a.expiresAt) - nowMs.value) / 1000))
64
+ }
65
+
66
+ async function load(): Promise<void> {
67
+ try {
68
+ const r = await apiFetch<{ approvals?: DcwApprovalRow[] }>({ base: '/api/workshop/agent-tools/approvals', path: '?scope=pending' })
69
+ items.value = r.approvals ?? []
70
+ }
71
+ catch {
72
+ // 轮询失败保持既有数据(空态不渲染整卡,不打扰产线操作台)
73
+ }
74
+ }
75
+
76
+ /** 裁决:approved=true 立即执行;false 拒绝(意见逐字回流 Agent)。成功/冲突后立即刷新 */
77
+ async function decideApproval(id: string, approved: boolean): Promise<void> {
78
+ decidingId.value = id
79
+ try {
80
+ await apiFetch({
81
+ base: '/api/workshop/agent-tools/approvals',
82
+ path: `/${encodeURIComponent(id)}/decide`,
83
+ init: { method: 'POST', body: JSON.stringify({ approved, comment: comments.value[id] ?? '' }) },
84
+ })
85
+ items.value = items.value.filter(a => a.id !== id)
86
+ }
87
+ catch {
88
+ // 409 ALREADY_RESOLVED(他人已处理/超时)等:以服务端事实源收敛
89
+ }
90
+ finally {
91
+ Reflect.deleteProperty(comments.value, id)
92
+ decidingId.value = ''
93
+ await load()
94
+ }
95
+ }
96
+
97
+ // 30s 数据轮询 + 1s 倒计时心跳(同一定时器计数,避免双计时器漂移)
98
+ let tick = 0
99
+ const timer = setInterval(() => {
100
+ nowMs.value = Date.now()
101
+ tick++
102
+ if (tick % 30 === 0) void load()
103
+ }, 1000)
104
+ onUnmounted(() => clearInterval(timer))
105
+
106
+ void load()
107
+ // 发起者名依赖全局 HITL 待办快照(幂等;挂载基线对齐,后续由 AEP hitl.* 帧增量收敛)
108
+ void hitl.loadSnapshot()
109
+
110
+ return {
111
+ approvalItems,
112
+ approvalComments: comments,
113
+ approvalDecidingId: decidingId,
114
+ approvalRemainingSec,
115
+ approvalAgentName,
116
+ approvalNodeName,
117
+ decideApproval,
118
+ }
119
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * DCW 驱动边缘层徽标 —— 节点表 / 数据绑定节点选择处共用的极简语义标注。
3
+ *
4
+ * 只给"非自明"的驱动加徽标:
5
+ * - mes-rest → MES 边缘层(写控制经 MES REST 边缘链路,协议名不自明);
6
+ * - mock / s7-stub → 无协议转换(模拟/桩源,提醒其非真实产线链路);
7
+ * - modbus/opcua/mqtt/http 等真实协议驱动 → 协议名自明,不加徽标。
8
+ *
9
+ * driver 形参放宽为 string:'mes-rest'/'s7-stub' 枚举由后端驱动目录并行加入
10
+ * DcwDriverKind,字面量比较在合入前后均类型安全(避免与未合入的联合类型比对报错)。
11
+ */
12
+ export function dcwDriverBadgeKey(driver: string): 'dcwDetail.drvBadgeMes' | 'dcwDetail.drvBadgeNoConv' | null {
13
+ if (driver === 'mes-rest') return 'dcwDetail.drvBadgeMes'
14
+ if (driver === 'mock' || driver === 's7-stub') return 'dcwDetail.drvBadgeNoConv'
15
+ return null
16
+ }
package/docs/cli.en.md CHANGED
@@ -167,7 +167,7 @@ are never overwritten:
167
167
  - Precedence (the CLI, the web settings page and the dev/prod launch scripts all share one engine,
168
168
  `shared/config/engine.mjs`):
169
169
  `config.yml defaults < runtime-settings.json runtime overrides < environment variables / explicit CLI flags`.
170
- - There are **115 setting descriptors across 18 groups** (`aw config list` prints exactly 113 rows):
170
+ - There are **116 setting descriptors across 18 groups** (`aw config list` prints exactly 113 rows):
171
171
 
172
172
  | Group | Count | Group | Count | Group | Count | Group | Count |
173
173
  |---|---|---|---|---|---|---|---|
@@ -300,6 +300,8 @@ export default {
300
300
  approvalGate: 'Dual approval for high-risk ops',
301
301
  allowRegistration: 'Open self-service registration',
302
302
  hstsEnabled: 'Send HSTS header',
303
+ recipeDispatchApproval: 'Human approval for recipe dispatch',
304
+ recipeDispatchApprovalDesc: 'When on, recipe_trial/recipe_apply suspend for a human decision before dispatch: approve = execute; deny (with guidance) = agent revises candidates and re-submits',
303
305
  },
304
306
  server: {
305
307
  host: 'Listen address',
@@ -1173,6 +1175,18 @@ export default {
1173
1175
  stepUnset: 'unset',
1174
1176
  recipeStepLimitLabel: 'Recipe per-step limit Δ≤',
1175
1177
  recipeStepLimitPlaceholder: 'Follow node default',
1178
+ drvBadgeMes: 'MES edge',
1179
+ drvBadgeNoConv: 'No protocol conversion',
1180
+ mesTestBtn: 'Test read',
1181
+ mesTesting: 'Reading…',
1182
+ mesNotReady: 'Server endpoint not ready yet',
1183
+ apTitle: 'Setpoint write approvals',
1184
+ apRule: 'Approve = apply now; Reject = agent keeps the current value; Timeout = not approved',
1185
+ apInitiator: 'by',
1186
+ apTimeout: 'to timeout (defaults to reject)',
1187
+ apApprove: 'Approve',
1188
+ apReject: 'Reject',
1189
+ apCommentPh: 'Rejection note (returned verbatim to the agent)',
1176
1190
  },
1177
1191
  teams: {
1178
1192
  selectChannel: 'Select a target channel',
@@ -300,6 +300,8 @@ export default {
300
300
  approvalGate: '高危操作双人复核',
301
301
  allowRegistration: '开放自助注册',
302
302
  hstsEnabled: '下发 HSTS 头',
303
+ recipeDispatchApproval: '配方下发人工审批',
304
+ recipeDispatchApprovalDesc: '开启后 recipe_trial/recipe_apply 下发前挂起等待人工裁决:批准=执行;拒绝可附指导,Agent 按指导修订后重新提交',
303
305
  },
304
306
  server: {
305
307
  host: '监听地址',
@@ -1173,6 +1175,18 @@ export default {
1173
1175
  stepUnset: '未配置',
1174
1176
  recipeStepLimitLabel: 'Recipe 单步上限 Δ≤',
1175
1177
  recipeStepLimitPlaceholder: '跟随节点默认',
1178
+ drvBadgeMes: 'MES 边缘层',
1179
+ drvBadgeNoConv: '无协议转换',
1180
+ mesTestBtn: '试读',
1181
+ mesTesting: '试读中…',
1182
+ mesNotReady: '服务端未就绪',
1183
+ apTitle: '下发参数审批',
1184
+ apRule: '同意=立即执行;拒绝=Agent 按原值继续;超时=默认不同意',
1185
+ apInitiator: '发起',
1186
+ apTimeout: '后超时默认不同意',
1187
+ apApprove: '同意',
1188
+ apReject: '拒绝',
1189
+ apCommentPh: '拒绝意见(逐字回流给 Agent)',
1176
1190
  },
1177
1191
  teams: {
1178
1192
  selectChannel: '选择目标 Channel',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentworkshop",
3
- "version": "0.7.53",
3
+ "version": "0.7.54",
4
4
  "type": "module",
5
5
  "description": "AgentWorkShop \u8f6f\u4ef6\u5f00\u53d1\u7cfb\u7edf - \u57fa\u4e8e Nuxt 4 \u7684\u914d\u7f6e\u9a71\u52a8\u8fd0\u884c\u8303\u5f0f",
6
6
  "license": "PolyForm-Noncommercial-1.0.0",
@@ -377,7 +377,14 @@ async function main() {
377
377
  check('6.3b', 'DCW OPC UA 回读=172.5±1', Number.isFinite(opc2) && Math.abs(opc2 - 172.5) <= 1, `read=${opc2}`)
378
378
 
379
379
  // 6.4 PLC Modbus 写(配方窗内)+ 真闭环 SP→PV 收敛
380
- const wPlc = await api('POST', `/api/workshop/dcw/${plcSp.id}/write`, { body: { value: 182 }, token })
380
+ // 开跑下发配方参数也算一次在线写(60s 节流按节点计);撞锁时等待重试(治理按设计工作)
381
+ let wPlc = await api('POST', `/api/workshop/dcw/${plcSp.id}/write`, { body: { value: 182 }, token })
382
+ for (let i = 0; i < 70 && !(wPlc.code === 0 && wPlc.data?.outcome?.ok === true); i++) {
383
+ const m = String(wPlc.data?.message ?? wPlc.message ?? '').match((/还需 (\d+)s/))
384
+ if (!m || !/在线写入间隔/.test(String(wPlc.data?.message ?? wPlc.message ?? ''))) break
385
+ await sleep(Math.min(65, Number(m[1]) + 1) * 1000)
386
+ wPlc = await api('POST', `/api/workshop/dcw/${plcSp.id}/write`, { body: { value: 182 }, token })
387
+ }
381
388
  check("6.4a", "DCW Modbus 写 SP=182(配方窗内)", wPlc.code === 0 && wPlc.data?.outcome?.ok === true, JSON.stringify(wPlc.data ?? wPlc.message ?? {}).slice(0, 140))
382
389
  const wPlcBad = await api('POST', `/api/workshop/dcw/${plcSp.id}/write`, { body: { value: 195 }, token })
383
390
  check('6.4b', '配方窗联锁负例(195 越窗 → 400)', wPlcBad.status === 400, `status=${wPlcBad.status} msg=${String(wPlcBad.message ?? '').slice(0, 80)}`)
@@ -0,0 +1,24 @@
1
+ /**
2
+ * POST /api/workshop/dcw/mes-test-read —— MES REST 映射试读(body: { driverConfig })。
3
+ * 供驱动表单调试 readMap:用户面鉴权 → 调 mes-rest 驱动 read 原语 →
4
+ * { ok, eng, ts, latencyMs, message }(ts 从驱动消息的 ts=<ISO> 约定中提取;latencyMs 为本次调用墙钟)。
5
+ */
6
+ import { readBody } from 'h3'
7
+ import { resolveUser } from '@/server/api/workshop/caller'
8
+ import { defineApiHandler } from '@/server/utils/response'
9
+ import { mesRestDcwDriver } from '@/server/services/workshop/dcw/drivers/mes-rest'
10
+
11
+ export default defineApiHandler(async (event) => {
12
+ resolveUser(event)
13
+ const body = await readBody<{
14
+ driverConfig?: Record<string, unknown>
15
+ domain?: { min?: number, max?: number }
16
+ }>(event) ?? {}
17
+ const domain = { min: Number(body.domain?.min ?? 0), max: Number(body.domain?.max ?? 100) }
18
+ const t0 = Date.now()
19
+ const r = await mesRestDcwDriver.read!({ domain, driverConfig: body.driverConfig ?? {} })
20
+ const latencyMs = Date.now() - t0
21
+ // 驱动 read 消息约定携带 ts=<ISO>;提取为结构化字段(缺省 null)
22
+ const ts = r.message.match(/ts=([^\s,)]+)/)?.[1] ?? null
23
+ return { ok: r.ok, eng: r.eng, ts, latencyMs, message: r.message }
24
+ })
@@ -55,6 +55,7 @@ import { recoverInterruptedJobs, shutdownOrchestrator } from '../services/worksh
55
55
  import { envStatus, startCreateVenv } from '../services/workshop/aml/env-manager'
56
56
  import { attachOmpPluginBridge } from '../services/workshop/agents/plugin-tools'
57
57
  import { startAmlRetentionTimer, stopAmlRetentionTimer } from '../services/workshop/aml/retention'
58
+ import { configureMesDatasets, defaultDatasetsDir } from '../services/workshop/mes/mes-datasets'
58
59
 
59
60
  declare global {
60
61
 
@@ -149,6 +150,9 @@ export default function workshopPlugin(nitroApp: {
149
150
  recoverInterruptedJobs()
150
151
  startAmlRetentionTimer()
151
152
 
153
+ // MES 数据集服务(新表由 SCHEMA_SQL 启动建出;CSV 落 <configRoot>/datasets/<id>.csv)
154
+ configureMesDatasets(db, defaultDatasetsDir(dataDir))
155
+
152
156
  // 插件 omp 工具注册桥:启动即接管 pending 队列(此前首次 spawn omp agent 才挂桥,
153
157
  // 全新实例未 spawn 前 kb_agent/diag_run 等插件工具会一直"未知工具")
154
158
  attachOmpPluginBridge()
@@ -9,7 +9,7 @@
9
9
  * 该族**不依赖 workspace**,由 dispatch 在 workspace 门控之前分流(保持原分发顺序)。
10
10
  */
11
11
  import type { HostToolResult } from '../types'
12
- import { toolAmlDatasetBuild, toolAmlDatasetStats, toolAmlJobCancel, toolAmlJobLogs, toolAmlJobStatus, toolAmlJobSubmit, toolAmlLeaderboard, toolAmlModelFind, toolAmlModelPromote, toolAmlModelReference, toolAmlNodeCatalog, toolAmlTrainingPlanCreate, toolAmlTrainingPlanList, toolAmlTrainingPlanTrain, toolDaqFrames, toolDaqQuery, toolDcwControl, toolDcwJudge, toolDcwJournal, toolDcwRead, toolDcwRollback, toolLineContext, toolMyIndustrialNodes, toolOpsLog, toolParamControl, toolParamRead, toolRecipeApply, toolRecipeLog, toolRecipeRollback, toolRecipeTrial, toolRecipeUpdate, toolRecipeVersions, toolOptimizationExplore, toolTwinProviderCatalog, toolTwinSceneDiscover, toolTwinSceneCompile, toolTwinSceneFreeze, toolTwinSceneRead, toolTwinPhysicsSpecDraft, toolTwinPhysicsSpecValidate, toolTwinPhysicsSpecCompile, toolTwinSnapshotCreate, toolTwinTrialRun, toolMpcOptimize, toolTwinGateEvaluate, toolTwinBayesOptimize, toolTwinCalibrationRequest } from '../../industrial'
12
+ import { toolAmlDatasetBuild, toolAmlDatasetStats, toolAmlJobCancel, toolAmlJobLogs, toolAmlJobStatus, toolAmlJobSubmit, toolAmlLeaderboard, toolAmlModelFind, toolAmlModelPromote, toolAmlModelReference, toolAmlNodeCatalog, toolAmlTrainingPlanCreate, toolAmlTrainingPlanList, toolAmlTrainingPlanTrain, toolDaqFrames, toolDaqQuery, toolDcwControl, toolDcwJudge, toolDcwJournal, toolDcwRead, toolDcwRollback, toolLineContext, toolMesCatalog, toolMesDatasetRead, toolMesDatasets, toolMesFetch, toolMyIndustrialNodes, toolOpsLog, toolParamControl, toolParamRead, toolRecipeApply, toolRecipeLog, toolRecipeRollback, toolRecipeTrial, toolRecipeUpdate, toolRecipeVersions, toolOptimizationExplore, toolTwinProviderCatalog, toolTwinSceneDiscover, toolTwinSceneCompile, toolTwinSceneFreeze, toolTwinSceneRead, toolTwinPhysicsSpecDraft, toolTwinPhysicsSpecValidate, toolTwinPhysicsSpecCompile, toolTwinSnapshotCreate, toolTwinTrialRun, toolMpcOptimize, toolTwinGateEvaluate, toolTwinBayesOptimize, toolTwinCalibrationRequest } from '../../industrial'
13
13
 
14
14
  type IndustrialToolHandler = (agentId: string, args: Record<string, unknown>, channelId?: string) => Promise<HostToolResult>
15
15
 
@@ -59,9 +59,13 @@ const INDUSTRIAL_HANDLERS = new Map<string, IndustrialToolHandler>([
59
59
  ['line_context', (agentId, args) => toolLineContext(agentId, args as { line_id?: string })],
60
60
  ['recipe_versions', (agentId, args) => toolRecipeVersions(agentId, args as { recipe_id?: string, limit?: number | string })],
61
61
  ['recipe_update', (agentId, args) => toolRecipeUpdate(agentId, args as Parameters<typeof toolRecipeUpdate>[1])],
62
- ['recipe_rollback', (agentId, args) => toolRecipeRollback(agentId, args as Parameters<typeof toolRecipeRollback>[1])],
63
- ['recipe_trial', (agentId, args) => toolRecipeTrial(agentId, args as Parameters<typeof toolRecipeTrial>[1])],
62
+ ['recipe_rollback', (agentId, args) => toolRecipeRollback(agentId, args as Parameters<typeof toolRecipeRollback>[1])],
63
+ ['recipe_trial', (agentId, args) => toolRecipeTrial(agentId, args as Parameters<typeof toolRecipeTrial>[1])],
64
64
  ['recipe_apply', (agentId, args) => toolRecipeApply(agentId, args as Parameters<typeof toolRecipeApply>[1])],
65
+ ['mes_catalog', (agentId, args) => toolMesCatalog(agentId, args as Parameters<typeof toolMesCatalog>[1])],
66
+ ['mes_fetch', (agentId, args) => toolMesFetch(agentId, args as Parameters<typeof toolMesFetch>[1])],
67
+ ['mes_dataset_read', (agentId, args) => toolMesDatasetRead(agentId, args as Parameters<typeof toolMesDatasetRead>[1])],
68
+ ['mes_datasets', (agentId, args) => toolMesDatasets(agentId, args as Parameters<typeof toolMesDatasets>[1])],
65
69
  ])
66
70
 
67
71
  /** 工业工具名集合(与 INDUSTRIAL_HANDLERS 同源;dispatch 据此在 workspace 门控前分流) */
@@ -12,12 +12,14 @@
12
12
  * ops-tools.ts 运维日志与配方变更史(ops_log / recipe_* / line_context)
13
13
  * aml-dataset-tools.ts AML 数据集与节点目录(aml_node_catalog / aml_dataset_*)
14
14
  * aml-job-tools.ts AML 作业与模型(aml_job_* / aml_leaderboard / aml_model_*)
15
+ * mes-tools.ts MES 数据集面(mes_catalog / mes_fetch / mes_dataset_read / mes_datasets)
15
16
  */
16
17
  export { toolMyIndustrialNodes, toolDcwControl, toolDcwRead } from './dcw-tools'
17
18
  export { toolParamControl, toolParamRead } from './param-tools'
18
19
  export { toolDaqQuery, toolDaqFrames } from './daq-tools'
19
20
  export { toolDcwJudge, toolDcwRollback, toolDcwJournal } from './dcw-judge-tools'
20
21
  export { toolOpsLog, toolRecipeLog, toolLineContext, toolRecipeVersions, toolRecipeUpdate, toolRecipeRollback, toolRecipeTrial, toolRecipeApply } from './ops-tools'
22
+ export { toolMesCatalog, toolMesFetch, toolMesDatasetRead, toolMesDatasets } from './mes-tools'
21
23
  export { toolAmlNodeCatalog, toolAmlDatasetBuild, toolAmlDatasetStats } from './aml-dataset-tools'
22
24
  export { toolAmlJobSubmit, toolAmlJobStatus, toolAmlJobLogs, toolAmlJobCancel, toolAmlLeaderboard, toolAmlModelFind, toolAmlModelPromote, toolAmlModelReference, toolAmlTrainingPlanList, toolAmlTrainingPlanTrain, toolAmlTrainingPlanCreate } from './aml-job-tools'
23
25
 
@@ -0,0 +1,135 @@
1
+ /**
2
+ * MES 数据集工具族(mes_catalog / mes_fetch / mes_dataset_read / mes_datasets)。
3
+ *
4
+ * 面向 Agent 的 MES REST 点位只读面:目录检索、历史取数(护栏在 mes-controller 代码级)、
5
+ * CSV 数据集读取与清单。铁律:MES 行级原文不进 prompt —— 所有回包只给统计摘要 + ≤3 行采样;
6
+ * 全量原文只落 <configRoot>/datasets/<id>.csv(见 services/workshop/mes/mes-datasets.ts)。
7
+ * 权限:fetch 按 dcw 绑线过滤(controller 内代码级);数据集读取/清单按
8
+ * 创建者 ∪ 节点绑定 ∪ 可读产线(agentOpsScope 既有路径)过滤。
9
+ */
10
+ import type { MesDatasetRow, MesDatasetRead } from '../../mes/mes-datasets'
11
+ import { getMesDatasets } from '../../mes/mes-datasets'
12
+ import { createMesController } from '../../mes/mes-controller'
13
+ import { agentOpsScope } from './ops-tools'
14
+ import { AppError } from '../../../../utils/errors'
15
+
16
+ /** 控制器单例(护栏依赖真实服务;无状态可安全复用) */
17
+ let controller: ReturnType<typeof createMesController> | null = null
18
+ function mesController(): ReturnType<typeof createMesController> {
19
+ controller ??= createMesController()
20
+ return controller
21
+ }
22
+
23
+ /** 数据集可见性:创建者 ∪ 节点绑定 ∪ 可读产线(节点授权线 ∪ 频道绑定线) */
24
+ function mesDatasetVisible(agentId: string, ds: MesDatasetRow): boolean {
25
+ if (ds.createdBy === agentId) return true
26
+ const scope = agentOpsScope(agentId)
27
+ if (!scope) return false
28
+ if (scope.nodeIds.has(ds.nodeId)) return true
29
+ return !!ds.lineId && (scope.lineIds.includes(ds.lineId) || scope.boundLineIds.includes(ds.lineId))
30
+ }
31
+
32
+ /** 数据集行 → 一行摘要(id | 节点 | 窗口 | 行数 | 状态) */
33
+ function dsLine(ds: MesDatasetRow): string {
34
+ const win = ds.fromTs && ds.toTs ? `${ds.fromTs.slice(5, 16).replace('T', ' ')} ~ ${ds.toTs.slice(5, 16).replace('T', ' ')}` : '当前值'
35
+ let state: string
36
+ if (ds.status === 'ready') state = `就绪(${ds.rows} 行,sha256 ${ds.sha256.slice(0, 8)})`
37
+ else if (ds.status === 'running') state = '取数中'
38
+ else state = `失败(${ds.error.slice(0, 80)})`
39
+ return `- ${ds.id} | ${ds.nodeName || ds.nodeId} | ${win} | ${state}`
40
+ }
41
+
42
+ /** 工具:mes_catalog —— MES REST 点位目录(数据驱动;q 子串/产线过滤;只读,无授权门槛)。
43
+ * 每条含 id/单位/量程/读写/历史能力位,是 mes_fetch 与 mes_dataset_read 的寻址入口。 */
44
+ export async function toolMesCatalog(_agentId: string, args: { q?: string, line_id?: string, limit?: number | string } = {}): Promise<{ text: string, isError?: boolean }> {
45
+ try {
46
+ const r = await mesController().catalog(args)
47
+ return { text: r.text }
48
+ }
49
+ catch (err) {
50
+ return { text: `MES 点位目录查询失败:${err instanceof Error ? err.message : String(err)}(服务未就绪时请稍后重试)。`, isError: true }
51
+ }
52
+ }
53
+
54
+ /** 工具:mes_fetch —— MES 历史取数(护栏代码级:绑线授权/窗口≤7天/行数≤5000/每分钟≤6次)。
55
+ * 三模式:无 from/to=当前值快照;小窗口内联统计;大请求异步落 CSV 数据集(回 job_id/dataset_id,
56
+ * 勿轮询,用 mes_datasets 查状态)。回包只含统计摘要 + ≤3 行采样,MES 原文不进对话。 */
57
+ export async function toolMesFetch(agentId: string, args: { ids?: unknown, from?: string, to?: string, max_rows?: number | string } = {}): Promise<{ text: string, isError?: boolean }> {
58
+ try {
59
+ const r = await mesController().fetch(agentId, args)
60
+ return { text: r.text, isError: r.isError }
61
+ }
62
+ catch (err) {
63
+ return { text: `MES 取数失败:${err instanceof Error ? err.message : String(err)}(驱动离线或点位配置缺失时常见;可先用 mes_catalog 确认点位)。`, isError: true }
64
+ }
65
+ }
66
+
67
+ /** 工具:mes_dataset_read —— 读 CSV 数据集(head=列名+总行数 / stats=统计 / rows=分页)。
68
+ * 权限:创建者或有该节点/产线可见权;回包同样只带 ≤3 行采样(原文不进 prompt)。 */
69
+ export async function toolMesDatasetRead(agentId: string, args: { dataset_id?: string, mode?: string, offset?: number | string } = {}): Promise<{ text: string, isError?: boolean }> {
70
+ const datasetId = String(args.dataset_id ?? '').trim()
71
+ if (!datasetId) return { text: 'dataset_id 必填(mes_fetch 异步回包或 mes_datasets 清单里的 id)。', isError: true }
72
+ const modeArg = String(args.mode ?? 'head').trim()
73
+ const mode = modeArg === 'stats' || modeArg === 'rows' ? modeArg : 'head'
74
+ try {
75
+ const store = getMesDatasets()
76
+ const meta = store.datasetMeta(datasetId)
77
+ if (!meta) return { text: `数据集 ${datasetId} 不存在(用 mes_datasets 列出你可读的数据集)。`, isError: true }
78
+ if (!mesDatasetVisible(agentId, meta)) {
79
+ return { text: `无权读取数据集 ${datasetId}(仅创建者、该节点绑定者或该产线可读者可读)。`, isError: true }
80
+ }
81
+ const r: MesDatasetRead = store.readDataset(datasetId, mode, Number(args.offset) || 0)
82
+ const stateTxt = meta.status === 'ready' ? '' : meta.status === 'running' ? '\n注意:数据集仍在取数中,当前为已写入部分。' : `\n注意:取数已失败:${meta.error.slice(0, 120)}(以下为失败前已写入部分)。`
83
+ if (r.mode === 'stats') {
84
+ const s = r.stats
85
+ const f4 = (v: number | null | undefined): string => v == null || !Number.isFinite(v) ? '-' : String(Number(v.toFixed(4)))
86
+ return {
87
+ text: `数据集 ${datasetId} 统计(${meta.nodeName || meta.nodeId},产线 ${meta.lineId || '未分配'}):\n`
88
+ + ` 数值行数 ${s.count} | 首 ${s.firstTs ?? '-'} ~ 末 ${s.lastTs ?? '-'}\n`
89
+ + ` min ${f4(s.min)} / max ${f4(s.max)} / mean ${f4(s.mean)} / stddev ${f4(s.stddev)}\n`
90
+ + ` 文件 sha256 ${meta.sha256.slice(0, 16)}${stateTxt}`,
91
+ }
92
+ }
93
+ // head / rows:列名+行数+分页游标,采样 ≤3 行(原文不进 prompt)
94
+ let headTxt: string
95
+ let totalRows: number
96
+ let sample: string[]
97
+ if (r.mode === 'head') {
98
+ headTxt = `数据集 ${datasetId} 概览(${meta.nodeName || meta.nodeId},产线 ${meta.lineId || '未分配'}):\n 列名: ${r.head.columns.join(', ')}\n 总行数: ${r.head.totalRows}\n`
99
+ totalRows = r.head.totalRows
100
+ sample = r.head.preview.slice(0, 3).map(row => row.join(','))
101
+ }
102
+ else {
103
+ headTxt = `数据集 ${datasetId} 第 ${r.rowsView.offset} 行起的分页(每页 20 行,共 ${r.rowsView.total} 行;本页 ${r.rowsView.rows.length} 行):\n`
104
+ totalRows = r.rowsView.total
105
+ sample = r.rowsView.rows.slice(0, 3).map(row => row.join(','))
106
+ }
107
+ return {
108
+ text: `${headTxt}采样(≤3 行,ts,value): ${sample.join(' | ') || '(空)'}${totalRows > 3 ? '(其余行不进对话;统计用 mode=stats,分页翻看用 offset)' : ''}${stateTxt}`,
109
+ }
110
+ }
111
+ catch (err) {
112
+ if (err instanceof AppError && err.status === 404) return { text: err.message, isError: true }
113
+ return { text: `数据集读取失败:${err instanceof Error ? err.message : String(err)}`, isError: true }
114
+ }
115
+ }
116
+
117
+ /** 工具:mes_datasets —— 你可见的 CSV 数据集清单(新→旧;创建者/节点绑定/产线可读过滤)。
118
+ * 用于找回 mes_fetch 异步作业的 dataset_id 与确认取数状态(替代轮询 job)。 */
119
+ export async function toolMesDatasets(agentId: string, args: { limit?: number | string } = {}): Promise<{ text: string, isError?: boolean }> {
120
+ try {
121
+ const store = getMesDatasets()
122
+ const limit = Math.min(Math.max(Math.round(Number(args.limit)) || 20, 1), 100)
123
+ const visible = store.listDatasets(100).filter(ds => mesDatasetVisible(agentId, ds)).slice(0, limit)
124
+ if (visible.length === 0) {
125
+ return { text: '你还没有可见的 MES 数据集。用 mes_fetch(带 from/to 与较大 max_rows)创建;或刚创建的作业尚未登记(稍后再查)。' }
126
+ }
127
+ const running = visible.filter(ds => ds.status === 'running').length
128
+ return {
129
+ text: `MES 数据集清单(可见 ${visible.length} 条,新→旧${running > 0 ? `;其中 ${running} 条取数中 —— 勿轮询,未完成先做别的` : ''}):\n${visible.map(dsLine).join('\n')}\n\n说明:读统计用 mes_dataset_read(dataset_id, mode=stats);读分页/概览用 mode=head|rows。`,
130
+ }
131
+ }
132
+ catch (err) {
133
+ return { text: `数据集清单查询失败:${err instanceof Error ? err.message : String(err)}(服务未就绪时请稍后重试)。`, isError: true }
134
+ }
135
+ }
@@ -11,6 +11,7 @@ import { getDcwLineRepo } from '../../dcw/dcw-line.repo'
11
11
  import { getDcwProductRepo } from '../../dcw/dcw-product.repo'
12
12
  import { getDcwRecipeRepo } from '../../dcw/dcw-recipe.repo'
13
13
  import { getOps } from '../../ops/ops'
14
+ import { settingOf } from '../../settings'
14
15
  import { fanoutQuery, windowOf } from './audit-query'
15
16
 
16
17
  // ================================================================
@@ -324,12 +325,18 @@ export async function toolRecipeUpdate(agentId: string, args: {
324
325
  })
325
326
  .map((p) => {
326
327
  const patch = list.find(x => String(x.node_id).trim() === p.nodeId)
327
- if (!patch) return { nodeId: p.nodeId, templateRef: p.templateRef, value: p.value, min: p.min, max: p.max }
328
- const out: { nodeId: string, templateRef?: string, value: number, min?: number, max?: number } = { nodeId: p.nodeId, templateRef: p.templateRef, value: Number(patch.value) }
328
+ // stepLimit 必须随行携带:丢了会被 normParams 视为"参数有变化"(同值也空转增版),
329
+ // 且配方层单步限幅被静默抹掉(退化为参数/节点层默认)——治理数据完整性
330
+ const out: { nodeId: string, templateRef?: string, value: number, min?: number, max?: number, stepLimit?: number } = {
331
+ nodeId: p.nodeId,
332
+ templateRef: p.templateRef,
333
+ value: patch ? Number(patch.value) : p.value,
334
+ }
329
335
  if (p.min != null) out.min = p.min
330
- if (patch.min != null && Number.isFinite(Number(patch.min))) out.min = Number(patch.min)
336
+ if (patch?.min != null && Number.isFinite(Number(patch.min))) out.min = Number(patch.min)
331
337
  if (p.max != null) out.max = p.max
332
- if (patch.max != null && Number.isFinite(Number(patch.max))) out.max = Number(patch.max)
338
+ if (patch?.max != null && Number.isFinite(Number(patch.max))) out.max = Number(patch.max)
339
+ if (p.stepLimit != null) out.stepLimit = p.stepLimit
333
340
  return out
334
341
  })
335
342
  const extra = list.filter(p => !recipe.params.some(x => x.nodeId === String(p.node_id).trim()))
@@ -385,7 +392,7 @@ export async function toolRecipeRollback(agentId: string, args: {
385
392
  }
386
393
  try {
387
394
  if (dispatch) {
388
- const { recipe: updated, run } = await getDcwController().rollbackRecipeAndDispatch(recipeId, {
395
+ const { recipe: updated, run, definitionNoop } = await getDcwController().rollbackRecipeAndDispatch(recipeId, {
389
396
  version: toLastGood ? undefined : version,
390
397
  toLastGood,
391
398
  by: 'agent',
@@ -394,8 +401,11 @@ export async function toolRecipeRollback(agentId: string, args: {
394
401
  description: reason,
395
402
  })
396
403
  const okN = run.results.filter(r => r.ok).length
404
+ const defNote = definitionNoop
405
+ ? `定义已在目标版本 v${updated.version ?? 1}(未生成新版本)`
406
+ : `已生成 v${updated.version ?? 1}`
397
407
  return {
398
- text: `统一回退完成:配方「${updated.name}」已生成 v${updated.version ?? 1},参数恢复为目标版本(${toLastGood ? '已知良好批次冻结' : `v${version}`}),并已整批重下发到 PLC(${okN}/${run.results.length} 参数成功);原因:${reason}。\n用 daq_query 复测确认恢复效果;版本史用 recipe_versions 复核。`,
408
+ text: `统一回退完成:配方「${updated.name}」${defNote},参数恢复为目标版本(${toLastGood ? '已知良好批次冻结' : `v${version}`}),并已整批重下发到 PLC(${okN}/${run.results.length} 参数成功);原因:${reason}。\n用 daq_query 复测确认恢复效果;版本史用 recipe_versions 复核。`,
399
409
  }
400
410
  }
401
411
  const updated = getDcwController().revertRecipe(recipeId, {
@@ -416,6 +426,20 @@ export async function toolRecipeRollback(agentId: string, args: {
416
426
  }
417
427
  }
418
428
 
429
+ /**
430
+ * v19.5 HITL 下发裁决门:security.recipeDispatchApproval 开启时,配方下发动作
431
+ * 不直接执行 —— 挂起等待人工裁决(复用 ToolApprovalService,人类批/拒理由原样回流):
432
+ * 批准 → 按原逻辑执行下发,回执附人工附言;
433
+ * 拒绝(可附指导)→ 工具回包携带人工指导文本,Agent 按指导修订候选后重新提交 ——
434
+ * 即"改好配方交给人类判断是否下发;不下发则人告诉 Agent 怎么修"的真实作业语义。
435
+ * 超时(默认 180s,security.hitl_timeout_ms)自动按拒绝收敛。
436
+ */
437
+ async function hitlDispatchGate(agentId: string, detail: string, title: string): Promise<{ approved: boolean, comment: string }> {
438
+ const { getToolApprovals } = await import('../tool-approvals')
439
+ const decision = await getToolApprovals().request(agentId, 'recipe-dispatch', 'dcw', detail, { title })
440
+ return { approved: decision.approved, comment: decision.comment }
441
+ }
442
+
419
443
  /** 工具:recipe_trial —— 多参数候选整批试验下发(v19 配方链路核心)。
420
444
  * 候选值只覆盖列出节点(**必须是自己绑定的数控节点**);整批一次落产线,**不写配方版本** ——
421
445
  * 复测判读:有进步/达标 → recipe_update 固化(同 id 版本+1);劣化 → recipe_rollback(dispatch=true) 统一回退。
@@ -445,6 +469,26 @@ export async function toolRecipeTrial(agentId: string, args: {
445
469
  }
446
470
  }
447
471
  try {
472
+ // v19.5 HITL 门:开启人工审批时,整批试验前先挂起等人工裁决(拒绝附指导 → 回给 Agent 修订)
473
+ let hitlNote = ''
474
+ if (settingOf('security.recipeDispatchApproval') === true) {
475
+ const gate = await hitlDispatchGate(
476
+ agentId,
477
+ `配方试验候选(整批 ${list.length} 参数):${list.map((p) => {
478
+ const node = getDcwController().byId(p.nodeId)
479
+ const old = recipe.params.find(x => x.nodeId === p.nodeId)?.value
480
+ return `${node?.name ?? p.nodeId} ${old ?? '?'}→${p.value}${node?.unit ?? ''}`
481
+ }).join(';')} | 假设:${hypothesis} | 批准=整批下发试验(不写版本);拒绝可附指导`,
482
+ '配方试验(整批候选)下发审批',
483
+ )
484
+ if (!gate.approved) {
485
+ return {
486
+ text: `人工未批准本次试验下发。人工指导:${gate.comment || '(无附言,仅不同意候选)'}。请按人工指导修订候选参数(必要时先 recipe_update 调整基线),然后重新提交 recipe_trial。`,
487
+ }
488
+ }
489
+ // 人工附言随批准回执回流(Agent 与审计都能看到放行时人的原话)
490
+ if (gate.comment) hitlNote = `\n人工附言:${gate.comment}`
491
+ }
448
492
  const run = await getDcwController().applyRecipe(recipeId, { overrides: list, trial: true })
449
493
  const okN = run.results.filter(r => r.ok).length
450
494
  // 批次级留痕:试验动作入审计(逐参数写已有 write-audit;这里是"一次试验"粒度)
@@ -463,7 +507,7 @@ export async function toolRecipeTrial(agentId: string, args: {
463
507
  return `${node?.name ?? r.templateRef}→${r.value}${node?.unit ?? ''}${r.ok ? '' : ` 被拒${reason}`}`
464
508
  }).join(';')
465
509
  return {
466
- text: `试验已整批下发(${okN}/${run.results.length} 成功,批次 ${run.id.slice(0, 8)}):${changed}。假设:${hypothesis}。注意:本次试验**未写入配方版本** —— 等待工艺惯性后 daq_query 复测判读:有进步/达标 → recipe_update 把候选值固化进配方(同 id 版本+1);无进步/劣化 → recipe_rollback(recipe_id, dispatch=true, reason=…) 统一回退(定义回退+PLC 整批恢复)。`,
510
+ text: `试验已整批下发(${okN}/${run.results.length} 成功,批次 ${run.id.slice(0, 8)}):${changed}。假设:${hypothesis}。${hitlNote}注意:本次试验**未写入配方版本** —— 等待工艺惯性后 daq_query 复测判读:有进步/达标 → recipe_update 把候选值固化进配方(同 id 版本+1);无进步/劣化 → recipe_rollback(recipe_id, dispatch=true, reason=…) 统一回退(定义回退+PLC 整批恢复)。`,
467
511
  }
468
512
  }
469
513
  catch (err) {
@@ -491,8 +535,35 @@ export async function toolRecipeApply(agentId: string, args: {
491
535
  return { text: `无权下发配方 ${recipeId}(需持有该配方至少一个数控节点的授权;找 lead 用 team_grant_nodes 授予)。`, isError: true }
492
536
  }
493
537
  try {
538
+ // v19.5 HITL 门:开启人工审批时,正式下发前先挂起等人工裁决(拒绝附指导 → 回给 Agent 修订)
539
+ let hitlNote = ''
540
+ if (settingOf('security.recipeDispatchApproval') === true) {
541
+ const gate = await hitlDispatchGate(
542
+ agentId,
543
+ `配方正式下发:「${recipe.name}」v${recipe.version ?? 1} 全参数整批(${recipe.params.length} 项):${recipe.params.map((p) => {
544
+ const node = getDcwController().byId(p.nodeId)
545
+ return `${node?.name ?? p.nodeId}=${p.value}${node?.unit ?? ''}`
546
+ }).join(';')} | 批准=整批下发到 PLC;拒绝可附指导`,
547
+ '配方下发审批',
548
+ )
549
+ if (!gate.approved) {
550
+ return {
551
+ text: `人工未批准本次配方下发。人工指导:${gate.comment || '(无附言)'}。请按人工指导修订配方(recipe_update)后重新提交 recipe_apply。`,
552
+ }
553
+ }
554
+ // 人工附言随批准回执回流(与 recipe_trial 同口径)
555
+ if (gate.comment) hitlNote = `\n人工附言:${gate.comment}`
556
+ }
494
557
  const run = await getDcwController().applyRecipe(recipeId)
495
558
  const okN = run.results.filter(r => r.ok).length
559
+ // 逐参数标注:被跳过/失败的参数(节点停用/已删除/限界拒绝)必须透出给 Agent,
560
+ // 否则回包只见 N/N 成功数,无法定位哪些参数未生效(与 recipe_trial 的逐参数渲染同口径)。
561
+ const skipped = run.results.filter(r => !r.ok)
562
+ .map((r) => {
563
+ const node = r.nodeId ? getDcwController().byId(r.nodeId) : undefined
564
+ return `${node?.name ?? r.templateRef ?? r.nodeId ?? '?'}: ${String(r.message).slice(0, 80)}`
565
+ })
566
+ const skippedNote = skipped.length > 0 ? `\n未生效参数(${skipped.length}):\n - ${skipped.join('\n - ')}` : ''
496
567
  try {
497
568
  const { recordOps } = await import('../../ops/ops')
498
569
  recordOps({
@@ -503,7 +574,7 @@ export async function toolRecipeApply(agentId: string, args: {
503
574
  }
504
575
  catch { /* 审计失败不影响下发结果 */ }
505
576
  return {
506
- text: `配方「${recipe.name}」v${recipe.version ?? 1} 已整批下发(${okN}/${run.results.length} 参数成功,批次 ${run.id.slice(0, 8)})。用 daq_query 复测确认工艺响应。`,
577
+ text: `配方「${recipe.name}」v${recipe.version ?? 1} 已整批下发(${okN}/${run.results.length} 参数成功,批次 ${run.id.slice(0, 8)})。${skippedNote}${hitlNote}用 daq_query 复测确认工艺响应。`,
507
578
  }
508
579
  }
509
580
  catch (err) {