agentworkshop 0.8.4 → 0.8.5

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 (2224) hide show
  1. package/.AgentWorkShop/prompts/host-tools.en.json +174 -0
  2. package/.AgentWorkShop/prompts/host-tools.json +6 -2
  3. package/.output/.AgentWorkShop/aml-python/__pycache__/aml_eval.cpython-312.pyc +0 -0
  4. package/.output/.AgentWorkShop/aml-python/__pycache__/amlkit.cpython-312.pyc +0 -0
  5. package/.output/.AgentWorkShop/aml-python/__pycache__/train-example.cpython-312.pyc +0 -0
  6. package/.output/.AgentWorkShop/aml-python/__pycache__/train-hybrid-example.cpython-312.pyc +0 -0
  7. package/.output/.AgentWorkShop/aml-python/train-example.py +92 -92
  8. package/.output/.AgentWorkShop/prompts/host-tools.en.json +174 -0
  9. package/.output/.AgentWorkShop/prompts/host-tools.json +6 -2
  10. package/.output/.AgentWorkShop/schema.json +2 -0
  11. package/.output/nitro.json +1 -1
  12. package/.output/public/_nuxt/-gwj-zlk2.js +1 -0
  13. package/.output/public/_nuxt/-gy9k_TE2.js +1 -0
  14. package/.output/public/_nuxt/26OL4Ao82.js +1 -0
  15. package/.output/public/_nuxt/6P4ZAzxa2.js +1 -0
  16. package/.output/public/_nuxt/7OZQiw002.js +1 -0
  17. package/.output/public/_nuxt/8b9CKi6F.js +1 -0
  18. package/.output/public/_nuxt/AQuNRC4D.js +36 -0
  19. package/.output/public/_nuxt/Aoz9xMB92.js +1 -0
  20. package/.output/public/_nuxt/B0UUODeh.js +1 -0
  21. package/.output/public/_nuxt/B4GOTVfN.js +1 -0
  22. package/.output/public/_nuxt/BBhroEeN.js +1 -0
  23. package/.output/public/_nuxt/BHxG41IQ2.js +1 -0
  24. package/.output/public/_nuxt/BPUQZ9Lq2.js +8 -0
  25. package/.output/public/_nuxt/BSxcHoiy.js +1 -0
  26. package/.output/public/_nuxt/BVg2R2VB2.js +1 -0
  27. package/.output/public/_nuxt/BY2u4LPg.js +1 -0
  28. package/.output/public/_nuxt/BZg_MIK42.js +1 -0
  29. package/.output/public/_nuxt/BaYDgyaR.js +3 -0
  30. package/.output/public/_nuxt/BfvuWqSa.js +1 -0
  31. package/.output/public/_nuxt/BkEokGX5.js +1 -0
  32. package/.output/public/_nuxt/BkO5WdX5.js +1 -0
  33. package/.output/public/_nuxt/BqBTlfiz.js +1 -0
  34. package/.output/public/_nuxt/Br_q4qi72.js +1 -0
  35. package/.output/public/_nuxt/BtZKe9ZV2.js +1 -0
  36. package/.output/public/_nuxt/BwOko01T.js +47 -0
  37. package/.output/public/_nuxt/BzBBEE-o2.js +1 -0
  38. package/.output/public/_nuxt/C0Db9tR_2.js +1 -0
  39. package/.output/public/_nuxt/C3vxePED.js +21 -0
  40. package/.output/public/_nuxt/C4tXwpSt.js +1 -0
  41. package/.output/public/_nuxt/CBkXv24C2.js +1 -0
  42. package/.output/public/_nuxt/CCI-fwcS2.js +1 -0
  43. package/.output/public/_nuxt/CGf9neEK2.js +1 -0
  44. package/.output/public/_nuxt/CGviZq4E.js +1 -0
  45. package/.output/public/_nuxt/CNRjkgAZ2.js +1 -0
  46. package/.output/public/_nuxt/CNrRZmSx2.js +1 -0
  47. package/.output/public/_nuxt/CQ31GiJU2.js +1 -0
  48. package/.output/public/_nuxt/CY_7u1ST2.js +2 -0
  49. package/.output/public/_nuxt/CZJ5cw6r2.js +1 -0
  50. package/.output/public/_nuxt/ChF6qLpY2.js +1 -0
  51. package/.output/public/_nuxt/CjdxNYpU2.js +1 -0
  52. package/.output/public/_nuxt/CmuGMxDP.js +1 -0
  53. package/.output/public/_nuxt/Co8Dcx132.js +1 -0
  54. package/.output/public/_nuxt/Cr2xJ_CY.js +1 -0
  55. package/.output/public/_nuxt/Cy_HDgSl.js +20 -0
  56. package/.output/public/_nuxt/D1thFC3z.js +1 -0
  57. package/.output/public/_nuxt/D8AvmPUH.js +1 -0
  58. package/.output/public/_nuxt/D9GoOkyP2.js +1 -0
  59. package/.output/public/_nuxt/D9ppMCbw.js +1 -0
  60. package/.output/public/_nuxt/DGmFHb7m.js +1 -0
  61. package/.output/public/_nuxt/DH_oqyfL.js +1 -0
  62. package/.output/public/_nuxt/DJaGVY4v2.js +1 -0
  63. package/.output/public/_nuxt/DOUuGOQR2.js +2 -0
  64. package/.output/public/_nuxt/DYQBIsiV2.js +1 -0
  65. package/.output/public/_nuxt/DZqVVvR0.js +1 -0
  66. package/.output/public/_nuxt/DZzbCFY2.js +1 -0
  67. package/.output/public/_nuxt/DmReUFK1.js +1 -0
  68. package/.output/public/_nuxt/DnuJ66Jy.js +1 -0
  69. package/.output/public/_nuxt/DuUc4bbY2.js +1 -0
  70. package/.output/public/_nuxt/EJkmXP432.js +1 -0
  71. package/.output/public/_nuxt/OmpTerminalPanel.ComMDrA8.css +1 -0
  72. package/.output/public/_nuxt/PbzVdCTA2.js +1 -0
  73. package/.output/public/_nuxt/PluginSlot.CGH0vb95.css +1 -0
  74. package/.output/public/_nuxt/SgsmmrsZ.js +1 -0
  75. package/.output/public/_nuxt/TownView.CC3t-Dte.css +1 -0
  76. package/.output/public/_nuxt/U_n8pryv2.js +1 -0
  77. package/.output/public/_nuxt/Ud9o8ItR2.js +1 -0
  78. package/.output/public/_nuxt/W0sNnJQh.js +1 -0
  79. package/.output/public/_nuxt/_id_.BQRWK7J2.css +1 -0
  80. package/.output/public/_nuxt/_wsId_.CQMH8t8j.css +1 -0
  81. package/.output/public/_nuxt/ae2-5ZPt.js +1 -0
  82. package/.output/public/_nuxt/agents.D-JPovTZ.css +1 -0
  83. package/.output/public/_nuxt/aml.PalMp-5n.css +1 -0
  84. package/.output/public/_nuxt/board.BxLE52BL.css +1 -0
  85. package/.output/public/_nuxt/builds/latest.json +1 -1
  86. package/.output/public/_nuxt/builds/meta/5cd11284-05bf-4fcd-9a69-56a01c9f56dd.json +1 -0
  87. package/.output/public/_nuxt/byZYInPk2.js +1 -0
  88. package/.output/public/_nuxt/dHwWyr6b.js +1 -0
  89. package/.output/public/_nuxt/default.BEXGWZFQ.css +1 -0
  90. package/.output/public/_nuxt/fIV9zbnA.js +1 -0
  91. package/.output/public/_nuxt/gUYi1hLJ2.js +16 -0
  92. package/.output/public/_nuxt/iqxZGXsY.js +1 -0
  93. package/.output/public/_nuxt/logs.BkJPbR_K.css +1 -0
  94. package/.output/public/_nuxt/m6G-kfdj.js +1 -0
  95. package/.output/public/_nuxt/monitor.D3yEqqrv.css +1 -0
  96. package/.output/public/_nuxt/ontology.CkuUThtY.css +1 -0
  97. package/.output/public/_nuxt/operations.-l6u44Ar.css +1 -0
  98. package/.output/public/_nuxt/pages.Cdpm_B-G.css +1 -0
  99. package/.output/public/_nuxt/permissions.DxuOOIqQ.css +1 -0
  100. package/.output/public/_nuxt/pipeline.D7et0DoJ.css +1 -0
  101. package/.output/public/_nuxt/rDvMijKA.js +9 -0
  102. package/.output/public/_nuxt/schedules.BXNJ9q_I.css +1 -0
  103. package/.output/public/_nuxt/studio.ClA5gX4K.css +1 -0
  104. package/.output/public/_nuxt/tDEwr422.js +1 -0
  105. package/.output/public/_nuxt/teams.CLQaXno5.css +1 -0
  106. package/.output/public/_nuxt/tokens.BDSUWF-L.css +1 -0
  107. package/.output/public/_nuxt/tools.BwXFAb-X.css +1 -0
  108. package/.output/public/_nuxt/workshop.BBiFhXuM.css +1 -0
  109. package/.output/public/_nuxt/yS3bF3G32.js +2 -0
  110. package/.output/public/_nuxt/zWZ26UWi.js +1 -0
  111. package/.output/public/favicon.svg +14 -14
  112. package/.output/public/robots.txt +3 -3
  113. package/.output/server/chunks/_/LeftOutlined.mjs.map +1 -1
  114. package/.output/server/chunks/_/RightOutlined.mjs.map +1 -1
  115. package/.output/server/chunks/_/SearchOutlined.mjs +1261 -1230
  116. package/.output/server/chunks/_/SearchOutlined.mjs.map +1 -1
  117. package/.output/server/chunks/_/access.mjs +15 -27
  118. package/.output/server/chunks/_/access.mjs.map +1 -1
  119. package/.output/server/chunks/_/catalog-view.mjs +1 -1
  120. package/.output/server/chunks/_/chart-repo.mjs +14 -1
  121. package/.output/server/chunks/_/chart-repo.mjs.map +1 -1
  122. package/.output/server/chunks/_/data-export.mjs +8 -9
  123. package/.output/server/chunks/_/data-export.mjs.map +1 -1
  124. package/.output/server/chunks/_/data-query.mjs +4 -4
  125. package/.output/server/chunks/_/data-query.mjs.map +1 -1
  126. package/.output/server/chunks/_/eda-run.repo.mjs +3 -3
  127. package/.output/server/chunks/_/error-500.mjs.map +1 -1
  128. package/.output/server/chunks/_/features.mjs +6 -6
  129. package/.output/server/chunks/_/golden.mjs +3 -3
  130. package/.output/server/chunks/_/host-bindings.mjs +2 -2
  131. package/.output/server/chunks/_/index.mjs +2 -2
  132. package/.output/server/chunks/_/mes-console.mjs +1 -1
  133. package/.output/server/chunks/_/mes-secrets.repo.mjs +107 -0
  134. package/.output/server/chunks/_/mes-secrets.repo.mjs.map +1 -0
  135. package/.output/server/chunks/_/nitro.mjs +5301 -3767
  136. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  137. package/.output/server/chunks/_/ocap.mjs +1 -1
  138. package/.output/server/chunks/_/rest-auth.mjs +1 -1
  139. package/.output/server/chunks/_/spc.mjs +2 -2
  140. package/.output/server/chunks/build/AuthGate-nF1evO4v.mjs +716 -0
  141. package/.output/server/chunks/build/AuthGate-nF1evO4v.mjs.map +1 -0
  142. package/.output/server/chunks/build/FormItemContext-BlyzocS0.mjs +72 -0
  143. package/.output/server/chunks/build/FormItemContext-BlyzocS0.mjs.map +1 -0
  144. package/.output/server/chunks/build/OmpTerminalPanel-BhvhQ1gG.mjs +942 -0
  145. package/.output/server/chunks/build/OmpTerminalPanel-BhvhQ1gG.mjs.map +1 -0
  146. package/.output/server/chunks/build/PluginSlot-BUKXwV2X.mjs +141 -0
  147. package/.output/server/chunks/build/PluginSlot-BUKXwV2X.mjs.map +1 -0
  148. package/.output/server/chunks/build/TownView-BWMDbosY.mjs +6489 -0
  149. package/.output/server/chunks/build/TownView-BWMDbosY.mjs.map +1 -0
  150. package/.output/server/chunks/build/_id_-BK-t8nRG.mjs +392 -0
  151. package/.output/server/chunks/build/_id_-BK-t8nRG.mjs.map +1 -0
  152. package/.output/server/chunks/build/_id_-CZPlPDm4.mjs +2045 -0
  153. package/.output/server/chunks/build/_id_-CZPlPDm4.mjs.map +1 -0
  154. package/.output/server/chunks/build/_wsId_-C871SDPN.mjs +14589 -0
  155. package/.output/server/chunks/build/_wsId_-C871SDPN.mjs.map +1 -0
  156. package/.output/server/chunks/build/agents-D7CdEUTv.mjs +1078 -0
  157. package/.output/server/chunks/build/agents-D7CdEUTv.mjs.map +1 -0
  158. package/.output/server/chunks/build/alert-D0ivtTGy.mjs +263 -0
  159. package/.output/server/chunks/build/alert-D0ivtTGy.mjs.map +1 -0
  160. package/.output/server/chunks/build/aml-DRAFRcGU.mjs +814 -0
  161. package/.output/server/chunks/build/aml-DRAFRcGU.mjs.map +1 -0
  162. package/.output/server/chunks/build/analysis-p-dBkjoK.mjs +533 -0
  163. package/.output/server/chunks/build/analysis-p-dBkjoK.mjs.map +1 -0
  164. package/.output/server/chunks/build/api-B4Om0mEc.mjs +53 -0
  165. package/.output/server/chunks/build/api-B4Om0mEc.mjs.map +1 -0
  166. package/.output/server/chunks/build/api-BEW_ebY_.mjs +64 -0
  167. package/.output/server/chunks/build/api-BEW_ebY_.mjs.map +1 -0
  168. package/.output/server/chunks/build/api-BsAgXWxi.mjs +72 -0
  169. package/.output/server/chunks/build/api-BsAgXWxi.mjs.map +1 -0
  170. package/.output/server/chunks/build/api-error-BwAQLw44.mjs +47 -0
  171. package/.output/server/chunks/build/api-error-BwAQLw44.mjs.map +1 -0
  172. package/.output/server/chunks/build/apiClient-BvXtNzC8.mjs +81 -0
  173. package/.output/server/chunks/build/apiClient-BvXtNzC8.mjs.map +1 -0
  174. package/.output/server/chunks/build/board-CJUc032b.mjs +189 -0
  175. package/.output/server/chunks/build/board-CJUc032b.mjs.map +1 -0
  176. package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs +94 -81
  177. package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs.map +1 -1
  178. package/.output/server/chunks/build/card-Cqk0Ur-L.mjs +953 -0
  179. package/.output/server/chunks/build/card-Cqk0Ur-L.mjs.map +1 -0
  180. package/.output/server/chunks/build/channel-templates-ggsBacZF.mjs +942 -0
  181. package/.output/server/chunks/build/channel-templates-ggsBacZF.mjs.map +1 -0
  182. package/.output/server/chunks/build/chart-pipeline-BpoWYMK_.mjs +233 -0
  183. package/.output/server/chunks/build/chart-pipeline-BpoWYMK_.mjs.map +1 -0
  184. package/.output/server/chunks/build/chart-trend-BWeZh5Lv.mjs +112 -113
  185. package/.output/server/chunks/build/chart-trend-BWeZh5Lv.mjs.map +1 -1
  186. package/.output/server/chunks/build/checkbox-CrT4cnfu.mjs +439 -0
  187. package/.output/server/chunks/build/checkbox-CrT4cnfu.mjs.map +1 -0
  188. package/.output/server/chunks/build/client-only-qNA2OVV_.mjs +43 -0
  189. package/.output/server/chunks/build/client-only-qNA2OVV_.mjs.map +1 -0
  190. package/.output/server/chunks/build/constants-HPHJvjne.mjs +76 -66
  191. package/.output/server/chunks/build/constants-HPHJvjne.mjs.map +1 -1
  192. package/.output/server/chunks/build/core-CgTOPS4t.mjs +294 -0
  193. package/.output/server/chunks/build/core-CgTOPS4t.mjs.map +1 -0
  194. package/.output/server/chunks/build/daq-CdxcfY_G.mjs +1266 -0
  195. package/.output/server/chunks/build/daq-CdxcfY_G.mjs.map +1 -0
  196. package/.output/server/chunks/build/data-D8uX1dnm.mjs +481 -0
  197. package/.output/server/chunks/build/data-D8uX1dnm.mjs.map +1 -0
  198. package/.output/server/chunks/build/dcw-BlDQtS4q.mjs +505 -0
  199. package/.output/server/chunks/build/dcw-BlDQtS4q.mjs.map +1 -0
  200. package/.output/server/chunks/build/dcw-driver-badge-Df5wL_ZA.mjs +15 -3
  201. package/.output/server/chunks/build/dcw-driver-badge-Df5wL_ZA.mjs.map +1 -1
  202. package/.output/server/chunks/build/default-CNWS6NUw.mjs +2353 -0
  203. package/.output/server/chunks/build/default-CNWS6NUw.mjs.map +1 -0
  204. package/.output/server/chunks/build/descriptions-BNlfKG9y.mjs +406 -0
  205. package/.output/server/chunks/build/descriptions-BNlfKG9y.mjs.map +1 -0
  206. package/.output/server/chunks/build/drawer-Caji0PLs.mjs +834 -0
  207. package/.output/server/chunks/build/drawer-Caji0PLs.mjs.map +1 -0
  208. package/.output/server/chunks/build/dropdown-BNwTVGde.mjs +14 -0
  209. package/.output/server/chunks/build/dropdown-BNwTVGde.mjs.map +1 -0
  210. package/.output/server/chunks/build/dropdown-Cd-xPhR6.mjs +540 -0
  211. package/.output/server/chunks/build/dropdown-Cd-xPhR6.mjs.map +1 -0
  212. package/.output/server/chunks/build/es-Bxu10NJ2.mjs +43 -0
  213. package/.output/server/chunks/build/es-Bxu10NJ2.mjs.map +1 -0
  214. package/.output/server/chunks/build/firstNotUndefined-8H5_qHUu.mjs +2448 -0
  215. package/.output/server/chunks/build/firstNotUndefined-8H5_qHUu.mjs.map +1 -0
  216. package/.output/server/chunks/build/form-D_UpWPN4.mjs +4712 -0
  217. package/.output/server/chunks/build/form-D_UpWPN4.mjs.map +1 -0
  218. package/.output/server/chunks/build/hasIn-DBdElbjM.mjs +553 -0
  219. package/.output/server/chunks/build/hasIn-DBdElbjM.mjs.map +1 -0
  220. package/.output/server/chunks/build/hitl-Bd30yr1J.mjs +132 -0
  221. package/.output/server/chunks/build/hitl-Bd30yr1J.mjs.map +1 -0
  222. package/.output/server/chunks/build/input-GtPuSEgt.mjs +2181 -0
  223. package/.output/server/chunks/build/input-GtPuSEgt.mjs.map +1 -0
  224. package/.output/server/chunks/build/input-number-BNlNDK7H.mjs +1120 -0
  225. package/.output/server/chunks/build/input-number-BNlNDK7H.mjs.map +1 -0
  226. package/.output/server/chunks/build/interval-DvHBIIZh.mjs +9 -0
  227. package/.output/server/chunks/build/interval-DvHBIIZh.mjs.map +1 -0
  228. package/.output/server/chunks/build/isNumeric-CP7q_yhz.mjs +7 -0
  229. package/.output/server/chunks/build/isNumeric-CP7q_yhz.mjs.map +1 -0
  230. package/.output/server/chunks/build/logs-pRb-TMWa.mjs +427 -0
  231. package/.output/server/chunks/build/logs-pRb-TMWa.mjs.map +1 -0
  232. package/.output/server/chunks/build/menu-BXt-X0dt.mjs +1952 -0
  233. package/.output/server/chunks/build/menu-BXt-X0dt.mjs.map +1 -0
  234. package/.output/server/chunks/build/monitor-Cq6hRFeQ.mjs +2253 -0
  235. package/.output/server/chunks/build/monitor-Cq6hRFeQ.mjs.map +1 -0
  236. package/.output/server/chunks/build/narrow-fetch-CcG-BPxc.mjs +2 -0
  237. package/.output/server/chunks/build/narrow-fetch-CcG-BPxc.mjs.map +1 -1
  238. package/.output/server/chunks/build/ontology-ohICfVVb.mjs +1406 -0
  239. package/.output/server/chunks/build/ontology-ohICfVVb.mjs.map +1 -0
  240. package/.output/server/chunks/build/operations-SMQrRAcr.mjs +311 -0
  241. package/.output/server/chunks/build/operations-SMQrRAcr.mjs.map +1 -0
  242. package/.output/server/chunks/build/optimizer-BlWTsM-W.mjs +202 -0
  243. package/.output/server/chunks/build/optimizer-BlWTsM-W.mjs.map +1 -0
  244. package/.output/server/chunks/build/pages-DsMKUw7i.mjs +542 -0
  245. package/.output/server/chunks/build/pages-DsMKUw7i.mjs.map +1 -0
  246. package/.output/server/chunks/build/pagination-DTAconUo.mjs +1346 -0
  247. package/.output/server/chunks/build/pagination-DTAconUo.mjs.map +1 -0
  248. package/.output/server/chunks/build/permissions-DgXQZSyx.mjs +637 -0
  249. package/.output/server/chunks/build/permissions-DgXQZSyx.mjs.map +1 -0
  250. package/.output/server/chunks/build/pipeline-CkavMBhk.mjs +212 -0
  251. package/.output/server/chunks/build/pipeline-CkavMBhk.mjs.map +1 -0
  252. package/.output/server/chunks/build/plugins-LRjaSEZy.mjs +272 -0
  253. package/.output/server/chunks/build/plugins-LRjaSEZy.mjs.map +1 -0
  254. package/.output/server/chunks/build/popconfirm-DxYPGRgS.mjs +340 -0
  255. package/.output/server/chunks/build/popconfirm-DxYPGRgS.mjs.map +1 -0
  256. package/.output/server/chunks/build/responsiveObserve-DM3hpzhU.mjs +78 -0
  257. package/.output/server/chunks/build/responsiveObserve-DM3hpzhU.mjs.map +1 -0
  258. package/.output/server/chunks/build/schedules-Hz2DJUE2.mjs +7172 -0
  259. package/.output/server/chunks/build/schedules-Hz2DJUE2.mjs.map +1 -0
  260. package/.output/server/chunks/build/segmented-D3HWtHPw.mjs +341 -0
  261. package/.output/server/chunks/build/segmented-D3HWtHPw.mjs.map +1 -0
  262. package/.output/server/chunks/build/select-B3Dsb9yq.mjs +3923 -0
  263. package/.output/server/chunks/build/select-B3Dsb9yq.mjs.map +1 -0
  264. package/.output/server/chunks/build/settings-DXLJPq7d.mjs +1014 -0
  265. package/.output/server/chunks/build/settings-DXLJPq7d.mjs.map +1 -0
  266. package/.output/server/chunks/build/space-Dwu2Skt8.mjs +110 -0
  267. package/.output/server/chunks/build/space-Dwu2Skt8.mjs.map +1 -0
  268. package/.output/server/chunks/build/spin-C2cuvGth.mjs +357 -0
  269. package/.output/server/chunks/build/spin-C2cuvGth.mjs.map +1 -0
  270. package/.output/server/chunks/build/studio-hSqH9TYS.mjs +336 -0
  271. package/.output/server/chunks/build/studio-hSqH9TYS.mjs.map +1 -0
  272. package/.output/server/chunks/build/switch-CyR-H6Fb.mjs +377 -0
  273. package/.output/server/chunks/build/switch-CyR-H6Fb.mjs.map +1 -0
  274. package/.output/server/chunks/build/table-CmVD-cA9.mjs +7546 -0
  275. package/.output/server/chunks/build/table-CmVD-cA9.mjs.map +1 -0
  276. package/.output/server/chunks/build/tabs-Vg0e7cZE.mjs +1924 -0
  277. package/.output/server/chunks/build/tabs-Vg0e7cZE.mjs.map +1 -0
  278. package/.output/server/chunks/build/tag-y0sn-xv9.mjs +1156 -0
  279. package/.output/server/chunks/build/tag-y0sn-xv9.mjs.map +1 -0
  280. package/.output/server/chunks/build/teams-BbwYJyzv.mjs +1203 -0
  281. package/.output/server/chunks/build/teams-BbwYJyzv.mjs.map +1 -0
  282. package/.output/server/chunks/build/tokens-GYaGJ35Z.mjs +1062 -0
  283. package/.output/server/chunks/build/tokens-GYaGJ35Z.mjs.map +1 -0
  284. package/.output/server/chunks/build/tools-CnYi9cou.mjs +487 -0
  285. package/.output/server/chunks/build/tools-CnYi9cou.mjs.map +1 -0
  286. package/.output/server/chunks/build/tooltip-C2n2nNiQ.mjs +920 -0
  287. package/.output/server/chunks/build/tooltip-C2n2nNiQ.mjs.map +1 -0
  288. package/.output/server/chunks/build/town-B5aoiG98.mjs +133 -0
  289. package/.output/server/chunks/build/town-B5aoiG98.mjs.map +1 -0
  290. package/.output/server/chunks/build/town-BV-hbwb5.mjs +30 -17
  291. package/.output/server/chunks/build/town-BV-hbwb5.mjs.map +1 -1
  292. package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
  293. package/.output/server/chunks/build/types-D6J7slEa.mjs.map +1 -1
  294. package/.output/server/chunks/build/types-DWqIeMRP.mjs +30 -29
  295. package/.output/server/chunks/build/types-DWqIeMRP.mjs.map +1 -1
  296. package/.output/server/chunks/build/useAgentHarnessOptions-Dq0l0Z6d.mjs +124 -0
  297. package/.output/server/chunks/build/useAgentHarnessOptions-Dq0l0Z6d.mjs.map +1 -0
  298. package/.output/server/chunks/build/useAgentTemplateActions-BFOHb5-L.mjs +77 -0
  299. package/.output/server/chunks/build/useAgentTemplateActions-BFOHb5-L.mjs.map +1 -0
  300. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +24 -17
  301. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs.map +1 -1
  302. package/.output/server/chunks/build/useAgentTemplateForm-CuJPOPcK.mjs +117 -0
  303. package/.output/server/chunks/build/useAgentTemplateForm-CuJPOPcK.mjs.map +1 -0
  304. package/.output/server/chunks/build/useAgentTemplatesCatalog-B2bIhZLA.mjs +133 -0
  305. package/.output/server/chunks/build/useAgentTemplatesCatalog-B2bIhZLA.mjs.map +1 -0
  306. package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs +92 -0
  307. package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs.map +1 -0
  308. package/.output/server/chunks/build/useAmlEntities-BJhvdqHJ.mjs +86 -0
  309. package/.output/server/chunks/build/useAmlEntities-BJhvdqHJ.mjs.map +1 -0
  310. package/.output/server/chunks/build/useAmlEnv-CDIZ6xTe.mjs +194 -0
  311. package/.output/server/chunks/build/useAmlEnv-CDIZ6xTe.mjs.map +1 -0
  312. package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs +89 -0
  313. package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs.map +1 -0
  314. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs +38 -33
  315. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs.map +1 -1
  316. package/.output/server/chunks/build/useAmlJobs-BF9LpwXz.mjs +267 -0
  317. package/.output/server/chunks/build/useAmlJobs-BF9LpwXz.mjs.map +1 -0
  318. package/.output/server/chunks/build/useAmlModels-_bweOr3R.mjs +93 -0
  319. package/.output/server/chunks/build/useAmlModels-_bweOr3R.mjs.map +1 -0
  320. package/.output/server/chunks/build/useAmlNotes-DQj980iX.mjs +86 -0
  321. package/.output/server/chunks/build/useAmlNotes-DQj980iX.mjs.map +1 -0
  322. package/.output/server/chunks/build/useAmlPredict-DHNgDSJn.mjs +130 -0
  323. package/.output/server/chunks/build/useAmlPredict-DHNgDSJn.mjs.map +1 -0
  324. package/.output/server/chunks/build/useAnalysisFeed-BrEGV_9x.mjs +129 -0
  325. package/.output/server/chunks/build/useAnalysisFeed-BrEGV_9x.mjs.map +1 -0
  326. package/.output/server/chunks/build/useDaqAddNode-D_Rkju0f.mjs +142 -0
  327. package/.output/server/chunks/build/useDaqAddNode-D_Rkju0f.mjs.map +1 -0
  328. package/.output/server/chunks/build/useDaqDetailBinding-DCWaLKXT.mjs +70 -0
  329. package/.output/server/chunks/build/useDaqDetailBinding-DCWaLKXT.mjs.map +1 -0
  330. package/.output/server/chunks/build/useDaqDetailFrames-BOIcOJRB.mjs +79 -0
  331. package/.output/server/chunks/build/useDaqDetailFrames-BOIcOJRB.mjs.map +1 -0
  332. package/.output/server/chunks/build/useDaqDetailHistory-D6WulPVs.mjs +176 -0
  333. package/.output/server/chunks/build/useDaqDetailHistory-D6WulPVs.mjs.map +1 -0
  334. package/.output/server/chunks/build/useDaqDetailNode-DeOsDxK5.mjs +99 -0
  335. package/.output/server/chunks/build/useDaqDetailNode-DeOsDxK5.mjs.map +1 -0
  336. package/.output/server/chunks/build/useDaqDetailParams-Cm9a9r5G.mjs +159 -0
  337. package/.output/server/chunks/build/useDaqDetailParams-Cm9a9r5G.mjs.map +1 -0
  338. package/.output/server/chunks/build/useDaqFilters-CctmO03p.mjs +222 -0
  339. package/.output/server/chunks/build/useDaqFilters-CctmO03p.mjs.map +1 -0
  340. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +45 -44
  341. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs.map +1 -1
  342. package/.output/server/chunks/build/useDaqOptimizations-CmX_dpBc.mjs +136 -0
  343. package/.output/server/chunks/build/useDaqOptimizations-CmX_dpBc.mjs.map +1 -0
  344. package/.output/server/chunks/build/useDaqStream-B9ZBVQrI.mjs +395 -0
  345. package/.output/server/chunks/build/useDaqStream-B9ZBVQrI.mjs.map +1 -0
  346. package/.output/server/chunks/build/useDaqTemplates-CK37sMfi.mjs +187 -0
  347. package/.output/server/chunks/build/useDaqTemplates-CK37sMfi.mjs.map +1 -0
  348. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs +311 -313
  349. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs.map +1 -1
  350. package/.output/server/chunks/build/useDashboardData-NJ7rKxhx.mjs +153 -0
  351. package/.output/server/chunks/build/useDashboardData-NJ7rKxhx.mjs.map +1 -0
  352. package/.output/server/chunks/build/useDcwAddNode-DACVcEHs.mjs +219 -0
  353. package/.output/server/chunks/build/useDcwAddNode-DACVcEHs.mjs.map +1 -0
  354. package/.output/server/chunks/build/useDcwCards-SaiImIYQ.mjs +67 -0
  355. package/.output/server/chunks/build/useDcwCards-SaiImIYQ.mjs.map +1 -0
  356. package/.output/server/chunks/build/useDcwDetailScope-DLOklSMO.mjs +184 -0
  357. package/.output/server/chunks/build/useDcwDetailScope-DLOklSMO.mjs.map +1 -0
  358. package/.output/server/chunks/build/useDcwDetailTemplates-ClmIdZ40.mjs +148 -0
  359. package/.output/server/chunks/build/useDcwDetailTemplates-ClmIdZ40.mjs.map +1 -0
  360. package/.output/server/chunks/build/useDcwFilter-CPMyCltx.mjs +71 -0
  361. package/.output/server/chunks/build/useDcwFilter-CPMyCltx.mjs.map +1 -0
  362. package/.output/server/chunks/build/useDcwLedger-0ie-0WTc.mjs +79 -0
  363. package/.output/server/chunks/build/useDcwLedger-0ie-0WTc.mjs.map +1 -0
  364. package/.output/server/chunks/build/useDcwLineMutations-DNxo66yM.mjs +137 -0
  365. package/.output/server/chunks/build/useDcwLineMutations-DNxo66yM.mjs.map +1 -0
  366. package/.output/server/chunks/build/useDcwLineRun-CHskwscT.mjs +104 -0
  367. package/.output/server/chunks/build/useDcwLineRun-CHskwscT.mjs.map +1 -0
  368. package/.output/server/chunks/build/useDcwParamApprovals-DtScUc-W.mjs +121 -0
  369. package/.output/server/chunks/build/useDcwParamApprovals-DtScUc-W.mjs.map +1 -0
  370. package/.output/server/chunks/build/useDcwProducts-BMaxzLu6.mjs +93 -0
  371. package/.output/server/chunks/build/useDcwProducts-BMaxzLu6.mjs.map +1 -0
  372. package/.output/server/chunks/build/useDcwQuery-TVU3Eo0M.mjs +98 -0
  373. package/.output/server/chunks/build/useDcwQuery-TVU3Eo0M.mjs.map +1 -0
  374. package/.output/server/chunks/build/useDcwQuickActions-BREFmR9T.mjs +88 -0
  375. package/.output/server/chunks/build/useDcwQuickActions-BREFmR9T.mjs.map +1 -0
  376. package/.output/server/chunks/build/useDcwRecipes-Bc9urA1N.mjs +258 -0
  377. package/.output/server/chunks/build/useDcwRecipes-Bc9urA1N.mjs.map +1 -0
  378. package/.output/server/chunks/build/useDcwStream-Dir5ufAU.mjs +452 -0
  379. package/.output/server/chunks/build/useDcwStream-Dir5ufAU.mjs.map +1 -0
  380. package/.output/server/chunks/build/useDcwTemplates-BzagZztS.mjs +91 -0
  381. package/.output/server/chunks/build/useDcwTemplates-BzagZztS.mjs.map +1 -0
  382. package/.output/server/chunks/build/useDcwWrites-BROwTLCn.mjs +140 -0
  383. package/.output/server/chunks/build/useDcwWrites-BROwTLCn.mjs.map +1 -0
  384. package/.output/server/chunks/build/useDeviceTwins-BqwVJaZg.mjs +128 -0
  385. package/.output/server/chunks/build/useDeviceTwins-BqwVJaZg.mjs.map +1 -0
  386. package/.output/server/chunks/build/useExpConfirmations-BM626N4p.mjs +107 -0
  387. package/.output/server/chunks/build/useExpConfirmations-BM626N4p.mjs.map +1 -0
  388. package/.output/server/chunks/build/useLocalTime-uVSM44Um.mjs +55 -0
  389. package/.output/server/chunks/build/useLocalTime-uVSM44Um.mjs.map +1 -0
  390. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs +34 -31
  391. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs.map +1 -1
  392. package/.output/server/chunks/build/useLogsManual-cVBZQ_Mt.mjs +88 -0
  393. package/.output/server/chunks/build/useLogsManual-cVBZQ_Mt.mjs.map +1 -0
  394. package/.output/server/chunks/build/useLogsQuery-D7hrJ3yn.mjs +150 -0
  395. package/.output/server/chunks/build/useLogsQuery-D7hrJ3yn.mjs.map +1 -0
  396. package/.output/server/chunks/build/useLogsScope-aaPQeTRm.mjs +83 -0
  397. package/.output/server/chunks/build/useLogsScope-aaPQeTRm.mjs.map +1 -0
  398. package/.output/server/chunks/build/useMonitorColumns-vVnt3r5Q.mjs +167 -156
  399. package/.output/server/chunks/build/useMonitorColumns-vVnt3r5Q.mjs.map +1 -1
  400. package/.output/server/chunks/build/useMonitorData-DIkiLr_h.mjs +135 -0
  401. package/.output/server/chunks/build/useMonitorData-DIkiLr_h.mjs.map +1 -0
  402. package/.output/server/chunks/build/useMonitorFormat-CyURtH8N.mjs +91 -0
  403. package/.output/server/chunks/build/useMonitorFormat-CyURtH8N.mjs.map +1 -0
  404. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +28 -21
  405. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs.map +1 -1
  406. package/.output/server/chunks/build/useOperationsFeed-Ci4mZAn_.mjs +195 -0
  407. package/.output/server/chunks/build/useOperationsFeed-Ci4mZAn_.mjs.map +1 -0
  408. package/.output/server/chunks/build/useOpsLog-C-M6Eace.mjs +149 -0
  409. package/.output/server/chunks/build/useOpsLog-C-M6Eace.mjs.map +1 -0
  410. package/.output/server/chunks/build/useRecipeDispatchApprovals-BYtiqfeb.mjs +156 -0
  411. package/.output/server/chunks/build/useRecipeDispatchApprovals-BYtiqfeb.mjs.map +1 -0
  412. package/.output/server/chunks/build/useResponsive-BKDMGTHs.mjs +39 -23
  413. package/.output/server/chunks/build/useResponsive-BKDMGTHs.mjs.map +1 -1
  414. package/.output/server/chunks/build/useTeamActions-BDjU06LP.mjs +79 -0
  415. package/.output/server/chunks/build/useTeamActions-BDjU06LP.mjs.map +1 -0
  416. package/.output/server/chunks/build/useTeamAddMemberDialog-J3oFn3FI.mjs +84 -0
  417. package/.output/server/chunks/build/useTeamAddMemberDialog-J3oFn3FI.mjs.map +1 -0
  418. package/.output/server/chunks/build/useTeamCreateDialog-fbn4ixYu.mjs +97 -0
  419. package/.output/server/chunks/build/useTeamCreateDialog-fbn4ixYu.mjs.map +1 -0
  420. package/.output/server/chunks/build/useTeamDeployDialog-BNezMD2k.mjs +80 -0
  421. package/.output/server/chunks/build/useTeamDeployDialog-BNezMD2k.mjs.map +1 -0
  422. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +39 -32
  423. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs.map +1 -1
  424. package/.output/server/chunks/build/useTeamPluginDialog-BZznrOVe.mjs +103 -0
  425. package/.output/server/chunks/build/useTeamPluginDialog-BZznrOVe.mjs.map +1 -0
  426. package/.output/server/chunks/build/useTeamsCatalog-DuZFP3oG.mjs +123 -0
  427. package/.output/server/chunks/build/useTeamsCatalog-DuZFP3oG.mjs.map +1 -0
  428. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +29 -22
  429. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs.map +1 -1
  430. package/.output/server/chunks/build/useTokenCreate-Ctl0YGhL.mjs +115 -0
  431. package/.output/server/chunks/build/useTokenCreate-Ctl0YGhL.mjs.map +1 -0
  432. package/.output/server/chunks/build/useTokenRename-Cm3ypSfN.mjs +87 -0
  433. package/.output/server/chunks/build/useTokenRename-Cm3ypSfN.mjs.map +1 -0
  434. package/.output/server/chunks/build/useTokenReveal-CeoWL5Mt.mjs +118 -0
  435. package/.output/server/chunks/build/useTokenReveal-CeoWL5Mt.mjs.map +1 -0
  436. package/.output/server/chunks/build/useTokensList-CNIzON3u.mjs +92 -0
  437. package/.output/server/chunks/build/useTokensList-CNIzON3u.mjs.map +1 -0
  438. package/.output/server/chunks/build/useTownBus-D9SoIsAN.mjs +17 -16
  439. package/.output/server/chunks/build/useTownBus-D9SoIsAN.mjs.map +1 -1
  440. package/.output/server/chunks/build/useWorkbenchAuth-CY-bVFMu.mjs +141 -0
  441. package/.output/server/chunks/build/useWorkbenchAuth-CY-bVFMu.mjs.map +1 -0
  442. package/.output/server/chunks/build/useWorkbenchWorkspaces-DhZQFss9.mjs +138 -0
  443. package/.output/server/chunks/build/useWorkbenchWorkspaces-DhZQFss9.mjs.map +1 -0
  444. package/.output/server/chunks/build/useWorkshopApi-BxHn-4iR.mjs +127 -0
  445. package/.output/server/chunks/build/useWorkshopApi-BxHn-4iR.mjs.map +1 -0
  446. package/.output/server/chunks/build/useWorkshopWs-YQ5URrbt.mjs +1659 -0
  447. package/.output/server/chunks/build/useWorkshopWs-YQ5URrbt.mjs.map +1 -0
  448. package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs +60 -0
  449. package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs.map +1 -0
  450. package/.output/server/chunks/build/useWorkspaceChannels-CPFepxTN.mjs +92 -0
  451. package/.output/server/chunks/build/useWorkspaceChannels-CPFepxTN.mjs.map +1 -0
  452. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs +34 -31
  453. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs.map +1 -1
  454. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs +168 -0
  455. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs.map +1 -0
  456. package/.output/server/chunks/build/users-DjiVC_tS.mjs +569 -0
  457. package/.output/server/chunks/build/users-DjiVC_tS.mjs.map +1 -0
  458. package/.output/server/chunks/build/workshop-1gKeDASV.mjs +546 -0
  459. package/.output/server/chunks/build/workshop-1gKeDASV.mjs.map +1 -0
  460. package/.output/server/chunks/build/workspaces-CmW0cpOt.mjs +121 -111
  461. package/.output/server/chunks/build/workspaces-CmW0cpOt.mjs.map +1 -1
  462. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  463. package/.output/server/chunks/routes/api/index.get.mjs +1 -1
  464. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  465. package/.output/server/chunks/routes/api/mcp/workshop.mjs +2 -2
  466. package/.output/server/chunks/routes/api/metrics.mjs +1 -1
  467. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +1 -1
  468. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +1 -1
  469. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +1 -1
  470. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +1 -1
  471. package/.output/server/chunks/routes/api/system/backup/list.get.mjs +1 -1
  472. package/.output/server/chunks/routes/api/system/backup/run.post.mjs +3 -3
  473. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +1 -1
  474. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +1 -1
  475. package/.output/server/chunks/routes/api/system/config.get.mjs +1 -1
  476. package/.output/server/chunks/routes/api/system/index.get.mjs +1 -1
  477. package/.output/server/chunks/routes/api/system/index.patch.mjs +1 -1
  478. package/.output/server/chunks/routes/api/system/index.post.mjs +1 -1
  479. package/.output/server/chunks/routes/api/system/index2.get.mjs +1 -1
  480. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +1 -1
  481. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +1 -1
  482. package/.output/server/chunks/routes/api/system/monitor.get.mjs +1 -1
  483. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +1 -1
  484. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +1 -1
  485. package/.output/server/chunks/routes/api/system/timezone.get.mjs +1 -1
  486. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -1
  487. package/.output/server/chunks/routes/api/users/_id_.get.mjs +1 -1
  488. package/.output/server/chunks/routes/api/users/_id_.put.mjs +1 -1
  489. package/.output/server/chunks/routes/api/users/change-password.post.mjs +1 -1
  490. package/.output/server/chunks/routes/api/users/index.get.mjs +1 -1
  491. package/.output/server/chunks/routes/api/users/index.post.mjs +1 -1
  492. package/.output/server/chunks/routes/api/users/login.post.mjs +1 -1
  493. package/.output/server/chunks/routes/api/users/logout.post.mjs +1 -1
  494. package/.output/server/chunks/routes/api/users/me.get.mjs +1 -1
  495. package/.output/server/chunks/routes/api/users/register.post.mjs +1 -1
  496. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +1 -1
  497. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +1 -1
  498. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +1 -1
  499. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +1 -1
  500. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +1 -1
  501. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +1 -1
  502. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +1 -1
  503. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +1 -1
  504. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +1 -1
  505. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +1 -1
  506. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +1 -1
  507. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs +1 -1
  508. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs +1 -1
  509. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +1 -1
  510. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +1 -1
  511. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +1 -1
  512. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +1 -1
  513. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +1 -1
  514. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +1 -1
  515. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +1 -1
  516. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +1 -1
  517. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +1 -1
  518. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +1 -1
  519. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +1 -1
  520. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +1 -1
  521. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +1 -1
  522. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +1 -1
  523. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +1 -1
  524. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +1 -1
  525. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +1 -1
  526. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +1 -1
  527. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +1 -1
  528. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +1 -1
  529. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +1 -1
  530. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +1 -1
  531. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs +1 -1
  532. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +1 -1
  533. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +1 -1
  534. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +1 -1
  535. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs +1 -1
  536. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +1 -1
  537. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +1 -1
  538. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +1 -1
  539. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +1 -1
  540. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +1 -1
  541. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +1 -1
  542. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +1 -1
  543. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +1 -1
  544. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +1 -1
  545. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs +1 -1
  546. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs +1 -1
  547. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs +1 -1
  548. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs +1 -1
  549. package/.output/server/chunks/routes/api/workshop/analysis/_id_.delete.mjs +1 -1
  550. package/.output/server/chunks/routes/api/workshop/analysis/_id_.get.mjs +1 -1
  551. package/.output/server/chunks/routes/api/workshop/analysis/_id_.patch.mjs +1 -1
  552. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +1 -1
  553. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +1 -1
  554. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +1 -1
  555. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +1 -1
  556. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +1 -1
  557. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +1 -1
  558. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +1 -1
  559. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +1 -1
  560. package/.output/server/chunks/routes/api/workshop/caller.mjs +1 -1
  561. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +2 -2
  562. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +1 -1
  563. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +1 -1
  564. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +1 -1
  565. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +1 -1
  566. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +1 -1
  567. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +1 -1
  568. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +1 -1
  569. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +1 -1
  570. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +1 -1
  571. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +1 -1
  572. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +1 -1
  573. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +1 -1
  574. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/rotate-token.post.mjs +1 -1
  575. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +1 -1
  576. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +1 -1
  577. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +1 -1
  578. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +1 -1
  579. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +1 -1
  580. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs +1 -1
  581. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs +1 -1
  582. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +1 -1
  583. package/.output/server/chunks/routes/api/workshop/channels/_id/execution-mode.patch.mjs +92 -0
  584. package/.output/server/chunks/routes/api/workshop/channels/_id/execution-mode.patch.mjs.map +1 -0
  585. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +1 -1
  586. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +1 -1
  587. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +2 -2
  588. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +1 -1
  589. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +1 -1
  590. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.put.mjs +2 -2
  591. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +1 -1
  592. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +1 -1
  593. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +1 -1
  594. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +1 -1
  595. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +2 -2
  596. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs +1 -1
  597. package/.output/server/chunks/routes/api/workshop/channels/_id/index7.get.mjs +1 -1
  598. package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs +1 -1
  599. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs +1 -1
  600. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs +1 -1
  601. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs +1 -1
  602. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs +1 -1
  603. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +1 -1
  604. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +1 -1
  605. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +2 -2
  606. package/.output/server/chunks/routes/api/workshop/channels/_id/tools/reset.post.mjs +2 -2
  607. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +2 -2
  608. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +2 -2
  609. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +1 -1
  610. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +1 -1
  611. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +1 -1
  612. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +1 -1
  613. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +7 -7
  614. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +1 -1
  615. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +1 -1
  616. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +3 -1
  617. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
  618. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +1 -1
  619. package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs +6 -3
  620. package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs.map +1 -1
  621. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +2 -2
  622. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +1 -1
  623. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +1 -1
  624. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +1 -1
  625. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +1 -1
  626. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +1 -1
  627. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +1 -1
  628. package/.output/server/chunks/routes/api/workshop/daq/export/_id_.get.mjs +1 -1
  629. package/.output/server/chunks/routes/api/workshop/daq/export-file.get.mjs +1 -1
  630. package/.output/server/chunks/routes/api/workshop/daq/index.get.mjs +1 -1
  631. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +1 -1
  632. package/.output/server/chunks/routes/api/workshop/daq/index2.post.mjs +2 -2
  633. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +2 -2
  634. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +2 -2
  635. package/.output/server/chunks/routes/api/workshop/daq/query.get.mjs +1 -1
  636. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +2 -2
  637. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +2 -2
  638. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +2 -2
  639. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +2 -2
  640. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +2 -2
  641. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +2 -2
  642. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +2 -2
  643. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +2 -2
  644. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +2 -2
  645. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -2
  646. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +2 -2
  647. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +2 -2
  648. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +2 -2
  649. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +2 -2
  650. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +2 -2
  651. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +2 -2
  652. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +2 -2
  653. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +2 -2
  654. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +2 -2
  655. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +2 -2
  656. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +2 -2
  657. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +2 -2
  658. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +1 -1
  659. package/.output/server/chunks/routes/api/workshop/dcw/index7.get.mjs +1 -1
  660. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +2 -2
  661. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +2 -2
  662. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +2 -2
  663. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +2 -2
  664. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +2 -2
  665. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +1 -1
  666. package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs +2 -2
  667. package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs +5 -5
  668. package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs.map +1 -1
  669. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs +2 -2
  670. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +2 -2
  671. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +2 -2
  672. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +2 -2
  673. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +2 -2
  674. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +2 -2
  675. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +2 -2
  676. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +2 -2
  677. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +2 -2
  678. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +8 -5
  679. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -1
  680. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +9 -5
  681. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -1
  682. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +2 -2
  683. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +1 -1
  684. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +1 -1
  685. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +2 -2
  686. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +1 -1
  687. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +1 -1
  688. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +7 -4
  689. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs.map +1 -1
  690. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +2 -2
  691. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +2 -2
  692. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +2 -2
  693. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +2 -2
  694. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +2 -2
  695. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +2 -2
  696. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +2 -2
  697. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +2 -2
  698. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +2 -2
  699. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +2 -2
  700. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.delete.mjs +1 -1
  701. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.get.mjs +1 -1
  702. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.patch.mjs +1 -1
  703. package/.output/server/chunks/routes/api/workshop/eda/commonality.get.mjs +2 -2
  704. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.delete.mjs +1 -1
  705. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.get.mjs +1 -1
  706. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.patch.mjs +1 -1
  707. package/.output/server/chunks/routes/api/workshop/eda/features/jobs.get.mjs +1 -1
  708. package/.output/server/chunks/routes/api/workshop/eda/features/run.post.mjs +1 -1
  709. package/.output/server/chunks/routes/api/workshop/eda/golden/_id_.delete.mjs +1 -1
  710. package/.output/server/chunks/routes/api/workshop/eda/golden/deviation.get.mjs +1 -1
  711. package/.output/server/chunks/routes/api/workshop/eda/golden/single.get.mjs +1 -1
  712. package/.output/server/chunks/routes/api/workshop/eda/index.get.mjs +1 -1
  713. package/.output/server/chunks/routes/api/workshop/eda/index.post.mjs +1 -1
  714. package/.output/server/chunks/routes/api/workshop/eda/index2.get.mjs +1 -1
  715. package/.output/server/chunks/routes/api/workshop/eda/index2.post.mjs +1 -1
  716. package/.output/server/chunks/routes/api/workshop/eda/index3.get.mjs +1 -1
  717. package/.output/server/chunks/routes/api/workshop/eda/index3.post.mjs +1 -1
  718. package/.output/server/chunks/routes/api/workshop/eda/index4.get.mjs +1 -1
  719. package/.output/server/chunks/routes/api/workshop/eda/index4.post.mjs +1 -1
  720. package/.output/server/chunks/routes/api/workshop/eda/index5.get.mjs +1 -1
  721. package/.output/server/chunks/routes/api/workshop/eda/index5.post.mjs +1 -1
  722. package/.output/server/chunks/routes/api/workshop/eda/index6.get.mjs +1 -1
  723. package/.output/server/chunks/routes/api/workshop/eda/index6.post.mjs +1 -1
  724. package/.output/server/chunks/routes/api/workshop/eda/index7.get.mjs +1 -1
  725. package/.output/server/chunks/routes/api/workshop/eda/index7.post.mjs +1 -1
  726. package/.output/server/chunks/routes/api/workshop/eda/index8.get.mjs +1 -1
  727. package/.output/server/chunks/routes/api/workshop/eda/index8.post.mjs +1 -1
  728. package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.get.mjs +1 -1
  729. package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.patch.mjs +1 -1
  730. package/.output/server/chunks/routes/api/workshop/eda/runs/_id/labels.patch.mjs +1 -1
  731. package/.output/server/chunks/routes/api/workshop/eda/runs.get.mjs +1 -1
  732. package/.output/server/chunks/routes/api/workshop/eda/spc/_id/recompute.post.mjs +1 -1
  733. package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.delete.mjs +1 -1
  734. package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.get.mjs +1 -1
  735. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.delete.mjs +1 -1
  736. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.get.mjs +1 -1
  737. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.patch.mjs +1 -1
  738. package/.output/server/chunks/routes/api/workshop/eda/vm/predict.post.mjs +2 -2
  739. package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs +2 -2
  740. package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs +2 -2
  741. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +2 -2
  742. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +2 -2
  743. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +2 -2
  744. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +2 -2
  745. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +2 -2
  746. package/.output/server/chunks/routes/api/workshop/index.get.mjs +1 -1
  747. package/.output/server/chunks/routes/api/workshop/index.mjs +2 -2
  748. package/.output/server/chunks/routes/api/workshop/index.post.mjs +1 -1
  749. package/.output/server/chunks/routes/api/workshop/index.put.mjs +2 -2
  750. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +1 -1
  751. package/.output/server/chunks/routes/api/workshop/index10.post.mjs +1 -1
  752. package/.output/server/chunks/routes/api/workshop/index11.get.mjs +1 -1
  753. package/.output/server/chunks/routes/api/workshop/index12.get.mjs +2 -2
  754. package/.output/server/chunks/routes/api/workshop/index13.get.mjs +1 -1
  755. package/.output/server/chunks/routes/api/workshop/index14.get.mjs +1 -1
  756. package/.output/server/chunks/routes/api/workshop/index15.get.mjs +1 -1
  757. package/.output/server/chunks/routes/api/workshop/index16.get.mjs +1 -1
  758. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +1 -1
  759. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +1 -1
  760. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +1 -1
  761. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +1 -1
  762. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +1 -1
  763. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +1 -1
  764. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +1 -1
  765. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +2 -2
  766. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +2 -2
  767. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +2 -2
  768. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +2 -2
  769. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +2 -2
  770. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +2 -2
  771. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +1 -1
  772. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +1 -1
  773. package/.output/server/chunks/routes/api/workshop/index9.post.mjs +1 -1
  774. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +1 -1
  775. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +1 -1
  776. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +1 -1
  777. package/.output/server/chunks/routes/api/workshop/mes/datasets.get.mjs +2 -2
  778. package/.output/server/chunks/routes/api/workshop/mes/index.get.mjs +33 -0
  779. package/.output/server/chunks/routes/api/workshop/mes/index.get.mjs.map +1 -0
  780. package/.output/server/chunks/routes/api/workshop/mes/index.put.mjs +56 -0
  781. package/.output/server/chunks/routes/api/workshop/mes/index.put.mjs.map +1 -0
  782. package/.output/server/chunks/routes/api/workshop/mes/points.get.mjs +1 -1
  783. package/.output/server/chunks/routes/api/workshop/mes/preview.post.mjs +1 -1
  784. package/.output/server/chunks/routes/api/workshop/mes/secrets/_ref_.delete.mjs +49 -0
  785. package/.output/server/chunks/routes/api/workshop/mes/secrets/_ref_.delete.mjs.map +1 -0
  786. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +1 -1
  787. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/autofix.mjs +2 -2
  788. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/compile.mjs +2 -2
  789. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/evidence.mjs +2 -2
  790. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/publish.mjs +2 -2
  791. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval-decision.mjs +2 -2
  792. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval.mjs +2 -2
  793. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/transition.mjs +2 -2
  794. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/subgraph.mjs +2 -2
  795. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/validate.mjs +2 -2
  796. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId_.mjs +2 -2
  797. package/.output/server/chunks/routes/api/workshop/ontology/export/_ontologyId_.mjs +2 -2
  798. package/.output/server/chunks/routes/api/workshop/ontology/index.mjs +2 -2
  799. package/.output/server/chunks/routes/api/workshop/ontology/scene.mjs +2 -2
  800. package/.output/server/chunks/routes/api/workshop/ontology/traces/_ontologyId_.mjs +2 -2
  801. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId/compare.mjs +2 -2
  802. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId_.mjs +2 -2
  803. package/.output/server/chunks/routes/api/workshop/optimization/bindings/_id_.delete.mjs +1 -1
  804. package/.output/server/chunks/routes/api/workshop/optimization/capabilities.get.mjs +2 -2
  805. package/.output/server/chunks/routes/api/workshop/optimization/index.get.mjs +2 -2
  806. package/.output/server/chunks/routes/api/workshop/optimization/index.mjs +2 -2
  807. package/.output/server/chunks/routes/api/workshop/optimization/index2.mjs +2 -2
  808. package/.output/server/chunks/routes/api/workshop/optimization/profiles/_id/publish.post.mjs +2 -2
  809. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/crosscheck.post.mjs +2 -2
  810. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/dispatch.post.mjs +2 -2
  811. package/.output/server/chunks/routes/api/workshop/optimization/solve.post.mjs +2 -2
  812. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +2 -2
  813. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +2 -2
  814. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +1 -1
  815. package/.output/server/chunks/routes/api/workshop/process-model/datasets.post.mjs +2 -2
  816. package/.output/server/chunks/routes/api/workshop/process-model/eligibility.mjs +2 -2
  817. package/.output/server/chunks/routes/api/workshop/process-model/experiments.mjs +1 -1
  818. package/.output/server/chunks/routes/api/workshop/process-model/index.mjs +2 -2
  819. package/.output/server/chunks/routes/api/workshop/process-model/specs/_id/publish.post.mjs +2 -2
  820. package/.output/server/chunks/routes/api/workshop/process-model/train.post.mjs +2 -2
  821. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +1 -1
  822. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +2 -2
  823. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +2 -2
  824. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +1 -1
  825. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs +1 -1
  826. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +1 -1
  827. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs +1 -1
  828. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs +1 -1
  829. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +1 -1
  830. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +1 -1
  831. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +1 -1
  832. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +1 -1
  833. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs +1 -1
  834. package/.output/server/chunks/routes/api/workshop/tasks/_id/reopen.post.mjs +1 -1
  835. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +1 -1
  836. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +1 -1
  837. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs +1 -1
  838. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +1 -1
  839. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +1 -1
  840. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +1 -1
  841. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +1 -1
  842. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +1 -1
  843. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +2 -2
  844. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +2 -2
  845. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +1 -1
  846. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +1 -1
  847. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +1 -1
  848. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +1 -1
  849. package/.output/server/chunks/routes/api/workshop/tools/_name_.get.mjs +1 -1
  850. package/.output/server/chunks/routes/api/workshop/tools/sync.post.mjs +2 -2
  851. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +1 -1
  852. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +1 -1
  853. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +2 -2
  854. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +1 -1
  855. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +1 -1
  856. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +1 -1
  857. package/.output/server/chunks/routes/renderer.mjs +2 -2
  858. package/.output/server/chunks/routes/renderer.mjs.map +1 -1
  859. package/.output/server/chunks/virtual/entry.mjs +10774 -9374
  860. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  861. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  862. package/.output/server/chunks/virtual/precomputed.mjs.map +1 -1
  863. package/.output/server/index.mjs +1 -1
  864. package/.output/server/package.json +1 -1
  865. package/README-zh.md +16 -6
  866. package/README.md +16 -6
  867. package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.json +1 -0
  868. package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.mtg0vz68-49792-75b0709555.baseline/1459e6269990a5d229b9228c8b2f62ffaa7d350068380ae8b875fee0db45cca6.source +180 -0
  869. package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.mtg0vz68-49792-75b0709555.baseline/c2991e909c70c5c12b90a407c7adcf63384c51668a2b334e6e047fa675c268fe.source +305 -0
  870. package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.mtg0vz68-49792-75b0709555.baseline/e09129039d1e27e3fac24becc9bdafd2d1a7c8049bff24173df007be865f0165.source +264 -0
  871. package/app/.mimosa/hook-status/sess_05189059-e42d-4188-8911-4f7baabe009b-28ef7c75ea.json +14 -0
  872. package/app/components/AwChart.vue +32 -3
  873. package/app/components/AwLogo.vue +75 -75
  874. package/app/components/aml/AmlDatasetFormModal.vue +279 -279
  875. package/app/components/aml/AmlDatasetTable.vue +319 -319
  876. package/app/components/aml/AmlExperimentsTable.vue +142 -142
  877. package/app/components/aml/AmlInfraBanner.vue +23 -23
  878. package/app/components/aml/AmlJobsTable.vue +248 -248
  879. package/app/components/aml/AmlOverviewBar.vue +62 -62
  880. package/app/components/aml/AmlPageHeader.vue +47 -47
  881. package/app/components/aml/AmlPredictConsole.vue +201 -201
  882. package/app/components/app-header/HitlBell.vue +423 -423
  883. package/app/components/daq/DaqAddNodeModal.vue +209 -209
  884. package/app/components/daq/DaqAlarmBar.vue +46 -46
  885. package/app/components/daq/DaqControlCard.vue +159 -159
  886. package/app/components/daq/DaqInfraBanner.vue +31 -31
  887. package/app/components/daq/DaqLineBanner.vue +47 -47
  888. package/app/components/daq/DaqNodePanel.vue +396 -396
  889. package/app/components/daq/DaqOptPanel.vue +197 -197
  890. package/app/components/daq/DaqTemplateModal.vue +246 -246
  891. package/app/components/dashboard/DashboardGaugeBand.vue +78 -78
  892. package/app/components/dashboard/DashboardHero.vue +209 -209
  893. package/app/components/dashboard/DashboardLineStatePanel.vue +78 -78
  894. package/app/components/dashboard/DashboardNodeStatePanel.vue +46 -46
  895. package/app/components/dashboard/DashboardPipelinePanel.vue +46 -46
  896. package/app/components/dashboard/DashboardTrendPanel.vue +83 -83
  897. package/app/components/dashboard/DashboardWritePanel.vue +52 -52
  898. package/app/components/dcw/DcwCreateLineModal.vue +105 -105
  899. package/app/components/dcw/DcwDeleteLineModal.vue +73 -73
  900. package/app/components/dcw/DcwDetailTemplateModal.vue +238 -238
  901. package/app/components/dcw/DcwLedgerCard.vue +160 -160
  902. package/app/components/dcw/DcwMesArtifacts.vue +140 -140
  903. package/app/components/dcw/DcwProductCreateModal.vue +113 -113
  904. package/app/components/dcw/DcwRecipeDispatchHistoryModal.vue +244 -244
  905. package/app/components/dcw/DcwRecipeEditModal.vue +399 -399
  906. package/app/components/dcw/DcwRecipeHistoryModal.vue +165 -165
  907. package/app/components/dcw/DcwRunDataModal.vue +191 -191
  908. package/app/components/dcw/DcwTemplateModal.vue +227 -227
  909. package/app/components/dcw/DcwWriteHistoryCard.vue +96 -96
  910. package/app/components/dcw/ExpConfirmCard.vue +103 -103
  911. package/app/components/dcw/RecipeDispatchApprovalCard.vue +330 -330
  912. package/app/components/logs/LogsPageHead.vue +71 -71
  913. package/app/components/monitor/MonitorAgentTable.vue +143 -143
  914. package/app/components/monitor/MonitorChannelTable.vue +80 -80
  915. package/app/components/monitor/MonitorLoginGate.vue +24 -24
  916. package/app/components/monitor/MonitorPageHead.vue +92 -92
  917. package/app/components/monitor/MonitorProcessTable.vue +159 -159
  918. package/app/components/ontology/OntologyGraph.vue +356 -356
  919. package/app/components/operations/OperationsFilterCard.vue +164 -164
  920. package/app/components/operations/OperationsPageHead.vue +47 -47
  921. package/app/components/tokens/TokenCreateModal.vue +42 -42
  922. package/app/components/tokens/TokenOnceModal.vue +164 -164
  923. package/app/components/tokens/TokenRenameModal.vue +40 -40
  924. package/app/components/tokens/TokensPageHead.vue +76 -76
  925. package/app/components/workshop/A2aRpcDebugger.vue +237 -237
  926. package/app/components/workshop/AgentInspectorDrawer.vue +424 -424
  927. package/app/components/workshop/AgentLanesView.vue +278 -278
  928. package/app/components/workshop/ArtifactCard.vue +120 -120
  929. package/app/components/workshop/AssetLibrary.vue +452 -452
  930. package/app/components/workshop/ChatMemberPanel.vue +556 -556
  931. package/app/components/workshop/CommandPalette.vue +270 -270
  932. package/app/components/workshop/Composer.vue +540 -540
  933. package/app/components/workshop/DaqTemplateIcon.vue +33 -33
  934. package/app/components/workshop/DeviceTwinPanel.vue +167 -167
  935. package/app/components/workshop/FileSelectorModal.vue +188 -188
  936. package/app/components/workshop/InspectorPanel.vue +301 -301
  937. package/app/components/workshop/PluginSlot.vue +120 -120
  938. package/app/components/workshop/TranscriptTimeline.vue +223 -223
  939. package/app/components/workshop/agents/AgentTemplateEditModal.vue +139 -139
  940. package/app/components/workshop/blocks/ClusterArtifact.vue +61 -61
  941. package/app/components/workshop/blocks/ClusterError.vue +85 -85
  942. package/app/components/workshop/blocks/ClusterLife.vue +87 -87
  943. package/app/components/workshop/blocks/ClusterMember.vue +95 -95
  944. package/app/components/workshop/blocks/ClusterMemory.vue +84 -84
  945. package/app/components/workshop/blocks/ClusterOther.vue +67 -67
  946. package/app/components/workshop/blocks/ClusterStatus.vue +149 -149
  947. package/app/components/workshop/blocks/ClusterTool.vue +176 -176
  948. package/app/components/workshop/blocks/EventBlockAvatar.vue +114 -114
  949. package/app/components/workshop/blocks/EventBlockHead.vue +232 -232
  950. package/app/components/workshop/composer/ComposerToolbar.vue +278 -278
  951. package/app/components/workshop/composer/MentionMenu.vue +135 -135
  952. package/app/components/workshop/composer/ReplyChip.vue +65 -65
  953. package/app/components/workshop/composer/StatusChip.vue +171 -171
  954. package/app/components/workshop/console/Dock.vue +71 -71
  955. package/app/components/workshop/console/LeftPane.vue +84 -84
  956. package/app/components/workshop/device-twin/DeviceTwinCard.vue +265 -265
  957. package/app/components/workshop/device-twin/DeviceTwinDcwSection.vue +203 -203
  958. package/app/components/workshop/lanes/AddMemberModal.vue +270 -270
  959. package/app/components/workshop/lanes/EditMemberModal.vue +106 -106
  960. package/app/components/workshop/lanes/LanesToolbar.vue +97 -97
  961. package/app/components/workshop/session-list/ChannelSettingsModal.vue +112 -1
  962. package/app/components/workshop/session-list/MountChannelModal.vue +124 -124
  963. package/app/components/workshop/session-list/SaveTemplateModal.vue +93 -93
  964. package/app/components/workshop/task-board/Card.vue +172 -172
  965. package/app/components/workshop/task-board/Column.vue +151 -151
  966. package/app/components/workshop/task-board/List.vue +157 -157
  967. package/app/components/workshop/task-board/StatusMenu.vue +88 -88
  968. package/app/components/workshop/teams/TeamAddMemberModal.vue +53 -53
  969. package/app/components/workshop/teams/TeamCreateModal.vue +94 -94
  970. package/app/components/workshop/teams/TeamDeployModal.vue +40 -40
  971. package/app/components/workshop/teams/TeamPluginModal.vue +119 -119
  972. package/app/components/workshop/terminal/OmpTerminalPanel.vue +270 -270
  973. package/app/components/workshop/terminal/TerminalHitlCard.vue +170 -170
  974. package/app/components/workshop/town/TownScene.ts +466 -466
  975. package/app/components/workshop/town/TownView.vue +561 -561
  976. package/app/components/workshop/town/components/AutoModeConfirmModal.vue +94 -94
  977. package/app/components/workshop/town/components/TownAgentBindings.vue +405 -405
  978. package/app/components/workshop/town/components/TownAgentInspector.vue +554 -554
  979. package/app/components/workshop/town/components/TownAlarmList.vue +147 -147
  980. package/app/components/workshop/town/components/TownBoundaryPanel.vue +350 -350
  981. package/app/components/workshop/town/components/TownCalloutLayer.vue +147 -147
  982. package/app/components/workshop/town/components/TownChannelDock.vue +116 -116
  983. package/app/components/workshop/town/components/TownControlDock.vue +405 -405
  984. package/app/components/workshop/town/components/TownDaqNodeInspector.vue +345 -345
  985. package/app/components/workshop/town/components/TownDaqTree.vue +366 -366
  986. package/app/components/workshop/town/components/TownDcwBindSection.vue +473 -473
  987. package/app/components/workshop/town/components/TownDcwNodeInspector.vue +185 -185
  988. package/app/components/workshop/town/components/TownDcwTree.vue +280 -280
  989. package/app/components/workshop/town/components/TownDeviceBindings.vue +394 -394
  990. package/app/components/workshop/town/components/TownDeviceTransform.vue +248 -248
  991. package/app/components/workshop/town/components/TownEventList.vue +120 -120
  992. package/app/components/workshop/town/components/TownHealthBody.vue +100 -100
  993. package/app/components/workshop/town/components/TownKpiStrip.vue +207 -207
  994. package/app/components/workshop/town/components/TownLeftRail.vue +308 -308
  995. package/app/components/workshop/town/components/TownLoadingMask.vue +61 -61
  996. package/app/components/workshop/town/components/TownNavMap.vue +154 -154
  997. package/app/components/workshop/town/components/TownRightRail.vue +543 -543
  998. package/app/components/workshop/town/components/TownStage.vue +281 -281
  999. package/app/components/workshop/town/components/TownStageTop.vue +238 -238
  1000. package/app/components/workshop/town/components/TownStatusBar.vue +108 -108
  1001. package/app/components/workshop/town/components/TownTopNav.vue +367 -367
  1002. package/app/components/workshop/town/components/TownTrendDock.vue +178 -178
  1003. package/app/components/workshop/town/scene/town-scene-agents.ts +254 -254
  1004. package/app/components/workshop/town/scene/town-scene-behavior.ts +194 -194
  1005. package/app/components/workshop/town/scene/town-scene-bubbles.ts +96 -96
  1006. package/app/components/workshop/town/scene/town-scene-core.ts +158 -158
  1007. package/app/components/workshop/town/scene/town-scene-models.ts +109 -109
  1008. package/app/components/workshop/town/scene/town-scene-visuals.ts +279 -279
  1009. package/app/components/workshop/town/scene/town-scene3d-agents.ts +308 -308
  1010. package/app/components/workshop/town/scene/town-scene3d-blocks.ts +297 -297
  1011. package/app/components/workshop/town/scene/town-scene3d-bubbles.ts +281 -281
  1012. package/app/components/workshop/town/scene/town-scene3d-camera.ts +282 -282
  1013. package/app/components/workshop/town/scene/town-scene3d-devices.ts +433 -433
  1014. package/app/components/workshop/town/scene/town-scene3d-editing.ts +490 -490
  1015. package/app/components/workshop/town/scene/town-scene3d-events.ts +173 -173
  1016. package/app/components/workshop/town/scene/town-scene3d-factory.ts +412 -412
  1017. package/app/components/workshop/town/scene/town-scene3d-hud.ts +110 -110
  1018. package/app/components/workshop/town/scene/town-scene3d-lifecycle.ts +144 -144
  1019. package/app/components/workshop/town/scene/town-scene3d-links.ts +141 -141
  1020. package/app/components/workshop/town/scene/town-scene3d-loop.ts +286 -286
  1021. package/app/components/workshop/town/scene/town-scene3d-models.ts +154 -154
  1022. package/app/components/workshop/town/scene/town-scene3d-nodes.ts +562 -562
  1023. package/app/components/workshop/town/scene/town-scene3d-ranges.ts +273 -273
  1024. package/app/components/workshop/town/scene/town-scene3d-renderer.ts +320 -320
  1025. package/app/components/workshop/town/scene/town-scene3d-selection.ts +257 -257
  1026. package/app/components/workshop/town/scene/town-scene3d-types.ts +264 -264
  1027. package/app/components/workshop/transcript/TranscriptBlockList.vue +68 -68
  1028. package/app/components/workshop/transcript/TranscriptEarlierPager.vue +81 -81
  1029. package/app/components/workshop/transcript/TranscriptFilterBar.vue +126 -126
  1030. package/app/components/workshop/workbench/CreateWorkspaceModal.vue +36 -36
  1031. package/app/components/workshop/workbench/WorkspaceEmpty.vue +56 -56
  1032. package/app/composables/useResponsive.ts +88 -88
  1033. package/app/composables/workshop/device-twin-types.ts +29 -29
  1034. package/app/composables/workshop/event-blocks/attention.ts +58 -58
  1035. package/app/composables/workshop/event-blocks/classify.ts +44 -44
  1036. package/app/composables/workshop/event-blocks/clusterer.ts +231 -231
  1037. package/app/composables/workshop/event-blocks/fold-stream.ts +45 -45
  1038. package/app/composables/workshop/event-blocks/markdown.ts +81 -81
  1039. package/app/composables/workshop/event-blocks/mentions.ts +49 -49
  1040. package/app/composables/workshop/event-blocks/text-utils.ts +100 -100
  1041. package/app/composables/workshop/event-blocks/types.ts +40 -40
  1042. package/app/composables/workshop/town/town-relay-props.ts +231 -231
  1043. package/app/composables/workshop/town/town-view-types.ts +145 -145
  1044. package/app/composables/workshop/town/useTownAgentBindings.ts +182 -182
  1045. package/app/composables/workshop/town/useTownAgentChat.ts +203 -203
  1046. package/app/composables/workshop/town/useTownAlarms.ts +36 -36
  1047. package/app/composables/workshop/town/useTownCallouts.ts +174 -174
  1048. package/app/composables/workshop/town/useTownChannels.ts +220 -220
  1049. package/app/composables/workshop/town/useTownHealth.ts +66 -66
  1050. package/app/composables/workshop/town/useTownHudTickers.ts +77 -77
  1051. package/app/composables/workshop/town/useTownLayout.ts +277 -277
  1052. package/app/composables/workshop/town/useTownNavMap.ts +301 -301
  1053. package/app/composables/workshop/town/useTownNodeBindings.ts +345 -345
  1054. package/app/composables/workshop/town/useTownPanelDrag.ts +91 -91
  1055. package/app/composables/workshop/town/useTownRailData.ts +421 -421
  1056. package/app/composables/workshop/town/useTownSceneControl.ts +92 -92
  1057. package/app/composables/workshop/town/useTownSceneInput.ts +275 -275
  1058. package/app/composables/workshop/town/useTownSceneRuntime.ts +390 -390
  1059. package/app/composables/workshop/town/useTownSheets.ts +41 -41
  1060. package/app/composables/workshop/town/useTownTrends.ts +93 -93
  1061. package/app/composables/workshop/useChannelList.ts +88 -88
  1062. package/app/composables/workshop/useChannelTerminals.ts +65 -65
  1063. package/app/composables/workshop/useComposerMentions.ts +130 -130
  1064. package/app/composables/workshop/useDcwStream.ts +374 -374
  1065. package/app/composables/workshop/useDeviceTwinDcwWrite.ts +77 -77
  1066. package/app/composables/workshop/useDeviceTwinPanel.ts +56 -56
  1067. package/app/composables/workshop/useEscClose.ts +44 -44
  1068. package/app/composables/workshop/useEventBlockView.ts +159 -159
  1069. package/app/composables/workshop/useEventBlocks.ts +33 -33
  1070. package/app/composables/workshop/useHitlAnswer.ts +184 -184
  1071. package/app/composables/workshop/useLaneWidths.ts +27 -27
  1072. package/app/composables/workshop/useOmpTerminalSession.ts +424 -424
  1073. package/app/composables/workshop/usePluginAdmin.ts +152 -152
  1074. package/app/composables/workshop/usePluginPanels.ts +72 -72
  1075. package/app/composables/workshop/useRuntimeConfigDraft.ts +118 -118
  1076. package/app/composables/workshop/useSettingsGroups.ts +243 -243
  1077. package/app/composables/workshop/useTaskBoardColumns.ts +47 -47
  1078. package/app/composables/workshop/useTerminalRenderer.ts +308 -308
  1079. package/app/composables/workshop/useTranscriptEnterStage.ts +48 -48
  1080. package/app/composables/workshop/useTranscriptHistory.ts +52 -52
  1081. package/app/composables/workshop/useTranscriptScroll.ts +113 -113
  1082. package/app/composables/workshop/useVisibleInterval.ts +42 -42
  1083. package/app/composables/workshop/useWorkshopApi.ts +6 -0
  1084. package/app/composables/workshop/useWorkshopWs.ts +265 -265
  1085. package/app/config/index.ts +1 -1
  1086. package/app/config/schema.ts +5 -0
  1087. package/app/middleware/locale-cookie.global.ts +22 -22
  1088. package/app/pages/aml/api.ts +6 -6
  1089. package/app/pages/aml/composables/useAmlDatasets.ts +38 -38
  1090. package/app/pages/aml/composables/useAmlEntities.ts +57 -57
  1091. package/app/pages/aml/composables/useAmlEnv.ts +191 -191
  1092. package/app/pages/aml/composables/useAmlExperiments.ts +45 -45
  1093. package/app/pages/aml/composables/useAmlFormat.ts +44 -44
  1094. package/app/pages/aml/composables/useAmlJobs.ts +131 -131
  1095. package/app/pages/aml/composables/useAmlModels.ts +56 -56
  1096. package/app/pages/aml/composables/useAmlNotes.ts +47 -47
  1097. package/app/pages/aml/composables/useAmlPredict.ts +93 -93
  1098. package/app/pages/aml/constants.ts +63 -63
  1099. package/app/pages/aml/index.vue +236 -236
  1100. package/app/pages/composables/useDashboardCharts.ts +192 -192
  1101. package/app/pages/composables/useDashboardData.ts +144 -144
  1102. package/app/pages/daq/composables/useDaqAddNode.ts +126 -126
  1103. package/app/pages/daq/composables/useDaqDetailBinding.ts +29 -29
  1104. package/app/pages/daq/composables/useDaqDetailFrames.ts +42 -42
  1105. package/app/pages/daq/composables/useDaqDetailNode.ts +53 -53
  1106. package/app/pages/daq/composables/useDaqDetailParams.ts +138 -138
  1107. package/app/pages/daq/composables/useDaqFilters.ts +187 -187
  1108. package/app/pages/daq/composables/useDaqNodeWindow.ts +86 -86
  1109. package/app/pages/daq/composables/useDaqOptimizations.ts +99 -99
  1110. package/app/pages/daq/composables/useDaqTemplates.ts +152 -152
  1111. package/app/pages/daq/index.vue +260 -260
  1112. package/app/pages/dcw/composables/useDcwCards.ts +27 -27
  1113. package/app/pages/dcw/composables/useDcwDetailScope.ts +145 -145
  1114. package/app/pages/dcw/composables/useDcwDetailTemplates.ts +94 -94
  1115. package/app/pages/dcw/composables/useDcwFilter.ts +29 -29
  1116. package/app/pages/dcw/composables/useDcwLedger.ts +34 -34
  1117. package/app/pages/dcw/composables/useDcwLineMutations.ts +115 -115
  1118. package/app/pages/dcw/composables/useDcwLineRun.ts +60 -60
  1119. package/app/pages/dcw/composables/useDcwProducts.ts +54 -54
  1120. package/app/pages/dcw/composables/useDcwQuery.ts +68 -68
  1121. package/app/pages/dcw/composables/useDcwQuickActions.ts +47 -47
  1122. package/app/pages/dcw/composables/useDcwRecipes.ts +256 -256
  1123. package/app/pages/dcw/composables/useDcwTemplates.ts +50 -50
  1124. package/app/pages/dcw/index.vue +195 -195
  1125. package/app/pages/dcw/types.ts +9 -9
  1126. package/app/pages/index.vue +126 -126
  1127. package/app/pages/logs/composables/useLogsFormat.ts +43 -43
  1128. package/app/pages/logs/composables/useLogsScope.ts +39 -39
  1129. package/app/pages/monitor/types.ts +61 -61
  1130. package/app/pages/operations.vue +61 -61
  1131. package/app/pages/permissions/index.vue +369 -369
  1132. package/app/pages/studio/board.vue +30 -9
  1133. package/app/pages/studio/index.vue +40 -8
  1134. package/app/pages/studio/pipeline.vue +16 -24
  1135. package/app/pages/tokens/composables/useTokenClipboard.ts +33 -33
  1136. package/app/pages/tokens/composables/useTokenCreate.ts +93 -93
  1137. package/app/pages/tokens/composables/useTokenRename.ts +54 -54
  1138. package/app/pages/tokens/composables/useTokenReveal.ts +84 -84
  1139. package/app/pages/tokens/composables/useTokensList.ts +60 -60
  1140. package/app/pages/tokens.vue +111 -111
  1141. package/app/pages/tools/index.vue +98 -98
  1142. package/app/pages/workshop/agents.vue +130 -130
  1143. package/app/pages/workshop/composables/useAgentHarnessOptions.ts +59 -59
  1144. package/app/pages/workshop/composables/useAgentTemplateActions.ts +42 -42
  1145. package/app/pages/workshop/composables/useAgentTemplateDialogState.ts +24 -24
  1146. package/app/pages/workshop/composables/useAgentTemplateForm.ts +88 -88
  1147. package/app/pages/workshop/composables/useAgentTemplatesCatalog.ts +92 -92
  1148. package/app/pages/workshop/composables/useTeamActions.ts +44 -44
  1149. package/app/pages/workshop/composables/useTeamAddMemberDialog.ts +49 -49
  1150. package/app/pages/workshop/composables/useTeamCreateDialog.ts +67 -67
  1151. package/app/pages/workshop/composables/useTeamDeployDialog.ts +49 -49
  1152. package/app/pages/workshop/composables/useTeamDialogState.ts +46 -46
  1153. package/app/pages/workshop/composables/useTeamPluginDialog.ts +72 -72
  1154. package/app/pages/workshop/composables/useTeamsCatalog.ts +100 -100
  1155. package/app/pages/workshop/composables/useWorkbenchWorkspaces.ts +123 -123
  1156. package/app/pages/workshop/composables/useWorkspaceAuth.ts +31 -31
  1157. package/app/pages/workshop/composables/useWorkspaceChannels.ts +62 -62
  1158. package/app/pages/workshop/composables/useWorkspaceShell.ts +136 -136
  1159. package/app/pages/workshop/schedules.vue +553 -553
  1160. package/app/pages/workshop/w/[wsId].vue +221 -221
  1161. package/app/plugins/aw-plugins.client.ts +213 -213
  1162. package/app/plugins/esc-close.client.ts +31 -31
  1163. package/app/stores/workshop/hitl.ts +183 -183
  1164. package/app/stores/workshop/narrow-fetch.ts +23 -23
  1165. package/app/utils/api-error.ts +75 -75
  1166. package/app/utils/builtin-catalog.ts +104 -104
  1167. package/app/utils/chart-pipeline.ts +50 -1
  1168. package/app/utils/chart-trend.ts +97 -97
  1169. package/app/utils/dcw-driver-badge.ts +16 -16
  1170. package/app/utils/dcw-recipe-form.ts +26 -26
  1171. package/cli/commands/tui.mjs +28 -28
  1172. package/cli/commands/update.mjs +124 -124
  1173. package/cli/core/child-lifecycle.mjs +136 -136
  1174. package/cli/core/meta.mjs +38 -38
  1175. package/cli/core/post-build.mjs +96 -96
  1176. package/docs/cli.en.md +2 -2
  1177. package/docs/cli.md +2 -2
  1178. package/docs/mcp.en.md +27 -27
  1179. package/docs/multi-harness-architecture.md +248 -248
  1180. package/docs/tui.md +43 -43
  1181. package/i18n/dicts/_en.json +1551 -1551
  1182. package/i18n/dicts/_en2.json +300 -300
  1183. package/i18n/dicts/_en4.json +114 -114
  1184. package/i18n/dicts/agentLanesView.json +61 -61
  1185. package/i18n/dicts/appHeader.json +17 -17
  1186. package/i18n/dicts/channelSessionList.json +51 -51
  1187. package/i18n/dicts/chat.json +79 -79
  1188. package/i18n/dicts/clusterTool.json +4 -4
  1189. package/i18n/dicts/composer.json +38 -38
  1190. package/i18n/dicts/ctpl.json +37 -37
  1191. package/i18n/dicts/dcwDetail.json +219 -219
  1192. package/i18n/dicts/lineOps.json +14 -14
  1193. package/i18n/dicts/multiChannelView.json +13 -13
  1194. package/i18n/dicts/notifications.json +13 -13
  1195. package/i18n/dicts/taskInspectorDrawer.json +25 -25
  1196. package/i18n/dicts/teamPlugins.json +10 -10
  1197. package/i18n/dicts/townView.json +209 -209
  1198. package/i18n/locales/en.ts +18 -0
  1199. package/i18n/locales/zh-CN.ts +18 -0
  1200. package/mcp/discovery.mjs +227 -227
  1201. package/package.json +1 -1
  1202. package/public/favicon.svg +14 -14
  1203. package/public/robots.txt +3 -3
  1204. package/scripts/_audit/_detached-mes-20261028.mjs +48 -0
  1205. package/scripts/_audit/_detached-nodesim-20261028.mjs +50 -0
  1206. package/scripts/_audit/_detached-sim-20261028.mjs +44 -0
  1207. package/scripts/_audit/_live-execmodes-20261028.mjs +246 -0
  1208. package/scripts/_audit/_live-execmodes-invoke-20261028.mjs +203 -0
  1209. package/scripts/_audit/_mission-coupling-probe-20261028.mjs +27 -0
  1210. package/scripts/_audit/_mission-f1-evidence-20261028.mjs +56 -0
  1211. package/scripts/_audit/_mission-idd-remint-20261028.mjs +32 -0
  1212. package/scripts/_audit/_mission-ui-shots-20261028.mjs +56 -0
  1213. package/scripts/_audit/_mission-us10-timeline-20261028.mjs +65 -0
  1214. package/scripts/_audit/_mission-us12-tools-20261028.mjs +85 -0
  1215. package/scripts/_audit/_mission-us4-daq-dcw-20261028.mjs +115 -0
  1216. package/scripts/_audit/_mission-us5-mes-20261028.mjs +142 -0
  1217. package/scripts/_audit/_mission-us6-dialog-20261028.mjs +43 -0
  1218. package/scripts/_audit/_mission-us7-diag-20261028.mjs +42 -0
  1219. package/scripts/_audit/_mission-us7-final-20261028.mjs +79 -0
  1220. package/scripts/_audit/_mission-us7-idd-rag-20261028.mjs +147 -0
  1221. package/scripts/_audit/audit-harness-adapters.md +664 -664
  1222. package/scripts/_audit/aw-mcp-live-e2e.mjs +293 -293
  1223. package/scripts/_audit/bump-version.mjs +51 -51
  1224. package/scripts/_audit/detached-instance.mjs +112 -112
  1225. package/scripts/_audit/detached-start.mjs +103 -103
  1226. package/scripts/_audit/eda-ui-fix-acceptance.mjs +212 -212
  1227. package/scripts/_audit/guard-upstream-liveness.mjs +104 -104
  1228. package/scripts/_audit/http-api-authz-audit.md +657 -657
  1229. package/scripts/_audit/kb-team-mock-e2e.mjs +146 -146
  1230. package/scripts/_audit/kb-team-omp-e2e.mjs +229 -229
  1231. package/scripts/_audit/run.mjs +21 -21
  1232. package/scripts/_audit/runtime-audit.md +716 -716
  1233. package/scripts/_audit/skills-guided-e2e.mjs +316 -316
  1234. package/scripts/_audit/stability-soak.mjs +252 -252
  1235. package/scripts/_audit/stubs/nuxt-imports.mjs +67 -67
  1236. package/scripts/_audit/ts-register-hook.mjs +12 -12
  1237. package/scripts/_audit/ts-resolve-hook.mjs +96 -96
  1238. package/scripts/_aw0746-stage12.mjs +94 -94
  1239. package/scripts/_aw0746-stage34.mjs +136 -136
  1240. package/scripts/_aw0746-stage6b-train-sweep.mjs +145 -145
  1241. package/scripts/_aw0746-stage6c-jobsmoke.mjs +69 -69
  1242. package/scripts/_dbg-configroot-audit.mjs +86 -86
  1243. package/scripts/_dbg-daq-intervals-func.mjs +115 -115
  1244. package/scripts/_dbg-perms-e2e.mjs +142 -142
  1245. package/scripts/_dbg-protocol-matrix.mjs +462 -462
  1246. package/scripts/_dbg-render-regression.mjs +193 -193
  1247. package/scripts/_dbg-schedule-e2e.mjs +262 -262
  1248. package/scripts/_e2e-ui-functional.mjs +371 -371
  1249. package/scripts/_lib-aml-python-run.mjs +17 -17
  1250. package/scripts/_plc-sim-detached.cjs +22 -22
  1251. package/scripts/_provision-injection-line.mjs +39 -39
  1252. package/scripts/_run-matrix.ps1 +53 -53
  1253. package/scripts/_sweep-button-contrast.mjs +87 -87
  1254. package/scripts/acceptance-aml-hybrid-e2e.ts +396 -396
  1255. package/scripts/acceptance-aml-hybrid-live.mjs +93 -93
  1256. package/scripts/acceptance-aml-model-identity.ts +137 -137
  1257. package/scripts/agent-daq-isolation-e2e.mjs +91 -91
  1258. package/scripts/api-contract-smoke.mjs +126 -126
  1259. package/scripts/ask-hitl-e2e.mjs +96 -96
  1260. package/scripts/aw-expose.mjs +159 -159
  1261. package/scripts/channel-interaction-smoke.mjs +80 -80
  1262. package/scripts/data-studio-ui-e2e.mjs +163 -163
  1263. package/scripts/demo-group-chat-all-real.ts +279 -279
  1264. package/scripts/dev-modbus-simulator.mjs +55 -55
  1265. package/scripts/docs-shots.mjs +36 -36
  1266. package/scripts/e2e-agentteam-chat.mjs +473 -473
  1267. package/scripts/e2e-agentteam-real-triage.mjs +421 -421
  1268. package/scripts/e2e-aml-decoupled.mjs +162 -162
  1269. package/scripts/e2e-aw-tui-global.mjs +277 -277
  1270. package/scripts/e2e-closedloop/cleanup.mjs +27 -27
  1271. package/scripts/e2e-closedloop/lib.mjs +109 -109
  1272. package/scripts/e2e-closedloop/main.mjs +59 -59
  1273. package/scripts/e2e-closedloop/scenarios-accounts.mjs +210 -210
  1274. package/scripts/e2e-closedloop/scenarios-authz.mjs +196 -196
  1275. package/scripts/e2e-closedloop/scenarios-daq-dcw.mjs +222 -222
  1276. package/scripts/e2e-closedloop/scenarios-plugins.mjs +169 -169
  1277. package/scripts/e2e-closedloop/state.mjs +10 -10
  1278. package/scripts/e2e-config-groups.mjs +238 -238
  1279. package/scripts/e2e-crash-cycle.mjs +108 -108
  1280. package/scripts/e2e-direct-rest-simulator-paper.mjs +624 -0
  1281. package/scripts/e2e-eda-pipeline.mjs +23 -2
  1282. package/scripts/e2e-execution-modes.mjs +290 -0
  1283. package/scripts/e2e-full-closedloop.mjs +16 -16
  1284. package/scripts/e2e-hil-multi-user.mjs +307 -307
  1285. package/scripts/e2e-hil-restart.mjs +339 -339
  1286. package/scripts/e2e-injection-recipe-closedloop.mjs +1 -1
  1287. package/scripts/e2e-line-governance.mjs +352 -352
  1288. package/scripts/e2e-mqtt-protocol.mjs +945 -0
  1289. package/scripts/e2e-ontology.mjs +393 -393
  1290. package/scripts/e2e-pi-simulator-paper.mjs +2317 -0
  1291. package/scripts/e2e-plc-plugin-closedloop.mjs +549 -549
  1292. package/scripts/e2e-registered-harness-simulator-paper.mjs +1926 -0
  1293. package/scripts/e2e-simulator-optimizer-paper.mjs +264 -0
  1294. package/scripts/fixtures/omp-paper-harness.mjs +163 -0
  1295. package/scripts/full-stack-shots.mjs +145 -145
  1296. package/scripts/full-tool-injection-harness-e2e.mjs +214 -214
  1297. package/scripts/hitl-reject-e2e.mjs +131 -131
  1298. package/scripts/line-log-smoke.mjs +260 -260
  1299. package/scripts/live-aml-mockomp.mjs +304 -304
  1300. package/scripts/live-aml-optloop-resume.mjs +322 -322
  1301. package/scripts/live-aml-optloop.mjs +588 -588
  1302. package/scripts/live-aml-stage9.mjs +169 -169
  1303. package/scripts/live-aml-two-goals.mjs +315 -315
  1304. package/scripts/live-optloop-two-modes.mjs +857 -857
  1305. package/scripts/mes-agent-integration-e2e.mjs +361 -361
  1306. package/scripts/ops-plugins-e2e.mjs +85 -85
  1307. package/scripts/scenario-suite-setup.mjs +337 -337
  1308. package/scripts/scenario-suite-stability.mjs +144 -144
  1309. package/scripts/team-coordination-e2e.mjs +96 -96
  1310. package/scripts/test-agentteam-workflow.ts +472 -472
  1311. package/scripts/test-aw-skills.mjs +102 -102
  1312. package/scripts/test-daq-frame-race.mjs +358 -358
  1313. package/scripts/test-data-root.mjs +208 -208
  1314. package/scripts/test-events-index.mjs +176 -176
  1315. package/scripts/test-group-chat-unit/lib.ts +186 -186
  1316. package/scripts/test-group-chat-unit/main.ts +45 -45
  1317. package/scripts/test-group-chat-unit.ts +35 -35
  1318. package/scripts/test-hitl-decision.ts +526 -526
  1319. package/scripts/test-hitl-registry.ts +112 -112
  1320. package/scripts/test-log-flooding.mjs +160 -160
  1321. package/scripts/test-lru.mjs +101 -101
  1322. package/scripts/test-plugin-hardening.mjs +90 -90
  1323. package/scripts/test-plugin-lifecycle.mjs +173 -173
  1324. package/scripts/test-rollback-index.mjs +137 -137
  1325. package/scripts/test-schedule-runtime.ts +309 -309
  1326. package/scripts/test-sdk-surface.mjs +158 -158
  1327. package/scripts/test-serial-bridge.mjs +418 -418
  1328. package/scripts/test-tui-commands.mjs +148 -148
  1329. package/scripts/test-tui-reducers.mjs +72 -72
  1330. package/scripts/three-system-e2e/lib.mjs +79 -79
  1331. package/scripts/three-system-e2e/main.mjs +40 -40
  1332. package/scripts/three-system-e2e/phases/phase-0-user-token.mjs +42 -42
  1333. package/scripts/three-system-e2e/phases/phase-0a2-line-autoselect.mjs +35 -35
  1334. package/scripts/three-system-e2e/phases/phase-0b-fixture-grants.mjs +39 -39
  1335. package/scripts/three-system-e2e/phases/phase-0c-plugin-outbound-auth.mjs +95 -95
  1336. package/scripts/three-system-e2e/phases/stage-1-health.mjs +47 -47
  1337. package/scripts/three-system-e2e/phases/stage-2-5-team-plugins.mjs +84 -84
  1338. package/scripts/three-system-e2e/phases/stage-2-teams-tools-hitl.mjs +184 -184
  1339. package/scripts/three-system-e2e/phases/stage-3-diag.mjs +73 -73
  1340. package/scripts/three-system-e2e/phases/stage-4-plugin-toggle.mjs +53 -53
  1341. package/scripts/three-system-e2e/state.mjs +87 -87
  1342. package/scripts/three-system-e2e.mjs +40 -40
  1343. package/scripts/tool-face-batch-identity-e2e.mjs +222 -222
  1344. package/scripts/tsconfig.json +14 -14
  1345. package/scripts/tui-smoke.mjs +100 -100
  1346. package/scripts/typecheck.mjs +75 -75
  1347. package/scripts/ui/md-lint.mjs +80 -80
  1348. package/scripts/ui/readme-assets.mjs +30 -30
  1349. package/scripts/ui/readme-shots.mjs +42 -42
  1350. package/scripts/ui/record-demo.mjs +557 -557
  1351. package/scripts/ui/record.mjs +225 -225
  1352. package/scripts/ui/seed-admin.mjs +68 -68
  1353. package/scripts/ui/seed-demo.mjs +83 -83
  1354. package/scripts/ui/seed-industrial-demo.mjs +171 -171
  1355. package/scripts/ui/shot-hero.mjs +25 -25
  1356. package/scripts/ui/shots.mjs +75 -75
  1357. package/scripts/ui/verify-nav.mjs +51 -51
  1358. package/scripts/ui/verify-responsive.mjs +285 -285
  1359. package/sdk/client.d.mts +110 -110
  1360. package/sdk/examples/line-sentinel/index.mjs +105 -105
  1361. package/sdk/examples/ops-notifier/index.mjs +34 -34
  1362. package/sdk/examples/sample-insight/index.mjs +39 -39
  1363. package/server/.mimosa/hook-state/sess_869e5bfd-07f4-4b6e-a991-6221fcf6b7d2.json +1 -0
  1364. package/server/.mimosa/hook-state/sess_869e5bfd-07f4-4b6e-a991-6221fcf6b7d2.mvhn1irp-99488-e3fdc1cbfc.baseline/942d2679b87b96c612b4f2a425c3ccc5b6f3234f0cf589a8441602f866fbe277.source +41 -0
  1365. package/server/.mimosa/hook-state/sess_869e5bfd-07f4-4b6e-a991-6221fcf6b7d2.mvhn1irp-99488-e3fdc1cbfc.baseline/dd617a82339d2c61e49e28e416aabeb2fc100fb3cb1beca18d02dfb833214af6.source +51 -0
  1366. package/server/.mimosa/hook-status/sess_869e5bfd-07f4-4b6e-a991-6221fcf6b7d2-e67b6b91bf.json +14 -0
  1367. package/server/api/plugins/client/[name].get.ts +18 -18
  1368. package/server/api/plugins/i18n.get.ts +12 -12
  1369. package/server/api/plugins/manifest.get.ts +10 -10
  1370. package/server/api/system/backup/list.get.ts +32 -32
  1371. package/server/api/system/backup/run.post.ts +21 -21
  1372. package/server/api/system/config-groups/[id].delete.ts +21 -21
  1373. package/server/api/system/config-groups/[id].patch.ts +26 -26
  1374. package/server/api/system/config-groups/index.get.ts +21 -21
  1375. package/server/api/system/config-groups/index.post.ts +33 -33
  1376. package/server/api/system/timezone.get.ts +20 -20
  1377. package/server/api/users/tokens/[id]/token.get.ts +11 -11
  1378. package/server/api/workshop/[...path].ts +13 -13
  1379. package/server/api/workshop/agent-tools/approvals/index.get.ts +43 -43
  1380. package/server/api/workshop/agent-tools/bindings/[id].delete.ts +26 -26
  1381. package/server/api/workshop/agent-tools/bindings/grant.post.ts +45 -45
  1382. package/server/api/workshop/agent-tools/bindings/index.get.ts +41 -41
  1383. package/server/api/workshop/agent-tools/bindings/revoke.post.ts +42 -42
  1384. package/server/api/workshop/aml/datasets/[id]/preview.get.ts +68 -68
  1385. package/server/api/workshop/aml/datasets/[id].delete.ts +39 -39
  1386. package/server/api/workshop/aml/datasets/[id].get.ts +53 -53
  1387. package/server/api/workshop/aml/datasets/[id].patch.ts +30 -30
  1388. package/server/api/workshop/aml/datasets/index.get.ts +20 -20
  1389. package/server/api/workshop/aml/datasets/index.post.ts +27 -27
  1390. package/server/api/workshop/aml/entities/index.get.ts +13 -13
  1391. package/server/api/workshop/aml/entities/prune.post.ts +28 -28
  1392. package/server/api/workshop/aml/env/index.get.ts +13 -13
  1393. package/server/api/workshop/aml/env/recheck.post.ts +14 -14
  1394. package/server/api/workshop/aml/env/uv.post.ts +21 -21
  1395. package/server/api/workshop/aml/env/venv.post.ts +24 -24
  1396. package/server/api/workshop/aml/experiments/index.get.ts +35 -35
  1397. package/server/api/workshop/aml/index.get.ts +37 -37
  1398. package/server/api/workshop/aml/jobs/[id]/cancel.post.ts +21 -21
  1399. package/server/api/workshop/aml/jobs/[id]/logs.get.ts +23 -23
  1400. package/server/api/workshop/aml/jobs/[id]/retry.post.ts +20 -20
  1401. package/server/api/workshop/aml/jobs/[id].delete.ts +44 -44
  1402. package/server/api/workshop/aml/jobs/[id].get.ts +23 -23
  1403. package/server/api/workshop/aml/jobs/index.get.ts +26 -26
  1404. package/server/api/workshop/aml/models/[id]/predict.post.ts +24 -24
  1405. package/server/api/workshop/aml/models/[id]/promote.post.ts +30 -30
  1406. package/server/api/workshop/aml/models/index.get.ts +48 -48
  1407. package/server/api/workshop/aml/training-plans/[id]/train.post.ts +18 -18
  1408. package/server/api/workshop/aml/training-plans/[id].delete.ts +18 -18
  1409. package/server/api/workshop/aml/training-plans/[id].patch.ts +30 -30
  1410. package/server/api/workshop/aml/training-plans/index.get.ts +9 -9
  1411. package/server/api/workshop/aml/training-plans/index.post.ts +43 -43
  1412. package/server/api/workshop/analysis/index.post.ts +54 -54
  1413. package/server/api/workshop/approvals/[id]/decide.post.ts +30 -30
  1414. package/server/api/workshop/approvals/index.get.ts +22 -22
  1415. package/server/api/workshop/audit.get.ts +43 -43
  1416. package/server/api/workshop/channels/[id]/chat/messages/[messageId]/read.post.ts +22 -22
  1417. package/server/api/workshop/channels/[id]/chat/messages/index.get.ts +29 -29
  1418. package/server/api/workshop/channels/[id]/chat/messages/index.post.ts +51 -51
  1419. package/server/api/workshop/channels/[id]/chat/permissions.get.ts +35 -35
  1420. package/server/api/workshop/channels/[id]/execution-mode.patch.ts +94 -0
  1421. package/server/api/workshop/channels/[id]/index.patch.ts +64 -64
  1422. package/server/api/workshop/channels/[id]/members/[userId]/approve.post.ts +20 -20
  1423. package/server/api/workshop/channels/[id]/members/[userId].delete.ts +21 -21
  1424. package/server/api/workshop/channels/[id]/members/index.get.ts +23 -23
  1425. package/server/api/workshop/channels/[id]/members/leave.post.ts +20 -20
  1426. package/server/api/workshop/channels/[id]/twin-profile.get.ts +45 -45
  1427. package/server/api/workshop/channels/[id]/twin-profile.patch.ts +72 -72
  1428. package/server/api/workshop/daq/[id]/frames/content.get.ts +3 -0
  1429. package/server/api/workshop/daq/[id]/ingest.post.ts +5 -0
  1430. package/server/api/workshop/daq/[id]/test.post.ts +1 -1
  1431. package/server/api/workshop/daq/alarms.get.ts +16 -16
  1432. package/server/api/workshop/dcw/[id]/write.post.ts +4 -4
  1433. package/server/api/workshop/dcw/[id].delete.ts +41 -41
  1434. package/server/api/workshop/dcw/[id].patch.ts +40 -40
  1435. package/server/api/workshop/dcw/mes-hook-test.post.ts +5 -3
  1436. package/server/api/workshop/dcw/mes-test-read.post.ts +24 -24
  1437. package/server/api/workshop/dcw/params/[id]/read.post.ts +17 -17
  1438. package/server/api/workshop/dcw/params/[id]/write.post.ts +21 -21
  1439. package/server/api/workshop/dcw/params/[id].delete.ts +19 -19
  1440. package/server/api/workshop/dcw/params/[id].patch.ts +23 -23
  1441. package/server/api/workshop/dcw/params/index.get.ts +27 -27
  1442. package/server/api/workshop/dcw/params/index.post.ts +25 -25
  1443. package/server/api/workshop/dcw/products/[id].delete.ts +6 -2
  1444. package/server/api/workshop/dcw/products/[id].patch.ts +8 -2
  1445. package/server/api/workshop/dcw/recipes/[id]/index.patch.ts +6 -1
  1446. package/server/api/workshop/dcw/recipes/[id]/versions.get.ts +14 -14
  1447. package/server/api/workshop/dcw/recipes/[id].delete.ts +25 -25
  1448. package/server/api/workshop/dcw/recipes/index.get.ts +12 -12
  1449. package/server/api/workshop/dcw/runs/[id]/close.post.ts +15 -15
  1450. package/server/api/workshop/dcw/templates/[key].delete.ts +14 -14
  1451. package/server/api/workshop/dcw/templates/[key].patch.ts +16 -16
  1452. package/server/api/workshop/dcw/templates/index.post.ts +15 -15
  1453. package/server/api/workshop/dcw/test-driver.post.ts +16 -16
  1454. package/server/api/workshop/device-twins/[id].delete.ts +25 -25
  1455. package/server/api/workshop/eda/runs/[id]/labels.patch.ts +25 -25
  1456. package/server/api/workshop/eda/templates/[id].delete.ts +14 -14
  1457. package/server/api/workshop/eda/templates/[id].get.ts +15 -15
  1458. package/server/api/workshop/eda/templates/[id].patch.ts +20 -20
  1459. package/server/api/workshop/eda/templates/index.get.ts +11 -11
  1460. package/server/api/workshop/eda/templates/index.post.ts +20 -20
  1461. package/server/api/workshop/exp/confirmations/[id]/decide.post.ts +41 -41
  1462. package/server/api/workshop/exp/confirmations/index.get.ts +25 -25
  1463. package/server/api/workshop/harnesses/[id]/providers.get.ts +16 -16
  1464. package/server/api/workshop/hitl/respond.post.ts +94 -94
  1465. package/server/api/workshop/mes/secrets/[ref].delete.ts +31 -0
  1466. package/server/api/workshop/mes/secrets/index.get.ts +13 -0
  1467. package/server/api/workshop/mes/secrets/index.put.ts +39 -0
  1468. package/server/api/workshop/notifications/index.get.ts +60 -60
  1469. package/server/api/workshop/notifications/read.post.ts +31 -31
  1470. package/server/api/workshop/ontology/drafts/[draftId]/subgraph.ts +24 -24
  1471. package/server/api/workshop/plugins/[name]/disable.post.ts +21 -21
  1472. package/server/api/workshop/plugins/[name]/enable.post.ts +21 -21
  1473. package/server/api/workshop/plugins/[name]/index.get.ts +14 -14
  1474. package/server/api/workshop/schedules/[id]/run.post.ts +15 -15
  1475. package/server/api/workshop/schedules/[id]/runs.get.ts +15 -15
  1476. package/server/api/workshop/schedules/[id].delete.ts +14 -14
  1477. package/server/api/workshop/schedules/[id].get.ts +13 -13
  1478. package/server/api/workshop/schedules/[id].patch.ts +29 -29
  1479. package/server/api/workshop/schedules/index.get.ts +12 -12
  1480. package/server/api/workshop/schedules/index.post.ts +32 -32
  1481. package/server/api/workshop/tasks/[id]/reassign.post.ts +32 -32
  1482. package/server/api/workshop/tasks/[id]/update.post.ts +35 -35
  1483. package/server/api/workshop/teams/[id]/plugins/index.get.ts +36 -36
  1484. package/server/api/workshop/teams/[id]/plugins/index.put.ts +42 -42
  1485. package/server/api/workshop/ws/audience.ts +56 -56
  1486. package/server/api/workshop/ws/db-buffer.ts +68 -68
  1487. package/server/api/workshop/ws/event-mapping.ts +47 -47
  1488. package/server/api/workshop/ws/handlers.ts +132 -132
  1489. package/server/api/workshop/ws/hub.ts +133 -133
  1490. package/server/api/workshop/ws/index.ts +23 -23
  1491. package/server/api/workshop/ws/notification-uplink.ts +77 -77
  1492. package/server/api/workshop/ws/shared.ts +94 -94
  1493. package/server/api/workshop/ws/streams.ts +146 -146
  1494. package/server/middleware/00-security-headers.ts +38 -38
  1495. package/server/middleware/01-rate-guard.ts +101 -101
  1496. package/server/plugins/aml-twin-worker.ts +32 -32
  1497. package/server/plugins/dev-stability-guard.ts +42 -42
  1498. package/server/plugins-builtin/diag-bridge/host/constants.mjs +25 -25
  1499. package/server/plugins-builtin/diag-bridge/host/exports.mjs +104 -104
  1500. package/server/plugins-builtin/diag-bridge/host/index.mjs +15 -15
  1501. package/server/plugins-builtin/diag-bridge/host/intents.mjs +62 -62
  1502. package/server/plugins-builtin/diag-bridge/host/snapshot.mjs +93 -93
  1503. package/server/plugins-builtin/diag-bridge/index.mjs +9 -9
  1504. package/server/plugins-builtin/serial-bridge/client.mjs +211 -211
  1505. package/server/plugins-builtin/serial-bridge/drivers.mjs +409 -409
  1506. package/server/plugins-builtin/serial-bridge/i18n.json +62 -62
  1507. package/server/plugins-builtin/serial-bridge/index.mjs +247 -247
  1508. package/server/plugins-builtin/serial-bridge/lib.mjs +208 -208
  1509. package/server/plugins-builtin/serial-bridge/rtu.mjs +168 -168
  1510. package/server/services/system-config/contracts.ts +29 -29
  1511. package/server/services/system-config/dispose.ts +19 -19
  1512. package/server/services/system-config/facade.ts +26 -26
  1513. package/server/services/system-config/groups.ts +108 -108
  1514. package/server/services/system-config/index.ts +21 -21
  1515. package/server/services/system-config/init.ts +26 -26
  1516. package/server/services/system-config/mutate.ts +103 -103
  1517. package/server/services/system-config/plugins.ts +104 -104
  1518. package/server/services/system-config/snapshot.ts +59 -59
  1519. package/server/services/system-config/state.ts +79 -79
  1520. package/server/services/system-config/types.ts +58 -58
  1521. package/server/services/workshop/.mimosa/hook-state/sess_fed429fb-c8b7-4a50-bbd6-45afc580893f.json +1 -0
  1522. package/server/services/workshop/.mimosa/hook-status/sess_fed429fb-c8b7-4a50-bbd6-45afc580893f-e6b75bbfe6.json +14 -0
  1523. package/server/services/workshop/agents/adapters/omp-rpc-client/api.ts +111 -111
  1524. package/server/services/workshop/agents/adapters/omp-rpc-client/contracts.ts +22 -22
  1525. package/server/services/workshop/agents/adapters/omp-rpc-client/facade.ts +7 -7
  1526. package/server/services/workshop/agents/adapters/omp-rpc-client/frames.ts +18 -0
  1527. package/server/services/workshop/agents/adapters/omp-rpc-client/helpers.ts +38 -38
  1528. package/server/services/workshop/agents/adapters/omp-rpc-client/index.ts +25 -25
  1529. package/server/services/workshop/agents/adapters/omp-rpc-client/start.ts +70 -70
  1530. package/server/services/workshop/agents/adapters/omp-rpc-client/state.ts +65 -65
  1531. package/server/services/workshop/agents/adapters/omp-rpc-client/stdout.ts +92 -92
  1532. package/server/services/workshop/agents/adapters/omp-rpc-client/usage.ts +47 -47
  1533. package/server/services/workshop/agents/agent-badge.ts +38 -38
  1534. package/server/services/workshop/agents/binding-authz.ts +60 -60
  1535. package/server/services/workshop/agents/binding-mode.ts +51 -51
  1536. package/server/services/workshop/agents/codex-agent/client.ts +170 -170
  1537. package/server/services/workshop/agents/codex-agent/core.ts +119 -119
  1538. package/server/services/workshop/agents/codex-agent/facade.ts +8 -8
  1539. package/server/services/workshop/agents/codex-agent/helpers.ts +13 -13
  1540. package/server/services/workshop/agents/codex-agent/hitl.ts +138 -138
  1541. package/server/services/workshop/agents/codex-agent/index.ts +14 -14
  1542. package/server/services/workshop/agents/codex-agent/turn.ts +367 -367
  1543. package/server/services/workshop/agents/codex-agent/types.ts +42 -42
  1544. package/server/services/workshop/agents/execution-mode.ts +90 -0
  1545. package/server/services/workshop/agents/harness-process.ts +3 -3
  1546. package/server/services/workshop/agents/harness-terminal/api.ts +197 -197
  1547. package/server/services/workshop/agents/harness-terminal/index.ts +17 -17
  1548. package/server/services/workshop/agents/harness-terminal/io.ts +120 -120
  1549. package/server/services/workshop/agents/harness-terminal/park.ts +55 -55
  1550. package/server/services/workshop/agents/harness-terminal/sanitize.ts +98 -98
  1551. package/server/services/workshop/agents/harness-terminal/session.ts +124 -124
  1552. package/server/services/workshop/agents/harness-terminal/shared.ts +74 -74
  1553. package/server/services/workshop/agents/hitl-capabilities.ts +312 -312
  1554. package/server/services/workshop/agents/hitl-decision/answers.ts +32 -32
  1555. package/server/services/workshop/agents/hitl-decision/decide.ts +268 -268
  1556. package/server/services/workshop/agents/hitl-decision/payload.ts +45 -45
  1557. package/server/services/workshop/agents/hitl-decision/shared.ts +108 -108
  1558. package/server/services/workshop/agents/hitl-decision/visibility.ts +94 -94
  1559. package/server/services/workshop/agents/host-tool-bridge/catalog.ts +42 -13
  1560. package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +16 -0
  1561. package/server/services/workshop/agents/host-tool-bridge/per-agent.ts +10 -8
  1562. package/server/services/workshop/agents/host-tool-bridge/tools/progress.ts +84 -84
  1563. package/server/services/workshop/agents/host-tool-bridge/tools/team-delegation.ts +104 -104
  1564. package/server/services/workshop/agents/host-tool-bridge/tools/team.ts +70 -70
  1565. package/server/services/workshop/agents/industrial/aml-activity.ts +131 -131
  1566. package/server/services/workshop/agents/industrial/audit-query.ts +66 -66
  1567. package/server/services/workshop/agents/industrial/daq-export.ts +9 -8
  1568. package/server/services/workshop/agents/industrial/daq-tools.ts +43 -6
  1569. package/server/services/workshop/agents/industrial/dcw-tools.ts +22 -4
  1570. package/server/services/workshop/agents/industrial/exp-tools.ts +104 -104
  1571. package/server/services/workshop/agents/industrial/grant-guard.ts +52 -9
  1572. package/server/services/workshop/agents/industrial/ops-tools.ts +54 -16
  1573. package/server/services/workshop/agents/industrial/param-tools.ts +69 -69
  1574. package/server/services/workshop/agents/industrial/recipe-gate.ts +25 -7
  1575. package/server/services/workshop/agents/industrial/recipe-propose-tools.ts +1 -1
  1576. package/server/services/workshop/agents/industrial-context.ts +160 -83
  1577. package/server/services/workshop/agents/node-bindings.repo.ts +207 -207
  1578. package/server/services/workshop/agents/node-delegation.ts +159 -159
  1579. package/server/services/workshop/agents/omp-agent/core.ts +146 -146
  1580. package/server/services/workshop/agents/omp-agent/facade.ts +8 -8
  1581. package/server/services/workshop/agents/omp-agent/helpers.ts +37 -37
  1582. package/server/services/workshop/agents/omp-agent/index.ts +16 -16
  1583. package/server/services/workshop/agents/omp-agent/supervision-history.ts +38 -0
  1584. package/server/services/workshop/agents/omp-agent/tools-steer.ts +18 -1
  1585. package/server/services/workshop/agents/omp-agent/types.ts +45 -45
  1586. package/server/services/workshop/agents/opencode-agent/core.ts +77 -77
  1587. package/server/services/workshop/agents/opencode-agent/facade.ts +8 -8
  1588. package/server/services/workshop/agents/opencode-agent/helpers.ts +29 -29
  1589. package/server/services/workshop/agents/opencode-agent/hitl.ts +113 -113
  1590. package/server/services/workshop/agents/opencode-agent/index.ts +16 -16
  1591. package/server/services/workshop/agents/opencode-agent/lifecycle.ts +44 -44
  1592. package/server/services/workshop/agents/opencode-agent/server.ts +244 -244
  1593. package/server/services/workshop/agents/opencode-agent/turn.ts +278 -278
  1594. package/server/services/workshop/agents/opencode-agent/types.ts +54 -54
  1595. package/server/services/workshop/agents/prompt-i18n.ts +67 -0
  1596. package/server/services/workshop/agents/tool-classes.ts +44 -44
  1597. package/server/services/workshop/aml/clean.ts +120 -120
  1598. package/server/services/workshop/aml/entity.ts +367 -367
  1599. package/server/services/workshop/aml/job-orchestrator/broadcast.ts +37 -37
  1600. package/server/services/workshop/aml/job-orchestrator/control.ts +94 -94
  1601. package/server/services/workshop/aml/job-orchestrator/failure.ts +96 -96
  1602. package/server/services/workshop/aml/job-orchestrator/index.ts +22 -22
  1603. package/server/services/workshop/aml/job-orchestrator/process.ts +101 -101
  1604. package/server/services/workshop/aml/job-orchestrator/shared.ts +53 -53
  1605. package/server/services/workshop/aml/job-orchestrator/status.ts +20 -20
  1606. package/server/services/workshop/aml/job-orchestrator/tick.ts +37 -37
  1607. package/server/services/workshop/aml/python/__pycache__/aml_eval.cpython-312.pyc +0 -0
  1608. package/server/services/workshop/aml/python/__pycache__/amlkit.cpython-312.pyc +0 -0
  1609. package/server/services/workshop/aml/python/__pycache__/train-example.cpython-312.pyc +0 -0
  1610. package/server/services/workshop/aml/python/__pycache__/train-hybrid-example.cpython-312.pyc +0 -0
  1611. package/server/services/workshop/aml/python/train-example.py +92 -92
  1612. package/server/services/workshop/aml/runtime.ts +137 -137
  1613. package/server/services/workshop/aml/stats.ts +140 -140
  1614. package/server/services/workshop/aml/twin/calibration-worker.ts +150 -150
  1615. package/server/services/workshop/aml/twin/channel-profile.ts +12 -8
  1616. package/server/services/workshop/aml/twin/model-backed-provider.ts +332 -332
  1617. package/server/services/workshop/aml/twin/physics-spec-draft.ts +185 -185
  1618. package/server/services/workshop/aml/twin/prompt-composer.ts +143 -143
  1619. package/server/services/workshop/aml/twin/training-plans.ts +260 -260
  1620. package/server/services/workshop/aml/twin/write-guard.ts +19 -19
  1621. package/server/services/workshop/assets/character-asset.repo.ts +1 -1
  1622. package/server/services/workshop/assets/device-twin.repo.ts +1 -1
  1623. package/server/services/workshop/daq/bus/index.ts +12 -5
  1624. package/server/services/workshop/daq/daq-controller/contracts.ts +39 -39
  1625. package/server/services/workshop/daq/daq-controller/driver-probe.ts +7 -4
  1626. package/server/services/workshop/daq/daq-controller/facade.ts +28 -28
  1627. package/server/services/workshop/daq/daq-controller/frames.ts +137 -137
  1628. package/server/services/workshop/daq/daq-controller/helpers.ts +52 -52
  1629. package/server/services/workshop/daq/daq-controller/index.ts +22 -22
  1630. package/server/services/workshop/daq/daq-controller/ingest.ts +9 -10
  1631. package/server/services/workshop/daq/daq-controller/push.ts +336 -0
  1632. package/server/services/workshop/daq/daq-controller/runtime-control.ts +2 -0
  1633. package/server/services/workshop/daq/daq-controller/state.ts +11 -3
  1634. package/server/services/workshop/daq/daq-controller/sweep-alarms.ts +10 -2
  1635. package/server/services/workshop/daq/daq-controller/tsdb-row.ts +48 -0
  1636. package/server/services/workshop/daq/daq-controller/tsdb-twin.ts +4 -1
  1637. package/server/services/workshop/daq/daq-controller/views.ts +5 -2
  1638. package/server/services/workshop/daq/decoders.ts +77 -0
  1639. package/server/services/workshop/daq/drivers/http.ts +33 -6
  1640. package/server/services/workshop/daq/drivers/index.ts +3 -3
  1641. package/server/services/workshop/daq/drivers/mock.ts +130 -130
  1642. package/server/services/workshop/daq/drivers/modbus-rtu.ts +67 -67
  1643. package/server/services/workshop/daq/drivers/modbus-tcp.ts +307 -307
  1644. package/server/services/workshop/daq/drivers/mqtt-decode.ts +292 -0
  1645. package/server/services/workshop/daq/drivers/mqtt.ts +417 -94
  1646. package/server/services/workshop/daq/drivers/opcua.ts +227 -227
  1647. package/server/services/workshop/daq/drivers/s7-stub.ts +29 -29
  1648. package/server/services/workshop/daq/drivers/shared.ts +30 -1
  1649. package/server/services/workshop/daq/export-limits.ts +38 -0
  1650. package/server/services/workshop/daq/frames.ts +8 -2
  1651. package/server/services/workshop/daq/host-bindings.ts +71 -71
  1652. package/server/services/workshop/daq/host-ports.ts +65 -65
  1653. package/server/services/workshop/daq/plugin-bridge.ts +24 -2
  1654. package/server/services/workshop/daq/storage/latest-window.ts +132 -0
  1655. package/server/services/workshop/db/aml-team-seeds.ts +118 -118
  1656. package/server/services/workshop/db/backup-registry.ts +33 -33
  1657. package/server/services/workshop/db/channel-member.repo.ts +122 -122
  1658. package/server/services/workshop/db/channel.repo.ts +203 -203
  1659. package/server/services/workshop/db/chat-message.repo.ts +233 -233
  1660. package/server/services/workshop/db/database/index.ts +18 -18
  1661. package/server/services/workshop/db/database/json.ts +14 -14
  1662. package/server/services/workshop/db/database/migrations.ts +8 -0
  1663. package/server/services/workshop/db/database/open.ts +3 -1
  1664. package/server/services/workshop/db/database/schema.ts +1 -0
  1665. package/server/services/workshop/db/database/seed-data.ts +60 -60
  1666. package/server/services/workshop/db/hitl-request.repo.ts +221 -221
  1667. package/server/services/workshop/db/notification.repo.ts +199 -199
  1668. package/server/services/workshop/db/readonly.ts +30 -30
  1669. package/server/services/workshop/db/scheduled-task.repo.ts +235 -235
  1670. package/server/services/workshop/db/transaction.ts +72 -72
  1671. package/server/services/workshop/dcw/dcw-controller/actuation.ts +6 -0
  1672. package/server/services/workshop/dcw/dcw-controller/contracts.ts +16 -16
  1673. package/server/services/workshop/dcw/dcw-controller/control.ts +78 -78
  1674. package/server/services/workshop/dcw/dcw-controller/facade.ts +19 -19
  1675. package/server/services/workshop/dcw/dcw-controller/index.ts +22 -22
  1676. package/server/services/workshop/dcw/dcw-controller/params.ts +97 -97
  1677. package/server/services/workshop/dcw/dcw-controller/products.ts +103 -103
  1678. package/server/services/workshop/dcw/dcw-controller/write-audit.ts +1 -1
  1679. package/server/services/workshop/dcw/dcw-templates.ts +136 -136
  1680. package/server/services/workshop/dcw/drivers/http.ts +41 -15
  1681. package/server/services/workshop/dcw/drivers/mes-rest.ts +14 -51
  1682. package/server/services/workshop/dcw/drivers/mqtt.ts +58 -7
  1683. package/server/services/workshop/dcw/drivers/shared.ts +3 -0
  1684. package/server/services/workshop/dcw/param-conversion.ts +78 -78
  1685. package/server/services/workshop/dcw/param-map.repo.ts +349 -349
  1686. package/server/services/workshop/dcw/plugin-bridge.ts +45 -45
  1687. package/server/services/workshop/dcw/recipe-rollback-manager/contracts.ts +26 -26
  1688. package/server/services/workshop/dcw/recipe-rollback-manager/facade.ts +13 -13
  1689. package/server/services/workshop/dcw/recipe-rollback-manager/helpers.ts +30 -30
  1690. package/server/services/workshop/dcw/recipe-rollback-manager/index.ts +17 -17
  1691. package/server/services/workshop/dcw/recipe-rollback-manager/internal.ts +33 -33
  1692. package/server/services/workshop/dcw/recipe-rollback-manager/judge.ts +52 -52
  1693. package/server/services/workshop/dcw/recipe-rollback-manager/lock.ts +137 -137
  1694. package/server/services/workshop/dcw/recipe-rollback-manager/rollback.ts +190 -190
  1695. package/server/services/workshop/dcw/recipe-rollback-manager/state.ts +21 -21
  1696. package/server/services/workshop/dcw/recipe-rollback-manager/sweep.ts +77 -77
  1697. package/server/services/workshop/dcw/recipe-rollback-manager/types.ts +3 -3
  1698. package/server/services/workshop/dcw/recipe-rollback-manager/views.ts +214 -214
  1699. package/server/services/workshop/eda/chart-repo.ts +18 -1
  1700. package/server/services/workshop/eda/data-export.ts +3 -3
  1701. package/server/services/workshop/eda/data-query.ts +4 -1
  1702. package/server/services/workshop/eda/template-repo.ts +101 -101
  1703. package/server/services/workshop/exp/exp-collector.ts +275 -275
  1704. package/server/services/workshop/exp/exp-state.repo.ts +339 -339
  1705. package/server/services/workshop/mes/mes-controller.ts +1155 -1155
  1706. package/server/services/workshop/mes/mes-hook.ts +567 -567
  1707. package/server/services/workshop/mes/mes-secrets.repo.ts +119 -0
  1708. package/server/services/workshop/net/secret-auth.ts +84 -0
  1709. package/server/services/workshop/net/ssrf.ts +74 -0
  1710. package/server/services/workshop/ontology/subgraph.core.ts +300 -300
  1711. package/server/services/workshop/ontology/subgraph.service.ts +113 -113
  1712. package/server/services/workshop/optimization/access.ts +24 -30
  1713. package/server/services/workshop/optimization/python/.mimosa/hook-state/session_187ec97f45d4bd02369bbe94da527cf1.json +1 -0
  1714. package/server/services/workshop/optimization/python/.mimosa/hook-state/session_187ec97f45d4bd02369bbe94da527cf1.mvjqkcs6-68688-fb7131a89c.baseline/190a6772a4e43801737b4ba6072eb9d53d3099b5d8a9e6f57bc5e8592a26a6c4.source +274 -0
  1715. package/server/services/workshop/optimization/python/.mimosa/hook-status/session_187ec97f45d4bd02369bbe94da527cf1-01ed7f04fa.json +14 -0
  1716. package/server/services/workshop/optimization/python/__pycache__/problems.cpython-312.pyc +0 -0
  1717. package/server/services/workshop/plugins/host/api.mjs +90 -90
  1718. package/server/services/workshop/plugins/host/config.mjs +135 -135
  1719. package/server/services/workshop/plugins/host/index.mjs +23 -23
  1720. package/server/services/workshop/plugins/host/init.mjs +109 -109
  1721. package/server/services/workshop/plugins/host/load.mjs +14 -1
  1722. package/server/services/workshop/plugins/host/reload.mjs +6 -0
  1723. package/server/services/workshop/plugins/host/rollback.mjs +72 -72
  1724. package/server/services/workshop/plugins/host/state.mjs +54 -54
  1725. package/server/services/workshop/plugins/host/toggle.mjs +64 -64
  1726. package/server/services/workshop/plugins/host.mjs +9 -9
  1727. package/server/services/workshop/prompts/loader.ts +45 -8
  1728. package/server/services/workshop/runtime/agent-runtime/facade.ts +7 -7
  1729. package/server/services/workshop/runtime/agent-runtime/helpers.ts +18 -18
  1730. package/server/services/workshop/runtime/agent-runtime/index.ts +19 -19
  1731. package/server/services/workshop/runtime/agent-runtime/lifecycle.ts +137 -137
  1732. package/server/services/workshop/runtime/chat-mention.ts +164 -164
  1733. package/server/services/workshop/runtime/chat-projection.ts +246 -246
  1734. package/server/services/workshop/runtime/manager/admin-agents.ts +268 -268
  1735. package/server/services/workshop/runtime/manager/admin-channel.ts +5 -0
  1736. package/server/services/workshop/runtime/manager/bus.ts +182 -182
  1737. package/server/services/workshop/runtime/manager/channel-template-constants.ts +20 -20
  1738. package/server/services/workshop/runtime/manager/chat-reply.ts +181 -181
  1739. package/server/services/workshop/runtime/manager/chat.ts +384 -384
  1740. package/server/services/workshop/runtime/manager/facade.ts +24 -24
  1741. package/server/services/workshop/runtime/manager/helpers.ts +119 -119
  1742. package/server/services/workshop/runtime/manager/index.ts +42 -42
  1743. package/server/services/workshop/runtime/manager/internal.ts +73 -73
  1744. package/server/services/workshop/runtime/manager/notifications.ts +108 -108
  1745. package/server/services/workshop/runtime/manager/teams.ts +148 -148
  1746. package/server/services/workshop/runtime/memory/contracts.ts +18 -18
  1747. package/server/services/workshop/runtime/memory/facade.ts +10 -10
  1748. package/server/services/workshop/runtime/memory/helpers.ts +196 -196
  1749. package/server/services/workshop/runtime/memory/index.ts +27 -27
  1750. package/server/services/workshop/runtime/memory/score.ts +33 -33
  1751. package/server/services/workshop/runtime/memory/state.ts +40 -40
  1752. package/server/services/workshop/runtime/monitor.ts +3 -3
  1753. package/server/services/workshop/runtime/platform-notice.ts +113 -113
  1754. package/server/services/workshop/runtime/schedule-runtime.ts +347 -347
  1755. package/server/services/workshop/runtime/scheduler-loop/contracts.ts +29 -29
  1756. package/server/services/workshop/runtime/scheduler-loop/facade.ts +7 -7
  1757. package/server/services/workshop/runtime/scheduler-loop/helpers.ts +14 -14
  1758. package/server/services/workshop/runtime/scheduler-loop/index.ts +16 -16
  1759. package/server/services/workshop/runtime/task-engine/facade.ts +7 -7
  1760. package/server/services/workshop/runtime/task-engine/index.ts +15 -15
  1761. package/server/services/workshop/runtime/task-engine/types.ts +3 -3
  1762. package/server/services/workshop/runtime/user-notification-hub.ts +192 -192
  1763. package/server/services/workshop/tools/types.ts +1 -0
  1764. package/server/types/pg.d.ts +49 -49
  1765. package/server/utils/approval-gate.ts +67 -67
  1766. package/server/utils/mojibake-guard.ts +29 -29
  1767. package/server/utils/stability-severity.ts +77 -77
  1768. package/shared/config/groups.mjs +241 -241
  1769. package/shared/config/schema.json +2 -0
  1770. package/shared/daq-protocol.ts +30 -2
  1771. package/shared/dcw-protocol/catalog.ts +15 -3
  1772. package/shared/dcw-protocol/closed-loop.ts +2 -0
  1773. package/shared/lru.mjs +97 -97
  1774. package/tui/README.md +74 -74
  1775. package/tui/aw-tui.mjs +445 -445
  1776. package/tui/commands/index.mjs +287 -287
  1777. package/tui/components/chat-log.mjs +42 -42
  1778. package/tui/components/monitor-pane.mjs +39 -39
  1779. package/tui/components/root.mjs +53 -53
  1780. package/tui/components/status-bar.mjs +33 -33
  1781. package/tui/lib/api.mjs +82 -82
  1782. package/tui/lib/pickers.mjs +121 -121
  1783. package/tui/lib/reducers.mjs +218 -218
  1784. package/tui/lib/state.mjs +86 -86
  1785. package/tui/lib/virtual-terminal.mjs +48 -48
  1786. package/tui/lib/ws.mjs +125 -125
  1787. package/tui/theme.mjs +38 -38
  1788. package/.output/public/_nuxt/0qvcO_KM2.js +0 -1
  1789. package/.output/public/_nuxt/2Kwo_j9G2.js +0 -1
  1790. package/.output/public/_nuxt/39W1CH-l2.js +0 -1
  1791. package/.output/public/_nuxt/7xbYPfY6.js +0 -1
  1792. package/.output/public/_nuxt/8SZLbrI42.js +0 -1
  1793. package/.output/public/_nuxt/ATAvN55g.js +0 -1
  1794. package/.output/public/_nuxt/B3eCVqcT2.js +0 -1
  1795. package/.output/public/_nuxt/B4JlRHBB2.js +0 -1
  1796. package/.output/public/_nuxt/B4iJT5PX2.js +0 -2
  1797. package/.output/public/_nuxt/B9qIhT7k2.js +0 -1
  1798. package/.output/public/_nuxt/BE9oKpOt.js +0 -1
  1799. package/.output/public/_nuxt/BNUaS1jv.js +0 -20
  1800. package/.output/public/_nuxt/BVGzwAxr2.js +0 -16
  1801. package/.output/public/_nuxt/BY3Lbz3h.js +0 -1
  1802. package/.output/public/_nuxt/BbACaREb.js +0 -1
  1803. package/.output/public/_nuxt/BcosvNXb2.js +0 -1
  1804. package/.output/public/_nuxt/BhJA-E372.js +0 -1
  1805. package/.output/public/_nuxt/BiZWwdcD2.js +0 -1
  1806. package/.output/public/_nuxt/Bq-tmkst.js +0 -1
  1807. package/.output/public/_nuxt/Bq8YzXzs2.js +0 -1
  1808. package/.output/public/_nuxt/BxxpJxZf2.js +0 -1
  1809. package/.output/public/_nuxt/C1-SuwUN.js +0 -1
  1810. package/.output/public/_nuxt/C2Yp-B8m.js +0 -1
  1811. package/.output/public/_nuxt/C5OStZJ62.js +0 -1
  1812. package/.output/public/_nuxt/CDL30A2z2.js +0 -1
  1813. package/.output/public/_nuxt/CEvJu-xI.js +0 -1
  1814. package/.output/public/_nuxt/CT4bi_Y4.js +0 -1
  1815. package/.output/public/_nuxt/CZYNy60j2.js +0 -1
  1816. package/.output/public/_nuxt/CeCSjB9O2.js +0 -1
  1817. package/.output/public/_nuxt/Cf7ER7e2.js +0 -1
  1818. package/.output/public/_nuxt/CjF4QY9h.js +0 -1
  1819. package/.output/public/_nuxt/Cot5VNae.js +0 -1
  1820. package/.output/public/_nuxt/Crf8_Ad02.js +0 -1
  1821. package/.output/public/_nuxt/D1C6qtS12.js +0 -1
  1822. package/.output/public/_nuxt/D37gODe0.js +0 -1
  1823. package/.output/public/_nuxt/D8HQPtm62.js +0 -1
  1824. package/.output/public/_nuxt/D9O4L4jK.js +0 -1
  1825. package/.output/public/_nuxt/D9tNM-1a.js +0 -9
  1826. package/.output/public/_nuxt/DAug2CPf.js +0 -21
  1827. package/.output/public/_nuxt/DPnjnDtg.js +0 -36
  1828. package/.output/public/_nuxt/DWe6BMlp2.js +0 -1
  1829. package/.output/public/_nuxt/DbhTN7-T.js +0 -47
  1830. package/.output/public/_nuxt/DdyE0ylS.js +0 -1
  1831. package/.output/public/_nuxt/DgGzwjAr2.js +0 -2
  1832. package/.output/public/_nuxt/DgTqKyYF2.js +0 -1
  1833. package/.output/public/_nuxt/DhjgWrB62.js +0 -1
  1834. package/.output/public/_nuxt/DiWcX4gj.js +0 -1
  1835. package/.output/public/_nuxt/DkRozlDP2.js +0 -1
  1836. package/.output/public/_nuxt/DlS-SkQ42.js +0 -1
  1837. package/.output/public/_nuxt/DmHp9yQ3.js +0 -1
  1838. package/.output/public/_nuxt/DqxBCeDe.js +0 -1
  1839. package/.output/public/_nuxt/DxH5focQ.js +0 -1
  1840. package/.output/public/_nuxt/Dyr3LPGL.js +0 -1
  1841. package/.output/public/_nuxt/FsRVXpyF2.js +0 -1
  1842. package/.output/public/_nuxt/Iub61dX9.js +0 -1
  1843. package/.output/public/_nuxt/MC_i34H42.js +0 -1
  1844. package/.output/public/_nuxt/MmlCf-EZ.js +0 -1
  1845. package/.output/public/_nuxt/OmpTerminalPanel.DMWgGwDs.css +0 -1
  1846. package/.output/public/_nuxt/PluginSlot.BqBzLD4T.css +0 -1
  1847. package/.output/public/_nuxt/Q-JpBT03.js +0 -1
  1848. package/.output/public/_nuxt/TownView.Cn8SPG7S.css +0 -1
  1849. package/.output/public/_nuxt/TugRY_4O.js +0 -1
  1850. package/.output/public/_nuxt/WybiLTow2.js +0 -8
  1851. package/.output/public/_nuxt/Zn0BZpf0.js +0 -3
  1852. package/.output/public/_nuxt/_id_.Be5JaH-P.css +0 -1
  1853. package/.output/public/_nuxt/_wsId_.p_vAYtTp.css +0 -1
  1854. package/.output/public/_nuxt/agents.CRomddYR.css +0 -1
  1855. package/.output/public/_nuxt/aml.DgOMpDpv.css +0 -1
  1856. package/.output/public/_nuxt/b7UcqLKi.js +0 -1
  1857. package/.output/public/_nuxt/board.Bo35UR0e.css +0 -1
  1858. package/.output/public/_nuxt/builds/meta/8a151630-3285-41b8-a1e5-063fee2002ac.json +0 -1
  1859. package/.output/public/_nuxt/default.CpAx70gC.css +0 -1
  1860. package/.output/public/_nuxt/geMze5qw.js +0 -1
  1861. package/.output/public/_nuxt/hCN555XP2.js +0 -1
  1862. package/.output/public/_nuxt/hlfahYxK.js +0 -1
  1863. package/.output/public/_nuxt/logs.DcSvz6vi.css +0 -1
  1864. package/.output/public/_nuxt/monitor.OoNTwfMJ.css +0 -1
  1865. package/.output/public/_nuxt/ontology.D4P756Tc.css +0 -1
  1866. package/.output/public/_nuxt/operations.C48ggFa5.css +0 -1
  1867. package/.output/public/_nuxt/pages.Dpa28tJW.css +0 -1
  1868. package/.output/public/_nuxt/permissions.CrV-4t-6.css +0 -1
  1869. package/.output/public/_nuxt/pipeline.NFs5z5V-.css +0 -1
  1870. package/.output/public/_nuxt/rcdmiszh2.js +0 -1
  1871. package/.output/public/_nuxt/schedules.DYWOjGHm.css +0 -1
  1872. package/.output/public/_nuxt/studio.CjmUr8P7.css +0 -1
  1873. package/.output/public/_nuxt/teams.DEJoJ4QV.css +0 -1
  1874. package/.output/public/_nuxt/toG_qAMH.js +0 -1
  1875. package/.output/public/_nuxt/tokens.DKZWCP5v.css +0 -1
  1876. package/.output/public/_nuxt/tools.DP-nsTli.css +0 -1
  1877. package/.output/public/_nuxt/uomnHjhM.js +0 -1
  1878. package/.output/public/_nuxt/v77qozuJ2.js +0 -1
  1879. package/.output/public/_nuxt/v7cV7hJa.js +0 -1
  1880. package/.output/public/_nuxt/wK6Pp4Zc2.js +0 -2
  1881. package/.output/public/_nuxt/we7-sMSo2.js +0 -1
  1882. package/.output/public/_nuxt/workshop.PT1xhP8C.css +0 -1
  1883. package/.output/public/_nuxt/wxISMS1i.js +0 -1
  1884. package/.output/public/_nuxt/zy7efYKR.js +0 -1
  1885. package/.output/server/chunks/build/AuthGate-G74Wr5IV.mjs +0 -704
  1886. package/.output/server/chunks/build/AuthGate-G74Wr5IV.mjs.map +0 -1
  1887. package/.output/server/chunks/build/FormItemContext-DmuQqaeJ.mjs +0 -77
  1888. package/.output/server/chunks/build/FormItemContext-DmuQqaeJ.mjs.map +0 -1
  1889. package/.output/server/chunks/build/OmpTerminalPanel-5cB-78zp.mjs +0 -889
  1890. package/.output/server/chunks/build/OmpTerminalPanel-5cB-78zp.mjs.map +0 -1
  1891. package/.output/server/chunks/build/PluginSlot-CZlGlRoR.mjs +0 -131
  1892. package/.output/server/chunks/build/PluginSlot-CZlGlRoR.mjs.map +0 -1
  1893. package/.output/server/chunks/build/TownView-CcUPLqF1.mjs +0 -5960
  1894. package/.output/server/chunks/build/TownView-CcUPLqF1.mjs.map +0 -1
  1895. package/.output/server/chunks/build/_id_-AgACEyL6.mjs +0 -1922
  1896. package/.output/server/chunks/build/_id_-AgACEyL6.mjs.map +0 -1
  1897. package/.output/server/chunks/build/_id_-B3yCK2lD.mjs +0 -373
  1898. package/.output/server/chunks/build/_id_-B3yCK2lD.mjs.map +0 -1
  1899. package/.output/server/chunks/build/_wsId_-kcDriA4i.mjs +0 -13707
  1900. package/.output/server/chunks/build/_wsId_-kcDriA4i.mjs.map +0 -1
  1901. package/.output/server/chunks/build/agents-DRod4lTC.mjs +0 -1047
  1902. package/.output/server/chunks/build/agents-DRod4lTC.mjs.map +0 -1
  1903. package/.output/server/chunks/build/alert-CNGhs--Y.mjs +0 -260
  1904. package/.output/server/chunks/build/alert-CNGhs--Y.mjs.map +0 -1
  1905. package/.output/server/chunks/build/aml-B3Umz4DR.mjs +0 -729
  1906. package/.output/server/chunks/build/aml-B3Umz4DR.mjs.map +0 -1
  1907. package/.output/server/chunks/build/analysis-CMsMTMCg.mjs +0 -502
  1908. package/.output/server/chunks/build/analysis-CMsMTMCg.mjs.map +0 -1
  1909. package/.output/server/chunks/build/api-D-zkgkj-.mjs +0 -51
  1910. package/.output/server/chunks/build/api-D-zkgkj-.mjs.map +0 -1
  1911. package/.output/server/chunks/build/api-D3gy2e2q.mjs +0 -70
  1912. package/.output/server/chunks/build/api-D3gy2e2q.mjs.map +0 -1
  1913. package/.output/server/chunks/build/api-bn4OKkl_.mjs +0 -62
  1914. package/.output/server/chunks/build/api-bn4OKkl_.mjs.map +0 -1
  1915. package/.output/server/chunks/build/api-error-CnW_xiNI.mjs +0 -46
  1916. package/.output/server/chunks/build/api-error-CnW_xiNI.mjs.map +0 -1
  1917. package/.output/server/chunks/build/apiClient-DIXx9sfD.mjs +0 -70
  1918. package/.output/server/chunks/build/apiClient-DIXx9sfD.mjs.map +0 -1
  1919. package/.output/server/chunks/build/board-B2oYXGBy.mjs +0 -172
  1920. package/.output/server/chunks/build/board-B2oYXGBy.mjs.map +0 -1
  1921. package/.output/server/chunks/build/card-BECE6y_G.mjs +0 -922
  1922. package/.output/server/chunks/build/card-BECE6y_G.mjs.map +0 -1
  1923. package/.output/server/chunks/build/channel-templates-R2TInv8B.mjs +0 -950
  1924. package/.output/server/chunks/build/channel-templates-R2TInv8B.mjs.map +0 -1
  1925. package/.output/server/chunks/build/checkbox-C6xY5uc6.mjs +0 -429
  1926. package/.output/server/chunks/build/checkbox-C6xY5uc6.mjs.map +0 -1
  1927. package/.output/server/chunks/build/client-only-S7k53PIm.mjs +0 -42
  1928. package/.output/server/chunks/build/client-only-S7k53PIm.mjs.map +0 -1
  1929. package/.output/server/chunks/build/core-CRlsQhzd.mjs +0 -292
  1930. package/.output/server/chunks/build/core-CRlsQhzd.mjs.map +0 -1
  1931. package/.output/server/chunks/build/daq-DFQQOtcZ.mjs +0 -1210
  1932. package/.output/server/chunks/build/daq-DFQQOtcZ.mjs.map +0 -1
  1933. package/.output/server/chunks/build/data-Cl4wRZO6.mjs +0 -459
  1934. package/.output/server/chunks/build/data-Cl4wRZO6.mjs.map +0 -1
  1935. package/.output/server/chunks/build/dcw-8415S3Km.mjs +0 -467
  1936. package/.output/server/chunks/build/dcw-8415S3Km.mjs.map +0 -1
  1937. package/.output/server/chunks/build/default-DDRKP2Mb.mjs +0 -2246
  1938. package/.output/server/chunks/build/default-DDRKP2Mb.mjs.map +0 -1
  1939. package/.output/server/chunks/build/descriptions-B3uhDesi.mjs +0 -401
  1940. package/.output/server/chunks/build/descriptions-B3uhDesi.mjs.map +0 -1
  1941. package/.output/server/chunks/build/drawer-DwXxapMg.mjs +0 -822
  1942. package/.output/server/chunks/build/drawer-DwXxapMg.mjs.map +0 -1
  1943. package/.output/server/chunks/build/dropdown-DLrGy-Fs.mjs +0 -12
  1944. package/.output/server/chunks/build/dropdown-DLrGy-Fs.mjs.map +0 -1
  1945. package/.output/server/chunks/build/dropdown-nsGv8Gqx.mjs +0 -530
  1946. package/.output/server/chunks/build/dropdown-nsGv8Gqx.mjs.map +0 -1
  1947. package/.output/server/chunks/build/es-DXSEkmAm.mjs +0 -42
  1948. package/.output/server/chunks/build/es-DXSEkmAm.mjs.map +0 -1
  1949. package/.output/server/chunks/build/firstNotUndefined-laiThpLD.mjs +0 -2082
  1950. package/.output/server/chunks/build/firstNotUndefined-laiThpLD.mjs.map +0 -1
  1951. package/.output/server/chunks/build/form-Cw2Ex9w5.mjs +0 -3543
  1952. package/.output/server/chunks/build/form-Cw2Ex9w5.mjs.map +0 -1
  1953. package/.output/server/chunks/build/hasIn-RYRGomyg.mjs +0 -192
  1954. package/.output/server/chunks/build/hasIn-RYRGomyg.mjs.map +0 -1
  1955. package/.output/server/chunks/build/hitl-B4cHRlkC.mjs +0 -120
  1956. package/.output/server/chunks/build/hitl-B4cHRlkC.mjs.map +0 -1
  1957. package/.output/server/chunks/build/input-CJgB-RL6.mjs +0 -1705
  1958. package/.output/server/chunks/build/input-CJgB-RL6.mjs.map +0 -1
  1959. package/.output/server/chunks/build/input-number-CQKL42p_.mjs +0 -1027
  1960. package/.output/server/chunks/build/input-number-CQKL42p_.mjs.map +0 -1
  1961. package/.output/server/chunks/build/interval-DiAUqODq.mjs +0 -8
  1962. package/.output/server/chunks/build/interval-DiAUqODq.mjs.map +0 -1
  1963. package/.output/server/chunks/build/isNumeric-DQiJ-b15.mjs +0 -6
  1964. package/.output/server/chunks/build/isNumeric-DQiJ-b15.mjs.map +0 -1
  1965. package/.output/server/chunks/build/logs-C-dWpJ80.mjs +0 -381
  1966. package/.output/server/chunks/build/logs-C-dWpJ80.mjs.map +0 -1
  1967. package/.output/server/chunks/build/menu-xO8ocVtL.mjs +0 -1833
  1968. package/.output/server/chunks/build/menu-xO8ocVtL.mjs.map +0 -1
  1969. package/.output/server/chunks/build/monitor-BNrG6v3b.mjs +0 -2216
  1970. package/.output/server/chunks/build/monitor-BNrG6v3b.mjs.map +0 -1
  1971. package/.output/server/chunks/build/ontology-DoXAsa2y.mjs +0 -1416
  1972. package/.output/server/chunks/build/ontology-DoXAsa2y.mjs.map +0 -1
  1973. package/.output/server/chunks/build/operations-Ch6tZIKo.mjs +0 -278
  1974. package/.output/server/chunks/build/operations-Ch6tZIKo.mjs.map +0 -1
  1975. package/.output/server/chunks/build/optimizer-DaTyaY3c.mjs +0 -202
  1976. package/.output/server/chunks/build/optimizer-DaTyaY3c.mjs.map +0 -1
  1977. package/.output/server/chunks/build/pages-CQOfwKB4.mjs +0 -439
  1978. package/.output/server/chunks/build/pages-CQOfwKB4.mjs.map +0 -1
  1979. package/.output/server/chunks/build/pagination-BTzq7dD5.mjs +0 -1330
  1980. package/.output/server/chunks/build/pagination-BTzq7dD5.mjs.map +0 -1
  1981. package/.output/server/chunks/build/permissions-qmimwB0M.mjs +0 -649
  1982. package/.output/server/chunks/build/permissions-qmimwB0M.mjs.map +0 -1
  1983. package/.output/server/chunks/build/pipeline-eo2RWN3f.mjs +0 -226
  1984. package/.output/server/chunks/build/pipeline-eo2RWN3f.mjs.map +0 -1
  1985. package/.output/server/chunks/build/plugins-Dh_goy-k.mjs +0 -269
  1986. package/.output/server/chunks/build/plugins-Dh_goy-k.mjs.map +0 -1
  1987. package/.output/server/chunks/build/popconfirm-DuGF7ty-.mjs +0 -333
  1988. package/.output/server/chunks/build/popconfirm-DuGF7ty-.mjs.map +0 -1
  1989. package/.output/server/chunks/build/responsiveObserve-CzRpNXkr.mjs +0 -77
  1990. package/.output/server/chunks/build/responsiveObserve-CzRpNXkr.mjs.map +0 -1
  1991. package/.output/server/chunks/build/schedules-C2_x38gj.mjs +0 -7039
  1992. package/.output/server/chunks/build/schedules-C2_x38gj.mjs.map +0 -1
  1993. package/.output/server/chunks/build/segmented-29uEKZ3D.mjs +0 -332
  1994. package/.output/server/chunks/build/segmented-29uEKZ3D.mjs.map +0 -1
  1995. package/.output/server/chunks/build/select-CJb2XrQf.mjs +0 -3734
  1996. package/.output/server/chunks/build/select-CJb2XrQf.mjs.map +0 -1
  1997. package/.output/server/chunks/build/settings-Cz2Plds0.mjs +0 -944
  1998. package/.output/server/chunks/build/settings-Cz2Plds0.mjs.map +0 -1
  1999. package/.output/server/chunks/build/space-BByD-mFE.mjs +0 -107
  2000. package/.output/server/chunks/build/space-BByD-mFE.mjs.map +0 -1
  2001. package/.output/server/chunks/build/spin-XhbgGeLP.mjs +0 -313
  2002. package/.output/server/chunks/build/spin-XhbgGeLP.mjs.map +0 -1
  2003. package/.output/server/chunks/build/studio-CwYXl00G.mjs +0 -329
  2004. package/.output/server/chunks/build/studio-CwYXl00G.mjs.map +0 -1
  2005. package/.output/server/chunks/build/switch-DWcwVFxW.mjs +0 -374
  2006. package/.output/server/chunks/build/switch-DWcwVFxW.mjs.map +0 -1
  2007. package/.output/server/chunks/build/table-Zhuo7Fq-.mjs +0 -7249
  2008. package/.output/server/chunks/build/table-Zhuo7Fq-.mjs.map +0 -1
  2009. package/.output/server/chunks/build/tabs-BCwBXjNt.mjs +0 -1838
  2010. package/.output/server/chunks/build/tabs-BCwBXjNt.mjs.map +0 -1
  2011. package/.output/server/chunks/build/tag-CRW-anwy.mjs +0 -1010
  2012. package/.output/server/chunks/build/tag-CRW-anwy.mjs.map +0 -1
  2013. package/.output/server/chunks/build/teams-CwhFdcYn.mjs +0 -1160
  2014. package/.output/server/chunks/build/teams-CwhFdcYn.mjs.map +0 -1
  2015. package/.output/server/chunks/build/tokens-C5ODO1HA.mjs +0 -992
  2016. package/.output/server/chunks/build/tokens-C5ODO1HA.mjs.map +0 -1
  2017. package/.output/server/chunks/build/tools-C0YKragH.mjs +0 -487
  2018. package/.output/server/chunks/build/tools-C0YKragH.mjs.map +0 -1
  2019. package/.output/server/chunks/build/tooltip-GlMrUZzx.mjs +0 -888
  2020. package/.output/server/chunks/build/tooltip-GlMrUZzx.mjs.map +0 -1
  2021. package/.output/server/chunks/build/town-DLFB4SZl.mjs +0 -117
  2022. package/.output/server/chunks/build/town-DLFB4SZl.mjs.map +0 -1
  2023. package/.output/server/chunks/build/useAgentHarnessOptions-CYKuLtZ2.mjs +0 -120
  2024. package/.output/server/chunks/build/useAgentHarnessOptions-CYKuLtZ2.mjs.map +0 -1
  2025. package/.output/server/chunks/build/useAgentTemplateActions-Da_V1LSD.mjs +0 -71
  2026. package/.output/server/chunks/build/useAgentTemplateActions-Da_V1LSD.mjs.map +0 -1
  2027. package/.output/server/chunks/build/useAgentTemplateForm-BWvax5_E.mjs +0 -112
  2028. package/.output/server/chunks/build/useAgentTemplateForm-BWvax5_E.mjs.map +0 -1
  2029. package/.output/server/chunks/build/useAgentTemplatesCatalog-BnYjZy59.mjs +0 -140
  2030. package/.output/server/chunks/build/useAgentTemplatesCatalog-BnYjZy59.mjs.map +0 -1
  2031. package/.output/server/chunks/build/useAmlDatasets-nGi10DAl.mjs +0 -88
  2032. package/.output/server/chunks/build/useAmlDatasets-nGi10DAl.mjs.map +0 -1
  2033. package/.output/server/chunks/build/useAmlEntities-CTgNAgcZ.mjs +0 -79
  2034. package/.output/server/chunks/build/useAmlEntities-CTgNAgcZ.mjs.map +0 -1
  2035. package/.output/server/chunks/build/useAmlEnv-Da2TVfyK.mjs +0 -188
  2036. package/.output/server/chunks/build/useAmlEnv-Da2TVfyK.mjs.map +0 -1
  2037. package/.output/server/chunks/build/useAmlExperiments-U9AQ52RI.mjs +0 -86
  2038. package/.output/server/chunks/build/useAmlExperiments-U9AQ52RI.mjs.map +0 -1
  2039. package/.output/server/chunks/build/useAmlJobs-BM1mu5iH.mjs +0 -251
  2040. package/.output/server/chunks/build/useAmlJobs-BM1mu5iH.mjs.map +0 -1
  2041. package/.output/server/chunks/build/useAmlModels-C1DwIOMi.mjs +0 -90
  2042. package/.output/server/chunks/build/useAmlModels-C1DwIOMi.mjs.map +0 -1
  2043. package/.output/server/chunks/build/useAmlNotes-CNm47QdS.mjs +0 -80
  2044. package/.output/server/chunks/build/useAmlNotes-CNm47QdS.mjs.map +0 -1
  2045. package/.output/server/chunks/build/useAmlPredict-m8I1AdRn.mjs +0 -126
  2046. package/.output/server/chunks/build/useAmlPredict-m8I1AdRn.mjs.map +0 -1
  2047. package/.output/server/chunks/build/useAnalysisFeed-CpbOaiBD.mjs +0 -120
  2048. package/.output/server/chunks/build/useAnalysisFeed-CpbOaiBD.mjs.map +0 -1
  2049. package/.output/server/chunks/build/useDaqAddNode-D_1EBuR3.mjs +0 -141
  2050. package/.output/server/chunks/build/useDaqAddNode-D_1EBuR3.mjs.map +0 -1
  2051. package/.output/server/chunks/build/useDaqDetailBinding-j05iSApd.mjs +0 -72
  2052. package/.output/server/chunks/build/useDaqDetailBinding-j05iSApd.mjs.map +0 -1
  2053. package/.output/server/chunks/build/useDaqDetailFrames-BKciVJ78.mjs +0 -78
  2054. package/.output/server/chunks/build/useDaqDetailFrames-BKciVJ78.mjs.map +0 -1
  2055. package/.output/server/chunks/build/useDaqDetailHistory-DgemICkr.mjs +0 -166
  2056. package/.output/server/chunks/build/useDaqDetailHistory-DgemICkr.mjs.map +0 -1
  2057. package/.output/server/chunks/build/useDaqDetailNode-Cn7_og6t.mjs +0 -103
  2058. package/.output/server/chunks/build/useDaqDetailNode-Cn7_og6t.mjs.map +0 -1
  2059. package/.output/server/chunks/build/useDaqDetailParams-DX_vjFyK.mjs +0 -157
  2060. package/.output/server/chunks/build/useDaqDetailParams-DX_vjFyK.mjs.map +0 -1
  2061. package/.output/server/chunks/build/useDaqFilters-DMS4GN20.mjs +0 -224
  2062. package/.output/server/chunks/build/useDaqFilters-DMS4GN20.mjs.map +0 -1
  2063. package/.output/server/chunks/build/useDaqOptimizations-OPbdy5YB.mjs +0 -132
  2064. package/.output/server/chunks/build/useDaqOptimizations-OPbdy5YB.mjs.map +0 -1
  2065. package/.output/server/chunks/build/useDaqStream-CS1G6iro.mjs +0 -385
  2066. package/.output/server/chunks/build/useDaqStream-CS1G6iro.mjs.map +0 -1
  2067. package/.output/server/chunks/build/useDaqTemplates-DqhRYo88.mjs +0 -181
  2068. package/.output/server/chunks/build/useDaqTemplates-DqhRYo88.mjs.map +0 -1
  2069. package/.output/server/chunks/build/useDashboardData-CeaMjEA9.mjs +0 -139
  2070. package/.output/server/chunks/build/useDashboardData-CeaMjEA9.mjs.map +0 -1
  2071. package/.output/server/chunks/build/useDcwAddNode-Cytz_odQ.mjs +0 -217
  2072. package/.output/server/chunks/build/useDcwAddNode-Cytz_odQ.mjs.map +0 -1
  2073. package/.output/server/chunks/build/useDcwCards-BKCFqkRd.mjs +0 -64
  2074. package/.output/server/chunks/build/useDcwCards-BKCFqkRd.mjs.map +0 -1
  2075. package/.output/server/chunks/build/useDcwDetailScope-CvdvcKAv.mjs +0 -184
  2076. package/.output/server/chunks/build/useDcwDetailScope-CvdvcKAv.mjs.map +0 -1
  2077. package/.output/server/chunks/build/useDcwDetailTemplates-CC2FcEge.mjs +0 -143
  2078. package/.output/server/chunks/build/useDcwDetailTemplates-CC2FcEge.mjs.map +0 -1
  2079. package/.output/server/chunks/build/useDcwFilter-CVoiXbZh.mjs +0 -65
  2080. package/.output/server/chunks/build/useDcwFilter-CVoiXbZh.mjs.map +0 -1
  2081. package/.output/server/chunks/build/useDcwLedger-Cd-ckHoJ.mjs +0 -73
  2082. package/.output/server/chunks/build/useDcwLedger-Cd-ckHoJ.mjs.map +0 -1
  2083. package/.output/server/chunks/build/useDcwLineMutations-BOQs-fw3.mjs +0 -133
  2084. package/.output/server/chunks/build/useDcwLineMutations-BOQs-fw3.mjs.map +0 -1
  2085. package/.output/server/chunks/build/useDcwLineRun-D9qvcyTM.mjs +0 -100
  2086. package/.output/server/chunks/build/useDcwLineRun-D9qvcyTM.mjs.map +0 -1
  2087. package/.output/server/chunks/build/useDcwParamApprovals-D36q4can.mjs +0 -119
  2088. package/.output/server/chunks/build/useDcwParamApprovals-D36q4can.mjs.map +0 -1
  2089. package/.output/server/chunks/build/useDcwProducts-BozctrwT.mjs +0 -88
  2090. package/.output/server/chunks/build/useDcwProducts-BozctrwT.mjs.map +0 -1
  2091. package/.output/server/chunks/build/useDcwQuery-C8FikKgu.mjs +0 -93
  2092. package/.output/server/chunks/build/useDcwQuery-C8FikKgu.mjs.map +0 -1
  2093. package/.output/server/chunks/build/useDcwQuickActions-IyQ8Rkpe.mjs +0 -84
  2094. package/.output/server/chunks/build/useDcwQuickActions-IyQ8Rkpe.mjs.map +0 -1
  2095. package/.output/server/chunks/build/useDcwRecipes-k9HGhMwF.mjs +0 -263
  2096. package/.output/server/chunks/build/useDcwRecipes-k9HGhMwF.mjs.map +0 -1
  2097. package/.output/server/chunks/build/useDcwStream-BnBOiawo.mjs +0 -455
  2098. package/.output/server/chunks/build/useDcwStream-BnBOiawo.mjs.map +0 -1
  2099. package/.output/server/chunks/build/useDcwTemplates-CnyYOOy0.mjs +0 -87
  2100. package/.output/server/chunks/build/useDcwTemplates-CnyYOOy0.mjs.map +0 -1
  2101. package/.output/server/chunks/build/useDcwWrites-Cco590iv.mjs +0 -136
  2102. package/.output/server/chunks/build/useDcwWrites-Cco590iv.mjs.map +0 -1
  2103. package/.output/server/chunks/build/useDeviceTwins-DL-VLFeX.mjs +0 -118
  2104. package/.output/server/chunks/build/useDeviceTwins-DL-VLFeX.mjs.map +0 -1
  2105. package/.output/server/chunks/build/useExpConfirmations-DgwqTb9O.mjs +0 -104
  2106. package/.output/server/chunks/build/useExpConfirmations-DgwqTb9O.mjs.map +0 -1
  2107. package/.output/server/chunks/build/useLocalTime-C__kwn8h.mjs +0 -52
  2108. package/.output/server/chunks/build/useLocalTime-C__kwn8h.mjs.map +0 -1
  2109. package/.output/server/chunks/build/useLogsManual-BcfanT0s.mjs +0 -80
  2110. package/.output/server/chunks/build/useLogsManual-BcfanT0s.mjs.map +0 -1
  2111. package/.output/server/chunks/build/useLogsQuery-BGlKVKpV.mjs +0 -136
  2112. package/.output/server/chunks/build/useLogsQuery-BGlKVKpV.mjs.map +0 -1
  2113. package/.output/server/chunks/build/useLogsScope-C-yrta-v.mjs +0 -75
  2114. package/.output/server/chunks/build/useLogsScope-C-yrta-v.mjs.map +0 -1
  2115. package/.output/server/chunks/build/useMonitorData-BUey2Xly.mjs +0 -128
  2116. package/.output/server/chunks/build/useMonitorData-BUey2Xly.mjs.map +0 -1
  2117. package/.output/server/chunks/build/useMonitorFormat-rhs7FlNo.mjs +0 -77
  2118. package/.output/server/chunks/build/useMonitorFormat-rhs7FlNo.mjs.map +0 -1
  2119. package/.output/server/chunks/build/useOperationsFeed-DWfCjP4l.mjs +0 -182
  2120. package/.output/server/chunks/build/useOperationsFeed-DWfCjP4l.mjs.map +0 -1
  2121. package/.output/server/chunks/build/useOpsLog--yf8erUi.mjs +0 -139
  2122. package/.output/server/chunks/build/useOpsLog--yf8erUi.mjs.map +0 -1
  2123. package/.output/server/chunks/build/useRecipeDispatchApprovals-CKF2sB9P.mjs +0 -146
  2124. package/.output/server/chunks/build/useRecipeDispatchApprovals-CKF2sB9P.mjs.map +0 -1
  2125. package/.output/server/chunks/build/useTeamActions-C08sAVqY.mjs +0 -71
  2126. package/.output/server/chunks/build/useTeamActions-C08sAVqY.mjs.map +0 -1
  2127. package/.output/server/chunks/build/useTeamAddMemberDialog-fzTmflr8.mjs +0 -78
  2128. package/.output/server/chunks/build/useTeamAddMemberDialog-fzTmflr8.mjs.map +0 -1
  2129. package/.output/server/chunks/build/useTeamCreateDialog-De63ep-X.mjs +0 -91
  2130. package/.output/server/chunks/build/useTeamCreateDialog-De63ep-X.mjs.map +0 -1
  2131. package/.output/server/chunks/build/useTeamDeployDialog-CpAtG5Jy.mjs +0 -76
  2132. package/.output/server/chunks/build/useTeamDeployDialog-CpAtG5Jy.mjs.map +0 -1
  2133. package/.output/server/chunks/build/useTeamPluginDialog-C1OOe1sL.mjs +0 -99
  2134. package/.output/server/chunks/build/useTeamPluginDialog-C1OOe1sL.mjs.map +0 -1
  2135. package/.output/server/chunks/build/useTeamsCatalog-DA41SMDu.mjs +0 -124
  2136. package/.output/server/chunks/build/useTeamsCatalog-DA41SMDu.mjs.map +0 -1
  2137. package/.output/server/chunks/build/useTokenCreate-XHTQExra.mjs +0 -106
  2138. package/.output/server/chunks/build/useTokenCreate-XHTQExra.mjs.map +0 -1
  2139. package/.output/server/chunks/build/useTokenRename-Cf1B0cRy.mjs +0 -81
  2140. package/.output/server/chunks/build/useTokenRename-Cf1B0cRy.mjs.map +0 -1
  2141. package/.output/server/chunks/build/useTokenReveal-C8n1Vt9t.mjs +0 -108
  2142. package/.output/server/chunks/build/useTokenReveal-C8n1Vt9t.mjs.map +0 -1
  2143. package/.output/server/chunks/build/useTokensList-MMIq24E-.mjs +0 -86
  2144. package/.output/server/chunks/build/useTokensList-MMIq24E-.mjs.map +0 -1
  2145. package/.output/server/chunks/build/useWorkbenchAuth-Dyc_czui.mjs +0 -131
  2146. package/.output/server/chunks/build/useWorkbenchAuth-Dyc_czui.mjs.map +0 -1
  2147. package/.output/server/chunks/build/useWorkbenchWorkspaces-DT33HbBD.mjs +0 -128
  2148. package/.output/server/chunks/build/useWorkbenchWorkspaces-DT33HbBD.mjs.map +0 -1
  2149. package/.output/server/chunks/build/useWorkshopApi-BkEgGBIM.mjs +0 -118
  2150. package/.output/server/chunks/build/useWorkshopApi-BkEgGBIM.mjs.map +0 -1
  2151. package/.output/server/chunks/build/useWorkshopWs-BWrVj4jL.mjs +0 -1577
  2152. package/.output/server/chunks/build/useWorkshopWs-BWrVj4jL.mjs.map +0 -1
  2153. package/.output/server/chunks/build/useWorkspaceAuth-TahC9EC7.mjs +0 -48
  2154. package/.output/server/chunks/build/useWorkspaceAuth-TahC9EC7.mjs.map +0 -1
  2155. package/.output/server/chunks/build/useWorkspaceChannels-BVAHmhN3.mjs +0 -94
  2156. package/.output/server/chunks/build/useWorkspaceChannels-BVAHmhN3.mjs.map +0 -1
  2157. package/.output/server/chunks/build/useWorkspaceShell-rQHWNNWJ.mjs +0 -150
  2158. package/.output/server/chunks/build/useWorkspaceShell-rQHWNNWJ.mjs.map +0 -1
  2159. package/.output/server/chunks/build/users-pVCK50z-.mjs +0 -566
  2160. package/.output/server/chunks/build/users-pVCK50z-.mjs.map +0 -1
  2161. package/.output/server/chunks/build/workshop-DAgsBgG4.mjs +0 -499
  2162. package/.output/server/chunks/build/workshop-DAgsBgG4.mjs.map +0 -1
  2163. package/scripts/_aw-packaged-start.cjs +0 -22
  2164. package/scripts/_i18n-en-cjk-scan.mjs +0 -28
  2165. package/scripts/_i18n-en-verify.mjs +0 -107
  2166. package/scripts/_i18n-extra-checks.mjs +0 -53
  2167. package/scripts/_i18n-scan-hardcoded.mjs +0 -180
  2168. package/scripts/_lib-dcw-line.mjs +0 -24
  2169. package/scripts/_lib-plc-sim-child.mjs +0 -28
  2170. package/scripts/_lint-reflow.mjs +0 -105
  2171. package/scripts/_loop-biax-campaign.mjs +0 -130
  2172. package/scripts/_probe-daq-omp-task.mjs +0 -100
  2173. package/scripts/_probe-daq-scope-default.mjs +0 -123
  2174. package/scripts/_probe-lease.cjs +0 -13
  2175. package/scripts/_probe-model-channel-link.cjs +0 -25
  2176. package/scripts/_probe-recipe-switch.mjs +0 -92
  2177. package/scripts/_probe-task-queue.cjs +0 -9
  2178. package/scripts/build-anime-models.mjs +0 -339
  2179. package/scripts/demo-group-chat-omp-cases.ts +0 -210
  2180. package/scripts/demo-group-chat-omp.ts +0 -184
  2181. package/scripts/demo-group-chat-order.ts +0 -197
  2182. package/scripts/e2e-channel-isolation.ts +0 -329
  2183. package/scripts/e2e-lead-team-mgmt.ts +0 -217
  2184. package/scripts/proof-omp-real.ts +0 -189
  2185. package/scripts/smoke-optimization-verify.ts +0 -72
  2186. package/scripts/test-a2a-types.ts +0 -296
  2187. package/scripts/test-agent-multi-channel.ts +0 -160
  2188. package/scripts/test-agentteam-task-chat-flow.ts +0 -420
  2189. package/scripts/test-channel-routing.ts +0 -301
  2190. package/scripts/test-cli-exit.mjs +0 -343
  2191. package/scripts/test-event-persistence.mjs +0 -177
  2192. package/scripts/test-group-chat-hardening.ts +0 -265
  2193. package/scripts/test-group-chat-unit/section-a-migration.ts +0 -75
  2194. package/scripts/test-group-chat-unit/section-b-permission-matrix.ts +0 -88
  2195. package/scripts/test-group-chat-unit/section-c-member-lifecycle.ts +0 -64
  2196. package/scripts/test-group-chat-unit/section-d-mention-resolution.ts +0 -36
  2197. package/scripts/test-group-chat-unit/section-e-chat-facts.ts +0 -97
  2198. package/scripts/test-group-chat-unit/section-f-user-notifications.ts +0 -52
  2199. package/scripts/test-group-chat-unit/section-g-member-projection.ts +0 -44
  2200. package/scripts/test-group-chat-unit/section-h-outbox-consistency.ts +0 -30
  2201. package/scripts/test-group-chat-unit/section-i-read-idempotency.ts +0 -24
  2202. package/scripts/test-group-chat-unit/section-j-permission-scope.ts +0 -150
  2203. package/scripts/test-hitl-legacy-channel-auth.ts +0 -143
  2204. package/scripts/test-lane-history-live.mjs +0 -126
  2205. package/scripts/test-mcp-tools.ts +0 -285
  2206. package/scripts/test-memory-dynamic.ts +0 -101
  2207. package/scripts/test-memory-month-query.mjs +0 -70
  2208. package/scripts/test-memory.ts +0 -431
  2209. package/scripts/test-route-reason.mjs +0 -118
  2210. package/scripts/test-scheduler-loop/scenarios-modes.ts +0 -95
  2211. package/scripts/test-scheduler-loop/scenarios-runtime.ts +0 -58
  2212. package/scripts/test-scheduler-loop/scenarios-supervise.ts +0 -183
  2213. package/scripts/test-scheduler-loop/scenarios-triage.ts +0 -102
  2214. package/scripts/ui/admin-shots.mjs +0 -46
  2215. package/scripts/ui/bump-microfont.mjs +0 -39
  2216. package/scripts/ui/linkcheck2.mjs +0 -37
  2217. package/scripts/ui/live-render-check.mjs +0 -72
  2218. package/scripts/ui/perf-audit.mjs +0 -132
  2219. package/scripts/ui/sim-ui-shot.mjs +0 -16
  2220. package/scripts/ui/smoke-refactor.mjs +0 -258
  2221. /package/.output/public/_nuxt/{9j2J4k4w2.js → 9j2J4k4w.js} +0 -0
  2222. /package/.output/public/_nuxt/{BvRk9kiK2.js → DgrK8UCQ.js} +0 -0
  2223. /package/.output/public/_nuxt/{dVw8IHY6.js → dVw8IHY62.js} +0 -0
  2224. /package/.output/public/_nuxt/{k9b520K-2.js → k9b520K-.js} +0 -0
@@ -1,16 +0,0 @@
1
- import{g as e}from"./CavpkQb0.js";import{t}from"./36oeS8_R.js";import{t as n}from"./R5Pz7BqB.js";import{n as r}from"./B6C4WofF.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:`headers`,label:`默认请求头(headers)`,type:`text`,placeholder:`{"X-Unit":"L01","X-API-Token":"{{SECRET:MES_PRIMARY}}"}`,hint:`默认请求头 JSON(随读/写/史所有请求携带;值支持 {{SECRET:REF}} 引用凭据不落明文;映射级 headers 与认证头可覆盖)`},{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};response.format 支持数据格式全谱:scalar(缺省,每时间点一个数值)/vector(检测向量如膜厚断面,配 valuesPath)/image(图像帧如 CCD,配 dataPath+mimePath)/table/event(记录流)`},{key:`writeHook`,label:`写入构造钩子(writeHook)`,type:`text`,placeholder:`function (eng, ctx) {
2
- // eng = recipe 下发的本参数工程值;返回真实写请求(多字段 API 只写本节点负责的一个字段)
3
- return { method: 'POST', path: '/api/v1/params/multi/set', body: { tem: eng } }
4
- }`,hint:`可选 JS 函数表达式:(eng, ctx) => {method?,path?,query?,headers?,body?};覆盖 writeMap 声明(body 缺省 {{value}} 模板);recipe 下发时每个参数只把本节点的值传给本 API`},{key:`writeCheckHook`,label:`写响应二次校验钩子(writeCheckHook)`,type:`text`,placeholder:`function (param, ctx) {
5
- // param = {status, reply(MES 响应 JSON), eng(本次设定)};返回 {ok, message}
6
- return { ok: !!(param.reply && param.reply.applied && param.reply.applied.tem === param.eng), message: 'applied.tem === 设定值' }
7
- }`,hint:`可选 JS 函数表达式:(param, ctx) => {ok, message};对 MES 响应 data 做业务二次校验(回读之外),ok=false 即写失败`},{key:`requestHook`,label:`请求构造钩子(requestHook)`,type:`text`,placeholder:`function (param, ctx) {
8
- // param = Agent 传入的参数对象;返回请求覆盖(合入映射声明,钩子优先)
9
- return { query: { from: param.from, to: param.to, lane: param.lane } }
10
- }`,hint:`可选 JS 函数表达式:(param, ctx) => {path?,query?,headers?};返回值合入映射声明(钩子优先);独立子进程执行,4s 超时击杀`},{key:`dataHook`,label:`数据下沉钩子(dataHook)`,type:`text`,placeholder:`function (param, data, ctx) {
11
- // data.rows = 格式化行(标量 value/向量 values/图像 data+mime/记录 record);data.node = 点位信息
12
- const means = data.rows.map(r => r.values.reduce((a, b) => a + b, 0) / r.values.length)
13
- ctx.plot({ name: 'trend', title: data.node.name, series: [{ name: 'rowMean', points: means.map((v, i) => [i, v]) }] })
14
- ctx.saveCsv({ name: 'rows', rows: [['ts', 'mean']].concat(data.rows.map(r => [r.ts, r.values[0]])) })
15
- return { summary: \`行数 \${data.rows.length},均值 \${means[0].toFixed(2)}\`, context: '已绘图并存 CSV' }
16
- }`,hint:`可选 JS 函数表达式:(param, data, ctx) => {summary?,context?,stats?};ctx 提供 saveCsv/saveJson/saveText/savePng/plot(SVG)/log/now,产物落数据根 mes-artifacts/<点位id>/;Agent 取数回包自动附处理摘要与产物清单;独立子进程执行,4s 超时击杀`}]}],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})}),mesHookTest:async(e,t)=>o(`/mes-hook-test`,{method:`POST`,body:JSON.stringify({driverConfig:e,param:t})}),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 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{n as t}from"./D1MkndMZ.js";import{i as n}from"./DXgw1dVL.js";import{t as r}from"./R5Pz7BqB.js";import{t as i}from"./8SZLbrI42.js";var a=e({useTeamActions:()=>o});function o(e){let a=i(),{t:o}=t();return{toggleVisibility:async(t,i)=>{try{await a.updateTeam(t.id,{visibility:i?`public`:`private`}),n.success(o(i?`teams.k1globhp023`:`teams.k1xxabaf024`)),e.reload()}catch(e){n.error(r(e))}},removeMember:async(t,n)=>{await a.removeTeamMember(t.id,n),e.reload()},removeTeam:async t=>{await a.deleteTeam(t.id),n.success(o(`teams.k1oxjrxx027`)),e.reload()}}}export{a as n,o as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n,z as r}from"./C6lssmvl.js";import{t as i}from"./CElzwyXQ.js";import{n as a}from"./B6C4WofF.js";import{t as o}from"./IXR1BWP5.js";import{t as s}from"./BVGzwAxr2.js";var c=e({useDcwParamApprovals:()=>l});function l(e){let c=s(),l=o(),{lineNodes:u}=e,d=t([]),f=t({}),p=t(``),m=t(Date.now()),h=n(()=>{let e=new Set(u.value.map(e=>e.id));return d.value.filter(t=>t.kind===`dcw`&&e.has(t.nodeId)&&t.status===`pending`)});function g(e){return l.items.find(t=>t.kind===`dcw-approval`&&t.id===e.id)?.agentName??e.agentId}function _(e){return c.nodeById(e.nodeId)?.name??e.nodeId.slice(0,8)}function v(e){let t=Date.parse(e.expiresAt);return Number.isFinite(t)?Math.max(0,Math.ceil((t-m.value)/1e3)):1/0}async function y(){try{let e=await a({base:`/api/workshop/agent-tools/approvals`,path:`?scope=pending`});d.value=e.approvals??[]}catch{}}async function b(e,t){p.value=e;try{await a({base:`/api/workshop/agent-tools/approvals`,path:`/${encodeURIComponent(e)}/decide`,init:{method:`POST`,body:JSON.stringify({approved:t,comment:f.value[e]??``})}}),d.value=d.value.filter(t=>t.id!==e)}catch{}finally{Reflect.deleteProperty(f.value,e),p.value=``,await y()}}{let e=0,t=i(()=>{m.value=Date.now(),e++,e%30==0&&y()},1e3);r(()=>clearInterval(t))}return y(),l.loadSnapshot(),{approvalItems:h,approvalComments:f,approvalDecidingId:p,approvalRemainingSec:v,approvalAgentName:g,approvalNodeName:_,decideApproval:b}}export{c as n,l as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./C6lssmvl.js";import{t as r}from"./BVGzwAxr2.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 +0,0 @@
1
- import{S as e,ft as t,mt as n,v as r}from"./CavpkQb0.js";import{R as i,S as a,V as o,W as s,b as c,d as l,f as u,h as d,i as f,it as p,m,p as ee,rt as h,tt as g,y as _}from"./C6lssmvl.js";import{c as v,l as te,o as ne}from"./ri9UF8rk.js";import{t as y}from"./DPPC9Teq.js";import{n as re}from"./D1MkndMZ.js";import{t as ie}from"./Bmvt9ydE.js";import{t as b}from"./BDNMzG2s.js";import{t as ae}from"./DPnjnDtg.js";import{t as x}from"./R5Pz7BqB.js";import{n as S}from"./B6C4WofF.js";import{t as oe}from"./DPvZxAt02.js";var se={class:`page`},ce={class:`head`},le={class:`title`},ue={class:`row`},de={value:``},fe=[`value`],pe={class:`lbl`},me={value:``},he={value:`15`},ge={value:`60`},_e={value:`240`},C={key:0,class:`card`},w={class:`sec`},T={class:`row`},E=[`placeholder`],D={value:`private`},O={value:`line`},k=[`disabled`],A={class:`row`},j=[`value`],M={key:0,class:`empty`},N={key:1,class:`grid`,"data-test":`board-grid`},P={class:`cellHead`},F={class:`cTitle`},I=[`onClick`],ve=[`onClick`],ye=[`onClick`],be=[`onClick`],xe=[`onClick`],Se=[`onClick`],Ce={key:0,class:`empty`},we={key:2,class:`row end`},Te={key:3,class:`hint`},Ee={key:4,class:`err`},L=b(a({__name:`board`,setup(a){let{t:b}=re(),L=r([]),R=r([]),z=r(``),B=r(null),V=r([]),H=r(``),U=r(`private`),W=r(``),G=r(``),K=r(``),q={},De=e=>{let t=e.chart;return t?Oe.value.get(t.id)??q:q},Oe=l(()=>{let e=new Map;for(let[,t]of J.value)e.set(t.chartId,t.option);return e}),J=e(new Map);async function Y(){try{let[e,t]=await Promise.all([S({base:`/api/workshop/eda/dashboards`,retries:1}),S({base:`/api/workshop/eda/charts?mine=1`,retries:1})]);L.value=e.dashboards??[],R.value=t.charts??[],z.value&&await X(z.value)}catch(e){K.value=x(e)}}async function X(e){z.value=e;let t=await S({base:`/api/workshop/eda/dashboards/${e}`});B.value=t,await Promise.all((t.charts??[]).filter(e=>e.chart).map(e=>Z(e.chart)))}async function Z(e){let t=e.datasource??{},n=Date.now(),r=n-(W.value?Number(W.value):Number(t.preset)||60)*6e4;try{let i=new URLSearchParams;t.lineId&&i.set(`line_id`,t.lineId),i.set(`node_ids`,(t.nodeIds??[]).join(`,`)),i.set(`from`,String(r)),i.set(`to`,String(n)),i.set(`agg`,t.agg??`avg`),t.runId&&i.set(`run_id`,t.runId);let a=await S({base:`/api/workshop/daq/query?${i.toString()}`,retries:0}),o=oe({series:a.series??[],refLines:e.encoding?.refLines??[],compact:!0});J.value.set(e.id,{chartId:e.id,option:o}),J.value=new Map(J.value)}catch(e){K.value=x(e)}}async function ke(){try{let e=V.value.map((e,t)=>({chartId:e,x:t*4%12,y:Math.floor(t*4/12)*3,w:4,h:3})),t=await S({base:`/api/workshop/eda/dashboards`,init:{method:`POST`,body:JSON.stringify({title:H.value.trim(),layout:e,visibility:U.value})}});H.value=``,V.value=[],await Y(),await X(t.dashboard.id),G.value=b(`board.created`)}catch(e){K.value=x(e)}}function Q(e,t,n){e.x=Math.min(Math.max(e.x+t,0),11),e.y=Math.max(e.y+n,0)}function $(e,t){e.w=Math.min(Math.max(e.w+t,1),12)}async function Ae(){if(B.value)try{await S({base:`/api/workshop/eda/dashboards/${B.value.dashboard.id}`,init:{method:`PATCH`,body:JSON.stringify({layout:B.value.dashboard.layout})}}),G.value=b(`board.layoutSaved`)}catch(e){K.value=x(e)}}return i(Y),g(z,e=>{e&&X(e)}),g(W,()=>{if(B.value)for(let e of B.value.charts)e.chart&&Z(e.chart)}),(e,r)=>{let i=y,a=ae,l=ie;return o(),d(`div`,se,[u(`header`,ce,[u(`h1`,le,n(e.$t(`board.title`)),1),c(i,{to:`/studio`,class:`back`},{default:h(()=>[_(n(e.$t(`board.backToStudio`)),1)]),_:1})]),u(`div`,ue,[p(u(`select`,{"onUpdate:modelValue":r[0]||=e=>z.value=e,class:`input sel`,"data-test":`board-sel`},[u(`option`,de,n(e.$t(`board.pick`)),1),(o(!0),d(f,null,s(L.value,e=>(o(),d(`option`,{key:e.id,value:e.id},n(e.title),9,fe))),128))],512),[[v,z.value]]),u(`button`,{class:`pill-btn`,onClick:Y},n(e.$t(`data.ledger.refresh`)),1),r[5]||=u(`span`,{class:`grow`},null,-1),u(`label`,pe,n(e.$t(`board.windowOverride`)),1),p(u(`select`,{"onUpdate:modelValue":r[1]||=e=>W.value=e,class:`input sel`,"data-test":`board-window`},[u(`option`,me,n(e.$t(`board.keepChart`)),1),u(`option`,he,n(e.$t(`data.mirror.last15`)),1),u(`option`,ge,n(e.$t(`data.mirror.last60`)),1),u(`option`,_e,n(e.$t(`data.mirror.last240`)),1)],512),[[v,W.value]])]),z.value?m(``,!0):(o(),d(`div`,C,[u(`h3`,w,n(e.$t(`board.create`)),1),u(`div`,T,[p(u(`input`,{"onUpdate:modelValue":r[2]||=e=>H.value=e,class:`input w`,placeholder:e.$t(`board.boardTitle`)},null,8,E),[[te,H.value]]),p(u(`select`,{"onUpdate:modelValue":r[3]||=e=>U.value=e,class:`input sel`},[u(`option`,D,n(e.$t(`studio.visPrivate`)),1),u(`option`,O,n(e.$t(`studio.visLine`)),1)],512),[[v,U.value]]),u(`button`,{class:`pill-btn primary`,"data-test":`board-create`,disabled:!H.value.trim()||!V.value.length,onClick:ke},n(e.$t(`board.createBtn`,{n:V.value.length})),9,k)]),u(`div`,A,[(o(!0),d(f,null,s(R.value,e=>(o(),d(`label`,{key:e.id,class:`chk`},[p(u(`input`,{"onUpdate:modelValue":r[4]||=e=>V.value=e,type:`checkbox`,value:e.id},null,8,j),[[ne,V.value]]),_(` `+n(e.title),1)]))),128)),R.value.length?m(``,!0):(o(),d(`p`,M,n(e.$t(`studio.noCharts`)),1))])])),B.value?(o(),d(`div`,N,[(o(!0),d(f,null,s(B.value.charts,r=>(o(),d(`div`,{key:r.gridPos?.chartId??Math.random(),class:`cell`,style:t({gridColumn:`${(r.gridPos?.x??0)+1} / span ${r.gridPos?.w??4}`,gridRow:`${(r.gridPos?.y??0)+1} / span ${r.gridPos?.h??3}`})},[u(`div`,P,[u(`span`,F,n(r.chart?.title??(r.inaccessible?e.$t(`board.inaccessible`):`?`)),1),u(`button`,{class:`mini`,onClick:e=>Q(r.gridPos,-1,0)},` ← `,8,I),u(`button`,{class:`mini`,onClick:e=>Q(r.gridPos,1,0)},` → `,8,ve),u(`button`,{class:`mini`,onClick:e=>Q(r.gridPos,0,-1)},` ↑ `,8,ye),u(`button`,{class:`mini`,onClick:e=>Q(r.gridPos,0,1)},` ↓ `,8,be),u(`button`,{class:`mini`,onClick:e=>$(r.gridPos,-1)},` - `,8,xe),u(`button`,{class:`mini`,onClick:e=>$(r.gridPos,1)},` + `,8,Se)]),c(l,null,{default:h(()=>[r.chart&&!r.inaccessible?(o(),ee(a,{key:0,option:De(r),style:{height:`100%`,width:`100%`}},null,8,[`option`])):m(``,!0)]),_:2},1024),r.inaccessible?(o(),d(`p`,Ce,n(e.$t(`board.noReadChart`)),1)):m(``,!0)],4))),128))])):m(``,!0),B.value?(o(),d(`div`,we,[u(`button`,{class:`pill-btn primary`,"data-test":`board-save`,onClick:Ae},n(e.$t(`board.saveLayout`)),1)])):m(``,!0),G.value?(o(),d(`p`,Te,n(G.value),1)):m(``,!0),K.value?(o(),d(`p`,Ee,n(K.value),1)):m(``,!0)])}}}),[[`__scopeId`,`data-v-51eb00e0`]]);export{L as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t}from"./CavpkQb0.js";import{tt as n}from"./C6lssmvl.js";import{n as r}from"./D1MkndMZ.js";import{i}from"./DXgw1dVL.js";import{t as a}from"./R5Pz7BqB.js";import{t as o}from"./8SZLbrI42.js";var s=e({useAgentTemplateForm:()=>c});function c(e){let s=o(),{t:c}=r(),l=t({name:``,harness:`mock`,configJson:`{}`,visibility:`private`});return n([()=>e.open.value,()=>e.editing()],()=>{if(!e.open.value)return;let t=e.editing();if(!t){l.name=``,l.harness=`mock`,l.configJson=`{}`,l.visibility=`private`;return}l.name=t.name,l.harness=t.harness,l.configJson=JSON.stringify(t.config??{},null,2),l.visibility=t.visibility}),{form:l,save:async()=>{let t;try{t=JSON.parse(l.configJson||`{}`)}catch{i.error(c(`agents.badConfigJson`));return}if(e.isUnavailable(l.harness)){i.error(e.harnessMeta(l.harness)?.error??c(`agents.notInstalled`));return}try{let n=e.editing();n?(await s.updateTemplate(n.id,{name:l.name,harness:l.harness,config:t,visibility:l.visibility}),i.success(c(`agents.k3n9aij020`))):(await s.createTemplate({name:l.name,harness:l.harness,config:t,visibility:l.visibility}),i.success(c(`agents.k3n5hak021`))),e.open.value=!1,e.onSaved()}catch(e){i.error(a(e))}}}}export{s as n,c as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r}from"./C6lssmvl.js";import{n as i}from"./D1MkndMZ.js";import{i as a}from"./DXgw1dVL.js";import{t as o}from"./8SZLbrI42.js";var s=e({useTeamCreateDialog:()=>c});function c(e){let s=o(),{t:c}=i(),l=t({name:``,description:``,visibility:`private`}),u=n([]),d=n({});return(async()=>{try{let e=await s.listPlugins(),t=e?.plugins??e?.data?.plugins??[],n=(Array.isArray(t)?t:[]).filter(e=>e.enabled!==!1);u.value=n;let r={};for(let e of n)r[e.name]=!0;d.value=r}catch{}})(),{createForm:l,platformPlugins:u,pluginChecked:r({get:()=>Object.entries(d.value).filter(([,e])=>e).map(([e])=>e),set:e=>{let t={};for(let n of u.value)t[n.name]=e.includes(n.name);d.value=t}}),submit:async()=>{if(!l.name.trim()){a.warning(c(`teams.k1bvcdo2021`));return}let t=Object.entries(d.value).map(([e,t])=>({name:e,enabled:t}));await s.createTeam({name:l.name.trim(),description:l.description||void 0,visibility:l.visibility,plugins:t}),a.success(c(`teams.k3n5hak022`)),e.open.value=!1,l.name=``,l.description=``,l.visibility=`private`,d.value=Object.fromEntries(Object.entries(d.value).map(([e])=>[e,!0])),e.onCreated()}}}export{s as n,c as t};
@@ -1 +0,0 @@
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,it as f,m as p,p as ee,rt as m,tt as h,y as g}from"./C6lssmvl.js";import{c as _,f as v,l as y}from"./ri9UF8rk.js";import{m as te,p as ne}from"./CDYLasP8.js";import{t as re}from"./DPPC9Teq.js";import{n as ie}from"./D1MkndMZ.js";import{t as ae}from"./Bmvt9ydE.js";import{t as b}from"./BDNMzG2s.js";import{t as oe}from"./DPnjnDtg.js";import{t as x}from"./R5Pz7BqB.js";import{n as S}from"./B6C4WofF.js";import{t as se}from"./DPvZxAt02.js";var ce={class:`studio`},le={class:`col left`},ue={class:`card grow`},de={class:`sec`},fe={value:``},pe=[`value`],me={class:`nodeList`,"data-test":`studio-nodes`},he=[`title`,`onDblclick`],ge={class:`nName`},_e={key:0,class:`unit`},ve=[`onClick`],ye={key:0,class:`empty`},be={class:`card`},xe={class:`sec`},Se=[`onClick`],Ce={class:`nName`},we={class:`unit`},Te=[`onClick`],Ee={key:0,class:`empty`},De={class:`col mid`},Oe={class:`card`},ke={class:`row`},Ae={class:`gallery`,"data-test":`studio-gallery`},je=[`title`,`onClick`],Me={class:`row`},Ne={class:`lbl`},Pe={value:`15`},Fe={value:`60`},Ie={value:`240`},Le={class:`lbl`},Re={value:``},ze=[`value`],Be={class:`lbl`},Ve={value:`avg`},He={value:`min`},Ue={value:`max`},We=[`disabled`],Ge=[`disabled`],Ke={key:0,class:`err`},qe={class:`card grow canvasCard`},Je={key:0,class:`kpiRow`},Ye={class:`kName`},Xe={class:`kVal`},Ze={class:`unit`},Qe={key:1,class:`tblWrap`},$e={class:`tbl`},et={class:`mono`},tt={key:2,class:`empty big`},nt={class:`col right`},rt={class:`card`},it={class:`sec`},at={class:`well`,"data-test":`studio-y-well`},ot={class:`axis`},st=[`title`,`onClick`],ct=[`onClick`],lt={key:0,class:`empty`},ut={class:`sec`},dt={class:`well`},ft=[`onClick`],pt={key:0,class:`empty`},mt={class:`row`},ht=[`placeholder`],gt={class:`card`},_t={class:`sec`},vt={class:`hint`},yt={class:`nName`},bt=[`disabled`,`onClick`],xt=[`onClick`],St=[`disabled`,`onClick`],Ct={key:0,class:`hint`,"data-test":`studio-deviation`},wt={class:`card`},Tt={class:`sec`},Et=[`placeholder`],Dt={class:`row`},Ot={value:`private`},kt={value:`line`},At=[`disabled`],jt={key:0,class:`hint`},Mt={class:`modal`},Nt={class:`sec`},Pt=[`value`],Ft={class:`row end`},It={key:0,class:`hint`},C=b(i({__name:`index`,setup(i){let b=[`trend`,`bar`,`scatter`,`kpi`,`table`,`histogram`],{t:C}=ie(),w=ne(),Lt=te(),T=n(!1),E=n(``),D=c(()=>{let e=P.value.map(e=>`${e.name}(${e.nodeId})`).join(`、`),t=z.value?`、批次 ${z.value}`:``,n=U.value.at(-1),r=n?`。最新读数 ${n.points.at(-1)?.v??`-`}${n.unit}(时间窗 ${new Date(n.points[0]?.at??0).toISOString().slice(0,16)} 起)`:``;return`请用 daq_query 分析:产线 ${j.value||`(未选)`} 的 ${e}${t},窗口 ${R.value} 分钟、聚合 ${B.value}。请结合历史窗口给出趋势判读与建议${r}`});function Rt(){navigator.clipboard?.writeText(D.value).then(()=>{E.value=C(`studio.copied`)}).catch(()=>{E.value=``})}let O=c(()=>({trend:C(`studio.viz.trend`),bar:C(`studio.viz.bar`),scatter:C(`studio.viz.scatter`),kpi:C(`studio.viz.kpi`),table:C(`studio.viz.table`),histogram:C(`studio.viz.histogram`)})),k=n([]),A=n([]),j=n(``),M=n([]),N=n([]),P=n([]),F=n([]),I=n(``),L=n(`trend`),R=n(`60`),z=n(``),B=n(`avg`),V=n(!1),H=n(``),U=n([]),W=n(new Set),G=n(new Map),K=n(null),q=n(``),J=n(`private`),Y=n(``),X=n(``),Z=e=>P.value.some(t=>t.nodeId===e),zt=e=>e===`kpi`||e===`table`?U.value.length>0:P.value.length>0;function Bt(e){if(!Z(e.id)){if(P.value.length>=8){H.value=C(`studio.yMax`);return}P.value.push({nodeId:e.id,name:e.name,unit:e.unit,axis:P.value.length===0?`L`:`R`}),W.value.delete(e.id)}}function Vt(e){P.value=P.value.filter(t=>t.nodeId!==e)}function Ht(e){let t=P.value.find(t=>t.nodeId===e);t&&(t.axis=t.axis===`L`?`R`:`L`)}function Ut(){let e=Number(I.value);if(Number.isFinite(e)&&e!==0){F.value.push({value:e,label:`ref`}),I.value=``;return}let t=A.value.find(e=>Z(e.id));t?.max!=null&&F.value.push({value:Number(t.max),label:C(`studio.maxRef`)})}function Wt(e){let t=e.points.at(-1)?.v;return t==null?`-`:String(Number(t.toFixed(3)))}let Gt=c(()=>{let e=new Set;for(let t of U.value)for(let n of t.points)e.add(n.at);return[...e].sort((e,t)=>t-e).slice(0,200).map(e=>{let t={};for(let n of U.value){let r=n.points.find(t=>t.at===e);t[n.nodeId]=r?String(r.v):``}return{at:e,time:new Date(e).toISOString().slice(5,19).replace(`T`,` `),cells:t}})}),Kt=c(()=>{if(!U.value.length)return null;if(L.value===`trend`)return se({series:U.value,refLines:F.value,golden:{cache:G.value,on:W.value}});let e=[];for(let t of U.value)t.unit&&!e.includes(t.unit)&&e.push(t.unit);let t=t=>Math.min(e.indexOf(t),1),n=[0,1].slice(0,Math.max(1,Math.min(e.length,2))).map(t=>({type:`value`,name:e[t]??``,scale:!0})),r=[];if(L.value===`bar`)r.push(...U.value.map(e=>({name:e.name,type:`bar`,yAxisIndex:t(e.unit),data:e.points.map(e=>[e.at,e.v]),barMaxWidth:24})));else if(L.value===`scatter`)r.push(...U.value.map(e=>({name:e.name,type:`scatter`,yAxisIndex:t(e.unit),symbolSize:5,data:e.points.map(e=>[e.at,e.v])})));else if(L.value===`histogram`)for(let e of U.value){let t=e.points.map(e=>e.v);if(!t.length)continue;let n=Math.min(...t),i=(Math.max(...t)-n)/20||1,a=Array.from({length:20},()=>0);for(let e of t)a[Math.min(19,Math.floor((e-n)/i))]+=1;r.push({name:e.name,type:`bar`,yAxisIndex:0,barCategoryGap:`0%`,data:a.map((e,t)=>[Number((n+t*i).toFixed(3)),e]),tooltip:{formatter:e=>`[${(n+e.dataIndex*i).toFixed(2)}, ${(n+(e.dataIndex+1)*i).toFixed(2)}) : ${a[e.dataIndex]}`}})}return{tooltip:{trigger:`axis`},legend:{type:`scroll`},grid:{left:56,right:e.length>1?56:24,top:32,bottom:64},xAxis:[{type:`time`,axisLabel:{hideOverlap:!0}}],yAxis:n,dataZoom:[{type:`inside`},{type:`slider`,height:16,bottom:10}],toolbox:{right:8,top:0,feature:{saveAsImage:{title:`PNG`}}},series:r}});async function qt(){V.value=!0,H.value=``;try{let e=N.value.find(e=>e.id===z.value),t=e?.endedAt?Date.parse(e.endedAt):Date.now(),n=e?Date.parse(e.startedAt):t-(Number(R.value)||60)*6e4,r=new URLSearchParams;j.value&&r.set(`line_id`,j.value),r.set(`node_ids`,P.value.map(e=>e.nodeId).join(`,`)),r.set(`from`,String(n)),r.set(`to`,String(t)),r.set(`agg`,B.value),z.value&&r.set(`run_id`,z.value);let i=await S({base:`/api/workshop/daq/query?${r.toString()}`,retries:0});U.value=i.series??[],W.value=new Set([...W.value].filter(e=>P.value.some(t=>t.nodeId===e)))}catch(e){H.value=x(e)}finally{V.value=!1}}async function Jt(e){if(z.value)try{await S({base:`/api/workshop/eda/golden`,init:{method:`POST`,body:JSON.stringify({run_id:z.value,node_id:e})}}),X.value=C(`studio.goldenMade`,{node:P.value.find(t=>t.nodeId===e)?.name??e})}catch(e){H.value=x(e)}}async function Yt(e){if(W.value.has(e)){W.value.delete(e),W.value=new Set(W.value);return}try{let t=((await S({base:`/api/workshop/eda/runs?limit=50`})).runs??[]).find(e=>e.id===z.value)?.recipeId;if(!t){H.value=C(`studio.noRecipe`);return}let n=await S({base:`/api/workshop/eda/golden/single?recipe_id=${encodeURIComponent(t)}&node_id=${encodeURIComponent(e)}`});G.value.set(e,n.golden.profile),W.value.add(e),W.value=new Set(W.value)}catch(e){H.value=x(e)}}async function Xt(e){if(z.value)try{K.value=await S({base:`/api/workshop/eda/golden/deviation?run_id=${encodeURIComponent(z.value)}&node_id=${encodeURIComponent(e)}`})}catch(e){H.value=x(e)}}function Zt(){return{title:q.value.trim(),viz_type:L.value,datasource:{lineId:j.value||null,nodeIds:P.value.map(e=>e.nodeId),runId:z.value||null,preset:R.value,agg:B.value},encoding:{y:P.value,refLines:F.value,golden:[...W.value]},options:{},line_id:j.value||null,visibility:J.value}}async function Qt(){X.value=``;try{let e=Zt();if(Y.value){let t=await S({base:`/api/workshop/eda/charts/${Y.value}`,init:{method:`PATCH`,body:JSON.stringify(e)}});X.value=C(`studio.savedV`,{v:t.chart.version})}else{let t=await S({base:`/api/workshop/eda/charts`,init:{method:`POST`,body:JSON.stringify(e)}});Y.value=t.chart.id,X.value=C(`studio.savedV`,{v:t.chart.version})}await $()}catch(e){H.value=x(e)}}function $t(e){Y.value=e.id,q.value=e.title,L.value=e.vizType;let t=e.datasource;j.value=t.lineId??``,z.value=t.runId??``,R.value=t.preset??`60`,B.value=t.agg??`avg`,J.value=e.visibility??`private`;let n=e.encoding;P.value=n.y??[],F.value=n.refLines??[],W.value=new Set(n.golden??[]),Q().then(qt)}async function en(e){try{await S({base:`/api/workshop/eda/charts/${e}`,init:{method:`DELETE`}}),Y.value===e&&(Y.value=``),await $()}catch(e){H.value=x(e)}}async function Q(){let e=await S({base:`/api/workshop/daq`,retries:1});A.value=(e.nodes??[]).filter(e=>!j.value||e.lineId===j.value)}async function $(){let e=await S({base:`/api/workshop/eda/charts?mine=1`,retries:1});M.value=e.charts??[]}return r(async()=>{try{let e=typeof w.query.line==`string`?w.query.line:``,[t,n]=await Promise.all([S({base:`/api/workshop/dcw/lines`,retries:1}),S({base:`/api/workshop/eda/runs?limit=20`,retries:1})]);k.value=t.lines??[],N.value=n.runs??[],e&&k.value.some(t=>t.id===e)?j.value=e:k.value.length&&(j.value=k.value[0].id),await Q(),await $()}catch(e){H.value=x(e)}}),h(j,e=>{Lt.replace({query:{...w.query,line:e||void 0}})}),(n,r)=>{let i=re,c=oe,h=ae;return a(),u(`div`,ce,[l(`aside`,le,[l(`div`,ue,[l(`h3`,de,t(n.$t(`studio.sources`)),1),f(l(`select`,{"onUpdate:modelValue":r[0]||=e=>j.value=e,class:`input w`,"data-test":`studio-line`,onChange:Q},[l(`option`,fe,t(n.$t(`data.line.any`)),1),(a(!0),u(d,null,o(k.value,e=>(a(),u(`option`,{key:e.id,value:e.id},t(e.name),9,pe))),128))],544),[[_,j.value]]),l(`div`,me,[(a(!0),u(d,null,o(A.value,e=>(a(),u(`button`,{key:e.id,class:`nodeRow`,title:n.$t(`studio.dblClickAdd`),onDblclick:t=>Bt(e)},[l(`span`,ge,t(e.name),1),e.unit?(a(),u(`span`,_e,t(e.unit),1)):p(``,!0),Z(e.id)?p(``,!0):(a(),u(`button`,{key:1,class:`miniAdd`,onClick:v(t=>Bt(e),[`stop`])},` +Y `,8,ve))],40,he))),128)),A.value.length?p(``,!0):(a(),u(`p`,ye,t(n.$t(`studio.pickLine`)),1))])]),l(`div`,be,[l(`h3`,xe,t(n.$t(`studio.myCharts`)),1),(a(!0),u(d,null,o(M.value,e=>(a(),u(`button`,{key:e.id,class:`chartRow`,"data-test":`studio-chart-row`,onClick:t=>$t(e)},[l(`span`,Ce,t(e.title),1),l(`span`,we,t(e.vizType)+` v`+t(e.version),1),l(`button`,{class:`miniAdd`,onClick:v(t=>en(e.id),[`stop`])},` ✕ `,8,Te)],8,Se))),128)),M.value.length?p(``,!0):(a(),u(`p`,Ee,t(n.$t(`studio.noCharts`)),1))])]),l(`main`,De,[l(`div`,Oe,[l(`div`,ke,[l(`div`,Ae,[(a(),u(d,null,o(b,n=>l(`button`,{key:n,class:e([`vizBtn`,{on:L.value===n,dim:!zt(n)}]),title:O.value[n],onClick:e=>L.value=n},t(O.value[n]),11,je)),64))])]),l(`div`,Me,[l(`label`,Ne,t(n.$t(`data.mirror.window`)),1),f(l(`select`,{"onUpdate:modelValue":r[1]||=e=>R.value=e,class:`input sel`},[l(`option`,Pe,t(n.$t(`data.mirror.last15`)),1),l(`option`,Fe,t(n.$t(`data.mirror.last60`)),1),l(`option`,Ie,t(n.$t(`data.mirror.last240`)),1)],512),[[_,R.value]]),l(`label`,Le,t(n.$t(`studio.runFilter`)),1),f(l(`select`,{"onUpdate:modelValue":r[2]||=e=>z.value=e,class:`input sel`,"data-test":`studio-run`},[l(`option`,Re,t(n.$t(`studio.noRun`)),1),(a(!0),u(d,null,o(N.value,e=>(a(),u(`option`,{key:e.id,value:e.id},t(e.id)+` · `+t(e.outcome),9,ze))),128))],512),[[_,z.value]]),l(`label`,Be,t(n.$t(`data.mirror.agg`)),1),f(l(`select`,{"onUpdate:modelValue":r[3]||=e=>B.value=e,class:`input sel`},[l(`option`,Ve,t(n.$t(`data.mirror.aggAvg`)),1),l(`option`,He,t(n.$t(`data.mirror.aggMin`)),1),l(`option`,Ue,t(n.$t(`data.mirror.aggMax`)),1)],512),[[_,B.value]]),l(`button`,{class:`pill-btn primary`,"data-test":`studio-query`,disabled:!P.value.length||V.value,onClick:qt},t(V.value?n.$t(`data.mirror.querying`):n.$t(`data.mirror.query`)),9,We),s(i,{to:`/studio/board`,class:`pill-btn boardLink`,"data-test":`studio-board-link`},{default:m(()=>[g(t(n.$t(`studio.boardLink`)),1)]),_:1}),l(`button`,{class:`pill-btn`,"data-test":`studio-agent-prompt`,disabled:!U.value.length,onClick:r[4]||=e=>T.value=!0},t(n.$t(`studio.agentPrompt`)),9,Ge)]),H.value?(a(),u(`p`,Ke,t(H.value),1)):p(``,!0)]),l(`div`,qe,[s(h,null,{default:m(()=>[Kt.value&&L.value!==`table`&&L.value!==`kpi`?(a(),ee(c,{key:0,option:Kt.value,style:{height:`100%`,width:`100%`}},null,8,[`option`])):p(``,!0)]),_:1}),L.value===`kpi`&&U.value.length?(a(),u(`div`,Je,[(a(!0),u(d,null,o(U.value,e=>(a(),u(`div`,{key:e.nodeId,class:`kpi`},[l(`span`,Ye,t(e.name),1),l(`span`,Xe,[g(t(Wt(e)),1),l(`i`,Ze,t(e.unit),1)])]))),128))])):p(``,!0),L.value===`table`&&U.value.length?(a(),u(`div`,Qe,[l(`table`,$e,[l(`thead`,null,[l(`tr`,null,[l(`th`,null,t(n.$t(`data.mirror.time`)),1),(a(!0),u(d,null,o(U.value,e=>(a(),u(`th`,{key:e.nodeId},t(e.name),1))),128))])]),l(`tbody`,null,[(a(!0),u(d,null,o(Gt.value,e=>(a(),u(`tr`,{key:e.at},[l(`td`,et,t(e.time),1),(a(!0),u(d,null,o(U.value,n=>(a(),u(`td`,{key:n.nodeId,class:`mono`},t(e.cells[n.nodeId]??``),1))),128))]))),128))])])])):p(``,!0),!U.value.length&&!V.value?(a(),u(`p`,tt,t(n.$t(`studio.canvasEmpty`)),1)):p(``,!0)])]),l(`aside`,nt,[l(`div`,rt,[l(`h3`,it,t(n.$t(`studio.yWell`)),1),l(`div`,at,[(a(!0),u(d,null,o(P.value,e=>(a(),u(`span`,{key:e.nodeId,class:`chip`},[l(`b`,ot,t(e.axis),1),g(` `+t(e.name)+` `,1),l(`button`,{class:`axisBtn`,title:n.$t(`studio.toggleAxis`),onClick:t=>Ht(e.nodeId)},`⇄`,8,st),l(`button`,{class:`axisBtn`,onClick:t=>Vt(e.nodeId)},`✕`,8,ct)]))),128)),P.value.length?p(``,!0):(a(),u(`span`,lt,t(n.$t(`studio.yEmpty`)),1))]),l(`h3`,ut,t(n.$t(`studio.refWell`)),1),l(`div`,dt,[(a(!0),u(d,null,o(F.value,(e,n)=>(a(),u(`span`,{key:n,class:`chip`},[g(t(e.label)+` `+t(e.value)+` `,1),l(`button`,{class:`axisBtn`,onClick:e=>F.value.splice(n,1)},`✕`,8,ft)]))),128)),F.value.length?p(``,!0):(a(),u(`span`,pt,t(n.$t(`studio.refEmpty`)),1))]),l(`div`,mt,[f(l(`input`,{"onUpdate:modelValue":r[5]||=e=>I.value=e,type:`number`,class:`input numIn`,placeholder:n.$t(`studio.refValue`)},null,8,ht),[[y,I.value]]),l(`button`,{class:`pill-btn`,onClick:Ut},t(n.$t(`studio.refFromTemplate`)),1)])]),l(`div`,gt,[l(`h3`,_t,t(n.$t(`studio.golden`)),1),l(`p`,vt,t(n.$t(`studio.goldenHint`)),1),(a(!0),u(d,null,o(P.value,e=>(a(),u(`div`,{key:e.nodeId,class:`row goldenRow`},[l(`span`,yt,t(e.name),1),l(`button`,{class:`pill-btn`,disabled:!z.value,onClick:t=>Jt(e.nodeId)},t(n.$t(`studio.goldenMake`)),9,bt),l(`button`,{class:`pill-btn`,onClick:t=>Yt(e.nodeId)},t(W.value.has(e.nodeId)?n.$t(`studio.goldenHide`):n.$t(`studio.goldenShow`)),9,xt),l(`button`,{class:`pill-btn`,disabled:!z.value,onClick:t=>Xt(e.nodeId)},t(n.$t(`studio.goldenScore`)),9,St)]))),128)),K.value?(a(),u(`p`,Ct,t(n.$t(`studio.deviationScore`,{score:K.value.score})),1)):p(``,!0)]),l(`div`,wt,[l(`h3`,Tt,t(n.$t(`studio.saveSection`)),1),f(l(`input`,{"onUpdate:modelValue":r[6]||=e=>q.value=e,class:`input w`,placeholder:n.$t(`studio.chartTitle`),"data-test":`studio-title`},null,8,Et),[[y,q.value]]),l(`div`,Dt,[f(l(`select`,{"onUpdate:modelValue":r[7]||=e=>J.value=e,class:`input sel`},[l(`option`,Ot,t(n.$t(`studio.visPrivate`)),1),l(`option`,kt,t(n.$t(`studio.visLine`)),1)],512),[[_,J.value]]),l(`button`,{class:`pill-btn primary`,"data-test":`studio-save`,disabled:!q.value.trim()||!U.value.length,onClick:Qt},t(Y.value?n.$t(`studio.update`):n.$t(`studio.save`)),9,At)]),X.value?(a(),u(`p`,jt,t(X.value),1)):p(``,!0)]),T.value?(a(),u(`div`,{key:0,class:`modalMask`,onClick:r[9]||=v(e=>T.value=!1,[`self`])},[l(`div`,Mt,[l(`h3`,Nt,t(n.$t(`studio.promptTitle`)),1),l(`textarea`,{readonly:``,value:D.value,class:`promptBox`,"data-test":`studio-prompt-text`},null,8,Pt),l(`div`,Ft,[l(`button`,{class:`pill-btn`,"data-test":`studio-prompt-copy`,onClick:Rt},t(n.$t(`studio.copy`)),1),l(`button`,{class:`pill-btn`,onClick:r[8]||=e=>T.value=!1},t(n.$t(`data.mirror.cancel`)),1)]),E.value?(a(),u(`p`,It,t(E.value),1)):p(``,!0)])])):p(``,!0)])])}}}),[[`__scopeId`,`data-v-455d5f47`]]);export{C as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r,tt as i}from"./C6lssmvl.js";import{n as a}from"./D1MkndMZ.js";import{a as o,n as s,t as c}from"./DhjgWrB62.js";import{t as l}from"./BVGzwAxr2.js";import{t as u}from"./R1g64DNi2.js";import{r as d}from"./Du9v6qGB2.js";var f=e({useDaqControllerForm:()=>h,useDaqDriverCatalog:()=>m,useDaqFilters:()=>p});function p(){let e=c(),n=l(),s=u(),{t:f}=a(),p=t({lineId:``,deviceId:``,template:``,driver:``,lineRun:``,state:``,time:``,search:``}),m=r(()=>!!(p.lineId||p.deviceId||p.template||p.driver||p.lineRun||p.state||p.time||p.search.trim()));function h(){p.lineId=``,p.deviceId=``,p.template=``,p.driver=``,p.lineRun=``,p.state=``,p.time=``,p.search=``}let g=r(()=>{let t=new Map;for(let n of e.nodes)t.set(n.templateRef,(t.get(n.templateRef)??0)+1);return[...t.entries()].map(([e,t])=>({ref:e,count:t,label:k(e)}))}),_=r(()=>{let t=new Map;for(let n of e.nodes)t.set(n.driver,(t.get(n.driver)??0)+1);return[...t.entries()].map(([t,n])=>({kind:t,count:n,label:e.meta.drivers.find(e=>e.kind===t)?.label??t}))});function v(e){if(!e.lastAt)return`never`;let t=Date.now()-Date.parse(e.lastAt);return t<=3e5?`live`:t<=36e5?`hour`:t<=864e5?`day`:`old`}function y(e){return!p.time||v(e)===p.time}function b(e){let t=p.search.trim().toLowerCase();return!t||e.name.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)}function x(t){if(!t.lastAt)return!0;let n=t.intervalMs??e.controller.defaultIntervalMs;return Date.now()-Date.parse(t.lastAt)>Math.max(n*4,12e3)}function S(t){return t.enabled?t.lineId?n.lineStateOf(t.lineId).active?!e.controller.running||x(t)?`offline`:t.state:`idle`:`unassigned`:`disabled`}function C(e){if(!p.lineRun)return!0;let t=!!e.lineId&&n.lineStateOf(e.lineId).active;return p.lineRun===`on`?t:!t}let w=new Map;i(()=>s.twins,e=>{for(let t of e)w.set(t.id,t.name)},{immediate:!0,deep:!0});let T=r(()=>{let t=new Map;for(let n of e.nodes)for(let e of n.deviceIds??(n.deviceBindingId?[n.deviceBindingId]:[]))t.set(e,(t.get(e)??0)+1);return s.twins.filter(e=>t.has(e.id)).map(e=>({id:e.id,name:w.get(e.id)??e.name,count:t.get(e.id)}))}),E=r(()=>e.nodes.filter(e=>{if(p.lineId&&(p.lineId===`none`?e.lineId:(e.lineId??``)!==p.lineId))return!1;let t=e.deviceIds??(e.deviceBindingId?[e.deviceBindingId]:[]);return!(p.deviceId&&(p.deviceId===`none`?t.length>0:!t.includes(p.deviceId))||p.template&&e.templateRef!==p.template||p.driver&&e.driver!==p.driver||!C(e)||p.state&&S(e)!==p.state||!y(e)||!b(e))})),D=r(()=>n.lines.find(e=>e.id===p.lineId)??null),O=r(()=>D.value?n.lineStateOf(D.value.id):null);function k(t){let n=e.templates.find(e=>e.key===o(t));return n?`${d(f,n)} · ${n.ch}`:t||`-`}return{filters:p,hasFilters:m,clearFilters:h,templateOptions:g,driverOptions:_,boundDevices:T,filteredNodes:E,filteredLine:D,filteredLineState:O,timeBucketOf:v,rowStateOf:S,lineRunMatch:C,staleOf:x,daqTemplateRefCh:k}}function m(){let e=c();return{driverCatalog:r(()=>e.meta.drivers.length?e.meta.drivers:s.map(e=>({...e}))),driverReady:t=>e.meta.drivers.find(e=>e.kind===t)?.status!==`planned`&&e.meta.driverAvailable?.[t]!==!1}}function h(){let e=c(),t=n(!1);async function r(){t.value=!0;try{await e.reconnectInfra()}catch{}finally{t.value=!1}}return{reconnecting:t,doReconnect:r}}export{f as i,m as n,p as r,h as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{t as r}from"./R5Pz7BqB.js";import{t as i}from"./BVGzwAxr2.js";var a=e({useDcwQuickActions:()=>o});function o(e){let a=i(),o=n(``),s=n(``),c=t({});async function l(t){o.value=t.line.id,s.value=``;try{let n=c[t.line.id]??``;if(!n)throw Error(e(`dcw.k188cswn039`));await a.startLine(t.line.id,n)}catch(e){s.value=r(e)}finally{o.value=``}}async function u(e){o.value=e.line.id,s.value=``;try{await a.stopLine(e.line.id)}catch(e){s.value=r(e)}finally{o.value=``}}return{quickBusy:o,quickErr:s,quickPick:c,quickStart:l,quickStop:u}}export{a as n,o as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{t as n}from"./BVGzwAxr2.js";var r=e({useDcwLedger:()=>i});function i(){let e=n(),r=t(``),i=t(null),a=t(!1);async function o(){if(r.value){a.value=!0;try{i.value=await e.fetchLedger(r.value)}finally{a.value=!1}}}async function s(){r.value&&(await e.rollbackNode(r.value),await o())}return{ledgerNodeId:r,ledger:i,ledgerLoading:a,loadLedger:o,rollbackLedgerNode:s}}export{r as n,i as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./C6lssmvl.js";import{t as r}from"./CPvFGbr8.js";import{t as i}from"./DKOvbitt.js";import{t as a}from"./DhjgWrB62.js";import{t as o}from"./BVGzwAxr2.js";import{t as s}from"./8SZLbrI42.js";var c=e({useDashboardData:()=>l});function l(){let e=i(),c=r(),l=a(),u=o(),d=n(()=>c.isDark?{accent:`#3fe4ab`,cyan:`#41c8f4`,amber:`#f6c453`,violet:`#a795ff`,danger:`#ff8080`}:{accent:`#4a6b57`,cyan:`#6f8296`,amber:`#c9a26a`,violet:`#b3714f`,danger:`#c25a4e`}),f=n(()=>c.isDark),p=s(),m=t([]),h=async()=>{try{let e=await p.listHarnesses();m.value=e?.data?.harnesses??[]}catch{}},g=n(()=>m.value.filter(e=>e.available!==!1).length),_=n(()=>u.lines.filter(e=>u.lineStateOf(e.id).active)),v=n(()=>l.nodes.filter(e=>e.enabled&&e.state!==`offline`).length),y=n(()=>l.nodes.length),b=n(()=>l.nodes.filter(e=>e.state===`alarm`).length),x=n(()=>{let e=u.controller.writesTotal;return e===0?100:Math.round((e-u.controller.writesFailed)/e*1e3)/10}),S=t([]),C=n(()=>l.nodes.filter(e=>e.value!=null&&e.max>e.min).sort((e,t)=>!e.lineId-+!t.lineId||e.id.localeCompare(t.id)).slice(0,4));function w(){let e={};for(let t of C.value)e[t.id]=t.value==null?null:Math.round((t.value-t.min)/(t.max-t.min)*100);S.value.push({t:Date.now(),m:e}),S.value.length>36&&S.value.shift()}let T=n(()=>C.value.length>0&&S.value.some(e=>C.value.some(t=>typeof e.m[t.id]==`number`))),E=n(()=>u.lines.map(e=>{let t=u.lineStateOf(e.id);return{id:e.id,name:e.name,color:e.color,active:t.active,product:t.productName,recipe:t.recipeName,runId:t.runId,tagged:t.taggedSamples,dcwCount:u.nodes.filter(t=>t.lineId===e.id).length,daqCount:l.nodes.filter(t=>t.lineId===e.id).length}})),D=n(()=>[...E.value].sort((e,t)=>Number(t.active)-Number(e.active)||t.tagged-e.tagged||e.name.localeCompare(t.name)));return{site:e,daq:l,dcw:u,pal:d,isDark:f,harnesses:m,harnessOk:g,loadHarnesses:h,linesActive:_,daqOnline:v,daqTotal:y,alarmCount:b,writeRate:x,trendNodes:C,trendBuf:S,trendHasData:T,pushTrend:w,lineCards:E,fleetShown:n(()=>D.value.slice(0,8)),fleetOverflow:n(()=>Math.max(E.value.length-8,0))}}export{c as n,l as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{n as t}from"./D1MkndMZ.js";import{i as n}from"./DXgw1dVL.js";import{t as r}from"./R5Pz7BqB.js";import{t as i}from"./8SZLbrI42.js";var a=e({useAgentTemplateActions:()=>o});function o(e){let a=i(),{t:o}=t();return{remove:async t=>{await a.deleteTemplate(t.id),n.success(o(`agents.k3n5sd7022`)),e.reload()},toggleEnabled:async t=>{await a.updateTemplate(t.id,{enabled:t.enabled===1?0:1}),e.reload()},toggleVisibility:async(t,i)=>{try{await a.updateTemplate(t.id,{visibility:i?`public`:`private`}),n.success(o(i?`agents.kxa6cxx023`:`agents.k1xxabaf024`)),e.reload()}catch(e){n.error(r(e))}}}}export{a as n,o as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./C6lssmvl.js";import{n as r}from"./D1MkndMZ.js";import{t as i}from"./Cv-Mv7_h2.js";import{t as a}from"./8SZLbrI42.js";var o=e({useTeamsCatalog:()=>s});function s(){let e=a(),o=i(),{t:s}=r(),c=t([]),l=t([]),u=t([]),d=t(!1),f=async()=>{d.value=!0;try{let[t,n,r]=await Promise.all([e.listTeams(),e.listTemplates(),e.listChannels()]);c.value=t?.data??[],l.value=n?.data??[],u.value=r?.data??[]}finally{d.value=!1}};f();let p=t({});(async()=>{try{let t=(await e.listHarnesses())?.data?.harnesses;if(Array.isArray(t)){let e={};for(let n of t)e[n.id]=n.available!==!1;p.value=e}}catch{}})();let m=e=>p.value[e.harness]===!1,h=n(()=>l.value.map(e=>{let t=m(e);return{value:e.id,label:t?`${e.name}(${e.harness} · ${s(`agents.notInstalled`)})`:`${e.name}(${e.harness})`,disabled:t}})),g=t(`all`);return{teams:c,channels:u,loading:d,load:f,memberOptions:h,filter:g,shown:n(()=>{let e=o.user?.id;switch(g.value){case`mine`:return c.value.filter(t=>t.ownerUserId===e);case`public`:return c.value.filter(e=>e.visibility===`public`);case`builtin`:return c.value.filter(e=>e.isBuiltin);default:return c.value}}),canWrite:e=>!e.isBuiltin&&(e.ownerUserId===o.user?.id||o.isAdmin),visTag:e=>e.isBuiltin?{text:s(`teams.k3x23c018`),color:`default`,icon:`i-tabler-lock`}:e.visibility===`public`?{text:s(`teams.k3wv1t019`),color:`green`}:{text:s(`teams.k447jj020`),color:`default`},isAdmin:n(()=>o.isAdmin)}}export{o as n,s as t};
@@ -1 +0,0 @@
1
- import{N as e,dt as t,mt as n,u as r,v as i}from"./CavpkQb0.js";import{$ as a,S as o,V as s,W as c,b as l,f as u,h as d,i as f,k as p,m,p as h,rt as g,y as _}from"./C6lssmvl.js";import{d as v,f as y}from"./ri9UF8rk.js";import{d as b}from"./CDYLasP8.js";import{n as x}from"./Bko5adbu.js";import{n as S}from"./D1MkndMZ.js";import{t as C}from"./Bmvt9ydE.js";import{i as w,s as T,t as E}from"./DXgw1dVL.js";import{n as D,t as O}from"./hZG5MLjK.js";import{t as k}from"./gh-WMxV_2.js";import{t as A}from"./BBB_j2LU2.js";import{t as j}from"./Cv-Mv7_h2.js";import{t as M}from"./BDNMzG2s.js";import{t as N}from"./R5Pz7BqB.js";import{t as P}from"./CMJi6yYS.js";import{t as F}from"./CNs_Ozdc.js";import{t as I}from"./cKj4vSo5.js";import{t as L}from"./CZsFf7ck.js";var R={class:`mc-sub`},z={class:`mc-hint`},B=Object.assign(M(o({__name:`ChangePasswordModal`,setup(t){let{t:r}=S(),a=j(),o=i(``),c=i(``),d=i(``),f=i(!1),p=async()=>{if(!o.value||!c.value){w.warning(r(`wsHome.mcFillBoth`));return}if(c.value!==d.value){w.warning(r(`wsHome.mcMismatch`));return}if(c.value.length<6||!/[A-Za-z]/.test(c.value)||!/[0-9]/.test(c.value)){w.warning(r(`wsHome.mcPolicy`));return}if(c.value===o.value){w.warning(r(`wsHome.mcSameAsOld`));return}f.value=!0;try{await a.changePassword(o.value,c.value),o.value=``,c.value=``,d.value=``,w.success(r(`wsHome.mcDone`))}catch(e){w.error(N(e))}finally{f.value=!1}};return(t,i)=>{let m=D,y=k,b=T,x=E;return s(),h(x,{open:e(a).user?.mustChangePassword===!0,closable:!1,"mask-closable":!1,keyboard:!1,title:e(r)(`wsHome.mcTitle`),width:440},{footer:g(()=>[l(b,{type:`primary`,block:``,loading:f.value,onClick:p},{default:g(()=>[_(n(e(r)(`wsHome.mcCta`)),1)]),_:1},8,[`loading`])]),default:g(()=>[u(`p`,R,n(e(r)(`wsHome.mcSub`,{p0:e(a).user?.name??``})),1),l(y,{direction:`vertical`,style:{width:`100%`}},{default:g(()=>[l(m,{value:o.value,"onUpdate:value":i[0]||=e=>o.value=e,placeholder:e(r)(`wsHome.mcCurrent`),onKeydown:v(p,[`enter`])},null,8,[`value`,`placeholder`]),l(m,{value:c.value,"onUpdate:value":i[1]||=e=>c.value=e,placeholder:e(r)(`wsHome.mcNew`),onKeydown:v(p,[`enter`])},null,8,[`value`,`placeholder`]),l(m,{value:d.value,"onUpdate:value":i[2]||=e=>d.value=e,placeholder:e(r)(`wsHome.mcConfirm`),onKeydown:v(p,[`enter`])},null,8,[`value`,`placeholder`]),u(`p`,z,n(e(r)(`wsHome.mcPolicyHint`)),1)]),_:1})]),_:1},8,[`open`,`title`])}}}),[[`__scopeId`,`data-v-262d0014`]]),{__name:`WorkshopWorkbenchChangePasswordModal`}),V=Object.assign(o({__name:`CreateWorkspaceModal`,props:p({loading:{type:Boolean}},{open:{type:Boolean,required:!0},openModifiers:{},name:{required:!0},nameModifiers:{}}),emits:p([`ok`],[`update:open`,`update:name`]),setup(e,{emit:t}){let n=t,r=a(e,`open`),i=a(e,`name`);return(t,a)=>{let o=O,c=E;return s(),h(c,{open:r.value,"onUpdate:open":a[2]||=e=>r.value=e,title:t.$t(`wsHome.newWs`),"confirm-loading":e.loading,"ok-text":t.$t(`wsHome.createEnterOk`),"cancel-text":t.$t(`common.cancel`),onOk:a[3]||=e=>n(`ok`)},{default:g(()=>[l(o,{value:i.value,"onUpdate:value":a[0]||=e=>i.value=e,placeholder:t.$t(`wsHome.ksmpk8l007`),onKeydown:a[1]||=v(e=>n(`ok`),[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`open`,`title`,`confirm-loading`,`ok-text`,`cancel-text`])}}}),{__name:`WorkshopWorkbenchCreateWorkspaceModal`}),H={class:`aw-page-head`},U={class:`sub`},W={class:`head-acts`},G={class:`lib-links`},K=Object.assign(M(o({__name:`WorkbenchHead`,props:{userName:{}},emits:[`logout`,`newWorkspace`],setup(t,{emit:r}){let i=r;return(r,a)=>{let o=C;return s(),d(`div`,H,[u(`div`,null,[a[7]||=u(`p`,{class:`aw-kicker`},` workshop / overview `,-1),u(`h1`,null,`Workshop `+n(r.$t(`wsHome.k3n4m5c025`)),1),u(`p`,U,[l(o,null,{default:g(()=>[_(n(t.userName),1)]),_:1}),_(` `+n(r.$t(`wsHome.ke16e53026`)),1)])]),u(`div`,W,[u(`div`,G,[u(`button`,{type:`button`,class:`lib-link`,onClick:a[0]||=t=>(`navigateTo`in r?r.navigateTo:e(b))(`/workshop/agents`)},n(r.$t(`wsHome.k3pa5h4013`)),1),u(`button`,{type:`button`,class:`lib-link`,onClick:a[1]||=t=>(`navigateTo`in r?r.navigateTo:e(b))(`/workshop/teams`)},n(r.$t(`wsHome.k3svl8y014`)),1),u(`button`,{type:`button`,class:`lib-link`,onClick:a[2]||=t=>(`navigateTo`in r?r.navigateTo:e(b))(`/workshop/channel-templates`)},` Channel `+n(r.$t(`wsHome.k41ds5027`)),1),u(`button`,{type:`button`,class:`lib-link`,onClick:a[3]||=t=>(`navigateTo`in r?r.navigateTo:e(b))(`/workshop/schedules`)},n(r.$t(`titles.schedules`)),1),u(`button`,{type:`button`,class:`lib-link`,onClick:a[4]||=t=>(`navigateTo`in r?r.navigateTo:e(b))(`/tokens`)},` API Token `),u(`button`,{type:`button`,class:`lib-link`,onClick:a[5]||=e=>i(`logout`)},n(r.$t(`wsHome.k484e7015`)),1)]),u(`button`,{class:`aw-pill im`,onClick:a[6]||=e=>i(`newWorkspace`)},[a[8]||=u(`span`,{class:`i-tabler-plus im-pop`},null,-1),_(` `+n(r.$t(`wsHome.newWs`)),1)])])])}}}),[[`__scopeId`,`data-v-55701e72`]]),{__name:`WorkshopWorkbenchHead`}),q={class:`card`},J={class:`card-head`},Y={class:`name`},X={class:`card-body`},Z={class:`ch-name`},Q={class:`ch-meta`},$={key:0,class:`empty`},ee={class:`card-foot`},te=[`title`],ne=Object.assign(M(o({__name:`WorkspaceCard`,props:{workspace:{},channels:{}},emits:[`open`,`remove`],setup(e,{emit:r}){let i=r;return(r,a)=>(s(),d(`div`,q,[u(`div`,J,[a[3]||=u(`span`,{class:`card-mark`},[u(`span`,{class:`i-tabler-box`})],-1),u(`span`,Y,n(e.workspace.name),1)]),u(`div`,X,[(s(!0),d(f,null,c(e.channels,o=>(s(),d(`div`,{key:o.id,class:`ch-row`,onClick:a[0]||=t=>i(`open`,e.workspace.id)},[u(`span`,{class:t([`dot`,{live:o.activeTasks>0}])},null,2),u(`span`,Z,n(o.name),1),u(`span`,Q,[o.synced?(s(),d(f,{key:0},[_(n(o.agents)+` `+n(r.$t(`wsHome.k1ggoa45028`))+` `+n(o.busy)+` / `+n(r.$t(`wsHome.k3wcox029`))+` `+n(o.activeTasks),1)],64)):(s(),d(f,{key:1},[_(n(r.$t(`wsHome.k1bst7s9016`)),1)],64))])]))),128)),e.workspace.channelIds.length===0?(s(),d(`div`,$,n(r.$t(`wsHome.k1ylgrbc017`)),1)):m(``,!0)]),u(`div`,ee,[u(`button`,{class:`aw-pill outline im`,onClick:a[1]||=t=>i(`open`,e.workspace.id)},[a[4]||=u(`span`,{class:`i-tabler-arrow-right im-pop`},null,-1),_(` `+n(r.$t(`wsHome.kr1uwwi018`)),1)]),u(`button`,{class:`aw-ghost im`,title:r.$t(`wsHome.delWs`),onClick:a[2]||=y(t=>i(`remove`,e.workspace.id),[`stop`])},[...a[5]||=[u(`span`,{class:`i-tabler-trash im-shake`},null,-1)]],8,te)])]))}}),[[`__scopeId`,`data-v-2a67a8f5`]]),{__name:`WorkshopWorkbenchWorkspaceCard`}),re={class:`aw-empty-title`},ie={class:`aw-empty-sub`},ae={class:`pill-btn ws-empty-cta`},oe=Object.assign(M(o({__name:`WorkspaceEmpty`,emits:[`create`],setup(e,{emit:t}){let r=t;return(e,t)=>(s(),d(`button`,{class:`ws-empty`,onClick:t[0]||=e=>r(`create`)},[t[2]||=u(`span`,{class:`i-tabler-layout-2 ws-empty-ico`},null,-1),u(`span`,re,n(e.$t(`wsHome.emptyTitle`)),1),u(`span`,ie,n(e.$t(`wsHome.emptySub`)),1),u(`span`,ae,[t[1]||=u(`span`,{class:`i-tabler-plus`},null,-1),_(` `+n(e.$t(`wsHome.emptyCta`)),1)])]))}}),[[`__scopeId`,`data-v-9bca6917`]]),{__name:`WorkshopWorkbenchWorkspaceEmpty`}),se={class:`page`},ce={class:`grid`},le={class:`ws-add-title`},ue={class:`ws-add-sub`},de=M(o({__name:`index`,setup(t){let{t:i}=S();F({layout:`default`});let{userStore:a,authTab:o,authName:p,authEmail:_,authPassword:v,authTokenInput:y,authLoading:C,needsSetup:w,allowRegister:T,doRegister:E,doLogin:D,doLoginWithToken:O,doLogout:k}=I(),{wsStore:j,ready:M,createOpen:N,createName:R,createLoading:z,create:H,remove:U,channelSummary:W}=L(),G=e=>{b(`/workshop/w/${e}`)};return x({title:()=>i(`titles.workshop`)}),(t,b)=>{let x=A;return s(),d(`div`,se,[l(B),e(a).isLoggedIn?(s(),d(f,{key:1},[l(K,{"user-name":e(a).user?.name,onLogout:e(k),onNewWorkspace:b[5]||=e=>N.value=!0},null,8,[`user-name`,`onLogout`]),l(x,{spinning:!e(M)},{default:g(()=>[u(`div`,ce,[(s(!0),d(f,null,c(e(j).workspaces,t=>(s(),h(ne,{key:t.id,workspace:t,channels:e(W)(t.channelIds),onOpen:G,onRemove:e(U)},null,8,[`workspace`,`channels`,`onRemove`]))),128)),e(j).workspaces.length>0&&e(M)?(s(),d(`button`,{key:0,type:`button`,class:`ws-add`,onClick:b[6]||=e=>N.value=!0},[b[10]||=u(`span`,{class:`ws-add-plus i-tabler-plus`},null,-1),u(`span`,le,n(e(i)(`wsHome.newWs`)),1),u(`span`,ue,n(e(i)(`wsHome.newWsHint`)),1)])):m(``,!0),e(j).workspaces.length===0&&e(M)?(s(),h(oe,{key:1,onCreate:b[7]||=e=>N.value=!0})):m(``,!0)])]),_:1},8,[`spinning`]),l(V,{open:e(N),"onUpdate:open":b[8]||=e=>r(N)?N.value=e:null,name:e(R),"onUpdate:name":b[9]||=e=>r(R)?R.value=e:null,loading:e(z),onOk:e(H)},null,8,[`open`,`name`,`loading`,`onOk`])],64)):(s(),h(P,{key:0,"active-tab":e(o),"onUpdate:activeTab":b[0]||=e=>r(o)?o.value=e:null,name:e(p),"onUpdate:name":b[1]||=e=>r(p)?p.value=e:null,email:e(_),"onUpdate:email":b[2]||=e=>r(_)?_.value=e:null,password:e(v),"onUpdate:password":b[3]||=e=>r(v)?v.value=e:null,"token-input":e(y),"onUpdate:tokenInput":b[4]||=e=>r(y)?y.value=e:null,loading:e(C),"needs-setup":e(w),"allow-register":e(T),onRegister:e(E),onLogin:e(D),onLoginWithToken:e(O)},null,8,[`active-tab`,`name`,`email`,`password`,`token-input`,`loading`,`needs-setup`,`allow-register`,`onRegister`,`onLogin`,`onLoginWithToken`]))])}}}),[[`__scopeId`,`data-v-480815f9`]]);export{de as default};
@@ -1 +0,0 @@
1
- import{N as e,dt as t,mt as n,u as r,v as i}from"./CavpkQb0.js";import{$ as a,S as o,V as s,W as c,b as l,f as u,h as d,i as f,it as p,k as m,m as h,p as ee,rt as g,y as _}from"./C6lssmvl.js";import{c as v,f as y,l as b,s as x}from"./ri9UF8rk.js";import{t as te}from"./DPPC9Teq.js";import{n as S}from"./D1MkndMZ.js";import{t as C}from"./BDNMzG2s.js";import{t as w}from"./DOT-XQyi.js";import{t as T}from"./CNs_Ozdc.js";import{r as E}from"./2Kwo_j9G2.js";import{t as D}from"./B4JlRHBB2.js";import{t as O}from"./D1C6qtS12.js";import{t as k}from"./DWe6BMlp2.js";import{t as A}from"./DlS-SkQ42.js";var j={class:`col-live`},M={class:`aw-tile value-card`},N={class:`aw-kicker`},P={class:`big-val mono`},F={class:`facts mono`},I=Object.assign(C(o({__name:`DaqDetailLiveCard`,props:m({node:{},tpl:{},boundDeviceName:{},defaultIntervalMs:{},defaultPublishMs:{},driverPlanned:{type:Function}},{canvasEl:{required:!0},canvasElModifiers:{}}),emits:[`update:canvasEl`],setup(e){let t=e,{t:r}=S(),i=a(e,`canvasEl`);function o(e){return e==null?r(`daqDetail.k9vnp9h053`,{p0:t.defaultPublishMs}):e===0?r(`daqDetail.k1m1zwux030`):`${e}ms`}return(t,r)=>(s(),d(`section`,j,[u(`div`,M,[u(`p`,N,n(t.$t(`daqDetail.k1fx2vik032`))+` `+n(e.tpl?.ch??`-`),1),u(`div`,P,[_(n(e.node.value==null?`--`:e.node.value.toFixed(e.node.decimals)),1),u(`small`,null,n(e.node.unit),1)]),u(`canvas`,{ref_key:`canvasEl`,ref:i,class:`live-canvas`},null,512),u(`dl`,F,[u(`div`,null,[u(`dt`,null,n(t.$t(`daqDetail.k4a0la003`)),1),u(`dd`,null,n(e.node.driver)+n(e.driverPlanned(e.node.driver)?t.$t(`daqDetail.kz8zr9v035`):``),1)]),u(`div`,null,[u(`dt`,null,n(t.$t(`daqDetail.k3xg3w004`)),1),u(`dd`,null,n(e.node.intervalMs??t.$t(`daqDetail.k9vnp9h053`,{p0:e.defaultIntervalMs})),1)]),u(`div`,null,[u(`dt`,null,n(t.$t(`daqDetail.k3w6td005`)),1),u(`dd`,null,n(o(e.node.publishIntervalMs)),1)]),u(`div`,null,[u(`dt`,null,n(t.$t(`daqDetail.k3x5tpx006`)),1),u(`dd`,null,n(e.node.warnLow??`-∞`)+` ~ `+n(e.node.warnHigh??`+∞`),1)]),u(`div`,null,[u(`dt`,null,n(t.$t(`daqDetail.k1hjj0jf007`)),1),u(`dd`,null,n(e.node.min)+` ~ `+n(e.node.max),1)]),u(`div`,null,[u(`dt`,null,n(t.$t(`daqDetail.k1i8rtqt008`)),1),u(`dd`,null,n(e.boundDeviceName||t.$t(`daqDetail.k3own4q036`)),1)])])])]))}}),[[`__scopeId`,`data-v-ded59ba4`]]),{__name:`DaqDetailLiveCard`}),L={class:`col-form aw-tile pad`},R={class:`sec`},z={class:`field`},B={class:`field`},V={value:``},H=[`value`],U={class:`field`},W=[`value`,`disabled`],G={class:`field row`},K=[`disabled`],q={class:`field row`},J=[`title`],Y=[`disabled`,`title`],X=[`disabled`,`title`],Z={class:`field row`},Q=[`disabled`],ne={class:`field`},re={class:`field`},ie={class:`field-row`},ae={class:`field`},oe={class:`field`},se={class:`field`},ce={class:`field`},le=[`disabled`],ue={class:`sec mt`},de={class:`driver-grid`},fe={key:0},pe=[`onUpdate:modelValue`],me=[`value`],he=[`onUpdate:modelValue`,`type`,`placeholder`],ge={class:`test-row`},_e=[`disabled`],ve={class:`sec mt`},ye={class:`bind-row`},be={value:``},xe=[`value`],Se=Object.assign(C(o({__name:`DaqDetailParamForm`,props:m({lines:{},driverCatalog:{},driverFields:{},saving:{type:Boolean},testing:{type:Boolean},testResult:{},boundDeviceName:{},availableDevices:{}},{form:{required:!0},formModifiers:{},driverCfg:{required:!0},driverCfgModifiers:{},bindDeviceId:{required:!0},bindDeviceIdModifiers:{}}),emits:m([`save`,`test`,`bind-toggle`],[`update:form`,`update:driverCfg`,`update:bindDeviceId`]),setup(e,{emit:r}){let i=r,o=a(e,`form`),l=a(e,`driverCfg`),m=a(e,`bindDeviceId`);return(r,a)=>(s(),d(`section`,L,[u(`h3`,R,n(r.$t(`daqDetail.kd9d69j009`)),1),u(`form`,{class:`form-grid`,onSubmit:a[17]||=y(e=>i(`save`),[`prevent`])},[u(`label`,z,[u(`span`,null,n(r.$t(`daqDetail.k1iw7tbf010`)),1),u(`button`,{type:`button`,class:t([`toggle`,{on:o.value.enabled}]),onClick:a[0]||=e=>o.value.enabled=!o.value.enabled},n(o.value.enabled?r.$t(`daqDetail.k3w3j8f037`):r.$t(`daqDetail.k3n5aaj045`)),3)]),u(`label`,B,[u(`span`,null,n(r.$t(`daqDetail.k12k23od011`)),1),p(u(`select`,{"onUpdate:modelValue":a[1]||=e=>o.value.lineId=e,class:`input`},[u(`option`,V,n(r.$t(`daqDetail.k3ootr6012`)),1),(s(!0),d(f,null,c(e.lines,e=>(s(),d(`option`,{key:e.id,value:e.id},n(e.name),9,H))),128))],512),[[v,o.value.lineId]])]),u(`label`,U,[u(`span`,null,n(r.$t(`daqDetail.k1l6smxo013`)),1),p(u(`select`,{"onUpdate:modelValue":a[2]||=e=>o.value.driver=e,class:`input`},[(s(!0),d(f,null,c(e.driverCatalog,e=>(s(),d(`option`,{key:e.kind,value:e.kind,disabled:e.status===`planned`},n(e.label)+n(e.plugin?` ⌁`:``)+n(e.status===`planned`?r.$t(`daqDetail.kz8zr9v035`):``),9,W))),128))],512),[[v,o.value.driver]])]),u(`label`,G,[u(`button`,{type:`button`,class:t([`toggle slim`,{on:o.value.followGlobal}]),onClick:a[3]||=e=>o.value.followGlobal=!o.value.followGlobal},n(o.value.followGlobal?r.$t(`daqDetail.k1k2ueyq038`):r.$t(`daqDetail.k1cgi8fy046`)),3),p(u(`input`,{"onUpdate:modelValue":a[4]||=e=>o.value.intervalMs=e,type:`number`,min:`1000`,max:`60000`,step:`500`,class:`input`,disabled:o.value.followGlobal},null,8,K),[[b,o.value.intervalMs,void 0,{number:!0}]]),a[21]||=u(`small`,null,`ms`,-1)]),u(`label`,q,[u(`button`,{type:`button`,class:t([`toggle slim`,{on:o.value.calKind===`linear`}]),title:r.$t(`daqDetail.calDecoderTip`),onClick:a[5]||=e=>o.value.calKind=o.value.calKind===`linear`?`none`:`linear`},n(o.value.calKind===`linear`?r.$t(`daqDetail.k1eru4r1039`):r.$t(`daqDetail.k3oktae047`)),11,J),p(u(`input`,{"onUpdate:modelValue":a[6]||=e=>o.value.calScale=e,type:`number`,step:`0.1`,class:`input`,disabled:o.value.calKind!==`linear`,title:r.$t(`daqDetail.calScaleTip`)},null,8,Y),[[b,o.value.calScale,void 0,{number:!0}]]),p(u(`input`,{"onUpdate:modelValue":a[7]||=e=>o.value.calOffset=e,type:`number`,step:`0.1`,class:`input`,disabled:o.value.calKind!==`linear`,title:r.$t(`daqDetail.calOffsetTip`)},null,8,X),[[b,o.value.calOffset,void 0,{number:!0}]]),a[22]||=u(`small`,null,`decoder`,-1)]),u(`label`,Z,[u(`button`,{type:`button`,class:t([`toggle slim`,{on:o.value.publishFollow}]),onClick:a[8]||=e=>o.value.publishFollow=!o.value.publishFollow},n(o.value.publishFollow?r.$t(`daqDetail.k1k2t5o7040`):r.$t(`daqDetail.k1cggz5f048`)),3),u(`span`,{class:t([`toggle slim`,{on:o.value.publishEveryFrame}]),style:{cursor:`pointer`},onClick:a[9]||=e=>o.value.publishEveryFrame=!o.value.publishEveryFrame},n(o.value.publishEveryFrame?r.$t(`daqDetail.k41mvv041`):r.$t(`daqDetail.k3n42dj049`)),3),p(u(`input`,{"onUpdate:modelValue":a[10]||=e=>o.value.publishMs=e,type:`number`,min:`0`,max:`60000`,step:`100`,class:`input`,disabled:o.value.publishFollow||o.value.publishEveryFrame},null,8,Q),[[b,o.value.publishMs,void 0,{number:!0}]]),a[23]||=u(`small`,null,`ms`,-1)]),u(`label`,ne,[u(`span`,null,n(r.$t(`daqDetail.k3x4ef014`)),1),p(u(`input`,{"onUpdate:modelValue":a[11]||=e=>o.value.unit=e,class:`input`},null,512),[[b,o.value.unit]])]),u(`label`,re,[u(`span`,null,n(r.$t(`daqDetail.k3mxmcx015`)),1),p(u(`input`,{"onUpdate:modelValue":a[12]||=e=>o.value.decimals=e,type:`number`,min:`0`,max:`6`,class:`input`},null,512),[[b,o.value.decimals,void 0,{number:!0}]])]),u(`div`,ie,[u(`label`,ae,[u(`span`,null,n(r.$t(`daqDetail.k1l9jv5m016`)),1),p(u(`input`,{"onUpdate:modelValue":a[13]||=e=>o.value.min=e,type:`number`,step:`any`,class:`input`},null,512),[[b,o.value.min,void 0,{number:!0}]])]),u(`label`,oe,[u(`span`,null,n(r.$t(`daqDetail.k1md63hm017`)),1),p(u(`input`,{"onUpdate:modelValue":a[14]||=e=>o.value.warnLow=e,type:`number`,step:`any`,class:`input`},null,512),[[b,o.value.warnLow,void 0,{number:!0}]])]),u(`label`,se,[u(`span`,null,n(r.$t(`daqDetail.k1md63gp018`)),1),p(u(`input`,{"onUpdate:modelValue":a[15]||=e=>o.value.warnHigh=e,type:`number`,step:`any`,class:`input`},null,512),[[b,o.value.warnHigh,void 0,{number:!0}]])]),u(`label`,ce,[u(`span`,null,n(r.$t(`daqDetail.k1l9jv4p019`)),1),p(u(`input`,{"onUpdate:modelValue":a[16]||=e=>o.value.max=e,type:`number`,step:`any`,class:`input`},null,512),[[b,o.value.max,void 0,{number:!0}]])])]),u(`button`,{class:`aw-pill`,type:`submit`,disabled:e.saving},n(e.saving?r.$t(`daqDetail.k1as0g50042`):r.$t(`daqDetail.ksn9cgo050`)),9,le)],32),e.driverFields.length?(s(),d(f,{key:0},[u(`h3`,ue,n(r.$t(`daqDetail.k1p9gioa033`))+` `+n(e.driverCatalog.find(e=>e.kind===o.value.driver)?.label),1),u(`div`,de,[(s(!0),d(f,null,c(e.driverFields,e=>(s(),d(`label`,{key:e.key,class:`field`},[u(`span`,null,[_(n(e.label),1),e.required?(s(),d(`em`,fe,`*`)):h(``,!0)]),e.type===`select`?p((s(),d(`select`,{key:0,"onUpdate:modelValue":t=>l.value[e.key]=t,class:`input`},[(s(!0),d(f,null,c(e.options,e=>(s(),d(`option`,{key:e.value,value:e.value},n(e.label),9,me))),128))],8,pe)),[[v,l.value[e.key]]]):p((s(),d(`input`,{key:1,"onUpdate:modelValue":t=>l.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`input`},null,8,he)),[[x,l.value[e.key]]])]))),128))]),u(`div`,ge,[u(`button`,{class:`pill-btn`,disabled:e.testing,onClick:a[18]||=e=>i(`test`)},n(e.testing?r.$t(`daqDetail.k1fsh720043`):r.$t(`daqDetail.k1fstglk051`)),9,_e),e.testResult?(s(),d(`span`,{key:0,class:t([`test-out mono`,e.testResult.ok?`ok`:`bad`])},n(e.testResult.ok?`✓`:`✗`)+` `+n(e.testResult.message),3)):h(``,!0)])],64)):h(``,!0),u(`h3`,ve,n(r.$t(`daqDetail.k1ie6qju020`)),1),u(`div`,ye,[p(u(`select`,{"onUpdate:modelValue":a[19]||=e=>m.value=e,class:`input grow`},[u(`option`,be,n(r.$t(`daqDetail.kjobzu3021`)),1),(s(!0),d(f,null,c(e.availableDevices,e=>(s(),d(`option`,{key:e.id,value:e.id},n(e.name),9,xe))),128))],512),[[v,m.value]]),u(`button`,{class:`pill-btn`,onClick:a[20]||=e=>i(`bind-toggle`)},n(e.boundDeviceName?r.$t(`daqDetail.k479eh044`):r.$t(`daqDetail.k452a8052`)),1)])]))}}),[[`__scopeId`,`data-v-de819029`]]),{__name:`DaqDetailParamForm`}),Ce={class:`col-hist aw-tile pad`},we={class:`hist-hd`},Te={class:`sec`},Ee={class:`hist-ctl mono`},De=[`value`],Oe=[`title`],ke=[`placeholder`],Ae={class:`raw-table mono`},je=Object.assign(C(o({__name:`DaqDetailHistoryCard`,props:m({tsdb:{},buckets:{},historyPoints:{},decimals:{},minQueryMs:{},defaultQueryMs:{}},{bucketMs:{required:!0},bucketMsModifiers:{},refreshOverrideMs:{required:!0},refreshOverrideMsModifiers:{},canvasEl:{required:!0},canvasElModifiers:{}}),emits:m([`reload`],[`update:bucketMs`,`update:refreshOverrideMs`,`update:canvasEl`]),setup(t,{emit:r}){let i=r,o=a(t,`bucketMs`),l=a(t,`refreshOverrideMs`),m=a(t,`canvasEl`);return(r,a)=>(s(),d(`section`,Ce,[u(`div`,we,[u(`h3`,Te,n(r.$t(`daqDetail.k1i535i5034`))+n(t.tsdb)+`) `,1),u(`div`,Ee,[p(u(`select`,{"onUpdate:modelValue":a[0]||=e=>o.value=e,class:`input`},[(s(!0),d(f,null,c(t.buckets,e=>(s(),d(`option`,{key:e.ms,value:e.ms},n(e.label),9,De))),128))],512),[[v,o.value,void 0,{number:!0}]]),u(`label`,{class:`refresh-ctl`,title:r.$t(`daqDetail.k1rfrshint001`,{p0:t.minQueryMs})},[a[3]||=u(`span`,{class:`i-tabler-refresh`},null,-1),p(u(`input`,{"onUpdate:modelValue":a[1]||=e=>l.value=e,type:`number`,min:0,max:`600000`,step:`500`,placeholder:String(t.defaultQueryMs)},null,8,ke),[[b,l.value,void 0,{number:!0}]]),a[4]||=_(`ms `,-1)],8,Oe),u(`button`,{class:`pill-btn`,onClick:a[2]||=e=>i(`reload`)},n(r.$t(`daqDetail.k3x1jg022`)),1)])]),u(`canvas`,{ref_key:`canvasEl`,ref:m,class:`hist-canvas`},null,512),u(`table`,Ae,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,n(r.$t(`daqDetail.k40vsf023`)),1),u(`th`,null,n(r.$t(`daqDetail.k48v5024`)),1),u(`th`,null,n(r.$t(`daqDetail.k4bza025`)),1)])]),u(`tbody`,null,[(s(!0),d(f,null,c(t.historyPoints.filter(e=>e.value!=null).slice(-12).reverse(),(r,i)=>(s(),d(`tr`,{key:i},[u(`td`,null,n(e(w)(new Date(r.at).toISOString())),1),u(`td`,null,n(r.value.toFixed(t.decimals??2)),1),u(`td`,null,n(r.state),1)]))),128))])])]))}}),[[`__scopeId`,`data-v-24d96636`]]),{__name:`DaqDetailHistoryCard`}),Me={class:`aw-tile pad frames-tile`},Ne={class:`hist-hd`},Pe={class:`sec`},Fe={class:`mono frames-n`},Ie=[`viewBox`],Le=[`points`],Re={class:`raw-table mono`},ze={key:0,class:`gal`},Be=[`title`,`onClick`],Ve=[`src`],$={class:`mono`},He={key:1,class:`frames-empty`},Ue=[`src`],We=Object.assign(C(o({__name:`DaqDetailFramesTile`,props:{signalKind:{},frames:{},vecPath:{}},emits:[`reload`],setup(t,{emit:r}){let a=r,o=i(null),l=e=>w(new Date(e).toISOString()),p=e=>Object.entries(e.metrics??{}).slice(0,3).map(([e,t])=>`${e}=${t}`).join(` `);return(r,i)=>(s(),d(`section`,Me,[u(`div`,Ne,[u(`h3`,Pe,[_(n(t.signalKind===`image`?r.$t(`daqDetail.kfrm0001`):r.$t(`daqDetail.kfrm0002`))+` `,1),u(`span`,Fe,n(t.frames.length),1)]),u(`button`,{class:`pill-btn`,onClick:i[0]||=e=>a(`reload`)},n(r.$t(`daqDetail.k3x1jg022`)),1)]),t.signalKind===`vector`?(s(),d(f,{key:0},[(s(),d(`svg`,{class:`vec-svg`,viewBox:`0 0 ${e(320)} ${e(84)}`,preserveAspectRatio:`none`},[u(`polyline`,{points:t.vecPath,fill:`none`,stroke:`var(--accent)`,"stroke-width":`1.5`},null,8,Le)],8,Ie)),u(`table`,Re,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,n(r.$t(`daqDetail.k40vsf023`)),1),u(`th`,null,n(r.$t(`daqDetail.kfrm0004`)),1),u(`th`,null,n(r.$t(`daqDetail.kfrm0005`)),1)])]),u(`tbody`,null,[(s(!0),d(f,null,c(t.frames.filter(e=>e.kind===`vector`).slice(0,12),e=>(s(),d(`tr`,{key:e.at},[u(`td`,null,n(l(e.at)),1),u(`td`,null,n(e.points?.length??0),1),u(`td`,null,n(p(e)),1)]))),128))])])],64)):(s(),d(f,{key:1},[t.frames.length?(s(),d(`div`,ze,[(s(!0),d(f,null,c(t.frames,e=>(s(),d(`figure`,{key:e.at,class:`gal-item`,title:r.$t(`daqDetail.kfrm0006`),onClick:t=>o.value=e},[u(`img`,{src:e.thumbUrl,loading:`lazy`,alt:`daq frame`},null,8,Ve),u(`figcaption`,$,n(l(e.at))+` · `+n(p(e)),1)],8,Be))),128))])):(s(),d(`p`,He,n(r.$t(`daqDetail.kfrm0003`)),1)),o.value?(s(),d(`div`,{key:2,class:`gal-full`,onClick:i[1]||=e=>o.value=null},[u(`img`,{src:o.value.contentUrl??o.value.thumbUrl,alt:`daq frame full`},null,8,Ue)])):h(``,!0)],64))]))}}),[[`__scopeId`,`data-v-3170b88f`]]),{__name:`DaqDetailFramesTile`}),Ge={class:`page`},Ke={class:`aw-kicker`},qe={class:`aw-page-head`},Je={key:0,class:`err`},Ye={key:1,class:`grid`},Xe=C(o({__name:`[id]`,setup(i){T({layout:`default`});let{daq:a,dcw:o,nodeId:c,node:f,tpl:p,signalKind:m,isFrameNode:v,stateLabel:y,effectiveState:b,driverPlanned:x}=k(),{form:S,driverCatalog:C,driverCfg:w,driverFields:j,testing:M,testResult:N,saving:P,doTest:F,saveParams:L}=A(c,f),{bindDeviceId:R,boundDeviceName:z,onBindToggle:B,availableDevices:V}=D(c,f),{historyPoints:H,bucketMs:U,BUCKETS:W,loadHistory:G,chartCanvas:K,liveCanvas:q,refreshOverrideMs:J}=O(c,f),{frames:Y,loadFrames:X,vecPath:Z}=E(c,v);return(i,T)=>{let E=te,D=I,O=Se,k=je,A=We;return s(),d(`div`,Ge,[u(`p`,Ke,[l(E,{to:`/daq`,class:`back`},{default:g(()=>[_(n(i.$t(`daqDetail.k1emg364001`)),1)]),_:1}),_(` / NODE `+n(e(c).slice(0,8).toUpperCase()),1)]),u(`div`,qe,[u(`h1`,null,n(e(f)?.name??e(c)),1),u(`span`,{class:t([`st-pill`,[e(b)()]])},n(e(y)[e(b)()]),3)]),!e(f)&&e(a).error?(s(),d(`p`,Je,[_(n(e(a).error)+`(`,1),l(E,{to:`/workshop`},{default:g(()=>[_(n(i.$t(`daqDetail.k1bhhheq002`)),1)]),_:1}),T[7]||=_(`) `,-1)])):h(``,!0),e(f)?(s(),d(`div`,Ye,[l(D,{"canvas-el":e(q),"onUpdate:canvasEl":T[0]||=e=>r(q)?q.value=e:null,node:e(f),tpl:e(p),"bound-device-name":e(z),"default-interval-ms":e(a).controller.defaultIntervalMs,"default-publish-ms":e(a).controller.defaultPublishIntervalMs,"driver-planned":e(x)},null,8,[`canvas-el`,`node`,`tpl`,`bound-device-name`,`default-interval-ms`,`default-publish-ms`,`driver-planned`]),l(O,{form:e(S),"onUpdate:form":T[1]||=e=>r(S)?S.value=e:null,"driver-cfg":e(w),"onUpdate:driverCfg":T[2]||=e=>r(w)?w.value=e:null,"bind-device-id":e(R),"onUpdate:bindDeviceId":T[3]||=e=>r(R)?R.value=e:null,lines:e(o).lines,"driver-catalog":e(C),"driver-fields":e(j),saving:e(P),testing:e(M),"test-result":e(N),"bound-device-name":e(z),"available-devices":e(V),onSave:e(L),onTest:e(F),onBindToggle:e(B)},null,8,[`form`,`driver-cfg`,`bind-device-id`,`lines`,`driver-catalog`,`driver-fields`,`saving`,`testing`,`test-result`,`bound-device-name`,`available-devices`,`onSave`,`onTest`,`onBindToggle`]),l(k,{"bucket-ms":e(U),"onUpdate:bucketMs":T[4]||=e=>r(U)?U.value=e:null,"refresh-override-ms":e(J),"onUpdate:refreshOverrideMs":T[5]||=e=>r(J)?J.value=e:null,"canvas-el":e(K),"onUpdate:canvasEl":T[6]||=e=>r(K)?K.value=e:null,tsdb:e(a).meta.tsdb,buckets:e(W),"history-points":e(H),decimals:e(f).decimals,"min-query-ms":e(a).controller.minQueryDisplayIntervalMs??500,"default-query-ms":e(a).controller.queryDisplayIntervalMs??5e3,onReload:e(G)},null,8,[`bucket-ms`,`refresh-override-ms`,`canvas-el`,`tsdb`,`buckets`,`history-points`,`decimals`,`min-query-ms`,`default-query-ms`,`onReload`])])):h(``,!0),e(v)?(s(),ee(A,{key:2,"signal-kind":e(m),frames:e(Y),"vec-path":e(Z),onReload:e(X)},null,8,[`signal-kind`,`frames`,`vec-path`,`onReload`])):h(``,!0)])}}}),[[`__scopeId`,`data-v-6ad2bd61`]]);export{Xe as default};
@@ -1 +0,0 @@
1
- import{g 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,p,rt as m,tt as h,y as g}from"./C6lssmvl.js";import{f as _}from"./ri9UF8rk.js";import{d as v}from"./CDYLasP8.js";import{n as y}from"./D1MkndMZ.js";import{n as b,t as x}from"./u3h4pGpm.js";import{i as S,s as ee}from"./DXgw1dVL.js";import{i as te}from"./hZG5MLjK.js";import{i as ne,r as re,t as C}from"./D9lL3fJM2.js";import{t as w}from"./DaizNGUm2.js";import{t as T}from"./vp3LtnTz2.js";import{t as E}from"./Cv-Mv7_h2.js";import{t as D}from"./BDNMzG2s.js";import{t as O}from"./R5Pz7BqB.js";import{t as k}from"./Ch1P2mIf.js";var A={class:`perm-page`},ie={class:`aw-page-head`},ae={class:`pg-sub`},j=[`onClick`],M={key:0,class:`dim`},N={class:`sec`},P={class:`detail`},F={class:`sec`},I={key:0,class:`ch-list`},L={key:1,class:`dim`},R={class:`sec`},z={class:`hint`},B={class:`matrix`},V=[`title`],H=D(i({__name:`index`,setup(i){let{t:D}=y(),H=E(),U=n([]),W=n([]),G=n(!1),K=n(``),q=n(!1),J=n(null),Y=e({}),X=n(!1);function Z(){let e=H.token;return e?{authorization:`Bearer ${e}`}:{}}async function oe(){G.value=!0;try{let e=await k(`/api/workshop/permissions`,{headers:Z()});if(e.code!==0||!e.data)throw Error(`load fail`);U.value=e.data.lines??[],W.value=e.data.users??[]}catch(e){S.error(O(e,D(`permissions.loadFail`)))}finally{G.value=!1}}let se=c(()=>{let e=K.value.trim().toLowerCase();return e?W.value.filter(t=>`${t.name} ${t.email}`.toLowerCase().includes(e)):W.value});function Q(e){J.value=e,ce(e),q.value=!0}function ce(e){for(let e of Object.keys(Y))Reflect.deleteProperty(Y,e);for(let t of U.value){let n=e.grants.find(e=>e.lineId===t.id);Y[t.id]=n?.mode===`readonly`||n?.mode===`operate`?n.mode:`none`}}let $=c(()=>{if(!J.value)return 0;let e=0;for(let t of U.value){let n=J.value.grants.find(e=>e.lineId===t.id),r=n?.mode===`readonly`||n?.mode===`operate`?n.mode:`none`;(Y[t.id]??`none`)!==r&&e++}return e});async function le(){if(J.value){X.value=!0;try{let e=U.value.filter(e=>(Y[e.id]??`none`)!==`none`).map(e=>({lineId:e.id,mode:Y[e.id]})),t=U.value.filter(e=>(Y[e.id]??`none`)===`none`&&J.value.grants.some(t=>t.lineId===e.id)).map(e=>({lineId:e.id,mode:null})),n=await k(`/api/workshop/permissions`,{method:`PUT`,headers:Z(),body:{userId:J.value.id,grants:[...e,...t]}});if(n.code!==0||!n.data)throw Error(`save fail`);J.value.grants=n.data.grants;let r=W.value.find(e=>e.id===J.value?.id);r&&(r.grants=n.data.grants),S.success(D(`permissions.saved`,{n:e.length+t.length}))}catch(e){S.error(O(e,D(`permissions.saveFail`)))}finally{X.value=!1}}}function ue(e){return D(e===`operate`?`permissions.operate`:e===`readonly`?`permissions.readonly`:`permissions.none`)}return h(()=>H.isLoggedIn,e=>{e&&!H.isAdmin&&v(`/`)},{immediate:!0}),r(oe),(e,n)=>{let r=te,i=b,c=C,h=ee,v=x,y=w,S=re,E=ne,D=T;return a(),u(`div`,A,[l(`header`,ie,[l(`div`,null,[n[2]||=l(`p`,{class:`aw-kicker`},` agentworkshop / permissions `,-1),l(`h1`,null,t(e.$t(`permissions.title`)),1),l(`p`,ae,t(e.$t(`permissions.subtitle`)),1)]),s(r,{value:K.value,"onUpdate:value":n[0]||=e=>K.value=e,placeholder:e.$t(`permissions.search`),style:{"max-width":`260px`},"allow-clear":``},null,8,[`value`,`placeholder`])]),s(y,{bordered:!1,class:`table-card`},{default:m(()=>[s(v,{"data-source":se.value,loading:G.value,"row-key":`id`,size:`middle`,pagination:{pageSize:12,showSizeChanger:!1}},{default:m(()=>[s(i,{title:e.$t(`permissions.colUser`),"data-index":`name`},{default:m(({record:e})=>[l(`a`,{onClick:_(t=>Q(e),[`prevent`])},t(e.name),9,j)]),_:1},8,[`title`]),s(i,{title:e.$t(`permissions.colEmail`),"data-index":`email`},null,8,[`title`]),s(i,{title:e.$t(`permissions.colRole`),"data-index":`role`},{default:m(({record:e})=>[s(c,{color:e.role===`admin`?`green`:e.role===`editor`?`blue`:`default`},{default:m(()=>[g(t(e.role),1)]),_:2},1032,[`color`])]),_:1},8,[`title`]),s(i,{title:e.$t(`permissions.colStatus`),"data-index":`status`},{default:m(({record:n})=>[s(c,{color:n.status===`active`?`cyan`:`red`},{default:m(()=>[g(t(n.status===`active`?e.$t(`permissions.active`):n.status),1)]),_:2},1032,[`color`])]),_:1},8,[`title`]),s(i,{title:e.$t(`permissions.colChannels`),"data-index":`channels`},{default:m(({record:e})=>[g(t(e.channels.length),1)]),_:1},8,[`title`]),s(i,{title:e.$t(`permissions.colGrants`),"data-index":`grants`},{default:m(({record:e})=>[(a(!0),u(d,null,o(e.grants,e=>(a(),p(c,{key:e.lineId,style:{"margin-bottom":`2px`}},{default:m(()=>[g(t((U.value.find(t=>t.id===e.lineId)?.name??e.lineId).slice(0,14))+` · `+t(ue(e.mode)),1)]),_:2},1024))),128)),e.grants.length?f(``,!0):(a(),u(`span`,M,`—`))]),_:1},8,[`title`]),s(i,{title:e.$t(`permissions.colOps`),width:90},{default:m(({record:n})=>[s(h,{size:`small`,onClick:e=>Q(n)},{default:m(()=>[g(t(e.$t(`permissions.manage`)),1)]),_:1},8,[`onClick`])]),_:1},8,[`title`])]),_:1},8,[`data-source`,`loading`])]),_:1}),s(D,{open:q.value,"onUpdate:open":n[1]||=e=>q.value=e,title:J.value?`${J.value.name} · ${e.$t(`permissions.detail`)}`:``,width:`560`},{default:m(()=>[J.value?(a(),u(d,{key:0},[l(`h4`,N,t(e.$t(`permissions.secProfile`)),1),l(`dl`,P,[n[3]||=l(`dt`,null,`email`,-1),l(`dd`,null,t(J.value.email),1),n[4]||=l(`dt`,null,`role`,-1),l(`dd`,null,t(J.value.role),1),n[5]||=l(`dt`,null,`status`,-1),l(`dd`,null,t(J.value.status),1),n[6]||=l(`dt`,null,`created`,-1),l(`dd`,null,t(J.value.createdAt),1)]),l(`h4`,F,t(e.$t(`permissions.secChannels`))+`(`+t(J.value.channels.length)+`) `,1),J.value.channels.length?(a(),u(`div`,I,[(a(!0),u(d,null,o(J.value.channels,e=>(a(),u(`code`,{key:e.id},t(e.name||e.id.slice(0,8)),1))),128))])):(a(),u(`p`,L,t(e.$t(`permissions.noChannels`)),1)),l(`h4`,R,[g(t(e.$t(`permissions.secMatrix`))+` `,1),s(h,{type:`primary`,size:`small`,loading:X.value,disabled:$.value===0,style:{"margin-left":`12px`},onClick:le},{default:m(()=>[g(t(e.$t(`permissions.save`,{n:$.value})),1)]),_:1},8,[`loading`,`disabled`])]),l(`p`,z,t(e.$t(`permissions.matrixHint`)),1),l(`div`,B,[(a(!0),u(d,null,o(U.value,n=>(a(),u(`div`,{key:n.id,class:`row`},[l(`span`,{class:`line-name`,title:n.id},t(n.name),9,V),s(E,{value:Y[n.id],"onUpdate:value":e=>Y[n.id]=e,size:`small`},{default:m(()=>[s(S,{value:`none`},{default:m(()=>[g(t(e.$t(`permissions.none`)),1)]),_:1}),s(S,{value:`readonly`},{default:m(()=>[g(t(e.$t(`permissions.readonly`)),1)]),_:1}),s(S,{value:`operate`},{default:m(()=>[g(t(e.$t(`permissions.operate`)),1)]),_:1})]),_:1},8,[`value`,`onUpdate:value`])]))),128))])],64)):f(``,!0)]),_:1},8,[`open`,`title`])])}}}),[[`__scopeId`,`data-v-6713ebdd`]]);export{H as default};
@@ -1 +0,0 @@
1
- import{N as e,dt as t,ft as n,mt as r}from"./CavpkQb0.js";import{R as i,S as a,V as o,W as s,b as c,f as l,h as u,i as d,m as f,p,rt as m,y as h}from"./C6lssmvl.js";import{d as g}from"./CDYLasP8.js";import{n as _}from"./Bko5adbu.js";import{t as v}from"./DPPC9Teq.js";import{n as y}from"./D1MkndMZ.js";import{t as b}from"./Bmvt9ydE.js";import{t as x}from"./BDNMzG2s.js";import{t as S}from"./DPnjnDtg.js";import{t as C}from"./CfIbFnJz.js";import{t as w}from"./ilJHF1nA2.js";import{t as ee}from"./C5OStZJ62.js";import{t as te}from"./TugRY_4O.js";var T={class:`fleet aw-bench aw-stagger`},E={class:`aw-bench-hd`},D={class:`aw-bench-title`},O={class:`aw-bench-sub`},k={class:`aw-bench-meta`},A={class:`fleet-grid`},j={class:`lc-head`},M={key:0,class:`lc-run mono`},N={class:`lc-meta mono`},P={class:`fa-n mono`},F={class:`fa-label`},I={key:1,class:`fleet-empty`},L=Object.assign(x(a({__name:`DashboardFleetPanel`,props:{lines:{},total:{},overflow:{}},setup(i){let{t:a}=y();return(c,h)=>{let g=v;return o(),u(`section`,T,[l(`header`,E,[l(`h3`,D,r(e(a)(`home.charts.lines`)),1),l(`small`,O,r(e(a)(`home.fleetHint`)),1),l(`span`,k,[l(`span`,null,[l(`b`,null,r(i.total),1)])])]),l(`div`,A,[(o(!0),u(d,null,s(i.lines,i=>(o(),p(g,{key:i.id,class:t([`line-card`,{on:i.active}]),style:n({"--lc":i.color}),to:`/dcw/${i.id}`},{default:m(()=>[l(`div`,j,[h[0]||=l(`span`,{class:`lc-dot`},null,-1),l(`b`,null,r(i.name),1),l(`span`,{class:t([`lc-state`,{on:i.active}])},r(i.active?e(a)(`home.runNow`):e(a)(`home.standBy`)),3)]),i.active?(o(),u(`div`,M,[l(`span`,null,r(i.product)+` · `+r(i.recipe),1),l(`small`,null,r(e(a)(`home.batch`))+` `+r(i.runId?.slice(0,8))+` · `+r(e(a)(`home.tagged`))+` `+r(i.tagged),1)])):f(``,!0),l(`div`,N,[l(`span`,null,r(e(a)(`home.nodesUnit`))+` `+r(i.dcwCount),1),l(`span`,null,r(e(a)(`home.daqUnit`))+` `+r(i.daqCount),1)])]),_:2},1032,[`class`,`style`,`to`]))),128)),i.overflow>0?(o(),p(g,{key:0,class:`line-card fleet-all im`,to:`/dcw`},{default:m(()=>[l(`span`,P,`+`+r(i.overflow),1),l(`span`,F,r(e(a)(`home.fleetAll`)),1),h[1]||=l(`span`,{class:`i-tabler-arrow-right fa-arrow`},null,-1)]),_:1})):f(``,!0),i.total===0?(o(),u(`p`,I,r(e(a)(`home.noLine`)),1)):f(``,!0)])])}}}),[[`__scopeId`,`data-v-03be19d1`]]),{__name:`DashboardFleetPanel`}),R={class:`aw-gauge-band aw-stagger`},z={class:`aw-gauge`},B={class:`aw-gauge-label`},V={class:`aw-gauge-value`},H={class:`aw-readout`},U={class:`aw-gauge`},W={class:`aw-gauge-label`},G={class:`aw-gauge-value`},K={class:`aw-readout`},q={class:`aw-gauge`},J={class:`aw-gauge-label`},Y={class:`aw-gauge-value`},X={class:`aw-readout`},Z={class:`aw-gauge`},Q={class:`aw-gauge-label`},ne={class:`aw-gauge-value`},re={class:`aw-readout`},ie={class:`aw-gauge`},ae={class:`aw-gauge-label`},oe={class:`aw-gauge-value`},se={class:`aw-readout`},ce={class:`aw-gauge-label`},le={class:`aw-gauge-value`},ue={class:`aw-readout`},de=Object.assign(x(a({__name:`DashboardGaugeBand`,props:{linesActive:{},linesTotal:{},dcwOnline:{},dcwTotal:{},daqOnline:{},daqTotal:{},samplesStored:{},writeRate:{},alarmCount:{}},setup(n){let{t:i}=y();return(a,s)=>(o(),u(`div`,R,[l(`div`,z,[l(`span`,B,r(e(i)(`home.kpi.lines`)),1),l(`span`,V,[l(`span`,H,[h(r(n.linesActive),1),l(`small`,null,`/`+r(n.linesTotal),1)])])]),l(`div`,U,[l(`span`,W,r(e(i)(`home.kpi.dcwNodes`)),1),l(`span`,G,[l(`span`,K,[h(r(n.dcwOnline),1),l(`small`,null,`/`+r(n.dcwTotal),1)])])]),l(`div`,q,[l(`span`,J,r(e(i)(`home.kpi.daqNodes`)),1),l(`span`,Y,[l(`span`,X,[h(r(n.daqOnline),1),l(`small`,null,`/`+r(n.daqTotal),1)])])]),l(`div`,Z,[l(`span`,Q,r(e(i)(`home.kpi.samples`)),1),l(`span`,ne,[l(`span`,re,r(n.samplesStored),1)])]),l(`div`,ie,[l(`span`,ae,r(e(i)(`home.kpi.writeRate`)),1),l(`span`,oe,[l(`span`,se,[h(r(n.writeRate),1),s[0]||=l(`small`,null,`%`,-1)])])]),l(`div`,{class:t([`aw-gauge`,{"is-alarm":n.alarmCount>0}])},[l(`span`,ce,r(e(i)(`home.kpi.alarms`)),1),l(`span`,le,[l(`span`,ue,r(n.alarmCount),1)])],2)]))}}),[[`__scopeId`,`data-v-a7e49192`]]),{__name:`DashboardGaugeBand`}),fe={class:`harness aw-bench aw-stagger`},pe={class:`aw-bench-hd`},me={class:`aw-bench-title`},he={class:`aw-bench-sub`},ge={class:`aw-bench-meta`},_e={class:`harness-row`},ve=[`href`,`title`],ye={class:`h-name`},be={key:0,class:`h-cmd mono`},xe={key:1,class:`h-go`},Se=Object.assign(x(a({__name:`DashboardHarnessPanel`,props:{harnesses:{},okCount:{}},setup(n){let{t:i}=y(),a=e=>e.id===`mock`?i(`agents.hMock`):e.id===`omp`?i(`agents.hOmp`):e.label,c=e=>{if(e.available===!1)return i(`home.harness.missing`);if(e.inprocess)return`in-process`;let t=String(e.command??``);return t?e.label.startsWith(t)?``:t:``};return(p,m)=>(o(),u(`section`,fe,[l(`header`,pe,[l(`h3`,me,r(e(i)(`home.harness.title`)),1),l(`small`,he,r(e(i)(`home.harness.sub`)),1),l(`span`,ge,[l(`span`,null,[l(`b`,null,r(n.okCount),1),h(`/`+r(n.harnesses.length),1)])])]),l(`div`,_e,[(o(!0),u(d,null,s(n.harnesses,e=>(o(),u(`a`,{key:e.id,class:t([`h-item`,{off:e.available===!1,link:e.available===!1&&e.homepage}]),href:e.available===!1&&e.homepage?e.homepage:void 0,target:`_blank`,rel:`noopener`,title:e.available===!1?e.error??``:e.resolvedPath??e.command??``},[m[0]||=l(`span`,{class:`h-dot`},null,-1),l(`span`,ye,r(a(e)),1),c(e)?(o(),u(`span`,be,r(c(e)),1)):f(``,!0),e.available===!1&&e.homepage?(o(),u(`span`,xe,`↗`)):f(``,!0)],10,ve))),128))])]))}}),[[`__scopeId`,`data-v-c6db3d57`]]),{__name:`DashboardHarnessPanel`}),Ce={class:`hero aw-bench aw-bench--marked aw-stagger`},we={class:`hero-main`},Te={class:`aw-bench-kicker`},Ee={class:`hero-title`},De={class:`aw-serif-accent-italic`},Oe={class:`hero-sub`},ke={class:`hero-acts`},Ae={class:`hero-live`},je={class:`live-badge`},Me={class:`live-rows`},Ne={class:`live-row`},Pe={class:`mono`},Fe={class:`live-row`},Ie={class:`mono`},Le={class:`mono`},Re=Object.assign(x(a({__name:`DashboardHero`,props:{mode:{},linesActive:{},linesTotal:{},samplesStored:{},alarmCount:{}},setup(n){let{t:i}=y();return(a,s)=>(o(),u(`section`,Ce,[l(`div`,we,[l(`p`,Te,r(e(i)(`home.kicker`))+` · `+r(n.mode),1),l(`h1`,Ee,[h(r(e(i)(`home.heroTitle`))+` `,1),l(`span`,De,r(e(i)(`home.heroAccent`)),1)]),l(`p`,Oe,r(e(i)(`home.heroSub`)),1),l(`div`,ke,[l(`button`,{class:`aw-pill im`,onClick:s[0]||=t=>(`navigateTo`in a?a.navigateTo:e(g))(`/town`)},[s[2]||=l(`span`,{class:`i-tabler-map-2 im-pop`},null,-1),h(` `+r(e(i)(`home.ctaTown`)),1)]),l(`button`,{class:`aw-pill outline im`,onClick:s[1]||=t=>(`navigateTo`in a?a.navigateTo:e(g))(`/dcw`)},[s[3]||=l(`span`,{class:`i-tabler-route im-pop`},null,-1),h(` `+r(e(i)(`home.ctaLine`)),1)])])]),l(`div`,Ae,[l(`span`,je,[s[4]||=l(`span`,{class:`live-dot`},null,-1),h(r(e(i)(`home.live`)),1)]),l(`dl`,Me,[l(`div`,Ne,[l(`dt`,null,r(e(i)(`home.kpi.lines`)),1),l(`dd`,Pe,[l(`b`,null,r(n.linesActive),1),l(`small`,null,`/`+r(n.linesTotal),1)])]),l(`div`,Fe,[l(`dt`,null,r(e(i)(`home.kpi.samples`)),1),l(`dd`,Ie,[l(`b`,null,r(n.samplesStored),1)])]),l(`div`,{class:t([`live-row`,{"is-alarm":n.alarmCount>0}])},[l(`dt`,null,r(e(i)(`home.kpi.alarms`)),1),l(`dd`,Le,[l(`b`,null,r(n.alarmCount),1)])],2)])]),s[5]||=l(`div`,{class:`hero-scale`,"aria-hidden":`true`},null,-1)]))}}),[[`__scopeId`,`data-v-2607e0f0`]]),{__name:`DashboardHero`}),ze={class:`aw-bench span4`},Be={class:`aw-bench-hd`},Ve={class:`aw-bench-title`},He={class:`aw-bench-meta`},Ue={class:`donut-wrap`},We={class:`donut-center mono`},Ge=Object.assign(x(a({__name:`DashboardLineStatePanel`,props:{option:{type:Object,required:!0},linesActive:{type:Number,required:!0},linesTotal:{type:Number,required:!0}},setup(t){let{t:n}=y();return(i,a)=>{let s=b;return o(),u(`section`,ze,[l(`header`,Be,[l(`h3`,Ve,r(e(n)(`home.charts.lineState`)),1),l(`span`,He,[l(`span`,null,[l(`b`,null,r(t.linesActive),1),h(`/`+r(t.linesTotal)+` `+r(e(n)(`home.kpi.lines`)),1)])])]),l(`div`,Ue,[l(`div`,We,[l(`b`,null,r(t.linesActive),1),l(`small`,null,`/ `+r(t.linesTotal),1)]),c(s,null,{default:m(()=>[c(S,{option:t.option,class:`chart h240`},null,8,[`option`])]),_:1})])])}}}),[[`__scopeId`,`data-v-70b1fe60`]]),{__name:`DashboardLineStatePanel`}),Ke={class:`aw-bench span4`},qe={class:`aw-bench-hd`},Je={class:`aw-bench-title`},Ye=Object.assign(x(a({__name:`DashboardNodeStatePanel`,props:{option:{type:Object,required:!0}},setup(t){let{t:n}=y();return(i,a)=>{let s=b;return o(),u(`section`,Ke,[l(`header`,qe,[l(`h3`,Je,r(e(n)(`home.charts.nodeState`)),1)]),c(s,null,{default:m(()=>[c(S,{option:t.option,class:`chart h240`},null,8,[`option`])]),_:1})])}}}),[[`__scopeId`,`data-v-6ea87c79`]]),{__name:`DashboardNodeStatePanel`}),Xe={class:`aw-bench span4`},Ze={class:`aw-bench-hd`},Qe={class:`aw-bench-title`},$e=Object.assign(x(a({__name:`DashboardPipelinePanel`,props:{option:{type:Object,required:!0}},setup(t){let{t:n}=y();return(i,a)=>{let s=b;return o(),u(`section`,Xe,[l(`header`,Ze,[l(`h3`,Qe,r(e(n)(`home.charts.pipeline`)),1)]),c(s,null,{default:m(()=>[c(S,{option:t.option,class:`chart h240`},null,8,[`option`])]),_:1})])}}}),[[`__scopeId`,`data-v-86e0c5c7`]]),{__name:`DashboardPipelinePanel`}),et={class:`aw-bench span8`},tt={class:`aw-bench-hd`},$={class:`aw-bench-title`},nt={class:`aw-bench-sub`},rt={class:`aw-bench-meta`},it={key:1,class:`aw-empty chart h280`},at={class:`aw-empty-title`},ot={class:`aw-empty-sub`},st=Object.assign(x(a({__name:`DashboardTrendPanel`,props:{option:{type:Object,required:!0},hasData:{type:Boolean,required:!0}},setup(t){let{t:n}=y();return(i,a)=>{let s=b;return o(),u(`section`,et,[l(`header`,tt,[l(`h3`,$,r(e(n)(`home.charts.trend`)),1),l(`small`,nt,r(e(n)(`home.charts.trendSub`)),1),l(`span`,rt,[l(`span`,null,r(e(n)(`home.trendY`)),1)])]),c(s,null,{default:m(()=>[t.hasData?(o(),p(S,{key:0,option:t.option,class:`chart h280`},null,8,[`option`])):(o(),u(`div`,it,[l(`p`,at,r(e(n)(`home.trendWaiting`)),1),l(`p`,ot,r(e(n)(`home.trendNeedRun`)),1)]))]),_:1})])}}}),[[`__scopeId`,`data-v-450fc000`]]),{__name:`DashboardTrendPanel`}),ct={class:`aw-bench span4`},lt={class:`aw-bench-hd`},ut={class:`aw-bench-title`},dt={class:`aw-bench-meta`},ft=Object.assign(x(a({__name:`DashboardWritePanel`,props:{option:{type:Object,required:!0},writesTotal:{type:Number,required:!0},writesFailed:{type:Number,required:!0}},setup(t){let{t:n}=y();return(i,a)=>{let s=b;return o(),u(`section`,ct,[l(`header`,lt,[l(`h3`,ut,r(e(n)(`home.charts.writeCtl`)),1),l(`span`,dt,[l(`span`,null,[l(`b`,null,r(t.writesTotal),1),h(` `+r(e(n)(`home.writesFailed`))+` `+r(t.writesFailed),1)])])]),c(s,null,{default:m(()=>[c(S,{option:t.option,class:`chart h240`},null,8,[`option`])]),_:1})])}}}),[[`__scopeId`,`data-v-17332409`]]),{__name:`DashboardWritePanel`}),pt={class:`home`},mt={class:`grid aw-stagger`},ht=x(a({__name:`index`,setup(t){let{t:n}=y();_({title:()=>n(`titles.dashboard`)});let r=ee(),{site:a,daq:s,dcw:d,pushTrend:h,loadHarnesses:g,linesActive:v,daqOnline:x,daqTotal:S,alarmCount:T,writeRate:E,harnesses:D,harnessOk:O,trendHasData:k,lineCards:A,fleetShown:j,fleetOverflow:M}=r,{trendOpt:N,lineStateOpt:P,pipelineOpt:F,writeOpt:I,nodeStateOpt:R}=w(r);return i(()=>{s.ensureWsFeed(),d.ensureWsFeed(),Promise.all([s.load(),d.load()]).then(()=>h()),g(),C(()=>{s.load(),d.load(),g(),h()},5e3,{bgMs:3e4})}),(t,n)=>{let r=te,i=b;return o(),u(`div`,pt,[c(Re,{mode:e(a).mode,"lines-active":e(v).length,"lines-total":e(d).lines.length,"samples-stored":e(s).meta.samplesStored??0,"alarm-count":e(T)},null,8,[`mode`,`lines-active`,`lines-total`,`samples-stored`,`alarm-count`]),c(de,{"lines-active":e(v).length,"lines-total":e(d).lines.length,"dcw-online":e(d).controller.nodesOnline,"dcw-total":e(d).controller.nodesTotal,"daq-online":e(x),"daq-total":e(S),"samples-stored":e(s).meta.samplesStored??0,"write-rate":e(E),"alarm-count":e(T)},null,8,[`lines-active`,`lines-total`,`dcw-online`,`dcw-total`,`daq-online`,`daq-total`,`samples-stored`,`write-rate`,`alarm-count`]),e(D).length>0?(o(),p(Se,{key:0,harnesses:e(D),"ok-count":e(O)},null,8,[`harnesses`,`ok-count`])):f(``,!0),l(`div`,mt,[c(st,{option:e(N),"has-data":e(k)},null,8,[`option`,`has-data`]),c(Ge,{option:e(P),"lines-active":e(v).length,"lines-total":e(d).lines.length},null,8,[`option`,`lines-active`,`lines-total`]),c($e,{option:e(F)},null,8,[`option`]),c(ft,{option:e(I),"writes-total":e(d).controller.writesTotal,"writes-failed":e(d).controller.writesFailed},null,8,[`option`,`writes-total`,`writes-failed`]),c(Ye,{option:e(R)},null,8,[`option`])]),c(L,{lines:e(j),total:e(A).length,overflow:e(M)},null,8,[`lines`,`total`,`overflow`]),c(i,null,{default:m(()=>[c(r,{"slot-name":`dashboard.widgets`})]),_:1})])}}}),[[`__scopeId`,`data-v-8ff2cc41`]]);export{ht as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{d as t,z as n}from"./C6lssmvl.js";import{a as r}from"./BtumQhZK.js";import{n as i}from"./D1MkndMZ.js";import{t as a}from"./DhjgWrB62.js";import{t as o}from"./BVGzwAxr2.js";import{t as s}from"./R1g64DNi2.js";var c=e({useDcwDetailScope:()=>l});function l(){let{t:e}=i(),c=r(),l=o(),u=a(),d=s();u.load();let f=t(()=>String(c.params.id??``)),p=t(()=>l.lines.find(e=>e.id===f.value)),m=t(()=>l.lineStateOf(f.value));l.load();let h=l.ensureWsFeed();n(()=>h());let g=e=>(e.deviceIds??(e.deviceBindingId?[e.deviceBindingId]:[])).map(e=>_(e)).join(` / `)||`—`,_=t=>t?d.twins.find(e=>e.id===t)?.name??t:e(`dcwDetail.k3own4q121`),v=t(()=>({idle:e(`dcwDetail.k3zgkk122`),writing:e(`dcwDetail.k3l3h80123`),ok:e(`dcwDetail.stAck`),error:e(`dcwDetail.k40reu124`),offline:e(`dcwDetail.k44c2n125`)}));function y(e){let t=e??``;return l.templates.find(e=>e.key===(t.startsWith(`dcw-`)?t.slice(4):t))?.ch??t}function b(e){return l.nodeById(e)?.min}function x(e){return l.nodeById(e)?.max}let S=t(()=>u.nodes.filter(e=>e.lineId===f.value));function C(e){return u.nodeById(e)?.name??e}let w=t(()=>l.nodes.filter(e=>e.lineId===f.value)),T=t(()=>l.products.filter(e=>e.lineId===f.value)),E=t(()=>l.recipes.filter(e=>e.lineId===f.value)),D=t(()=>l.runs.filter(e=>e.lineId===f.value)),O=t(()=>{let e=new Set(w.value.map(e=>e.id));return l.history.filter(t=>e.has(t.nodeId))}),k=t(()=>l.nodes.filter(e=>!e.lineId)),A=t(()=>l.products.filter(e=>!e.lineId));async function j(e){await l.patchNode(e,{lineId:f.value});let t=l.nodeById(e);t&&(t.lineId=f.value)}async function M(e){await l.updateProduct(e,{lineId:f.value}),await l.load()}let N=e=>l.products.find(t=>t.id===e)?.name??e;function P(t,n){let r=l.nodes.find(e=>e.id===t);return r?r.enabled?n&&r.lineId!==n?{code:`unbound`,label:e(`dcwDetail.staleUnbound`)}:null:{code:`disabled`,label:e(`dcwDetail.staleDisabled`)}:{code:`deleted`,label:e(`dcwDetail.staleDeleted`)}}function F(e){return l.nodes.find(t=>t.id===e)?.name??e}function I(t,n){let r=u.nodes.find(e=>e.id===t);return r?r.enabled?n&&r.lineId!==n?{code:`unbound`,label:e(`dcwDetail.staleUnbound`)}:null:{code:`disabled`,label:e(`dcwDetail.staleDisabled`)}:{code:`deleted`,label:e(`dcwDetail.staleDeleted`)}}return{dcw:l,daq:u,deviceTwins:d,lineId:f,line:p,ls:m,stateLabel:v,dcwTemplateRefCh:y,nodeMin:b,nodeMax:x,lineDaqNodes:S,daqNodeCh:C,lineNodes:w,lineProducts:T,lineRecipesAll:E,lineRuns:D,lineHistory:O,unassignedNodes:k,unassignedProducts:A,adoptNode:j,adoptProduct:M,productName:N,paramStatus:P,paramNodeName:F,daqWindowStatus:I,nodeDeviceNames:g}}export{c as n,l as t};
@@ -1 +0,0 @@
1
- import{N as e,dt as t,g as n,mt as r,u as i,v as a}from"./CavpkQb0.js";import{$ as o,R as s,S as c,V as l,W as u,b as d,d as f,f as p,h as m,i as h,it as g,k as _,m as v,p as y,s as b,tt as x,y as S}from"./C6lssmvl.js";import{c as C,d as w,f as T,l as E}from"./ri9UF8rk.js";import{t as D}from"./BKidykmV2.js";import{t as O}from"./BDNMzG2s.js";import{t as k}from"./DoL9u6wu.js";import{t as A}from"./BVGzwAxr2.js";import{t as j}from"./0qvcO_KM2.js";import{t as M}from"./BmBlIIJo2.js";import{t as N}from"./DudoisLM.js";import{t as ee}from"./EMbqTHfT.js";import{n as te,r as ne,t as P}from"./CtcBhkci.js";var F={class:`aw-page-head`},I={class:`sub`},L={class:`head-actions`},R=[`title`],z={class:`live-txt mono`},B=Object.assign(O(c({__name:`LogsPageHead`,props:{recentCount:{}},emits:[`manual`],setup(e){return(t,n)=>(l(),m(`header`,F,[p(`div`,null,[n[1]||=p(`p`,{class:`aw-kicker`},` agentworkshop / audit log `,-1),p(`h1`,null,r(t.$t(`logs.title`)),1),p(`p`,I,r(t.$t(`logs.sub`)),1)]),p(`div`,L,[p(`span`,{class:`live-dot`,title:t.$t(`logs.liveHint`)},null,8,R),p(`span`,z,r(t.$t(`logs.live`))+` `+r(e.recentCount),1),p(`button`,{class:`pill-btn`,onClick:n[0]||=e=>t.$emit(`manual`)},[n[2]||=p(`span`,{class:`i-tabler-plus`},null,-1),S(` `+r(t.$t(`logs.manual`)),1)])])]))}}),[[`__scopeId`,`data-v-bb7b62ee`]]),{__name:`LogsPageHead`}),V={class:`filter-card`},H={class:`flt`},U={value:``},W=[`value`],G={class:`flt`},K={value:``},q=[`value`],J={class:`flt`},Y={value:``},X=[`value`],Z={class:`flt`},re={value:``},ie={value:`user`},ae={value:`system`},oe={class:`flt`},se={value:``},ce=[`value`],le={class:`flt`},ue={value:``},de=[`value`],fe={class:`flt`},pe={class:`flt`},me={class:`flt flt-grow`},he=[`placeholder`],ge=[`disabled`],_e=Object.assign(O(c({__name:`LogsFilterCard`,props:_({hasFilter:{type:Boolean},loading:{type:Boolean}},{lineId:{required:!0},lineIdModifiers:{},productId:{required:!0},productIdModifiers:{},recipeId:{required:!0},recipeIdModifiers:{},actorKind:{required:!0},actorKindModifiers:{},kind:{required:!0},kindModifiers:{},level:{required:!0},levelModifiers:{},from:{required:!0},fromModifiers:{},to:{required:!0},toModifiers:{},text:{required:!0},textModifiers:{}}),emits:_([`query`,`reset`],[`update:lineId`,`update:productId`,`update:recipeId`,`update:actorKind`,`update:kind`,`update:level`,`update:from`,`update:to`,`update:text`]),setup(t){let n=o(t,`lineId`),i=o(t,`productId`),a=o(t,`recipeId`),s=o(t,`actorKind`),c=o(t,`kind`),d=o(t,`level`),_=o(t,`from`),y=o(t,`to`),b=o(t,`text`),{lines:x,productsOfLine:T,recipesOfScope:D}=j(),O=f(()=>T(n.value)),k=f(()=>D(n.value,i.value));function A(){i.value=``,a.value=``}function M(){a.value=``}return(o,f)=>(l(),m(`section`,V,[p(`label`,H,[p(`span`,null,r(o.$t(`logs.fLine`)),1),g(p(`select`,{"onUpdate:modelValue":f[0]||=e=>n.value=e,class:`inp-sel`,onChange:A},[p(`option`,U,r(o.$t(`logs.all`)),1),(l(!0),m(h,null,u(e(x),e=>(l(),m(`option`,{key:e.id,value:e.id},r(e.name),9,W))),128))],544),[[C,n.value]])]),p(`label`,G,[p(`span`,null,r(o.$t(`logs.fProduct`)),1),g(p(`select`,{"onUpdate:modelValue":f[1]||=e=>i.value=e,class:`inp-sel`,onChange:M},[p(`option`,K,r(o.$t(`logs.all`)),1),(l(!0),m(h,null,u(O.value,e=>(l(),m(`option`,{key:e.id,value:e.id},r(e.name),9,q))),128))],544),[[C,i.value]])]),p(`label`,J,[f[12]||=p(`span`,null,`Recipe`,-1),g(p(`select`,{"onUpdate:modelValue":f[2]||=e=>a.value=e,class:`inp-sel`},[p(`option`,Y,r(o.$t(`logs.all`)),1),(l(!0),m(h,null,u(k.value,e=>(l(),m(`option`,{key:e.id,value:e.id},r(e.name),9,X))),128))],512),[[C,a.value]])]),p(`label`,Z,[p(`span`,null,r(o.$t(`logs.fSource`)),1),g(p(`select`,{"onUpdate:modelValue":f[3]||=e=>s.value=e,class:`inp-sel`},[p(`option`,re,r(o.$t(`logs.all`)),1),p(`option`,ie,r(o.$t(`logs.src.user`)),1),f[13]||=p(`option`,{value:`agent`},` Agent `,-1),p(`option`,ae,r(o.$t(`logs.src.system`)),1)],512),[[C,s.value]])]),p(`label`,oe,[p(`span`,null,r(o.$t(`logs.fKind`)),1),g(p(`select`,{"onUpdate:modelValue":f[4]||=e=>c.value=e,class:`inp-sel`},[p(`option`,se,r(o.$t(`logs.all`)),1),(l(!0),m(h,null,u(e(P),e=>(l(),m(`option`,{key:e,value:e},r(o.$t(`logs.kind.${e}`)),9,ce))),128))],512),[[C,c.value]])]),p(`label`,le,[f[14]||=p(`span`,null,`严重级`,-1),g(p(`select`,{"onUpdate:modelValue":f[5]||=e=>d.value=e,class:`inp-sel`},[p(`option`,ue,r(o.$t(`logs.all`)),1),(l(!0),m(h,null,u(e(te),e=>(l(),m(`option`,{key:e,value:e},r(e===`error`?`⛔ error(失败)`:e===`warn`?`⚠️ warn(未证实)`:`info`),9,de))),128))],512),[[C,d.value]])]),p(`label`,fe,[p(`span`,null,r(o.$t(`logs.fFrom`)),1),g(p(`input`,{"onUpdate:modelValue":f[6]||=e=>_.value=e,class:`inp-sel inp-time`,type:`datetime-local`,step:`1`},null,512),[[E,_.value]])]),p(`label`,pe,[p(`span`,null,r(o.$t(`logs.fTo`)),1),g(p(`input`,{"onUpdate:modelValue":f[7]||=e=>y.value=e,class:`inp-sel inp-time`,type:`datetime-local`,step:`1`},null,512),[[E,y.value]])]),p(`label`,me,[p(`span`,null,r(o.$t(`logs.fKeyword`)),1),g(p(`input`,{"onUpdate:modelValue":f[8]||=e=>b.value=e,class:`inp-sel`,type:`search`,placeholder:o.$t(`logs.fKeywordPh`),onKeydown:f[9]||=w(e=>o.$emit(`query`),[`enter`])},null,40,he),[[E,b.value]])]),p(`button`,{class:`pill-btn`,disabled:t.loading,onClick:f[10]||=e=>o.$emit(`query`)},[f[15]||=p(`span`,{class:`i-tabler-search`},null,-1),S(` `+r(o.$t(`logs.query`)),1)],8,ge),t.hasFilter?(l(),m(`button`,{key:0,class:`mini-btn`,onClick:f[11]||=e=>o.$emit(`reset`)},r(o.$t(`logs.reset`)),1)):v(``,!0)]))}}),[[`__scopeId`,`data-v-5b16c393`]]),{__name:`LogsFilterCard`}),ve={class:`table-card`},ye={key:0,class:`err`},be={class:`log-table`},xe={class:`th-time`},Se={class:`th-src`},Ce={class:`th-kind`},we={class:`th-scope`},Te={class:`th-detail`},Ee={class:`mono dim`},De={class:`actor`},Oe={class:`summary`},ke={class:`mono dim action`},Ae={class:`scope`},je=[`title`],Me=[`title`],Ne=[`title`],Pe={key:3,class:`dim`},Fe={class:`detail-cell`},Ie=[`onClick`],Le={key:1,class:`dim`},Re={key:0,class:`log-detail-row`},ze={colspan:`7`,class:`detail-td`},Be={class:`detail-box mono`},Ve={class:`log-empty-row`},He={key:0,colspan:`7`,class:`empty`},Ue={key:1,class:`table-foot`},We={class:`log-total`},Q=25,Ge=Object.assign(O(c({__name:`LogsEventTable`,props:{rows:{},expandedId:{},loading:{type:Boolean},error:{}},emits:[`toggle`],setup(n){let o=n,{hasDetail:s,pretty:c,fmtTime:g,srcLabel:_,kindLabel:y}=N(),{lineName:b,productName:C,recipeName:w}=j(),T=a(1),E=f(()=>o.rows.slice((T.value-1)*Q,T.value*Q));return x(()=>o.rows,()=>{T.value=1}),(a,o)=>{let f=D;return l(),m(`section`,ve,[n.error?(l(),m(`p`,ye,r(n.error),1)):v(``,!0),p(`table`,be,[p(`thead`,null,[p(`tr`,null,[p(`th`,xe,r(a.$t(`logs.thTime`)),1),p(`th`,Se,r(a.$t(`logs.fSource`)),1),p(`th`,null,r(a.$t(`logs.thActor`)),1),p(`th`,Ce,r(a.$t(`logs.fKind`)),1),p(`th`,null,r(a.$t(`logs.thSummary`)),1),p(`th`,we,r(a.$t(`logs.thScope`)),1),p(`th`,Te,r(a.$t(`logs.thDetail`)),1)])]),p(`tbody`,null,[(l(!0),m(h,null,u(e(E),i=>(l(),m(h,{key:i.id},[p(`tr`,null,[p(`td`,Ee,r(e(g)(i.at)),1),p(`td`,null,[p(`span`,{class:t([`src-badge`,i.actorKind])},r(e(_)(i.actorKind)),3)]),p(`td`,De,r(i.actorName||i.actor||`—`),1),p(`td`,null,[p(`span`,{class:t([`kind-chip`,i.kind])},r(e(y)(i.kind)),3)]),p(`td`,Oe,[i.level===`error`||i.level===`warn`?(l(),m(`span`,{key:0,class:t([`level-chip`,i.level])},r(i.level.toUpperCase()),3)):v(``,!0),S(` `+r(i.summary)+` `,1),p(`small`,ke,r(i.action),1)]),p(`td`,Ae,[i.lineId?(l(),m(`span`,{key:0,class:`scope-chip`,title:`${a.$t(`logs.fLine`)} ${i.lineId}`},r(e(b)(i.lineId)||i.lineId.slice(0,8)),9,je)):v(``,!0),i.productId?(l(),m(`span`,{key:1,class:`scope-chip`,title:`${a.$t(`logs.fProduct`)} ${i.productId}`},r(e(C)(i.productId)||i.productId.slice(0,8)),9,Me)):v(``,!0),i.recipeId?(l(),m(`span`,{key:2,class:`scope-chip`,title:`Recipe ${i.recipeId}`},r(e(w)(i.recipeId)||i.recipeId.slice(0,8)),9,Ne)):v(``,!0),!i.lineId&&!i.productId&&!i.recipeId?(l(),m(`span`,Pe,`—`)):v(``,!0)]),p(`td`,Fe,[e(s)(i)?(l(),m(`button`,{key:0,class:`mini-btn`,onClick:e=>a.$emit(`toggle`,i)},r(n.expandedId===i.id?a.$t(`logs.fold`):a.$t(`logs.expand`)),9,Ie)):(l(),m(`span`,Le,r(a.$t(`logs.noDetail`)),1))])]),n.expandedId===i.id?(l(),m(`tr`,Re,[p(`td`,ze,[p(`pre`,Be,r(e(c)(i.detailJson)),1)])])):v(``,!0)],64))),128)),p(`tr`,Ve,[n.rows.length===0?(l(),m(`td`,He,[n.loading?(l(),m(h,{key:0},[S(r(a.$t(`logs.loading`)),1)],64)):(l(),m(h,{key:1},[S(r(a.$t(`logs.empty`)),1)],64))])):v(``,!0)])])]),n.rows.length>0?(l(),m(`div`,Ue,[p(`span`,We,r(a.$t(`logs.totalCount`,{n:n.rows.length})),1),d(f,{current:e(T),"onUpdate:current":o[0]||=e=>i(T)?T.value=e:null,"page-size":Q,total:n.rows.length,"show-size-changer":!1,"show-less-items":!0,size:`small`},null,8,[`current`,`total`])])):v(``,!0)])}}}),[[`__scopeId`,`data-v-fd65d633`]]),{__name:`LogsEventTable`}),Ke={class:`modal`},qe={class:`m-title`},Je={class:`m-f`},Ye=[`placeholder`],Xe={class:`m-f`},Ze=[`placeholder`],Qe={class:`m-grid`},$e={class:`m-f`},et={value:``},tt=[`value`],$={class:`m-f`},nt={value:``},rt=[`value`],it={class:`m-f`},at={value:``},ot=[`value`],st={key:0,class:`err`},ct={class:`m-actions`},lt=[`disabled`],ut=Object.assign(O(c({__name:`LogsManualModal`,props:_({scope:{},posting:{type:Boolean},error:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`submit`],[`update:open`]),setup(t,{emit:i}){let a=t,s=i,c=o(t,`open`),d=n({summary:``,detail:``,lineId:``,productId:``,recipeId:``}),{lines:_,productsOfLine:S,recipesOfScope:w}=j(),D=f(()=>S(a.scope.lineId)),O=f(()=>w(a.scope.lineId,a.scope.productId));x(c,e=>{e&&(d.summary=``,d.detail=``,d.lineId=a.scope.lineId,d.productId=a.scope.productId,d.recipeId=a.scope.recipeId)});function k(){c.value=!1}function A(){d.productId=``,d.recipeId=``}function M(){d.recipeId=``}function N(){s(`submit`,{...d})}return(n,i)=>(l(),y(b,{to:`body`},[c.value?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:T(k,[`self`])},[p(`div`,Ke,[p(`h3`,qe,r(n.$t(`logs.manual`)),1),p(`label`,Je,[p(`span`,null,r(n.$t(`logs.mSummary`))+` *`,1),g(p(`textarea`,{"onUpdate:modelValue":i[0]||=e=>d.summary=e,rows:`3`,placeholder:n.$t(`logs.mSummaryPh`)},null,8,Ye),[[E,d.summary]])]),p(`label`,Xe,[p(`span`,null,r(n.$t(`logs.mDetail`)),1),g(p(`textarea`,{"onUpdate:modelValue":i[1]||=e=>d.detail=e,rows:`2`,placeholder:n.$t(`logs.mDetailPh`)},null,8,Ze),[[E,d.detail]])]),p(`div`,Qe,[p(`label`,$e,[p(`span`,null,r(n.$t(`logs.fLine`))+` *`,1),g(p(`select`,{"onUpdate:modelValue":i[2]||=e=>d.lineId=e,class:`inp-sel`,onChange:A},[p(`option`,et,r(n.$t(`logs.all`)),1),(l(!0),m(h,null,u(e(_),e=>(l(),m(`option`,{key:e.id,value:e.id},r(e.name),9,tt))),128))],544),[[C,d.lineId]])]),p(`label`,$,[p(`span`,null,r(n.$t(`logs.fProduct`)),1),g(p(`select`,{"onUpdate:modelValue":i[3]||=e=>d.productId=e,class:`inp-sel`,onChange:M},[p(`option`,nt,r(n.$t(`logs.all`)),1),(l(!0),m(h,null,u(D.value,e=>(l(),m(`option`,{key:e.id,value:e.id},r(e.name),9,rt))),128))],544),[[C,d.productId]])]),p(`label`,it,[i[5]||=p(`span`,null,`Recipe`,-1),g(p(`select`,{"onUpdate:modelValue":i[4]||=e=>d.recipeId=e,class:`inp-sel`},[p(`option`,at,r(n.$t(`logs.all`)),1),(l(!0),m(h,null,u(O.value,e=>(l(),m(`option`,{key:e.id,value:e.id},r(e.name),9,ot))),128))],512),[[C,d.recipeId]])])]),t.error?(l(),m(`p`,st,r(t.error),1)):v(``,!0),p(`div`,ct,[p(`button`,{class:`ghost-btn`,onClick:k},r(n.$t(`common.cancel`)),1),p(`button`,{class:`pill-btn`,disabled:t.posting||!d.summary.trim()||!d.lineId,onClick:N},r(n.$t(`logs.mSubmit`)),9,lt)])])])):v(``,!0)]))}}),[[`__scopeId`,`data-v-74baee21`]]),{__name:`LogsManualModal`}),dt={class:`page`},ft=O(c({name:`OpsLogsPage`,setup(t){let n=A(),r=k(),a=M(),{q:o,hasFilter:c,expandedId:u,doQuery:p,resetFilters:h,toggleRow:g}=ne(),{manualOpen:_,openManual:v,submitManual:y}=ee({onPosted:p}),b=f(()=>({lineId:o.lineId,productId:o.productId,recipeId:o.recipeId}));return s(()=>{r.ensureConnected(),a.ensureLive(),n.load(),p()}),(t,n)=>(l(),m(`div`,dt,[d(B,{"recent-count":e(a).recent.length,onManual:e(v)},null,8,[`recent-count`,`onManual`]),d(_e,{"line-id":e(o).lineId,"onUpdate:lineId":n[0]||=t=>e(o).lineId=t,"product-id":e(o).productId,"onUpdate:productId":n[1]||=t=>e(o).productId=t,"recipe-id":e(o).recipeId,"onUpdate:recipeId":n[2]||=t=>e(o).recipeId=t,"actor-kind":e(o).actorKind,"onUpdate:actorKind":n[3]||=t=>e(o).actorKind=t,kind:e(o).kind,"onUpdate:kind":n[4]||=t=>e(o).kind=t,level:e(o).level,"onUpdate:level":n[5]||=t=>e(o).level=t,from:e(o).from,"onUpdate:from":n[6]||=t=>e(o).from=t,to:e(o).to,"onUpdate:to":n[7]||=t=>e(o).to=t,text:e(o).text,"onUpdate:text":n[8]||=t=>e(o).text=t,"has-filter":e(c),loading:e(a).loading.list,onQuery:e(p),onReset:e(h)},null,8,[`line-id`,`product-id`,`recipe-id`,`actor-kind`,`kind`,`level`,`from`,`to`,`text`,`has-filter`,`loading`,`onQuery`,`onReset`]),d(Ge,{rows:e(a).results,"expanded-id":e(u),loading:e(a).loading.list,error:e(a).error.list,onToggle:e(g)},null,8,[`rows`,`expanded-id`,`loading`,`error`,`onToggle`]),d(ut,{open:e(_),"onUpdate:open":n[9]||=e=>i(_)?_.value=e:null,scope:b.value,posting:e(a).loading.posting,error:e(a).error.post,onSubmit:e(y)},null,8,[`open`,`scope`,`posting`,`error`,`onSubmit`])]))}}),[[`__scopeId`,`data-v-222f345d`]]);export{ft as default};
@@ -1 +0,0 @@
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,p,rt as m,y as h}from"./C6lssmvl.js";import{f as g}from"./ri9UF8rk.js";import{n as _}from"./D1MkndMZ.js";import{i as v,s as ee}from"./DXgw1dVL.js";import{t as te}from"./-FhgRqJl2.js";import{t as ne}from"./vp3LtnTz2.js";import{t as re}from"./CFQRFctQ2.js";import{t as y}from"./Cv-Mv7_h2.js";import{t as b}from"./BDNMzG2s.js";import{t as x}from"./R5Pz7BqB.js";import{t as S}from"./Ch1P2mIf.js";import{t as ie}from"./Du9v6qGB2.js";import{t as ae}from"./TugRY_4O.js";var oe={class:`plugins-page`},se={class:`aw-page-head`},ce={class:`pg-sub`},le={class:`pg-stats`},C={class:`stat`},w={class:`stat`},T={class:`stat`},E={class:`stat`},D={key:1,class:`pg-empty`},O={class:`pg-empty-t`},k={class:`pg-grid aw-stagger`},A=[`onClick`],j={class:`card-head`},M={class:`card-name`},N={class:`card-ver`},P={class:`card-desc`},F={class:`card-tags`},I={key:0,class:`tag client`},L={key:1,class:`tag client`},R={key:0,class:`card-routes`},ue={class:`detail`},z={class:`scope-hint`},B={key:0},V={key:1,style:{color:`#ff6b6b`}},H={key:0,class:`pg-tool-list`},U={key:1,class:`dim`},de={key:2,class:`dim`},W=b(i({__name:`index`,setup(i){let{t:b}=_(),W=e=>{let t=ie[e.name];return t?b(t):e.description},fe=y(),G=n([]),K=n([]),q=n(!1),J=n(``),Y=n(!1),X=n(null);function Z(){let e=fe.token;return e?{authorization:`Bearer ${e}`}:{}}async function Q(){q.value=!0;try{let e=await S(`/api/workshop/plugins`,{headers:Z()});G.value=e.plugins??[],K.value=e.failures??[]}catch(e){v.error(x(e,b(`plugins.loadFail`)))}finally{q.value=!1}}async function pe(e){J.value=e.name;try{let t=await S(`/api/workshop/plugins/${e.name}/${e.enabled?`disable`:`enable`}`,{method:`POST`,headers:Z()});if(t.code!==0||!t.data)throw Error(b(`plugins.enableFail`));e.enabled=t.data.enabled,v.success(`${e.name} · ${t.data.enabled?b(`plugins.enabled`):b(`plugins.disabled`)}`),setTimeout(Q,800)}catch(e){v.error(x(e,b(`plugins.enableFail`)))}finally{J.value=``}}let me=c(()=>G.value.filter(e=>e.enabled).length),he=c(()=>G.value.filter(e=>e.hasClient).length);function $(e){return b(e===`project`?`plugins.scopeProject`:`plugins.scopeUser`)}function ge(e){X.value=e,Y.value=!0}return r(Q),(n,r)=>{let i=ee,c=te,_=ae,v=re,y=ne;return a(),u(`div`,oe,[l(`header`,se,[l(`div`,null,[r[2]||=l(`p`,{class:`aw-kicker`},` agentworkshop / plugins `,-1),l(`h1`,null,t(n.$t(`plugins.title`)),1),l(`p`,ce,t(n.$t(`plugins.subtitle`)),1)]),l(`div`,le,[l(`span`,C,[h(t(n.$t(`plugins.enabled`))+` `,1),l(`b`,null,t(me.value),1)]),l(`span`,w,[h(t(n.$t(`plugins.hasClient`))+` `,1),l(`b`,null,t(he.value),1)]),l(`span`,T,[h(t(n.$t(`toolsPage.total`))+` `,1),l(`b`,null,t(G.value.reduce((e,t)=>e+(t.toolCount??0),0)),1)]),l(`span`,E,[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:m(()=>[h(t(n.$t(`plugins.refresh`)),1)]),_:1},8,[`loading`])])]),K.value.length?(a(),p(c,{key:0,type:`error`,"show-icon":``,class:`pg-failures`,message:n.$t(`plugins.loadFailures`,{n:K.value.length})},{description:m(()=>[(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`,D,[r[3]||=l(`span`,{class:`i-tabler-puzzle pg-empty-ico`},null,-1),l(`p`,O,t(n.$t(`plugins.empty`)),1)])):f(``,!0),G.value.length?(a(),p(_,{key:2,"slot-name":`plugins.page`})):f(``,!0),l(`div`,k,[(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=>ge(i)},[l(`div`,j,[l(`span`,M,t(i.name),1),l(`span`,N,t(i.version),1),s(v,{checked:i.enabled,loading:J.value===i.name,size:`small`,onClick:r[0]||=g(()=>{},[`stop`]),onChange:e=>pe(i)},null,8,[`checked`,`loading`,`onChange`])]),l(`p`,P,t(W(i)||`—`),1),l(`div`,F,[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`,I,t(n.$t(`plugins.hasClient`)),1)):f(``,!0),i.toolCount?(a(),u(`span`,L,t(i.toolCount)+` `+t(n.$t(`toolsPage.name`)),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,A))),128))]),s(y,{open:Y.value,"onUpdate:open":r[1]||=e=>Y.value=e,title:X.value?.name,width:`460`},{default:m(()=>[X.value?(a(),u(d,{key:0},[l(`dl`,ue,[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`,z,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),l(`dt`,null,t(n.$t(`toolsPage.name`)),1),l(`dd`,null,t(X.value.toolCount??0)+` / `+t(X.value.knownToolCount??0),1),X.value.error?(a(),u(`dt`,B,` error `)):f(``,!0),X.value.error?(a(),u(`dd`,V,t(X.value.error),1)):f(``,!0)]),l(`h4`,null,t(n.$t(`toolsPage.name`)),1),X.value.tools?.length?(a(),u(`div`,H,[(a(!0),u(d,null,o(X.value.tools,e=>(a(),u(`code`,{key:e.name},t(e.name),1))),128))])):(a(),u(`p`,U,` — `)),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`,de,` — `))],64)):f(``,!0)]),_:1},8,[`open`,`title`])])}}}),[[`__scopeId`,`data-v-038f3b04`]]);export{W as default};
@@ -1 +0,0 @@
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,tt as a}from"./C6lssmvl.js";import{n as o}from"./D1MkndMZ.js";import{t as s}from"./CElzwyXQ.js";import{t as c}from"./DhjgWrB62.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}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 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r}from"./C6lssmvl.js";import{n as i}from"./D1MkndMZ.js";import{t as a}from"./R5Pz7BqB.js";import{t as o}from"./BVGzwAxr2.js";var s=e({useDcwQuery:()=>c});function c(e){let{t:s}=i(),c=o(),{lineId:l}=e,u=t({productId:``,recipeId:``,paramKey:``,nodeId:``,lastMin:30,bucketMs:15e3}),d=n(null),f=n(!1),p=n(``);async function m(){f.value=!0,p.value=``,d.value=null;try{d.value=await c.queryLine({lineId:l.value,productId:u.productId||void 0,recipeId:u.recipeId||void 0,paramKey:u.paramKey||void 0,nodeId:u.nodeId||void 0,fromMs:Date.now()-u.lastMin*6e4,toMs:Date.now(),bucketMs:u.bucketMs>0?u.bucketMs:void 0,limit:2e3}),d.value.channels.length===0&&(p.value=s(`dcwDetail.kszv5sq136`))}catch(e){p.value=a(e)}finally{f.value=!1}}return{query:u,queryResult:d,queryBusy:f,queryError:p,doQuery:m,daqParamKeys:r(()=>c.templates.map(e=>e.key))}}export{s as n,c as t};
@@ -1 +0,0 @@
1
- import{N as e,dt as t,ft as n,mt as r,u as i}from"./CavpkQb0.js";import{$ as a,P as o,R as s,S as c,V as l,W as u,b as d,d as f,f as p,h as m,i as h,it as g,k as _,m as v,p as y,rt as b,tt as x,y as S}from"./C6lssmvl.js";import{c as C,f as w,l as T,s as E}from"./ri9UF8rk.js";import{n as D}from"./Bko5adbu.js";import{t as O}from"./DPPC9Teq.js";import{n as k}from"./D1MkndMZ.js";import{i as A}from"./DXgw1dVL.js";import{t as j}from"./BBB_j2LU2.js";import{t as M}from"./BDNMzG2s.js";import{t as N}from"./R5Pz7BqB.js";import{t as ee}from"./DoL9u6wu.js";import{t as te}from"./CNs_Ozdc.js";import{t as P}from"./CfIbFnJz.js";import{a as F,t as ne}from"./DhjgWrB62.js";import{t as re}from"./BVGzwAxr2.js";import{t as I}from"./R1g64DNi2.js";import{t as L}from"./v77qozuJ2.js";import{n as R,r as z,t as B}from"./BxxpJxZf2.js";import{t as V}from"./D-80EfyA2.js";import{t as H}from"./BcosvNXb2.js";import{n as U,t as W}from"./hCN555XP2.js";import{t as G}from"./BmBlIIJo2.js";var K={class:`txt`},q={class:`mono`},ie={key:1,class:`infra-banner`},ae={class:`txt`},oe=Object.assign(c({__name:`DaqLineBanner`,props:{loaded:{type:Boolean},filteredLine:{},filteredLineState:{},anyLineActive:{type:Boolean}},setup(e){return(n,i)=>{let a=O;return e.loaded&&e.filteredLine&&e.filteredLineState?(l(),m(`div`,{key:0,class:t([`infra-banner`,{good:e.filteredLineState.active}])},[p(`span`,{class:t(e.filteredLineState.active?`i-tabler-circle-check`:`i-tabler-info-circle`)},null,2),p(`span`,K,[e.filteredLineState.active?(l(),m(h,{key:0},[S(r(n.$t(`daq.k3ktxbr085`))+r(e.filteredLine.name)+`」`+r(n.$t(`daq.k15lvw0o105`)),1),p(`b`,null,r(e.filteredLineState.productName),1),i[0]||=S(` · Recipe:`,-1),p(`b`,null,r(e.filteredLineState.recipeName),1),p(`small`,q,r(n.$t(`daq.k400lb086`))+` `+r(e.filteredLineState.runId?.slice(0,8))+` · `+r(n.$t(`daq.k3zkt2106`))+` `+r(e.filteredLineState.startedAt?.slice(11,19))+` `+r(n.$t(`daq.k69vag8108`))+` `+r(e.filteredLineState.taggedSamples)+` `+r(n.$t(`daq.k4118o092`)),1)],64)):(l(),m(h,{key:1},[S(r(n.$t(`daq.k3ktxbr085`))+r(e.filteredLine.name)+`」`+r(n.$t(`daq.k12uge2o107`)),1)],64))]),d(a,{class:`pill-btn`,to:`/dcw/${e.filteredLine.id}`},{default:b(()=>[S(r(e.filteredLineState.active?n.$t(`daq.k1ukoy0v093`):n.$t(`daq.k1cg78i8109`)),1)]),_:1},8,[`to`])],2)):e.loaded&&!e.anyLineActive?(l(),m(`div`,ie,[i[1]||=p(`span`,{class:`i-tabler-info-circle`},null,-1),p(`span`,ae,[S(r(n.$t(`daq.k19onw5w013`)),1),d(a,{to:`/dcw`},{default:b(()=>[S(r(n.$t(`daq.k1b2tk5c014`)),1)]),_:1}),S(r(n.$t(`daq.k1u9wnlg015`)),1)])])):v(``,!0)}}}),{__name:`DaqLineBanner`}),se={key:0,class:`infra-banner`},J={class:`txt`},ce=[`disabled`],le=Object.assign(c({__name:`DaqInfraBanner`,props:{infra:{},reconnecting:{type:Boolean}},emits:[`reconnect`],setup(e,{emit:t}){let n=t;return(t,i)=>e.infra?.degraded?(l(),m(`div`,se,[i[1]||=p(`span`,{class:`i-tabler-alert-triangle`},null,-1),p(`span`,J,r(e.infra.warning),1),p(`button`,{class:`pill-btn`,disabled:e.reconnecting,onClick:i[0]||=e=>n(`reconnect`)},r(e.reconnecting?t.$t(`daq.k1ld43ur094`):t.$t(`daq.kzg9805110`)),9,ce)])):v(``,!0)}}),{__name:`DaqInfraBanner`}),ue={key:0,class:`alarm-bar`},de={class:`bar-label`},fe={class:`mono`},Y={class:`alarm-scroll`},pe=[`title`],me={class:`mono dim`},he={class:`mono`},ge={key:0,class:`esc mono`},X=[`onClick`],_e=Object.assign(c({__name:`DaqAlarmBar`,props:{alarms:{}},emits:[`ack`],setup(e,{emit:t}){let n=t;return(t,i)=>e.alarms.length?(l(),m(`div`,ue,[p(`span`,de,[i[0]||=p(`span`,{class:`i-tabler-bell-ringing bell`},null,-1),S(` `+r(t.$t(`daq.k1alarm141`))+` `,1),p(`b`,fe,r(e.alarms.length),1)]),p(`div`,Y,[(l(!0),m(h,null,u(e.alarms,e=>(l(),m(`span`,{key:e.id,class:`alarm-item`,title:t.$t(`daq.k1esc143`,{p0:e.escalation})},[p(`b`,null,r(e.nodeName),1),p(`span`,me,r(e.metric),1),p(`span`,he,r(e.value)+` `+r(e.rule===`lt-min`?`<`:`>`)+` `+r(e.threshold),1),e.escalation>0?(l(),m(`small`,ge,`+`+r(e.escalation),1)):v(``,!0),p(`button`,{class:`mini-btn ack`,onClick:t=>n(`ack`,e.id)},r(t.$t(`daq.k1ack142`)),9,X)],8,pe))),128))])])):v(``,!0)}}),{__name:`DaqAlarmBar`}),Z={class:`aw-tile ctrl-card`},ve={class:`ctrl-row`},Q={class:`ctrl-left`},ye=[`title`],be={class:`cycle mono`},xe=[`title`],Se={class:`ctrl-right`},Ce={class:`ctrl-metrics mono`},we=[`title`],Te=[`title`],Ee=[`title`],De=[`title`],Oe={class:`line-strip`},ke={class:`strip-label`},Ae={class:`mono`},je={class:`strip-scroll`},Me={key:0,class:`lp-run`},Ne={key:1,class:`lp-idle`},Pe={class:`lp-idle`},Fe=Object.assign(c({__name:`DaqControlCard`,props:_({meta:{},lines:{},lineStateOf:{type:Function}},{controller:{required:!0},controllerModifiers:{}}),emits:_([`action`,`config`,`open-add`,`open-templates`],[`update:controller`]),setup(e,{emit:i}){let o=i,s=a(e,`controller`);return(i,a)=>{let c=O;return l(),m(`section`,Z,[p(`div`,ve,[p(`div`,Q,[p(`button`,{class:t([`aw-pill`,{running:s.value.running}]),title:i.$t(`daq.k1snap145`),onClick:a[0]||=e=>o(`action`,s.value.running?`pause`:`resume`)},[p(`span`,{class:t(s.value.running?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),S(` `+r(s.value.running?i.$t(`daq.kpui00095`):i.$t(`daq.knxpdpt111`)),1)],10,ye),p(`label`,be,[S(r(i.$t(`daq.k1ifahxj016`))+` `,1),g(p(`input`,{"onUpdate:modelValue":a[1]||=e=>s.value.defaultIntervalMs=e,type:`number`,min:`200`,max:`60000`,step:`100`,onChange:a[2]||=e=>o(`config`,s.value.defaultIntervalMs,s.value.defaultPublishIntervalMs)},null,544),[[T,s.value.defaultIntervalMs,void 0,{number:!0}]]),a[7]||=S(`ms `,-1)]),p(`label`,{class:`cycle mono`,title:i.$t(`daq.k1e8lcoo001`)},[S(r(i.$t(`daq.k1if98n0017`))+` `,1),g(p(`input`,{"onUpdate:modelValue":a[3]||=e=>s.value.defaultPublishIntervalMs=e,type:`number`,min:`0`,max:`60000`,step:`100`,onChange:a[4]||=e=>o(`config`,s.value.defaultIntervalMs,s.value.defaultPublishIntervalMs)},null,544),[[T,s.value.defaultPublishIntervalMs,void 0,{number:!0}]]),a[8]||=S(`ms `,-1)],8,xe)]),p(`div`,Se,[p(`span`,Ce,[p(`span`,null,r(i.$t(`daq.k45uio067`))+` `+r(s.value.nodesOnline)+`/`+r(s.value.nodesTotal),1),a[9]||=p(`span`,{class:`sep`},`·`,-1),p(`span`,{title:i.$t(`daq.k1yztsu4002`)},r(i.$t(`daq.k3xagp087`))+` `+r(e.meta.produced),9,we),a[10]||=p(`span`,{class:`sep`},`·`,-1),p(`span`,{title:i.$t(`daq.ko09iha003`)},r(i.$t(`daq.k427eu088`))+` `+r(e.meta.consumed),9,Te),a[11]||=p(`span`,{class:`sep`},`·`,-1),p(`span`,{class:t({warn:(e.meta.dropped??0)>0}),title:i.$t(`daq.k1droptip135`)},r(i.$t(`daq.k3w8go089`))+` `+r(e.meta.dropped),11,Ee),a[12]||=p(`span`,{class:`sep`},`·`,-1),p(`span`,{title:i.$t(`daq.kj1jbmw004`)},r(i.$t(`daq.k3wusd090`))+` `+r(e.meta.samplesStored),9,De)]),p(`button`,{class:`aw-pill outline add-btn`,onClick:a[5]||=e=>o(`open-templates`)},[a[13]||=p(`span`,{class:`i-tabler-adjustments-horizontal`},null,-1),S(` `+r(i.$t(`daq.k1f5cv0s018`)),1)]),p(`button`,{class:`aw-pill add-btn`,onClick:a[6]||=e=>o(`open-add`)},[a[14]||=p(`span`,{class:`i-tabler-plus`},null,-1),S(` `+r(i.$t(`daq.k1fn0ukb019`)),1)])])]),p(`div`,Oe,[p(`span`,ke,[a[15]||=p(`span`,{class:`i-tabler-route`},null,-1),S(` `+r(i.$t(`daq.k1b2o3b6020`)),1),p(`small`,Ae,r(e.lines.length),1)]),p(`div`,je,[(l(!0),m(h,null,u(e.lines,o=>(l(),y(c,{key:o.id,class:t([`line-pill`,{on:e.lineStateOf(o.id).active}]),style:n({"--lc":o.color}),to:`/dcw/${o.id}`,title:e.lineStateOf(o.id).active?i.$t(`daq.k3v957u120`,{p0:o.name,p1:e.lineStateOf(o.id).productName,p2:e.lineStateOf(o.id).recipeName}):i.$t(`daq.k1x7jnru121`,{p0:o.name})},{default:b(()=>[a[16]||=p(`span`,{class:`lp-dot`},null,-1),p(`b`,null,r(o.name),1),e.lineStateOf(o.id).active?(l(),m(`small`,Me,r(e.lineStateOf(o.id).recipeName??i.$t(`daq.k3vp67i096`)),1)):(l(),m(`small`,Ne,r(i.$t(`daq.k3zgkk021`)),1))]),_:2},1032,[`class`,`style`,`to`,`title`]))),128)),e.lines.length===0?(l(),y(c,{key:0,class:`line-pill`,to:`/dcw`},{default:b(()=>[a[17]||=p(`span`,{class:`lp-dot`},null,-1),p(`b`,null,r(i.$t(`daq.k1el12b1022`)),1),p(`small`,Pe,r(i.$t(`daq.k8jxxe8023`)),1)]),_:1})):v(``,!0)])])])}}}),{__name:`DaqControlCard`}),Ie={class:`modal`},Le={class:`m-title`},Re={class:`seg-row`},ze={class:`f-grid`},Be={class:`f`},Ve=[`value`],He={class:`f`},Ue=[`placeholder`],We={key:0,class:`f`},Ge=[`placeholder`],Ke={class:`f-grid`},qe={class:`f`},Je=[`value`],Ye={key:0,class:`f-grid driver-form`},Xe={key:0},Ze=[`onUpdate:modelValue`],Qe=[`value`],$e=[`onUpdate:modelValue`,`type`,`placeholder`],et={key:2,class:`hint`},tt={class:`test-row`},nt=[`disabled`],rt={key:1,class:`m-err`},it={class:`m-actions`},at=[`disabled`,`title`],ot=Object.assign(c({__name:`DaqAddNodeModal`,props:_({templates:{},driverCatalog:{},driverReady:{type:Function}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:_([`test`,`submit`,`close`],[`update:open`,`update:form`]),setup(e,{emit:n}){let i=n,o=a(e,`open`),s=a(e,`form`);return(n,a)=>o.value?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:a[9]||=w(e=>i(`close`),[`self`])},[p(`div`,Ie,[p(`h3`,Le,r(n.$t(`daq.k19rioqa024`)),1),p(`div`,Re,[p(`button`,{class:t([`seg`,{on:s.value.scenario===`mock`}]),onClick:a[0]||=e=>s.value.scenario=`mock`},r(n.$t(`daq.k1p5c1un025`)),3),p(`button`,{class:t([`seg`,{on:s.value.scenario===`real`}]),onClick:a[1]||=e=>s.value.scenario=`real`},r(n.$t(`daq.k1cbcp3o026`)),3)]),p(`div`,ze,[p(`label`,Be,[p(`span`,null,r(n.$t(`daq.k1fsgerc027`)),1),g(p(`select`,{"onUpdate:modelValue":a[2]||=e=>s.value.template=e,class:`inp`},[(l(!0),m(h,null,u(e.templates,e=>(l(),m(`option`,{key:e.key,value:e.key},r(e.name)+` · `+r(e.ch)+`(`+r(e.min)+`~`+r(e.max)+` `+r(e.unit)+`)`+r(e.builtin?``:n.$t(`daq.kr45rk9097`)),9,Ve))),128))],512),[[C,s.value.template]])]),p(`label`,He,[p(`span`,null,r(n.$t(`daq.k1ce2k1y028`)),1),g(p(`input`,{"onUpdate:modelValue":a[3]||=e=>s.value.name=e,class:`inp`,placeholder:n.$t(`daq.kgpxzy3005`)},null,8,Ue),[[T,s.value.name]])]),s.value.scenario===`real`?(l(),m(`label`,We,[p(`span`,null,r(n.$t(`daq.k13mfsfc029`)),1),g(p(`input`,{"onUpdate:modelValue":a[4]||=e=>s.value.interval=e,type:`number`,min:`1000`,max:`60000`,step:`500`,class:`inp`,placeholder:n.$t(`daq.k1eg1000a136`)},null,8,Ge),[[T,s.value.interval,void 0,{number:!0}]])])):v(``,!0)]),s.value.scenario===`real`?(l(),m(h,{key:0},[p(`div`,Ke,[p(`label`,qe,[p(`span`,null,r(n.$t(`daq.k1kt87rx030`)),1),g(p(`select`,{"onUpdate:modelValue":a[5]||=e=>s.value.driver=e,class:`inp`},[(l(!0),m(h,null,u(e.driverCatalog.filter(e=>e.status!==`planned`),t=>(l(),m(`option`,{key:t.kind,value:t.kind},r(t.label)+r(t.plugin?` ⌁`:``)+r(e.driverReady(t.kind)?``:n.$t(`daq.kjbqphp098`)),9,Je))),128))],512),[[C,s.value.driver]])])]),s.value.fields.length?(l(),m(`div`,Ye,[(l(!0),m(h,null,u(s.value.fields,e=>(l(),m(`label`,{key:e.key,class:`f`},[p(`span`,null,[S(r(e.label),1),e.required?(l(),m(`em`,Xe,`*`)):v(``,!0)]),e.type===`select`?g((l(),m(`select`,{key:0,"onUpdate:modelValue":t=>s.value.cfg[e.key]=t,class:`inp`},[(l(!0),m(h,null,u(e.options,e=>(l(),m(`option`,{key:e.value,value:e.value},r(e.label),9,Qe))),128))],8,Ze)),[[C,s.value.cfg[e.key]]]):g((l(),m(`input`,{key:1,"onUpdate:modelValue":t=>s.value.cfg[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`inp`},null,8,$e)),[[E,s.value.cfg[e.key]]]),e.hint?(l(),m(`small`,et,r(e.hint),1)):v(``,!0)]))),128))])):v(``,!0),p(`div`,tt,[p(`button`,{class:`pill-btn`,disabled:s.value.testing,onClick:a[6]||=e=>i(`test`)},r(s.value.testing?n.$t(`daq.k1fsh720099`):n.$t(`daq.k1fstglk112`)),9,nt),s.value.test?(l(),m(`span`,{key:0,class:t([`test-result`,s.value.test.ok?`ok`:`bad`])},[S(r(s.value.test.ok?`✓`:`✗`)+` `+r(s.value.test.message),1),s.value.test.latencyMs==null?v(``,!0):(l(),m(h,{key:0},[S(`(`+r(s.value.test.latencyMs)+`ms)`,1)],64))],2)):v(``,!0)])],64)):v(``,!0),s.value.error?(l(),m(`p`,rt,r(s.value.error),1)):v(``,!0),p(`div`,it,[p(`button`,{class:`aw-pill outline`,onClick:a[7]||=e=>i(`close`)},r(n.$t(`daq.k3xdnn031`)),1),p(`button`,{class:`aw-pill`,disabled:s.value.saving||s.value.scenario===`real`&&s.value.test!=null&&!s.value.test.ok,title:s.value.scenario===`real`&&!(s.value.test&&s.value.test.ok)?n.$t(`daq.k1needtst137`):``,onClick:a[8]||=e=>i(`submit`)},r(s.value.saving?n.$t(`daq.k1bg4759100`):s.value.scenario===`real`?n.$t(`daq.k7pxjxo113`):n.$t(`daq.k1bge46t118`)),9,at)])])])):v(``,!0)}}),{__name:`DaqAddNodeModal`}),st={class:`modal`},ct={class:`m-title`},lt={class:`sec-label`},ut={class:`tpl-table`},dt={class:`mono dim`},ft={class:`mono range`},pt={class:`right actions`},mt=[`onClick`],ht=[`onClick`],gt={key:0},_t={colspan:`3`,class:`empty`},vt={class:`sec-label`},yt={class:`f-grid`},bt={class:`f`},xt=[`placeholder`],St={class:`f`},Ct=[`placeholder`],wt={class:`f`},Tt=[`placeholder`],Et={class:`f`},Dt=[`placeholder`],Ot={class:`f`},kt={class:`f`},At={class:`f`},jt={class:`f`},Mt=[`value`],Nt={class:`f`},Pt={class:`hint`},Ft={class:`f`},It={class:`hint`},Lt={key:0,class:`m-err`},Rt={class:`m-actions`},zt=[`disabled`],Bt={class:`sec-label`},Vt={class:`tpl-table`},Ht={class:`mono dim`},Ut={class:`mono range`},Wt={class:`right actions`},Gt=[`onClick`],Kt=Object.assign(c({__name:`DaqTemplateModal`,props:_({customTpls:{},builtinTpls:{},iconChoices:{},iconLabels:{},editing:{},saving:{type:Boolean},error:{},confirmingDel:{}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:_([`edit`,`copy`,`remove`,`reset`,`save`,`close`],[`update:open`,`update:form`]),setup(e,{emit:t}){let n=t,i=a(e,`open`),o=a(e,`form`);return(t,a)=>i.value?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:a[12]||=w(e=>n(`close`),[`self`])},[p(`div`,st,[p(`h3`,ct,r(t.$t(`daq.k11mv96s032`)),1),p(`p`,lt,r(t.$t(`daq.ktji4ky033`)),1),p(`table`,ut,[p(`tbody`,null,[(l(!0),m(h,null,u(e.customTpls,i=>(l(),m(`tr`,{key:i.key},[p(`td`,null,[p(`b`,null,r(i.name),1),p(`small`,dt,r(i.code),1)]),p(`td`,ft,r(i.min)+`~`+r(i.max)+` `+r(i.unit)+` · `+r(i.decimals)+` `+r(t.$t(`daq.k48oi091`)),1),p(`td`,pt,[p(`button`,{class:`mini-btn`,onClick:e=>n(`edit`,i)},r(t.$t(`daq.k45eb0034`)),9,mt),p(`button`,{class:`mini-btn danger`,onClick:e=>n(`remove`,i)},r(e.confirmingDel===i.key?t.$t(`daq.k1hhheu3101`):t.$t(`daq.k3xakp114`)),9,ht)])]))),128)),e.customTpls.length?v(``,!0):(l(),m(`tr`,gt,[p(`td`,_t,r(t.$t(`daq.kztvzbo035`)),1)]))])]),p(`p`,vt,r(e.editing?t.$t(`daq.k1iiph0s102`):t.$t(`daq.k1efixrj115`)),1),p(`div`,yt,[p(`label`,bt,[p(`span`,null,[S(r(t.$t(`daq.k3xhia036`)),1),a[13]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":a[0]||=e=>o.value.name=e,class:`inp`,placeholder:t.$t(`daq.k5opd2t006`)},null,8,xt),[[T,o.value.name]])]),p(`label`,St,[p(`span`,null,[S(r(t.$t(`daq.k3x4ef037`)),1),a[14]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":a[1]||=e=>o.value.unit=e,class:`inp`,placeholder:t.$t(`daq.unitPh`)},null,8,Ct),[[T,o.value.unit]])]),p(`label`,wt,[p(`span`,null,r(t.$t(`daq.k1l477m0038`)),1),g(p(`input`,{"onUpdate:modelValue":a[2]||=e=>o.value.ch=e,class:`inp`,placeholder:t.$t(`daq.kk8o4tl007`)},null,8,Tt),[[T,o.value.ch]])]),p(`label`,Et,[p(`span`,null,r(t.$t(`daq.k1ayxrqb039`)),1),g(p(`input`,{"onUpdate:modelValue":a[3]||=e=>o.value.code=e,class:`inp`,placeholder:t.$t(`daq.kzn3l7l008`)},null,8,Dt),[[T,o.value.code]])]),p(`label`,Ot,[p(`span`,null,[S(r(t.$t(`daq.k1l9jv5m040`)),1),a[15]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":a[4]||=e=>o.value.min=e,type:`number`,class:`inp`},null,512),[[T,o.value.min,void 0,{number:!0}]])]),p(`label`,kt,[p(`span`,null,[S(r(t.$t(`daq.k1l9jv4p041`)),1),a[16]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":a[5]||=e=>o.value.max=e,type:`number`,class:`inp`},null,512),[[T,o.value.max,void 0,{number:!0}]])]),p(`label`,At,[p(`span`,null,r(t.$t(`daq.k3mxmcx042`)),1),g(p(`input`,{"onUpdate:modelValue":a[6]||=e=>o.value.decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[T,o.value.decimals,void 0,{number:!0}]])]),p(`label`,jt,[p(`span`,null,r(t.$t(`daq.k3xx56043`)),1),g(p(`select`,{"onUpdate:modelValue":a[7]||=e=>o.value.icon=e,class:`inp`},[(l(!0),m(h,null,u(e.iconChoices,t=>(l(),m(`option`,{key:t,value:t},r(e.iconLabels[t]),9,Mt))),128))],512),[[C,o.value.icon]])]),p(`label`,Nt,[p(`span`,null,r(t.$t(`daq.k1f4eknv044`)),1),g(p(`input`,{"onUpdate:modelValue":a[8]||=e=>o.value.base=e,type:`number`,class:`inp`},null,512),[[T,o.value.base,void 0,{number:!0}]]),p(`small`,Pt,r(t.$t(`daq.kytd15s045`)),1)]),p(`label`,Ft,[p(`span`,null,r(t.$t(`daq.k1f4ifpo046`)),1),g(p(`input`,{"onUpdate:modelValue":a[9]||=e=>o.value.amp=e,type:`number`,class:`inp`},null,512),[[T,o.value.amp,void 0,{number:!0}]]),p(`small`,It,r(t.$t(`daq.ksp2aji047`)),1)])]),e.error?(l(),m(`p`,Lt,r(e.error),1)):v(``,!0),p(`div`,Rt,[p(`button`,{class:`aw-pill outline`,onClick:a[10]||=e=>n(`reset`)},r(t.$t(`daq.k48p40048`)),1),p(`button`,{class:`pill-btn`,disabled:e.saving,onClick:a[11]||=e=>n(`save`)},r(e.saving?t.$t(`daq.k1b38d59103`):e.editing?t.$t(`daq.k1b39281116`):t.$t(`daq.k1b3dtga119`)),9,zt)]),p(`p`,Bt,r(t.$t(`daq.k1w8s84s049`)),1),p(`table`,Vt,[p(`tbody`,null,[(l(!0),m(h,null,u(e.builtinTpls,e=>(l(),m(`tr`,{key:e.key},[p(`td`,null,[p(`b`,null,r(e.name),1),p(`small`,Ht,r(e.code),1)]),p(`td`,Ut,r(e.min)+`~`+r(e.max)+` `+r(e.unit)+` · `+r(e.decimals)+` `+r(t.$t(`daq.k48oi091`)),1),p(`td`,Wt,[p(`button`,{class:`mini-btn`,onClick:t=>n(`copy`,e)},r(t.$t(`daq.k3y694050`)),9,Gt)])]))),128))])])])])):v(``,!0)}}),{__name:`DaqTemplateModal`}),qt={class:`aw-tile opt-card`},Jt={class:`opt-count mono`},Yt={class:`opt-filters`},Xt=[`value`],Zt={value:``},Qt=[`value`],$t=[`value`],en={value:``},tn=[`value`],nn={key:0,class:`opt-empty`},rn={class:`opt-list`},an={class:`opt-line1`},on={class:`opt-node`},sn={class:`mono opt-params`},cn={class:`mono opt-time`},ln=[`disabled`,`onClick`],un=[`onClick`],dn={class:`opt-line2 mono`},fn={key:1,class:`opt-open-hint`},pn={key:2,class:`opt-agg`},mn={key:3,class:`opt-agg`},hn={key:0,class:`opt-series`},gn={class:`opt-spark`,viewBox:`0 0 240 36`,preserveAspectRatio:`none`},_n=[`points`],vn={class:`mono`},yn={key:0,class:`opt-empty`},bn=Object.assign(c({__name:`DaqOptPanel`,props:{optimizations:{},lines:{},open:{type:Boolean},mounted:{type:Boolean},filterLine:{},filterRecipe:{},recipeOptions:{},seriesOf:{},seriesLoading:{},statusKey:{type:Function},seriesPath:{type:Function},fmtPoint:{type:Function}},emits:[`toggle`,`selectLine`,`selectRecipe`,`line-change`,`filter`,`series`,`rollback`],setup(e,{emit:n}){let i=n;function a(e){i(`selectLine`,e.target.value),i(`line-change`)}function o(e){i(`selectRecipe`,e.target.value),i(`filter`)}return(n,s)=>(l(),m(`section`,qt,[p(`button`,{class:`opt-head`,onClick:s[0]||=e=>i(`toggle`)},[s[2]||=p(`span`,{class:`i-tabler-flask`},null,-1),p(`b`,null,r(n.$t(`daq.k1optt001`)),1),p(`span`,Jt,r(e.optimizations.length),1),p(`span`,{class:t([`opt-chevron`,{open:e.open}])},null,2)]),p(`div`,{class:t([`opt-body`,{open:e.open}])},[e.mounted?(l(),m(h,{key:0},[p(`div`,Yt,[p(`select`,{value:e.filterLine,class:`inp-sel`,onChange:a},[p(`option`,Zt,r(n.$t(`daq.k1optf001`)),1),(l(!0),m(h,null,u(e.lines,e=>(l(),m(`option`,{key:e.id,value:e.id},r(e.name),9,Qt))),128))],40,Xt),p(`select`,{value:e.filterRecipe,class:`inp-sel`,onChange:o},[p(`option`,en,r(n.$t(`daq.k1optf004`)),1),(l(!0),m(h,null,u(e.recipeOptions,e=>(l(),m(`option`,{key:e.id,value:e.id},r(e.name),9,tn))),128))],40,$t),p(`button`,{class:`mini-act`,onClick:s[1]||=e=>i(`filter`)},r(n.$t(`daq.k1optf002`)),1)]),e.optimizations.length===0?(l(),m(`p`,nn,r(n.$t(`daq.k1opte001`)),1)):v(``,!0),p(`ul`,rn,[(l(!0),m(h,null,u(e.optimizations.slice(0,30),a=>(l(),m(`li`,{key:a.id,class:t([`opt-row`,a.status])},[p(`div`,an,[p(`span`,{class:t([`opt-status`,a.status])},r(n.$t(e.statusKey(a.status))),3),p(`b`,on,r(a.nodeName),1),p(`span`,sn,r(a.params[0]?.from??`?`)+` → `+r(a.params[0]?.to),1),p(`span`,cn,r(a.setAt.slice(5,16).replace(`T`,` `)),1),e.seriesOf[a.id]?v(``,!0):(l(),m(`button`,{key:0,class:`mini-act`,disabled:e.seriesLoading===a.id,onClick:e=>i(`series`,a.id)},r(n.$t(`daq.k1opta001`)),9,ln)),a.status===`open`?(l(),m(`button`,{key:1,class:`mini-act danger`,onClick:e=>i(`rollback`,a.id)},r(n.$t(`daq.k1opta002`)),9,un)):v(``,!0)]),p(`div`,dn,[a.judge?(l(),m(`span`,{key:0,class:t([`opt-judge`,a.judge.verdict])},r(a.judge.verdict)+`(`+r(a.judge.by)+`): `+r(a.judge.reason.slice(0,70)),3)):a.status===`open`?(l(),m(`span`,fn,r(n.$t(`daq.k1opto001`)),1)):v(``,!0),a.aggPending?(l(),m(`span`,pn,r(n.$t(`daq.k1optw001`)),1)):a.windowAgg&&a.windowAgg.channels.length?(l(),m(`span`,mn,[(l(!0),m(h,null,u(a.windowAgg.channels,t=>(l(),m(h,{key:t.daqNodeId},[S(r(t.ch)+` `+r(e.fmtPoint(t.min))+`~`+r(e.fmtPoint(t.max))+`(`+r(n.$t(`daq.k1optw002`))+r(t.breaches<0?`-`:t.breaches)+`) `,1)],64))),128))])):v(``,!0)]),e.seriesOf[a.id]?(l(),m(`div`,hn,[(l(!0),m(h,null,u(e.seriesOf[a.id]?.channels??[],t=>(l(),m(`div`,{key:t.nodeId,class:`opt-ch`},[(l(),m(`svg`,gn,[p(`polyline`,{points:e.seriesPath(t.points)},null,8,_n)])),p(`span`,vn,r(t.ch)+` `+r(e.fmtPoint(t.points.at(-1)?.value??t.points.at(-1)?.avg))+r(t.unit),1)]))),128)),(e.seriesOf[a.id]?.channels.length??0)===0?(l(),m(`p`,yn,r(n.$t(`daq.k1opte002`)),1)):v(``,!0)])):v(``,!0)],2))),128))])],64)):v(``,!0)],2)]))}}),{__name:`DaqOptPanel`}),xn={class:`mono dim`},Sn={class:`mono ch`},Cn=[`title`],wn=[`title`],Tn={class:`trend-cell`},En=[`title`],Dn=[`y1`,`y2`],On=[`y1`,`y2`],kn=[`points`],An=[`y1`,`y2`],jn={class:`mono`},Mn={class:`mono`},Nn=[`title`],Pn=[`title`],Fn=[`value`,`title`],In={value:``},Ln=[`value`],Rn=[`title`],zn={key:1,class:`run-pill na`},Bn={class:`prod-cell`},Vn=[`title`],Hn=[`title`],Un={key:1,class:`dim`},Wn={class:`dev-binds`},Gn=[`title`],Kn=[`onClick`],qn=[`title`],Jn={value:``},Yn=[`value`,`disabled`],Xn={class:`right`},Zn=[`title`],Qn=120,$=26,$n=Object.assign(M(c({__name:`DaqNodeRow`,props:{n:{}},setup(n){let i=n,{t:a}=k(),o=ne(),s=re(),c=I();function g(e){if(!e.lastAt)return!0;let t=e.intervalMs??o.controller.defaultIntervalMs;return Date.now()-Date.parse(e.lastAt)>Math.max(t*4,12e3)}function _(e){return e.enabled?e.lineId?s.lineStateOf(e.lineId).active?!o.controller.running||g(e)?`offline`:e.state:`idle`:`unassigned`:`disabled`}function y(e){let t=_(e);return t===`ok`||t===`warn`||t===`alarm`}function x(e){if(!e.lineId)return null;let t=s.lineStateOf(e.lineId);return!t.active||!t.recipeId?null:s.recipes.find(e=>e.id===t.recipeId)?.daqWindows?.find(t=>t.nodeId===e.id)??null}function C(e){let t=x(e);return!t||e.value==null?!1:t.min!=null&&e.value<t.min||t.max!=null&&e.value>t.max}function w(e){let t=x(e);return t&&(t.min!=null||t.max!=null)?{min:t.min,max:t.max}:e.warnLow!=null||e.warnHigh!=null?{min:e.warnLow,max:e.warnHigh}:{min:null,max:null}}function T(e){let t=e.filter(Number.isFinite);if(t.length<2)return``;let n=Math.min(...t),r=Math.max(...t)-n||1;return t.map((e,i)=>`${(i/(t.length-1)*Qn).toFixed(1)},${($-(e-n)/r*24-1).toFixed(1)}`).join(` `)}function E(e,t){if(t==null||!Number.isFinite(t))return null;let n=e.filter(Number.isFinite);if(n.length<2)return null;let r=Math.min(...n,t),i=Math.max(...n,t)-r||1;return Number(($-(t-r)/i*24-1).toFixed(1))}function D(e){let t=_(e),n=a(`daq.k44c2n065`);if(t===`offline`)return e.lastError?{key:t,label:n,tip:e.lastError}:{key:t,label:n,tip:o.controller.running?a(`daq.k1staled129`,{p0:Math.round(Math.max((e.intervalMs??o.controller.defaultIntervalMs)*4,12e3)/1e3)}):a(`daq.k1gateoff140`)};let r={ok:a(`daq.k41k5c062`),warn:a(`daq.k49z8v063`),alarm:a(`daq.k3xmid064`),offline:n,idle:a(`daq.k3ozyqz117`),disabled:a(`daq.k1disabl130`),unassigned:a(`daq.k3ootr6053`)};if(t===`idle`)return{key:t,label:r.idle,tip:a(`daq.k1idlehin139`)};if((t===`ok`||t===`warn`||t===`alarm`)&&C(e)){let t=x(e);return{key:`alarm`,label:a(`daq.k1l3pt51104`),tip:a(`daq.k1hrrqa1122`,{p0:t?.min??`-∞`,p1:t?.max??`+∞`,p2:``})}}return{key:t,label:r[t],tip:``}}function j(e){let t=o.templates.find(t=>t.key===F(e));return t?`${t.name} · ${t.ch}`:e||`-`}let M=e=>o.templates.find(t=>t.key===F(e))?.signalKind??`scalar`,ee=e=>e===`vector`?`向量`:e===`image`?`图像`:`标量`,te=e=>e==null?a(`daq.k9vnp9h124`,{p0:o.controller.defaultIntervalMs}):`${e}ms`,P=e=>e==null?a(`daq.k9vnp9h124`,{p0:o.controller.defaultPublishIntervalMs}):e===0?a(`daq.k41mvv078`):`${e}ms`,L=e=>o.meta.drivers.find(t=>t.kind===e)?.status===`planned`,R=e=>e.deviceIds??(e.deviceBindingId?[e.deviceBindingId]:[]),z=e=>c.twins.find(t=>t.id===e)?.name??e,B=f(()=>c.twins.filter(e=>e.kind!==`daq`&&!(e.modelRef??``).startsWith(`daq-`)&&!(e.modelRef??``).startsWith(`dcw-`))),V=f(()=>{let e=i.n,t=w(e),n=e.lineId?s.lineStateOf(e.lineId):null;return{tpl:j(e.templateRef),pill:D(e),alarm:C(e),live:y(e),trend:T(e.hist),limMin:E(e.hist,t.min),limMax:E(e.hist,t.max),interval:te(e.intervalMs),publish:P(e.publishIntervalMs),lineActive:!!n?.active,lineProduct:n?.productName??``,lineRecipe:n?.recipeName??``}});async function H(){let e=i.n,t=!e.enabled;try{await o.patchNode(e.id,{enabled:t}),e.enabled=t,t||(e.state=`offline`),A.success(a(t?`daq.k1nodestart147`:`daq.k1nodestop146`))}catch(e){A.error(N(e))}}async function U(e){let t=e.target.value;try{await o.patchNode(i.n.id,{lineId:t});let e=i.n;e.lineId=t}catch(e){A.error(N(e))}}async function W(e){let t=e.target.value;if(!t)return;let n=i.n;if(!n.deviceIds?.includes(t)){try{await o.setNodeBindings(n.id,[...n.deviceIds??[],t])}catch(e){A.error(N(e))}e.target.value=``}}async function G(e){let t=i.n;try{await o.setNodeBindings(t.id,(t.deviceIds??[]).filter(t=>t!==e))}catch(e){A.error(N(e))}}return(i,a)=>{let o=O;return l(),m(`tr`,{class:t({"row-recipe-alarm":V.value.alarm})},[p(`td`,null,[p(`span`,xn,r(n.n.id.slice(0,8)),1),p(`b`,null,r(n.n.name),1),p(`small`,Sn,r(V.value.tpl),1)]),p(`td`,null,[p(`span`,{class:t([`st-pill`,[V.value.pill.key]]),title:V.value.pill.tip},r(V.value.pill.label),11,Cn)]),p(`td`,{class:t([`mono val`,{stale:!V.value.live,"val-alarm":n.n.state===`alarm`||V.value.alarm}]),title:V.value.live?void 0:V.value.pill.tip},[S(r(n.n.value==null?`--`:n.n.value.toFixed(n.n.decimals))+` `,1),p(`small`,null,r(n.n.unit),1)],10,wn),p(`td`,Tn,[(l(),m(`svg`,{class:`trend`,viewBox:`0 0 120 26`,preserveAspectRatio:`none`,title:i.$t(`daq.k1trnd002`)},[V.value.limMin==null?v(``,!0):(l(),m(`line`,{key:0,class:`lim`,x1:`0`,y1:V.value.limMin,x2:`120`,y2:V.value.limMin},null,8,Dn)),V.value.limMax==null?v(``,!0):(l(),m(`line`,{key:1,class:`lim max`,x1:`0`,y1:V.value.limMax,x2:`120`,y2:V.value.limMax},null,8,On)),V.value.trend?(l(),m(`polyline`,{key:2,class:t([`trace`,{alarm:n.n.state===`alarm`||V.value.alarm}]),points:V.value.trend},null,10,kn)):(l(),m(`line`,{key:3,class:`trace-idle`,x1:`0`,y1:$/2,x2:`120`,y2:$/2},null,8,An))],8,En))]),p(`td`,jn,r(V.value.interval),1),p(`td`,Mn,r(V.value.publish),1),p(`td`,null,[p(`span`,{class:t([`drv-tag`,{planned:L(n.n.driver)}]),title:L(n.n.driver)?i.$t(`daq.k1plndrv138`):``},r(n.n.driver),11,Nn),M(n.n.templateRef)===`scalar`?v(``,!0):(l(),m(`span`,{key:0,class:t([`sig-tag`,M(n.n.templateRef)]),title:M(n.n.templateRef)===`image`?`图像帧节点:像素入对象存储,帧列表/画廊可查,daq_export 落原文件`:`向量帧节点:多点轮廓,daq_frames 检索`},r(ee(M(n.n.templateRef))),11,Pn))]),p(`td`,null,[p(`select`,{class:`line-sel`,value:n.n.lineId,title:i.$t(`daq.k3q23v3010`),onChange:U},[p(`option`,In,r(i.$t(`daq.k3ootr6053`)),1),(l(!0),m(h,null,u(e(s).lines,e=>(l(),m(`option`,{key:e.id,value:e.id},r(e.name),9,Ln))),128))],40,Fn)]),p(`td`,null,[n.n.lineId?(l(),m(`span`,{key:0,class:t([`run-pill`,{on:V.value.lineActive}]),title:i.$t(`daq.k1runtipc131`)},[a[0]||=p(`span`,{class:`rp-dot`},null,-1),S(` `+r(V.value.lineActive?i.$t(`daq.k3vp67i096`):i.$t(`daq.k3ozyqz117`)),1)],10,Rn)):(l(),m(`span`,zn,r(i.$t(`daq.k3ootr6053`)),1))]),p(`td`,Bn,[n.n.lineId&&V.value.lineActive?(l(),m(h,{key:0},[p(`b`,{title:i.$t(`daq.k1prdrtip132`)},r(V.value.lineProduct||`--`),9,Vn),p(`small`,{class:`mono`,title:i.$t(`daq.k1prdrtip132`)},r(V.value.lineRecipe||`--`),9,Hn)],64)):(l(),m(`span`,Un,`--`))]),p(`td`,null,[p(`div`,Wn,[(l(!0),m(h,null,u(R(n.n),e=>(l(),m(`span`,{key:e,class:`dev-bind-chip`,title:i.$t(`daq.k2bindtip137`)},[S(r(z(e))+` `,1),p(`span`,{class:`dev-unbind`,title:`unbind`,onClick:t=>G(e)},`✕`,8,Kn)],8,Gn))),128)),p(`select`,{class:`line-sel dev-add`,value:``,title:i.$t(`daq.k2bindtip137`),onChange:W},[p(`option`,Jn,r(i.$t(`daq.k3own4q056`)),1),(l(!0),m(h,null,u(B.value,e=>(l(),m(`option`,{key:e.id,value:e.id,disabled:(n.n.deviceIds??[]).includes(e.id)},r(z(e.id)),9,Yn))),128))],40,qn)])]),p(`td`,Xn,[p(`button`,{class:t([`node-toggle`,{off:!n.n.enabled}]),title:n.n.enabled?i.$t(`daq.k1nodestop146`):i.$t(`daq.k1nodestart147`),onClick:H},[p(`span`,{class:t(n.n.enabled?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),S(` `+r(n.n.enabled?i.$t(`daq.k1nodestop146`):i.$t(`daq.k1nodestart147`)),1)],10,Zn),d(o,{class:`console-link`,to:`/daq/${n.n.id}`},{default:b(()=>[a[1]||=p(`span`,{class:`i-tabler-dashboard`},null,-1),S(` `+r(i.$t(`daq.k3o3jg2074`)),1)]),_:1},8,[`to`])])],2)}}}),[[`__scopeId`,`data-v-8da920fa`]]),{__name:`WorkshopDaqNodeRow`}),er={class:`aw-tile table-card`},tr={class:`tbl-toolbar`},nr={class:`filters`},rr={class:`flt`},ir={value:``},ar=[`value`],or={value:`none`},sr={class:`flt`},cr={value:``},lr=[`value`],ur={value:`none`},dr=[`title`],fr={value:``},pr={value:`on`},mr={value:`off`},hr={class:`flt`},gr={value:``},_r={value:`ok`},vr={value:`warn`},yr={value:`alarm`},br={value:`offline`},xr={class:`flt`},Sr={value:``},Cr=[`value`],wr={class:`flt`},Tr={value:``},Er=[`value`],Dr=[`title`],Or={value:``},kr={value:`live`},Ar={value:`hour`},jr={value:`day`},Mr={value:`old`},Nr={value:`never`},Pr={class:`flt`},Fr=[`placeholder`],Ir={class:`count mono`},Lr={class:`ops-panels`},Rr={class:`panel-head`},zr={class:`panel-body`},Br={key:0,class:`panel-empty`},Vr={class:`mono dim`},Hr={class:`mono`},Ur={key:0,class:`esc mono`},Wr=[`onClick`],Gr={class:`ops-panel event-panel`},Kr={class:`panel-head`},qr={class:`panel-body`},Jr={key:0,class:`panel-empty`},Yr={class:`mono dim t`},Xr=[`title`],Zr=[`title`],Qr=[`title`],$r={class:`right`},ei={key:0,class:`vs-pad`,"aria-hidden":`true`},ti={key:1,class:`vs-pad`,"aria-hidden":`true`},ni={key:2},ri={colspan:`11`},ii={class:`pane-empty`,style:{"min-height":`120px`}},ai={class:`pe-sub`},oi={key:3},si={colspan:`11`},ci={class:`pane-empty`,style:{"min-height":`90px`}},li={class:`pe-sub`},ui=Object.assign(c({__name:`DaqNodePanel`,props:_({hasFilters:{type:Boolean},lines:{},boundDevices:{},templateOptions:{},driverOptions:{},filteredCount:{},totalCount:{},opsRecent:{},opsKindLabel:{type:Function},opsTime:{type:Function},alarms:{},visibleNodes:{},padTopPx:{},padBottomPx:{},loading:{type:Boolean},loaded:{type:Boolean},error:{}},{filters:{required:!0},filtersModifiers:{},tableEl:{required:!0},tableElModifiers:{}}),emits:_([`clear-filters`,`ack`],[`update:filters`,`update:tableEl`]),setup(e,{emit:i}){let o=i,s=a(e,`filters`),c=a(e,`tableEl`);return(i,a)=>{let f=O,_=$n,x=j;return l(),y(x,{spinning:e.loading},{default:b(()=>[p(`section`,er,[p(`div`,tr,[p(`div`,nr,[p(`label`,rr,[p(`span`,null,r(i.$t(`daq.k3wj9n051`)),1),g(p(`select`,{"onUpdate:modelValue":a[0]||=e=>s.value.lineId=e,class:`inp-sel`},[p(`option`,ir,r(i.$t(`daq.k1bkl9uj052`)),1),(l(!0),m(h,null,u(e.lines,e=>(l(),m(`option`,{key:e.id,value:e.id},r(e.name),9,ar))),128)),p(`option`,or,r(i.$t(`daq.k3ootr6053`)),1)],512),[[C,s.value.lineId]])]),p(`label`,sr,[p(`span`,null,r(i.$t(`daq.k1i8rtqt054`)),1),g(p(`select`,{"onUpdate:modelValue":a[1]||=e=>s.value.deviceId=e,class:`inp-sel`},[p(`option`,cr,r(i.$t(`daq.k1bkw4m2055`)),1),(l(!0),m(h,null,u(e.boundDevices,e=>(l(),m(`option`,{key:e.id,value:e.id},r(e.name)+`(`+r(e.count)+`) `,9,lr))),128)),p(`option`,ur,r(i.$t(`daq.k3own4q056`)),1)],512),[[C,s.value.deviceId]])]),p(`label`,{class:`flt`,title:i.$t(`daq.khb8mru009`)},[p(`span`,null,r(i.$t(`daq.k1b2tkyv057`)),1),g(p(`select`,{"onUpdate:modelValue":a[2]||=e=>s.value.lineRun=e,class:`inp-sel`},[p(`option`,fr,r(i.$t(`daq.k3x4t1058`)),1),p(`option`,pr,r(i.$t(`daq.k1nxm3p7059`)),1),p(`option`,mr,r(i.$t(`daq.k1ulx34e060`)),1)],512),[[C,s.value.lineRun]])],8,dr),p(`label`,hr,[p(`span`,null,r(i.$t(`daq.k1iwdfef061`)),1),g(p(`select`,{"onUpdate:modelValue":a[3]||=e=>s.value.state=e,class:`inp-sel`},[p(`option`,gr,r(i.$t(`daq.k3x4t1058`)),1),p(`option`,_r,r(i.$t(`daq.k41k5c062`)),1),p(`option`,vr,r(i.$t(`daq.k49z8v063`)),1),p(`option`,yr,r(i.$t(`daq.k3xmid064`)),1),p(`option`,br,r(i.$t(`daq.k44c2n065`)),1)],512),[[C,s.value.state]])]),p(`label`,xr,[p(`span`,null,r(i.$t(`daq.k1flttpl010`)),1),g(p(`select`,{"onUpdate:modelValue":a[4]||=e=>s.value.template=e,class:`inp-sel`},[p(`option`,Sr,r(i.$t(`daq.k1flttpl011`)),1),(l(!0),m(h,null,u(e.templateOptions,e=>(l(),m(`option`,{key:e.ref,value:e.ref},r(e.label)+`(`+r(e.count)+`) `,9,Cr))),128))],512),[[C,s.value.template]])]),p(`label`,wr,[p(`span`,null,r(i.$t(`daq.k1fltdrv012`)),1),g(p(`select`,{"onUpdate:modelValue":a[5]||=e=>s.value.driver=e,class:`inp-sel`},[p(`option`,Tr,r(i.$t(`daq.k1fltdrv013`)),1),(l(!0),m(h,null,u(e.driverOptions,e=>(l(),m(`option`,{key:e.kind,value:e.kind},r(e.label)+`(`+r(e.count)+`) `,9,Er))),128))],512),[[C,s.value.driver]])]),p(`label`,{class:`flt`,title:i.$t(`daq.k1flttim014`)},[p(`span`,null,r(i.$t(`daq.k1flttim015`)),1),g(p(`select`,{"onUpdate:modelValue":a[6]||=e=>s.value.time=e,class:`inp-sel`},[p(`option`,Or,r(i.$t(`daq.k1flttim016`)),1),p(`option`,kr,r(i.$t(`daq.k1timlv017`)),1),p(`option`,Ar,r(i.$t(`daq.k1timhr018`)),1),p(`option`,jr,r(i.$t(`daq.k1timdy019`)),1),p(`option`,Mr,r(i.$t(`daq.k1timld020`)),1),p(`option`,Nr,r(i.$t(`daq.k1timnv021`)),1)],512),[[C,s.value.time]])],8,Dr),p(`label`,Pr,[p(`span`,null,r(i.$t(`daq.k1fltsrc022`)),1),g(p(`input`,{"onUpdate:modelValue":a[7]||=e=>s.value.search=e,class:`inp-sel flt-search`,type:`search`,placeholder:i.$t(`daq.k1fltsph023`)},null,8,Fr),[[T,s.value.search]])]),e.hasFilters?(l(),m(`button`,{key:0,class:`mini-btn clear-btn`,onClick:a[8]||=e=>o(`clear-filters`)},r(i.$t(`daq.k1fygck2066`)),1)):v(``,!0)]),p(`span`,Ir,r(e.filteredCount)+` / `+r(e.totalCount)+` `+r(i.$t(`daq.k45uio067`)),1)]),p(`div`,Lr,[p(`div`,{class:t([`ops-panel alarm-panel`,{live:e.alarms.length>0}])},[p(`div`,Rr,[a[9]||=p(`span`,{class:`i-tabler-bell-ringing bell`},null,-1),p(`b`,null,r(i.$t(`daq.k1alarm141`)),1),p(`span`,{class:t([`mono cnt`,{hot:e.alarms.length>0}])},r(e.alarms.length),3)]),p(`div`,zr,[e.alarms.length===0?(l(),m(`p`,Br,r(i.$t(`daq.k1evt001`)),1)):(l(!0),m(h,{key:1},u(e.alarms,e=>(l(),m(`div`,{key:e.id,class:`alarm-row`},[a[10]||=p(`span`,{class:`i-tabler-alert-triangle tri`},null,-1),p(`b`,null,r(e.nodeName),1),p(`span`,Vr,r(e.metric),1),p(`span`,Hr,r(e.value)+` `+r(e.rule===`lt-min`?`<`:`>`)+` `+r(e.threshold),1),e.escalation>0?(l(),m(`small`,Ur,`+`+r(e.escalation),1)):v(``,!0),p(`button`,{class:`mini-btn ack`,onClick:t=>o(`ack`,e.id)},r(i.$t(`daq.k1ack142`)),9,Wr)]))),128))])],2),p(`div`,Gr,[p(`div`,Kr,[a[12]||=p(`span`,{class:`i-tabler-activity`},null,-1),p(`b`,null,r(i.$t(`daq.k1evt002`)),1),d(f,{class:`panel-link`,to:`/logs`},{default:b(()=>[S(r(i.$t(`daq.k1evt003`)),1),a[11]||=p(`span`,{class:`i-tabler-arrow-right`},null,-1)]),_:1})]),p(`div`,qr,[e.opsRecent.length===0?(l(),m(`p`,Jr,r(i.$t(`daq.k1evt004`)),1)):(l(!0),m(h,{key:1},u(e.opsRecent,(n,a)=>(l(),m(`div`,{key:`${n.at}:${n.actor}:${n.action}:${a}`,class:`evt-row`},[p(`span`,Yr,r(e.opsTime(n.at)),1),p(`span`,{class:t([`src-badge`,n.actorKind])},r(n.actorKind===`agent`?`Agent`:n.actorKind===`user`?i.$t(`logs.src.user`):i.$t(`logs.src.system`)),3),p(`span`,{class:t([`kind-chip`,n.kind])},r(e.opsKindLabel(n.kind)),3),p(`span`,{class:`txt`,title:n.summary},r(n.summary),9,Xr)]))),128))])])]),p(`table`,{ref_key:`tableEl`,ref:c,class:`nodes-table`},[p(`thead`,null,[p(`tr`,null,[p(`th`,null,r(i.$t(`daq.k45uio067`)),1),p(`th`,null,r(i.$t(`daq.k42w8s068`)),1),p(`th`,null,r(i.$t(`daq.k3mv305069`)),1),p(`th`,null,r(i.$t(`daq.k1trnd001`)),1),p(`th`,null,r(i.$t(`daq.k1l6g2ga070`)),1),p(`th`,null,r(i.$t(`daq.k3zi0nf071`)),1),p(`th`,null,r(i.$t(`daq.k4a0la072`)),1),p(`th`,null,r(i.$t(`daq.k3wj9n051`)),1),p(`th`,{title:i.$t(`daq.k1runtipc131`)},r(i.$t(`daq.k1b2tkyv057`)),9,Zr),p(`th`,{title:i.$t(`daq.k1prdrtip132`)},r(i.$t(`daq.k1prodrc128`)),9,Qr),p(`th`,null,r(i.$t(`daq.k1i8rtqt054`)),1),p(`th`,$r,r(i.$t(`daq.k40aa6073`)),1)])]),p(`tbody`,null,[e.padTopPx>0?(l(),m(`tr`,ei,[p(`td`,{colspan:11,style:n({height:e.padTopPx+`px`})},null,4)])):v(``,!0),(l(!0),m(h,null,u(e.visibleNodes,e=>(l(),y(_,{key:e.id,n:e},null,8,[`n`]))),128)),e.padBottomPx>0?(l(),m(`tr`,ti,[p(`td`,{colspan:11,style:n({height:e.padBottomPx+`px`})},null,4)])):v(``,!0),e.loaded&&e.totalCount===0?(l(),m(`tr`,ni,[p(`td`,ri,[p(`div`,ii,[p(`p`,ai,r(i.$t(`daq.kvhjyc3075`)),1)])])])):e.loaded&&e.filteredCount===0?(l(),m(`tr`,oi,[p(`td`,si,[p(`div`,ci,[p(`p`,li,r(i.$t(`daq.k1w20qew076`)),1)])])])):v(``,!0)])],512)])]),_:1},8,[`spinning`])}}}),{__name:`DaqNodePanel`}),di={class:`page`},fi={class:`aw-page-head`},pi={class:`sub`},mi={class:`badges mono`},hi=[`title`],gi=[`title`],_i={key:0,class:`err`},vi=c({__name:`index`,setup(t){let{t:n}=k();te({layout:`default`}),D({title:()=>n(`titles.daq`)});let a=ne(),c=re(),u=ee(),h=f(()=>c.lines.some(e=>c.lineStateOf(e.id).active)),g=G();function _(e){return{write:n(`logs.kind.write`),manual:n(`logs.kind.manual`),alarm:n(`logs.kind.alarm`),line:n(`logs.kind.line`),recipe:n(`logs.kind.recipe`),rollback:n(`logs.kind.rollback`),daq:n(`logs.kind.daq`),system:n(`logs.kind.system`)}[e]??(e||n(`logs.kind.system`))}function y(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}:${String(t.getSeconds()).padStart(2,`0`)}`:``}async function C(e){try{await a.ackAlarm(e),A.success(n(`daq.k1acked144`))}catch(e){A.error(N(e))}}let w=null;s(()=>{u.ensureConnected(),w=a.ensureWsFeed(),g.ensureLive(),a.load(),a.fetchAlarms(),c.load(),se.load(),c.loadOptimizations(),P(()=>{a.load(),a.fetchAlarms()},5e3,{bgMs:3e4}),P(()=>{c.load()},15e3,{bgMs:6e4})}),o(()=>{w?.()});let{filters:T,hasFilters:E,clearFilters:j,templateOptions:M,driverOptions:F,boundDevices:K,filteredNodes:q,filteredLine:ie,filteredLineState:ae}=z(),se=I(),{driverCatalog:J,driverReady:ce}=R(),{reconnecting:ue,doReconnect:de}=B();function fe(e,t){a.controllerAction(`config`,e,t)}let{nodesTableRef:Y,visibleNodes:pe,padTopPx:me,padBottomPx:he,resetToTop:ge}=V(q);x(()=>q.value.length,()=>{ge()});let X=L(J,n),Z=U(n),ve=W(n),Q=H();return(t,n)=>{let o=oe,s=le,u=_e,f=Fe,x=ot,w=Kt,D=bn,k=ui,A=O;return l(),m(`div`,di,[p(`div`,fi,[p(`div`,null,[n[13]||=p(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / DAQ CONSOLE `,-1),p(`h1`,null,r(t.$t(`daq.k1emg364011`)),1),p(`p`,pi,r(t.$t(`daq.k1wmg2bz012`)),1)]),p(`div`,mi,[p(`span`,{class:`badge`,title:t.$t(`daq.k1tsdbtip133`)},`TSDB · `+r(e(a).meta.tsdb),9,hi),p(`span`,{class:`badge`,title:t.$t(`daq.k1queuet134`)},`QUEUE · `+r(e(a).meta.queue),9,gi)])]),d(o,{loaded:e(a).loaded,"filtered-line":e(ie),"filtered-line-state":e(ae),"any-line-active":h.value},null,8,[`loaded`,`filtered-line`,`filtered-line-state`,`any-line-active`]),d(s,{infra:e(a).meta.infra,reconnecting:e(ue),onReconnect:e(de)},null,8,[`infra`,`reconnecting`,`onReconnect`]),d(u,{alarms:e(a).alarms,onAck:C},null,8,[`alarms`]),d(f,{controller:e(a).controller,"onUpdate:controller":n[0]||=t=>e(a).controller=t,meta:e(a).meta,lines:e(c).lines,"line-state-of":t=>e(c).lineStateOf(t),onAction:n[1]||=t=>e(a).controllerAction(t),onConfig:fe,onOpenAdd:n[2]||=t=>e(X).open.value=!0,onOpenTemplates:n[3]||=t=>{e(Z).tplOpen.value=!0,e(Z).resetTplForm()}},null,8,[`controller`,`meta`,`lines`,`line-state-of`]),d(x,{open:e(X).open.value,"onUpdate:open":n[4]||=t=>e(X).open.value=t,form:e(X).form,"onUpdate:form":n[5]||=t=>e(X).form=t,templates:e(a).templates,"driver-catalog":e(J),"driver-ready":e(ce),onTest:e(X).doTestConnection,onSubmit:e(X).doAddNode,onClose:n[6]||=t=>e(X).open.value=!1},null,8,[`open`,`form`,`templates`,`driver-catalog`,`driver-ready`,`onTest`,`onSubmit`]),d(w,{open:e(Z).tplOpen.value,"onUpdate:open":n[7]||=t=>e(Z).tplOpen.value=t,form:e(Z).tplForm.value,"onUpdate:form":n[8]||=t=>e(Z).tplForm.value=t,"custom-tpls":e(Z).customTpls.value,"builtin-tpls":e(Z).builtinTpls.value,"icon-choices":e(Z).iconChoices,"icon-labels":e(ve),editing:e(Z).tplEditing.value,saving:e(Z).tplSaving.value,error:e(Z).tplError.value,"confirming-del":e(Z).confirmingDel.value,onEdit:e(Z).editTpl,onCopy:e(Z).copyTpl,onRemove:e(Z).askDelTpl,onReset:e(Z).resetTplForm,onSave:e(Z).saveTpl},null,8,[`open`,`form`,`custom-tpls`,`builtin-tpls`,`icon-choices`,`icon-labels`,`editing`,`saving`,`error`,`confirming-del`,`onEdit`,`onCopy`,`onRemove`,`onReset`,`onSave`]),d(D,{optimizations:e(c).optimizations,lines:e(c).lines,open:e(Q).optOpen.value,mounted:e(Q).optMounted.value,"filter-line":e(Q).optFilterLine.value,"filter-recipe":e(Q).optFilterRecipe.value,"recipe-options":e(Q).optRecipeOptions.value,"series-of":e(Q).optSeriesOf.value,"series-loading":e(Q).optSeriesLoading.value,"status-key":e(Q).optStatusKey,"series-path":e(Q).seriesPath,"fmt-point":e(Q).fmtPoint,onToggle:e(Q).toggleOptPanel,onSelectLine:n[9]||=t=>e(Q).optFilterLine.value=t,onSelectRecipe:n[10]||=t=>e(Q).optFilterRecipe.value=t,onLineChange:e(Q).onOptLineChange,onFilter:e(Q).filterOpts,onSeries:e(Q).showOptSeries,onRollback:e(Q).rollbackRecord},null,8,[`optimizations`,`lines`,`open`,`mounted`,`filter-line`,`filter-recipe`,`recipe-options`,`series-of`,`series-loading`,`status-key`,`series-path`,`fmt-point`,`onToggle`,`onLineChange`,`onFilter`,`onSeries`,`onRollback`]),d(k,{"table-el":e(Y),"onUpdate:tableEl":n[11]||=e=>i(Y)?Y.value=e:null,filters:e(T),"onUpdate:filters":n[12]||=e=>i(T)?T.value=e:null,"has-filters":e(E),lines:e(c).lines,"bound-devices":e(K),"template-options":e(M),"driver-options":e(F),"filtered-count":e(q).length,"total-count":e(a).nodes.length,"ops-recent":e(g).recent,"ops-kind-label":_,"ops-time":y,alarms:e(a).alarms,"visible-nodes":e(pe),"pad-top-px":e(me),"pad-bottom-px":e(he),loading:!e(a).loaded&&!e(a).error,loaded:e(a).loaded,error:e(a).error,onClearFilters:e(j),onAck:C},null,8,[`table-el`,`filters`,`has-filters`,`lines`,`bound-devices`,`template-options`,`driver-options`,`filtered-count`,`total-count`,`ops-recent`,`alarms`,`visible-nodes`,`pad-top-px`,`pad-bottom-px`,`loading`,`loaded`,`error`,`onClearFilters`]),e(a).error?(l(),m(`p`,_i,[S(r(e(a).error)+`(`,1),d(A,{to:`/workshop`},{default:b(()=>[S(r(t.$t(`daq.k1bhhheq077`)),1)]),_:1}),n[14]||=S(`) `,-1)])):v(``,!0)])}}});export{vi as default};
@@ -1 +0,0 @@
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{$ as s,S as c,V as l,W as u,b as d,d as f,f as p,h as m,i as h,it as g,k as _,m as v,p as y,rt as b,tt as x,y as S}from"./C6lssmvl.js";import{c as C,f as w,l as T,t as E}from"./ri9UF8rk.js";import{t as D}from"./DPPC9Teq.js";import{n as O}from"./D1MkndMZ.js";import{t as k}from"./BDNMzG2s.js";import{t as A}from"./BVGzwAxr2.js";import{r as ee}from"./Du9v6qGB2.js";import{t as j}from"./C14pM5G4.js";import{t as M}from"./uomnHjhM.js";import{t as N}from"./v7cV7hJa.js";import{t as P}from"./b7UcqLKi.js";import{t as F}from"./C1-SuwUN.js";import{t as I}from"./DqxBCeDe.js";var L=[`#3aa0ff`,`#f4c542`,`#35e0a0`,`#41c8f4`,`#b58cff`,`#ff8a5c`],R={class:`lc-head`},z={class:`lc-name`},B=[`title`],V=[`title`],H=[`title`],U=[`title`],W={key:0,class:`lc-run mono`},G={class:`lc-stats mono`},K={class:`lc-ctl`},q=[`disabled`,`title`],J={value:``},Y=[`value`,`disabled`],X=[`disabled`,`title`],te=[`disabled`],ne=Object.assign(c({__name:`DcwLineCard`,props:_({card:{},state:{},recipes:{},quickBusy:{},pendingExp:{}},{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(),m(`div`,{class:t([`line-card aw-liftable`,{idle:!e.state.active}]),style:n({"--lc":e.card.line.color})},[p(`div`,R,[s[7]||=p(`span`,{class:`lc-dot`},null,-1),p(`b`,z,i(e.card.line.name),1),p(`span`,{class:t([`lc-mode`,{auto:e.card.line.controlMode===`auto`}]),title:e.card.line.controlMode===`auto`?`自动模式:按各绑定模式执行(auto 免批)`:`手动模式:本线全部配方写动作强制人工批准(缺省)`},i(e.card.line.controlMode===`auto`?`自动`:`手动`),11,B),p(`span`,{class:t([`lc-state`,{on:e.state.active}])},i(e.state.active?r.$t(`dcw.k1eox1el055`):r.$t(`dcw.k149r6y7059`)),3),e.pendingExp?(l(),m(`span`,{key:0,class:`badge warn-badge`,title:r.$t(`expConfirm.badgeTip`,{p0:e.pendingExp})},i(e.pendingExp),9,V)):v(``,!0),p(`button`,{class:`lc-act`,title:r.$t(`common.edit`),onClick:s[0]||=t=>a(`edit`,e.card)},[...s[5]||=[p(`span`,{class:`i-tabler-pencil`},null,-1)]],8,H),p(`button`,{class:`lc-act danger`,title:r.$t(`dcw.k3xakp026`),onClick:s[1]||=t=>a(`remove`,e.card)},[...s[6]||=[p(`span`,{class:`i-tabler-trash`},null,-1)]],8,U)]),e.state.active?(l(),m(`small`,W,i(e.state.productName)+` · `+i(e.state.recipeName)+` · `+i(r.$t(`dcw.k3zz0f052`))+` `+i(e.state.taggedSamples),1)):(l(),m(`small`,{key:1,class:t([`lc-run dim`,{ph:!e.card.line.description}])},i(e.card.line.description||r.$t(`dcw.k18moyq1056`)),3)),p(`div`,G,[p(`span`,null,[S(i(r.$t(`dcw.k45uio011`))+` `,1),p(`b`,null,i(e.card.nodes),1)]),p(`span`,null,[S(i(r.$t(`dcw.k3waz1012`))+` `,1),p(`b`,null,i(e.card.products),1)]),p(`span`,null,[S(i(r.$t(`dcw.k48grv013`))+` `,1),p(`b`,null,i(e.card.recipes),1)])]),p(`div`,K,[e.state.active?(l(),m(`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,te)):(l(),m(h,{key:0},[g(p(`select`,{"onUpdate:modelValue":s[2]||=e=>o.value=e,class:`inp`,disabled:e.recipes.length===0,title:r.$t(`dcw.k1dhaby4003`)},[p(`option`,J,i(e.recipes.length?r.$t(`dcw.kutxzsz057`):r.$t(`dcw.k1elczt9060`)),1),(l(!0),m(h,null,u(e.recipes,e=>(l(),m(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},i(e.name)+`(`+i(e.params.length)+`) `,9,Y))),128))],8,q),[[C,o.value]]),p(`button`,{class:`pill-btn`,disabled:e.quickBusy===e.card.line.id||!o.value,title:o.value?void 0:r.$t(`dcw.k1dhaby4003`),onClick:s[3]||=t=>a(`start`,e.card)},i(r.$t(`dcw.k149b4vg014`)),9,X)],64))]),d(c,{class:`lc-manage`,to:`/dcw/${e.card.line.id}`},{default:b(()=>[S(i(r.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6)}}}),{__name:`DcwLineCard`}),re={class:`modal`},ie={class:`m-title`},Z={class:`f`},Q=[`placeholder`],ae={class:`f`},oe=[`placeholder`],se={class:`f`},ce={class:`color-row`},$=[`onClick`],le={class:`dim`},ue={key:0,class:`m-err`},de={class:`m-actions`},fe=[`disabled`],pe=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:``});x(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(),y(E,{name:`modal`},{default:b(()=>[d.value?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:o[3]||=w(e=>c(`close`),[`self`])},[p(`div`,re,[p(`h3`,ie,i(r.$t(`dcw.k1efe391017`)),1),p(`label`,Z,[p(`span`,null,[S(i(r.$t(`dcw.k1b2ioko019`)),1),o[4]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":o[0]||=e=>f.name=e,class:`inp`,placeholder:r.$t(`dcw.kru37i3004`)},null,8,Q),[[T,f.name]])]),p(`label`,ae,[p(`span`,null,i(r.$t(`dcw.k24dxcd020`)),1),g(p(`input`,{"onUpdate:modelValue":o[1]||=e=>f.description=e,class:`inp`,placeholder:r.$t(`dcw.k1f2nwsp005`)},null,8,oe),[[T,f.description]])]),p(`div`,se,[p(`span`,null,i(r.$t(`dcw.k1x7nubr021`)),1),p(`div`,ce,[(l(!0),m(h,null,u(e(L),e=>(l(),m(`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,$))),128)),p(`small`,le,i(f.color||r.$t(`dcw.k1qidbpy061`,{p0:a.nextColor})),1)])]),a.error?(l(),m(`p`,ue,i(a.error),1)):v(``,!0),p(`div`,de,[p(`button`,{class:`mini-btn`,onClick:o[2]||=e=>c(`close`)},i(r.$t(`dcw.k3xdnn022`)),1),p(`button`,{class:`pill-btn`,disabled:a.saving||!f.name.trim(),onClick:_},i(r.$t(`dcw.k3wzi2023`)),9,fe)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwCreateLineModal`}),me={class:`modal`},he={class:`m-title`},ge={class:`f`},_e=[`placeholder`],ve={class:`f`},ye=[`placeholder`],be={class:`f`},xe={class:`color-row`},Se=[`onClick`],Ce={class:`dim`},we={class:`f`},Te={class:`mode-row`},Ee={key:0,class:`confirm-strip`},De={key:0,class:`m-err`},Oe={class:`m-actions`},ke=[`disabled`],Ae=Object.assign(k(c({__name:`DcwEditLineModal`,props:_({card:{},saving:{type:Boolean},error:{},nextColor:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`submit`,`close`],[`update:open`]),setup(a,{emit:c}){let d=a,f=c,_=s(a,`open`),C=r({name:``,description:``,color:``,controlMode:`manual`}),D=o(!1);x(()=>d.card,e=>{e&&(C.name=e.line.name,C.description=e.line.description,C.color=e.line.color,C.controlMode=e.line.controlMode===`auto`?`auto`:`manual`,D.value=!1)});function O(e){if(e!==C.controlMode){if(e===`auto`){D.value=!0;return}C.controlMode=`manual`,D.value=!1}}function k(){C.controlMode=`auto`,D.value=!1}function A(){d.card&&f(`submit`,d.card.line.id,{name:C.name.trim(),description:C.description.trim(),color:C.color||void 0,...C.controlMode===(d.card.line.controlMode===`auto`?`auto`:`manual`)?{}:{controlMode:C.controlMode,...C.controlMode===`auto`?{confirm:!0}:{}}})}return(r,o)=>(l(),y(E,{name:`modal`},{default:b(()=>[_.value?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:o[6]||=w(e=>f(`close`),[`self`])},[p(`div`,me,[p(`h3`,he,i(r.$t(`dcw.k5tq8wc071`)),1),p(`label`,ge,[p(`span`,null,[S(i(r.$t(`dcw.k1b2ioko019`)),1),o[7]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":o[0]||=e=>C.name=e,class:`inp`,placeholder:r.$t(`dcw.kru37i3004`)},null,8,_e),[[T,C.name]])]),p(`label`,ve,[p(`span`,null,i(r.$t(`dcw.k24dxcd020`)),1),g(p(`input`,{"onUpdate:modelValue":o[1]||=e=>C.description=e,class:`inp`,placeholder:r.$t(`dcw.k1f2nwsp005`)},null,8,ye),[[T,C.description]])]),p(`div`,be,[p(`span`,null,i(r.$t(`dcw.k1x7nubr021`)),1),p(`div`,xe,[(l(!0),m(h,null,u(e(L),e=>(l(),m(`button`,{key:e,class:t([`color-dot`,{on:C.color===e}]),style:n({background:e}),onClick:t=>C.color=C.color===e?``:e},null,14,Se))),128)),p(`small`,Ce,i(C.color||r.$t(`dcw.k1qidbpy061`,{p0:a.nextColor})),1)])]),p(`div`,we,[o[9]||=p(`span`,null,`控制模式`,-1),p(`div`,Te,[p(`button`,{class:t([`mode-opt`,{on:C.controlMode===`manual`}]),type:`button`,onClick:o[2]||=e=>O(`manual`)},` 手动(人工审批) `,2),p(`button`,{class:t([`mode-opt`,{on:C.controlMode===`auto`,danger:C.controlMode===`auto`}]),type:`button`,onClick:o[3]||=e=>O(`auto`)},` 自动(按绑定模式) `,2)]),o[10]||=p(`small`,{class:`dim`},`手动:本线全部配方写动作强制人工批准(缺省);自动:按各节点/配方绑定的模式执行(auto 免批)。`,-1),D.value?(l(),m(`div`,Ee,[o[8]||=p(`span`,null,`切换为「自动」将摘除本线人工审批总闸(auto 绑定不再逐次审批)。确定?`,-1),p(`button`,{class:`mini-btn`,type:`button`,onClick:o[4]||=e=>D.value=!1},` 取消 `),p(`button`,{class:`pill-btn danger-btn`,type:`button`,onClick:k},` 仍要切换(需显式确认) `)])):v(``,!0)]),a.error?(l(),m(`p`,De,i(a.error),1)):v(``,!0),p(`div`,Oe,[p(`button`,{class:`mini-btn`,onClick:o[5]||=e=>f(`close`)},i(r.$t(`dcw.k3xdnn022`)),1),p(`button`,{class:`pill-btn`,disabled:a.saving||!C.name.trim(),onClick:A},i(r.$t(`common.save`)),9,ke)])])])):v(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-8f000e20`]]),{__name:`DcwEditLineModal`}),je={class:`modal`},Me={class:`m-title danger-title`},Ne={class:`del-summary`},Pe={class:`del-purge`},Fe=[`checked`],Ie={key:0,class:`m-err`},Le={class:`m-actions`},Re=[`disabled`],ze=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(),y(E,{name:`modal`},{default:b(()=>[r.value&&e.card?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:a[3]||=w(e=>n(`close`),[`self`])},[p(`div`,je,[p(`h3`,Me,[a[4]||=p(`span`,{class:`i-tabler-alert-triangle`},null,-1),S(` `+i(t.$t(`dcw.k7xq2mfd063`,{p0:e.card.line.name})),1)]),p(`p`,Ne,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),p(`label`,Pe,[p(`input`,{checked:e.purge,type:`checkbox`,onChange:a[0]||=e=>n(`update:purge`,e.target.checked)},null,40,Fe),p(`span`,null,i(t.$t(`dcw.k9m2vxa072`)),1)]),e.error?(l(),m(`p`,Ie,i(e.error),1)):v(``,!0),p(`div`,Le,[p(`button`,{class:`mini-btn`,onClick:a[1]||=e=>n(`close`)},i(t.$t(`dcw.k3xdnn022`)),1),p(`button`,{class:`pill-btn danger`,disabled:e.busy,onClick:a[2]||=e=>n(`confirm`)},i(t.$t(`dcw.k3xakp026`)),9,Re)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwDeleteLineModal`}),Be={class:`modal wide`},Ve={class:`m-title`},He={class:`dim mono`},Ue={class:`dim tpl-hint`},We={class:`tpl-list`},Ge=[`title`],Ke={class:`mono dim`},qe={key:0,class:`tpl-sem`},Je=[`onClick`],Ye={class:`sec-label`},Xe={class:`tpl-form`},Ze={class:`f`},Qe=[`placeholder`],$e={class:`f`},et=[`placeholder`],tt={class:`f`},nt=[`placeholder`],rt={class:`f`},it=[`placeholder`],at={class:`f`},ot={class:`f`},st={class:`f`},ct={class:`f`},lt=[`value`],ut={class:`f`},dt=[`placeholder`],ft={key:0,class:`m-err`},pt={class:`m-actions`},mt=[`disabled`],ht=Object.assign(c({__name:`DcwTemplateModal`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:[`update:open`],setup(n){let a=A(),{t:o}=O(),{tplError:c,clearTplError:d,doCreateTemplate:_,doRemoveTemplate:D,builtinCount:k}=I(),j=s(n,`open`),M=r({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),N=[{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`)}],P=e=>ee(o,e);async function F(){if(!M.name.trim()){c.value=o(`dcw.k6ugbw2046`);return}if(M.min===``||M.max===``){c.value=o(`dcw.k13awowo047`);return}await _({name:M.name.trim(),ch:M.ch.trim()||M.name.trim(),code:M.code.trim()||`CUSTOM`,unit:M.unit.trim()||`-`,min:Number(M.min),max:Number(M.max),decimals:Number(M.decimals)||0,icon:M.icon,semantics:M.semantics.trim()||void 0}),!c.value&&(M.name=``,M.ch=``,M.code=``,M.unit=``,M.min=``,M.max=``)}let L=f(()=>a.templates.length-k.value);return x(j,e=>{e&&d()}),(n,r)=>(l(),y(E,{name:`modal`},{default:b(()=>[j.value?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:r[10]||=w(e=>j.value=!1,[`self`])},[p(`div`,Be,[p(`h3`,Ve,[S(i(n.$t(`dcw.k11oadmx024`))+` `,1),p(`small`,He,i(n.$t(`dcw.k3x23c054`))+` `+i(e(k))+` · `+i(n.$t(`dcw.k3t616a058`))+` `+i(L.value),1)]),p(`p`,Ue,i(n.$t(`dcw.k2hlav5025`)),1),p(`div`,We,[(l(!0),m(h,null,u(e(a).templates,r=>(l(),m(`div`,{key:r.key,class:`tpl-row`,title:r.semantics??``},[p(`b`,null,i(P(r)),1),p(`small`,Ke,i(r.code)+` · `+i(r.min)+`~`+i(r.max)+` `+i(r.unit),1),r.semantics?(l(),m(`small`,qe,i(r.semantics.slice(0,40))+i(r.semantics.length>40?`…`:``),1)):v(``,!0),p(`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(),m(`button`,{key:1,class:`mini-btn danger`,onClick:t=>e(D)(r.key)},i(n.$t(`dcw.k3xakp026`)),9,Je))],8,Ge))),128))]),p(`p`,Ye,i(n.$t(`dcw.k169eb4s027`)),1),p(`div`,Xe,[p(`label`,Ze,[p(`span`,null,[S(i(n.$t(`dcw.k3xhia028`)),1),r[11]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":r[0]||=e=>M.name=e,class:`inp`,placeholder:n.$t(`dcw.k1tooi3o006`)},null,8,Qe),[[T,M.name]])]),p(`label`,$e,[p(`span`,null,i(n.$t(`dcw.k1bqk219029`)),1),g(p(`input`,{"onUpdate:modelValue":r[1]||=e=>M.ch=e,class:`inp`,placeholder:n.$t(`dcw.k698qz0007`)},null,8,et),[[T,M.ch]])]),p(`label`,tt,[p(`span`,null,i(n.$t(`dcw.k1ayxrqb030`)),1),g(p(`input`,{"onUpdate:modelValue":r[2]||=e=>M.code=e,class:`inp`,placeholder:n.$t(`dcw.codePh`)},null,8,nt),[[T,M.code]])]),p(`label`,rt,[p(`span`,null,i(n.$t(`dcw.k3x4ef031`)),1),g(p(`input`,{"onUpdate:modelValue":r[3]||=e=>M.unit=e,class:`inp`,placeholder:n.$t(`dcw.unitPh`)},null,8,it),[[T,M.unit]])]),p(`label`,at,[p(`span`,null,[S(i(n.$t(`dcw.k1l9jv5m032`)),1),r[12]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":r[4]||=e=>M.min=e,type:`number`,class:`inp`},null,512),[[T,M.min,void 0,{number:!0}]])]),p(`label`,ot,[p(`span`,null,[S(i(n.$t(`dcw.k1l9jv4p033`)),1),r[13]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":r[5]||=e=>M.max=e,type:`number`,class:`inp`},null,512),[[T,M.max,void 0,{number:!0}]])]),p(`label`,st,[p(`span`,null,i(n.$t(`dcw.k3mxmcx034`)),1),g(p(`input`,{"onUpdate:modelValue":r[6]||=e=>M.decimals=e,type:`number`,class:`inp`},null,512),[[T,M.decimals,void 0,{number:!0}]])]),p(`label`,ct,[p(`span`,null,i(n.$t(`dcw.k3xx56035`)),1),g(p(`select`,{"onUpdate:modelValue":r[7]||=e=>M.icon=e,class:`inp`},[(l(),m(h,null,u(N,e=>p(`option`,{key:e.key,value:e.key},i(e.label),9,lt)),64))],512),[[C,M.icon]])])]),p(`label`,ut,[p(`span`,null,i(n.$t(`dcw.k1b6qorg036`)),1),g(p(`textarea`,{"onUpdate:modelValue":r[8]||=e=>M.semantics=e,class:`inp`,rows:`3`,placeholder:n.$t(`dcw.k1qdnfzc008`)},null,8,dt),[[T,M.semantics]])]),e(c)?(l(),m(`p`,ft,i(e(c)),1)):v(``,!0),p(`div`,pt,[p(`button`,{class:`mini-btn`,onClick:r[9]||=e=>j.value=!1},i(n.$t(`dcw.k3x62t037`)),1),p(`button`,{class:`pill-btn`,disabled:!M.name.trim()||M.min===``||M.max===``,onClick:F},i(n.$t(`dcw.k1bg9nga038`)),9,mt)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwTemplateModal`}),gt={class:`page`},_t={class:`aw-page-head`},vt={class:`sub`},yt={class:`badges mono`},bt=[`title`],xt={class:`badge`},St={key:0,class:`banner bad`},Ct={class:`fleet-filter`},wt={class:`aw-seg`},Tt=[`placeholder`],Et={class:`line-grid aw-stagger`},Dt={key:1,class:`banner`},Ot={key:2,class:`banner`},kt={key:3,class:`banner bad`},At=c({__name:`index`,setup(n){let{t:r}=O(),s=A();s.load();let{cards:c,unassignedCount:_,recipesOf:b}=M(),{filterState:x,searchText:C,runningCount:w,shownCards:E}=N(c),D=f(()=>L[s.lines.length%L.length]??`#3aa0ff`),{createOpen:k,createSaving:ee,createError:I,openCreate:R,doCreateLine:z,editOpen:B,editSaving:V,editError:H,editTarget:U,openEdit:W,doEditLine:G,delOpen:K,delBusy:q,delErr:J,delPurge:Y,delCard:X,openDelete:te,doDeleteLine:re}=P(),{quickBusy:ie,quickErr:Z,quickPick:Q,quickStart:ae,quickStop:oe}=F(r),{items:se}=j({intervalMs:6e4}),ce=f(()=>{let e={};for(let t of se.value)e[t.lineId]=(e[t.lineId]??0)+1;return e}),$=o(!1);return(n,r)=>{let o=ne,f=pe,O=Ae,A=ze,j=ht;return l(),m(`div`,gt,[p(`div`,_t,[p(`div`,null,[r[14]||=p(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),p(`h1`,null,i(n.$t(`dcw.k1b2tk5c009`)),1),p(`p`,vt,i(n.$t(`dcw.k5q0aqi010`)),1)]),p(`div`,yt,[e(_)?(l(),m(`span`,{key:0,class:`badge warn-badge`,title:n.$t(`dcw.k1i5a9vw001`)},i(n.$t(`dcw.k3ootr6049`))+` `+i(e(_)),9,bt)):v(``,!0),p(`span`,xt,i(n.$t(`dcw.k3wj9n050`))+` `+i(e(s).lines.length),1),p(`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(),m(`p`,St,i(e(Z)),1)):v(``,!0),p(`div`,Ct,[p(`div`,wt,[p(`button`,{class:t({on:e(x)===`all`}),onClick:r[1]||=e=>x.value=`all`},i(n.$t(`common.all`))+` `+i(e(c).length),3),p(`button`,{class:t({on:e(x)===`running`}),onClick:r[2]||=e=>x.value=`running`},i(n.$t(`dcw.k1eox1el055`))+` `+i(e(w)),3),p(`button`,{class:t({on:e(x)===`idle`}),onClick:r[3]||=e=>x.value=`idle`},i(n.$t(`dcw.k149r6y7059`))+` `+i(e(c).length-e(w)),3)]),g(p(`input`,{"onUpdate:modelValue":r[4]||=e=>a(C)?C.value=e:null,class:`inp fleet-search`,type:`search`,placeholder:n.$t(`dcw.filterSearchPh`)},null,8,Tt),[[T,e(C)]])]),p(`div`,Et,[(l(!0),m(h,null,u(e(E),t=>(l(),y(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(b)(t.line.id),"quick-busy":e(ie),"pending-exp":ce.value[t.line.id]??0,onEdit:e(W),onRemove:e(te),onStart:e(ae),onStop:e(oe)},null,8,[`pick`,`onUpdate:pick`,`card`,`state`,`recipes`,`quick-busy`,`pending-exp`,`onEdit`,`onRemove`,`onStart`,`onStop`]))),128)),p(`button`,{class:`line-card new-card`,onClick:r[5]||=(...t)=>e(R)&&e(R)(...t)},[r[15]||=p(`span`,{class:`i-tabler-plus`},null,-1),S(` `+i(n.$t(`dcw.k1efe391017`))+` `,1),p(`small`,null,i(n.$t(`dcw.k19dlbli053`)),1)])]),e(s).loaded&&e(s).lines.length===0?(l(),m(`p`,Dt,i(n.$t(`dcw.k1sk85vs018`)),1)):e(s).loaded&&e(E).length===0?(l(),m(`p`,Ot,i(n.$t(`dcw.filterEmpty`)),1)):v(``,!0),d(f,{open:e(k),"onUpdate:open":r[6]||=e=>a(k)?k.value=e:null,saving:e(ee),error:e(I),"next-color":D.value,onSubmit:e(z),onClose:r[7]||=e=>k.value=!1},null,8,[`open`,`saving`,`error`,`next-color`,`onSubmit`]),d(O,{open:e(B),"onUpdate:open":r[8]||=e=>a(B)?B.value=e:null,card:e(U),saving:e(V),error:e(H),"next-color":D.value,onSubmit:e(G),onClose:r[9]||=e=>B.value=!1},null,8,[`open`,`card`,`saving`,`error`,`next-color`,`onSubmit`]),d(A,{open:e(K),"onUpdate:open":r[10]||=e=>a(K)?K.value=e:null,purge:e(Y),"onUpdate:purge":r[11]||=e=>a(Y)?Y.value=e:null,card:e(X),busy:e(q),error:e(J),onConfirm:e(re),onClose:r[12]||=e=>K.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(),m(`p`,kt,i(e(s).error),1)):v(``,!0)])}}});export{At as default};
@@ -1,9 +0,0 @@
1
- import{N as e,mt as t,u as n,v as r}from"./CavpkQb0.js";import{$ as i,P as a,S as o,V as s,W as c,b as l,d as u,f as d,h as f,i as p,j as m,k as h,m as g,p as _,rt as v,tt as y,y as b}from"./C6lssmvl.js";import{t as x}from"./HclGiUj8.js";import{n as S}from"./D1MkndMZ.js";import{i as C,s as w}from"./DXgw1dVL.js";import{r as T}from"./hZG5MLjK.js";import{t as E}from"./D9lL3fJM2.js";import{t as D}from"./vp3LtnTz2.js";import{t as O}from"./Cv-Mv7_h2.js";import{t as k}from"./BDNMzG2s.js";import{r as A}from"./DOT-XQyi.js";var j={class:`hitl-card`},M={class:`hitl-head`},N={class:`hitl-question`},P={key:0,class:`hitl-options`},F={class:`hitl-message`},I={class:`hitl-row`},L={class:`hitl-row`},R=Object.assign(k(o({__name:`TerminalHitlCard`,props:{hitl:{}},emits:[`respond`],setup(i,{emit:a}){let o=i,u=a,{t:m}=S(),h=r(o.hitl.prefill??o.hitl.placeholder??``);y(()=>o.hitl,e=>{h.value=e.prefill??e.placeholder??``});function g(e){u(`respond`,e)}return(r,a)=>{let o=E,u=w,y=T;return s(),f(`div`,j,[d(`div`,M,[a[7]||=d(`span`,{class:`i-tabler-user-question`},null,-1),d(`b`,null,t(e(m)(`terminal.hitlTitle`)),1),l(o,{color:`magenta`},{default:v(()=>[b(t(i.hitl.method),1)]),_:1}),l(u,{size:`small`,type:`text`,danger:``,onClick:a[0]||=e=>g({id:i.hitl.id,cancelled:!0})},{default:v(()=>[b(t(e(m)(`terminal.hitlCancel`)),1)]),_:1})]),d(`p`,N,t(i.hitl.title),1),i.hitl.method===`select`?(s(),f(`div`,P,[(s(!0),f(p,null,c(i.hitl.options??[],e=>(s(),_(u,{key:e,block:``,onClick:t=>g({id:i.hitl.id,value:e})},{default:v(()=>[b(t(e),1)]),_:2},1032,[`onClick`]))),128))])):i.hitl.method===`confirm`?(s(),f(p,{key:1},[d(`p`,F,t(i.hitl.message),1),d(`div`,I,[l(u,{type:`primary`,onClick:a[1]||=e=>g({id:i.hitl.id,confirmed:!0})},{default:v(()=>[b(t(e(m)(`terminal.hitlConfirm`)),1)]),_:1}),l(u,{onClick:a[2]||=e=>g({id:i.hitl.id,confirmed:!1})},{default:v(()=>[b(t(e(m)(`terminal.hitlDeny`)),1)]),_:1})])],64)):(s(),f(p,{key:2},[l(y,{value:e(h),"onUpdate:value":a[3]||=e=>n(h)?h.value=e:null,rows:3,placeholder:i.hitl.placeholder,class:`hitl-textarea`,onPressEnter:a[4]||=t=>g({id:i.hitl.id,value:e(h)})},null,8,[`value`,`placeholder`]),d(`div`,L,[l(u,{type:`primary`,onClick:a[5]||=t=>g({id:i.hitl.id,value:e(h)})},{default:v(()=>[b(t(e(m)(`terminal.hitlSubmit`)),1)]),_:1}),l(u,{onClick:a[6]||=e=>g({id:i.hitl.id,cancelled:!0})},{default:v(()=>[b(t(e(m)(`terminal.hitlCancel`)),1)]),_:1})])],64))])}}}),[[`__scopeId`,`data-v-182bb868`]]),{__name:`WorkshopTerminalHitlCard`});function z(e){let{getTerm:t,hitl:n,getLastSeq:r,setLastSeq:i,clearHistory:a}=e,{t:o}=S(),s={reset:`\x1B[0m`,dim:`\x1B[2m`,bold:`\x1B[1m`,red:`\x1B[31m`,green:`\x1B[32m`,yellow:`\x1B[33m`,blue:`\x1B[34m`,magenta:`\x1B[35m`,cyan:`\x1B[36m`,dimItalicMagenta:`\x1B[2;3;35m`},c=!1,l=``,u=!1,d=[],f=new Map,p=``;function m(){if(d.length===0)return;let e=d.join(``);d.length=0,t()?.write(e),/\r?\n$/.test(e)||(c=!0)}function h(){c&&(c=!1,t()?.write(`\r
2
- `))}function g(e){let n=t();n&&(m(),h(),n.write(`\r\x1B[K`),n.write(e.endsWith(`\r
3
- `)||e.endsWith(`
4
- `)?e:`${e}\r\n`),_())}function _(){let e=t();e&&(c||d.length>0||e.write(`\r\x1b[K${s.dim}❯${s.reset} ${s.cyan}${p}${s.reset}`))}function v(){d.length=0,c=!1,u=!1,f.clear(),l=``,p=``,a(),t()?.reset(),_()}let y=()=>{let e=new Date;return`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}:${String(e.getSeconds()).padStart(2,`0`)}`};function b(e,t=160){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t)}…`:n}function x(e){if(e.seq<=r())return;i(e.seq);let t=e.frame;switch(t.type){case`__terminal_notice`:{let e=String(t.level??`info`),n=e===`error`?s.red:e===`warning`?s.yellow:s.dim;g(`${s.dim}[${y()}]${s.reset} ${n}⚡ ${String(t.message??``)}${s.reset}`);return}case`__human_input`:l=String(t.text??``),g(`${s.bold}${s.cyan}❯ ${l}${s.reset}`);return;case`ready`:g(`${s.green}● omp ready${s.reset} ${s.dim}protocol v${String(t.protocolVersion??`?`)} · mode rpc-ui${s.reset}`);return;case`agent_start`:u=!1,f.clear(),g(`${s.dim}── agent turn started ──${s.reset}`);return;case`agent_end`:g(`${s.dim}── agent turn ended(${String(t.messageCount??`?`)} messages)──${s.reset}`);return;case`message_start`:if(String(t.role??``)===`user`){let e=String(t.text??``);if(e===l)return;g(`${s.bold}${s.cyan}❯ ${e.replace(/\n/g,`\r
5
- `)}${s.reset}`)}return;case`message_update`:{let e=t.assistantMessageEvent;if(!e)return;if(e.type===`text_delta`&&e.delta){u=!0;let t=typeof e.contentIndex==`number`?e.contentIndex:0;f.set(t,(f.get(t)??0)+e.delta.length),d.push(e.delta.replace(/\n/g,`\r
6
- `))}else if(e.type===`text_end`&&typeof e.content==`string`&&e.content.length>0){let t=typeof e.contentIndex==`number`?e.contentIndex:0,n=f.get(t)??0;e.content.length>n&&(u=!0,f.set(t,e.content.length),d.push(e.content.slice(n).replace(/\n/g,`\r
7
- `)))}else e.type===`thinking_delta`&&e.delta&&(u=!0,d.push(`${s.dimItalicMagenta}${e.delta.replace(/\n/g,`\r
8
- `)}${s.reset}`));return}case`message_end`:String(t.role??``)===`assistant`&&u&&(u=!1,m(),h(),_());return;case`tool_execution_start`:g(` ${s.yellow}⚙ ${String(t.toolName??`tool`)}${s.reset}${s.dim}(${b(String(t.args??``),120)})${s.reset}`);return;case`tool_execution_update`:g(` ${s.dim}↳ … ${b(String(t.update??``),100)}${s.reset}`);return;case`tool_execution_end`:{let e=t.isError===!0?`${s.red}✗${s.reset}`:`${s.green}✓${s.reset}`,n=b(String(t.result??``),180);g(` ${e} ${s.dim}${n}${s.reset}`);return}case`host_tool_call`:g(` ${s.magenta}⇄ host:${String(t.toolName??`?`)}${s.reset}${s.dim}(${b(String(t.args??``),100)})${s.reset}`);return;case`extension_ui_request`:{let e=String(t.method??``);if(e===`cancel`){g(o(`ompTerminalPanel.k14jk3nu001`,{p0:s.dim,p1:String(t.targetId??``),p2:s.reset})),n.value&&n.value.id===String(t.targetId??``)&&(n.value=null);return}if(e===`notify`){g(` ${s.blue}ℹ ${String(t.message??``)}${s.reset}`);return}if(e===`select`||e===`confirm`||e===`input`||e===`editor`){let r=String(t.title??``);if(g(`${s.bold}${s.magenta}⚠ HITL · ${e}: ${r}${s.reset}`),Array.isArray(t.options))for(let e of t.options)g(` ${s.magenta}○${s.reset} ${String(e)}`);n.value={id:String(t.id??``),method:e,title:r,options:Array.isArray(t.options)?t.options.map(String):void 0,message:typeof t.message==`string`?t.message:void 0,placeholder:typeof t.placeholder==`string`?t.placeholder:void 0,prefill:typeof t.prefill==`string`?t.prefill:void 0,at:A()}}return}case`command_output`:g(`${s.dim}${String(t.text??``).replace(/\n/g,`\r
9
- `)}${s.reset}`);return;case`response`:{let e=String(t.command??``);if(e===`steer`||e===`follow_up`||e===`abort`||e===`prompt`){let n=t.success!==!1;g(` ${s.dim}· ${e} ${n?`accepted`:`failed: ${String(t.error??``)}`}${s.reset}`)}return}default:return}}function C(){d.length=0,c=!1,t()?.clear(),_()}return{C:s,flushStream:m,closeStreamLine:h,writeBlock:g,renderInputRow:_,resetView:v,renderFrame:x,doClear:C,oneLine:b,get inputLine(){return p},set inputLine(e){p=e}}}function B(e,t){let{t:n}=S(),i=O(),o=r(null),s=null,c=null,l=null,d=r(`idle`),f=r(!0),p=r(!1),h=r(!1),g=r(null),_=null,v=null,b=0,w=!1,T=0,E=[],D=-1,k=z({getTerm:()=>s,hitl:g,getLastSeq:()=>T,setLastSeq:e=>{T=e},clearHistory:()=>{E=[],D=-1}}),{C:A,flushStream:j,writeBlock:M,renderInputRow:N,resetView:P,renderFrame:F,doClear:I,oneLine:L}=k,R=u(()=>e.pid!=null&&e.pid>0||!!e.agentId),B=r(null);function V(){let t=window.location.protocol===`https:`?`wss`:`ws`,n=encodeURIComponent(i.token??``),r=e.pid!=null&&e.pid>0?`pid=${e.pid}`:`agentId=${encodeURIComponent(e.agentId??``)}${e.channelId?`&channelId=${encodeURIComponent(e.channelId)}`:``}`;return`${t}://${window.location.host}/api/system/monitor/terminal/ws?${r}&token=${n}`}let H=``;function U(e){switch(e.type){case`term.init`:B.value!==e.meta.pid&&(B.value=e.meta.pid,T=0,H=``,M(n(`ompTerminalPanel.k68kkpc002`,{p0:A.dim,p1:e.meta.pid,p2:e.lastSeq,p3:A.reset}))),f.value=e.alive,p.value=e.running,h.value=e.streaming,g.value=e.hitl;return;case`term.frames`:for(let t of e.frames)F(t);j();return;case`term.state`:f.value=e.alive,p.value=e.running,h.value=e.streaming;return;case`term.notice`:C.info(e.message);return;case`term.error`:{let t=`[${e.code}] ${e.message}`;if(t===H)return;H=t,M(`${A.red}✗ ${t}${A.reset}`);return}case`pong`:return}}function W(){if(!R.value||!i.token||_&&(_.readyState===WebSocket.OPEN||_.readyState===WebSocket.CONNECTING))return;w=!1,d.value=b===0?`connecting`:`retrying`;let e=new WebSocket(V());_=e,e.onopen=()=>{_===e&&(b=0,d.value=`open`)},e.onmessage=t=>{if(_===e)try{U(JSON.parse(t.data))}catch{}},e.onclose=()=>{if(_!==e)return;if(_=null,g.value=null,w||!R.value){d.value=`dead`;return}b+=1;let t=Math.min(1e3*2**Math.min(b-1,4),1e4);d.value=`retrying`,v=setTimeout(()=>{v=null,!w&&R.value&&W()},t)},e.onerror=()=>{}}function G(){w=!0,v&&=(clearTimeout(v),null),_?.close(),_=null}function K(e){if(_?.readyState===WebSocket.OPEN){_.send(JSON.stringify(e));return}M(n(`ompTerminalPanel.k59zj91003`,{p0:A.red,p1:A.reset}))}function q(e){let t=e.trim();t&&(E.push(t),E=E.slice(-50),D=-1,K({type:`input`,text:t}))}function J(){K({type:`abort`}),M(`${A.yellow}^C${A.reset}`)}function Y(e){K({type:`ui_response`,...e});let t=e.cancelled?`cancelled`:e.confirmed===void 0?`"${L(e.value??``,80)}"`:String(e.confirmed);M(n(`ompTerminalPanel.kvzhi95004`,{p0:A.green,p1:t,p2:A.reset})),g.value=null}let X=null;async function Z(){if(s||!o.value)return;let e=o.value,[{Terminal:t},{FitAddon:n}]=await Promise.all([x(()=>import(`./BrIJiJSN.js`),[],import.meta.url),x(()=>import(`./DIOBYJe3.js`),[],import.meta.url)]);s=new t({convertEol:!1,cursorBlink:!0,cursorStyle:`bar`,fontFamily:`"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace`,fontSize:12.5,lineHeight:1.25,scrollback:8e3,theme:{background:`#10151c`,foreground:`#d6dee8`,cursor:`#7aa2f7`,selectionBackground:`#33467c`,black:`#10151c`,red:`#f7768e`,green:`#9ece6a`,yellow:`#e0af68`,blue:`#7aa2f7`,magenta:`#bb9af7`,cyan:`#7dcfff`,white:`#d6dee8`}}),c=new n,s.loadAddon(c),s.open(e),N();let r=e=>{if(e.ctrlKey||e.metaKey||e.altKey){(e.key===`c`||e.key===`C`)&&(e.preventDefault(),e.stopPropagation(),J());return}if(e.key===`Enter`){e.preventDefault(),e.stopPropagation(),s?.write(`\r\x1B[K`);let t=k.inputLine;k.inputLine=``,q(t),N();return}if(e.key===`Backspace`){e.preventDefault(),e.stopPropagation(),k.inputLine=k.inputLine.slice(0,-1),N();return}if(e.key===`ArrowUp`||e.key===`ArrowDown`){if(E.length===0)return;e.preventDefault(),e.stopPropagation(),e.key===`ArrowUp`?D=D<0?E.length-1:Math.max(0,D-1):(D=D<0?-1:Math.min(E.length-1,D+1),D===E.length-1&&(D=-1)),k.inputLine=D<0?``:E[D]??``,N();return}e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&(e.preventDefault(),e.stopPropagation(),k.inputLine+=e.key,N())};e.addEventListener(`keydown`,r,!0),X=r,s.onData(e=>{e.length<=1||(k.inputLine+=e.replace(/[\r\n]+$/,``),N())}),l=new ResizeObserver(()=>{try{c?.fit()}catch{}}),l.observe(e)}function Q(){X&&o.value&&(o.value.removeEventListener(`keydown`,X,!0),X=null),l?.disconnect(),l=null,s?.dispose(),s=null,c=null}return y(t,t=>{t?m(async()=>{await Z(),P(),T=0,b=0,H=``,M(`${A.dim}── AgentWorkShop harness terminal · ${e.pid?`PID ${e.pid}`:`agent ${e.agentId?.slice(0,8)}…`} ──${A.reset}`),W(),m(()=>{try{c?.fit()}catch{}})}):(G(),g.value=null)}),y(()=>[e.pid,e.agentId],()=>{t.value&&(G(),m(()=>{P(),T=0,b=0,H=``,B.value=null,M(`${A.dim}${n(`ompTerminalPanel.switchTarget`,{p0:e.pid?`PID ${e.pid}`:`agent ${e.agentId?.slice(0,8)}…`})}${A.reset}`),W()}))}),a(()=>{G(),Q()}),{hostEl:o,connState:d,alive:f,running:p,streaming:h,hitl:g,livePid:B,stateLabel:u(()=>f.value?h.value?{text:n(`terminal.stateStreaming`),color:`processing`}:p.value?{text:n(`terminal.stateRunning`),color:`warning`}:{text:n(`terminal.stateIdle`),color:`success`}:{text:n(`terminal.stateExited`),color:`error`}),connLabel:u(()=>{switch(d.value){case`open`:return{text:n(`terminal.connOpen`),color:`success`};case`connecting`:return{text:n(`terminal.connConnecting`),color:`default`};case`retrying`:return{text:`${n(`terminal.connRetrying`)}(${b})`,color:`warning`};default:return{text:n(`terminal.connClosed`),color:`default`}}}),hitlRespond:Y,doAbort:J,doClear:I}}var V={class:`term-title`},H={class:`term-name`},U={class:`ts-chip aw-mono ts-pid`},W={key:0,class:`ts-chip ts-sub`},G={class:`term-toolbar`},K=[`data-state`],q=[`data-live`],J={class:`term-body`},Y={class:`term-hint aw-kicker`},X=Object.assign(k(o({__name:`OmpTerminalPanel`,props:h({pid:{},agentId:{},channelId:{},subtitle:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:[`update:open`],setup(n){let r=n,a=i(n,`open`),{t:o}=S(),{hostEl:c,connState:u,running:p,streaming:m,hitl:h,livePid:y,stateLabel:x,connLabel:C,hitlRespond:T,doAbort:E,doClear:O}=B(r,a);return(r,i)=>{let S=w,k=D;return s(),_(k,{open:a.value,"onUpdate:open":i[0]||=e=>a.value=e,placement:`right`,width:860,"body-style":{padding:`0`,display:`flex`,flexDirection:`column`,background:`#10151c`},"header-style":{background:`#10151c`,borderBottom:`1px solid #1d2733`},class:`omp-terminal-drawer`},{title:v(()=>[d(`div`,V,[i[1]||=d(`span`,{class:`term-brand`},[d(`span`,{class:`i-tabler-terminal-2`})],-1),d(`span`,H,t(e(o)(`terminal.title`)),1),d(`span`,U,`PID `+t(e(y)??n.pid??`–`),1),n.subtitle?(s(),f(`span`,W,t(n.subtitle),1)):g(``,!0)])]),extra:v(()=>[d(`div`,G,[d(`span`,{class:`ts-chip aw-mono`,"data-state":e(u)},[i[2]||=d(`span`,{class:`ts-dot`},null,-1),b(t(e(C).text),1)],8,K),d(`span`,{class:`ts-chip aw-mono`,"data-live":e(p)?e(m)?`streaming`:`running`:`idle`},t(e(x).text),9,q),l(S,{size:`small`,danger:``,class:`ts-btn`,disabled:!e(p)&&!e(m),onClick:e(E)},{icon:v(()=>[...i[3]||=[d(`span`,{class:`i-tabler-player-stop`},null,-1)]]),default:v(()=>[b(` `+t(e(o)(`terminal.abort`)),1)]),_:1},8,[`disabled`,`onClick`]),l(S,{size:`small`,class:`ts-btn`,onClick:e(O)},{icon:v(()=>[...i[4]||=[d(`span`,{class:`i-tabler-eraser`},null,-1)]]),default:v(()=>[b(` `+t(e(o)(`terminal.clear`)),1)]),_:1},8,[`onClick`])])]),default:v(()=>[d(`div`,J,[e(h)?(s(),_(R,{key:0,hitl:e(h),onRespond:e(T)},null,8,[`hitl`,`onRespond`])):g(``,!0),d(`div`,{ref_key:`hostEl`,ref:c,class:`term-host`},null,512),d(`div`,Y,t(e(o)(`terminal.hint`)),1)])]),_:1},8,[`open`])}}}),[[`__scopeId`,`data-v-382aebf5`]]),{__name:`WorkshopTerminalOmpTerminalPanel`});export{X as t};