agentworkshop 0.7.52 → 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 (1086) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +157 -1
  2. package/.output/.AgentWorkShop/prompts/host-tools.json +157 -1
  3. package/.output/.AgentWorkShop/schema.json +4 -1
  4. package/.output/nitro.json +1 -1
  5. package/.output/public/_nuxt/8oRmGaAV.js +1 -0
  6. package/.output/public/_nuxt/{9zrLAN2o2.js → BJhsCisg2.js} +1 -1
  7. package/.output/public/_nuxt/BOhcoxIu.js +2 -0
  8. package/.output/public/_nuxt/{BdM_Qr752.js → BP8TgWo02.js} +1 -1
  9. package/.output/public/_nuxt/{bg2adfck.js → BPqXOlYX.js} +1 -1
  10. package/.output/public/_nuxt/{Crbir9cT.js → BQOn0q6Y.js} +1 -1
  11. package/.output/public/_nuxt/{BPou3U7b.js → BQy0Yy7S.js} +1 -1
  12. package/.output/public/_nuxt/BTVyPFng2.js +1 -0
  13. package/.output/public/_nuxt/{qOlYoGLf.js → BWowAAJb.js} +1 -1
  14. package/.output/public/_nuxt/{CTvh8v4T.js → BXR3tgEk.js} +1 -1
  15. package/.output/public/_nuxt/{DQMbdg4t.js → BZtgVXC5.js} +1 -1
  16. package/.output/public/_nuxt/BcX4fktE.js +1 -0
  17. package/.output/public/_nuxt/{B_LcD7qE2.js → BdF9OAZq2.js} +1 -1
  18. package/.output/public/_nuxt/{IU-UGkCJ2.js → BhcbvVOa2.js} +1 -1
  19. package/.output/public/_nuxt/{CBDX7p73.js → BjWbbMHs.js} +1 -1
  20. package/.output/public/_nuxt/{mNnuUoSy.js → BkfA3BbD.js} +1 -1
  21. package/.output/public/_nuxt/{YaroNkJZ2.js → BmTzcKJg2.js} +1 -1
  22. package/.output/public/_nuxt/BnoyYd0Z2.js +1 -0
  23. package/.output/public/_nuxt/{Bl5dYv4m.js → BqYO-UfR.js} +1 -1
  24. package/.output/public/_nuxt/Btv3HXrq.js +1 -0
  25. package/.output/public/_nuxt/{BGKUW7ra.js → Btx8wL4-.js} +1 -1
  26. package/.output/public/_nuxt/{CBIoheY42.js → BuXaEtBG2.js} +1 -1
  27. package/.output/public/_nuxt/{BXx9AxdF2.js → BxWvUgMz2.js} +1 -1
  28. package/.output/public/_nuxt/{1g9IT9Qh2.js → BxoaZc_U2.js} +1 -1
  29. package/.output/public/_nuxt/C-LU6xv_.js +1 -0
  30. package/.output/public/_nuxt/{BcQXL8pb.js → C-y_g11k.js} +1 -1
  31. package/.output/public/_nuxt/{Bt2ZL5332.js → C4sQKuhk.js} +1 -1
  32. package/.output/public/_nuxt/C7_F68I7.js +1 -0
  33. package/.output/public/_nuxt/{CkPxL4UX2.js → CBUIODly2.js} +1 -1
  34. package/.output/public/_nuxt/CFjveTJh.js +1 -0
  35. package/.output/public/_nuxt/{BQXCMsXk.js → CMWyj56j.js} +1 -1
  36. package/.output/public/_nuxt/{C4WhK2wq.js → COQM2L1M.js} +1 -1
  37. package/.output/public/_nuxt/{BiUhxH3t2.js → CV61ysvv.js} +1 -1
  38. package/.output/public/_nuxt/Ca3iDJwu2.js +21 -0
  39. package/.output/public/_nuxt/{BiOSWsjD.js → Cg8Pgbeu.js} +1 -1
  40. package/.output/public/_nuxt/{CFQyYMEn2.js → Ch9KdZWb2.js} +1 -1
  41. package/.output/public/_nuxt/{B1RT9NTO2.js → ChN5v-i22.js} +1 -1
  42. package/.output/public/_nuxt/{DefDtlKK.js → Cpm5JYv4.js} +1 -1
  43. package/.output/public/_nuxt/{DsGf2IV82.js → CtXOpljm2.js} +1 -1
  44. package/.output/public/_nuxt/{B9cGf8mg.js → CvGYm7w8.js} +1 -1
  45. package/.output/public/_nuxt/{EhhQmlBV2.js → D2Sm-GTk2.js} +1 -1
  46. package/.output/public/_nuxt/{DCtk3qqr.js → D8xUsQGt.js} +1 -1
  47. package/.output/public/_nuxt/{CQabB0oy.js → D9TpiWjt.js} +1 -1
  48. package/.output/public/_nuxt/DB4ma-iU2.js +1 -0
  49. package/.output/public/_nuxt/{BDmNbZ252.js → DCPhrNWR2.js} +1 -1
  50. package/.output/public/_nuxt/{D_Ce9Fon2.js → DFhyhDGa2.js} +1 -1
  51. package/.output/public/_nuxt/{BE7BrEw6.js → DNZmwhSD.js} +1 -1
  52. package/.output/public/_nuxt/{CMXcOb6W.js → DO9xaI9a.js} +1 -1
  53. package/.output/public/_nuxt/{H2rNs1O82.js → DUribplv2.js} +1 -1
  54. package/.output/public/_nuxt/{B8zP7kaj2.js → DV5joWTn2.js} +1 -1
  55. package/.output/public/_nuxt/{Da90gveK.js → DVOR2pWg.js} +1 -1
  56. package/.output/public/_nuxt/{mgWHSRc8.js → DZDi8inD.js} +1 -1
  57. package/.output/public/_nuxt/DZuXfuXS.js +14 -0
  58. package/.output/public/_nuxt/{Ccps4cxo.js → D_hCLbi9.js} +1 -1
  59. package/.output/public/_nuxt/{B_opxrHJ.js → Db4_F1T2.js} +1 -1
  60. package/.output/public/_nuxt/{xQX5r6tW.js → Dep0Hc9w2.js} +1 -1
  61. package/.output/public/_nuxt/{evt5VGDh.js → DffgG8vT.js} +1 -1
  62. package/.output/public/_nuxt/{Bhe953zV2.js → DioKmYyB2.js} +1 -1
  63. package/.output/public/_nuxt/{D0ldVwl-.js → Dk6Zf3-L.js} +1 -1
  64. package/.output/public/_nuxt/{Dbe9TFc9.js → DlX0nqUe.js} +1 -1
  65. package/.output/public/_nuxt/{Chphw5IA2.js → Dm_iKz8k2.js} +1 -1
  66. package/.output/public/_nuxt/{BVzw5a_0.js → DmzmgYHb2.js} +1 -1
  67. package/.output/public/_nuxt/{NJn94js_.js → DnAn2LgG.js} +1 -1
  68. package/.output/public/_nuxt/DuPM4HXw.js +1 -0
  69. package/.output/public/_nuxt/{DNoEoo8t.js → Dz2SLIde.js} +1 -1
  70. package/.output/public/_nuxt/DzwIZ81f.js +1 -0
  71. package/.output/public/_nuxt/{DD6Z0yPN2.js → MbT4wXb62.js} +1 -1
  72. package/.output/public/_nuxt/{ChGuLxwW2.js → PY2GW_3N2.js} +1 -1
  73. package/.output/public/_nuxt/PluginSlot.CGH0vb95.css +1 -0
  74. package/.output/public/_nuxt/{2_DkYoqD2.js → QHo9mN-M2.js} +1 -1
  75. package/.output/public/_nuxt/{TownView.BvlfuLtP.css → TownView.Xt1yygrh.css} +1 -1
  76. package/.output/public/_nuxt/{ty5W5QwO.js → WmMwIS4y.js} +1 -1
  77. package/.output/public/_nuxt/_id_.DZbVLNnu.css +1 -0
  78. package/.output/public/_nuxt/_wsId_.XjmieZaJ.css +1 -0
  79. package/.output/public/_nuxt/a4X3ARNm2.js +1 -0
  80. package/.output/public/_nuxt/{C00Rd6Cg.js → aV6YPjg02.js} +1 -1
  81. package/.output/public/_nuxt/builds/latest.json +1 -1
  82. package/.output/public/_nuxt/builds/meta/af879435-fc74-4017-ade0-3b92c1ab35bb.json +1 -0
  83. package/.output/public/_nuxt/cY_5jwFz2.js +1 -0
  84. package/.output/public/_nuxt/dVw8IHY62.js +1 -0
  85. package/.output/public/_nuxt/{LwIFGLgF.js → deBcbALe2.js} +1 -1
  86. package/.output/public/_nuxt/{default.CXb_zoN6.css → default.CyLpQD1C.css} +1 -1
  87. package/.output/public/_nuxt/{BzvHUfRR.js → nT-bgxvf.js} +1 -1
  88. package/.output/public/_nuxt/tq3HbWr9.js +1 -0
  89. package/.output/public/_nuxt/{BH3obZJ42.js → uY58gQqR2.js} +1 -1
  90. package/.output/public/_nuxt/{ZuQtOnfI.js → vPfDYgvR.js} +1 -1
  91. package/.output/public/_nuxt/{zsRclU9w2.js → xX7ccjDl2.js} +1 -1
  92. package/.output/public/robots.txt +3 -0
  93. package/.output/server/chunks/_/binding-authz.mjs +1 -1
  94. package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
  95. package/.output/server/chunks/_/entity.mjs +1 -1
  96. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  97. package/.output/server/chunks/_/nitro.mjs +3260 -1505
  98. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  99. package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
  100. package/.output/server/chunks/build/OmpTerminalPanel-mk31gVzA.mjs +1 -1
  101. package/.output/server/chunks/build/{PluginSlot-D2WUZgbp.mjs → PluginSlot-CT4YaNrB.mjs} +5 -5
  102. package/.output/server/chunks/build/{PluginSlot-D2WUZgbp.mjs.map → PluginSlot-CT4YaNrB.mjs.map} +1 -1
  103. package/.output/server/chunks/build/{TownView-fP9BiALv.mjs → TownView-Bf5VFYFj.mjs} +26 -19
  104. package/.output/server/chunks/build/TownView-Bf5VFYFj.mjs.map +1 -0
  105. package/.output/server/chunks/build/{_id_-BUpQSlzo.mjs → _id_-CuUmVPRg.mjs} +200 -86
  106. package/.output/server/chunks/build/_id_-CuUmVPRg.mjs.map +1 -0
  107. package/.output/server/chunks/build/{_id_-CDlur81q.mjs → _id_-WF20tjqT.mjs} +12 -11
  108. package/.output/server/chunks/build/_id_-WF20tjqT.mjs.map +1 -0
  109. package/.output/server/chunks/build/{_wsId_-C4L9fVHC.mjs → _wsId_-BUIKB68b.mjs} +332 -211
  110. package/.output/server/chunks/build/{_wsId_-C4L9fVHC.mjs.map → _wsId_-BUIKB68b.mjs.map} +1 -1
  111. package/.output/server/chunks/build/{agents-ydYu-Ol9.mjs → agents-DqICy4AL.mjs} +8 -7
  112. package/.output/server/chunks/build/agents-DqICy4AL.mjs.map +1 -0
  113. package/.output/server/chunks/build/{aml-DsgtDLWF.mjs → aml-C55iuLn-.mjs} +15 -13
  114. package/.output/server/chunks/build/aml-C55iuLn-.mjs.map +1 -0
  115. package/.output/server/chunks/build/{api-BY6ji7RC.mjs → api-B4Om0mEc.mjs} +4 -3
  116. package/.output/server/chunks/build/api-B4Om0mEc.mjs.map +1 -0
  117. package/.output/server/chunks/build/{apiClient-D281qrK2.mjs → apiClient-BvXtNzC8.mjs} +2 -2
  118. package/.output/server/chunks/build/apiClient-BvXtNzC8.mjs.map +1 -0
  119. package/.output/server/chunks/build/{channel-templates-DP1ndA5K.mjs → channel-templates-gdCLajKy.mjs} +5 -4
  120. package/.output/server/chunks/build/channel-templates-gdCLajKy.mjs.map +1 -0
  121. package/.output/server/chunks/build/constants-HPHJvjne.mjs +2 -1
  122. package/.output/server/chunks/build/constants-HPHJvjne.mjs.map +1 -1
  123. package/.output/server/chunks/build/{daq-N69AOtgw.mjs → daq-D0kLscVr.mjs} +15 -13
  124. package/.output/server/chunks/build/daq-D0kLscVr.mjs.map +1 -0
  125. package/.output/server/chunks/build/{dcw-CN9d3Rs7.mjs → dcw-DuhEyu7S.mjs} +11 -10
  126. package/.output/server/chunks/build/dcw-DuhEyu7S.mjs.map +1 -0
  127. package/.output/server/chunks/build/dcw-driver-badge-Df5wL_ZA.mjs +20 -0
  128. package/.output/server/chunks/build/dcw-driver-badge-Df5wL_ZA.mjs.map +1 -0
  129. package/.output/server/chunks/build/{default-DCf9tn1i.mjs → default-aFGiNebw.mjs} +70 -65
  130. package/.output/server/chunks/build/{default-DCf9tn1i.mjs.map → default-aFGiNebw.mjs.map} +1 -1
  131. package/.output/server/chunks/build/hitl-ePh3G3ue.mjs +132 -0
  132. package/.output/server/chunks/build/hitl-ePh3G3ue.mjs.map +1 -0
  133. package/.output/server/chunks/build/{logs-BcAjU1Ps.mjs → logs-BlOalbsZ.mjs} +11 -9
  134. package/.output/server/chunks/build/logs-BlOalbsZ.mjs.map +1 -0
  135. package/.output/server/chunks/build/monitor-DX_K0WMq.mjs +3 -2
  136. package/.output/server/chunks/build/{operations-OFHYXwh4.mjs → operations-BD6LK-Yz.mjs} +10 -8
  137. package/.output/server/chunks/build/operations-BD6LK-Yz.mjs.map +1 -0
  138. package/.output/server/chunks/build/{pages-BzmrmLL_.mjs → pages-DloBBvU5.mjs} +8 -7
  139. package/.output/server/chunks/build/pages-DloBBvU5.mjs.map +1 -0
  140. package/.output/server/chunks/build/permissions-BvmodvsO.mjs +3 -2
  141. package/.output/server/chunks/build/permissions-BvmodvsO.mjs.map +1 -1
  142. package/.output/server/chunks/build/{plugins-DSka7-vS.mjs → plugins-NAS9MQ5r.mjs} +5 -4
  143. package/.output/server/chunks/build/plugins-NAS9MQ5r.mjs.map +1 -0
  144. package/.output/server/chunks/build/{schedules-BYR-lA1k.mjs → schedules-D8vYHgQ5.mjs} +4 -3
  145. package/.output/server/chunks/build/{schedules-BYR-lA1k.mjs.map → schedules-D8vYHgQ5.mjs.map} +1 -1
  146. package/.output/server/chunks/build/{settings-UyZ78w2e.mjs → settings-B7HA-sdb.mjs} +6 -5
  147. package/.output/server/chunks/build/settings-B7HA-sdb.mjs.map +1 -0
  148. package/.output/server/chunks/build/{teams-D-Y5mzU7.mjs → teams-wM-MdLv9.mjs} +10 -9
  149. package/.output/server/chunks/build/teams-wM-MdLv9.mjs.map +1 -0
  150. package/.output/server/chunks/build/tokens-CloWk4x_.mjs +3 -2
  151. package/.output/server/chunks/build/tokens-CloWk4x_.mjs.map +1 -1
  152. package/.output/server/chunks/build/{town-BMlctE4m.mjs → town-B2gBu_ZE.mjs} +12 -9
  153. package/.output/server/chunks/build/town-B2gBu_ZE.mjs.map +1 -0
  154. package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
  155. package/.output/server/chunks/build/{useAgentHarnessOptions-CRyQYYY0.mjs → useAgentHarnessOptions-BnFCh23W.mjs} +4 -3
  156. package/.output/server/chunks/build/useAgentHarnessOptions-BnFCh23W.mjs.map +1 -0
  157. package/.output/server/chunks/build/{useAgentTemplateActions-CaRsOBmB.mjs → useAgentTemplateActions-DsBRUQni.mjs} +4 -3
  158. package/.output/server/chunks/build/useAgentTemplateActions-DsBRUQni.mjs.map +1 -0
  159. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +2 -1
  160. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs.map +1 -1
  161. package/.output/server/chunks/build/{useAgentTemplateForm-ChiIuPYr.mjs → useAgentTemplateForm-DzQ_t2Ue.mjs} +4 -3
  162. package/.output/server/chunks/build/useAgentTemplateForm-DzQ_t2Ue.mjs.map +1 -0
  163. package/.output/server/chunks/build/{useAgentTemplatesCatalog-Bf5hk6Jf.mjs → useAgentTemplatesCatalog-Q7LgG1Af.mjs} +5 -4
  164. package/.output/server/chunks/build/useAgentTemplatesCatalog-Q7LgG1Af.mjs.map +1 -0
  165. package/.output/server/chunks/build/{useAmlDatasets-BM0lZu40.mjs → useAmlDatasets-DeoE1idn.mjs} +5 -4
  166. package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs.map +1 -0
  167. package/.output/server/chunks/build/{useAmlEntities-BDQ8TmLL.mjs → useAmlEntities-BMLHU_39.mjs} +5 -4
  168. package/.output/server/chunks/build/useAmlEntities-BMLHU_39.mjs.map +1 -0
  169. package/.output/server/chunks/build/{useAmlEnv-DgTVwpqi.mjs → useAmlEnv-DdlyVzPu.mjs} +5 -4
  170. package/.output/server/chunks/build/useAmlEnv-DdlyVzPu.mjs.map +1 -0
  171. package/.output/server/chunks/build/{useAmlExperiments-BtyW32PO.mjs → useAmlExperiments-Dloi834i.mjs} +5 -4
  172. package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs.map +1 -0
  173. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs +2 -1
  174. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs.map +1 -1
  175. package/.output/server/chunks/build/{useAmlJobs-fk-H5Rp5.mjs → useAmlJobs--a_1ovew.mjs} +5 -4
  176. package/.output/server/chunks/build/useAmlJobs--a_1ovew.mjs.map +1 -0
  177. package/.output/server/chunks/build/{useAmlModels-hgyVHoAq.mjs → useAmlModels-D7MuOWOy.mjs} +5 -4
  178. package/.output/server/chunks/build/useAmlModels-D7MuOWOy.mjs.map +1 -0
  179. package/.output/server/chunks/build/{useAmlNotes-BjbYNADm.mjs → useAmlNotes-CTZe-GI0.mjs} +5 -4
  180. package/.output/server/chunks/build/useAmlNotes-CTZe-GI0.mjs.map +1 -0
  181. package/.output/server/chunks/build/{useAmlPredict-U24-SZNA.mjs → useAmlPredict-BToRrVRV.mjs} +5 -4
  182. package/.output/server/chunks/build/useAmlPredict-BToRrVRV.mjs.map +1 -0
  183. package/.output/server/chunks/build/{useDaqAddNode-kW7uTSMQ.mjs → useDaqAddNode-CaOCbe4-.mjs} +6 -5
  184. package/.output/server/chunks/build/useDaqAddNode-CaOCbe4-.mjs.map +1 -0
  185. package/.output/server/chunks/build/{useDaqDetailBinding-cpBz4hSL.mjs → useDaqDetailBinding-C7AbGIdP.mjs} +6 -5
  186. package/.output/server/chunks/build/useDaqDetailBinding-C7AbGIdP.mjs.map +1 -0
  187. package/.output/server/chunks/build/{useDaqDetailFrames-BZGtKKXW.mjs → useDaqDetailFrames-CmAEdbAL.mjs} +5 -4
  188. package/.output/server/chunks/build/useDaqDetailFrames-CmAEdbAL.mjs.map +1 -0
  189. package/.output/server/chunks/build/{useDaqDetailHistory-DtSTfyMi.mjs → useDaqDetailHistory-pfi6zXWU.mjs} +5 -4
  190. package/.output/server/chunks/build/useDaqDetailHistory-pfi6zXWU.mjs.map +1 -0
  191. package/.output/server/chunks/build/{useDaqDetailNode-D_vhG0jF.mjs → useDaqDetailNode-qT7MjqJ7.mjs} +8 -7
  192. package/.output/server/chunks/build/useDaqDetailNode-qT7MjqJ7.mjs.map +1 -0
  193. package/.output/server/chunks/build/{useDaqDetailParams-JfqHvTxr.mjs → useDaqDetailParams-CrTMDs-2.mjs} +6 -5
  194. package/.output/server/chunks/build/useDaqDetailParams-CrTMDs-2.mjs.map +1 -0
  195. package/.output/server/chunks/build/{useDaqFilters-BUQtZ82a.mjs → useDaqFilters-CMysN13f.mjs} +8 -7
  196. package/.output/server/chunks/build/useDaqFilters-CMysN13f.mjs.map +1 -0
  197. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +2 -1
  198. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs.map +1 -1
  199. package/.output/server/chunks/build/{useDaqOptimizations-Ct-TSXxy.mjs → useDaqOptimizations-Coq5lsfM.mjs} +5 -4
  200. package/.output/server/chunks/build/useDaqOptimizations-Coq5lsfM.mjs.map +1 -0
  201. package/.output/server/chunks/build/{useDaqStream-wOxZcMDA.mjs → useDaqStream-DhzdoyIR.mjs} +3 -3
  202. package/.output/server/chunks/build/{useDaqStream-wOxZcMDA.mjs.map → useDaqStream-DhzdoyIR.mjs.map} +1 -1
  203. package/.output/server/chunks/build/{useDaqTemplates-BqQRdrIm.mjs → useDaqTemplates-C7GzQmdJ.mjs} +6 -5
  204. package/.output/server/chunks/build/useDaqTemplates-C7GzQmdJ.mjs.map +1 -0
  205. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs +2 -1
  206. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs.map +1 -1
  207. package/.output/server/chunks/build/{useDashboardData-CNOY4Bi3.mjs → useDashboardData-DgJcGJaF.mjs} +7 -6
  208. package/.output/server/chunks/build/useDashboardData-DgJcGJaF.mjs.map +1 -0
  209. package/.output/server/chunks/build/{useDcwAddNode-C1HDP3yG.mjs → useDcwAddNode-C9DbEKHi.mjs} +38 -5
  210. package/.output/server/chunks/build/useDcwAddNode-C9DbEKHi.mjs.map +1 -0
  211. package/.output/server/chunks/build/{useDcwCards-ETEsHvVy.mjs → useDcwCards-VDoMYG7l.mjs} +5 -4
  212. package/.output/server/chunks/build/useDcwCards-VDoMYG7l.mjs.map +1 -0
  213. package/.output/server/chunks/build/{useDcwDetailScope-QTr1G6Oe.mjs → useDcwDetailScope-CL97tJdJ.mjs} +7 -6
  214. package/.output/server/chunks/build/useDcwDetailScope-CL97tJdJ.mjs.map +1 -0
  215. package/.output/server/chunks/build/{useDcwDetailTemplates-Djt-0Vse.mjs → useDcwDetailTemplates-OLmjMSGD.mjs} +5 -4
  216. package/.output/server/chunks/build/useDcwDetailTemplates-OLmjMSGD.mjs.map +1 -0
  217. package/.output/server/chunks/build/{useDcwFilter-FfVlDdyS.mjs → useDcwFilter-Bs9C6-h_.mjs} +5 -4
  218. package/.output/server/chunks/build/useDcwFilter-Bs9C6-h_.mjs.map +1 -0
  219. package/.output/server/chunks/build/{useDcwLedger-BLoMmcu1.mjs → useDcwLedger-Bbf_iFOY.mjs} +5 -4
  220. package/.output/server/chunks/build/useDcwLedger-Bbf_iFOY.mjs.map +1 -0
  221. package/.output/server/chunks/build/{useDcwLineMutations-BMC5BTWU.mjs → useDcwLineMutations-Bhtuqw7J.mjs} +5 -4
  222. package/.output/server/chunks/build/useDcwLineMutations-Bhtuqw7J.mjs.map +1 -0
  223. package/.output/server/chunks/build/{useDcwLineRun-74gN_s6T.mjs → useDcwLineRun-CGqZSnG4.mjs} +5 -4
  224. package/.output/server/chunks/build/useDcwLineRun-CGqZSnG4.mjs.map +1 -0
  225. package/.output/server/chunks/build/useDcwParamApprovals-BBwdFsKv.mjs +119 -0
  226. package/.output/server/chunks/build/useDcwParamApprovals-BBwdFsKv.mjs.map +1 -0
  227. package/.output/server/chunks/build/{useDcwProducts-D-zrMaeV.mjs → useDcwProducts-BoBkJqpv.mjs} +5 -4
  228. package/.output/server/chunks/build/useDcwProducts-BoBkJqpv.mjs.map +1 -0
  229. package/.output/server/chunks/build/{useDcwQuery-7tX4QYmv.mjs → useDcwQuery-DP7b2qb6.mjs} +5 -4
  230. package/.output/server/chunks/build/useDcwQuery-DP7b2qb6.mjs.map +1 -0
  231. package/.output/server/chunks/build/{useDcwQuickActions-C-tgcXIr.mjs → useDcwQuickActions-DHRiA9KN.mjs} +5 -4
  232. package/.output/server/chunks/build/useDcwQuickActions-DHRiA9KN.mjs.map +1 -0
  233. package/.output/server/chunks/build/{useDcwRecipes-FVk5gDLV.mjs → useDcwRecipes-CIMeH2oF.mjs} +5 -4
  234. package/.output/server/chunks/build/useDcwRecipes-CIMeH2oF.mjs.map +1 -0
  235. package/.output/server/chunks/build/{useDcwStream-D04kCV3J.mjs → useDcwStream-B9ugUWRq.mjs} +10 -3
  236. package/.output/server/chunks/build/{useDcwStream-D04kCV3J.mjs.map → useDcwStream-B9ugUWRq.mjs.map} +1 -1
  237. package/.output/server/chunks/build/{useDcwTemplates-LDZffy4u.mjs → useDcwTemplates-M_-qjV8E.mjs} +5 -4
  238. package/.output/server/chunks/build/useDcwTemplates-M_-qjV8E.mjs.map +1 -0
  239. package/.output/server/chunks/build/{useDcwWrites-B22mwliK.mjs → useDcwWrites-D94dAzqr.mjs} +5 -4
  240. package/.output/server/chunks/build/useDcwWrites-D94dAzqr.mjs.map +1 -0
  241. package/.output/server/chunks/build/{useDeviceTwins-CbVad1M3.mjs → useDeviceTwins-BqwVJaZg.mjs} +2 -2
  242. package/.output/server/chunks/build/{useDeviceTwins-CbVad1M3.mjs.map → useDeviceTwins-BqwVJaZg.mjs.map} +1 -1
  243. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs +2 -1
  244. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs.map +1 -1
  245. package/.output/server/chunks/build/{useLogsManual-COfCyUtj.mjs → useLogsManual-CMjD62nt.mjs} +5 -4
  246. package/.output/server/chunks/build/useLogsManual-CMjD62nt.mjs.map +1 -0
  247. package/.output/server/chunks/build/{useLogsQuery-CRAm2hmS.mjs → useLogsQuery-2x1mKxT1.mjs} +5 -4
  248. package/.output/server/chunks/build/useLogsQuery-2x1mKxT1.mjs.map +1 -0
  249. package/.output/server/chunks/build/{useLogsScope-ClNijVj4.mjs → useLogsScope-04cUJCU-.mjs} +5 -4
  250. package/.output/server/chunks/build/useLogsScope-04cUJCU-.mjs.map +1 -0
  251. package/.output/server/chunks/build/useMonitorColumns-DhYvkLDq.mjs +3 -2
  252. package/.output/server/chunks/build/useMonitorColumns-DhYvkLDq.mjs.map +1 -1
  253. package/.output/server/chunks/build/useMonitorData-guVjMDtR.mjs +3 -2
  254. package/.output/server/chunks/build/useMonitorData-guVjMDtR.mjs.map +1 -1
  255. package/.output/server/chunks/build/useMonitorFormat-C7lhZe4g.mjs +2 -1
  256. package/.output/server/chunks/build/useMonitorFormat-C7lhZe4g.mjs.map +1 -1
  257. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +2 -1
  258. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs.map +1 -1
  259. package/.output/server/chunks/build/{useOperationsFeed-CeXeHqUK.mjs → useOperationsFeed-DsA2ym7M.mjs} +5 -4
  260. package/.output/server/chunks/build/useOperationsFeed-DsA2ym7M.mjs.map +1 -0
  261. package/.output/server/chunks/build/{useOpsLog-CgnNG7_n.mjs → useOpsLog-SnWPuRtK.mjs} +2 -2
  262. package/.output/server/chunks/build/{useOpsLog-CgnNG7_n.mjs.map → useOpsLog-SnWPuRtK.mjs.map} +1 -1
  263. package/.output/server/chunks/build/{useTeamActions-C51ciLb0.mjs → useTeamActions-BOLQkYxg.mjs} +4 -3
  264. package/.output/server/chunks/build/useTeamActions-BOLQkYxg.mjs.map +1 -0
  265. package/.output/server/chunks/build/{useTeamAddMemberDialog-DthpCMP8.mjs → useTeamAddMemberDialog-BCgrLPxI.mjs} +4 -3
  266. package/.output/server/chunks/build/useTeamAddMemberDialog-BCgrLPxI.mjs.map +1 -0
  267. package/.output/server/chunks/build/{useTeamCreateDialog-Dc2KTwyg.mjs → useTeamCreateDialog-CJk40LqS.mjs} +4 -3
  268. package/.output/server/chunks/build/useTeamCreateDialog-CJk40LqS.mjs.map +1 -0
  269. package/.output/server/chunks/build/{useTeamDeployDialog-CXpvPnJD.mjs → useTeamDeployDialog-49hdUXQP.mjs} +4 -3
  270. package/.output/server/chunks/build/useTeamDeployDialog-49hdUXQP.mjs.map +1 -0
  271. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +2 -1
  272. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs.map +1 -1
  273. package/.output/server/chunks/build/{useTeamPluginDialog-DTs-7SSm.mjs → useTeamPluginDialog-Dh-QOoiU.mjs} +4 -3
  274. package/.output/server/chunks/build/useTeamPluginDialog-Dh-QOoiU.mjs.map +1 -0
  275. package/.output/server/chunks/build/{useTeamsCatalog-CcpetYyW.mjs → useTeamsCatalog-HBSyKt5P.mjs} +5 -4
  276. package/.output/server/chunks/build/useTeamsCatalog-HBSyKt5P.mjs.map +1 -0
  277. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +2 -1
  278. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs.map +1 -1
  279. package/.output/server/chunks/build/useTokenCreate-DkYvEQUD.mjs +3 -2
  280. package/.output/server/chunks/build/useTokenCreate-DkYvEQUD.mjs.map +1 -1
  281. package/.output/server/chunks/build/useTokenRename-DOCP4aeI.mjs +3 -2
  282. package/.output/server/chunks/build/useTokenRename-DOCP4aeI.mjs.map +1 -1
  283. package/.output/server/chunks/build/useTokenReveal-CybwwflV.mjs +3 -2
  284. package/.output/server/chunks/build/useTokenReveal-CybwwflV.mjs.map +1 -1
  285. package/.output/server/chunks/build/useTokensList-BLiMvrc4.mjs +3 -2
  286. package/.output/server/chunks/build/useTokensList-BLiMvrc4.mjs.map +1 -1
  287. package/.output/server/chunks/build/useWorkbenchAuth-DqjBX-6w.mjs +3 -2
  288. package/.output/server/chunks/build/useWorkbenchAuth-DqjBX-6w.mjs.map +1 -1
  289. package/.output/server/chunks/build/{useWorkbenchWorkspaces-DgiSCzsX.mjs → useWorkbenchWorkspaces-GQVU9BLv.mjs} +6 -4
  290. package/.output/server/chunks/build/useWorkbenchWorkspaces-GQVU9BLv.mjs.map +1 -0
  291. package/.output/server/chunks/build/{useWorkshopApi-CO3ophqt.mjs → useWorkshopApi-C9sTYu1F.mjs} +10 -2
  292. package/.output/server/chunks/build/useWorkshopApi-C9sTYu1F.mjs.map +1 -0
  293. package/.output/server/chunks/build/{useWorkshopWs-Bm80bLn7.mjs → useWorkshopWs-CgeCsaYJ.mjs} +4 -128
  294. package/.output/server/chunks/build/useWorkshopWs-CgeCsaYJ.mjs.map +1 -0
  295. package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs +3 -2
  296. package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs.map +1 -1
  297. package/.output/server/chunks/build/{useWorkspaceChannels-D61Al2dr.mjs → useWorkspaceChannels-B13vROC1.mjs} +5 -3
  298. package/.output/server/chunks/build/useWorkspaceChannels-B13vROC1.mjs.map +1 -0
  299. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs +2 -1
  300. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs.map +1 -1
  301. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs +2 -1
  302. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs.map +1 -1
  303. package/.output/server/chunks/build/users-CCf5PgRs.mjs +3 -2
  304. package/.output/server/chunks/build/users-CCf5PgRs.mjs.map +1 -1
  305. package/.output/server/chunks/build/{workshop-FQ4YzooB.mjs → workshop-BDqWzJtr.mjs} +6 -4
  306. package/.output/server/chunks/build/workshop-BDqWzJtr.mjs.map +1 -0
  307. package/.output/server/chunks/build/workspaces-CmW0cpOt.mjs +1 -1
  308. package/.output/server/chunks/routes/api/health.get.mjs +2 -1
  309. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  310. package/.output/server/chunks/routes/api/index.get.mjs +3 -2
  311. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  312. package/.output/server/chunks/routes/api/index.post.mjs +16 -4
  313. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  314. package/.output/server/chunks/routes/api/mcp/workshop.mjs +45 -15
  315. package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
  316. package/.output/server/chunks/routes/api/metrics.mjs +4 -1
  317. package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
  318. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +3 -2
  319. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
  320. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +2 -1
  321. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -1
  322. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +2 -1
  323. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs.map +1 -1
  324. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +2 -1
  325. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
  326. package/.output/server/chunks/routes/api/system/backup/list.get.mjs +48 -0
  327. package/.output/server/chunks/routes/api/system/backup/list.get.mjs.map +1 -0
  328. package/.output/server/chunks/routes/api/system/backup/run.post.mjs +36 -0
  329. package/.output/server/chunks/routes/api/system/backup/run.post.mjs.map +1 -0
  330. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +3 -2
  331. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs.map +1 -1
  332. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +3 -2
  333. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs.map +1 -1
  334. package/.output/server/chunks/routes/api/system/config.get.mjs +2 -1
  335. package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
  336. package/.output/server/chunks/routes/api/system/index.get.mjs +3 -2
  337. package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
  338. package/.output/server/chunks/routes/api/system/index.patch.mjs +17 -5
  339. package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
  340. package/.output/server/chunks/routes/api/system/index.post.mjs +3 -2
  341. package/.output/server/chunks/routes/api/system/index.post.mjs.map +1 -1
  342. package/.output/server/chunks/routes/api/system/index2.get.mjs +3 -2
  343. package/.output/server/chunks/routes/api/system/index2.get.mjs.map +1 -1
  344. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +3 -2
  345. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -1
  346. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +3 -2
  347. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/system/monitor.get.mjs +2 -1
  349. package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +3 -2
  351. package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
  352. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +17 -4
  353. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
  354. package/.output/server/chunks/routes/api/system/timezone.get.mjs +3 -2
  355. package/.output/server/chunks/routes/api/system/timezone.get.mjs.map +1 -1
  356. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +16 -4
  357. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  358. package/.output/server/chunks/routes/api/users/_id_.get.mjs +3 -2
  359. package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
  360. package/.output/server/chunks/routes/api/users/_id_.put.mjs +16 -4
  361. package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
  362. package/.output/server/chunks/routes/api/users/index.get.mjs +3 -2
  363. package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
  364. package/.output/server/chunks/routes/api/users/index.post.mjs +3 -2
  365. package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -1
  366. package/.output/server/chunks/routes/api/users/login.post.mjs +5 -3
  367. package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
  368. package/.output/server/chunks/routes/api/users/logout.post.mjs +3 -2
  369. package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
  370. package/.output/server/chunks/routes/api/users/me.get.mjs +3 -2
  371. package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
  372. package/.output/server/chunks/routes/api/users/register.post.mjs +6 -2
  373. package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -1
  374. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +3 -2
  375. package/.output/server/chunks/routes/api/users/setup-status.get.mjs.map +1 -1
  376. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +3 -2
  377. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs.map +1 -1
  378. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +3 -2
  379. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +3 -2
  381. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -1
  382. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +2 -1
  383. package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -1
  384. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +3 -2
  385. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs.map +1 -1
  386. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +21 -16
  387. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs.map +1 -1
  388. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +3 -2
  389. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs.map +1 -1
  390. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +3 -2
  391. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
  392. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +3 -2
  393. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs.map +1 -1
  394. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +3 -2
  395. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
  396. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs +3 -2
  397. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs.map +1 -1
  398. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs +3 -2
  399. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs.map +1 -1
  400. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +3 -2
  401. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -1
  402. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +3 -2
  403. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
  404. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +3 -2
  405. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs.map +1 -1
  406. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +3 -2
  407. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  408. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +3 -2
  409. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs.map +1 -1
  410. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +2 -1
  411. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs.map +1 -1
  412. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +2 -1
  413. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs.map +1 -1
  414. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +3 -2
  415. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -1
  416. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +3 -2
  417. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs.map +1 -1
  418. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +3 -2
  419. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs.map +1 -1
  420. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +3 -2
  421. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs.map +1 -1
  422. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +3 -2
  423. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +1 -1
  424. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +3 -2
  425. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs.map +1 -1
  426. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +3 -2
  427. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs.map +1 -1
  428. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +3 -2
  429. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs.map +1 -1
  430. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +3 -2
  431. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs.map +1 -1
  432. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +3 -2
  433. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs.map +1 -1
  434. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +3 -2
  435. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs.map +1 -1
  436. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +3 -2
  437. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs.map +1 -1
  438. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +2 -1
  439. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs.map +1 -1
  440. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +3 -2
  441. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs.map +1 -1
  442. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +3 -2
  443. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs.map +1 -1
  444. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs +3 -2
  445. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs.map +1 -1
  446. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +3 -2
  447. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs.map +1 -1
  448. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +3 -2
  449. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs.map +1 -1
  450. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +3 -2
  451. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs.map +1 -1
  452. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs +3 -2
  453. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs.map +1 -1
  454. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +3 -2
  455. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs.map +1 -1
  456. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +3 -2
  457. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs.map +1 -1
  458. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +3 -2
  459. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs.map +1 -1
  460. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +3 -2
  461. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs.map +1 -1
  462. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +3 -2
  463. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs.map +1 -1
  464. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +3 -2
  465. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs.map +1 -1
  466. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +3 -2
  467. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs.map +1 -1
  468. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +3 -2
  469. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs.map +1 -1
  470. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +3 -2
  471. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs.map +1 -1
  472. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs +3 -2
  473. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs.map +1 -1
  474. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs +3 -2
  475. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs.map +1 -1
  476. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs +3 -2
  477. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs.map +1 -1
  478. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs +3 -2
  479. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs.map +1 -1
  480. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +3 -2
  481. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs.map +1 -1
  482. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +2 -1
  483. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs.map +1 -1
  484. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +2 -1
  485. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs.map +1 -1
  486. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +3 -2
  487. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs.map +1 -1
  488. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +3 -2
  489. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs.map +1 -1
  490. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +2 -1
  491. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs.map +1 -1
  492. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +3 -2
  493. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs.map +1 -1
  494. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +3 -2
  495. package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
  496. package/.output/server/chunks/routes/api/workshop/caller.mjs +3 -2
  497. package/.output/server/chunks/routes/api/workshop/caller.mjs.map +1 -1
  498. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +10 -4
  499. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
  500. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +2 -1
  501. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs.map +1 -1
  502. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +2 -1
  503. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs.map +1 -1
  504. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +3 -2
  505. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
  506. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +3 -2
  507. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs.map +1 -1
  508. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +3 -2
  509. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs.map +1 -1
  510. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +2 -1
  511. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs.map +1 -1
  512. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +3 -2
  513. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs.map +1 -1
  514. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +2 -1
  515. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs.map +1 -1
  516. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +3 -2
  517. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs.map +1 -1
  518. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +2 -1
  519. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs.map +1 -1
  520. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +2 -1
  521. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs.map +1 -1
  522. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +2 -1
  523. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs.map +1 -1
  524. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +2 -1
  525. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs.map +1 -1
  526. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +2 -1
  527. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs.map +1 -1
  528. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +2 -1
  529. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
  530. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +3 -2
  531. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs.map +1 -1
  532. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +3 -2
  533. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs.map +1 -1
  534. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs +2 -1
  535. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs.map +1 -1
  536. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs +2 -1
  537. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs.map +1 -1
  538. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +3 -2
  539. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs.map +1 -1
  540. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +2 -1
  541. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
  542. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +3 -2
  543. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
  544. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +3 -2
  545. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs.map +1 -1
  546. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +2 -1
  547. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -1
  548. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +3 -2
  549. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs.map +1 -1
  550. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +2 -1
  551. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs.map +1 -1
  552. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +3 -2
  553. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs.map +1 -1
  554. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +3 -2
  555. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
  556. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +3 -2
  557. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs.map +1 -1
  558. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +3 -2
  559. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs.map +1 -1
  560. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs +2 -1
  561. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs.map +1 -1
  562. package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs +38 -0
  563. package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs.map +1 -0
  564. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs +2 -1
  565. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs.map +1 -1
  566. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs +2 -1
  567. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs.map +1 -1
  568. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs +2 -1
  569. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs.map +1 -1
  570. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs +2 -1
  571. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs.map +1 -1
  572. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +2 -1
  573. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs.map +1 -1
  574. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +2 -1
  575. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs.map +1 -1
  576. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +3 -2
  577. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs.map +1 -1
  578. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +3 -2
  579. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs.map +1 -1
  580. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +3 -2
  581. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs.map +1 -1
  582. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +2 -1
  583. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs.map +1 -1
  584. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +3 -2
  585. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
  586. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +3 -2
  587. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
  588. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +2 -1
  589. package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
  590. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +6 -5
  591. package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
  592. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +3 -2
  593. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
  594. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +3 -2
  595. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs.map +1 -1
  596. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +3 -2
  597. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
  598. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +3 -2
  599. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -1
  600. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +3 -2
  601. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
  602. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +3 -2
  603. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs.map +1 -1
  604. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +3 -2
  605. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs.map +1 -1
  606. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +3 -2
  607. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
  608. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +3 -2
  609. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
  610. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +3 -2
  611. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
  612. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +3 -2
  613. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
  614. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +3 -2
  615. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
  616. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +3 -2
  617. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
  618. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +3 -2
  619. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs.map +1 -1
  620. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +3 -2
  621. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
  622. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +3 -2
  623. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
  624. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +3 -2
  625. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
  626. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +3 -2
  627. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
  628. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +3 -2
  629. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs.map +1 -1
  630. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +3 -2
  631. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
  632. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +3 -2
  633. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +1 -1
  634. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +3 -2
  635. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
  636. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +3 -2
  637. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
  638. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +3 -2
  639. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
  640. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +3 -2
  641. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
  642. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +3 -2
  643. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs.map +1 -1
  644. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +3 -2
  645. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
  646. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +3 -2
  647. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
  648. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +3 -2
  649. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
  650. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +3 -2
  651. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
  652. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +3 -2
  653. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
  654. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +3 -2
  655. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
  656. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +3 -2
  657. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
  658. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +3 -2
  659. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
  660. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +3 -2
  661. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
  662. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +3 -2
  663. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs.map +1 -1
  664. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +3 -2
  665. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +1 -1
  666. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +3 -2
  667. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs.map +1 -1
  668. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +8 -2
  669. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
  670. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +3 -2
  671. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
  672. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +3 -2
  673. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
  674. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +3 -2
  675. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs.map +1 -1
  676. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +3 -2
  677. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
  678. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs +36 -0
  679. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs.map +1 -0
  680. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +3 -2
  681. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs.map +1 -1
  682. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +3 -2
  683. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs.map +1 -1
  684. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +3 -2
  685. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
  686. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +3 -2
  687. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
  688. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +3 -2
  689. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -1
  690. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +3 -2
  691. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs.map +1 -1
  692. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +3 -2
  693. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs.map +1 -1
  694. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +3 -2
  695. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs.map +1 -1
  696. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +3 -2
  697. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -1
  698. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +3 -2
  699. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -1
  700. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +3 -2
  701. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs.map +1 -1
  702. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +3 -2
  703. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs.map +1 -1
  704. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +5 -4
  705. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs.map +1 -1
  706. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +3 -2
  707. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs.map +1 -1
  708. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +3 -2
  709. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs.map +1 -1
  710. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +3 -2
  711. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
  712. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +3 -2
  713. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs.map +1 -1
  714. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +3 -2
  715. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
  716. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +3 -2
  717. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
  718. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +3 -2
  719. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs.map +1 -1
  720. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +3 -2
  721. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs.map +1 -1
  722. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +3 -2
  723. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs.map +1 -1
  724. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +3 -2
  725. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
  726. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +3 -2
  727. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs.map +1 -1
  728. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +3 -2
  729. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs.map +1 -1
  730. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +3 -2
  731. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs.map +1 -1
  732. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +3 -2
  733. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -1
  734. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +16 -3
  735. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs.map +1 -1
  736. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +3 -2
  737. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs.map +1 -1
  738. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +3 -2
  739. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -1
  740. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +3 -2
  741. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs.map +1 -1
  742. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +3 -2
  743. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -1
  744. package/.output/server/chunks/routes/api/workshop/index.get.mjs +2 -1
  745. package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
  746. package/.output/server/chunks/routes/api/workshop/index.post.mjs +3 -2
  747. package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
  748. package/.output/server/chunks/routes/api/workshop/index.put.mjs +3 -2
  749. package/.output/server/chunks/routes/api/workshop/index.put.mjs.map +1 -1
  750. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +3 -2
  751. package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
  752. package/.output/server/chunks/routes/api/workshop/index11.get.mjs +2 -1
  753. package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -1
  754. package/.output/server/chunks/routes/api/workshop/index12.get.mjs +2 -1
  755. package/.output/server/chunks/routes/api/workshop/index12.get.mjs.map +1 -1
  756. package/.output/server/chunks/routes/api/workshop/index13.get.mjs +2 -1
  757. package/.output/server/chunks/routes/api/workshop/index13.get.mjs.map +1 -1
  758. package/.output/server/chunks/routes/api/workshop/index14.get.mjs +2 -1
  759. package/.output/server/chunks/routes/api/workshop/index14.get.mjs.map +1 -1
  760. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +3 -2
  761. package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
  762. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +3 -2
  763. package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -1
  764. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +3 -2
  765. package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
  766. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +3 -2
  767. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  768. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +2 -1
  769. package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
  770. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +3 -2
  771. package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
  772. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +3 -2
  773. package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
  774. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +3 -2
  775. package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
  776. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +3 -2
  777. package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
  778. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +3 -2
  779. package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
  780. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +3 -2
  781. package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
  782. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +3 -2
  783. package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
  784. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +3 -2
  785. package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
  786. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +3 -2
  787. package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
  788. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +5 -4
  789. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  790. package/.output/server/chunks/routes/api/workshop/index9.post.mjs +3 -2
  791. package/.output/server/chunks/routes/api/workshop/index9.post.mjs.map +1 -1
  792. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +2 -1
  793. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -1
  794. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +2 -1
  795. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -1
  796. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +2 -1
  797. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs.map +1 -1
  798. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +3 -2
  799. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs.map +1 -1
  800. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +3 -2
  801. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
  802. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +3 -2
  803. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
  804. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +2 -1
  805. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -1
  806. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +2 -1
  807. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs.map +1 -1
  808. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +3 -2
  809. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs.map +1 -1
  810. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +3 -2
  811. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs.map +1 -1
  812. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +2 -1
  813. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs.map +1 -1
  814. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs +2 -1
  815. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs.map +1 -1
  816. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +3 -2
  817. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs.map +1 -1
  818. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs +2 -1
  819. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs.map +1 -1
  820. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs +2 -1
  821. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs.map +1 -1
  822. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +3 -2
  823. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs.map +1 -1
  824. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +3 -2
  825. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs.map +1 -1
  826. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +3 -2
  827. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs.map +1 -1
  828. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +2 -1
  829. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs.map +1 -1
  830. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs +2 -1
  831. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs.map +1 -1
  832. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +3 -2
  833. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs.map +1 -1
  834. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +2 -1
  835. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs.map +1 -1
  836. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs +2 -1
  837. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs.map +1 -1
  838. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +3 -2
  839. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -1
  840. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +2 -1
  841. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs.map +1 -1
  842. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +3 -2
  843. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs.map +1 -1
  844. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +2 -1
  845. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs.map +1 -1
  846. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +3 -2
  847. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs.map +1 -1
  848. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +3 -2
  849. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs.map +1 -1
  850. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +3 -2
  851. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs.map +1 -1
  852. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +2 -1
  853. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs.map +1 -1
  854. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +2 -1
  855. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs.map +1 -1
  856. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +2 -1
  857. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs.map +1 -1
  858. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +3 -2
  859. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs.map +1 -1
  860. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +2 -1
  861. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs.map +1 -1
  862. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +6 -2
  863. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs.map +1 -1
  864. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +4 -3
  865. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs.map +1 -1
  866. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +2 -1
  867. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs.map +1 -1
  868. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +2 -1
  869. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs.map +1 -1
  870. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +2 -1
  871. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -1
  872. package/.output/server/chunks/routes/renderer.mjs +2 -2
  873. package/.output/server/chunks/virtual/entry.mjs +420 -99
  874. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  875. package/.output/server/index.mjs +2 -1
  876. package/.output/server/index.mjs.map +1 -1
  877. package/.output/server/package.json +1 -1
  878. package/README-zh.md +7 -3
  879. package/README.md +11 -5
  880. package/app/components/app-header/HitlBell.vue +9 -9
  881. package/app/components/dcw/DcwAddNodeModal.vue +57 -7
  882. package/app/components/dcw/DcwNodesTable.vue +19 -4
  883. package/app/components/dcw/DcwParamApprovalCard.vue +110 -0
  884. package/app/components/dcw/DcwRecipeEditModal.vue +12 -3
  885. package/app/components/workshop/ChatMemberPanel.vue +39 -38
  886. package/app/components/workshop/ChatTimeline.vue +33 -24
  887. package/app/components/workshop/Composer.vue +7 -7
  888. package/app/components/workshop/NotificationCenter.vue +22 -13
  889. package/app/components/workshop/PluginSlot.vue +1 -1
  890. package/app/components/workshop/TaskInspectorDrawer.vue +5 -5
  891. package/app/components/workshop/blocks/ClusterTool.vue +1 -1
  892. package/app/components/workshop/composer/ComposerToolbar.vue +2 -2
  893. package/app/components/workshop/composer/MentionMenu.vue +1 -1
  894. package/app/components/workshop/composer/ReplyChip.vue +2 -2
  895. package/app/components/workshop/composer/StatusChip.vue +7 -7
  896. package/app/components/workshop/console/LineOperationsPanel.vue +15 -14
  897. package/app/components/workshop/lanes/LaneHeader.vue +5 -3
  898. package/app/components/workshop/session-list/ChannelSettingsModal.vue +43 -1
  899. package/app/components/workshop/town/components/TownAgentBindings.vue +10 -1
  900. package/app/composables/useCodeCopy.ts +16 -2
  901. package/app/composables/workshop/useDcwStream.ts +4 -0
  902. package/app/composables/workshop/useWorkshopApi.ts +7 -0
  903. package/app/pages/dcw/[id].vue +19 -1
  904. package/app/pages/dcw/composables/useDcwAddNode.ts +35 -1
  905. package/app/pages/dcw/composables/useDcwParamApprovals.ts +119 -0
  906. package/app/stores/workshop/notifications.ts +43 -17
  907. package/app/utils/dcw-driver-badge.ts +16 -0
  908. package/docs/cli.en.md +1 -1
  909. package/i18n/dicts/_en.json +1551 -1557
  910. package/i18n/dicts/_en2.json +300 -300
  911. package/i18n/dicts/_en4.json +114 -115
  912. package/i18n/dicts/agentLanesView.json +61 -57
  913. package/i18n/dicts/appHeader.json +17 -7
  914. package/i18n/dicts/channelSessionList.json +51 -48
  915. package/i18n/dicts/chat.json +79 -0
  916. package/i18n/dicts/clusterTool.json +4 -3
  917. package/i18n/dicts/composer.json +38 -38
  918. package/i18n/dicts/dcwDetail.json +219 -209
  919. package/i18n/dicts/lineOps.json +14 -0
  920. package/i18n/dicts/multiChannelView.json +13 -13
  921. package/i18n/dicts/notifications.json +13 -0
  922. package/i18n/dicts/taskInspectorDrawer.json +25 -19
  923. package/i18n/locales/en.ts +166 -8
  924. package/i18n/locales/zh-CN.ts +166 -8
  925. package/package.json +1 -1
  926. package/public/robots.txt +3 -0
  927. package/scripts/_dbg-protocol-matrix.mjs +8 -1
  928. package/server/api/mcp/workshop.ts +8 -1
  929. package/server/api/metrics.ts +4 -1
  930. package/server/api/plugins/[name]/[...path].ts +4 -3
  931. package/server/api/system/backup/list.get.ts +32 -0
  932. package/server/api/system/backup/run.post.ts +21 -0
  933. package/server/api/system/settings/index.patch.ts +12 -2
  934. package/server/api/system/settings/reset.post.ts +11 -2
  935. package/server/api/users/[id].delete.ts +9 -2
  936. package/server/api/users/[id].put.ts +9 -2
  937. package/server/api/users/index.post.ts +9 -2
  938. package/server/api/users/login.post.ts +3 -3
  939. package/server/api/users/register.post.ts +11 -1
  940. package/server/api/workshop/a2a/[agentId]/rpc/index.post.ts +23 -13
  941. package/server/api/workshop/channel-templates/[id]/instantiate.post.ts +6 -0
  942. package/server/api/workshop/channels/[id]/line.put.ts +30 -0
  943. package/server/api/workshop/dcw/line/query.get.ts +6 -0
  944. package/server/api/workshop/dcw/mes-test-read.post.ts +24 -0
  945. package/server/api/workshop/dcw/recipes/[id]/revert.post.ts +3 -2
  946. package/server/api/workshop/fs/dirs.get.ts +19 -1
  947. package/server/api/workshop/ops-logs/index.get.ts +3 -2
  948. package/server/api/workshop/users/register.post.ts +7 -0
  949. package/server/mcp/workshop-server.ts +36 -13
  950. package/server/middleware/00-security-headers.ts +38 -0
  951. package/server/middleware/01-rate-guard.ts +101 -0
  952. package/server/plugins/backup.ts +56 -1
  953. package/server/plugins/workshop.ts +4 -0
  954. package/server/plugins-builtin/diag-bridge/host/plugin.mjs +18 -11
  955. package/server/repositories/user.repository.ts +10 -5
  956. package/server/services/user.service.ts +24 -1
  957. package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +1 -1
  958. package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +7 -1
  959. package/server/services/workshop/agents/industrial/index.ts +3 -1
  960. package/server/services/workshop/agents/industrial/mes-tools.ts +135 -0
  961. package/server/services/workshop/agents/industrial/ops-tools.ts +243 -30
  962. package/server/services/workshop/agents/industrial-context.ts +19 -0
  963. package/server/services/workshop/agents/tool-classes.ts +12 -0
  964. package/server/services/workshop/aml/dataset-builder.ts +4 -2
  965. package/server/services/workshop/aml/job-orchestrator/process.ts +1 -0
  966. package/server/services/workshop/aml/job-orchestrator/shared.ts +2 -0
  967. package/server/services/workshop/aml/job-orchestrator/start-job.ts +5 -2
  968. package/server/services/workshop/db/channel.repo.ts +11 -1
  969. package/server/services/workshop/db/database/migrations.ts +2 -0
  970. package/server/services/workshop/db/database/rows.ts +2 -0
  971. package/server/services/workshop/db/database/schema.ts +32 -0
  972. package/server/services/workshop/db/database/seed.ts +19 -9
  973. package/server/services/workshop/db/schema.sql +32 -0
  974. package/server/services/workshop/dcw/dcw-controller/recipes.ts +66 -7
  975. package/server/services/workshop/dcw/dcw-controller/write.ts +35 -6
  976. package/server/services/workshop/dcw/dcw-recipe.repo.ts +12 -5
  977. package/server/services/workshop/dcw/drivers/mes-rest.ts +543 -0
  978. package/server/services/workshop/dcw/drivers/registry.ts +2 -0
  979. package/server/services/workshop/dcw/drivers/shared.ts +30 -0
  980. package/server/services/workshop/dcw/param-map.repo.ts +3 -0
  981. package/server/services/workshop/mes/mes-controller.ts +410 -0
  982. package/server/services/workshop/mes/mes-datasets.ts +441 -0
  983. package/server/services/workshop/plugins/host/init.mjs +9 -1
  984. package/server/services/workshop/plugins/host/load.mjs +2 -2
  985. package/server/services/workshop/runtime/manager/admin-channel.ts +27 -1
  986. package/server/services/workshop/runtime/manager/channel-templates.ts +5 -4
  987. package/server/services/workshop/runtime/manager/runtime-wiring.ts +17 -1
  988. package/server/services/workshop/runtime/manager/state.ts +11 -0
  989. package/server/services/workshop/runtime/scheduler-loop/tick.ts +5 -1
  990. package/server/services/workshop/runtime/task-engine/helpers.ts +3 -1
  991. package/shared/config/schema.json +4 -1
  992. package/shared/daq-protocol.ts +2 -1
  993. package/shared/dcw-protocol/catalog.ts +25 -1
  994. package/.output/public/_nuxt/4wrEQ3np2.js +0 -21
  995. package/.output/public/_nuxt/B9BmiUil.js +0 -2
  996. package/.output/public/_nuxt/BgEDwFMf.js +0 -1
  997. package/.output/public/_nuxt/C4lagVdN2.js +0 -1
  998. package/.output/public/_nuxt/CGQvF-Gg.js +0 -14
  999. package/.output/public/_nuxt/Cbeifv55.js +0 -1
  1000. package/.output/public/_nuxt/CcGuXiOa.js +0 -1
  1001. package/.output/public/_nuxt/D0SNhlnt.js +0 -1
  1002. package/.output/public/_nuxt/D6lZftfy.js +0 -1
  1003. package/.output/public/_nuxt/DnH9SRMW2.js +0 -1
  1004. package/.output/public/_nuxt/DxagrjB8.js +0 -1
  1005. package/.output/public/_nuxt/ON2x-t6n.js +0 -1
  1006. package/.output/public/_nuxt/PluginSlot.DmjNbrcX.css +0 -1
  1007. package/.output/public/_nuxt/UN3nSFjj2.js +0 -1
  1008. package/.output/public/_nuxt/Z-Z6EhXs.js +0 -1
  1009. package/.output/public/_nuxt/_id_.DamiFT0Q.css +0 -1
  1010. package/.output/public/_nuxt/_wsId_.DkrQkT6r.css +0 -1
  1011. package/.output/public/_nuxt/builds/meta/c64014ca-3595-4b7a-a5ca-055687c83ba2.json +0 -1
  1012. package/.output/public/_nuxt/qPsch_ny2.js +0 -1
  1013. package/.output/server/chunks/build/TownView-fP9BiALv.mjs.map +0 -1
  1014. package/.output/server/chunks/build/_id_-BUpQSlzo.mjs.map +0 -1
  1015. package/.output/server/chunks/build/_id_-CDlur81q.mjs.map +0 -1
  1016. package/.output/server/chunks/build/agents-ydYu-Ol9.mjs.map +0 -1
  1017. package/.output/server/chunks/build/aml-DsgtDLWF.mjs.map +0 -1
  1018. package/.output/server/chunks/build/api-BY6ji7RC.mjs.map +0 -1
  1019. package/.output/server/chunks/build/apiClient-D281qrK2.mjs.map +0 -1
  1020. package/.output/server/chunks/build/channel-templates-DP1ndA5K.mjs.map +0 -1
  1021. package/.output/server/chunks/build/daq-N69AOtgw.mjs.map +0 -1
  1022. package/.output/server/chunks/build/dcw-CN9d3Rs7.mjs.map +0 -1
  1023. package/.output/server/chunks/build/logs-BcAjU1Ps.mjs.map +0 -1
  1024. package/.output/server/chunks/build/operations-OFHYXwh4.mjs.map +0 -1
  1025. package/.output/server/chunks/build/pages-BzmrmLL_.mjs.map +0 -1
  1026. package/.output/server/chunks/build/plugins-DSka7-vS.mjs.map +0 -1
  1027. package/.output/server/chunks/build/settings-UyZ78w2e.mjs.map +0 -1
  1028. package/.output/server/chunks/build/teams-D-Y5mzU7.mjs.map +0 -1
  1029. package/.output/server/chunks/build/town-BMlctE4m.mjs.map +0 -1
  1030. package/.output/server/chunks/build/useAgentHarnessOptions-CRyQYYY0.mjs.map +0 -1
  1031. package/.output/server/chunks/build/useAgentTemplateActions-CaRsOBmB.mjs.map +0 -1
  1032. package/.output/server/chunks/build/useAgentTemplateForm-ChiIuPYr.mjs.map +0 -1
  1033. package/.output/server/chunks/build/useAgentTemplatesCatalog-Bf5hk6Jf.mjs.map +0 -1
  1034. package/.output/server/chunks/build/useAmlDatasets-BM0lZu40.mjs.map +0 -1
  1035. package/.output/server/chunks/build/useAmlEntities-BDQ8TmLL.mjs.map +0 -1
  1036. package/.output/server/chunks/build/useAmlEnv-DgTVwpqi.mjs.map +0 -1
  1037. package/.output/server/chunks/build/useAmlExperiments-BtyW32PO.mjs.map +0 -1
  1038. package/.output/server/chunks/build/useAmlJobs-fk-H5Rp5.mjs.map +0 -1
  1039. package/.output/server/chunks/build/useAmlModels-hgyVHoAq.mjs.map +0 -1
  1040. package/.output/server/chunks/build/useAmlNotes-BjbYNADm.mjs.map +0 -1
  1041. package/.output/server/chunks/build/useAmlPredict-U24-SZNA.mjs.map +0 -1
  1042. package/.output/server/chunks/build/useDaqAddNode-kW7uTSMQ.mjs.map +0 -1
  1043. package/.output/server/chunks/build/useDaqDetailBinding-cpBz4hSL.mjs.map +0 -1
  1044. package/.output/server/chunks/build/useDaqDetailFrames-BZGtKKXW.mjs.map +0 -1
  1045. package/.output/server/chunks/build/useDaqDetailHistory-DtSTfyMi.mjs.map +0 -1
  1046. package/.output/server/chunks/build/useDaqDetailNode-D_vhG0jF.mjs.map +0 -1
  1047. package/.output/server/chunks/build/useDaqDetailParams-JfqHvTxr.mjs.map +0 -1
  1048. package/.output/server/chunks/build/useDaqFilters-BUQtZ82a.mjs.map +0 -1
  1049. package/.output/server/chunks/build/useDaqOptimizations-Ct-TSXxy.mjs.map +0 -1
  1050. package/.output/server/chunks/build/useDaqTemplates-BqQRdrIm.mjs.map +0 -1
  1051. package/.output/server/chunks/build/useDashboardData-CNOY4Bi3.mjs.map +0 -1
  1052. package/.output/server/chunks/build/useDcwAddNode-C1HDP3yG.mjs.map +0 -1
  1053. package/.output/server/chunks/build/useDcwCards-ETEsHvVy.mjs.map +0 -1
  1054. package/.output/server/chunks/build/useDcwDetailScope-QTr1G6Oe.mjs.map +0 -1
  1055. package/.output/server/chunks/build/useDcwDetailTemplates-Djt-0Vse.mjs.map +0 -1
  1056. package/.output/server/chunks/build/useDcwFilter-FfVlDdyS.mjs.map +0 -1
  1057. package/.output/server/chunks/build/useDcwLedger-BLoMmcu1.mjs.map +0 -1
  1058. package/.output/server/chunks/build/useDcwLineMutations-BMC5BTWU.mjs.map +0 -1
  1059. package/.output/server/chunks/build/useDcwLineRun-74gN_s6T.mjs.map +0 -1
  1060. package/.output/server/chunks/build/useDcwProducts-D-zrMaeV.mjs.map +0 -1
  1061. package/.output/server/chunks/build/useDcwQuery-7tX4QYmv.mjs.map +0 -1
  1062. package/.output/server/chunks/build/useDcwQuickActions-C-tgcXIr.mjs.map +0 -1
  1063. package/.output/server/chunks/build/useDcwRecipes-FVk5gDLV.mjs.map +0 -1
  1064. package/.output/server/chunks/build/useDcwTemplates-LDZffy4u.mjs.map +0 -1
  1065. package/.output/server/chunks/build/useDcwWrites-B22mwliK.mjs.map +0 -1
  1066. package/.output/server/chunks/build/useLogsManual-COfCyUtj.mjs.map +0 -1
  1067. package/.output/server/chunks/build/useLogsQuery-CRAm2hmS.mjs.map +0 -1
  1068. package/.output/server/chunks/build/useLogsScope-ClNijVj4.mjs.map +0 -1
  1069. package/.output/server/chunks/build/useOperationsFeed-CeXeHqUK.mjs.map +0 -1
  1070. package/.output/server/chunks/build/useTeamActions-C51ciLb0.mjs.map +0 -1
  1071. package/.output/server/chunks/build/useTeamAddMemberDialog-DthpCMP8.mjs.map +0 -1
  1072. package/.output/server/chunks/build/useTeamCreateDialog-Dc2KTwyg.mjs.map +0 -1
  1073. package/.output/server/chunks/build/useTeamDeployDialog-CXpvPnJD.mjs.map +0 -1
  1074. package/.output/server/chunks/build/useTeamPluginDialog-DTs-7SSm.mjs.map +0 -1
  1075. package/.output/server/chunks/build/useTeamsCatalog-CcpetYyW.mjs.map +0 -1
  1076. package/.output/server/chunks/build/useWorkbenchWorkspaces-DgiSCzsX.mjs.map +0 -1
  1077. package/.output/server/chunks/build/useWorkshopApi-CO3ophqt.mjs.map +0 -1
  1078. package/.output/server/chunks/build/useWorkshopWs-Bm80bLn7.mjs.map +0 -1
  1079. package/.output/server/chunks/build/useWorkspaceChannels-D61Al2dr.mjs.map +0 -1
  1080. package/.output/server/chunks/build/workshop-FQ4YzooB.mjs.map +0 -1
  1081. package/scripts/.chk-tok +0 -1
  1082. package/scripts/.retrain-body.json +0 -1
  1083. package/scripts/.retrain3-body.json +0 -1
  1084. package/scripts/.rt-tok +0 -1
  1085. package/scripts/.rt3-tok +0 -1
  1086. /package/.output/public/_nuxt/{BvRk9kiK2.js → DybRo6-H.js} +0 -0
