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
@@ -1 +1 @@
1
- import{g as e}from"./CavpkQb0.js";import{t}from"./36oeS8_R.js";import{t as n}from"./JgheoP3e.js";import{t as r}from"./Crbir9cT.js";var i=[`thermo`,`pressure`,`tension`,`encoder`,`camera`,`gateway`],a=[{key:`temp-tc`,name:`温度传感器`,code:`TEMP · TC`,ch:`熔体/箱体温度`,unit:`℃`,base:168,amp:3.2,min:150,max:185,decimals:1,icon:`thermo`,telemetryKey:`temperature`,semantics:`熔体/箱体温度:热工艺核心被控量,热惯性大(变化平缓)。判读:与设定值偏差 ±2℃ 内为稳态;持续单边漂移 = 加热/散热失衡;骤升骤降多为扰动或传感器异常。`},{key:`pressure-tx`,name:`压力变送器`,code:`PRESSURE · TX`,ch:`熔体压力`,unit:`MPa`,base:.82,amp:.05,min:.6,max:1.2,decimals:2,icon:`pressure`,telemetryKey:`pressure`,semantics:`熔体压力:挤出负荷的「血压计」。判读:与温度负相关(温度升→熔体黏度降→压力降);压力突升常见于滤网堵塞或出料受阻。`},{key:`tension-cell`,name:`张力传感器`,code:`TENSION · CELL`,ch:`膜张力`,unit:`kN`,base:21.4,amp:.9,min:18,max:26,decimals:1,icon:`tension`,semantics:`膜张力:成膜质量直接指标。判读:张力波动与速度/温度设定强耦合,评估张力前先确认速度稳定。`},{key:`line-encoder`,name:`速度编码器`,code:`LINE · ENCODER`,ch:`产线速度`,unit:`m/min`,base:318,amp:7,min:280,max:360,decimals:0,icon:`encoder`,semantics:`产线速度:产能直接观测量。判读:实际速度对设定值的跟随滞后反映传动惯量;速度波动会传导至张力与厚度。`},{key:`vision-cam`,name:`视觉检测相机`,code:`VISION · CAM`,ch:`表面缺陷率`,unit:`‰`,base:.42,amp:.09,min:.1,max:.9,decimals:2,icon:`camera`},{key:`power-meter`,name:`电参采集器`,code:`POWER · METER`,ch:`运行功率`,unit:`kW`,base:45.2,amp:2.6,min:38,max:55,decimals:1,icon:`gateway`},{key:`thickness-scan`,name:`测厚扫描仪`,code:`THK · SCAN`,ch:`厚度轮廓`,unit:`mm`,base:.52,amp:.018,min:.4,max:.65,decimals:3,icon:`tension`,signalKind:`vector`,vector:{points:64,min:.4,max:.65},sink:{processors:[{name:`resample`,args:{n:64}},{name:`derive-metric`,args:{name:`avg`,op:`avg`}},{name:`derive-metric`,args:{name:`max`,op:`max`}}]},metrics:[{key:`max`,label:`最大厚度`,unit:`mm`,alarmHigh:.62},{key:`avg`,label:`平均厚度`,unit:`mm`,warnLow:.47,warnHigh:.57}],semantics:`测厚仪横向扫描轮廓:多点厚度分布。判读:平均值漂移=工艺整体偏移;单点尖峰=局部缺陷(夹杂/气泡);max 越硬限=超差,须联动分切剔除。`},{key:`ccd-image`,name:`CCD 视觉相机`,code:`CCD · IMG`,ch:`表面图像`,unit:`灰度`,base:128,amp:0,min:0,max:255,decimals:0,icon:`camera`,signalKind:`image`,sink:{processors:[{name:`thumbnail`,args:{width:256}},{name:`quality-gate`}]},metrics:[{key:`brightness`,label:`平均亮度`,unit:`gray`,alarmLow:30,alarmHigh:230}],semantics:`CCD 图像帧:像素数据入对象存储,Timescale 仅存元数据与派生指标。判读:brightness 过低=曝光不足/镜头遮挡,过高=过曝;缺陷识别算法经插件处理器扩展。`}],o=e=>e.startsWith(`daq-`)?e.slice(4):e,s=[{kind:`mock`,label:`Mock 模拟源`,status:`builtin`,configFields:[]},{kind:`modbus-tcp`,label:`Modbus TCP(PLC/网关)`,status:`real`,configFields:[{key:`host`,label:`设备地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.10`,hint:`PLC 或 Modbus 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`Modbus TCP 标准端口 502`},{key:`unitId`,label:`单元号(unitId)`,type:`number`,default:1,hint:`从站地址,常见 1`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`opcua`,label:`OPC UA(PLC/MES)`,status:`real`,configFields:[{key:`endpoint`,label:`端点(endpoint)`,type:`string`,required:!0,placeholder:`opc.tcp://192.168.1.10:4840`,hint:`OPC UA 服务器地址`},{key:`nodeId`,label:`节点 ID(NodeId)`,type:`string`,required:!0,placeholder:`ns=2;s=Channel1.Device1.Tag1`,hint:`要采集的变量节点`},{key:`securityMode`,label:`安全策略`,type:`select`,default:`None`,options:[{value:`None`,label:`None(无加密,内网常用)`},{value:`Sign`,label:`Sign(签名)`},{value:`SignAndEncrypt`,label:`SignAndEncrypt(签名+加密)`}]},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`},{key:`certificateFile`,label:`客户端证书路径(可选)`,type:`string`,placeholder:`certs/client_cert.pem`,hint:`Sign/SignAndEncrypt 时的 PEM 证书;留空自动生成自签`},{key:`privateKeyFile`,label:`私钥路径(可选)`,type:`string`,placeholder:`certs/client_key.pem`,hint:`与证书配对的 PEM 私钥`}]},{kind:`modbus-rtu`,label:`Modbus RTU over TCP(串口网关)`,status:`real`,configFields:[{key:`host`,label:`网关地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.50`,hint:`串口服务器/RTU 转 TCP 网关 IP(设备本身走 RS-485)`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`网关透传端口(常见 502 / 8899 / 26)`},{key:`unitId`,label:`从站地址(unitId)`,type:`number`,default:1,hint:`RS-485 总线上的从站地址`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`mqtt`,label:`MQTT(网关/边缘采集)`,status:`real`,configFields:[{key:`host`,label:`Broker 地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.20 或 mqtt.example.com`,hint:`MQTT Broker(EMQX/Mosquitto/Aliyun IoT)地址`},{key:`port`,label:`端口`,type:`number`,default:1883,hint:`MQTT TCP 标准端口 1883(TLS 8883)`},{key:`topic`,label:`主题(topic)`,type:`string`,required:!0,placeholder:`factory/line1/temp`,hint:`设备上报数值的主题;支持 +/# 通配`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.temperature`,hint:`payload 为 JSON 时按路径取数值,如 data.temp;纯数字报文留空`},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`http`,label:`HTTP/REST(轮询)`,status:`real`,configFields:[{key:`url`,label:`接口地址(URL)`,type:`string`,required:!0,placeholder:`http://192.168.1.30/api/sensor`,hint:`返回数值或 JSON 的 HTTP 接口`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.value`,hint:`响应为 JSON 时按路径取数值,如 data.value;纯文本留空`},{key:`headersJSON`,label:`请求头(可选)`,type:`string`,placeholder:`{"Authorization":"Bearer xxx"}`,hint:`JSON 对象形式的 HTTP 头`}]},{kind:`s7`,label:`S7(西门子 PLC)`,status:`planned`,configFields:[]}],c=60,l=30,u=(e,t)=>r({base:`/api/workshop/daq`,path:e,init:t,retries:(t?.method??`GET`).toUpperCase()===`GET`?2:0}),d=()=>{let r=e([]),i=new Map,o=e([]),d=e({running:!0,defaultIntervalMs:1e3,defaultPublishIntervalMs:0,queryDisplayIntervalMs:5e3,nodesTotal:0,nodesOnline:0}),f=e({tsdb:`…`,queue:`…`,drivers:s.map(e=>({kind:e.kind,label:e.label,status:e.status,configFields:e.configFields})),driverAvailable:{},infra:void 0,produced:0,consumed:0,dropped:0,samplesStored:0}),p=e(a.map(e=>({...e}))),m=e({});function h(){i.clear();for(let e of r)i.set(e.id,e)}function g(e){let t=r.findIndex(t=>t.id===e.id);t>=0?r[t]=Object.assign(r[t],e):(r.push({...e,hist:[]}),i.set(e.id,r[r.length-1]))}let _=[],v=null;function y(){v=null;let e=_;if(_=[],!e.length)return;let t=new Map;for(let n of e){t.set(n.nodeId,n);let e=i.get(n.nodeId);e&&(e.hist.push(n.value),e.hist.length>c&&e.hist.splice(0,e.hist.length-c))}for(let e of t.values()){let t=i.get(e.nodeId);t&&(t.value=e.value,t.state=e.state,t.lastAt=e.at)}}function b(e){_.push(e),v||=setTimeout(y,500)}function x(e){if(e.node){if(e.op===`removed`){let t=r.findIndex(t=>t.id===e.node.id);t>=0&&r.splice(t,1),i.delete(e.node.id),Reflect.deleteProperty(m,e.node.id);return}g(e.node)}}function S(e){p.splice(0,p.length,...e.map(e=>({...e})))}function C(e){if(!e.template)return;let t=p.findIndex(t=>t.key===e.template.key);if(e.op===`removed`){t>=0&&p.splice(t,1);return}t>=0?p[t]={...e.template}:p.push({...e.template})}function w(e){let t=Date.parse(e.at),n=m[e.nodeId]??(m[e.nodeId]=[]);n.some(e=>e.at===t)||(n.unshift({at:t,kind:e.kind,points:e.preview,metrics:e.metrics??{},thumbUrl:e.thumbUrl,contentUrl:e.thumbUrl?e.thumbUrl.replace(`thumb=1`,`thumb=0`):void 0}),n.length>l&&n.splice(l));let r=i.get(e.nodeId);r&&(r.value=e.metrics?.avg??r.value,e.state&&(r.state=e.state),r.lastAt=e.at)}let T=0,E=null;function D(){T++,T===1&&(E=t().subscribe(O));let e=!1;return()=>{e||(e=!0,--T===0&&(E?.(),E=null))}}function O(e){if(e.type===`daq.reading`)b(e.payload);else if(e.type===`daq.frame`)w(e.payload);else if(e.type===`daq.node.changed`)x(e.payload);else if(e.type===`daq.controller`)Object.assign(d,e.payload);else if(e.type===`daq.template.changed`)C(e.payload);else if(e.type===`daq.alarm`){let t=e.payload;o.some(e=>e.id===t.id)||o.unshift(t)}else if(e.type===`daq.alarm.changed`){let t=e.payload;if(t.ackedAt){let e=o.findIndex(e=>e.id===t.id);e>=0&&o.splice(e,1)}}}async function k(){try{let e=await u(``),t=new Map(r.map(e=>[e.id,e])),n=[];for(let r of e.nodes){let e=t.get(r.id);e?(Object.assign(e,r),n.push(e),t.delete(r.id)):n.push({...r,hist:[]})}r.splice(0,r.length,...n),h();for(let e of Object.keys(m))i.has(e)||Reflect.deleteProperty(m,e);Object.assign(d,e.controller),Object.assign(f,e.meta??{}),f.driverAvailable=e.driverAvailable??{},e.drivers?.length&&(f.drivers=e.drivers),f.infra=e.infra,e.templates?.length&&S(e.templates),q.loaded=!0,q.error=``}catch(e){q.error=n(e)}}async function A(e,t){let n=await u(``,{method:`POST`,body:JSON.stringify({templateRef:e,...t})});return g(n.node),n.node}async function j(e,t){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify(t)})}async function M(e,t,n){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify({posX:t,posZ:n})})}async function N(e){await u(`/${e}`,{method:`DELETE`});let t=r.findIndex(t=>t.id===e);t>=0&&r.splice(t,1),i.delete(e),Reflect.deleteProperty(m,e)}async function P(e,t){g((await u(`/${e}/bind`,{method:`POST`,body:JSON.stringify({deviceId:t})})).node)}async function F(e,t){g((await u(`/${e}/bindings`,{method:`PUT`,body:JSON.stringify({deviceIds:t})})).node)}async function I(e,t){return(await u(`/test-driver`,{method:`POST`,body:JSON.stringify({driver:e,driverConfig:t})})).test}async function L(e){return(await u(`/${e}/test`,{method:`POST`})).test}async function R(){try{let e=await u(`/alarms?scope=open&limit=50`);o.splice(0,o.length,...e.alarms??[])}catch{}}async function z(e){await u(`/alarms/${e}/ack`,{method:`POST`}),await R()}async function B(){let e=await u(`/infra/reconnect`,{method:`POST`});return f.infra=e.infra,await k(),e.infra}async function V(e,t,n){let r=await u(`/controller`,{method:`POST`,body:JSON.stringify({action:e,defaultIntervalMs:t,defaultPublishIntervalMs:n})});Object.assign(d,r.controller)}async function H(e,t={}){let n=new URLSearchParams;return t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.bucketMs!=null&&n.set(`bucketMs`,String(t.bucketMs)),t.limit!=null&&n.set(`limit`,String(t.limit)),(await u(`/${e}/samples?${n.toString()}`)).points??[]}async function U(e,t={}){let n=new URLSearchParams;t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.kind&&n.set(`kind`,t.kind),t.limit!=null&&n.set(`limit`,String(t.limit));let r=await u(`/${e}/frames?${n.toString()}`);return m[e]=r.frames??[],m[e]}async function W(e){let t=await u(`/templates`,{method:`POST`,body:JSON.stringify(e)});return C({op:`added`,template:t.template}),t.template}async function G(e,t){let n=await u(`/templates/${e}`,{method:`PATCH`,body:JSON.stringify(t)});return C({op:`updated`,template:n.template}),n.template}async function K(e){await u(`/templates/${e}`,{method:`DELETE`}),C({op:`removed`,template:{key:e}})}let q=e({nodes:r,controller:d,meta:f,templates:p,loaded:!1,error:``,ensureWsFeed:D,load:k,createFromTemplate:A,createTemplate:W,updateTemplate:G,removeTemplate:K,testDriver:I,testNode:L,reconnectInfra:B,patchNode:j,saveTransform:M,removeNode:N,bindNode:P,setNodeBindings:F,controllerAction:V,alarms:o,fetchAlarms:R,ackAlarm:z,nodeById:e=>i.get(e)??r.find(t=>t.id===e),samplesOf:H,fetchFrames:U,frames:m,framesOf:e=>m[e]??[],templateOf:e=>p.find(t=>t.key===e||`daq-${t.key}`===e),ofDevice:e=>e?r.filter(t=>t.deviceBindingId===e):[]});return q},f=`__daqStream`;function p(){let e=globalThis;return e[f]||(e[f]=d()),e[f]}export{o as a,i,s as n,a as r,p as t};
1
+ import{g as e}from"./CavpkQb0.js";import{t}from"./36oeS8_R.js";import{t as n}from"./JgheoP3e.js";import{n as r}from"./BQOn0q6Y.js";var i=[`thermo`,`pressure`,`tension`,`encoder`,`camera`,`gateway`],a=[{key:`temp-tc`,name:`温度传感器`,code:`TEMP · TC`,ch:`熔体/箱体温度`,unit:`℃`,base:168,amp:3.2,min:150,max:185,decimals:1,icon:`thermo`,telemetryKey:`temperature`,semantics:`熔体/箱体温度:热工艺核心被控量,热惯性大(变化平缓)。判读:与设定值偏差 ±2℃ 内为稳态;持续单边漂移 = 加热/散热失衡;骤升骤降多为扰动或传感器异常。`},{key:`pressure-tx`,name:`压力变送器`,code:`PRESSURE · TX`,ch:`熔体压力`,unit:`MPa`,base:.82,amp:.05,min:.6,max:1.2,decimals:2,icon:`pressure`,telemetryKey:`pressure`,semantics:`熔体压力:挤出负荷的「血压计」。判读:与温度负相关(温度升→熔体黏度降→压力降);压力突升常见于滤网堵塞或出料受阻。`},{key:`tension-cell`,name:`张力传感器`,code:`TENSION · CELL`,ch:`膜张力`,unit:`kN`,base:21.4,amp:.9,min:18,max:26,decimals:1,icon:`tension`,semantics:`膜张力:成膜质量直接指标。判读:张力波动与速度/温度设定强耦合,评估张力前先确认速度稳定。`},{key:`line-encoder`,name:`速度编码器`,code:`LINE · ENCODER`,ch:`产线速度`,unit:`m/min`,base:318,amp:7,min:280,max:360,decimals:0,icon:`encoder`,semantics:`产线速度:产能直接观测量。判读:实际速度对设定值的跟随滞后反映传动惯量;速度波动会传导至张力与厚度。`},{key:`vision-cam`,name:`视觉检测相机`,code:`VISION · CAM`,ch:`表面缺陷率`,unit:`‰`,base:.42,amp:.09,min:.1,max:.9,decimals:2,icon:`camera`},{key:`power-meter`,name:`电参采集器`,code:`POWER · METER`,ch:`运行功率`,unit:`kW`,base:45.2,amp:2.6,min:38,max:55,decimals:1,icon:`gateway`},{key:`thickness-scan`,name:`测厚扫描仪`,code:`THK · SCAN`,ch:`厚度轮廓`,unit:`mm`,base:.52,amp:.018,min:.4,max:.65,decimals:3,icon:`tension`,signalKind:`vector`,vector:{points:64,min:.4,max:.65},sink:{processors:[{name:`resample`,args:{n:64}},{name:`derive-metric`,args:{name:`avg`,op:`avg`}},{name:`derive-metric`,args:{name:`max`,op:`max`}}]},metrics:[{key:`max`,label:`最大厚度`,unit:`mm`,alarmHigh:.62},{key:`avg`,label:`平均厚度`,unit:`mm`,warnLow:.47,warnHigh:.57}],semantics:`测厚仪横向扫描轮廓:多点厚度分布。判读:平均值漂移=工艺整体偏移;单点尖峰=局部缺陷(夹杂/气泡);max 越硬限=超差,须联动分切剔除。`},{key:`ccd-image`,name:`CCD 视觉相机`,code:`CCD · IMG`,ch:`表面图像`,unit:`灰度`,base:128,amp:0,min:0,max:255,decimals:0,icon:`camera`,signalKind:`image`,sink:{processors:[{name:`thumbnail`,args:{width:256}},{name:`quality-gate`}]},metrics:[{key:`brightness`,label:`平均亮度`,unit:`gray`,alarmLow:30,alarmHigh:230}],semantics:`CCD 图像帧:像素数据入对象存储,Timescale 仅存元数据与派生指标。判读:brightness 过低=曝光不足/镜头遮挡,过高=过曝;缺陷识别算法经插件处理器扩展。`}],o=e=>e.startsWith(`daq-`)?e.slice(4):e,s=[{kind:`mock`,label:`Mock 模拟源`,status:`builtin`,configFields:[]},{kind:`modbus-tcp`,label:`Modbus TCP(PLC/网关)`,status:`real`,configFields:[{key:`host`,label:`设备地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.10`,hint:`PLC 或 Modbus 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`Modbus TCP 标准端口 502`},{key:`unitId`,label:`单元号(unitId)`,type:`number`,default:1,hint:`从站地址,常见 1`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`opcua`,label:`OPC UA(PLC/MES)`,status:`real`,configFields:[{key:`endpoint`,label:`端点(endpoint)`,type:`string`,required:!0,placeholder:`opc.tcp://192.168.1.10:4840`,hint:`OPC UA 服务器地址`},{key:`nodeId`,label:`节点 ID(NodeId)`,type:`string`,required:!0,placeholder:`ns=2;s=Channel1.Device1.Tag1`,hint:`要采集的变量节点`},{key:`securityMode`,label:`安全策略`,type:`select`,default:`None`,options:[{value:`None`,label:`None(无加密,内网常用)`},{value:`Sign`,label:`Sign(签名)`},{value:`SignAndEncrypt`,label:`SignAndEncrypt(签名+加密)`}]},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`},{key:`certificateFile`,label:`客户端证书路径(可选)`,type:`string`,placeholder:`certs/client_cert.pem`,hint:`Sign/SignAndEncrypt 时的 PEM 证书;留空自动生成自签`},{key:`privateKeyFile`,label:`私钥路径(可选)`,type:`string`,placeholder:`certs/client_key.pem`,hint:`与证书配对的 PEM 私钥`}]},{kind:`modbus-rtu`,label:`Modbus RTU over TCP(串口网关)`,status:`real`,configFields:[{key:`host`,label:`网关地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.50`,hint:`串口服务器/RTU 转 TCP 网关 IP(设备本身走 RS-485)`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`网关透传端口(常见 502 / 8899 / 26)`},{key:`unitId`,label:`从站地址(unitId)`,type:`number`,default:1,hint:`RS-485 总线上的从站地址`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`mqtt`,label:`MQTT(网关/边缘采集)`,status:`real`,configFields:[{key:`host`,label:`Broker 地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.20 或 mqtt.example.com`,hint:`MQTT Broker(EMQX/Mosquitto/Aliyun IoT)地址`},{key:`port`,label:`端口`,type:`number`,default:1883,hint:`MQTT TCP 标准端口 1883(TLS 8883)`},{key:`topic`,label:`主题(topic)`,type:`string`,required:!0,placeholder:`factory/line1/temp`,hint:`设备上报数值的主题;支持 +/# 通配`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.temperature`,hint:`payload 为 JSON 时按路径取数值,如 data.temp;纯数字报文留空`},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`http`,label:`HTTP/REST(轮询)`,status:`real`,configFields:[{key:`url`,label:`接口地址(URL)`,type:`string`,required:!0,placeholder:`http://192.168.1.30/api/sensor`,hint:`返回数值或 JSON 的 HTTP 接口`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.value`,hint:`响应为 JSON 时按路径取数值,如 data.value;纯文本留空`},{key:`headersJSON`,label:`请求头(可选)`,type:`string`,placeholder:`{"Authorization":"Bearer xxx"}`,hint:`JSON 对象形式的 HTTP 头`}]},{kind:`s7`,label:`S7(西门子 PLC)`,status:`planned`,configFields:[]}],c=60,l=30,u=(e,t)=>r({base:`/api/workshop/daq`,path:e,init:t,retries:(t?.method??`GET`).toUpperCase()===`GET`?2:0}),d=()=>{let r=e([]),i=new Map,o=e([]),d=e({running:!0,defaultIntervalMs:1e3,defaultPublishIntervalMs:0,queryDisplayIntervalMs:5e3,nodesTotal:0,nodesOnline:0}),f=e({tsdb:`…`,queue:`…`,drivers:s.map(e=>({kind:e.kind,label:e.label,status:e.status,configFields:e.configFields})),driverAvailable:{},infra:void 0,produced:0,consumed:0,dropped:0,samplesStored:0}),p=e(a.map(e=>({...e}))),m=e({});function h(){i.clear();for(let e of r)i.set(e.id,e)}function g(e){let t=r.findIndex(t=>t.id===e.id);t>=0?r[t]=Object.assign(r[t],e):(r.push({...e,hist:[]}),i.set(e.id,r[r.length-1]))}let _=[],v=null;function y(){v=null;let e=_;if(_=[],!e.length)return;let t=new Map;for(let n of e){t.set(n.nodeId,n);let e=i.get(n.nodeId);e&&(e.hist.push(n.value),e.hist.length>c&&e.hist.splice(0,e.hist.length-c))}for(let e of t.values()){let t=i.get(e.nodeId);t&&(t.value=e.value,t.state=e.state,t.lastAt=e.at)}}function b(e){_.push(e),v||=setTimeout(y,500)}function x(e){if(e.node){if(e.op===`removed`){let t=r.findIndex(t=>t.id===e.node.id);t>=0&&r.splice(t,1),i.delete(e.node.id),Reflect.deleteProperty(m,e.node.id);return}g(e.node)}}function S(e){p.splice(0,p.length,...e.map(e=>({...e})))}function C(e){if(!e.template)return;let t=p.findIndex(t=>t.key===e.template.key);if(e.op===`removed`){t>=0&&p.splice(t,1);return}t>=0?p[t]={...e.template}:p.push({...e.template})}function w(e){let t=Date.parse(e.at),n=m[e.nodeId]??(m[e.nodeId]=[]);n.some(e=>e.at===t)||(n.unshift({at:t,kind:e.kind,points:e.preview,metrics:e.metrics??{},thumbUrl:e.thumbUrl,contentUrl:e.thumbUrl?e.thumbUrl.replace(`thumb=1`,`thumb=0`):void 0}),n.length>l&&n.splice(l));let r=i.get(e.nodeId);r&&(r.value=e.metrics?.avg??r.value,e.state&&(r.state=e.state),r.lastAt=e.at)}let T=0,E=null;function D(){T++,T===1&&(E=t().subscribe(O));let e=!1;return()=>{e||(e=!0,--T===0&&(E?.(),E=null))}}function O(e){if(e.type===`daq.reading`)b(e.payload);else if(e.type===`daq.frame`)w(e.payload);else if(e.type===`daq.node.changed`)x(e.payload);else if(e.type===`daq.controller`)Object.assign(d,e.payload);else if(e.type===`daq.template.changed`)C(e.payload);else if(e.type===`daq.alarm`){let t=e.payload;o.some(e=>e.id===t.id)||o.unshift(t)}else if(e.type===`daq.alarm.changed`){let t=e.payload;if(t.ackedAt){let e=o.findIndex(e=>e.id===t.id);e>=0&&o.splice(e,1)}}}async function k(){try{let e=await u(``),t=new Map(r.map(e=>[e.id,e])),n=[];for(let r of e.nodes){let e=t.get(r.id);e?(Object.assign(e,r),n.push(e),t.delete(r.id)):n.push({...r,hist:[]})}r.splice(0,r.length,...n),h();for(let e of Object.keys(m))i.has(e)||Reflect.deleteProperty(m,e);Object.assign(d,e.controller),Object.assign(f,e.meta??{}),f.driverAvailable=e.driverAvailable??{},e.drivers?.length&&(f.drivers=e.drivers),f.infra=e.infra,e.templates?.length&&S(e.templates),q.loaded=!0,q.error=``}catch(e){q.error=n(e)}}async function A(e,t){let n=await u(``,{method:`POST`,body:JSON.stringify({templateRef:e,...t})});return g(n.node),n.node}async function j(e,t){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify(t)})}async function M(e,t,n){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify({posX:t,posZ:n})})}async function N(e){await u(`/${e}`,{method:`DELETE`});let t=r.findIndex(t=>t.id===e);t>=0&&r.splice(t,1),i.delete(e),Reflect.deleteProperty(m,e)}async function P(e,t){g((await u(`/${e}/bind`,{method:`POST`,body:JSON.stringify({deviceId:t})})).node)}async function F(e,t){g((await u(`/${e}/bindings`,{method:`PUT`,body:JSON.stringify({deviceIds:t})})).node)}async function I(e,t){return(await u(`/test-driver`,{method:`POST`,body:JSON.stringify({driver:e,driverConfig:t})})).test}async function L(e){return(await u(`/${e}/test`,{method:`POST`})).test}async function R(){try{let e=await u(`/alarms?scope=open&limit=50`);o.splice(0,o.length,...e.alarms??[])}catch{}}async function z(e){await u(`/alarms/${e}/ack`,{method:`POST`}),await R()}async function B(){let e=await u(`/infra/reconnect`,{method:`POST`});return f.infra=e.infra,await k(),e.infra}async function V(e,t,n){let r=await u(`/controller`,{method:`POST`,body:JSON.stringify({action:e,defaultIntervalMs:t,defaultPublishIntervalMs:n})});Object.assign(d,r.controller)}async function H(e,t={}){let n=new URLSearchParams;return t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.bucketMs!=null&&n.set(`bucketMs`,String(t.bucketMs)),t.limit!=null&&n.set(`limit`,String(t.limit)),(await u(`/${e}/samples?${n.toString()}`)).points??[]}async function U(e,t={}){let n=new URLSearchParams;t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.kind&&n.set(`kind`,t.kind),t.limit!=null&&n.set(`limit`,String(t.limit));let r=await u(`/${e}/frames?${n.toString()}`);return m[e]=r.frames??[],m[e]}async function W(e){let t=await u(`/templates`,{method:`POST`,body:JSON.stringify(e)});return C({op:`added`,template:t.template}),t.template}async function G(e,t){let n=await u(`/templates/${e}`,{method:`PATCH`,body:JSON.stringify(t)});return C({op:`updated`,template:n.template}),n.template}async function K(e){await u(`/templates/${e}`,{method:`DELETE`}),C({op:`removed`,template:{key:e}})}let q=e({nodes:r,controller:d,meta:f,templates:p,loaded:!1,error:``,ensureWsFeed:D,load:k,createFromTemplate:A,createTemplate:W,updateTemplate:G,removeTemplate:K,testDriver:I,testNode:L,reconnectInfra:B,patchNode:j,saveTransform:M,removeNode:N,bindNode:P,setNodeBindings:F,controllerAction:V,alarms:o,fetchAlarms:R,ackAlarm:z,nodeById:e=>i.get(e)??r.find(t=>t.id===e),samplesOf:H,fetchFrames:U,frames:m,framesOf:e=>m[e]??[],templateOf:e=>p.find(t=>t.key===e||`daq-${t.key}`===e),ofDevice:e=>e?r.filter(t=>t.deviceBindingId===e):[]});return q},f=`__daqStream`;function p(){let e=globalThis;return e[f]||(e[f]=d()),e[f]}export{o as a,i,s as n,a as r,p as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./BMMoqi94.js";import{N as t,dt as n,ft as r,g as i,mt as a,u as o,v as s}from"./CavpkQb0.js";import{D as c,H as l,R as u,S as d,V as f,W as p,b as m,d as h,et as g,f as _,h as v,i as y,m as b,nt as x,p as S,rt as C,y as w}from"./ByMj6e7s.js";import{c as T,d as E,l as D,u as O}from"./Dqz5HiXa.js";import{n as k,t as A}from"./BgnhB8r5.js";import{t as j}from"./S799kNo8.js";import{n as M}from"./Cnrmlixo.js";import{a as N}from"./wDPc4SSR.js";import{t as P}from"./eutnXI4F.js";import{t as F}from"./CAaSPBqk.js";import{t as ee}from"./Bwc6lt2X.js";import{t as I}from"./CzlUIbK32.js";import{t as te}from"./Yv9YItEX2.js";import{n as L,t as ne}from"./DVKXGuMz2.js";import{t as re}from"./CD9lpEz22.js";import{t as ie}from"./DzBbYWrw2.js";import{t as ae}from"./DqtnqNgL2.js";import{t as R}from"./CI2yXRr42.js";import{t as z}from"./DTxfFIvL2.js";import{t as B}from"./BDNMzG2s2.js";import{t as V}from"./JgheoP3e.js";import{t as H}from"./8oRmGaAV.js";import{t as U}from"./C4sQKuhk.js";var W={class:`section-title`},G={class:`section-desc`},K={class:`set-row`},q={class:`set-text`},J={class:`set-title`},oe={class:`set-sub`},se={class:`color-swatches`},ce=[`title`,`onClick`],le={class:`swatch-label`},ue={key:0,class:`i-tabler-check swatch-check`},de={class:`toggle-row`},fe={class:`set-text`},pe={class:`set-title`},me={class:`set-sub`},he=[`aria-checked`],ge={class:`toggle-row`},_e={class:`set-text`},ve={class:`set-title`},ye={class:`set-sub`},be=Object.assign(B(d({__name:`AppearancePane`,props:{activeTab:{}},setup(i){let o=k(),s=e().public,{t:c,locale:l,locales:u,setLocale:d}=M(),g=String(s.primaryColor),x=[{value:g,label:c(`settings.accentInk`)},{value:`#c9963f`,label:c(`settings.accentStone`)},{value:`#44615a`,label:c(`settings.accentMoss`)},{value:`#3f6094`,label:c(`settings.accentSlate`)},{value:`#6b5aa0`,label:c(`settings.accentPlum`)},{value:`#9c5744`,label:c(`settings.accentClay`)}],S=h(()=>o.accent??g);function T(e){o.setAccent(e===g?null:e),N.success(c(`settings.accentApplied`))}function E(){o.setAccent(null),N.success(c(`settings.accentReset`))}let O=h(()=>u.value.map(e=>({label:e.name,value:e.code}))),A=e=>{e!=null&&(j(`aw.locale`,{maxAge:31536e3}).value=String(e),localStorage.setItem(`aw.locale`,String(e)),d(String(e)),window.location.reload())};return(e,s)=>{let u=P;return C((f(),v(`div`,null,[_(`h3`,W,a(t(c)(`settings.theme`)),1),_(`p`,G,a(t(c)(`settings.appearanceDesc`)),1),_(`div`,K,[_(`div`,q,[_(`div`,J,a(t(c)(`settings.primaryColor`)),1),_(`div`,oe,a(t(c)(`settings.accentDesc`)),1)])]),_(`div`,se,[(f(),v(y,null,p(x,e=>_(`button`,{key:e.value,class:n([`swatch`,{on:t(S).toLowerCase()===e.value.toLowerCase()}]),style:r({"--sw":e.value}),title:e.label,onClick:t=>T(e.value)},[s[1]||=_(`span`,{class:`swatch-dot`},null,-1),_(`span`,le,a(e.label),1),t(S).toLowerCase()===e.value.toLowerCase()?(f(),v(`span`,ue)):b(``,!0)],14,ce)),64))]),_(`button`,{class:`aw-pill outline reset-btn`,onClick:E},[s[2]||=_(`span`,{class:`i-tabler-rotate`},null,-1),w(` `+a(t(c)(`settings.accentResetAction`)),1)]),_(`div`,de,[_(`div`,fe,[_(`div`,pe,a(t(o).isDark?t(c)(`common.dark`):t(c)(`common.light`)),1),_(`div`,me,a(t(c)(`settings.darkDesc`)),1)]),_(`button`,{class:n([`switch`,{on:t(o).isDark}]),role:`switch`,"aria-checked":t(o).isDark,onClick:s[0]||=e=>t(o).toggleDark()},[...s[3]||=[_(`span`,{class:`knob`},null,-1)]],10,he)]),_(`div`,ge,[_(`div`,_e,[_(`div`,ve,a(t(c)(`header.language`)),1),_(`div`,ye,a(t(c)(`settings.languageDesc`)),1)]),m(u,{value:t(l),options:t(O),style:{width:`140px`},onChange:A},null,8,[`value`,`options`])])],512)),[[D,i.activeTab===`appearance`]])}}}),[[`__scopeId`,`data-v-79352bd2`]]),{__name:`SettingsAppearancePane`});function xe(){let{t:e}=M(),t=z(),n=s({}),r=s(new Set),i=s(!1),a=s(null);function o(){n.value={...t.effective},r.value=new Set}g(()=>t.loaded,e=>{e&&o()},{immediate:!0}),g(()=>t.effective,()=>{r.value.size===0&&o()},{deep:!0});function c(e){r.value.add(e),a.value=null}async function l(){if(r.value.size){i.value=!0,a.value=null;try{let i={};for(let e of r.value)i[e]=n.value[e];let s=await t.patch(i);o();let c=s.restartRequired??[];a.value=c.length?{type:`warning`,text:e(`settings.runtime.restartNotice`,{keys:c.join(`, `)})}:{type:`success`,text:e(`settings.runtime.savedLive`)}}catch(e){let t=e;a.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}finally{i.value=!1}}}async function u(i){try{await t.patch({[i]:null}),r.value.delete(i),n.value[i]=t.effective[i],a.value={type:`success`,text:e(`settings.runtime.keyReset`,{key:i})}}catch(e){let t=e;a.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}}async function d(){try{await t.resetAll(),o(),a.value={type:`success`,text:e(`settings.runtime.resetAllDone`)}}catch(e){let t=e;a.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}}return{draft:n,dirtyKeys:r,savingRuntime:i,runtimeNotice:a,syncRuntimeDraft:o,markDirty:c,saveRuntime:l,resetRuntimeKey:u,resetAllRuntime:d}}var Y=Symbol(`aw.settings.runtimeConfigDraft`);function Se(){let e=xe();return l(Y,e),e}function Ce(){let e=c(Y);if(!e)throw Error(`[settings] useRuntimeConfigDraftContext: 缺少 provideRuntimeConfigDraft()`);return e}function we(){let{t:e}=M(),t=R(),n=z(),r={server:`settings.runtime.groupServer`,app:`settings.runtime.groupApp`,api:`settings.runtime.groupApi`,theme:`settings.runtime.groupTheme`,i18n:`settings.runtime.groupI18n`,security:`settings.runtime.groupSecurity`,daq:`settings.runtime.groupDaq`,memory:`settings.runtime.groupMemory`,omp:`settings.runtime.groupOmp`,harness:`settings.runtime.groupHarness`,dcw:`settings.runtime.groupDcw`,workshop:`settings.runtime.groupWorkshop`,backup:`settings.runtime.groupBackup`,retention:`settings.runtime.groupRetention`,log:`settings.runtime.groupLog`,plugins:`settings.runtime.groupPlugins`};function a(t){if(t.labelKey&&e(t.labelKey)!==t.labelKey)return e(t.labelKey);if(t.label&&t.label!==t.id)return t.label;let n=r[t.id];return n?e(n):t.label||t.id}function o(t){return t.source===`plugin`?t.plugin?`${e(`settings.groups.srcPlugin`)}: ${t.plugin}`:e(`settings.groups.srcPlugin`):t.source===`user`?e(`settings.groups.srcUser`):e(`settings.groups.srcBuiltin`)}function c(e){return e===`runtime`?`src-runtime`:e===`env`?`src-env`:`src-yaml`}function l(t){let n=t.labelKey;return n&&e(n)!==n?e(n):t.label}let d=`aw.settings.groups.collapsed`,f=s({});function p(){try{f.value=JSON.parse(localStorage.getItem(d)??`{}`)??{}}catch{f.value={}}}function m(){try{localStorage.setItem(d,JSON.stringify(f.value))}catch{}}function g(e){let t=f.value[e.id];return t===void 0?e.collapsed:t}function _(e){e.collapsible&&(f.value={...f.value,[e.id]:!g(e)},m())}function v(){let e=n.groups.filter(e=>e.collapsible),t=e.some(e=>!g(e)),r={...f.value};for(let n of e)r[n.id]=t;f.value=r,m()}let y=h(()=>n.groups.filter(e=>e.collapsible).some(e=>!g(e))),b=h(()=>t.isAdmin),x=s(!1),S=i({label:``,description:``,collapsed:!1}),C=s(``),w=s(``),T=s(``);async function E(){if(S.label.trim()){C.value=`create`;try{await n.createGroup({label:S.label.trim(),description:S.description.trim(),collapsed:S.collapsed}),x.value=!1,S.label=``,S.description=``,S.collapsed=!1,N.success(e(`settings.groups.created`))}catch(t){N.error(V(t,e(`settings.groups.createFail`)))}finally{C.value=``}}}function D(e){w.value=e.id,T.value=e.label}async function O(t){let r=T.value.trim();if(w.value=``,r){C.value=t;try{await n.updateGroup(t,{label:r}),N.success(e(`settings.groups.renamed`))}catch(t){N.error(V(t,e(`settings.groups.updateFail`)))}finally{C.value=``}}}async function k(t,r){let i=[...n.groups],a=i.findIndex(e=>e.id===t),o=a+r;if(a<0||o<0||o>=i.length)return;let s=i[a],c=i[o];C.value=t;try{let e=[...i];e.splice(a,1),e.splice(o,0,s);let t=(o+1)*10,r=(a+1)*10;await n.updateGroup(s.id,{order:t}),await n.updateGroup(c.id,{order:r})}catch(t){N.error(V(t,e(`settings.groups.updateFail`)))}finally{C.value=``}}async function A(t){C.value=t.id;try{await n.updateGroup(t.id,{collapsed:!t.collapsed})}catch(t){N.error(V(t,e(`settings.groups.updateFail`)))}finally{C.value=``}}async function j(t){let r=t.fieldCount??0;if(r>0){N.warning(e(`settings.groups.deleteHasFields`,{p0:a(t),p1:r}));return}C.value=t.id;try{await n.deleteGroup(t.id),N.success(e(`settings.groups.deleted`))}catch(t){N.error(V(t,e(`settings.groups.deleteFail`)))}finally{C.value=``}}return u(p),{groupLabel:a,groupSourceBadge:o,sourceClass:c,itemLabel:l,groupCollapsed:f,loadCollapsePref:p,saveCollapsePref:m,isCollapsed:g,toggleGroup:_,toggleAllGroups:v,allExpanded:y,isAdmin:b,groupFormOpen:x,groupForm:S,groupBusy:C,renamingId:w,renameDraft:T,submitGroupForm:E,startRename:D,commitRename:O,moveGroup:k,setGroupDefaultCollapsed:A,removeGroup:j}}var X=Symbol(`aw.settings.groups`);function Te(){let e=we();return l(X,e),e}function Z(){let e=c(X);if(!e)throw Error(`[settings] useSettingsGroupsContext: 缺少 provideSettingsGroups()`);return e}var Ee={class:`rt-row`},De={class:`rt-main`},Oe={class:`rt-title`},ke={class:`rt-sub`},Ae={class:`rt-ctrl`},je={key:4,class:`rt-color`},Me=[`value`],Ne=[`title`],Pe=Object.assign(B(d({__name:`RuntimeFieldRow`,props:{item:{}},setup(e){let{t:r}=M(),i=z(),{draft:o,markDirty:c,resetRuntimeKey:l}=Ce(),{itemLabel:u,sourceClass:d}=Z(),p=s({}),g=h(()=>(p.value.supportedTimeZones??[`Asia/Shanghai`,`UTC`,`America/Los_Angeles`,`Europe/London`]).map(e=>({label:e,value:e})));return fetch(`/api/system/timezone`).then(e=>e.ok?e.json():{}).then(e=>{p.value=e}),(s,p)=>{let h=re,y=ae,b=P,x=F;return f(),v(`div`,Ee,[_(`div`,De,[_(`div`,Oe,[w(a(t(u)(e.item))+` `,1),_(`span`,{class:n([`rt-tag`,t(d)(t(i).sourceOf(e.item.key))])},a(t(i).sourceOf(e.item.key)),3),_(`span`,{class:n([`rt-tag`,e.item.applies])},a(e.item.applies===`live`?t(r)(`settings.runtime.live`):t(r)(`settings.runtime.restart`)),3)]),_(`div`,ke,a(e.item.description),1)]),_(`div`,Ae,[e.item.type===`number`?(f(),S(h,{key:0,value:t(o)[e.item.key],"onUpdate:value":p[0]||=n=>t(o)[e.item.key]=n,min:e.item.min,max:e.item.max,onChange:p[1]||=n=>t(c)(e.item.key)},null,8,[`value`,`min`,`max`])):e.item.type===`boolean`?(f(),S(y,{key:1,checked:t(o)[e.item.key],"onUpdate:checked":p[2]||=n=>t(o)[e.item.key]=n,onChange:p[3]||=n=>t(c)(e.item.key)},null,8,[`checked`])):e.item.type===`timezone`?(f(),S(b,{key:2,value:t(o)[e.item.key],"onUpdate:value":p[4]||=n=>t(o)[e.item.key]=n,"show-search":``,"option-filter-prop":`label`,style:{width:`260px`},options:t(g),onChange:p[5]||=n=>t(c)(e.item.key)},null,8,[`value`,`options`])):e.item.type===`select`?(f(),S(b,{key:3,value:t(o)[e.item.key],"onUpdate:value":p[6]||=n=>t(o)[e.item.key]=n,style:{width:`160px`},options:(e.item.options??[]).map(e=>({label:e,value:e})),onChange:p[7]||=n=>t(c)(e.item.key)},null,8,[`value`,`options`])):e.item.type===`color`?(f(),v(`span`,je,[_(`input`,{type:`color`,value:String(t(o)[e.item.key]??`#35e0a0`),onInput:p[8]||=n=>{t(o)[e.item.key]=n.target.value,t(c)(e.item.key)}},null,40,Me),m(x,{value:String(t(o)[e.item.key]??``),style:{width:`110px`},class:`aw-mono`,onChange:p[9]||=n=>{t(o)[e.item.key]=n.target.value,t(c)(e.item.key)}},null,8,[`value`])])):(f(),S(x,{key:5,value:t(o)[e.item.key],"onUpdate:value":p[10]||=n=>t(o)[e.item.key]=n,style:{width:`220px`},onChange:p[11]||=n=>t(c)(e.item.key)},null,8,[`value`])),_(`button`,{class:`aw-pill outline rt-reset`,title:t(r)(`settings.runtime.resetKey`),onClick:p[12]||=n=>t(l)(e.item.key)},[...p[13]||=[_(`span`,{class:`i-tabler-rotate`},null,-1)]],8,Ne)])])}}}),[[`__scopeId`,`data-v-03e4daa3`]]),{__name:`SettingsRuntimeFieldRow`}),Fe=[`role`,`tabindex`],Ie={key:3,class:`rt-group-title`},Le={class:`rt-group-badge`},Re={class:`rt-group-fields`},ze={key:4,class:`rt-group-desc`},Be=[`disabled`,`title`],Ve=[`disabled`,`title`],He=[`disabled`,`title`],Ue=[`disabled`,`title`],We=[`disabled`,`title`],Ge={class:`rt-group-body`},Ke={key:0,class:`rt-group-empty`},qe=Object.assign(B(d({__name:`RuntimeGroupSection`,props:{group:{}},setup(e){let{t:r}=M(),i=z(),{groupLabel:s,groupSourceBadge:c,isCollapsed:l,toggleGroup:u,renamingId:d,renameDraft:m,commitRename:h,startRename:g,isAdmin:x,groupBusy:w,moveGroup:k,setGroupDefaultCollapsed:A,removeGroup:j}=Z();return(M,N)=>(f(),v(`section`,{class:n([`rt-group`,{collapsed:t(l)(e.group),"grp-plugin":e.group.source===`plugin`}])},[_(`header`,{class:`rt-group-head`,role:e.group.collapsible?`button`:void 0,tabindex:e.group.collapsible?0:void 0,onClick:N[11]||=n=>t(u)(e.group),onKeydown:[N[12]||=O(E(n=>t(u)(e.group),[`prevent`]),[`enter`]),N[13]||=O(E(n=>t(u)(e.group),[`prevent`]),[`space`])]},[e.group.collapsible?(f(),v(`span`,{key:0,class:n([`rt-caret`,t(l)(e.group)?`i-tabler-chevron-right`:`i-tabler-chevron-down`])},null,2)):b(``,!0),e.group.icon?(f(),v(`span`,{key:1,class:n([`rt-group-icon`,e.group.icon])},null,2)):b(``,!0),t(d)===e.group.id?(f(),v(y,{key:2},[C(_(`input`,{"onUpdate:modelValue":N[0]||=e=>o(m)?m.value=e:null,class:`rt-rename aw-mono`,onClick:N[1]||=E(()=>{},[`stop`]),onKeydown:[N[2]||=O(E(n=>t(h)(e.group.id),[`prevent`]),[`enter`]),N[3]||=O(E(e=>d.value=``,[`prevent`]),[`esc`])]},null,544),[[T,t(m)]]),_(`button`,{class:`mini-btn`,onClick:N[4]||=E(n=>t(h)(e.group.id),[`stop`])},a(t(r)(`settings.groups.ok`)),1)],64)):(f(),v(`h4`,Ie,a(t(s)(e.group)),1)),_(`span`,Le,a(t(c)(e.group)),1),_(`span`,Re,a(t(r)(`settings.groups.fields`,{p0:e.group.fieldCount??0})),1),e.group.description?(f(),v(`span`,ze,a(e.group.description),1)):b(``,!0),t(x)&&e.group.source!==`plugin`?(f(),v(`span`,{key:5,class:`rt-group-ops`,onClick:N[10]||=E(()=>{},[`stop`])},[_(`button`,{class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.moveUp`),onClick:N[5]||=n=>t(k)(e.group.id,-1)},[...N[14]||=[_(`span`,{class:`i-tabler-arrow-up`},null,-1)]],8,Be),_(`button`,{class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.moveDown`),onClick:N[6]||=n=>t(k)(e.group.id,1)},[...N[15]||=[_(`span`,{class:`i-tabler-arrow-down`},null,-1)]],8,Ve),_(`button`,{class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.rename`),onClick:N[7]||=n=>t(g)(e.group)},[...N[16]||=[_(`span`,{class:`i-tabler-pencil`},null,-1)]],8,He),_(`button`,{class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.defaultCollapsed`),onClick:N[8]||=n=>t(A)(e.group)},[_(`span`,{class:n(e.group.collapsed?`i-tabler-chevrons-down`:`i-tabler-chevrons-up`)},null,2)],8,Ue),e.group.source===`user`?(f(),v(`button`,{key:0,class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.delete`),onClick:N[9]||=n=>t(j)(e.group)},[...N[17]||=[_(`span`,{class:`i-tabler-trash`},null,-1)]],8,We)):b(``,!0)])):b(``,!0)],40,Fe),C(_(`div`,Ge,[e.group.fieldCount??0?b(``,!0):(f(),v(`p`,Ke,a(t(r)(`settings.groups.emptyHint`)),1)),(f(!0),v(y,null,p(t(i).fieldsOf(e.group.id),e=>(f(),S(Pe,{key:e.key,item:e},null,8,[`item`]))),128))],512),[[D,!t(l)(e.group)]])],2))}}),[[`__scopeId`,`data-v-2f40d8db`]]),{__name:`SettingsRuntimeGroupSection`});function Je(e){let{t}=M(),n=R(),r=H(),i=s([]),a=s(!1),o=s(!1),c=s(new Set),l=s({}),u=e=>(e.routes??[]).some(e=>String(e.path||``).endsWith(`/health`));async function d(){a.value=!0;try{let e=await r.listPlugins(),t=e?.plugins??e?.data?.plugins??[];i.value=Array.isArray(t)?t:[],o.value=!0}catch(e){N.error(V(e,t(`plugins.loadFail`)))}finally{a.value=!1}}async function f(e,n){if(!c.value.has(e.name)){c.value.add(e.name);try{n?await r.enablePlugin(e.name):await r.disablePlugin(e.name),e.enabled=n,N.success(t(n?`plugins.enabled`:`plugins.disabled`))}catch(e){N.error(V(e,t(`plugins.adminRequired`)))}finally{c.value.delete(e.name)}}}async function p(e){if(u(e)){l.value={...l.value,[e.name]:`checking`};try{let t=await r.pluginHealth(e.name);l.value={...l.value,[e.name]:m(e.name,t)}}catch(n){l.value={...l.value,[e.name]:{ok:!1,reason:V(n,t(`plugins.loadFail`))}}}}}function m(e,t){if(e===`rag-bridge`){let e=t.backend,n=t.web,r=!!e?.ok&&!!n?.ok,i=e?.ok?n?.error||n?.status||`web`:e?.error||e?.status||`backend`;return r?{ok:!0}:{ok:!1,reason:i}}if(e===`diag-bridge`){let e=t.remote;return e?.status===`ok`?{ok:!0}:{ok:!1,reason:e?.status||`remote`}}return{ok:!0}}function h(e){return l.value[e]===`checking`}function _(e){let t=l.value[e];return t&&t!==`checking`?t:null}function v(e){return c.value.has(e)}return g(e,e=>{e===`runtime`&&!o.value&&!a.value&&n.isLoggedIn&&d()},{immediate:!0}),{plugins:i,pluginsLoading:a,pluginsLoaded:o,togglingPlugins:c,healthMap:l,hasHealthRoute:u,loadPlugins:d,togglePlugin:f,checkPluginHealth:p,judgePluginHealth:m,isCheckingHealth:h,healthOf:_,isToggling:v}}var Q=Symbol(`aw.settings.pluginAdmin`);function Ye(e){let t=Je(e);return l(Q,t),t}function Xe(){let e=c(Q);if(!e)throw Error(`[settings] usePluginAdminContext: 缺少 providePluginAdmin()`);return e}var Ze={key:0,class:`identity-note`},Qe={class:`plugin-main`},$e={class:`rt-title`},et={class:`aw-mono`},tt={key:0,class:`rt-tag`},nt={key:1,class:`rt-tag src-runtime`},rt={key:2,class:`rt-tag restart`},it={class:`rt-sub`},at={class:`rt-ctrl`},ot={key:0,class:`plugin-health faint`},st=[`onClick`],ct=[`aria-checked`,`disabled`,`onClick`],lt={key:0,class:`identity-note`},ut=Object.assign(B(d({__name:`PluginsSection`,setup(e){let{t:r}=M(),i=R(),{plugins:o,pluginsLoading:s,hasHealthRoute:c,checkPluginHealth:l,isCheckingHealth:u,healthOf:d,isToggling:m,togglePlugin:h}=Xe();return(e,g)=>{let C=ie;return t(i).isLoggedIn?(f(),S(C,{key:1,spinning:t(s)},{default:x(()=>[(f(!0),v(y,null,p(t(o),e=>(f(),v(`div`,{key:e.name,class:n([`plugin-row`,{off:e.enabled===!1}])},[_(`div`,Qe,[_(`div`,$e,[_(`span`,et,a(e.name),1),e.version?(f(),v(`span`,tt,`v`+a(e.version),1)):b(``,!0),e.builtin?(f(),v(`span`,nt,a(t(r)(`plugins.builtin`)),1)):b(``,!0),e.error?(f(),v(`span`,rt,a(e.error),1)):b(``,!0)]),_(`div`,it,a(e.description||`—`),1)]),_(`div`,at,[t(u)(e.name)?(f(),v(`span`,ot,[g[0]||=_(`span`,{class:`i-tabler-loader-2 spin`},null,-1),w(` `+a(t(r)(`plugins.healthChecking`)),1)])):t(d)(e.name)?(f(),v(`span`,{key:1,class:n([`plugin-health`,t(d)(e.name).ok?`ok`:`bad`])},[_(`span`,{class:n(t(d)(e.name).ok?`i-tabler-circle-check`:`i-tabler-alert-circle`)},null,2),w(` `+a(t(d)(e.name).ok?t(r)(`plugins.healthOk`):`${t(r)(`plugins.healthBad`)}: ${t(d)(e.name).reason??``}`),1)],2)):b(``,!0),t(c)(e)?(f(),v(`button`,{key:2,class:`aw-pill outline rt-reset`,onClick:n=>t(l)(e)},[g[1]||=_(`span`,{class:`i-tabler-heartbeat`},null,-1),w(` `+a(t(r)(`plugins.healthCheck`)),1)],8,st)):b(``,!0),_(`button`,{class:n([`switch`,{on:e.enabled!==!1}]),role:`switch`,"aria-checked":e.enabled!==!1,disabled:t(m)(e.name),onClick:n=>t(h)(e,e.enabled===!1)},[...g[2]||=[_(`span`,{class:`knob`},null,-1)]],10,ct)])],2))),128)),t(o).length===0&&!t(s)?(f(),v(`div`,lt,a(t(r)(`plugins.empty`)),1)):b(``,!0)]),_:1},8,[`spinning`])):(f(),v(`div`,Ze,a(t(r)(`plugins.needLogin`)),1))}}}),[[`__scopeId`,`data-v-c4c10ede`]]),{__name:`SettingsPluginsSection`}),dt={class:`section-title`},ft={class:`section-desc`},pt={class:`rt-groups-bar`},mt=[`title`],ht={class:`rt-groups-count`},gt={key:1,class:`rt-group-form`},_t=[`disabled`],vt={class:`rt-actions`},yt=[`disabled`],bt={class:`rt-path aw-mono`},xt={class:`rt-group-title plugin-group-title`},St={class:`section-desc`},Ct=Object.assign(B(d({__name:`RuntimePane`,props:{activeTab:{}},setup(e){let r=e,{t:i}=M(),o=z(),{runtimeNotice:s,dirtyKeys:c,savingRuntime:l,saveRuntime:u,resetAllRuntime:d}=Se(),{allExpanded:g,groupFormOpen:T,groupForm:E,groupBusy:O,isAdmin:k,submitGroupForm:A,toggleAllGroups:j}=Te(),{plugins:N}=Ye(h(()=>r.activeTab));return(r,h)=>{let M=ee,P=F,I=te,L=U;return C((f(),v(`div`,null,[_(`h3`,dt,a(t(i)(`settings.runtimeTab`)),1),_(`p`,ft,a(t(i)(`settings.runtime.desc`)),1),t(s)?(f(),S(M,{key:0,type:t(s).type,"show-icon":``,class:`rt-notice`,message:t(s).text},null,8,[`type`,`message`])):b(``,!0),_(`div`,pt,[_(`button`,{class:`aw-pill outline rt-groups-toggle`,title:t(i)(`settings.groups.toggleAll`),onClick:h[0]||=(...e)=>t(j)&&t(j)(...e)},[_(`span`,{class:n(t(g)?`i-tabler-chevrons-up`:`i-tabler-chevrons-down`)},null,2),w(` `+a(t(g)?t(i)(`settings.groups.collapseAll`):t(i)(`settings.groups.expandAll`)),1)],8,mt),_(`span`,ht,a(t(i)(`settings.groups.count`,{p0:t(o).groups.length})),1),t(k)?(f(),v(`button`,{key:0,class:`aw-pill outline rt-groups-add`,onClick:h[1]||=e=>T.value=!t(T)},[h[9]||=_(`span`,{class:`i-tabler-plus`},null,-1),w(` `+a(t(i)(`settings.groups.newGroup`)),1)])):b(``,!0)]),t(k)&&t(T)?(f(),v(`div`,gt,[m(P,{value:t(E).label,"onUpdate:value":h[2]||=e=>t(E).label=e,placeholder:t(i)(`settings.groups.namePlaceholder`),style:{width:`220px`},onPressEnter:t(A)},null,8,[`value`,`placeholder`,`onPressEnter`]),m(P,{value:t(E).description,"onUpdate:value":h[3]||=e=>t(E).description=e,placeholder:t(i)(`settings.groups.descPlaceholder`),style:{width:`320px`},onPressEnter:t(A)},null,8,[`value`,`placeholder`,`onPressEnter`]),m(I,{checked:t(E).collapsed,"onUpdate:checked":h[4]||=e=>t(E).collapsed=e},{default:x(()=>[w(a(t(i)(`settings.groups.defaultCollapsed`)),1)]),_:1},8,[`checked`]),_(`button`,{class:`aw-pill primary`,disabled:!t(E).label.trim()||t(O)===`create`,onClick:h[5]||=(...e)=>t(A)&&t(A)(...e)},a(t(O)===`create`?`…`:t(i)(`settings.groups.create`)),9,_t),_(`button`,{class:`aw-pill outline`,onClick:h[6]||=e=>T.value=!1},a(t(i)(`settings.groups.cancel`)),1)])):b(``,!0),(f(!0),v(y,null,p(t(o).groups,e=>(f(),S(qe,{key:e.id,group:e},null,8,[`group`]))),128)),_(`div`,vt,[_(`button`,{class:`aw-pill primary`,disabled:!t(c).size||t(l),onClick:h[7]||=(...e)=>t(u)&&t(u)(...e)},[h[10]||=_(`span`,{class:`i-tabler-device-floppy`},null,-1),w(` `+a(t(l)?`…`:t(i)(`settings.runtime.save`)),1)],8,yt),_(`button`,{class:`aw-pill outline`,onClick:h[8]||=(...e)=>t(d)&&t(d)(...e)},a(t(i)(`settings.runtime.resetAll`)),1),_(`span`,bt,a(t(o).settingsPath),1)]),_(`h4`,xt,a(t(i)(`plugins.title`)),1),_(`p`,St,a(t(i)(`plugins.desc`)),1),m(ut),t(N).length?(f(),S(L,{key:2,"slot-name":`settings.plugins`})):b(``,!0)],512)),[[D,e.activeTab===`runtime`]])}}}),[[`__scopeId`,`data-v-6a6f35be`]]),{__name:`SettingsRuntimePane`}),wt={class:`section-title`},Tt={class:`section-desc`},Et={class:`aw-mono`},$={class:`identity-note`},Dt=Object.assign(B(d({__name:`SystemPane`,props:{activeTab:{}},setup(n){let{t:r,locale:i}=M(),o=A(),s=e().public,c=R(),l=String(s.primaryColor),u=h(()=>[{label:r(`home.fields.name`),value:o.name},{label:r(`home.fields.version`),value:`v${o.version}`},{label:r(`home.fields.mode`),value:o.mode},{label:r(`home.fields.apiBase`),value:`${o.apiBase} (${s.apiTimeout}ms)`},{label:r(`home.fields.primary`),value:l},{label:`i18n`,value:i.value}]);return(e,i)=>{let o=L,s=ne;return C((f(),v(`div`,null,[_(`h3`,wt,a(t(r)(`settings.systemTab`)),1),_(`p`,Tt,a(t(r)(`settings.systemDesc`)),1),m(s,{bordered:``,column:1,size:`small`},{default:x(()=>[(f(!0),v(y,null,p(t(u),e=>(f(),S(o,{key:e.label,label:e.label},{default:x(()=>[_(`span`,Et,a(e.value),1)]),_:2},1032,[`label`]))),128))]),_:1}),_(`p`,$,a(t(c).isLoggedIn?`${t(r)(`settings.identity`)}: ${t(c).user?.name} (${t(c).user?.role})`:t(r)(`settings.identityGuest`)),1)],512)),[[D,n.activeTab===`system`]])}}}),[[`__scopeId`,`data-v-4d2a2989`]]),{__name:`SettingsSystemPane`}),Ot={class:`settings-page`},kt={class:`aw-page-head`},At={class:`aw-kicker`},jt={class:`aw-stamp`},Mt={class:`settings-layout`},Nt={class:`settings-nav`},Pt=[`onClick`],Ft={class:`settings-body`},It=B(d({__name:`settings`,setup(e){let{t:r}=M(),i=A(),o=s(`appearance`),c=h(()=>[{key:`appearance`,icon:`i-tabler-palette`,label:r(`settings.theme`)},{key:`runtime`,icon:`i-tabler-settings`,label:r(`settings.runtimeTab`)},{key:`system`,icon:`i-tabler-server-2`,label:r(`settings.systemTab`)}]);return(e,s)=>{let l=I;return f(),v(`div`,Ot,[_(`div`,kt,[_(`div`,null,[_(`p`,At,a(t(r)(`menu.system`))+` / settings `,1),_(`h1`,null,a(t(r)(`settings.title`)),1)]),_(`span`,jt,`v`+a(t(i).version),1)]),m(l,{bordered:!1,class:`settings-card`},{default:x(()=>[_(`div`,Mt,[_(`div`,Nt,[(f(!0),v(y,null,p(t(c),e=>(f(),v(`button`,{key:e.key,class:n([`nav-item`,{active:t(o)===e.key}]),onClick:t=>o.value=e.key},[_(`span`,{class:n(e.icon)},null,2),_(`span`,null,a(e.label),1)],10,Pt))),128))]),_(`div`,Ft,[m(be,{"active-tab":t(o)},null,8,[`active-tab`]),m(Ct,{"active-tab":t(o)},null,8,[`active-tab`]),m(Dt,{"active-tab":t(o)},null,8,[`active-tab`])])])]),_:1})])}}}),[[`__scopeId`,`data-v-672ae7d7`]]);export{It as default};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./ByMj6e7s.js";import{t as r}from"./JgheoP3e.js";import{t as i}from"./Z-Z6EhXs.js";var a=e({useAmlExperiments:()=>o});function o(){let e=t(``),a=t([]),o=t(!1),s=t(``);async function c(){if(!e.value){a.value=[];return}o.value=!0,s.value=``;try{let t=await i(`/experiments?datasetId=${encodeURIComponent(e.value)}`);a.value=t.experiments}catch(e){s.value=r(e)}finally{o.value=!1}}return{expDatasetId:e,experiments:a,expLoading:o,expError:s,bestExpId:n(()=>{let e=null;for(let t of a.value){let n=t.metrics?.oneStepTest?.nrmse;t.status===`gates_passed`&&n!=null&&Number.isFinite(n)&&(e==null||n<e.nrmse)&&(e={id:t.id,nrmse:n})}return e?.id??``}),loadExperiments:c}}export{a as n,o as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./ByMj6e7s.js";import{t as r}from"./JgheoP3e.js";import{t as i}from"./C-LU6xv_.js";var a=e({useAmlExperiments:()=>o});function o(){let e=t(``),a=t([]),o=t(!1),s=t(``);async function c(){if(!e.value){a.value=[];return}o.value=!0,s.value=``;try{let t=await i(`/experiments?datasetId=${encodeURIComponent(e.value)}`);a.value=t.experiments}catch(e){s.value=r(e)}finally{o.value=!1}}return{expDatasetId:e,experiments:a,expLoading:o,expError:s,bestExpId:n(()=>{let e=null;for(let t of a.value){let n=t.metrics?.oneStepTest?.nrmse;t.status===`gates_passed`&&n!=null&&Number.isFinite(n)&&(e==null||n<e.nrmse)&&(e={id:t.id,nrmse:n})}return e?.id??``}),loadExperiments:c}}export{a as n,o as t};
@@ -1 +1 @@
1
- import{N as e,dt as t,ft as n,g as r,mt as i,u as a,v as o}from"./CavpkQb0.js";import{Q as s,S as c,V as l,W as u,b as d,d as f,et as p,f as m,h,i as g,k as _,m as v,nt as y,p as b,rt as x,y as S}from"./ByMj6e7s.js";import{c as C,d as w,s as T,t as E}from"./Dqz5HiXa.js";import{t as D}from"./Cmp8PMrA.js";import{n as O}from"./Cnrmlixo.js";import{t as k}from"./DxagrjB8.js";import{r as A}from"./Du9v6qGB2.js";import{t as j}from"./B_LcD7qE2.js";import{t as M}from"./DD6Z0yPN2.js";import{t as N}from"./BH3obZJ42.js";import{t as ee}from"./YaroNkJZ2.js";import{t as P}from"./EhhQmlBV2.js";var F=[`#3aa0ff`,`#f4c542`,`#35e0a0`,`#41c8f4`,`#b58cff`,`#ff8a5c`],I={class:`lc-head`},L={class:`lc-name`},te=[`title`],R=[`title`],z={key:0,class:`lc-run mono`},B={class:`lc-stats mono`},V={class:`lc-ctl`},H=[`disabled`,`title`],U={value:``},W=[`value`,`disabled`],G=[`disabled`],K=[`disabled`],ne=Object.assign(c({__name:`DcwLineCard`,props:_({card:{},state:{},recipes:{},quickBusy:{}},{pick:{},pickModifiers:{}}),emits:_([`edit`,`remove`,`start`,`stop`],[`update:pick`]),setup(e,{emit:r}){let a=r,o=s(e,`pick`);return(r,s)=>{let c=D;return l(),h(`div`,{class:t([`line-card aw-liftable`,{idle:!e.state.active}]),style:n({"--lc":e.card.line.color})},[m(`div`,I,[s[7]||=m(`span`,{class:`lc-dot`},null,-1),m(`b`,L,i(e.card.line.name),1),m(`span`,{class:t([`lc-state`,{on:e.state.active}])},i(e.state.active?r.$t(`dcw.k1eox1el055`):r.$t(`dcw.k149r6y7059`)),3),m(`button`,{class:`lc-act`,title:r.$t(`common.edit`),onClick:s[0]||=t=>a(`edit`,e.card)},[...s[5]||=[m(`span`,{class:`i-tabler-pencil`},null,-1)]],8,te),m(`button`,{class:`lc-act danger`,title:r.$t(`dcw.k3xakp026`),onClick:s[1]||=t=>a(`remove`,e.card)},[...s[6]||=[m(`span`,{class:`i-tabler-trash`},null,-1)]],8,R)]),e.state.active?(l(),h(`small`,z,i(e.state.productName)+` · `+i(e.state.recipeName)+` · `+i(r.$t(`dcw.k3zz0f052`))+` `+i(e.state.taggedSamples),1)):(l(),h(`small`,{key:1,class:t([`lc-run dim`,{ph:!e.card.line.description}])},i(e.card.line.description||r.$t(`dcw.k18moyq1056`)),3)),m(`div`,B,[m(`span`,null,[S(i(r.$t(`dcw.k45uio011`))+` `,1),m(`b`,null,i(e.card.nodes),1)]),m(`span`,null,[S(i(r.$t(`dcw.k3waz1012`))+` `,1),m(`b`,null,i(e.card.products),1)]),m(`span`,null,[S(i(r.$t(`dcw.k48grv013`))+` `,1),m(`b`,null,i(e.card.recipes),1)])]),m(`div`,V,[e.state.active?(l(),h(`button`,{key:1,class:`pill-btn stop`,disabled:e.quickBusy===e.card.line.id,onClick:s[4]||=t=>a(`stop`,e.card)},i(r.$t(`dcw.k148rclf015`)),9,K)):(l(),h(g,{key:0},[x(m(`select`,{"onUpdate:modelValue":s[2]||=e=>o.value=e,class:`inp`,disabled:e.recipes.length===0,title:r.$t(`dcw.k1dhaby4003`)},[m(`option`,U,i(e.recipes.length?r.$t(`dcw.kutxzsz057`):r.$t(`dcw.k1elczt9060`)),1),(l(!0),h(g,null,u(e.recipes,e=>(l(),h(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},i(e.name)+`(`+i(e.params.length)+`) `,9,W))),128))],8,H),[[T,o.value]]),m(`button`,{class:`pill-btn`,disabled:e.quickBusy===e.card.line.id||!o.value,onClick:s[3]||=t=>a(`start`,e.card)},i(r.$t(`dcw.k149b4vg014`)),9,G)],64))]),d(c,{class:`lc-manage`,to:`/dcw/${e.card.line.id}`},{default:y(()=>[S(i(r.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6)}}}),{__name:`DcwLineCard`}),q={class:`modal`},J={class:`m-title`},Y={class:`f`},X=[`placeholder`],re={class:`f`},Z=[`placeholder`],Q={class:`f`},ie={class:`color-row`},ae=[`onClick`],$={class:`dim`},oe={key:0,class:`m-err`},se={class:`m-actions`},ce=[`disabled`],le=Object.assign(c({__name:`DcwCreateLineModal`,props:_({saving:{type:Boolean},error:{},nextColor:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`submit`,`close`],[`update:open`]),setup(a,{emit:o}){let c=o,d=s(a,`open`),f=r({name:``,description:``,color:``});p(d,e=>{e&&(f.name=``,f.description=``,f.color=``)});function _(){c(`submit`,{name:f.name.trim(),description:f.description.trim(),color:f.color||void 0})}return(r,o)=>(l(),b(E,{name:`modal`},{default:y(()=>[d.value?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:o[3]||=w(e=>c(`close`),[`self`])},[m(`div`,q,[m(`h3`,J,i(r.$t(`dcw.k1efe391017`)),1),m(`label`,Y,[m(`span`,null,[S(i(r.$t(`dcw.k1b2ioko019`)),1),o[4]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":o[0]||=e=>f.name=e,class:`inp`,placeholder:r.$t(`dcw.kru37i3004`)},null,8,X),[[C,f.name]])]),m(`label`,re,[m(`span`,null,i(r.$t(`dcw.k24dxcd020`)),1),x(m(`input`,{"onUpdate:modelValue":o[1]||=e=>f.description=e,class:`inp`,placeholder:r.$t(`dcw.k1f2nwsp005`)},null,8,Z),[[C,f.description]])]),m(`div`,Q,[m(`span`,null,i(r.$t(`dcw.k1x7nubr021`)),1),m(`div`,ie,[(l(!0),h(g,null,u(e(F),e=>(l(),h(`button`,{key:e,class:t([`color-dot`,{on:f.color===e}]),style:n({background:e}),onClick:t=>f.color=f.color===e?``:e},null,14,ae))),128)),m(`small`,$,i(f.color||r.$t(`dcw.k1qidbpy061`,{p0:a.nextColor})),1)])]),a.error?(l(),h(`p`,oe,i(a.error),1)):v(``,!0),m(`div`,se,[m(`button`,{class:`mini-btn`,onClick:o[2]||=e=>c(`close`)},i(r.$t(`dcw.k3xdnn022`)),1),m(`button`,{class:`pill-btn`,disabled:a.saving||!f.name.trim(),onClick:_},i(r.$t(`dcw.k3wzi2023`)),9,ce)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwCreateLineModal`}),ue={class:`modal`},de={class:`m-title`},fe={class:`f`},pe=[`placeholder`],me={class:`f`},he=[`placeholder`],ge={class:`f`},_e={class:`color-row`},ve=[`onClick`],ye={class:`dim`},be={key:0,class:`m-err`},xe={class:`m-actions`},Se=[`disabled`],Ce=Object.assign(c({__name:`DcwEditLineModal`,props:_({card:{},saving:{type:Boolean},error:{},nextColor:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`submit`,`close`],[`update:open`]),setup(a,{emit:o}){let c=a,d=o,f=s(a,`open`),_=r({name:``,description:``,color:``});p(()=>c.card,e=>{e&&(_.name=e.line.name,_.description=e.line.description,_.color=e.line.color)});function T(){c.card&&d(`submit`,c.card.line.id,{name:_.name.trim(),description:_.description.trim(),color:_.color||void 0})}return(r,o)=>(l(),b(E,{name:`modal`},{default:y(()=>[f.value?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:o[3]||=w(e=>d(`close`),[`self`])},[m(`div`,ue,[m(`h3`,de,i(r.$t(`dcw.k5tq8wc071`)),1),m(`label`,fe,[m(`span`,null,[S(i(r.$t(`dcw.k1b2ioko019`)),1),o[4]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":o[0]||=e=>_.name=e,class:`inp`,placeholder:r.$t(`dcw.kru37i3004`)},null,8,pe),[[C,_.name]])]),m(`label`,me,[m(`span`,null,i(r.$t(`dcw.k24dxcd020`)),1),x(m(`input`,{"onUpdate:modelValue":o[1]||=e=>_.description=e,class:`inp`,placeholder:r.$t(`dcw.k1f2nwsp005`)},null,8,he),[[C,_.description]])]),m(`div`,ge,[m(`span`,null,i(r.$t(`dcw.k1x7nubr021`)),1),m(`div`,_e,[(l(!0),h(g,null,u(e(F),e=>(l(),h(`button`,{key:e,class:t([`color-dot`,{on:_.color===e}]),style:n({background:e}),onClick:t=>_.color=_.color===e?``:e},null,14,ve))),128)),m(`small`,ye,i(_.color||r.$t(`dcw.k1qidbpy061`,{p0:a.nextColor})),1)])]),a.error?(l(),h(`p`,be,i(a.error),1)):v(``,!0),m(`div`,xe,[m(`button`,{class:`mini-btn`,onClick:o[2]||=e=>d(`close`)},i(r.$t(`dcw.k3xdnn022`)),1),m(`button`,{class:`pill-btn`,disabled:a.saving||!_.name.trim(),onClick:T},i(r.$t(`common.save`)),9,Se)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwEditLineModal`}),we={class:`modal`},Te={class:`m-title danger-title`},Ee={class:`del-summary`},De={class:`del-purge`},Oe=[`checked`],ke={key:0,class:`m-err`},Ae={class:`m-actions`},je=[`disabled`],Me=Object.assign(c({__name:`DcwDeleteLineModal`,props:_({card:{},purge:{type:Boolean},busy:{type:Boolean},error:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`update:purge`,`close`,`confirm`],[`update:open`]),setup(e,{emit:t}){let n=t,r=s(e,`open`);return(t,a)=>(l(),b(E,{name:`modal`},{default:y(()=>[r.value&&e.card?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:a[3]||=w(e=>n(`close`),[`self`])},[m(`div`,we,[m(`h3`,Te,[a[4]||=m(`span`,{class:`i-tabler-alert-triangle`},null,-1),S(` `+i(t.$t(`dcw.k7xq2mfd063`,{p0:e.card.line.name})),1)]),m(`p`,Ee,i(e.purge?t.$t(`dcw.k4r7nbd073`,{p0:e.card.line.name,p1:e.card.nodes,p2:e.card.products,p3:e.card.recipes}):t.$t(`dcw.k1gp649b062`,{p0:e.card.line.name,p1:e.card.nodes,p2:e.card.products,p3:e.card.recipes})),1),m(`label`,De,[m(`input`,{checked:e.purge,type:`checkbox`,onChange:a[0]||=e=>n(`update:purge`,e.target.checked)},null,40,Oe),m(`span`,null,i(t.$t(`dcw.k9m2vxa072`)),1)]),e.error?(l(),h(`p`,ke,i(e.error),1)):v(``,!0),m(`div`,Ae,[m(`button`,{class:`mini-btn`,onClick:a[1]||=e=>n(`close`)},i(t.$t(`dcw.k3xdnn022`)),1),m(`button`,{class:`pill-btn danger`,disabled:e.busy,onClick:a[2]||=e=>n(`confirm`)},i(t.$t(`dcw.k3xakp026`)),9,je)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwDeleteLineModal`}),Ne={class:`modal wide`},Pe={class:`m-title`},Fe={class:`dim mono`},Ie={class:`dim tpl-hint`},Le={class:`tpl-list`},Re=[`title`],ze={class:`mono dim`},Be={key:0,class:`tpl-sem`},Ve=[`onClick`],He={class:`sec-label`},Ue={class:`tpl-form`},We={class:`f`},Ge=[`placeholder`],Ke={class:`f`},qe=[`placeholder`],Je={class:`f`},Ye=[`placeholder`],Xe={class:`f`},Ze=[`placeholder`],Qe={class:`f`},$e={class:`f`},et={class:`f`},tt={class:`f`},nt=[`value`],rt={class:`f`},it=[`placeholder`],at={key:0,class:`m-err`},ot={class:`m-actions`},st=[`disabled`],ct=Object.assign(c({__name:`DcwTemplateModal`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:[`update:open`],setup(n){let a=k(),{t:o}=O(),{tplError:c,clearTplError:d,doCreateTemplate:_,doRemoveTemplate:D,builtinCount:j}=P(),M=s(n,`open`),N=r({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),ee=[{key:`thermo`,label:o(`dcw.k422b8040`)},{key:`pressure`,label:o(`dcw.k3x6ff041`)},{key:`tension`,label:o(`dcw.k3z9xc042`)},{key:`encoder`,label:o(`dcw.kjb3vhs043`)},{key:`camera`,label:o(`dcw.k47atw044`)},{key:`gateway`,label:o(`dcw.k48c07045`)}],F=e=>A(o,e);async function I(){if(!N.name.trim()){c.value=o(`dcw.k6ugbw2046`);return}if(N.min===``||N.max===``){c.value=o(`dcw.k13awowo047`);return}await _({name:N.name.trim(),ch:N.ch.trim()||N.name.trim(),code:N.code.trim()||`CUSTOM`,unit:N.unit.trim()||`-`,min:Number(N.min),max:Number(N.max),decimals:Number(N.decimals)||0,icon:N.icon,semantics:N.semantics.trim()||void 0}),!c.value&&(N.name=``,N.ch=``,N.code=``,N.unit=``,N.min=``,N.max=``)}let L=f(()=>a.templates.length-j.value);return p(M,e=>{e&&d()}),(n,r)=>(l(),b(E,{name:`modal`},{default:y(()=>[M.value?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:r[10]||=w(e=>M.value=!1,[`self`])},[m(`div`,Ne,[m(`h3`,Pe,[S(i(n.$t(`dcw.k11oadmx024`))+` `,1),m(`small`,Fe,i(n.$t(`dcw.k3x23c054`))+` `+i(e(j))+` · `+i(n.$t(`dcw.k3t616a058`))+` `+i(L.value),1)]),m(`p`,Ie,i(n.$t(`dcw.k2hlav5025`)),1),m(`div`,Le,[(l(!0),h(g,null,u(e(a).templates,r=>(l(),h(`div`,{key:r.key,class:`tpl-row`,title:r.semantics??``},[m(`b`,null,i(F(r)),1),m(`small`,ze,i(r.code)+` · `+i(r.min)+`~`+i(r.max)+` `+i(r.unit),1),r.semantics?(l(),h(`small`,Be,i(r.semantics.slice(0,40))+i(r.semantics.length>40?`…`:``),1)):v(``,!0),m(`span`,{class:t([`tpl-tag`,{builtin:r.builtin}])},i(r.builtin?n.$t(`dcw.k3x23c054`):n.$t(`dcw.k3t616a058`)),3),r.builtin?v(``,!0):(l(),h(`button`,{key:1,class:`mini-btn danger`,onClick:t=>e(D)(r.key)},i(n.$t(`dcw.k3xakp026`)),9,Ve))],8,Re))),128))]),m(`p`,He,i(n.$t(`dcw.k169eb4s027`)),1),m(`div`,Ue,[m(`label`,We,[m(`span`,null,[S(i(n.$t(`dcw.k3xhia028`)),1),r[11]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":r[0]||=e=>N.name=e,class:`inp`,placeholder:n.$t(`dcw.k1tooi3o006`)},null,8,Ge),[[C,N.name]])]),m(`label`,Ke,[m(`span`,null,i(n.$t(`dcw.k1bqk219029`)),1),x(m(`input`,{"onUpdate:modelValue":r[1]||=e=>N.ch=e,class:`inp`,placeholder:n.$t(`dcw.k698qz0007`)},null,8,qe),[[C,N.ch]])]),m(`label`,Je,[m(`span`,null,i(n.$t(`dcw.k1ayxrqb030`)),1),x(m(`input`,{"onUpdate:modelValue":r[2]||=e=>N.code=e,class:`inp`,placeholder:n.$t(`dcw.codePh`)},null,8,Ye),[[C,N.code]])]),m(`label`,Xe,[m(`span`,null,i(n.$t(`dcw.k3x4ef031`)),1),x(m(`input`,{"onUpdate:modelValue":r[3]||=e=>N.unit=e,class:`inp`,placeholder:n.$t(`dcw.unitPh`)},null,8,Ze),[[C,N.unit]])]),m(`label`,Qe,[m(`span`,null,[S(i(n.$t(`dcw.k1l9jv5m032`)),1),r[12]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":r[4]||=e=>N.min=e,type:`number`,class:`inp`},null,512),[[C,N.min,void 0,{number:!0}]])]),m(`label`,$e,[m(`span`,null,[S(i(n.$t(`dcw.k1l9jv4p033`)),1),r[13]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":r[5]||=e=>N.max=e,type:`number`,class:`inp`},null,512),[[C,N.max,void 0,{number:!0}]])]),m(`label`,et,[m(`span`,null,i(n.$t(`dcw.k3mxmcx034`)),1),x(m(`input`,{"onUpdate:modelValue":r[6]||=e=>N.decimals=e,type:`number`,class:`inp`},null,512),[[C,N.decimals,void 0,{number:!0}]])]),m(`label`,tt,[m(`span`,null,i(n.$t(`dcw.k3xx56035`)),1),x(m(`select`,{"onUpdate:modelValue":r[7]||=e=>N.icon=e,class:`inp`},[(l(),h(g,null,u(ee,e=>m(`option`,{key:e.key,value:e.key},i(e.label),9,nt)),64))],512),[[T,N.icon]])])]),m(`label`,rt,[m(`span`,null,i(n.$t(`dcw.k1b6qorg036`)),1),x(m(`textarea`,{"onUpdate:modelValue":r[8]||=e=>N.semantics=e,class:`inp`,rows:`3`,placeholder:n.$t(`dcw.k1qdnfzc008`)},null,8,it),[[C,N.semantics]])]),e(c)?(l(),h(`p`,at,i(e(c)),1)):v(``,!0),m(`div`,ot,[m(`button`,{class:`mini-btn`,onClick:r[9]||=e=>M.value=!1},i(n.$t(`dcw.k3x62t037`)),1),m(`button`,{class:`pill-btn`,disabled:!N.name.trim()||N.min===``||N.max===``,onClick:I},i(n.$t(`dcw.k1bg9nga038`)),9,st)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwTemplateModal`}),lt={class:`page`},ut={class:`aw-page-head`},dt={class:`sub`},ft={class:`badges mono`},pt=[`title`],mt={class:`badge`},ht={key:0,class:`banner bad`},gt={class:`fleet-filter`},_t={class:`aw-seg`},vt=[`placeholder`],yt={class:`line-grid aw-stagger`},bt={key:1,class:`banner`},xt={key:2,class:`banner`},St={key:3,class:`banner bad`},Ct=c({__name:`index`,setup(n){let{t:r}=O(),s=k();s.load();let{cards:c,unassignedCount:p,recipesOf:_}=j(),{filterState:y,searchText:w,runningCount:T,shownCards:E}=M(c),D=f(()=>F[s.lines.length%F.length]??`#3aa0ff`),{createOpen:A,createSaving:P,createError:I,openCreate:L,doCreateLine:te,editOpen:R,editSaving:z,editError:B,editTarget:V,openEdit:H,doEditLine:U,delOpen:W,delBusy:G,delErr:K,delPurge:q,delCard:J,openDelete:Y,doDeleteLine:X}=N(),{quickBusy:re,quickErr:Z,quickPick:Q,quickStart:ie,quickStop:ae}=ee(r),$=o(!1);return(n,r)=>{let o=ne,f=le,O=Ce,k=Me,j=ct;return l(),h(`div`,lt,[m(`div`,ut,[m(`div`,null,[r[14]||=m(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),m(`h1`,null,i(n.$t(`dcw.k1b2tk5c009`)),1),m(`p`,dt,i(n.$t(`dcw.k5q0aqi010`)),1)]),m(`div`,ft,[e(p)?(l(),h(`span`,{key:0,class:`badge warn-badge`,title:n.$t(`dcw.k1i5a9vw001`)},i(n.$t(`dcw.k3ootr6049`))+` `+i(e(p)),9,pt)):v(``,!0),m(`span`,mt,i(n.$t(`dcw.k3wj9n050`))+` `+i(e(s).lines.length),1),m(`button`,{class:`badge tpl-btn`,onClick:r[0]||=e=>$.value=!0},i(n.$t(`dcw.k11nndsp051`))+` `+i(e(s).templates.length),1)])]),e(Z)?(l(),h(`p`,ht,i(e(Z)),1)):v(``,!0),m(`div`,gt,[m(`div`,_t,[m(`button`,{class:t({on:e(y)===`all`}),onClick:r[1]||=e=>y.value=`all`},i(n.$t(`common.all`))+` `+i(e(c).length),3),m(`button`,{class:t({on:e(y)===`running`}),onClick:r[2]||=e=>y.value=`running`},i(n.$t(`dcw.k1eox1el055`))+` `+i(e(T)),3),m(`button`,{class:t({on:e(y)===`idle`}),onClick:r[3]||=e=>y.value=`idle`},i(n.$t(`dcw.k149r6y7059`))+` `+i(e(c).length-e(T)),3)]),x(m(`input`,{"onUpdate:modelValue":r[4]||=e=>a(w)?w.value=e:null,class:`inp fleet-search`,type:`search`,placeholder:n.$t(`dcw.filterSearchPh`)},null,8,vt),[[C,e(w)]])]),m(`div`,yt,[(l(!0),h(g,null,u(e(E),t=>(l(),b(o,{key:t.line.id,pick:e(Q)[t.line.id],"onUpdate:pick":n=>e(Q)[t.line.id]=n,card:t,state:e(s).lineStateOf(t.line.id),recipes:e(_)(t.line.id),"quick-busy":e(re),onEdit:e(H),onRemove:e(Y),onStart:e(ie),onStop:e(ae)},null,8,[`pick`,`onUpdate:pick`,`card`,`state`,`recipes`,`quick-busy`,`onEdit`,`onRemove`,`onStart`,`onStop`]))),128)),m(`button`,{class:`line-card new-card`,onClick:r[5]||=(...t)=>e(L)&&e(L)(...t)},[r[15]||=m(`span`,{class:`i-tabler-plus`},null,-1),S(` `+i(n.$t(`dcw.k1efe391017`))+` `,1),m(`small`,null,i(n.$t(`dcw.k19dlbli053`)),1)])]),e(s).loaded&&e(s).lines.length===0?(l(),h(`p`,bt,i(n.$t(`dcw.k1sk85vs018`)),1)):e(s).loaded&&e(E).length===0?(l(),h(`p`,xt,i(n.$t(`dcw.filterEmpty`)),1)):v(``,!0),d(f,{open:e(A),"onUpdate:open":r[6]||=e=>a(A)?A.value=e:null,saving:e(P),error:e(I),"next-color":D.value,onSubmit:e(te),onClose:r[7]||=e=>A.value=!1},null,8,[`open`,`saving`,`error`,`next-color`,`onSubmit`]),d(O,{open:e(R),"onUpdate:open":r[8]||=e=>a(R)?R.value=e:null,card:e(V),saving:e(z),error:e(B),"next-color":D.value,onSubmit:e(U),onClose:r[9]||=e=>R.value=!1},null,8,[`open`,`card`,`saving`,`error`,`next-color`,`onSubmit`]),d(k,{open:e(W),"onUpdate:open":r[10]||=e=>a(W)?W.value=e:null,purge:e(q),"onUpdate:purge":r[11]||=e=>a(q)?q.value=e:null,card:e(J),busy:e(G),error:e(K),onConfirm:e(X),onClose:r[12]||=e=>W.value=!1},null,8,[`open`,`purge`,`card`,`busy`,`error`,`onConfirm`]),d(j,{open:$.value,"onUpdate:open":r[13]||=e=>$.value=e},null,8,[`open`]),e(s).error?(l(),h(`p`,St,i(e(s).error),1)):v(``,!0)])}}});export{Ct as default};
1
+ import{N as e,dt as t,ft as n,g as r,mt as i,u as a,v as o}from"./CavpkQb0.js";import{Q as s,S as c,V as l,W as u,b as d,d as f,et as p,f as m,h,i as g,k as _,m as v,nt as y,p as b,rt as x,y as S}from"./ByMj6e7s.js";import{c as C,d as w,s as T,t as E}from"./Dqz5HiXa.js";import{t as D}from"./Cmp8PMrA.js";import{n as O}from"./Cnrmlixo.js";import{t as k}from"./CFjveTJh.js";import{r as A}from"./Du9v6qGB2.js";import{t as j}from"./BdF9OAZq2.js";import{t as M}from"./MbT4wXb62.js";import{t as N}from"./uY58gQqR2.js";import{t as ee}from"./BmTzcKJg2.js";import{t as P}from"./D2Sm-GTk2.js";var F=[`#3aa0ff`,`#f4c542`,`#35e0a0`,`#41c8f4`,`#b58cff`,`#ff8a5c`],I={class:`lc-head`},L={class:`lc-name`},te=[`title`],R=[`title`],z={key:0,class:`lc-run mono`},B={class:`lc-stats mono`},V={class:`lc-ctl`},H=[`disabled`,`title`],U={value:``},W=[`value`,`disabled`],G=[`disabled`],K=[`disabled`],ne=Object.assign(c({__name:`DcwLineCard`,props:_({card:{},state:{},recipes:{},quickBusy:{}},{pick:{},pickModifiers:{}}),emits:_([`edit`,`remove`,`start`,`stop`],[`update:pick`]),setup(e,{emit:r}){let a=r,o=s(e,`pick`);return(r,s)=>{let c=D;return l(),h(`div`,{class:t([`line-card aw-liftable`,{idle:!e.state.active}]),style:n({"--lc":e.card.line.color})},[m(`div`,I,[s[7]||=m(`span`,{class:`lc-dot`},null,-1),m(`b`,L,i(e.card.line.name),1),m(`span`,{class:t([`lc-state`,{on:e.state.active}])},i(e.state.active?r.$t(`dcw.k1eox1el055`):r.$t(`dcw.k149r6y7059`)),3),m(`button`,{class:`lc-act`,title:r.$t(`common.edit`),onClick:s[0]||=t=>a(`edit`,e.card)},[...s[5]||=[m(`span`,{class:`i-tabler-pencil`},null,-1)]],8,te),m(`button`,{class:`lc-act danger`,title:r.$t(`dcw.k3xakp026`),onClick:s[1]||=t=>a(`remove`,e.card)},[...s[6]||=[m(`span`,{class:`i-tabler-trash`},null,-1)]],8,R)]),e.state.active?(l(),h(`small`,z,i(e.state.productName)+` · `+i(e.state.recipeName)+` · `+i(r.$t(`dcw.k3zz0f052`))+` `+i(e.state.taggedSamples),1)):(l(),h(`small`,{key:1,class:t([`lc-run dim`,{ph:!e.card.line.description}])},i(e.card.line.description||r.$t(`dcw.k18moyq1056`)),3)),m(`div`,B,[m(`span`,null,[S(i(r.$t(`dcw.k45uio011`))+` `,1),m(`b`,null,i(e.card.nodes),1)]),m(`span`,null,[S(i(r.$t(`dcw.k3waz1012`))+` `,1),m(`b`,null,i(e.card.products),1)]),m(`span`,null,[S(i(r.$t(`dcw.k48grv013`))+` `,1),m(`b`,null,i(e.card.recipes),1)])]),m(`div`,V,[e.state.active?(l(),h(`button`,{key:1,class:`pill-btn stop`,disabled:e.quickBusy===e.card.line.id,onClick:s[4]||=t=>a(`stop`,e.card)},i(r.$t(`dcw.k148rclf015`)),9,K)):(l(),h(g,{key:0},[x(m(`select`,{"onUpdate:modelValue":s[2]||=e=>o.value=e,class:`inp`,disabled:e.recipes.length===0,title:r.$t(`dcw.k1dhaby4003`)},[m(`option`,U,i(e.recipes.length?r.$t(`dcw.kutxzsz057`):r.$t(`dcw.k1elczt9060`)),1),(l(!0),h(g,null,u(e.recipes,e=>(l(),h(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},i(e.name)+`(`+i(e.params.length)+`) `,9,W))),128))],8,H),[[T,o.value]]),m(`button`,{class:`pill-btn`,disabled:e.quickBusy===e.card.line.id||!o.value,onClick:s[3]||=t=>a(`start`,e.card)},i(r.$t(`dcw.k149b4vg014`)),9,G)],64))]),d(c,{class:`lc-manage`,to:`/dcw/${e.card.line.id}`},{default:y(()=>[S(i(r.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6)}}}),{__name:`DcwLineCard`}),q={class:`modal`},J={class:`m-title`},Y={class:`f`},X=[`placeholder`],re={class:`f`},Z=[`placeholder`],Q={class:`f`},ie={class:`color-row`},ae=[`onClick`],$={class:`dim`},oe={key:0,class:`m-err`},se={class:`m-actions`},ce=[`disabled`],le=Object.assign(c({__name:`DcwCreateLineModal`,props:_({saving:{type:Boolean},error:{},nextColor:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`submit`,`close`],[`update:open`]),setup(a,{emit:o}){let c=o,d=s(a,`open`),f=r({name:``,description:``,color:``});p(d,e=>{e&&(f.name=``,f.description=``,f.color=``)});function _(){c(`submit`,{name:f.name.trim(),description:f.description.trim(),color:f.color||void 0})}return(r,o)=>(l(),b(E,{name:`modal`},{default:y(()=>[d.value?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:o[3]||=w(e=>c(`close`),[`self`])},[m(`div`,q,[m(`h3`,J,i(r.$t(`dcw.k1efe391017`)),1),m(`label`,Y,[m(`span`,null,[S(i(r.$t(`dcw.k1b2ioko019`)),1),o[4]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":o[0]||=e=>f.name=e,class:`inp`,placeholder:r.$t(`dcw.kru37i3004`)},null,8,X),[[C,f.name]])]),m(`label`,re,[m(`span`,null,i(r.$t(`dcw.k24dxcd020`)),1),x(m(`input`,{"onUpdate:modelValue":o[1]||=e=>f.description=e,class:`inp`,placeholder:r.$t(`dcw.k1f2nwsp005`)},null,8,Z),[[C,f.description]])]),m(`div`,Q,[m(`span`,null,i(r.$t(`dcw.k1x7nubr021`)),1),m(`div`,ie,[(l(!0),h(g,null,u(e(F),e=>(l(),h(`button`,{key:e,class:t([`color-dot`,{on:f.color===e}]),style:n({background:e}),onClick:t=>f.color=f.color===e?``:e},null,14,ae))),128)),m(`small`,$,i(f.color||r.$t(`dcw.k1qidbpy061`,{p0:a.nextColor})),1)])]),a.error?(l(),h(`p`,oe,i(a.error),1)):v(``,!0),m(`div`,se,[m(`button`,{class:`mini-btn`,onClick:o[2]||=e=>c(`close`)},i(r.$t(`dcw.k3xdnn022`)),1),m(`button`,{class:`pill-btn`,disabled:a.saving||!f.name.trim(),onClick:_},i(r.$t(`dcw.k3wzi2023`)),9,ce)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwCreateLineModal`}),ue={class:`modal`},de={class:`m-title`},fe={class:`f`},pe=[`placeholder`],me={class:`f`},he=[`placeholder`],ge={class:`f`},_e={class:`color-row`},ve=[`onClick`],ye={class:`dim`},be={key:0,class:`m-err`},xe={class:`m-actions`},Se=[`disabled`],Ce=Object.assign(c({__name:`DcwEditLineModal`,props:_({card:{},saving:{type:Boolean},error:{},nextColor:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`submit`,`close`],[`update:open`]),setup(a,{emit:o}){let c=a,d=o,f=s(a,`open`),_=r({name:``,description:``,color:``});p(()=>c.card,e=>{e&&(_.name=e.line.name,_.description=e.line.description,_.color=e.line.color)});function T(){c.card&&d(`submit`,c.card.line.id,{name:_.name.trim(),description:_.description.trim(),color:_.color||void 0})}return(r,o)=>(l(),b(E,{name:`modal`},{default:y(()=>[f.value?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:o[3]||=w(e=>d(`close`),[`self`])},[m(`div`,ue,[m(`h3`,de,i(r.$t(`dcw.k5tq8wc071`)),1),m(`label`,fe,[m(`span`,null,[S(i(r.$t(`dcw.k1b2ioko019`)),1),o[4]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":o[0]||=e=>_.name=e,class:`inp`,placeholder:r.$t(`dcw.kru37i3004`)},null,8,pe),[[C,_.name]])]),m(`label`,me,[m(`span`,null,i(r.$t(`dcw.k24dxcd020`)),1),x(m(`input`,{"onUpdate:modelValue":o[1]||=e=>_.description=e,class:`inp`,placeholder:r.$t(`dcw.k1f2nwsp005`)},null,8,he),[[C,_.description]])]),m(`div`,ge,[m(`span`,null,i(r.$t(`dcw.k1x7nubr021`)),1),m(`div`,_e,[(l(!0),h(g,null,u(e(F),e=>(l(),h(`button`,{key:e,class:t([`color-dot`,{on:_.color===e}]),style:n({background:e}),onClick:t=>_.color=_.color===e?``:e},null,14,ve))),128)),m(`small`,ye,i(_.color||r.$t(`dcw.k1qidbpy061`,{p0:a.nextColor})),1)])]),a.error?(l(),h(`p`,be,i(a.error),1)):v(``,!0),m(`div`,xe,[m(`button`,{class:`mini-btn`,onClick:o[2]||=e=>d(`close`)},i(r.$t(`dcw.k3xdnn022`)),1),m(`button`,{class:`pill-btn`,disabled:a.saving||!_.name.trim(),onClick:T},i(r.$t(`common.save`)),9,Se)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwEditLineModal`}),we={class:`modal`},Te={class:`m-title danger-title`},Ee={class:`del-summary`},De={class:`del-purge`},Oe=[`checked`],ke={key:0,class:`m-err`},Ae={class:`m-actions`},je=[`disabled`],Me=Object.assign(c({__name:`DcwDeleteLineModal`,props:_({card:{},purge:{type:Boolean},busy:{type:Boolean},error:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`update:purge`,`close`,`confirm`],[`update:open`]),setup(e,{emit:t}){let n=t,r=s(e,`open`);return(t,a)=>(l(),b(E,{name:`modal`},{default:y(()=>[r.value&&e.card?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:a[3]||=w(e=>n(`close`),[`self`])},[m(`div`,we,[m(`h3`,Te,[a[4]||=m(`span`,{class:`i-tabler-alert-triangle`},null,-1),S(` `+i(t.$t(`dcw.k7xq2mfd063`,{p0:e.card.line.name})),1)]),m(`p`,Ee,i(e.purge?t.$t(`dcw.k4r7nbd073`,{p0:e.card.line.name,p1:e.card.nodes,p2:e.card.products,p3:e.card.recipes}):t.$t(`dcw.k1gp649b062`,{p0:e.card.line.name,p1:e.card.nodes,p2:e.card.products,p3:e.card.recipes})),1),m(`label`,De,[m(`input`,{checked:e.purge,type:`checkbox`,onChange:a[0]||=e=>n(`update:purge`,e.target.checked)},null,40,Oe),m(`span`,null,i(t.$t(`dcw.k9m2vxa072`)),1)]),e.error?(l(),h(`p`,ke,i(e.error),1)):v(``,!0),m(`div`,Ae,[m(`button`,{class:`mini-btn`,onClick:a[1]||=e=>n(`close`)},i(t.$t(`dcw.k3xdnn022`)),1),m(`button`,{class:`pill-btn danger`,disabled:e.busy,onClick:a[2]||=e=>n(`confirm`)},i(t.$t(`dcw.k3xakp026`)),9,je)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwDeleteLineModal`}),Ne={class:`modal wide`},Pe={class:`m-title`},Fe={class:`dim mono`},Ie={class:`dim tpl-hint`},Le={class:`tpl-list`},Re=[`title`],ze={class:`mono dim`},Be={key:0,class:`tpl-sem`},Ve=[`onClick`],He={class:`sec-label`},Ue={class:`tpl-form`},We={class:`f`},Ge=[`placeholder`],Ke={class:`f`},qe=[`placeholder`],Je={class:`f`},Ye=[`placeholder`],Xe={class:`f`},Ze=[`placeholder`],Qe={class:`f`},$e={class:`f`},et={class:`f`},tt={class:`f`},nt=[`value`],rt={class:`f`},it=[`placeholder`],at={key:0,class:`m-err`},ot={class:`m-actions`},st=[`disabled`],ct=Object.assign(c({__name:`DcwTemplateModal`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:[`update:open`],setup(n){let a=k(),{t:o}=O(),{tplError:c,clearTplError:d,doCreateTemplate:_,doRemoveTemplate:D,builtinCount:j}=P(),M=s(n,`open`),N=r({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),ee=[{key:`thermo`,label:o(`dcw.k422b8040`)},{key:`pressure`,label:o(`dcw.k3x6ff041`)},{key:`tension`,label:o(`dcw.k3z9xc042`)},{key:`encoder`,label:o(`dcw.kjb3vhs043`)},{key:`camera`,label:o(`dcw.k47atw044`)},{key:`gateway`,label:o(`dcw.k48c07045`)}],F=e=>A(o,e);async function I(){if(!N.name.trim()){c.value=o(`dcw.k6ugbw2046`);return}if(N.min===``||N.max===``){c.value=o(`dcw.k13awowo047`);return}await _({name:N.name.trim(),ch:N.ch.trim()||N.name.trim(),code:N.code.trim()||`CUSTOM`,unit:N.unit.trim()||`-`,min:Number(N.min),max:Number(N.max),decimals:Number(N.decimals)||0,icon:N.icon,semantics:N.semantics.trim()||void 0}),!c.value&&(N.name=``,N.ch=``,N.code=``,N.unit=``,N.min=``,N.max=``)}let L=f(()=>a.templates.length-j.value);return p(M,e=>{e&&d()}),(n,r)=>(l(),b(E,{name:`modal`},{default:y(()=>[M.value?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:r[10]||=w(e=>M.value=!1,[`self`])},[m(`div`,Ne,[m(`h3`,Pe,[S(i(n.$t(`dcw.k11oadmx024`))+` `,1),m(`small`,Fe,i(n.$t(`dcw.k3x23c054`))+` `+i(e(j))+` · `+i(n.$t(`dcw.k3t616a058`))+` `+i(L.value),1)]),m(`p`,Ie,i(n.$t(`dcw.k2hlav5025`)),1),m(`div`,Le,[(l(!0),h(g,null,u(e(a).templates,r=>(l(),h(`div`,{key:r.key,class:`tpl-row`,title:r.semantics??``},[m(`b`,null,i(F(r)),1),m(`small`,ze,i(r.code)+` · `+i(r.min)+`~`+i(r.max)+` `+i(r.unit),1),r.semantics?(l(),h(`small`,Be,i(r.semantics.slice(0,40))+i(r.semantics.length>40?`…`:``),1)):v(``,!0),m(`span`,{class:t([`tpl-tag`,{builtin:r.builtin}])},i(r.builtin?n.$t(`dcw.k3x23c054`):n.$t(`dcw.k3t616a058`)),3),r.builtin?v(``,!0):(l(),h(`button`,{key:1,class:`mini-btn danger`,onClick:t=>e(D)(r.key)},i(n.$t(`dcw.k3xakp026`)),9,Ve))],8,Re))),128))]),m(`p`,He,i(n.$t(`dcw.k169eb4s027`)),1),m(`div`,Ue,[m(`label`,We,[m(`span`,null,[S(i(n.$t(`dcw.k3xhia028`)),1),r[11]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":r[0]||=e=>N.name=e,class:`inp`,placeholder:n.$t(`dcw.k1tooi3o006`)},null,8,Ge),[[C,N.name]])]),m(`label`,Ke,[m(`span`,null,i(n.$t(`dcw.k1bqk219029`)),1),x(m(`input`,{"onUpdate:modelValue":r[1]||=e=>N.ch=e,class:`inp`,placeholder:n.$t(`dcw.k698qz0007`)},null,8,qe),[[C,N.ch]])]),m(`label`,Je,[m(`span`,null,i(n.$t(`dcw.k1ayxrqb030`)),1),x(m(`input`,{"onUpdate:modelValue":r[2]||=e=>N.code=e,class:`inp`,placeholder:n.$t(`dcw.codePh`)},null,8,Ye),[[C,N.code]])]),m(`label`,Xe,[m(`span`,null,i(n.$t(`dcw.k3x4ef031`)),1),x(m(`input`,{"onUpdate:modelValue":r[3]||=e=>N.unit=e,class:`inp`,placeholder:n.$t(`dcw.unitPh`)},null,8,Ze),[[C,N.unit]])]),m(`label`,Qe,[m(`span`,null,[S(i(n.$t(`dcw.k1l9jv5m032`)),1),r[12]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":r[4]||=e=>N.min=e,type:`number`,class:`inp`},null,512),[[C,N.min,void 0,{number:!0}]])]),m(`label`,$e,[m(`span`,null,[S(i(n.$t(`dcw.k1l9jv4p033`)),1),r[13]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":r[5]||=e=>N.max=e,type:`number`,class:`inp`},null,512),[[C,N.max,void 0,{number:!0}]])]),m(`label`,et,[m(`span`,null,i(n.$t(`dcw.k3mxmcx034`)),1),x(m(`input`,{"onUpdate:modelValue":r[6]||=e=>N.decimals=e,type:`number`,class:`inp`},null,512),[[C,N.decimals,void 0,{number:!0}]])]),m(`label`,tt,[m(`span`,null,i(n.$t(`dcw.k3xx56035`)),1),x(m(`select`,{"onUpdate:modelValue":r[7]||=e=>N.icon=e,class:`inp`},[(l(),h(g,null,u(ee,e=>m(`option`,{key:e.key,value:e.key},i(e.label),9,nt)),64))],512),[[T,N.icon]])])]),m(`label`,rt,[m(`span`,null,i(n.$t(`dcw.k1b6qorg036`)),1),x(m(`textarea`,{"onUpdate:modelValue":r[8]||=e=>N.semantics=e,class:`inp`,rows:`3`,placeholder:n.$t(`dcw.k1qdnfzc008`)},null,8,it),[[C,N.semantics]])]),e(c)?(l(),h(`p`,at,i(e(c)),1)):v(``,!0),m(`div`,ot,[m(`button`,{class:`mini-btn`,onClick:r[9]||=e=>M.value=!1},i(n.$t(`dcw.k3x62t037`)),1),m(`button`,{class:`pill-btn`,disabled:!N.name.trim()||N.min===``||N.max===``,onClick:I},i(n.$t(`dcw.k1bg9nga038`)),9,st)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwTemplateModal`}),lt={class:`page`},ut={class:`aw-page-head`},dt={class:`sub`},ft={class:`badges mono`},pt=[`title`],mt={class:`badge`},ht={key:0,class:`banner bad`},gt={class:`fleet-filter`},_t={class:`aw-seg`},vt=[`placeholder`],yt={class:`line-grid aw-stagger`},bt={key:1,class:`banner`},xt={key:2,class:`banner`},St={key:3,class:`banner bad`},Ct=c({__name:`index`,setup(n){let{t:r}=O(),s=k();s.load();let{cards:c,unassignedCount:p,recipesOf:_}=j(),{filterState:y,searchText:w,runningCount:T,shownCards:E}=M(c),D=f(()=>F[s.lines.length%F.length]??`#3aa0ff`),{createOpen:A,createSaving:P,createError:I,openCreate:L,doCreateLine:te,editOpen:R,editSaving:z,editError:B,editTarget:V,openEdit:H,doEditLine:U,delOpen:W,delBusy:G,delErr:K,delPurge:q,delCard:J,openDelete:Y,doDeleteLine:X}=N(),{quickBusy:re,quickErr:Z,quickPick:Q,quickStart:ie,quickStop:ae}=ee(r),$=o(!1);return(n,r)=>{let o=ne,f=le,O=Ce,k=Me,j=ct;return l(),h(`div`,lt,[m(`div`,ut,[m(`div`,null,[r[14]||=m(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),m(`h1`,null,i(n.$t(`dcw.k1b2tk5c009`)),1),m(`p`,dt,i(n.$t(`dcw.k5q0aqi010`)),1)]),m(`div`,ft,[e(p)?(l(),h(`span`,{key:0,class:`badge warn-badge`,title:n.$t(`dcw.k1i5a9vw001`)},i(n.$t(`dcw.k3ootr6049`))+` `+i(e(p)),9,pt)):v(``,!0),m(`span`,mt,i(n.$t(`dcw.k3wj9n050`))+` `+i(e(s).lines.length),1),m(`button`,{class:`badge tpl-btn`,onClick:r[0]||=e=>$.value=!0},i(n.$t(`dcw.k11nndsp051`))+` `+i(e(s).templates.length),1)])]),e(Z)?(l(),h(`p`,ht,i(e(Z)),1)):v(``,!0),m(`div`,gt,[m(`div`,_t,[m(`button`,{class:t({on:e(y)===`all`}),onClick:r[1]||=e=>y.value=`all`},i(n.$t(`common.all`))+` `+i(e(c).length),3),m(`button`,{class:t({on:e(y)===`running`}),onClick:r[2]||=e=>y.value=`running`},i(n.$t(`dcw.k1eox1el055`))+` `+i(e(T)),3),m(`button`,{class:t({on:e(y)===`idle`}),onClick:r[3]||=e=>y.value=`idle`},i(n.$t(`dcw.k149r6y7059`))+` `+i(e(c).length-e(T)),3)]),x(m(`input`,{"onUpdate:modelValue":r[4]||=e=>a(w)?w.value=e:null,class:`inp fleet-search`,type:`search`,placeholder:n.$t(`dcw.filterSearchPh`)},null,8,vt),[[C,e(w)]])]),m(`div`,yt,[(l(!0),h(g,null,u(e(E),t=>(l(),b(o,{key:t.line.id,pick:e(Q)[t.line.id],"onUpdate:pick":n=>e(Q)[t.line.id]=n,card:t,state:e(s).lineStateOf(t.line.id),recipes:e(_)(t.line.id),"quick-busy":e(re),onEdit:e(H),onRemove:e(Y),onStart:e(ie),onStop:e(ae)},null,8,[`pick`,`onUpdate:pick`,`card`,`state`,`recipes`,`quick-busy`,`onEdit`,`onRemove`,`onStart`,`onStop`]))),128)),m(`button`,{class:`line-card new-card`,onClick:r[5]||=(...t)=>e(L)&&e(L)(...t)},[r[15]||=m(`span`,{class:`i-tabler-plus`},null,-1),S(` `+i(n.$t(`dcw.k1efe391017`))+` `,1),m(`small`,null,i(n.$t(`dcw.k19dlbli053`)),1)])]),e(s).loaded&&e(s).lines.length===0?(l(),h(`p`,bt,i(n.$t(`dcw.k1sk85vs018`)),1)):e(s).loaded&&e(E).length===0?(l(),h(`p`,xt,i(n.$t(`dcw.filterEmpty`)),1)):v(``,!0),d(f,{open:e(A),"onUpdate:open":r[6]||=e=>a(A)?A.value=e:null,saving:e(P),error:e(I),"next-color":D.value,onSubmit:e(te),onClose:r[7]||=e=>A.value=!1},null,8,[`open`,`saving`,`error`,`next-color`,`onSubmit`]),d(O,{open:e(R),"onUpdate:open":r[8]||=e=>a(R)?R.value=e:null,card:e(V),saving:e(z),error:e(B),"next-color":D.value,onSubmit:e(U),onClose:r[9]||=e=>R.value=!1},null,8,[`open`,`card`,`saving`,`error`,`next-color`,`onSubmit`]),d(k,{open:e(W),"onUpdate:open":r[10]||=e=>a(W)?W.value=e:null,purge:e(q),"onUpdate:purge":r[11]||=e=>a(q)?q.value=e:null,card:e(J),busy:e(G),error:e(K),onConfirm:e(X),onClose:r[12]||=e=>W.value=!1},null,8,[`open`,`purge`,`card`,`busy`,`error`,`onConfirm`]),d(j,{open:$.value,"onUpdate:open":r[13]||=e=>$.value=e},null,8,[`open`]),e(s).error?(l(),h(`p`,St,i(e(s).error),1)):v(``,!0)])}}});export{Ct as default};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{et as n}from"./ByMj6e7s.js";import{d as r}from"./Br3AySNQ.js";import{n as i}from"./Cnrmlixo.js";import{a}from"./wDPc4SSR.js";import{t as o}from"./CI2yXRr42.js";import{o as s,t as c}from"./D0SNhlnt.js";import{t as l}from"./C_sjV3Ee.js";import{t as u}from"./JgheoP3e.js";var d=e({useWorkbenchWorkspaces:()=>f});function f(){let{t:e}=i(),d=o(),f=l(),p=s(),{subscribe:m}=c(),h=t(!1);n(()=>d.isLoggedIn,async t=>{if(!t){h.value=!1;return}if(await d.refresh(),d.isLoggedIn)try{await f.load(),h.value=!0}catch(t){a.error(t instanceof Error?t.message:e(`wsHome.k1br33vc023`))}},{immediate:!0}),n(()=>h.value&&f.workspaces.map(e=>e.channelIds.join(`,`)).join(`|`),()=>{if(h.value)for(let e of f.workspaces)for(let t of e.channelIds)m(t)},{immediate:!0});let g=t(!1),_=t(``),v=t(!1);return{wsStore:f,ready:h,createOpen:g,createName:_,createLoading:v,create:async()=>{let t=_.value.trim();if(!t){a.warning(e(`wsHome.nameRequired`));return}v.value=!0;try{let e=await f.create(t);g.value=!1,_.value=``,f.setActiveWorkspaceId(e.id),r(`/workshop/w/${e.id}`)}catch(e){a.error(u(e))}finally{v.value=!1}},remove:async t=>{await f.remove(t),a.success(e(`wsHome.k3n5sd7024`))},channelSummary:e=>e.map(e=>{let t=p.channels[e],n=p.agents[e]??[];return{id:e,name:t?.name??e.slice(0,8),synced:t!==void 0,agents:n.length,busy:n.filter(e=>e.state===`busy`).length,activeTasks:(p.tasks[e]??[]).filter(e=>![`COMPLETED`,`CANCELED`,`FAILED`].includes(e.state)).length}})}}export{d as n,f as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{et as n}from"./ByMj6e7s.js";import{d as r}from"./Br3AySNQ.js";import{n as i}from"./Cnrmlixo.js";import{a}from"./wDPc4SSR.js";import{t as o}from"./CI2yXRr42.js";import{a as s,t as c}from"./DuPM4HXw.js";import{t as l}from"./C_sjV3Ee.js";import{t as u}from"./JgheoP3e.js";var d=e({useWorkbenchWorkspaces:()=>f});function f(){let{t:e}=i(),d=o(),f=l(),p=s(),{subscribe:m}=c(),h=t(!1);n(()=>d.isLoggedIn,async t=>{if(!t){h.value=!1;return}if(await d.refresh(),d.isLoggedIn)try{await f.load(),h.value=!0}catch(t){a.error(t instanceof Error?t.message:e(`wsHome.k1br33vc023`))}},{immediate:!0}),n(()=>h.value&&f.workspaces.map(e=>e.channelIds.join(`,`)).join(`|`),()=>{if(h.value)for(let e of f.workspaces)for(let t of e.channelIds)m(t)},{immediate:!0});let g=t(!1),_=t(``),v=t(!1);return{wsStore:f,ready:h,createOpen:g,createName:_,createLoading:v,create:async()=>{let t=_.value.trim();if(!t){a.warning(e(`wsHome.nameRequired`));return}v.value=!0;try{let e=await f.create(t);g.value=!1,_.value=``,f.setActiveWorkspaceId(e.id),r(`/workshop/w/${e.id}`)}catch(e){a.error(u(e))}finally{v.value=!1}},remove:async t=>{await f.remove(t),a.success(e(`wsHome.k3n5sd7024`))},channelSummary:e=>e.map(e=>{let t=p.channels[e],n=p.agents[e]??[];return{id:e,name:t?.name??e.slice(0,8),synced:t!==void 0,agents:n.length,busy:n.filter(e=>e.state===`busy`).length,activeTasks:(p.tasks[e]??[]).filter(e=>![`COMPLETED`,`CANCELED`,`FAILED`].includes(e.state)).length}})}}export{d as n,f as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./ByMj6e7s.js";import{t as r}from"./DxagrjB8.js";var i=e({useDaqOptimizations:()=>a});function a(){let e=r(),i=t(!1),a=t(!1),o=t(``),s=t(``),c=t({}),l=t(``),u=n(()=>e.recipes.filter(e=>!o.value||e.lineId===o.value));function d(e){return{open:`daq.k1optst001`,judged:`daq.k1optst008`,"judged-keep":`daq.k1optst002`,"rolled-back":`daq.k1optst003`,superseded:`daq.k1optst004`,"superseded-manual":`daq.k1optst005`,"closed-line-stop":`daq.k1optst006`,failed:`daq.k1optst007`}[e]??`daq.k1optst001`}async function f(){i.value=!i.value,i.value&&(a.value=!0,await p())}async function p(){await e.loadOptimizations({lineId:o.value||void 0,recipeId:s.value||void 0})}function m(){s.value&&!u.value.some(e=>e.id===s.value)&&(s.value=``),p()}async function h(t){l.value=t;try{let n=await e.optimizationSeries(t);c.value={...c.value,[t]:n}}finally{l.value=``}}function g(e,t=240,n=36){let r=e.map(e=>e.value??e.avg??0).filter(Number.isFinite);if(r.length<2)return``;let i=Math.min(...r),a=Math.max(...r)-i||1;return r.map((e,o)=>`${o/(r.length-1)*t},${n-(e-i)/a*n}`).join(` `)}async function _(t){await e.rollbackOptimization(t),await p()}function v(e){return e==null?`--`:String(Number(e.toFixed(2)))}return{optOpen:i,optMounted:a,optFilterLine:o,optFilterRecipe:s,optSeriesOf:c,optSeriesLoading:l,optRecipeOptions:u,optStatusKey:d,toggleOptPanel:f,filterOpts:p,onOptLineChange:m,showOptSeries:h,seriesPath:g,rollbackRecord:_,fmtPoint:v}}export{i as n,a as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./ByMj6e7s.js";import{t as r}from"./CFjveTJh.js";var i=e({useDaqOptimizations:()=>a});function a(){let e=r(),i=t(!1),a=t(!1),o=t(``),s=t(``),c=t({}),l=t(``),u=n(()=>e.recipes.filter(e=>!o.value||e.lineId===o.value));function d(e){return{open:`daq.k1optst001`,judged:`daq.k1optst008`,"judged-keep":`daq.k1optst002`,"rolled-back":`daq.k1optst003`,superseded:`daq.k1optst004`,"superseded-manual":`daq.k1optst005`,"closed-line-stop":`daq.k1optst006`,failed:`daq.k1optst007`}[e]??`daq.k1optst001`}async function f(){i.value=!i.value,i.value&&(a.value=!0,await p())}async function p(){await e.loadOptimizations({lineId:o.value||void 0,recipeId:s.value||void 0})}function m(){s.value&&!u.value.some(e=>e.id===s.value)&&(s.value=``),p()}async function h(t){l.value=t;try{let n=await e.optimizationSeries(t);c.value={...c.value,[t]:n}}finally{l.value=``}}function g(e,t=240,n=36){let r=e.map(e=>e.value??e.avg??0).filter(Number.isFinite);if(r.length<2)return``;let i=Math.min(...r),a=Math.max(...r)-i||1;return r.map((e,o)=>`${o/(r.length-1)*t},${n-(e-i)/a*n}`).join(` `)}async function _(t){await e.rollbackOptimization(t),await p()}function v(e){return e==null?`--`:String(Number(e.toFixed(2)))}return{optOpen:i,optMounted:a,optFilterLine:o,optFilterRecipe:s,optSeriesOf:c,optSeriesLoading:l,optRecipeOptions:u,optStatusKey:d,toggleOptPanel:f,filterOpts:p,onOptLineChange:m,showOptSeries:h,seriesPath:g,rollbackRecord:_,fmtPoint:v}}export{i as n,a as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./DK3Fl9T5.js";import{n as t}from"./BQOn0q6Y.js";var n=e({amlApi:()=>r});function r(e,n){return t({base:`/api/workshop/aml`,path:e,init:n})}export{n,r as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{P as t,R as n,d as r}from"./ByMj6e7s.js";import{a as i}from"./BnpY_zNx.js";import{n as a}from"./Cnrmlixo.js";import{a as o,t as s}from"./Bl5dYv4m.js";import{t as c}from"./DxagrjB8.js";import{t as l}from"./D6lZftfy.js";var u=e({useDaqDetailNode:()=>d});function d(){let{t:e}=a(),u=i(),d=r(()=>String(u.params.id??``)),f=s(),p=c();p.load();let m=l(),h=r(()=>f.nodeById(d.value)??null),g=r(()=>{let e=h.value?o(h.value.templateRef):``;return f.templates.find(t=>t.key===e)??null}),_=r(()=>g.value?.signalKind??`scalar`),v=r(()=>_.value!==`scalar`),y=r(()=>({ok:e(`daqDetail.k41k5c026`),warn:e(`daqDetail.k49z8v027`),alarm:e(`daqDetail.k3xmid028`),offline:e(`daqDetail.k44c2n029`)})),b=()=>{let e=h.value;return!e||!f.controller.running||!e.enabled?`offline`:e.state};function x(e){return f.meta.drivers.find(t=>t.kind===e)?.status===`planned`}let S=null;return n(()=>{S=f.ensureWsFeed(),f.load(),m.load()}),t(()=>S?.()),{daq:f,dcw:p,deviceTwins:m,nodeId:d,node:h,tpl:g,signalKind:_,isFrameNode:v,stateLabel:y,effectiveState:b,driverPlanned:x}}export{u as n,d as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{P as t,R as n,d as r}from"./ByMj6e7s.js";import{a as i}from"./BnpY_zNx.js";import{n as a}from"./Cnrmlixo.js";import{a as o,t as s}from"./BqYO-UfR.js";import{t as c}from"./CFjveTJh.js";import{t as l}from"./DzwIZ81f.js";var u=e({useDaqDetailNode:()=>d});function d(){let{t:e}=a(),u=i(),d=r(()=>String(u.params.id??``)),f=s(),p=c();p.load();let m=l(),h=r(()=>f.nodeById(d.value)??null),g=r(()=>{let e=h.value?o(h.value.templateRef):``;return f.templates.find(t=>t.key===e)??null}),_=r(()=>g.value?.signalKind??`scalar`),v=r(()=>_.value!==`scalar`),y=r(()=>({ok:e(`daqDetail.k41k5c026`),warn:e(`daqDetail.k49z8v027`),alarm:e(`daqDetail.k3xmid028`),offline:e(`daqDetail.k44c2n029`)})),b=()=>{let e=h.value;return!e||!f.controller.running||!e.enabled?`offline`:e.state};function x(e){return f.meta.drivers.find(t=>t.kind===e)?.status===`planned`}let S=null;return n(()=>{S=f.ensureWsFeed(),f.load(),m.load()}),t(()=>S?.()),{daq:f,dcw:p,deviceTwins:m,nodeId:d,node:h,tpl:g,signalKind:_,isFrameNode:v,stateLabel:y,effectiveState:b,driverPlanned:x}}export{u as n,d as t};
@@ -1 +1 @@
1
- import{N as e,mt as t,v as n}from"./CavpkQb0.js";import{P as r,S as i,V as a,W as o,et as s,f as c,h as l,i as u,j as d}from"./ByMj6e7s.js";import{n as f}from"./Cnrmlixo.js";import{t as p}from"./Br3MggOL.js";import{t as m}from"./BDNMzG2s2.js";var h=[`data-plugin-slot`],g=[`data-plugin-panel`],_={class:`plugin-slot-title`},v=Object.assign(m(i({__name:`PluginSlot`,props:{slotName:{}},setup(i){let m=i,{panelsOf:v}=p(),y=v(m.slotName),{t:b}=f(),x=new Map;function S(e){return`${e.plugin}/${e.name}`}function C(e){if(e.titleKey){let t=e.titleKey.startsWith(`plugin.`)?e.titleKey:`plugin.${e.plugin}.${e.titleKey}`,n=b(t);if(n!==t)return n}return e.title??`${e.plugin}.${e.name}`}async function w(){await d();let e=T.value;if(!e)return;let t=new Set(y.value.map(S));for(let[e,n]of[...x.entries()])if(!t.has(e)){try{n.cleanup?.()}catch{}n.el.remove(),x.delete(e)}for(let t of y.value){let n=S(t);if(x.has(n))continue;let r=e.querySelector(`[data-plugin-panel="${n}"]`);if(r)try{let e=await t.mount(r);x.set(n,{el:r,cleanup:typeof e==`function`?e:void 0})}catch(e){console.warn(`[plugin-slot] 面板渲染失败 ${n}:`,e)}}}let T=n(null);return s(y,()=>void w(),{deep:!0,immediate:!0}),r(()=>{for(let e of x.values())try{e.cleanup?.()}catch{}x.clear()}),(n,r)=>(a(),l(`div`,{ref_key:`hostRef`,ref:T,class:`plugin-slot`,"data-plugin-slot":i.slotName},[(a(!0),l(u,null,o(e(y),e=>(a(),l(`div`,{key:S(e),class:`plugin-slot-panel`,"data-plugin-panel":S(e)},[c(`div`,_,t(C(e)),1)],8,g))),128))],8,h))}}),[[`__scopeId`,`data-v-f86b8e9c`]]),{__name:`WorkshopPluginSlot`});export{v as t};
1
+ import{N as e,mt as t,v as n}from"./CavpkQb0.js";import{P as r,S as i,V as a,W as o,et as s,f as c,h as l,i as u,j as d}from"./ByMj6e7s.js";import{n as f}from"./Cnrmlixo.js";import{t as p}from"./Br3MggOL.js";import{t as m}from"./BDNMzG2s2.js";var h=[`data-plugin-slot`],g=[`data-plugin-panel`],_={class:`plugin-slot-title`},v=Object.assign(m(i({__name:`PluginSlot`,props:{slotName:{}},setup(i){let m=i,{panelsOf:v}=p(),y=v(m.slotName),{t:b}=f(),x=new Map;function S(e){return`${e.plugin}/${e.name}`}function C(e){if(e.titleKey){let t=e.titleKey.startsWith(`plugin.`)?e.titleKey:`plugin.${e.plugin}.${e.titleKey}`,n=b(t);if(n!==t)return n}return e.title??`${e.plugin}.${e.name}`}async function w(){await d();let e=T.value;if(!e)return;let t=new Set(y.value.map(S));for(let[e,n]of[...x.entries()])if(!t.has(e)){try{n.cleanup?.()}catch{}n.el.remove(),x.delete(e)}for(let t of y.value){let n=S(t);if(x.has(n))continue;let r=e.querySelector(`[data-plugin-panel="${n}"]`);if(r)try{let e=await t.mount(r);x.set(n,{el:r,cleanup:typeof e==`function`?e:void 0})}catch(e){console.warn(`[plugin-slot] panel render failed ${n}:`,e)}}}let T=n(null);return s(y,()=>void w(),{deep:!0,immediate:!0}),r(()=>{for(let e of x.values())try{e.cleanup?.()}catch{}x.clear()}),(n,r)=>(a(),l(`div`,{ref_key:`hostRef`,ref:T,class:`plugin-slot`,"data-plugin-slot":i.slotName},[(a(!0),l(u,null,o(e(y),e=>(a(),l(`div`,{key:S(e),class:`plugin-slot-panel`,"data-plugin-panel":S(e)},[c(`div`,_,t(C(e)),1)],8,g))),128))],8,h))}}),[[`__scopeId`,`data-v-2f402227`]]),{__name:`WorkshopPluginSlot`});export{v as t};
@@ -0,0 +1 @@
1
+ import{dt as e,mt as t,v as n}from"./CavpkQb0.js";import{R as r,S as i,V as a,W as o,b as s,d as c,f as l,h as u,i as d,m as f,nt as p,p as m,y as h}from"./ByMj6e7s.js";import{d as ee}from"./Dqz5HiXa.js";import{n as g}from"./Cnrmlixo.js";import{a as _,c as te}from"./wDPc4SSR.js";import{t as ne}from"./Bwc6lt2X.js";import{t as re}from"./Dq0emNZi2.js";import{t as ie}from"./DqtnqNgL2.js";import{t as v}from"./CI2yXRr42.js";import{t as y}from"./BDNMzG2s2.js";import{t as b}from"./Ch1P2mIf.js";import{t as x}from"./JgheoP3e.js";import{t as S}from"./Du9v6qGB2.js";import{t as C}from"./C4sQKuhk.js";var ae={class:`plugins-page`},oe={class:`aw-page-head`},se={class:`pg-sub`},w={class:`pg-stats`},T={class:`stat`},E={class:`stat`},D={class:`stat`},O={key:1,class:`pg-empty`},k={class:`pg-empty-t`},A={class:`pg-grid aw-stagger`},j=[`onClick`],M={class:`card-head`},N={class:`card-name`},P={class:`card-ver`},F={class:`card-desc`},I={class:`card-tags`},L={key:0,class:`tag client`},R={key:0,class:`card-routes`},z={class:`detail`},B={class:`scope-hint`},ce={key:0},V={key:1,style:{color:`#ff6b6b`}},H={key:0,class:`dim`},U=y(i({__name:`index`,setup(i){let{t:y}=g(),U=e=>{let t=S[e.name];return t?y(t):e.description},W=v(),G=n([]),K=n([]),q=n(!1),J=n(``),Y=n(!1),X=n(null);function Z(){let e=W.token;return e?{authorization:`Bearer ${e}`}:{}}async function Q(){q.value=!0;try{let e=await b(`/api/workshop/plugins`,{headers:Z()});G.value=e.plugins??[],K.value=e.failures??[]}catch(e){_.error(x(e,y(`plugins.loadFail`)))}finally{q.value=!1}}async function le(e){J.value=e.name;try{let t=await b(`/api/workshop/plugins/${e.name}/${e.enabled?`disable`:`enable`}`,{method:`POST`,headers:Z()});if(t.code!==0||!t.data)throw Error(y(`plugins.enableFail`));e.enabled=t.data.enabled,_.success(`${e.name} · ${t.data.enabled?y(`plugins.enabled`):y(`plugins.disabled`)}`),setTimeout(Q,800)}catch(e){_.error(x(e,y(`plugins.enableFail`)))}finally{J.value=``}}let ue=c(()=>G.value.filter(e=>e.enabled).length),de=c(()=>G.value.filter(e=>e.hasClient).length);function $(e){return y(e===`project`?`plugins.scopeProject`:`plugins.scopeUser`)}function fe(e){X.value=e,Y.value=!0}return r(Q),(n,r)=>{let i=te,c=ne,g=C,_=ie,v=re;return a(),u(`div`,ae,[l(`header`,oe,[l(`div`,null,[r[2]||=l(`p`,{class:`aw-kicker`},` agentworkshop / plugins `,-1),l(`h1`,null,t(n.$t(`plugins.title`)),1),l(`p`,se,t(n.$t(`plugins.subtitle`)),1)]),l(`div`,w,[l(`span`,T,[h(t(n.$t(`plugins.enabled`))+` `,1),l(`b`,null,t(ue.value),1)]),l(`span`,E,[h(t(n.$t(`plugins.hasClient`))+` `,1),l(`b`,null,t(de.value),1)]),l(`span`,D,[h(t(n.$t(`plugins.routes`))+` `,1),l(`b`,null,t(G.value.reduce((e,t)=>e+t.routes.length,0)),1)]),s(i,{size:`small`,loading:q.value,onClick:Q},{default:p(()=>[h(t(n.$t(`plugins.refresh`)),1)]),_:1},8,[`loading`])])]),K.value.length?(a(),m(c,{key:0,type:`error`,"show-icon":``,class:`pg-failures`,message:n.$t(`plugins.loadFailures`,{n:K.value.length})},{description:p(()=>[(a(!0),u(d,null,o(K.value,e=>(a(),u(`div`,{key:e.source,class:`fail-line`},t(e.source)+` — `+t(e.error),1))),128))]),_:1},8,[`message`])):f(``,!0),!G.value.length&&!q.value?(a(),u(`div`,O,[r[3]||=l(`span`,{class:`i-tabler-puzzle pg-empty-ico`},null,-1),l(`p`,k,t(n.$t(`plugins.empty`)),1)])):f(``,!0),G.value.length?(a(),m(g,{key:2,"slot-name":`plugins.page`})):f(``,!0),l(`div`,A,[(a(!0),u(d,null,o(G.value,i=>(a(),u(`article`,{key:`${i.scope}:${i.name}`,class:e([`pg-card aw-liftable`,{"is-off":!i.enabled}]),onClick:e=>fe(i)},[l(`div`,M,[l(`span`,N,t(i.name),1),l(`span`,P,t(i.version),1),s(_,{checked:i.enabled,loading:J.value===i.name,size:`small`,onClick:r[0]||=ee(()=>{},[`stop`]),onChange:e=>le(i)},null,8,[`checked`,`loading`,`onChange`])]),l(`p`,F,t(U(i)||`—`),1),l(`div`,I,[l(`span`,{class:e([`tag`,i.scope])},t($(i.scope)),3),l(`span`,{class:e([`tag`,i.enabled?`on`:`off`])},t(i.enabled?n.$t(`plugins.enabled`):n.$t(`plugins.disabled`)),3),i.hasClient?(a(),u(`span`,L,t(n.$t(`plugins.hasClient`)),1)):f(``,!0)]),i.routes.length?(a(),u(`div`,R,[(a(!0),u(d,null,o(i.routes,e=>(a(),u(`code`,{key:e.method+e.path},t(e.method)+` `+t(e.path),1))),128))])):f(``,!0)],10,j))),128))]),s(v,{open:Y.value,"onUpdate:open":r[1]||=e=>Y.value=e,title:X.value?.name,width:`460`},{default:p(()=>[X.value?(a(),u(d,{key:0},[l(`dl`,z,[r[4]||=l(`dt`,null,`version`,-1),l(`dd`,null,t(X.value.version),1),r[5]||=l(`dt`,null,`scope`,-1),l(`dd`,null,t($(X.value.scope)),1),l(`dd`,B,t(X.value.scope===`project`?n.$t(`plugins.scopeBuiltinHint`):n.$t(`plugins.scopeUserHint`)),1),r[6]||=l(`dt`,null,`enabled`,-1),l(`dd`,null,t(X.value.enabled),1),r[7]||=l(`dt`,null,`client`,-1),l(`dd`,null,t(X.value.hasClient?`✓`:`—`),1),X.value.error?(a(),u(`dt`,ce,` error `)):f(``,!0),X.value.error?(a(),u(`dd`,V,t(X.value.error),1)):f(``,!0)]),l(`h4`,null,t(n.$t(`plugins.routes`)),1),(a(!0),u(d,null,o(X.value.routes,e=>(a(),u(`code`,{key:e.method+e.path,class:`detail-route`},t(e.method)+` /api/plugins/`+t(X.value.name)+t(e.path),1))),128)),X.value.routes.length?f(``,!0):(a(),u(`p`,H,` — `))],64)):f(``,!0)]),_:1},8,[`open`,`title`])])}}}),[[`__scopeId`,`data-v-8c3d83e2`]]);export{U as default};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{et as n}from"./ByMj6e7s.js";import{n as r}from"./Cnrmlixo.js";import{a as i}from"./wDPc4SSR.js";import{t as a}from"./JgheoP3e.js";import{t as o}from"./CcGuXiOa.js";var s=e({useTeamPluginDialog:()=>c});function c(e){let s=o(),{t:c}=r(),l=t([]),u=t(`default`),d=t(!1),f=t(null),p=async e=>{d.value=!0;try{let t=(await s.listTeamPlugins(e))?.data??{};l.value=t.plugins??[],u.value=t.source===`explicit`?`explicit`:`default`}catch(e){i.error(a(e))}finally{d.value=!1}};return n(e.open,t=>{if(!t)return;l.value=[],u.value=`default`;let n=e.teamId();n&&p(n)}),{rows:l,source:u,loading:d,saving:f,toggle:async(t,n)=>{let r=e.teamId();if(!(!r||f.value)){f.value=t.name;try{let e=l.value.map(e=>({name:e.name,enabled:e.name===t.name?n:e.enabled})),a=(await s.putTeamPlugins(r,{plugins:e}))?.data??{};l.value=a.plugins??e.map(e=>({...e})),u.value=a.source===`explicit`?`explicit`:`default`,i.success(c(`teams.k1plugon043`))}catch(e){i.error(a(e))}finally{f.value=null}}}}}export{s as n,c as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{et as n}from"./ByMj6e7s.js";import{n as r}from"./Cnrmlixo.js";import{a as i}from"./wDPc4SSR.js";import{t as a}from"./JgheoP3e.js";import{t as o}from"./8oRmGaAV.js";var s=e({useTeamPluginDialog:()=>c});function c(e){let s=o(),{t:c}=r(),l=t([]),u=t(`default`),d=t(!1),f=t(null),p=async e=>{d.value=!0;try{let t=(await s.listTeamPlugins(e))?.data??{};l.value=t.plugins??[],u.value=t.source===`explicit`?`explicit`:`default`}catch(e){i.error(a(e))}finally{d.value=!1}};return n(e.open,t=>{if(!t)return;l.value=[],u.value=`default`;let n=e.teamId();n&&p(n)}),{rows:l,source:u,loading:d,saving:f,toggle:async(t,n)=>{let r=e.teamId();if(!(!r||f.value)){f.value=t.name;try{let e=l.value.map(e=>({name:e.name,enabled:e.name===t.name?n:e.enabled})),a=(await s.putTeamPlugins(r,{plugins:e}))?.data??{};l.value=a.plugins??e.map(e=>({...e})),u.value=a.source===`explicit`?`explicit`:`default`,i.success(c(`teams.k1plugon043`))}catch(e){i.error(a(e))}finally{f.value=null}}}}}export{s as n,c as t};
@@ -0,0 +1 @@
1
+ import{g as e}from"./CavpkQb0.js";import{t}from"./36oeS8_R.js";import{t as n}from"./JgheoP3e.js";import{n as r}from"./BQOn0q6Y.js";var i=[{key:`temp-sp`,name:`温度设定器`,code:`TEMP · SP`,ch:`烘箱温度设定`,unit:`℃`,min:150,max:200,decimals:1,icon:`thermo`,semantics:`烘箱/熔体温度设定:升高使热塑温度上升(成膜更均匀但能耗高、过热降解风险),降低则偏冷易厚度不均。调整后需等待热惯性(数十秒级)再评估效果。`},{key:`speed-sp`,name:`速度设定器`,code:`LINE · SP`,ch:`产线速度设定`,unit:`m/min`,min:280,max:360,decimals:0,icon:`encoder`,semantics:`产线速度设定:升速提高产能但缩短物料受热时间(温度补偿需联动),降速利于精细工艺。速度变化会同步影响张力与厚度分布。`},{key:`tension-sp`,name:`张力设定器`,code:`TENSION · SP`,ch:`膜张力设定`,unit:`kN`,min:18,max:26,decimals:1,icon:`tension`,semantics:`膜张力设定:张力过大易断膜/拉伸变形,过小则跑偏起皱。调整需平缓,并与速度联动观察。`},{key:`pressure-sp`,name:`压力设定器`,code:`PRESSURE · SP`,ch:`熔体压力设定`,unit:`MPa`,min:.6,max:1.2,decimals:2,icon:`pressure`,semantics:`熔体压力设定:反映挤出/泵送负荷,压力偏高提示阻力大或温度偏低,偏低可能是料位不足。调整需小幅步进。`}],a=[{kind:`mock`,label:`Mock 模拟 PLC`,status:`builtin`,configFields:[]},{kind:`modbus-tcp`,label:`Modbus TCP(PLC/网关 写保持寄存器)`,status:`real`,configFields:[{key:`host`,label:`设备地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.10`,hint:`PLC 或 Modbus 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`Modbus TCP 标准端口 502`},{key:`unitId`,label:`单元号(unitId)`,type:`number`,default:1,hint:`从站地址,常见 1`},{key:`register`,label:`写寄存器地址`,type:`number`,required:!0,placeholder:`40021`,hint:`4xxxx=保持寄存器(写);回读同址校验`},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]},{key:`engMin`,label:`工程量程下限`,type:`number`,hint:`线性换算:eng ∈ [engMin, engMax] ↔ raw ∈ [rawMin, rawMax];float32 且未填原始量程时 raw=eng`},{key:`engMax`,label:`工程量程上限`,type:`number`},{key:`rawMin`,label:`原始值下限`,type:`number`,hint:`如 int16 用 0~2000 表示 0.1 分辨率`},{key:`rawMax`,label:`原始值上限`,type:`number`}]},{kind:`opcua`,label:`OPC UA(PLC/MES 写节点值)`,status:`real`,configFields:[{key:`endpoint`,label:`端点(endpoint)`,type:`string`,required:!0,placeholder:`opc.tcp://192.168.1.10:4840`,hint:`OPC UA 服务器地址`},{key:`nodeId`,label:`节点 ID(NodeId)`,type:`string`,required:!0,placeholder:`ns=2;s=Channel1.Device1.SetTemp`,hint:`要写入的变量节点`},{key:`securityMode`,label:`安全策略`,type:`select`,default:`None`,options:[{value:`None`,label:`None(无加密,内网常用)`},{value:`Sign`,label:`Sign(签名)`},{value:`SignAndEncrypt`,label:`SignAndEncrypt(签名+加密)`}]},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`modbus-rtu`,label:`Modbus RTU over TCP(串口网关 写保持寄存器)`,status:`real`,configFields:[{key:`host`,label:`网关地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.50`,hint:`串口服务器/RTU 转 TCP 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`网关透传端口(常见 502 / 8899 / 26)`},{key:`unitId`,label:`从站地址(unitId)`,type:`number`,default:1,hint:`RS-485 总线上的从站地址`},{key:`register`,label:`写寄存器地址`,type:`number`,required:!0,placeholder:`40021`,hint:`4xxxx=保持寄存器(写);回读同址校验`},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]},{key:`engMin`,label:`工程量程下限`,type:`number`,hint:`线性换算:eng ∈ [engMin, engMax] ↔ raw ∈ [rawMin, rawMax];float32 且未填原始量程时 raw=eng`},{key:`engMax`,label:`工程量程上限`,type:`number`},{key:`rawMin`,label:`原始值下限`,type:`number`},{key:`rawMax`,label:`原始值上限`,type:`number`}]},{kind:`mqtt`,label:`MQTT(发布设定值到 Broker)`,status:`real`,configFields:[{key:`host`,label:`Broker 地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.20`,hint:`MQTT Broker 地址(与边缘网关约定同一 Broker)`},{key:`port`,label:`端口`,type:`number`,default:1883,hint:`MQTT TCP 端口 1883`},{key:`topic`,label:`下发主题(topic)`,type:`string`,required:!0,placeholder:`factory/line1/setpoint`,hint:`网关订阅的控制主题(勿与采集主题相同)`},{key:`jsonKey`,label:`JSON 键(可选)`,type:`string`,placeholder:`setpoint`,hint:`留空 = 纯数字报文;填写 = {"键":值} JSON 报文`},{key:`qos`,label:`QoS`,type:`number`,default:1,hint:`0=至多一次 1=至少一次(推荐)`},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`http`,label:`HTTP/REST(POST 设定值)`,status:`real`,configFields:[{key:`url`,label:`写接口地址(URL)`,type:`string`,required:!0,placeholder:`http://192.168.1.30/api/setpoint`,hint:`接收设定值的 HTTP 接口(POST JSON)`},{key:`bodyKey`,label:`JSON 键(可选)`,type:`string`,placeholder:`setpoint`,hint:`留空 = {"value": 设定值};填写 = {"键": 设定值}`},{key:`headersJSON`,label:`请求头(可选)`,type:`string`,placeholder:`{"Authorization":"Bearer xxx"}`,hint:`JSON 对象形式的 HTTP 头`}]},{kind:`mes-rest`,label:`MES 集成(REST API 映射)`,status:`real`,configFields:[{key:`baseUrl`,label:`MES 服务地址(baseUrl)`,type:`string`,required:!0,placeholder:`https://mes.example.com`,hint:`仅 http/https;内网地址需同时开启 allowPrivateHost`},{key:`authType`,label:`认证方式(authType)`,type:`select`,default:`bearer`,options:[{value:`bearer`,label:`Bearer(Authorization 头)`},{value:`header`,label:`自定义头(authHeaderName)`},{value:`none`,label:`无认证`}],hint:`凭据注入方式`},{key:`secretRef`,label:`凭据引用(secretRef)`,type:`string`,placeholder:`line1-mes`,hint:`凭据引用名;token 从 env AW_MES_<REF大写>_TOKEN 或运行时设置 mes.secret.<ref> 读取,不落明文`},{key:`authHeaderName`,label:`自定义认证头名(可选)`,type:`string`,placeholder:`X-Api-Token`,hint:`authType=header 时的自定义头名`},{key:`requestTimeoutMs`,label:`请求超时(ms)`,type:`number`,default:1e4,hint:`单次 MES 请求超时,缺省 10s`},{key:`allowPrivateHost`,label:`内网地址白名单`,type:`select`,default:`false`,options:[{value:`false`,label:`拒绝(默认,SSRF 防护)`},{value:`true`,label:`允许(内网 MES 显式开启)`}],hint:`内网/环回地址显式白名单开关(生产 MES 通常在内网)`},{key:`desc`,label:`节点语义描述(desc)`,type:`string`,placeholder:`烘箱温度设定回写 MES 工单;异常时先查工单状态`,hint:`节点语义描述(给 Agent 看):参数物理含义、异常时先查什么`},{key:`readMap`,label:`当前值映射(readMap)`,type:`text`,placeholder:`{"path":"/api/v1/params/{name}/current","query":{"name":"TEMP_SP"},"response":{"valuePath":"data.value","tsPath":"data.ts","tsFormat":"epoch_ms"}}`,hint:`当前值映射 JSON:{method,path,query,headers,response:{valuePath,tsPath,tsFormat}}`},{key:`writeMap`,label:`写映射(writeMap)`,type:`text`,placeholder:`{"method":"POST","path":"/api/v1/params/{name}/setpoint","query":{"name":"TEMP_SP"},"bodyTemplate":{"value":"{{value}}"},"successOn":[200,201],"response":{"ackPath":"ack"}}`,hint:`写映射 JSON(可选):{method,path,bodyTemplate,successOn,response:{ackPath}};bodyTemplate 里 {{value}} 为治理后工程值`},{key:`historyMap`,label:`历史映射(historyMap)`,type:`text`,placeholder:`{"path":"/api/v1/params/{name}/history","query":{"name":"TEMP_SP"},"response":{"rowsPath":"data.rows[*]","valuePath":"value","tsPath":"ts","nextCursorPath":"data.nextCursor"},"pageSize":500,"maxPages":40}`,hint:`历史映射 JSON(可选):{method,path,query,response:{rowsPath,valuePath,tsPath,nextCursorPath},pageSize,maxPages}`}]}],o=(e,t)=>r({base:`/api/workshop/dcw`,path:e,init:t,retries:(t?.method??`GET`).toUpperCase()===`GET`?2:0});function s(){let r=e([]),s=new Map,c=e({running:!0,nodesTotal:0,nodesOnline:0,writesTotal:0,writesFailed:0}),l=e(i.map(e=>({...e}))),u=e([]),d=e([]),f=e([]),p=e([]),m=e([]),h=e({}),g=e([]),_=e(a.map(e=>({kind:e.kind,label:e.label,status:e.status,configFields:e.configFields})));function v(e){let t=r.findIndex(t=>t.id===e.id);t>=0?r[t]=Object.assign(r[t],e):(r.push(e),s.set(e.id,r[r.length-1]))}function y(e){if(e.node){if(e.op===`removed`){let t=r.findIndex(t=>t.id===e.node.id);t>=0&&r.splice(t,1),s.delete(e.node.id);return}v(e.node)}}let b=0,x=null;function S(){b++,b===1&&(x=t().subscribe(C));let e=!1;return()=>{e||(e=!0,--b===0&&(x?.(),x=null))}}function C(e){if(e.type===`dcw.written`){let t=e.payload,n=s.get(t.nodeId);n&&(n.value=t.value,n.state=t.ok?`ok`:`error`,n.lastWriteAt=t.at,t.ok&&(n.lastAckAt=t.at)),f.unshift({id:`${t.nodeId}-${t.at}`,nodeId:t.nodeId,nodeName:n?.name??t.nodeId,param:``,eng:t.value,raw:t.raw,ok:t.ok,message:t.message,recipeRunId:t.recipeRunId,at:t.at}),f.length>60&&f.splice(60)}else if(e.type===`dcw.read`){let t=e.payload,n=s.get(t.nodeId);n&&(t.ok&&(n.readValue=t.value),n.lastReadAt=t.at,n.lastReadError=t.ok?null:t.message)}else if(e.type===`dcw.node.changed`)y(e.payload);else if(e.type===`dcw.controller`)Object.assign(c,e.payload);else if(e.type===`dcw.optimization.changed`){let t=e.payload.record,n=g.findIndex(e=>e.id===t.id);n>=0?g[n]=t:g.unshift(t),g.length>200&&(g.length=200)}}async function w(){try{let e=await o(``);r.splice(0,r.length,...e.nodes),s.clear();for(let e of r)s.set(e.id,e);Object.assign(c,e.controller),e.templates?.length&&l.splice(0,l.length,...e.templates.map(e=>({...e}))),e.drivers?.length&&_.splice(0,_.length,...e.drivers),u.splice(0,u.length,...e.recipes??[]),d.splice(0,d.length,...e.runs??[]),f.splice(0,f.length,...e.history??[]),p.splice(0,p.length,...e.products??[]),m.splice(0,m.length,...e.lines??[]);for(let e of Object.keys(h))Reflect.deleteProperty(h,e);for(let t of e.lineStates??[])h[t.lineId]=t;T.loaded=!0,T.error=``}catch(e){T.error=n(e)}}let T=e({nodes:r,controller:c,templates:l,recipes:u,runs:d,history:f,products:p,lines:m,lineStates:h,optimizations:g,driverCatalog:_,loaded:!1,error:``,ensureWsFeed:S,load:w,loadOptimizations:async e=>{let t=new URLSearchParams;e?.lineId&&t.set(`lineId`,e.lineId),e?.recipeId&&t.set(`recipeId`,e.recipeId),e?.nodeId&&t.set(`nodeId`,e.nodeId),e?.status&&t.set(`status`,e.status),t.set(`limit`,String(e?.limit??100));let n=await o(`/optimizations?${t.toString()}`);g.splice(0,g.length,...n.records)},fetchLedger:async e=>(await o(`/${e}/param-ledger`)).ledger,optimizationSeries:async(e,t)=>o(`/optimizations/${e}/series${t?`?windowMs=${t}`:``}`),judgeOptimization:async(e,t,n)=>{await o(`/optimizations/${e}/judge`,{method:`POST`,body:JSON.stringify({verdict:t,reason:n})})},rollbackOptimization:async e=>{await o(`/optimizations/${e}/rollback`,{method:`POST`,body:JSON.stringify({})})},rollbackNode:async(e,t)=>{await o(`/journal/node/${e}/rollback`,{method:`POST`,body:JSON.stringify({to:t})})},markGood:async(e,t)=>{await o(`/recipes/${e}/mark-good`,{method:`POST`,body:JSON.stringify({runId:t})})},rollbackRecipeGood:async e=>{await o(`/recipes/${e}/rollback-good`,{method:`POST`,body:JSON.stringify({})})},createFromTemplate:async(e,t)=>{let n=await o(``,{method:`POST`,body:JSON.stringify({templateRef:e,...t})});return v(n.node),n.node},patchNode:async(e,t)=>{await o(`/${e}`,{method:`PATCH`,body:JSON.stringify(t)})},removeNode:async e=>{await o(`/${e}`,{method:`DELETE`});let t=r.findIndex(t=>t.id===e);t>=0&&r.splice(t,1),s.delete(e)},bindNode:async(e,t)=>{v((await o(`/${e}/bind`,{method:`POST`,body:JSON.stringify({deviceId:t})})).node)},write:async(e,t)=>o(`/${e}/write`,{method:`POST`,body:JSON.stringify({value:t})}).then(e=>e.outcome),readNode:async e=>o(`/${e}/read`,{method:`POST`,body:JSON.stringify({})}).then(e=>e.read),testDriver:async(e,t)=>o(`/test-driver`,{method:`POST`,body:JSON.stringify({driver:e,driverConfig:t})}).then(e=>e.test),mesTestRead:async e=>o(`/mes-test-read`,{method:`POST`,body:JSON.stringify({driverConfig:e})}),testNode:async e=>o(`/${e}/test`,{method:`POST`}).then(e=>e.test),startStop:async e=>{let t=await o(`/controller`,{method:`POST`,body:JSON.stringify({action:e})});Object.assign(c,t.controller)},createTemplate:async e=>{let t=await o(`/templates`,{method:`POST`,body:JSON.stringify(e)});return l.push(t.template),t.template},createRecipe:async e=>{let t=await o(`/recipes`,{method:`POST`,body:JSON.stringify(e)});return u.push(t.recipe),t.recipe},updateRecipe:async(e,t)=>{let n=await o(`/recipes/${e}`,{method:`PATCH`,body:JSON.stringify(t)}),r=u.findIndex(t=>t.id===e);return r>=0&&(u[r]=n.recipe),n.recipe},removeRecipe:async e=>{await o(`/recipes/${e}`,{method:`DELETE`});let t=u.findIndex(t=>t.id===e);t>=0&&u.splice(t,1)},applyRecipe:async e=>{let t=await o(`/recipes/${e}/apply`,{method:`POST`});return d.push(t.run),t.run},recipeVersions:async e=>(await o(`/recipes/${e}/versions`)).versions??[],revertRecipe:async(e,t)=>{let n=await o(`/recipes/${e}/revert`,{method:`POST`,body:JSON.stringify(t)}),r=u.findIndex(t=>t.id===e);return r>=0&&(u[r]=n.recipe),n.recipe},closeRun:async e=>{let t=await o(`/runs/${e}/close`,{method:`POST`}),n=d.findIndex(t=>t.id===e);return n>=0&&(d[n]=t.run),t.run},runData:e=>o(`/runs/${e}/data`),nodeById:e=>s.get(e)??r.find(t=>t.id===e),createProduct:async e=>{let t=await o(`/products`,{method:`POST`,body:JSON.stringify(e)});return p.push(t.product),t.product},updateProduct:async(e,t)=>o(`/products/${e}`,{method:`PATCH`,body:JSON.stringify(t)}).then(e=>(E(),e.product)),removeProduct:async e=>{await o(`/products/${e}`,{method:`DELETE`});let t=p.findIndex(t=>t.id===e);t>=0&&p.splice(t,1)},createLine:async e=>{let t=await o(`/lines`,{method:`POST`,body:JSON.stringify(e)});return m.push(t.line),t.line},updateLine:async(e,t)=>{let n=await o(`/lines/${e}`,{method:`PATCH`,body:JSON.stringify(t)}),r=m.findIndex(t=>t.id===e);r>=0&&(m[r]=n.line)},removeLine:async(e,t=!1)=>{await o(`/lines/${e}${t?`?purge=1`:``}`,{method:`DELETE`});let n=m.findIndex(t=>t.id===e);n>=0&&m.splice(n,1),Reflect.deleteProperty(h,e),await w()},startLine:async(e,t)=>{let n=await o(`/lines/${e}/start`,{method:`POST`,body:JSON.stringify({recipeId:t})});h[e]=n.line},stopLine:async e=>{let t=await o(`/lines/${e}/stop`,{method:`POST`});h[e]=t.line},lineStateOf:e=>h[e]??{lineId:e,active:!1,runId:null,recipeId:null,recipeName:null,productId:null,productName:null,startedAt:null,taggedSamples:0},queryLine:e=>{let t=new URLSearchParams;return e.lineId&&t.set(`lineId`,e.lineId),e.productId&&t.set(`productId`,e.productId),e.recipeId&&t.set(`recipeId`,e.recipeId),e.paramKey&&t.set(`paramKey`,e.paramKey),e.nodeId&&t.set(`nodeId`,e.nodeId),e.fromMs!=null&&t.set(`from`,String(e.fromMs)),e.toMs!=null&&t.set(`to`,String(e.toMs)),e.bucketMs!=null&&t.set(`bucketMs`,String(e.bucketMs)),e.limit!=null&&t.set(`limit`,String(e.limit)),o(`/line/query?${t.toString()}`)}});async function E(){try{let e=await o(``);p.splice(0,p.length,...e.products??[]),u.splice(0,u.length,...e.recipes??[])}catch{}}return T}var c=`__dcwStream`;function l(){let e=globalThis;return e[c]||(e[c]=s()),e[c]}export{a as n,l as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./ByMj6e7s.js";import{n as r}from"./Cnrmlixo.js";import{t as i}from"./RAqsw632.js";import{a}from"./wDPc4SSR.js";import{t as o}from"./JgheoP3e.js";import{t as s}from"./Z-Z6EhXs.js";import{a as c,i as l,t as u}from"./B6Olw0Op.js";var d=e({useAmlEnv:()=>f});function f(){let{t:e}=r(),d=t(null),f=t(``);async function p(){try{d.value=await s(``),f.value=``}catch(e){f.value=o(e)}}let m=n(()=>{let t=d.value?.runtime;return t?t.python.ok?t.python.version??e(`aml.k1amlx004`):e(`aml.k1amlx005`):`--`}),h=n(()=>d.value?d.value.runtime.venvReady?e(`aml.k1amlx007`):e(`aml.k1amlx008`):`--`),g=t(null),_=t(!1),v=t(!1),y=n(()=>(g.value?.preflight?.blockers??[]).map(t=>u[t]?e(u[t]):t).join(` / `)),b=n(()=>{let t=g.value?.amlRootMode??``,n=l[t];return n?e(n):g.value?.amlRootSource??``}),x=n(()=>{let t=g.value?.uv??d.value?.env?.uv;return t?t.ok?t.version??e(`aml.k1amlx164`):e(`aml.k1amlx165`):`--`}),S=n(()=>{let e=(g.value?.uv??d.value?.env?.uv)?.source;return e?c[e]??e:``});async function C(){try{g.value=await s(`/env`)}catch{}}let w=null;function T(){w!=null&&(clearInterval(w),w=null)}function E(){T(),w=i(()=>{(async()=>{await C(),await p(),(g.value?.task==null||g.value.task.status!==`running`)&&(T(),_.value=!1)})()},1500)}async function D(t,n){_.value=!0,v.value=!0;try{await s(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(n??{})}),await C(),E()}catch(t){_.value=!1,a.error(`${e(`aml.k1amlx203`)}:${o(t)}`)}}async function O(){await D(`/env/uv`)}async function k(e=!1){await D(`/env/venv`,{force:e})}async function A(){_.value=!0;try{g.value=await s(`/env/recheck`,{method:`POST`,headers:{"content-type":`application/json`},body:`{}`}),await p()}catch(t){a.error(`${e(`aml.k1amlx203`)}:${o(t)}`)}finally{_.value=!1}}let j=t(null);async function M(){try{j.value=await s(`/entities`)}catch{}}async function N(){try{let t=await s(`/entities/prune`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({dryRun:!1})});a.success(`${e(`aml.k1amlx188`)}:${t.removed.length}`),await M()}catch(t){a.error(`${e(`aml.k1amlx203`)}:${o(t)}`)}}return{overview:d,overviewError:f,pythonText:m,venvText:h,env:g,envBusy:_,envLogOpen:v,blockerText:y,rootSourceLabel:b,uvText:x,uvSourceText:S,inventory:j,loadOverview:p,loadEnv:C,loadInventory:M,startEnvPoll:E,stopEnvPoll:T,installUv:O,createVenv:k,recheckEnv:A,pruneOrphans:N}}export{d as n,f as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./ByMj6e7s.js";import{n as r}from"./Cnrmlixo.js";import{t as i}from"./RAqsw632.js";import{a}from"./wDPc4SSR.js";import{t as o}from"./JgheoP3e.js";import{t as s}from"./C-LU6xv_.js";import{a as c,i as l,t as u}from"./B6Olw0Op.js";var d=e({useAmlEnv:()=>f});function f(){let{t:e}=r(),d=t(null),f=t(``);async function p(){try{d.value=await s(``),f.value=``}catch(e){f.value=o(e)}}let m=n(()=>{let t=d.value?.runtime;return t?t.python.ok?t.python.version??e(`aml.k1amlx004`):e(`aml.k1amlx005`):`--`}),h=n(()=>d.value?d.value.runtime.venvReady?e(`aml.k1amlx007`):e(`aml.k1amlx008`):`--`),g=t(null),_=t(!1),v=t(!1),y=n(()=>(g.value?.preflight?.blockers??[]).map(t=>u[t]?e(u[t]):t).join(` / `)),b=n(()=>{let t=g.value?.amlRootMode??``,n=l[t];return n?e(n):g.value?.amlRootSource??``}),x=n(()=>{let t=g.value?.uv??d.value?.env?.uv;return t?t.ok?t.version??e(`aml.k1amlx164`):e(`aml.k1amlx165`):`--`}),S=n(()=>{let e=(g.value?.uv??d.value?.env?.uv)?.source;return e?c[e]??e:``});async function C(){try{g.value=await s(`/env`)}catch{}}let w=null;function T(){w!=null&&(clearInterval(w),w=null)}function E(){T(),w=i(()=>{(async()=>{await C(),await p(),(g.value?.task==null||g.value.task.status!==`running`)&&(T(),_.value=!1)})()},1500)}async function D(t,n){_.value=!0,v.value=!0;try{await s(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(n??{})}),await C(),E()}catch(t){_.value=!1,a.error(`${e(`aml.k1amlx203`)}:${o(t)}`)}}async function O(){await D(`/env/uv`)}async function k(e=!1){await D(`/env/venv`,{force:e})}async function A(){_.value=!0;try{g.value=await s(`/env/recheck`,{method:`POST`,headers:{"content-type":`application/json`},body:`{}`}),await p()}catch(t){a.error(`${e(`aml.k1amlx203`)}:${o(t)}`)}finally{_.value=!1}}let j=t(null);async function M(){try{j.value=await s(`/entities`)}catch{}}async function N(){try{let t=await s(`/entities/prune`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({dryRun:!1})});a.success(`${e(`aml.k1amlx188`)}:${t.removed.length}`),await M()}catch(t){a.error(`${e(`aml.k1amlx203`)}:${o(t)}`)}}return{overview:d,overviewError:f,pythonText:m,venvText:h,env:g,envBusy:_,envLogOpen:v,blockerText:y,rootSourceLabel:b,uvText:x,uvSourceText:S,inventory:j,loadOverview:p,loadEnv:C,loadInventory:M,startEnvPoll:E,stopEnvPoll:T,installUv:O,createVenv:k,recheckEnv:A,pruneOrphans:N}}export{d as n,f as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{P as n,R as r,d as i,et as a}from"./ByMj6e7s.js";import{n as o}from"./Cnrmlixo.js";import{t as s}from"./RAqsw632.js";import{t as c}from"./Bl5dYv4m.js";var l=e({useDaqDetailHistory:()=>u});function u(e,l){let{t:u}=o(),d=c(),f=t([]),p=t(15e3),m=t(!1),h=i(()=>[{label:u(`daqDetail.bucket1s`),ms:1e3},{label:u(`daqDetail.bucket5s`),ms:5e3},{label:u(`daqDetail.bucket15s`),ms:15e3},{label:u(`daqDetail.bucket30s`),ms:3e4},{label:u(`daqDetail.bucket60s`),ms:6e4}]);async function g(){if(e.value){m.value=!0;try{let t=await d.samplesOf(e.value,{toMs:Date.now(),bucketMs:p.value||void 0,limit:400});f.value=[...t].reverse()}finally{m.value=!1,y()}}}let _=t(null),v=`rgba(140,155,175,0.8)`;function y(){let e=_.value;if(!e)return;let t=Math.min(window.devicePixelRatio||1,2),n=e.clientWidth,r=e.clientHeight;(e.width!==n*t||e.height!==r*t)&&(e.width=n*t,e.height=r*t);let i=e.getContext(`2d`);if(!i)return;i.setTransform(t,0,0,t,0,0),i.clearRect(0,0,n,r);for(let e=1;e<4;e++)i.strokeStyle=`rgba(120,135,160,0.18)`,i.beginPath(),i.moveTo(0,r/4*e),i.lineTo(n,r/4*e),i.stroke();let a=f.value;if(a.length<2)return;let o=1/0,s=-1/0;for(let e of a){let t=e.value??e.avg??e.min??0;o=Math.min(o,t),s=Math.max(s,t)}let c=Math.max(s-o,1e-9);i.strokeStyle=v,i.font=`10px monospace`,i.fillStyle=v,i.fillText(s.toFixed(2),4,11),i.fillText(o.toFixed(2),4,r-4),i.strokeStyle=`#35e0a0`,i.lineWidth=1.6,i.beginPath(),a.forEach((e,t)=>{let s=t/(a.length-1)*n,l=r-((e.value??e.avg??0)-o)/c*(r-16)-8;t===0?i.moveTo(s,l):i.lineTo(s,l)}),i.stroke()}let b=t(null),x=null,S=``;function C(){let e=b.value,t=l.value;if(!e||!t||t.hist.length<2)return;let n=`${t.hist.length}:${t.hist[t.hist.length-1]}:${t.hist[0]}`;if(n===S)return;S=n;let r=Math.min(window.devicePixelRatio||1,2),i=e.clientWidth,a=e.clientHeight;(e.width!==i*r||e.height!==a*r)&&(e.width=i*r,e.height=a*r);let o=e.getContext(`2d`);if(!o)return;o.setTransform(r,0,0,r,0,0),o.clearRect(0,0,i,a);let s=Math.max(...t.hist),c=Math.min(...t.hist),u=Math.max(s-c,1e-9);o.strokeStyle=`rgba(65,200,244,0.9)`,o.lineWidth=1.5,o.beginPath(),t.hist.forEach((e,n)=>{let r=n/(t.hist.length-1)*i,s=a-(e-c)/u*(a-6)-3;n===0?o.moveTo(r,s):o.lineTo(r,s)}),o.stroke()}let w=null,T=!1;function E(){T=document.hidden,T||(C(),O.value&&g())}let D=t(0),O=i(()=>{let e=d.controller.minQueryDisplayIntervalMs??500,t=D.value>0?D.value:d.controller.queryDisplayIntervalMs??0;return t>0?Math.max(e,t):0}),k=null;function A(){k&&=(clearInterval(k),null);let e=O.value;e&&(k=s(()=>{document.hidden||m.value||g()},e))}return r(()=>{g(),x=s(()=>{T||C()},800),document.addEventListener(`visibilitychange`,E),typeof ResizeObserver<`u`&&(w=new ResizeObserver(()=>{S=``,C(),y()}),b.value&&w.observe(b.value)),A()}),n(()=>{x&&clearInterval(x),k&&clearInterval(k),document.removeEventListener(`visibilitychange`,E),w?.disconnect(),w=null}),a(p,()=>void g()),a(O,()=>A()),{historyPoints:f,bucketMs:p,histLoading:m,BUCKETS:h,loadHistory:g,chartCanvas:_,liveCanvas:b,refreshOverrideMs:D}}export{l as n,u as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{P as n,R as r,d as i,et as a}from"./ByMj6e7s.js";import{n as o}from"./Cnrmlixo.js";import{t as s}from"./RAqsw632.js";import{t as c}from"./BqYO-UfR.js";var l=e({useDaqDetailHistory:()=>u});function u(e,l){let{t:u}=o(),d=c(),f=t([]),p=t(15e3),m=t(!1),h=i(()=>[{label:u(`daqDetail.bucket1s`),ms:1e3},{label:u(`daqDetail.bucket5s`),ms:5e3},{label:u(`daqDetail.bucket15s`),ms:15e3},{label:u(`daqDetail.bucket30s`),ms:3e4},{label:u(`daqDetail.bucket60s`),ms:6e4}]);async function g(){if(e.value){m.value=!0;try{let t=await d.samplesOf(e.value,{toMs:Date.now(),bucketMs:p.value||void 0,limit:400});f.value=[...t].reverse()}finally{m.value=!1,y()}}}let _=t(null),v=`rgba(140,155,175,0.8)`;function y(){let e=_.value;if(!e)return;let t=Math.min(window.devicePixelRatio||1,2),n=e.clientWidth,r=e.clientHeight;(e.width!==n*t||e.height!==r*t)&&(e.width=n*t,e.height=r*t);let i=e.getContext(`2d`);if(!i)return;i.setTransform(t,0,0,t,0,0),i.clearRect(0,0,n,r);for(let e=1;e<4;e++)i.strokeStyle=`rgba(120,135,160,0.18)`,i.beginPath(),i.moveTo(0,r/4*e),i.lineTo(n,r/4*e),i.stroke();let a=f.value;if(a.length<2)return;let o=1/0,s=-1/0;for(let e of a){let t=e.value??e.avg??e.min??0;o=Math.min(o,t),s=Math.max(s,t)}let c=Math.max(s-o,1e-9);i.strokeStyle=v,i.font=`10px monospace`,i.fillStyle=v,i.fillText(s.toFixed(2),4,11),i.fillText(o.toFixed(2),4,r-4),i.strokeStyle=`#35e0a0`,i.lineWidth=1.6,i.beginPath(),a.forEach((e,t)=>{let s=t/(a.length-1)*n,l=r-((e.value??e.avg??0)-o)/c*(r-16)-8;t===0?i.moveTo(s,l):i.lineTo(s,l)}),i.stroke()}let b=t(null),x=null,S=``;function C(){let e=b.value,t=l.value;if(!e||!t||t.hist.length<2)return;let n=`${t.hist.length}:${t.hist[t.hist.length-1]}:${t.hist[0]}`;if(n===S)return;S=n;let r=Math.min(window.devicePixelRatio||1,2),i=e.clientWidth,a=e.clientHeight;(e.width!==i*r||e.height!==a*r)&&(e.width=i*r,e.height=a*r);let o=e.getContext(`2d`);if(!o)return;o.setTransform(r,0,0,r,0,0),o.clearRect(0,0,i,a);let s=Math.max(...t.hist),c=Math.min(...t.hist),u=Math.max(s-c,1e-9);o.strokeStyle=`rgba(65,200,244,0.9)`,o.lineWidth=1.5,o.beginPath(),t.hist.forEach((e,n)=>{let r=n/(t.hist.length-1)*i,s=a-(e-c)/u*(a-6)-3;n===0?o.moveTo(r,s):o.lineTo(r,s)}),o.stroke()}let w=null,T=!1;function E(){T=document.hidden,T||(C(),O.value&&g())}let D=t(0),O=i(()=>{let e=d.controller.minQueryDisplayIntervalMs??500,t=D.value>0?D.value:d.controller.queryDisplayIntervalMs??0;return t>0?Math.max(e,t):0}),k=null;function A(){k&&=(clearInterval(k),null);let e=O.value;e&&(k=s(()=>{document.hidden||m.value||g()},e))}return r(()=>{g(),x=s(()=>{T||C()},800),document.addEventListener(`visibilitychange`,E),typeof ResizeObserver<`u`&&(w=new ResizeObserver(()=>{S=``,C(),y()}),b.value&&w.observe(b.value)),A()}),n(()=>{x&&clearInterval(x),k&&clearInterval(k),document.removeEventListener(`visibilitychange`,E),w?.disconnect(),w=null}),a(p,()=>void g()),a(O,()=>A()),{historyPoints:f,bucketMs:p,histLoading:m,BUCKETS:h,loadHistory:g,chartCanvas:_,liveCanvas:b,refreshOverrideMs:D}}export{l as n,u as t};