agentworkshop 0.7.41 → 0.7.46

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 (1967) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +265 -6
  2. package/.AgentWorkShop/prompts/lead-supervise.md +54 -29
  3. package/.AgentWorkShop/prompts/peer-reply-optional.md +6 -2
  4. package/.AgentWorkShop/prompts/peer-reply-required.md +8 -7
  5. package/.output/.AgentWorkShop/aml-python/amlkit.py +185 -120
  6. package/.output/.AgentWorkShop/aml-python/requirements.txt +9 -7
  7. package/.output/.AgentWorkShop/aml-python/train-hybrid-example.py +87 -0
  8. package/.output/.AgentWorkShop/prompts/host-tools.json +265 -6
  9. package/.output/.AgentWorkShop/prompts/lead-supervise.md +54 -29
  10. package/.output/.AgentWorkShop/prompts/peer-reply-optional.md +6 -2
  11. package/.output/.AgentWorkShop/prompts/peer-reply-required.md +8 -7
  12. package/.output/.AgentWorkShop/schema.json +12 -0
  13. package/.output/nitro.json +1 -1
  14. package/.output/public/_nuxt/-hB4kEmt.js +1 -0
  15. package/.output/public/_nuxt/1g9IT9Qh2.js +1 -0
  16. package/.output/public/_nuxt/74x7BOWv2.js +1 -0
  17. package/.output/public/_nuxt/9c5GOgbu.js +1 -0
  18. package/.output/public/_nuxt/9zrLAN2o2.js +1 -0
  19. package/.output/public/_nuxt/B1RT9NTO2.js +1 -0
  20. package/.output/public/_nuxt/B2x8SKRO.js +1 -0
  21. package/.output/public/_nuxt/B6Olw0Op.js +1 -0
  22. package/.output/public/_nuxt/B7jlMWsz.js +1 -0
  23. package/.output/public/_nuxt/B8cnjDtt.js +1 -0
  24. package/.output/public/_nuxt/B9rIcCX12.js +1 -0
  25. package/.output/public/_nuxt/BACBBVdw.js +1 -0
  26. package/.output/public/_nuxt/BBhLVYdM.js +1 -0
  27. package/.output/public/_nuxt/BDmNbZ252.js +1 -0
  28. package/.output/public/_nuxt/BFVf8HLR.js +1 -0
  29. package/.output/public/_nuxt/BGKUW7ra.js +1 -0
  30. package/.output/public/_nuxt/BH3obZJ42.js +1 -0
  31. package/.output/public/_nuxt/BHwG4yNs.js +1 -0
  32. package/.output/public/_nuxt/BIOq3xqe2.js +1 -0
  33. package/.output/public/_nuxt/BITZvQBK.js +1 -0
  34. package/.output/public/_nuxt/BL_dbd2v2.js +1 -0
  35. package/.output/public/_nuxt/BMMoqi94.js +1 -0
  36. package/.output/public/_nuxt/BNnnYEYh2.js +1 -0
  37. package/.output/public/_nuxt/BQXCMsXk.js +1 -0
  38. package/.output/public/_nuxt/BS9P_Ies2.js +1 -0
  39. package/.output/public/_nuxt/BWU1pvLL.js +1 -0
  40. package/.output/public/_nuxt/B_9_BM9G.js +3 -0
  41. package/.output/public/_nuxt/B_LcD7qE2.js +1 -0
  42. package/.output/public/_nuxt/BcQXL8pb.js +1 -0
  43. package/.output/public/_nuxt/BdM_Qr752.js +1 -0
  44. package/.output/public/_nuxt/BiOSWsjD.js +2 -0
  45. package/.output/public/_nuxt/BkSViqQd.js +1 -0
  46. package/.output/public/_nuxt/Bl5dYv4m.js +1 -0
  47. package/.output/public/_nuxt/BmiMC_BC.js +2 -0
  48. package/.output/public/_nuxt/BnpY_zNx.js +1 -0
  49. package/.output/public/_nuxt/BqYVLAcm.js +1 -0
  50. package/.output/public/_nuxt/Br3AySNQ.js +1 -0
  51. package/.output/public/_nuxt/Br3MggOL.js +1 -0
  52. package/.output/public/_nuxt/BrRX-l9B2.js +4108 -0
  53. package/.output/public/_nuxt/Bt2ZL5332.js +1 -0
  54. package/.output/public/_nuxt/Bub2P5me.js +28 -0
  55. package/.output/public/_nuxt/BvRk9kiK.js +0 -0
  56. package/.output/public/_nuxt/BvRk9kiK2.js +0 -0
  57. package/.output/public/_nuxt/Bwc6lt2X.js +3 -0
  58. package/.output/public/_nuxt/BxHBIVAg.js +1 -0
  59. package/.output/public/_nuxt/BxYTM0hb.js +1 -0
  60. package/.output/public/_nuxt/ByMj6e7s.js +3 -0
  61. package/.output/public/_nuxt/BzvHUfRR2.js +1 -0
  62. package/.output/public/_nuxt/C2YYOgMe.js +42 -0
  63. package/.output/public/_nuxt/C3twEwTh2.js +1 -0
  64. package/.output/public/_nuxt/C4WhK2wq.js +1 -0
  65. package/.output/public/_nuxt/C50LmoI1.js +0 -0
  66. package/.output/public/_nuxt/CAaSPBqk.js +1 -0
  67. package/.output/public/_nuxt/CBDX7p73.js +1 -0
  68. package/.output/public/_nuxt/CD9lpEz22.js +13 -0
  69. package/.output/public/_nuxt/CGZVhYJ4.js +1 -0
  70. package/.output/public/_nuxt/CJRDL4EG.js +1 -0
  71. package/.output/public/_nuxt/CKQPwwZa2.js +1 -0
  72. package/.output/public/_nuxt/CLySL7mW.js +75 -0
  73. package/.output/public/_nuxt/CMXcOb6W.js +1 -0
  74. package/.output/public/_nuxt/CN1CDAwe.js +1 -0
  75. package/.output/public/_nuxt/CP0I2l-6.js +1 -0
  76. package/.output/public/_nuxt/CP0Nep9S.js +1 -0
  77. package/.output/public/_nuxt/CPeZNE4S2.js +1 -0
  78. package/.output/public/_nuxt/CPmNRTBk2.js +21 -0
  79. package/.output/public/_nuxt/CQabB0oy.js +1 -0
  80. package/.output/public/_nuxt/CT-vTjcG.js +1 -0
  81. package/.output/public/_nuxt/CTVfcnjU.js +3 -0
  82. package/.output/public/_nuxt/CWzp2R6G.js +1 -0
  83. package/.output/public/_nuxt/C_VAXV7I2.js +7 -0
  84. package/.output/public/_nuxt/CavpkQb0.js +1 -0
  85. package/.output/public/_nuxt/CeWnOF3O.js +1 -0
  86. package/.output/public/_nuxt/CfLUvgr32.js +1 -0
  87. package/.output/public/_nuxt/Ch1P2mIf.js +1 -0
  88. package/.output/public/_nuxt/ChoLwR-s.js +1 -0
  89. package/.output/public/_nuxt/Chphw5IA2.js +1 -0
  90. package/.output/public/_nuxt/ChtjzEpK2.js +19 -0
  91. package/.output/public/_nuxt/CiTQY_n32.js +1 -0
  92. package/.output/public/_nuxt/Ck5oMvUk.js +1 -0
  93. package/.output/public/_nuxt/Ckafrjnw2.js +1 -0
  94. package/.output/public/_nuxt/Cm_PTn9t2.js +1 -0
  95. package/.output/public/_nuxt/Cmp8PMrA.js +1 -0
  96. package/.output/public/_nuxt/Cnrmlixo.js +3 -0
  97. package/.output/public/_nuxt/Cr518Gh02.js +1 -0
  98. package/.output/public/_nuxt/Crbir9cT.js +1 -0
  99. package/.output/public/_nuxt/CtPNnATm2.js +31 -0
  100. package/.output/public/_nuxt/Cu8c3oMN2.js +1 -0
  101. package/.output/public/_nuxt/CwLQAKay2.js +1 -0
  102. package/.output/public/_nuxt/CzlUIbK32.js +17 -0
  103. package/.output/public/_nuxt/D6lZftfy.js +1 -0
  104. package/.output/public/_nuxt/D83nVQPl.js +1 -0
  105. package/.output/public/_nuxt/D89BUtx6.js +1 -0
  106. package/.output/public/_nuxt/DCtk3qqr.js +1 -0
  107. package/.output/public/_nuxt/DD6Z0yPN2.js +1 -0
  108. package/.output/public/_nuxt/DGw8juu_.js +2 -0
  109. package/.output/public/_nuxt/DHSDk8Bq2.js +4 -0
  110. package/.output/public/_nuxt/DJdDFnjG2.js +1 -0
  111. package/.output/public/_nuxt/DJyNDnag.js +1 -0
  112. package/.output/public/_nuxt/DK3Fl9T5.js +1 -0
  113. package/.output/public/_nuxt/DLPuRMeG.js +19 -0
  114. package/.output/public/_nuxt/DMYYS5sK.js +1 -0
  115. package/.output/public/_nuxt/DNno23Jf2.js +1 -0
  116. package/.output/public/_nuxt/DNoEoo8t.js +1 -0
  117. package/.output/public/_nuxt/DPUXbTg92.js +1 -0
  118. package/.output/public/_nuxt/DRpFsrno.js +1 -0
  119. package/.output/public/_nuxt/DXIaadqv.js +1 -0
  120. package/.output/public/_nuxt/D_7AzAWe.js +1 -0
  121. package/.output/public/_nuxt/Dbe9TFc9.js +1 -0
  122. package/.output/public/_nuxt/DdNujZN5.js +1 -0
  123. package/.output/public/_nuxt/DdvQ7LRI.js +14 -0
  124. package/.output/public/_nuxt/DhFv8S2Z.js +1 -0
  125. package/.output/public/_nuxt/DkJVtqfc.js +1 -0
  126. package/.output/public/_nuxt/DkLCjrCk2.js +47 -0
  127. package/.output/public/_nuxt/DkpmSnHX.js +1 -0
  128. package/.output/public/_nuxt/DlUQa0wn2.js +1 -0
  129. package/.output/public/_nuxt/DoKpLEqc.js +1 -0
  130. package/.output/public/_nuxt/DpqA8D8_.js +1 -0
  131. package/.output/public/_nuxt/Dq0emNZi2.js +1 -0
  132. package/.output/public/_nuxt/DqtgGFEc.js +1 -0
  133. package/.output/public/_nuxt/DqtnqNgL2.js +1 -0
  134. package/.output/public/_nuxt/Dqz5HiXa.js +2 -0
  135. package/.output/public/_nuxt/Du9v6qGB.js +1 -0
  136. package/.output/public/_nuxt/DxagrjB8.js +1 -0
  137. package/.output/public/_nuxt/Dy3oXKdn2.js +1 -0
  138. package/.output/public/_nuxt/DzBbYWrw2.js +1 -0
  139. package/.output/public/_nuxt/EhhQmlBV2.js +1 -0
  140. package/.output/public/_nuxt/H2rNs1O82.js +1 -0
  141. package/.output/public/_nuxt/H6pPjo0l.js +1 -0
  142. package/.output/public/_nuxt/JAM4aNC_.js +1 -0
  143. package/.output/public/_nuxt/JgheoP3e.js +1 -0
  144. package/.output/public/_nuxt/LwIFGLgF.js +1 -0
  145. package/.output/public/_nuxt/Nw_6OpQZ2.js +1 -0
  146. package/.output/public/_nuxt/OXtV_ukR.js +1 -0
  147. package/.output/public/_nuxt/OmpTerminalPanel.ComMDrA8.css +1 -0
  148. package/.output/public/_nuxt/PLGqdko0.js +1 -0
  149. package/.output/public/_nuxt/PixDfCSm.js +1 -0
  150. package/.output/public/_nuxt/RAqsw632.js +1 -0
  151. package/.output/public/_nuxt/Sjjmp5OD2.js +1 -0
  152. package/.output/public/_nuxt/TOWR4WpO.js +1 -0
  153. package/.output/public/_nuxt/TownView.BvlfuLtP.css +1 -0
  154. package/.output/public/_nuxt/U8oQxruK.js +1 -0
  155. package/.output/public/_nuxt/WleoCtUX.js +1 -0
  156. package/.output/public/_nuxt/YaroNkJZ2.js +1 -0
  157. package/.output/public/_nuxt/Z-Z6EhXs.js +1 -0
  158. package/.output/public/_nuxt/ZuQtOnfI.js +1 -0
  159. package/.output/public/_nuxt/ZvXovq7N2.js +1 -0
  160. package/.output/public/_nuxt/_id_.BTrFUIHX.css +1 -0
  161. package/.output/public/_nuxt/_id_.Bossmhv1.css +1 -0
  162. package/.output/public/_nuxt/_wsId_.D-u-dbP9.css +1 -0
  163. package/.output/public/_nuxt/agents.Cgm_JG9L.css +1 -0
  164. package/.output/public/_nuxt/aml.Bi5X6_oi.css +1 -0
  165. package/.output/public/_nuxt/bg2adfck.js +1 -0
  166. package/.output/public/_nuxt/bt__BP-I.js +13 -0
  167. package/.output/public/_nuxt/builds/latest.json +1 -1
  168. package/.output/public/_nuxt/builds/meta/7827fe9f-b4c2-461f-b1fb-c0c7da7d66b8.json +1 -0
  169. package/.output/public/_nuxt/cBI0JqsV2.js +209 -0
  170. package/.output/public/_nuxt/cDcDztgb2.js +1 -0
  171. package/.output/public/_nuxt/cGSl2GZp.js +1 -0
  172. package/.output/public/_nuxt/channel-templates.DplM1pJ3.css +1 -0
  173. package/.output/public/_nuxt/csitHKnE2.js +1 -0
  174. package/.output/public/_nuxt/d-w5jR8R.js +1 -0
  175. package/.output/public/_nuxt/daq.0uieKcZk.css +1 -0
  176. package/.output/public/_nuxt/dcw.pQRVkAi_.css +1 -0
  177. package/.output/public/_nuxt/default.uao9U50c.css +1 -0
  178. package/.output/public/_nuxt/e7BBCLxr.js +1 -0
  179. package/.output/public/_nuxt/entry.6DEjPWvR.css +1 -0
  180. package/.output/public/_nuxt/eutnXI4F.js +24 -0
  181. package/.output/public/_nuxt/fxWyOzyp2.js +1 -0
  182. package/.output/public/_nuxt/hkMGMTqt.js +1 -0
  183. package/.output/public/_nuxt/ikAUnxx3.js +1 -0
  184. package/.output/public/_nuxt/lWYQbIR3.js +1 -0
  185. package/.output/public/_nuxt/logs.CD0Olr3c.css +1 -0
  186. package/.output/public/_nuxt/monitor.CI2v5Nvl.css +1 -0
  187. package/.output/public/_nuxt/pages.CMhSEhEb.css +1 -0
  188. package/.output/public/_nuxt/permissions.DxuOOIqQ.css +1 -0
  189. package/.output/public/_nuxt/plugins.C50x1qZp.css +1 -0
  190. package/.output/public/_nuxt/qOlYoGLf.js +1 -0
  191. package/.output/public/_nuxt/schedules.BXNJ9q_I.css +1 -0
  192. package/.output/public/_nuxt/settings.Bo5EYkLI.css +1 -0
  193. package/.output/public/_nuxt/teams.sGmx1AdX.css +1 -0
  194. package/.output/public/_nuxt/tokens.DFMFaCYU.css +1 -0
  195. package/.output/public/_nuxt/uI9Ki_XZ.js +9 -0
  196. package/.output/public/_nuxt/users.DBxcKnfg.css +1 -0
  197. package/.output/public/_nuxt/v55S8LnT.js +1 -0
  198. package/.output/public/_nuxt/wDPc4SSR.js +106 -0
  199. package/.output/public/_nuxt/workshop.b4YRXEe0.css +1 -0
  200. package/.output/public/_nuxt/y9kob70X.js +1 -0
  201. package/.output/public/_nuxt/zh-S_7rN.js +1 -0
  202. package/.output/server/chunks/_/LeftOutlined.mjs +1 -1
  203. package/.output/server/chunks/_/SearchOutlined.mjs +1243 -279
  204. package/.output/server/chunks/_/SearchOutlined.mjs.map +1 -1
  205. package/.output/server/chunks/_/binding-authz.mjs +1 -1
  206. package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
  207. package/.output/server/chunks/_/entity.mjs +1 -1
  208. package/.output/server/chunks/_/env-manager.mjs +1 -1
  209. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  210. package/.output/server/chunks/_/nitro.mjs +26659 -18787
  211. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  212. package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
  213. package/.output/server/chunks/build/Checkbox-4EdGAAl_.mjs +206 -0
  214. package/.output/server/chunks/build/Checkbox-4EdGAAl_.mjs.map +1 -0
  215. package/.output/server/chunks/build/FormItemContext-4ORSzhWv.mjs +72 -0
  216. package/.output/server/chunks/build/FormItemContext-4ORSzhWv.mjs.map +1 -0
  217. package/.output/server/chunks/build/OmpTerminalPanel-EQHrOJbw.mjs +942 -0
  218. package/.output/server/chunks/build/OmpTerminalPanel-EQHrOJbw.mjs.map +1 -0
  219. package/.output/server/chunks/build/PluginSlot-BP_qedpQ.mjs +399 -0
  220. package/.output/server/chunks/build/PluginSlot-BP_qedpQ.mjs.map +1 -0
  221. package/.output/server/chunks/build/TownView-BAR8CPIZ.mjs +6373 -0
  222. package/.output/server/chunks/build/TownView-BAR8CPIZ.mjs.map +1 -0
  223. package/.output/server/chunks/build/_id_-DgMpjM3_.mjs +1354 -0
  224. package/.output/server/chunks/build/_id_-DgMpjM3_.mjs.map +1 -0
  225. package/.output/server/chunks/build/_id_-Dv3BQbYV.mjs +388 -0
  226. package/.output/server/chunks/build/_id_-Dv3BQbYV.mjs.map +1 -0
  227. package/.output/server/chunks/build/_wsId_-BKJvFmyf.mjs +13109 -0
  228. package/.output/server/chunks/build/_wsId_-BKJvFmyf.mjs.map +1 -0
  229. package/.output/server/chunks/build/agents-B2GLPmn2.mjs +1085 -0
  230. package/.output/server/chunks/build/agents-B2GLPmn2.mjs.map +1 -0
  231. package/.output/server/chunks/build/aml-DdWicH3t.mjs +806 -0
  232. package/.output/server/chunks/build/aml-DdWicH3t.mjs.map +1 -0
  233. package/.output/server/chunks/build/api-BY6ji7RC.mjs +50 -0
  234. package/.output/server/chunks/build/api-BY6ji7RC.mjs.map +1 -0
  235. package/.output/server/chunks/build/api-error-BwAQLw44.mjs +47 -0
  236. package/.output/server/chunks/build/api-error-BwAQLw44.mjs.map +1 -0
  237. package/.output/server/chunks/build/apiClient-D281qrK2.mjs +81 -0
  238. package/.output/server/chunks/build/apiClient-D281qrK2.mjs.map +1 -0
  239. package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs +117 -0
  240. package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs.map +1 -0
  241. package/.output/server/chunks/build/card-CUSocE9p.mjs +953 -0
  242. package/.output/server/chunks/build/card-CUSocE9p.mjs.map +1 -0
  243. package/.output/server/chunks/build/channel-templates-RPOtkgRf.mjs +846 -0
  244. package/.output/server/chunks/build/channel-templates-RPOtkgRf.mjs.map +1 -0
  245. package/.output/server/chunks/build/checkbox-C4AKj81e.mjs +439 -0
  246. package/.output/server/chunks/build/checkbox-C4AKj81e.mjs.map +1 -0
  247. package/.output/server/chunks/build/client-only-qNA2OVV_.mjs +43 -0
  248. package/.output/server/chunks/build/client-only-qNA2OVV_.mjs.map +1 -0
  249. package/.output/server/chunks/build/constants-HPHJvjne.mjs +139 -0
  250. package/.output/server/chunks/build/constants-HPHJvjne.mjs.map +1 -0
  251. package/.output/server/chunks/build/core-CgTOPS4t.mjs +294 -0
  252. package/.output/server/chunks/build/core-CgTOPS4t.mjs.map +1 -0
  253. package/.output/server/chunks/build/daq-CPtsh0e7.mjs +1253 -0
  254. package/.output/server/chunks/build/daq-CPtsh0e7.mjs.map +1 -0
  255. package/.output/server/chunks/build/dcw-ry5Gyw6Y.mjs +478 -0
  256. package/.output/server/chunks/build/dcw-ry5Gyw6Y.mjs.map +1 -0
  257. package/.output/server/chunks/build/default-DxOE1eB0.mjs +2061 -0
  258. package/.output/server/chunks/build/default-DxOE1eB0.mjs.map +1 -0
  259. package/.output/server/chunks/build/descriptions-CFaUq4y4.mjs +406 -0
  260. package/.output/server/chunks/build/descriptions-CFaUq4y4.mjs.map +1 -0
  261. package/.output/server/chunks/build/drawer-Cfh9_zft.mjs +834 -0
  262. package/.output/server/chunks/build/drawer-Cfh9_zft.mjs.map +1 -0
  263. package/.output/server/chunks/build/dropdown-KdKWCS5K.mjs +556 -0
  264. package/.output/server/chunks/build/dropdown-KdKWCS5K.mjs.map +1 -0
  265. package/.output/server/chunks/build/dropdown-Yev6knaj.mjs +14 -0
  266. package/.output/server/chunks/build/dropdown-Yev6knaj.mjs.map +1 -0
  267. package/.output/server/chunks/build/form-uSlNqIAV.mjs +4711 -0
  268. package/.output/server/chunks/build/form-uSlNqIAV.mjs.map +1 -0
  269. package/.output/server/chunks/build/input-Cr_KFj4T.mjs +1381 -0
  270. package/.output/server/chunks/build/input-Cr_KFj4T.mjs.map +1 -0
  271. package/.output/server/chunks/build/input-number-BRVnxeiA.mjs +1119 -0
  272. package/.output/server/chunks/build/input-number-BRVnxeiA.mjs.map +1 -0
  273. package/.output/server/chunks/build/interval-DvHBIIZh.mjs +9 -0
  274. package/.output/server/chunks/build/interval-DvHBIIZh.mjs.map +1 -0
  275. package/.output/server/chunks/build/logs-CeaiO3y9.mjs +367 -0
  276. package/.output/server/chunks/build/logs-CeaiO3y9.mjs.map +1 -0
  277. package/.output/server/chunks/build/menu-BgkRSSx7.mjs +1949 -0
  278. package/.output/server/chunks/build/menu-BgkRSSx7.mjs.map +1 -0
  279. package/.output/server/chunks/build/monitor-DnuXEIi5.mjs +2245 -0
  280. package/.output/server/chunks/build/monitor-DnuXEIi5.mjs.map +1 -0
  281. package/.output/server/chunks/build/narrow-fetch-CcG-BPxc.mjs +6 -0
  282. package/.output/server/chunks/build/narrow-fetch-CcG-BPxc.mjs.map +1 -0
  283. package/.output/server/chunks/build/pages-Bn90ijKD.mjs +539 -0
  284. package/.output/server/chunks/build/pages-Bn90ijKD.mjs.map +1 -0
  285. package/.output/server/chunks/build/permissions-DL70W1YD.mjs +629 -0
  286. package/.output/server/chunks/build/permissions-DL70W1YD.mjs.map +1 -0
  287. package/.output/server/chunks/build/plugins-DrsZo--K.mjs +246 -0
  288. package/.output/server/chunks/build/plugins-DrsZo--K.mjs.map +1 -0
  289. package/.output/server/chunks/build/popconfirm-Ox-_2V8A.mjs +339 -0
  290. package/.output/server/chunks/build/popconfirm-Ox-_2V8A.mjs.map +1 -0
  291. package/.output/server/chunks/build/schedules-VLzNcjnW.mjs +7164 -0
  292. package/.output/server/chunks/build/schedules-VLzNcjnW.mjs.map +1 -0
  293. package/.output/server/chunks/build/segmented-C61yLHvo.mjs +341 -0
  294. package/.output/server/chunks/build/segmented-C61yLHvo.mjs.map +1 -0
  295. package/.output/server/chunks/build/select-rdBWytVK.mjs +3922 -0
  296. package/.output/server/chunks/build/select-rdBWytVK.mjs.map +1 -0
  297. package/.output/server/chunks/build/settings-DVAUVMsX.mjs +1089 -0
  298. package/.output/server/chunks/build/settings-DVAUVMsX.mjs.map +1 -0
  299. package/.output/server/chunks/build/space-B2uhHJG8.mjs +110 -0
  300. package/.output/server/chunks/build/space-B2uhHJG8.mjs.map +1 -0
  301. package/.output/server/chunks/build/spin-C2cuvGth.mjs +357 -0
  302. package/.output/server/chunks/build/spin-C2cuvGth.mjs.map +1 -0
  303. package/.output/server/chunks/build/switch-DZAUIbIN.mjs +377 -0
  304. package/.output/server/chunks/build/switch-DZAUIbIN.mjs.map +1 -0
  305. package/.output/server/chunks/build/table-DOFAvY-v.mjs +8881 -0
  306. package/.output/server/chunks/build/table-DOFAvY-v.mjs.map +1 -0
  307. package/.output/server/chunks/build/tabs-DTeIuZeP.mjs +1923 -0
  308. package/.output/server/chunks/build/tabs-DTeIuZeP.mjs.map +1 -0
  309. package/.output/server/chunks/build/tag-CHLGvNM6.mjs +1029 -0
  310. package/.output/server/chunks/build/tag-CHLGvNM6.mjs.map +1 -0
  311. package/.output/server/chunks/build/teams-Mc07PYO8.mjs +1195 -0
  312. package/.output/server/chunks/build/teams-Mc07PYO8.mjs.map +1 -0
  313. package/.output/server/chunks/build/tokens-DiwD5qni.mjs +1036 -0
  314. package/.output/server/chunks/build/tokens-DiwD5qni.mjs.map +1 -0
  315. package/.output/server/chunks/build/town-BIn3be5v.mjs +39 -0
  316. package/.output/server/chunks/build/town-BIn3be5v.mjs.map +1 -0
  317. package/.output/server/chunks/build/town-D8VmTCmN.mjs +128 -0
  318. package/.output/server/chunks/build/town-D8VmTCmN.mjs.map +1 -0
  319. package/.output/server/chunks/build/types-D6J7slEa.mjs +5561 -0
  320. package/.output/server/chunks/build/types-D6J7slEa.mjs.map +1 -0
  321. package/.output/server/chunks/build/useAgentHarnessOptions-CPn5dzKe.mjs +121 -0
  322. package/.output/server/chunks/build/useAgentHarnessOptions-CPn5dzKe.mjs.map +1 -0
  323. package/.output/server/chunks/build/useAgentTemplateActions-DQWzVnZ0.mjs +74 -0
  324. package/.output/server/chunks/build/useAgentTemplateActions-DQWzVnZ0.mjs.map +1 -0
  325. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +64 -0
  326. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs.map +1 -0
  327. package/.output/server/chunks/build/useAgentTemplateForm-vqyiRPtt.mjs +114 -0
  328. package/.output/server/chunks/build/useAgentTemplateForm-vqyiRPtt.mjs.map +1 -0
  329. package/.output/server/chunks/build/useAgentTemplatesCatalog-DcQbsOik.mjs +130 -0
  330. package/.output/server/chunks/build/useAgentTemplatesCatalog-DcQbsOik.mjs.map +1 -0
  331. package/.output/server/chunks/build/useAmlDatasets-BM0lZu40.mjs +89 -0
  332. package/.output/server/chunks/build/useAmlDatasets-BM0lZu40.mjs.map +1 -0
  333. package/.output/server/chunks/build/useAmlEntities-BjXWvFd_.mjs +83 -0
  334. package/.output/server/chunks/build/useAmlEntities-BjXWvFd_.mjs.map +1 -0
  335. package/.output/server/chunks/build/useAmlEnv-BB7p6x_w.mjs +191 -0
  336. package/.output/server/chunks/build/useAmlEnv-BB7p6x_w.mjs.map +1 -0
  337. package/.output/server/chunks/build/useAmlExperiments-BtyW32PO.mjs +86 -0
  338. package/.output/server/chunks/build/useAmlExperiments-BtyW32PO.mjs.map +1 -0
  339. package/.output/server/chunks/build/useAmlFormat-WrKuRfw2.mjs +79 -0
  340. package/.output/server/chunks/build/useAmlFormat-WrKuRfw2.mjs.map +1 -0
  341. package/.output/server/chunks/build/useAmlJobs-DBuLvWMF.mjs +263 -0
  342. package/.output/server/chunks/build/useAmlJobs-DBuLvWMF.mjs.map +1 -0
  343. package/.output/server/chunks/build/useAmlModels-VurmkBYe.mjs +90 -0
  344. package/.output/server/chunks/build/useAmlModels-VurmkBYe.mjs.map +1 -0
  345. package/.output/server/chunks/build/useAmlNotes-BUdj3X6Y.mjs +83 -0
  346. package/.output/server/chunks/build/useAmlNotes-BUdj3X6Y.mjs.map +1 -0
  347. package/.output/server/chunks/build/useAmlPredict-DFy-Do10.mjs +127 -0
  348. package/.output/server/chunks/build/useAmlPredict-DFy-Do10.mjs.map +1 -0
  349. package/.output/server/chunks/build/useDaqAddNode-kW7uTSMQ.mjs +139 -0
  350. package/.output/server/chunks/build/useDaqAddNode-kW7uTSMQ.mjs.map +1 -0
  351. package/.output/server/chunks/build/useDaqDetailBinding-cpBz4hSL.mjs +67 -0
  352. package/.output/server/chunks/build/useDaqDetailBinding-cpBz4hSL.mjs.map +1 -0
  353. package/.output/server/chunks/build/useDaqDetailFrames-BZGtKKXW.mjs +76 -0
  354. package/.output/server/chunks/build/useDaqDetailFrames-BZGtKKXW.mjs.map +1 -0
  355. package/.output/server/chunks/build/useDaqDetailHistory-C4_hVeqZ.mjs +173 -0
  356. package/.output/server/chunks/build/useDaqDetailHistory-C4_hVeqZ.mjs.map +1 -0
  357. package/.output/server/chunks/build/useDaqDetailNode-Bwid_iA8.mjs +96 -0
  358. package/.output/server/chunks/build/useDaqDetailNode-Bwid_iA8.mjs.map +1 -0
  359. package/.output/server/chunks/build/useDaqDetailParams-JfqHvTxr.mjs +156 -0
  360. package/.output/server/chunks/build/useDaqDetailParams-JfqHvTxr.mjs.map +1 -0
  361. package/.output/server/chunks/build/useDaqFilters-C13836p-.mjs +219 -0
  362. package/.output/server/chunks/build/useDaqFilters-C13836p-.mjs.map +1 -0
  363. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +87 -0
  364. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs.map +1 -0
  365. package/.output/server/chunks/build/useDaqOptimizations-Ct-TSXxy.mjs +133 -0
  366. package/.output/server/chunks/build/useDaqOptimizations-Ct-TSXxy.mjs.map +1 -0
  367. package/.output/server/chunks/build/useDaqStream-wOxZcMDA.mjs +395 -0
  368. package/.output/server/chunks/build/useDaqStream-wOxZcMDA.mjs.map +1 -0
  369. package/.output/server/chunks/build/useDaqTemplates-BqQRdrIm.mjs +184 -0
  370. package/.output/server/chunks/build/useDaqTemplates-BqQRdrIm.mjs.map +1 -0
  371. package/.output/server/chunks/build/useDashboardCharts-DZysNDUX.mjs +351 -0
  372. package/.output/server/chunks/build/useDashboardCharts-DZysNDUX.mjs.map +1 -0
  373. package/.output/server/chunks/build/useDashboardData-Ny_wtbo6.mjs +150 -0
  374. package/.output/server/chunks/build/useDashboardData-Ny_wtbo6.mjs.map +1 -0
  375. package/.output/server/chunks/build/useDcwAddNode-C8nE7geh.mjs +148 -0
  376. package/.output/server/chunks/build/useDcwAddNode-C8nE7geh.mjs.map +1 -0
  377. package/.output/server/chunks/build/useDcwCards-ETEsHvVy.mjs +64 -0
  378. package/.output/server/chunks/build/useDcwCards-ETEsHvVy.mjs.map +1 -0
  379. package/.output/server/chunks/build/useDcwDetailScope-BNrpDzbO.mjs +181 -0
  380. package/.output/server/chunks/build/useDcwDetailScope-BNrpDzbO.mjs.map +1 -0
  381. package/.output/server/chunks/build/useDcwDetailTemplates-IcKAJ37Y.mjs +145 -0
  382. package/.output/server/chunks/build/useDcwDetailTemplates-IcKAJ37Y.mjs.map +1 -0
  383. package/.output/server/chunks/build/useDcwFilter-FfVlDdyS.mjs +68 -0
  384. package/.output/server/chunks/build/useDcwFilter-FfVlDdyS.mjs.map +1 -0
  385. package/.output/server/chunks/build/useDcwLedger-BLoMmcu1.mjs +76 -0
  386. package/.output/server/chunks/build/useDcwLedger-BLoMmcu1.mjs.map +1 -0
  387. package/.output/server/chunks/build/useDcwLineMutations-BMC5BTWU.mjs +134 -0
  388. package/.output/server/chunks/build/useDcwLineMutations-BMC5BTWU.mjs.map +1 -0
  389. package/.output/server/chunks/build/useDcwLineRun-Bpxk4mse.mjs +101 -0
  390. package/.output/server/chunks/build/useDcwLineRun-Bpxk4mse.mjs.map +1 -0
  391. package/.output/server/chunks/build/useDcwProducts-D-zrMaeV.mjs +90 -0
  392. package/.output/server/chunks/build/useDcwProducts-D-zrMaeV.mjs.map +1 -0
  393. package/.output/server/chunks/build/useDcwQuery-1lYHOaU6.mjs +95 -0
  394. package/.output/server/chunks/build/useDcwQuery-1lYHOaU6.mjs.map +1 -0
  395. package/.output/server/chunks/build/useDcwQuickActions-C-tgcXIr.mjs +85 -0
  396. package/.output/server/chunks/build/useDcwQuickActions-C-tgcXIr.mjs.map +1 -0
  397. package/.output/server/chunks/build/useDcwRecipes-BzGOymqz.mjs +237 -0
  398. package/.output/server/chunks/build/useDcwRecipes-BzGOymqz.mjs.map +1 -0
  399. package/.output/server/chunks/build/useDcwStream-D04kCV3J.mjs +435 -0
  400. package/.output/server/chunks/build/useDcwStream-D04kCV3J.mjs.map +1 -0
  401. package/.output/server/chunks/build/useDcwTemplates-Dsjw9u6U.mjs +88 -0
  402. package/.output/server/chunks/build/useDcwTemplates-Dsjw9u6U.mjs.map +1 -0
  403. package/.output/server/chunks/build/useDcwWrites-3RxwN36I.mjs +120 -0
  404. package/.output/server/chunks/build/useDcwWrites-3RxwN36I.mjs.map +1 -0
  405. package/.output/server/chunks/build/useDeviceTwins-CbVad1M3.mjs +128 -0
  406. package/.output/server/chunks/build/useDeviceTwins-CbVad1M3.mjs.map +1 -0
  407. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs +1 -8
  408. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs.map +1 -1
  409. package/.output/server/chunks/build/useLogsFormat-BlwLpyzy.mjs +74 -0
  410. package/.output/server/chunks/build/useLogsFormat-BlwLpyzy.mjs.map +1 -0
  411. package/.output/server/chunks/build/useLogsManual-Deev2Cjk.mjs +81 -0
  412. package/.output/server/chunks/build/useLogsManual-Deev2Cjk.mjs.map +1 -0
  413. package/.output/server/chunks/build/useLogsQuery-CRAm2hmS.mjs +112 -0
  414. package/.output/server/chunks/build/useLogsQuery-CRAm2hmS.mjs.map +1 -0
  415. package/.output/server/chunks/build/useLogsScope-ClNijVj4.mjs +80 -0
  416. package/.output/server/chunks/build/useLogsScope-ClNijVj4.mjs.map +1 -0
  417. package/.output/server/chunks/build/useMonitorColumns-ylxrUNTK.mjs +212 -0
  418. package/.output/server/chunks/build/useMonitorColumns-ylxrUNTK.mjs.map +1 -0
  419. package/.output/server/chunks/build/useMonitorData-CEpKXoD4.mjs +131 -0
  420. package/.output/server/chunks/build/useMonitorData-CEpKXoD4.mjs.map +1 -0
  421. package/.output/server/chunks/build/useMonitorFormat-_7zLapf3.mjs +87 -0
  422. package/.output/server/chunks/build/useMonitorFormat-_7zLapf3.mjs.map +1 -0
  423. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +68 -0
  424. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs.map +1 -0
  425. package/.output/server/chunks/build/useOpsLog-CgnNG7_n.mjs +137 -0
  426. package/.output/server/chunks/build/useOpsLog-CgnNG7_n.mjs.map +1 -0
  427. package/.output/server/chunks/build/useTeamActions-D6sxdpkP.mjs +76 -0
  428. package/.output/server/chunks/build/useTeamActions-D6sxdpkP.mjs.map +1 -0
  429. package/.output/server/chunks/build/useTeamAddMemberDialog-Q-ntQ6Vo.mjs +81 -0
  430. package/.output/server/chunks/build/useTeamAddMemberDialog-Q-ntQ6Vo.mjs.map +1 -0
  431. package/.output/server/chunks/build/useTeamCreateDialog-D7OMfDTM.mjs +94 -0
  432. package/.output/server/chunks/build/useTeamCreateDialog-D7OMfDTM.mjs.map +1 -0
  433. package/.output/server/chunks/build/useTeamDeployDialog-vBRqjiut.mjs +77 -0
  434. package/.output/server/chunks/build/useTeamDeployDialog-vBRqjiut.mjs.map +1 -0
  435. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +79 -0
  436. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs.map +1 -0
  437. package/.output/server/chunks/build/useTeamPluginDialog-B8kxewpZ.mjs +100 -0
  438. package/.output/server/chunks/build/useTeamPluginDialog-B8kxewpZ.mjs.map +1 -0
  439. package/.output/server/chunks/build/useTeamsCatalog-xRhk7ezA.mjs +120 -0
  440. package/.output/server/chunks/build/useTeamsCatalog-xRhk7ezA.mjs.map +1 -0
  441. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +69 -0
  442. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs.map +1 -0
  443. package/.output/server/chunks/build/useTokenCreate-DpDcF1Vx.mjs +112 -0
  444. package/.output/server/chunks/build/useTokenCreate-DpDcF1Vx.mjs.map +1 -0
  445. package/.output/server/chunks/build/useTokenRename-BRejFrtc.mjs +84 -0
  446. package/.output/server/chunks/build/useTokenRename-BRejFrtc.mjs.map +1 -0
  447. package/.output/server/chunks/build/useTokenReveal-DER2afAS.mjs +115 -0
  448. package/.output/server/chunks/build/useTokenReveal-DER2afAS.mjs.map +1 -0
  449. package/.output/server/chunks/build/useTokensList-DHt65IOY.mjs +89 -0
  450. package/.output/server/chunks/build/useTokensList-DHt65IOY.mjs.map +1 -0
  451. package/.output/server/chunks/build/useWorkbenchAuth-B2j-zILO.mjs +135 -0
  452. package/.output/server/chunks/build/useWorkbenchAuth-B2j-zILO.mjs.map +1 -0
  453. package/.output/server/chunks/build/useWorkbenchWorkspaces-B_2mOxN6.mjs +133 -0
  454. package/.output/server/chunks/build/useWorkbenchWorkspaces-B_2mOxN6.mjs.map +1 -0
  455. package/.output/server/chunks/build/useWorkshopApi-B1B9vd4m.mjs +102 -0
  456. package/.output/server/chunks/build/useWorkshopApi-B1B9vd4m.mjs.map +1 -0
  457. package/.output/server/chunks/build/useWorkshopWs-B-Es2Xg3.mjs +1782 -0
  458. package/.output/server/chunks/build/useWorkshopWs-B-Es2Xg3.mjs.map +1 -0
  459. package/.output/server/chunks/build/useWorkspaceAuth-tQ1ORWXo.mjs +57 -0
  460. package/.output/server/chunks/build/useWorkspaceAuth-tQ1ORWXo.mjs.map +1 -0
  461. package/.output/server/chunks/build/useWorkspaceChannels-BwB6TAWY.mjs +87 -0
  462. package/.output/server/chunks/build/useWorkspaceChannels-BwB6TAWY.mjs.map +1 -0
  463. package/.output/server/chunks/build/useWorkspacePanels-CuAmDpT5.mjs +75 -0
  464. package/.output/server/chunks/build/useWorkspacePanels-CuAmDpT5.mjs.map +1 -0
  465. package/.output/server/chunks/build/useWorkspaceShell-CcQ4JlqO.mjs +165 -0
  466. package/.output/server/chunks/build/useWorkspaceShell-CcQ4JlqO.mjs.map +1 -0
  467. package/.output/server/chunks/build/users-De2HygNt.mjs +561 -0
  468. package/.output/server/chunks/build/users-De2HygNt.mjs.map +1 -0
  469. package/.output/server/chunks/build/workshop-CmgpTwyf.mjs +1018 -0
  470. package/.output/server/chunks/build/workshop-CmgpTwyf.mjs.map +1 -0
  471. package/.output/server/chunks/build/workspaces-DVIEk1Bl.mjs +139 -0
  472. package/.output/server/chunks/build/workspaces-DVIEk1Bl.mjs.map +1 -0
  473. package/.output/server/chunks/routes/api/health.get.mjs +2 -2
  474. package/.output/server/chunks/routes/api/index.get.mjs +2 -2
  475. package/.output/server/chunks/routes/api/index.post.mjs +2 -2
  476. package/.output/server/chunks/routes/api/mcp/workshop.mjs +2 -2
  477. package/.output/server/chunks/routes/api/metrics.mjs +2 -2
  478. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +2 -2
  479. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +2 -2
  480. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +2 -2
  481. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +2 -2
  482. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +2 -2
  483. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +2 -2
  484. package/.output/server/chunks/routes/api/system/config.get.mjs +2 -2
  485. package/.output/server/chunks/routes/api/system/index.get.mjs +2 -2
  486. package/.output/server/chunks/routes/api/system/index.patch.mjs +2 -2
  487. package/.output/server/chunks/routes/api/system/index.post.mjs +2 -2
  488. package/.output/server/chunks/routes/api/system/index2.get.mjs +2 -2
  489. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +35 -4
  490. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -1
  491. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +2 -2
  492. package/.output/server/chunks/routes/api/system/monitor.get.mjs +2 -2
  493. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +2 -2
  494. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +2 -2
  495. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +2 -2
  496. package/.output/server/chunks/routes/api/users/_id_.get.mjs +2 -2
  497. package/.output/server/chunks/routes/api/users/_id_.put.mjs +2 -2
  498. package/.output/server/chunks/routes/api/users/index.get.mjs +2 -2
  499. package/.output/server/chunks/routes/api/users/index.post.mjs +2 -2
  500. package/.output/server/chunks/routes/api/users/login.post.mjs +2 -2
  501. package/.output/server/chunks/routes/api/users/logout.post.mjs +2 -2
  502. package/.output/server/chunks/routes/api/users/me.get.mjs +2 -2
  503. package/.output/server/chunks/routes/api/users/register.post.mjs +2 -2
  504. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +2 -2
  505. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +2 -2
  506. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +2 -2
  507. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +2 -2
  508. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +2 -2
  509. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +2 -2
  510. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +2 -2
  511. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +2 -2
  512. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +38 -6
  513. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
  514. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +2 -2
  515. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +2 -2
  516. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +14 -5
  517. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -1
  518. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +2 -2
  519. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +2 -2
  520. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +2 -2
  521. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +2 -2
  522. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +2 -2
  523. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +2 -2
  524. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +2 -2
  525. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +2 -2
  526. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +1 -1
  527. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +2 -2
  528. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +2 -2
  529. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +2 -2
  530. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +2 -2
  531. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +2 -2
  532. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +2 -2
  533. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +2 -2
  534. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +2 -2
  535. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +2 -2
  536. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +2 -2
  537. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +2 -2
  538. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +2 -2
  539. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +2 -2
  540. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +2 -2
  541. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +2 -2
  542. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +2 -2
  543. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +2 -2
  544. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +2 -2
  545. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +2 -2
  546. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +2 -2
  547. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +2 -2
  548. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +2 -2
  549. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +2 -2
  550. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +2 -2
  551. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +2 -2
  552. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +1 -1
  553. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +1 -1
  554. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +2 -2
  555. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +1 -1
  556. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +1 -1
  557. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +1 -1
  558. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +2 -2
  559. package/.output/server/chunks/routes/api/workshop/caller.mjs +2 -2
  560. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +10 -5
  561. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
  562. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +2 -2
  563. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +2 -2
  564. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +2 -2
  565. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +2 -2
  566. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +2 -2
  567. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +2 -2
  568. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +2 -2
  569. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +2 -2
  570. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +2 -2
  571. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +2 -2
  572. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +2 -2
  573. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +2 -2
  574. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +2 -2
  575. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +2 -2
  576. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +2 -2
  577. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +41 -0
  578. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs.map +1 -0
  579. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +52 -0
  580. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs.map +1 -0
  581. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs +33 -0
  582. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs.map +1 -0
  583. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs +48 -0
  584. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs.map +1 -0
  585. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +2 -2
  586. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +2 -2
  587. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +2 -2
  588. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +2 -2
  589. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +10 -14
  590. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -1
  591. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +2 -2
  592. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +15 -28
  593. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs.map +1 -1
  594. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +3 -2
  595. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs.map +1 -1
  596. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +29 -23
  597. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
  598. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +9 -4
  599. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs.map +1 -1
  600. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +22 -10
  601. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs.map +1 -1
  602. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs +34 -0
  603. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs.map +1 -0
  604. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs +33 -0
  605. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs.map +1 -0
  606. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs +34 -0
  607. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs.map +1 -0
  608. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs +35 -0
  609. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs.map +1 -0
  610. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs +33 -0
  611. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs.map +1 -0
  612. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +2 -2
  613. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +2 -2
  614. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +2 -2
  615. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +2 -2
  616. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +2 -2
  617. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +22 -6
  618. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
  619. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +21 -3
  620. package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
  621. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +5 -5
  622. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +2 -2
  623. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +2 -2
  624. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +2 -2
  625. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +2 -2
  626. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +2 -2
  627. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +2 -2
  628. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +2 -2
  629. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +2 -2
  630. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +2 -2
  631. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +2 -2
  632. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +2 -2
  633. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +2 -2
  634. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +2 -2
  635. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +2 -2
  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 +2 -2
  659. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +2 -2
  660. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +2 -2
  661. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +2 -2
  662. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +2 -2
  663. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +2 -2
  664. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +2 -2
  665. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +2 -2
  666. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +2 -2
  667. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +2 -2
  668. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +2 -2
  669. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +2 -2
  670. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +2 -2
  671. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +2 -2
  672. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +2 -2
  673. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +2 -2
  674. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +2 -2
  675. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +2 -2
  676. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +2 -2
  677. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +2 -2
  678. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +2 -2
  679. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +2 -2
  680. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +2 -2
  681. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +2 -2
  682. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +2 -2
  683. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +2 -2
  684. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +2 -2
  685. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +2 -2
  686. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +2 -2
  687. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +2 -2
  688. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +2 -2
  689. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +2 -2
  690. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +2 -2
  691. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +2 -2
  692. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +1 -1
  693. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +2 -2
  694. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +2 -2
  695. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +11 -4
  696. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs.map +1 -1
  697. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +28 -36
  698. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -1
  699. package/.output/server/chunks/routes/api/workshop/index.get.mjs +2 -2
  700. package/.output/server/chunks/routes/api/workshop/index.post.mjs +2 -2
  701. package/.output/server/chunks/routes/api/workshop/index.put.mjs +2 -2
  702. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +26 -12
  703. package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
  704. package/.output/server/chunks/routes/api/workshop/index11.get.mjs +12 -7
  705. package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -1
  706. package/.output/server/chunks/routes/api/workshop/index12.get.mjs +3 -3
  707. package/.output/server/chunks/routes/api/workshop/index12.get.mjs.map +1 -1
  708. package/.output/server/chunks/routes/api/workshop/index13.get.mjs +29 -0
  709. package/.output/server/chunks/routes/api/workshop/index13.get.mjs.map +1 -0
  710. package/.output/server/chunks/routes/api/workshop/index14.get.mjs +28 -0
  711. package/.output/server/chunks/routes/api/workshop/index14.get.mjs.map +1 -0
  712. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +2 -2
  713. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +2 -2
  714. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +2 -2
  715. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +2 -2
  716. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +2 -2
  717. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +2 -2
  718. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +2 -2
  719. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +2 -2
  720. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +2 -2
  721. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +2 -2
  722. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +2 -2
  723. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +14 -16
  724. package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
  725. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +40 -19
  726. package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
  727. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +19 -5
  728. package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
  729. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +20 -24
  730. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  731. package/.output/server/chunks/routes/api/workshop/index9.post.mjs +30 -0
  732. package/.output/server/chunks/routes/api/workshop/index9.post.mjs.map +1 -0
  733. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +2 -2
  734. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +2 -2
  735. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +2 -2
  736. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +41 -0
  737. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs.map +1 -0
  738. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +2 -2
  739. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +2 -2
  740. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +2 -2
  741. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +2 -2
  742. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +2 -2
  743. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +2 -2
  744. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +2 -2
  745. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs +29 -0
  746. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs.map +1 -0
  747. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +31 -0
  748. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs.map +1 -0
  749. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs +30 -0
  750. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs.map +1 -0
  751. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs +29 -0
  752. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs.map +1 -0
  753. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +40 -0
  754. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs.map +1 -0
  755. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +2 -2
  756. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +2 -2
  757. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +2 -2
  758. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs +39 -0
  759. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs.map +1 -0
  760. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +2 -2
  761. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +2 -2
  762. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs +44 -0
  763. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs.map +1 -0
  764. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +9 -5
  765. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -1
  766. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +2 -2
  767. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +2 -2
  768. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +2 -2
  769. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +2 -2
  770. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +2 -2
  771. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +2 -2
  772. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +2 -2
  773. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +2 -2
  774. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +2 -2
  775. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +2 -2
  776. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +2 -2
  777. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +2 -2
  778. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +3 -3
  779. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +2 -2
  780. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +2 -2
  781. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +2 -2
  782. package/.output/server/chunks/routes/renderer.mjs +3 -3
  783. package/.output/server/chunks/virtual/entry.mjs +5704 -722
  784. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  785. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  786. package/.output/server/index.mjs +15 -5549
  787. package/.output/server/index.mjs.map +1 -1
  788. package/.output/server/package.json +1 -1
  789. package/README-zh.md +109 -45
  790. package/README.md +115 -38
  791. package/app/components/AppHeader.vue +284 -959
  792. package/app/components/aml/AmlDatasetFormModal.vue +279 -0
  793. package/app/components/aml/AmlDatasetTable.vue +319 -0
  794. package/app/components/aml/AmlEnvPanel.vue +230 -0
  795. package/app/components/aml/AmlExperimentsTable.vue +142 -0
  796. package/app/components/aml/AmlInfraBanner.vue +23 -0
  797. package/app/components/aml/AmlJobsTable.vue +248 -0
  798. package/app/components/aml/AmlModelsTable.vue +173 -0
  799. package/app/components/aml/AmlOverviewBar.vue +62 -0
  800. package/app/components/aml/AmlPageHeader.vue +47 -0
  801. package/app/components/aml/AmlPredictConsole.vue +201 -0
  802. package/app/components/app-header/HeaderTools.vue +208 -0
  803. package/app/components/app-header/HitlBell.vue +423 -0
  804. package/app/components/app-header/TrailNav.vue +261 -0
  805. package/app/components/app-header/UserChip.vue +150 -0
  806. package/app/components/daq/DaqAddNodeModal.vue +209 -0
  807. package/app/components/daq/DaqAlarmBar.vue +46 -0
  808. package/app/components/daq/DaqControlCard.vue +159 -0
  809. package/app/components/daq/DaqDetailFramesTile.vue +139 -0
  810. package/app/components/daq/DaqDetailHistoryCard.vue +128 -0
  811. package/app/components/daq/DaqDetailLiveCard.vue +92 -0
  812. package/app/components/daq/DaqDetailParamForm.vue +350 -0
  813. package/app/components/daq/DaqInfraBanner.vue +31 -0
  814. package/app/components/daq/DaqLineBanner.vue +47 -0
  815. package/app/components/daq/DaqNodePanel.vue +396 -0
  816. package/app/components/daq/DaqOptPanel.vue +197 -0
  817. package/app/components/daq/DaqTemplateModal.vue +246 -0
  818. package/app/components/dashboard/DashboardFleetPanel.vue +228 -0
  819. package/app/components/dashboard/DashboardGaugeBand.vue +78 -0
  820. package/app/components/dashboard/DashboardHarnessPanel.vue +149 -0
  821. package/app/components/dashboard/DashboardHero.vue +209 -0
  822. package/app/components/dashboard/DashboardLineStatePanel.vue +78 -0
  823. package/app/components/dashboard/DashboardNodeStatePanel.vue +46 -0
  824. package/app/components/dashboard/DashboardPipelinePanel.vue +46 -0
  825. package/app/components/dashboard/DashboardTrendPanel.vue +83 -0
  826. package/app/components/dashboard/DashboardWritePanel.vue +52 -0
  827. package/app/components/dcw/DcwAddNodeModal.vue +328 -0
  828. package/app/components/dcw/DcwAdoptCard.vue +89 -0
  829. package/app/components/dcw/DcwCreateLineModal.vue +105 -0
  830. package/app/components/dcw/DcwDeleteLineModal.vue +73 -0
  831. package/app/components/dcw/DcwDetailHead.vue +65 -0
  832. package/app/components/dcw/DcwDetailTemplateModal.vue +238 -0
  833. package/app/components/dcw/DcwEditLineModal.vue +108 -0
  834. package/app/components/dcw/DcwGatewayBar.vue +94 -0
  835. package/app/components/dcw/DcwLedgerCard.vue +160 -0
  836. package/app/components/dcw/DcwLineCard.vue +117 -0
  837. package/app/components/dcw/DcwLineRunCard.vue +158 -0
  838. package/app/components/dcw/DcwNodesTable.vue +253 -0
  839. package/app/components/dcw/DcwProductCreateModal.vue +113 -0
  840. package/app/components/dcw/DcwQueryCard.vue +251 -0
  841. package/app/components/dcw/DcwRecipeEditModal.vue +285 -0
  842. package/app/components/dcw/DcwRecipeHistoryModal.vue +165 -0
  843. package/app/components/dcw/DcwRecipePanel.vue +367 -0
  844. package/app/components/dcw/DcwRunDataModal.vue +191 -0
  845. package/app/components/dcw/DcwTemplateModal.vue +227 -0
  846. package/app/components/dcw/DcwWriteHistoryCard.vue +96 -0
  847. package/app/components/logs/LogsEventTable.vue +309 -0
  848. package/app/components/logs/LogsFilterCard.vue +234 -0
  849. package/app/components/logs/LogsManualModal.vue +231 -0
  850. package/app/components/logs/LogsPageHead.vue +71 -0
  851. package/app/components/monitor/MonitorAgentTable.vue +143 -0
  852. package/app/components/monitor/MonitorChannelTable.vue +80 -0
  853. package/app/components/monitor/MonitorLoginGate.vue +24 -0
  854. package/app/components/monitor/MonitorPageHead.vue +92 -0
  855. package/app/components/monitor/MonitorProcessTable.vue +159 -0
  856. package/app/components/monitor/MonitorStatGrid.vue +165 -0
  857. package/app/components/settings/AppearancePane.vue +282 -0
  858. package/app/components/settings/PluginsSection.vue +280 -0
  859. package/app/components/settings/RuntimeFieldRow.vue +189 -0
  860. package/app/components/settings/RuntimeGroupSection.vue +290 -0
  861. package/app/components/settings/RuntimePane.vue +235 -0
  862. package/app/components/settings/SystemPane.vue +83 -0
  863. package/app/components/tokens/TokenCreateModal.vue +42 -0
  864. package/app/components/tokens/TokenOnceModal.vue +164 -0
  865. package/app/components/tokens/TokenRenameModal.vue +40 -0
  866. package/app/components/tokens/TokensAuthGate.vue +47 -0
  867. package/app/components/tokens/TokensPageHead.vue +76 -0
  868. package/app/components/tokens/TokensTable.vue +227 -0
  869. package/app/components/workshop/A2aRpcDebugger.vue +237 -237
  870. package/app/components/workshop/AgentInspectorDrawer.vue +424 -424
  871. package/app/components/workshop/AgentLanesView.vue +278 -998
  872. package/app/components/workshop/ArtifactCard.vue +120 -120
  873. package/app/components/workshop/AssetLibrary.vue +452 -452
  874. package/app/components/workshop/ChannelSessionList.vue +377 -804
  875. package/app/components/workshop/ChatMemberPanel.vue +555 -0
  876. package/app/components/workshop/ChatTimeline.vue +569 -0
  877. package/app/components/workshop/CommandPalette.vue +270 -269
  878. package/app/components/workshop/Composer.vue +540 -827
  879. package/app/components/workshop/DeviceTwinPanel.vue +167 -643
  880. package/app/components/workshop/EventBlock.vue +214 -602
  881. package/app/components/workshop/FileSelectorModal.vue +188 -188
  882. package/app/components/workshop/InspectorPanel.vue +301 -301
  883. package/app/components/workshop/MemoryPanel.vue +48 -7
  884. package/app/components/workshop/MultiChannelView.vue +4 -4
  885. package/app/components/workshop/NotificationCenter.vue +325 -0
  886. package/app/components/workshop/TaskBoardView.vue +121 -547
  887. package/app/components/workshop/TaskInspectorDrawer.vue +101 -7
  888. package/app/components/workshop/TranscriptTimeline.vue +223 -601
  889. package/app/components/workshop/agents/AgentTemplateEditModal.vue +139 -0
  890. package/app/components/workshop/agents/AgentTemplateTable.vue +269 -0
  891. package/app/components/workshop/agents/AgentTemplateToolbar.vue +67 -0
  892. package/app/components/workshop/blocks/ClusterArtifact.vue +61 -61
  893. package/app/components/workshop/blocks/ClusterError.vue +85 -85
  894. package/app/components/workshop/blocks/ClusterLife.vue +87 -87
  895. package/app/components/workshop/blocks/ClusterMember.vue +95 -93
  896. package/app/components/workshop/blocks/ClusterMemory.vue +84 -84
  897. package/app/components/workshop/blocks/ClusterOther.vue +67 -67
  898. package/app/components/workshop/blocks/ClusterRoute.vue +1 -1
  899. package/app/components/workshop/blocks/ClusterStatus.vue +149 -147
  900. package/app/components/workshop/blocks/ClusterTool.vue +158 -158
  901. package/app/components/workshop/blocks/EventBlockAvatar.vue +114 -0
  902. package/app/components/workshop/blocks/EventBlockHead.vue +232 -0
  903. package/app/components/workshop/composer/ComposerToolbar.vue +278 -0
  904. package/app/components/workshop/composer/MentionMenu.vue +135 -0
  905. package/app/components/workshop/composer/ReplyChip.vue +65 -0
  906. package/app/components/workshop/composer/StatusChip.vue +171 -0
  907. package/app/components/workshop/console/CenterPane.vue +94 -0
  908. package/app/components/workshop/console/Dock.vue +71 -0
  909. package/app/components/workshop/console/LeftPane.vue +84 -0
  910. package/app/components/workshop/console/RightPane.vue +95 -0
  911. package/app/components/workshop/console/Topbar.vue +289 -0
  912. package/app/components/workshop/device-twin/DeviceTwinCard.vue +265 -0
  913. package/app/components/workshop/device-twin/DeviceTwinDcwSection.vue +203 -0
  914. package/app/components/workshop/lanes/AddMemberModal.vue +270 -0
  915. package/app/components/workshop/lanes/EditMemberModal.vue +106 -0
  916. package/app/components/workshop/lanes/LaneHeader.vue +432 -0
  917. package/app/components/workshop/lanes/LanesToolbar.vue +97 -0
  918. package/app/components/workshop/session-list/ChannelSettingsModal.vue +329 -0
  919. package/app/components/workshop/session-list/MountChannelModal.vue +124 -0
  920. package/app/components/workshop/session-list/SaveTemplateModal.vue +93 -0
  921. package/app/components/workshop/task-board/Card.vue +172 -0
  922. package/app/components/workshop/task-board/Column.vue +151 -0
  923. package/app/components/workshop/task-board/List.vue +157 -0
  924. package/app/components/workshop/task-board/StatusMenu.vue +88 -0
  925. package/app/components/workshop/teams/TeamAddMemberModal.vue +53 -0
  926. package/app/components/workshop/teams/TeamCard.vue +183 -0
  927. package/app/components/workshop/teams/TeamCreateModal.vue +94 -0
  928. package/app/components/workshop/teams/TeamDeployModal.vue +40 -0
  929. package/app/components/workshop/teams/TeamPluginModal.vue +119 -0
  930. package/app/components/workshop/terminal/OmpTerminalPanel.vue +270 -1011
  931. package/app/components/workshop/terminal/TerminalHitlCard.vue +170 -0
  932. package/app/components/workshop/town/TownScene.ts +72 -961
  933. package/app/components/workshop/town/TownScene3D.ts +357 -4045
  934. package/app/components/workshop/town/TownView.vue +461 -7405
  935. package/app/components/workshop/town/components/TownAgentBindings.vue +380 -0
  936. package/app/components/workshop/town/components/TownAgentInspector.vue +546 -0
  937. package/app/components/workshop/town/components/TownAlarmList.vue +147 -0
  938. package/app/components/workshop/town/components/TownBoundaryPanel.vue +350 -0
  939. package/app/components/workshop/town/components/TownCalloutLayer.vue +147 -0
  940. package/app/components/workshop/town/components/TownChannelDock.vue +116 -0
  941. package/app/components/workshop/town/components/TownControlDock.vue +400 -0
  942. package/app/components/workshop/town/components/TownDaqNodeInspector.vue +345 -0
  943. package/app/components/workshop/town/components/TownDaqTree.vue +366 -0
  944. package/app/components/workshop/town/components/TownDcwBindSection.vue +473 -0
  945. package/app/components/workshop/town/components/TownDcwNodeInspector.vue +185 -0
  946. package/app/components/workshop/town/components/TownDcwTree.vue +280 -0
  947. package/app/components/workshop/town/components/TownDeviceBindings.vue +394 -0
  948. package/app/components/workshop/town/components/TownDeviceTransform.vue +248 -0
  949. package/app/components/workshop/town/components/TownEventList.vue +120 -0
  950. package/app/components/workshop/town/components/TownHealthBody.vue +100 -0
  951. package/app/components/workshop/town/components/TownKpiStrip.vue +207 -0
  952. package/app/components/workshop/town/components/TownLeftRail.vue +308 -0
  953. package/app/components/workshop/town/components/TownLoadingMask.vue +61 -0
  954. package/app/components/workshop/town/components/TownNavMap.vue +154 -0
  955. package/app/components/workshop/town/components/TownRightRail.vue +540 -0
  956. package/app/components/workshop/town/components/TownStage.vue +281 -0
  957. package/app/components/workshop/town/components/TownStageTop.vue +238 -0
  958. package/app/components/workshop/town/components/TownStatusBar.vue +108 -0
  959. package/app/components/workshop/town/components/TownTopNav.vue +367 -0
  960. package/app/components/workshop/town/components/TownTrendDock.vue +178 -0
  961. package/app/components/workshop/town/scene/town-scene-agents.ts +254 -0
  962. package/app/components/workshop/town/scene/town-scene-behavior.ts +194 -0
  963. package/app/components/workshop/town/scene/town-scene-bubbles.ts +96 -0
  964. package/app/components/workshop/town/scene/town-scene-core.ts +158 -0
  965. package/app/components/workshop/town/scene/town-scene-models.ts +109 -0
  966. package/app/components/workshop/town/scene/town-scene-visuals.ts +279 -0
  967. package/app/components/workshop/town/scene/town-scene3d-agents.ts +308 -0
  968. package/app/components/workshop/town/scene/town-scene3d-blocks.ts +297 -0
  969. package/app/components/workshop/town/scene/town-scene3d-bubbles.ts +281 -0
  970. package/app/components/workshop/town/scene/town-scene3d-camera.ts +282 -0
  971. package/app/components/workshop/town/scene/town-scene3d-devices.ts +433 -0
  972. package/app/components/workshop/town/scene/town-scene3d-editing.ts +490 -0
  973. package/app/components/workshop/town/scene/town-scene3d-events.ts +173 -0
  974. package/app/components/workshop/town/scene/town-scene3d-factory.ts +412 -0
  975. package/app/components/workshop/town/scene/town-scene3d-hud.ts +110 -0
  976. package/app/components/workshop/town/scene/town-scene3d-lifecycle.ts +144 -0
  977. package/app/components/workshop/town/scene/town-scene3d-links.ts +141 -0
  978. package/app/components/workshop/town/scene/town-scene3d-loop.ts +286 -0
  979. package/app/components/workshop/town/scene/town-scene3d-models.ts +154 -0
  980. package/app/components/workshop/town/scene/town-scene3d-nodes.ts +562 -0
  981. package/app/components/workshop/town/scene/town-scene3d-ranges.ts +273 -0
  982. package/app/components/workshop/town/scene/town-scene3d-renderer.ts +320 -0
  983. package/app/components/workshop/town/scene/town-scene3d-selection.ts +257 -0
  984. package/app/components/workshop/town/scene/town-scene3d-types.ts +264 -0
  985. package/app/components/workshop/transcript/TranscriptBlockList.vue +68 -0
  986. package/app/components/workshop/transcript/TranscriptEarlierPager.vue +81 -0
  987. package/app/components/workshop/transcript/TranscriptEmptyState.vue +153 -0
  988. package/app/components/workshop/transcript/TranscriptFilterBar.vue +126 -0
  989. package/app/components/workshop/workbench/AuthGate.vue +179 -0
  990. package/app/components/workshop/workbench/CreateWorkspaceModal.vue +36 -0
  991. package/app/components/workshop/workbench/WorkbenchHead.vue +129 -0
  992. package/app/components/workshop/workbench/WorkspaceCard.vue +198 -0
  993. package/app/components/workshop/workbench/WorkspaceEmpty.vue +56 -0
  994. package/app/composables/workshop/device-twin-types.ts +29 -0
  995. package/app/composables/workshop/event-blocks/attention.ts +58 -0
  996. package/app/composables/workshop/event-blocks/classify.ts +44 -0
  997. package/app/composables/workshop/event-blocks/clusterer.ts +231 -0
  998. package/app/composables/workshop/event-blocks/constants.ts +48 -0
  999. package/app/composables/workshop/event-blocks/fold-stream.ts +45 -0
  1000. package/app/composables/workshop/event-blocks/markdown.ts +81 -0
  1001. package/app/composables/workshop/event-blocks/mentions.ts +49 -0
  1002. package/app/composables/workshop/event-blocks/text-utils.ts +100 -0
  1003. package/app/composables/workshop/event-blocks/types.ts +40 -0
  1004. package/app/composables/workshop/town/town-relay-props.ts +226 -0
  1005. package/app/composables/workshop/town/town-view-types.ts +145 -0
  1006. package/app/composables/workshop/town/useTownAgentBindings.ts +115 -0
  1007. package/app/composables/workshop/town/useTownAgentChat.ts +203 -0
  1008. package/app/composables/workshop/town/useTownAlarms.ts +36 -0
  1009. package/app/composables/workshop/town/useTownCallouts.ts +174 -0
  1010. package/app/composables/workshop/town/useTownChannels.ts +220 -0
  1011. package/app/composables/workshop/town/useTownHealth.ts +66 -0
  1012. package/app/composables/workshop/town/useTownHudTickers.ts +77 -0
  1013. package/app/composables/workshop/town/useTownLayout.ts +277 -0
  1014. package/app/composables/workshop/town/useTownNavMap.ts +301 -0
  1015. package/app/composables/workshop/town/useTownNodeBindings.ts +345 -0
  1016. package/app/composables/workshop/town/useTownPanelDrag.ts +91 -0
  1017. package/app/composables/workshop/town/useTownRailData.ts +421 -0
  1018. package/app/composables/workshop/town/useTownSceneControl.ts +92 -0
  1019. package/app/composables/workshop/town/useTownSceneInput.ts +275 -0
  1020. package/app/composables/workshop/town/useTownSceneRuntime.ts +390 -0
  1021. package/app/composables/workshop/town/useTownSheets.ts +41 -0
  1022. package/app/composables/workshop/town/useTownTrends.ts +93 -0
  1023. package/app/composables/workshop/useChannelList.ts +88 -0
  1024. package/app/composables/workshop/useChannelTerminals.ts +65 -0
  1025. package/app/composables/workshop/useComposerMentions.ts +130 -0
  1026. package/app/composables/workshop/useDeviceTwinDcwWrite.ts +77 -0
  1027. package/app/composables/workshop/useDeviceTwinPanel.ts +56 -0
  1028. package/app/composables/workshop/useEventBlockView.ts +159 -0
  1029. package/app/composables/workshop/useEventBlocks.ts +33 -662
  1030. package/app/composables/workshop/useHitlAnswer.ts +184 -0
  1031. package/app/composables/workshop/useLaneWidths.ts +27 -0
  1032. package/app/composables/workshop/useOmpTerminalSession.ts +424 -0
  1033. package/app/composables/workshop/usePluginAdmin.ts +152 -0
  1034. package/app/composables/workshop/useRuntimeConfigDraft.ts +118 -0
  1035. package/app/composables/workshop/useSettingsGroups.ts +243 -0
  1036. package/app/composables/workshop/useTaskBoardColumns.ts +47 -0
  1037. package/app/composables/workshop/useTaskBoardDrag.ts +78 -0
  1038. package/app/composables/workshop/useTaskBoardMenu.ts +60 -0
  1039. package/app/composables/workshop/useTaskBoardTasks.ts +74 -0
  1040. package/app/composables/workshop/useTerminalRenderer.ts +308 -0
  1041. package/app/composables/workshop/useTranscriptEnterStage.ts +48 -0
  1042. package/app/composables/workshop/useTranscriptHistory.ts +52 -0
  1043. package/app/composables/workshop/useTranscriptScroll.ts +113 -0
  1044. package/app/composables/workshop/useWorkshopApi.ts +85 -2
  1045. package/app/composables/workshop/useWorkshopWs.ts +265 -126
  1046. package/app/config/schema.ts +13 -0
  1047. package/app/layouts/town.vue +21 -16
  1048. package/app/middleware/locale-cookie.global.ts +22 -0
  1049. package/app/pages/aml/api.ts +6 -0
  1050. package/app/pages/aml/composables/useAmlDatasets.ts +38 -0
  1051. package/app/pages/aml/composables/useAmlEntities.ts +57 -0
  1052. package/app/pages/aml/composables/useAmlEnv.ts +191 -0
  1053. package/app/pages/aml/composables/useAmlExperiments.ts +45 -0
  1054. package/app/pages/aml/composables/useAmlFormat.ts +44 -0
  1055. package/app/pages/aml/composables/useAmlJobs.ts +131 -0
  1056. package/app/pages/aml/composables/useAmlModels.ts +56 -0
  1057. package/app/pages/aml/composables/useAmlNotes.ts +47 -0
  1058. package/app/pages/aml/composables/useAmlPredict.ts +93 -0
  1059. package/app/pages/aml/constants.ts +63 -0
  1060. package/app/pages/aml/index.vue +143 -2574
  1061. package/app/pages/aml/styles.css +420 -0
  1062. package/app/pages/aml/types.ts +189 -0
  1063. package/app/pages/composables/useDashboardCharts.ts +192 -0
  1064. package/app/pages/composables/useDashboardData.ts +144 -0
  1065. package/app/pages/daq/[id].vue +59 -929
  1066. package/app/pages/daq/composables/useDaqAddNode.ts +126 -0
  1067. package/app/pages/daq/composables/useDaqDetailBinding.ts +29 -0
  1068. package/app/pages/daq/composables/useDaqDetailFrames.ts +42 -0
  1069. package/app/pages/daq/composables/useDaqDetailHistory.ts +199 -0
  1070. package/app/pages/daq/composables/useDaqDetailNode.ts +53 -0
  1071. package/app/pages/daq/composables/useDaqDetailParams.ts +138 -0
  1072. package/app/pages/daq/composables/useDaqFilters.ts +187 -0
  1073. package/app/pages/daq/composables/useDaqNodeWindow.ts +86 -0
  1074. package/app/pages/daq/composables/useDaqOptimizations.ts +99 -0
  1075. package/app/pages/daq/composables/useDaqTemplates.ts +152 -0
  1076. package/app/pages/daq/daq-page.css +681 -0
  1077. package/app/pages/daq/index.vue +260 -2316
  1078. package/app/pages/dcw/[id].vue +297 -2616
  1079. package/app/pages/dcw/composables/useDcwAddNode.ts +121 -0
  1080. package/app/pages/dcw/composables/useDcwCards.ts +27 -0
  1081. package/app/pages/dcw/composables/useDcwDetailScope.ts +145 -0
  1082. package/app/pages/dcw/composables/useDcwDetailTemplates.ts +94 -0
  1083. package/app/pages/dcw/composables/useDcwFilter.ts +29 -0
  1084. package/app/pages/dcw/composables/useDcwLedger.ts +34 -0
  1085. package/app/pages/dcw/composables/useDcwLineMutations.ts +115 -0
  1086. package/app/pages/dcw/composables/useDcwLineRun.ts +60 -0
  1087. package/app/pages/dcw/composables/useDcwProducts.ts +54 -0
  1088. package/app/pages/dcw/composables/useDcwQuery.ts +68 -0
  1089. package/app/pages/dcw/composables/useDcwQuickActions.ts +47 -0
  1090. package/app/pages/dcw/composables/useDcwRecipes.ts +239 -0
  1091. package/app/pages/dcw/composables/useDcwTemplates.ts +50 -0
  1092. package/app/pages/dcw/composables/useDcwWrites.ts +81 -0
  1093. package/app/pages/dcw/dcw-page.css +344 -0
  1094. package/app/pages/dcw/index.vue +64 -986
  1095. package/app/pages/dcw/types.ts +9 -0
  1096. package/app/pages/index.vue +126 -981
  1097. package/app/pages/logs/composables/useLogsFormat.ts +43 -0
  1098. package/app/pages/logs/composables/useLogsManual.ts +63 -0
  1099. package/app/pages/logs/composables/useLogsQuery.ts +52 -0
  1100. package/app/pages/logs/composables/useLogsScope.ts +39 -0
  1101. package/app/pages/logs/index.vue +57 -728
  1102. package/app/pages/monitor/composables/useMonitorColumns.ts +69 -0
  1103. package/app/pages/monitor/composables/useMonitorData.ts +124 -0
  1104. package/app/pages/monitor/composables/useMonitorFormat.ts +39 -0
  1105. package/app/pages/monitor/composables/useMonitorTerminal.ts +28 -0
  1106. package/app/pages/monitor/types.ts +61 -0
  1107. package/app/pages/monitor.vue +88 -658
  1108. package/app/pages/permissions/index.vue +3 -2
  1109. package/app/pages/plugins/index.vue +318 -311
  1110. package/app/pages/settings.vue +168 -1562
  1111. package/app/pages/tokens/composables/useTokenClipboard.ts +33 -0
  1112. package/app/pages/tokens/composables/useTokenCreate.ts +93 -0
  1113. package/app/pages/tokens/composables/useTokenRename.ts +54 -0
  1114. package/app/pages/tokens/composables/useTokenReveal.ts +84 -0
  1115. package/app/pages/tokens/composables/useTokensList.ts +60 -0
  1116. package/app/pages/tokens.vue +79 -597
  1117. package/app/pages/users.vue +5 -4
  1118. package/app/pages/workshop/agents.vue +130 -609
  1119. package/app/pages/workshop/channel-templates.vue +18 -11
  1120. package/app/pages/workshop/composables/useAgentHarnessOptions.ts +59 -0
  1121. package/app/pages/workshop/composables/useAgentTemplateActions.ts +42 -0
  1122. package/app/pages/workshop/composables/useAgentTemplateDialogState.ts +24 -0
  1123. package/app/pages/workshop/composables/useAgentTemplateForm.ts +88 -0
  1124. package/app/pages/workshop/composables/useAgentTemplatesCatalog.ts +92 -0
  1125. package/app/pages/workshop/composables/useTeamActions.ts +44 -0
  1126. package/app/pages/workshop/composables/useTeamAddMemberDialog.ts +49 -0
  1127. package/app/pages/workshop/composables/useTeamCreateDialog.ts +67 -0
  1128. package/app/pages/workshop/composables/useTeamDeployDialog.ts +49 -0
  1129. package/app/pages/workshop/composables/useTeamDialogState.ts +46 -0
  1130. package/app/pages/workshop/composables/useTeamPluginDialog.ts +72 -0
  1131. package/app/pages/workshop/composables/useTeamsCatalog.ts +100 -0
  1132. package/app/pages/workshop/composables/useWorkbenchAuth.ts +125 -0
  1133. package/app/pages/workshop/composables/useWorkbenchWorkspaces.ts +123 -0
  1134. package/app/pages/workshop/composables/useWorkspaceAuth.ts +31 -0
  1135. package/app/pages/workshop/composables/useWorkspaceChannels.ts +62 -0
  1136. package/app/pages/workshop/composables/useWorkspacePanels.ts +56 -0
  1137. package/app/pages/workshop/composables/useWorkspaceShell.ts +136 -0
  1138. package/app/pages/workshop/index.vue +116 -668
  1139. package/app/pages/workshop/schedules.vue +553 -0
  1140. package/app/pages/workshop/teams.vue +233 -740
  1141. package/app/pages/workshop/w/[wsId].vue +221 -704
  1142. package/app/plugins/locale-restore.client.ts +16 -1
  1143. package/app/stores/workshop/chat.ts +434 -0
  1144. package/app/stores/workshop/entities.ts +385 -283
  1145. package/app/stores/workshop/events.ts +5 -4
  1146. package/app/stores/workshop/hitl.ts +110 -7
  1147. package/app/stores/workshop/narrow-fetch.ts +23 -0
  1148. package/app/stores/workshop/notifications.ts +288 -0
  1149. package/app/stores/workshop/user.ts +23 -10
  1150. package/app/stores/workshop/workspaces.ts +12 -2
  1151. package/app/utils/builtin-catalog.ts +104 -0
  1152. package/config.yml +176 -170
  1153. package/docs/aml.md +10 -0
  1154. package/docs/cli.en.md +5 -5
  1155. package/docs/cli.md +5 -5
  1156. package/docs/full-test-plan.md +17 -4
  1157. package/docs/plugins.en.md +1 -1
  1158. package/docs/plugins.md +1 -1
  1159. package/docs/sdk.en.md +1 -1
  1160. package/docs/sdk.md +1 -1
  1161. package/i18n/dicts/dcwDetail.json +2 -0
  1162. package/i18n/locales/en.ts +364 -35
  1163. package/i18n/locales/zh-CN.ts +336 -7
  1164. package/package.json +3 -4
  1165. package/scripts/_audit/detached-instance.mjs +112 -0
  1166. package/scripts/_audit/schedules-ui/schedules-page.png +0 -0
  1167. package/scripts/_audit/schedules-ui/workspace-channel-tag.png +0 -0
  1168. package/scripts/_audit/stubs/nuxt-imports.mjs +67 -0
  1169. package/scripts/_audit/ts-register-hook.mjs +12 -0
  1170. package/scripts/_audit/ts-resolve-hook.mjs +25 -5
  1171. package/scripts/_audit/watchdog-recovery-test.mjs +24 -2
  1172. package/scripts/_dbg-comm-verify.mjs +188 -0
  1173. package/scripts/_dbg-full-feature-e2e.mjs +19 -11
  1174. package/scripts/_dbg-im-e2e.mjs +169 -0
  1175. package/scripts/_dbg-opt2-run.mjs +114 -0
  1176. package/scripts/_dbg-opt2-setup.mjs +95 -0
  1177. package/scripts/_dbg-param-map-e2e.ts +1 -1
  1178. package/scripts/_dbg-param-map-rest-smoke.mjs +1 -1
  1179. package/scripts/_dbg-perms-e2e.mjs +132 -109
  1180. package/scripts/_dbg-real-scenario-e2e.mjs +246 -0
  1181. package/scripts/_dbg-schedule-e2e.mjs +262 -0
  1182. package/scripts/_dbg-schedule-ui-verify.mjs +115 -0
  1183. package/scripts/_dbg-team-matrix.mjs +148 -0
  1184. package/scripts/_dbg-ui-fullcrawl.mjs +91 -0
  1185. package/scripts/_dbg-ui-static-audit.mjs +65 -0
  1186. package/scripts/_dbg-write-lock-e2e.mjs +131 -0
  1187. package/scripts/_demo-agentteam-capture.mjs +278 -0
  1188. package/scripts/_e2e-ui-functional.mjs +371 -0
  1189. package/scripts/_i18n-en-cjk-scan.mjs +28 -0
  1190. package/scripts/_i18n-en-verify.mjs +107 -0
  1191. package/scripts/_i18n-extra-checks.mjs +53 -0
  1192. package/scripts/_i18n-scan-hardcoded.mjs +180 -0
  1193. package/scripts/_i18n-verify-keys.mjs +50 -0
  1194. package/scripts/_loop-biax-campaign.mjs +15 -9
  1195. package/scripts/_probe-daq-omp-task.mjs +100 -0
  1196. package/scripts/_probe-daq-scope-default.mjs +123 -0
  1197. package/scripts/_probe-recipe-switch.mjs +92 -0
  1198. package/scripts/_provision-injection-line.mjs +39 -0
  1199. package/scripts/_run-matrix.ps1 +53 -0
  1200. package/scripts/_run-real-injection-fifo-goals.mjs +367 -0
  1201. package/scripts/_sweep-button-contrast.mjs +87 -0
  1202. package/scripts/acceptance-aml-db.ts +23 -0
  1203. package/scripts/acceptance-aml-hybrid-live.mjs +94 -0
  1204. package/scripts/acceptance-aml-hybrid-twin.ts +93 -0
  1205. package/scripts/acceptance-hybrid-python.py +51 -0
  1206. package/scripts/aml-ui-smoke.mjs +2 -0
  1207. package/scripts/api-live-e2e.mjs +32 -7
  1208. package/scripts/demo-group-chat-all-real.ts +279 -0
  1209. package/scripts/demo-group-chat-omp-cases.ts +210 -0
  1210. package/scripts/demo-group-chat-omp.ts +184 -0
  1211. package/scripts/demo-group-chat-order.ts +197 -0
  1212. package/scripts/e2e-agent-team.mjs +6 -4
  1213. package/scripts/e2e-agentteam-chat.mjs +473 -0
  1214. package/scripts/e2e-agentteam-real-triage.mjs +421 -0
  1215. package/scripts/e2e-agentteam-task-flow-real.ts +443 -0
  1216. package/scripts/e2e-aw-tui-global.mjs +8 -8
  1217. package/scripts/e2e-channel-isolation.ts +5 -1
  1218. package/scripts/e2e-closedloop/cleanup.mjs +27 -0
  1219. package/scripts/e2e-closedloop/lib.mjs +109 -0
  1220. package/scripts/e2e-closedloop/main.mjs +59 -0
  1221. package/scripts/e2e-closedloop/scenarios-accounts.mjs +208 -0
  1222. package/scripts/e2e-closedloop/scenarios-authz.mjs +190 -0
  1223. package/scripts/e2e-closedloop/scenarios-daq-dcw.mjs +219 -0
  1224. package/scripts/e2e-closedloop/scenarios-plugins.mjs +169 -0
  1225. package/scripts/e2e-closedloop/state.mjs +10 -0
  1226. package/scripts/e2e-crash-cycle.mjs +108 -0
  1227. package/scripts/e2e-full-closedloop.mjs +6 -919
  1228. package/scripts/e2e-hil-multi-user.mjs +307 -0
  1229. package/scripts/e2e-hil-restart.mjs +339 -0
  1230. package/scripts/e2e-hitl-live.mjs +336 -323
  1231. package/scripts/e2e-lead-team-mgmt.ts +1 -1
  1232. package/scripts/e2e-memory-system.ts +70 -89
  1233. package/scripts/e2e-multiharness-team.mjs +32 -15
  1234. package/scripts/e2e-omp-workspace.ts +21 -6
  1235. package/scripts/e2e-parallel-execution.mjs +20 -6
  1236. package/scripts/e2e-plc-plugin-closedloop.mjs +96 -65
  1237. package/scripts/e2e-rest-memory.mjs +26 -11
  1238. package/scripts/e2e-resume-crash.mjs +22 -7
  1239. package/scripts/e2e-task-queue.ts +8 -8
  1240. package/scripts/e2e-template-isolation.mjs +4 -2
  1241. package/scripts/proof-omp-real.ts +189 -0
  1242. package/scripts/real-injection-closed-loop.mjs +383 -0
  1243. package/scripts/test-agent-runtime.ts +5 -1
  1244. package/scripts/test-agentteam-guardrails.ts +113 -0
  1245. package/scripts/test-agentteam-task-chat-flow.ts +420 -0
  1246. package/scripts/test-agentteam-workflow.ts +472 -0
  1247. package/scripts/test-collab-e2e.mjs +17 -3
  1248. package/scripts/test-dcw-read.ts +9 -2
  1249. package/scripts/test-event-persistence.mjs +10 -2
  1250. package/scripts/test-full-system.ts +16 -3
  1251. package/scripts/test-group-chat-hardening.ts +265 -0
  1252. package/scripts/test-group-chat-unit/lib.ts +186 -0
  1253. package/scripts/test-group-chat-unit/main.ts +45 -0
  1254. package/scripts/test-group-chat-unit/section-a-migration.ts +75 -0
  1255. package/scripts/test-group-chat-unit/section-b-permission-matrix.ts +88 -0
  1256. package/scripts/test-group-chat-unit/section-c-member-lifecycle.ts +64 -0
  1257. package/scripts/test-group-chat-unit/section-d-mention-resolution.ts +36 -0
  1258. package/scripts/test-group-chat-unit/section-e-chat-facts.ts +97 -0
  1259. package/scripts/test-group-chat-unit/section-f-user-notifications.ts +52 -0
  1260. package/scripts/test-group-chat-unit/section-g-member-projection.ts +44 -0
  1261. package/scripts/test-group-chat-unit/section-h-outbox-consistency.ts +30 -0
  1262. package/scripts/test-group-chat-unit/section-i-read-idempotency.ts +24 -0
  1263. package/scripts/test-group-chat-unit/section-j-permission-scope.ts +150 -0
  1264. package/scripts/test-group-chat-unit.ts +35 -0
  1265. package/scripts/test-hitl-decision.ts +526 -0
  1266. package/scripts/test-hitl-legacy-channel-auth.ts +143 -0
  1267. package/scripts/test-lane-history-live.mjs +30 -7
  1268. package/scripts/test-memory-vector.ts +10 -0
  1269. package/scripts/test-orchestration.ts +7 -2
  1270. package/scripts/test-persistence-lazy.ts +7 -1
  1271. package/scripts/test-prompt-system.mjs +46 -20
  1272. package/scripts/test-route-reason.mjs +9 -2
  1273. package/scripts/test-schedule-runtime.ts +309 -0
  1274. package/scripts/test-scheduler-loop/lib.ts +321 -0
  1275. package/scripts/test-scheduler-loop/main.ts +40 -0
  1276. package/scripts/test-scheduler-loop/scenarios-modes.ts +95 -0
  1277. package/scripts/test-scheduler-loop/scenarios-runtime.ts +58 -0
  1278. package/scripts/test-scheduler-loop/scenarios-supervise.ts +183 -0
  1279. package/scripts/test-scheduler-loop/scenarios-triage.ts +102 -0
  1280. package/scripts/test-scheduler-loop.ts +5 -460
  1281. package/scripts/test-supervision-watchdog.ts +105 -0
  1282. package/scripts/test-task-engine.ts +27 -5
  1283. package/scripts/test-task-lease-fencing.ts +154 -0
  1284. package/scripts/test-terminal-e2e.mjs +9 -3
  1285. package/scripts/three-system-e2e/lib.mjs +79 -0
  1286. package/scripts/three-system-e2e/main.mjs +40 -0
  1287. package/scripts/three-system-e2e/phases/phase-0-user-token.mjs +42 -0
  1288. package/scripts/three-system-e2e/phases/phase-0a2-line-autoselect.mjs +35 -0
  1289. package/scripts/three-system-e2e/phases/phase-0b-fixture-grants.mjs +39 -0
  1290. package/scripts/three-system-e2e/phases/phase-0c-plugin-outbound-auth.mjs +95 -0
  1291. package/scripts/three-system-e2e/phases/stage-1-health.mjs +47 -0
  1292. package/scripts/three-system-e2e/phases/stage-2-5-team-plugins.mjs +84 -0
  1293. package/scripts/three-system-e2e/phases/stage-2-teams-tools-hitl.mjs +184 -0
  1294. package/scripts/three-system-e2e/phases/stage-3-diag.mjs +73 -0
  1295. package/scripts/three-system-e2e/phases/stage-4-plugin-toggle.mjs +53 -0
  1296. package/scripts/three-system-e2e/state.mjs +87 -0
  1297. package/scripts/three-system-e2e.mjs +24 -646
  1298. package/scripts/typecheck.mjs +75 -0
  1299. package/scripts/ui/lib.mjs +14 -2
  1300. package/scripts/ui/record-demo.mjs +557 -0
  1301. package/scripts/ui/smoke-refactor.mjs +258 -0
  1302. package/scripts/verify-a2a-live.mjs +15 -1
  1303. package/scripts/verify-ws-events.mjs +19 -1
  1304. package/server/api/system/monitor/terminal/ws.ts +51 -1
  1305. package/server/api/workshop/agent-tools/approvals/[id]/decide.post.ts +59 -5
  1306. package/server/api/workshop/agent-tools/approvals/index.get.ts +28 -3
  1307. package/server/api/workshop/channel-templates/[id]/instantiate.post.ts +6 -1
  1308. package/server/api/workshop/channels/[id]/chat/messages/[messageId]/read.post.ts +22 -0
  1309. package/server/api/workshop/channels/[id]/chat/messages/index.get.ts +29 -0
  1310. package/server/api/workshop/channels/[id]/chat/messages/index.post.ts +51 -0
  1311. package/server/api/workshop/channels/[id]/chat/permissions.get.ts +35 -0
  1312. package/server/api/workshop/channels/[id]/index.patch.ts +34 -8
  1313. package/server/api/workshop/channels/[id]/members/[userId]/approve.post.ts +20 -0
  1314. package/server/api/workshop/channels/[id]/members/[userId].delete.ts +21 -0
  1315. package/server/api/workshop/channels/[id]/members/index.get.ts +23 -0
  1316. package/server/api/workshop/channels/[id]/members/join.post.ts +30 -0
  1317. package/server/api/workshop/channels/[id]/members/leave.post.ts +20 -0
  1318. package/server/api/workshop/channels/[id]/messages/index.post.ts +3 -0
  1319. package/server/api/workshop/channels/[id]/tasks/index.post.ts +8 -0
  1320. package/server/api/workshop/channels.get.ts +21 -1
  1321. package/server/api/workshop/hitl/pending.get.ts +27 -7
  1322. package/server/api/workshop/hitl/respond.post.ts +86 -89
  1323. package/server/api/workshop/notifications/index.get.ts +60 -0
  1324. package/server/api/workshop/notifications/read.post.ts +31 -0
  1325. package/server/api/workshop/schedules/[id]/run.post.ts +15 -0
  1326. package/server/api/workshop/schedules/[id]/runs.get.ts +15 -0
  1327. package/server/api/workshop/schedules/[id].delete.ts +14 -0
  1328. package/server/api/workshop/schedules/[id].get.ts +13 -0
  1329. package/server/api/workshop/schedules/[id].patch.ts +29 -0
  1330. package/server/api/workshop/schedules/index.get.ts +12 -0
  1331. package/server/api/workshop/schedules/index.post.ts +32 -0
  1332. package/server/api/workshop/tasks/[id]/reassign.post.ts +32 -0
  1333. package/server/api/workshop/tasks/[id]/update.post.ts +35 -0
  1334. package/server/api/workshop/tasks/[id].get.ts +15 -6
  1335. package/server/api/workshop/ws/audience.ts +56 -0
  1336. package/server/api/workshop/ws/db-buffer.ts +68 -0
  1337. package/server/api/workshop/ws/event-mapping.ts +47 -0
  1338. package/server/api/workshop/ws/handlers.ts +132 -0
  1339. package/server/api/workshop/ws/hub.ts +133 -0
  1340. package/server/api/workshop/ws/index.ts +23 -0
  1341. package/server/api/workshop/ws/notification-uplink.ts +77 -0
  1342. package/server/api/workshop/ws/peer-sub.ts +128 -0
  1343. package/server/api/workshop/ws/publish.ts +122 -0
  1344. package/server/api/workshop/ws/shared.ts +94 -0
  1345. package/server/api/workshop/ws/streams.ts +146 -0
  1346. package/server/api/workshop/ws/subscriptions.ts +137 -0
  1347. package/server/plugins/workshop.ts +30 -0
  1348. package/server/plugins-builtin/diag-bridge/host/constants.mjs +25 -0
  1349. package/server/plugins-builtin/diag-bridge/host/diagnosis.mjs +56 -0
  1350. package/server/plugins-builtin/diag-bridge/host/helpers.mjs +126 -0
  1351. package/server/plugins-builtin/diag-bridge/host/index.mjs +15 -0
  1352. package/server/plugins-builtin/diag-bridge/host/plugin.mjs +296 -0
  1353. package/server/plugins-builtin/diag-bridge/host/snapshot.mjs +93 -0
  1354. package/server/plugins-builtin/diag-bridge/host/sweep.mjs +51 -0
  1355. package/server/plugins-builtin/diag-bridge/index.mjs +9 -661
  1356. package/server/plugins-builtin/rag-bridge/index.mjs +57 -133
  1357. package/server/repositories/user.repository.ts +13 -0
  1358. package/server/services/system-config/contracts.ts +29 -0
  1359. package/server/services/system-config/dispose.ts +19 -0
  1360. package/server/services/system-config/facade.ts +26 -0
  1361. package/server/services/system-config/groups.ts +108 -0
  1362. package/server/services/system-config/helpers.ts +41 -0
  1363. package/server/services/system-config/index.ts +21 -0
  1364. package/server/services/system-config/init.ts +26 -0
  1365. package/server/services/system-config/mutate.ts +103 -0
  1366. package/server/services/system-config/plugins.ts +104 -0
  1367. package/server/services/system-config/recompute.ts +66 -0
  1368. package/server/services/system-config/snapshot.ts +59 -0
  1369. package/server/services/system-config/state.ts +79 -0
  1370. package/server/services/system-config/types.ts +58 -0
  1371. package/server/services/workshop/agents/adapters/line-spawn.ts +2 -2
  1372. package/server/services/workshop/agents/adapters/omp-rpc-client/api.ts +111 -0
  1373. package/server/services/workshop/agents/adapters/omp-rpc-client/contracts.ts +22 -0
  1374. package/server/services/workshop/agents/adapters/omp-rpc-client/facade.ts +7 -0
  1375. package/server/services/workshop/agents/adapters/omp-rpc-client/frames.ts +111 -0
  1376. package/server/services/workshop/agents/adapters/omp-rpc-client/helpers.ts +38 -0
  1377. package/server/services/workshop/agents/adapters/omp-rpc-client/index.ts +25 -0
  1378. package/server/services/workshop/agents/adapters/omp-rpc-client/start.ts +70 -0
  1379. package/server/services/workshop/agents/adapters/omp-rpc-client/state.ts +65 -0
  1380. package/server/services/workshop/agents/adapters/omp-rpc-client/stdout.ts +92 -0
  1381. package/server/services/workshop/agents/adapters/omp-rpc-client/types.ts +115 -0
  1382. package/server/services/workshop/agents/adapters/omp-rpc-client/usage.ts +47 -0
  1383. package/server/services/workshop/agents/agent-interface.ts +52 -4
  1384. package/server/services/workshop/agents/base-agent.ts +36 -8
  1385. package/server/services/workshop/agents/claude-agent.ts +5 -0
  1386. package/server/services/workshop/agents/codex-agent/client.ts +170 -0
  1387. package/server/services/workshop/agents/codex-agent/core.ts +119 -0
  1388. package/server/services/workshop/agents/codex-agent/facade.ts +8 -0
  1389. package/server/services/workshop/agents/codex-agent/helpers.ts +13 -0
  1390. package/server/services/workshop/agents/codex-agent/hitl.ts +138 -0
  1391. package/server/services/workshop/agents/codex-agent/index.ts +14 -0
  1392. package/server/services/workshop/agents/codex-agent/turn.ts +367 -0
  1393. package/server/services/workshop/agents/codex-agent/types.ts +42 -0
  1394. package/server/services/workshop/agents/dsh-agent.ts +5 -0
  1395. package/server/services/workshop/agents/harness-availability.ts +127 -127
  1396. package/server/services/workshop/agents/harness-terminal/api.ts +197 -0
  1397. package/server/services/workshop/agents/harness-terminal/index.ts +17 -0
  1398. package/server/services/workshop/agents/harness-terminal/io.ts +120 -0
  1399. package/server/services/workshop/agents/harness-terminal/park.ts +55 -0
  1400. package/server/services/workshop/agents/harness-terminal/sanitize.ts +98 -0
  1401. package/server/services/workshop/agents/harness-terminal/session.ts +124 -0
  1402. package/server/services/workshop/agents/harness-terminal/shared.ts +74 -0
  1403. package/server/services/workshop/agents/hermes-agent.ts +5 -0
  1404. package/server/services/workshop/agents/hitl-capabilities.ts +312 -0
  1405. package/server/services/workshop/agents/hitl-decision/answers.ts +27 -0
  1406. package/server/services/workshop/agents/hitl-decision/decide.ts +268 -0
  1407. package/server/services/workshop/agents/hitl-decision/dispatcher.ts +81 -0
  1408. package/server/services/workshop/agents/hitl-decision/index.ts +24 -0
  1409. package/server/services/workshop/agents/hitl-decision/payload.ts +45 -0
  1410. package/server/services/workshop/agents/hitl-decision/reconcile.ts +70 -0
  1411. package/server/services/workshop/agents/hitl-decision/shared.ts +106 -0
  1412. package/server/services/workshop/agents/hitl-decision/visibility.ts +94 -0
  1413. package/server/services/workshop/agents/hitl-registry.ts +403 -7
  1414. package/server/services/workshop/agents/host-tool-bridge/catalog.ts +78 -0
  1415. package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +167 -0
  1416. package/server/services/workshop/agents/host-tool-bridge/index.ts +15 -0
  1417. package/server/services/workshop/agents/host-tool-bridge/session.ts +22 -0
  1418. package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +64 -0
  1419. package/server/services/workshop/agents/host-tool-bridge/tools/memory.ts +44 -0
  1420. package/server/services/workshop/agents/host-tool-bridge/tools/messaging.ts +182 -0
  1421. package/server/services/workshop/agents/host-tool-bridge/tools/progress.ts +84 -0
  1422. package/server/services/workshop/agents/host-tool-bridge/tools/tasks.ts +120 -0
  1423. package/server/services/workshop/agents/host-tool-bridge/tools/team.ts +70 -0
  1424. package/server/services/workshop/agents/host-tool-bridge/types.ts +31 -0
  1425. package/server/services/workshop/agents/industrial/aml-dataset-tools.ts +276 -0
  1426. package/server/services/workshop/agents/industrial/aml-job-tools.ts +363 -0
  1427. package/server/services/workshop/agents/industrial/daq-tools.ts +251 -0
  1428. package/server/services/workshop/agents/industrial/dcw-judge-tools.ts +153 -0
  1429. package/server/services/workshop/agents/industrial/dcw-tools.ts +213 -0
  1430. package/server/services/workshop/agents/industrial/index.ts +24 -0
  1431. package/server/services/workshop/agents/industrial/ops-tools.ts +382 -0
  1432. package/server/services/workshop/agents/industrial/param-tools.ts +172 -0
  1433. package/server/services/workshop/agents/industrial/twin-tools.ts +175 -0
  1434. package/server/services/workshop/agents/mock-agent.ts +136 -12
  1435. package/server/services/workshop/agents/omp-agent/client.ts +116 -0
  1436. package/server/services/workshop/agents/omp-agent/context-governance.ts +204 -0
  1437. package/server/services/workshop/agents/omp-agent/core.ts +146 -0
  1438. package/server/services/workshop/agents/omp-agent/event-mapping.ts +142 -0
  1439. package/server/services/workshop/agents/omp-agent/facade.ts +8 -0
  1440. package/server/services/workshop/agents/omp-agent/helpers.ts +37 -0
  1441. package/server/services/workshop/agents/omp-agent/index.ts +16 -0
  1442. package/server/services/workshop/agents/omp-agent/lifecycle.ts +80 -0
  1443. package/server/services/workshop/agents/omp-agent/tools-steer.ts +487 -0
  1444. package/server/services/workshop/agents/omp-agent/types.ts +45 -0
  1445. package/server/services/workshop/agents/opencode-agent/core.ts +77 -0
  1446. package/server/services/workshop/agents/opencode-agent/engine-agnostic.ts +274 -0
  1447. package/server/services/workshop/agents/opencode-agent/facade.ts +8 -0
  1448. package/server/services/workshop/agents/opencode-agent/helpers.ts +29 -0
  1449. package/server/services/workshop/agents/opencode-agent/hitl.ts +113 -0
  1450. package/server/services/workshop/agents/opencode-agent/index.ts +16 -0
  1451. package/server/services/workshop/agents/opencode-agent/lifecycle.ts +44 -0
  1452. package/server/services/workshop/agents/opencode-agent/server.ts +244 -0
  1453. package/server/services/workshop/agents/opencode-agent/turn.ts +278 -0
  1454. package/server/services/workshop/agents/opencode-agent/types.ts +54 -0
  1455. package/server/services/workshop/agents/prompt-builder.ts +16 -6
  1456. package/server/services/workshop/agents/qwen-agent.ts +6 -2
  1457. package/server/services/workshop/agents/registry.ts +32 -2
  1458. package/server/services/workshop/aml/job-orchestrator/broadcast.ts +37 -0
  1459. package/server/services/workshop/aml/job-orchestrator/control.ts +94 -0
  1460. package/server/services/workshop/aml/job-orchestrator/failure.ts +77 -0
  1461. package/server/services/workshop/aml/job-orchestrator/index.ts +22 -0
  1462. package/server/services/workshop/aml/job-orchestrator/process.ts +100 -0
  1463. package/server/services/workshop/aml/job-orchestrator/shared.ts +51 -0
  1464. package/server/services/workshop/aml/job-orchestrator/stages.ts +96 -0
  1465. package/server/services/workshop/aml/job-orchestrator/start-job.ts +124 -0
  1466. package/server/services/workshop/aml/job-orchestrator/status.ts +20 -0
  1467. package/server/services/workshop/aml/job-orchestrator/submit.ts +120 -0
  1468. package/server/services/workshop/aml/job-orchestrator/tick.ts +37 -0
  1469. package/server/services/workshop/aml/python/amlkit.py +185 -120
  1470. package/server/services/workshop/aml/python/requirements.txt +9 -7
  1471. package/server/services/workshop/aml/python/train-hybrid-example.py +87 -0
  1472. package/server/services/workshop/aml/twin/acceptance.ts +68 -0
  1473. package/server/services/workshop/aml/twin/calibration-scheduler.ts +48 -0
  1474. package/server/services/workshop/aml/twin/channel-profile.ts +43 -0
  1475. package/server/services/workshop/aml/twin/contracts.ts +215 -0
  1476. package/server/services/workshop/aml/twin/physics-runtime.ts +165 -0
  1477. package/server/services/workshop/aml/twin/repo.ts +26 -0
  1478. package/server/services/workshop/aml/twin/snapshot-service.ts +81 -0
  1479. package/server/services/workshop/aml/twin/trial-service.ts +89 -0
  1480. package/server/services/workshop/aml/twin/uq-ood.ts +66 -0
  1481. package/server/services/workshop/daq/daq-controller/contracts.ts +39 -0
  1482. package/server/services/workshop/daq/daq-controller/crud.ts +202 -0
  1483. package/server/services/workshop/daq/daq-controller/driver-probe.ts +64 -0
  1484. package/server/services/workshop/daq/daq-controller/facade.ts +28 -0
  1485. package/server/services/workshop/daq/daq-controller/frames.ts +137 -0
  1486. package/server/services/workshop/daq/daq-controller/helpers.ts +52 -0
  1487. package/server/services/workshop/daq/daq-controller/index.ts +22 -0
  1488. package/server/services/workshop/daq/daq-controller/ingest.ts +189 -0
  1489. package/server/services/workshop/daq/daq-controller/runtime-control.ts +72 -0
  1490. package/server/services/workshop/daq/daq-controller/state.ts +194 -0
  1491. package/server/services/workshop/daq/daq-controller/sweep-alarms.ts +164 -0
  1492. package/server/services/workshop/daq/daq-controller/tsdb-twin.ts +138 -0
  1493. package/server/services/workshop/daq/daq-controller/types.ts +68 -0
  1494. package/server/services/workshop/daq/daq-controller/views.ts +84 -0
  1495. package/server/services/workshop/daq/drivers/http.ts +95 -0
  1496. package/server/services/workshop/daq/drivers/index.ts +29 -0
  1497. package/server/services/workshop/daq/drivers/mock.ts +130 -0
  1498. package/server/services/workshop/daq/drivers/modbus-rtu.ts +67 -0
  1499. package/server/services/workshop/daq/drivers/modbus-tcp.ts +307 -0
  1500. package/server/services/workshop/daq/drivers/mqtt.ts +182 -0
  1501. package/server/services/workshop/daq/drivers/opcua.ts +227 -0
  1502. package/server/services/workshop/daq/drivers/registry.ts +144 -0
  1503. package/server/services/workshop/daq/drivers/s7-stub.ts +29 -0
  1504. package/server/services/workshop/daq/drivers/shared.ts +60 -0
  1505. package/server/services/workshop/db/channel-member.repo.ts +122 -0
  1506. package/server/services/workshop/db/channel.repo.ts +93 -8
  1507. package/server/services/workshop/db/chat-message.repo.ts +233 -0
  1508. package/server/services/workshop/db/database/index.ts +18 -0
  1509. package/server/services/workshop/db/database/json.ts +14 -0
  1510. package/server/services/workshop/db/database/migrations.ts +367 -0
  1511. package/server/services/workshop/db/database/open.ts +76 -0
  1512. package/server/services/workshop/db/database/rows.ts +374 -0
  1513. package/server/services/workshop/db/database/schema.ts +651 -0
  1514. package/server/services/workshop/db/database/seed-data.ts +60 -0
  1515. package/server/services/workshop/db/database/seed.ts +145 -0
  1516. package/server/services/workshop/db/hitl-request.repo.ts +221 -0
  1517. package/server/services/workshop/db/notification.repo.ts +199 -0
  1518. package/server/services/workshop/db/outbox.repo.ts +127 -0
  1519. package/server/services/workshop/db/scheduled-task.repo.ts +235 -0
  1520. package/server/services/workshop/db/schema.sql +185 -0
  1521. package/server/services/workshop/db/task.repo.ts +185 -69
  1522. package/server/services/workshop/db/transaction.ts +72 -0
  1523. package/server/services/workshop/dcw/dcw-controller/actuation.ts +127 -0
  1524. package/server/services/workshop/dcw/dcw-controller/bindings.ts +83 -0
  1525. package/server/services/workshop/dcw/dcw-controller/contracts.ts +16 -0
  1526. package/server/services/workshop/dcw/dcw-controller/control.ts +78 -0
  1527. package/server/services/workshop/dcw/dcw-controller/crud.ts +152 -0
  1528. package/server/services/workshop/dcw/dcw-controller/facade.ts +19 -0
  1529. package/server/services/workshop/dcw/dcw-controller/helpers.ts +57 -0
  1530. package/server/services/workshop/dcw/dcw-controller/index.ts +22 -0
  1531. package/server/services/workshop/dcw/dcw-controller/lines.ts +213 -0
  1532. package/server/services/workshop/dcw/dcw-controller/params.ts +97 -0
  1533. package/server/services/workshop/dcw/dcw-controller/products.ts +103 -0
  1534. package/server/services/workshop/dcw/dcw-controller/recipes.ts +137 -0
  1535. package/server/services/workshop/dcw/dcw-controller/state.ts +66 -0
  1536. package/server/services/workshop/dcw/dcw-controller/types.ts +57 -0
  1537. package/server/services/workshop/dcw/dcw-controller/write.ts +147 -0
  1538. package/server/services/workshop/dcw/dcw-node.ts +8 -0
  1539. package/server/services/workshop/dcw/drivers/http.ts +66 -0
  1540. package/server/services/workshop/dcw/drivers/index.ts +26 -0
  1541. package/server/services/workshop/dcw/drivers/mock.ts +44 -0
  1542. package/server/services/workshop/dcw/drivers/modbus-rtu.ts +93 -0
  1543. package/server/services/workshop/dcw/drivers/modbus.ts +139 -0
  1544. package/server/services/workshop/dcw/drivers/mqtt.ts +108 -0
  1545. package/server/services/workshop/dcw/drivers/opcua.ts +110 -0
  1546. package/server/services/workshop/dcw/drivers/registry.ts +118 -0
  1547. package/server/services/workshop/dcw/drivers/shared.ts +113 -0
  1548. package/server/services/workshop/dcw/recipe-rollback-manager/contracts.ts +26 -0
  1549. package/server/services/workshop/dcw/recipe-rollback-manager/facade.ts +13 -0
  1550. package/server/services/workshop/dcw/recipe-rollback-manager/helpers.ts +30 -0
  1551. package/server/services/workshop/dcw/recipe-rollback-manager/index.ts +17 -0
  1552. package/server/services/workshop/dcw/recipe-rollback-manager/internal.ts +33 -0
  1553. package/server/services/workshop/dcw/recipe-rollback-manager/judge.ts +52 -0
  1554. package/server/services/workshop/dcw/recipe-rollback-manager/lock.ts +137 -0
  1555. package/server/services/workshop/dcw/recipe-rollback-manager/rollback.ts +190 -0
  1556. package/server/services/workshop/dcw/recipe-rollback-manager/state.ts +21 -0
  1557. package/server/services/workshop/dcw/recipe-rollback-manager/sweep.ts +77 -0
  1558. package/server/services/workshop/dcw/recipe-rollback-manager/types.ts +3 -0
  1559. package/server/services/workshop/dcw/recipe-rollback-manager/views.ts +214 -0
  1560. package/server/services/workshop/plugins/host/api.mjs +90 -0
  1561. package/server/services/workshop/plugins/host/config.mjs +135 -0
  1562. package/server/services/workshop/plugins/host/index.mjs +23 -0
  1563. package/server/services/workshop/plugins/host/init.mjs +101 -0
  1564. package/server/services/workshop/plugins/host/load.mjs +321 -0
  1565. package/server/services/workshop/plugins/host/reload.mjs +94 -0
  1566. package/server/services/workshop/plugins/host/rollback.mjs +72 -0
  1567. package/server/services/workshop/plugins/host/services.mjs +58 -0
  1568. package/server/services/workshop/plugins/host/state.mjs +54 -0
  1569. package/server/services/workshop/plugins/host/toggle.mjs +64 -0
  1570. package/server/services/workshop/plugins/host.mjs +6 -890
  1571. package/server/services/workshop/runtime/agent-runtime/contracts.ts +25 -0
  1572. package/server/services/workshop/runtime/agent-runtime/facade.ts +7 -0
  1573. package/server/services/workshop/runtime/agent-runtime/helpers.ts +18 -0
  1574. package/server/services/workshop/runtime/agent-runtime/index.ts +19 -0
  1575. package/server/services/workshop/runtime/agent-runtime/lifecycle.ts +119 -0
  1576. package/server/services/workshop/runtime/agent-runtime/message.ts +409 -0
  1577. package/server/services/workshop/runtime/agent-runtime/state.ts +371 -0
  1578. package/server/services/workshop/runtime/agent-runtime/supervise.ts +188 -0
  1579. package/server/services/workshop/runtime/agent-runtime/types.ts +186 -0
  1580. package/server/services/workshop/runtime/channel-runtime.ts +7 -0
  1581. package/server/services/workshop/runtime/chat-mention.ts +164 -0
  1582. package/server/services/workshop/runtime/chat-projection.ts +246 -0
  1583. package/server/services/workshop/runtime/execution-mode.ts +11 -2
  1584. package/server/services/workshop/runtime/manager/a2a.ts +283 -0
  1585. package/server/services/workshop/runtime/manager/access.ts +483 -0
  1586. package/server/services/workshop/runtime/manager/admin-agents.ts +268 -0
  1587. package/server/services/workshop/runtime/manager/admin-channel.ts +276 -0
  1588. package/server/services/workshop/runtime/manager/bus.ts +182 -0
  1589. package/server/services/workshop/runtime/manager/channel-templates.ts +171 -0
  1590. package/server/services/workshop/runtime/manager/chat-reply.ts +181 -0
  1591. package/server/services/workshop/runtime/manager/chat.ts +384 -0
  1592. package/server/services/workshop/runtime/manager/contracts.ts +210 -0
  1593. package/server/services/workshop/runtime/manager/facade.ts +24 -0
  1594. package/server/services/workshop/runtime/manager/helpers.ts +119 -0
  1595. package/server/services/workshop/runtime/manager/host-tools.ts +249 -0
  1596. package/server/services/workshop/runtime/manager/index.ts +42 -0
  1597. package/server/services/workshop/runtime/manager/internal.ts +73 -0
  1598. package/server/services/workshop/runtime/manager/lead-team.ts +161 -0
  1599. package/server/services/workshop/runtime/manager/notifications.ts +108 -0
  1600. package/server/services/workshop/runtime/manager/runtime-observe.ts +300 -0
  1601. package/server/services/workshop/runtime/manager/runtime-wiring.ts +307 -0
  1602. package/server/services/workshop/runtime/manager/schedules.ts +302 -0
  1603. package/server/services/workshop/runtime/manager/state.ts +644 -0
  1604. package/server/services/workshop/runtime/manager/tasks.ts +518 -0
  1605. package/server/services/workshop/runtime/manager/teams.ts +148 -0
  1606. package/server/services/workshop/runtime/manager/types.ts +245 -0
  1607. package/server/services/workshop/runtime/manager/workspace.ts +136 -0
  1608. package/server/services/workshop/runtime/memory/contracts.ts +18 -0
  1609. package/server/services/workshop/runtime/memory/facade.ts +10 -0
  1610. package/server/services/workshop/runtime/memory/governance.ts +184 -0
  1611. package/server/services/workshop/runtime/memory/helpers.ts +196 -0
  1612. package/server/services/workshop/runtime/memory/index.ts +27 -0
  1613. package/server/services/workshop/runtime/memory/recall.ts +216 -0
  1614. package/server/services/workshop/runtime/memory/score.ts +33 -0
  1615. package/server/services/workshop/runtime/memory/state.ts +40 -0
  1616. package/server/services/workshop/runtime/memory/types.ts +44 -0
  1617. package/server/services/workshop/runtime/memory/write.ts +93 -0
  1618. package/server/services/workshop/runtime/permission-scope.ts +81 -0
  1619. package/server/services/workshop/runtime/schedule-runtime.ts +320 -0
  1620. package/server/services/workshop/runtime/scheduler-loop/contracts.ts +29 -0
  1621. package/server/services/workshop/runtime/scheduler-loop/execute.ts +295 -0
  1622. package/server/services/workshop/runtime/scheduler-loop/facade.ts +7 -0
  1623. package/server/services/workshop/runtime/scheduler-loop/helpers.ts +14 -0
  1624. package/server/services/workshop/runtime/scheduler-loop/index.ts +16 -0
  1625. package/server/services/workshop/runtime/scheduler-loop/rules.ts +131 -0
  1626. package/server/services/workshop/runtime/scheduler-loop/snapshot.ts +99 -0
  1627. package/server/services/workshop/runtime/scheduler-loop/state.ts +150 -0
  1628. package/server/services/workshop/runtime/scheduler-loop/tick.ts +157 -0
  1629. package/server/services/workshop/runtime/scheduler-loop/types.ts +50 -0
  1630. package/server/services/workshop/runtime/task-engine/contracts.ts +16 -0
  1631. package/server/services/workshop/runtime/task-engine/create.ts +145 -0
  1632. package/server/services/workshop/runtime/task-engine/facade.ts +7 -0
  1633. package/server/services/workshop/runtime/task-engine/helpers.ts +87 -0
  1634. package/server/services/workshop/runtime/task-engine/index.ts +15 -0
  1635. package/server/services/workshop/runtime/task-engine/lease.ts +79 -0
  1636. package/server/services/workshop/runtime/task-engine/lifecycle.ts +308 -0
  1637. package/server/services/workshop/runtime/task-engine/policy.ts +113 -0
  1638. package/server/services/workshop/runtime/task-engine/transition.ts +146 -0
  1639. package/server/services/workshop/runtime/task-engine/types.ts +3 -0
  1640. package/server/services/workshop/runtime/task-engine/update.ts +116 -0
  1641. package/server/services/workshop/runtime/task-engine/views.ts +169 -0
  1642. package/server/services/workshop/runtime/user-notification-hub.ts +192 -0
  1643. package/server/services/workshop/settings.ts +32 -0
  1644. package/server/services/workshop/types/task.ts +85 -0
  1645. package/server/utils/errors.ts +2 -0
  1646. package/server/utils/mojibake-guard.ts +29 -0
  1647. package/shared/config/schema.json +12 -0
  1648. package/shared/dcw-protocol/catalog.ts +203 -0
  1649. package/shared/dcw-protocol/closed-loop.ts +137 -0
  1650. package/shared/dcw-protocol/index.ts +19 -0
  1651. package/shared/dcw-protocol/line.ts +131 -0
  1652. package/shared/dcw-protocol/recipe.ts +301 -0
  1653. package/shared/workshop-protocol.ts +327 -5
  1654. package/tui/aw-tui.mjs +27 -6
  1655. package/tui/lib/pickers.mjs +21 -2
  1656. package/.output/public/_nuxt/4sIEbgcl.js +0 -42
  1657. package/.output/public/_nuxt/88GOowgO2.js +0 -1
  1658. package/.output/public/_nuxt/B7gZokg82.js +0 -209
  1659. package/.output/public/_nuxt/BC9wjTJK2.js +0 -4
  1660. package/.output/public/_nuxt/BCGafdXT.js +0 -2
  1661. package/.output/public/_nuxt/BDmh31hl.js +0 -1
  1662. package/.output/public/_nuxt/BFjGV-RV2.js +0 -4108
  1663. package/.output/public/_nuxt/BHA40aHa.js +0 -1
  1664. package/.output/public/_nuxt/BJHKLJJU.js +0 -1
  1665. package/.output/public/_nuxt/BN16aRdQ.js +0 -1
  1666. package/.output/public/_nuxt/BN6iuJEg2.js +0 -1
  1667. package/.output/public/_nuxt/BU83-NnX.js +0 -106
  1668. package/.output/public/_nuxt/BWVhZntO.js +0 -1
  1669. package/.output/public/_nuxt/BXxH0UQE.js +0 -1
  1670. package/.output/public/_nuxt/BYhEUx8t.js +0 -17
  1671. package/.output/public/_nuxt/BneN7fbu.js +0 -75
  1672. package/.output/public/_nuxt/BsROmY89.js +0 -1
  1673. package/.output/public/_nuxt/C0ZrS1KL.js +0 -19
  1674. package/.output/public/_nuxt/C3J6FYKa.js +0 -1
  1675. package/.output/public/_nuxt/C3gwHTz0.js +0 -1
  1676. package/.output/public/_nuxt/C4DWUZ6d2.js +0 -1
  1677. package/.output/public/_nuxt/C4oW1HsE.js +0 -1
  1678. package/.output/public/_nuxt/C4s_niy-.js +0 -14
  1679. package/.output/public/_nuxt/CClOy-Hz2.js +0 -1
  1680. package/.output/public/_nuxt/CFxtLwjp.js +0 -1
  1681. package/.output/public/_nuxt/CS50LB_l.js +0 -1
  1682. package/.output/public/_nuxt/CSkxz2NX.js +0 -3
  1683. package/.output/public/_nuxt/CWoJjWmZ.js +0 -1
  1684. package/.output/public/_nuxt/CYWVXZTS2.js +0 -7
  1685. package/.output/public/_nuxt/C__m4EhR.js +0 -1
  1686. package/.output/public/_nuxt/CoNpEq5X.js +0 -1
  1687. package/.output/public/_nuxt/Crod5z2f.js +0 -1
  1688. package/.output/public/_nuxt/CssgYAAL2.js +0 -1
  1689. package/.output/public/_nuxt/CzlMDL5H.js +0 -13
  1690. package/.output/public/_nuxt/D0ZBQrN_2.js +0 -1
  1691. package/.output/public/_nuxt/D6mbFA-a.js +0 -1
  1692. package/.output/public/_nuxt/D6uzXueg.js +0 -2
  1693. package/.output/public/_nuxt/D98NH8kG.js +0 -1
  1694. package/.output/public/_nuxt/D9Oidm5I.js +0 -1
  1695. package/.output/public/_nuxt/DBHNsT1Y.js +0 -23
  1696. package/.output/public/_nuxt/DDgJcSET.js +0 -19
  1697. package/.output/public/_nuxt/DGIuvyRN2.js +0 -1
  1698. package/.output/public/_nuxt/DGbd-UiG.js +0 -1
  1699. package/.output/public/_nuxt/DGj-WEBg.js +0 -1
  1700. package/.output/public/_nuxt/DHFrCUxA2.js +0 -13
  1701. package/.output/public/_nuxt/DIaZ2PTo2.js +0 -1
  1702. package/.output/public/_nuxt/DPnwL14Y.js +0 -1
  1703. package/.output/public/_nuxt/DR12_WCA.js +0 -3
  1704. package/.output/public/_nuxt/DS8qj8EL.js +0 -1
  1705. package/.output/public/_nuxt/DTFCy6h-.js +0 -1
  1706. package/.output/public/_nuxt/DUjW5Yq5.js +0 -1
  1707. package/.output/public/_nuxt/DYr1VMiQ.js +0 -6
  1708. package/.output/public/_nuxt/DZtm4l-P2.js +0 -1
  1709. package/.output/public/_nuxt/D_OTvQza.js +0 -1
  1710. package/.output/public/_nuxt/Dap5PmTL.js +0 -2
  1711. package/.output/public/_nuxt/DdD9mCHM.js +0 -1
  1712. package/.output/public/_nuxt/DeJykBFf.js +0 -9
  1713. package/.output/public/_nuxt/DeyBFhKH2.js +0 -4
  1714. package/.output/public/_nuxt/DkGQ7lnb2.js +0 -1
  1715. package/.output/public/_nuxt/Dqw1lpr-.js +0 -1
  1716. package/.output/public/_nuxt/DtYHUi5Z.js +0 -1
  1717. package/.output/public/_nuxt/DvLxILQP.js +0 -1
  1718. package/.output/public/_nuxt/Dz_Q3Lpw2.js +0 -1
  1719. package/.output/public/_nuxt/DzbFpZRk.js +0 -3
  1720. package/.output/public/_nuxt/IREZ1eC2.js +0 -1
  1721. package/.output/public/_nuxt/JCoYF4IJ.js +0 -31
  1722. package/.output/public/_nuxt/JTLM-kqr2.js +0 -1
  1723. package/.output/public/_nuxt/KZQX7xoM.js +0 -3
  1724. package/.output/public/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css +0 -1
  1725. package/.output/public/_nuxt/RYFtK4qZ2.js +0 -1
  1726. package/.output/public/_nuxt/TownView.f-YOdXRs.css +0 -1
  1727. package/.output/public/_nuxt/YnQxK3eG.js +0 -1
  1728. package/.output/public/_nuxt/_id_.D9ymtHB5.css +0 -1
  1729. package/.output/public/_nuxt/_id_.jf-_8E_c.css +0 -1
  1730. package/.output/public/_nuxt/_wsId_.B4WiqkIS.css +0 -1
  1731. package/.output/public/_nuxt/aLLjF2K-2.js +0 -1
  1732. package/.output/public/_nuxt/aWWIh8YL.js +0 -24
  1733. package/.output/public/_nuxt/agents.ZD0rVdHE.css +0 -1
  1734. package/.output/public/_nuxt/aml.BN8ZEW4h.css +0 -1
  1735. package/.output/public/_nuxt/builds/meta/78a295bb-2072-48a4-8b46-6d545fdae743.json +0 -1
  1736. package/.output/public/_nuxt/ca4TJ3Op.js +0 -1
  1737. package/.output/public/_nuxt/channel-templates.BOtahzPi.css +0 -1
  1738. package/.output/public/_nuxt/daq.DjSgY94l.css +0 -1
  1739. package/.output/public/_nuxt/dcw.8Y7FqCVN.css +0 -1
  1740. package/.output/public/_nuxt/default.J32SgqFY.css +0 -1
  1741. package/.output/public/_nuxt/entry.bdm0tv6M.css +0 -1
  1742. package/.output/public/_nuxt/eqq3wWQF.js +0 -18
  1743. package/.output/public/_nuxt/jZsY8yYz.js +0 -1
  1744. package/.output/public/_nuxt/logs.BpKzmKsh.css +0 -1
  1745. package/.output/public/_nuxt/monitor.D9pe7qN6.css +0 -1
  1746. package/.output/public/_nuxt/pages.D7aSDlUI.css +0 -1
  1747. package/.output/public/_nuxt/pdk8jLGT.js +0 -1
  1748. package/.output/public/_nuxt/permissions.DwTVlFe6.css +0 -1
  1749. package/.output/public/_nuxt/plugins.sb4nDGqr.css +0 -1
  1750. package/.output/public/_nuxt/qr6R6Ha1.js +0 -1
  1751. package/.output/public/_nuxt/settings.BTgR-NiE.css +0 -1
  1752. package/.output/public/_nuxt/teams.CxnxKVVs.css +0 -1
  1753. package/.output/public/_nuxt/tokens.BFY7qv4f.css +0 -1
  1754. package/.output/public/_nuxt/town.BLrD9-WH.css +0 -1
  1755. package/.output/public/_nuxt/users.DLgZ1D0h.css +0 -1
  1756. package/.output/public/_nuxt/vRTjoWqd.js +0 -1
  1757. package/.output/public/_nuxt/workshop.CR_QzeAN.css +0 -1
  1758. package/.output/public/_nuxt/xh3_vYcu.js +0 -1
  1759. package/.output/public/_nuxt/yF0aYMF1.js +0 -4
  1760. package/.output/public/_nuxt/zq5t1vyX.js +0 -1
  1761. package/.output/server/chunks/build/Checkbox-eax2M3o-.mjs +0 -207
  1762. package/.output/server/chunks/build/Checkbox-eax2M3o-.mjs.map +0 -1
  1763. package/.output/server/chunks/build/OmpTerminalPanel-Cu_s4i0A.mjs +0 -915
  1764. package/.output/server/chunks/build/OmpTerminalPanel-Cu_s4i0A.mjs.map +0 -1
  1765. package/.output/server/chunks/build/PluginSlot-CcR4Ys3T.mjs +0 -400
  1766. package/.output/server/chunks/build/PluginSlot-CcR4Ys3T.mjs.map +0 -1
  1767. package/.output/server/chunks/build/TownView--otsnr_7.mjs +0 -2790
  1768. package/.output/server/chunks/build/TownView--otsnr_7.mjs.map +0 -1
  1769. package/.output/server/chunks/build/_id_-Brv-JSvr.mjs +0 -803
  1770. package/.output/server/chunks/build/_id_-Brv-JSvr.mjs.map +0 -1
  1771. package/.output/server/chunks/build/_id_-D9pl1OZy.mjs +0 -381
  1772. package/.output/server/chunks/build/_id_-D9pl1OZy.mjs.map +0 -1
  1773. package/.output/server/chunks/build/_wsId_-BASfDf0s.mjs +0 -10066
  1774. package/.output/server/chunks/build/_wsId_-BASfDf0s.mjs.map +0 -1
  1775. package/.output/server/chunks/build/agents-CLQqJF2y.mjs +0 -1111
  1776. package/.output/server/chunks/build/agents-CLQqJF2y.mjs.map +0 -1
  1777. package/.output/server/chunks/build/aml-_7FdFL2p.mjs +0 -588
  1778. package/.output/server/chunks/build/aml-_7FdFL2p.mjs.map +0 -1
  1779. package/.output/server/chunks/build/api-error-dul30BYQ.mjs +0 -47
  1780. package/.output/server/chunks/build/api-error-dul30BYQ.mjs.map +0 -1
  1781. package/.output/server/chunks/build/apiClient-BwnfOQU8.mjs +0 -81
  1782. package/.output/server/chunks/build/apiClient-BwnfOQU8.mjs.map +0 -1
  1783. package/.output/server/chunks/build/button-DEcZFcqN.mjs +0 -1938
  1784. package/.output/server/chunks/build/button-DEcZFcqN.mjs.map +0 -1
  1785. package/.output/server/chunks/build/card-Dipvaykh.mjs +0 -955
  1786. package/.output/server/chunks/build/card-Dipvaykh.mjs.map +0 -1
  1787. package/.output/server/chunks/build/channel-templates-p6SZNjlM.mjs +0 -835
  1788. package/.output/server/chunks/build/channel-templates-p6SZNjlM.mjs.map +0 -1
  1789. package/.output/server/chunks/build/checkbox-8fB-wI-T.mjs +0 -439
  1790. package/.output/server/chunks/build/checkbox-8fB-wI-T.mjs.map +0 -1
  1791. package/.output/server/chunks/build/client-only-D5BzSQc6.mjs +0 -43
  1792. package/.output/server/chunks/build/client-only-D5BzSQc6.mjs.map +0 -1
  1793. package/.output/server/chunks/build/daq-DkMvD8sg.mjs +0 -1058
  1794. package/.output/server/chunks/build/daq-DkMvD8sg.mjs.map +0 -1
  1795. package/.output/server/chunks/build/dcw-C1jgVJkO.mjs +0 -249
  1796. package/.output/server/chunks/build/dcw-C1jgVJkO.mjs.map +0 -1
  1797. package/.output/server/chunks/build/default-BE4r0FZN.mjs +0 -1486
  1798. package/.output/server/chunks/build/default-BE4r0FZN.mjs.map +0 -1
  1799. package/.output/server/chunks/build/drawer-Cmh90erI.mjs +0 -836
  1800. package/.output/server/chunks/build/drawer-Cmh90erI.mjs.map +0 -1
  1801. package/.output/server/chunks/build/dropdown-CGQ0KAzA.mjs +0 -14
  1802. package/.output/server/chunks/build/dropdown-CGQ0KAzA.mjs.map +0 -1
  1803. package/.output/server/chunks/build/dropdown-vhn1NPFs.mjs +0 -558
  1804. package/.output/server/chunks/build/dropdown-vhn1NPFs.mjs.map +0 -1
  1805. package/.output/server/chunks/build/initDefaultProps-DIbWwP4R.mjs +0 -21
  1806. package/.output/server/chunks/build/initDefaultProps-DIbWwP4R.mjs.map +0 -1
  1807. package/.output/server/chunks/build/input-number-DzpyYB99.mjs +0 -1521
  1808. package/.output/server/chunks/build/input-number-DzpyYB99.mjs.map +0 -1
  1809. package/.output/server/chunks/build/input-sf_BT6o6.mjs +0 -2617
  1810. package/.output/server/chunks/build/input-sf_BT6o6.mjs.map +0 -1
  1811. package/.output/server/chunks/build/logs--dByNyhw.mjs +0 -198
  1812. package/.output/server/chunks/build/logs--dByNyhw.mjs.map +0 -1
  1813. package/.output/server/chunks/build/menu-WCrlpYVh.mjs +0 -1950
  1814. package/.output/server/chunks/build/menu-WCrlpYVh.mjs.map +0 -1
  1815. package/.output/server/chunks/build/modal-yvUquPj5.mjs +0 -1272
  1816. package/.output/server/chunks/build/modal-yvUquPj5.mjs.map +0 -1
  1817. package/.output/server/chunks/build/monitor-C0okQaXz.mjs +0 -2212
  1818. package/.output/server/chunks/build/monitor-C0okQaXz.mjs.map +0 -1
  1819. package/.output/server/chunks/build/pages-B0bUWnC6.mjs +0 -512
  1820. package/.output/server/chunks/build/pages-B0bUWnC6.mjs.map +0 -1
  1821. package/.output/server/chunks/build/permissions-68SsNjex.mjs +0 -629
  1822. package/.output/server/chunks/build/permissions-68SsNjex.mjs.map +0 -1
  1823. package/.output/server/chunks/build/plugins-lGlUr1lj.mjs +0 -240
  1824. package/.output/server/chunks/build/plugins-lGlUr1lj.mjs.map +0 -1
  1825. package/.output/server/chunks/build/popconfirm-CRaHcz5O.mjs +0 -342
  1826. package/.output/server/chunks/build/popconfirm-CRaHcz5O.mjs.map +0 -1
  1827. package/.output/server/chunks/build/segmented-3TrWo0lS.mjs +0 -5047
  1828. package/.output/server/chunks/build/segmented-3TrWo0lS.mjs.map +0 -1
  1829. package/.output/server/chunks/build/select-D-CeE5vY.mjs +0 -3923
  1830. package/.output/server/chunks/build/select-D-CeE5vY.mjs.map +0 -1
  1831. package/.output/server/chunks/build/settings-Ddd1qx2Z.mjs +0 -1174
  1832. package/.output/server/chunks/build/settings-Ddd1qx2Z.mjs.map +0 -1
  1833. package/.output/server/chunks/build/space-CCBYAkXt.mjs +0 -197
  1834. package/.output/server/chunks/build/space-CCBYAkXt.mjs.map +0 -1
  1835. package/.output/server/chunks/build/spin-HVY81X_L.mjs +0 -358
  1836. package/.output/server/chunks/build/spin-HVY81X_L.mjs.map +0 -1
  1837. package/.output/server/chunks/build/switch-CelRXpcy.mjs +0 -377
  1838. package/.output/server/chunks/build/switch-CelRXpcy.mjs.map +0 -1
  1839. package/.output/server/chunks/build/table-BjSWwmic.mjs +0 -8883
  1840. package/.output/server/chunks/build/table-BjSWwmic.mjs.map +0 -1
  1841. package/.output/server/chunks/build/tabs-BM3tAh_J.mjs +0 -1925
  1842. package/.output/server/chunks/build/tabs-BM3tAh_J.mjs.map +0 -1
  1843. package/.output/server/chunks/build/tag-DNE9vXc0.mjs +0 -1029
  1844. package/.output/server/chunks/build/tag-DNE9vXc0.mjs.map +0 -1
  1845. package/.output/server/chunks/build/teams-MEDLZdMn.mjs +0 -1215
  1846. package/.output/server/chunks/build/teams-MEDLZdMn.mjs.map +0 -1
  1847. package/.output/server/chunks/build/tokens-C7fTM5C2.mjs +0 -888
  1848. package/.output/server/chunks/build/tokens-C7fTM5C2.mjs.map +0 -1
  1849. package/.output/server/chunks/build/town-BUqRobze.mjs +0 -52
  1850. package/.output/server/chunks/build/town-BUqRobze.mjs.map +0 -1
  1851. package/.output/server/chunks/build/town-CoQdblbZ.mjs +0 -124
  1852. package/.output/server/chunks/build/town-CoQdblbZ.mjs.map +0 -1
  1853. package/.output/server/chunks/build/useDaqStream-DfCFpb3p.mjs +0 -395
  1854. package/.output/server/chunks/build/useDaqStream-DfCFpb3p.mjs.map +0 -1
  1855. package/.output/server/chunks/build/useDcwStream-UPiX-3iO.mjs +0 -435
  1856. package/.output/server/chunks/build/useDcwStream-UPiX-3iO.mjs.map +0 -1
  1857. package/.output/server/chunks/build/useDeviceTwins-Yko6nNPF.mjs +0 -128
  1858. package/.output/server/chunks/build/useDeviceTwins-Yko6nNPF.mjs.map +0 -1
  1859. package/.output/server/chunks/build/useOpsLog-CO_VWh7t.mjs +0 -137
  1860. package/.output/server/chunks/build/useOpsLog-CO_VWh7t.mjs.map +0 -1
  1861. package/.output/server/chunks/build/useWorkshopApi-NyjL0L3j.mjs +0 -90
  1862. package/.output/server/chunks/build/useWorkshopApi-NyjL0L3j.mjs.map +0 -1
  1863. package/.output/server/chunks/build/useWorkshopWs-C_I7q9As.mjs +0 -1319
  1864. package/.output/server/chunks/build/useWorkshopWs-C_I7q9As.mjs.map +0 -1
  1865. package/.output/server/chunks/build/users-Cfd5-l2-.mjs +0 -561
  1866. package/.output/server/chunks/build/users-Cfd5-l2-.mjs.map +0 -1
  1867. package/.output/server/chunks/build/workshop-BL5bhfs0.mjs +0 -931
  1868. package/.output/server/chunks/build/workshop-BL5bhfs0.mjs.map +0 -1
  1869. package/.output/server/chunks/build/workspaces-Bgz5Ekwp.mjs +0 -139
  1870. package/.output/server/chunks/build/workspaces-Bgz5Ekwp.mjs.map +0 -1
  1871. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.continue.json +0 -1
  1872. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.json +0 -1
  1873. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/054bb4bc4e4217a2ab0b0c6b663747214a9af464f5568ea60e784704e340bb0f.source +0 -153
  1874. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/0554197c3d2bac203a1f5c48a5d52495d1336db1bd7aa4f4c19875810363e684.source +0 -153
  1875. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/05c203d12a954fffba942e1d626e3f5fec05b18a5aef2bac003b7884a4b77406.source +0 -431
  1876. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/145a6e6ba811af35aed31e0cc3211f53706a14980fa069ee9e3c1591139f96f0.source +0 -180
  1877. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/1ae0fb281f97899c025e368ca73f41349b01fb5f85b19e08d7ebccff49095ed5.source +0 -112
  1878. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/20ee9967aa0541c516db7575bdd4a1a745939bc7016bd10d7635903113edb8ec.source +0 -227
  1879. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/233751843aeba9d4c5263f275b8102de00443c06f286918cbd23e0b6729e01aa.source +0 -131
  1880. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/263c2e05b425e5c322e60c6475279f963bab3a873eb521b21df7fec935a46597.source +0 -160
  1881. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/2ac5eaac28eaaee2178c4b32014df8e732f9dd432a285a872f5b7f31c1395fa4.source +0 -157
  1882. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/33a0db0d2d95d2c11d0720090458e5fba1425376f5ceb5b422d1d3471be3226b.source +0 -348
  1883. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/359e474ae83db35e4615d3728de6bf694b64d4dce9b536730a3b6518f9c0494a.source +0 -296
  1884. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/37a4c3c31c4b70f6b719c53d1e9c4fcba603f31adfdd11bb6ef9f0d094923c56.source +0 -285
  1885. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/461feca1c14a695eb8b0f17a6f95fe97eeceabc0510faaea4ba6d25bde147d8d.source +0 -217
  1886. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/4cfadbda8591f29d5e1e230dc000e701b756e850441b3900fb596a4d2f6e98c2.source +0 -301
  1887. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/50ca2810cf0b248c96948994c0c404531bbad6e553166b6816b3b03bfa0f75d2.source +0 -151
  1888. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/52d9e8cb591a9ae86e238c3620a610cd386717bee222c0f37b25b2ac7e523dc4.source +0 -135
  1889. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/6c87daafa4c006560a954636a97333f6123153c9d34d96203f7ee3a14e556357.source +0 -156
  1890. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/77bc47854b577900621cacf1697f81fa2bc005af129d37614a97a3441c08f99f.source +0 -72
  1891. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/7bbb789d3a527817118cf8399ed1861d6a962ade10878fd07223435d333a7089.source +0 -469
  1892. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/86b7c1daafc8b60ba9982dde5bf1bcc74265709483c176e71f23ec6fc267451f.source +0 -259
  1893. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/8df66d62bd41984d0970e8236882080c5085ac937d07a29779463d6a03b37c76.source +0 -97
  1894. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/9962f2d1b3a85137bd40cc835725600b39f89ee02a27c06b2e0402e1eafde115.source +0 -277
  1895. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/a1090ea066b792cb201739f4994e37bf7c12f52e805239a1eab87f18a537f266.source +0 -171
  1896. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/a5241091650134d0919897e086a606a3846c8b2b54f8b4c84a8696c145ac3e9e.source +0 -425
  1897. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/af19fa4c6e34d5540028be4b17600161283af3a2a2dfc61a3fdc0834436a0c14.source +0 -99
  1898. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/b3713d78e2b2f93905ff6be8d58a8d0a2f42dea322eb67c987fda22ff6a084d5.source +0 -325
  1899. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/b3849943c3aff102d1af815631fc843a2a52c17646a4b04696ece323e483bbec.source +0 -332
  1900. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/bac735a3803a6650b7f1eb8f587e6dc5c68ea055000c3c99a11789438b78e837.source +0 -43
  1901. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/d32c24d61eb8b33c73e5a8fc7e4dc7ef437aed238ee4371c2b00617e6104090a.source +0 -154
  1902. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/d5170dc9a9879fda04fdf91d8a110d4efb6787ee38dda596d4da899883d36a72.source +0 -531
  1903. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/dc59bcd7bb397be63ba2f2c3fec23f3782dcb17d2d75a9981eeced761f33eb32.source +0 -439
  1904. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/eb5ff8cf66b92aec7bf6726781d8df74faa2b030c3aaac17d6b00c1fc04c9b32.source +0 -323
  1905. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f10615a6fae18436e70d1201b2d44fdae3174a3aa7bb4db97dea1b3ed291d721.source +0 -433
  1906. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f36d3e271668bc1260c2823542d22dbf1d0f7041ff16b1ac175bce2256e582ca.source +0 -280
  1907. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f94449380af09f31ac352152007146a75cc80bae8d6411ffe57b2c56f933b0ff.source +0 -117
  1908. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/fe4dfd81178fd6b648335f6405d9ede71319aebde796008e50db21f8adf44c99.source +0 -160
  1909. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/ffb4e3aa548cfdadabaa44ab599f9b6a3ca6288176a2cc7a4b2fc2a12b5fb848.source +0 -101
  1910. package/scripts/.mimosa/hook-status/sess_aeaecb58-8833-4b83-b93c-050467d21e03-d944d71bb3.json +0 -14
  1911. package/scripts/_dbg-audit-all-pages.mjs +0 -43
  1912. package/scripts/_dbg-daq-frames-e2e.mjs +0 -118
  1913. package/scripts/_dbg-daq-rowstyle-verify.mjs +0 -112
  1914. package/scripts/_dbg-hitl-timeout-e2e.mjs +0 -93
  1915. package/scripts/_dbg-live-line-e2e.mjs +0 -279
  1916. package/scripts/_dbg-minimal-omp.mjs +0 -77
  1917. package/scripts/_dbg-mode-nav.mjs +0 -173
  1918. package/scripts/_dbg-real-scenario-timeline.log +0 -55
  1919. package/scripts/_dbg-team-repro.mjs +0 -76
  1920. package/scripts/_dbg-town-agents-probe.mjs +0 -60
  1921. package/scripts/_dbg-visual-acceptance.mjs +0 -63
  1922. package/scripts/_townview_style.css +0 -1185
  1923. package/scripts/_townview_template.html +0 -1215
  1924. package/scripts/test-agent-brain.ts +0 -135
  1925. package/scripts/test-game-session.ts +0 -160
  1926. package/scripts/test-protocol.ts +0 -156
  1927. package/scripts/verify-game.mjs +0 -477
  1928. package/server/api/workshop/ws.ts +0 -763
  1929. package/server/data/agent-node-bindings.json +0 -554
  1930. package/server/data/daq-templates.json +0 -16
  1931. package/server/data/daqs.json +0 -7464
  1932. package/server/data/dcw-lines.json +0 -1787
  1933. package/server/data/dcw-products.json +0 -1626
  1934. package/server/data/dcw-recipes.json +0 -4672
  1935. package/server/data/dcw-rollback.json +0 -20754
  1936. package/server/data/dcw-runs.json +0 -6354
  1937. package/server/data/dcw-templates.json +0 -146
  1938. package/server/data/dcw-writes.json +0 -15650
  1939. package/server/data/dcws.json +0 -9033
  1940. package/server/data/device-twins.json +0 -133
  1941. package/server/data/line-runs.json +0 -322
  1942. package/server/data/scene-layouts.json +0 -277
  1943. package/server/services/system-config.ts +0 -629
  1944. package/server/services/workshop/agents/adapters/omp-rpc-client.ts +0 -604
  1945. package/server/services/workshop/agents/codex-agent.ts +0 -743
  1946. package/server/services/workshop/agents/harness-terminal.ts +0 -625
  1947. package/server/services/workshop/agents/host-tool-bridge.ts +0 -714
  1948. package/server/services/workshop/agents/industrial-tools.ts +0 -1680
  1949. package/server/services/workshop/agents/omp-agent.ts +0 -1199
  1950. package/server/services/workshop/agents/opencode-agent.ts +0 -960
  1951. package/server/services/workshop/aml/job-orchestrator.ts +0 -639
  1952. package/server/services/workshop/daq/daq-controller.ts +0 -1284
  1953. package/server/services/workshop/daq/drivers.ts +0 -1185
  1954. package/server/services/workshop/db/database.ts +0 -1044
  1955. package/server/services/workshop/dcw/dcw-controller.ts +0 -1176
  1956. package/server/services/workshop/dcw/drivers.ts +0 -731
  1957. package/server/services/workshop/dcw/recipe-rollback-manager.ts +0 -713
  1958. package/server/services/workshop/runtime/agent-runtime.ts +0 -821
  1959. package/server/services/workshop/runtime/manager.ts +0 -3050
  1960. package/server/services/workshop/runtime/memory.ts +0 -681
  1961. package/server/services/workshop/runtime/scheduler-loop.ts +0 -799
  1962. package/server/services/workshop/runtime/task-engine.ts +0 -574
  1963. package/shared/dcw-protocol.ts +0 -747
  1964. /package/.output/public/_nuxt/{BrIJiJSN.js → BrIJiJSN2.js} +0 -0
  1965. /package/.output/public/_nuxt/{CNs_Ozdc2.js → CNs_Ozdc.js} +0 -0
  1966. /package/.output/public/_nuxt/{DIOBYJe3.js → DIOBYJe32.js} +0 -0
  1967. /package/.output/public/_nuxt/{lO5tpDZ5.js → lO5tpDZ52.js} +0 -0
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./B7gZokg82.js","./BBrRELH32.js","./CWKEp1wx2.js","./BFjGV-RV2.js","./RYFtK4qZ2.js","./BGkumHZ32.js"])))=>i.map(i=>d[i]);
2
- import{$ as e,C as t,Ht as n,P as r,R as i,S as a,Ut as o,V as s,Vt as c,W as l,_t as u,at as d,b as f,ct as p,d as m,dt as h,f as g,ft as _,h as v,ht as y,i as b,j as ee,m as x,nt as S,p as te,pt as C,rt as w,tt as ne,ut as T,v as re,xt as E,y as D,yt as O}from"./CSkxz2NX.js";import{c as k,d as ie,f as ae,l as A,t as oe,u as se}from"./D6uzXueg.js";import{t as ce}from"./HclGiUj8.js";import{n as le}from"./KZQX7xoM.js";import{t as j}from"./CWoJjWmZ.js";import{t as ue}from"./36oeS8_R.js";import{t as de}from"./DIaZ2PTo2.js";import{t as fe}from"./aLLjF2K-2.js";import{t as M}from"./BDNMzG2s2.js";import{t as pe}from"./BBrRELH32.js";import{C as me,L as he,N,O as ge,St as _e,_ as ve,b as ye,c as be,dt as xe,et as P,v as Se,y as F,z as Ce}from"./BFjGV-RV2.js";import{t as we}from"./DGIuvyRN2.js";import{t as Te}from"./CssgYAAL2.js";import{t as I}from"./D0ZBQrN_2.js";import{n as Ee,t as De}from"./BC9wjTJK2.js";import{r as Oe,t as ke}from"./D98NH8kG.js";import{t as Ae}from"./ca4TJ3Op.js";import{t as je}from"./C3J6FYKa.js";import{n as Me}from"./DeYsUzhr.js";var Ne=`__characterAssets`;function Pe(e){return{id:e.id,name:e.name,file:e.file,frames:e.sheet?.frames??4,frameWidth:e.sheet?.frameWidth??48,frameHeight:e.sheet?.frameHeight??88,kind:e.kind===`glb`?`glb`:e.kind===`dev`?`dev`:`sheet`,builtin:e.author===`system`,applied:(e.appliedTo?.length??0)>0}}function Fe(){let e=[],t=[{id:`knight`,name:`灰羽骑士`,file:`/assets/game/character/knight.png`,frames:4,frameWidth:48,frameHeight:88,kind:`sheet`,builtin:!0,applied:!1},{id:`mage`,name:`紫晶法师`,file:`/assets/game/character/mage.png`,frames:4,frameWidth:48,frameHeight:88,kind:`sheet`,builtin:!0,applied:!1},{id:`bot`,name:`青枢机械`,file:`/assets/game/character/bot.png`,frames:4,frameWidth:48,frameHeight:88,kind:`sheet`,builtin:!0,applied:!1},{id:`hero-3d`,name:`标准员工模型`,file:`/assets/game/character/hero-3d.glb`,frames:1,frameWidth:0,frameHeight:0,kind:`glb`,builtin:!0,applied:!1,hint:`默认员工 3D 模型`},{id:`yangyang-walk`,name:`杨杨(走路)`,file:`/assets/game/character/yangyang-walk.glb`,frames:1,frameWidth:0,frameHeight:0,kind:`glb`,builtin:!0,applied:!1,hint:`自定义角色:骨骼走路动画(剪辑 WALK;文件较大,建议少量绑定)`},{id:`device-3d`,name:`工业泵设备`,file:`/assets/game/character/device-3d.glb`,frames:1,frameWidth:0,frameHeight:0,kind:`dev`,builtin:!0,applied:!1,hint:`数字孪生实体模型(拖入场景生成设备)`}],n=[];try{let e=Object.assign({});for(let[t,r]of Object.entries(e)){let e=t.split(`/`).pop()??``,i=`dev-folder-`+e.replace(/\.glb$/i,``),a=r.replace(/^\/public\//,`/`);n.push({id:i,name:e.replace(/\.glb$/i,``).replace(/[-_]/g,` `),file:a,frames:1,frameWidth:0,frameHeight:0,kind:`dev`,builtin:!0,applied:!1,hint:`设备实体(拖入场景生成数字孪生)`})}}catch{}let r=(e=!0)=>{let t=typeof document<`u`?document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``:``,n={},r=t||``;return r&&(n.authorization=`Bearer ${decodeURIComponent(r)}`),e&&(n[`content-type`]=`application/json`),n},i=h({models:e,loaded:!1,loading:!1,error:``,async load(){if(!(i.loading||i.loaded)){i.loading=!0;try{let[e,a]=await Promise.allSettled([fetch(`/api/workshop/assets/character`,{headers:r()}),fetch(`/api/workshop/assets/devices`,{headers:r()})]),o=e.status===`fulfilled`?await e.value.json().catch(()=>({})):{},s=a.status===`fulfilled`?await a.value.json().catch(()=>({})):{},c=o?.data?.assets??[],l=(s?.data?.devices??[]).map(e=>({id:e.id,name:e.name,file:e.file,frames:1,frameWidth:0,frameHeight:0,kind:`dev`,builtin:!0,applied:!1,hint:`设备实体(拖入场景生成数字孪生)`,hFactor:typeof e.defaultScale==`number`&&e.defaultScale>0?e.defaultScale:1})),u=new Set(t.map(e=>e.file)),d=(s?.data?.characters??[]).filter(e=>!u.has(e.file)).map(e=>({id:e.id,name:e.name,file:e.file,frames:1,frameWidth:0,frameHeight:0,kind:`glb`,builtin:!0,applied:!1,hint:`角色 3D 模型(在频道成员管理中设置)`})),f=[],p=new Set;for(let e of c)f.push(Pe(e)),p.add(e.id);for(let e of l)p.has(e.id)||(f.push(e),p.add(e.id));for(let e of d)p.has(e.id)||(f.push(e),p.add(e.id));for(let e of t)p.has(e.id)||f.push(e);for(let e of n)p.has(e.id)||f.push(e);i.models.splice(0,i.models.length,...f),i.loaded=!0,i.error=``}catch(e){i.loaded=!1,i.error=I(e)}finally{i.loading=!1}}},byId(t){return e.find(e=>e.id===t)},async upload(e,t){let n=new FormData;n.append(`file`,e),n.append(`name`,t.name??e.name.replace(/\.[^.]+$/,``)),n.append(`workspaceId`,t.workspaceId??``),n.append(`kind`,t.kind??`sheet`),n.append(`frameWidth`,String(t.frameWidth??48)),n.append(`frameHeight`,String(t.frameHeight??88)),n.append(`frames`,String(t.frames??4));let a=await fetch(`/api/workshop/assets/character`,{method:`POST`,headers:r(!1),body:n}),o=await a.json().catch(()=>({}));if(!a.ok||!o?.data?.asset)throw Error(o?.message??`上传失败`);return i.loaded=!1,await i.load(),Pe(o.data.asset)},async remove(e){let t=await fetch(`/api/workshop/assets/character/${e}`,{method:`DELETE`,headers:r()}),n=await t.json().catch(()=>({}));if(!t.ok)throw Error(n?.message??`删除失败`);return i.loaded=!1,await i.load(),{used:n?.data?.used??0}},async uploadDevice(e,t){let n=new FormData;n.append(`file`,e),t&&n.append(`name`,t);let a=await fetch(`/api/workshop/assets/devices`,{method:`POST`,headers:r(!1),body:n}),o=await a.json().catch(()=>({}));if(!a.ok||!o?.data?.asset)throw Error(o?.message??`设备模型上传失败`);i.loaded=!1,await i.load();let s=o.data.asset;return{id:s.id,name:s.name,file:s.file,frames:1,frameWidth:0,frameHeight:0,kind:`dev`,builtin:!1,applied:!1,hint:`设备实体(拖入场景生成数字孪生)`}},async removeDevice(e){let t=e.replace(/^dev-folder-/,``),n=await fetch(`/api/workshop/assets/devices/${encodeURIComponent(t)}`,{method:`DELETE`,headers:r()}),a=await n.json().catch(()=>({}));if(!n.ok)throw Error(a?.message??`设备模型删除失败`);i.loaded=!1,await i.load()},async bind(e,t,n){let i=await fetch(`/api/workshop/channels/${e}/agents/${t}/model`,{method:`PATCH`,headers:r(),body:JSON.stringify({modelRef:n})}),a=await i.json().catch(()=>({}));if(!i.ok)throw Error(a?.message??`绑定失败`)}});return i}function Ie(){let e=globalThis;e[Ne]||(e[Ne]=Fe());let t=e[Ne];return t.load(),t}var Le={key:0,class:`mp-loading`},L={key:1,class:`mp-failed`},R=Object.assign(M(a({__name:`ModelPreview3D`,props:{file:{default:``},localFile:{default:null},height:{default:64}},setup(t){let a=t,o=C(null),c=C(!1),l=C(!1),u=globalThis,d=``;function f(){if(u.__modelPreviewRig)return u.__modelPreviewRig;let e=new ye({alpha:!0,antialias:!1,powerPreference:`low-power`});e.setPixelRatio(Math.min(window.devicePixelRatio,1.5)),e.toneMapping=4,e.toneMappingExposure=1.15;let t={renderer:e,slots:new Set,raf:0,clock:new ge},n=0,r=()=>{t.raf=requestAnimationFrame(r);let e=t.clock.getDelta();if(n+=e*1e3,n<1e3/30)return;let i=n/1e3;n=0;for(let e of t.slots)!e.canvas.isConnected||!e.visible||(e.group&&(e.group.rotation.y+=i*e.speed),t.renderer.setSize(e.w,e.h,!1),t.renderer.render(e.scene,e.camera),e.ctx.clearRect(0,0,e.w,e.h),e.ctx.drawImage(t.renderer.domElement,0,0,e.w,e.h))};return r(),u.__modelPreviewRig=t,t}function p(){let e=u.__modelPreviewRig;!e||e.slots.size>0||(cancelAnimationFrame(e.raf),e.renderer.dispose(),e.renderer.domElement.remove(),delete u.__modelPreviewRig)}function m(e){try{let t=new F(u.__modelPreviewRig.renderer);e.environment=t.fromScene(new ve,.04).texture,e.environmentIntensity=.55,t.dispose()}catch{}e.add(new Ce(14674431,3813157,1.3));let t=new N(16773855,2.2);t.position.set(3,4,2),e.add(t);let n=new N(4311284,1);n.position.set(-3,1,-2.5),e.add(n)}function h(e){let t=new me().setFromObject(e),n=new _e;t.getSize(n);let r=t.getCenter(new _e),i=2/(Math.max(n.x,Math.max(n.y,n.z))||1);e.scale.setScalar(i),e.position.set(-r.x*i,-r.y*i,-r.z*i)}let _=null;function y(e){if(!o.value||c.value)return;let t=o.value,n=t.clientWidth||120,r=a.height||64,i=f(),s=document.createElement(`canvas`);s.style.width=`100%`,s.style.height=`${r}px`,s.width=Math.max(2,Math.round(n*Math.min(window.devicePixelRatio,1.5))),s.height=Math.max(2,Math.round(r*Math.min(window.devicePixelRatio,1.5)));let u=s.getContext(`2d`);if(!u){c.value=!0;return}t.appendChild(s);let d=new xe;m(d);let p=new P(38,n/r,.1,100);p.position.set(2.4,1.8,3.1),p.lookAt(0,0,0);let g=new he;d.add(g),_={canvas:s,ctx:u,scene:d,camera:p,group:g,w:s.width,h:s.height,speed:.6,visible:!1,io:null},typeof IntersectionObserver<`u`?(_.io=new IntersectionObserver(e=>{for(let t of e)_&&(_.visible=t.isIntersecting)}),_.io.observe(s)):_.visible=!0,i.slots.add(_),l.value=!0,new Se().load(e,e=>{let t=e.scene;_&&(t.traverse(e=>{let t=e;t.isMesh&&(t.castShadow=!1,t.receiveShadow=!1)}),h(t),_.group.add(t),l.value=!1)},void 0,()=>{l.value=!1,c.value=!0})}function b(){if(d&&URL.revokeObjectURL(d),d=``,_){let e=u.__modelPreviewRig;_.io?.disconnect(),e?.slots.delete(_),_.scene.traverse(e=>{let t=e;if(t.isMesh){t.geometry?.dispose();let e=Array.isArray(t.material)?t.material:[t.material];for(let t of e){for(let e of Object.keys(t)){let n=t[e];n&&n.isTexture&&n.dispose()}t?.dispose()}}}),_.canvas.remove(),_=null,p()}}function S(){if(c.value=!1,a.localFile){d=URL.createObjectURL(a.localFile),y(d);return}a.file&&y(a.file)}return i(S),e(()=>[a.file,a.localFile],()=>{b(),(a.localFile??(a.file?a.file:null))&&ee(()=>S())}),r(b),(e,r)=>(s(),v(`div`,{ref_key:`hostRef`,ref:o,class:`model-preview-3d`,style:n({height:`${t.height}px`})},[E(l)?(s(),v(`div`,Le,[...r[0]||=[g(`span`,{class:`mp-spin`},null,-1)]])):E(c)?(s(),v(`div`,L,` PREVIEW NA `)):x(``,!0)],4))}}),[[`__scopeId`,`data-v-ed056b0a`]]),{__name:`WorkshopTownModelPreview3D`}),Re={class:`asset-lib`},ze={class:`lib-head`},z={class:`head-title`},Be={class:`head-hint`},B={class:`upload-row`},Ve={class:`upload-name`},He={key:0,class:`drop-hint`},Ue={key:1,class:`upload-file-tag`},We={class:`upload-actions`},Ge=[`disabled`],Ke=[`disabled`],qe={key:2,class:`mini-err`},Je={key:3,class:`mini-err`},Ye={class:`lib-grid`},Xe=[`data-model-id`,`title`,`onDragstart`],Ze={key:1,class:`model-img glb dev`},Qe={class:`model-name`},V={class:`model-badge`},H={class:`card-actions`},$e=[`disabled`,`onClick`],et={key:0,class:`lib-note`},tt={key:1,class:`lib-note`},nt={key:0,class:`mini-msg`},rt=Object.assign(M(a({__name:`AssetLibrary`,setup(e){let{t}=le(),n=Ie(),r=m(()=>n.models.filter(e=>e.kind===`dev`)),i=e=>/\.(glb|gltf)$/i.test(e);function a(e,t){e.dataTransfer&&(e.dataTransfer.setData(`application/x-aw-model`,t),e.dataTransfer.setData(`text/plain`,t),e.dataTransfer.effectAllowed=`copy`)}let u=C(!1),d=C(``),f=C(null),p=C(!1),h=e=>{let t=e.target;y(t.files?.[0]??null)},_=e=>{p.value=!1,y(e.dataTransfer?.files?.[0]??null)},y=e=>{if(e&&!/\.(glb|gltf|obj|fbx)$/i.test(e.name)){d.value=`仅支持 .glb/.gltf/.obj/.fbx 模型文件`;return}f.value=e,d.value=``},ee=()=>{f.value=null};async function S(){let e=f.value;if(!e){d.value=t(`assetLibrary.kcjqcaw012`);return}u.value=!0,d.value=``;try{let r=await n.uploadDevice(e);f.value=null,d.value=t(`assetLibrary.k8nv3or016`,{p0:r.name})}catch(e){d.value=I(e)}finally{u.value=!1}}let w=C(``),ne=C(``);async function T(e){w.value=e,ne.value=``;try{await n.removeDevice(e),ne.value=t(`assetLibrary.k8n918k013`)}catch(e){ne.value=I(e)}finally{w.value=``}}return(e,t)=>(s(),v(`aside`,Re,[g(`div`,ze,[g(`span`,z,o(e.$t(`assetLibrary.k7la4x5001`)),1),g(`span`,Be,o(e.$t(`assetLibrary.kulif5b002`)),1)]),g(`div`,{class:c([`upload-box`,{drop:E(p)}]),onDragover:t[0]||=ae(e=>p.value=!0,[`prevent`]),onDragleave:t[1]||=e=>p.value=!1,onDrop:ae(_,[`prevent`])},[g(`label`,B,[g(`input`,{type:`file`,accept:`.glb,.gltf,.obj,.fbx`,class:`file-input`,onChange:h},null,32),g(`span`,Ve,[t[2]||=g(`span`,{class:`i-tabler-plus upload-ico`},null,-1),D(` `+o(E(f)?.name||e.$t(`assetLibrary.k1iiort6010`)),1)])]),E(p)?(s(),v(`span`,He,[t[3]||=g(`span`,{class:`i-tabler-download`},null,-1),D(` `+o(e.$t(`assetLibrary.k5hg6jq003`)),1)])):x(``,!0),E(f)?(s(),v(b,{key:1},[i(E(f).name)?(s(),te(R,{key:0,"local-file":E(f),height:92},null,8,[`local-file`])):(s(),v(`span`,Ue,o(E(f).name)+` (`+o(e.$t(`assetLibrary.k1xz5wvk009`)),1)),g(`div`,We,[g(`button`,{class:`upload-btn go`,disabled:E(u),onClick:S},o(E(u)?e.$t(`assetLibrary.k1ar7n8i005`):e.$t(`assetLibrary.k1hhga4h014`)),9,Ge),g(`button`,{class:`upload-btn`,disabled:E(u),onClick:ee},o(e.$t(`assetLibrary.k3xdnn004`)),9,Ke)])],64)):E(u)?(s(),v(`span`,qe,o(e.$t(`assetLibrary.k1ar7n8i005`)),1)):x(``,!0),E(d)&&!E(f)?(s(),v(`span`,Je,o(E(d)),1)):x(``,!0)],34),g(`div`,Ye,[(s(!0),v(b,null,l(E(r),n=>(s(),v(`div`,{key:n.id,class:`model-card`,"data-model-id":n.id,draggable:`true`,title:n.hint||e.$t(`assetLibrary.katn7lo015`,{p0:n.name}),onDragstart:e=>a(e,n.id)},[i(n.file)?(s(),te(R,{key:0,file:n.file,height:76},null,8,[`file`])):(s(),v(`span`,Ze,[...t[4]||=[g(`span`,{class:`i-tabler-cpu glb-cube`,"aria-hidden":`true`},null,-1)]])),g(`span`,Qe,o(n.name),1),g(`span`,V,o(e.$t(`assetLibrary.k1n32zs0006`)),1),g(`div`,H,[n.file.includes(`/assets/game/devices/`)?(s(),v(`button`,{key:0,class:`card-btn danger`,disabled:E(w)===n.id,onClick:e=>T(n.id)},o(E(w)===n.id?`…`:e.$t(`assetLibrary.k498l011`)),9,$e)):x(``,!0)])],40,Xe))),128)),E(n).loaded?E(r).length===0?(s(),v(`div`,tt,o(e.$t(`assetLibrary.k15527e1008`)),1)):x(``,!0):(s(),v(`div`,et,[t[5]||=g(`span`,{class:`loading-dot`},null,-1),D(` `+o(e.$t(`assetLibrary.k1kq2tmi007`)),1)]))]),E(ne)?(s(),v(`span`,nt,o(E(ne)),1)):x(``,!0)]))}}),[[`__scopeId`,`data-v-3d6a30ed`]]),{__name:`WorkshopAssetLibrary`}),it=[`innerHTML`],at=Object.assign(a({__name:`DaqTemplateIcon`,props:{icon:{}},setup(e){let t=e,n={thermo:`<path d="M10 4a2 2 0 0 1 4 0v9a4 4 0 1 1-4 0V4Z"/><circle cx="12" cy="16.5" r="1.6"/>`,pressure:`<circle cx="12" cy="12" r="8"/><path d="m12 12 3.5-3.5"/><circle cx="12" cy="12" r="1.2"/>`,tension:`<circle cx="12" cy="10" r="4"/><path d="M4 18.5h16M8 18.5V14M16 18.5V14"/><path d="M2.5 10H8M16 10h5.5"/>`,encoder:`<circle cx="12" cy="12" r="8"/><circle cx="12" cy="12" r="2"/><path d="M12 4v3M12 17v3M4 12h3M17 12h3"/>`,camera:`<rect x="3" y="7" width="13" height="10" rx="2"/><path d="m16 11 5-3v8l-5-3"/><circle cx="8" cy="12" r="2.5"/>`,gateway:`<rect x="8" y="11" width="8" height="10" rx="1.5"/><circle cx="12" cy="5.5" r="1.5"/><path d="M12 10V7M8.5 8.5a5 5 0 0 1 7 0M6 6a8.5 8.5 0 0 1 12 0"/>`},r=m(()=>n[t.icon]??n.gateway);return(e,t)=>(s(),v(`svg`,{viewBox:`0 0 24 24`,innerHTML:E(r)},null,8,it))}}),{__name:`WorkshopDaqTemplateIcon`}),ot={class:`twin-panel`},st={class:`twin-head`},ct={class:`twin-kicker`},lt={class:`twin-count`},ut={key:0,class:`twin-error`},U={key:1,class:`twin-empty`},W={key:2,class:`twin-empty`},dt={class:`twin-empty-frame`},ft={class:`twin-empty-title`},pt={class:`twin-empty-sub`},mt={key:3,class:`twin-list`},ht=[`onClick`],gt={class:`twin-row`},_t={class:`twin-model-tag`},vt={class:`twin-idbar`},yt={class:`twin-name`},bt={class:`twin-code`},xt=[`disabled`,`title`,`onClick`],St={key:0,class:`twin-tele`},Ct={key:1,class:`twin-daq`},wt={key:2,class:`twin-dcw`},Tt={class:`dcw-head`},Et={key:0,class:`dcw-src`},Dt={class:`dcw-set`},Ot=[`title`],kt={key:0,class:`dcw-act-at`},At={class:`dcw-win`},G=[`title`],jt={class:`dcw-ctrl`},Mt=[`onUpdate:modelValue`,`step`,`min`,`max`,`placeholder`,`onKeydown`],Nt=[`disabled`,`title`,`onClick`],Pt={key:1,class:`dcw-err`},Ft={key:4,class:`twin-err`},It=Object.assign(M(a({__name:`DeviceTwinPanel`,props:{daqLive:{},dcwLive:{}},emits:[`focus-device`],setup(e){let{t}=le(),a=je(),u=Ae(),d=e=>e.kind===`daq`||(e.modelRef??``).startsWith(`daq-`),f=null;i(()=>{a.load(),f=j(()=>void a.load(),2e3)}),r(()=>{f&&clearInterval(f)});let p=C(``),m=C(``),_=C(``),y=null;async function ee(e){if(_.value!==e.id){_.value=e.id,y&&clearTimeout(y),y=setTimeout(()=>{_.value=``},3e3);return}y&&clearTimeout(y),_.value=``,p.value=e.id,m.value=``;try{await a.remove(e.id)}catch(e){m.value=I(e)}finally{p.value=``}}let te={idle:`var(--hud-amber)`,running:`var(--hud-ok)`,alarm:`var(--hud-danger)`,offline:`var(--hud-dim)`},w={idle:`STANDBY`,running:`RUNNING`,alarm:`ALARM`,offline:`OFFLINE`},ne=e=>e.replace(/[^A-Za-z0-9]/g,``).slice(0,4).toUpperCase()||`DEV`,T=e=>e.replace(/^dev-/,``).replace(/[^a-z0-9]/gi,``).slice(-6).toUpperCase(),re=e=>typeof e==`number`?(Math.round(e*100)/100).toString():String(e),O=e=>`${Number.isFinite(e.lo)?e.lo:`-∞`} ~ ${Number.isFinite(e.hi)?e.hi:`+∞`} ${e.unit}`,k=h({}),oe=h({}),se=C(``);function ce(e){let n=k[e.id];if(n==null||n===``)return;let r=Number(n);if(r<e.lo||r>e.hi){oe[e.id]=t(`deviceTwinPanel.kxddket010`,{p0:e.src===`recipe`?t(`deviceTwinPanel.kq2jssk008`):t(`deviceTwinPanel.k1iwj796009`),p1:O(e)});return}oe[e.id]=``,se.value=e.id,u.write(e.id,r).then(t=>{t.ok||(oe[e.id]=t.message)}).catch(t=>{oe[e.id]=I(t)}).finally(()=>{se.value=``})}return(t,r)=>(s(),v(`aside`,ot,[g(`div`,st,[g(`span`,ct,o(t.$t(`deviceTwinPanel.k7k6evr002`)),1),g(`span`,lt,o(E(a).twins.length),1)]),E(a).error?(s(),v(`div`,ut,o(E(a).error),1)):x(``,!0),E(a).loaded?E(a).twins.length===0?(s(),v(`div`,W,[g(`div`,dt,[g(`div`,ft,o(t.$t(`deviceTwinPanel.k13y2qmg004`)),1),g(`div`,pt,o(t.$t(`deviceTwinPanel.kotf23l005`)),1)])])):(s(),v(`div`,mt,[(s(!0),v(b,null,l(E(a).twins,i=>(s(),v(`button`,{key:i.id,class:c([`twin-card`,{daq:d(i)}]),type:`button`,onClick:e=>t.$emit(`focus-device`,i)},[g(`div`,gt,[g(`span`,_t,o(ne(i.modelRef||i.name)),1),g(`div`,vt,[g(`span`,yt,o(i.name),1),g(`span`,bt,o(d(i)?`DAQ`:T(i.id)),1)]),g(`button`,{class:c([`twin-del`,{armed:E(_)===i.id}]),disabled:E(p)===i.id,title:E(_)===i.id?`再次点击确认删除该设备实例`:`删除该设备实例`,onClick:ae(e=>ee(i),[`stop`])},o(E(_)===i.id?t.$t(`deviceTwinPanel.k44653007`):`✕`),11,xt),g(`span`,{class:c([`twin-state`,`s-${i.state}`])},[g(`i`,{class:`twin-state-dot`,style:n({background:te[i.state]||`var(--hud-dim)`})},null,4),D(` `+o(w[i.state]||i.state),1)],2)]),Object.keys(i.telemetry).length?(s(),v(`div`,St,[(s(!0),v(b,null,l(i.telemetry,(e,t)=>(s(),v(`span`,{key:t,class:`tele-item`},[g(`em`,null,o(t),1),g(`b`,null,o(re(e)),1)]))),128))])):x(``,!0),e.daqLive?.[i.id]?.length?(s(),v(`div`,Ct,[(s(!0),v(b,null,l(e.daqLive[i.id],(e,t)=>(s(),v(`span`,{key:`${e.ch}-${t}`,class:c([`daq-item`,{alarm:e.alarm}])},[g(`em`,null,o(e.ch),1),g(`b`,null,[D(o(e.value),1),g(`i`,null,o(e.unit),1)])],2))),128))])):x(``,!0),e.dcwLive?.[i.id]?.length?(s(),v(`div`,wt,[(s(!0),v(b,null,l(e.dcwLive[i.id],e=>(s(),v(`div`,{key:e.id,class:`dcw-item`},[g(`div`,Tt,[g(`em`,null,[D(o(e.ch),1),e.src===`recipe`?(s(),v(`i`,Et,o(t.$t(`deviceTwinPanel.k48grv006`)),1)):x(``,!0)]),g(`b`,Dt,[D(o(e.value==null?`--`:e.value.toFixed(e.decimals)),1),g(`i`,null,o(e.unit),1)])]),e.readValue!=null||e.lastReadAt?(s(),v(`div`,{key:0,class:`dcw-act`,title:t.$t(`deviceTwinPanel.k9r7d4e030`)},[r[0]||=g(`em`,null,`ACT`,-1),g(`b`,null,[D(o(e.readValue==null?`--`:e.readValue.toFixed(e.decimals)),1),g(`i`,null,o(e.unit),1)]),e.lastReadAt?(s(),v(`i`,kt,o(e.lastReadAt.slice(11,19)),1)):x(``,!0)],8,Ot)):x(``,!0),g(`div`,At,[g(`span`,{title:e.src===`recipe`?`当前运行配方工艺窗口`:`节点全局量程`},o(O(e)),9,G)]),g(`div`,jt,[S(g(`input`,{"onUpdate:modelValue":t=>E(k)[e.id]=t,type:`number`,class:`ctrl-input`,step:10**-e.decimals,min:Number.isFinite(e.lo)?e.lo:void 0,max:Number.isFinite(e.hi)?e.hi:void 0,placeholder:`${Number.isFinite(e.lo)?e.lo:``} ~ ${Number.isFinite(e.hi)?e.hi:``}`,onKeydown:ie(t=>ce(e),[`enter`])},null,40,Mt),[[A,E(k)[e.id],void 0,{number:!0}]]),g(`button`,{class:`ctrl-btn dcw-send`,disabled:E(k)[e.id]==null||E(k)[e.id]===``||E(se)===e.id,title:t.$t(`deviceTwinPanel.k1j04u8001`),onClick:ae(t=>ce(e),[`stop`])},o(E(se)===e.id?`···`:`SET`),9,Nt)]),E(oe)[e.id]?(s(),v(`small`,Pt,o(E(oe)[e.id]),1)):x(``,!0)]))),128))])):x(``,!0)],10,ht))),128))])):(s(),v(`div`,U,o(t.$t(`deviceTwinPanel.kkw7sn5003`)),1)),E(m)?(s(),v(`span`,Ft,o(E(m)),1)):x(``,!0)]))}}),[[`__scopeId`,`data-v-37ad3127`]]),{__name:`WorkshopDeviceTwinPanel`}),Lt=`__sceneLayouts`;function Rt(e=!0){let t=typeof document<`u`?document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``:``,n={};return t&&(n.authorization=`Bearer ${decodeURIComponent(t)}`),e&&(n[`content-type`]=`application/json`),n}function zt(){let e=null,t=e=>new Promise(t=>setTimeout(t,e)),n=h({layouts:{},loaded:!1,loading:!1,error:``,rev:0,async load(){return e||=r().finally(()=>{e=null}),e},byChannel(e){return n.layouts[e]},async save(e,r){n.layouts[e]={channelId:e,x:r.x,z:r.z,radiusX:r.radiusX,radiusZ:r.radiusZ,shape:r.shape??`ellipse`,rotationY:r.rotationY??0,updatedAt:Me()},n.rev++;let i=null;for(let a=0;a<3;a++)try{let t=await fetch(`/api/workshop/scene/layouts/${e}`,{method:`PUT`,headers:Rt(),body:JSON.stringify(r)}),i=await t.json().catch(()=>({}));if(!t.ok||!i?.data?.layout)throw Error(i?.message??`保存频道布局失败`);return n.layouts[e]=i.data.layout,i.data.layout}catch(e){i=e instanceof Error?e:Error(String(e)),a<2&&await t(500*(a+1))}throw i??Error(`保存频道布局失败`)},async remove(e){let t=await fetch(`/api/workshop/scene/layouts/${e}`,{method:`DELETE`,headers:Rt()}),r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r?.message??`移除频道放置失败`);let i=Object.fromEntries(Object.entries(n.layouts).filter(([t])=>t!==e));n.layouts=i,n.rev++}});async function r(){n.loading=!0;let e=``;try{for(let r=0;r<3;r++)try{let e=await fetch(`/api/workshop/scene/layouts`,{headers:Rt()});if(!e.ok)throw Error(`HTTP ${e.status}`);let t=(await e.json().catch(()=>({})))?.data?.layouts??[],r={};for(let e of t)r[e.channelId]=e;n.layouts=r,n.loaded=!0,n.error=``,n.rev++;return}catch(n){e=I(n),r<2&&await t(400*(r+1))}n.loaded=!1,n.error=e}finally{n.loading=!1}}return n}function Bt(){let e=globalThis;e[Lt]||(e[Lt]=zt());let t=e[Lt];return t.load(),t}function Vt(e){return d()?(T(e),!0):!1}var Ht=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var Ut=Object.prototype.toString,Wt=e=>Ut.call(e)===`[object Object]`,Gt=()=>{};function Kt(...e){if(e.length!==1)return u(...e);let t=e[0];return typeof t==`function`?_(w(()=>({get:t,set:Gt}))):C(t)}function qt(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return n}var Jt=e=>e();function Yt(e=Jt,t={}){let{initialState:n=`active`}=t,r=Kt(n===`active`);function i(){r.value=!1}function a(){r.value=!0}return{isActive:_(r),pause:i,resume:a,eventFilter:(...t)=>{r.value&&e(...t)}}}function Xt(e){return Array.isArray(e)?e:[e]}function Zt(e){return e||t()}function Qt(t,n,r={}){let{eventFilter:i=Jt,...a}=r;return e(t,qt(i,n),a)}function $t(e,t,n={}){let{eventFilter:r,initialState:i=`active`,...a}=n,{eventFilter:o,pause:s,resume:c,isActive:l}=Yt(r,{initialState:i});return{stop:Qt(e,t,{...a,eventFilter:o}),pause:s,resume:c,isActive:l}}function en(e,t=!0,n){Zt(n)?i(e,n):t?e():ee(e)}function tn(t,n,r){return e(t,n,{...r,immediate:!0})}var nn=Ht?window:void 0;Ht&&window.document,Ht&&window.navigator,Ht&&window.location;function rn(e){let t=O(e);return t?.$el??t}function an(...e){let t=[],n=()=>{t.forEach(e=>e()),t.length=0},r=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),i=m(()=>{let t=Xt(O(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0}),a=tn(()=>[i.value?.map(e=>rn(e))??[nn].filter(e=>e!=null),Xt(O(i.value?e[1]:e[0])),Xt(E(i.value?e[2]:e[1])),O(i.value?e[3]:e[2])],([e,i,a,o])=>{if(n(),!e?.length||!i?.length||!a?.length)return;let s=Wt(o)?{...o}:o;t.push(...e.flatMap(e=>i.flatMap(t=>a.map(n=>r(e,t,n,s)))))},{flush:`post`});return Vt(n),()=>{a(),n()}}var K=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},on=`__vueuse_ssr_handlers__`,sn=cn();function cn(){return on in K||(K[on]=K[on]||{}),K[on]}function q(e,t){return sn[e]||t}function ln(e){return e==null?`any`:e instanceof Set?`set`:e instanceof Map?`map`:e instanceof Date?`date`:typeof e==`boolean`?`boolean`:typeof e==`string`?`string`:typeof e==`object`?`object`:Number.isNaN(e)?`any`:`number`}var un={boolean:{read:e=>e===`true`,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},dn=`vueuse-storage`;function fn(t,n,r,i={}){let{flush:a=`pre`,deep:o=!0,listenToStorageChanges:s=!0,writeDefaults:c=!0,mergeDefaults:l=!1,shallow:u,window:d=nn,eventFilter:f,onError:p=e=>{console.error(e)},initOnMounted:h}=i,g=(u?y:C)(typeof n==`function`?n():n),_=m(()=>O(t));if(!r)try{r=q(`getDefaultStorage`,()=>nn?.localStorage)()}catch(e){p(e)}if(!r)return g;let v=O(n),b=ln(v),x=i.serializer??un[b],{pause:S,resume:te}=$t(g,e=>T(e),{flush:a,deep:o,eventFilter:f});e(_,()=>E(),{flush:a});let w=!1;d&&s&&(r instanceof Storage?an(d,`storage`,e=>{h&&!w||E(e)},{passive:!0}):an(d,dn,e=>{h&&!w||D(e)})),h?en(()=>{w=!0,E()}):E();function ne(e,t){if(d){let n={key:_.value,oldValue:e,newValue:t,storageArea:r};d.dispatchEvent(r instanceof Storage?new StorageEvent(`storage`,n):new CustomEvent(dn,{detail:n}))}}function T(e){try{let t=r.getItem(_.value);if(e==null)ne(t,null),r.removeItem(_.value);else{let n=x.write(e);t!==n&&(r.setItem(_.value,n),ne(t,n))}}catch(e){p(e)}}function re(e){let t=e?e.newValue:r.getItem(_.value);if(t==null)return c&&v!=null&&r.setItem(_.value,x.write(v)),v;if(!e&&l){let e=x.read(t);return typeof l==`function`?l(e,v):b===`object`&&!Array.isArray(e)?{...v,...e}:e}return typeof t==`string`?x.read(t):t}function E(e){if(!(e&&e.storageArea!==r)){if(e&&e.key==null){g.value=v;return}if(!(e&&e.key!==_.value)){S();try{let t=x.write(g.value);(e===void 0||e?.newValue!==t)&&(g.value=re(e))}catch(e){p(e)}finally{e?ee(te):te()}}}}function D(e){E(e.detail)}return g}var pn={class:`town-view`},mn={class:`brand`},hn={class:`brand-sub`},gn=[`aria-label`],_n={class:`seg`},vn=[`disabled`,`title`],yn={class:`nav-right`},bn=[`title`],xn={class:`nav-chip mono nav-fps`},Sn=[`title`],Cn={class:`avatar-fallback`},wn=[`aria-expanded`,`title`],Tn={class:`sheet-btn-t`},En=[`aria-expanded`,`title`],Dn={class:`sheet-btn-t`},On={class:`app`},kn={class:`sheet-hd`},An={class:`sheet-hd-t`},jn={class:`panel`},Mn={class:`panel-hd`},Nn={class:`panel-tag`},Pn={class:`panel`},Fn={class:`panel-hd`},In={class:`panel-tag`},Ln={class:`daq-ctrl`},Rn=[`title`],zn=[`title`],Bn=[`value`],Vn={class:`daq-list`},Hn=[`title`,`onClick`,`onKeydown`],Un={class:`daq-ico`},Wn={class:`daq-meta`},Gn={class:`daq-name`},Kn={class:`daq-code`},qn=[`title`,`onClick`],Jn={class:`daq-count`},Yn={key:0,class:`daq-children`},Xn=[`draggable`,`title`,`onDragstart`,`onClick`],Zn={class:`daq-meta`},Qn={class:`daq-name`},$n={class:`daq-node-sub`},er={class:`node-val mono`},tr={class:`node-dev`},nr={key:0,class:`scene-cur`},rr={key:0,class:`daq-empty-hint`},ir={class:`panel`},ar={class:`panel-hd`},or={class:`panel-tag`},sr={class:`daq-list`},cr=[`title`,`onClick`,`onKeydown`],lr={class:`daq-ico`},ur={class:`daq-meta`},dr={class:`daq-name`},fr={class:`daq-code`},pr=[`title`,`onClick`],mr={class:`daq-count`},hr={key:0,class:`daq-children`},gr=[`draggable`,`title`,`onDragstart`,`onClick`],_r={class:`daq-meta`},vr={class:`daq-name`},yr={class:`daq-node-sub`},br={class:`node-val mono`},xr={class:`node-dev`},Sr={key:0,class:`scene-cur`},Cr={key:0,class:`daq-empty-hint`},wr={class:`panel`},Tr={class:`panel-hd`},Er={class:`panel-tag`},Dr={class:`scene-list`},Or=[`draggable`,`data-channel-id`,`title`,`onDragstart`,`onClick`],kr={class:`scene-meta-wrap`},Ar={class:`scene-name`},jr={class:`scene-meta`},Mr={key:0,class:`scene-cur`},Nr={key:1,class:`scene-add`},Pr={key:0,class:`scene-hint`},Fr={class:`stage-col`},Ir={class:`stage-top`},Lr={class:`vp-title`},Rr={class:`vp-id`},zr={class:`vp-tools`},Br=[`title`],Vr=[`title`],Hr=[`title`],Ur=[`title`],Wr={class:`angle-chip`},Gr=[`value`,`aria-label`],Kr={value:`std`},qr={class:`leaders`},Jr=[`d`,`stroke`],Yr=[`cx`,`cy`,`fill`],Xr={class:`callout-layer`},Zr=[`title`,`onClick`],Qr={class:`co-label`},$r={class:`co-val`},ei={class:`co-range`},ti={class:`kpi-strip`},ni={class:`kpi`},ri={class:`kpi-meta`},ii={class:`kpi-label`},ai={class:`kpi-val`},oi={class:`kpi`},si={class:`kpi-meta`},ci={class:`kpi-label`},li={class:`kpi-val`},ui={class:`kpi`},di={class:`kpi-meta`},fi={class:`kpi-label`},pi={class:`kpi-val`},mi={class:`kpi`},hi={class:`kpi-meta`},gi={class:`kpi-label`},_i={class:`kpi-val`},vi={class:`kpi`},yi={class:`kpi-meta`},bi={class:`kpi-label`},xi={class:`kpi-val`},Si={key:1,class:`empty-hint`},Ci=[`title`],wi={class:`bp-name`},Ti={class:`bp-sub`},Ei={class:`bp-tabs`},Di={class:`bp-row`},Oi={class:`bp-label`},ki={class:`bp-seg`},Ai={class:`bp-row`},ji={class:`bp-label`},Mi={class:`bp-val`},Ni={class:`bp-row`},Pi={class:`bp-label`},Fi={class:`bp-val`},Ii={class:`bp-row`},Li={class:`bp-label`},Ri={class:`bp-val`},zi={class:`bp-hint`},Bi={class:`member-list`},Vi={class:`member-info`},Hi={class:`member-name`},Ui=[`value`,`onChange`],Wi=[`value`],Gi={key:0,class:`bp-hint`},Ki={class:`bp-actions`},qi={key:3,class:`drop-chip`},Ji={key:4,class:`error-chip`},Yi={key:5,"data-hud":`town-loading`,class:`loading-mask`},Xi={class:`loading-text`},Zi=[`aria-expanded`],Qi={class:`dock-toggle-t`},$i={class:`dock-toggle-hint mono`},ea={id:`town-dock-controls`,class:`dock-card`},ta={class:`dock-hd`},na={class:`dock-mode`},ra={class:`ctl-sec`},ia={class:`ctl-row`},aa=[`title`],oa={class:`fps-seg`},sa=[`onClick`],ca={class:`ctl-row`},la=[`title`],ua={class:`fps-seg`},da=[`onClick`],fa={class:`ctl-sec`},pa={class:`ctl-row`},ma={class:`ctl-name`},ha=[`value`],ga={class:`ctl-val`},_a={class:`ctl-row`},va={class:`ctl-name`},ya=[`value`],ba={class:`ctl-val`},xa={class:`ctl-row`},Sa={class:`ctl-name`},Ca=[`value`],wa={class:`ctl-val`},Ta={class:`ctl-row`},Ea=[`title`],Da=[`value`],Oa={class:`ctl-val`},ka={class:`ctl-sec`},Aa={class:`ctl-row`},ja={class:`ctl-name`},Ma={class:`ctl-btns`},Na=[`disabled`,`title`],Pa={class:`dock-card`},Fa={class:`dock-hd`},Ia={class:`dock-count mono`},La=[`onClick`],Ra=[`title`],za={class:`trend-wrap`},Ba={key:0,class:`trend-empty`},Va={class:`sheet-hd`},Ha={class:`sheet-hd-t`},Ua={key:0,class:`panel inspector`},Wa={class:`panel-hd`},Ga=[`title`],Ka={class:`ins-chip-row`},qa={class:`ins-chip mono`},Ja={key:0,class:`ins-chip accent`},Ya={key:1,class:`ins-chip accent`},Xa={key:0,class:`daq-info`},Za={class:`daq-info-row`},Qa={class:`cy`},$a={class:`daq-info-row`},eo={class:`daq-info-row`},to={class:`daq-bind-bar`},no=[`step`,`placeholder`],ro=[`disabled`],io={key:0,class:`dcw-err`},ao={key:1,class:`daq-bind-bar`},oo={value:``},so=[`value`],co=[`disabled`],lo={key:1,class:`daq-info`},uo={class:`daq-info-row`},fo={class:`cy`},po={class:`daq-info-row`},mo={class:`daq-info-row`},ho={key:0,class:`daq-bind-bar`},go={value:``},_o=[`value`],vo=[`disabled`],yo={key:1,class:`daq-node-ctl`},bo={class:`daq-info-row`},xo={class:`daq-th-inputs`},So={class:`daq-info-row`},Co={class:`daq-th-inputs`},wo=[`value`],To=[`value`],Eo={class:`daq-info-row`},Do={class:`daq-th-inputs`},Oo=[`value`],ko=[`value`],Ao={class:`daq-info-row`},jo={class:`daq-info-row`},Mo=[`title`],No={key:2,class:`ins-empty`},Po={class:`obj-row`},Fo={class:`obj-label`},Io=[`placeholder`,`disabled`,`title`],Lo={class:`obj-row`},Ro={class:`obj-label`},zo=[`value`,`disabled`],Bo=[`value`],Vo={class:`sect-hd`},Ho={class:`bind-ico`},Uo={class:`bind-meta`},Wo={class:`bind-label`},Go={class:`bind-val`},Ko=[`title`,`onClick`],qo={key:0,class:`ins-empty`},Jo={key:1,class:`bind-add-wrap`},Yo={key:0,class:`bp-group`},Xo={class:`bp-tpl`},Zo=[`data-node-id`,`title`,`onClick`],Qo={key:0,class:`bp-cur`},$o={key:1,class:`bp-cur`},es={key:0,class:`bp-empty`},ts={class:`sect-hd`},ns={class:`dcw-top`},rs={class:`bind-ico`},is={class:`dcw-id`},as={class:`bind-label`},os={key:0,class:`dcw-tag`},ss={class:`dcw-name`},cs={class:`dcw-cur`},ls=[`title`,`onClick`],us={class:`dcw-win-num`},ds={class:`dcw-win-track`},fs={class:`dcw-win-num`},ps={class:`dcw-write`},ms=[`onUpdate:modelValue`,`step`,`placeholder`,`onKeydown`],hs=[`disabled`,`title`,`onClick`],gs={key:0,class:`dcw-err`},_s={key:2,class:`ins-empty`},vs={key:3,class:`bind-add-wrap`},ys={key:0,class:`bp-group`},bs={class:`bp-tpl`},xs=[`data-node-id`,`title`,`onClick`],Ss={key:0,class:`bp-cur`},Cs={key:1,class:`bp-cur`},ws={key:0,class:`bp-empty`},Ts={class:`xz-seg`},Es={class:`scale-row`},Ds=[`value`],Os={class:`scale-val`},ks={class:`ins-foot`},As={key:5,class:`ins-empty`},js={class:`chat-id-row`},Ms={class:`chat-nameplate`},Ns={class:`chat-name`},Ps={class:`chat-meta`},Fs={key:0,class:`chat-harness`},Is={class:`chat-count`},Ls={class:`obj-row`},Rs={class:`obj-label`},zs=[`value`,`disabled`],Bs=[`value`],Vs={class:`obj-row`},Hs={class:`obj-label`},Us={class:`range-status`},Ws=[`title`],Gs={class:`sect-hd`},Ks={class:`bind-meta`},qs={class:`bind-label`},Js=[`value`,`title`,`onChange`],Ys={value:`auto`},Xs={value:`manual`},Zs=[`title`,`onClick`],Qs={key:0,class:`ins-empty`},$s={key:1,class:`daq-bind-bar`,style:{"margin-bottom":`8px`}},ec={value:`dcw`},tc={value:`daq`},nc={value:``},rc=[`value`],ic=[`value`],ac={value:`auto`},oc={value:`manual`},sc=[`disabled`],cc={class:`sect-hd`,style:{color:`var(--hud-amber)`}},lc={class:`approval-detail`},uc=[`onUpdate:modelValue`,`placeholder`],dc={class:`daq-bind-bar`,style:{"margin-top":`5px`}},fc=[`onClick`],pc=[`onClick`],mc={class:`obj-row`},hc={class:`obj-label`},gc={class:`bp-seg`},_c={class:`obj-row`},vc={class:`obj-label`},yc={class:`bp-val`},bc={class:`obj-row`},xc={class:`obj-label`},Sc={class:`bp-val`},Cc={key:4,class:`ins-empty`},wc={class:`sect-hd chat-sect`},Tc=[`title`],Ec={key:0,class:`rpg-note`},Dc={class:`rpg-divider`},Oc={class:`rpg-time`},kc={class:`rpg-bubble`},Ac={class:`rpg-text`},jc={key:2,class:`rpg-divider live`},Mc={class:`rpg-time`},Nc={class:`rpg-bubble`},Pc={class:`rpg-text`},Fc={key:3,class:`rpg-typing`},Ic={class:`ty-label`},Lc={key:4,class:`rpg-note`},Rc={class:`panel`},zc={class:`panel-hd`},Bc={class:`health-body`},Vc={class:`donut-wrap`},Hc={class:`donut-center`},Uc={class:`health-legend`},Wc={class:`hl-row`},Gc={class:`n`},Kc={class:`hl-row`},qc={class:`n`},Jc={class:`hl-row`},Yc={class:`n`},Xc={class:`hl-row`},Zc={class:`n`},Qc={class:`panel`},$c={class:`panel-hd`},el={class:`panel-tag`},tl={class:`panel`},nl={class:`panel-hd`},rl={class:`panel-tag`},il=[`title`],al={class:`alarm-list`},ol={class:`al-body`},sl={class:`al-txt`},cl={class:`al-src`},ll=[`onClick`],ul={key:0,class:`rail-empty`},dl={class:`panel`},fl={class:`panel-hd`},pl={class:`panel-tag`},ml={class:`event-list`},hl={class:`ev-time`},gl=[`title`],_l=[`title`],vl={key:0,class:`rail-empty`},yl={class:`panel`},bl={class:`panel-hd`},xl={class:`mm-body`},Sl=[`title`],Cl={class:`mm-col`},wl=[`title`],Tl=[`title`],El=[`title`],Dl={class:`mm-meta mono`},Ol={class:`statusbar`},kl={class:`sb-stats`},Al={class:`sb-lat mono`},jl={class:`copy`},Ml={key:1,"data-hud":`town-loading`,class:`loading-mask`},Nl={class:`loading-text`},Pl=`aw-town-panel-pos`,Fl=3200,Il=2400,Ll=3e4,Rl=80,zl=120,Bl=104,Vl=8,Hl=1600,Ul=Object.assign(M(a({__name:`TownView`,props:{channelId:{},allChannels:{type:Boolean}},setup(t){let{t:a}=le(),u=t,d=Ee(),_=Te(),{conn:te}=De(),w=ue(),T=Ie(),O=je(),M=Bt(),me=fe(),{isDesktop:he}=we(),N=C(null),ge=C(!1);function _e(e){N.value=N.value===e?null:e}function ve(){N.value=null}function ye(e){e.key===`Escape`&&N.value&&ve()}i(()=>window.addEventListener(`keydown`,ye)),r(()=>window.removeEventListener(`keydown`,ye)),e(he,e=>{e&&(N.value=null,ge.value=!1)});let xe=C(null),P=y(null),Se=y(null),F=y(null),Ce=typeof window<`u`?new URLSearchParams(location.search).get(`render`)!==`2d`:!0,Me=C(!1),Ne=C(0),Pe=C(0),Fe=C(0),Le=C(null),L=C(null),R=C(``),Re=m(()=>te.state===`connecting`),ze=m(()=>d.channels[u.channelId]?.name??``),z=C(`browse`),Be=C(!0),B=C(null),Ve=m(()=>{switch(B.value?.state){case`dirty`:return a(`townView.k3oo50k155`);case`saving`:return a(`townView.k1b38d59156`);case`saved`:return a(`townView.k3n51yk157`);case`error`:return a(`townView.k1b3ayhc158`);default:return``}});function He(){z.value=z.value===`browse`?`edit`:`browse`,F.value?.setMode(z.value),z.value===`browse`&&(Qe(),$e(null)),W.value=!1}let Ue=C(`translate`);function We(e){Ue.value=e,F.value?.setTransformMode(e)}e(()=>[L.value,z.value],([e,t])=>{t===`edit`&&e?.kind===`device`&&F.value?.setTransformMode(Ue.value)});function Ge(e){let t=e.target;if(t&&(t.tagName===`INPUT`||t.tagName===`SELECT`||t.tagName===`TEXTAREA`||t.isContentEditable))return;let n=e.key.toLowerCase();if(e.key===`Escape`){Qe();return}z.value===`edit`&&L.value?.kind===`device`&&(n===`g`?We(`translate`):n===`r`?We(`rotate`):n===`s`?We(`scale`):(e.key===`Delete`||e.key===`Backspace`)&&bt())}function Ke(){Be.value=!Be.value,F.value?.setSnap(Be.value)}function qe(e,t,n,r){let i=t||u.channelId;return i?me.request({method:`PATCH`,url:`/workshop/channels/${i}/agents/${e}/position`,data:{x:n,z:r}}).catch(()=>null):Promise.resolve()}function Je(e,t,n){let r=t||u.channelId;return r?me.request({method:`PATCH`,url:`/workshop/channels/${r}/agents/${e}/range`,data:{range:n}}).catch(()=>null):Promise.resolve()}function Ye(){if(z.value!==`edit`){Ht();return}F.value?.persistAllDevices()}function Xe(e){L.value&&F.value?.setModelScale(L.value.id,e,L.value.kind)}function Ze(e){L.value&&F.value?.persistScale(L.value.kind,L.value.id)}function Qe(){L.value=null}let V=C(null),H=C(null);function $e(e){V.value=e,H.value=e?F.value?.getChannelLayout(e)??null:null}async function et(){if(!V.value||!H.value)return;let e=H.value,t={x:e.x,z:e.z,radiusX:e.radiusX,radiusZ:e.radiusZ,shape:e.shape??`ellipse`,rotationY:e.rotationY??0};try{await M.save(V.value,t),B.value={state:`saved`,at:Date.now()}}catch(e){B.value={state:`error`,at:Date.now()},R.value=I(e)}}async function tt(){if(V.value)try{await M.remove(V.value),F.value?.removeChannel(V.value),$e(null)}catch(e){R.value=I(e)}}function nt(){!V.value||!H.value||(F.value?.updateChannelLayout(V.value,H.value),B.value={state:`dirty`,at:Date.now()})}let it=C(``);function ot(e){let t=F.value;if(t){if(e.placed){t.focusChannel(e.channelId),$e(e.channelId);return}it.value=a(`townView.k7rvbts159`),window.setTimeout(()=>{it.value=``},2600)}}function st(e,t,n){let r=F.value;if(!r)return!1;let i=G().find(t=>t.channelId===e),o=i?.channelName??d.channels[e]?.name??e.slice(0,8),s=i?.agents.length??d.agents[e]?.length??0;return r.getChannelLayout(e)?(it.value=a(`townView.kcyn0191`,{p0:o}),window.setTimeout(()=>{it.value=``},2600),r.focusChannel(e),$e(e),!1):(r.dropChannelOnWorld(t,n,e,o,s),M.save(e,{x:t,z:n,radiusX:Math.max(120,110+s*18),radiusZ:Math.max(80,70+s*14),shape:`ellipse`,rotationY:0}).then(()=>{B.value={state:`saved`,at:Date.now()}}).catch(()=>{B.value={state:`error`,at:Date.now()}}),r.focusChannel(e),!0)}let ct=m(()=>T.models.filter(e=>e.kind===`glb`)),lt=m(()=>T.models.filter(e=>e.kind===`dev`)),ut=C(``),U=C(null),W=C(!1);e(()=>L.value,e=>{if(ut.value=e?.kind===`device`?F.value?.getDeviceName?.(e.id)??``:``,U.value=null,e?.kind===`agent`){let t=F.value?.getAgentRange?.(e.id);U.value=t?{radiusX:t.radiusX,radiusZ:t.radiusZ,shape:t.shape}:null,W.value=F.value?.isRangeDrawing(e.id)??!1}else W.value=!1});let dt=m(()=>{let e=L.value;if(!e||e.kind!==`agent`)return``;let t=F.value?.getAgentRange?.(e.id);return t?`${t.shape===`rect`?a(`townView.k43u0g050`):a(`townView.k414bc049`)} ${Math.round(t.radiusX)} × ${Math.round(t.radiusZ)}`:a(`townView.k1v1icf6160`)});function ft(){let e=L.value;if(!(!e||e.kind!==`agent`)){if(W.value){F.value?.cancelRangeDraw(),W.value=!1;return}F.value?.startRangeDraw(e.id),W.value=!0}}function pt(){!L.value||L.value.kind!==`agent`||!U.value||(F.value?.setAgentRangeScene(L.value.id,U.value),B.value={state:`dirty`,at:Date.now()})}function mt(){!L.value||L.value.kind!==`agent`||F.value?.commitAgentRange(L.value.id)}function ht(){let e=L.value;!e||e.kind!==`agent`||(F.value?.clearAgentRange(e.id),U.value=null,W.value=!1)}function gt(){if(!L.value||L.value.kind!==`device`)return;let e=L.value.id,t=ut.value.trim();t&&(F.value?.renameDevice(e,t),O.update(e,{name:t}).catch(e=>{R.value=I(e)}))}async function _t(e){let t=L.value;if(!t||t.kind!==`agent`)return;let n=t.id,r=d.agents?Object.keys(d.agents).find(e=>(d.agents[e]??[]).some(e=>e.agentId===n)):void 0;if(!r){R.value=a(`townView.kpplr16161`);return}try{await T.bind(r,n,e),F.value?.swapAgentModel(n,e)}catch(e){R.value=I(e)}}async function vt(e){let t=L.value;if(!(!t||t.kind!==`device`)){F.value?.swapDeviceModel(t.id,e);try{await O.update(t.id,{modelRef:e})}catch(e){R.value=I(e)}}}let yt=C(``);function bt(){let e=L.value;if(!(!e||e.kind!==`device`)){if(yt.value!==e.id){yt.value=e.id,window.setTimeout(()=>{yt.value===e.id&&(yt.value=``)},3e3);return}yt.value=``,F.value?.removeDevice(e.id).then(()=>Qe()).catch(e=>{R.value=I(e)})}}let xt=C(`boundary`),St=m(()=>V.value?G().find(e=>e.channelId===V.value)?.agents??[]:[]);async function Ct(e,t){if(V.value)try{await T.bind(V.value,e,t),F.value?.swapAgentModel(e,t)}catch(e){R.value=I(e)}}function wt(e){xt.value=e}let Tt=C(0),Et=m(()=>(Tt.value,Dt().map(e=>({channelId:e,name:d.channels[e]?.name??e.slice(0,8),agentCount:(d.agents[e]??[]).length,placed:F.value?.hasChannel(e)??!1,color:kt(e)}))));function Dt(){let e=[];for(let t of Ot()??[])for(let n of t.channelIds??[])e.includes(n)||e.push(n);return e.includes(u.channelId)||e.push(u.channelId),e}function Ot(){return _.workspaces}function kt(e){return be(e)}function At(e,t){e.dataTransfer&&(e.dataTransfer.setData(`application/x-aw-channel`,t),e.dataTransfer.setData(`text/plain`,t),e.dataTransfer.effectAllowed=`copy`)}function G(){let e=[];for(let[t,n]of Object.entries(d.channels)){let r=(d.agents[t]??[]).map(e=>{let n=e.currentTaskId?(d.tasks[t]??[]).find(t=>t.id===e.currentTaskId):void 0;return{agentId:e.agentId,name:e.name,role:e.role,harness:e.harness,state:e.state,currentTaskId:e.currentTaskId??null,currentTaskTitle:n?.title??null,currentTaskProgress:e.currentTaskProgress??n?.progress??null,modelRef:e.modelRef??null,homeX:e.config?.homeX??null,homeZ:e.config?.homeZ??null,range:e.config?.range??null}});e.push({channelId:t,channelName:n.name,agents:r})}return e}function jt(e){!e||!(`registerModelsFromList`in e)||(`screenToWorld`in e?e.registerModelsFromList(T.models.map(e=>({id:e.id,file:e.file,name:e.name,kind:e.kind,hFactor:e.hFactor??1}))):e.registerModelsFromList(T.models.map(e=>({id:e.id,file:e.file,name:e.name}))))}e(()=>T.models.map(e=>`${e.id}:${e.file}`).join(`|`),()=>jt(P.value));async function Mt(){P.value||!xe.value||(Ce?await Nt():await Pt())}async function Nt(){let e=xe.value;if(!e)return;let[{TownScene3D:t}]=await Promise.all([ce(()=>import(`./B7gZokg82.js`),__vite__mapDeps([0,1,2,3]),import.meta.url)]),n=new t(G(),e);n.resolveTaskAssignee=e=>d.tasks[u.channelId]?.find(t=>t.id===e)?.assigneeId??null,n.devices={async create(e){return{id:(await O.create({name:e.name,modelRef:e.modelRef,kind:e.kind,controls:e.controls,posX:e.posX,posZ:e.posZ,scale:e.scale})).id}},async update(e,t){if(J.nodeById(e)){await J.saveTransform(e,t.posX,t.posZ);return}await O.update(e,t)},async remove(e){if(J.nodeById(e)){await J.removeNode(e);return}await O.remove(e)},async control(e,t,n){return O.control(e,t,n)}},n.agentApi={async updateHome(e,t,n,r){return qe(e,t,n,r)},async updateRange(e,t,n){return Je(e,t,n)}},n.channelApi={async save(e,t){return M.save(e,t)}},P.value=n,jt(n),F.value=n,n.setFpsCap(Number(xf.value)),n.setQualityMode(wf.value),Ft(n),n.on(`select`,e=>{L.value=e}),n.on(`saveState`,e=>{B.value=e}),n.on(`selectChannel`,e=>{$e(e)}),n.on(`channelResized`,e=>{e&&V.value===e.channelId&&(H.value=e.layout)}),n.on(`agentRangeChanged`,e=>{if(e&&L.value?.kind===`agent`&&L.value.id===e.agentId){let t=F.value?.getAgentRange?.(e.agentId);U.value=t?{radiusX:t.radiusX,radiusZ:t.radiusZ,shape:t.shape}:null}}),Me.value=!0,Lt(n),Jf=ru(n),M.load().then(()=>{n.hydrate(G(),Object.values(M.layouts),eu.value),Kt()}).catch(e=>{R.value=a(`townView.k1hmf2ut192`,{p0:I(e)}),window.setTimeout(()=>{M.load()},2500)})}async function Pt(){let e=xe.value;if(!e)return;let[t,{TownScene:n}]=await Promise.all([ce(()=>import(`./BGkumHZ32.js`),[],import.meta.url),ce(()=>import(`./RYFtK4qZ2.js`),__vite__mapDeps([4,5,1,2]),import.meta.url)]),r=new n(G());P.value=r,jt(r),r.resolveTaskAssignee=e=>d.tasks[u.channelId]?.find(t=>t.id===e)?.assigneeId??null;let i=new t.Game({type:t.AUTO,parent:e.id||`town-host`,width:1100,height:700,backgroundColor:`#eceae4`,pixelArt:!0,antialias:!1,roundPixels:!0,powerPreference:`high-performance`,physics:{default:`arcade`,arcade:{gravity:{x:0,y:0},debug:!1}},scale:{mode:t.Scale.FIT,autoCenter:t.Scale.CENTER_BOTH},scene:r});Se.value=i,Ft(r),r.on(`ready`,()=>{Me.value=!0,Lt(r)})}function Ft(e){let t=e;t.on(`fps`,e=>{Ne.value=e}),t.on(`agentCount`,e=>{Pe.value=e}),t.on(`blockCount`,e=>{Fe.value=e,Tt.value++}),t.on(`lastActivity`,e=>{Le.value=e});let n=w.subscribe(t=>{try{if(t.type===`channel.snapshot`){e.rebuild(G()),P.value&&Wt(P.value),u.channelId&&e.focusChannel(u.channelId);return}if(t.type===`device.updated`){O.applyRemote(t.payload),P.value&&Wt(P.value);return}if(t.type===`device.created`){O.load().then(()=>{P.value&&Wt(P.value)});return}if(t.type===`device.deleted`){O.removeRemote(t.payload.id),P.value&&Wt(P.value);return}if(t.type===`scene.layout.saved`||t.type===`scene.layout.removed`){M.load().then(()=>{Gt(P.value),Kt()});return}let n=pe(t)?.bubble;n?.agentId&&Wl(n.agentId,n.kind,n.text,t.at,t.seq),e.handleTownEvent(t)}catch(e){R.value=I(e)}});P._off=n,window.__town={get scene(){return P.value},get game(){return Se.value},buildInput:G,get characterAssets(){return T}}}function Lt(e){if(`screenToWorld`in e){Ut(e);return}zt(e)}let Rt=[];function zt(e){let t=e.game.canvas;if(!t)return;let n=(n,r)=>{let i=e.cameras.main,a=t.getBoundingClientRect(),o=(n-a.left)/a.width,s=(r-a.top)/a.height;return{x:i.worldView.x+o*i.worldView.width,y:i.worldView.y+s*i.worldView.height}},r=!1,i=0,a=0;t.addEventListener(`pointerdown`,e=>{e.button===0&&(r=!0,i=e.clientX,a=e.clientY)});let o=n=>{if(!r)return;let o=e.cameras.main,s=t.getBoundingClientRect(),c=e.game.scale.width/s.width,l=(n.clientX-i)*c/o.zoom,u=(n.clientY-a)*c/o.zoom;o.scrollX-=l,o.scrollY-=u,i=n.clientX,a=n.clientY},s=()=>{r=!1};window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,s),Rt.push(()=>window.removeEventListener(`pointermove`,o)),Rt.push(()=>window.removeEventListener(`pointerup`,s)),t.addEventListener(`wheel`,t=>{t.preventDefault();let n=e.cameras.main,r=n.zoom+(t.deltaY<0?.08:-.08);n.setZoom(Math.min(2.4,Math.max(.6,r)))},{passive:!1}),t.addEventListener(`dragover`,e=>{e.preventDefault(),e.dataTransfer.dropEffect=`copy`}),t.addEventListener(`drop`,t=>{t.preventDefault();let r=t.dataTransfer?.getData(`application/x-aw-model`)||t.dataTransfer?.getData(`text/plain`);if(!r)return;let i=n(t.clientX,t.clientY),a=e.dropModelOnWorld(i.x,i.y,r);tn.value=a})}let Vt=null;function Ht(){R.value=a(`townView.kt6xb5p162`),Vt&&clearTimeout(Vt),Vt=setTimeout(()=>{R.value=``},2600)}function Ut(e){let t=e.canvas;if(!t)return;let n=0,r=0,i=0;t.addEventListener(`contextmenu`,e=>e.preventDefault()),t.addEventListener(`mousedown`,e=>{e.button===1&&e.preventDefault()}),t.addEventListener(`pointerdown`,t=>{if(!e.isGizmoBusy?.()){if(t.button===1||t.button===2||t.shiftKey){t.preventDefault(),n=2,r=t.clientX,i=t.clientY;return}t.button===0&&(e.tryStartPointerDrag(t.clientX,t.clientY)||(n=1,r=t.clientX,i=t.clientY))}});let a=t=>{if(e.isGizmoBusy?.())return;if(e.isPointerDragging()){e.movePointerDrag(t.clientX,t.clientY);return}if(!n)return;let a=t.clientX-r,o=t.clientY-i;r=t.clientX,i=t.clientY,n===1?e.orbitBy(a,o):e.panByScreen(a,o)},o=()=>{if(e.isPointerDragging()){e.endPointerDrag();return}n=0};window.addEventListener(`pointermove`,a),window.addEventListener(`pointerup`,o),Rt.push(()=>window.removeEventListener(`pointermove`,a)),Rt.push(()=>window.removeEventListener(`pointerup`,o)),t.addEventListener(`wheel`,t=>{t.preventDefault(),e.zoomBy(t.deltaY>0?.12:-.11)},{passive:!1}),t.addEventListener(`dragover`,e=>{e.preventDefault(),e.dataTransfer.dropEffect=`copy`}),t.addEventListener(`drop`,t=>{t.preventDefault();let n=t.dataTransfer;if(!n)return;if(z.value!==`edit`){Ht();return}let r=n.getData(`application/x-aw-channel`)||n.getData(`text/plain`);if(r&&Et.value.some(e=>e.channelId===r)){let n=e.screenToWorld(t.clientX,t.clientY);st(r,n.x,n.z);return}let i=n.getData(`application/x-aw-daq-node`);if(i){let n=J.nodeById(i);if(n){let r=e.screenToWorld(t.clientX,t.clientY);J.patchNode(i,{posX:Math.round(r.x),posZ:Math.round(r.z)}).then(()=>{if(!n.deviceBindingId){let e=Qu(r.x,r.z,95);e&&Xu(i,e.id)}}).catch(e=>{R.value=I(e)})}return}let a=n.getData(`application/x-aw-dcw-node`);if(a){let n=Y.nodes.find(e=>e.id===a);if(n){let r=e.screenToWorld(t.clientX,t.clientY);Y.patchNode(a,{posX:Math.round(r.x),posZ:Math.round(r.z)}).then(()=>{if(!n.deviceBindingId){let e=Qu(r.x,r.z,95);e&&Y.bindNode(a,e.id).catch(e=>{R.value=I(e)})}P.value&&Wt(P.value)}).catch(e=>{R.value=I(e)})}return}let o=n.getData(`application/x-aw-model`)||n.getData(`text/plain`);if(o){let n=e.screenToWorld(t.clientX,t.clientY),r=e.dropModelOnWorld(n.x,n.z,o);tn.value=r}})}function Wt(e){`syncDevices`in e&&e.syncDevices(eu.value)}e(()=>M.rev,e=>{let t=F.value;!t||!M.loaded||e===0||(t.hydrate(G(),Object.values(M.layouts),eu.value),Kt())});function Gt(e){if(!e||!(`applySceneLayouts`in e))return;let t=e;t.applySceneLayouts(Object.values(M.layouts)),t.rebuild(G())}function Kt(){M.load().finally(()=>{})}function qt(e){let t=F.value;t&&(typeof e.posX==`number`&&typeof e.posZ==`number`&&t.focusTo(e.posX,e.posZ),t.setSelected?.({kind:`device`,id:e.id}))}let Jt=h({});function Yt(){if(!(typeof localStorage>`u`))try{let e=JSON.parse(localStorage.getItem(Pl)||`{}`);for(let t of Object.keys(e))e[t]&&Number.isFinite(e[t].x)&&(Jt[t]=e[t])}catch{}}function Xt(){try{localStorage.setItem(Pl,JSON.stringify(Jt))}catch{}}let Zt=null;function Qt(e,t){let n=e.currentTarget,r=n.closest(`.drag-panel`),i=n.closest(`.town-frame`);if(!r||!i)return;e.preventDefault();let a=r.getBoundingClientRect(),o=i.getBoundingClientRect();r.style.left=`${a.left-o.left}px`,r.style.top=`${a.top-o.top}px`,r.style.bottom=`auto`,r.style.transform=`none`,Jt[t]={x:a.left-o.left,y:a.top-o.top},Zt={frame:i,panel:r,offX:e.clientX-a.left,offY:e.clientY-a.top},document.body.style.userSelect=`none`,document.body.style.cursor=`grabbing`;let s=e=>{let n=Zt;if(!n)return;let r=n.frame.getBoundingClientRect(),i=e.clientX-n.offX-r.left,a=e.clientY-n.offY-r.top,o=n.panel.offsetWidth,s=Math.max(-o+90,Math.min(i,r.width-30)),c=Math.max(4,Math.min(a,r.height-34));n.panel.style.left=`${s}px`,n.panel.style.top=`${c}px`,Jt[t]={x:s,y:c}},c=()=>{Zt=null,document.body.style.userSelect=``,document.body.style.cursor=``,window.removeEventListener(`pointermove`,s),window.removeEventListener(`pointerup`,c),Xt()};window.addEventListener(`pointermove`,s),window.addEventListener(`pointerup`,c)}Yt();let $t=y(null),en=e=>`#${e.toString(16).padStart(6,`0`)}`,tn=y(null),nn=m(()=>{let e=tn.value;return e?e.mode===`rebind`?a(`townView.kgz2nej193`,{p0:e.agentId?.slice(0,8)??a(`townView.k479op189`),p1:e.textureKey}):a(`townView.k5e2460194`,{p0:e.textureKey}):``}),rn=m(()=>{let e=L.value;if(!e||e.kind!==`agent`)return[];let t=Ul.get(e.id);if(!t||t.length===0)return[];let n=q.value.length?q.value[q.value.length-1]?.at??0:0;return t.filter(e=>e.at>n)}),an=m(()=>!L.value||L.value.kind!==`agent`?``:F.value?.getAgentName?.(L.value.id)??a(`townView.k3xdvm125`)),K=m(()=>{let e=L.value;if(!e||e.kind!==`agent`)return null;for(let t of Object.values(d.agents)){let n=(t??[]).find(t=>t.agentId===e.id);if(n)return n}return null}),on=m(()=>K.value?.role===`lead`?`Leader`:`Worker`),sn=m(()=>K.value?.role===`lead`?`LEADER`:`WORKER`),cn=m(()=>{let e=K.value?.state;return a(e===`busy`?`townView.k3n4l5f163`:e===`stopped`?`townView.k3n58d1164`:`townView.k3zcvb115`)}),q=C([]),ln=C(!1),un=new Map,dn=C(null),Ul=h(new Map);function Wl(e,t,n,r,i){let a=typeof r==`number`?r:r?Date.parse(String(r)):Date.now();if(!Number.isFinite(a)||a<=0)return;let o=Ul.get(e);o||(o=[],Ul.set(e,o));let s=o[o.length-1];s&&s.text===n&&Math.abs(a-s.at)<1500||(o.push({id:`live-${i??a}-${o.length}`,agentId:e,text:n,kind:t,at:a,live:!0}),o.length>Rl&&o.splice(0,o.length-Rl))}function Gl(){return typeof document>`u`?``:document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``}function Kl(e){for(let t of Object.keys(d.agents))if((d.agents[t]??[]).some(t=>t.agentId===e))return t}async function ql(e,t,n=!1){let r=un.get(e);if(!n&&r&&Date.now()-r.at<Ll){q.value=r.rows;return}ln.value=!0;try{let n=Gl(),r=`/api/workshop/channels/${t}/events?limit=500&excludeTypes=agent.delta`,i=await(await fetch(r,{headers:n?{authorization:`Bearer ${decodeURIComponent(n)}`}:{}})).json().catch(()=>null),a=i?.data?.items??(Array.isArray(i?.data)?i.data:[]),o=[];for(let t of a){let n=pe(t)?.bubble;if(!n||n.agentId!==e)continue;let r=t.at,i=typeof r==`number`?r:r?Date.parse(String(r)):0;o.push({id:`${String(t.seq??o.length)}-${o.length}`,agentId:n.agentId,text:n.text,kind:n.kind,at:i,live:!1})}o.sort((e,t)=>e.at-t.at),un.set(e,{rows:o,at:Date.now()}),q.value=o}catch{q.value=[]}finally{ln.value=!1}}function Jl(){let e=L.value;if(!e||e.kind!==`agent`)return;let t=Kl(e.id);t&&ql(e.id,t,!0)}e(()=>L.value,e=>{if(!e||e.kind!==`agent`){q.value=[];return}let t=Kl(e.id);t?ql(e.id,t):q.value=[]},{immediate:!0});let Yl=m(()=>{let e=L.value;if(!e||e.kind!==`agent`)return`#35e0a0`;let t=Kl(e.id);return t?be(t)??`#35e0a0`:`#35e0a0`});function Xl(e){switch(e){case`artifact`:return a(`townView.k3w9q9165`);case`delta`:return`……`;case`info`:return a(`townView.k44xa7166`);case`error`:return a(`townView.k3zbgf167`);default:return``}}function Zl(e){if(!e||!Number.isFinite(e)||e<=0)return`--:--:--`;let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}:${String(t.getSeconds()).padStart(2,`0`)}`}e(()=>q.value.length+rn.value.length,async()=>{await ee();let e=dn.value;e&&(e.scrollTop=e.scrollHeight)});let Ql=e=>Y.lines.find(t=>t.id===e)?.color,$l=m(()=>Y.nodes.map(e=>({id:e.id,workspaceId:``,name:e.name,modelRef:`dcw-${e.templateRef.startsWith(`dcw-`)?e.templateRef.slice(4):e.templateRef}`,boundAgentId:null,kind:`daq`,telemetry:{value:e.value??0},desired:{},controls:[],state:e.enabled?e.state===`error`?`alarm`:`running`:`offline`,posX:e.posX,posZ:e.posZ,lineId:e.lineId||void 0,lineColor:e.lineId?Ql(e.lineId):void 0,updatedAt:e.lastWriteAt??e.createdAt}))),eu=m(()=>[...O.twins.filter(e=>!bu(e)),...X.value,...$l.value]),tu=e=>eu.value.find(t=>t.id===e),nu=m(()=>Me.value&&Fe.value===0&&!eu.value.some(e=>typeof e.posX==`number`&&typeof e.posZ==`number`));function ru(e){return j(()=>{O.load().then(()=>{if(P.value===e){e.syncDevices(eu.value);for(let t of e.getDeviceNodes()){let n=tu(t.twinId);n&&e.updateDeviceNode(t.twinId,n.state,n.telemetry)}}})},5e3)}let iu=y([]),J=ke(),Y=Ae(),au=h(Y.templates.map(e=>({id:e.key,name:e.name,code:e.code,ch:e.ch,unit:e.unit,min:e.min,max:e.max,decimals:e.decimals,icon:e.icon})));e(()=>Y.templates,e=>{e?.length&&au.splice(0,au.length,...e.map(e=>({id:e.key,name:e.name,code:e.code,ch:e.ch,unit:e.unit,min:e.min,max:e.max,decimals:e.decimals,icon:e.icon})))},{immediate:!0,deep:!0});let ou=fn(`aw.twin.treeOpen`,{});function su(e){ou.value[e]=!ou.value[e]}let cu=m(()=>{let e=new Map;for(let t of J.nodes){let n=t.templateRef.startsWith(`daq-`)?t.templateRef.slice(4):t.templateRef,r=e.get(n)??[];r.push(t),e.set(n,r)}for(let t of e.values())t.sort((e,t)=>e.name.localeCompare(t.name,void 0,{numeric:!0}));return e}),lu=m(()=>{let e=new Map;for(let t of Y.nodes){let n=t.templateRef.startsWith(`dcw-`)?t.templateRef.slice(4):t.templateRef,r=e.get(n)??[];r.push(t),e.set(n,r)}for(let t of e.values())t.sort((e,t)=>e.name.localeCompare(t.name,void 0,{numeric:!0}));return e});async function uu(e){try{let t=(cu.value.get(e.id)?.length??0)+1;await J.createFromTemplate(`daq-${e.id}`,{name:`${e.name} ${String(t).padStart(2,`0`)}`}),ou.value[`daq:${e.id}`]=!0}catch(e){R.value=I(e)}}async function du(e){try{await Y.createFromTemplate(`dcw-${e.id}`,{}),ou.value[`dcw:${e.id}`]=!0}catch(e){R.value=I(e)}}function fu(e,t){e.dataTransfer&&(e.dataTransfer.setData(`application/x-aw-daq-node`,t.id),e.dataTransfer.setData(`text/plain`,t.id),e.dataTransfer.effectAllowed=`copy`)}function pu(e,t){e.dataTransfer&&(e.dataTransfer.setData(`application/x-aw-dcw-node`,t.id),e.dataTransfer.setData(`text/plain`,t.id),e.dataTransfer.effectAllowed=`copy`)}function mu(e){return!J.controller.running||!e.enabled||e.state===`offline`?`offline`:e.state===`alarm`?`alarm`:e.state===`warn`?`warn`:`running`}function hu(e){return!e.enabled||e.state===`error`?`offline`:`running`}let gu=h(Oe.map(e=>({id:e.key,name:e.name,code:e.code,ch:e.ch,unit:e.unit,base:e.base,amp:e.amp,min:e.min,max:e.max,decimals:e.decimals,icon:e.icon})));e(()=>J.templates,e=>{e?.length&&gu.splice(0,gu.length,...e.map(e=>({id:e.key,name:e.name,code:e.code,ch:e.ch,unit:e.unit,base:e.base,amp:e.amp,min:e.min,max:e.max,decimals:e.decimals,icon:e.icon})))},{immediate:!0,deep:!0});let _u=e=>{let t=e.startsWith(`daq-`)?e.slice(4):e;return gu.find(e=>e.id===t)},vu=e=>_u(e.templateRef);function yu(e){return!J.controller.running||!e.enabled?`offline`:e.state===`alarm`?`alarm`:`running`}let bu=e=>e.kind===`daq`||(e.modelRef??``).startsWith(`daq-`),X=m(()=>J.nodes.map(e=>({id:e.id,workspaceId:``,name:e.name,modelRef:`daq-${vu(e)?.id??`unknown`}`,boundAgentId:null,kind:`daq`,telemetry:{value:e.value??0},desired:{},controls:[],state:yu(e),posX:e.posX,posZ:e.posZ,lineId:e.lineId||void 0,lineColor:e.lineId?Ql(e.lineId):void 0,updatedAt:e.lastAt??e.createdAt}))),xu=C(0),Su=new Map,Cu=new Map,wu=null,Tu=!1;function Eu(){Tu||(Tu=!0,setTimeout(()=>{Tu=!1,xu.value++},200))}function Du(e){if(!e.nodeId||typeof e.value!=`number`||!Number.isFinite(e.value))return;let t=e.state??`ok`;Su.set(e.nodeId,{value:e.value,state:t,atMs:Date.parse(e.at??``)||Date.now()});let n=Cu.get(e.nodeId);n||(n=[],Cu.set(e.nodeId,n)),n.push(e.value),n.length>zl&&n.shift();let r=Au.get(e.nodeId);r&&r!==t&&ju(e.nodeId,r,t,e.value),r!==t&&Au.set(e.nodeId,t),Eu()}let Ou=m(()=>{xu.value;let e=new Map;for(let t of J.nodes){let n=vu(t);if(!n)continue;let r=Su.get(t.id),i=r&&(!t.lastAt||r.atMs>=Date.parse(t.lastAt)),a=i?r.value:t.value;if(a==null)continue;let o=i?r.state:t.state;e.set(t.id,{value:a,hist:Cu.get(t.id)??t.hist,phase:0,tpl:n,alarm:o===`alarm`})}return e}),ku=e=>e.value.toFixed(e.tpl.decimals),Au=new Map;function ju(e,t,n,r){let i=J.nodeById(e),o=i?vu(i):null,s=i?.deviceIds??(i?.deviceBindingId?[i.deviceBindingId]:[]),c=(s.length?s.map(e=>O.byId(e)?.name??e.slice(0,8)).join(` / `):null)??i?.name??e.slice(0,8),l=`${r?.toFixed(o?.decimals??2)??`--`} ${o?.unit??``}`;n===`alarm`?gf(a(`townView.k113fir9195`,{p0:c,p1:o?.ch??``,p2:l}),`crit`,c):n===`warn`?gf(a(`townView.k1knv89d196`,{p0:c,p1:o?.ch??``,p2:l}),`warn`,c):t!==`ok`&&n===`ok`&&gf(a(`townView.ksjancw197`,{p0:c,p1:o?.ch??``}),`info`,c)}e(()=>J.nodes.map(e=>`${e.id}:${e.state}`).join(`|`),()=>{for(let e of J.nodes){let t=Au.get(e.id);Au.set(e.id,e.state),!(!t||t===e.state)&&ju(e.id,t,e.state,e.value)}});function Mu(e){return Math.max(0,Math.ceil((Date.parse(e.expiresAt)-Date.now())/1e3))}let Nu=()=>{let e=document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``;return{"content-type":`application/json`,authorization:`Bearer ${decodeURIComponent(e)}`}},Pu=C([]),Fu=C(`dcw`),Iu=C(``),Lu=C(`auto`),Ru=C([]),zu=h({}),Bu=null;async function Vu(){let e=L.value?.id;if(!(L.value?.kind!==`agent`||!e))try{let t=await fetch(`/api/workshop/agent-tools/bindings?agentId=${encodeURIComponent(e)}`,{headers:Nu()}).then(e=>e.json());Pu.value=t.data?.bindings??[]}catch{}}async function Hu(){let e=L.value?.id;if(!(L.value?.kind!==`agent`||!e))try{let t=await fetch(`/api/workshop/agent-tools/approvals?agentId=${encodeURIComponent(e)}`,{headers:Nu()}).then(e=>e.json());Ru.value=t.data?.approvals??[]}catch{}}async function Uu(){!L.value?.id||!Iu.value||(await fetch(`/api/workshop/agent-tools/bindings`,{method:`POST`,headers:Nu(),body:JSON.stringify({agentId:L.value.id,nodeId:Iu.value,kind:Fu.value,mode:Lu.value})}),Iu.value=``,await Vu())}async function Wu(e){await fetch(`/api/workshop/agent-tools/bindings/${e}`,{method:`DELETE`,headers:Nu()}),await Vu()}async function Gu(e,t){await fetch(`/api/workshop/agent-tools/bindings/${e}`,{method:`PATCH`,headers:Nu(),body:JSON.stringify({mode:t})}),await Vu()}async function Ku(e,t){await fetch(`/api/workshop/agent-tools/approvals/${e}/decide`,{method:`POST`,headers:Nu(),body:JSON.stringify({approved:t,comment:zu[e]??``})}),Reflect.deleteProperty(zu,e),await Hu()}e(()=>L.value?.id,e=>{Bu&&=(clearInterval(Bu),null),L.value?.kind===`agent`&&e&&(Vu(),Hu(),Bu=j(()=>{Hu()},1e3))},{immediate:!0}),r(()=>{Bu&&clearInterval(Bu)});function qu(e){return e.kind===`dcw`?Y.nodeById(e.nodeId)?.name??e.nodeId:J.nodeById(e.nodeId)?.name??e.nodeId}let Ju=e=>J.nodeById(e)?.deviceIds?.[0]??J.nodeById(e)?.deviceBindingId??null,Yu=e=>e?J.nodes.filter(t=>(t.deviceIds??(t.deviceBindingId?[t.deviceBindingId]:[])).includes(e)).map(e=>e.id):[];function Xu(e,t){J.bindNode(e,t).catch(e=>{R.value=I(e)})}function Zu(e){J.bindNode(e,null).catch(e=>{R.value=I(e)})}function Qu(e,t,n){let r=null,i=n;for(let n of O.twins){if(bu(n)||typeof n.posX!=`number`||typeof n.posZ!=`number`)continue;let a=Math.hypot(n.posX-e,n.posZ-t);a<i&&(i=a,r=n)}return r}let $u=C(!1),ed=C(!1),td=C(420);function nd(e,t){let n=t.currentTarget,r=n?.closest(`.panel`);if(n&&r){let e=n.getBoundingClientRect().top-r.getBoundingClientRect().top-12;td.value=Math.max(160,Math.round(e))}e===`daq`?$u.value=!$u.value:ed.value=!ed.value}let rd=m(()=>{let e=L.value?.kind===`device`?L.value.id:``,t={};if(!e)return t;for(let n of J.nodes){if(n.deviceBindingId===e)continue;let r=vu(n);r&&(t[r.id]??=[]).push({id:n.id,name:n.name,tpl:r,devName:n.deviceBindingId?O.byId(n.deviceBindingId)?.name??null:null,placed:typeof n.posX==`number`})}return t}),id=m(()=>Object.values(rd.value).reduce((e,t)=>e+t.length,0));function ad(e){let t=L.value?.kind===`device`?L.value.id:``;t&&(Xu(e,t),$u.value=!1)}let od=new Map;function sd(e,t){let n=t;n?od.set(e,n):od.delete(e)}function cd(){for(let[e,t]of od){let n=Ou.value.get(e),r=t.getContext(`2d`);if(!n||!r)continue;let i=t.width,a=t.height;r.clearRect(0,0,i,a);let o=n.hist;if(o.length<2)continue;let s=o[0],c=o[0];for(let e of o)e<s&&(s=e),e>c&&(c=e);let l=Math.max(1e-6,c-s);r.strokeStyle=Bf(e),r.lineWidth=1.4,r.beginPath(),o.forEach((e,t)=>{let n=t/(o.length-1)*(i-2)+1,c=a-2-(e-s)/l*(a-4);t?r.lineTo(n,c):r.moveTo(n,c)}),r.stroke()}}e(()=>J.nodes.map(e=>`${e.id}:${e.posX??``}:${e.posZ??``}:${e.enabled}:${e.state}:${e.deviceBindingId??``}`).join(`|`),()=>{P.value&&Wt(P.value)}),e(()=>Y.nodes.map(e=>`${e.id}:${e.posX??``}:${e.posZ??``}:${e.enabled}:${e.deviceBindingId??``}:${e.value??``}`).join(`|`),()=>{P.value&&Wt(P.value)}),e(()=>J.nodes.map(e=>`${e.id}:${e.deviceBindingId??``}`).join(`|`),()=>{let e=F.value;!e||!(`syncDaqLinks`in e)||e.syncDaqLinks(J.nodes.filter(e=>e.deviceBindingId).map(e=>({daqId:e.id,deviceId:e.deviceBindingId})))});let ld=m(()=>L.value?.kind===`device`&&(ud.value?.modelRef||``).startsWith(`daq-`)),ud=m(()=>L.value?.kind===`device`?tu(L.value?.id)??null:null),dd=m(()=>{let e=L.value?.id;return e?Ou.value.get(e)??null:null}),fd=C(``),pd=m(()=>{let e=L.value?.id;return e?Yu(e).map(e=>{let t=tu(e),n=Ou.value.get(e),r=n?.tpl??_u(t?.modelRef??``);return{daqId:e,name:t?.name??e,ch:r?.ch??a(`townView.k1ef3cls168`),icon:r?.icon??`gateway`,value:n?ku(n):`--`,unit:n?.tpl.unit??r?.unit??``,color:Bf(e)}}):[]}),md=m(()=>{let e=L.value?.id;if(!e)return``;let t=Ju(e);return t?O.twins.find(e=>e.id===t)?.name??t.slice(0,8):``}),hd=e=>e?Y.nodes.filter(t=>t.deviceBindingId===e):[];function gd(e){let t=Y.nodeById(e);if(!t||!t.lineId)return null;let n=Y.lineStateOf(t.lineId);if(!n.active||!n.recipeId)return null;let r=Y.recipes.find(e=>e.id===n.recipeId);return r?r.params.find(t=>t.nodeId===e)??null:null}let _d=m(()=>{let e=L.value?.id;return e?hd(e).map(e=>{let t=e.templateRef.startsWith(`dcw-`)?e.templateRef.slice(4):e.templateRef,n=Y.templates.find(e=>e.key===t),r=gd(e.id);return{dcwId:e.id,name:e.name,ch:n?.ch??t,unit:e.unit,icon:n?.icon??`gateway`,value:e.value,state:e.state,decimals:e.decimals,gMin:e.min,gMax:e.max,rMin:r?.min??null,rMax:r?.max??null}}):[]});function vd(e){let t=gd(e.id);return t&&(t.min!=null||t.max!=null)?{lo:t.min??-1/0,hi:t.max??1/0,src:`recipe`}:{lo:e.min,hi:e.max,src:`global`}}function yd(e){let t=e.rMin??e.gMin,n=e.rMax??e.gMax;return!Number.isFinite(t)||!Number.isFinite(n)||n<=t||e.value==null?50:Math.min(100,Math.max(0,(e.value-t)/(n-t)*100))}let bd=h({}),xd=h({});function Sd(e){let t=bd[e.id];if(t==null||t===``)return;let n=vd(e);if(Number(t)<n.lo||Number(t)>n.hi){xd[e.id]=a(`townView.kbuyve5198`,{p0:n.src===`recipe`?a(`townView.kb251ac190`):a(`townView.k1iwj796179`),p1:Number.isFinite(n.lo)?n.lo:`-∞`,p2:Number.isFinite(n.hi)?n.hi:`+∞`});return}xd[e.id]=``,Y.write(e.id,Number(t)).then(t=>{t.ok||(xd[e.id]=t.message)}).catch(t=>{xd[e.id]=I(t)})}let Cd=e=>{let t=e.startsWith(`dcw-`)?e.slice(4):e;return au.find(e=>e.id===t)},wd=m(()=>{let e=L.value?.kind===`device`?L.value.id:``,t={};if(!e)return t;for(let n of Y.nodes){if(n.deviceBindingId===e)continue;let r=Cd(n.templateRef);r&&(t[r.id]??=[]).push({id:n.id,name:n.name,tpl:r,devName:n.deviceBindingId?O.byId(n.deviceBindingId)?.name??null:null,placed:typeof n.posX==`number`})}return t}),Td=m(()=>Object.values(wd.value).reduce((e,t)=>e+t.length,0));function Ed(e){let t=L.value?.kind===`device`?L.value.id:``;t&&(Y.bindNode(e,t).catch(e=>{R.value=I(e)}),ed.value=!1)}function Dd(e){Y.bindNode(e,null).catch(e=>{R.value=I(e)})}let Od=m(()=>L.value?.kind===`device`&&(tu(L.value?.id)?.modelRef??``).startsWith(`dcw-`)),Z=m(()=>{let e=L.value?.id;return e?Y.nodeById(e)??null:null}),kd=m(()=>{let e=Z.value;return e?vd(e):null}),Ad=m(()=>{let e=Z.value;return e?.deviceBindingId?O.twins.find(t=>t.id===e.deviceBindingId)?.name??e.deviceBindingId.slice(0,8):``}),jd=C(``);function Md(){let e=Z.value;!e||!jd.value||(Y.bindNode(e.id,jd.value).catch(e=>{R.value=I(e)}),jd.value=``)}function Nd(){let e=Z.value;e&&Y.bindNode(e.id,null).catch(e=>{R.value=I(e)})}function Pd(){let e=Z.value;e&&Sd(e)}function Fd(e){if(!e)return`--`;let t=vd(e);return`${Number.isFinite(t.lo)?t.lo:`-∞`} ~ ${Number.isFinite(t.hi)?t.hi:`+∞`} ${e.unit}`}function Id(e){if(!e)return``;let t=vd(e);return`${Number.isFinite(t.lo)?t.lo:``} ~ ${Number.isFinite(t.hi)?t.hi:``}`}let Q=m(()=>{let e=L.value?.id;return e?J.nodeById(e)??null:null}),Ld=C(null);e(Q,e=>{Ld.value=e?e.intervalMs??J.controller.defaultIntervalMs:null},{immediate:!0});function Rd(){let e=Q.value;!e||Ld.value==null||J.patchNode(e.id,{intervalMs:Math.max(120,Math.min(6e4,Math.round(Ld.value)))}).catch(e=>{R.value=I(e)})}function zd(e,t){let n=Number(t);Number.isFinite(n)&&J.patchNode(Q.value.id,{[e]:(e.startsWith(`warn`),n)}).catch(e=>{R.value=I(e)})}let Bd=C(!0);function Vd(e){let t=Ju(e)??e,n=tu(t);n&&(L.value={kind:`device`,id:t,scale:L.value?.scale??1,rotation:L.value?.rotation??0},ut.value=n.name)}let Hd=C(!1);function Ud(){Hd.value=!Hd.value,F.value?.setAutoOrbit(Hd.value)}function Wd(){let e=F.value,t=L.value;if(e){if(!t){R.value=a(`townView.k15tn2fh169`);return}if(t.kind===`device`){let n=e.getDeviceNodes().find(e=>e.twinId===t.id);n&&e.focusTo(n.x,n.z)}else{let n=e.getAgent(t.id);n&&e.focusTo(n.root.position.x,n.root.position.z)}}}let Gd=C({}),Kd=fn(`aw.twin.calloutNear`,1150),qd=m(()=>{let e={};for(let t of X.value){let n=Ou.value.get(t.id);if(!n)continue;let r={ch:n.tpl.ch,value:ku(n),unit:n.tpl.unit,alarm:n.alarm??!1};(e[t.id]??=[]).push(r);let i=Ju(t.id);i&&(e[i]??=[]).push(r)}return e}),Jd=m(()=>{let e={};for(let t of Y.nodes){if(!t.deviceBindingId)continue;let n=t.templateRef.startsWith(`dcw-`)?t.templateRef.slice(4):t.templateRef,r=Y.templates.find(e=>e.key===n),i=vd(t);(e[t.deviceBindingId]??=[]).push({id:t.id,ch:r?.ch??n,name:t.name,unit:t.unit,value:t.value,readValue:t.readValue,lastReadAt:t.lastReadAt,decimals:t.decimals,lo:i.lo,hi:i.hi,src:i.src})}return e}),Yd=C({pos:{x:0,y:0,z:0},target:{x:0,z:0},yaw:0,dolly:1}),Xd=m(()=>{if(!Bd.value)return[];let e=F.value;if(!e)return[];let t=e.getDeviceNodes(),n=tf.value?.clientWidth??1600,r=[];for(let e of X.value){let n=Ou.value.get(e.id);if(!n)continue;let i=Ju(e.id),a=i?t.find(e=>e.twinId===i):t.find(t=>t.twinId===e.id);if(!a)continue;let o=Gd.value[e.id];o&&r.push({t:e,st:n,anchor:a,pos:o})}let i=new Map(r.map(e=>[e.anchor.twinId,e.anchor.topY])),a=new Map;for(let e of r){let t=a.get(e.anchor.twinId)??[];t.push(e),a.set(e.anchor.twinId,t)}let o=[];for(let e of a.values()){e.sort((e,t)=>e.t.id<t.t.id?-1:1);let t=e[0],r=Math.hypot(Yd.value.pos.x-t.anchor.x,Yd.value.pos.y-(i.get(t.anchor.twinId)??60),Yd.value.pos.z-t.anchor.z)<Kd.value,a=Math.min(n-96,Math.max(96,t.pos.x));e.forEach((e,n)=>{let{lo:i,hi:s}=Df(e.st.tpl.min,e.st.tpl.max);o.push({id:e.t.id,x:a,y:t.pos.y-n*Bl,label:`${e.st.tpl.ch} · ${e.anchor.name||e.t.name}`,value:ku(e.st),unit:e.st.tpl.unit,lo:i,hi:s,warn:e.st.alarm??!1,near:r,leader:n===0})})}return o}),Zd=null,Qd=m(()=>O.twins.length),$d=m(()=>O.twins.filter(e=>e.state===`running`).length),ef=de(),tf=C(null),nf=C(`std`);function rf(e){nf.value=e.target.value,F.value?.setViewPreset(nf.value)}function af(){document.fullscreenElement?document.exitFullscreen():tf.value?.requestFullscreen?.()}let of=m(()=>O.twins.filter(e=>e.state===`idle`).length),sf=m(()=>O.twins.filter(e=>e.state===`alarm`).length),cf=m(()=>O.twins.filter(e=>e.state===`offline`).length),lf=m(()=>{let e=O.twins.length;if(!e)return 100;let t=$d.value+of.value;return Math.round(t/e*100)}),uf=m(()=>lf.value>=90?`#35e0a0`:lf.value>=60?`#f6c453`:`#ff6b6b`),df=C(null);function ff(){let e=df.value;if(!e)return;let t=e.getContext(`2d`);if(!t)return;let n=O.twins.length||1,r=[{n:$d.value,color:`#35e0a0`},{n:of.value,color:`#f6c453`},{n:sf.value,color:`#ff6b6b`},{n:cf.value,color:`#3a4a63`}];t.clearRect(0,0,118,118),t.lineWidth=12;let i=-Math.PI/2;for(let e of r){if(!e.n)continue;let r=e.n/n*Math.PI*2;t.beginPath(),t.strokeStyle=e.color,t.arc(59,59,48,i,i+r),t.stroke(),i+=r}}e(lf,()=>ff()),e(()=>O.twins.length,()=>ff()),i(()=>ff());let pf=C([]),mf=0,hf=[a(`townView.k3ng94k170`),a(`townView.k3mi2n0171`),a(`townView.k3ncnxl172`)];function gf(e,t=`warn`,n=`SYSTEM`){let r=new Date,i=[r.getHours(),r.getMinutes(),r.getSeconds()].map(e=>String(e).padStart(2,`0`)).join(`:`);pf.value.unshift({id:++mf,txt:e,src:n,time:i,state:0,level:t}),pf.value.length>30&&pf.value.pop()}let _f=m(()=>pf.value.filter(e=>e.state<2).length);function vf(e){let t=pf.value.find(t=>t.id===e);t&&(t.state=Math.min(2,t.state+1))}function yf(){pf.value=pf.value.map(e=>({...e,state:2}))}let bf=C(100),xf=fn(`aw.twin.fpsCap`,`60`),Sf=[{v:`60`,label:`60`},{v:`120`,label:`120`},{v:`0`,label:`∞`}];function Cf(e){xf.value=e,F.value?.setFpsCap(Number(e))}let wf=fn(`aw.twin.quality`,`auto`),Tf=[{v:`auto`,label:`townView.qualityAuto`},{v:`normal`,label:`townView.qualityNormal`},{v:`hd`,label:`townView.qualityHD`},{v:`ultra`,label:`townView.qualityUltra`}];function Ef(e){wf.value=e,F.value?.setQualityMode(e)}function Df(e,t){let n=bf.value/100,r=(e+t)/2;return{lo:r-(r-e)*n,hi:r+(t-r)*n}}let Of=C(!1);function kf(){Of.value=!Of.value,gf(Of.value?a(`townView.kb157zk173`):a(`townView.k1s9qzr9174`),Of.value?`crit`:`info`,`SYSTEM`)}let Af=C(1.12),jf=C(1);function Mf(e,t,n){return`${Math.min(100,Math.max(0,(e-t)/(n-t)*100)).toFixed(1)}%`}function Nf(e){Af.value=Number(e.target.value)/100,F.value?.setExposure(Af.value)}function Pf(e){jf.value=Number(e.target.value)/100,F.value?.setTerritoryOpacity(jf.value)}function Ff(){F.value?.resetView(),Af.value=1.12,jf.value=1,F.value?.setExposure(1.12),F.value?.setTerritoryOpacity(1)}function If(e){Rf.value={...Rf.value,[e]:!Rf.value[e]}}let Lf=C(null),Rf=C({}),zf=[`#35e0a0`,`#41c8f4`,`#f6c453`,`#a78bfa`,`#ff6b6b`,`#4dd0e1`],Bf=e=>zf[Math.abs(e.split(``).reduce((e,t)=>e*31+t.charCodeAt(0),7))%zf.length]??`#35e0a0`;function Vf(e,t){let n=Rf.value[e];return n==null?(t??X.value.findIndex(t=>t.id===e))<Vl:!n}let Hf=C(!1),Uf=m(()=>Math.max(X.value.length-Vl,0)),Wf=m(()=>Hf.value?X.value:X.value.slice(0,Vl));function Gf(){let e=Lf.value;if(!e)return;let t=Math.min(window.devicePixelRatio,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){i.setTransform(t,0,0,t,0,0),i.clearRect(0,0,n,r),i.strokeStyle=`rgba(29, 42, 66, 0.6)`,i.lineWidth=1;for(let e=1;e<4;e++){let t=r/4*e;i.beginPath(),i.moveTo(0,t),i.lineTo(n,t),i.stroke()}X.value.forEach((e,t)=>{if(!Vf(e.id,t))return;let a=Ou.value.get(e.id);if(!a)return;let o=Cu.get(e.id)??a.hist;if(o.length<2)return;let s=a.tpl.min,c=a.tpl.max;i.strokeStyle=Bf(e.id),i.lineWidth=1.6,i.beginPath(),o.forEach((e,t)=>{let a=t/119*n,o=r-(e-s)/(c-s)*(r-8)-4;t===0?i.moveTo(a,o):i.lineTo(a,o)}),i.stroke()})}}let Kf=null,qf=null,Jf=null,Yf=null,Xf=C(null),Zf=m(()=>Math.min(5,Math.max(.4,Yd.value.dolly))),$=null;function Qf(e){let t=e.clientWidth||220,n=e.clientHeight||148;return{s:t/(Hl*Zf.value),w:t,h:n}}function $f(){let e=Xf.value,t=$t.value,n=F.value;if(!e)return;let r=Math.min(window.devicePixelRatio||1,2),i=Qf(e);(e.width!==Math.round(i.w*r)||e.height!==Math.round(i.h*r))&&(e.width=Math.round(i.w*r),e.height=Math.round(i.h*r));let a=e.getContext(`2d`);if(!a)return;a.setTransform(r,0,0,r,0,0),a.fillStyle=`#060b13`,a.fillRect(0,0,i.w,i.h);let o=n?.getCameraPose(),s=o?o.target.x:Fl/2,c=o?o.target.z:Il/2,l=i.w/2/i.s,u=i.h/2/i.s,d=(e,t)=>({x:i.w/2+(e-s)*i.s,y:i.h/2+(t-c)*i.s}),f=(e,t,n=60)=>e>s-l-n&&e<s+l+n&&t>c-u-n&&t<c+u+n;a.fillStyle=`rgba(65,200,244,.10)`;for(let e=Math.floor((s-l)/250)*250;e<=s+l;e+=250)for(let t=Math.floor((c-u)/250)*250;t<=c+u;t+=250){let n=d(e,t);a.fillRect(n.x-1,n.y-1,1.6,1.6)}let p=d(0,0),m=d(Fl,Il);a.strokeStyle=`rgba(53,224,160,.35)`,a.lineWidth=1,a.strokeRect(p.x,p.y,m.x-p.x,m.y-p.y);for(let e of t?.blocks??[]){let t=e.x*Fl,n=e.y*Il;if(!f(t,n,400))continue;let r=d(t,n),o=Math.max(4,(e.rx??.03)*Fl*i.s),s=Math.max(3,(e.rz??.03)*Il*i.s);a.strokeStyle=en(e.color),a.globalAlpha=.6,a.lineWidth=1,a.beginPath(),a.ellipse(r.x,r.y,o,s,0,0,Math.PI*2),a.stroke(),a.globalAlpha=.08,a.fillStyle=en(e.color),a.fill(),a.globalAlpha=1}a.strokeStyle=`rgba(65,200,244,.28)`;let h=new Set(J.nodes.filter(e=>e.deviceBindingId).map(e=>e.id));for(let[e,n]of J.nodes.filter(e=>e.deviceBindingId).map(e=>[e.id,e.deviceBindingId])){let r=(t?.devices??[]).find(t=>t.twinId===e),i=(t?.devices??[]).find(e=>e.twinId===n);if(!r||!i)continue;let o=d(r.x*Fl,r.y*Il),s=d(i.x*Fl,i.y*Il);a.beginPath(),a.moveTo(o.x,o.y),a.lineTo(s.x,s.y),a.stroke()}let g=e=>e.x>=7&&e.x<=i.w-7&&e.y>=7&&e.y<=i.h-7?{...e,edge:!1}:{x:Math.min(i.w-7,Math.max(7,e.x)),y:Math.min(i.h-7,Math.max(7,e.y)),edge:!0};for(let e of t?.devices??[]){let t=g(d(e.x*Fl,e.y*Il));if(e.daq)a.globalAlpha=t.edge?.4:1,a.fillStyle=`#35e0a0`,a.beginPath(),a.arc(t.x,t.y,t.edge?1.8:2.4,0,7),a.fill(),!t.edge&&e.twinId&&h.has(e.twinId)&&(a.strokeStyle=`rgba(53,224,160,.5)`,a.beginPath(),a.arc(t.x,t.y,4.4,0,7),a.stroke());else{a.globalAlpha=t.edge?.4:1,a.fillStyle=en(e.color);let n=t.edge?3.6:5.2;a.fillRect(t.x-n/2,t.y-n/2,n,n)}a.globalAlpha=1}for(let e of t?.agents??[]){let t=g(d(e.x*Fl,e.y*Il));a.globalAlpha=t.edge?.35:1,a.fillStyle=en(e.color),a.beginPath(),a.arc(t.x,t.y,t.edge?1.6:2.2,0,7),a.fill(),a.globalAlpha=1}if(o){let e=Math.atan2(-Math.cos(o.yaw),-Math.sin(o.yaw)),t=Math.min(i.w,i.h)*.36;a.fillStyle=`rgba(65,200,244,.14)`,a.strokeStyle=`rgba(65,200,244,.5)`,a.lineWidth=1,a.beginPath(),a.moveTo(i.w/2,i.h/2),a.arc(i.w/2,i.h/2,t,e-.4,e+.4),a.closePath(),a.fill(),a.stroke();let n=d(o.pos.x,o.pos.z);n.x>4&&n.x<i.w-4&&n.y>4&&n.y<i.h-4&&(a.fillStyle=`rgba(255,255,255,.85)`,a.beginPath(),a.arc(n.x,n.y,2.4,0,7),a.fill())}a.fillStyle=`#fff`,a.beginPath(),a.arc(i.w/2,i.h/2,3,0,7),a.fill(),a.strokeStyle=`rgba(255,255,255,.4)`,a.beginPath(),a.arc(i.w/2,i.h/2,5.5,0,7),a.stroke()}function ep(e){F.value?.zoomBy(e.deltaY>0?.14:-.12)}function tp(e){$={lx:e.clientX,ly:e.clientY,moved:!1};try{e.target.setPointerCapture?.(e.pointerId)}catch{}}function np(e){let t=Xf.value,n=F.value;if(!$||!t||!n)return;let r=Qf(t),i=e.clientX-$.lx,a=e.clientY-$.ly;Math.abs(i)+Math.abs(a)>3&&($.moved=!0);let o=i/r.s,s=a/r.s;$.lx=e.clientX,$.ly=e.clientY,n.panWorldBy(o,s)}function rp(e){let t=Xf.value,n=F.value;if($&&!$.moved&&t&&n){let r=t.getBoundingClientRect(),i=Qf(t),a=n.getCameraPose(),o=a.target.x+(e.clientX-r.left-r.width/2)/i.s,s=a.target.z+(e.clientY-r.top-r.height/2)/i.s;n.focusTo(o,s)}$=null}function ip(){let e=P.value;e?.getMinimapState&&($t.value=e.getMinimapState()),$f();let t=F.value;if(t&&(Yd.value=t.getCameraPose(),Bd.value)){let e=t.getDeviceNodes(),n=tf.value?.getBoundingClientRect(),r={};for(let i of X.value){let a=Ju(i.id),o=a?e.find(e=>e.twinId===a):e.find(e=>e.twinId===i.id);if(!o)continue;let s=t.worldToScreen(o.x,(o.topY??92)+26,o.z);s&&n&&(r[i.id]={x:s.x-n.left,y:s.y-n.top})}Gd.value=r}}function ap(){if(document.hidden){Kf&&=(clearInterval(Kf),null),Yf&&=(clearInterval(Yf),null),qf&&=(clearInterval(qf),null);return}Kf||=j(ip,150),Yf||=j(()=>{J.nodes.length&&(Gf(),cd())},200),qf||=j(()=>{let e=P.value;e?.getRecentActivity&&(iu.value=e.getRecentActivity())},400)}return i(()=>{window.addEventListener(`keydown`,Ge),document.addEventListener(`visibilitychange`,ap),J.ensureWsFeed(),J.load(),wu=ue().subscribe(e=>{e.type===`daq.reading`&&Du(e.payload)}),Y.ensureWsFeed(),Y.load(),Kf=j(ip,150),Yf=j(()=>{J.nodes.length&&(Gf(),cd())},200),qf=j(()=>{let e=P.value;e?.getRecentActivity&&(iu.value=e.getRecentActivity())},400)}),r(()=>{window.removeEventListener(`keydown`,Ge);for(let e of Rt)try{e()}catch{}Rt.length=0,document.removeEventListener(`visibilitychange`,ap),Kf&&clearInterval(Kf),Yf&&clearInterval(Yf),qf&&clearInterval(qf),Jf&&clearInterval(Jf),Zd&&clearInterval(Zd),Kf=null,Yf=null,qf=null,Jf=null,Zd=null}),i(()=>{Mt();let e=G();e.length>0&&P.value&&P.value.rebuild(e)}),r(()=>{wu?.();let e=P._off;e?.(),F.value?.dispose(),F.value=null,Se.value?.destroy(!0),Se.value=null,P.value=null}),(e,t)=>{let r=rt,i=at,a=It;return s(),v(`div`,pn,[g(`header`,{class:c([`topnav`,{"sheet-on":E(N)}])},[g(`div`,mn,[t[55]||=re(`<svg class="brand-glyph" viewBox="0 0 32 32" fill="none" aria-hidden="true" data-v-3e78e101><path d="M16 2.5 27.5 9v14L16 29.5 4.5 23V9L16 2.5Z" stroke="#35e0a0" stroke-width="1.6" data-v-3e78e101></path><path d="M16 8.2 22.5 12v8L16 23.8 9.5 20v-8L16 8.2Z" stroke="#41c8f4" stroke-width="1.3" opacity=".85" data-v-3e78e101></path><circle cx="16" cy="16" r="2.4" fill="#35e0a0" data-v-3e78e101></circle><circle cx="25.5" cy="7.5" r="1.6" fill="#41c8f4" data-v-3e78e101></circle></svg>`,1),g(`div`,null,[t[54]||=g(`div`,{class:`brand-name`},[D(` DIGITAL `),g(`em`,null,`TWIN`)],-1),g(`div`,hn,` AGENTWORKSHOP · `+o(e.$t(`townView.klyi8yg127`)),1)])]),g(`nav`,{class:`nav-tabs`,"aria-label":e.$t(`townView.k1c9jyta001`)},[g(`div`,_n,[g(`button`,{class:c({on:E(z)===`browse`}),onClick:t[0]||=e=>E(z)===`edit`&&He()},o(e.$t(`townView.k48dwh027`)),3),g(`button`,{class:c({on:E(z)===`edit`}),onClick:t[1]||=e=>E(z)===`browse`&&He()},o(e.$t(`townView.k45eb0028`)),3)]),g(`button`,{class:`nav-action`,disabled:E(z)!==`edit`,title:E(z)===`edit`?`把全部设备的位置/朝向/缩放写入数据库`:`运行模式只读`,onClick:Ye},o(e.$t(`townView.k1b3bk8t029`)),9,vn),E(B)&&E(B).state!==`idle`?(s(),v(`span`,{key:0,class:c([`save-chip`,`s-${E(B).state}`])},o(E(Ve)),3)):x(``,!0)],8,gn),g(`div`,yn,[g(`span`,{class:c([`nav-chip mono`,{"nav-bell-warn":E(_f)>0}]),title:e.$t(`townView.k1fsi3ir002`)},`◉ `+o(E(_f)),11,bn),g(`span`,xn,o(E(Ne))+` FPS`,1),g(`div`,{class:`avatar-chip nav-user`,title:e.$t(`townView.k1demf38003`)},[g(`div`,Cn,o((E(ef).user?.name??`OP`).slice(0,2).toUpperCase()),1),g(`span`,null,o(E(ef).user?.name||e.$t(`townView.k1pub99m139`)),1)],8,Sn),g(`button`,{type:`button`,class:c([`sheet-btn`,{on:E(N)===`left`}]),"aria-controls":`town-rail-left`,"aria-expanded":E(N)===`left`?`true`:`false`,title:e.$t(`townView.k1k75lzy030`),onClick:t[2]||=e=>_e(`left`)},[t[56]||=g(`svg`,{class:`sheet-ico`,viewBox:`0 0 24 24`,"aria-hidden":`true`},[g(`path`,{d:`M4 6h16M4 12h11M4 18h16`})],-1),g(`span`,Tn,o(e.$t(`townView.k1k75lzy030`)),1)],10,wn),g(`button`,{type:`button`,class:c([`sheet-btn`,{on:E(N)===`right`}]),"aria-controls":`town-rail-right`,"aria-expanded":E(N)===`right`?`true`:`false`,title:e.$t(`townView.k17dkhgd112`),onClick:t[3]||=e=>_e(`right`)},[t[57]||=g(`svg`,{class:`sheet-ico`,viewBox:`0 0 24 24`,"aria-hidden":`true`},[g(`path`,{d:`M20 6H4M20 12H9M20 18H4`})],-1),g(`span`,Dn,o(e.$t(`townView.k17dkhgd112`)),1)],10,En)])],2),g(`div`,On,[g(`aside`,{id:`town-rail-left`,class:c([`rail rail-left`,{"sheet-open":E(N)===`left`}])},[g(`div`,kn,[t[58]||=g(`span`,{class:`sheet-grip`,"aria-hidden":`true`},null,-1),g(`span`,An,o(e.$t(`townView.k1k75lzy030`)),1),g(`button`,{type:`button`,class:`sheet-x`,"aria-label":`关闭`,onClick:ve},` ✕ `)]),g(`section`,jn,[g(`div`,Mn,[g(`h3`,null,o(e.$t(`townView.k1k75lzy030`)),1),g(`span`,Nn,o(E(lt).length),1)]),f(r,{class:`lib-embed`})]),g(`section`,Pn,[g(`div`,Fn,[g(`h3`,null,o(e.$t(`townView.k2gwyas031`)),1),g(`span`,In,o(E(X).length),1)]),g(`div`,Ln,[g(`button`,{class:c([`daq-ctl-btn`,{on:E(J).controller.running}]),title:E(J).controller.running?`暂停全部采集:停止所有启用节点的采样(节点级启停独立)`:`恢复全部采集:仅启用节点恢复采集(手动停用的保持停用)`,onClick:t[4]||=e=>E(J).controllerAction(E(J).controller.running?`pause`:`resume`)},o(E(J).controller.running?e.$t(`townView.k3w3j8f140`):e.$t(`townView.k3n93ed175`)),11,Rn),g(`label`,{class:`daq-ctl-cycle mono`,title:e.$t(`townView.khzlyf5004`)},[D(o(e.$t(`townView.k3xg3w032`))+` `,1),g(`input`,{type:`number`,min:`200`,max:`60000`,step:`100`,value:E(J).controller.defaultIntervalMs,onChange:t[5]||=e=>E(J).controllerAction(`config`,Number(e.target.value))},null,40,Bn),t[59]||=D(`ms `,-1)],8,zn)]),g(`div`,Vn,[(s(!0),v(b,null,l(E(gu),n=>(s(),v(`div`,{key:n.id,class:`daq-group`},[g(`div`,{class:c([`daq-card tpl`,{open:!!E(ou)[`daq:${n.id}`]}]),role:`button`,tabindex:`0`,title:e.$t(`townView.k2tplxp0001`,{p0:n.name,p1:n.ch,p2:n.min,p3:n.max,p4:n.unit}),onClick:e=>su(`daq:${n.id}`),onKeydown:ie(ae(e=>su(`daq:${n.id}`),[`prevent`]),[`enter`])},[t[60]||=g(`span`,{class:`daq-caret`},`▶`,-1),g(`span`,Un,[f(i,{class:`daq-svg`,icon:n.icon},null,8,[`icon`])]),g(`div`,Wn,[g(`span`,Gn,o(n.name),1),g(`span`,Kn,o(n.code),1)]),E(z)===`edit`?(s(),v(`button`,{key:0,class:`daq-add`,title:e.$t(`townView.k2tplxp0002`,{p0:n.name}),onClick:ae(e=>uu(n),[`stop`])},` + `,8,qn)):x(``,!0),g(`span`,Jn,`×`+o(E(cu).get(n.id)?.length??0),1)],42,Hn),E(ou)[`daq:${n.id}`]?(s(),v(`div`,Yn,[(s(!0),v(b,null,l(E(cu).get(n.id)??[],t=>(s(),v(`div`,{key:t.id,class:c([`daq-node`,{placed:typeof t.posX==`number`}]),draggable:E(z)===`edit`,title:typeof t.posX==`number`?e.$t(`townView.k2tplxp0005`):e.$t(`townView.k2tplxp0006`),onDragstart:e=>fu(e,t),onClick:e=>typeof t.posX==`number`&&qt({id:t.id,posX:t.posX,posZ:t.posZ})},[g(`span`,{class:c([`node-dot`,mu(t)])},null,2),g(`div`,Zn,[g(`span`,Qn,o(t.name),1),g(`span`,$n,[g(`span`,er,o(t.value==null?`--`:`${t.value.toFixed(n.decimals)} ${n.unit}`),1),g(`span`,tr,o(t.deviceBindingId?E(O).byId(t.deviceBindingId)?.name??e.$t(`townView.k3own4q148`):e.$t(`townView.k3own4q148`)),1)])]),typeof t.posX==`number`?(s(),v(`span`,nr,`✓`)):x(``,!0)],42,Xn))),128)),E(cu).get(n.id)?.length?x(``,!0):(s(),v(`div`,rr,o(e.$t(`townView.k2tplxp0003`)),1))])):x(``,!0)]))),128))])]),g(`section`,ir,[g(`div`,ar,[g(`h3`,null,o(e.$t(`townView.km7ayhi033`)),1),g(`span`,or,o(E(Y).nodes.length),1)]),g(`div`,sr,[(s(!0),v(b,null,l(E(au),n=>(s(),v(`div`,{key:n.id,class:`daq-group`},[g(`div`,{class:c([`daq-card tpl`,{open:!!E(ou)[`dcw:${n.id}`]}]),role:`button`,tabindex:`0`,title:e.$t(`townView.k2tplxp0001`,{p0:n.name,p1:n.ch,p2:n.min,p3:n.max,p4:n.unit}),onClick:e=>su(`dcw:${n.id}`),onKeydown:ie(ae(e=>su(`dcw:${n.id}`),[`prevent`]),[`enter`])},[t[61]||=g(`span`,{class:`daq-caret`},`▶`,-1),g(`span`,lr,[f(i,{class:`daq-svg`,icon:n.icon},null,8,[`icon`])]),g(`div`,ur,[g(`span`,dr,o(n.name),1),g(`span`,fr,o(n.code),1)]),E(z)===`edit`?(s(),v(`button`,{key:0,class:`daq-add`,title:e.$t(`townView.k2tplxp0002`,{p0:n.name}),onClick:ae(e=>du(n),[`stop`])},` + `,8,pr)):x(``,!0),g(`span`,mr,`×`+o(E(lu).get(n.id)?.length??0),1)],42,cr),E(ou)[`dcw:${n.id}`]?(s(),v(`div`,hr,[(s(!0),v(b,null,l(E(lu).get(n.id)??[],t=>(s(),v(`div`,{key:t.id,class:c([`daq-node`,{placed:typeof t.posX==`number`}]),draggable:E(z)===`edit`,title:typeof t.posX==`number`?e.$t(`townView.k2tplxp0005`):e.$t(`townView.k2tplxp0006`),onDragstart:e=>pu(e,t),onClick:e=>typeof t.posX==`number`&&qt({id:t.id,posX:t.posX,posZ:t.posZ})},[g(`span`,{class:c([`node-dot`,hu(t)])},null,2),g(`div`,_r,[g(`span`,vr,o(t.name),1),g(`span`,yr,[g(`span`,br,o(t.value==null?`--`:`${t.value.toFixed(n.decimals)} ${n.unit}`),1),g(`span`,xr,o(t.deviceBindingId?E(O).byId(t.deviceBindingId)?.name??e.$t(`townView.k3own4q148`):e.$t(`townView.k3own4q148`)),1)])]),typeof t.posX==`number`?(s(),v(`span`,Sr,`✓`)):x(``,!0)],42,gr))),128)),E(lu).get(n.id)?.length?x(``,!0):(s(),v(`div`,Cr,o(e.$t(`townView.k2tplxp0003`)),1))])):x(``,!0)]))),128))])]),g(`section`,wr,[g(`div`,Tr,[g(`h3`,null,o(e.$t(`townView.k1c9n911034`)),1),g(`span`,Er,o(E(Et).length),1)]),g(`div`,Dr,[(s(!0),v(b,null,l(E(Et),t=>(s(),v(`div`,{key:t.channelId,class:c([`scene-row`,{active:t.placed}]),draggable:!t.placed&&E(z)===`edit`,"data-channel-id":t.channelId,title:t.placed?`已在场景中,点击定位`:`拖拽到场景放置`,onDragstart:e=>t.placed?void 0:At(e,t.channelId),onClick:e=>ot(t)},[g(`span`,{class:`scene-ico`,style:n({"--ch":t.color})},null,4),g(`div`,kr,[g(`span`,Ar,o(t.name),1),g(`span`,jr,o(t.agentCount)+` `+o(e.$t(`townView.k1brss7t128`))+` `+o(t.placed?e.$t(`townView.k3n94g3141`):e.$t(`townView.k3os7i3176`)),1)]),t.placed?(s(),v(`span`,Mr,`✓`)):(s(),v(`span`,Nr,`+`))],42,Or))),128)),E(it)?(s(),v(`div`,Pr,o(E(it)),1)):x(``,!0)])])],2),g(`main`,Fr,[g(`div`,{ref_key:`stageRef`,ref:tf,class:`stage`},[g(`div`,{id:`town-host`,ref_key:`hostRef`,ref:xe,class:`town-host`},null,512),t[77]||=g(`div`,{class:`stage-vignette`},null,-1),g(`div`,Ir,[g(`div`,Lr,[g(`h2`,null,o(e.$t(`townView.k1b0z4vr035`)),1),g(`span`,Rr,`CH · `+o(E(ze)||e.$t(`townView.k3lkuz3142`)),1)]),g(`div`,zr,[g(`button`,{class:`vp-tool`,title:e.$t(`townView.k18d6wnb005`),onClick:Wd},[...t[62]||=[g(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[g(`circle`,{cx:`12`,cy:`12`,r:`7`}),g(`path`,{d:`M12 2v4M12 18v4M2 12h4M18 12h4`})],-1)]],8,Br),g(`button`,{class:c([`vp-tool`,{on:E(Hd)}]),title:e.$t(`townView.k1io51dn006`),onClick:Ud},[...t[63]||=[g(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[g(`circle`,{cx:`12`,cy:`12`,r:`3.2`}),g(`path`,{d:`M20.5 9a10 10 0 0 1 .3 4.5M3.5 15a10 10 0 0 1-.3-4.5`})],-1)]],10,Vr),g(`button`,{class:c([`vp-tool`,{on:E(Bd)}]),title:e.$t(`townView.k1sgjlq8007`),onClick:t[6]||=e=>Bd.value=!E(Bd)},[...t[64]||=[g(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[g(`path`,{d:`M4 8h12l4 4-4 4H4z`}),g(`circle`,{cx:`8.5`,cy:`12`,r:`1.4`})],-1)]],10,Hr),g(`button`,{class:`vp-tool`,title:e.$t(`townView.k3wuf0008`),onClick:af},[...t[65]||=[g(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[g(`path`,{d:`M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5`})],-1)]],8,Ur)])]),g(`div`,Wr,[g(`select`,{value:E(nf),"aria-label":e.$t(`townView.k1k4j5i7009`),onChange:t[7]||=e=>rf(e)},[g(`option`,Kr,o(e.$t(`townView.kv72860036`)),1),t[66]||=g(`option`,{value:`top`},` 俯视 · TOP `,-1),t[67]||=g(`option`,{value:`front`},` 前视 · FRONT `,-1),t[68]||=g(`option`,{value:`side`},` 侧视 · SIDE `,-1)],40,Gr)]),E(Bd)?(s(),v(b,{key:0},[(s(),v(`svg`,qr,[(s(!0),v(b,null,l(E(Xd),e=>S((s(),v(`g`,{key:`ld-${e.id}`,class:c({near:e.near})},[g(`path`,{d:`M ${e.x} ${e.y-8} L ${e.x} ${e.y-2}`,stroke:e.warn?`rgba(246,196,83,.8)`:`rgba(65,200,244,.55)`,"stroke-width":`1.3`,fill:`none`},null,8,Jr),g(`circle`,{cx:e.x,cy:e.y,r:`2.6`,fill:e.warn?`#f6c453`:`#41c8f4`},null,8,Yr)],2)),[[se,e.leader]])),128))])),g(`div`,Xr,[(s(!0),v(b,null,l(E(Xd),r=>(s(),v(`div`,{key:r.id,class:c([`callout`,{warn:r.warn,near:r.near}]),style:n({left:r.x+`px`,top:r.y+`px`}),title:e.$t(`townView.k1ejxiwp010`),onClick:e=>Vd(r.id)},[g(`div`,Qr,[t[69]||=g(`span`,{class:`co-dot`},null,-1),D(o(r.label),1)]),g(`div`,$r,[D(o(r.value),1),g(`small`,null,o(r.unit),1)]),g(`div`,ei,o(e.$t(`townView.k1faqmjb073`))+` `+o(r.lo.toFixed(Math.min(2,(String(r.lo).split(`.`)[1]??``).length+1)))+` – `+o(r.hi.toFixed(Math.min(2,(String(r.hi).split(`.`)[1]??``).length+1))),1)],14,Zr))),128))])],64)):x(``,!0),g(`div`,ti,[g(`div`,ni,[t[70]||=g(`span`,{class:`kpi-ico c1`},[g(`svg`,{class:`kpi-svg`,viewBox:`0 0 24 24`},[g(`path`,{d:`M4 8.5 12 4l8 4.5v7L12 20l-8-4.5v-7Z`}),g(`path`,{d:`M4 8.5l8 4.5 8-4.5M12 13v7`})])],-1),g(`div`,ri,[g(`div`,ii,o(e.$t(`townView.k1k6xemt037`)),1),g(`div`,ai,[D(o(E(Qd)),1),g(`small`,null,o(e.$t(`townView.k49lh038`)),1)])])]),g(`div`,oi,[t[71]||=g(`span`,{class:`kpi-ico c2`},[g(`svg`,{class:`kpi-svg`,viewBox:`0 0 24 24`},[g(`path`,{d:`m5 12.5 4.5 4.5L19 7.5`})])],-1),g(`div`,si,[g(`div`,ci,o(e.$t(`townView.k1l1a9t2039`)),1),g(`div`,li,[D(o(E($d)),1),g(`small`,null,o(e.$t(`townView.k49lh038`)),1)])])]),g(`div`,ui,[t[72]||=g(`span`,{class:`kpi-ico c3`},[g(`svg`,{class:`kpi-svg`,viewBox:`0 0 24 24`},[g(`path`,{d:`M12 3 22 20H2L12 3Z`}),g(`path`,{d:`M12 10v4M12 17v.2`})])],-1),g(`div`,di,[g(`div`,fi,o(e.$t(`townView.k1fsi3ir002`)),1),g(`div`,pi,[D(o(E(_f)),1),g(`small`,null,o(e.$t(`townView.k4dfq040`)),1)])])]),g(`div`,mi,[t[73]||=re(`<span class="kpi-ico c4" data-v-3e78e101><svg class="kpi-svg" viewBox="0 0 24 24" data-v-3e78e101><path d="M9.5 14.5 14.5 9.5" data-v-3e78e101></path><path d="M11 6.5 12.8 4.7a4 4 0 0 1 5.6 5.6L16.5 12" data-v-3e78e101></path><path d="m13 17.5-1.8 1.8a4 4 0 0 1-5.6-5.6L7.5 12" data-v-3e78e101></path></svg></span>`,1),g(`div`,hi,[g(`div`,gi,o(e.$t(`townView.k1emsai1041`)),1),g(`div`,_i,[D(o(E(X).length),1),g(`small`,null,o(e.$t(`townView.k4l1w042`)),1)])])]),g(`div`,vi,[t[75]||=re(`<span class="kpi-ico c5" data-v-3e78e101><svg class="kpi-svg" viewBox="0 0 24 24" data-v-3e78e101><path d="M5 19a9 9 0 1 1 14 0" data-v-3e78e101></path><path d="M12 13l3.5-3.5" data-v-3e78e101></path><circle cx="12" cy="13" r="1.4" data-v-3e78e101></circle></svg></span>`,1),g(`div`,yi,[g(`div`,bi,o(e.$t(`townView.kbrxdq1043`)),1),g(`div`,xi,[D(o(E(lf)),1),t[74]||=g(`small`,null,`%`,-1)])])])]),E(nu)?(s(),v(`div`,Si,[g(`b`,null,o(e.$t(`townView.k3rwxjc044`)),1),g(`span`,null,o(e.$t(`townView.k1sa1eaj045`)),1)])):x(``,!0),E(V)&&E(H)?(s(),v(`div`,{key:2,class:`boundary-panel drag-panel`,style:n(E(Jt).boundary?{left:E(Jt).boundary.x+`px`,top:E(Jt).boundary.y+`px`,bottom:`auto`,transform:`none`}:void 0)},[g(`div`,{class:`bp-title drag-grip`,title:e.$t(`townView.k1d0rl5z011`),onPointerdown:t[10]||=e=>Qt(e,`boundary`)},[g(`span`,wi,o(E(d).channels[E(V)]?.name??E(V).slice(0,8)),1),g(`span`,Ti,o(e.$t(`townView.k1mehlxs046`)),1),g(`div`,Ei,[g(`button`,{class:c([`bp-tab`,{on:E(xt)===`boundary`}]),onClick:t[8]||=e=>wt(`boundary`)},o(e.$t(`townView.k489ka047`)),3),g(`button`,{class:c([`bp-tab`,{on:E(xt)===`members`}]),onClick:t[9]||=e=>wt(`members`)},o(e.$t(`townView.k3ztf1129`))+` `+o(E(St).length),3)])],40,Ci),E(xt)===`boundary`?(s(),v(b,{key:0},[g(`div`,Di,[g(`span`,Oi,o(e.$t(`townView.k3zhy5048`)),1),g(`div`,ki,[g(`button`,{class:c([`seg-btn`,{on:E(H).shape===`ellipse`}]),onClick:t[11]||=e=>{E(H).shape=`ellipse`,nt()}},o(e.$t(`townView.k414bc049`)),3),g(`button`,{class:c([`seg-btn`,{on:E(H).shape===`rect`}]),onClick:t[12]||=e=>{E(H).shape=`rect`,nt()}},o(e.$t(`townView.k43u0g050`)),3)])]),g(`div`,Ai,[g(`span`,ji,o(e.$t(`townView.k1fbz4s1051`)),1),S(g(`input`,{"onUpdate:modelValue":t[13]||=e=>E(H).radiusX=e,class:`bp-range`,type:`range`,min:`80`,max:`4000`,step:`8`,style:n({"--fill":Mf(E(H).radiusX,80,4e3)}),onChange:nt},null,36),[[A,E(H).radiusX,void 0,{number:!0}]]),g(`span`,Mi,o(Math.round(E(H).radiusX)),1)]),g(`div`,Ni,[g(`span`,Pi,o(e.$t(`townView.k1ighwgs052`)),1),S(g(`input`,{"onUpdate:modelValue":t[14]||=e=>E(H).radiusZ=e,class:`bp-range`,type:`range`,min:`60`,max:`4000`,step:`8`,style:n({"--fill":Mf(E(H).radiusZ,60,4e3)}),onChange:nt},null,36),[[A,E(H).radiusZ,void 0,{number:!0}]]),g(`span`,Fi,o(Math.round(E(H).radiusZ)),1)]),g(`div`,Ii,[g(`span`,Li,o(e.$t(`townView.k40qab053`)),1),S(g(`input`,{"onUpdate:modelValue":t[15]||=e=>E(H).rotationY=e,class:`bp-range`,type:`range`,min:`0`,max:`360`,step:`5`,style:n({"--fill":Mf(E(H).rotationY??0,0,360)}),onChange:nt},null,36),[[A,E(H).rotationY,void 0,{number:!0}]]),g(`span`,Ri,o(Math.round(E(H).rotationY??0))+`°`,1)])],64)):(s(),v(b,{key:1},[g(`div`,zi,o(e.$t(`townView.kimxls2054`)),1),g(`div`,Bi,[(s(!0),v(b,null,l(E(St),e=>(s(),v(`div`,{key:e.agentId,class:`member-row`},[g(`span`,{class:`member-ava`,style:n({color:kt(E(V))})},o(e.name.charAt(0).toUpperCase()),5),g(`div`,Vi,[g(`span`,Hi,o(e.name),1),g(`span`,{class:c([`member-role`,e.role===`lead`?`r-lead`:`r-worker`])},o(e.role===`lead`?`Leader`:`Worker`),3)]),g(`select`,{class:`member-select`,value:(e.modelRef??``)||`hero-3d`,onChange:t=>Ct(e.agentId,t.target.value)},[(s(!0),v(b,null,l(E(ct),e=>(s(),v(`option`,{key:e.id,value:e.id},o(e.name),9,Wi))),128))],40,Ui)]))),128)),E(St).length===0?(s(),v(`div`,Gi,o(e.$t(`townView.k419rbs055`)),1)):x(``,!0)])],64)),g(`div`,Ki,[E(xt)===`boundary`?(s(),v(`button`,{key:0,class:`bp-btn save`,onClick:et},o(e.$t(`townView.k1b3kp8f056`)),1)):x(``,!0),g(`button`,{class:`bp-btn danger`,onClick:tt},o(e.$t(`townView.k1hs45qg057`)),1),g(`button`,{class:`bp-btn`,onClick:t[16]||=e=>$e(null)},o(e.$t(`townView.k3x62t058`)),1)])],4)):x(``,!0),E(nn)?(s(),v(`div`,qi,o(E(nn)),1)):x(``,!0),E(R)?(s(),v(`div`,Ji,o(E(R)),1)):x(``,!0),E(Me)?x(``,!0):(s(),v(`div`,Yi,[t[76]||=g(`div`,{class:`loading-spinner`},null,-1),g(`span`,Xi,o(e.$t(`townView.kvjdqfg059`)),1)]))],512),g(`div`,{class:c([`dock`,{"dock-open":E(ge)}])},[g(`button`,{type:`button`,class:`dock-toggle`,"aria-controls":`town-dock-controls`,"aria-expanded":E(ge)?`true`:`false`,onClick:t[17]||=e=>ge.value=!E(ge)},[g(`span`,Qi,o(e.$t(`townView.k1c9iq23060`)),1),g(`span`,$i,o(E(z)===`edit`?e.$t(`townView.k1iipfcs143`):e.$t(`townView.k1l147w1177`)),1),t[78]||=g(`span`,{class:`dock-caret`,"aria-hidden":`true`},`▾`,-1)],8,Zi),g(`section`,ea,[g(`div`,ta,[g(`h3`,null,o(e.$t(`townView.k1c9iq23060`)),1),g(`span`,na,o(E(z)===`edit`?e.$t(`townView.k1iipfcs143`):e.$t(`townView.k1l147w1177`)),1)]),g(`p`,ra,o(e.$t(`townView.secRender`)),1),g(`div`,ia,[g(`span`,{class:`ctl-name`,title:e.$t(`townView.qualityTip`)},o(e.$t(`townView.qualityLabel`)),9,aa),g(`div`,oa,[(s(),v(b,null,l(Tf,t=>g(`button`,{key:t.v,class:c({on:E(wf)===t.v}),onClick:e=>Ef(t.v)},o(e.$t(t.label)),11,sa)),64))]),t[79]||=g(`span`,{class:`ctl-val`},null,-1)]),g(`div`,ca,[g(`span`,{class:`ctl-name`,title:e.$t(`townView.fpsCapTip`)},o(e.$t(`townView.fpsCapLabel`)),9,la),g(`div`,ua,[(s(),v(b,null,l(Sf,e=>g(`button`,{key:e.v,class:c({on:E(xf)===e.v}),onClick:t=>Cf(e.v)},o(e.label),11,da)),64))]),t[80]||=g(`span`,{class:`ctl-val`},null,-1)]),g(`p`,fa,o(e.$t(`townView.secEnv`)),1),g(`div`,pa,[g(`span`,ma,o(e.$t(`townView.k1gizopz061`)),1),g(`input`,{class:`ctl-range`,type:`range`,min:`30`,max:`220`,value:Math.round(E(Af)*100),style:n({"--fill":Mf(Math.round(E(Af)*100),30,220)}),onInput:t[18]||=e=>Nf(e)},null,44,ha),g(`span`,ga,o(Math.round(E(Af)*100))+`%`,1)]),g(`div`,_a,[g(`span`,va,o(e.$t(`townView.k1bcpqto062`)),1),g(`input`,{class:`ctl-range`,type:`range`,min:`10`,max:`100`,value:Math.round(E(jf)*100),style:n({"--fill":Mf(Math.round(E(jf)*100),10,100)}),onInput:t[19]||=e=>Pf(e)},null,44,ya),g(`span`,ba,o(Math.round(E(jf)*100))+`%`,1)]),g(`div`,xa,[g(`span`,Sa,o(e.$t(`townView.k1bztha1063`)),1),g(`input`,{class:`ctl-range`,type:`range`,min:`60`,max:`120`,value:E(bf),style:n({"--fill":Mf(E(bf),60,120)}),onInput:t[20]||=e=>bf.value=Number(e.target.value)},null,44,Ca),g(`span`,wa,o(E(bf))+`%`,1)]),g(`div`,Ta,[g(`span`,{class:`ctl-name`,title:e.$t(`townView.kz71l1f012`)},o(e.$t(`townView.ka4i1s9064`)),9,Ea),g(`input`,{class:`ctl-range`,type:`range`,min:`0`,max:`3000`,step:`50`,value:E(Kd),style:n({"--fill":Mf(E(Kd),0,3e3)}),onInput:t[21]||=e=>Kd.value=Number(e.target.value)},null,44,Da),g(`span`,Oa,o(E(Kd)===0?e.$t(`townView.k493s144`):`${E(Kd)}`),1)]),g(`p`,ka,o(e.$t(`townView.secOps`)),1),g(`div`,Aa,[g(`span`,ja,o(e.$t(`townView.k1idc6pa065`)),1),g(`button`,{class:c([`snap-toggle`,{on:E(Be)}]),onClick:Ke},o(E(Be)?e.$t(`townView.k4bs5145`):e.$t(`townView.k493s144`)),3),t[81]||=g(`span`,{class:`ctl-val`},null,-1)]),g(`div`,Ma,[g(`button`,{class:`btn btn-primary`,onClick:Ff},o(e.$t(`townView.k1lap9bs024`)),1),g(`button`,{class:`btn btn-ghost`,disabled:E(z)!==`edit`,title:E(z)===`edit`?e.$t(`townView.ksavetip181`):e.$t(`townView.krotip182`),onClick:Ye},o(e.$t(`townView.k1b3bk8t029`)),9,Na),g(`button`,{class:c([`btn btn-danger`,{armed:E(Of)}]),onClick:kf},o(e.$t(`townView.k1i046wf066`)),3)])]),g(`section`,Pa,[g(`div`,Fa,[g(`h3`,null,o(e.$t(`townView.k1kfoef9067`)),1),g(`span`,Ia,o(E(X).length),1),g(`div`,{class:c([`trend-legend`,{expanded:E(Hf)}])},[(s(!0),v(b,null,l(E(Wf),e=>(s(),v(`button`,{key:e.id,class:c([`lg-chip`,{off:!Vf(e.id)}]),onClick:t=>If(e.id)},[g(`span`,{class:`lg-dot`,style:n({background:Bf(e.id)})},null,4),D(o(e.name),1)],10,La))),128)),E(Uf)>0?(s(),v(`button`,{key:0,class:`lg-chip lg-more mono`,title:E(Hf)?e.$t(`townView.trendCollapse`):e.$t(`townView.trendExpandAll`,{p0:E(X).length}),onClick:t[22]||=e=>Hf.value=!E(Hf)},o(E(Hf)?e.$t(`townView.trendCollapse`):`+${E(Uf)}`),9,Ra)):x(``,!0)],2)]),g(`div`,za,[g(`canvas`,{ref_key:`trendCanvas`,ref:Lf,class:`trend-cv`},null,512),E(X).length?x(``,!0):(s(),v(`span`,Ba,o(e.$t(`townView.k1uht2uv068`)),1))])])],2)]),g(`aside`,{id:`town-rail-right`,class:c([`rail rail-right`,{"sheet-open":E(N)===`right`}])},[g(`div`,Va,[t[82]||=g(`span`,{class:`sheet-grip`,"aria-hidden":`true`},null,-1),g(`span`,Ha,o(e.$t(`townView.k17dkhgd112`)),1),g(`button`,{type:`button`,class:`sheet-x`,"aria-label":`关闭`,onClick:ve},` ✕ `)]),f(oe,{name:`ins`},{default:ne(()=>[E(L)?(s(),v(`section`,Ua,[g(`div`,Wa,[g(`h3`,null,o(E(L).kind===`device`?E(Od)?e.$t(`townView.k1ekqxlt146`):E(ld)?e.$t(`townView.k1empnnb178`):e.$t(`townView.k1k6wg8j185`):E(on)),1),g(`button`,{class:`mini-btn`,title:e.$t(`townView.k1bsckft013`),onClick:Qe},` ✕ `,8,Ga)]),g(`div`,Ka,[g(`span`,qa,o(E(L).id.slice(0,8)),1),E(L).kind===`device`&&E(ld)?(s(),v(`span`,Ja,`DAQ`)):E(L).kind===`device`&&E(Od)?(s(),v(`span`,Ya,`DCW`)):x(``,!0)]),E(L).kind===`device`?(s(),v(b,{key:0},[E(Od)?(s(),v(`div`,Xa,[g(`div`,Za,[g(`span`,null,o(e.$t(`townView.k1deqh0d069`)),1),g(`b`,Qa,o(E(Z)?.value==null?`--`:E(Z).value.toFixed(E(Z).decimals))+` `+o(E(Z)?.unit),1)]),g(`div`,$a,[g(`span`,null,o(E(kd)?.src===`recipe`?e.$t(`townView.kq2jssk147`):e.$t(`townView.k1iwj796179`)),1),g(`b`,{class:c({amber:E(kd)?.src===`recipe`})},o(Fd(E(Z))),3)]),g(`div`,eo,[g(`span`,null,o(e.$t(`townView.k1i8rtqt070`)),1),g(`b`,null,o(E(Ad)||e.$t(`townView.k3own4q148`)),1)]),g(`div`,to,[S(g(`input`,{"onUpdate:modelValue":t[23]||=e=>E(bd)[E(L).id]=e,type:`number`,class:`bind-select`,step:10**-(E(Z)?.decimals??2),placeholder:Id(E(Z)),onKeydown:ie(Pd,[`enter`])},null,40,no),[[A,E(bd)[E(L).id],void 0,{number:!0}]]),g(`button`,{class:`bind-add-btn`,disabled:E(bd)[E(L).id]==null||E(bd)[E(L).id]===``,onClick:Pd},o(e.$t(`townView.kwrbtn180`)),9,ro)]),E(xd)[E(L).id]?(s(),v(`p`,io,o(E(xd)[E(L).id]),1)):x(``,!0),E(z)===`edit`?(s(),v(`div`,ao,[S(g(`select`,{"onUpdate:modelValue":t[24]||=e=>p(jd)?jd.value=e:null,class:`bind-select`},[g(`option`,oo,o(e.$t(`townView.kjo6ekr071`)),1),(s(!0),v(b,null,l(E(O).twins.filter(e=>!bu(e)&&e.id!==(E(L)?.id??``)),e=>(s(),v(`option`,{key:e.id,value:e.id},o(e.name),9,so))),128))],512),[[k,E(jd)]]),g(`button`,{class:`bind-add-btn`,disabled:!E(Ad)&&!E(jd),onClick:t[25]||=e=>E(Ad)?Nd():Md()},o(E(Ad)?e.$t(`townView.k479eh149`):e.$t(`townView.k452a8102`)),9,co)])):x(``,!0)])):E(ld)?(s(),v(`div`,lo,[g(`div`,uo,[g(`span`,null,o(e.$t(`townView.k3mv305072`)),1),g(`b`,fo,o(E(dd)?ku(E(dd)):`--`)+` `+o(E(dd)?.tpl.unit),1)]),g(`div`,po,[g(`span`,null,o(e.$t(`townView.k1faqmjb073`)),1),g(`b`,null,o(E(dd)?.tpl.min)+` ~ `+o(E(dd)?.tpl.max),1)]),g(`div`,mo,[g(`span`,null,o(e.$t(`townView.k1i8rtqt070`)),1),g(`b`,null,o(E(md)||e.$t(`townView.k3own4q148`)),1)]),E(z)===`edit`?(s(),v(`div`,ho,[S(g(`select`,{"onUpdate:modelValue":t[26]||=e=>p(fd)?fd.value=e:null,class:`bind-select`},[g(`option`,go,o(e.$t(`townView.kjo6ekr071`)),1),(s(!0),v(b,null,l(E(O).twins.filter(e=>!bu(e)&&e.id!==(E(L)?.id??``)),e=>(s(),v(`option`,{key:e.id,value:e.id},o(e.name),9,_o))),128))],512),[[k,E(fd)]]),g(`button`,{class:`bind-add-btn`,disabled:!E(md)&&!E(fd),onClick:t[27]||=e=>{E(md)?Zu(E(L).id):Xu(E(L).id,E(fd)),fd.value=``}},o(E(md)?e.$t(`townView.k479eh149`):e.$t(`townView.k452a8102`)),9,vo)])):x(``,!0),E(z)===`edit`&&E(Q)?(s(),v(`div`,yo,[g(`div`,bo,[g(`span`,null,o(e.$t(`townView.k1l6g2ga074`)),1),g(`span`,xo,[S(g(`input`,{"onUpdate:modelValue":t[28]||=e=>p(Ld)?Ld.value=e:null,type:`number`,min:`200`,max:`60000`,step:`100`,class:`daq-num`,onChange:Rd},null,544),[[A,E(Ld),void 0,{number:!0}]]),g(`small`,null,o(e.$t(`townView.k1or92b075`)),1)])]),g(`div`,So,[g(`span`,null,o(e.$t(`townView.k3x5tpx076`)),1),g(`span`,Co,[g(`input`,{value:E(Q).warnLow,type:`number`,step:`any`,class:`daq-num`,onChange:t[29]||=e=>zd(`warnLow`,e.target.value)},null,40,wo),t[83]||=D(` ~ `,-1),g(`input`,{value:E(Q).warnHigh,type:`number`,step:`any`,class:`daq-num`,onChange:t[30]||=e=>zd(`warnHigh`,e.target.value)},null,40,To)])]),g(`div`,Eo,[g(`span`,null,o(e.$t(`townView.k1hjj0jf077`)),1),g(`span`,Do,[g(`input`,{value:E(Q).min,type:`number`,step:`any`,class:`daq-num`,onChange:t[31]||=e=>zd(`min`,e.target.value)},null,40,Oo),t[84]||=D(` ~ `,-1),g(`input`,{value:E(Q).max,type:`number`,step:`any`,class:`daq-num`,onChange:t[32]||=e=>zd(`max`,e.target.value)},null,40,ko)])]),g(`div`,Ao,[g(`span`,null,o(e.$t(`townView.k48tki078`)),1),g(`button`,{class:c([`bind-add-btn`,{warn:E(Q).enabled}]),onClick:t[33]||=e=>E(J).patchNode(E(L).id,{enabled:!E(Q).enabled})},o(E(Q).enabled?e.$t(`townView.k1wv0nyo150`):e.$t(`townView.kh1586b180`)),3)]),g(`div`,jo,[g(`span`,null,o(e.$t(`townView.k3xakp079`)),1),g(`button`,{class:`bind-add-btn danger`,title:e.$t(`townView.kpwutri014`),onClick:t[34]||=e=>bt()},o(e.$t(`townView.k1bpp30k080`)),9,Mo)])])):(s(),v(`div`,No,o(e.$t(`townView.kzk5dfx081`)),1))])):(s(),v(b,{key:2},[g(`div`,Po,[g(`span`,Fo,o(e.$t(`townView.k3xhia082`)),1),S(g(`input`,{"onUpdate:modelValue":t[35]||=e=>p(ut)?ut.value=e:null,class:`obj-input`,placeholder:e.$t(`townView.k1k6vbaf015`),disabled:E(z)!==`edit`,title:E(z)===`edit`?`设备名称`:`运行模式只读`,onChange:gt,onKeydown:ie(gt,[`enter`])},null,40,Io),[[A,E(ut)]])]),g(`div`,Lo,[g(`span`,Ro,o(e.$t(`townView.k41amp083`)),1),g(`select`,{class:`obj-select`,value:E(F)?.getDeviceModelRef?.(E(L).id)??``,disabled:E(z)!==`edit`,onChange:t[36]||=e=>vt(e.target.value)},[(s(!0),v(b,null,l(E(lt),e=>(s(),v(`option`,{key:e.id,value:e.id},o(e.name),9,Bo))),128))],40,zo)]),g(`div`,Vo,o(e.$t(`townView.k1vtyk05130`))+` `+o(E(pd).length)+` `+o(e.$t(`townView.k3vfpz5138`)),1),(s(!0),v(b,null,l(E(pd),t=>(s(),v(`div`,{key:t.daqId,class:`bind-row`},[g(`span`,Ho,[f(i,{class:`bind-svg`,icon:t.icon},null,8,[`icon`])]),g(`span`,Uo,[g(`span`,Wo,o(t.ch),1),g(`span`,Go,[g(`b`,null,o(t.value),1),D(` `+o(t.unit)+` · `+o(t.name),1)])]),g(`canvas`,{ref_for:!0,ref:e=>sd(t.daqId,e),class:`bind-spark`,width:`56`,height:`20`},null,512),E(z)===`edit`?(s(),v(`button`,{key:0,class:`bind-x`,title:e.$t(`townView.k1k73omv016`),onClick:e=>Zu(t.daqId)},` ✕ `,8,Ko)):x(``,!0)]))),128)),E(pd).length?x(``,!0):(s(),v(`div`,qo,o(e.$t(`townView.kgpuqhb084`)),1)),E(z)===`edit`?(s(),v(`div`,Jo,[g(`button`,{class:`bind-add`,onClick:t[37]||=e=>nd(`daq`,e)},o(e.$t(`townView.kvm0lin085`)),1),E($u)?(s(),v(`div`,{key:0,class:`bind-pop`,style:n({maxHeight:`${E(td)}px`})},[(s(!0),v(b,null,l(E(gu),t=>(s(),v(b,{key:t.id},[E(rd)[t.id]?.length?(s(),v(`div`,Yo,[g(`span`,Xo,o(t.name)+` · `+o(t.ch),1),(s(!0),v(b,null,l(E(rd)[t.id],t=>(s(),v(`button`,{key:t.id,"data-node-id":t.id,title:t.devName?e.$t(`townView.k2bindr0007`,{p0:t.devName}):e.$t(`townView.k2bindr0008`),onClick:e=>ad(t.id)},[f(i,{class:`bind-svg`,icon:t.tpl.icon},null,8,[`icon`]),g(`span`,null,[D(o(t.name),1),t.devName?(s(),v(`i`,Qo,`→ `+o(t.devName),1)):t.placed?x(``,!0):(s(),v(`i`,$o,o(e.$t(`townView.k2bindr0009`)),1))])],8,Zo))),128))])):x(``,!0)],64))),128)),E(id)?x(``,!0):(s(),v(`div`,es,o(e.$t(`townView.k2bindr0010`)),1))],4)):x(``,!0)])):x(``,!0),g(`div`,ts,o(e.$t(`townView.ktzir2t131`))+` `+o(E(_d).length)+` `+o(e.$t(`townView.k4l1w042`)),1),(s(!0),v(b,null,l(E(_d),t=>(s(),v(`div`,{key:t.dcwId,class:`dcw-row`},[g(`div`,ns,[g(`span`,rs,[f(i,{class:`bind-svg`,icon:t.icon},null,8,[`icon`])]),g(`span`,is,[g(`span`,as,[D(o(t.ch),1),t.rMin!=null||t.rMax!=null?(s(),v(`i`,os,o(e.$t(`townView.k48grv086`)),1)):x(``,!0)]),g(`span`,ss,o(t.name),1)]),g(`span`,cs,[g(`b`,null,o(t.value==null?`--`:t.value.toFixed(t.decimals)),1),g(`i`,null,o(t.unit),1)]),E(z)===`edit`?(s(),v(`button`,{key:0,class:`bind-x`,title:e.$t(`townView.k1k73omv016`),onClick:e=>Dd(t.dcwId)},` ✕ `,8,ls)):x(``,!0)]),g(`div`,{class:c([`dcw-win`,{recipe:t.rMin!=null||t.rMax!=null}])},[g(`em`,null,o(t.rMin!=null||t.rMax!=null?e.$t(`townView.k1l3m0hx151`):e.$t(`townView.k1bc6rqf181`)),1),g(`span`,us,o(t.rMin??`-∞`),1),g(`span`,ds,[g(`i`,{style:n({left:`${yd(t)}%`})},null,4)]),g(`span`,fs,o(t.rMax??`+∞`),1)],2),g(`div`,ps,[S(g(`input`,{"onUpdate:modelValue":e=>E(bd)[t.dcwId]=e,type:`number`,step:10**-t.decimals,placeholder:`${t.rMin??t.gMin} ~ ${t.rMax??t.gMax}`,onKeydown:ie(e=>Sd(E(Y).nodeById(t.dcwId)),[`enter`])},null,40,ms),[[A,E(bd)[t.dcwId],void 0,{number:!0}]]),g(`button`,{class:`dcw-send`,disabled:E(bd)[t.dcwId]==null||E(bd)[t.dcwId]===``,title:e.$t(`townView.k15t7izc017`),onClick:e=>Sd(E(Y).nodeById(t.dcwId))},` write `,8,hs)]),E(xd)[t.dcwId]?(s(),v(`small`,gs,o(E(xd)[t.dcwId]),1)):x(``,!0)]))),128)),E(_d).length?x(``,!0):(s(),v(`div`,_s,o(e.$t(`townView.k10smf24087`)),1)),E(z)===`edit`?(s(),v(`div`,vs,[g(`button`,{class:`bind-add`,onClick:t[38]||=e=>nd(`dcw`,e)},o(e.$t(`townView.kvk1vh5088`)),1),E(ed)?(s(),v(`div`,{key:0,class:`bind-pop`,style:n({maxHeight:`${E(td)}px`})},[(s(!0),v(b,null,l(E(au),t=>(s(),v(b,{key:t.id},[E(wd)[t.id]?.length?(s(),v(`div`,ys,[g(`span`,bs,o(t.name)+` · `+o(t.ch),1),(s(!0),v(b,null,l(E(wd)[t.id],t=>(s(),v(`button`,{key:t.id,"data-node-id":t.id,title:t.devName?e.$t(`townView.k2bindr0007`,{p0:t.devName}):e.$t(`townView.k2bindr0008`),onClick:e=>Ed(t.id)},[f(i,{class:`bind-svg`,icon:t.tpl.icon},null,8,[`icon`]),g(`span`,null,[D(o(t.name),1),t.devName?(s(),v(`i`,Ss,`→ `+o(t.devName),1)):t.placed?x(``,!0):(s(),v(`i`,Cs,o(e.$t(`townView.k2bindr0009`)),1))])],8,xs))),128))])):x(``,!0)],64))),128)),E(Td)?x(``,!0):(s(),v(`div`,ws,o(e.$t(`townView.k2bindr0010`)),1))],4)):x(``,!0)])):x(``,!0),E(z)===`edit`?(s(),v(b,{key:4},[t[87]||=g(`div`,{class:`sect-hd`},` 变换 · BLENDER `,-1),g(`div`,Ts,[g(`button`,{class:c([`seg-btn`,{on:E(Ue)===`translate`}]),onClick:t[39]||=e=>We(`translate`)},o(e.$t(`townView.k1hg3167089`)),3),g(`button`,{class:c([`seg-btn`,{on:E(Ue)===`rotate`}]),onClick:t[40]||=e=>We(`rotate`)},o(e.$t(`townView.k1enlg7i090`)),3),g(`button`,{class:c([`seg-btn`,{on:E(Ue)===`scale`}]),onClick:t[41]||=e=>We(`scale`)},o(e.$t(`townView.k1ibjg3j091`)),3)]),g(`div`,Es,[t[85]||=g(`span`,{class:`scale-min`},`0.2×`,-1),g(`input`,{class:`scale-range`,type:`range`,min:`0.2`,max:`5`,step:`0.05`,value:E(L).scale,onInput:t[42]||=e=>Xe(Number(e.target.value)),onChange:t[43]||=e=>Ze(Number(e.target.value))},null,40,Ds),t[86]||=g(`span`,{class:`scale-max`},`5×`,-1)]),g(`div`,Os,o(Math.round(E(L).scale*100))+`% `,1),g(`div`,ks,[g(`button`,{class:c([`btn btn-danger ins-del`,{armed:E(yt)===E(L).id}]),onClick:bt},o(E(yt)===E(L).id?e.$t(`townView.k1w10xa5152`):e.$t(`townView.k121kfef182`)),3)])],64)):(s(),v(`div`,As,o(e.$t(`townView.kt0i3y2092`)),1))],64))],64)):E(L).kind===`agent`?(s(),v(b,{key:1},[g(`div`,js,[g(`span`,{class:`chat-badge`,style:n({"--p-acc":E(Yl)})},o(E(an).slice(0,1).toUpperCase()),5),g(`div`,Ms,[g(`span`,Ns,o(E(an)),1),g(`span`,Ps,[g(`span`,{class:c([`chat-role`,E(K)?.role===`lead`?`r-lead`:`r-worker`])},o(E(sn)),3),g(`span`,{class:c([`chat-state`,`s-${E(K)?.state??`idle`}`])},o(E(cn)),3),E(K)?.harness?(s(),v(`span`,Fs,o(E(K).harness.toUpperCase()),1)):x(``,!0),g(`span`,Is,o(E(q).length+E(rn).length)+` `+o(e.$t(`townView.k4dfq040`)),1)])])]),g(`div`,Ls,[g(`span`,Rs,o(e.$t(`townView.k41amp083`)),1),g(`select`,{class:`obj-select`,value:(E(F)?.getAgentModel?.(E(L).id)??``)||`hero-3d`,disabled:E(z)!==`edit`,onChange:t[44]||=e=>_t(e.target.value)},[(s(!0),v(b,null,l(E(ct),e=>(s(),v(`option`,{key:e.id,value:e.id},o(e.name),9,Bs))),128))],40,zs)]),t[91]||=g(`div`,{class:`obj-sep`},null,-1),g(`div`,Vs,[g(`span`,Hs,o(e.$t(`townView.k1fix3hb093`)),1),g(`span`,Us,o(E(dt)),1),E(z)===`edit`?(s(),v(`button`,{key:0,class:c([`obj-mini`,{on:E(W)}]),title:e.$t(`townView.k13enoy3018`),onClick:ft},o(E(W)?e.$t(`townView.k3slzhc153`):e.$t(`townView.k1f1xmci183`)),11,Ws)):x(``,!0)]),t[92]||=g(`div`,{class:`obj-sep`},null,-1),g(`div`,Gs,o(e.$t(`townView.k1p7nru2094`)),1),(s(!0),v(b,null,l(E(Pu),t=>(s(),v(`div`,{key:t.id,class:`bind-row`},[g(`span`,{class:c([`ins-chip`,t.kind===`dcw`?`accent`:``]),style:{flex:`none`}},o(t.kind===`dcw`?e.$t(`townView.k40ifw097`):e.$t(`townView.k40rjw098`)),3),g(`span`,Ks,[g(`span`,qs,o(qu(t)),1),g(`select`,{class:`bind-select`,style:{"margin-top":`3px`},value:t.mode,title:e.$t(`townView.khqvwix019`),onChange:e=>Gu(t.id,e.target.value)},[g(`option`,Ys,o(e.$t(`townView.k1io1ylm095`)),1),g(`option`,Xs,o(e.$t(`townView.k1duyr8q096`)),1)],40,Js)]),g(`button`,{class:`bind-x`,title:e.$t(`townView.k1k73omv016`),onClick:e=>Wu(t.id)},` ✕ `,8,Zs)]))),128)),E(Pu).length?x(``,!0):(s(),v(`div`,Qs,` 未绑定工业节点 —— 绑定后 Agent 可用 dcw_control / daq_query 工具 `)),E(z)===`edit`?(s(),v(`div`,$s,[S(g(`select`,{"onUpdate:modelValue":t[45]||=e=>p(Fu)?Fu.value=e:null,class:`bind-select`,style:{flex:`none`,width:`62px`}},[g(`option`,ec,o(e.$t(`townView.k40ifw097`)),1),g(`option`,tc,o(e.$t(`townView.k40rjw098`)),1)],512),[[k,E(Fu)]]),S(g(`select`,{"onUpdate:modelValue":t[46]||=e=>p(Iu)?Iu.value=e:null,class:`bind-select`},[g(`option`,nc,o(e.$t(`townView.kurjldk099`)),1),E(Fu)===`dcw`?(s(!0),v(b,{key:0},l(E(Y).nodes,e=>(s(),v(`option`,{key:e.id,value:e.id},o(e.name),9,rc))),128)):(s(!0),v(b,{key:1},l(E(J).nodes,e=>(s(),v(`option`,{key:e.id,value:e.id},o(e.name),9,ic))),128))],512),[[k,E(Iu)]]),S(g(`select`,{"onUpdate:modelValue":t[47]||=e=>p(Lu)?Lu.value=e:null,class:`bind-select`,style:{flex:`none`,width:`76px`}},[g(`option`,ac,o(e.$t(`townView.k45kpj100`)),1),g(`option`,oc,o(e.$t(`townView.k3zul4101`)),1)],512),[[k,E(Lu)]]),g(`button`,{class:`bind-add-btn`,disabled:!E(Iu),onClick:Uu},o(e.$t(`townView.k452a8102`)),9,sc)])):x(``,!0),E(Ru).length?(s(),v(b,{key:2},[g(`div`,cc,o(e.$t(`townView.k1gk2jg7132`))+` `+o(E(Ru).length),1),(s(!0),v(b,null,l(E(Ru),t=>(s(),v(`div`,{key:t.id,class:`approval-card`},[g(`div`,lc,o(t.detail),1),g(`div`,{class:c([`approval-ttl`,{urgent:Mu(t)<=30}])},` ⏱ `+o(Mu(t))+`s `+o(e.$t(`townView.hitlAutoReject`)),3),S(g(`input`,{"onUpdate:modelValue":e=>E(zu)[t.id]=e,class:`dcw-write input-inline`,style:{width:`100%`,"margin-top":`5px`},placeholder:e.$t(`townView.keztqrn020`)},null,8,uc),[[A,E(zu)[t.id]]]),g(`div`,dc,[g(`button`,{class:`bind-add-btn`,onClick:e=>Ku(t.id,!0)},o(e.$t(`townView.kslcozu103`)),9,fc),g(`button`,{class:`bind-add-btn danger`,onClick:e=>Ku(t.id,!1)},o(e.$t(`townView.k14gu3rd104`)),9,pc)])]))),128))],64)):x(``,!0),E(U)&&E(z)===`edit`?(s(),v(b,{key:3},[g(`div`,mc,[g(`span`,hc,o(e.$t(`townView.k3zhy5048`)),1),g(`div`,gc,[g(`button`,{class:c([`seg-btn`,{on:E(U).shape===`ellipse`}]),onClick:t[48]||=e=>{E(U).shape=`ellipse`,pt()}},o(e.$t(`townView.k414bc049`)),3),g(`button`,{class:c([`seg-btn`,{on:E(U).shape===`rect`}]),onClick:t[49]||=e=>{E(U).shape=`rect`,pt()}},o(e.$t(`townView.k43u0g050`)),3)])]),g(`div`,_c,[g(`span`,vc,o(e.$t(`townView.k41lwj105`)),1),S(g(`input`,{"onUpdate:modelValue":t[50]||=e=>E(U).radiusX=e,class:`obj-range`,type:`range`,min:`40`,max:`4000`,step:`8`,onInput:pt,onChange:mt},null,544),[[A,E(U).radiusX,void 0,{number:!0}]]),g(`span`,yc,o(Math.round(E(U).radiusX)),1)]),g(`div`,bc,[g(`span`,xc,o(e.$t(`townView.k45bta106`)),1),S(g(`input`,{"onUpdate:modelValue":t[51]||=e=>E(U).radiusZ=e,class:`obj-range`,type:`range`,min:`40`,max:`4000`,step:`8`,onInput:pt,onChange:mt},null,544),[[A,E(U).radiusZ,void 0,{number:!0}]]),g(`span`,Sc,o(Math.round(E(U).radiusZ)),1)]),g(`button`,{class:`obj-mini danger`,onClick:ht},o(e.$t(`townView.k1w45mzc107`)),1)],64)):(s(),v(`div`,Cc,o(e.$t(`townView.k14s8urm108`)),1)),t[93]||=g(`div`,{class:`obj-sep`},null,-1),g(`div`,wc,[D(o(e.$t(`townView.k1ghjbfc133`))+` `+o(E(an))+` `,1),g(`button`,{class:`mini-btn chat-refresh`,title:e.$t(`townView.k15avt7g021`),onClick:Jl},o(E(ln)?`…`:`↻`),9,Tc)]),g(`div`,{ref_key:`chatScroll`,ref:dn,class:`rpg-lines chat-embed`},[E(ln)?(s(),v(`div`,Ec,o(e.$t(`townView.kkhlx5h109`)),1)):x(``,!0),E(q).length?(s(),v(b,{key:1},[g(`div`,Dc,o(e.$t(`townView.k768cnt134`))+` `+o(E(q).length),1),(s(!0),v(b,null,l(E(q),e=>(s(),v(`div`,{key:e.id,class:`rpg-line hist`},[g(`span`,Oc,o(Zl(e.at)),1),g(`div`,kc,[Xl(e.kind)?(s(),v(`span`,{key:0,class:c([`rpg-kind`,`k-${e.kind}`])},o(Xl(e.kind)),3)):x(``,!0),g(`span`,Ac,o(e.text),1)])]))),128))],64)):x(``,!0),E(rn).length?(s(),v(`div`,jc,o(e.$t(`townView.k1cwz73k135`))+` `+o(E(rn).length),1)):x(``,!0),(s(!0),v(b,null,l(E(rn),e=>(s(),v(`div`,{key:e.id,class:`rpg-line live`},[g(`span`,Mc,o(Zl(e.at)),1),g(`div`,Nc,[g(`span`,Pc,o(e.text),1)])]))),128)),E(K)?.state===`busy`?(s(),v(`div`,Fc,[t[88]||=g(`span`,{class:`ty-dot`},null,-1),t[89]||=g(`span`,{class:`ty-dot`},null,-1),t[90]||=g(`span`,{class:`ty-dot`},null,-1),g(`span`,Ic,o(e.$t(`townView.k3o5tz9110`)),1)])):x(``,!0),!E(ln)&&!E(q).length&&!E(rn).length?(s(),v(`div`,Lc,o(e.$t(`townView.k1qkqld7111`)),1)):x(``,!0)],512)],64)):x(``,!0)])):x(``,!0)]),_:1}),g(`section`,Rc,[g(`div`,zc,[g(`h3`,null,o(e.$t(`townView.k17dkhgd112`)),1)]),g(`div`,Bc,[g(`div`,Vc,[g(`canvas`,{ref_key:`donutCanvas`,ref:df,width:`118`,height:`118`},null,512),g(`div`,Hc,[g(`b`,{style:n({color:E(uf)})},o(E(lf))+`%`,5),g(`span`,null,o(e.$t(`townView.k7h1nxo113`)),1)])]),g(`div`,Uc,[g(`div`,Wc,[t[94]||=g(`span`,{class:`hl-dot`,style:{background:`var(--hud-accent)`}},null,-1),D(` `+o(e.$t(`townView.k3vp67i114`))+` `,1),g(`span`,Gc,o(E($d)),1)]),g(`div`,Kc,[t[95]||=g(`span`,{class:`hl-dot`,style:{background:`var(--hud-amber)`}},null,-1),D(` `+o(e.$t(`townView.k3zcvb115`))+` `,1),g(`span`,qc,o(E(of)),1)]),g(`div`,Jc,[t[96]||=g(`span`,{class:`hl-dot`,style:{background:`var(--hud-danger)`}},null,-1),D(` `+o(e.$t(`townView.k3xmid116`))+` `,1),g(`span`,Yc,o(E(sf)),1)]),g(`div`,Xc,[t[97]||=g(`span`,{class:`hl-dot`,style:{background:`#3a4a63`}},null,-1),D(` `+o(e.$t(`townView.statesOffline`))+` `,1),g(`span`,Zc,o(E(cf)),1)])])])]),g(`section`,Qc,[g(`div`,$c,[g(`h3`,null,o(e.$t(`townView.k1q247fn117`)),1),g(`span`,el,o(E(O).twins.length),1)]),f(a,{class:`kd-embed`,"daq-live":E(qd),"dcw-live":E(Jd),onFocusDevice:qt},null,8,[`daq-live`,`dcw-live`])]),g(`section`,tl,[g(`div`,nl,[g(`h3`,null,o(e.$t(`townView.k1cxf749118`)),1),g(`span`,rl,o(E(_f))+` `+o(e.$t(`townView.k4dfq040`)),1),g(`button`,{class:`mini-btn`,title:e.$t(`townView.k1bkswpz022`),onClick:yf},` ✓ `,8,il)]),g(`div`,al,[(s(!0),v(b,null,l(E(pf).slice(0,8),e=>(s(),v(`div`,{key:e.id,class:`al-row`},[g(`span`,{class:c([`al-ico`,e.state===2?`info`:e.state===1?`warn`:`crit`])},[...t[98]||=[g(`svg`,{class:`al-svg`,viewBox:`0 0 24 24`},[g(`path`,{d:`M12 3 22 20H2L12 3Z`}),g(`path`,{d:`M12 10v4M12 17v.2`})],-1)]],2),g(`div`,ol,[g(`div`,sl,o(e.txt),1),g(`div`,cl,o(e.src)+` · `+o(e.time),1)]),g(`button`,{class:c([`al-state`,`s${e.state}`]),onClick:t=>vf(e.id)},o(hf[e.state]),11,ll)]))),128)),E(pf).length?x(``,!0):(s(),v(`div`,ul,[t[99]||=g(`svg`,{class:`re-ico`,viewBox:`0 0 24 24`},[g(`path`,{d:`M12 3l7 3v5c0 4.6-3 8.2-7 10-4-1.8-7-5.4-7-10V6l7-3Z`}),g(`path`,{d:`m9.2 12.2 2 2 3.6-4`})],-1),g(`span`,null,o(e.$t(`townView.kjz544r119`)),1)]))])]),g(`section`,dl,[g(`div`,fl,[g(`h3`,null,o(e.$t(`townView.k1cxdtq2120`)),1),g(`span`,pl,o(E(iu).length),1)]),g(`div`,ml,[(s(!0),v(b,null,l([...E(iu)].reverse(),(e,t)=>(s(),v(`div`,{key:`${e.at}-${t}`,class:`event-row`},[g(`span`,hl,o(Zl(e.at)),1),g(`span`,{class:`ev-name`,title:e.agentName},o(e.agentName),9,gl),g(`span`,{class:`ev-text`,title:e.text},o(e.text),9,_l)]))),128)),E(iu).length?x(``,!0):(s(),v(`div`,vl,[t[100]||=g(`svg`,{class:`re-ico`,viewBox:`0 0 24 24`},[g(`path`,{d:`M3 12h3l2.5-6 4 12L15 12h6`})],-1),g(`span`,null,o(e.$t(`townView.k2uk6ua121`)),1)]))])]),g(`section`,yl,[g(`div`,bl,[g(`h3`,null,o(e.$t(`townView.kjug2jq122`)),1)]),g(`div`,xl,[g(`div`,{class:`mm-wrap`,title:e.$t(`townView.klfwiqg023`)},[g(`canvas`,{ref_key:`navCanvas`,ref:Xf,class:`nav-cv`,onPointerdown:tp,onPointermove:np,onPointerup:rp,onPointercancel:rp,onWheel:ae(ep,[`prevent`])},null,544)],8,Sl),g(`div`,Cl,[g(`button`,{class:`vp-tool`,title:e.$t(`townView.k1lap9bs024`),onClick:Ff},[...t[101]||=[g(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[g(`path`,{d:`M3 12a9 9 0 1 0 3-6.7M3 4v5h5`})],-1)]],8,wl),g(`button`,{class:`vp-tool`,title:e.$t(`townView.kav8a8k025`),onClick:t[52]||=e=>E(F)?.zoomBy(.22)},[...t[102]||=[g(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[g(`circle`,{cx:`11`,cy:`11`,r:`6.5`}),g(`path`,{d:`m16 16 4.5 4.5M8.5 11h5`})],-1)]],8,Tl),g(`button`,{class:`vp-tool`,title:e.$t(`townView.k1u7uce9026`),onClick:t[53]||=e=>E(F)?.zoomBy(-.18)},[...t[103]||=[g(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[g(`circle`,{cx:`11`,cy:`11`,r:`6.5`}),g(`path`,{d:`m16 16 4.5 4.5M8.5 11h5M11 8.5v5`})],-1)]],8,El)])]),g(`div`,Dl,o(e.$t(`townView.k1gaaodq136`))+o(E(Zf).toFixed(1))+` · `+o(E($t)?.devices?.length??0)+` `+o(e.$t(`townView.k47e16126`)),1)])],2)]),g(`footer`,Ol,[g(`span`,null,[g(`span`,{class:c([`sb-dot`,{red:E(te).state!==`open`}])},null,2),D(o(e.$t(`townView.k1i4g246123`))+` `,1),g(`b`,null,o(E(te).state===`open`?e.$t(`townView.k41k5c154`):E(Re)?e.$t(`townView.k3lmtk3184`):e.$t(`townView.k44c2n186`)),1)]),g(`span`,kl,[D(o(e.$t(`townView.k4a0jt124`))+` `,1),g(`b`,null,o(E(Fe)),1),t[104]||=g(`i`,null,`·`,-1),D(o(e.$t(`townView.k3xdvm125`))+` `,1),g(`b`,null,o(E(Pe)),1),t[105]||=g(`i`,null,`·`,-1),D(o(e.$t(`townView.k47e16126`))+` `,1),g(`b`,null,o(E(Qd)),1)]),g(`span`,Al,o(E(Ne))+` FPS `,1),g(`span`,jl,` © 2026 ABO · DIGITAL TWIN · `+o(e.$t(`townView.k1h5gxpf137`)),1)]),E(N)?(s(),v(`div`,{key:0,class:`sheet-mask`,onClick:ve})):x(``,!0),E(Me)?x(``,!0):(s(),v(`div`,Ml,[t[106]||=g(`div`,{class:`loading-spinner`},null,-1),g(`span`,Nl,o(e.$t(`townView.kvjdqfg059`)),1)]))])}}}),[[`__scopeId`,`data-v-3e78e101`]]),{__name:`WorkshopTownView`});export{fn as n,Ul as t};
@@ -1 +0,0 @@
1
- import{C as e,E as t,at as n,dt as r,it as i,mt as a}from"./CSkxz2NX.js";var o=Error.captureStackTrace,s=class e extends Error{name;code;docs;fix;sources;get why(){return this.message}constructor(t,n=e){super(t.why,{cause:t.cause}),this.code=this.name=t.code,this.fix=t.fix,this.docs=t.docs,this.sources=t.sources,o?.(this,n)}toJSON(){return{name:this.name,why:this.why,fix:this.fix,docs:this.docs,sources:this.sources,cause:this.cause,stack:this.stack}}};function c(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function l(e={}){let{docsBase:t,reporters:n=[]}=e;return new Proxy({},{get(e,r){if(typeof r!=`string`)return;let i=(e={},a={})=>{let o=c(t,r),l=new s({code:r,why:o??``,docs:o,cause:e.cause,sources:e.sources},i);for(let e of n)e(l,a);return l};return i}})}function u(e){return`https://nuxt.com/docs/4.x/errors/${e.replace(`NUXT_`,``).toLowerCase()}`}var d=[e=>{console.error(`[${e.name}]`)}],f=l({docsBase:u,reporters:d});function p(e,t={},n){for(let r in e){let i=e[r],a=n?`${n}:${r}`:r;typeof i==`object`&&i?p(i,t,a):typeof i==`function`&&(t[a]=i)}return t}var m=(()=>{if(console.createTask)return console.createTask;let e={run:e=>e()};return()=>e})();function h(e,t,n,r){for(let i=n;i<e.length;i+=1)try{let n=r?r.run(()=>e[i](...t)):e[i](...t);if(n&&typeof n.then==`function`)return Promise.resolve(n).then(()=>h(e,t,i+1,r))}catch(e){return Promise.reject(e)}}function ee(e,t,n){if(e.length>0)return h(e,t,0,m(n))}function te(e,t,n){if(e.length>0){let r=m(n);return Promise.all(e.map(e=>r.run(()=>e(...t))))}}function g(e,t){for(let n of[...e])n(t)}var ne=class{_hooks;_before;_after;_deprecatedHooks;_deprecatedMessages;constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(e,t,n={}){if(!e||typeof t!=`function`)return()=>{};let r=e,i;for(;this._deprecatedHooks[e];)i=this._deprecatedHooks[e],e=i.to;if(i&&!n.allowDeprecated){let e=i.message;e||=`${r} hook has been deprecated`+(i.to?`, please use ${i.to}`:``),this._deprecatedMessages||=new Set,this._deprecatedMessages.has(e)||(console.warn(e),this._deprecatedMessages.add(e))}if(!t.name)try{Object.defineProperty(t,"name",{get:()=>`_`+e.replace(/\W+/g,`_`)+`_hook_cb`,configurable:!0})}catch{}return this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&=(this.removeHook(e,t),void 0)}}hookOnce(e,t){let n,r=(...e)=>(typeof n==`function`&&n(),n=void 0,r=void 0,t(...e));return n=this.hook(e,r),n}removeHook(e,t){let n=this._hooks[e];if(n){let r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}clearHook(e){this._hooks[e]=void 0}deprecateHook(e,t){this._deprecatedHooks[e]=typeof t==`string`?{to:t}:t;let n=this._hooks[e]||[];this._hooks[e]=void 0;for(let t of n)this.hook(e,t)}deprecateHooks(e){for(let t in e)this.deprecateHook(t,e[t])}addHooks(e){let t=p(e),n=Object.keys(t).map(e=>this.hook(e,t[e]));return()=>{for(let e of n)e();n.length=0}}removeHooks(e){let t=p(e);for(let e in t)this.removeHook(e,t[e])}removeAllHooks(){this._hooks={}}callHook(e,...t){return this.callHookWith(ee,e,t)}callHookParallel(e,...t){return this.callHookWith(te,e,t)}callHookWith(e,t,n){let r=this._before||this._after?{name:t,args:n,context:{}}:void 0;this._before&&g(this._before,r);let i=e(this._hooks[t]?[...this._hooks[t]]:[],n,t);return i instanceof Promise?i.finally(()=>{this._after&&r&&g(this._after,r)}):(this._after&&r&&g(this._after,r),i)}beforeEach(e){return this._before=this._before||[],this._before.push(e),()=>{if(this._before!==void 0){let t=this._before.indexOf(e);t!==-1&&this._before.splice(t,1)}}}afterEach(e){return this._after=this._after||[],this._after.push(e),()=>{if(this._after!==void 0){let t=this._after.indexOf(e);t!==-1&&this._after.splice(t,1)}}}};function re(){return new ne}var ie=class{_hooks;constructor(){this._hooks={}}hook(e,t){return!e||typeof t!=`function`?()=>{}:(this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&=(this.removeHook(e,t),void 0)})}removeHook(e,t){let n=this._hooks[e];if(n){let r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}callHook(e,...t){let n=this._hooks[e];if(!(!n||n.length===0))return h(n,t,0)}};function _(){return globalThis.AsyncLocalStorage||globalThis.process?.getBuiltinModule?.(`node:async_hooks`)?.AsyncLocalStorage}function v(e={}){let t,n=!1,r=e=>{if(t&&t!==e)throw Error(`Context conflict`)},i;if(e.asyncContext){let t=e.AsyncLocalStorage||_();t?i=new t:console.warn("[unctx] `AsyncLocalStorage` is not provided.")}let a=e=>i&&typeof e==`object`&&e?{__unctx_weak:new WeakRef(e)}:e,o=e=>e&&e.__unctx_weak?e.__unctx_weak.deref():e,s=()=>{if(i){let e=i.getStore();if(e!==void 0)return o(e)}return t};return{use:()=>{let e=s();if(e===void 0)throw Error(`Context is not available`);return e},tryUse:()=>s(),set:(e,i)=>{i||r(e),t=e,n=!0},unset:()=>{t=void 0,n=!1},call:(e,o)=>{r(e),t=e;try{return i?i.run(a(e),o):o()}finally{n||(t=void 0)}},async callAsync(e,r){t=e;let o=()=>{t=e},s=()=>t===e?o:void 0;C.add(s);try{let o=i?i.run(a(e),r):r();return n||(t=void 0),await o}finally{C.delete(s)}}}}function y(e={}){let t={};return{get(n,r={}){return t[n]||(t[n]=v({...e,...r})),t[n]}}}var b=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof global<`u`?global:typeof window<`u`?window:{},x=`__unctx__`,ae=b[x]||(b[x]=y()),oe=(e,t={})=>ae.get(e,t),S=`__unctx_async_handlers__`,C=b[S]||(b[S]=new Set);function se(e){let t=[];for(let e of C){let n=e();n&&t.push(n)}let n=()=>{for(let e of t)e()},r=e();return r&&typeof r==`object`&&`catch`in r&&(r=r.catch(e=>{throw n(),e})),[r,n]}var ce={name:`page-fade`,mode:`out-in`},le={meta:[{charset:`utf-8`},{name:`viewport`,content:`width=device-width, initial-scale=1`},{name:`description`,content:`基于 Nuxt 4 的配置驱动运行范式`}],link:[{rel:`icon`,type:`image/svg+xml`,href:`/favicon.svg`}],style:[],script:[],noscript:[],title:`AgentWorkShop`,htmlAttrs:{lang:`zh-CN`}},ue={id:`__nuxt-loader`},de={componentName:`NuxtLink`,prefetch:!0,prefetchOn:{visibility:!0}},fe={deep:!1},pe={},me=`#__nuxt`,he=`nuxt-app`,ge=36e5,_e=`vite:preloadError`;function w(e=`nuxt-app`){return oe(e,{asyncContext:!1})}var ve=`__nuxt_plugin`;function ye(e){let t=0,o={_id:e.id||`nuxt-app`,_scope:i(),provide:void 0,versions:{get nuxt(){return`4.5.2`},get vue(){return o.vueApp.version}},payload:a({...e.ssrContext?.payload||{},data:a({}),state:r({}),once:new Set,_errors:a({})}),static:{data:{}},runWithContext(e){return o._scope.active&&!n()?o._scope.run(()=>k(o,e)):k(o,e)},isHydrating:!0,deferHydration(){if(!o.isHydrating)return()=>{};t++;let e=!1;return()=>{if(!e&&(e=!0,t--,t===0))return o.isHydrating=!1,o.callHook(`app:suspense:resolve`)}},_asyncDataPromises:{},_asyncData:a({}),_state:a({}),_payloadRevivers:{},...e};{let e=window.__NUXT__;if(e)for(let t in e)switch(t){case`data`:case`state`:case`_errors`:Object.assign(o.payload[t],e[t]);break;default:o.payload[t]=e[t]}}o.hooks=re(),o.hook=o.hooks.hook;{let e=o.hooks.callHook;o.hooks.callHook=(t,...n)=>Promise.resolve().then(()=>e(t,...n))}o.callHook=o.hooks.callHook,o.provide=(e,t)=>{let n=`$`+e;N(o,n,t),N(o.vueApp.config.globalProperties,n,t)},N(o.vueApp,`$nuxt`,o),N(o.vueApp.config.globalProperties,`$nuxt`,o);{window.addEventListener(_e,e=>{o.callHook(`app:chunkError`,{error:e.payload}),e.payload?.message?.includes(`Unable to preload CSS`)&&e.preventDefault()}),window.useNuxtApp||=j;let e=o.hook(`app:error`,(...e)=>{f.NUXT_E1005({cause:e.length>1?e:e[0]})});o.hook(`app:mounted`,e)}let s=o.payload.config;return o.provide(`config`,s),o}function be(e,t){t.hooks&&e.hooks.addHooks(t.hooks)}async function xe(e,t){if(typeof t==`function`){let{provide:n}=await e.runWithContext(()=>t(e))||{};if(n&&typeof n==`object`)for(let t in n)e.provide(t,n[t])}}async function T(e,t){return E(e,t)}async function E(e,t){let n=new Set,r=[],i=[],a,o=0;async function s(c){let l=c.dependsOn?.filter(e=>t.some(t=>t._name===e)&&!n.has(e))??[];if(l.length>0)r.push([new Set(l),c]);else{let t=xe(e,c).then(async()=>{c._name&&(n.add(c._name),await Promise.all(r.map(async([e,t])=>{e.has(c._name)&&(e.delete(c._name),e.size===0&&(o++,await s(t)))})))}).catch(t=>{if(!c.parallel&&!e.payload.error)throw t;a||=t});c.parallel?i.push(t):await t}}for(let n of t)be(e,n);for(let e of t)await s(e);if(await Promise.all(i),o)for(let e=0;e<o;e++)await Promise.all(i);if(a)throw e.payload.error||a}function D(e){if(typeof e==`function`)return e;let t=e._name||e.name;return delete e.name,Object.assign(e.setup||(()=>{}),e,{[ve]:!0,_name:t})}var O=D;function k(e,t,n){return w(e._id).set(e),e.vueApp.runWithContext(()=>n?t(...n):t())}function A(n){let r;return t()&&(r=e()?.appContext.app.$nuxt),r||=w(n).tryUse(),r||null}function j(e){let t=A(e);if(!t)throw f.NUXT_E1001();return t}function M(e){return j().$config}function N(e,t,n){Object.defineProperty(e,t,{get:()=>n})}var Se=/bot\b|chrome-lighthouse|facebookexternalhit|google\b/i;function Ce(e){return Se.test(e)}import.meta.url.replace(/\/app\/.*$/,`/`),String.fromCharCode;var P=/#/g,F=/&/g,we=/\//g,Te=/=/g,Ee=/\?/g,I=/\+/g,De=/%5e/gi,Oe=/%60/gi,ke=/%7c/gi,Ae=/%20/gi,je=/%2f/gi,Me=/%252f/gi;function L(e){return encodeURI(``+e).replace(ke,`|`)}function R(e){return L(typeof e==`string`?e:JSON.stringify(e)).replace(I,`%2B`).replace(Ae,`+`).replace(P,`%23`).replace(F,`%26`).replace(Oe,"`").replace(De,`^`).replace(we,`%2F`)}function z(e){return R(e).replace(Te,`%3D`)}function Ne(e){return L(e).replace(P,`%23`).replace(Ee,`%3F`).replace(Me,`%2F`).replace(F,`%26`).replace(I,`%2B`)}function B(e=``){try{return decodeURIComponent(``+e)}catch{return``+e}}function Pe(e){return B(e.replace(je,`%252F`))}function Fe(e){return B(e.replace(I,` `))}function Ie(e){return B(e.replace(I,` `))}function V(e=``){let t=Object.create(null);e[0]===`?`&&(e=e.slice(1));for(let n of e.split(`&`)){let e=n.match(/([^=]+)=?(.*)/)||[];if(e.length<2)continue;let r=Fe(e[1]);if(r===`__proto__`||r===`constructor`)continue;let i=Ie(e[2]||``);t[r]===void 0?t[r]=i:Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]}return t}function Le(e,t){return(typeof t==`number`||typeof t==`boolean`)&&(t=String(t)),t?Array.isArray(t)?t.map(t=>`${z(e)}=${R(t)}`).join(`&`):`${z(e)}=${R(t)}`:z(e)}function Re(e){return Object.keys(e).filter(t=>e[t]!==void 0).map(t=>Le(t,e[t])).filter(Boolean).join(`&`)}var ze=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,Be=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,Ve=/^([/\\]\s*){2,}[^/\\]/,He=/^[\s\0]*(blob|data|javascript|vbscript):$/i,Ue=/\/$|\/\?|\/#/,We=/^\.?\//;function H(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?ze.test(e):Be.test(e)||(t.acceptRelative?Ve.test(e):!1)}function Ge(e){return!!e&&He.test(e)}function U(e=``,t){return t?Ue.test(e):e.endsWith(`/`)}function W(e=``,t){if(!t)return(U(e)?e.slice(0,-1):e)||`/`;if(!U(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);i!==-1&&(n=e.slice(0,i),r=e.slice(i));let[a,...o]=n.split(`?`);return((a.endsWith(`/`)?a.slice(0,-1):a)||`/`)+(o.length>0?`?${o.join(`?`)}`:``)+r}function G(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(U(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);if(i!==-1&&(n=e.slice(0,i),r=e.slice(i),!n))return r;let[a,...o]=n.split(`?`);return a+`/`+(o.length>0?`?${o.join(`?`)}`:``)+r}function Ke(e=``){return e.startsWith(`/`)}function K(e=``){return Ke(e)?e:`/`+e}function qe(e,t){if(q(t)||H(e))return e;let n=W(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return Y(n,e)}function Je(e,t){if(q(t))return e;let n=W(t);if(!e.startsWith(n))return e;let r=e[n.length];return r&&r!==`/`&&r!==`?`?e:`/`+e.slice(n.length).replace(/^\/+/,``)}function Ye(e,t){let n=Z(e);return n.search=Re({...V(n.search),...t}),$(n)}function q(e){return!e||e===`/`}function J(e){return e&&e!==`/`}function Y(e,...t){let n=e||``;for(let e of t.filter(e=>J(e)))if(n){let t=e.replace(We,``);n=G(n)+t}else n=e;return n}function Xe(...e){let t=/\/(?!\/)/,n=e.filter(Boolean),r=[],i=0;for(let e of n)if(!(!e||e===`/`)){for(let[n,a]of e.split(t).entries())if(!(!a||a===`.`)){if(a===`..`){if(r.length===1&&H(r[0]))continue;r.pop(),i--;continue}if(n===1&&r[r.length-1]?.endsWith(`:/`)){r[r.length-1]+=`/`+a;continue}r.push(a),i++}}let a=r.join(`/`);return i>=0?n[0]?.startsWith(`/`)&&!a.startsWith(`/`)?a=`/`+a:n[0]?.startsWith(`./`)&&!a.startsWith(`./`)&&(a=`./`+a):a=`../`.repeat(-1*i)+a,n[n.length-1]?.endsWith(`/`)&&!a.endsWith(`/`)&&(a+=`/`),a}function Ze(e,t){return B(W(e))===B(W(t))}function Qe(e,t,n={}){return n.trailingSlash||(e=G(e),t=G(t)),n.leadingSlash||(e=K(e),t=K(t)),n.encoding||(e=B(e),t=B(t)),e===t}function $e(e){return $({...Z(e),hash:``})}var X=Symbol.for(`ufo:protocolRelative`);function Z(e=``,t){let n=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(n){let[,e,t=``]=n;return{protocol:e.toLowerCase(),pathname:t,href:e+t,auth:``,host:``,search:``,hash:``}}if(!H(e,{acceptRelative:!0}))return t?Z(t+e):Q(e);let[,r=``,i,a=``]=e.replace(/\\/g,`/`).match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[],[,o=``,s=``]=a.match(/([^#/?]*)(.*)?/)||[];r===`file:`&&(s=s.replace(/\/(?=[A-Za-z]:)/,``));let{pathname:c,search:l,hash:u}=Q(s);return{protocol:r.toLowerCase(),auth:i?i.slice(0,Math.max(0,i.length-1)):``,host:o,pathname:c,search:l,hash:u,[X]:!r}}function Q(e=``){let[t=``,n=``,r=``]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:n,hash:r}}function $(e){let t=e.pathname||``,n=e.search?(e.search.startsWith(`?`)?``:`?`)+e.search:``,r=e.hash||``,i=e.auth?e.auth+`@`:``,a=e.host||``;return(e.protocol||e[X]?(e.protocol||``)+`//`:``)+i+a+t+n+r}export{pe as A,j as C,ce as D,he as E,ie as F,f as I,u as L,ge as M,me as N,ue as O,se as P,d as R,O as S,le as T,W as _,Ze as a,ye as b,Y as c,Z as d,qe as f,$e as g,Je as h,Qe as i,de as j,fe as k,Q as l,G as m,Ne as n,Ge as o,Ye as p,H as r,Xe as s,Pe as t,V as u,Ce as v,M as w,D as x,T as y,l as z};
@@ -1,9 +0,0 @@
1
- import{a as e,c as t}from"./BU83-NnX.js";import{$ as n,P as r,S as i,Ut as a,V as o,W as ee,Z as te,b as s,ct as ne,d as c,f as l,h as u,i as d,j as f,k as p,m as re,p as ie,pt as m,tt as h,xt as g,y as _}from"./CSkxz2NX.js";import{t as ae}from"./HclGiUj8.js";import{n as oe}from"./KZQX7xoM.js";import{r as se}from"./DBHNsT1Y.js";import{t as ce}from"./BCGafdXT.js";import{t as le}from"./Dz_Q3Lpw2.js";import{t as ue}from"./DIaZ2PTo2.js";import{t as v}from"./BDNMzG2s2.js";import{n as de}from"./DeYsUzhr.js";var fe={class:`term-title`},pe={class:`term-name`},me={class:`ts-chip aw-mono ts-pid`},he={key:0,class:`ts-chip ts-sub`},ge={class:`term-toolbar`},_e=[`data-state`],ve=[`data-live`],ye={class:`term-body`},be={key:0,class:`hitl-card`},xe={class:`hitl-head`},Se={class:`hitl-question`},Ce={key:0,class:`hitl-options`},we={class:`hitl-message`},Te={class:`hitl-row`},Ee={class:`hitl-row`},De={class:`term-hint aw-kicker`},y=Object.assign(v(i({__name:`OmpTerminalPanel`,props:p({pid:{},agentId:{},channelId:{},subtitle:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:[`update:open`],setup(i){let p=i,v=te(i,`open`),{t:y}=oe(),Oe=ue(),b=m(null),x=null,S=null,C=null,w=m(`idle`),T=m(!0),E=m(!1),D=m(!1),O=m(null),k=null,A=null,j=0,M=!1,N=0,P=``,F=[],I=-1,L={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`},R=!1;function z(){if(G.length===0)return;let e=G.join(``);G.length=0,x?.write(e),/\r?\n$/.test(e)||(R=!0)}function ke(){R&&(R=!1,x?.write(`\r
2
- `))}function B(e){x&&(z(),ke(),x.write(`\r\x1B[K`),x.write(e.endsWith(`\r
3
- `)||e.endsWith(`
4
- `)?e:`${e}\r\n`),V())}function V(){x&&(R||G.length>0||x.write(`\r\x1b[K${L.dim}❯${L.reset} ${L.cyan}${P}${L.reset}`))}function Ae(){G.length=0,R=!1,W=!1,K.clear(),U=``,P=``,F=[],I=-1,x?.reset(),V()}let je=()=>{let e=new Date;return`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}:${String(e.getSeconds()).padStart(2,`0`)}`};function H(e,t=160){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t)}…`:n}let U=``,W=!1,G=[],K=new Map;function Me(e){if(e.seq<=N)return;N=e.seq;let t=e.frame;switch(t.type){case`__terminal_notice`:{let e=String(t.level??`info`),n=e===`error`?L.red:e===`warning`?L.yellow:L.dim;B(`${L.dim}[${je()}]${L.reset} ${n}⚡ ${String(t.message??``)}${L.reset}`);return}case`__human_input`:U=String(t.text??``),B(`${L.bold}${L.cyan}❯ ${U}${L.reset}`);return;case`ready`:B(`${L.green}● omp ready${L.reset} ${L.dim}protocol v${String(t.protocolVersion??`?`)} · mode rpc-ui${L.reset}`);return;case`agent_start`:W=!1,K.clear(),B(`${L.dim}── agent turn started ──${L.reset}`);return;case`agent_end`:B(`${L.dim}── agent turn ended(${String(t.messageCount??`?`)} messages)──${L.reset}`);return;case`message_start`:if(String(t.role??``)===`user`){let e=String(t.text??``);if(e===U)return;B(`${L.bold}${L.cyan}❯ ${e.replace(/\n/g,`\r
5
- `)}${L.reset}`)}return;case`message_update`:{let e=t.assistantMessageEvent;if(!e)return;if(e.type===`text_delta`&&e.delta){W=!0;let t=typeof e.contentIndex==`number`?e.contentIndex:0;K.set(t,(K.get(t)??0)+e.delta.length),G.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=K.get(t)??0;e.content.length>n&&(W=!0,K.set(t,e.content.length),G.push(e.content.slice(n).replace(/\n/g,`\r
7
- `)))}else e.type===`thinking_delta`&&e.delta&&(W=!0,G.push(`${L.dimItalicMagenta}${e.delta.replace(/\n/g,`\r
8
- `)}${L.reset}`));return}case`message_end`:String(t.role??``)===`assistant`&&W&&(W=!1,z(),ke(),V());return;case`tool_execution_start`:B(` ${L.yellow}⚙ ${String(t.toolName??`tool`)}${L.reset}${L.dim}(${H(String(t.args??``),120)})${L.reset}`);return;case`tool_execution_update`:B(` ${L.dim}↳ … ${H(String(t.update??``),100)}${L.reset}`);return;case`tool_execution_end`:{let e=t.isError===!0?`${L.red}✗${L.reset}`:`${L.green}✓${L.reset}`,n=H(String(t.result??``),180);B(` ${e} ${L.dim}${n}${L.reset}`);return}case`host_tool_call`:B(` ${L.magenta}⇄ host:${String(t.toolName??`?`)}${L.reset}${L.dim}(${H(String(t.args??``),100)})${L.reset}`);return;case`extension_ui_request`:{let e=String(t.method??``);if(e===`cancel`){B(y(`ompTerminalPanel.k14jk3nu001`,{p0:L.dim,p1:String(t.targetId??``),p2:L.reset})),O.value&&O.value.id===String(t.targetId??``)&&(O.value=null);return}if(e===`notify`){B(` ${L.blue}ℹ ${String(t.message??``)}${L.reset}`);return}if(e===`select`||e===`confirm`||e===`input`||e===`editor`){let n=String(t.title??``);if(B(`${L.bold}${L.magenta}⚠ HITL · ${e}: ${n}${L.reset}`),Array.isArray(t.options))for(let e of t.options)B(` ${L.magenta}○${L.reset} ${String(e)}`);O.value={id:String(t.id??``),method:e,title:n,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:de()}}return}case`command_output`:B(`${L.dim}${String(t.text??``).replace(/\n/g,`\r
9
- `)}${L.reset}`);return;case`response`:{let e=String(t.command??``);if(e===`steer`||e===`follow_up`||e===`abort`||e===`prompt`){let n=t.success!==!1;B(` ${L.dim}· ${e} ${n?`accepted`:`failed: ${String(t.error??``)}`}${L.reset}`)}return}default:return}}let q=c(()=>p.pid!=null&&p.pid>0||!!p.agentId),J=m(null);function Ne(){let e=window.location.protocol===`https:`?`wss`:`ws`,t=encodeURIComponent(Oe.token??``),n=p.pid!=null&&p.pid>0?`pid=${p.pid}`:`agentId=${encodeURIComponent(p.agentId??``)}${p.channelId?`&channelId=${encodeURIComponent(p.channelId)}`:``}`;return`${e}://${window.location.host}/api/system/monitor/terminal/ws?${n}&token=${t}`}let Y=``;function Pe(t){switch(t.type){case`term.init`:J.value!==t.meta.pid&&(J.value=t.meta.pid,N=0,Y=``,B(y(`ompTerminalPanel.k68kkpc002`,{p0:L.dim,p1:t.meta.pid,p2:t.lastSeq,p3:L.reset}))),T.value=t.alive,E.value=t.running,D.value=t.streaming,O.value=t.hitl;return;case`term.frames`:for(let e of t.frames)Me(e);z();return;case`term.state`:T.value=t.alive,E.value=t.running,D.value=t.streaming;return;case`term.notice`:e.info(t.message);return;case`term.error`:{let e=`[${t.code}] ${t.message}`;if(e===Y)return;Y=e,B(`${L.red}✗ ${e}${L.reset}`);return}case`pong`:return}}function X(){if(!q.value||!Oe.token||k&&(k.readyState===WebSocket.OPEN||k.readyState===WebSocket.CONNECTING))return;M=!1,w.value=j===0?`connecting`:`retrying`;let e=new WebSocket(Ne());k=e,e.onopen=()=>{k===e&&(j=0,w.value=`open`)},e.onmessage=t=>{if(k===e)try{Pe(JSON.parse(t.data))}catch{}},e.onclose=()=>{if(k!==e)return;if(k=null,O.value=null,M||!q.value){w.value=`dead`;return}j+=1;let t=Math.min(1e3*2**Math.min(j-1,4),1e4);w.value=`retrying`,A=setTimeout(()=>{A=null,!M&&q.value&&X()},t)},e.onerror=()=>{}}function Fe(){M=!0,A&&=(clearTimeout(A),null),k?.close(),k=null}function Ie(e){if(k?.readyState===WebSocket.OPEN){k.send(JSON.stringify(e));return}B(y(`ompTerminalPanel.k59zj91003`,{p0:L.red,p1:L.reset}))}function Le(e){let t=e.trim();t&&(F.push(t),F=F.slice(-50),I=-1,Ie({type:`input`,text:t}))}function Re(){Ie({type:`abort`}),B(`${L.yellow}^C${L.reset}`)}function Z(e){Ie({type:`ui_response`,...e});let t=e.cancelled?`cancelled`:e.confirmed===void 0?`"${H(e.value??``,80)}"`:String(e.confirmed);B(y(`ompTerminalPanel.kvzhi95004`,{p0:L.green,p1:t,p2:L.reset})),O.value=null}let Q=m(``);n(O,e=>{Q.value=e?.prefill??e?.placeholder??``});let $=null;async function ze(){if(x||!b.value)return;let e=b.value,[{Terminal:t},{FitAddon:n}]=await Promise.all([ae(()=>import(`./BrIJiJSN.js`),[],import.meta.url),ae(()=>import(`./DIOBYJe3.js`),[],import.meta.url)]);x=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`}}),S=new n,x.loadAddon(S),x.open(e),V();let r=e=>{if(e.ctrlKey||e.metaKey||e.altKey){(e.key===`c`||e.key===`C`)&&(e.preventDefault(),e.stopPropagation(),Re());return}if(e.key===`Enter`){e.preventDefault(),e.stopPropagation(),x?.write(`\r\x1B[K`);let t=P;P=``,Le(t),V();return}if(e.key===`Backspace`){e.preventDefault(),e.stopPropagation(),P=P.slice(0,-1),V();return}if(e.key===`ArrowUp`||e.key===`ArrowDown`){if(F.length===0)return;e.preventDefault(),e.stopPropagation(),e.key===`ArrowUp`?I=I<0?F.length-1:Math.max(0,I-1):(I=I<0?-1:Math.min(F.length-1,I+1),I===F.length-1&&(I=-1)),P=I<0?``:F[I]??``,V();return}e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&(e.preventDefault(),e.stopPropagation(),P+=e.key,V())};e.addEventListener(`keydown`,r,!0),$=r,x.onData(e=>{e.length<=1||(P+=e.replace(/[\r\n]+$/,``),V())}),C=new ResizeObserver(()=>{try{S?.fit()}catch{}}),C.observe(e)}function Be(){$&&b.value&&(b.value.removeEventListener(`keydown`,$,!0),$=null),C?.disconnect(),C=null,x?.dispose(),x=null,S=null}n(v,e=>{e?f(async()=>{await ze(),Ae(),N=0,j=0,Y=``,B(`${L.dim}── AgentWorkShop harness terminal · ${p.pid?`PID ${p.pid}`:`agent ${p.agentId?.slice(0,8)}…`} ──${L.reset}`),X(),f(()=>{try{S?.fit()}catch{}})}):(Fe(),O.value=null)}),n(()=>[p.pid,p.agentId],()=>{v.value&&(Fe(),f(()=>{Ae(),N=0,j=0,Y=``,J.value=null,B(`${L.dim}── 切换目标 · ${p.pid?`PID ${p.pid}`:`agent ${p.agentId?.slice(0,8)}…`} ──${L.reset}`),X()}))}),r(()=>{Fe(),Be()});let Ve=()=>{G.length=0,R=!1,x?.clear(),V()},He=c(()=>T.value?D.value?{text:y(`terminal.stateStreaming`),color:`processing`}:E.value?{text:y(`terminal.stateRunning`),color:`warning`}:{text:y(`terminal.stateIdle`),color:`success`}:{text:y(`terminal.stateExited`),color:`error`}),Ue=c(()=>{switch(w.value){case`open`:return{text:y(`terminal.connOpen`),color:`success`};case`connecting`:return{text:y(`terminal.connConnecting`),color:`default`};case`retrying`:return{text:`${y(`terminal.connRetrying`)}(${j})`,color:`warning`};default:return{text:y(`terminal.connClosed`),color:`default`}}});return(e,n)=>{let r=t,te=ce,c=se,f=le;return o(),ie(f,{open:v.value,"onUpdate:open":n[7]||=e=>v.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:h(()=>[l(`div`,fe,[n[8]||=l(`span`,{class:`term-brand`},[l(`span`,{class:`i-tabler-terminal-2`})],-1),l(`span`,pe,a(g(y)(`terminal.title`)),1),l(`span`,me,`PID `+a(g(J)??i.pid??`–`),1),i.subtitle?(o(),u(`span`,he,a(i.subtitle),1)):re(``,!0)])]),extra:h(()=>[l(`div`,ge,[l(`span`,{class:`ts-chip aw-mono`,"data-state":g(w)},[n[9]||=l(`span`,{class:`ts-dot`},null,-1),_(a(g(Ue).text),1)],8,_e),l(`span`,{class:`ts-chip aw-mono`,"data-live":g(E)?g(D)?`streaming`:`running`:`idle`},a(g(He).text),9,ve),s(r,{size:`small`,danger:``,class:`ts-btn`,disabled:!g(E)&&!g(D),onClick:Re},{icon:h(()=>[...n[10]||=[l(`span`,{class:`i-tabler-player-stop`},null,-1)]]),default:h(()=>[_(` `+a(g(y)(`terminal.abort`)),1)]),_:1},8,[`disabled`]),s(r,{size:`small`,class:`ts-btn`,onClick:Ve},{icon:h(()=>[...n[11]||=[l(`span`,{class:`i-tabler-eraser`},null,-1)]]),default:h(()=>[_(` `+a(g(y)(`terminal.clear`)),1)]),_:1})])]),default:h(()=>[l(`div`,ye,[g(O)?(o(),u(`div`,be,[l(`div`,xe,[n[12]||=l(`span`,{class:`i-tabler-user-question`},null,-1),l(`b`,null,a(g(y)(`terminal.hitlTitle`)),1),s(te,{color:`magenta`},{default:h(()=>[_(a(g(O).method),1)]),_:1}),s(r,{size:`small`,type:`text`,danger:``,onClick:n[0]||=e=>Z({id:g(O).id,cancelled:!0})},{default:h(()=>[_(a(g(y)(`terminal.hitlCancel`)),1)]),_:1})]),l(`p`,Se,a(g(O).title),1),g(O).method===`select`?(o(),u(`div`,Ce,[(o(!0),u(d,null,ee(g(O).options??[],e=>(o(),ie(r,{key:e,block:``,onClick:t=>Z({id:g(O).id,value:e})},{default:h(()=>[_(a(e),1)]),_:2},1032,[`onClick`]))),128))])):g(O).method===`confirm`?(o(),u(d,{key:1},[l(`p`,we,a(g(O).message),1),l(`div`,Te,[s(r,{type:`primary`,onClick:n[1]||=e=>Z({id:g(O).id,confirmed:!0})},{default:h(()=>[_(a(g(y)(`terminal.hitlConfirm`)),1)]),_:1}),s(r,{onClick:n[2]||=e=>Z({id:g(O).id,confirmed:!1})},{default:h(()=>[_(a(g(y)(`terminal.hitlDeny`)),1)]),_:1})])],64)):(o(),u(d,{key:2},[s(c,{value:g(Q),"onUpdate:value":n[3]||=e=>ne(Q)?Q.value=e:null,rows:3,placeholder:g(O).placeholder,class:`hitl-textarea`,onPressEnter:n[4]||=e=>Z({id:g(O).id,value:g(Q)})},null,8,[`value`,`placeholder`]),l(`div`,Ee,[s(r,{type:`primary`,onClick:n[5]||=e=>Z({id:g(O).id,value:g(Q)})},{default:h(()=>[_(a(g(y)(`terminal.hitlSubmit`)),1)]),_:1}),s(r,{onClick:n[6]||=e=>Z({id:g(O).id,cancelled:!0})},{default:h(()=>[_(a(g(y)(`terminal.hitlCancel`)),1)]),_:1})])],64))])):re(``,!0),l(`div`,{ref_key:`hostEl`,ref:b,class:`term-host`},null,512),l(`div`,De,a(g(y)(`terminal.hint`)),1)])]),_:1},8,[`open`])}}}),[[`__scopeId`,`data-v-01e245c4`]]),{__name:`WorkshopTerminalOmpTerminalPanel`});export{y as t};
@@ -1,4 +0,0 @@
1
- import{w as e}from"./DdD9mCHM.js";import{d as t,pt as n}from"./CSkxz2NX.js";import{i as r,t as i}from"./YnQxK3eG.js";import{t as a}from"./aLLjF2K-2.js";var o=r(`runtime-config`,()=>{let r=n([]),o=n([]),s=n({}),c=n({}),l=n({}),u=n(``),d=n(!1),f=n(!1),p=n(null),m=t(()=>{let e=new Map;for(let t of o.value)e.set(t.id,t);let t=new Map;for(let e of r.value){let n=e.group||`__ungrouped__`,r=t.get(n);r?r.push(e):t.set(n,[e])}if(!o.value.length)return[...t.entries()].map(([e,t],n)=>({id:e,label:e,description:``,order:n*10,collapsed:!1,collapsible:!0,icon:``,source:`builtin`,fieldCount:t.length}));let n=o.value.map(e=>({...e,fieldCount:e.fieldCount??t.get(e.id)?.length??0})),i=new Set(n.map(e=>e.id));for(let[e,r]of t)i.has(e)||n.push({id:e,label:e===`__ungrouped__`?`其他`:e,description:``,order:9999,collapsed:!1,collapsible:!0,icon:``,source:`builtin`,fieldCount:r.length});return n.sort((e,t)=>e.order-t.order||e.id.localeCompare(t.id))});function h(e){return r.value.filter(t=>(t.group||`__ungrouped__`)===e)}function g(e){return l.value[e]??`config.yml`}function _(e){return s.value[e]}async function v(){f.value=!0;try{let e=await a().get(`/system/settings`);y(e.data??e)}catch(e){console.warn(`[runtime-config] 读取设置失败:`,e)}finally{f.value=!1}}function y(e){r.value=e.descriptors??[],o.value=e.groups??[],s.value=e.effective??{},c.value=e.overrides??{},l.value=e.sources??{},u.value=e.settingsPath??``,d.value=!0}async function b(){let e=await a().get(`/system/config-groups`),t=e.data??e;return o.value=t.groups??[],o.value}async function x(e){let t=await a().post(`/system/config-groups`,e),n=t.data??t;return await b(),n.group}async function S(e,t){await a().request({method:`PATCH`,url:`/system/config-groups/${encodeURIComponent(e)}`,data:t}),await b()}async function C(e,t){await a().request({method:`DELETE`,url:`/system/config-groups/${encodeURIComponent(e)}${t?`?reassignTo=${encodeURIComponent(t)}`:``}`}),await b()}async function w(e){let t=await a().request({method:`PATCH`,url:`/system/settings`,data:{override:e}}),n=t.data==null?t:t.data;return n.effective&&(s.value=n.effective),n.sources&&(l.value=n.sources),n}async function T(){let e=await a().post(`/system/settings/reset`),t=e.data??e;return t.changed?.length&&await v(),t}let E=null;function D(){k();let t=e().public.apiBase||`/api`,n=i(`token`).value??``;E=new AbortController,(async()=>{try{let e=await fetch(`${t}/system/settings/events`,{headers:n?{Authorization:`Bearer ${n}`}:{},signal:E?.signal});if(!e.ok||!e.body)return;let r=e.body.getReader(),i=new TextDecoder,a=``;try{for(;;){let{done:e,value:t}=await r.read();if(e)break;a+=i.decode(t,{stream:!0});let n;for(;(n=a.indexOf(`
2
-
3
- `))>=0;){let e=a.slice(0,n);a=a.slice(n+2);let t=e.split(`
4
- `).find(e=>e.startsWith(`data:`));if(!t)continue;let r=t.slice(5).trim();if(r)try{O(JSON.parse(r))}catch{}}}}catch(e){e?.name!==`AbortError`&&console.warn(`[runtime-config] SSE 读取中断:`,e)}}catch(e){e?.name!==`AbortError`&&console.warn(`[runtime-config] SSE 连接失败:`,e)}})()}function O(e){p.value=e,e.effective&&(s.value=e.effective),e.sources&&(l.value=e.sources),e.overrides&&(c.value=e.overrides),Array.isArray(e.changed)&&e.changed.includes(`config-groups`)&&b().catch(()=>{})}function k(){E&&=(E.abort(),null)}return{descriptors:r,groupsRaw:o,effective:s,overrides:c,sources:l,settingsPath:u,loaded:d,loading:f,lastEvent:p,groups:m,fieldsOf:h,sourceOf:g,valueOf:_,fetchAll:v,fetchGroups:b,createGroup:x,updateGroup:S,deleteGroup:C,patch:w,resetAll:T,startEvents:D,stopEvents:k}});export{o as t};
@@ -1 +0,0 @@
1
- import{G as e,V as t,h as n}from"./CSkxz2NX.js";import{t as r}from"./BDNMzG2s2.js";var i={},a={class:`town-layout`};function o(r,i){return t(),n(`div`,a,[e(r.$slots,`default`,{},void 0,!0)])}var s=r(i,[[`render`,o],[`__scopeId`,`data-v-78268de0`]]);export{s as default};
@@ -1 +0,0 @@
1
- import{a as e}from"./BU83-NnX.js";import{w as t}from"./DdD9mCHM.js";import{$ as n,Ht as r,R as i,S as a,Ut as o,V as s,Vt as c,W as l,b as u,ct as ee,d,dt as te,f,h as p,i as m,m as h,nt as g,p as _,pt as v,tt as y,xt as b,y as x}from"./CSkxz2NX.js";import{d as S,f as C,l as ne,u as w}from"./D6uzXueg.js";import{n as re,t as ie}from"./xh3_vYcu.js";import{n as ae}from"./KZQX7xoM.js";import{t as oe}from"./aWWIh8YL.js";import{t as se}from"./DBHNsT1Y.js";import{t as ce}from"./DzbFpZRk.js";import{t as le}from"./BYhEUx8t.js";import{t as ue}from"./CYWVXZTS2.js";import{n as de,r as fe,t as pe}from"./DHFrCUxA2.js";import{t as me}from"./DZtm4l-P2.js";import{t as he}from"./CClOy-Hz2.js";import{t as ge}from"./DIaZ2PTo2.js";import{t as _e}from"./DeyBFhKH2.js";import{t as T}from"./BDNMzG2s2.js";import{t as E}from"./D0ZBQrN_2.js";import{t as ve}from"./BN6iuJEg2.js";import{t as ye}from"./zq5t1vyX.js";var be={class:`settings-page`},xe={class:`aw-page-head`},Se={class:`aw-kicker`},Ce={class:`aw-stamp`},we={class:`settings-layout`},Te={class:`settings-nav`},Ee=[`onClick`],De={class:`settings-body`},Oe={class:`section-title`},ke={class:`section-desc`},Ae={class:`set-row`},je={class:`set-text`},Me={class:`set-title`},Ne={class:`set-sub`},Pe={class:`color-swatches`},Fe=[`title`,`onClick`],Ie={class:`swatch-label`},Le={key:0,class:`i-tabler-check swatch-check`},Re={class:`toggle-row`},ze={class:`set-text`},Be={class:`set-title`},Ve={class:`set-sub`},He=[`aria-checked`],Ue={class:`toggle-row`},We={class:`set-text`},Ge={class:`set-title`},Ke={class:`set-sub`},qe={class:`section-title`},Je={class:`section-desc`},Ye={class:`rt-groups-bar`},Xe=[`title`],Ze={class:`rt-groups-count`},Qe={key:1,class:`rt-group-form`},$e=[`disabled`],et=[`role`,`tabindex`,`onClick`,`onKeydown`],tt=[`onKeydown`],nt=[`onClick`],rt={key:3,class:`rt-group-title`},it={class:`rt-group-badge`},at={class:`rt-group-fields`},ot={key:4,class:`rt-group-desc`},st=[`disabled`,`title`,`onClick`],ct=[`disabled`,`title`,`onClick`],lt=[`disabled`,`title`,`onClick`],ut=[`disabled`,`title`,`onClick`],dt=[`disabled`,`title`,`onClick`],ft={class:`rt-group-body`},pt={key:0,class:`rt-group-empty`},mt={class:`rt-main`},ht={class:`rt-title`},gt={class:`rt-sub`},_t={class:`rt-ctrl`},vt={key:3,class:`rt-color`},yt=[`value`,`onInput`],bt=[`title`,`onClick`],xt={class:`rt-actions`},St=[`disabled`],Ct={class:`rt-path aw-mono`},wt={class:`rt-group-title plugin-group-title`},Tt={class:`section-desc`},Et={key:2,class:`identity-note`},Dt={class:`plugin-main`},Ot={class:`rt-title`},kt={class:`aw-mono`},At={key:0,class:`rt-tag`},jt={key:1,class:`rt-tag src-runtime`},Mt={key:2,class:`rt-tag restart`},Nt={class:`rt-sub`},Pt={class:`rt-ctrl`},Ft={key:0,class:`plugin-health faint`},It=[`onClick`],Lt=[`aria-checked`,`disabled`,`onClick`],Rt={key:0,class:`identity-note`},zt={class:`section-title`},Bt={class:`section-desc`},Vt={class:`aw-mono`},Ht={class:`identity-note`},Ut=`aw.settings.groups.collapsed`,Wt=T(a({__name:`settings`,setup(a){let{t:T,locale:Wt,locales:Gt,setLocale:Kt}=ae(),D=re(),O=ie(),qt=t().public,k=ge(),A=ve(),j=v(`appearance`),M=_e(),N=v({}),P=v(new Set),F=v(!1),I=v(null);function L(){N.value={...M.effective},P.value=new Set}n(()=>M.loaded,e=>{e&&L()},{immediate:!0}),n(()=>M.effective,()=>{P.value.size===0&&L()},{deep:!0});function R(e){P.value.add(e),I.value=null}async function Jt(){if(P.value.size){F.value=!0,I.value=null;try{let e={};for(let t of P.value)e[t]=N.value[t];let t=await M.patch(e);L();let n=t.restartRequired??[];I.value=n.length?{type:`warning`,text:T(`settings.runtime.restartNotice`,{keys:n.join(`, `)})}:{type:`success`,text:T(`settings.runtime.savedLive`)}}catch(e){let t=e;I.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}finally{F.value=!1}}}async function Yt(e){try{await M.patch({[e]:null}),P.value.delete(e),N.value[e]=M.effective[e],I.value={type:`success`,text:T(`settings.runtime.keyReset`,{key:e})}}catch(e){let t=e;I.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}}async function Xt(){try{await M.resetAll(),L(),I.value={type:`success`,text:T(`settings.runtime.resetAllDone`)}}catch(e){let t=e;I.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}}let Zt={server:`settings.runtime.groupServer`,app:`settings.runtime.groupApp`,api:`settings.runtime.groupApi`,theme:`settings.runtime.groupTheme`,i18n:`settings.runtime.groupI18n`,security:`settings.runtime.groupSecurity`,daq:`settings.runtime.groupDaq`,memory:`settings.runtime.groupMemory`,omp:`settings.runtime.groupOmp`,harness:`settings.runtime.groupHarness`,dcw:`settings.runtime.groupDcw`,workshop:`settings.runtime.groupWorkshop`,backup:`settings.runtime.groupBackup`,retention:`settings.runtime.groupRetention`,log:`settings.runtime.groupLog`,plugins:`settings.runtime.groupPlugins`};function Qt(e){if(e.labelKey&&T(e.labelKey)!==e.labelKey)return T(e.labelKey);if(e.label&&e.label!==e.id)return e.label;let t=Zt[e.id];return t?T(t):e.label||e.id}function $t(e){return e.source===`plugin`?e.plugin?`${T(`settings.groups.srcPlugin`)}: ${e.plugin}`:T(`settings.groups.srcPlugin`):e.source===`user`?T(`settings.groups.srcUser`):T(`settings.groups.srcBuiltin`)}function en(e){return e===`runtime`?`src-runtime`:e===`env`?`src-env`:`src-yaml`}function tn(e){let t=e.labelKey;return t&&T(t)!==t?T(t):e.label}let z=v({});function nn(){try{z.value=JSON.parse(localStorage.getItem(Ut)??`{}`)??{}}catch{z.value={}}}function rn(){try{localStorage.setItem(Ut,JSON.stringify(z.value))}catch{}}function B(e){let t=z.value[e.id];return t===void 0?e.collapsed:t}function V(e){e.collapsible&&(z.value={...z.value,[e.id]:!B(e)},rn())}function an(){let e=M.groups.filter(e=>e.collapsible),t=e.some(e=>!B(e)),n={...z.value};for(let r of e)n[r.id]=t;z.value=n,rn()}let on=d(()=>M.groups.filter(e=>e.collapsible).some(e=>!B(e))),H=d(()=>k.isAdmin),U=v(!1),W=te({label:``,description:``,collapsed:!1}),G=v(``),K=v(``),q=v(``);async function sn(){if(W.label.trim()){G.value=`create`;try{await M.createGroup({label:W.label.trim(),description:W.description.trim(),collapsed:W.collapsed}),U.value=!1,W.label=``,W.description=``,W.collapsed=!1,e.success(T(`settings.groups.created`))}catch(t){e.error(E(t,T(`settings.groups.createFail`)))}finally{G.value=``}}}function cn(e){K.value=e.id,q.value=e.label}async function ln(t){let n=q.value.trim();if(K.value=``,n){G.value=t;try{await M.updateGroup(t,{label:n}),e.success(T(`settings.groups.renamed`))}catch(t){e.error(E(t,T(`settings.groups.updateFail`)))}finally{G.value=``}}}async function un(t,n){let r=[...M.groups],i=r.findIndex(e=>e.id===t),a=i+n;if(i<0||a<0||a>=r.length)return;let o=r[i],s=r[a];G.value=t;try{let e=[...r];e.splice(i,1),e.splice(a,0,o);let t=(a+1)*10,n=(i+1)*10;await M.updateGroup(o.id,{order:t}),await M.updateGroup(s.id,{order:n})}catch(t){e.error(E(t,T(`settings.groups.updateFail`)))}finally{G.value=``}}async function dn(t){G.value=t.id;try{await M.updateGroup(t.id,{collapsed:!t.collapsed})}catch(t){e.error(E(t,T(`settings.groups.updateFail`)))}finally{G.value=``}}async function fn(t){let n=t.fieldCount??0;if(n>0){e.warning(T(`settings.groups.deleteHasFields`,{p0:Qt(t),p1:n}));return}G.value=t.id;try{await M.deleteGroup(t.id),e.success(T(`settings.groups.deleted`))}catch(t){e.error(E(t,T(`settings.groups.deleteFail`)))}finally{G.value=``}}let J=v([]),Y=v(!1),pn=v(!1),X=v(new Set),Z=v({}),mn=e=>(e.routes??[]).some(e=>String(e.path||``).endsWith(`/health`));async function hn(){Y.value=!0;try{let e=await A.listPlugins(),t=e?.plugins??e?.data?.plugins??[];J.value=Array.isArray(t)?t:[],pn.value=!0}catch(t){e.error(E(t,T(`plugins.loadFail`)))}finally{Y.value=!1}}async function gn(t,n){if(!X.value.has(t.name)){X.value.add(t.name);try{n?await A.enablePlugin(t.name):await A.disablePlugin(t.name),t.enabled=n,e.success(T(n?`plugins.enabled`:`plugins.disabled`))}catch(t){e.error(E(t,T(`plugins.adminRequired`)))}finally{X.value.delete(t.name)}}}async function _n(e){if(mn(e)){Z.value={...Z.value,[e.name]:`checking`};try{let t=await A.pluginHealth(e.name);Z.value={...Z.value,[e.name]:vn(e.name,t)}}catch(t){Z.value={...Z.value,[e.name]:{ok:!1,reason:E(t,T(`plugins.loadFail`))}}}}}function vn(e,t){if(e===`rag-bridge`){let e=t.backend,n=t.web,r=!!e?.ok&&!!n?.ok,i=e?.ok?n?.error||n?.status||`web`:e?.error||e?.status||`backend`;return r?{ok:!0}:{ok:!1,reason:i}}if(e===`diag-bridge`){let e=t.remote;return e?.status===`ok`?{ok:!0}:{ok:!1,reason:e?.status||`remote`}}return{ok:!0}}function yn(e){return Z.value[e]===`checking`}function Q(e){let t=Z.value[e];return t&&t!==`checking`?t:null}function bn(e){return X.value.has(e)}n(j,e=>{e===`runtime`&&!pn.value&&!Y.value&&k.isLoggedIn&&hn()},{immediate:!0}),i(nn);let $=String(qt.primaryColor),xn=[{value:$,label:T(`settings.accentInk`)},{value:`#c9963f`,label:T(`settings.accentStone`)},{value:`#44615a`,label:T(`settings.accentMoss`)},{value:`#3f6094`,label:T(`settings.accentSlate`)},{value:`#6b5aa0`,label:T(`settings.accentPlum`)},{value:`#9c5744`,label:T(`settings.accentClay`)}],Sn=d(()=>D.accent??$);function Cn(t){D.setAccent(t===$?null:t),e.success(T(`settings.accentApplied`))}function wn(){D.setAccent(null),e.success(T(`settings.accentReset`))}let Tn=d(()=>Gt.value.map(e=>({label:e.name,value:e.code}))),En=e=>{e!=null&&(localStorage.setItem(`aw.locale`,String(e)),Kt(String(e)),window.location.reload())},Dn=d(()=>[{label:T(`home.fields.name`),value:O.name},{label:T(`home.fields.version`),value:`v${O.version}`},{label:T(`home.fields.mode`),value:O.mode},{label:T(`home.fields.apiBase`),value:`${O.apiBase} (${qt.apiTimeout}ms)`},{label:T(`home.fields.primary`),value:$},{label:`i18n`,value:Wt.value}]),On=d(()=>[{key:`appearance`,icon:`i-tabler-palette`,label:T(`settings.theme`)},{key:`runtime`,icon:`i-tabler-settings`,label:T(`settings.runtimeTab`)},{key:`system`,icon:`i-tabler-server-2`,label:T(`settings.systemTab`)}]);return(e,t)=>{let n=oe,i=ce,a=se,d=ue,te=pe,v=he,re=me,ie=ye,ae=fe,ge=de,_e=le;return s(),p(`div`,be,[f(`div`,xe,[f(`div`,null,[f(`p`,Se,o(b(T)(`menu.system`))+` / settings `,1),f(`h1`,null,o(b(T)(`settings.title`)),1)]),f(`span`,Ce,`v`+o(b(O).version),1)]),u(_e,{bordered:!1,class:`settings-card`},{default:y(()=>[f(`div`,we,[f(`div`,Te,[(s(!0),p(m,null,l(b(On),e=>(s(),p(`button`,{key:e.key,class:c([`nav-item`,{active:b(j)===e.key}]),onClick:t=>j.value=e.key},[f(`span`,{class:c(e.icon)},null,2),f(`span`,null,o(e.label),1)],10,Ee))),128))]),f(`div`,De,[g(f(`div`,null,[f(`h3`,Oe,o(b(T)(`settings.theme`)),1),f(`p`,ke,o(b(T)(`settings.appearanceDesc`)),1),f(`div`,Ae,[f(`div`,je,[f(`div`,Me,o(b(T)(`settings.primaryColor`)),1),f(`div`,Ne,o(b(T)(`settings.accentDesc`)),1)])]),f(`div`,Pe,[(s(),p(m,null,l(xn,e=>f(`button`,{key:e.value,class:c([`swatch`,{on:b(Sn).toLowerCase()===e.value.toLowerCase()}]),style:r({"--sw":e.value}),title:e.label,onClick:t=>Cn(e.value)},[t[10]||=f(`span`,{class:`swatch-dot`},null,-1),f(`span`,Ie,o(e.label),1),b(Sn).toLowerCase()===e.value.toLowerCase()?(s(),p(`span`,Le)):h(``,!0)],14,Fe)),64))]),f(`button`,{class:`aw-pill outline reset-btn`,onClick:wn},[t[11]||=f(`span`,{class:`i-tabler-rotate`},null,-1),x(` `+o(b(T)(`settings.accentResetAction`)),1)]),f(`div`,Re,[f(`div`,ze,[f(`div`,Be,o(b(D).isDark?b(T)(`common.dark`):b(T)(`common.light`)),1),f(`div`,Ve,o(b(T)(`settings.darkDesc`)),1)]),f(`button`,{class:c([`switch`,{on:b(D).isDark}]),role:`switch`,"aria-checked":b(D).isDark,onClick:t[0]||=e=>b(D).toggleDark()},[...t[12]||=[f(`span`,{class:`knob`},null,-1)]],10,He)]),f(`div`,Ue,[f(`div`,We,[f(`div`,Ge,o(b(T)(`header.language`)),1),f(`div`,Ke,o(b(T)(`settings.languageDesc`)),1)]),u(n,{value:b(Wt),options:b(Tn),style:{width:`140px`},onChange:En},null,8,[`value`,`options`])])],512),[[w,b(j)===`appearance`]]),g(f(`div`,null,[f(`h3`,qe,o(b(T)(`settings.runtimeTab`)),1),f(`p`,Je,o(b(T)(`settings.runtime.desc`)),1),b(I)?(s(),_(i,{key:0,type:b(I).type,"show-icon":``,class:`rt-notice`,message:b(I).text},null,8,[`type`,`message`])):h(``,!0),f(`div`,Ye,[f(`button`,{class:`aw-pill outline rt-groups-toggle`,title:b(T)(`settings.groups.toggleAll`),onClick:an},[f(`span`,{class:c(b(on)?`i-tabler-chevrons-up`:`i-tabler-chevrons-down`)},null,2),x(` `+o(b(on)?b(T)(`settings.groups.collapseAll`):b(T)(`settings.groups.expandAll`)),1)],8,Xe),f(`span`,Ze,o(b(T)(`settings.groups.count`,{p0:b(M).groups.length})),1),b(H)?(s(),p(`button`,{key:0,class:`aw-pill outline rt-groups-add`,onClick:t[1]||=e=>U.value=!b(U)},[t[13]||=f(`span`,{class:`i-tabler-plus`},null,-1),x(` `+o(b(T)(`settings.groups.newGroup`)),1)])):h(``,!0)]),b(H)&&b(U)?(s(),p(`div`,Qe,[u(a,{value:b(W).label,"onUpdate:value":t[2]||=e=>b(W).label=e,placeholder:b(T)(`settings.groups.namePlaceholder`),style:{width:`220px`},onPressEnter:sn},null,8,[`value`,`placeholder`]),u(a,{value:b(W).description,"onUpdate:value":t[3]||=e=>b(W).description=e,placeholder:b(T)(`settings.groups.descPlaceholder`),style:{width:`320px`},onPressEnter:sn},null,8,[`value`,`placeholder`]),u(d,{checked:b(W).collapsed,"onUpdate:checked":t[4]||=e=>b(W).collapsed=e},{default:y(()=>[x(o(b(T)(`settings.groups.defaultCollapsed`)),1)]),_:1},8,[`checked`]),f(`button`,{class:`aw-pill primary`,disabled:!b(W).label.trim()||b(G)===`create`,onClick:sn},o(b(G)===`create`?`…`:b(T)(`settings.groups.create`)),9,$e),f(`button`,{class:`aw-pill outline`,onClick:t[5]||=e=>U.value=!1},o(b(T)(`settings.groups.cancel`)),1)])):h(``,!0),(s(!0),p(m,null,l(b(M).groups,e=>(s(),p(`section`,{key:e.id,class:c([`rt-group`,{collapsed:B(e),"grp-plugin":e.source===`plugin`}])},[f(`header`,{class:`rt-group-head`,role:e.collapsible?`button`:void 0,tabindex:e.collapsible?0:void 0,onClick:t=>V(e),onKeydown:[S(C(t=>V(e),[`prevent`]),[`enter`]),S(C(t=>V(e),[`prevent`]),[`space`])]},[e.collapsible?(s(),p(`span`,{key:0,class:c([`rt-caret`,B(e)?`i-tabler-chevron-right`:`i-tabler-chevron-down`])},null,2)):h(``,!0),e.icon?(s(),p(`span`,{key:1,class:c([`rt-group-icon`,e.icon])},null,2)):h(``,!0),b(K)===e.id?(s(),p(m,{key:2},[g(f(`input`,{"onUpdate:modelValue":t[6]||=e=>ee(q)?q.value=e:null,class:`rt-rename aw-mono`,onClick:t[7]||=C(()=>{},[`stop`]),onKeydown:[S(C(t=>ln(e.id),[`prevent`]),[`enter`]),t[8]||=S(C(e=>K.value=``,[`prevent`]),[`esc`])]},null,40,tt),[[ne,b(q)]]),f(`button`,{class:`mini-btn`,onClick:C(t=>ln(e.id),[`stop`])},o(b(T)(`settings.groups.ok`)),9,nt)],64)):(s(),p(`h4`,rt,o(Qt(e)),1)),f(`span`,it,o($t(e)),1),f(`span`,at,o(b(T)(`settings.groups.fields`,{p0:e.fieldCount??0})),1),e.description?(s(),p(`span`,ot,o(e.description),1)):h(``,!0),b(H)&&e.source!==`plugin`?(s(),p(`span`,{key:5,class:`rt-group-ops`,onClick:t[9]||=C(()=>{},[`stop`])},[f(`button`,{class:`mini-btn`,disabled:b(G)===e.id,title:b(T)(`settings.groups.moveUp`),onClick:t=>un(e.id,-1)},[...t[14]||=[f(`span`,{class:`i-tabler-arrow-up`},null,-1)]],8,st),f(`button`,{class:`mini-btn`,disabled:b(G)===e.id,title:b(T)(`settings.groups.moveDown`),onClick:t=>un(e.id,1)},[...t[15]||=[f(`span`,{class:`i-tabler-arrow-down`},null,-1)]],8,ct),f(`button`,{class:`mini-btn`,disabled:b(G)===e.id,title:b(T)(`settings.groups.rename`),onClick:t=>cn(e)},[...t[16]||=[f(`span`,{class:`i-tabler-pencil`},null,-1)]],8,lt),f(`button`,{class:`mini-btn`,disabled:b(G)===e.id,title:b(T)(`settings.groups.defaultCollapsed`),onClick:t=>dn(e)},[f(`span`,{class:c(e.collapsed?`i-tabler-chevrons-down`:`i-tabler-chevrons-up`)},null,2)],8,ut),e.source===`user`?(s(),p(`button`,{key:0,class:`mini-btn`,disabled:b(G)===e.id,title:b(T)(`settings.groups.delete`),onClick:t=>fn(e)},[...t[17]||=[f(`span`,{class:`i-tabler-trash`},null,-1)]],8,dt)):h(``,!0)])):h(``,!0)],40,et),g(f(`div`,ft,[e.fieldCount??0?h(``,!0):(s(),p(`p`,pt,o(b(T)(`settings.groups.emptyHint`)),1)),(s(!0),p(m,null,l(b(M).fieldsOf(e.id),e=>(s(),p(`div`,{key:e.key,class:`rt-row`},[f(`div`,mt,[f(`div`,ht,[x(o(tn(e))+` `,1),f(`span`,{class:c([`rt-tag`,en(b(M).sourceOf(e.key))])},o(b(M).sourceOf(e.key)),3),f(`span`,{class:c([`rt-tag`,e.applies])},o(e.applies===`live`?b(T)(`settings.runtime.live`):b(T)(`settings.runtime.restart`)),3)]),f(`div`,gt,o(e.description),1)]),f(`div`,_t,[e.type===`number`?(s(),_(te,{key:0,value:b(N)[e.key],"onUpdate:value":t=>b(N)[e.key]=t,min:e.min,max:e.max,onChange:t=>R(e.key)},null,8,[`value`,`onUpdate:value`,`min`,`max`,`onChange`])):e.type===`boolean`?(s(),_(v,{key:1,checked:b(N)[e.key],"onUpdate:checked":t=>b(N)[e.key]=t,onChange:t=>R(e.key)},null,8,[`checked`,`onUpdate:checked`,`onChange`])):e.type===`select`?(s(),_(n,{key:2,value:b(N)[e.key],"onUpdate:value":t=>b(N)[e.key]=t,style:{width:`160px`},options:(e.options??[]).map(e=>({label:e,value:e})),onChange:t=>R(e.key)},null,8,[`value`,`onUpdate:value`,`options`,`onChange`])):e.type===`color`?(s(),p(`span`,vt,[f(`input`,{type:`color`,value:String(b(N)[e.key]??`#35e0a0`),onInput:t=>{b(N)[e.key]=t.target.value,R(e.key)}},null,40,yt),u(a,{value:String(b(N)[e.key]??``),style:{width:`110px`},class:`aw-mono`,onChange:t=>{b(N)[e.key]=t.target.value,R(e.key)}},null,8,[`value`,`onChange`])])):(s(),_(a,{key:4,value:b(N)[e.key],"onUpdate:value":t=>b(N)[e.key]=t,style:{width:`220px`},onChange:t=>R(e.key)},null,8,[`value`,`onUpdate:value`,`onChange`])),f(`button`,{class:`aw-pill outline rt-reset`,title:b(T)(`settings.runtime.resetKey`),onClick:t=>Yt(e.key)},[...t[18]||=[f(`span`,{class:`i-tabler-rotate`},null,-1)]],8,bt)])]))),128))],512),[[w,!B(e)]])],2))),128)),f(`div`,xt,[f(`button`,{class:`aw-pill primary`,disabled:!b(P).size||b(F),onClick:Jt},[t[19]||=f(`span`,{class:`i-tabler-device-floppy`},null,-1),x(` `+o(b(F)?`…`:b(T)(`settings.runtime.save`)),1)],8,St),f(`button`,{class:`aw-pill outline`,onClick:Xt},o(b(T)(`settings.runtime.resetAll`)),1),f(`span`,Ct,o(b(M).settingsPath),1)]),f(`h4`,wt,o(b(T)(`plugins.title`)),1),f(`p`,Tt,o(b(T)(`plugins.desc`)),1),b(k).isLoggedIn?(s(),_(re,{key:3,spinning:b(Y)},{default:y(()=>[(s(!0),p(m,null,l(b(J),e=>(s(),p(`div`,{key:e.name,class:c([`plugin-row`,{off:e.enabled===!1}])},[f(`div`,Dt,[f(`div`,Ot,[f(`span`,kt,o(e.name),1),e.version?(s(),p(`span`,At,`v`+o(e.version),1)):h(``,!0),e.builtin?(s(),p(`span`,jt,o(b(T)(`plugins.builtin`)),1)):h(``,!0),e.error?(s(),p(`span`,Mt,o(e.error),1)):h(``,!0)]),f(`div`,Nt,o(e.description||`—`),1)]),f(`div`,Pt,[yn(e.name)?(s(),p(`span`,Ft,[t[20]||=f(`span`,{class:`i-tabler-loader-2 spin`},null,-1),x(` `+o(b(T)(`plugins.healthChecking`)),1)])):Q(e.name)?(s(),p(`span`,{key:1,class:c([`plugin-health`,Q(e.name).ok?`ok`:`bad`])},[f(`span`,{class:c(Q(e.name).ok?`i-tabler-circle-check`:`i-tabler-alert-circle`)},null,2),x(` `+o(Q(e.name).ok?b(T)(`plugins.healthOk`):`${b(T)(`plugins.healthBad`)}: ${Q(e.name).reason??``}`),1)],2)):h(``,!0),mn(e)?(s(),p(`button`,{key:2,class:`aw-pill outline rt-reset`,onClick:t=>_n(e)},[t[21]||=f(`span`,{class:`i-tabler-heartbeat`},null,-1),x(` `+o(b(T)(`plugins.healthCheck`)),1)],8,It)):h(``,!0),f(`button`,{class:c([`switch`,{on:e.enabled!==!1}]),role:`switch`,"aria-checked":e.enabled!==!1,disabled:bn(e.name),onClick:t=>gn(e,e.enabled===!1)},[...t[22]||=[f(`span`,{class:`knob`},null,-1)]],10,Lt)])],2))),128)),b(J).length===0&&!b(Y)?(s(),p(`div`,Rt,o(b(T)(`plugins.empty`)),1)):h(``,!0)]),_:1},8,[`spinning`])):(s(),p(`div`,Et,o(b(T)(`plugins.needLogin`)),1)),b(J).length?(s(),_(ie,{key:4,"slot-name":`settings.plugins`})):h(``,!0)],512),[[w,b(j)===`runtime`]]),g(f(`div`,null,[f(`h3`,zt,o(b(T)(`settings.systemTab`)),1),f(`p`,Bt,o(b(T)(`settings.systemDesc`)),1),u(ge,{bordered:``,column:1,size:`small`},{default:y(()=>[(s(!0),p(m,null,l(b(Dn),e=>(s(),_(ae,{key:e.label,label:e.label},{default:y(()=>[f(`span`,Vt,o(e.value),1)]),_:2},1032,[`label`]))),128))]),_:1}),f(`p`,Ht,o(b(k).isLoggedIn?`${b(T)(`settings.identity`)}: ${b(k).user?.name} (${b(k).user?.role})`:b(T)(`settings.identityGuest`)),1)],512),[[w,b(j)===`system`]])])])]),_:1})])}}}),[[`__scopeId`,`data-v-ed43cc9b`]]);export{Wt as default};
@@ -1 +0,0 @@
1
- import{C as e,F as t,L as n,R as r,z as i}from"./DdD9mCHM.js";import{C as a,D as o,E as s,I as c,M as l,P as u,at as d,ct as f,et as p,pt as m,yt as h}from"./CSkxz2NX.js";var g=i({docsBase:n,reporters:r}),_=new Set([`link`,`style`,`script`,`noscript`]),v=new Set([`title`,`titleTemplate`,`script`,`style`,`noscript`]),y=new Set([`base`,`meta`,`link`,`style`,`script`,`noscript`]),b=new Set([`title`,`base`,`htmlAttrs`,`bodyAttrs`,`meta`,`link`,`style`,`script`,`noscript`]),x=new Set([`base`,`title`,`titleTemplate`,`bodyAttrs`,`htmlAttrs`,`templateParams`]),S=new Set([`key`,`tagPosition`,`tagPriority`,`tagDuplicateStrategy`,`innerHTML`,`textContent`,`processTemplateParams`]),ee=new Set([`templateParams`,`htmlAttrs`,`bodyAttrs`]),te=new Set([`theme-color`,`google-site-verification`,`author`,`og:locale:alternate`,`og:image`,`og:video`,`og:audio`,`article:author`,`article:tag`,`book:author`,`book:tag`,`twitter:image`]),ne={critical:-8,high:-1,low:2},C=e=>typeof e==`number`?Number.isFinite(e):e;function w(e){return e===`__proto__`||e===`constructor`||e===`prototype`}function T(e){let n=new t;for(let t in e||{})n.hook(t,e[t]);return n}function E(e,t,n){if(e.hooks?._hooks?.[t]?.length)return e.hooks?.callHook(t,n)}var D=/^(?:viewport|description|keywords|robots)$/,O=[`name`,`property`,`http-equiv`];function k(e){let t=e.indexOf(`:`);if(t===-1)return!1;let n=e.slice(t+1);return te.has(n)||n.startsWith(`og:image:`)||n.startsWith(`og:video:`)||n.startsWith(`og:audio:`)||n.startsWith(`twitter:image:`)}function A(e){let{props:t,tag:n,key:r}=e;if(x.has(n))return n;if(n===`link`){if(t.rel===`canonical`)return`canonical`;if(t.rel===`alternate`&&t.hreflang)return`alternate:${t.hreflang}`}if(t.charset)return`charset`;if(n===`meta`)for(let e of O){let n=t[e];if(n!==void 0)return`meta:${n}${(typeof n!=`string`||!n.includes(`:`))&&!D.test(n)&&r?`:key:${r}`:``}`}return r?`${n}:key:${r}`:t.id?`${n}:id:${t.id}`:n===`link`&&t.rel&&t.href?`link:${t.rel}:${t.href}`:v.has(n)&&(e.textContent||e.innerHTML)?`${n}:content:${e.textContent||e.innerHTML}`:void 0}function j(e){let t=e._h||e._d||e.textContent||e.innerHTML;if(t)return t;let n=Object.keys(e.props).sort(),r=`${e.tag}:`,i=``;for(let t of n)r+=`${i}${t}:${String(e.props[t])}`,i=`,`;return r}function M(e,t,n){if(n===`_resolver`)return e;typeof e==`function`&&(!n||n!==`titleTemplate`&&!n.startsWith(`on`))&&(e=e());let r=t?t(n,e):e;if(Array.isArray(r)){let e;for(let n=0;n<r.length;n++){let i=M(r[n],t);e?e[n]=i:i!==r[n]&&(e=r.slice(0,n),e[n]=i)}return e||r}if(r?.constructor===Object){let e;for(let n in r){let i=w(n),a=i?void 0:M(r[n],t,n);if(!e&&(i||a!==r[n])){e={};for(let t in r){if(t===n)break;e[t]=r[t]}}e&&!i&&(e[n]=a)}return e||r}return r}var N=/[\s"'<>/=\x00-\x1F\x7F]/;function P(e,t){let n=e===`style`,r=n?new Map:new Set,i=e=>{if(e){if(n){let t=e.indexOf(`:`);t>0&&r.set(e.slice(0,t).trim(),e.slice(t+1).trim())}else e.split(` `).forEach(e=>e&&r.add(e))}};if(typeof t==`string`)(n?t.split(`;`):[t]).forEach(i);else if(Array.isArray(t))t.forEach(i);else if(t&&typeof t==`object`)for(let e in t){let a=t[e];a&&a!==`false`&&(n?r.set(e.trim(),String(a)):i(e))}return r}function F(e,t){if(e.props=e.props||{},!t)return e;if(e.tag===`templateParams`)return e.props=t,e;let n=y.has(e.tag)||e.tag===`htmlAttrs`||e.tag===`bodyAttrs`;for(let r in t){if(w(r))continue;let i=r.startsWith(`data-`),a=n&&!S.has(r),o=a&&!i?r.toLowerCase():r;if(a&&(!o||N.test(o)))continue;let s=t[r];if(s===null)e.props[o]=null;else if(r===`class`||r===`style`)e.props[r]=P(r,s);else if(S.has(r)){if((r===`textContent`||r===`innerHTML`)&&typeof s==`object`){let n=t.type||`application/json`;(n.endsWith(`json`)||n===`speculationrules`||n===`importmap`)&&(e.props.type=t.type=n,e[r]=JSON.stringify(s))}else e[r]=s}else if(s!==void 0){let t=String(s),n=e.tag===`meta`&&o===`content`;e.props[o]=t===`true`||t===``?i||n?t:!0:!s&&i&&t===`false`?`false`:s}}return e}function I(e,t){let n;return t.length&&(n=(e,n)=>{for(let r=0;r<t.length;r++)n=t[r](e,n);return n},e=n(void 0,e)),M(e,n)}function L(e,t){let n=F({tag:e,props:{}},typeof t==`object`&&typeof t!=`function`?t:{[e===`script`||e===`noscript`||e===`style`?`innerHTML`:`textContent`]:t});if(n.key&&_.has(n.tag)&&(n.props[`data-hid`]=n._h=n.key),n.tag===`script`&&typeof n.innerHTML==`object`&&(n.innerHTML=JSON.stringify(n.innerHTML),n.props.type=n.props.type||`application/json`),Array.isArray(n.props.content)){let e=[];for(let t of n.props.content)e.push({...n,props:{...n.props,content:t}});return e}return n}function R(e,t){if(Array.isArray(t))for(let n of t)e.push(n);else e.push(t)}function re(e,t){if(!e)return[];typeof e==`function`&&(e=e()),e=I(e,t);let n=[];for(let t in e){let r=e[t];if(r!==void 0){if(Array.isArray(r))for(let e of r)R(n,L(t,e));else R(n,L(t,r))}}return n}var z=/</g,B=/<\/script/g,V=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,H=()=>100;function U(e){for(let t in e)return!1;return!0}var W=/^tags:|:render/;function G(e,t){let n=(t[`entries:resolve`]?.length||0)+(t[`entries:normalize`]?.length||0);if(e._h!==n){e._h=n;for(let t of e.entries.values())delete t._tags}}function K(e){for(let t=0;t<e.length;t++){let n=e[t],r={...n.props};r.class instanceof Set&&(r.class=new Set(r.class)),r.style instanceof Map&&(r.style=new Map(r.style)),e[t]={...n,props:r}}}function q(e,t){let n=e.tags,r=0;for(let t of e.tagMap.values())if(Array.isArray(t))for(let e of t)n[r++]=e;else n[r++]=t;n.length=r,t&&n.sort(V)}function J(e){let t=!1;for(let n of e.tags.sort(V)){let r=n._d||j(n);if(!r)continue;let i=e.tagMap.get(r);if(!i){e.tagMap.set(r,n);continue}if((n.tagDuplicateStrategy||(ee.has(n.tag)?`merge`:null)||(n.key&&n.key===i.key?`merge`:null))===`merge`){let t={...i.props};for(let e in n.props)t[e]=e===`style`?new Map([...i.props.style||new Map,...n.props[e]]):e===`class`?new Set([...i.props.class||[],...n.props[e]]):n.props[e];e.tagMap.set(r,{...n,props:t})}else n._p>>10==i._p>>10&&n.tag===`meta`&&k(r)?(e.tagMap.set(r,Object.assign([...Array.isArray(i)?i:[i],n],n)),t=!0):(n._w===i._w?n._p>i._p:n._w<i._w)&&e.tagMap.set(r,n)}return t}function Y(e,t){let n=e.tagMap.get(`title`),r=e.tagMap.get(`titleTemplate`);if(t._title=n?.textContent,!r)return;let i=r.textContent;if(t._titleTemplate=i,!i)return;let a=typeof i==`function`?i(n?.textContent):i;typeof a==`string`&&!t.plugins.has(`template-params`)&&(a=a.replace(`%s`,n?.textContent||``)),n?a===null?e.tagMap.delete(`title`):e.tagMap.set(`title`,{...n,textContent:a}):e.tagMap.set(`titleTemplate`,{...r,tag:`title`,textContent:a})}function X(e){let t=0;for(let n of e){let{innerHTML:r,tag:i,props:a}=n;if(!(!b.has(i)||U(a)&&!C(r)&&!C(n.textContent))&&!(i===`meta`&&!C(a.content)&&!a[`http-equiv`]&&!a.charset)){if(i===`script`&&(r||n.textContent)){let e=String(a.type),t=e.endsWith(`json`)||e===`importmap`||e===`speculationrules`,i=e=>t?(typeof e==`string`?e:JSON.stringify(e)).replace(z,`\\u003C`):typeof e==`string`?e.replace(B,`<\\/script`):e;n={...n},r&&(n.innerHTML=i(r)),n.textContent&&(n.textContent=i(n.textContent)),n._d=A(n)}e[t++]=n}}return e.length=t,e}function ie(e,t){let n=t?.tagWeight??e.resolvedOptions._tagWeight??H,r={tagMap:new Map,tags:[]},i=e.hooks?._hooks||{};G(e,i);for(let t of e.entries.values())t._pending!==void 0&&(t.input=t._pending,delete t._pending,delete t._tags,delete t._precomputedTags);let a;(i[`entries:resolve`]?.length||i[`entries:normalize`]?.length)&&(a=[...e.entries.values()],i[`entries:resolve`]?.length&&E(e,`entries:resolve`,{entries:a,...r})),G(e,i);for(let t of a||e.entries.values()){let a=t._tags;if(!a){if(t._precomputedTags&&n===e.resolvedOptions._tagWeight&&!i[`entries:normalize`]?.length&&!i[`entries:resolve`]?.length&&(!t.options||U(t.options)))a=t._precomputedTags;else{if(a=re(t.input,e.resolvedOptions.propResolvers||[]),t.options&&!U(t.options))for(let e of a)Object.assign(e,t.options);if(i[`entries:normalize`]?.length){let n={tags:a,entry:t};E(e,`entries:normalize`,n),a=n.tags}for(let e=0;e<a.length;e++){let r=a[e];r._w=n(r),r._p=(t._i<<10)+e,r._d=A(r),r._d||(r._h=j(r))}t._tags=a}}r.tags.push(...a)}for(let e in i)if(i[e]?.length&&W.test(e)){K(r.tags);break}let o=J(r);return Y(r,e),q(r,o),E(e,`tags:beforeResolve`,r),E(e,`tags:resolve`,r),E(e,`tags:afterResolve`,r),X(r.tags)}var Z=`usehead`;function ae(){if(s()){let e=o(Z);if(e)return e}throw Error(`useHead() was called without provide context, ensure you call it through the setup() function.`)}function oe(e){return{install(t){t.config.globalProperties.$unhead=e,t.config.globalProperties.$head=e,t.provide(Z,e)}}.install}var se=Object.assign((e,t)=>f(t)?h(t):t,{_static:!0});function ce(e,t={}){let n=t.head||ae();return n.ssr?n.push(e||{},t):le(n,e,t)}function le(e,t,n={}){let r=d();if(r&&!r.active)return{patch(){},dispose(){},_i:-1};let i=m(!1);if(n.onRendered&&r){let e=n.onRendered;n={...n,onRendered:t=>r.run(()=>e(t))}}let o;return p(()=>{let r=i.value?{}:M(t,se);o?o.patch(r):o=e.push(r,n)}),a()&&(u(()=>{o.dispose()}),c(()=>{i.value=!0}),l(()=>{i.value=!1})),o}function Q(t){let n=t||e();return n.ssrContext?.head||n.runWithContext(()=>{if(s()){let e=o(`usehead`);if(!e)throw g.NUXT_E6001();return e}})}function $(e,t={}){return ce(e,{head:t.head||Q(t.nuxt),...t})}export{j as a,ie as c,y as d,ne as f,A as i,E as l,$ as n,k as o,oe as r,F as s,Q as t,T as u};
@@ -1 +0,0 @@
1
- import{a as e}from"./BU83-NnX.js";import{$ as t,Ht as n,P as r,R as i,S as a,Ut as o,V as s,Vt as c,W as l,b as u,d,dt as f,f as p,h as m,i as h,m as g,nt as _,p as v,pt as y,tt as b,xt as x,y as S}from"./CSkxz2NX.js";import{c as C,f as ee,l as w,s as te}from"./D6uzXueg.js";import{n as ne}from"./DtYHUi5Z.js";import{t as re}from"./BHA40aHa.js";import{n as ie}from"./KZQX7xoM.js";import{t as ae}from"./DZtm4l-P2.js";import{t as T}from"./BDNMzG2s2.js";import{t as E}from"./D0ZBQrN_2.js";import{t as oe}from"./BC9wjTJK2.js";import{t as se}from"./CNs_Ozdc2.js";import{t as ce}from"./DTFCy6h-.js";import{a as le,i as ue,n as de,r as fe,t as pe}from"./D98NH8kG.js";import{t as me}from"./ca4TJ3Op.js";import{t as he}from"./C3J6FYKa.js";import{t as D}from"./CFxtLwjp.js";var O={class:`mono dim`},k={class:`mono ch`},ge=[`title`],_e=[`title`],ve={class:`trend-cell`},ye=[`title`],be=[`y1`,`y2`],xe=[`y1`,`y2`],Se=[`points`],A=[`y1`,`y2`],Ce={class:`mono`},we={class:`mono`},Te=[`title`],Ee=[`value`,`title`],De={value:``},Oe=[`value`],ke=[`title`],j={key:1,class:`run-pill na`},Ae={class:`prod-cell`},M=[`title`],N=[`title`],P={key:1,class:`dim`},je={class:`dev-binds`},Me=[`title`],Ne=[`onClick`],Pe=[`title`],F={value:``},Fe=[`value`,`disabled`],Ie={class:`right`},Le=[`title`],Re=120,I=26,ze=Object.assign(T(a({__name:`DaqNodeRow`,props:{n:{}},setup(t){let n=t,{t:r}=ie(),i=pe(),a=me(),f=he();function _(e){if(!e.lastAt)return!0;let t=e.intervalMs??i.controller.defaultIntervalMs;return Date.now()-Date.parse(e.lastAt)>Math.max(t*4,12e3)}function v(e){return e.enabled?e.lineId?a.lineStateOf(e.lineId).active?!i.controller.running||_(e)?`offline`:e.state:`idle`:`unassigned`:`disabled`}function y(e){let t=v(e);return t===`ok`||t===`warn`||t===`alarm`}function C(e){if(!e.lineId)return null;let t=a.lineStateOf(e.lineId);return!t.active||!t.recipeId?null:a.recipes.find(e=>e.id===t.recipeId)?.daqWindows?.find(t=>t.nodeId===e.id)??null}function ee(e){let t=C(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=C(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 te(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)*Re).toFixed(1)},${(I-(e-n)/r*24-1).toFixed(1)}`).join(` `)}function ne(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((I-(t-r)/i*24-1).toFixed(1))}function ae(e){let t=v(e),n=r(`daq.k44c2n065`);if(t===`offline`)return e.lastError?{key:t,label:n,tip:e.lastError}:{key:t,label:n,tip:i.controller.running?r(`daq.k1staled129`,{p0:Math.round(Math.max((e.intervalMs??i.controller.defaultIntervalMs)*4,12e3)/1e3)}):r(`daq.k1gateoff140`)};let a={ok:r(`daq.k41k5c062`),warn:r(`daq.k49z8v063`),alarm:r(`daq.k3xmid064`),offline:n,idle:r(`daq.k3ozyqz117`),disabled:r(`daq.k1disabl130`),unassigned:r(`daq.k3ootr6053`)};if(t===`idle`)return{key:t,label:a.idle,tip:r(`daq.k1idlehin139`)};if((t===`ok`||t===`warn`||t===`alarm`)&&ee(e)){let t=C(e);return{key:`alarm`,label:r(`daq.k1l3pt51104`),tip:r(`daq.k1hrrqa1122`,{p0:t?.min??`-∞`,p1:t?.max??`+∞`,p2:``})}}return{key:t,label:a[t],tip:``}}function T(e){let t=i.templates.find(t=>t.key===le(e));return t?`${t.name} · ${t.ch}`:e||`-`}let oe=e=>e==null?r(`daq.k9vnp9h124`,{p0:i.controller.defaultIntervalMs}):`${e}ms`,se=e=>e==null?r(`daq.k9vnp9h124`,{p0:i.controller.defaultPublishIntervalMs}):e===0?r(`daq.k41mvv078`):`${e}ms`,ce=e=>i.meta.drivers.find(t=>t.kind===e)?.status===`planned`,ue=e=>e.deviceIds??(e.deviceBindingId?[e.deviceBindingId]:[]),de=e=>f.twins.find(t=>t.id===e)?.name??e,fe=d(()=>f.twins.filter(e=>e.kind!==`daq`&&!(e.modelRef??``).startsWith(`daq-`)&&!(e.modelRef??``).startsWith(`dcw-`))),D=d(()=>{let e=n.n,t=w(e),r=e.lineId?a.lineStateOf(e.lineId):null;return{tpl:T(e.templateRef),pill:ae(e),alarm:ee(e),live:y(e),trend:te(e.hist),limMin:ne(e.hist,t.min),limMax:ne(e.hist,t.max),interval:oe(e.intervalMs),publish:se(e.publishIntervalMs),lineActive:!!r?.active,lineProduct:r?.productName??``,lineRecipe:r?.recipeName??``}});async function ze(){let t=n.n,a=!t.enabled;try{await i.patchNode(t.id,{enabled:a}),t.enabled=a,a||(t.state=`offline`),e.success(r(a?`daq.k1nodestart147`:`daq.k1nodestop146`))}catch(t){e.error(E(t))}}async function Be(t){let r=t.target.value;try{await i.patchNode(n.n.id,{lineId:r});let e=n.n;e.lineId=r}catch(t){e.error(E(t))}}async function Ve(t){let r=t.target.value;if(!r)return;let a=n.n;if(!a.deviceIds?.includes(r)){try{await i.setNodeBindings(a.id,[...a.deviceIds??[],r])}catch(t){e.error(E(t))}t.target.value=``}}async function He(t){let r=n.n;try{await i.setNodeBindings(r.id,(r.deviceIds??[]).filter(e=>e!==t))}catch(t){e.error(E(t))}}return(e,n)=>{let r=re;return s(),m(`tr`,{class:c({"row-recipe-alarm":D.value.alarm})},[p(`td`,null,[p(`span`,O,o(t.n.id.slice(0,8)),1),p(`b`,null,o(t.n.name),1),p(`small`,k,o(D.value.tpl),1)]),p(`td`,null,[p(`span`,{class:c([`st-pill`,[D.value.pill.key]]),title:D.value.pill.tip},o(D.value.pill.label),11,ge)]),p(`td`,{class:c([`mono val`,{stale:!D.value.live,"val-alarm":t.n.state===`alarm`||D.value.alarm}]),title:D.value.live?void 0:D.value.pill.tip},[S(o(t.n.value==null?`--`:t.n.value.toFixed(t.n.decimals))+` `,1),p(`small`,null,o(t.n.unit),1)],10,_e),p(`td`,ve,[(s(),m(`svg`,{class:`trend`,viewBox:`0 0 120 26`,preserveAspectRatio:`none`,title:e.$t(`daq.k1trnd002`)},[D.value.limMin==null?g(``,!0):(s(),m(`line`,{key:0,class:`lim`,x1:`0`,y1:D.value.limMin,x2:`120`,y2:D.value.limMin},null,8,be)),D.value.limMax==null?g(``,!0):(s(),m(`line`,{key:1,class:`lim max`,x1:`0`,y1:D.value.limMax,x2:`120`,y2:D.value.limMax},null,8,xe)),D.value.trend?(s(),m(`polyline`,{key:2,class:c([`trace`,{alarm:t.n.state===`alarm`||D.value.alarm}]),points:D.value.trend},null,10,Se)):(s(),m(`line`,{key:3,class:`trace-idle`,x1:`0`,y1:I/2,x2:`120`,y2:I/2},null,8,A))],8,ye))]),p(`td`,Ce,o(D.value.interval),1),p(`td`,we,o(D.value.publish),1),p(`td`,null,[p(`span`,{class:c([`drv-tag`,{planned:ce(t.n.driver)}]),title:ce(t.n.driver)?e.$t(`daq.k1plndrv138`):``},o(t.n.driver),11,Te)]),p(`td`,null,[p(`select`,{class:`line-sel`,value:t.n.lineId,title:e.$t(`daq.k3q23v3010`),onChange:Be},[p(`option`,De,o(e.$t(`daq.k3ootr6053`)),1),(s(!0),m(h,null,l(x(a).lines,e=>(s(),m(`option`,{key:e.id,value:e.id},o(e.name),9,Oe))),128))],40,Ee)]),p(`td`,null,[t.n.lineId?(s(),m(`span`,{key:0,class:c([`run-pill`,{on:D.value.lineActive}]),title:e.$t(`daq.k1runtipc131`)},[n[0]||=p(`span`,{class:`rp-dot`},null,-1),S(` `+o(D.value.lineActive?e.$t(`daq.k3vp67i096`):e.$t(`daq.k3ozyqz117`)),1)],10,ke)):(s(),m(`span`,j,o(e.$t(`daq.k3ootr6053`)),1))]),p(`td`,Ae,[t.n.lineId&&D.value.lineActive?(s(),m(h,{key:0},[p(`b`,{title:e.$t(`daq.k1prdrtip132`)},o(D.value.lineProduct||`--`),9,M),p(`small`,{class:`mono`,title:e.$t(`daq.k1prdrtip132`)},o(D.value.lineRecipe||`--`),9,N)],64)):(s(),m(`span`,P,`--`))]),p(`td`,null,[p(`div`,je,[(s(!0),m(h,null,l(ue(t.n),t=>(s(),m(`span`,{key:t,class:`dev-bind-chip`,title:e.$t(`daq.k2bindtip137`)},[S(o(de(t))+` `,1),p(`span`,{class:`dev-unbind`,title:`unbind`,onClick:e=>He(t)},`✕`,8,Ne)],8,Me))),128)),p(`select`,{class:`line-sel dev-add`,value:``,title:e.$t(`daq.k2bindtip137`),onChange:Ve},[p(`option`,F,o(e.$t(`daq.k3own4q056`)),1),(s(!0),m(h,null,l(fe.value,e=>(s(),m(`option`,{key:e.id,value:e.id,disabled:(t.n.deviceIds??[]).includes(e.id)},o(de(e.id)),9,Fe))),128))],40,Pe)])]),p(`td`,Ie,[p(`button`,{class:c([`node-toggle`,{off:!t.n.enabled}]),title:t.n.enabled?e.$t(`daq.k1nodestop146`):e.$t(`daq.k1nodestart147`),onClick:ze},[p(`span`,{class:c(t.n.enabled?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),S(` `+o(t.n.enabled?e.$t(`daq.k1nodestop146`):e.$t(`daq.k1nodestart147`)),1)],10,Le),u(r,{class:`console-link`,to:`/daq/${t.n.id}`},{default:b(()=>[n[1]||=p(`span`,{class:`i-tabler-dashboard`},null,-1),S(` `+o(e.$t(`daq.k3o3jg2074`)),1)]),_:1},8,[`to`])])],2)}}}),[[`__scopeId`,`data-v-4b6f87e1`]]),{__name:`WorkshopDaqNodeRow`}),Be={class:`page`},Ve={class:`aw-page-head`},He={class:`sub`},Ue={class:`badges mono`},We=[`title`],Ge=[`title`],Ke={class:`txt`},qe={class:`mono`},Je={key:1,class:`infra-banner`},Ye={class:`txt`},Xe={key:2,class:`infra-banner`},Ze={class:`txt`},Qe=[`disabled`],$e={key:3,class:`alarm-bar`},et={class:`bar-label`},tt={class:`mono`},nt={class:`alarm-scroll`},rt=[`title`],it={class:`mono dim`},at={class:`mono`},ot={key:0,class:`esc mono`},st=[`onClick`],ct={class:`aw-tile ctrl-card`},lt={class:`ctrl-row`},ut={class:`ctrl-left`},dt=[`title`],ft={class:`cycle mono`},pt=[`title`],mt={class:`ctrl-right`},ht={class:`ctrl-metrics mono`},gt=[`title`],_t=[`title`],vt=[`title`],yt=[`title`],bt={class:`line-strip`},xt={class:`strip-label`},St={class:`mono`},Ct={class:`strip-scroll`},wt={key:0,class:`lp-run`},Tt={key:1,class:`lp-idle`},Et={class:`lp-idle`},Dt={class:`modal`},Ot={class:`m-title`},kt={class:`seg-row`},At={class:`f-grid`},jt={class:`f`},Mt=[`value`],Nt={class:`f`},Pt=[`placeholder`],Ft={key:0,class:`f`},It=[`placeholder`],Lt={class:`f-grid`},Rt={class:`f`},zt=[`value`],Bt={key:0,class:`f-grid driver-form`},Vt={key:0},Ht=[`onUpdate:modelValue`],Ut=[`value`],Wt=[`onUpdate:modelValue`,`type`,`placeholder`],Gt={key:2,class:`hint`},Kt={class:`test-row`},qt=[`disabled`],Jt={key:1,class:`m-err`},Yt={class:`m-actions`},Xt=[`disabled`,`title`],Zt={class:`modal`},Qt={class:`m-title`},$t={class:`sec-label`},en={class:`tpl-table`},tn={class:`mono dim`},nn={class:`mono range`},rn={class:`right actions`},an=[`onClick`],on=[`onClick`],sn={key:0},cn={colspan:`3`,class:`empty`},ln={class:`sec-label`},un={class:`f-grid`},dn={class:`f`},fn=[`placeholder`],pn={class:`f`},mn={class:`f`},hn=[`placeholder`],gn={class:`f`},_n=[`placeholder`],vn={class:`f`},yn={class:`f`},bn={class:`f`},xn={class:`f`},Sn=[`value`],Cn={class:`f`},wn={class:`hint`},Tn={class:`f`},En={class:`hint`},Dn={key:0,class:`m-err`},On={class:`m-actions`},kn=[`disabled`],An={class:`sec-label`},jn={class:`tpl-table`},Mn={class:`mono dim`},Nn={class:`mono range`},Pn={class:`right actions`},Fn=[`onClick`],In={class:`aw-tile opt-card`},Ln={class:`opt-count mono`},Rn={class:`opt-filters`},zn={value:``},Bn=[`value`],Vn={value:``},Hn=[`value`],Un={key:0,class:`opt-empty`},Wn={class:`opt-list`},Gn={class:`opt-line1`},Kn={class:`opt-node`},qn={class:`mono opt-params`},Jn={class:`mono opt-time`},Yn=[`disabled`,`onClick`],Xn=[`onClick`],Zn={class:`opt-line2 mono`},Qn={key:1,class:`opt-open-hint`},$n={key:2,class:`opt-agg`},er={key:3,class:`opt-agg`},tr={key:0,class:`opt-series`},nr={class:`opt-spark`,viewBox:`0 0 240 36`,preserveAspectRatio:`none`},rr=[`points`],ir={class:`mono`},ar={key:0,class:`opt-empty`},or={class:`aw-tile table-card`},sr={class:`tbl-toolbar`},cr={class:`filters`},lr={class:`flt`},ur={value:``},dr=[`value`],fr={value:`none`},pr={class:`flt`},mr={value:``},hr=[`value`],gr={value:`none`},_r=[`title`],vr={value:``},yr={value:`on`},br={value:`off`},xr={class:`flt`},Sr={value:``},Cr={value:`ok`},wr={value:`warn`},Tr={value:`alarm`},Er={value:`offline`},Dr={class:`flt`},Or={value:``},kr=[`value`],Ar={class:`flt`},jr={value:``},Mr=[`value`],Nr=[`title`],Pr={value:``},Fr={value:`live`},Ir={value:`hour`},Lr={value:`day`},Rr={value:`old`},zr={value:`never`},Br={class:`flt`},Vr=[`placeholder`],Hr={class:`count mono`},Ur={class:`ops-panels`},Wr={class:`panel-head`},Gr={class:`panel-body`},Kr={key:0,class:`panel-empty`},qr={class:`mono dim`},Jr={class:`mono`},Yr={key:0,class:`esc mono`},Xr=[`onClick`],Zr={class:`ops-panel event-panel`},Qr={class:`panel-head`},$r={class:`panel-body`},ei={key:0,class:`panel-empty`},ti={class:`mono dim t`},ni=[`title`],ri=[`title`],ii=[`title`],ai={class:`right`},oi={key:0,class:`vs-pad`,"aria-hidden":`true`},si={key:1,class:`vs-pad`,"aria-hidden":`true`},ci={key:2},li={colspan:`11`},ui={class:`pane-empty`,style:{"min-height":`120px`}},di={class:`pe-sub`},fi={key:3},pi={colspan:`11`},mi={class:`pane-empty`,style:{"min-height":`90px`}},hi={class:`pe-sub`},gi={key:6,class:`err`},_i=42,vi=8,yi=T(a({__name:`index`,setup(a){let{t:T}=ie();se({layout:`default`}),ne({title:()=>T(`titles.daq`)});let O=pe(),k=me(),ge=oe(),_e=d(()=>k.lines.some(e=>k.lineStateOf(e.id).active)),ve=D();function ye(e){return{write:T(`logs.kind.write`),manual:T(`logs.kind.manual`),alarm:T(`logs.kind.alarm`),line:T(`logs.kind.line`),recipe:T(`logs.kind.recipe`),rollback:T(`logs.kind.rollback`),daq:T(`logs.kind.daq`),system:T(`logs.kind.system`)}[e]??(e||T(`logs.kind.system`))}function be(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 xe(t){try{await O.ackAlarm(t),e.success(T(`daq.k1acked144`))}catch(t){e.error(E(t))}}let Se=null;i(()=>{ge.ensureConnected(),Se=O.ensureWsFeed(),ve.ensureLive(),O.load(),O.fetchAlarms(),k.load(),ki.load(),k.loadOptimizations(),ce(()=>{O.load(),O.fetchAlarms()},5e3,{bgMs:3e4}),ce(()=>{k.load()},15e3,{bgMs:6e4})}),r(()=>{Se?.()});let A=f({lineId:``,deviceId:``,template:``,driver:``,lineRun:``,state:``,time:``,search:``}),Ce=d(()=>!!(A.lineId||A.deviceId||A.template||A.driver||A.lineRun||A.state||A.time||A.search.trim()));function we(){A.lineId=``,A.deviceId=``,A.template=``,A.driver=``,A.lineRun=``,A.state=``,A.time=``,A.search=``}let Te=d(()=>{let e=new Map;for(let t of O.nodes)e.set(t.templateRef,(e.get(t.templateRef)??0)+1);return[...e.entries()].map(([e,t])=>({ref:e,count:t,label:Hi(e)}))}),Ee=d(()=>{let e=new Map;for(let t of O.nodes)e.set(t.driver,(e.get(t.driver)??0)+1);return[...e.entries()].map(([e,t])=>({kind:e,count:t,label:O.meta.drivers.find(t=>t.kind===e)?.label??e}))});function De(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 Oe(e){return!A.time||De(e)===A.time}function ke(e){let t=A.search.trim().toLowerCase();return!t||e.name.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)}let j=y(!1),Ae=y(!1),M=y(``),N=y(``),P=y({}),je=y(``),Me=d(()=>k.recipes.filter(e=>!M.value||e.lineId===M.value));function Ne(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 Pe(){j.value=!j.value,j.value&&(Ae.value=!0,await F())}async function F(){await k.loadOptimizations({lineId:M.value||void 0,recipeId:N.value||void 0})}function Fe(){N.value&&!Me.value.some(e=>e.id===N.value)&&(N.value=``),F()}async function Ie(e){je.value=e;try{let t=await k.optimizationSeries(e);P.value={...P.value,[e]:t}}finally{je.value=``}}function Le(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 Re(e){await k.rollbackOptimization(e),await F()}function I(e){return e==null?`--`:String(Number(e.toFixed(2)))}let yi=d(()=>{let e=new Map;for(let t of O.nodes)for(let n of t.deviceIds??(t.deviceBindingId?[t.deviceBindingId]:[]))e.set(n,(e.get(n)??0)+1);return ki.twins.filter(t=>e.has(t.id)).map(t=>({id:t.id,name:Ai.get(t.id)??t.name,count:e.get(t.id)}))});function bi(e){if(!A.lineRun)return!0;let t=!!e.lineId&&k.lineStateOf(e.lineId).active;return A.lineRun===`on`?t:!t}let L=d(()=>k.lines.find(e=>e.id===A.lineId)??null),R=d(()=>L.value?k.lineStateOf(L.value.id):null);function xi(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 Si(e){return e.enabled?e.lineId?k.lineStateOf(e.lineId).active?!O.controller.running||xi(e)?`offline`:e.state:`idle`:`unassigned`:`disabled`}let z=d(()=>O.nodes.filter(e=>{if(A.lineId&&(A.lineId===`none`?e.lineId:(e.lineId??``)!==A.lineId))return!1;let t=e.deviceIds??(e.deviceBindingId?[e.deviceBindingId]:[]);return!(A.deviceId&&(A.deviceId===`none`?t.length>0:!t.includes(A.deviceId))||A.template&&e.templateRef!==A.template||A.driver&&e.driver!==A.driver||!bi(e)||A.state&&Si(e)!==A.state||!Oe(e)||!ke(e))})),Ci=y(null),B=y(0),V=y(60),wi=d(()=>{let e=z.value,t=Math.min(B.value,Math.max(0,e.length-1));return e.slice(t,V.value)}),Ti=d(()=>B.value*_i),Ei=d(()=>Math.max(0,(z.value.length-V.value)*_i)),Di=0;function Oi(){let e=Ci.value;if(!e)return;let t=z.value.length,n=window.innerHeight||800,r=e.getBoundingClientRect().top+window.scrollY+40,i=Math.floor((window.scrollY-r)/_i),a=Math.ceil(n/_i)+16,o=Math.max(0,Math.min(i-vi,Math.max(0,t-1))),s=Math.max(o,Math.min(t,o+a));o!==B.value&&(B.value=o),s!==V.value&&(V.value=s)}function H(){Di||=requestAnimationFrame(()=>{Di=0,Oi()})}i(()=>{Oi(),window.addEventListener(`scroll`,H,{passive:!0}),window.addEventListener(`resize`,H,{passive:!0})}),r(()=>{window.removeEventListener(`scroll`,H),window.removeEventListener(`resize`,H),Di&&cancelAnimationFrame(Di)}),t(()=>z.value.length,()=>{B.value=0,V.value=Math.min(z.value.length,V.value||60),H()});let ki=he(),Ai=new Map;t(()=>ki.twins,e=>{for(let t of e)Ai.set(t.id,t.name)},{immediate:!0,deep:!0});let U=y(!1),W=y(`mock`),G=y(fe[0]?.key??`temp-tc`),K=y(`modbus-tcp`),q=y(``),ji=y(null),J=y({}),Mi=f({kind:`none`,scale:1,offset:0}),Ni=y(!1),Y=y(null),Pi=y(!1),Fi=y(``),Ii=d(()=>O.meta.drivers.length?O.meta.drivers:de.map(e=>({...e}))),Li=d(()=>Ii.value.find(e=>e.kind===K.value)),Ri=d(()=>Li.value?.configFields??[]),zi=e=>O.meta.drivers.find(t=>t.kind===e)?.status!==`planned`&&O.meta.driverAvailable?.[e]!==!1;t(K,()=>{let e={};for(let t of Ri.value)t.default!==void 0&&(e[t.key]=t.default);J.value=e,Y.value=null},{immediate:!0});async function Bi(){Ni.value=!0,Y.value=null;try{Y.value=await O.testDriver(K.value,J.value)}catch(e){Y.value={ok:!1,message:E(e)}}finally{Ni.value=!1}}async function Vi(){Pi.value=!0,Fi.value=``;try{let e=Mi.kind===`linear`?{kind:`linear`,scale:Number(Mi.scale),offset:Number(Mi.offset)}:void 0;if(W.value===`mock`)await O.createFromTemplate(`daq-${G.value}`,{name:q.value?{name:q.value}.name:void 0,transform:e});else{for(let e of Ri.value)if(e.required&&!J.value[e.key]&&J.value[e.key]!==0)throw Error(T(`daq.kyuadl0125`,{p0:e.label}));let t=O.templates.find(e=>e.key===G.value);await O.createFromTemplate(`daq-${G.value}`,{name:q.value||void 0,driver:K.value,driverConfig:{...J.value},transform:e,intervalMs:ji.value,unit:t?.unit,min:t?.min,max:t?.max,decimals:t?.decimals})}U.value=!1,q.value=``,Y.value=null}catch(e){Fi.value=E(e)}finally{Pi.value=!1}}function Hi(e){let t=O.templates.find(t=>t.key===le(e));return t?`${t.name} · ${t.ch}`:e||`-`}let Ui=y(!1),X=y(null),Wi=y(!1),Z=y(``),Q=y(``),$=f({name:``,ch:``,code:``,unit:``,min:0,max:100,base:50,amp:2,decimals:2,icon:`thermo`}),Gi={thermo:T(`daq.k422b8079`),pressure:T(`daq.k3x6ff080`),tension:T(`daq.k3z9xc081`),encoder:T(`daq.k3subk4082`),camera:T(`daq.k47atw083`),gateway:T(`daq.kz7yhbj084`)},Ki=d(()=>O.templates.filter(e=>!e.builtin)),qi=d(()=>O.templates.filter(e=>e.builtin));function Ji(e,t=!1){$.name=t?T(`daq.k2hbo3c126`,{p0:e.name}):e.name,$.ch=e.ch,$.code=e.code,$.unit=e.unit,$.min=e.min,$.max=e.max,$.base=e.base,$.amp=e.amp,$.decimals=e.decimals,$.icon=e.icon}function Yi(){X.value=null,Z.value=``,Q.value=``,Ji({key:``,name:``,code:``,ch:``,unit:``,base:50,amp:2,min:0,max:100,decimals:2,icon:`thermo`})}function Xi(e){X.value=e.key,Z.value=``,Ji(e)}function Zi(e){X.value=null,Z.value=``,Ji(e,!0)}async function Qi(){Wi.value=!0,Z.value=``;try{let e=e=>{let t=Number(e);return e===``||e==null||!Number.isFinite(t)?void 0:t},t={name:$.name.trim(),ch:$.ch.trim()||void 0,code:$.code.trim()||void 0,unit:$.unit.trim(),min:e($.min),max:e($.max),base:e($.base),amp:e($.amp),decimals:e($.decimals),icon:$.icon};X.value?await O.updateTemplate(X.value,t):await O.createTemplate(t),Yi()}catch(e){Z.value=E(e)}finally{Wi.value=!1}}async function $i(e){if(Q.value!==e.key){Q.value=e.key;return}try{await O.removeTemplate(e.key)}catch(e){Z.value=E(e)}finally{Q.value=``}}let ea=y(!1);async function ta(){ea.value=!0;try{await O.reconnectInfra()}catch{}finally{ea.value=!1}}return(e,t)=>{let r=re,i=ze,a=ae;return s(),m(`div`,Be,[p(`div`,Ve,[p(`div`,null,[t[36]||=p(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / DAQ CONSOLE `,-1),p(`h1`,null,o(e.$t(`daq.k1emg364011`)),1),p(`p`,He,o(e.$t(`daq.k1wmg2bz012`)),1)]),p(`div`,Ue,[p(`span`,{class:`badge`,title:e.$t(`daq.k1tsdbtip133`)},`TSDB · `+o(x(O).meta.tsdb),9,We),p(`span`,{class:`badge`,title:e.$t(`daq.k1queuet134`)},`QUEUE · `+o(x(O).meta.queue),9,Ge)])]),x(O).loaded&&L.value&&R.value?(s(),m(`div`,{key:0,class:c([`infra-banner`,{good:R.value.active}])},[p(`span`,{class:c(R.value.active?`i-tabler-circle-check`:`i-tabler-info-circle`)},null,2),p(`span`,Ke,[R.value.active?(s(),m(h,{key:0},[S(o(e.$t(`daq.k3ktxbr085`))+o(L.value.name)+`」`+o(e.$t(`daq.k15lvw0o105`)),1),p(`b`,null,o(R.value.productName),1),t[37]||=S(` · Recipe:`,-1),p(`b`,null,o(R.value.recipeName),1),p(`small`,qe,o(e.$t(`daq.k400lb086`))+` `+o(R.value.runId?.slice(0,8))+` · `+o(e.$t(`daq.k3zkt2106`))+` `+o(R.value.startedAt?.slice(11,19))+` `+o(e.$t(`daq.k69vag8108`))+` `+o(R.value.taggedSamples)+` `+o(e.$t(`daq.k4118o092`)),1)],64)):(s(),m(h,{key:1},[S(o(e.$t(`daq.k3ktxbr085`))+o(L.value.name)+`」`+o(e.$t(`daq.k12uge2o107`)),1)],64))]),u(r,{class:`pill-btn`,to:`/dcw/${L.value.id}`},{default:b(()=>[S(o(R.value.active?e.$t(`daq.k1ukoy0v093`):e.$t(`daq.k1cg78i8109`)),1)]),_:1},8,[`to`])],2)):x(O).loaded&&!_e.value?(s(),m(`div`,Je,[t[38]||=p(`span`,{class:`i-tabler-info-circle`},null,-1),p(`span`,Ye,[S(o(e.$t(`daq.k19onw5w013`)),1),u(r,{to:`/dcw`},{default:b(()=>[S(o(e.$t(`daq.k1b2tk5c014`)),1)]),_:1}),S(o(e.$t(`daq.k1u9wnlg015`)),1)])])):g(``,!0),x(O).meta.infra?.degraded?(s(),m(`div`,Xe,[t[39]||=p(`span`,{class:`i-tabler-alert-triangle`},null,-1),p(`span`,Ze,o(x(O).meta.infra.warning),1),p(`button`,{class:`pill-btn`,disabled:ea.value,onClick:ta},o(ea.value?e.$t(`daq.k1ld43ur094`):e.$t(`daq.kzg9805110`)),9,Qe)])):g(``,!0),x(O).alarms.length?(s(),m(`div`,$e,[p(`span`,et,[t[40]||=p(`span`,{class:`i-tabler-bell-ringing bell`},null,-1),S(` `+o(e.$t(`daq.k1alarm141`))+` `,1),p(`b`,tt,o(x(O).alarms.length),1)]),p(`div`,nt,[(s(!0),m(h,null,l(x(O).alarms,t=>(s(),m(`span`,{key:t.id,class:`alarm-item`,title:e.$t(`daq.k1esc143`,{p0:t.escalation})},[p(`b`,null,o(t.nodeName),1),p(`span`,it,o(t.metric),1),p(`span`,at,o(t.value)+` `+o(t.rule===`lt-min`?`<`:`>`)+` `+o(t.threshold),1),t.escalation>0?(s(),m(`small`,ot,`+`+o(t.escalation),1)):g(``,!0),p(`button`,{class:`mini-btn ack`,onClick:e=>xe(t.id)},o(e.$t(`daq.k1ack142`)),9,st)],8,rt))),128))])])):g(``,!0),p(`section`,ct,[p(`div`,lt,[p(`div`,ut,[p(`button`,{class:c([`aw-pill`,{running:x(O).controller.running}]),title:e.$t(`daq.k1snap145`),onClick:t[0]||=e=>x(O).controllerAction(x(O).controller.running?`pause`:`resume`)},[p(`span`,{class:c(x(O).controller.running?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),S(` `+o(x(O).controller.running?e.$t(`daq.kpui00095`):e.$t(`daq.knxpdpt111`)),1)],10,dt),p(`label`,ft,[S(o(e.$t(`daq.k1ifahxj016`))+` `,1),_(p(`input`,{"onUpdate:modelValue":t[1]||=e=>x(O).controller.defaultIntervalMs=e,type:`number`,min:`200`,max:`60000`,step:`100`,onChange:t[2]||=e=>x(O).controllerAction(`config`,x(O).controller.defaultIntervalMs)},null,544),[[w,x(O).controller.defaultIntervalMs,void 0,{number:!0}]]),t[41]||=S(`ms `,-1)]),p(`label`,{class:`cycle mono`,title:e.$t(`daq.k1e8lcoo001`)},[S(o(e.$t(`daq.k1if98n0017`))+` `,1),_(p(`input`,{"onUpdate:modelValue":t[3]||=e=>x(O).controller.defaultPublishIntervalMs=e,type:`number`,min:`0`,max:`60000`,step:`100`,onChange:t[4]||=e=>x(O).controllerAction(`config`,x(O).controller.defaultIntervalMs,x(O).controller.defaultPublishIntervalMs)},null,544),[[w,x(O).controller.defaultPublishIntervalMs,void 0,{number:!0}]]),t[42]||=S(`ms `,-1)],8,pt)]),p(`div`,mt,[p(`span`,ht,[p(`span`,null,o(e.$t(`daq.k45uio067`))+` `+o(x(O).controller.nodesOnline)+`/`+o(x(O).controller.nodesTotal),1),t[43]||=p(`span`,{class:`sep`},`·`,-1),p(`span`,{title:e.$t(`daq.k1yztsu4002`)},o(e.$t(`daq.k3xagp087`))+` `+o(x(O).meta.produced),9,gt),t[44]||=p(`span`,{class:`sep`},`·`,-1),p(`span`,{title:e.$t(`daq.ko09iha003`)},o(e.$t(`daq.k427eu088`))+` `+o(x(O).meta.consumed),9,_t),t[45]||=p(`span`,{class:`sep`},`·`,-1),p(`span`,{class:c({warn:(x(O).meta.dropped??0)>0}),title:e.$t(`daq.k1droptip135`)},o(e.$t(`daq.k3w8go089`))+` `+o(x(O).meta.dropped),11,vt),t[46]||=p(`span`,{class:`sep`},`·`,-1),p(`span`,{title:e.$t(`daq.kj1jbmw004`)},o(e.$t(`daq.k3wusd090`))+` `+o(x(O).meta.samplesStored),9,yt)]),p(`button`,{class:`aw-pill outline add-btn`,onClick:t[5]||=e=>{Ui.value=!0,Yi()}},[t[47]||=p(`span`,{class:`i-tabler-adjustments-horizontal`},null,-1),S(` `+o(e.$t(`daq.k1f5cv0s018`)),1)]),p(`button`,{class:`aw-pill add-btn`,onClick:t[6]||=e=>U.value=!0},[t[48]||=p(`span`,{class:`i-tabler-plus`},null,-1),S(` `+o(e.$t(`daq.k1fn0ukb019`)),1)])])]),p(`div`,bt,[p(`span`,xt,[t[49]||=p(`span`,{class:`i-tabler-route`},null,-1),S(` `+o(e.$t(`daq.k1b2o3b6020`)),1),p(`small`,St,o(x(k).lines.length),1)]),p(`div`,Ct,[(s(!0),m(h,null,l(x(k).lines,i=>(s(),v(r,{key:i.id,class:c([`line-pill`,{on:x(k).lineStateOf(i.id).active}]),style:n({"--lc":i.color}),to:`/dcw/${i.id}`,title:x(k).lineStateOf(i.id).active?e.$t(`daq.k3v957u120`,{p0:i.name,p1:x(k).lineStateOf(i.id).productName,p2:x(k).lineStateOf(i.id).recipeName}):e.$t(`daq.k1x7jnru121`,{p0:i.name})},{default:b(()=>[t[50]||=p(`span`,{class:`lp-dot`},null,-1),p(`b`,null,o(i.name),1),x(k).lineStateOf(i.id).active?(s(),m(`small`,wt,o(x(k).lineStateOf(i.id).recipeName??e.$t(`daq.k3vp67i096`)),1)):(s(),m(`small`,Tt,o(e.$t(`daq.k3zgkk021`)),1))]),_:2},1032,[`class`,`style`,`to`,`title`]))),128)),x(k).lines.length===0?(s(),v(r,{key:0,class:`line-pill`,to:`/dcw`},{default:b(()=>[t[51]||=p(`span`,{class:`lp-dot`},null,-1),p(`b`,null,o(e.$t(`daq.k1el12b1022`)),1),p(`small`,Et,o(e.$t(`daq.k8jxxe8023`)),1)]),_:1})):g(``,!0)])])]),U.value?(s(),m(`div`,{key:4,class:`modal-mask`,onClick:t[14]||=ee(e=>U.value=!1,[`self`])},[p(`div`,Dt,[p(`h3`,Ot,o(e.$t(`daq.k19rioqa024`)),1),p(`div`,kt,[p(`button`,{class:c([`seg`,{on:W.value===`mock`}]),onClick:t[7]||=e=>W.value=`mock`},o(e.$t(`daq.k1p5c1un025`)),3),p(`button`,{class:c([`seg`,{on:W.value===`real`}]),onClick:t[8]||=e=>W.value=`real`},o(e.$t(`daq.k1cbcp3o026`)),3)]),p(`div`,At,[p(`label`,jt,[p(`span`,null,o(e.$t(`daq.k1fsgerc027`)),1),_(p(`select`,{"onUpdate:modelValue":t[9]||=e=>G.value=e,class:`inp`},[(s(!0),m(h,null,l(x(O).templates,t=>(s(),m(`option`,{key:t.key,value:t.key},o(t.name)+` · `+o(t.ch)+`(`+o(t.min)+`~`+o(t.max)+` `+o(t.unit)+`)`+o(t.builtin?``:e.$t(`daq.kr45rk9097`)),9,Mt))),128))],512),[[C,G.value]])]),p(`label`,Nt,[p(`span`,null,o(e.$t(`daq.k1ce2k1y028`)),1),_(p(`input`,{"onUpdate:modelValue":t[10]||=e=>q.value=e,class:`inp`,placeholder:e.$t(`daq.kgpxzy3005`)},null,8,Pt),[[w,q.value]])]),W.value===`real`?(s(),m(`label`,Ft,[p(`span`,null,o(e.$t(`daq.k13mfsfc029`)),1),_(p(`input`,{"onUpdate:modelValue":t[11]||=e=>ji.value=e,type:`number`,min:`1000`,max:`60000`,step:`500`,class:`inp`,placeholder:e.$t(`daq.k1eg1000a136`)},null,8,It),[[w,ji.value,void 0,{number:!0}]])])):g(``,!0)]),W.value===`real`?(s(),m(h,{key:0},[p(`div`,Lt,[p(`label`,Rt,[p(`span`,null,o(e.$t(`daq.k1kt87rx030`)),1),_(p(`select`,{"onUpdate:modelValue":t[12]||=e=>K.value=e,class:`inp`},[(s(!0),m(h,null,l(Ii.value.filter(e=>e.status!==`planned`),t=>(s(),m(`option`,{key:t.kind,value:t.kind},o(t.label)+o(t.plugin?` ⌁`:``)+o(zi(t.kind)?``:e.$t(`daq.kjbqphp098`)),9,zt))),128))],512),[[C,K.value]])])]),Ri.value.length?(s(),m(`div`,Bt,[(s(!0),m(h,null,l(Ri.value,e=>(s(),m(`label`,{key:e.key,class:`f`},[p(`span`,null,[S(o(e.label),1),e.required?(s(),m(`em`,Vt,`*`)):g(``,!0)]),e.type===`select`?_((s(),m(`select`,{key:0,"onUpdate:modelValue":t=>J.value[e.key]=t,class:`inp`},[(s(!0),m(h,null,l(e.options,e=>(s(),m(`option`,{key:e.value,value:e.value},o(e.label),9,Ut))),128))],8,Ht)),[[C,J.value[e.key]]]):_((s(),m(`input`,{key:1,"onUpdate:modelValue":t=>J.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`inp`},null,8,Wt)),[[te,J.value[e.key]]]),e.hint?(s(),m(`small`,Gt,o(e.hint),1)):g(``,!0)]))),128))])):g(``,!0),p(`div`,Kt,[p(`button`,{class:`pill-btn`,disabled:Ni.value,onClick:Bi},o(Ni.value?e.$t(`daq.k1fsh720099`):e.$t(`daq.k1fstglk112`)),9,qt),Y.value?(s(),m(`span`,{key:0,class:c([`test-result`,Y.value.ok?`ok`:`bad`])},[S(o(Y.value.ok?`✓`:`✗`)+` `+o(Y.value.message),1),Y.value.latencyMs==null?g(``,!0):(s(),m(h,{key:0},[S(`(`+o(Y.value.latencyMs)+`ms)`,1)],64))],2)):g(``,!0)])],64)):g(``,!0),Fi.value?(s(),m(`p`,Jt,o(Fi.value),1)):g(``,!0),p(`div`,Yt,[p(`button`,{class:`aw-pill outline`,onClick:t[13]||=e=>U.value=!1},o(e.$t(`daq.k3xdnn031`)),1),p(`button`,{class:`aw-pill`,disabled:Pi.value||W.value===`real`&&Y.value!=null&&!Y.value.ok,title:W.value===`real`&&!(Y.value&&Y.value.ok)?e.$t(`daq.k1needtst137`):``,onClick:Vi},o(Pi.value?e.$t(`daq.k1bg4759100`):W.value===`real`?e.$t(`daq.k7pxjxo113`):e.$t(`daq.k1bge46t118`)),9,Xt)])])])):g(``,!0),Ui.value?(s(),m(`div`,{key:5,class:`modal-mask`,onClick:t[25]||=ee(e=>Ui.value=!1,[`self`])},[p(`div`,Zt,[p(`h3`,Qt,o(e.$t(`daq.k11mv96s032`)),1),p(`p`,$t,o(e.$t(`daq.ktji4ky033`)),1),p(`table`,en,[p(`tbody`,null,[(s(!0),m(h,null,l(Ki.value,t=>(s(),m(`tr`,{key:t.key},[p(`td`,null,[p(`b`,null,o(t.name),1),p(`small`,tn,o(t.code),1)]),p(`td`,nn,o(t.min)+`~`+o(t.max)+` `+o(t.unit)+` · `+o(t.decimals)+` `+o(e.$t(`daq.k48oi091`)),1),p(`td`,rn,[p(`button`,{class:`mini-btn`,onClick:e=>Xi(t)},o(e.$t(`daq.k45eb0034`)),9,an),p(`button`,{class:`mini-btn danger`,onClick:e=>$i(t)},o(Q.value===t.key?e.$t(`daq.k1hhheu3101`):e.$t(`daq.k3xakp114`)),9,on)])]))),128)),Ki.value.length?g(``,!0):(s(),m(`tr`,sn,[p(`td`,cn,o(e.$t(`daq.kztvzbo035`)),1)]))])]),p(`p`,ln,o(X.value?e.$t(`daq.k1iiph0s102`):e.$t(`daq.k1efixrj115`)),1),p(`div`,un,[p(`label`,dn,[p(`span`,null,[S(o(e.$t(`daq.k3xhia036`)),1),t[52]||=p(`em`,null,`*`,-1)]),_(p(`input`,{"onUpdate:modelValue":t[15]||=e=>x($).name=e,class:`inp`,placeholder:e.$t(`daq.k5opd2t006`)},null,8,fn),[[w,x($).name]])]),p(`label`,pn,[p(`span`,null,[S(o(e.$t(`daq.k3x4ef037`)),1),t[53]||=p(`em`,null,`*`,-1)]),_(p(`input`,{"onUpdate:modelValue":t[16]||=e=>x($).unit=e,class:`inp`,placeholder:`如 %RH`},null,512),[[w,x($).unit]])]),p(`label`,mn,[p(`span`,null,o(e.$t(`daq.k1l477m0038`)),1),_(p(`input`,{"onUpdate:modelValue":t[17]||=e=>x($).ch=e,class:`inp`,placeholder:e.$t(`daq.kk8o4tl007`)},null,8,hn),[[w,x($).ch]])]),p(`label`,gn,[p(`span`,null,o(e.$t(`daq.k1ayxrqb039`)),1),_(p(`input`,{"onUpdate:modelValue":t[18]||=e=>x($).code=e,class:`inp`,placeholder:e.$t(`daq.kzn3l7l008`)},null,8,_n),[[w,x($).code]])]),p(`label`,vn,[p(`span`,null,[S(o(e.$t(`daq.k1l9jv5m040`)),1),t[54]||=p(`em`,null,`*`,-1)]),_(p(`input`,{"onUpdate:modelValue":t[19]||=e=>x($).min=e,type:`number`,class:`inp`},null,512),[[w,x($).min,void 0,{number:!0}]])]),p(`label`,yn,[p(`span`,null,[S(o(e.$t(`daq.k1l9jv4p041`)),1),t[55]||=p(`em`,null,`*`,-1)]),_(p(`input`,{"onUpdate:modelValue":t[20]||=e=>x($).max=e,type:`number`,class:`inp`},null,512),[[w,x($).max,void 0,{number:!0}]])]),p(`label`,bn,[p(`span`,null,o(e.$t(`daq.k3mxmcx042`)),1),_(p(`input`,{"onUpdate:modelValue":t[21]||=e=>x($).decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[w,x($).decimals,void 0,{number:!0}]])]),p(`label`,xn,[p(`span`,null,o(e.$t(`daq.k3xx56043`)),1),_(p(`select`,{"onUpdate:modelValue":t[22]||=e=>x($).icon=e,class:`inp`},[(s(!0),m(h,null,l(x(ue),e=>(s(),m(`option`,{key:e,value:e},o(Gi[e]),9,Sn))),128))],512),[[C,x($).icon]])]),p(`label`,Cn,[p(`span`,null,o(e.$t(`daq.k1f4eknv044`)),1),_(p(`input`,{"onUpdate:modelValue":t[23]||=e=>x($).base=e,type:`number`,class:`inp`},null,512),[[w,x($).base,void 0,{number:!0}]]),p(`small`,wn,o(e.$t(`daq.kytd15s045`)),1)]),p(`label`,Tn,[p(`span`,null,o(e.$t(`daq.k1f4ifpo046`)),1),_(p(`input`,{"onUpdate:modelValue":t[24]||=e=>x($).amp=e,type:`number`,class:`inp`},null,512),[[w,x($).amp,void 0,{number:!0}]]),p(`small`,En,o(e.$t(`daq.ksp2aji047`)),1)])]),Z.value?(s(),m(`p`,Dn,o(Z.value),1)):g(``,!0),p(`div`,On,[p(`button`,{class:`aw-pill outline`,onClick:Yi},o(e.$t(`daq.k48p40048`)),1),p(`button`,{class:`pill-btn`,disabled:Wi.value,onClick:Qi},o(Wi.value?e.$t(`daq.k1b38d59103`):X.value?e.$t(`daq.k1b39281116`):e.$t(`daq.k1b3dtga119`)),9,kn)]),p(`p`,An,o(e.$t(`daq.k1w8s84s049`)),1),p(`table`,jn,[p(`tbody`,null,[(s(!0),m(h,null,l(qi.value,t=>(s(),m(`tr`,{key:t.key},[p(`td`,null,[p(`b`,null,o(t.name),1),p(`small`,Mn,o(t.code),1)]),p(`td`,Nn,o(t.min)+`~`+o(t.max)+` `+o(t.unit)+` · `+o(t.decimals)+` `+o(e.$t(`daq.k48oi091`)),1),p(`td`,Pn,[p(`button`,{class:`mini-btn`,onClick:e=>Zi(t)},o(e.$t(`daq.k3y694050`)),9,Fn)])]))),128))])])])])):g(``,!0),p(`section`,In,[p(`button`,{class:`opt-head`,onClick:Pe},[t[56]||=p(`span`,{class:`i-tabler-flask`},null,-1),p(`b`,null,o(e.$t(`daq.k1optt001`)),1),p(`span`,Ln,o(x(k).optimizations.length),1),p(`span`,{class:c([`opt-chevron`,{open:j.value}])},null,2)]),p(`div`,{class:c([`opt-body`,{open:j.value}])},[Ae.value?(s(),m(h,{key:0},[p(`div`,Rn,[_(p(`select`,{"onUpdate:modelValue":t[26]||=e=>M.value=e,class:`inp-sel`,onChange:Fe},[p(`option`,zn,o(e.$t(`daq.k1optf001`)),1),(s(!0),m(h,null,l(x(k).lines,e=>(s(),m(`option`,{key:e.id,value:e.id},o(e.name),9,Bn))),128))],544),[[C,M.value]]),_(p(`select`,{"onUpdate:modelValue":t[27]||=e=>N.value=e,class:`inp-sel`,onChange:F},[p(`option`,Vn,o(e.$t(`daq.k1optf004`)),1),(s(!0),m(h,null,l(Me.value,e=>(s(),m(`option`,{key:e.id,value:e.id},o(e.name),9,Hn))),128))],544),[[C,N.value]]),p(`button`,{class:`mini-act`,onClick:F},o(e.$t(`daq.k1optf002`)),1)]),x(k).optimizations.length===0?(s(),m(`p`,Un,o(e.$t(`daq.k1opte001`)),1)):g(``,!0),p(`ul`,Wn,[(s(!0),m(h,null,l(x(k).optimizations.slice(0,30),t=>(s(),m(`li`,{key:t.id,class:c([`opt-row`,t.status])},[p(`div`,Gn,[p(`span`,{class:c([`opt-status`,t.status])},o(e.$t(Ne(t.status))),3),p(`b`,Kn,o(t.nodeName),1),p(`span`,qn,o(t.params[0]?.from??`?`)+` → `+o(t.params[0]?.to),1),p(`span`,Jn,o(t.setAt.slice(5,16).replace(`T`,` `)),1),P.value[t.id]?g(``,!0):(s(),m(`button`,{key:0,class:`mini-act`,disabled:je.value===t.id,onClick:e=>Ie(t.id)},o(e.$t(`daq.k1opta001`)),9,Yn)),t.status===`open`?(s(),m(`button`,{key:1,class:`mini-act danger`,onClick:e=>Re(t.id)},o(e.$t(`daq.k1opta002`)),9,Xn)):g(``,!0)]),p(`div`,Zn,[t.judge?(s(),m(`span`,{key:0,class:c([`opt-judge`,t.judge.verdict])},o(t.judge.verdict)+`(`+o(t.judge.by)+`): `+o(t.judge.reason.slice(0,70)),3)):t.status===`open`?(s(),m(`span`,Qn,o(e.$t(`daq.k1opto001`)),1)):g(``,!0),t.aggPending?(s(),m(`span`,$n,o(e.$t(`daq.k1optw001`)),1)):t.windowAgg&&t.windowAgg.channels.length?(s(),m(`span`,er,[(s(!0),m(h,null,l(t.windowAgg.channels,t=>(s(),m(h,{key:t.daqNodeId},[S(o(t.ch)+` `+o(I(t.min))+`~`+o(I(t.max))+`(`+o(e.$t(`daq.k1optw002`))+o(t.breaches<0?`-`:t.breaches)+`) `,1)],64))),128))])):g(``,!0)]),P.value[t.id]?(s(),m(`div`,tr,[(s(!0),m(h,null,l(P.value[t.id]?.channels??[],e=>(s(),m(`div`,{key:e.nodeId,class:`opt-ch`},[(s(),m(`svg`,nr,[p(`polyline`,{points:Le(e.points)},null,8,rr)])),p(`span`,ir,o(e.ch)+` `+o(I(e.points.at(-1)?.value??e.points.at(-1)?.avg))+o(e.unit),1)]))),128)),(P.value[t.id]?.channels.length??0)===0?(s(),m(`p`,ar,o(e.$t(`daq.k1opte002`)),1)):g(``,!0)])):g(``,!0)],2))),128))])],64)):g(``,!0)],2)]),u(a,{spinning:!x(O).loaded&&!x(O).error},{default:b(()=>[p(`section`,or,[p(`div`,sr,[p(`div`,cr,[p(`label`,lr,[p(`span`,null,o(e.$t(`daq.k3wj9n051`)),1),_(p(`select`,{"onUpdate:modelValue":t[28]||=e=>x(A).lineId=e,class:`inp-sel`},[p(`option`,ur,o(e.$t(`daq.k1bkl9uj052`)),1),(s(!0),m(h,null,l(x(k).lines,e=>(s(),m(`option`,{key:e.id,value:e.id},o(e.name),9,dr))),128)),p(`option`,fr,o(e.$t(`daq.k3ootr6053`)),1)],512),[[C,x(A).lineId]])]),p(`label`,pr,[p(`span`,null,o(e.$t(`daq.k1i8rtqt054`)),1),_(p(`select`,{"onUpdate:modelValue":t[29]||=e=>x(A).deviceId=e,class:`inp-sel`},[p(`option`,mr,o(e.$t(`daq.k1bkw4m2055`)),1),(s(!0),m(h,null,l(yi.value,e=>(s(),m(`option`,{key:e.id,value:e.id},o(e.name)+`(`+o(e.count)+`) `,9,hr))),128)),p(`option`,gr,o(e.$t(`daq.k3own4q056`)),1)],512),[[C,x(A).deviceId]])]),p(`label`,{class:`flt`,title:e.$t(`daq.khb8mru009`)},[p(`span`,null,o(e.$t(`daq.k1b2tkyv057`)),1),_(p(`select`,{"onUpdate:modelValue":t[30]||=e=>x(A).lineRun=e,class:`inp-sel`},[p(`option`,vr,o(e.$t(`daq.k3x4t1058`)),1),p(`option`,yr,o(e.$t(`daq.k1nxm3p7059`)),1),p(`option`,br,o(e.$t(`daq.k1ulx34e060`)),1)],512),[[C,x(A).lineRun]])],8,_r),p(`label`,xr,[p(`span`,null,o(e.$t(`daq.k1iwdfef061`)),1),_(p(`select`,{"onUpdate:modelValue":t[31]||=e=>x(A).state=e,class:`inp-sel`},[p(`option`,Sr,o(e.$t(`daq.k3x4t1058`)),1),p(`option`,Cr,o(e.$t(`daq.k41k5c062`)),1),p(`option`,wr,o(e.$t(`daq.k49z8v063`)),1),p(`option`,Tr,o(e.$t(`daq.k3xmid064`)),1),p(`option`,Er,o(e.$t(`daq.k44c2n065`)),1)],512),[[C,x(A).state]])]),p(`label`,Dr,[p(`span`,null,o(e.$t(`daq.k1flttpl010`)),1),_(p(`select`,{"onUpdate:modelValue":t[32]||=e=>x(A).template=e,class:`inp-sel`},[p(`option`,Or,o(e.$t(`daq.k1flttpl011`)),1),(s(!0),m(h,null,l(Te.value,e=>(s(),m(`option`,{key:e.ref,value:e.ref},o(e.label)+`(`+o(e.count)+`) `,9,kr))),128))],512),[[C,x(A).template]])]),p(`label`,Ar,[p(`span`,null,o(e.$t(`daq.k1fltdrv012`)),1),_(p(`select`,{"onUpdate:modelValue":t[33]||=e=>x(A).driver=e,class:`inp-sel`},[p(`option`,jr,o(e.$t(`daq.k1fltdrv013`)),1),(s(!0),m(h,null,l(Ee.value,e=>(s(),m(`option`,{key:e.kind,value:e.kind},o(e.label)+`(`+o(e.count)+`) `,9,Mr))),128))],512),[[C,x(A).driver]])]),p(`label`,{class:`flt`,title:e.$t(`daq.k1flttim014`)},[p(`span`,null,o(e.$t(`daq.k1flttim015`)),1),_(p(`select`,{"onUpdate:modelValue":t[34]||=e=>x(A).time=e,class:`inp-sel`},[p(`option`,Pr,o(e.$t(`daq.k1flttim016`)),1),p(`option`,Fr,o(e.$t(`daq.k1timlv017`)),1),p(`option`,Ir,o(e.$t(`daq.k1timhr018`)),1),p(`option`,Lr,o(e.$t(`daq.k1timdy019`)),1),p(`option`,Rr,o(e.$t(`daq.k1timld020`)),1),p(`option`,zr,o(e.$t(`daq.k1timnv021`)),1)],512),[[C,x(A).time]])],8,Nr),p(`label`,Br,[p(`span`,null,o(e.$t(`daq.k1fltsrc022`)),1),_(p(`input`,{"onUpdate:modelValue":t[35]||=e=>x(A).search=e,class:`inp-sel flt-search`,type:`search`,placeholder:e.$t(`daq.k1fltsph023`)},null,8,Vr),[[w,x(A).search]])]),Ce.value?(s(),m(`button`,{key:0,class:`mini-btn clear-btn`,onClick:we},o(e.$t(`daq.k1fygck2066`)),1)):g(``,!0)]),p(`span`,Hr,o(z.value.length)+` / `+o(x(O).nodes.length)+` `+o(e.$t(`daq.k45uio067`)),1)]),p(`div`,Ur,[p(`div`,{class:c([`ops-panel alarm-panel`,{live:x(O).alarms.length>0}])},[p(`div`,Wr,[t[57]||=p(`span`,{class:`i-tabler-bell-ringing bell`},null,-1),p(`b`,null,o(e.$t(`daq.k1alarm141`)),1),p(`span`,{class:c([`mono cnt`,{hot:x(O).alarms.length>0}])},o(x(O).alarms.length),3)]),p(`div`,Gr,[x(O).alarms.length===0?(s(),m(`p`,Kr,o(e.$t(`daq.k1evt001`)),1)):(s(!0),m(h,{key:1},l(x(O).alarms,n=>(s(),m(`div`,{key:n.id,class:`alarm-row`},[t[58]||=p(`span`,{class:`i-tabler-alert-triangle tri`},null,-1),p(`b`,null,o(n.nodeName),1),p(`span`,qr,o(n.metric),1),p(`span`,Jr,o(n.value)+` `+o(n.rule===`lt-min`?`<`:`>`)+` `+o(n.threshold),1),n.escalation>0?(s(),m(`small`,Yr,`+`+o(n.escalation),1)):g(``,!0),p(`button`,{class:`mini-btn ack`,onClick:e=>xe(n.id)},o(e.$t(`daq.k1ack142`)),9,Xr)]))),128))])],2),p(`div`,Zr,[p(`div`,Qr,[t[60]||=p(`span`,{class:`i-tabler-activity`},null,-1),p(`b`,null,o(e.$t(`daq.k1evt002`)),1),u(r,{class:`panel-link`,to:`/logs`},{default:b(()=>[S(o(e.$t(`daq.k1evt003`)),1),t[59]||=p(`span`,{class:`i-tabler-arrow-right`},null,-1)]),_:1})]),p(`div`,$r,[x(ve).recent.length===0?(s(),m(`p`,ei,o(e.$t(`daq.k1evt004`)),1)):(s(!0),m(h,{key:1},l(x(ve).recent,(t,n)=>(s(),m(`div`,{key:`${t.at}:${t.actor}:${t.action}:${n}`,class:`evt-row`},[p(`span`,ti,o(be(t.at)),1),p(`span`,{class:c([`src-badge`,t.actorKind])},o(t.actorKind===`agent`?`Agent`:t.actorKind===`user`?e.$t(`logs.src.user`):e.$t(`logs.src.system`)),3),p(`span`,{class:c([`kind-chip`,t.kind])},o(ye(t.kind)),3),p(`span`,{class:`txt`,title:t.summary},o(t.summary),9,ni)]))),128))])])]),p(`table`,{ref_key:`nodesTableRef`,ref:Ci,class:`nodes-table`},[p(`thead`,null,[p(`tr`,null,[p(`th`,null,o(e.$t(`daq.k45uio067`)),1),p(`th`,null,o(e.$t(`daq.k42w8s068`)),1),p(`th`,null,o(e.$t(`daq.k3mv305069`)),1),p(`th`,null,o(e.$t(`daq.k1trnd001`)),1),p(`th`,null,o(e.$t(`daq.k1l6g2ga070`)),1),p(`th`,null,o(e.$t(`daq.k3zi0nf071`)),1),p(`th`,null,o(e.$t(`daq.k4a0la072`)),1),p(`th`,null,o(e.$t(`daq.k3wj9n051`)),1),p(`th`,{title:e.$t(`daq.k1runtipc131`)},o(e.$t(`daq.k1b2tkyv057`)),9,ri),p(`th`,{title:e.$t(`daq.k1prdrtip132`)},o(e.$t(`daq.k1prodrc128`)),9,ii),p(`th`,null,o(e.$t(`daq.k1i8rtqt054`)),1),p(`th`,ai,o(e.$t(`daq.k40aa6073`)),1)])]),p(`tbody`,null,[Ti.value>0?(s(),m(`tr`,oi,[p(`td`,{colspan:11,style:n({height:Ti.value+`px`})},null,4)])):g(``,!0),(s(!0),m(h,null,l(wi.value,e=>(s(),v(i,{key:e.id,n:e},null,8,[`n`]))),128)),Ei.value>0?(s(),m(`tr`,si,[p(`td`,{colspan:11,style:n({height:Ei.value+`px`})},null,4)])):g(``,!0),x(O).loaded&&x(O).nodes.length===0?(s(),m(`tr`,ci,[p(`td`,li,[p(`div`,ui,[p(`p`,di,o(e.$t(`daq.kvhjyc3075`)),1)])])])):x(O).loaded&&z.value.length===0?(s(),m(`tr`,fi,[p(`td`,pi,[p(`div`,mi,[p(`p`,hi,o(e.$t(`daq.k1w20qew076`)),1)])])])):g(``,!0)])],512)])]),_:1},8,[`spinning`]),x(O).error?(s(),m(`p`,gi,[S(o(x(O).error)+`(`,1),u(r,{to:`/workshop`},{default:b(()=>[S(o(e.$t(`daq.k1bhhheq077`)),1)]),_:1}),t[61]||=S(`) `,-1)])):g(``,!0)])}}}),[[`__scopeId`,`data-v-74f24580`]]);export{yi as default};