@@ -24,8 +24,9 @@ import 'zod';
24
24
  import 'node:child_process';
25
25
  import 'node:sqlite';
26
26
  import 'node:module';
27
- import 'node:fs/promises';
27
+ import 'node:dns/promises';
28
28
  import 'node:net';
29
+ import 'node:fs/promises';
29
30
  import 'node:util';
30
31
  import 'node:zlib';
31
32
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentworkshop-prod",
3
- "version": "0.7.52",
3
+ "version": "0.7.54",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "dependencies": {
package/README-zh.md CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  **[English](./README.md)** · **[在线文档](https://kingdol666.github.io/AgentWorkShop)** · **[版本发布](https://github.com/kingdol666/AgentWorkShop/releases)** · **[更新日志](./changelog.md)** · **[插件 API](./docs/plugins.md)** · **[SDK](./docs/sdk.md)**
30
30
 
31
- <sub><b>v0.7.52</b> · 14 个执行引擎 · 6 种现场协议(5 内置 + 串口插件) · 113 个运行时设置项 · 双语文档(简体中文 / English)</sub>
31
+ <sub><b>v0.7.54</b> · 14 个执行引擎 · 6 种现场协议(5 内置 + 串口插件)+ MES REST 集成 · 116 个运行时设置项 · 双语文档(简体中文 / English)</sub>
32
32
 
33
33
  <br />
34
34
 
@@ -165,6 +165,8 @@ AgentWorkShop 起家于**多智能体软件工作坊**——Channel 内的编码
165
165
  | **人工审批的写控** | 数控下发经过「**安全量程 ∩ 活动配方窗口**」联锁 → 可选 **HITL 审批** → PLC 写入 → **回读校验** → 带签名的写历史。 |
166
166
  | **数控读写通道** | 每个控制节点都能沿**写入时所用的同一条标定链路**读回 PLC 当前值:周期读 + 按需读 + Agent 读取,SET 与 ACT 并排呈现——读是被动观测,永不被写联锁阻断。 |
167
167
  | **Recipe 版本化治理** | 参数修改按版本入史(归因 用户/Agent/系统 + 操作者 + 原因)。可非破坏地回退到任意修订版或最近一次良好批次。失效节点参数跳过并明确标识。 |
168
+ | **配方链路优化闭环** | Agent 像人类工艺员一样通过配方管理做优化:`recipe_trial` 把多参数候选**整批试验(不写版本)**→ 复测 → 有进步用 `recipe_update` 固化(同一配方 id,版本+1)→ 劣化触发**统一回退**(`recipe_rollback` 带 `dispatch:true` = 定义回退 + PLC 整批恢复)。单参数直调移出闭环;试验受四层限界与同线节拍卡控。 |
169
+ | **频道绑定产线(只读授权)** | 频道可绑定一条产线:全员无需节点绑定即可读取该线的运维日志、配方历史与实时状态(工具回执标注「频道绑定,只读」),写操作仍需节点授权。产线简报自动注入成员提示词;换绑即时回收成员运行时。 |
168
170
  | **工艺参数语义映射与调控闭环** | Agent 用工程语义思考:`param_control(param, value)` 按**工艺参数**寻址(跨批次/换配方语义稳定),`param_read` 读回 PLC 当前值取证。每次写入被**四层限界**逐层收窄——节点安全量程 ∩ 工艺参数基准限界 ∩ 活动产品限界 ∩ 活动配方工艺窗口——且每次下发自动开一条调控记录,由 `dcw_judge` 落判定(keep / rollback / uncertain),`dcw_rollback` 执行回退。 |
169
171
  | **产线运营** | 产线 → 产品 → 配方 → 批次。配方窗口门控采集并联锁写入;每条样本打标 `product/recipe/run`,实现按批次隔离。 |
170
172
  | **多形态数采帧管线** | 多点轮廓(测厚仪/扫描仪)与 CCD 图像帧流经模板 sink 管线:向量与元数据入 Timescale(`daq_frames`),像素入对象存储(MinIO,不可达时自动降级到本地磁盘);派生指标阈值越限走既有告警链路。 |
@@ -184,7 +186,7 @@ AgentWorkShop 起家于**多智能体软件工作坊**——Channel 内的编码
184
186
  | **运行时可观测** | `GET /api/system/monitor` 把 Agent 团队内部暴露成数字:根队列深度、看门狗介入次数、Harness 会话复用、记忆 outbox 积压——每项都有对应的文档化回退开关,新机制可以不重新部署就关掉。 |
185
187
  | **产线操作单页(`/operations`)** | 一页看全对产线的每一次触碰:实时操作流水(REST 快照 + WS 推流)把写控、数采、建模、配方、回退、报警、产线、人工、系统动作归入**九类分类**,写控行渲染结构化 **前值 → 后值 diff 徽章**(失败标红),并直接从事件流推断**闭环阶段**(监视 → 探索·小步 → 推荐搜索 → 影子验证 → 生产)。同一数据面也供工作台控制台的「产线作业」面板使用。 |
186
188
  | **外部 MCP 网关** | `aw mcp` 启动零依赖的 **stdio MCP 服务**(38 个工具),自动发现运行中的实例(环境变量 → 锁文件 → 配置文件),把产线、配方(含 mark-good)、受治理 DCW 写入、工艺参数语义映射、数采查询、频道、团队供给、模型晋升、判卷/回退与插件管理暴露给任意 MCP 客户端——受 `mcp.enabled` 运行时设置门控,附 `--doctor` 与 `--print-config` 辅助指令。 |
187
- | **全量配置驱动运行时** | 全部运行旋钮(记忆预算、上下文压缩、回退护栏、保留策略、备份、日志级别、系统时区、MCP 开关…)在设置描述符注册表声明一次,优先级 **config.yml < runtime-settings < env**——**113 个设置项、18 组**(34 live / 79 restart),代码零硬编码默认。 |
189
+ | **全量配置驱动运行时** | 全部运行旋钮(记忆预算、上下文压缩、回退护栏、保留策略、备份、日志级别、系统时区、MCP 开关…)在设置描述符注册表声明一次,优先级 **config.yml < runtime-settings < env**——**113 个设置项、18 组**(37 live / 79 restart),代码零硬编码默认。 |
188
190
  | **可配置系统时区** | 一个 `time.timeZone` 设置项(IANA 时区,live 热生效)统一驱动人读时间——日志、聊天、审计、Agent 记录与定时任务;机器时间轴(数采样本、`timestamptz`)仍保存绝对时间。 |
189
191
  | **可配置节拍** | 采样与查询的默认值/下限全部是 **live 设置**(`daq.sampling.*`、`daq.query.*`):热重载、create/patch 时钳制,Agent 工具描述实时携带当前值。 |
190
192
 
@@ -386,7 +388,7 @@ aw update --check # 只报告,不安装
386
388
  npm install -g agentworkshop@latest # 手动等效
387
389
  ```
388
390
 
389
- 版本遵循 semver。每次 `aw start` 都会校验配置根,并把 `home` 之前的旧版 `data/` 布局迁移进来(以最新文件为准),因此数据可以跨版本存活。SQLite schema 迁移在服务端启动时执行。当前版本:**v0.7.52**——见[版本发布](https://github.com/kingdol666/AgentWorkShop/releases)。
391
+ 版本遵循 semver。每次 `aw start` 都会校验配置根,并把 `home` 之前的旧版 `data/` 布局迁移进来(以最新文件为准),因此数据可以跨版本存活。SQLite schema 迁移在服务端启动时执行。当前版本:**v0.7.54**——见[版本发布](https://github.com/kingdol666/AgentWorkShop/releases)。
390
392
 
391
393
  ### 第一次「Agent × 产线」会话(约 2 分钟)
392
394
 
@@ -717,6 +719,8 @@ cd docs/site && npx vitepress build # 生产构建 → .vitepress/dist
717
719
  | 六种现场协议:Modbus TCP · Modbus RTU-over-TCP · OPC UA · MQTT · HTTP + 内置 serial-bridge 串口插件(数采 + 数控双向) | 已交付 |
718
720
  | Harness 可用性探测 + 执行前引擎强校验(UI 禁选 + 409) | 已交付 |
719
721
  | Recipe 归因版本化 + 非破坏回退(界面 + Agent 工具) | 已交付 |
722
+ | 配方链路优化闭环:recipe_trial 整批试验(不写版本)→ 进步才固化 → 统一回退(PLC 整批恢复) | 已交付 |
723
+ | 频道绑定产线:全员只读日志/配方/状态 + 产线简报注入提示词 | 已交付 |
720
724
  | Agent 自查工具:line_context / ops_log / recipe_log / recipe_versions / dcw_journal | 已交付 |
721
725
  | 多 Harness 并行真实产线 live E2E(四引擎、一条产线) | 已交付 |
722
726
  | HITL 审批流经真实 OPC UA 写入验证 | 已交付 |
package/README.md CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  **[简体中文](./README-zh.md)** · **[Documentation](https://kingdol666.github.io/AgentWorkShop)** · **[Releases](https://github.com/kingdol666/AgentWorkShop/releases)** · **[Changelog](./changelog.md)** · **[Plugin API](./docs/plugins.md)** · **[SDK](./docs/sdk.md)**
30
30
 
31
- <sub><b>v0.7.52</b> · 14 engines · 6 field protocols (5 built-in + serial plugin) · 113 runtime settings · bilingual docs (简体中文 / English)</sub>
31
+ <sub><b>v0.7.54</b> · 14 engines · 6 field protocols (5 built-in + serial plugin) + MES REST integration · 116 runtime settings · bilingual docs (简体中文 / English)</sub>
32
32
 
33
33
  <br />
34
34
 
@@ -166,6 +166,8 @@ Recorded against a running instance: real DAQ history, real write control, real
166
166
  | **Human-approved write control** | DCW writes flow through **safe-range ∩ recipe-window** interlock → optional **HITL approval** → PLC write → **readback verification** → signed write history. |
167
167
  | **Read-write DCW channels** | Every control node also **reads its PLC value back** through the same calibration path it writes with: periodic + on-demand + agent reads surface **SET vs ACT** side by side — passive observation, never blocked by write interlocks. |
168
168
  | **Recipe versioning & governance** | Parameter changes are versioned with attribution (user/agent/system + operator + reason). Roll back to any revision or the last-good batch — non-destructively. Stale-node params are skipped and clearly marked. |
169
+ | **Recipe-chain optimization loop** | Agents optimize through recipe management, the way human process engineers do: `recipe_trial` batch-dispatches multi-parameter candidates **without writing a version** → re-measure → progress adopts via `recipe_update` (same recipe id, version +1) → regression triggers a **unified rollback** (`recipe_rollback` with `dispatch: true` = definition revert + batch restore to the PLC). Single-knob direct dispatch is out of the loop; trials run under four-layer bounds and a per-line cadence. |
170
+ | **Channel-bound lines (read-only grant)** | A channel can bind a line: every member reads that line's ops logs, recipe history and live status without any node binding (tool outputs are tagged "channel-bound, read-only"), while writes still require node authorization. The line brief is injected into member prompts; binding changes hot-recycle member runtimes. |
169
171
  | **Semantic parameter mapping & tuning loop** | Agents reason in engineering semantics: `param_control(param, value)` addresses a **process parameter** (stable across batches and recipe swaps) instead of a raw node, and `param_read` reads back the PLC value for evidence. Every write is narrowed by a **four-layer bound** — node safe range ∩ parameter baseline bounds ∩ active product bounds ∩ active recipe window — and each adjustment opens a tuning record that `dcw_judge` must close (keep / rollback / uncertain), with `dcw_rollback` executing the undo. |
170
172
  | **Line operations** | Lines → products → recipes → batch runs. Recipe windows gate acquisition and interlock writes; every sample is tagged `product/recipe/run` for per-batch isolation. |
171
173
  | **Multi-modal DAQ frame pipeline** | Multi-point profiles (thickness/scanner) and CCD image frames flow through template sink pipelines: vectors & metadata into Timescale (`daq_frames`), pixels into object storage (MinIO, auto disk fallback); derived-metric thresholds ride the existing alarm chain. |
@@ -185,7 +187,7 @@ Recorded against a running instance: real DAQ history, real write control, real
185
187
  | **Runtime observability** | `GET /api/system/monitor` exposes the agent-team internals as numbers: root queue depth, watchdog interventions, harness session reuse, pending memory outbox — each guarded by a documented rollback switch, so new machinery can be turned off without a redeploy. |
186
188
  | **Line operations feed (`/operations`)** | One page for every touch on the plant: a live operation feed (REST snapshot + WS stream) classifies writes, DAQ, AML, recipe, rollback, alarm, line, manual and system actions into **nine categories**, renders structured **before → after diff badges** on write rows (failures marked red), and infers the **closed-loop phase** (monitor → exploration · small-step → recommendation search → shadow verification → production) straight from the event stream. The same feed powers a line-operations panel inside the workshop console. |
187
189
  | **External MCP gateway** | `aw mcp` starts a zero-dependency **stdio MCP server** (38 tools) that discovers a running instance automatically (env → lock file → config file) and exposes lines, recipes (incl. mark-good), governed DCW writes, semantic parameter mapping, DAQ queries, channels, team provisioning, model promotion, judge/rollback and plugin management to any MCP client — gated by the `mcp.enabled` runtime setting, with `--doctor` and `--print-config` helpers. |
188
- | **Fully config-driven runtime** | Every runtime knob (memory budgets, compaction, rollback guardrails, retention, backups, log level, system timezone, MCP gate…) is declared once in the settings descriptor registry with precedence **config.yml < runtime-settings < env** — **113 settings across 18 groups** (34 live / 79 restart), no hardcoded defaults in code. |
190
+ | **Fully config-driven runtime** | Every runtime knob (memory budgets, compaction, rollback guardrails, retention, backups, log level, system timezone, MCP gate…) is declared once in the settings descriptor registry with precedence **config.yml < runtime-settings < env** — **116 settings across 18 groups** (37 live / 79 restart), no hardcoded defaults in code. |
189
191
  | **Configurable system timezone** | One `time.timeZone` setting (IANA id, live-applied) drives human-facing timestamps — logs, chat, audit, agent records and schedules — through a single formatter; machine timelines (DAQ samples, `timestamptz`) stay absolute. |
190
192
  | **Configurable cadences** | Sampling and query defaults/floors are **live settings** (`daq.sampling.*`, `daq.query.*`): hot-reloaded, clamped on node create/patch, and agent tool descriptions always carry the current values. |
191
193
 
@@ -254,7 +256,7 @@ page headers stack, dense tables become scrollable ledgers with a pinned identit
254
256
  <td width="50%"><img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/shot-monitor.png" alt="Runtime monitor" width="100%" /><br/><sub><b>Runtime monitor.</b> Every wired channel, member count, dependency cycle and owner.</sub></td>
255
257
  </tr>
256
258
  <tr>
257
- <td><img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/shot-settings.png" alt="Settings" width="100%" /><br/><sub><b>Settings.</b> 113 keys across 18 groups, descriptor-driven — the same registry the CLI reads.</sub></td>
259
+ <td><img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/shot-settings.png" alt="Settings" width="100%" /><br/><sub><b>Settings.</b> 116 keys across 18 groups, descriptor-driven — the same registry the CLI reads.</sub></td>
258
260
  <td><img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/shot-plugins.png" alt="Plugins" width="100%" /><br/><sub><b>Plugins.</b> Three scopes, hot reload on edit, per-team switches.</sub></td>
259
261
  </tr>
260
262
  </table>
@@ -377,7 +379,7 @@ aw update --check # only report; nothing is installed
377
379
  npm install -g agentworkshop@latest # manual equivalent
378
380
  ```
379
381
 
380
- Releases follow semver. `aw start` verifies the config root on every launch and migrates the legacy pre-`home` `data/` layout into it (newest file wins), so data survives upgrades. SQLite schema migrations run server-side at boot. Current version: **v0.7.52** — see [Releases](https://github.com/kingdol666/AgentWorkShop/releases).
382
+ Releases follow semver. `aw start` verifies the config root on every launch and migrates the legacy pre-`home` `data/` layout into it (newest file wins), so data survives upgrades. SQLite schema migrations run server-side at boot. Current version: **v0.7.54** — see [Releases](https://github.com/kingdol666/AgentWorkShop/releases).
381
383
 
382
384
  ### Your first agent × line session (~2 minutes)
383
385
 
@@ -655,7 +657,7 @@ AgentWorkShop/
655
657
  ├── sdk/ # agentworkshop/sdk — plugin context, hook bus, REST client, browser SDK
656
658
  ├── tui/ # terminal workbench (aw tui)
657
659
  ├── shared/
658
- │ └── config/ # schema.json (113 setting descriptors) + engine (merge/validate/persist) + path resolver
660
+ │ └── config/ # schema.json (116 setting descriptors) + engine (merge/validate/persist) + path resolver
659
661
  ├── config.yml # factory defaults (read at build/start; version comes from package.json)
660
662
  ├── .AgentWorkShop/ # config root in a checkout — prompts (versioned) + runtime overrides · data · logs · commands (git-ignored)
661
663
  ├── data/ # legacy pre-migration location (auto-migrated into the config root)
@@ -727,6 +729,10 @@ building, so those files are the single source of truth for the single-page guid
727
729
  | Six field protocols: Modbus TCP · Modbus RTU-over-TCP · OPC UA · MQTT · HTTP + the built-in serial-bridge plugin (acquisition + write control) | Shipped |
728
730
  | Harness availability probing + dispatch-time engine checks (UI disable + 409) | Shipped |
729
731
  | Recipe versioning with attribution + non-destructive rollback (UI + agent tools) | Shipped |
732
+ | Recipe-chain optimization loop: recipe_trial batch trials (no version) → adopt on progress → unified rollback with PLC restore | Shipped |
733
+ | Channel-bound lines: read-only log/recipe/status access for all members, line brief injected into prompts | Shipped |
734
+ | Recipe-chain optimization loop: recipe_trial batch trials (no version) → adopt on progress → unified rollback with PLC restore | Shipped |
735
+ | Channel-bound lines: read-only log/recipe/status access for all members, line brief injected into prompts | Shipped |
730
736
  | Agent self-audit: line_context / ops_log / recipe_log / recipe_versions / dcw_journal | Shipped |
731
737
  | Multi-harness parallel live E2E on a real protocol line (four engines, one line) | Shipped |
732
738
  | HITL approval flow verified over real OPC UA writes | Shipped |
@@ -61,7 +61,7 @@ const {
61
61
  v-if="item.requestType || isQuestion(item)"
62
62
  class="hitl-item-reqtype"
63
63
  :data-type="requestTypeOf(item)"
64
- >{{ isQuestion(item) ? '提问' : '审批' }}</span>
64
+ >{{ isQuestion(item) ? t('appHeader.hitlReqQuestion') : t('appHeader.hitlReqApproval') }}</span>
65
65
  </span>
66
66
  <span class="hitl-item-title">{{ item.title }}</span>
67
67
  <span
@@ -76,7 +76,7 @@ const {
76
76
  v-if="item.policy"
77
77
  class="hitl-item-policy"
78
78
  >
79
- <span class="i-tabler-shield-lock" /> 策略:{{ policyLabel(item) }}
79
+ <span class="i-tabler-shield-lock" /> {{ t('appHeader.hitlPolicy', { p0: policyLabel(item) }) }}
80
80
  </span>
81
81
  </button>
82
82
 
@@ -85,19 +85,19 @@ const {
85
85
  v-if="!HITL_KINDS.includes(item.kind)"
86
86
  class="hitl-answer-note"
87
87
  >
88
- 该类型待办需在对应引擎界面处理
88
+ {{ t('appHeader.hitlEngineNote') }}
89
89
  </div>
90
90
  <div
91
91
  v-else-if="!permsKnown(item)"
92
92
  class="hitl-answer-note"
93
93
  >
94
- 读取审批权限…
94
+ {{ t('appHeader.hitlPermsLoading') }}
95
95
  </div>
96
96
  <div
97
97
  v-else-if="!canAnswer(item)"
98
98
  class="hitl-answer-note"
99
99
  >
100
- 无审批权限{{ item.policy ? `(${policyLabel(item)})` : '' }}
100
+ {{ t('appHeader.hitlNoPerm') }}{{ item.policy ? `(${policyLabel(item)})` : '' }}
101
101
  </div>
102
102
  <div
103
103
  v-else
@@ -142,7 +142,7 @@ const {
142
142
  v-if="!(q.options && q.options.length > 0) || q.freeText"
143
143
  v-model:value="qFree[slotOf(item, q.id)]"
144
144
  :rows="2"
145
- :placeholder="q.options && q.options.length > 0 ? '补充说明(可选)' : '输入答案'"
145
+ :placeholder="q.options && q.options.length > 0 ? t('appHeader.hitlSupplementPlaceholder') : t('appHeader.hitlAnswerPlaceholder')"
146
146
  />
147
147
  </div>
148
148
  <div class="hitl-btns">
@@ -152,14 +152,14 @@ const {
152
152
  :loading="hitl.answering === `${item.kind}:${item.id}`"
153
153
  @click="submitQuestion(item)"
154
154
  >
155
- 提交答案
155
+ {{ t('appHeader.hitlSubmitAnswer') }}
156
156
  </a-button>
157
157
  <a-button
158
158
  size="small"
159
159
  :disabled="hitl.answering === `${item.kind}:${item.id}`"
160
160
  @click="submitCancel(item)"
161
161
  >
162
- 取消请求
162
+ {{ t('appHeader.hitlCancelRequest') }}
163
163
  </a-button>
164
164
  </div>
165
165
  </template>
@@ -202,7 +202,7 @@ const {
202
202
  :disabled="hitl.answering === `${item.kind}:${item.id}`"
203
203
  @click="submitCancel(item)"
204
204
  >
205
- 取消
205
+ {{ t('common.cancel') }}
206
206
  </a-button>
207
207
  </div>
208
208
  </template>
@@ -3,28 +3,32 @@
3
3
  * 添加控制节点向导 —— mock / 真实设备(协议参数 schema 动态表单 + 测试连接 + 数据语义标定)。
4
4
  * 向导各字段由页面 useDcwAddNode 独占持有,经 v-model 就地读写(与原模板写法一致);
5
5
  * 组件只负责呈现,测试/提交回抛页面。
6
+ * mes-rest 驱动额外提供「试读」(读链路验证,POST /dcw/mes-test-read;后端并行上线,404 容错)。
6
7
  */
8
+ import { computed } from 'vue'
7
9
  import type { DcwTemplateDef } from '#shared/dcw-protocol'
8
10
  import type { DaqDriverCatalogEntry, DriverConfigField } from '#shared/daq-protocol'
9
11
 
10
- defineProps<{
12
+ const props = defineProps<{
11
13
  templates: DcwTemplateDef[]
12
14
  driverCatalog: DaqDriverCatalogEntry[]
13
15
  addFields: DriverConfigField[]
14
16
  addTesting: boolean
15
17
  addTest: { ok: boolean, message: string } | null
18
+ addMesTesting: boolean
19
+ addMesResult: { ok: boolean, eng: number | null, ts: string | null, latencyMs: number | null, message: string } | null
16
20
  addSaving: boolean
17
21
  addError: string
18
22
  }>()
19
23
 
20
- const emit = defineEmits<{ test: [], submit: [] }>()
24
+ const emit = defineEmits<{ 'test': [], 'mes-test': [], 'submit': [] }>()
21
25
 
22
26
  const { t } = useI18n()
23
27
 
24
28
  const addOpen = defineModel<boolean>('open', { required: true })
25
29
  const addScenario = defineModel<'mock' | 'real'>('scenario', { required: true })
26
30
  const addTemplate = defineModel<string>('template', { required: true })
27
- const addDriver = defineModel<'mock' | 'modbus-tcp' | 'opcua'>('driver', { required: true })
31
+ const addDriver = defineModel<string>('driver', { required: true })
28
32
  const addName = defineModel<string>('name', { required: true })
29
33
  const addHold = defineModel<number | null>('hold', { required: true })
30
34
  const addRead = defineModel<number | null>('read', { required: true })
@@ -33,6 +37,23 @@ const addStepLimit = defineModel<number | null>('stepLimit', { required: true })
33
37
  const addCfg = defineModel<Record<string, string | number>>('cfg', { required: true })
34
38
  const addTransform = defineModel<{ kind: 'none' | 'linear', scale: number, offset: number }>('transform', { required: true })
35
39
  const addSemantics = defineModel<string>('semantics', { required: true })
40
+
41
+ /** 映射表字段(type='text',如 readMap/writeMap/historyMap 的 JSON 多行输入 → textarea) */
42
+ const isMapField = (f: DriverConfigField): boolean => f.type === 'text'
43
+
44
+ /** 试读是否可用(仅 mes-rest 驱动展示) */
45
+ const isMesRest = computed(() => addDriver.value === 'mes-rest')
46
+
47
+ /** 试读内联结果文案:成功 = eng 值 + 耗时;失败 = 服务端/容错 message */
48
+ const mesResultText = computed(() => {
49
+ const r = props.addMesResult
50
+ if (!r) return ''
51
+ if (r.ok) {
52
+ const eng = r.eng != null ? String(r.eng) : '--'
53
+ return `${eng}${r.latencyMs != null ? ` · ${r.latencyMs}ms` : ''}`
54
+ }
55
+ return r.message
56
+ })
36
57
  </script>
37
58
 
38
59
  <template>
@@ -124,16 +145,16 @@ const addSemantics = defineModel<string>('semantics', { required: true })
124
145
  >
125
146
  </label>
126
147
  <label class="f">
127
- <span>探索阶段单步上限 <em>(工程量)</em></span>
148
+ <span>{{ $t('dcwDetail.stepLimitLabel') }} <em>({{ $t('dcwDetail.stepLimitUnit') }})</em></span>
128
149
  <input
129
150
  v-model.number="addStepLimit"
130
151
  type="number"
131
152
  min="0"
132
153
  step="any"
133
154
  class="inp"
134
- placeholder="留空:按节点量程 2% 默认值"
155
+ :placeholder="$t('dcwDetail.stepLimitPlaceholder')"
135
156
  >
136
- <small class="field-hint">Agent 每次写入的最大变化量;无有限值时探索写入会被拒绝。</small>
157
+ <small class="field-hint">{{ $t('dcwDetail.stepLimitHint') }}</small>
137
158
  </label>
138
159
  </div>
139
160
 
@@ -202,13 +223,21 @@ const addSemantics = defineModel<string>('semantics', { required: true })
202
223
  v-for="f in addFields"
203
224
  :key="f.key"
204
225
  class="f"
226
+ :class="{ 'map-field': isMapField(f) }"
205
227
  >
206
228
  <span>{{ f.label }}<em
207
229
  v-if="f.required"
208
230
  style="color: var(--tone-danger-dot); font-style: normal;"
209
231
  >*</em></span>
232
+ <textarea
233
+ v-if="isMapField(f)"
234
+ v-model="addCfg[f.key]"
235
+ class="inp cfg-map mono"
236
+ rows="6"
237
+ :placeholder="f.placeholder"
238
+ />
210
239
  <select
211
- v-if="f.type === 'select'"
240
+ v-else-if="f.type === 'select'"
212
241
  v-model="addCfg[f.key]"
213
242
  class="inp"
214
243
  >
@@ -247,6 +276,24 @@ const addSemantics = defineModel<string>('semantics', { required: true })
247
276
  :class="addTest.ok ? 'good' : 'bad'"
248
277
  >{{ addTest.ok ? '✓' : '✗' }} {{ addTest.message }}</span>
249
278
  </div>
279
+ <!-- mes-rest 读链路试读(独立于写链路「测试连接」;后端端点并行上线,404 显示未就绪) -->
280
+ <div
281
+ v-if="isMesRest"
282
+ class="test-row"
283
+ >
284
+ <button
285
+ class="mini-btn"
286
+ :disabled="addMesTesting"
287
+ @click="emit('mes-test')"
288
+ >
289
+ {{ addMesTesting ? $t('dcwDetail.mesTesting') : $t('dcwDetail.mesTestBtn') }}
290
+ </button>
291
+ <span
292
+ v-if="addMesResult"
293
+ class="test-result"
294
+ :class="addMesResult.ok ? 'good' : 'bad'"
295
+ >{{ addMesResult.ok ? '✓' : '✗' }} {{ mesResultText }}</span>
296
+ </div>
250
297
  </template>
251
298
 
252
299
  <label class="f">
@@ -302,6 +349,9 @@ const addSemantics = defineModel<string>('semantics', { required: true })
302
349
  .seg.on { font-weight: 600; color: var(--on-accent); background: var(--accent); border-color: var(--accent); }
303
350
  .f-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
304
351
  .driver-form { grid-template-columns: repeat(3, 1fr); }
352
+ /* 映射表字段(readMap/writeMap/historyMap 的 JSON 多行输入):整行铺满 + 等宽字体 */
353
+ .driver-form .map-field { grid-column: 1 / -1; }
354
+ .cfg-map { font-family: var(--font-mono); font-size: 11.5px; line-height: 1.5; resize: vertical; }
305
355
 
306
356
  .field-hint { font-size: 10px; color: var(--ink-faint); line-height: 1.35; }
307
357
  .f { display: flex; flex-direction: column; gap: 4px; font-size: 11.5px; color: var(--ink-faint); }
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import type { DcwNodeView } from '#shared/dcw-protocol'
7
7
  import { reactive } from 'vue'
8
+ import { dcwDriverBadgeKey } from '~/utils/dcw-driver-badge'
8
9
 
9
10
  defineProps<{
10
11
  lineNodes: DcwNodeView[]
@@ -27,6 +28,14 @@ const emit = defineEmits<{
27
28
  'remove': [nodeId: string]
28
29
  }>()
29
30
 
31
+ const { t } = useI18n()
32
+
33
+ /** 边缘层徽标文案(mes-rest=「MES 边缘层」;mock/s7-stub=「无协议转换」;真实协议自明不加) */
34
+ function drvBadge(driver: string): string {
35
+ const key = dcwDriverBadgeKey(driver)
36
+ return key ? t(key) : ''
37
+ }
38
+
30
39
  /** 直写输入框逐节点暂存(与页面 useDcwWrites 的 setInputs 同一个对象) */
31
40
  const setInputs = defineModel<Record<string, number | ''>>('setInputs', { required: true })
32
41
  const stepDrafts = reactive<Record<string, number | '' | null>>({})
@@ -54,7 +63,7 @@ function saveStep(n: DcwNodeView): void {
54
63
  <th>{{ $t('dcwDetail.k1dexou6058') }}</th>
55
64
  <th>{{ $t('dcwDetail.k1b1nnaa059') }}</th>
56
65
  <th>{{ $t('dcwDetail.k1i8rtqt060') }}</th>
57
- <th>探索步长</th>
66
+ <th>{{ $t('dcwDetail.thStepLimit') }}</th>
58
67
  <th class="right">
59
68
  {{ $t('dcwDetail.k40aa6061') }}
60
69
  </th>
@@ -69,6 +78,10 @@ function saveStep(n: DcwNodeView): void {
69
78
  <td>
70
79
  <span class="mono dim">{{ n.id.slice(0, 8) }}</span>
71
80
  <b>{{ n.name }}</b>
81
+ <span
82
+ v-if="drvBadge(n.driver)"
83
+ class="drv-badge"
84
+ >{{ drvBadge(n.driver) }}</span>
72
85
  <small class="mono ch">{{ dcwTemplateRefCh(n.templateRef) }}</small>
73
86
  </td>
74
87
  <td>
@@ -168,7 +181,7 @@ function saveStep(n: DcwNodeView): void {
168
181
  step="any"
169
182
  class="inp step-inp mono"
170
183
  placeholder="2% default"
171
- title="在线控制单步最大变化量;留空将关闭探索写入"
184
+ :title="$t('dcwDetail.stepInputTitle')"
172
185
  @input="stepDrafts[n.id] = ($event.target as HTMLInputElement).value === '' ? '' : Number(($event.target as HTMLInputElement).value)"
173
186
  >
174
187
  <button
@@ -176,10 +189,10 @@ function saveStep(n: DcwNodeView): void {
176
189
  :disabled="stepPatchingId === n.id"
177
190
  @click="saveStep(n)"
178
191
  >
179
- {{ stepPatchingId === n.id ? '…' : '保存' }}
192
+ {{ stepPatchingId === n.id ? '…' : $t('common.save') }}
180
193
  </button>
181
194
  </div>
182
- <small class="dim">当前 Δ≤{{ n.stepLimit ?? '未配置' }} {{ n.unit }}</small>
195
+ <small class="dim">{{ $t('dcwDetail.stepCurrent', { p0: n.stepLimit ?? $t('dcwDetail.stepUnset') }) }} {{ n.unit }}</small>
183
196
  </td>
184
197
  <td class="right">
185
198
  <button
@@ -222,6 +235,8 @@ function saveStep(n: DcwNodeView): void {
222
235
  .nodes-table th { font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-faint); border-bottom: 1px solid var(--line-strong); }
223
236
  .nodes-table td b { margin-left: 8px; }
224
237
  .ch { display: block; margin-top: 2px; font-size: 11.5px; color: var(--ink-faint); }
238
+ /* 边缘层徽标(仅 mes-rest/mock/s7-stub;极简单行小 pill,协议名自明者不加) */
239
+ .drv-badge { display: inline-block; margin-left: 7px; padding: 1px 7px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.03em; color: var(--ink-faint); border: 1px solid var(--line-strong); border-radius: 4px; vertical-align: 1px; }
225
240
  .right { text-align: right; }
226
241
  .val { font-size: 13px; }
227
242
  .val small { margin-left: 3px; color: var(--ink-faint); }
@@ -0,0 +1,110 @@
1
+ <script setup lang="ts">
2
+ /**
3
+ * HITL 下发参数审批卡(产线详情页)—— 本产线控制节点的 Agent 写入待批项。
4
+ * 数据与裁决由页面 useDcwParamApprovals 独占持有(经 props/emit 回抛,与节点表同模式);
5
+ * 空态由页面 v-if 收敛(整卡不渲染,避免噪音)。三态语义:同意=立即执行;
6
+ * 拒绝=Agent 按原值继续(意见逐字回流);超时=默认不同意(卡头小字常驻)。
7
+ */
8
+ import type { DcwApprovalRow } from '../../pages/dcw/composables/useDcwParamApprovals'
9
+
10
+ defineProps<{
11
+ items: DcwApprovalRow[]
12
+ decidingId: string
13
+ remainingSec: (a: DcwApprovalRow) => number
14
+ agentName: (a: DcwApprovalRow) => string
15
+ nodeName: (a: DcwApprovalRow) => string
16
+ }>()
17
+
18
+ const emit = defineEmits<{ decide: [id: string, approved: boolean] }>()
19
+
20
+ const comments = defineModel<Record<string, string>>('comments', { required: true })
21
+ </script>
22
+
23
+ <template>
24
+ <section class="aw-tile ap-card">
25
+ <div class="ap-head">
26
+ <b>{{ $t('dcwDetail.apTitle') }}</b>
27
+ <span class="ap-count mono">{{ items.length }}</span>
28
+ <small class="ap-rule">{{ $t('dcwDetail.apRule') }}</small>
29
+ </div>
30
+ <div
31
+ v-for="ap in items"
32
+ :key="ap.id"
33
+ class="ap-row"
34
+ >
35
+ <div class="ap-main">
36
+ <div class="ap-line">
37
+ <span class="ap-node">{{ nodeName(ap) }}</span>
38
+ <span class="ap-detail">{{ ap.detail }}</span>
39
+ </div>
40
+ <small class="ap-meta">
41
+ <span class="mono">{{ $t('dcwDetail.apInitiator') }} {{ agentName(ap) }}</span>
42
+ <span
43
+ class="ap-ttl mono"
44
+ :class="{ urgent: remainingSec(ap) <= 30 }"
45
+ >⏱ {{ remainingSec(ap) }}s {{ $t('dcwDetail.apTimeout') }}</span>
46
+ </small>
47
+ </div>
48
+ <input
49
+ v-model="comments[ap.id]"
50
+ class="inp ap-comment"
51
+ :placeholder="$t('dcwDetail.apCommentPh')"
52
+ >
53
+ <div class="ap-actions">
54
+ <button
55
+ class="mini-btn ap-ok"
56
+ :disabled="decidingId === ap.id"
57
+ @click="emit('decide', ap.id, true)"
58
+ >
59
+ {{ $t('dcwDetail.apApprove') }}
60
+ </button>
61
+ <button
62
+ class="mini-btn danger"
63
+ :disabled="decidingId === ap.id"
64
+ @click="emit('decide', ap.id, false)"
65
+ >
66
+ {{ $t('dcwDetail.apReject') }}
67
+ </button>
68
+ </div>
69
+ </div>
70
+ </section>
71
+ </template>
72
+
73
+ <style scoped>
74
+ /* 共享工具类随标记搬入本组件:scoped 的 data-v 归属不跨组件,
75
+ 凡在多组件出现的规则(.mono/.dim/.inp/.mini-btn/... 等)在此各持一份逐字相同的副本。 */
76
+
77
+ .mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
78
+
79
+ .ap-card { padding: 12px 18px; margin-bottom: 14px; border-color: color-mix(in srgb, var(--tone-warning-dot) 35%, transparent); }
80
+ .ap-head { display: flex; gap: 8px; align-items: baseline; }
81
+ .ap-head b { font-size: 13.5px; }
82
+ .ap-count { padding: 0 7px; font-size: 11.5px; color: var(--tone-warning-dot); border: 1px solid var(--tone-warning-dot); border-radius: 4px; }
83
+ .ap-rule { margin-left: auto; font-size: 10.5px; color: var(--ink-faint); }
84
+
85
+ .ap-row { display: flex; gap: 10px; align-items: center; padding: 9px 0; border-top: 1px solid var(--divider-hair); }
86
+ .ap-row:first-of-type { border-top: 0; margin-top: 8px; }
87
+ .ap-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
88
+ .ap-line { display: flex; gap: 8px; align-items: baseline; min-width: 0; flex-wrap: wrap; }
89
+ .ap-node { font-weight: 600; font-size: 12.5px; }
90
+ .ap-detail { font-size: 12px; color: var(--ink-soft); overflow-wrap: anywhere; }
91
+ .ap-meta { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-size: 11px; color: var(--ink-faint); }
92
+ .ap-ttl { color: var(--tone-warning-dot); }
93
+ .ap-ttl.urgent { color: var(--tone-danger-dot); }
94
+ .ap-comment { flex: none; width: 240px; padding: 5px 9px; font-size: 12px; }
95
+ .ap-actions { display: flex; flex: none; gap: 6px; }
96
+ .ap-ok { color: var(--tone-success-dot); }
97
+
98
+ @media (max-width: 900px) {
99
+ /* ══ 窄屏自适应层(≤900 手持/平板竖):审批行落成一列,触摸目标 ≥40px ══ */
100
+ .ap-card { padding: 12px; }
101
+ .ap-rule { margin-left: 0; }
102
+ .ap-row { flex-wrap: wrap; }
103
+ .ap-comment { flex: 1 1 100%; width: auto; }
104
+ .ap-actions { margin-left: auto; }
105
+ .mini-btn,
106
+ .inp {
107
+ min-height: 40px;
108
+ }
109
+ }
110
+ </style>
@@ -8,6 +8,7 @@ import type { DaqNodeLive } from '@/app/composables/workshop/useDaqStream'
8
8
  import type { DcwRecipeForm } from '../../pages/dcw/composables/useDcwRecipes'
9
9
  import type { StaleRef } from '../../pages/dcw/composables/useDcwDetailScope'
10
10
  import { emptyRecipeDaqWindowRow, emptyRecipeParamRow } from '~/utils/dcw-recipe-form'
11
+ import { dcwDriverBadgeKey } from '~/utils/dcw-driver-badge'
11
12
 
12
13
  defineProps<{
13
14
  lineProducts: ProductView[]
@@ -29,6 +30,14 @@ const emit = defineEmits<{ submit: [], close: [] }>()
29
30
 
30
31
  const recipeOpen = defineModel<boolean>('open', { required: true })
31
32
  const recipeForm = defineModel<DcwRecipeForm>('form', { required: true })
33
+
34
+ const { t } = useI18n()
35
+
36
+ /** 参数绑定节点选项的边缘层徽标后缀(select option 纯文本,以「 · 徽标」尾注呈现) */
37
+ function drvBadgeSuffix(driver: string): string {
38
+ const key = dcwDriverBadgeKey(driver)
39
+ return key ? ` · ${t(key)}` : ''
40
+ }
32
41
  </script>
33
42
 
34
43
  <template>
@@ -93,7 +102,7 @@ const recipeForm = defineModel<DcwRecipeForm>('form', { required: true })
93
102
  :key="n.id"
94
103
  :value="n.id"
95
104
  >
96
- {{ n.name }}({{ dcwTemplateRefCh(n.templateRef) }} · {{ n.min }}~{{ n.max }} {{ n.unit }})
105
+ {{ n.name }}{{ drvBadgeSuffix(n.driver) }}({{ dcwTemplateRefCh(n.templateRef) }} · {{ n.min }}~{{ n.max }} {{ n.unit }})
97
106
  </option>
98
107
  </select>
99
108
  <span
@@ -131,14 +140,14 @@ const recipeForm = defineModel<DcwRecipeForm>('form', { required: true })
131
140
  >
132
141
  </label>
133
142
  <label class="f">
134
- <span>Recipe 单步上限 Δ≤</span>
143
+ <span>{{ $t('dcwDetail.recipeStepLimitLabel') }}</span>
135
144
  <input
136
145
  v-model.number="p.stepLimit"
137
146
  type="number"
138
147
  min="0"
139
148
  class="inp"
140
149
  step="any"
141
- placeholder="跟随节点默认"
150
+ :placeholder="$t('dcwDetail.recipeStepLimitPlaceholder')"
142
151
  >
143
152
  </label>
144
153
  <button